395. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 12/5/2017 12:06:50 PM Central Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

395.1 Files compared

# Location File Last Modified
1 IV-eHMP_CIF.zip\IMAG_Source\VISA\Java\VistaImagingDataSourceProvider\main\src\java\gov\va\med\imaging\vistaimagingdatasource VistaImagingDataSourceProvider.java Mon Dec 4 21:34:52 2017 UTC
2 IV-eHMP_CIF.zip\IMAG_Source\VISA\Java\VistaImagingDataSourceProvider\main\src\java\gov\va\med\imaging\vistaimagingdatasource VistaImagingDataSourceProvider.java Mon Dec 4 22:06:47 2017 UTC

395.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 1170
Changed 1 2
Inserted 0 0
Removed 0 0

395.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

395.4 Active regular expressions

No regular expressions were active.

395.5 Comparison detail

  1   /**
  2    * 
  3    */
  4   package go v.va.med.i maging.vis taimagingd atasource;
  5  
  6   import gov .va.med.im aging.data source.Dic omApplicat ionEntityD ataSourceS pi;
  7   import gov .va.med.im aging.data source.Dic omDataSour ceSpi;
  8   import gov .va.med.im aging.data source.Dic omImporter DataSource Spi;
  9   import gov .va.med.im aging.data source.Dic omQueryRet rieveDataS ourceSpi;
  10   import gov .va.med.im aging.data source.Dic omStorageD ataSourceS pi;
  11   import gov .va.med.im aging.data source.Doc umentDataS ourceSpi;
  12   import gov .va.med.im aging.data source.Doc umentSetDa taSourceSp i;
  13   import gov .va.med.im aging.data source.Dur ableQueueD ataSourceS pi;
  14   import gov .va.med.im aging.data source.Eve ntLoggingD ataSourceS pi;
  15   import gov .va.med.im aging.data source.Ext ernalPacka geDataSour ceSpi;
  16   import gov .va.med.im aging.data source.Ima geAccessLo ggingSpi;
  17   import gov .va.med.im aging.data source.Ima geDataSour ceSpi;
  18   import gov .va.med.im aging.data source.Pas sthroughDa taSourceSp i;
  19   import gov .va.med.im aging.data source.Pat ientArtifa ctDataSour ceSpi;
  20   import gov .va.med.im aging.data source.Pat ientDataSo urceSpi;
  21   import gov .va.med.im aging.data source.Pro vider;
  22   import gov .va.med.im aging.data source.Pro viderServi ce;
  23   import gov .va.med.im aging.data source.Rou tingOverri deSpi;
  24   import gov .va.med.im aging.data source.Ser viceRegist rationData SourceSpi;
  25   import gov .va.med.im aging.data source.Sit eDataSourc eSpi;
  26   import gov .va.med.im aging.data source.Sto rageDataSo urceSpi;
  27   import gov .va.med.im aging.data source.Stu dyGraphDat aSourceSpi ;
  28   import gov .va.med.im aging.data source.Use rAuthentic ationSpi;
  29   import gov .va.med.im aging.data source.Use rAuthoriza tionDataSo urceSpi;
  30   import gov .va.med.im aging.data source.Use rDataSourc eSpi;
  31   import gov .va.med.im aging.data source.Vei nsDataSour ceSpi;
  32   import gov .va.med.im aging.data source.Vis taRadDataS ourceSpi;
  33   import gov .va.med.im aging.data source.Vis taRadImage DataSource Spi;
  34   import gov .va.med.im aging.data source.Wor kListDataS ourceSpi;
  35   import gov .va.med.im aging.vist aimagingda tasource.c onfigurati on.VistaIm agingConfi guration;
  36   import gov .va.med.im aging.vist aimagingda tasource.d icom.impor ter.VistaI magingDico mImporterD ataSourceS ervice;
  37   import gov .va.med.im aging.vist aimagingda tasource.d icom.stora ge.VistaIm agingDicom Applicatio nEntityDat aSourceSer vice;
  38   import gov .va.med.im aging.vist aimagingda tasource.d icom.stora ge.VistaIm agingDicom QueryRetri eveDataSou rceService ;
  39   import gov .va.med.im aging.vist aimagingda tasource.d icom.stora ge.VistaIm agingDicom StorageDat aSourceSer vice;
  40   import gov .va.med.im aging.vist aimagingda tasource.s torage.Vis taImagingS torageData SourceServ ice;
  41   import gov .va.med.im aging.vist aimagingda tasource.w orklist.Vi staImaging WorkListDa taSourceSe rvice;
  42  
  43   import jav a.util.Col lections;
  44   import jav a.util.Sor tedSet;
  45   import jav a.util.Tre eSet;
  46  
  47   import org .apache.lo gging.log4 j.LogManag er;
  48   import org .apache.lo gging.log4 j.Logger;
  49  
  50   /**
  51    * @author         
BECKEC
  52    * 
  53    */
  54   public cla ss VistaIm agingDataS ourceProvi der 
  55   extends Pr ovider
  56   {
  57           pr ivate stat ic final S tring PROV IDER_NAME  = "VistaIm agingDataS ource";
  58           pr ivate stat ic final d ouble PROV IDER_VERSI ON = 1.0d;
  59           pr ivate stat ic final S tring PROV IDER_INFO 
  60                    "Imp lements: \ n" + 
  61                    "Stu dyGraphDat aSource, I mageDataSo urce, and  ImageAcces sLoggingDa taSource S PI \n" + 
  62                    "bac ked by a V istA data  store.";
  63  
  64           pr ivate stat ic final l ong serial VersionUID  = 1L;
  65           
  66           pr ivate stat ic VistaIm agingConfi guration v istaConfig uration =  null;
  67           pr ivate fina l static L ogger logg er = LogMa nager.getL ogger(Vist aImagingDa taSourcePr ovider.cla ss);
  68           
  69           pr ivate fina l SortedSe t<Provider Service> s ervices;
  70  
  71           /* *
  72            *  The publi c "nullary " construc tor that i s used by  the Servic eLoader cl ass
  73            *  to create  instances .
  74            * /
  75           pu blic Vista ImagingDat aSourcePro vider()
  76           {
  77                    this (PROVIDER_ NAME, PROV IDER_VERSI ON, PROVID ER_INFO);
  78           }
  79           
  80           /* *
  81            *  A special  construct or that is  only used  for creat ing a conf iguration
  82            *  file.
  83            *  
  84            *  @param vi staConfigu ration
  85            * /
  86           pu blic Vista ImagingDat aSourcePro vider(Vist aImagingCo nfiguratio n vistaCon figuration )
  87           {
  88                    this ();
  89                    Vist aImagingDa taSourcePr ovider.vis taConfigur ation = vi staConfigu ration;
  90           }
  91  
  92           /* *
  93            *  @param na me
  94            *  @param ve rsion
  95            *  @param in fo
  96            * /
  97           pr ivate Vist aImagingDa taSourcePr ovider(Str ing name,  double ver sion, Stri ng info)
  98           {
  99                    supe r(name, ve rsion, inf o);
  100  
  101                    serv ices = new  TreeSet<P roviderSer vice>();
  102                    serv ices.add(
  103                             new Pr oviderServ ice(
  104                                      this, 
  105                                      StudyGra phDataSour ceSpi.clas s, 
  106                                      VistaIma gingStudyG raphDataSo urceServic e.SUPPORTE D_PROTOCOL
  107                                      1.0F, 
  108                                      VistaIma gingStudyG raphDataSo urceServic e.class)
  109                    );
  110                    serv ices.add(
  111                             new Pr oviderServ ice(
  112                                      this, 
  113                                      ImageDat aSourceSpi .class,
  114                                      VistaIma geDataSour ceService. SUPPORTED_ PROTOCOL,
  115                                      1.0F,
  116                                      VistaIma geDataSour ceService. class)
  117                    );
  118                    serv ices.add(
  119                             new Pr oviderServ ice(
  120                                      this, 
  121                                      ImageDat aSourceSpi .class,
  122                                      VistaIma geDataSour ceServiceV 0.SUPPORTE D_PROTOCOL ,
  123                                      0.9F,
  124                                      VistaIma geDataSour ceServiceV 0.class)
  125                    );
  126                    /*
  127                     //  JMW 10/5/2 010 disabl e this ver sion since  it will o nly be fun ctional wi th P119 (t o support  deleted im ages)
  128                    serv ices.add(
  129                                      new Prov ider.Servi ce(
  130                                      this, 
  131                                               DataSource Services.I mageDataSo urce,
  132                                               VistaImage DataSource ServiceV2. SUPPORTED_ PROTOCOL,
  133                                               2.0F,
  134                                               VistaImage DataSource ServiceV2. class)
  135                             );*/
  136                    serv ices.add(
  137                             new Pr oviderServ ice(
  138                                      this, 
  139                                      ImageAcc essLogging Spi.class,
  140                                      VistaIma gingImageA ccessLoggi ngDataSour ceService. SUPPORTED_ PROTOCOL,
  141                                      1.0F,
  142                                      VistaIma gingImageA ccessLoggi ngDataSour ceService. class)
  143                    );
  144                    serv ices.add(
  145                             new Pr oviderServ ice(
  146                                      this, 
  147                                      StudyGra phDataSour ceSpi.clas s,
  148                                      VistaIma gingStudyG raphDataSo urceServic eV0.SUPPOR TED_PROTOC OL,
  149                                      0.9F,
  150                                      VistaIma gingStudyG raphDataSo urceServic eV0.class)
  151                    );
  152                    serv ices.add(
  153                                      new Prov iderServic e(
  154                                               this, 
  155                                               StudyGraph DataSource Spi.class,
  156                                               VistaImagi ngStudyGra phDataSour ceService. SUPPORTED_ PROTOCOL,
  157                                               2.0F,
  158                                               VistaImagi ngStudyGra phDataSour ceServiceV 1.class)
  159                             );
  160                    serv ices.add(
  161                                      new Prov iderServic e(
  162                                               this, 
  163                                               StudyGraph DataSource Spi.class,
  164                                               VistaImagi ngStudyGra phDataSour ceServiceV 2.SUPPORTE D_PROTOCOL ,
  165                                               3.0F,
  166                                               VistaImagi ngStudyGra phDataSour ceServiceV 2.class)
  167                             );
  168                    serv ices.add(
  169                             new Pr oviderServ ice(
  170                                      this, 
  171                                      PatientD ataSourceS pi.class,
  172                                      VistaIma gingPatien tDataSourc eService.S UPPORTED_P ROTOCOL,
  173                                      1.0F,
  174                                      VistaIma gingPatien tDataSourc eService.c lass)
  175                    );
  176                    serv ices.add(
  177                             new Pr oviderServ ice(
  178                                      this, 
  179                                      DicomDat aSourceSpi .class,
  180                                      VistaIma gingDicomD ataSourceS ervice.SUP PORTED_PRO TOCOL,
  181                                      1.0F,
  182                                      VistaIma gingDicomD ataSourceS ervice.cla ss)
  183                             );
  184                    serv ices.add(
  185                             new Pr oviderServ ice(
  186                                      this, 
  187                                      DicomDat aSourceSpi .class,
  188                                      (byte)1,  
  189                                      VistaIma gingDicomD ataSourceS ervice.cla ss)
  190                             );
  191  
  192                    serv ices.add(
  193                                      new Prov iderServic e(
  194                                               this, 
  195                                               DicomAppli cationEnti tyDataSour ceSpi.clas s,
  196                                               VistaImagi ngDicomApp licationEn tityDataSo urceServic e.SUPPORTE D_PROTOCOL ,
  197                                               1.0F,
  198                                               VistaImagi ngDicomApp licationEn tityDataSo urceServic e.class)
  199                                      );
  200                    serv ices.add(
  201                             new Pr oviderServ ice(
  202                                      this, 
  203                                      DicomApp licationEn tityDataSo urceSpi.cl ass,
  204                                      (byte)1,  
  205                                      VistaIma gingDicomA pplication EntityData SourceServ ice.class)
  206                             );
  207                    serv ices.add(
  208                                      new Prov iderServic e(
  209                                               this, 
  210                                               DicomQuery RetrieveDa taSourceSp i.class,
  211                                               VistaImagi ngDicomQue ryRetrieve DataSource Service.SU PPORTED_PR OTOCOL,
  212                                               1.0F,
  213                                               VistaImagi ngDicomQue ryRetrieve DataSource Service.cl ass)
  214                                      );
  215                    
  216                    serv ices.add(
  217                             new Pr oviderServ ice(
  218                                      this, 
  219                                      DicomQue ryRetrieve DataSource Spi.class,
  220                                      (byte)1,  
  221                                      VistaIma gingDicomQ ueryRetrie veDataSour ceService. class)
  222                             );
  223  
  224                    serv ices.add(
  225                                      new Prov iderServic e(
  226                                               this, 
  227                                               DicomStora geDataSour ceSpi.clas s,
  228                                               VistaImagi ngDicomSto rageDataSo urceServic e.SUPPORTE D_PROTOCOL ,
  229                                               1.0F,
  230                                               VistaImagi ngDicomSto rageDataSo urceServic e.class)
  231                                      );
  232                    
  233                    serv ices.add(
  234                             new Pr oviderServ ice(
  235                                      this, 
  236                                      DicomSto rageDataSo urceSpi.cl ass,
  237                                      (byte)1,  
  238                                      VistaIma gingDicomS torageData SourceServ ice.class)
  239                             );
  240                                      
  241                    serv ices.add(
  242                                      new Prov iderServic e(
  243                                               this, 
  244                                               DicomImpor terDataSou rceSpi.cla ss,
  245                                               VistaImagi ngDicomImp orterDataS ourceServi ce.SUPPORT ED_PROTOCO L,
  246                                               1.0F,
  247                                               VistaImagi ngDicomImp orterDataS ourceServi ce.class)
  248                                      );
  249                    serv ices.add(
  250                             new Pr oviderServ ice(
  251                                      this, 
  252                                      DicomImp orterDataS ourceSpi.c lass,
  253                                      (byte)1,  
  254                                      VistaIma gingDicomI mporterDat aSourceSer vice.class )
  255                             );
  256  
  257                    serv ices.add(
  258                                      new Prov iderServic e(
  259                                               this, 
  260                                               WorkListDa taSourceSp i.class,
  261                                               VistaImagi ngWorkList DataSource Service.SU PPORTED_PR OTOCOL,
  262                                               1.0F,
  263                                               VistaImagi ngWorkList DataSource Service.cl ass)
  264                                      );
  265  
  266                    serv ices.add(
  267                                      new Prov iderServic e(
  268                                               this, 
  269                                               StorageDat aSourceSpi .class,
  270                                               VistaImagi ngStorageD ataSourceS ervice.SUP PORTED_PRO TOCOL,
  271                                               1.0F,
  272                                               VistaImagi ngStorageD ataSourceS ervice.cla ss)
  273                                      );
  274                                      
  275                    serv ices.add(
  276                                      new Prov iderServic e(
  277                                               this, 
  278                                               DurableQue ueDataSour ceSpi.clas s,
  279                                               VistaImagi ngDurableQ ueueDataSo urceServic e.SUPPORTE D_PROTOCOL ,
  280                                               1.0F,
  281                                               VistaImagi ngDurableQ ueueDataSo urceServic e.class)
  282                                      );
  283                                      
  284                    serv ices.add(
  285                                      new Prov iderServic e(
  286                                               this, 
  287                                               ServiceReg istrationD ataSourceS pi.class,
  288                                               VistaImagi ngServiceR egistratio nDataSourc eService.S UPPORTED_P ROTOCOL,
  289                                               1.0F,
  290                                               VistaImagi ngServiceR egistratio nDataSourc eService.c lass)
  291                                      );
  292                                      
  293                    serv ices.add(
  294                                      new Prov iderServic e(
  295                                               this, 
  296                                               VeinsDataS ourceSpi.c lass,
  297                                               VistaImagi ngVeinsDat aSourceSer vice.SUPPO RTED_PROTO COL,
  298                                               1.0F,
  299                                               VistaImagi ngVeinsDat aSourceSer vice.class )
  300                                      );
  301                                      
  302                    /*
  303                     //  no longer  supported  by Patch 1 04
  304                    serv ices.add(
  305                             new Pr oviderServ ice(
  306                                      this, 
  307                                      VistaRad DataSource Spi.class,
  308                                      Abstract BaseVistaI magingVist aRadServic e.SUPPORTE D_PROTOCOL ,
  309                                      0.9F,
  310                                      VistaIma gingVistaR adDataSour ceServiceV 0.class)
  311                             );
  312                             */
  313                    
  314                    serv ices.add(
  315                             new Pr oviderServ ice(
  316                                      this, 
  317                                      VistaRad DataSource Spi.class,
  318                                      VistaIma gingVistaR adDataSour ceService. SUPPORTED_ PROTOCOL,
  319                                      1.0F,
  320                                      VistaIma gingVistaR adDataSour ceService. class)
  321                             );
  322                    /*
  323                     //  no longer  supported  by Patch 1 04
  324                    serv ices.add(
  325                             new Pr oviderServ ice(
  326                                      this, 
  327                                      VistaRad ImageDataS ourceSpi.c lass,
  328                                      Abstract BaseVistaR adImageDat aSourceSer vice.SUPPO RTED_PROTO COL,
  329                                      0.9F,
  330                                      VistaIma gingVistaR adImageDat aSourceSer viceV0.cla ss)
  331                             );
  332                    */
  333                    serv ices.add(
  334                             new Pr oviderServ ice(
  335                                      this, 
  336                                      VistaRad ImageDataS ourceSpi.c lass,
  337                                      Abstract BaseVistaR adImageDat aSourceSer vice.SUPPO RTED_PROTO COL,
  338                                      1.0F,
  339                                      VistaIma gingVistaR adImageDat aSourceSer viceV1.cla ss)
  340                    );
  341                    serv ices.add(
  342                             new Pr oviderServ ice(
  343                                      this, 
  344                                      VistaRad ImageDataS ourceSpi.c lass,
  345                                      VistaIma gingVistaR adImageDat aSourceSer viceV2.SUP PORTED_PRO TOCOL,
  346                                      2.0F,
  347                                      VistaIma gingVistaR adImageDat aSourceSer viceV2.cla ss)
  348                    );
  349                    serv ices.add(
  350                             new Pr oviderServ ice(
  351                                      this, 
  352                                      VistaRad ImageDataS ourceSpi.c lass,
  353                                      VistaIma gingVistaR adImageDat aSourceSer viceV3.SUP PORTED_PRO TOCOL,
  354                                      3.0F,
  355                                      VistaIma gingVistaR adImageDat aSourceSer viceV3.cla ss)
  356                    );
  357                    
  358                    serv ices.add(
  359                             new Pr oviderServ ice(
  360                                      this, 
  361                                      External PackageDat aSourceSpi .class,
  362                                      Abstract BaseVistaI magingExte rnalPackag eDataSourc eService.S UPPORTED_P ROTOCOL,
  363                                      0.9F,
  364                                      VistaIma gingExtern alPackageD ataSourceS erviceV0.c lass)
  365                             );
  366                    
  367                    serv ices.add(
  368                             new Pr oviderServ ice(
  369                                      this, 
  370                                      External PackageDat aSourceSpi .class,
  371                                      Abstract BaseVistaI magingExte rnalPackag eDataSourc eService.S UPPORTED_P ROTOCOL,
  372                                      1.0F,
  373                                      VistaIma gingExtern alPackageD ataSourceS ervice.cla ss)
  374                             );
  375                    serv ices.add(
  376                             new Pr oviderServ ice(
  377                                      this, 
  378                                      External PackageDat aSourceSpi .class,
  379                                      Abstract BaseVistaI magingExte rnalPackag eDataSourc eService.S UPPORTED_P ROTOCOL,
  380                                      2.0F,
  381                                      VistaIma gingExtern alPackageD ataSourceS erviceV2.c lass)
  382                             );                        
  383                    serv ices.add(
  384                             new Pr oviderServ ice(
  385                                      this, 
  386                                      External PackageDat aSourceSpi .class,
  387                                      Abstract BaseVistaI magingExte rnalPackag eDataSourc eService.S UPPORTED_P ROTOCOL,
  388                                      3.0F,
  389                                      VistaIma gingExtern alPackageD ataSourceS erviceV3.c lass)
  390                             );                        
  391                    serv ices.add(
  392                             new Pr oviderServ ice(
  393                                      this, 
  394                                      External PackageDat aSourceSpi .class,
  395                                      Abstract BaseVistaI magingExte rnalPackag eDataSourc eService.S UPPORTED_P ROTOCOL,
  396                                      4.0F,
  397                                      VistaIma gingExtern alPackageD ataSourceS erviceV4.c lass)
  398                             );                        
  399  
  400                    // d ocument se t and docu ment binar y data sou rce servic es
  401                    serv ices.add(
  402                             new Pr oviderServ ice(
  403                                      this, 
  404                                      Document SetDataSou rceSpi.cla ss,
  405                                      VistaIma gingStudyG raphDataSo urceServic e.SUPPORTE D_PROTOCOL ,
  406                                      1.0F,
  407                                      VistaIma gingDocume ntSetDataS ourceServi ce.class)
  408                             );
  409                    serv ices.add(
  410                             new Pr oviderServ ice(
  411                                      this, 
  412                                      Document DataSource Spi.class,
  413                                      VistaIma geDataSour ceService. SUPPORTED_ PROTOCOL,
  414                                      1.0F,
  415                                      VistaIma gingDocume ntDataSour ceService. class)
  416                             );
  417                    serv ices.add(
  418                             new Pr oviderServ ice(
  419                                      this, 
  420                                      Passthro ughDataSou rceSpi.cla ss,
  421                                      VistaIma gingPassth roughDataS ourceServi ce.SUPPORT ED_PROTOCO L,
  422                                      1.0F,
  423                                      VistaIma gingPassth roughDataS ourceServi ce.class)
  424                             );
  425                    serv ices.add(
  426                             new Pr oviderServ ice(
  427                                      this, 
  428                                      UserAuth orizationD ataSourceS pi.class,
  429                                      VistaIma gingUserAu thorizatio nDataSourc eService.S UPPORTED_P ROTOCOL,
  430                                      1.0F,
  431                                      VistaIma gingUserAu thorizatio nDataSourc eService.c lass)
  432                             );
  433                    serv ices.add(
  434                                      new Prov iderServic e(
  435                                               this,
  436                                               PatientArt ifactDataS ourceSpi.c lass,
  437                                               VistaImagi ngStudyGra phDataSour ceService. SUPPORTED_ PROTOCOL,
  438                                               3.0F,
  439                                               VistaImagi ngPatientA rtifactDat aSourceSer viceV3.cla ss)
  440                                      );
  441                    serv ices.add(
  442                             new Pr oviderServ ice(
  443                                      this,
  444                                      PatientA rtifactDat aSourceSpi .class,
  445                                      VistaIma gingStudyG raphDataSo urceServic e.SUPPORTE D_PROTOCOL ,
  446                                      2.0F,
  447                                      VistaIma gingPatien tArtifactD ataSourceS erviceV2.c lass)
  448                             );
  449                    serv ices.add(
  450                             new Pr oviderServ ice(
  451                                      this,
  452                                      PatientA rtifactDat aSourceSpi .class,
  453                                      VistaIma gingStudyG raphDataSo urceServic e.SUPPORTE D_PROTOCOL ,
  454                                      1.0F,
  455                                      VistaIma gingPatien tArtifactD ataSourceS erviceV1.c lass)
  456                             );
  457                    serv ices.add(
  458                                      new Prov iderServic e(
  459                                               this, 
  460                                               EventLoggi ngDataSour ceSpi.clas s,
  461                                               VistaImagi ngEventLog gingDataSo urceServic e.SUPPORTE D_PROTOCOL ,
  462                                               1.0F,
  463                                               VistaImagi ngEventLog gingDataSo urceServic e.class)
  464                                      );
  465                    serv ices.add(
  466                                      new Prov iderServic e(
  467                                               this,
  468                                               UserDataSo urceSpi.cl ass,
  469                                               VistaImagi ngUserData SourceServ ice.SUPPOR TED_PROTOC OL,
  470                                               1.0F,
  471                                               VistaImagi ngUserData SourceServ ice.class)
  472                                      );               
  473                    serv ices.add(
  474                                      new Prov iderServic e(
  475                                               this,
  476                                               VistaRadDa taSourceSp i.class,
  477                                               VistaImagi ngVistaRad DataSource ServiceV2. SUPPORTED_ PROTOCOL,
  478                                               2.0F,
  479                                               VistaImagi ngVistaRad DataSource ServiceV2. class)
  480                                      );
  481                    serv ices.add(
  482                                      new Prov iderServic e(
  483                                               this,
  484                                               VistaRadDa taSourceSp i.class,
  485                                               VistaImagi ngVistaRad DataSource ServiceV3. SUPPORTED_ PROTOCOL,
  486                                               3.0F,
  487                                               VistaImagi ngVistaRad DataSource ServiceV3. class)
  488                                      );
  489                    serv ices.add(
  490                                      new Prov iderServic e(
  491                                               this,
  492                                               SiteDataSo urceSpi.cl ass,
  493                                               VistaImagi ngSiteData SourceServ ice.SUPPOR TED_PROTOC OL,
  494                                               1.0F,
  495                                               VistaImagi ngSiteData SourceServ ice.class)
  496                                      );
  497                    serv ices.add(
  498                                      new Prov iderServic e(
  499                                               this,
  500                                               UserDataSo urceSpi.cl ass,
  501                                               VistaImagi ngUserData SourceServ iceV2.SUPP ORTED_PROT OCOL,
  502                                               2.0F,
  503                                               VistaImagi ngUserData SourceServ iceV2.clas s)
  504                                      );
  505                    serv ices.add(
  506                                      new Prov iderServic e(
  507                                               this, 
  508                                               PatientDat aSourceSpi .class,
  509                                               VistaImagi ngPatientD ataSourceS erviceV2.S UPPORTED_P ROTOCOL,
  510                                               2.0F,
  511                                               VistaImagi ngPatientD ataSourceS erviceV2.c lass)
  512                             );
  513                    serv ices.add(
  514                             new Pr oviderServ ice(
  515                                      this, 
  516                                      UserAuth entication Spi.class,
  517                                      VistaIma gingUserAu thenticati onDataSour ceService. SUPPORTED_ PROTOCOL,
  518                                      1.0F,
  519                                      VistaIma gingUserAu thenticati onDataSour ceService. class)
  520                             );
  521                    
  522                             
  523                    // V istaDelega teRedirect or is a "l ocal" serv ice, it ha s no proto col
  524                    // o r protocol  version a nd is inst antiated w ith the nu ll-arg
  525                    // c onstructor
  526                    serv ices.add(
  527                             new Pr oviderServ ice(
  528                                      this, 
  529                                      RoutingO verrideSpi .class,
  530                                      (byte)1,  
  531                                      VistaIma gingDelega teRedirect or.class)
  532                             );
  533                    
  534                    // l oad the Ex changeConf iguration  if it exis ts
  535                    sync hronized(V istaImagin gDataSourc eProvider. class)
  536                {
  537                             try
  538                             {
  539                                      if(vista Configurat ion == nul l)
  540                                               vistaConfi guration =  (VistaIma gingConfig uration)lo adConfigur ation();
  541                             }
  542                             catch( ClassCastE xception c cX)
  543                             {
  544                                      logger.e rror("Unab le to load  configura tion becau se the con figuration  file is i nvalid.",  ccX);
  545                             }
  546                }
  547           }
  548           
  549           /* *
  550            *  
  551            * /
  552           @O verride
  553           pu blic void  storeConfi guration()
  554       {
  555                storeCon figuration (getVistaC onfigurati on());
  556       }
  557           
  558           /* *
  559            *  A package  level met hod for SP I implemen tation to  get the
  560            *  Configura tion.
  561            *  
  562            *  @return
  563            * /
  564           st atic Vista ImagingCon figuration  getVistaC onfigurati on()
  565           {
  566                    if(v istaConfig uration ==  null)
  567                             logger .error("Vi staConfigu ration is  null, poss ibly calle d before V istaDataSo urceProvid er was ins tantiated. ");
  568                    
  569                    retu rn vistaCo nfiguratio n;
  570           }
  571  
  572           @O verride
  573           pu blic Sorte dSet<Provi derService > getServi ces()
  574           {
  575                    retu rn Collect ions.unmod ifiableSor tedSet(ser vices);
  576           }
  577           
  578           pu blic stati c void mai n(String [ ] args)
  579           {
  580                    Syst em.out.pri ntln("Crea ting vista  datasourc e configur ation file ");              
  581                    Vist aImagingCo nfiguratio n vistaCon figuration  = VistaIm agingConfi guration.c reateDefau ltConfigur ation();           
  582                    Vist aImagingDa taSourcePr ovider pro vider = ne w VistaIma gingDataSo urceProvid er(vistaCo nfiguratio n);
  583                    prov ider.store Configurat ion();
  584                    Syst em.out.pri ntln("Conf iguration  file saved  to '" + p rovider.ge tConfigura tionFileNa me() + "'. ");
  585           }
  586   }