VistA-FOIAVistA/r/ORDER_ENTRY_RESULTS_REPORTI.../ORXTABS5.m

181 lines
5.1 KiB
Mathematica

ORXTABS5 ;SLC/PKS - Edit calls, tab parameters preferences. [11/22/00 11:16am]
;;3.0;ORDER ENTRY/RESULTS REPORTING;**9,47,84**;Dec 17, 1997
;
; NOTES: The routines herein are called by those of the same tag
; name in ORXTABS2. Most variables are NEW'd and assigned
; by one or more routines in the preceding call chains.
; Refer to comments and notes there for additional infor-
; mation.
;
; Each tag in this routine must return one of the following:
;
; 1 - A new value entered or selected by the user,
; 2 - A null string,
; 3 - The string "*Invalid*" - to repeat due to invalid entry,
; 4 - The "^" character, indicating user's cancel action.
;
; Some tags in this routine are functions or calls used by
; other tags herein.
;
Q
;
TYPE ; Type, for labs.
;
; Assign DIR variables:
S DIR("T")=120 ; Two minute maximum timeout for response.
S DIR("A")=" Enter "_ORXPDIS_": "
S DIR("A",1)=" L List Format"
S DIR("A",2)=" C Cumulative Format"
S DIR(0)="SAO^L:List Format;C:Cumulative Format" ; Optional, Set of Codes.
;
; Translate one value to match past practice:
I ORXNOW="R" S ORXNOW="L"
;
; Call tag to get/assign input:
D INPUT^ORXTABS2
;
; Re-translate one value to match past practice:
I ORXNOW="L" S ORXNOW="R"
;
; Present applicability message to user:
W !!,"(NOTE: This setting applies only to the LM version of CPRS.)",!
;
Q
;
DISPGRP ; Display Group (service/section), for orders.
;
; Internal variables used:
;
; DIC,X,Y,DTOUT,DUOUT = Variables for FM calls.
; ORXDONE = Flag for loop exit.
; ORXTMP = Temporary variable for value holding.
;
N DIR,X,Y,DTOUT,DUOUT,ORXDONE,ORXTMP
;
; Set/translate current setting into a display value:
I (('$D(ORXNOW))!(ORXNOW="")) S ORXNOW="ALL"
S ORXTMP=0
I ORXNOW'="" D
.S ORXTMP=$O(^ORD(100.98,"B",ORXNOW,ORXTMP))
.I ORXTMP>0 S ORXTMP=$P(^ORD(100.98,ORXTMP,0),U)
;
; Establish loop for input control:
S ORXDONE=0
F D Q:ORXDONE
.W !!," Enter "_ORXPDIS_" for display of orders."
.W !!," Select Service/Section: "_ORXTMP_"//"
.R X:DTIME S:'$T X="^" I X["^" S ORXDONE=1 Q
.I X="" S ORXDONE=1 Q ; No change.
.I X="@" S ORXDONE=1 Q ; Results in default.
.I X["?" W !!," Choose from:",! D DG^ORCHANG1(1,"DISP") Q
.S DIC=100.98,DIC(0)="NEQZ"
.D ^DIC
.S:Y>0 ORXNOW=$P(Y(0),U,3),ORXDONE=1
I X="@" S ORXNOW=X
I (ORXNOW="@") S ORXNOW="ALL" ; Bottom line default.
;
Q
;
OUTPT ; Outpatient (0) or Inpatient (1) meds display.
;
; Assign DIR variables:
S DIR("T")=120 ; Two minute maximum timeout for response.
S DIR("A")=" Enter "_ORXPDIS_": "
S DIR("A",1)=" 0 Outpatient"
S DIR("A",2)=" 1 Inpatient"
S DIR(0)="SAO^0:Outpatient;1:Inpatient" ; Optional, Set of Codes.
;
; Call tag to get/assign input:
D INPUT^ORXTABS2
;
Q
;
SUBJECT ; Subject, for notes.
;
; Assign DIR variables:
S DIR("T")=120 ; Two minute maximum timeout for response.
S DIR("A")=" Enter "_ORXPDIS_" setting: "
S DIR("A",1)=" 0 Off/Hide Subjects"
S DIR("A",2)=" 1 On/Show Subjects"
S DIR(0)="SAO^0:Off/Hide Subjects;1:On/Show Subjects"
;
; Call tag to get/assign input:
D INPUT^ORXTABS2
;
Q
;
FORMAT ; Format, for orders.
;
; Assign DIR variables:
S DIR("T")=120 ; Two minute maximum timeout for response.
S DIR("A")=" Enter "_ORXPDIS_" setting for Orders: "
S DIR("A",1)=" L Long"
S DIR("A",2)=" S Short"
S DIR(0)="SAO^L:Long;S:Short"
;
; Call tag to get/assign input:
D INPUT^ORXTABS2
;
Q
;
COMMENTS ; Comments, for problems.
;
; Assign DIR variables:
S DIR("T")=120 ; Two minute maximum timeout for response.
S DIR("A")=" Enter "_ORXPDIS_" setting for Problems: "
S DIR("A",1)=" 0 Off/Hide Comments"
S DIR("A",2)=" 1 On/Show Comments"
S DIR(0)="SAO^0:Off/Hide Comments;1:On/Show Comments"
;
; Call tag to get/assign input:
D INPUT^ORXTABS2
;
Q
;
SERVICE ; Service, for consults.
;
; Internal variables used:
;
; DIC,X,Y,DTOUT,DUOUT = Variables for call to DIC.
;
N DIC,X,Y,DTOUT,DUOUT
;
; Assign DIC variables and call DIC:
S DIC=123.5
S DIC(0)="AEFMQ"
S DIC("A")=" Select service for Consults: "
S DIC("B")="ALL"
S:$L($G(ORXNOW)) DIC("B")=ORXNOW
S DTIME=120
W !! ; Screen formatting.
D ^DIC
;
I $D(DUOUT) S ORXNOW="^"
I $D(DTOUT) S ORXNOW="^"
;
; Examine user entry, treat if needed, and assign it for return:
I ORXNOW'="^" S:+Y'>0 Y=""
I ORXNOW'="^" S ORXNOW=+Y
;
K DIC,X,Y,DTOUT,DUOUT ; Clean up before exit.
;
Q
;
OCCLIM ; Occurrence Limit, for notes.
;
; Assign DIR variables:
S DIR("T")=120 ; Two minute maximum timeout for response.
S DIR("A")=" Enter "_ORXPDIS_" setting for Notes: "
S DIR("?")=" Entry must be between 1 and 9,999,999"
S DIR(0)="NA^1:9999999" ; Numerical, required.
;
; Call tag to get/assign input:
D INPUT^ORXTABS2
;
I ORXNOW'="^" D
.W !!,"(NOTE: Setting may be overridden by your TIU Personal Preferences.)",!
.H 2
;
Q
;