91. EPMO Open Source Coordination Office Redaction File Detail Report

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

91.1 Files compared

# Location File Last Modified
1 IV-eHMP_CIF.zip\IMAG_Source\VISA\Java\ClinicalDisplayWebApp\main\src\java\gov\va\med\imaging\clinicaldisplay\webservices ClinicalDisplayWebservices.java Mon Dec 4 21:35:04 2017 UTC
2 IV-eHMP_CIF.zip\IMAG_Source\VISA\Java\ClinicalDisplayWebApp\main\src\java\gov\va\med\imaging\clinicaldisplay\webservices ClinicalDisplayWebservices.java Mon Dec 4 21:58:11 2017 UTC

91.2 Comparison summary

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

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

91.4 Active regular expressions

No regular expressions were active.

91.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: Feb  4, 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.cli nicaldispl ay.webserv ices;
  27  
  28   import gov .va.med.Pa tientIdent ifier;
  29   import gov .va.med.UR NFactory;
  30   import gov .va.med.ex ceptions.R outingToke nFormatExc eption;
  31   import gov .va.med.im aging.exch ange.Routi ngTokenHel per;
  32   import gov .va.med.im aging.Stud yURN;
  33   import gov .va.med.im aging.clin icaldispla y.Clinical DisplayRou ter;
  34   import gov .va.med.im aging.clin icaldispla y.ImagingC linicalDis playContex t;
  35   import gov .va.med.im aging.clin icaldispla y.webservi ces.soap.P ingServerT ypeRespons e;
  36   import gov .va.med.im aging.clin icaldispla y.webservi ces.transl ator.Clini calDisplay Translator ;
  37   import gov .va.med.im aging.core .interface s.IAppConf iguration;
  38   import gov .va.med.im aging.core .interface s.exceptio ns.Connect ionExcepti on;
  39   import gov .va.med.im aging.core .interface s.exceptio ns.MethodE xception;
  40   import gov .va.med.im aging.exce ptions.URN FormatExce ption;
  41   import gov .va.med.im aging.exch ange.Image AccessLogE vent;
  42   import gov .va.med.im aging.exch ange.busin ess.Study;
  43   import gov .va.med.im aging.exch ange.busin ess.StudyF ilter;
  44   import gov .va.med.im aging.exch ange.busin ess.Reques tor.Purpos eOfUse;
  45   import gov .va.med.im aging.exch ange.busin ess.util.E xchangeUti l;
  46   import gov .va.med.im aging.tran sactioncon text.Trans actionCont ext;
  47   import gov .va.med.im aging.tran sactioncon text.Trans actionCont extFactory ;
  48  
  49   import jav a.rmi.Remo teExceptio n;
  50   import jav a.util.Lis t;
  51  
  52   import org .apache.lo gging.log4 j.LogManag er;
  53   import org .apache.lo gging.log4 j.Logger;
  54  
  55   /**
  56    * @deprec ated This  version is  no longer  used - P7 2 clients  can techni cally use  this versi on but 
  57    * will al ways try t o use a hi gher versi on. Older  P72 client s only cou ld use thi s version  but they
  58    * would n ot be able  to find t his interf ace in the  I6 ViX (l ooking at  ImagingExc hangeWebAp p instead
  59    * of Clin icalDispla yWebApp).
  60    * @author         
WERFEJ
  61    *
  62    */
  63   public cla ss Clinica lDisplayWe bservices 
  64   implements  gov.va.me d.imaging. clinicaldi splay.webs ervices.so ap.ImageCl inicalDisp layMetadat a
  65   {
  66           
  67           pr ivate fina l static L ogger logg er = LogMa nager.getL ogger(Clin icalDispla yWebservic es.class);
  68           pr ivate fina l static C linicalDis playTransl ator inter preter = n ew Clinica lDisplayTr anslator() ;
  69           
  70           pu blic gov.v a.med.imag ing.clinic aldisplay. webservice s.soap.Sha llowStudyT ype[] getP atientShal lowStudyLi st(
  71                             java.l ang.String  transacti onId, 
  72                             java.l ang.String  siteId, 
  73                             java.l ang.String  patientId
  74                             gov.va .med.imagi ng.clinica ldisplay.w ebservices .soap.Filt erType fil ter, 
  75                             gov.va .med.imagi ng.clinica ldisplay.w ebservices .soap.User Credential s credenti als) 
  76           th rows java. rmi.Remote Exception  {
  77                    setT ransaction Context(cr edentials,  transacti onId);
  78                    Long  startTime  = System. currentTim eMillis();
  79                    logg er.info("s tart Clini calDisplay  getPatien tShallowSt udyList tr ansaction( " + transa ctionId +  ")" );
  80                    Tran sactionCon text trans actionCont ext = Tran sactionCon textFactor y.get();
  81                    Stud yFilter in ternalFilt er = inter preter.tra nsformFilt er(filter) ;
  82                    // i nitialize  the transa ction cont ext
  83                    //TO DO: set Re quest type  generical ly
  84                    tran sactionCon text.setRe questType( "getPatien tShallowSt udyList");
  85                    tran sactionCon text.setPa tientID(pa tientId);
  86                    tran sactionCon text.setQu eryFilter( Transactio nContextFa ctory.getF ilterDateR ange(inter nalFilter. getFromDat e(), inter nalFilter. getToDate( )));
  87                    tran sactionCon text.setQu ality("n/a ");
  88                    tran sactionCon text.setUr n("n/a");
  89                    if(E xchangeUti l.isSiteDO D(credenti als.getSit eNumber()) )
  90                    {
  91                             transa ctionConte xt.setRequ estingSour ce("DOD");
  92                    }
  93                    else
  94                    {
  95                             transa ctionConte xt.setRequ estingSour ce("VA");
  96                    }
  97                    
  98                    // g et the mes sage conte xt first
  99           // MessageCon text msgCo ntext = Me ssageConte xt.getCurr entContext ();
  100           // HttpServle tRequest r equest = ( HttpServle tRequest)  msgContext .getProper ty(HTTPCon stants.MC_ HTTP_SERVL ETREQUEST) ;
  101                    
  102                    logg er.debug(" getPatient ShallowStu dyList tra nsforming  filter int o business  object.") ;
  103                    
  104                    Clin icalDispla yRouter rt r = Imagin gClinicalD isplayCont ext.getRou ter(); 
  105                    //Ro uter route r = Imagin gClinicalD isplayCont ext.getVix Router();
  106  
  107                    logg er.debug(" getPatient ShallowStu dyList get ting patie nt studies  list from  " + rtr.g etClass(). getName() 
  108                                      " type m anager ins tance.");
  109                    gov. va.med.ima ging.clini caldisplay .webservic es.soap.Sh allowStudy Type[] res ult = null ;
  110                    
  111                    try      
  112                    {
  113                             List<S tudy> stud ies = rtr. getPatient StudyList(
  114                                      RoutingT okenHelper .createSit eAppropria teRoutingT oken(siteI d), 
  115                                      PatientI dentifier. icnPatient Identifier (patientId ), interna lFilter);
  116                             // upd ate the tr ansaction  context wi th the stu dy count
  117                             transa ctionConte xt.setEntr iesReturne d( studies  == null ?  0 : studi es.size()  );
  118                             logger .debug("ge tPatientSh allowStudy List trans forming re sults from  business  objects.") ;
  119                             result  = interpr eter.trans formStudie sToShallow Studies(st udies);
  120                    }
  121                    catc h(MethodEx ception mX )
  122                    {
  123                             logger .error("FA ILED getPa tientShall owStudyLis t method E xception:  " + mX.toS tring() +  " ms", mX  );
  124                             transa ctionConte xt.setErro rMessage(m X.getMessa ge());
  125                             transa ctionConte xt.setExce ptionClass Name(mX.ge tClass().g etSimpleNa me());
  126                             throw  new Remote Exception( "Internal  error, una ble to ret rieve pati ent studie s", mX);
  127                    }
  128                    catc h(Connecti onExceptio n cX)
  129                    {
  130                             logger .error("FA ILED getPa tientShall owStudyLis t connecti on Excepti on: " + cX .toString( ) + " ms",  cX );
  131                             transa ctionConte xt.setErro rMessage(c X.getMessa ge());
  132                             transa ctionConte xt.setExce ptionClass Name(cX.ge tClass().g etSimpleNa me());
  133                             throw  new Remote Exception( "Internal  error, una ble to ret rieve pati ent studie s", cX);
  134                    }
  135                    catc h(URNForma tException  iurnfX)
  136                    {
  137                             logger .error("FA ILED getPa tientShall owStudyLis t transact ion(" + tr ansactionI d, iurnfX  );
  138                             transa ctionConte xt.setErro rMessage(i urnfX.getM essage());
  139                             transa ctionConte xt.setExce ptionClass Name(iurnf X.getClass ().getSimp leName());
  140                             throw  new Remote Exception( "Internal  error, una ble to tra nslate stu dy metadat a", iurnfX );
  141                    }        
  142                    catc h (Routing TokenForma tException  rtfX)
  143                    {
  144                             logger .error("FA ILED getPa tientShall owStudyLis t transact ion(" + tr ansactionI d, rtfX );
  145                             transa ctionConte xt.setErro rMessage(r tfX.getMes sage());
  146                             transa ctionConte xt.setExce ptionClass Name(rtfX. getClass() .getSimple Name());
  147                             throw  new Remote Exception( "Internal  error, una ble to ret rieve stud y metadata ", rtfX);
  148                    }        
  149                    logg er.info("c omplete Cl inicalDisp lay getPat ientShallo wStudyList  transacti on(" + tra nsactionId  + ") in "  + 
  150                                      (System. currentTim eMillis()  - startTim e) +       " ms)" );
  151           re turn resul t;
  152       }
  153  
  154       public  gov.va.me d.imaging. clinicaldi splay.webs ervices.so ap.FatImag eType[] ge tStudyImag eList(
  155                    java .lang.Stri ng transac tionId, 
  156                    java .lang.Stri ng studyId
  157                    gov. va.med.ima ging.clini caldisplay .webservic es.soap.Us erCredenti als creden tials) 
  158       throws  java.rmi. RemoteExce ption {
  159           se tTransacti onContext( credential s, transac tionId);
  160           
  161           lo ng startTi me = Syste m.currentT imeMillis( );
  162                    logg er.info("s tart Clini calDisplay  getStudyI mageList t ransaction (" + trans actionId +  ")" );
  163                    
  164                    Tran sactionCon text trans actionCont ext = Tran sactionCon textFactor y.get();
  165                    Stud yURN study Urn = null ;
  166                    List <gov.va.me d.imaging. exchange.b usiness.Im age> image s = null;
  167                    gov. va.med.ima ging.clini caldisplay .webservic es.soap.Fa tImageType [] result  = null;
  168                    // i nitialize  the transa ction cont ext
  169                    //TO DO: set Re quest type  generical ly
  170                    
  171                    if(E xchangeUti l.isSiteDO D(credenti als.getSit eNumber()) )
  172                    {
  173                             transa ctionConte xt.setRequ estingSour ce("DOD");
  174                    }
  175                    else
  176                    {
  177                             transa ctionConte xt.setRequ estingSour ce("VA");
  178                    }
  179                    
  180                    tran sactionCon text.setRe questType( "getStudyI mageList") ;
  181                    tran sactionCon text.setQu eryFilter( "n/a");
  182                    tran sactionCon text.setQu ality("n/a ");
  183                    tran sactionCon text.setUr n("n/a");
  184                    
  185                    try  {
  186                             studyU rn = URNFa ctory.crea te(studyId , StudyURN .class);
  187                             
  188                             transa ctionConte xt.setUrn( studyId);
  189                             // upd ate the tr ansaction  context wi th patient Id
  190                             transa ctionConte xt.setPati entID(stud yUrn.getPa tientId()) ;
  191                             Clinic alDisplayR outer rtr  = ImagingC linicalDis playContex t.getRoute r(); 
  192                             //Rout er vixCore  = Imaging ClinicalDi splayConte xt.getVixR outer();
  193                             
  194                             Study  study = rt r.getPatie ntStudy(st udyUrn);
  195                             transa ctionConte xt.setEntr iesReturne d( study = = null ? 0  : study.g etImageCou nt());
  196                             result  = interpr eter.trans formStudyT oFatImages (study);
  197                             
  198                             /*
  199                             images  = vixCore .getStudyI mageList(s tudyUrn);
  200                             // upd ate the tr ansaction  context wi th the ima ge count
  201                             transa ctionConte xt.setEntr iesReturne d( images  == null ?  0 : images .size() );
  202                             result  = (gov.va .med.imagi ng.clinica ldisplay.w ebservices .soap.FatI mageType[] )interpret er.transfo rmImagesTo FatImages( images);
  203                             */
  204                    }
  205                    catc h (ClassCa stExceptio n e)
  206           {
  207                             // the  URN.creat e() can th row a Clas sCastExcep tion if th e string U RN has the  wrong nam espace ide ntifier
  208                             String  msg = "'"  + studyId  + "' is n ot a valid  study ide ntifier (S tudyURN)." ;
  209                             logger .info(msg) ;
  210                             transa ctionConte xt.setErro rMessage(m sg);
  211                             transa ctionConte xt.setExce ptionClass Name(e.get Class().ge tSimpleNam e());
  212                             throw  new Remote Exception( "Internal  error, una ble to tra nslate stu dy Id", e) ;
  213           } 
  214                    catc h(URNForma tException  iurnfX) {
  215                             logger .info("FAI LED getStu dyImageLis t transact ion(" + tr ansactionI d + ") aft er " + (Sy stem.curre ntTimeMill is() - sta rtTime) +  " ms", iur nfX);
  216                             transa ctionConte xt.setErro rMessage(i urnfX.getM essage());
  217                             transa ctionConte xt.setExce ptionClass Name(iurnf X.getClass ().getSimp leName());
  218                             throw  new Remote Exception( "Internal  error, una ble " + (( studyUrn== null) ? "t o translat e study Id " : "to tr ansform Im ages"), iu rnfX);
  219                    }
  220                    catc h(MethodEx ception mX ) {
  221                             logger .info("FAI LED getStu dyImageLis t method e xception ( " + transa ctionId +  ") after "  + (System .currentTi meMillis()  - startTi me) + " ms ", mX);
  222                             transa ctionConte xt.setErro rMessage(m X.getMessa ge());
  223                             transa ctionConte xt.setExce ptionClass Name(mX.ge tClass().g etSimpleNa me());
  224                             throw  new Remote Exception( "Internal  error, una ble to ret rieve stud y images",  mX);
  225                    }
  226                    catc h(Connecti onExceptio n cX)
  227                    {
  228                             logger .error("FA ILED getPa tientShall owStudyLis t connecti on Excepti on: " + cX .toString( ) + " ms",  cX );
  229                             transa ctionConte xt.setErro rMessage(c X.getMessa ge());
  230                             transa ctionConte xt.setExce ptionClass Name(cX.ge tClass().g etSimpleNa me());
  231                             throw  new Remote Exception( "Internal  error, una ble to ret rieve pati ent studie s", cX);
  232                    }
  233                    logg er.info("c omplete Cl inicalDisp lay getStu dyImageLis t transact ion(" + tr ansactionI d + ") in  " + 
  234                                      (System. currentTim eMillis()  - startTim e) +       " ms" );
  235                    retu rn result;           
  236       }
  237  
  238       public  boolean p ostImageAc cessEvent( java.lang. String tra nsactionId
  239                    gov. va.med.ima ging.clini caldisplay .webservic es.soap.Im ageAccessL ogEventTyp e logEvent
  240       throws  java.rmi. RemoteExce ption {
  241           se tTransacti onContext( logEvent.g etCredenti als(), tra nsactionId );
  242           Tr ansactionC ontext tra nsactionCo ntext = Tr ansactionC ontextFact ory.get();
  243           lo ng startTi me = Syste m.currentT imeMillis( );
  244                    logg er.info("s tart Clini calDisplay  postImage AccessEven t transact ion(" + tr ansactionI d + ")" );
  245                    logg er.info("l ogEvent me ssage [" +  logEvent. getReason( ) + "]");
  246                    try
  247                    {
  248                             ImageA ccessLogEv ent event  = interpre ter.transf ormLogEven t(logEvent );
  249                             // not  sure if t his should  be here,  what if IC N is empty ?                         
  250                             transa ctionConte xt.setPati entID(even t.getPatie ntIcn());
  251                             transa ctionConte xt.setRequ estType("p ostImageAc cessEvent" );
  252                             transa ctionConte xt.setQuer yFilter("n /a");
  253                             transa ctionConte xt.setQual ity("n/a") ;
  254                             // nee d to use t he Id from  the webse rvice log  event sinc e it is th e full URN  and not j ust 
  255                             // the  individua l image id entifier
  256                             transa ctionConte xt.setUrn( logEvent.g etImageId( ));
  257                             Clinic alDisplayR outer rtr  = ImagingC linicalDis playContex t.getRoute r(); 
  258                             //Rout er vixCore  = Imaging ClinicalDi splayConte xt.getVixR outer();
  259                             rtr.lo gImageAcce ssEvent(ev ent);
  260                    }
  261                    catc h(Connecti onExceptio n cX)
  262                    {
  263                             logger .error("FA ILED postI mageAccess Event conn ection Exc eption: "  + cX.toStr ing() + "  ms", cX );
  264                             transa ctionConte xt.setErro rMessage(c X.getMessa ge());
  265                             transa ctionConte xt.setExce ptionClass Name(cX.ge tClass().g etSimpleNa me());
  266                             throw  new Remote Exception( "Internal  error, una ble to pos t image ac cess", cX) ;
  267                    }
  268                    catc h(MethodEx ception cX )
  269                    {
  270                             logger .error("FA ILED postI mageAccess Event meth od Excepti on: " + cX .toString( ) + " ms",  cX );
  271                             transa ctionConte xt.setErro rMessage(c X.getMessa ge());
  272                             transa ctionConte xt.setExce ptionClass Name(cX.ge tClass().g etSimpleNa me());
  273                             throw  new Remote Exception( "Internal  error, una ble to pos t image ac cess", cX) ;
  274                    }
  275                    catc h(URNForma tException  iurnfX) 
  276                    {
  277                             transa ctionConte xt.setExce ptionClass Name(iurnf X.getClass ().getSimp leName());
  278                             transa ctionConte xt.setErro rMessage(i urnfX.getM essage());
  279                             logger .info("FAI lED postIm ageAccessE vent trans action ("  + transact ionId + ") , unable t o translat e image Id ", iurnfX) ;
  280                             throw  new Remote Exception( "Internal  error, una ble to tra nslate ima ge Id", iu rnfX);
  281                    }
  282                    logg er.info("c omplete Cl inicalDisp lay postIm ageAccessE vent trans action(" +  transacti onId + ")  in " + (Sy stem.curre ntTimeMill is() - sta rtTime) +  " ms" );
  283                    retu rn true;
  284       }
  285  
  286       public  gov.va.me d.imaging. clinicaldi splay.webs ervices.so ap.PingSer verTypeRes ponse ping ServerEven t(
  287                    java .lang.Stri ng transac tionId, 
  288                    java .lang.Stri ng clientW orkstation
  289                    java .lang.Stri ng request SiteNumber
  290       throws  java.rmi. RemoteExce ption {
  291           lo gger.info( "pingServe rEvent fro m [" + cli entWorksta tion + "]  going to s ite number  [" + requ estSiteNum ber + "]") ;
  292           
  293                    IApp Configurat ion appCon figuration  = Imaging ClinicalDi splayConte xt.getAppC onfigurati on();
  294                    Ping ServerType Response r esponse =  PingServer TypeRespon se.SERVER_ UNAVAILABL E;
  295                    
  296                    Tran sactionCon text trans actionCont ext = Tran sactionCon textFactor y.get();
  297                    tran sactionCon text.setRe questType( "pingServe r: " + req uestSiteNu mber);
  298                    tran sactionCon text.setQu eryFilter( "n/a");
  299                    tran sactionCon text.setQu ality("n/a ");
  300                    tran sactionCon text.setUr n("n/a");
  301                    tran sactionCon text.setTr ansactionI d(transact ionId);
  302                    
  303                    // c heck to se e if this  request is  to the lo cal site
  304                    if(a ppConfigur ation.getL ocalSiteNu mber().equ alsIgnoreC ase(reques tSiteNumbe r)) 
  305                    {
  306                                      response  = PingSer verTypeRes ponse.SERV ER_READY;
  307                    }
  308                    else  if("200". equalsIgno reCase(req uestSiteNu mber))
  309                    {
  310                             respon se = PingS erverTypeR esponse.SE RVER_READY ;
  311                    }
  312  
  313                    //TO DO: change  this to c all the ro uter so it  can make  a better d ecision on  whether o r not to a llow this  connection  to go thr ough
  314                    retu rn respons e;
  315       }
  316  
  317       public  java.lang .String pr efetchStud yList(java .lang.Stri ng transac tionId, ja va.lang.St ring siteI d, java.la ng.String  patientId,  gov.va.me d.imaging. clinicaldi splay.webs ervices.so ap.FilterT ype filter , gov.va.m ed.imaging .clinicald isplay.web services.s oap.UserCr edentials  credential s) throws  java.rmi.R emoteExcep tion {
  318           re turn null;
  319       }
  320       
  321       privat e void set Transactio nContext(
  322                             gov.va .med.imagi ng.clinica ldisplay.w ebservices .soap.User Credential s credenti als,
  323                             String  transacti onId)
  324           {
  325                    logg er.info(
  326                                      "setTran sactionCon text, id=' " + transa ctionId + 
  327                                      "', user name='" +  credential s == null  || credent ials.getFu llname() = = null ? " null" : cr edentials. getFullnam e() + 
  328                                      "'.");
  329                    Tran sactionCon text trans actionCont ext = Tran sactionCon textFactor y.get();
  330                    
  331                    if(t ransaction Id != null )
  332                             transa ctionConte xt.setTran sactionId( transactio nId);
  333                    
  334                    if(c redentials  != null)
  335                    {
  336                             if( cr edentials. getFullnam e() != nul l )
  337                                      transact ionContext .setFullNa me(credent ials.getFu llname());
  338                             if( cr edentials. getSiteNum ber() != n ull )
  339                                      transact ionContext .setSiteNu mber(crede ntials.get SiteNumber ());
  340                             if( cr edentials. getSiteNam e() != nul l )
  341                                      transact ionContext .setSiteNa me(credent ials.getSi teName());
  342                             if( cr edentials. getDuz() ! = null )
  343                                      transact ionContext .setPurpos eOfUse(cre dentials.g etDuz());
  344                             if( cr edentials. getSsn() ! = null )
  345                                      transact ionContext .setSsn(cr edentials. getSsn());
  346                             transa ctionConte xt.setPurp oseOfUse(P urposeOfUs e.routineM edicalCare .getDescri ption());
  347                    }                 
  348           }
  349       
  350       privat e void set Transactio nContext(S tring tran sactionId)  {
  351                    Tran sactionCon text trans actionCont ext = Tran sactionCon textFactor y.get();
  352                    if(t ransaction Id != null ) {
  353                             transa ctionConte xt.setTran sactionId( transactio nId);
  354                    }
  355           }
  356       
  357     
  358   }