Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

;
; This JAWS module adds specific additions for BCMA DELPHI Framework.
; This module will bring in the framework library.
; By placing applications specific functions in this file, it makes the use of BCVMA .JSS able to have local changes that can then call the functions in this library.
;Written for the VA508 Script project
;Original scripts by: CBell
;Updated: April , 2016 by Jonathan Cohn

use "VA508JAWS.jsb" ; import DELPHI framework

; constants are differentiated by underscores between words,
Const
; Not used by any code in this file, but read by JAWS.SR from this file to determine if the script file should be updated with a newer version
VA508_Script_Version = 1


/***************************************************************
;Below is the Application specific code (Code written by SRA )
***************************************************************/

include "hjConst.jsh" ; Standard constants
include "winstyles.jsh" ; WWindow style bits used to check READ only state.
include "common.jsm" ; cscNull and cscSpace along with other standard messages

MESSAGES
@msg_BCMA_HotKey
Here are some hot keys for use with BCMA:
description hot key
Medication Orders Alt-M.
Reports Alt+R.
Switch Tab %keyfor(NextDocumentWindow).
Reverse switch Tab %keyfor(PreviousDocumentWindow).


In lists:
Click Cell: %keyfor(ltLeftClickCell).
Sort column %keyfor(ltLeftClickHeader).

In tree views:
Edit item %keyfor(f2editTreeNode).

Press escape to close this window
@@
EndMessages

globals
; Application name used in a few cases still.
string gs_DelphiApplicationName



Function AutoStartEvent () ; Set globals used for determineing specific application being run
gs_DelphiApplicationName = GetActiveConfiguration ()
; initialize customized handlers


; Call standard
VA508JAWS::AutoStartEvent()
EndFunction

Function AutoFinishEvent () ; Set globals used for determineing specific application being run

gs_DelphiApplicationName = cscNull
; Call standard
VA508JAWS::AutoFinishEvent ()
EndFunction



;---***---
; Start of Code customized for for BCMA (Bar Code Medication
;---***---

; ***

Script HotKeyHelp ()
var String HelpText

HelpText = msg_BCMA_HotKey
if UserBufferIsActive () Then
UserBufferDeactivate ()
EndIf
SayFormattedMessage (OT_USER_BUFFER, HelpText
)

EndScript

; The next three function are for control-tab and control-shift-tab
Script NextDocumentWindow ()
if BCMA__TabBarChange() then
Return
Else
PerformScript NextDocumentWindow()
EndIf
EndScript

Script PreviousDocumentWindow ()
if BCMA__TabBarChange() then
Return
Else
PerformScript NextDocumentWindow()
EndIf
EndScript

; Special handling of control-tab and control-shift-tab
; TabBarChange()
; returns true when tabTabBar was found
; Put focus on TabBar if in main window = TfrmMainClass and then run script key.
int Function BCMA__TabBarChange ()
var
handle hWind,
handle hReal,
handle hTabBar
hWind = GetCurrentWindow ()
hReal = GetTopLevelWindow ( hWind )
if GetWindowClass (hReal) == "TfrmMain" then
hTabBar = FindWindow (hReal, "TPageControl")
if hTabBar != 0 THEN
setFocus(hTabBar )
delay(1)
TypeCurrentScriptKey ()
return true
EndIf
EndIf
return false
EndFunction






; HandleCustomWindows
; Parameter 1 handle of window to provide custom speaking.
; returns boolean true to stop additional processing.
; 1 In Main Window (Class = TfrmMain )
; a) for Patient Info (Class = TRichEdit ) Make jaws declare as Button with name of "Patient Information"
; b) (Class = TListView) Speak control with Name as "BCMA Clinical Reminders"
; c)(Class = TListBox) Speak jaws cursor must be used.
; d) (class = TStringGrid) Speak current TabBar.
Function HandleCustomWindows (handle FocusWindow)
var
handle RealWindow = GetRealWindow (FocusWindow ),
Handle hTabBar,
String sNull,
string sRealClass = GetWindowClass (RealWindow)

if SuppressFocusChange() Then
Return true
endif

if sRealClass == "TfrmMain" then
if GetWindowClass (FocusWindow) == "TRichEdit" then
SayControlEx (FocusWindow , "Patient Information", "button", sNull, sNull, sNull, GetWindowTextEx (FocusWindow , false, false ))
return true
elif GetWindowClass(FocusWindow) == "TListView" then
SayControlEx (FocusWindow,"BCMA Clinical Reminders")
return true
elif GetWindowClass (FocusWindow) == "TListBox" Then
SayString("This grid only works with jaws cursor ")
SaveCursor()
JawsCursor()
RouteJAWSToPc ()
SetRestriction (RestrictWindow )
SayLine ()
elif GetWindowClass (FocusWindow) == "TStringGrid" Then
hTabBar = FindWindow (RealWindow , "TPageControl")
if hTabBar != 0 Then
SayObjectTypeAndText (1)
; SayWindowTypeAndText (hTabBar)
endif
EndIf
EndIf
EndFunction


; ***
; HandleCustomAppWindows
; Parameter 1 handle of window to provide custom speaking.
; returns boolean true to stop additional processing.
; When the TfrmMain real window becomes active move focus to the TabBar.
Function HandleCustomAppWindows (handle hReal)
var Handle hGrid
if SuppressFocusChange() Then
Return true
endif
if GetWindowClass (hReal) == "TfrmMain" then
hGrid = FindWindow (hReal, "TStringGrid")
if hGrid != 0 Then
SetFocus(hGrid)
return(true)
endIf
EndIf
EndFunction


Function GetCustomTutorMessage ()
var
handle hFocus,
handle hReal,
string sClass

hFocus = GetCurrentWindow ()
hReal = GetRealWindow (hFocus )
sClass = GetWindowClass (hFocus)
if sClass == "TRichEdit" && GetWindowClass( hReal )== "TfrmMain" then
return "for a full PATIENT INQUIRY click the ENTER button."
elif sClass == "TStringGrid" Then
return "Press enter for details."
EndIf
EndFunction