2. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 4/16/2019 12:20:42 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.

2.1 Files compared

# Location File Last Modified
1 C:\AraxisMergeCompare\Pri_un\CPRS_32_P2_PCE\OR_30_405V60_SRC\10_2\508\VA 508 JAWS Framework\Scripts CAPRI_DelphiLib.jss Wed Dec 12 14:05:06 2018 UTC
2 C:\AraxisMergeCompare\Pri_re\CPRS v32 P2 PCE Standardization-redacted\CPRS_32_P2_PCE\OR_30_405V60_SRC\10_2\508\VA 508 JAWS Framework\Scripts CAPRI_DelphiLib.jss Tue Apr 16 13:36:15 2019 UTC

2.2 Comparison summary

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

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

2.4 Active regular expressions

No regular expressions were active.

2.5 Comparison detail

  1    Scripts f or CAPRI V ersion 2.7 .190.4 
  2   ; Departme nt of Vete rans Affai rs Feb 23,  2016 
  3   ; Author:  Jonathan C ohn  PII                  )
  4   ; Script v ersion 4
  5   ; CAPRI Ve rsion 2.7. 190.4 
  6   ;Jaws Vers ion: Writt en with JA WS 17 
  7   ; Revision  History
  8   ; Version  4
  9   ; Updated  code to wo rk with cu rrent DELP HI Framewo rk and jsh /jsm files .
  10           
  11   include "C APRI.jsh"
  12   include "C APRI.jsm"
  13   include "h jConst.jsh " ; Standa rd constan ts 
  14   include "h jglobal.js h" 
  15  
  16   include "M SAAconst.j sh"
  17   include "c ommon.jsm"   ;  cscNu ll and csc Space alon g with oth er standar d messages  
  18  
  19   use "VA508 JAWS.jsb"  ; import D ELPHI fram ework 
  20  
  21   ;import "v a508jaws.j sd" ; impo rt functio n declarat ions  from  documenta tion file  (help comp ile and co ntrol+I to  work.
  22  
  23   ; constant s are diff erentiated  by unders cores betw een words,
  24   Const   
  25           ;  Not used b y any code  in this f ile, but r ead by JAW S.SR from  this file  to determi ne if the  script fil e should b e updated  with a new er version
  26           VA 508_Script _Version =  4
  27  
  28           
  29   ;Below is  the Applic ation spec ific code  (Code writ ten by SRA  )
  30   ********** ********** ********** ********** ********** ********** ***/
  31  
  32  
  33   Function A utoFinishE vent () ;  Set global s used for  determine ing specif ic applica tion being  run
  34  
  35   gs_DelphiA pplication Name  = cs cNull
  36   SiteCodeCl ear()
  37  
  38   ; Call sta ndard 
  39   VA508JAWS: :AutoFinis hEvent ()
  40   EndFunctio n
  41   ;****
  42  
  43   Script Hot KeyHelp ()
  44   var String  HelpText 
  45  
  46           He lpText = m sg_HotKey
  47  
  48   if UserBuf ferIsActiv e () Then
  49           Us erBufferDe activate ( )
  50   EndIf
  51   SayFormatt edMessage  (OT_USER_B UFFER, Hel pText 
  52   )
  53   EndScript
  54  
  55   ; Control  tab 
  56  
  57  
  58   ; control+ shift+tab 
  59  
  60  
  61   Script Con trolEnter  ()
  62   ; Double c lick on cu rrent spot  when  win dow class  is  CAPTIO N_LISTBOX
  63   var
  64           in t hItem,
  65           ha ndle hWnd
  66  
  67   sayCurrent ScriptKeyL abel()
  68   let hwnd =  getFocus( )
  69   if getWind owClass(hW nd) == WC_ CAPTION_LI STBOX then
  70           sa veCursor()   JAWSCurs or()  save Cursor()
  71           ro uteJAWSToP C()
  72           le ftMouseBut ton()
  73           Le ftMouseBut ton ()
  74           re turn
  75   endIf
  76   typeCurren tScriptKey () ; Pass  key to app lication 
  77   EndScript
  78  
  79   Script Ent erKey ()
  80   ; InC and  p exam req uests allo w enter ke y to move  focus appr opriately  and also u se mouse t o click.
  81   ; override s behaviou r in the t ree view a nd in the  body parts  button.
  82   var 
  83           ha ndle hFocu sWindow  =  GetFocus( ),
  84           st ring sFocu sName = Ge tWindowNam e (hFocusW indow),
  85           ha ndle hAppM ainWindow  = GetAppMa inWindow ( hFocusWind ow),
  86           st ring sAppM ainClass =  GetWindow Class (hAp pMainWindo w )
  87  
  88   if  sAppMa inClass ==   "TfrmVie wExam" The
  89           if  sFocusNam e== "Find  by Body Sy stem"   Th en 
  90                    Save Cursor() J awsCursor( ) SaveCurs or()
  91                    Rout eJAWSToPc  ()
  92                    Dela y (1, true )
  93                    Left MouseButto n () 
  94                    Dela y (2, True )
  95                    Rest oreCursor  () Restore Cursor ()
  96                    ; No w that cli ck has bee n performe d, set foc us on the  list of bo dy parts 
  97                    var 
  98                             handle  hPanel =  FindWindow (FindWindo w(hAppMain Window,  " TPanel", c scNull ),  "TPanel",  cscNull ),
  99                             handle  hDest = F indWindow  (hPanel, " TTreeView" , cscNull)
  100                    if h Dest Then 
  101                             SetFoc us( hDest  )
  102                    EndI f
  103           el if  GetWin dowClass(h FocusWindo w) == "TTr eeView" Th en 
  104                    Save Cursor() J awsCursor( ) SaveCurs or()
  105                    Rout eJAWSToPc  ()
  106                    Dela y (1, true )
  107                    Left MouseButto n ()   Lef tMouseButt on ()
  108                    Dela y (1, True )
  109                    Rest oreCursor  () Restore Cursor ()
  110                    ; No w that dou ble click  has been p erformed,  set focus  on exam th e list 
  111                    hPan el = FindW indow(Find Window(hAp pMainWindo w,  "TPane l", cscNul l ), "TPan el", cscNu ll )
  112                    hDes t = FindWi ndow (hPan el, "TChec kListBox",  cscNull)
  113                    if h Dest Then 
  114                             SetFoc us( hDest  )
  115                    EndI f
  116           El se
  117                    type CurrentScr iptKey() ;  Pass key  to applica tion 
  118           En dIf
  119   EndIf
  120  
  121   typeCurren tScriptKey () ; Pass  key to app lication 
  122   EndScript
  123  
  124   ; ***
  125   ; HandleCu stomAppWin dows 
  126   ; Paramete r 1 handle  of window  to provid e custom s peaking.
  127   ; returns  boolean  t rue to sto p addition al process ing.
  128   ; When the  TfrmMain  real windo w becomes  active mov e focus to  the TabBa r.
  129  
  130  
  131  
  132  
  133  
  134   ; Special  handling o f control- tab and co ntrol-shif t-tab
  135   ; TabBarCh ange()
  136   ; returns  true when  tabTabBar  was found
  137   ; Put focu s on TabBa r if in ma in window  =  TfrmMai nClass  an d then run  script ke y.
  138  
  139  
  140   ;---***---
  141   ; Start of  Code for  CAPRI 
  142   ;---***---
  143  
  144   Int Functi on HandleC ustomWindo ws (handle  FocusWind ow)
  145   var
  146           st ring Focus Name = Get WindowName  (FocusWin dow),
  147           st ring Focus Class = Ge tWindowCla ss(FocusWi ndow ),
  148           In t FocusSub Type = Get WindowSubt ypeCode (F ocusWindow ) ,
  149           St ring sGrou pName,
  150           ha ndle AppWi ndow = Get AppMainWin dow (Focus Window),
  151           St ring AppCl ass = GetW indowClass  (AppWindo w),
  152           st ring sTabN ame = GetD ialogPageN ame (),
  153           st ring sValu e,
  154           in t iResult 
  155  
  156   if FocusCl ass == WC_ MSAATabCon trol  Then  
  157           re turn  SayC ontrolEx ( FocusWindo w, sTabNam e)
  158   Elif AppCl ass == WC_ PatientLis tAppWindow  then 
  159           ;  Issue 2 /  20116 bett er handlin g of patie nt list ch anges 
  160           if  FocusClas s == WC_Pa tientListB ox  Then 
  161   SayMessage (OT_JAWS_M ESSAGE , m sgPatientL istUpdated )     
  162   Return tru
  163           el if focuscl ass == "te dit" then 
  164           En dIf
  165   Elif AppCl ass == WC_ MainAppWin dow  Then 
  166           If   StringCo mpare (sTa bName, WN_ MAIN_Repor tsTab ) ==  0 Then
  167                    if F ocusSubTyp e == WT_LI STBOX  The
  168                             return  SayContro lEx(FocusW indow, msg WinodwRepo rtList)
  169                    ElIf  FocusSubT ype == WT_ READONLYED IT 
  170                             sValue  =  GetWin dowText (F ocusWindow , False)
  171                             if  St ringLength (sValue)   == 0  Then  
  172                                      sValue =  msg_Blank Field
  173                             Else
  174                                      sValue =  GetLine()
  175                             EndIf
  176                             return  SayContro lEx (Focus Window, ms gWinodwRep ortOutput,  cscNull,  cscNUll, c scNull, cs cNull, sVa lue)
  177                    EndI f
  178           El If  String Compare (s TabName, W N_MAIN_Add ressTab )  == 0 Then
  179                    if ( GetWindowH ierarchyX  (FocusWind ow)< 25 
  180                       & & GetWindo wHierarchy X (FocusWi ndow) > 13  )
  181                     ||  (GetWindow HierarchyX  (FocusWin dow) < 7  
  182                       & & GetWindo wHierarchy X (FocusWi ndow) > 1 
  183                    Then  
  184                    sGro upName = " Temporary  Address" 
  185                             sValue  =  GetWin dowText (F ocusWindow , False)
  186                             if  St ringLength (sValue)   == 0  Then  
  187                                      sValue =  msg_Blank Field
  188                             EndIf
  189  
  190                             if Get WindowName (FocusWind ow) == "En d Date:" T hen
  191                                      if GetWi ndowHierar chyX (Focu sWindow) = = 21 Then
  192                                               FocusName  = "Address  line 3"
  193                                      Elif Get WindowHier archyX (Fo cusWindow)  == 22 The n
  194                                               FocusName  = "Address  line 2" 
  195                                      EndIf
  196                             EndIf
  197                             return  SayContro lEx (Focus Window, Fo cusName, c scNull, cs cNull, sGr oupName ,  cscNull, s Value)
  198                    EndI f
  199           El If InClini calTabs ()  Then 
  200                    var  string sCu rrentSecti on =  Clin icalSectio nName()
  201  
  202                    if   FocusSubTy pe == WT_E XTENDEDSEL ECT_LISTBO X Then 
  203                             return  SayContro lEx(FocusW indow, "Se lect "+ sC urrentSect ion )
  204                    ElIf  FocusSubT ype== WT_R EADONLYEDI T Then 
  205                             return  SayContro lEx(FocusW indow, sCu rrentSecti on)
  206                    EndI f
  207           El If sTabNam e == "Loca l"
  208      && Focu sSubType = = WT_READO NLYEDIT Th en 
  209                    retu rn SayCont rolEx(Focu sWindow, " Health Sum mary Compo nent Repor t" )
  210           En dIf
  211   Elif AppCl ass == "Tf rmAddress"  then
  212           If   GetWindo wTypeCode   (FocusWin dow)== WT_ EDIT Then 
  213                    Save Cursor()   InvisibleC ursor() Sa veCursor()  
  214                    SetR estriction  (Restrict AppWindow)
  215                    Move ToWindow ( AppWindow  )
  216                    JAWS TopOfFile  ()
  217                    Find String (Ap pWindow, " Temporary" , S_TOP, S _RESTRICTE D , False  )
  218                    var  int iTempo raryColumn  = GetCurs orCol ( )
  219   RestoreCur sor ()Rest oreCursor  ()
  220                    if G etWindowLe ft (FocusW indow )>=  iTemporary Column The n
  221                             sGroup Name = "Te mporary"
  222                    Else
  223                             sGroup Name = "Pe rmanent"
  224                    EndI f
  225           re turn SayCo ntrolEx (F ocusWindow , cscNull,  cscNull,  cscNull, s GroupName)
  226           En dIf
  227   elif AppCl ass == "Tf rmNewExam"   
  228      || AppC lass == "T frmViewExa m"
  229   then 
  230           if  FocusSubT ype == WT_ LISTBOX  T hen 
  231                    if F ocusName   == "More"   Then 
  232                                      return S ayControlE x(FocusWin dow, "Cons iderations  Select on e or more"
  233                    ElIf  FocusClas s == "TChe ckListBox"
  234                       & & GetWindo wClass (Ge tNextWindo w (FocusWi ndow)) ==  "TTreeView "
  235                       & & GetWindo wName (Get Parent (Ge tParent (F ocusWindow ))) == "Ex ams Reques ted:"
  236                    Then
  237                             return  SayContro lEx(FocusW indow , "S elect Exam s To Add:" )                         
  238                    EndI f
  239           EL If FocusSu bType == W T_EDITCOMB
  240              && StringC ompare(Foc usName, WN _CP_ClaimR equired )  == 0  then  
  241                    retu rn SayCont rolEx (Foc usWindow,  msg_ClaimF ileRequire d)
  242           El If StringC ompare(Foc usName, WN _CP_LastRa tingExamDa te) == 0 T hen 
  243                    retu rn SayCont rolEx (Foc usWindow,  FocusName,  cscNull,  cscNull, c scNull, cs cNull, Get ObjectName  (True, 0) )
  244           En dIf
  245   ElIf  AppC lass ==  " TfrmExamRe questTempl ate" Then 
  246           if  FocusSubT ype == WT_ LISTBOX
  247               && GetDia logPageNam e() == "SC /Increased  Eval"
  248           th en 
  249                    retu rn SayCont rolEx (Foc usWindow,  "Veteran c laims incr eased disa bilities:" )
  250           El If FocusSu bType  ==  WT_BUTTON 
  251               && GetWin dowName (G etNextWind ow (FocusW indow)) ==  "Add New  Medical Co ndition To  List"
  252           Th en
  253                    retu rn SayCont rolEx (Foc usWindow,  cscNull, c scNull, cs cNull, "Ad d conditio n")
  254           En dIf   
  255   elif AppCl ass == "Tf rmReportsA dhocSubIte m1" Then 
  256           if  focusClas s == "TORC omboEdit"  Then
  257                    Focu sName = "F ile Select ions:"
  258                    Save Cursor() I nvisibleCu rsor() Sav eCursor()
  259                    Move ToWindow ( GetPriorWi ndow (GetP riorWindow  (GetParen t(FocusWin dow))))
  260                    sGro upName = G etChunk ()
  261                    Rest oreCursor  ()RestoreC ursor ()
  262                    retu rn SayCont rolEx (Foc usWindow,  FocusName,  cscNull,  cscNull, s GroupName)
  263           El if FocusCl ass == "TO RListBox"  Then 
  264                    retu rn SayCont rolEx(Focu sWindow, " File Entri es Selecte d:")
  265           En dIf
  266   elif AppCl ass == "TF ormReportB uilder" 
  267      && Focu sSubType = = WT_LISTB OX 
  268   Then
  269           re turn sayCo ntrolEx(Fo cusWindow,  "List of  sections")
  270   elif AppCl ass == "Tf rmPNCSSand box" Then
  271           ;  this windo w locks us  in templa tes and do es nothing  just clos e it.
  272           Ty peKey ("AL T-F4" )
  273   EndIf
  274  
  275   ; Now hand le general ized over  rides for  the CAPRI  applicatio n.
  276   if GetWind owClass (F ocusWindow  )== "TChe ckListBox"  Then 
  277   ;       Sa yString("P lease Veri fy List Ch eck Box")
  278           iR esult = VA 508getComp onentProp( FocusWindo w , VA508_ FieldName_ Caption ,  0 , FocusN ame ) ; 0  = Get from  cache 
  279           if  ! iResult  Then
  280                    Focu sName = Ge tWindowNam e (FocusWi ndow )
  281           En dIf
  282           Sa y(FocusNam e , OT_CON TROL_NAME  )
  283           iR esult =        CAPRI_ _SpeakSele ctedCheckB ox()
  284           if  ! iResult  Then 
  285                    SayO bjectActiv eItem (Fal se)
  286           En dIf
  287            r eturn true  
  288   Elif Focus SubType ==  WT_READON LYEDIT  
  289      && Stri ngLength ( GetWindowT ext (Focus Window, Fa lse))== 0 
  290   Then
  291           sa y(sGroupNa me , OT_CO NTROL_GROU P_NAME)
  292           Sa y(FocusNam e, OT_WIND OW_NAME)
  293           sa yMessage ( OT_LINE, " Empty or u navailable  field", c scSpace )
  294           re turn true 
  295   ElIf Focus Class  ==  "TTab95Con trol"
  296           Sa yControlEx (FocusWind ow, FocusN ame  )
  297   Elif Strin gCompare ( FocusClass  , "TButto n" )== 0 T hen
  298   ; Speak  b uttons for  selection  panels (b uttons wit h Names "< " , ">", " <<"  and " >>"  #20
  299           if  StringCom pare(Focus Name, ">"  ) == 0 The n
  300                    retu rn SayCont rolEx (Foc usWindow,  "Add selec ted compon ent")
  301           El if StringC ompare(Foc usName, "< " ) == 0 T hen
  302                    retu rn SayCont rolEx (Foc usWindow,  "Remove se lected com ponent")
  303           El if StringC ompare(Foc usName, "> >" ) == 0  Then
  304                    retu rn SayCont rolEx (Foc usWindow,  "Add all c omponents" )
  305           El if StringC ompare(Foc usName, "< <" ) == 0  Then
  306                    retu rn SayCont rolEx (Foc usWindow,  "Remove al l componen ts")
  307           En dIf
  308   EndIf
  309   return Han dleCustomW indows( Fo cusWindow)  
  310   EndFunctio n
  311  
  312   Int Functi on HandleC ustomAppWi ndows (han dle hAppMa inWindow )
  313   var
  314           Ha ndle hMemo Window,
  315           st ring sAppM ainClass =  GetWindow Class (hAp pMainWindo w )
  316   if sAppMai nClass ==  "TMessageF orm" Then 
  317           Sa y (GetWind owTextEx ( hAppMainWi ndow , Fal se, False) , OT_SCREE N_MESSAGE)
  318           re turn(True  )
  319   elif sAppM ainClass = = "TfrmErr Msg"  
  320      && GetW indowClass ( GetFirst Child (hAp pMainWindo w ))  ==   "TMemo"
  321   Then 
  322           be ep()
  323           Sp eakWindowI nformation  (hAppMain Window )
  324           Sa y (GetWind owTextEx ( GetFirstCh ild (hAppM ainWindow  ), False,  False, Tru e), OT_ERR OR, False)
  325           Re turn( True
  326   elif sAppM ainClass = = "TFrmDis playHelp"   
  327   Then 
  328           hM emoWindow  = FindWind ow (hAppMa inWindow ,  "TMemo",  cscNull)
  329           if  hMemoWind ow Then 
  330                    Spea kWindowInf ormation ( hAppMainWi ndow )
  331                    Say  (GetWindow TextEx (hM emoWindow  , False, F alse, True ), OT_ERRO R, False)
  332                    Retu rn( True) 
  333           En dIf
  334   elif sAppM ainClass = = "TFrmDis playError"   
  335   Then 
  336           hM emoWindow  = FindWind ow (hAppMa inWindow ,  "TMemo",  cscNull)
  337           if  hMemoWind ow Then 
  338                    beep ()
  339                    Spea kWindowInf ormation ( hAppMainWi ndow )
  340                    Say  (GetWindow TextEx (hM emoWindow  , False, F alse, True ), OT_ERRO R, False)
  341                    Retu rn( True) 
  342           En dIF
  343   EndIf 
  344   return Han dleCustomA ppWindows(  hAppMainW indow )  ;  call defa ult 
  345   EndFunctio n
  346  
  347   string fun ction GetC ustomTutor Message()
  348   ; don't at tempt to p rocess spe cial windo ws.
  349   if  isSpec ialFocus (  False ) T hen
  350           Re turn False  
  351   EndIf
  352  
  353   var
  354           ha ndle Focus Window =   getFocus() ,
  355           Ha ndle AppWi ndow = Get AppMainWin dow (Focus Window),
  356           in t FocusTyp e = GetWin dowSubtype Code (Focu sWindow, T rue),
  357           St ring Focus Name = Get WindowName ( FocusWin dow ),
  358           St ring AppCl ass = GetW indowClass  (AppWindo w)
  359  
  360   if AppClas s == "Tfrm Address"   && FocusTy pe == WT_B UTTON Then  
  361           re turn Forma tString( " Use Virtul ize Window  %keyfor(V irtualizeW indow ) to  review th e address. ")
  362   ElIf AppCl ass == WC_ PatientLis tAppWindow && FocusNa me==  "Mor e" && Focu sType ==WT _BUTTON Th en
  363           Re turn "type  space to  expand lis t of patie nts."
  364   elif AppCl ass == "TF ormReportB uilder" 
  365      && Focu sType == W T_Button
  366   Then
  367           If  FocusName  == "Add S elected" T hen 
  368                    retu rn "add it ems select ed in the  clinical d ocuments s creen" 
  369           El If FocusNa me == "Add  All" Then  
  370                    retu rn "Add al l items in  the clini cal docume nts screen ."
  371           En dIf
  372   elif AppCl ass == "TL istForm" 
  373     && GetWi ndowName(  AppWindow  ) == "Fiel d Selector " Then
  374           if  FocusType   == WT_ED IT Then
  375                    retu rn "enter  a search t erm and th en select  from the b elow list.
  376           En dIf
  377   EndIf
  378  
  379   if InClini calTabs ()  Then
  380           if   FocusTyp e  == WT_B UTTON Then  
  381                    if F ocusName = = "Report  Builder" T hen 
  382                             return  "Use the  Select " +  ClinicalS ectionName () + " bef ore this b utton."
  383                    ElIf  FocusName  == "100 D ocuments"  Then 
  384                             Return  "Adjust p arameters  for select ed section
  385                    EndI f
  386           El If FocusTy pe  == WT_ EXTENDEDSE LECT_LISTB OX Then 
  387                    Retu rn "Select  items wit h the spac e bar." 
  388           En dIf
  389   EndIf
  390  
  391   if GetWind owClass(Fo cusWindow)  == WC_Dat eTimePicke r  Then
  392           re turn"Type  alt-downar row to ope n the cale ndar"
  393   EndIf
  394  
  395   EndFunctio n
  396  
  397  
  398   Int Functi on CAPRI__ SpeakSelec tedCheckBo x ()
  399   var
  400           in t cid,
  401           ob ject o = g etFocusObj ect(cid),
  402   int fLeft,  int fTop,  int  fRig ht, int fB ottom,
  403           in t iMSAATop , int iMSA AHeight, i nt iMSAALe ft, int iM SAAWidth 
  404   if o then
  405  
  406           o. accLocatio n(intRef(i MSAALeft ) , intRef(i MSAATop),  intRef(iMS AAWidth),  intRef(iMS AAHeight),  cID)
  407   if !iMSAAL eft && !iM SAATop &&  !iMSAAWidt h && !iMSA AHeight th en
  408           re turn  Fals
  409   EndIf
  410           fT op = iMSAA top + 1 
  411           fB ottom = fT op + iMSAA Height 
  412   fLeft = iM SAALeft + 
  413   fRight = f Left + iMS AAWidth  
  414   Say(GetTex tInRect (f Left, fTop , fRight ,  fBottom,  0, IgnoreC olor, Igno reColor, t rue ), OT_ SELECTED)
  415   return tru
  416   endIf
  417   EndFunctio n
  418   Script Vir tualizeWin dow()
  419   var
  420           st ring AppCl ass = GetW indowClass  (GetAppMa inWindow ( GetCurrent Window ()) )
  421  
  422   if  String Compare("c apri", gs_ DelphiAppl icationNam e , True)  == 0   
  423      && AppC lass == "T frmAddress
  424   then
  425           CA PRI__Virtu alizeAddre ssPanel()
  426   else 
  427           Pe rformScrip t Virtuali zeWindow()
  428   EndIf
  429   EndScript 
  430  
  431  
  432   void funct ion CAPRI_ _Virtualiz eAddressPa nel ()
  433   var
  434           in t iTempAdd ressStart,
  435           ha ndle Testi ngWindow ,
  436           ha ndle AppWi ndow = Get AppMainWin dow (GetFo cus()),
  437           st ring sKey,  string sV alue, 
  438           co llection A ddressInfo rmation 
  439  
  440   AddressInf ormation =  new colle ction 
  441   SaveCursor ()  Invisi bleCursor( ) SaveCurs or() 
  442           Se tRestricti on (Restri ctAppWindo w)
  443   MoveToWind ow (AppWin dow )
  444   JAWSTopOfF ile ()
  445   FindString  (AppWindo w, "Tempor ary", S_TO P, S_RESTR ICTED , Fa lse )
  446   iTempAddre ssStart =  GetCursorC ol ( )
  447   RestoreCur sor ()Rest oreCursor  ()
  448   TestingWin dow  = Get FirstChild (AppWindow  )
  449   while Test ingWindow   
  450           sV alue = Get WindowText  (TestingW indow , Fa lse)
  451  
  452           if  sValue Th en
  453                    if G etWindowLe ft (Testin gWindow )  > iTempAdd ressStart   Then 
  454                             sKey =  "t" + Get WindowName  (TestingW indow )
  455                    Else
  456                             sKey =  "permanen t" + GetWi ndowName ( TestingWin dow )
  457                    EndI f
  458                    Addr essInforma tion[ sKey  ] = sValu
  459           En dIf
  460           Te stingWindo w  = GetNe xtWindow ( TestingWin dow )
  461   EndWhile 
  462  
  463   ; Now prin t out addr ess inform ation.
  464   UserBuffer Deactivate  ()
  465   UserBuffer Clear ()
  466   SayMessage (OT_USER_B UFFER, "Ad dress Veri fication\n \nVerify t he below a ddress inf ormation.\ n")
  467   if Collect ionItemExi sts (Addre ssInformat ion, "tStr eet:") The n
  468           Sa yMessage ( OT_USER_BU FFER, "\nT emporary A ddress:" )
  469           Sa yMessage(O T_USER_BUF FER, Addre ssInformat ion["tStre et:"] )
  470           if  Collectio nItemExist s (Address Informatio n, "perman entAddress  (line 2): ")
  471                    SayM essage(OT_ USER_BUFFE R, Address Informatio n["tAddres s (line 2) :"])
  472           En dIf
  473  
  474           if  Collectio nItemExist s (Address Informatio n, "tAddre ss (line 3 ):")
  475                    SayM essage(OT_ USER_BUFFE R, Address Informatio n["tAddres s (line 3) :"])
  476           En dIf
  477           Us erBufferAd dFormatted Message (  "%1, %2  % 3 %4 \nCou nty: %5",  "%1, %2  % 3 %4 \nCou nty: %5",  AddressInf ormation[" tCity:"],  AddressInf ormation[" tState:"],  AddressIn formation[ "tZip+4:"] , AddressI nformation ["tCountry :"], Addre ssInformat ion["tCoun ty:"])
  478           Us erBufferAd dFormatted Message (  "Primary P hone: %1       Office  Phone: %2 ", "Primar y Phone: % 1   Office  Phone: %2 ",AddressI nformation ["tPhone:" ], Address Informatio n["tOffice  Phone:" ]  )
  479   EndIf
  480   SayMessage (OT_USER_B UFFER, "Pe rmanent Ad rss:")
  481   SayMessage (OT_USER_B UFFER, Add ressInform ation["per manentAddr ess (line  1):"])
  482   if Collect ionItemExi sts (Addre ssInformat ion, "perm anentAddre ss (line 2 ):")
  483           Sa yMessage(O T_USER_BUF FER, Addre ssInformat ion["perma nentAddres s (line 2) :"])
  484   EndIf
  485  
  486   if Collect ionItemExi sts (Addre ssInformat ion, "perm anentAddre ss (line 3 ):")
  487           Sa yMessage(O T_USER_BUF FER, Addre ssInformat ion["perma nentAddres s (line 3) :"])
  488   EndIf
  489   UserBuffer AddFormatt edMessage  ( "%1, %2   %3 %4 \nC ounty: %5" , "%1, %2   %3 %4 \nC ounty: %5" , AddressI nformation ["permanen tCity:"],  AddressInf ormation[" permanentS tate:"], A ddressInfo rmation["p ermanentZi p+4:"], Ad dressInfor mation["pe rmanentCou ntry:"], A ddressInfo rmation["p ermanentCo unty:"])
  490   UserBuffer AddFormatt edMessage  ( "Primary  Phone: %1       Offi ce Phone:  %2", "Prim ary Phone:  %1   Offi ce Phone:  %2",Addres sInformati on["perman entPhone:" ], Address Informatio n["permane ntOffice P hone:" ] )
  491   UserBuffer AddText (" \nAddress  informatio n is corre ct", "Capr i_ClickAdd ressButton (1)", "Con tinue to f orm", "Cou rier", 15)
  492   UserBuffer AddText (" Edit addre ss informa tion", "Ca pri_ClickA ddressButt on(2)", "E dit addres s", "Couri er", 15)
  493   UserBuffer Activate ( False)
  494   JAWSPageUp  () SayLin e()
  495  
  496   EndFunctio n
  497  
  498   const CAPR I_AddressB uttons = " OK|Edit Ad dress Now"
  499    
  500  
  501   Void Funct ion Capri_ ClickAddre ssButton ( int iButto n)
  502   UserBuffer Deactivate  ()
  503   var string  sObjectNa me = Strin gSegment ( CAPRI_Addr essButtons , "|", iBu tton)
  504   var handle  myButton  = FindWind ow (GetApp MainWindow  (GetFocus ()), cscNu ll, sObjec tName )
  505   if myButto n Then 
  506           Se tFocus (my Button)
  507           de lay(1)
  508           Ty peKey ("sp ace")
  509   EndIf
  510   EndFunctio n
  511  
  512   Void Funct ion Active ItemChange dEvent (ha ndle curHw nd, int cu rObjectId,  int curCh ildId,
  513           ha ndle prevH wnd, int p revObjectI d, int pre vChildId)
  514   if FixChec kBoxList()  Then
  515            i f CAPRI__S peakSelect edCheckBox  () Then 
  516                    retu rn 
  517           En dIf
  518   Endif
  519   va508jaws: :ActiveIte mChangedEv ent (curHw nd, curObj ectId, cur ChildId,pr evHwnd, pr evObjectId , prevChil dId)
  520   EndFunctio
  521  
  522   Void Funct ion activs ayObjectAc tiveItem(i nt speakPo sitionInfo )
  523   if GetWind owClass (G etFocus()) == "TCheck ListBox" T hen 
  524           CA PRI__Speak SelectedCh eckBox ()
  525           if  speakPosi tionInfo T hen 
  526                    Say( PositionIn Group(),   OT_POSITIO N)
  527           En dIf
  528   Else 
  529   va508jaws: :sayObject ActiveItem (speakPosi tionInfo)
  530   EndIf
  531   EndFunctio
  532  
  533  
  534  
  535  
  536  
  537   Object Fun ction oMSA AGetSelect edTab (int  ByRef cID )
  538   var
  539           ob ject o,
  540           in t count,
  541           st ring wcTTa bControl   = "TTabPag e"
  542  
  543           le t o = getF ocusObject (cid) ; fu ll child c ontrol
  544           le t count =  1
  545           wh ile o && c ount < 10  && o.accRo le(CHILDID _SELF ) !=  role_syst em_pagetab list
  546                    let  o = o.accP arent() ;  window
  547                    let  count = co unt + 1
  548           En dWhile
  549  
  550           if  o && o.ac cRole(chil dId_self)  == role_sy stem_paget ablist the n
  551                    let  count = 1
  552                    whil e count <=  o.accChil dCount()
  553                             if o.a ccState(co unt) & sta te_system_ selected t hen
  554           cI D = count 
  555                                      return o
  556                             endif
  557                             let co unt = coun t + 1
  558                    EndW hile
  559           en dif
  560   EndFunctio n
  561  
  562   String Fun ction GetD ialogPageN ame()
  563   var 
  564           ob ject o,
  565           in t cID ,
  566           St ring sTabN ame 
  567  
  568   o = oMSAAG etSelected Tab (cID)
  569   sTabName =  o.AccName (cID) 
  570   sTabName =   stringCh opLeft (sT abName,            St ringContai ns (sTabNa me, ")"))
  571   sTabName =  StringTri mLeadingBl anks (sTab Name)
  572   return sTa bName 
  573   EndFunctio n
  574  
  575   Void Funct ion MSAASe lectTab(in t directio n)
  576   var
  577           ob ject o,
  578           in t cid
  579  
  580   o = oMSAAG etSelected Tab( cID) 
  581   if Cid  ==  0 then 
  582           be ep()
  583           re turn 
  584   EndIf 
  585   if directi on == 1 th en
  586           if  o.accRole (cid+1) !=  role_syst em_pagetab  then
  587                    let  cid = 0
  588           en dif ; role  page tab
  589           o. accSelect( selflag_ta keSelectio n| SELFLAG _TAKEFOCUS  ,cid+1)
  590   elif direc tion == 0  then
  591           if  cid > 1 t hen
  592                    o.ac cSelect(se lflag_take Selection  | SELFLAG_ TAKEFOCUS  ,cid-1)
  593           El If o.accRo le( o.accC hildCount( )) == role _system_pa getab then
  594                    o.ac cSelect(se lflag_take Selection|  SELFLAG_T AKEFOCUS,o .accChildC ount())
  595           el se ; just  sit on fir st tab
  596           be ep()
  597                    retu rn 
  598           en dif
  599   Endif ; di rection
  600   EndFunctio n
  601  
  602   int Functi on IsMulti PageDialog  ()
  603   if GetDial ogPageName ()
  604           Re turn True
  605   Else
  606           Re turn False
  607   EndIf
  608   EndFunctio
  609  
  610  
  611  
  612   script Nex tDocumentW indow ()
  613   MSAASelect Tab   (1)
  614   EndScript
  615  
  616   script Pre viousDocum entWindow  ()
  617   MSAASelect Tab   (0 )
  618   EndScript
  619  
  620  
  621  
  622  
  623   Script Alt X ()
  624   var
  625           ha ndle hFocu sWindow  =  GetFocus( ),
  626           ha ndle hAppM ainWindow  = GetAppMa inWindow ( hFocusWind ow),
  627           st ring sAppM ainClass =  GetWindow Class (hAp pMainWindo w )
  628  
  629   TypeCurren tScriptKey  ()
  630   if sAppMai nClass ==   "TfrmView Exam"  The
  631           de lay(1)
  632           va
  633           ha ndle hPane l = FindWi ndow(FindW indow(hApp MainWindow ,  "TPanel ", cscNull  ), "TPane l", cscNul l ),
  634   handle hLi stExams =  FindWindow  (hPanel,  "TCheckLis tBox", csc Null)
  635           if  hListExam s Then 
  636                    SetF ocus( hLis tExams)
  637           En dIf
  638   EndIf
  639   ;TCheckLis tBox
  640   ;
  641  
  642  
  643  
  644   EndScript
  645  
  646  
  647  
  648  
  649  
  650  
  651  
  652   Messages
  653   @CAPRI__Cl inicalTabs  
  654   1)  Notes
  655   2)  Discha rge Summar ies
  656   3)  Consul ts
  657   4)  Vitals
  658   5)  Meds
  659   6)  Labs
  660   7)  Imagin g
  661   8)  Diet
  662   9)  Nutrit ional Asse ssment
  663   U)  Order  Summary
  664   Y)  Proced ures
  665   Z)  Proble m List
  666   @@
  667  
  668   @CAPRI__Cl inicalSect ion 
  669   Notes
  670   Discharge  Summaries
  671   Consults
  672   Vitals
  673   Medication s
  674   Lab report s
  675   Imaging
  676   Dietetics  Profile
  677   Nutritiona l Assessme nts
  678   Orders
  679   Procedures
  680   Problems
  681   @@
  682   EndMessage
  683           
  684   Int Functi on InClini calTabs ()
  685   var
  686           ha ndle hAppM ainWindow  = GetAppMa inWindow ( GetFocus ( )),
  687           st ring sAppM ainClass =   GetWindo wClass (hA ppMainWind ow )
  688  
  689   if sAppMai nClass ==   "TfrmMain "  Then
  690           re turn   Str ingSegment Index (CAP RI__Clinic alTabs , " \n", GetDi alogPageNa me (), Tru e)
  691   EndIf
  692  
  693   return Fal se 
  694   EndFunctio n
  695  
  696  
  697  
  698   string Fun ction Clin icalSectio nName ()
  699   var int iP osition =  InClinical Tabs ()
  700  
  701   if iPositi on Then 
  702           re turn Strin gSegment ( CAPRI__Cli nicalSecti on , "\n",  iPosition )
  703   EndIf
  704  
  705   return csc NUll 
  706   EndFunctio n
  707  
  708  
  709  
  710  
  711  
  712  
  713   script tab ()
  714   var
  715           ha ndle hFocu sWindow =  GetFocus() ,
  716   handle hAp pWindow =  GetAppMain Window (hF ocusWindow ),
  717   string sAp pClass = G etWindowCl ass (hAppW indow)
  718  
  719   If sAppCla ss == "TPN CSForm" Th en
  720           va
  721                    hand le  hPrevi ewWindow =  FindWindo w (hAppWin dow , "TTa bControl") ,
  722                    hand le hYesWin dow  =  Fi ndWindow ( hAppWindow  , cscNull  , "Yes -  Save and E xit")
  723           if  IsWindowV isible (Ge tParent (h YesWindow) ) Then 
  724                    If G etNextWind ow (hYesWi ndow) == h FocusWindo w  Then 
  725                             SetFoc us( hYesWi ndow ) 
  726                    else  ; if hYes Window ==  hFocusWind ow Then 
  727                             SetFoc us (GetNex tWindow (h YesWindow) )
  728                    EndI f
  729                    Retu rn
  730           El if hPrevie wWindow  & & GetWindo wName( hPr eviewWindo w) == "FUL L REPORT"  Then             
  731                    if     GetParen t (hFocusW indow) ==  hPreviewWi ndow  Then  
  732                             SetFoc us( FindWi ndow (GetP arent (hPr eviewWindo w), cscNul l, "OK"))
  733                             return
  734                    EndI f
  735           el se
  736           En dIf
  737   EndIf
  738   PerformScr ipt Tab()
  739   EndScript
  740  
  741   script Shi ftTab()
  742   var
  743           ha ndle hFocu sWindow =  GetFocus() ,
  744   handle hAp pWindow =  GetAppMain Window (hF ocusWindow ),
  745   string sAp pClass = G etWindowCl ass (hAppW indow)
  746  
  747   If sAppCla ss == "TPN CSForm" Th en
  748           va
  749                    hand le  hPrevi ewWindow =  FindWindo w (hAppWin dow , "TTa bControl") ,
  750                    hand le hYesWin dow  =  Fi ndWindow ( hAppWindow  , cscNull  , "Yes -  Save and E xit")
  751  
  752           if  IsWindowV isible (Ge tParent (h YesWindow) ) Then 
  753                    Say( GetWindowT extEx (Get Parent (hY esWindow),  False, Tr ue , False  ) , OT_SC REEN_MESSA GE)
  754                    If G etNextWind ow (hYesWi ndow) == h FocusWindo w  Then 
  755                             SetFoc us( hYesWi ndow ) 
  756                             SetFoc us (GetNex tWindow (h YesWindow) )
  757                    EndI f
  758                    Retu rn
  759           El if hPrevie wWindow  & & GetWindo wName( hPr eviewWindo w) == "FUL L REPORT"  Then             
  760                    if     GetWindo wName(hFoc usWindow)  == "OK" Th en 
  761                             SetFoc us( GetFir stChild (h PreviewWin dow ))
  762                             return
  763                    EndI f
  764           el se
  765           En dIf
  766   EndIf
  767   PerformScr ipt ShiftT ab()
  768   EndScript
  769  
  770   int functi on  Should ShowUnknow nFunctionC allStack()
  771           re turn false  
  772   EndFunctio
  773  
  774   int functi on GetMenu Mode()
  775   var 
  776           St ring sAppM ainClass =  GetWindow Class (Get AppMainWin dow (GetFo cus())),
  777           St ring sFocu sClass = G etWindowCl ass (GetFo cus())
  778  
  779   if ( sAppM ainClass = = "Tfrmrep orts" 
  780        || sA ppMainClas s == "Tfrm reports" )
  781      && (sFo cusClass = = "TGroupB utton" 
  782        || sF ocusClass  == "TCheck Box" 
  783        || sF ocusClass  == "TRadio Button" )
  784   Then
  785  
  786           re turn 0 
  787   ElIf sAppM ainClass = = "TMessag eForm" 
  788      || sApp MainClass  == "#32770 "
  789      || sApp MainClass  == "TfrmSp ecialRepor t"
  790      || sApp MainClass  == "TfrmRO Finder"
  791      || sApp MainClass  == "TfrmVR EReportSet up"
  792      || sApp MainClass  == "TfrmFo rwardingAd dress"
  793      || sApp MainClass  == "TfrmVl erGetExams "
  794   Then 
  795           Re turn 0 
  796   EndIF
  797  
  798   return Get MenuMode()
  799   EndFunctio n
  800  
  801  
  802   void funct ion SayLin e()
  803   if FixChec kBoxList()  Then
  804            i f CAPRI__S peakSelect edCheckBox  () Then 
  805                    retu rn 
  806           En dIf
  807   Endif
  808   va508jaws: :SayLine()
  809   EndFunctio n
  810  
  811  
  812  
  813   int Functi on FixChec kBoxList ( )
  814   if GetWind owClass (G etFocus())  == "TChec kListBox"  then
  815           if  GetWindow Class(GetA ppMainWind ow(GetFocu s( ))) ==  "TfrmSpeci alReport"   Then 
  816                    retu rn true
  817           En dIf
  818   EndIF
  819  
  820   return fal se 
  821   EndFunctio n
  822  
  823  
  824   int functi on Process SpaceBarKe yPressed(i nt nKey, s tring strK eyName, in t nIsBrail leKey, int  nIsScript Key)
  825   If !KeyIsS pacebar(nK ey,strKeyN ame,nIsBra illeKey) t hen
  826           re turn false
  827   EndIf
  828  
  829   if FixChec kBoxList()  Then 
  830           De lay (1)
  831           Sa veCursor()  Invisible Cursor() S aveCursor( )
  832           Ro uteInvisib leToPc ()
  833           Pr iorChunk ( )
  834           Sa yChunk ()
  835           Re storeCurso r ()Restor eCursor ()
  836           re turn true 
  837   Else
  838   return Pro cessSpaceB arKeyPress ed(nKey, s trKeyName,  nIsBraill eKey, nIsS criptKey)
  839   EndIf
  840   EndFunctio
  841  
  842   Void Funct ion SiteCo deInitiali ze ()
  843   Delphi_App Defined  =  new colle ction 
  844  
  845   EndFunctio n
  846  
  847   void funct ion SiteCo deClear()
  848   Collection RemoveAll  (Delphi_Ap pDefined   )
  849   EndFunctio
  850  
  851  
  852   int functi on GetWind owSubtypeC ode (handl e hWnd)
  853   var
  854           in t iSubType  = va508ja ws::GetWin dowSubtype Code (hWnd ),
  855           in t iParentS ubType = v a508jaws:: GetWindowS ubtypeCode  (GetParen t (hWnd) )
  856  
  857   if iSubTyp e == WT_ED IT 
  858      && iPar entSubType  == WT_EDI TCOMBO 
  859   Then
  860           iS ubType = W T_EDITCOMB O
  861   EndIF
  862   return iSu bType
  863   EndFunctio
  864  
  865   globals   
  866           st ring gsVA5 08cacheCap tion, 
  867           st ring gsVA5 08cacheVal ue, 
  868           st ring gsVA5 08CacheCon trolType,
  869           in t giVA508c acheDataSt atus 
  870  
  871   void Funct ion SpeakP atientList Updates ()
  872   Say("Patie nt List up dated pres s tab to s elect a pa tient", OT _JAWS_MESS AGE)
  873   EndFunctio n
  874  
  875  
  876   Script Ope nListBox()
  877   TypeCurren tScriptKey  ()
  878   delay(1)
  879   SayLine()
  880   SayMessage (OT_HELP,  "Use arrow s to pick  a date", " Navigate w ith arrows ")
  881   EndScript
  882  
  883  
  884  
  885   Void Funct ion VA508C acheUpdate  (handle h wnd)
  886   var 
  887           st ring Windo wClass,
  888           in t iFieldPo sition,
  889           in t iValuePo sition ,
  890           in t iMaxLeng th 
  891  
  892   ; In CAPRI , the           field s with cla ss TVA508S taticText  set the Ca ption / Na me to a si ngle space  and put e xtra data  into the v alue.
  893   ; so if Na me is leng ht 1 and C lass is ap propriate  and Value  contains R eadOnly th en put eve rything be fore ReadO nly into N ame and pu t everythi ng after R eadOnly in to Value 
  894  
  895  
  896   ; First ca ll the sta ndard fram ework then  correct f or the lab el we have  issues wi th.
  897  
  898   VA508Cache Update (hw nd)
  899  
  900  
  901   ; Was a Ca ption / Na me length  1? and we  have a cac hed value 
  902   if giVA508 cacheDataS tatus & VA 508_QueryC ode_Captio
  903     && giVA5 08cacheDat aStatus &  VA508_Quer yCode_Valu
  904     && Strin gLength (g sVA508cach eCaption )  == 1 
  905   then
  906           iM axLength =  StringLen gth(gsVA50 8CacheValu e )
  907           iF ieldPositi on = Strin gContains( gsVA508cac heValue ,  VA508Frame Work_ReadO nlyLabel)  -1 
  908           iV aluePositi on = Strin gContains( gsVA508cac heValue ,  VA508Frame Work_Value Label ) +  StringLeng th( VA508F rameWork_V alueLabel)  -1 
  909  
  910           if  iFieldPos ition  > 0  Then 
  911                    gsVA 508cacheCa ption  = S ubString ( gsVA508Cac heValue, 1 , iFieldPo sition)
  912                    gsVA 508CacheVa lue = SubS tring (gsV A508CacheV alue, iVal uePosition , iMaxLeng th)
  913                    gsVA 508CacheCo ntrolType=   VA508Fra meWork_Rea dOnlyLabel  
  914           el if StringC ontains(gs VA508cache Value , VA 508FrameWo rk_Disable dLabel) Th en 
  915                    iFie ldPosition  = StringC ontains(gs VA508cache Value , VA 508FrameWo rk_Disable dLabel)  -  1 
  916                    iVal uePosition  = iFieldP osition +  StringLeng th(VA508Fr ameWork_Di sabledLabe l)
  917                    gsVA 508cacheCa ption  = S ubString ( gsVA508Cac heValue, 1 , iFieldPo sition)
  918                    gsVA 508CacheVa lue = SubS tring (gsV A508CacheV alue, iVal uePosition , iMaxLeng th)
  919                    gsVA 508CacheCo ntrolType=   VA508Fra meWork_Dis abledLabel  
  920           En dIf
  921  
  922           if  StringLen gth (gsVA5 08CacheVal ue ) <  1 
  923     || Strin gCompare (  gsVA508Ca cheValue,  cscSpace )  == 0 
  924    Then  
  925                    gsVA 508CacheVa lue = msg_ BlankField
  926           En dIf
  927   EndIf
  928   EndFunctio n