369. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 12/5/2017 12:06:49 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.

369.1 Files compared

# Location File Last Modified
1 IV-eHMP_CIF.zip\IMAG_Source\VISA\Java\SiteServiceWebApp\main\src\java\gov\va\med\imaging\exchange\siteservice\web SiteServiceXmlTranslator.java Mon Dec 4 21:35:22 2017 UTC
2 IV-eHMP_CIF.zip\IMAG_Source\VISA\Java\SiteServiceWebApp\main\src\java\gov\va\med\imaging\exchange\siteservice\web SiteServiceXmlTranslator.java Mon Dec 4 22:05:50 2017 UTC

369.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 12 762
Changed 11 22
Inserted 0 0
Removed 0 0

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

369.4 Active regular expressions

No regular expressions were active.

369.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: Sep  24, 2011
  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.exc hange.site service.we b;
  27  
  28   import gov .va.med.im aging.exch ange.busin ess.Region ;
  29   import gov .va.med.im aging.exch ange.busin ess.Region Comparator ;
  30   import gov .va.med.im aging.exch ange.busin ess.Site;
  31   import gov .va.med.im aging.exch ange.sites ervice.Sit eServiceCo ntext;
  32   import gov .va.med.im aging.exch ange.sites ervice.Sit eServiceFa cadeRouter ;
  33   import gov .va.med.im aging.exch ange.sites ervice.tra nslator.Ex changeSite ServiceTra nslator;
  34  
  35   import jav a.io.IOExc eption;
  36   import jav a.io.Print Writer;
  37   import jav a.util.Col lections;
  38   import jav a.util.Lis t;
  39  
  40   import jav ax.servlet .ServletEx ception;
  41   import jav ax.servlet .http.Http ServletReq uest;
  42   import jav ax.servlet .http.Http ServletRes ponse;
  43  
  44   import org .apache.lo gging.log4 j.LogManag er;
  45   import org .apache.lo gging.log4 j.Logger;
  46  
  47   /**
  48    * @author         
WERFEJ
  49    *
  50    */
  51   public cla ss SiteSer viceXmlTra nslator
  52   {
  53           
  54           pr ivate fina l static L ogger logg er = 
  55                    LogM anager.get Logger(Sit eServiceXm lTranslato r.class);
  56  
  57           
  58           pu blic stati c void out putVha(Htt pServletRe quest requ est, 
  59                             HttpSe rvletRespo nse respon se, boolea n exchange SiteServic e)
  60           th rows Servl etExceptio n, IOExcep tion
  61           {
  62                    Site ServiceFac adeRouter  router = S iteService Context.ge tSiteServi ceFacadeRo uter();
  63                    Prin tWriter wr iter = res ponse.getW riter();
  64                    outp utXmlHeade r(writer);
  65                    try
  66                    {
  67                             if(exc hangeSiteS ervice)
  68                             {
  69                                       writer.wri te("<Array OfImagingE xchangeSit eTO xmlns: xsd=\"http ://www.w3. org/2001/X MLSchema\"  xmlns:xsi =\"http:// www.w3.org /2001/XMLS chema-inst ance\" xml ns=\"http: //vistaweb . URL         /webservic es/Imaging ExchangeSi teService\ ">\n");
  70                             }
  71                             else
  72                             {
  73                                       writer.wri te("<Array OfRegionTO  xmlns:xsd =\"http:// www.w3.org /2001/XMLS chema\" xm lns:xsi=\" http://www .w3.org/20 01/XMLSche ma-instanc e\" xmlns= \"http://v istaweb. URL         /WebServic es/SiteSer vice\">\n" );
  74                             }
  75                             
  76                             
  77                             List<R egion> reg ions = rou ter.getReg ionList();
  78                             Collec tions.sort (regions,  new Region Comparator ());
  79                             for(Re gion regio n : region s)
  80                             {
  81                                      if(excha ngeSiteSer vice)
  82                                      {
  83                                               for(Site s ite : regi on.getSite s())
  84                                               {
  85                                                       ou tputSite(s ite, write r, false,  exchangeSi teService) ;
  86                                               }
  87                                      }
  88                                      else
  89                                      {
  90                                               outputRegi on(region,  writer, f alse, exch angeSiteSe rvice);
  91                                      }
  92                             }
  93                             if(exc hangeSiteS ervice)
  94                             {
  95                                      writer.w rite("</Ar rayOfImagi ngExchange SiteTO>\n" );
  96                             }
  97                             else
  98                             {
  99                                      writer.w rite("</Ar rayOfRegio nTO>\n");
  100                             }
  101                    }
  102                    catc h(Exceptio n ex)
  103                    {
  104                             logger .error(ex) ;
  105                    }
  106           }
  107           
  108           pu blic stati c void out putVisn(Ht tpServletR equest req uest, 
  109                             HttpSe rvletRespo nse respon se, boolea n exchange SiteServic e)
  110           th rows Servl etExceptio n, IOExcep tion
  111           {
  112                    Stri ng regionI d = reques t.getParam eter("regi onID");
  113                    Site ServiceFac adeRouter  router = S iteService Context.ge tSiteServi ceFacadeRo uter();
  114                    Prin tWriter wr iter = res ponse.getW riter();
  115                    outp utXmlHeade r(writer);
  116                    try
  117                    {
  118                             Region  region =  router.get Region(reg ionId);
  119                             output Region(reg ion, write r, true, e xchangeSit eService);
  120                    }
  121                    catc h (Excepti on ex)
  122                    {
  123                             output RegionExce ption(writ er, region Id, 
  124                                               true, exch angeSiteSe rvice, ex) ;
  125                    }                 
  126                    writ er.flush() ;
  127                    writ er.close() ;
  128           }
  129           
  130           pr ivate stat ic void ou tputRegion (Region re gion, Prin tWriter wr iter, 
  131                             boolea n includeN amespaces,  boolean e xchangeSit eService)
  132           {
  133                    outp utRegionSt artTag(wri ter, inclu deNamespac es, exchan geSiteServ ice);
  134                    writ er.write(" <name>" +  escapeIlle galCharact ers(region .getRegion Name()) +  "</name>\n ");
  135                    writ er.write(" <ID>" + re gion.getRe gionNumber () +"</ID> \n");
  136                    writ er.write(" <sites>\n" );
  137                    
  138                    // t he IIS sit e service  returns th e sites in  the VISN  in site nu mber order . This is  probably b ecause of  the
  139                    // o rder in th e VhaSites .xml file  but to mim ick that I  am sortin g by the s ite number  and hopin g for the  best
  140                    List <Site> sit es = regio n.getSites ();
  141                    Coll ections.so rt(sites,  new SiteNu mberCompar ator());
  142                    
  143                    for( Site site  : sites)
  144                    {
  145                             output Site(site,  writer, f alse, exch angeSiteSe rvice);
  146                    }
  147                    writ er.write(" </sites>\n ");
  148                    outp utRegionEn dTag(write r, exchang eSiteServi ce);
  149           }
  150           
  151           pr ivate stat ic void ou tputRegion Exception( PrintWrite r writer,  String reg ionNumber,  
  152                             boolea n includeN amespaces,  boolean e xchangeSit eService,  Exception  ex)
  153           {
  154                    outp utRegionSt artTag(wri ter, inclu deNamespac es, exchan geSiteServ ice);
  155                    
  156                    writ er.write(" <ID>" + re gionNumber  + "</ID>\ n");
  157                    writ er.write(" <faultTO>\ n");
  158                    writ er.write(" <type>" +  ex.getClas s().getNam e() + "</t ype>\n");
  159                    writ er.write(" <message>"  + ex.getM essage() +  "</messag e>\n");
  160                    writ er.write(" <suggestio n>Invalid  VISN numbe r?</sugges tion>\n");
  161                    writ er.write(" </faultTO> \n");
  162                    
  163                    outp utRegionEn dTag(write r, exchang eSiteServi ce);
  164                    
  165           }
  166           
  167           pr ivate stat ic void ou tputRegion StartTag(P rintWriter  writer, b oolean inc ludeNamesp aces, bool ean exchan geSiteServ ice)
  168           {
  169                    if(e xchangeSit eService)
  170                    {
  171                             writer .write("<I magingExch angeRegion TO");
  172                             if(inc ludeNamesp aces)
  173                                       writer.wri te(" xmlns :xsd=\"htt p://www.w3 .org/2001/ XMLSchema\ " xmlns:xs i=\"http:/ /www.w3.or g/2001/XML Schema-ins tance\" xm lns=\"http ://vistawe b. URL         /webservic es/Imaging ExchangeSi teService\ "");
  174                             writer .write(">\ n");
  175                    }
  176                    else
  177                    {
  178                             writer .write("<R egionTO");
  179                             if(inc ludeNamesp aces)
  180                                       writer.wri te(" xmlns :xsd=\"htt p://www.w3 .org/2001/ XMLSchema\ " xmlns:xs i=\"http:/ /www.w3.or g/2001/XML Schema-ins tance\" xm lns=\"http ://vistawe b. URL         /WebServic es/SiteSer vice\"");
  181                             writer .write(">\ n");
  182                    }
  183           }
  184           
  185           pr ivate stat ic void ou tputRegion EndTag(Pri ntWriter w riter, boo lean excha ngeSiteSer vice)
  186           {
  187                    if(e xchangeSit eService)
  188                    {
  189                             writer .write("</ ImagingExc hangeRegio nTO>\n");
  190                    }
  191                    else
  192                    {
  193                             writer .write("</ RegionTO>\ n");
  194                    }
  195           }
  196           
  197           pu blic stati c void out putSites(H ttpServlet Request re quest, 
  198                             HttpSe rvletRespo nse respon se, boolea n exchange SiteServic e)
  199           th rows Servl etExceptio n, IOExcep tion
  200           {
  201                    Stri ng siteIDs  = request .getParame ter("siteI Ds");
  202                    Stri ng[] siteN umbers = E xchangeSit eServiceTr anslator.c onvertDeli mitedStrin gsIntoSite Numbers(si teIDs);
  203                    Site ServiceFac adeRouter  router = S iteService Context.ge tSiteServi ceFacadeRo uter();
  204                    Prin tWriter wr iter = res ponse.getW riter();
  205                    outp utXmlHeade r(writer);
  206                    if(e xchangeSit eService)
  207                    {
  208                              writer.wri te("<Array OfImagingE xchangeSit eTO xmlns: xsd=\"http ://www.w3. org/2001/X MLSchema\"  xmlns:xsi =\"http:// www.w3.org /2001/XMLS chema-inst ance\" xml ns=\"http: //vistaweb . URL         /webservic es/Imaging ExchangeSi teService\ ">\n");
  209                    }
  210                    else
  211                    {
  212                              writer.wri te("<Array OfSiteTO x mlns:xsd=\ "http://ww w.w3.org/2 001/XMLSch ema\" xmln s:xsi=\"ht tp://www.w 3.org/2001 /XMLSchema -instance\ " xmlns=\" http://vis taweb. URL         /WebServic es/SiteSer vice\">\n" );
  213                    }
  214                    
  215                    for( String sit eNumber :  siteNumber s)
  216                    {
  217                             try
  218                             {
  219                                      Site sit e = router .getSite(s iteNumber) ;
  220                                      if(site  == null)
  221                                               throw new  NullPointe rException ();
  222                                      outputSi te(site, w riter, fal se, exchan geSiteServ ice);
  223                             }
  224                             catch  (Exception  ex)
  225                             {
  226                                      outputSi teExceptio n(writer,  siteNumber , false, e xchangeSit eService,  ex);
  227                             }
  228                    }
  229                    if(e xchangeSit eService)
  230                    {
  231                             writer .write("</ ArrayOfIma gingExchan geSiteTO>\ n");
  232                    }
  233                    else
  234                    {
  235                             writer .write("</ ArrayOfSit eTO>\n");
  236                    }
  237                    
  238                    writ er.flush() ;
  239                    writ er.close() ;
  240                    
  241           }
  242           
  243           pr ivate stat ic void ou tputSiteEx ception(Pr intWriter  writer, St ring siteN umber, 
  244                             boolea n includeN amespaces,  boolean e xchangeSit eService,  Exception  ex)
  245           {
  246                    outp utSiteStar tTag(write r, include Namespaces , exchange SiteServic e);
  247                    
  248                    if(e xchangeSit eService)
  249                    {
  250                             writer .write("<s iteNumber> " + siteNu mber + "</ siteNumber >\n");
  251                    }
  252                    else
  253                    {
  254                             writer .write("<s itecode>"  + siteNumb er + "</si tecode>\n" );
  255                    }
  256                    writ er.write(" <faultTO>\ n");
  257                    writ er.write(" <type>" +  ex.getClas s().getNam e() + "</t ype>\n");
  258                    writ er.write(" <message>"  + ex.getM essage() +  "</messag e>\n");
  259                    writ er.write(" <suggestio n>Invalid  site code? </suggesti on>\n");
  260                    writ er.write(" </faultTO> \n");
  261                    
  262                    outp utSiteEndT ag(writer,  exchangeS iteService );
  263                    
  264           }
  265           
  266           pr ivate stat ic void ou tputSiteSt artTag(Pri ntWriter w riter, 
  267                             boolea n includeN amespaces,  boolean e xchangeSit eService)
  268           {
  269                    if(e xchangeSit eService)
  270                    {
  271                              writer.wri te("<Imagi ngExchange SiteTO");/ / xmlns:xs d=\"http:/ /www.w3.or g/2001/XML Schema\" x mlns:xsi=\ "http://ww w.w3.org/2 001/XMLSch ema-instan ce\" xmlns =\"http:// vistaweb. URL         /webservic es/Imaging ExchangeSi teService\ ">");
  272                             if(inc ludeNamesp aces)
  273                                       writer.wri te(" xmlns :xsd=\"htt p://www.w3 .org/2001/ XMLSchema\ " xmlns:xs i=\"http:/ /www.w3.or g/2001/XML Schema-ins tance\" xm lns=\"http ://vistawe b. URL         /webservic es/Imaging ExchangeSi teService\ "");
  274                             writer .write(">\ n");
  275                    }
  276                    else
  277                    {                         
  278                             writer .write("<S iteTO");
  279                             if(inc ludeNamesp aces)
  280                                       writer.wri te(" xmlns :xsd=\"htt p://www.w3 .org/2001/ XMLSchema\ " xmlns:xs i=\"http:/ /www.w3.or g/2001/XML Schema-ins tance\" xm lns=\"http ://vistawe b. URL         /WebServic es/SiteSer vice\"");
  281                             writer .write(">\ n");
  282                    }
  283           }
  284           
  285           pr ivate stat ic void ou tputSiteEn dTag(Print Writer wri ter, 
  286                             boolea n exchange SiteServic e)
  287           {
  288                    if(e xchangeSit eService)
  289                    {
  290                             writer .write("</ ImagingExc hangeSiteT O>\n");
  291                    }
  292                    else
  293                    {                         
  294                             writer .write("</ SiteTO>\n" );                      
  295                    }
  296           }
  297           
  298           pu blic stati c void out putSite(Ht tpServletR equest req uest, 
  299                             HttpSe rvletRespo nse respon se, boolea n exchange SiteServic e)
  300           th rows Servl etExceptio n, IOExcep tion
  301           {
  302                    Stri ng siteId  = request. getParamet er("siteID ");
  303                    Site ServiceFac adeRouter  router = S iteService Context.ge tSiteServi ceFacadeRo uter();
  304                    Prin tWriter wr iter = res ponse.getW riter();
  305                    outp utXmlHeade r(writer);
  306                    try
  307                    {
  308                             Site s ite = rout er.getSite (siteId);                       
  309                             output Site(site,  writer, t rue, excha ngeSiteSer vice);                      
  310                    }
  311                    catc h(Exceptio n ex)
  312                    {
  313                             logger .debug(ex) ;
  314                             output SiteExcept ion(writer , siteId,  true, exch angeSiteSe rvice, ex) ;                       
  315                    }
  316                    writ er.flush() ;
  317                    writ er.close() ;
  318           }
  319           
  320           pr ivate stat ic void ou tputSite(S ite site,  PrintWrite r writer, 
  321                             boolea n includeN amespaces,  boolean e xchangeSit eService)
  322           {
  323                    if(e xchangeSit eService)
  324                    {
  325                             output SiteStartT ag(writer,  includeNa mespaces,  exchangeSi teService) ;
  326                             writer .write("<s iteNumber> " + site.g etSiteNumb er() + "</ siteNumber >\n");
  327                             writer .write("<s iteName>"  + escapeIl legalChara cters(site .getSiteNa me()) + "< /siteName> \n");
  328                             writer .write("<r egionID>"  + site.get RegionId()  + "</regi onID>\n");
  329                             writer .write("<s iteAbbr>"  + site.get SiteAbbr()  + "</site Abbr>\n");                         
  330                             writer .write("<v istaServer >" + site. getVistaSe rver() + " </vistaSer ver>\n");
  331                             writer .write("<v istaPort>"  + site.ge tVistaPort () + "</vi staPort>\n ");
  332                             if(sit e.getAccel eratorServ er() == nu ll || site .getAccele ratorServe r().length () <= 0)
  333                                      writer.w rite("<acc eleratorSe rver />\n" );
  334                             else
  335                                      writer.w rite("<acc eleratorSe rver>" + s ite.getAcc eleratorSe rver() + " </accelera torServer> \n");
  336                             writer .write("<a ccelerator Port>" + s ite.getAcc eleratorPo rt() + "</ accelerato rPort>\n") ;
  337                             output SiteEndTag (writer, e xchangeSit eService);
  338                    }
  339                    else
  340                    {                         
  341                             output SiteStartT ag(writer,  includeNa mespaces,  exchangeSi teService) ;
  342                             writer .write("<s itecode>"  + site.get SiteNumber () + "</si tecode>\n" );
  343                             writer .write("<n ame>" + es capeIllega lCharacter s(site.get SiteName() ) + "</nam e>\n");
  344                             writer .write("<d isplayName >" + escap eIllegalCh aracters(s ite.getSit eName()) +  "</displa yName>\n") ;
  345                             writer .write("<m oniker>" +  site.getS iteAbbr()  + "</monik er>\n");
  346                             writer .write("<r egionID>"  + site.get RegionId()  + "</regi onID>\n");
  347                             writer .write("<h ostname>"  + site.get VistaServe r() + "</h ostname>\n ");
  348                             writer .write("<p ort>" + si te.getVist aPort() +  "</port>\n ");
  349                             writer .write("<s tatus>acti ve</status >\n");
  350                             output SiteEndTag (writer, e xchangeSit eService);                    
  351                    }
  352           }
  353  
  354           pr ivate stat ic void ou tputXmlHea der(PrintW riter writ er)
  355           {
  356                    writ er.write(" <?xml vers ion=\"1.0\ " encoding =\"utf-8\" ?>\n");
  357           }
  358           
  359           pr ivate stat ic Replace mentCharac ters [] re placementC haracters 
  360                    new  Replacemen tCharacter s [] 
  361      {
  362                    new  SiteServic eXmlTransl ator.Repla cementChar acters(
  363                                      new Stri ng("&"),ne w String(" &amp;")),
  364                    new  SiteServic eXmlTransl ator.Repla cementChar acters(
  365                                      new Stri ng("<"),ne w String(" &lt;")),
  366                    new  SiteServic eXmlTransl ator.Repla cementChar acters(
  367                                      new Stri ng(">"),ne w String(" &gt;"))
  368      };
  369           
  370           pr ivate stat ic String  escapeIlle galCharact ers(String  value)
  371           {
  372                    if(v alue == nu ll)
  373                             return  null;
  374                    for( Replacemen tCharacter s replacem entCharact er : repla cementChar acters)
  375                    {
  376                             value  = value.re place(repl acementCha racter.old Char, repl acementCha racter.new Char);
  377                    }
  378                    retu rn value;
  379           }
  380           
  381           st atic class  Replaceme ntCharacte rs
  382           {
  383                    Char Sequence o ldChar;
  384                    Char Sequence n ewChar;
  385                    
  386                    Repl acementCha racters(Ch arSequence  oldChar,  CharSequen ce newChar )
  387                    {
  388                             this.o ldChar = o ldChar;
  389                             this.n ewChar = n ewChar;
  390                    }
  391           }
  392   }