39. EPMO Open Source Coordination Office Redaction File Detail Report

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

39.1 Files compared

# Location File Last Modified
1 C:\AraxisMergeCompare\Pri_un\IV-ehmp_cif\FederationDataSourceProvider\main\src\java\gov\va\med\imaging\federationdatasource FederationPatientDataSourceService.java Thu Jun 29 17:22:24 2017 UTC
2 C:\AraxisMergeCompare\Pri_re\IV-ehmp_cif\FederationDataSourceProvider\main\src\java\gov\va\med\imaging\federationdatasource FederationPatientDataSourceService.java Thu Jul 6 15:01:43 2017 UTC

39.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 3 420
Changed 2 4
Inserted 0 0
Removed 0 0

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

39.4 Active regular expressions

No regular expressions were active.

39.5 Comparison detail

  1   /**
  2    * 
  3     Package:  MAG - Vis tA Imaging
  4     WARNING:  Per VHA D irective 2 004-038, t his routin e should n ot be modi fied.
  5     Date Cre ated: Apr  11, 2008
  6     Site Nam e:  Washin gton OI Fi eld Office , Silver S pring, MD
  7       Developer:          
WERFEJ
  8     Descript ion: 
  9  
  10           ;;  +-------- ---------- ---------- ---------- ---------- ---------- ---------- +
  11           ;;  Property  of the US  Government .
  12           ;;  No permis sion to co py or redi stribute t his softwa re is give n.
  13           ;;  Use of un released v ersions of  this soft ware requi res the us er
  14           ;;   to execu te a writt en test ag reement wi th the Vis tA Imaging
  15           ;;   Developm ent Office  of the De partment o f Veterans  Affairs,
  16           ;;   telephon e (301) 73 4-0100.
  17           ;;
  18           ;;  The Food  and Drug A dministrat ion classi fies this  software a s
  19           ;;  a Class I I medical  device.  A s such, it  may not b e changed
  20           ;;  in any wa y.  Modifi cations to  this soft ware may r esult in a n
  21           ;;  adulterat ed medical  device un der 21CFR8 20, the us e of which
  22           ;;  is consid ered to be  a violati on of US F ederal Sta tutes.
  23           ;;  +-------- ---------- ---------- ---------- ---------- ---------- ---------- +
  24  
  25    */
  26   package go v.va.med.i maging.fed erationdat asource;
  27  
  28   import gov .va.med.He althSummar yURN;
  29   import gov .va.med.Pa tientIdent ifier;
  30   import gov .va.med.Ro utingToken ;
  31   import gov .va.med.im aging.arti factsource .ResolvedA rtifactSou rce;
  32   import gov .va.med.im aging.core .interface s.exceptio ns.Connect ionExcepti on;
  33   import gov .va.med.im aging.core .interface s.exceptio ns.MethodE xception;
  34   import gov .va.med.im aging.data source.Pat ientDataSo urceSpi;
  35   import gov .va.med.im aging.data source.exc eptions.Un supportedS erviceMeth odExceptio n;
  36   import gov .va.med.im aging.exch ange.busin ess.Health SummaryTyp e;
  37   import gov .va.med.im aging.exch ange.busin ess.Patien t;
  38   import gov .va.med.im aging.exch ange.busin ess.Patien tMeansTest Result;
  39   import gov .va.med.im aging.exch ange.busin ess.Patien tPhotoID;
  40   import gov .va.med.im aging.exch ange.busin ess.Patien tPhotoIDIn formation;
  41   import gov .va.med.im aging.fede ration.pro xy.Federat ionProxy;
  42   import gov .va.med.im aging.fede ration.pro xy.IFedera tionProxy;
  43   import gov .va.med.im aging.fede ration.tra nslator.Fe derationDa tasourceTr anslator;
  44   import gov .va.med.im aging.prox y.services .ProxyServ ices;
  45   import gov .va.med.im aging.tran sactioncon text.Trans actionCont extFactory ;
  46   import gov .va.med.im aging.url. federation .exception s.Federati onConnecti onExceptio n;
  47   import gov .va.med.im aging.url. federation .exception s.Federati onMethodEx ception;
  48   import gov .va.med.im aging.url. vftp.VftpC onnection;
  49  
  50   import jav a.io.IOExc eption;
  51   import jav a.util.Lis t;
  52   import jav a.util.Sor tedSet;
  53  
  54   import jav ax.xml.rpc .ServiceEx ception;
  55  
  56   import org .apache.lo g4j.Logger ;
  57  
  58   /**
  59    * @author         
WERFEJ
  60    *
  61    */
  62   public cla ss Federat ionPatient DataSource Service 
  63   extends Ab stractFede rationPati entDataSou rceService  
  64   {
  65           pr ivate fina l VftpConn ection fed erationCon nection;
  66           pr ivate fina l static F ederationD atasourceT ranslator  federation Translator  = 
  67                    new  Federation Datasource Translator ();
  68           pr ivate fina l static L ogger logg er = Logge r.getLogge r(Federati onPatientD ataSourceS ervice.cla ss);
  69           
  70           //  Versionin g fields
  71           pr ivate fina l static S tring DATA SOURCE_VER SION = "0" ;
  72           pu blic final  static St ring SUPPO RTED_PROTO COL = "vft p";
  73                    
  74           pr ivate Fede rationProx y proxy =  null;
  75  
  76           
  77           /* *
  78            *  @param re solvedArti factSource
  79            *  @param pr otocol
  80            *  @throws U nsupported OperationE xception
  81            * /
  82           pu blic Feder ationPatie ntDataSour ceService( ResolvedAr tifactSour ce resolve dArtifactS ource, Str ing protoc ol)
  83                    thro ws Unsuppo rtedOperat ionExcepti on
  84           {
  85                    supe r(resolved ArtifactSo urce, prot ocol);
  86                    fede rationConn ection = n ew VftpCon nection(ge tMetadataU rl());
  87           }
  88  
  89           /*  (non-Java doc)
  90            *  @see gov. va.med.ima ging.feder ationdatas ource.Abst ractFedera tionPatien tDataSourc eService#g etDataSour ceVersion( )
  91            * /
  92           @O verride
  93           pu blic Strin g getDataS ourceVersi on() 
  94           {
  95                    retu rn DATASOU RCE_VERSIO N;
  96           }
  97           
  98           @O verride
  99           pu blic Sorte dSet<Patie nt> findPa tients(Rou tingToken  globalRout ingToken,  String sea rchName)
  100           th rows Metho dException , Connecti onExceptio
  101           {
  102                    // J MW 2/6/201 2 - p122 -  added sen sitive sta tus to res ult which  is not par t of v4 Fe derationPa tient inte rface
  103                    // m ake this m ethod not  used so th e data sou rce provid er will fa ll back to  using a n on-Federat ion data s ource
  104                    thro w new Unsu pportedSer viceMethod Exception( PatientDat aSourceSpi .class, "f indPatient s");
  105           }
  106  
  107           @O verride
  108           pu blic List< String> ge tTreatingS ites(Routi ngToken de stinationR outglobalR outingToke ningToken,  
  109                             Patien tIdentifie r patientI dentifier,  boolean i ncludeTrai lingCharac tersForSit e200)
  110           th rows Metho dException , Connecti onExceptio
  111           {
  112                    logg er.info("g etTreating Sites for  patient ("  + patient Identifier  + ") Tran sactionCon text (" +  Transactio nContextFa ctory.get( ).getDispl ayIdentity () + ").") ;
  113                    if(p atientIden tifier.get PatientIde ntifierTyp e().isLoca l())
  114                             throw  new Method Exception( "Cannot us e local pa tient iden tifier to  retrieve r emote pati ent inform ation");
  115                    try 
  116                    {
  117                             federa tionConnec tion.conne ct();                   
  118                    }
  119                    catc h(IOExcept ion ioX) 
  120                    {
  121                             logger .error("Er ror findin g treating  sites", i oX);
  122                             throw  new Federa tionConnec tionExcept ion(ioX);
  123                    }
  124                    try
  125                    {
  126                             String [] sites =  getProxy( ).getPatie ntSitesVis ited(getSi te(), pati entIdentif ier.getVal ue());
  127                             logger .info("get TreatingSi tes got ["  + (sites  == null ?  "0" : site s.length)  + "] sites  from site  [" + getS ite().getS iteNumber( ) + "]");
  128                             return  federatio nTranslato r.transfor mSiteNumbe rs(sites);                  
  129                    }
  130                    catc h(IOExcept ion ioX) 
  131                    {
  132                             logger .error("Er ror gettin g patient  treating s ites", ioX );
  133                             throw  new Federa tionConnec tionExcept ion(ioX);
  134                    }
  135                    catc h(ServiceE xception s X) {
  136                             logger .error("Er ror gettin g patient  treating s ites", sX) ;
  137                             throw  new Federa tionMethod Exception( sX);
  138                    }
  139           }
  140  
  141           @O verride        
  142           pu blic boole an isVersi onCompatib le() 
  143           {
  144                    if(g etFederati onProxySer vices() ==  null)
  145                             return  false;            
  146                    retu rn true;
  147           }
  148           
  149           pr ivate Fede rationProx y getProxy ()
  150           th rows Conne ctionExcep tion
  151           {                 
  152                    if(p roxy == nu ll)
  153                    {
  154                             ProxyS ervices pr oxyService s = getFed erationPro xyServices ();
  155                             if(pro xyServices  == null)
  156                                      throw ne w Connecti onExceptio n("Did not  receive a ny applica ble servic es from ID S service  for site [ " + getSit e().getSit eNumber()  + "]");
  157                             proxy  = new Fede rationProx y(proxySer vices, Fed erationDat aSourcePro vider.getF ederationC onfigurati on());
  158                    }
  159                    retu rn proxy;
  160           }
  161  
  162           @O verride
  163           pu blic boole an logPati entSensiti veAccess(R outingToke n globalRo utingToken ,
  164                             Patien tIdentifie r patientI dentifier)  
  165           th rows Metho dException , Connecti onExceptio n
  166           {
  167                    thro w new Unsu pportedSer viceMethod Exception( PatientDat aSourceSpi .class, "l ogPatientS ensitiveAc cess");
  168           }
  169  
  170           /*  (non-Java doc)
  171            *  @see gov. va.med.ima ging.feder ationdatas ource.Abst ractFedera tionPatien tDataSourc eService#g etFederati onProxy()
  172            * /
  173           @O verride
  174           pr otected IF ederationP roxy getFe derationPr oxy() 
  175           th rows Conne ctionExcep tion
  176           {
  177                    retu rn getProx y();
  178           }
  179  
  180           @O verride
  181           pu blic Patie nt getPati entInforma tion(Routi ngToken gl obalRoutin gToken,
  182                             Patien tIdentifie r patientI dentifier)  
  183           th rows Metho dException , Connecti onExceptio n
  184           {
  185                    thro w new Unsu pportedSer viceMethod Exception( PatientDat aSourceSpi .class, "g etPatientI nformation ");
  186           }
  187  
  188           @O verride
  189           pu blic Patie ntMeansTes tResult ge tPatientMe ansTest(
  190                             Routin gToken glo balRouting Token, Pat ientIdenti fier patie ntIdentifi er)
  191           th rows Metho dException , Connecti onExceptio n
  192           {
  193                    thro w new Unsu pportedSer viceMethod Exception( PatientDat aSourceSpi .class, "g etPatientM eansTest") ;
  194           }
  195  
  196           @O verride
  197           pu blic List< HealthSumm aryType> g etHealthSu mmaryTypes (
  198                             Routin gToken glo balRouting Token) 
  199           th rows Metho dException , Connecti onExceptio n
  200           {
  201                    thro w new Unsu pportedSer viceMethod Exception( PatientDat aSourceSpi .class, "g etHealthSu mmaryTypes ");
  202           }
  203  
  204           @O verride
  205           pu blic Strin g getHealt hSummary(H ealthSumma ryURN heal thSummaryU rn,
  206                             Patien tIdentifie r patientI dentifier)  
  207           th rows Metho dException , Connecti onExceptio n
  208           {
  209                    thro w new Unsu pportedSer viceMethod Exception( PatientDat aSourceSpi .class, "g etHealthSu mmary");
  210           }
  211  
  212   }