3270-PRH20

advertisement
Author: Dale Sahlberg
1
COMMON ORDER ENHANCEMENT – PRH20
Lab Common Orders
SELECT SERVICES
------------------------------------------------------------------------------? ANTIBODY ID
? CPK
? TYPE AND SCREEN
? BLOOD CULTURE
? DIGOXIN
? CREATININE
? BUN
? PACKED RBC CROSSMATCH
? LDH
? IGG COOMBS
? RHOGAM
? PTT
? CBC
? U/A
? CHOLESTEROL
------------------------------------------------------------------------------! (PF15) RETURN
PRESS ENTER TO CONTINUE
Statistical studies have shown that 20 tests can compose 86% of the total number of orders performed for the year by a
department (LAB,RAD), so having a screen listing the top 20 tests can save significant order entry time. Not only can a
department (LAB) use a common order screen, but a nursing floor (ICU) can also benefit from a common order screen with the
top 20 orders across departments (CAR,FNS,LAB,RAD,RSP). By not having to hunt through several screens or department
order lists, the common order screen results in less wasted motions and more time for patient care.
For example, the user can choose from a screen:
TOP
- ! 1
! 2
! 3
! 4
! 5
20 ORDERS for floor:
- - - - - - - - - - - – Emergency room
– ICU
– 1 Main
– 2 South
– 3 Main
TOP 20 ORDERS for departments:
- - - - - - - - - - - - - - - ! 6 – Cardiology
! 7 – Laboratory
! 8 – Pharmacy
! 9 – Radiology
! 10– Respiratory
CURRENT METHODS
Methods used to display common orders:
1)
2)
3)
4)
5)
Alphabrowse
Ordersets
Hard coded screen
Driver tcls
Profiles
What are the advantages or drawbacks to each method?
Alphabrowse:
Alphabrowse is driven directly from the service master so it is one of the simplest display methods to implement. Departments
other than MIS can maintain the service master, freeing up MIS time. The alphabrowse program is great for listing all the orders
in a subdepartment, such as CHE (chemistry) but the list can be long with many !NEXT PAGE and !PREV PAGE prompts.
Alphabrowse has limited functionality when you just want a short top 20 list or a mix of orders across departments (ICU).
Alphabrowse can have slow response times (heavy CPU usage).
Author: Dale Sahlberg
2
Ordersets:
The convenience or department ordersets for common orders have the advantage of listing many orders under a single service
master code – the orders then are easily displayed on a selection screen. However, there is considerable work involved in
creating or modifying these ordersets.
CONVENIENCE ORDERSET MAINT
ORDERSET:
LAB1957
DEPT
SVC CODE
DISPLAY MEMBERS
DESCRIPTION
TYPE
ORD MAX ACT REQ
CLASS IND QTY IND IND
------------------------------------------------------------------------------SELECT ONE MEMBER TO DISPLAY:
! 1 ANTIBODY ID
! 2 TYPE AND SCREEN
! 3 CPK
! 4 BLOOD CULTURE
! 5 CREATININE
! 6 DIGOXIN
! 7 BUN
! 8 LDH
! 9 CHOLESTEROL
------------------------------------------------------------------------------! PF15 Action Menu
ENTER # __ PRESS ENTER
Each of those members open up to a screen that lists additional data.
CONVENIENCE ORDERSET MAINT
MEMBER DEFAULT INFO
ORDERSET:
DESC:
SVC CODE:
------------------------------------------------------------------------------ORDERING PARTY:
ORDER PRIORITY:
DLY/WKLY FREQ:
SVC CATEGORY:
DURATION:
COUNTERSGN IND:
QUANTITY:
COMMENTS:
DEFAULT TCL:
------------------------------------------------------------------------------!PF15 ACTION MENU
!PF5 COMMON INFO
& ENTER TO RETURN
Ordersets create @tcls - these @ tcls can be numerous depending on how many ordersets and submembers are created.
Example below of @ tcl @0094501
"%GETX#02"='DEXTROSE 5%-0.45% SALINE'
"C1284#02"=250.0000
"C1292#02"='2'
"C1313#02"='ML'
"C2101#02"='PHM06940'
"C2231#02"='BAG'
"C2220#02"=1.000
"C2233#02"='ML'
"C2234#02"=250.0000
"C1215"='QID'
"C1216"=5
"C1217"=1
"C1219"='DAILY'
"C1220"='ROUTINE'
"C1264"='D'
Author: Dale Sahlberg
Ordersets can also have @ tcls which store “default” values that are not always desirable in an order session: for example, a
priority of 'ROUTINE' - which is fine for 1MAIN but not when ICU needs ‘STAT’.
3
Hard coded fields on a screen:
Hard coded fields with test names & service codes on a screen require major time to construct and are difficult to maintain.
SELECT SERVICES.
? FERRITIN
? T3
? MAGNESIUM
? GAMMA GT
? T4
---------------------------------------------------------------------------LINE 08
POSITION 03
DELAY PEN-DETECTABLE INPUT FIELD
GROUP NAME: %DO
(ENTER %DO FOR STACK COMMAND FIELD)
FIELD NAME: SERVICE
MAXIMUM ITEMS SELECTABLE IN GROUP: 18
SPECIFY WHAT IS TO BE DONE WHEN THIS FIELD IS PROBED. IF THIS IS NOT A %DO
FIELD, ENTER VALUE TO BE ASSIGNED TO THE GROUP NAME ABOVE. IF %DO, SPECIFY
A SERIES OF ONE OR MORE STACK COMMANDS: "S2101#19"='LAB5002019',"S2105#19"='FERRITIN'
Driver tcls:
Driver tcls have all the orders defined in fields that map to the display screen:
"%SBHEADR"='Common Blood Bank Orders'
"%ORABDPT"='LAB'
"%ORABSDP"='BLB'
"%ORS1"='LAB5001001'
"%ZOSV"='01 ANTIBODY CD'
"%ORS1#02"='LAB5001012'
"%ZOSV#02"='02 TYPE & SCREEN'
"%ORS1#03"='LAB5001009'
"%ZOSV#03"='03 PACKED RBC CROSS MATCH'
"%ORS1#04"='LAB9501999'
 and many more fields …
Driver tcls become a time consuming task, with significant work done just to insert or delete an order in the list – all the fields
have to be re-sequenced. Wrongly numbered fields ("%ORS1#03"='LAB5001009',"%ZOSV#04"='03 PACKED RBC CROSS
MATCH') can result in mixed descriptions & service codes – potentially affecting patient care. There can be hundreds of these
tcls (3270 and GOLD versions) to maintain.
Profiles:
If a profile is used, is each test then a primary member? The profile sorts alphabetically so that can be a limitation for a list of
common orders that are in “order of frequent use” (not alphabetical) – such as an EMR common order list. The ‘primary
member’ method of storing service codes can result in a profile with hundreds of members. What if the dept/floor name
becomes the primary member, such as LAB or 1MAIN, with the orders as components of that member? You are right back to
the challenge of how to insert new orders or delete old tests under that member – a lot of work to resort all the fields. This is the
same sequencing challenge that driver tcls present.
Is there an easier method for displaying common orders?
What if the best features of the alphabrowse, ordersets, profile and driver tcls are combined to create an entirely new display
application?
The new system would need to:
A) insert or delete a member quickly
B) automatically re-sequence the fields/members
C) store all common orders in one location
D) list orders alphabetically or in any other order
E) still use existing OAS
Author: Dale Sahlberg
Think of how:
1) Much data entry time could be saved?
2) Many maintenance headaches will be prevented?
3) Aspirin will no longer be needed by the case?
Can this idea be turned into reality? How can all of this be possible? By the creation of the PRH20 common order profile.
(pronounced PRH two zero – not PRH two oh as in water H2O)
NEW METHOD – PRH20
The PRH20 system is designed to be:
1) Easy to maintain – naming conventions are logical and easily tied to the service master departments
2) Flexible – display alphabetically or in any other order
3) Centrally located – uses a single profile instead of many tcls to store common order data
4) Dynamic – departments all share a single dynamic display screen that is “painted” by department codes
5) Cost effective – uses existing OAS and not an external XFR program costing $$$.
Flow - with lab as an example:
! 01
ENTER ORDER

Orders Security Tcl:
“UOMASTER”= SECURLAB
Paints the next screen with allowed departments

Department selection screen: DEPTMAST
User selects a department

Subdepartment tcl:
Subdepartment

screen:
LABSUBDP
SUBDEPTS
PRH20 - TOP20

Member: LABCHEMI

User selects common orders
PRH20 PROFILE
STEP 1: DEFINE ALL THE PROFILE FIELDS
Create 20 action fields, 20 service name fields, 20 service code fields and 1 primary member name field.
Define in the data dictionary 20 action fields.
PCH20HA1
Component:
Action Code
Component name:
X
Type:
1
Length:
The action field is designed for internal sequence processing. Repeat the PCH20HA1 field creation process all the way to
PCH20HA9, then PCH20HAA to PCH20HAK. Sequencing logic will analyze these fields to determine how to sort the
subcomponents of a PRH20 primary member.
The ‘action’ field will store the values of:
I – Insert
D – Delete
4
Author: Dale Sahlberg
Define in the data dictionary 20 service name fields.
PCH20HD1
Component:
Service Name
Component name:
X
Type:
30
Length:
The service name field will store the order description, such as “PACKED RBC CROSS MATCH”. The service name field is
designed to match the “%ZOSV” field. Repeat the PCH20HD1 field creation process all the way to PCH20HD9, then
PCH20HDA to PCH20HDK.
Define in the data dictionary 20 service code fields.
PCH20HS1
Component:
Service Code
Component name:
X
Type:
16
Length:
The service code field will store the order code, such as “LAB5001009”. The service code field is designed to match the
“%ORS1” field. Repeat the PCH20HS1 field creation process all the way to PCH20HS9, then PCH20HSA to PCH20HSK.
Define in the data dictionary 1 primary member field.
PCH20HNA
Component:
Primary Member
Component name:
X
Type:
16
Length:
The primary member field stores the group name for the common orders. The field has 16 characters in which to designate the
location using the common order list. Here are examples of common order locations: EMER-ROOM 5EAST
2WEST
STEP 2: CREATE THE PROFILE DATA ENTRY SCREEN #PRH20
Add a new screen called #PRH20.
Common Orders - PRH20
Member name: <________________>
------------------------------------------------------------------------Action
Test Description
Service Code
<_>
<______________________________>
<________________>
<_>
<______________________________>
<________________>

down to last lines

<_>
<______________________________>
<________________>
<_>
<______________________________>
<________________>
-------------------------------------------------------------------------Press ENTER to continue ...
Define the fields on the data entry screen ...
Common Orders - PRH20
Member name: <________________>
PCH20HNA
-----------------------------------------------------------------------------Action
Test Description
Service Code
<_>
<______________________________>
<________________>
PCH20HA1
PCH20HD1
PCH20HS1

down to last lines

Code PCH20H_1 to PCH20H_9, then PCH20H_A to PCH20H_K
------------------------------------------------------------------------------Press ENTER to continue ...
Add a conditional stack command to the screen...
Conditional stack:
WHERE "%USER" IS VALUED
5
Author: Dale Sahlberg
THEN $T=PRH20CHK,
$T=PRH20CH2
STEP 3: CREATE THE PROFILE PRH20
Add a profile called PRH20 and define the structure ...
PROFILE RECORD NAME: PRH20
DESCRIPTION: Common Orders
NAME
KEY
TYPE
LENGTH
DESCRIPTION
001
HNA
P
002
HA1
N
003
HD1
N
004
HS1
N
005

down

006
Repeat the PCH20H_2 field entries all the way to PCH20H_K
Below are the instructions for creating tcls that insert or delete orders in PRH20 primary members and
resort orders automatically.
SORTING
STEP 4: CREATE THE SORTING CONTROL TCL
Control tcl
$T=PRH20CHK This tcl runs from the conditional stack of screen
for sorting
$S=#PRH20. It checks if any data line is empty for a
PRH20 member. If empty, it runs a sort routine – else it
bypasses sorting.
Conditional stack:
WHERE ANY OF "PCH20HA1" IS UNVALUED
OR "PCH20HA2" IS UNVALUED
OR "PCH20HA3" IS UNVALUED
- on up to 20 lines
THEN $T=PRH20SOR
STEP 5: CREATE THE SORT DRIVER TCL
Sorting tcls
$T=PRH20SOR Sets up 20 sorting tcls for the items in a PRH20 member.
driver
Unconditional stack:
$T=P20SOR1
$T=P20SOR2
up to 20 tcls
STEP 6: CREATE THE ITEM SORT TCLs
Sorting items $T=P20SOR1
Sorts items in a member by moving data UP one line to
tcls
next number if the line above is empty.
Repeat for all other tcls - incrementing the logic.
Conditional stack example:
WHERE ALL OF "PCH20HD1" IS UNVALUED
AND "PCH20HS1" IS UNVALUED
AND "PCH20HD2" IS VALUED
$T=P20SOR2
AND "PCH20HS2" IS VALUED
6
Author: Dale Sahlberg
7
20 tcls

THEN "PCH20TD1"="PCH20HD2",
"PCH20HS1"="PCH20HS2",
$DM=PCH20HD2,
$DM=PCH20HS2
STEP 7: CREATE THE ADD OR DELETE CONTROL TCL
Add or delete $T=PRH20CH2 This tcl runs within the profile data entry process from the
processing
conditional stack of screen $S=#PRH20. It checks if any
insert or delete operation is needed for a PRH20 member by
examining the I/D fields – else it will bypass the addition or
deletion tcls to save time.
Conditional stack:
WHERE ANY OF "PCH20HA1" IS VALUED
OR "PCH20HA2" IS VALUED
OR "PCH20HA3" IS VALUED
- on up to 20 lines
THEN $T=PRH20DEL,
$T=PRH20ADD
STEP 8: CREATE THE DELETE DRIVER TCL
Delete items
$T=PRH20DEL Sets up the 20 tcls that delete item information from PRH20
in a member
members.
Unconditional stack:
$T=P20DEL1
$T=P20DEL2
up to 20 tcls
STEP 9: CREATE THE DELETE ITEM TCLs
Delete
Deletes an order by clearing out the service code and item
$T=P20DEL1
member
description. Repeat for all other tcls - incrementing the
logic.
Conditional stack example:
WHERE ALL OF "PCH20HA1" IS VALUED
$T=P20DEL2
AND "PCH20HA1" EQ 'D'
20 tcls
THEN $DM=PCH20HA1,
$DM=PCH20HD1,

$DM=PCH20HS1
STEP 10: CREATE THE ADD DRIVER TCL
Add items to $T=PRH20ADD Sets up the 20 tcls that add items to members.
a member
Unconditional stack:
$T=P20ADD1
$T=P20ADD2
up to 20 tcls
STEP 11: CREATE THE ADD ITEM TCLs
Add a
Adds items to a member by moving DOWN all following
$T=P20ADD1
Author: Dale Sahlberg
8
member
$T=P20ADD2
20 tcls

line numbers and opening position A (1) for new data.
Repeat the logic for all other tcls dropping off one line
move each time.
Conditional stack:
WHERE ALL OF "PCH20HA1" IS VALUED
AND "PCH20HA1" EQ 'I'
THEN "PCH20HSK"="PCH20HSJ",
"PCH20HDK"="PCH20HDJ",

"PCH20HS3"="PCH20HS2",
"PCH20HD3"="PCH20HD2",
"PCH20HS2"="PCH20HS1",
"PCH20HD2"="PCH20HD1",
$DM=PCH20HS1,
$DM=PCH20HD1,
$DM=PCH20HA1
Include a line 24 informational message in the conditional stack of
screen $S=#PRH20 which informs the user if:
** Last position is already occupied - no room to expand**
CHECK THE INSERT & DELETE & SORT FUCNTIONS IN PRH20
INSERT:
1)
Add a primary member LAB-ALL with seven orders (names & service codes)
2)
Store the data in PRH20
3)
Return to the primary member and enter an I in the first action line
4)
Press Enter
5)
Return and check if all of line one has opened up and the seven orders have moved down on the list
6)
Add another order to this opened position
7)
Store the data in PRH20.
DELETE:
8)
Call up the primary member and enter an D in the first action line
9)
Press Enter
10) Return and check if all of line one has been deleted.
SORT:
11) Call up the primary member
12) Press Enter
13) If there are any open positions (not filled in) the system will resort all the orders.
DISPLAY SCREEN & TRANSFER TCLS
STEP 12: CREATE THE DISPLAY SCREEN & DATA TRANSFER TCLs
Create the screen, fields and the PRH20 profile data transfer tcls.
Field that holds
PRH20 member
name for order
display screen
Display data
“U20SCREN”
$T=P20SCREN
Define the field: "U20SCREN", text, length of 16.
This field is valued in the department’s driver tcl to hold the name of the PRH20
member to display on the screen.
Example: "U20SCREN"='LAB-ALL'
This tcl starts the processing to display items on screen. It first clears all
Author: Dale Sahlberg
9
Access PRH20
profile member
data
$T=P20SCRNA
Transfers member
fields into display
screen fields
$T=P20SORT1
Item selection
screen
$S=P20SCREN
“%KEYINNO”
field processing
$T=P20KEYIN
Check for
“%KEYINNO”
fields 1-20
$T=P20KEY20
Check if any
orders have been
selected
$T=P20CHECK
Clean up the auda
$T=P20CLEAN
“PCH20” fields and then stacks $T=P20SCRNA.
Unconditional stack:
$D=PCH20???
$T=P20SCRNA
This tcl contains the logic that reads the PRH20 profile based on the member
name in “PCH20HNA”. An example of a member is: LAB-ALL
The member code is set in "PCH20HNA" from the value in "U20SCREN" which
comes from the department’s driver tcl for order categories.
Unconditional stack:
$PE=PCH20HNA
$T=P20SORT1
DVA:
"PCH20HNA"="U20SCREN"
Moves PRH20 orderable items to order selection screen $S=P20SCREN.
Unconditional stack:
$D=PCH20???
$D=%KEYINNO
$S=P20SCREN
DVA:
"%ORS1"="PCH20HS1"
"%ZOSV"="PCH20HD1"
"%ORS1#02"="PCH20HS2"
"%ZOSV#02"="PCH20HD2"
- up to 20 items
Copy model screen $S=ZOGESS01 and set to 20 lines. This screen is the
orderable item display screen that shows the 20 items a user can select for
ordering. The display has two columns of 10 lines. Data from the profile gets
moved into the display fields on this screen. Conditional stack:
WHERE "%USER" IS VALUED
THEN $T=P20KEYIN,
$P=CHPPRENM,
$T=P20CHECK
Loads the tcls to check for any “%KEYINNO” fields used on the screens.
Unconditional stack:
$T=P20KEY20
This tcl starts the processing to check for data in “%KEYINNO” fields 1-20 on
screen. The data is then moved into “S” order fields.
Conditional stack example:
WHERE ALL OF "%KEYINNO" IS VALUED
AND "%KEYINNO" EQ 1
THEN "S2101"="%ORS1",
$D=%KEYINNO
ELSE
up to 20 fields
Check if any orders have been selected and redisplay screen if no orders have
been chosen. If an order has been selected, then run a clean up tcl and proceed.
Conditional stack:
WHERE ANY OF "C2101" IS VALUED
OR "C2101#02" IS VALUED
OR "C2101#03" IS VALUED

OR "C2101#19" IS VALUED
OR "C2101#20" IS VALUED
THEN $T=P20CLEAN
ELSE $D=PCH20???,
$MSG=100540,
$S=P20SCREN
Clean up the auda prior to processing selected orders.
Unconditional stack:
Author: Dale Sahlberg
10
$D=%ZGPG#02
$D=%ORAB???
$D=%ORD1???
$D=%ORS1???
$D=%ZOSV???
$D=PCH20???
$D=UP20M???
$D=U20SC???
$D=U-SUBDPT
COMMON ORDERS PATHWAY
TIE PRH20 INTO EXISTING PATHWAY:
Examine your existing common order pathway and determine where to insert the $T=P20SCREN tcl. This tcl starts the
processing to display common orders on a screen. The member code is set in "PCH20HNA" from the value in "U20SCREN"
which comes from the department’s driver tcl for order categories.
The example below shows the display process for lab:
COMMON ORDERS
! Cardiology
! Laboratory
! Radiology
! Respiratory
! ICU
! 1MAIN
! 2WEST
! 3SOUTH
"U20SCREN"=LAB-ALL
   
PROFILE – PRH20
"PCH20HNA"="U20SCREN"
   
Laboratory
? ANTIBODY ID
? CPK
? CREATININE
? BUN
? PACKED RBC
? PTT
? CBC
?
?
?
?
?
?
?
TYPE AND SCREEN
BLOOD CULTURE
DIGOXIN
LDH
IGG COOMBS
RHOGAM
U/A
The PRH20 “common order display” system is
easy to maintain, flexible, centrally located and dynamic.
Dale Sahlberg
www.ecsahlberg.com/Help.html
dsahl@aol.com
Download