11. EPMO Open Source Coordination Office Redaction File Detail Report

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

11.1 Files compared

# Location File Last Modified
1 IV-eHMP_CIF.zip\IMAG_Source\VISA\Java\AwivClientWebApp\main\src\java\gov\va\med\imaging\awiv\client\ui\widgets PatientStudiesTab.java Mon Dec 4 21:35:32 2017 UTC
2 IV-eHMP_CIF.zip\IMAG_Source\VISA\Java\AwivClientWebApp\main\src\java\gov\va\med\imaging\awiv\client\ui\widgets PatientStudiesTab.java Mon Dec 4 21:56:52 2017 UTC

11.2 Comparison summary

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

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

11.4 Active regular expressions

No regular expressions were active.

11.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: Dec  9, 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.awi v.client.u i.widgets;
  27  
  28   import org .apache.lo gging.log4 j.LogManag er;
  29   import org .apache.lo gging.log4 j.Logger;
  30  
  31   import gov .va.med.im aging.awiv .business. AwivArtifa ctResults;
  32   import gov .va.med.im aging.awiv .business. AwivMeansT estResult;
  33   import gov .va.med.im aging.awiv .business. AwivPatien tSensitivi ty;
  34   import gov .va.med.im aging.awiv .business. AwivSite;
  35   import gov .va.med.im aging.awiv .business. AwivStudy;
  36   import gov .va.med.im aging.awiv .business. AwivUserIn formation;
  37   import gov .va.med.im aging.awiv .business. Patient;
  38   import gov .va.med.im aging.awiv .business. UUID;
  39   import gov .va.med.im aging.awiv .client.Aw ivHelper;
  40   import gov .va.med.im aging.awiv .client.da o.PatientL ookupServi ceDao;
  41   import gov .va.med.im aging.awiv .client.da o.PatientS tudyServic eDao;
  42   import gov .va.med.im aging.awiv .client.da o.PatientT reatingSit esServiceD ao;
  43   import gov .va.med.im aging.awiv .client.ev ents.Patie ntSelected Event;
  44   import gov .va.med.im aging.awiv .client.ev ents.Patie ntSensitiv ityCheckCo mpleteEven t;
  45   import gov .va.med.im aging.awiv .client.ev ents.Study SelectedEv ent;
  46   import gov .va.med.im aging.awiv .client.ui .data.Site Connectivi tyState;
  47   import gov .va.med.im aging.awiv .client.ui .data.Stud yRecord;
  48   import gov .va.med.im aging.awiv .client.ui .widgets.d ialogs.Wai tDialog;
  49   import gov .va.med.im aging.awiv .exception s.AwivInsu fficientPa tientSensi tivityExce ption;
  50  
  51   import com .google.gw t.http.cli ent.Reques t;
  52   import com .google.gw t.user.cli ent.Window .Location;
  53   import com .google.gw t.user.cli ent.rpc.As yncCallbac k;
  54   import com .smartgwt. client.uti l.BooleanC allback;
  55   import com .smartgwt. client.uti l.SC;
  56   import com .smartgwt. client.wid gets.Canva s;
  57   import com .smartgwt. client.wid gets.Label ;
  58   import com .smartgwt. client.wid gets.event s.ClickEve nt;
  59   import com .smartgwt. client.wid gets.event s.ClickHan dler;
  60   import com .smartgwt. client.wid gets.grid. ListGridRe cord;
  61   import com .smartgwt. client.wid gets.layou t.HLayout;
  62   import com .smartgwt. client.wid gets.layou t.VLayout;
  63   import com .smartgwt. client.wid gets.tab.T ab;
  64  
  65   /**
  66    * The tab  that show s the stud ies the pa tient has
  67    * @author         
WERFEJ
  68    *
  69    */
  70   public cla ss Patient StudiesTab
  71   extends Ta b
  72   implements  AwivTab
  73   {
  74  
  75           pr ivate Pati ent patien t = null;
  76           pr ivate Pati entStudies ListGrid s tudiesGrid  = null;
  77           pr ivate VLay out layout  = new VLa yout();
  78           pr ivate Stud ySelectedE vent study SelectedEv ent = null ;
  79           pr ivate stat ic Logger  logger = L ogManager. getLogger( "");
  80           pr ivate fina l AwivUser Informatio n awivUser Informatio n;
  81           pr ivate fina l PatientI nformation Pane patie ntInformat ionPane;
  82           pr ivate fina l PatientS electedEve nt patient SelectedEv ent;
  83           
  84           /* *
  85            *  
  86            *  @param aw ivUserInfo rmation Th e informat ion about  the logged  in user
  87            *  @param pa tientSelec tedEvent E vent handl er for whe n a patien t is selec ted, neces sary so th is tab can  clear the  patient ( and itself ) if a sen sitive che ck fails
  88            * /
  89           pu blic Patie ntStudiesT ab(AwivUse rInformati on awivUse rInformati on, 
  90                             Patien tSelectedE vent patie ntSelected Event, boo lean canCl ose)
  91           {
  92                    supe r();
  93                    this .awivUserI nformation  = awivUse rInformati on;
  94                    this .patientSe lectedEven t = patien tSelectedE vent;
  95                    this .setTitle( "Selected  Patient");
  96                    this .setCanClo se(canClos e);
  97                    stud iesGrid =  new Patien tStudiesLi stGrid(awi vUserInfor mation);
  98                    pati entInforma tionPane =  new Patie ntInformat ionPane();
  99                    pati entInforma tionPane.s etAwivUser Informatio n(awivUser Informatio n);
  100                    HLay out mainLa yout = new  HLayout() ;
  101                    main Layout.set RedrawOnRe size(false );
  102                    
  103                    Labe l ccowWarn ing = new  Label("WAR NING: The  AWIV Web A pplication  does not  use CCOW ( a means to  ensure ea ch window  presents d ata from t he same pa tient). Us ers <u>mus t</u> use  caution to  ensure th at all dat a being vi ewed is fr om the cor rect patie nt.");
  104                    ccow Warning.se tWidth100( );
  105                    ccow Warning.se tStyleName ("CCOW-War ning");
  106                    ccow Warning.se tHeight(10 );
  107                    
  108                    
  109                    layo ut.setRedr awOnResize (false);
  110                    layo ut.addMemb er(studies Grid);
  111                    layo ut.addMemb er(ccowWar ning);
  112                    main Layout.set Members(pa tientInfor mationPane , layout);
  113                    this .setPane(m ainLayout) ;
  114           }
  115  
  116           pu blic Study SelectedEv ent getStu dySelected Event()
  117           {
  118                    retu rn studySe lectedEven t;
  119           }
  120  
  121           pu blic void  setStudySe lectedEven t(StudySel ectedEvent  studySele ctedEvent)
  122           {
  123                    this .studySele ctedEvent  = studySel ectedEvent ;
  124                    stud iesGrid.se tStudySele ctedEvent( this.study SelectedEv ent);
  125           }
  126  
  127           /* *
  128            *  Display t he specifi ed patient
  129            *  @param pa tient
  130            * /
  131           pu blic void  displayPat ient(Patie nt patient )
  132           {
  133                    this .patient =  patient;
  134                    //th is.setTitl e(patient. getName()) ;
  135                    this .setTitle( "<span>" +  Canvas.im gHTML(Loca tion.getPr otocol() +  "//" + Lo cation.get Host() + " /Awiv/imag es/ccow_br oken16.gif ") + " " +  patient.g etName() +  "</span>" );
  136                    //th is.patient Informatio nPane.disp layPatient (patient);
  137                    stud iesGrid.se tData((Lis tGridRecor d[])null);
  138                    stud iesGrid.se tPatient(p atient);
  139  
  140                    if(p atient.isS ensitive() )
  141                    {
  142                             // don 't display  patient i nformation  until aft er sensiti ve warning
  143                             displa yPatientSe nsitivityW arning();
  144                    }
  145                    else
  146                    {                 
  147                             this.p atientInfo rmationPan e.displayP atient(pat ient);
  148                             //load TreatingSi tes();
  149                             checkM eansTest() ;
  150                    }
  151           }
  152           
  153           pr ivate void  displayPa tientSensi tivityWarn ing()
  154           {
  155                    Pati entSensiti vityCheck. checkSensi tivePatien t(awivUser Informatio n, patient
  156                                      new Pati entSensiti vityCheckC ompleteEve nt()
  157                    {                         
  158                             @Overr ide
  159                             public  void onPa tientSensi tivityChec kComplete( boolean al lowedToCon tinue, int  sensitive Code)
  160                             {
  161                                      if(allow edToContin ue)
  162                                      {
  163                                               if(sensiti veCode > 0 )
  164                                               {
  165                                                       lo gSensitive PatientAcc ess();
  166                                               }
  167                                               patientInf ormationPa ne.display Patient(pa tient);
  168                                               patient.up dateAgreed SensitiveC ode(sensit iveCode);
  169                                               checkMeans Test();
  170                                               //loadTrea tingSites( );
  171                                              
  172                                      }
  173                                      else
  174                                      {
  175                                               clearPatie nt();
  176                                      }
  177                             }
  178                    });
  179           }
  180           
  181           pr ivate void  logSensit ivePatient Access()
  182           {
  183                    Stri ng transac tionId = U UID.uuid() ;
  184                    logg er.info("L ogging acc ess to sen sitive pat ient '" +  patient.ge tIcn() + " ' from sit e '" + awi vUserInfor mation.get PatientLoo kupSiteNum ber() + "' , with tra nsaction I d '" + tra nsactionId  + "'.");
  185                    Pati entLookupS erviceDao. patientLoo kupService Dao.logPat ientSensit iveAccess( transactio nId, awivU serInforma tion.getPa tientLooku pSiteNumbe r(), patie nt.getIcn( ), new Asy ncCallback <Boolean>( )
  186                    {
  187  
  188                             /* (no n-Javadoc)
  189                              * @se e com.goog le.gwt.use r.client.r pc.AsyncCa llback#onF ailure(jav a.lang.Thr owable)
  190                              */
  191                             @Overr ide
  192                             public  void onFa ilure(Thro wable arg0 )
  193                             {
  194                                      // error  occurred,  not reall y doing an ything abo ut it
  195                                      logger.e rror("Erro r logging  access to  sensitive  patient, "  + arg0.ge tMessage() );
  196                                      if(!Awiv ExceptionH andler.han dleService Exception( arg0))
  197                                      {
  198                                               // don't d o anything  - don't s how this t o the user  (although  it's not  great)
  199                                      }
  200                             }
  201  
  202                             /* (no n-Javadoc)
  203                              * @se e com.goog le.gwt.use r.client.r pc.AsyncCa llback#onS uccess(jav a.lang.Obj ect)
  204                              */
  205                             @Overr ide
  206                             public  void onSu ccess(Bool ean arg0)
  207                             {
  208                                      logger.i nfo("Succe ssfully lo gged acces s to sensi tive patie nt");
  209                             }
  210                             
  211                    });
  212           }
  213           
  214           pr ivate void  checkMean sTest()
  215           {
  216                    if(a wivUserInf ormation.g etAwivServ erInformat ion().isCh eckMeansTe st())
  217                    {
  218                             String  transacti onId = UUI D.uuid();
  219                             logger .info("Che cking mean s test for  patient ' " + patien t.getIcn()  + "' from  site '" +  awivUserI nformation .getPatien tLookupSit eNumber()  + "', with  transacti on Id '" +  transacti onId + "'. ");
  220                             WaitDi alog.displ ayWaitDial og("Checki ng Means T est", "Che cking mean s test inf ormation f or selecte d patient" );
  221                             Patien tLookupSer viceDao.pa tientLooku pServiceDa o.getPatie ntMeansTes t(transact ionId, 
  222                                               awivUserIn formation. getPatient LookupSite Number(),  patient.ge tIcn(), ne w AsyncCal lback<Awiv MeansTestR esult>()
  223                                               {                                          
  224                                                       @O verride
  225                                                       pu blic void  onSuccess( AwivMeansT estResult  awivMeansT estResult)
  226                                                       {
  227                                                                Wait Dialog.hid eWaitDialo g();
  228                                                                if(a wivMeansTe stResult.i sMeansTest Required() )
  229                                                                {
  230                                                                         logger .info("Mea ns test is  required  for patien t '" + pat ient.getIc n() + "' f rom site ' " + awivUs erInformat ion.getPat ientLookup SiteNumber () + ".");
  231                                                                         SC.say ("MEANS TE ST REQUIRE D !!!", 
  232                                                                                           awivMeansT estResult. getMessage () + "<br> <br>A Mean s Test is  Required f or this pa tient.",
  233                                                                                           new Boolea nCallback( )
  234                                                                                           {                                                                                      
  235                                                                                                   @O verride
  236                                                                                                   pu blic void  execute(Bo olean valu e)
  237                                                                                                   {
  238                                                                                                            // d oesn't mat ter if the y click ok  or not
  239                                                                                                            load TreatingSi tes();                               
  240                                                                                                   }
  241                                                                                           });
  242                                                                }
  243                                                                else
  244                                                                {
  245                                                                         loadTr eatingSite s();
  246                                                                }
  247                                                       }
  248                                                       
  249                                                       @O verride
  250                                                       pu blic void  onFailure( Throwable  arg0)
  251                                                       {
  252                                                                Wait Dialog.hid eWaitDialo g();
  253                                                                logg er.error(" Error load ing means  test for p atient, "  + arg0.get Message()) ;
  254                                                                if(! AwivExcept ionHandler .handleSer viceExcept ion(arg0))
  255                                                                {
  256                                                                         AwivHe lper.displ ayErrorMes sage("Erro r checking  means tes t for pati ent", arg0 );
  257                                                                }
  258                                                                load TreatingSi tes();
  259                                                       }
  260                                               });
  261                    }
  262                    else
  263                    {
  264                             // not  checking  means test
  265                             loadTr eatingSite s();
  266                    }
  267           }
  268           
  269           pr ivate void  loadTreat ingSites()
  270           {
  271                    fina l Treating SitesToolS trip toolS trip = new  TreatingS itesToolSt rip();
  272                    layo ut.addMemb er(toolStr ip, 0);
  273                                      
  274                    Stri ng transac tionId = U UID.uuid() ;
  275                    logg er.info("R etrieving  treating s ites for p atient '"  + patient. getIcn() +  "' from s ite '" + a wivUserInf ormation.g etPatientL ookupSiteN umber() +  "', with t ransaction  Id '" + t ransaction Id + "'.") ;
  276                    Wait Dialog.dis playWaitDi alog("Load ing Patien t", "Loadi ng patient  treating  sites");
  277                    Pati entTreatin gSitesServ iceDao.pat ientTreati ngSitesSer viceDao.ge tPatientSi tes(transa ctionId, 
  278                                      awivUser Informatio n.getPatie ntLookupSi teNumber() , patient. getIcn(), 
  279                                      new Asyn cCallback< AwivSite[] >()
  280                    {
  281  
  282                             @Overr ide
  283                             public  void onFa ilure(Thro wable arg0 )
  284                             {
  285                                      WaitDial og.hideWai tDialog();
  286                                      logger.e rror("Erro r loading  treating s ites for p atient, "  + arg0.get Message()) ;
  287                                      if(!Awiv ExceptionH andler.han dleService Exception( arg0))
  288                                      {
  289                                               AwivHelper .displayEr rorMessage ("Error lo ading trea ting sites  for patie nt", arg0) ;
  290                                      }
  291                             }
  292  
  293                             @Overr ide
  294                             public  void onSu ccess(Awiv Site[] awi vSites)
  295                             {
  296                                      WaitDial og.hideWai tDialog();
  297                                      logger.i nfo("Found  '" + awiv Sites.leng th  + "' s ites for p atient '"  + patient. getIcn() +  "'.");
  298                                      for(Awiv Site awivS ite : awiv Sites)
  299                                      {
  300                                               SiteButton  button =  new SiteBu tton(awivS ite.getSit eName(), a wivSite.ge tSiteNumbe r());
  301                                               addTreatin gSiteClick Event(butt on);
  302                                               toolStrip. addButton( button);
  303                                               logger.inf o("Adding  button for  site '" +  awivSite. toString()  + "'.");
  304                                      }
  305                             }
  306                    });
  307           }
  308           
  309           pr ivate void  addTreati ngSiteClic kEvent(fin al SiteBut ton siteBu tton)
  310           {
  311                    site Button.add ClickHandl er(new Cli ckHandler( )
  312                    {                         
  313                             @Overr ide
  314                             public  void onCl ick(ClickE vent event )
  315                             {
  316                                      siteButt onClicked( siteButton );                   
  317                             }
  318                    });               
  319           }
  320           
  321           pr ivate void  siteButto nClicked(f inal SiteB utton site Button)
  322           {
  323                    if(s iteButton. getSiteCon nectivityS tate() ==  SiteConnec tivityStat e.connecte d)
  324                    {
  325                             // alr eady conne cted, disc onnect and  remove th e results
  326                             if(sit eButton.ge tRecords()  != null)
  327                             {
  328                                      logger.i nfo("Disco nnecting s ite '" + s iteButton. getSiteNam e() + "',  removing s tudies fro m this sit e.");
  329                                      studiesG rid.remove Studies(si teButton.g etRecords( ));
  330                                      siteButt on.setSite Connectivi tyState(Si teConnecti vityState. disconnect ed);
  331                             }
  332                    }
  333                    else  if(siteBu tton.getSi teConnecti vityState( ) == SiteC onnectivit yState.con necting)
  334                    {
  335                             if(sit eButton.ge tRequest()  != null)
  336                             {
  337                                      logger.i nfo("Cance lling site  '" + site Button.get SiteName()  + "' requ est for st udies");
  338                                      siteButt on.getRequ est().canc el();
  339                                      siteButt on.setSite Connectivi tyState(Si teConnecti vityState. disconnect ed);
  340                             }
  341                    }
  342                    else
  343                    {
  344                             // dis connected,  connect n ow                      
  345                             loadSi teStudies( siteButton );
  346                    }                 
  347           }
  348           
  349           pr ivate void  loadSiteS tudies(fin al SiteBut ton siteBu tton)
  350           {                 
  351                    site Button.set SiteConnec tivityStat e(SiteConn ectivitySt ate.connec ting);
  352                    site Button.set Tooltip("" );
  353                    
  354                    Stri ng transac tionId = U UID.uuid() ;
  355                    Stri ng userVie wableImage Class = Aw ivHelper.g etUserView ableImageC lass(this. awivUserIn formation) ;
  356                    logg er.info("R etrieving  studies fo r patient  '" + patie nt.getIcn( ) + "' fro m site '"  + siteButt on.getSite Number() +  "' with c lass '" +  userViewab leImageCla ss + "' wi th transac tion Id '"  + transac tionId + " '.");                
  357                    Requ est reques t = Patien tStudyServ iceDao.pat ientStudyS erviceDao. getPatient Studies(tr ansactionI d, patient .getIcn(),  
  358                                      siteButt on.getSite Number(),  patient.ge tAgreedSen sitiveCode (), 
  359                                      userView ableImageC lass,
  360                                      new Asyn cCallback< AwivArtifa ctResults> ()
  361                    {
  362                             
  363                             @Overr ide
  364                             public  void onSu ccess(Awiv ArtifactRe sults resu lt)
  365                             {
  366                                      siteButt on.setRequ est(null);
  367                                      AwivStud y [] awivS tudies = r esult.getA wivStudies ();
  368                                      StudyRec ord [] rec ords = new  StudyReco rd[awivStu dies.lengt h];
  369                                      for(int  i = 0; i <  awivStudi es.length;  i++)
  370                                      {
  371                                               records[i]  = new Stu dyRecord(a wivStudies [i]);
  372                                      }
  373                                      siteButt on.setReco rds(record s);
  374                                      studiesG rid.addStu dies(recor ds);
  375                                      siteButt on.setStud yCount(rec ords.lengt h);
  376                                      siteButt on.setPart ial(result .isPartial Result());
  377                                      if(resul t.getParti alResultMe ssage() !=  null)
  378                                               logger.inf o("Got par tial resul t message  '" + resul t.getParti alResultMe ssage() +  "' from si te '" + si teButton.g etSiteNumb er() + "'. ");
  379                                      siteButt on.setSite Connectivi tyState(Si teConnecti vityState. connected) ;
  380                             }
  381                             
  382                             @Overr ide
  383                             public  void onFa ilure(Thro wable caug ht)
  384                             {
  385                                      siteButt on.setRequ est(null);
  386                                      siteButt on.setReco rds(null);
  387                                      siteButt on.setSite Connectivi tyState(Si teConnecti vityState. disconnect ed);
  388                                      logger.e rror("Erro r loading  studies fo r patient  from site  '" + siteB utton.getS iteNumber( ) + "', "  + caught.g etMessage( ));
  389                                      if(!Awiv ExceptionH andler.han dleService Exception( caught))
  390                                      {                                           
  391                                               if(caught  instanceof  AwivInsuf ficientPat ientSensit ivityExcep tion)
  392                                               {
  393                                                       fi nal AwivIn sufficient PatientSen sitivityEx ception aw ivInsuffic ientPatien tSensitivi tyExceptio n = 
  394                                                                (Awi vInsuffici entPatient Sensitivit yException )caught;
  395                                                       lo gger.warn( "Insuffici entPatient Sensitivit yException  for patie nt at site  '" + site Button.get SiteNumber () + "'.") ;
  396                                                       Pa tientSensi tivityChec k.displayP atientSens itivityWar ning(
  397                                                                         new Aw ivPatientS ensitivity (awivInsuf ficientPat ientSensit ivityExcep tion.getCo de(), 
  398                                                                                           awivInsuff icientPati entSensiti vityExcept ion.getWar ningMessag e()), 
  399                                                                         new Pa tientSensi tivityChec kCompleteE vent()
  400                                                                         {
  401                                                                                  
  402                                                                                  @Overrid e
  403                                                                                  public v oid onPati entSensiti vityCheckC omplete(bo olean allo wedToConti nue, int s ensitiveCo de)
  404                                                                                  {
  405                                                                                           if(allowed ToContinue )
  406                                                                                           {
  407                                                                                                   pa tient.upda teAgreedSe nsitiveCod e(sensitiv eCode);
  408                                                                                                   //  reload th e data for  the site
  409                                                                                                   lo adSiteStud ies(siteBu tton);
  410                                                                                           }
  411                                                                                           else
  412                                                                                           {
  413                                                                                                   lo gger.warn( "User did  not agree  to sensiti ve level f or patient , will not  display s tudies fro m '" + sit eButton.ge tSiteNumbe r() + "'." );
  414                                                                                           }
  415                                                                                  }
  416                                                                         });
  417                                               }
  418                                               else
  419                                               {
  420                                                       
  421                                                       si teButton.s etTooltip( caught.get Message()) ;
  422                                               }
  423                                      }
  424                             }
  425                    });      
  426                    site Button.set Request(re quest);
  427           }
  428           
  429           @O verride
  430           pu blic int g etCreation Index()
  431           {
  432                    retu rn 2;
  433           }
  434           
  435           pr ivate void  clearPati ent()
  436           {
  437                    pati entSelecte dEvent.onP atientSele cted(null,  true);
  438           }
  439   }