157. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 7/10/2017 1:01:47 PM Central Daylight 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.

157.1 Files compared

# Location File Last Modified
1 C:\AraxisMergeCompare\Pri_un\IV-ehmp_cif\VistaImagingDataSourceProvider\main\src\java\gov\va\med\imaging\vistaimagingdatasource VistaImagingDataSourceProvider.java Thu Jun 29 17:22:04 2017 UTC
2 C:\AraxisMergeCompare\Pri_re\IV-ehmp_cif\VistaImagingDataSourceProvider\main\src\java\gov\va\med\imaging\vistaimagingdatasource VistaImagingDataSourceProvider.java Thu Jul 6 15:06:02 2017 UTC

157.2 Comparison summary

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

157.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

157.4 Active regular expressions

No regular expressions were active.

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