1
KIDS Distribution saved on Jul 06, 2010@12:05:47
8
OR*3.0*1502^^0^3100706^n
12
Put leading zero on decimal numeric values in order text
19
"BLD",6952,"KRN",.4,0)
21
"BLD",6952,"KRN",.401,0)
23
"BLD",6952,"KRN",.402,0)
25
"BLD",6952,"KRN",.403,0)
27
"BLD",6952,"KRN",.5,0)
29
"BLD",6952,"KRN",.84,0)
31
"BLD",6952,"KRN",3.6,0)
33
"BLD",6952,"KRN",3.8,0)
35
"BLD",6952,"KRN",9.2,0)
37
"BLD",6952,"KRN",9.8,0)
39
"BLD",6952,"KRN",9.8,"NM",0)
41
"BLD",6952,"KRN",9.8,"NM",1,0)
43
"BLD",6952,"KRN",9.8,"NM",2,0)
45
"BLD",6952,"KRN",9.8,"NM",3,0)
47
"BLD",6952,"KRN",9.8,"NM",4,0)
49
"BLD",6952,"KRN",9.8,"NM",5,0)
51
"BLD",6952,"KRN",9.8,"NM","B","ORCD",1)
53
"BLD",6952,"KRN",9.8,"NM","B","ORCSAVE",3)
55
"BLD",6952,"KRN",9.8,"NM","B","ORWPS",2)
57
"BLD",6952,"KRN",9.8,"NM","B","PSGOE4",4)
59
"BLD",6952,"KRN",9.8,"NM","B","PSJHL4A",5)
61
"BLD",6952,"KRN",19,0)
63
"BLD",6952,"KRN",19.1,0)
65
"BLD",6952,"KRN",101,0)
67
"BLD",6952,"KRN",409.61,0)
69
"BLD",6952,"KRN",771,0)
71
"BLD",6952,"KRN",870,0)
73
"BLD",6952,"KRN",8989.51,0)
75
"BLD",6952,"KRN",8989.52,0)
77
"BLD",6952,"KRN",8994,0)
79
"BLD",6952,"KRN","B",.4,.4)
81
"BLD",6952,"KRN","B",.401,.401)
83
"BLD",6952,"KRN","B",.402,.402)
85
"BLD",6952,"KRN","B",.403,.403)
87
"BLD",6952,"KRN","B",.5,.5)
89
"BLD",6952,"KRN","B",.84,.84)
91
"BLD",6952,"KRN","B",3.6,3.6)
93
"BLD",6952,"KRN","B",3.8,3.8)
95
"BLD",6952,"KRN","B",9.2,9.2)
97
"BLD",6952,"KRN","B",9.8,9.8)
99
"BLD",6952,"KRN","B",19,19)
101
"BLD",6952,"KRN","B",19.1,19.1)
103
"BLD",6952,"KRN","B",101,101)
105
"BLD",6952,"KRN","B",409.61,409.61)
107
"BLD",6952,"KRN","B",771,771)
109
"BLD",6952,"KRN","B",870,870)
111
"BLD",6952,"KRN","B",8989.51,8989.51)
113
"BLD",6952,"KRN","B",8989.52,8989.52)
115
"BLD",6952,"KRN","B",8994,8994)
118
C:\KIDSBUILD\OR_30_1502_6.KID
128
Shall I write over your |FLAG| File
138
Want my data |FLAG| yours
148
Want KIDS to INHIBIT LOGONs during the install
158
Enter the Coordinator for Mail Group '|FLAG|'
168
Want KIDS to Rebuild Menu Trees Upon Completion of Install
178
Want to DISABLE Scheduled Options, Menu Options, and Protocols
188
Want to MOVE routines to other CPUs
198
ORCD ; SLC/MKB - Order Dialog utilities ; 29 Jun 2010 3:16 PM
200
;;3.0;ORDER ENTRY/RESULTS REPORTING;**8,38,68,94,161,141,195,215,1502**;Dec 17,1997
202
INPT() ; -- Return 1 or 0, if patient/order sheet = inpatient
204
N Y S Y=$S($G(ORWARD):1,$G(^DPT(+ORVP,.105)):1,1:0)
206
I $G(OREVENT) D ;override if delayed order
208
. N X,X0 S X=$$EVT^OREVNTX(+OREVENT),X0=$G(^ORD(100.5,+X,0))
210
. I $P(X0,U,12) S X0=$G(^ORD(100.5,$P(X0,U,12),0)) ;use parent
212
. S X=$P(X0,U,2) Q:X="M" Q:X="O" ;M/O keep current inpt status
214
. S Y=$S(X="A":1,X="T":1,1:0)
216
. I X="D",$P(X0,U,7)=41 S Y=1 ;From ASIH = Inpt
218
. I X="T",$P(X0,U,7),$P(X0,U,7)<4 S Y=0 ;pass = Outpt
224
EXT(P,I,F) ; -- Returns external value of ORDIALOG(Prompt,Instance)
226
N TYPE,PARAM,FNUM,IENS,X,Y,J,Z
228
S TYPE=$E($G(ORDIALOG(P,0))),PARAM=$P($G(ORDIALOG(P,0)),U,2)
230
S X=$G(ORDIALOG(P,I)) I X="" Q ""
232
I "FNW"[TYPE Q $S(TYPE="W":X,X?1"."1N.E:0_X,1:X) ;MSC JDS put in leading 0 on decimals
234
I TYPE="Y" Q $S(X:"YES",X=0:"NO",1:"")
236
I TYPE="D" S:'$L($G(F)) F=1 Q $$FMTE^XLFDT(X,F)
238
I TYPE="R" Q $$FTDATE(X,$G(F)) ; DAY@TIME
242
. S PARAM=$P(PARAM,":"),FNUM=$S(PARAM:+PARAM,1:+$P(@(U_PARAM_"0)"),U,2))
244
. S IENS=+X_",",J=$L(PARAM,",") I J>2 F S J=J-2 Q:J'>0 S Z=$P(PARAM,",",J),IENS=IENS_$S(Z:Z,1:+$P(Z,"(",2))_","
246
. S:'+$G(F) F=.01 S Y=$$GET1^DIQ(FNUM,IENS,+F)
248
. I Y="",F'=.01 S Y=$$GET1^DIQ(FNUM,IENS,.01)
250
I TYPE="S" F J=1:1:$L(PARAM,";") S Z=$P(PARAM,";",J) I $P(Z,":")=X S Y=$S(+$G(F):X,1:$P(Z,":",2)) Q
252
; MSC/REC 3/25/09 -- External value of Mode of Transport was not being returned
254
I $G(ORNMSP)="RA",TYPE="S",$P(ORDIALOG(P),U,2)="MODE" D
258
. S MSCMOT=$O(^MSC(21475.1,"C",X,0)) I $G(MSCMOT) S Y=$P($G(^MSC(21475.1,MSCMOT,0)),U) Q
260
. ;if no mscmot, check for lowercase abbreviation
262
. S MSCMOT=$O(^MSC(21475.1,"C",$$LOW^XLFSTR(X),0)) I $G(MSCMOT) S Y=$P($G(^MSC(21475.1,MSCMOT,0)),U) Q
268
FTDATE(X,F) ; -- Returns free text form of date (i.e. TODAY)
270
N D,T,P,Y I X="" Q ""
272
S X=$$UP^XLFSTR(X),D=$P(X,"@"),T=$P(X,"@",2) ; D=date,T=time parts
278
I $E("MIDNIGHT",1,$L(X))=X Q "MIDNIGHT"
280
I (X="AM")!(X="NEXT") Q X_" Lab collection"
282
I (X="NEXTA")!(X="CLOSEST") Q $S(X="NEXTA":"NEXT",1:X)_" administration time"
284
I $E(D)'="T",$E(D)'="V",($E(D)'="N"!($E(D,1,3)="NOV")) D Q $$FMTE^XLFDT(X,F)
286
. N %DT S %DT="TX" D ^%DT S:Y>0 X=Y S:'$G(F) F=1
288
S P=$S(D["+":"+",D["-":"-",1:"")
290
I P="" S Y=$S($E(D)="T":"TODAY",$E(D)="V":"NEXT VISIT",1:"NOW")
296
. S OFFSET=$P(D,P,2),NUM=+OFFSET,UNIT=$E($P(OFFSET,NUM,2)) ; +/-#D
298
. I $E(D)="T",NUM=1,UNIT=""!(UNIT="D") S Y=$S(P="+":"TOMORROW",1:"YESTERDAY") Q
300
. S Y=NUM_" "_$S(UNIT="'":"MINUTE",UNIT="H":"HOUR",UNIT="W":"WEEK",UNIT="M":"MONTH",1:"DAY")
302
. S:NUM>1 Y=Y_"S" ; plural
304
. S:$E(D)="N" Y=Y_" "_$S(P="+":"FROM NOW",1:"AGO")
306
. S:$E(D)="T" Y=Y_" "_$S(P="+":"FROM TODAY",1:"AGO")
308
. S:$E(D)="V" Y=Y_" "_$S(P="+":"AFTER",1:"BEFORE")_" NEXT VISIT"
310
I $L(T) S Y=Y_"@"_$$TIME(T)
316
FTDHELP ; -- Displays ??-help for R-type prompts
324
FTDCOMP(X1,X2,OPER) ; -- Compares free text dates from prompts X1 & X2
326
; Returns 1 or 0, IF $$VAL(X1)<OPER>$$VAL(X2) is true
330
S X=$$VAL(X1),%DT="TX" D ^%DT S Y1=Y ; Y'>0 ??
332
S X=$$VAL(X2),%DT="TX" D ^%DT S Y2=Y ; Y'>0 ??
334
S Z="I "_Y1_OPER_Y2 X Z
340
TIME(X) ; -- Returns 00:00 PM formatted time
346
I "MIDNIGHT"[X Q "MIDNIGHT"
348
I X?1U,"BNE"[X Q $S(X="B":"BREAKFAST",X="N":"NOON",X="E":"EVENING",1:"")
350
S X="T@"_X,%DT="TX" D ^%DT I Y'>0 Q ""
352
S Z=$$FMTE^XLFDT(Y,"2P"),Z=$P(Z," ",2)_$$UP^XLFSTR($P(Z," ",3))
358
VAL(TEXT,INST) ; -- Returns internal form of TEXT's current value
360
N I,X S X="" S:'$G(INST) INST=1
362
I '$D(ORDIALOG("B",TEXT)) S I=$O(ORDIALOG("B",TEXT)) Q:$E(I,1,$L(TEXT))'=TEXT X S TEXT=I ; partial match
364
S X=$P($G(ORDIALOG("B",TEXT)),U,2) ; ptr
366
I X?1"."1N.E S X=0_X ;JDS/MSC
368
Q $G(ORDIALOG(X,INST))
372
ORDMSG(OI) ; -- Display order message for orderable OI
374
Q:'$O(^ORD(101.43,OI,8,0)) ; no order message
378
F S I=$O(^ORD(101.43,OI,8,I)) Q:I'>0 W !,$G(^(I,0))
384
PTR(NAME) ; -- Returns pointer to Dialog file for prompt NAME
386
Q +$O(^ORD(101.41,"AB",$E(NAME,1,63),0))
390
NMSP(PKG) ; -- Returns package namespace from pointer
392
N Y S Y=$$GET1^DIQ(9.4,+PKG_",",1)
394
S:$E(Y,1,2)="PS" Y="PS" S:Y="GMRV" Y="OR"
400
GETQDLG(QIFN) ; -- define ORDIALOG(PROMPT) for quick order QIFN
402
S ORDIALOG=$$DEFDLG(QIFN) Q:'ORDIALOG
404
D GETDLG(ORDIALOG),GETORDER("^ORD(101.41,"_QIFN_",6)")
406
X:$D(^ORD(101.41,QIFN,3)) ^(3) ; entry action for quick order
412
DEFDLG(QDLG) ; -- Returns default dialog for QDLG
414
N DG,DLG,TOP S DG=+$P($G(^ORD(101.41,+QDLG,0)),U,5)
416
S DLG=+$P($G(^ORD(100.98,DG,0)),U,4) ; default dialog
418
I 'DLG S TOP=+$O(^ORD(100.98,"AD",DG,0)),DLG=+$P($G(^ORD(100.98,TOP,0)),U,4)
424
GETDLG(IFN) ; -- define ORDIALOG(PROMPT) for dialog IFN
426
N SEQ,DA,ITEM,PTR,PROMPT,TEXT,INDEX,HELP,XHELP,SCREEN,ORD,INPUTXFM,LKP
428
S SEQ=0 K ^TMP("ORWORD",$J)
430
F S SEQ=$O(^ORD(101.41,IFN,10,"B",SEQ)) Q:SEQ'>0 S DA=0 F S DA=$O(^ORD(101.41,IFN,10,"B",SEQ,DA)) Q:'DA D
432
. S ITEM=$G(^ORD(101.41,IFN,10,DA,0)),INPUTXFM=$G(^(.1)),HELP=$G(^(1)),SCREEN=$G(^(4)),XHELP=$G(^(6))
434
. S PTR=$P(ITEM,U,2),TEXT=$P(ITEM,U,4),INDEX=$P(ITEM,U,10) Q:'PTR
436
. S:'$L(TEXT) TEXT=$P(^ORD(101.41,PTR,0),U,2) K ORD
438
. S PROMPT=$G(^ORD(101.41,PTR,1)),ORD=DA_U_$P(PROMPT,U,3)
440
. S ORD(0)=$P(PROMPT,U)_$S($P(PROMPT,U)="S":"M",1:"")_U_$P(PROMPT,U,2)_$S($L(INPUTXFM):U_INPUTXFM,1:"")
442
. S ORD("A")=TEXT S:$L($P(ITEM,U,13)) ORD("TTL")=$P(ITEM,U,13)
444
. I $P(ITEM,U,7) S ORD("MAX")=$P(ITEM,U,12),ORD("MORE")=$P(ITEM,U,14) ; fields for multiples
446
. I $L(HELP) S LKP=$P(HELP,U,2),HELP=$P(HELP,U) S:$L(HELP) ORD("?")=HELP S:$L(LKP) ORD("LKP")=$S($L(LKP,";")>1:$TR(LKP,";","^"),1:U_LKP)
448
. S:$L(XHELP) ORD("??")=U_XHELP
450
. S:$L(INDEX) ORD("D")=INDEX
452
. S:$L(SCREEN) ORD("S")=SCREEN
454
. S ORDIALOG("B",$$UP^XLFSTR($P(TEXT,":")))=SEQ_U_PTR
456
. M ORDIALOG(PTR)=ORD
462
GETDLG1(IFN) ; -- basic ORDIALOG(PROMPT) for dialog IFN
464
N SEQ,DA,PROMPT,PTR,WINCTRL
466
K ^TMP("ORWORD",$J) S SEQ=0
468
F S SEQ=$O(^ORD(101.41,IFN,10,"B",SEQ)) Q:SEQ'>0 S DA=0 F S DA=$O(^ORD(101.41,IFN,10,"B",SEQ,DA)) Q:'DA D
470
. S PTR=$P($G(^ORD(101.41,IFN,10,DA,0)),U,2) Q:'PTR
472
. S WINCTRL=$P($G(^ORD(101.41,IFN,10,DA,"W")),U)
474
. S PROMPT=$G(^ORD(101.41,PTR,1)) Q:'$L(PROMPT)
476
. S ORDIALOG(PTR)=DA_U_$P(PROMPT,U,3)_U_WINCTRL
478
. S ORDIALOG(PTR,0)=$P(PROMPT,U,1,2)
484
GETORDER(ROOT,ARRAY) ; -- retrieve order values from RESPONSES in ARRAY()
486
N ORI,ID,PTR,INST,TYPE,DA,X,ORTXT S:'$L($G(ARRAY)) ARRAY="ORDIALOG"
488
I +ROOT=ROOT S ROOT="^OR(100,"_ROOT_",4.5)" ; assume Orders file IFN
490
S ORI=0 F S ORI=$O(@ROOT@(ORI)) Q:ORI'>0 S ID=$G(@ROOT@(ORI,0)) D
492
. S DA=$P(ID,U),PTR=$P(ID,U,2),INST=$P(ID,U,3) S:'INST INST=1
494
. S:'PTR PTR=$P($G(^ORD(101.41,+ORDIALOG,10,DA,0)),U,2) Q:'PTR
496
. Q:'$D(ORDIALOG(PTR)) S TYPE=$E($G(ORDIALOG(PTR,0))) Q:'$L(TYPE)
498
. I TYPE'="W" S X=$G(@ROOT@(ORI,1)) S:$L(X) @ARRAY@(PTR,INST)=X Q
500
. D RESTXT ;resolve objects
502
. I ARRAY="ORDIALOG" M ^TMP("ORWORD",$J,PTR,INST)=@ORTXT S @ARRAY@(PTR,INST)="^TMP(""ORWORD"","_$J_","_PTR_","_INST_")"
504
. I ARRAY'="ORDIALOG" M @ARRAY@(PTR,INST)=@ORTXT S @ARRAY@(PTR,INST)=$NA(@ARRAY@(PTR,INST))
512
RESTXT ; -- resolve objects in text [from GETORDER+8]
514
I $$BROKER^XWBLIB!($G(ORTYPE)="Z") M ^TMP("ORX",$J)=@ROOT@(ORI,2) S ORTXT=$NA(^TMP("ORX",$J)) Q ;return text unresolved
518
D BLRPLT^TIUSRVD(.ORTXT,,+$G(ORVP),,$NA(@ROOT@(ORI,2)))
524
DUP(PROMPT,CURRENT) ; -- Compare CURRENT instance of PROMPT for duplicates
528
S X=ORDIALOG(PROMPT,CURRENT),Y=0
530
S I=0 F S I=$O(ORDIALOG(PROMPT,I)) Q:I'>0 I I'=CURRENT,$P(ORDIALOG(PROMPT,I),U)=$P(ORDIALOG(PROMPT,CURRENT),U) S Y=1 Q
536
LIST ; -- Show contents of ORDIALOG(PROMPT,"LIST")
538
N NUM S NUM=$G(ORDIALOG(PROMPT,"LIST")) Q:'NUM
540
W !,"Choose from"_$S('$P(NUM,U,2):" (or enter another):",1:":")
542
LIST1 N I,DONE,CNT S (I,CNT,DONE)=0
544
F S I=$O(ORDIALOG(PROMPT,"LIST",I)) Q:I'>0 D Q:DONE
546
. S CNT=CNT+1 I CNT>(IOSL-2) S CNT=0 I '$$MORE S DONE=1 Q
548
. W !,$J(I,6)_" "_$P(ORDIALOG(PROMPT,"LIST",I),U,2)
554
SETLIST ; -- Show allowable set of codes
558
SETLST1 N I,X F I=1:1:$L(DOMAIN,";") S X=$P(DOMAIN,";",I) I $L(X) D
560
. W !,?5,$P(X,":"),?15,$P(X,":",2)
566
MORE() ; -- show more?
570
S DIR(0)="EA",DIR("A")=" press <return> to continue or ^ to exit ..."
578
FIRST(P,I) ; -- Returns 1 or 0, if current instance I is first of multiple
580
Q '$O(ORDIALOG(P,I),-1)
584
RECALL(P,I) ; -- Returns first value for prompt P, instance I
586
N Y S:'$G(I) I=1 S Y=$G(^TMP("ORECALL",$J,+ORDIALOG,P,I))
592
ORCSAVE ;SLC/MKB/JDL-Save ; 02 Jul 2010 8:37 AM
594
;;3.0;ORDER ENTRY/RESULTS REPORTING;**7,56,70,73,92,94,116,141,163,187,190,195,MSC.1502**;Dec 17, 1997
596
;MSC/MGH Changes put in for the transfer to IP and transfer to OP order statuses
598
NEW(ORDIALOG,ORDG,ORPKG,ORCAT,OREVENT,ORDUZ,ORLOG) ; -- New order
600
; Returns ORIFN = [new] order number, if created/saved
608
XX ; -- save new/unreleased edited order into Orders file
609
"RTN","ORCSAVE",10,0)
610
; Requires: ORDIALOG() = array of dialog values
611
"RTN","ORCSAVE",11,0)
612
; ORIFN = IFN of original order that was edited
613
"RTN","ORCSAVE",12,0)
615
"RTN","ORCSAVE",13,0)
616
N OLDIFN S ORIFN=+ORIFN,OLDIFN=0
617
"RTN","ORCSAVE",14,0)
618
I $S($P(^OR(100,ORIFN,3),U,3)=11:0,$P(^(3),U,3)'=10:1,$P(^(8,1,0),U,4)=2:0,1:1) S OLDIFN=ORIFN K ORIFN ; create new order if released or delayed&signed
619
"RTN","ORCSAVE",15,0)
620
D EN Q:'ORIFN S:'$G(ORDA) ORDA=1
621
"RTN","ORCSAVE",16,0)
622
I $G(OLDIFN) D ;save links between orders
623
"RTN","ORCSAVE",17,0)
624
. S $P(^OR(100,ORIFN,3),U,5)=OLDIFN,$P(^(3),U,11)=1
625
"RTN","ORCSAVE",18,0)
626
. S $P(^OR(100,OLDIFN,3),U,6)=ORIFN S:$D(^(5)) ^OR(100,ORIFN,5)=^OR(100,OLDIFN,5)
627
"RTN","ORCSAVE",19,0)
628
I $D(^OR(100,+OLDIFN,0)) D
629
"RTN","ORCSAVE",20,0)
631
"RTN","ORCSAVE",21,0)
632
. N OLDEVT,OLDSTS,LSTACT,PATID,NOW,WHEN
633
"RTN","ORCSAVE",22,0)
634
. S (OLDEVT,OLDSTS,LSTACT)=0
635
"RTN","ORCSAVE",23,0)
637
"RTN","ORCSAVE",24,0)
638
. S OLDEVT=$P(^(0),U,17),OLDSTS=$P(^(3),U,3)
639
"RTN","ORCSAVE",25,0)
640
. ; Active status = 6 from #100.01
641
"RTN","ORCSAVE",26,0)
642
. I (OLDEVT>0),OLDSTS=6 D
643
"RTN","ORCSAVE",27,0)
644
. . S $P(^OR(100,+ORIFN,0),U,17)=OLDEVT
645
"RTN","ORCSAVE",28,0)
646
. . S $P(^OR(100,+ORIFN,3),U,3)=11
647
"RTN","ORCSAVE",29,0)
648
. . S LSTACT=$P($G(^OR(100,+ORIFN,3)),U,7)
649
"RTN","ORCSAVE",30,0)
650
. . I $D(^OR(100,+ORIFN,8,LSTACT,0)) D
651
"RTN","ORCSAVE",31,0)
652
. . . S $P(^OR(100,+ORIFN,8,LSTACT,0),U,15)=11
653
"RTN","ORCSAVE",32,0)
654
. . . S PATID=$P(^OR(100,+ORIFN,0),U,2)
655
"RTN","ORCSAVE",33,0)
656
. . . S WHEN=$P(^OR(100,+ORIFN,8,LSTACT,0),U)
657
"RTN","ORCSAVE",34,0)
658
. . . S ^OR(100,"AC",PATID,9999999-WHEN,+ORIFN,LSTACT)=""
659
"RTN","ORCSAVE",35,0)
661
"RTN","ORCSAVE",36,0)
663
"RTN","ORCSAVE",37,0)
664
RN ; -- save new/unreleased renewal order into Orders file
665
"RTN","ORCSAVE",38,0)
666
; Requires: ORDIALOG() = array of new dialog values
667
"RTN","ORCSAVE",39,0)
668
; ORIFN = IFN of original order that was renewed
669
"RTN","ORCSAVE",40,0)
671
"RTN","ORCSAVE",41,0)
672
N OLDIFN S OLDIFN=+ORIFN K ORIFN
673
"RTN","ORCSAVE",42,0)
674
D EN Q:'ORIFN S:'$G(ORDA) ORDA=1
675
"RTN","ORCSAVE",43,0)
676
S $P(^OR(100,ORIFN,3),U,5)=OLDIFN,$P(^(3),U,11)=2
677
"RTN","ORCSAVE",44,0)
678
S $P(^OR(100,OLDIFN,3),U,6)=ORIFN S:$D(^(5)) ^OR(100,ORIFN,5)=^OR(100,OLDIFN,5)
679
"RTN","ORCSAVE",45,0)
681
"RTN","ORCSAVE",46,0)
683
"RTN","ORCSAVE",47,0)
684
EN ; -- save new/unreleased order in ORDIALOG() into Orders file
685
"RTN","ORCSAVE",48,0)
686
; Requires: ORVP, ORNP [and ORL, ORTS, ORAPPT if available]
687
"RTN","ORCSAVE",49,0)
688
; If defined: ORCAT,ORPKG,ORDG,ORLOG,ORDUZ,OREVENT,ORDCNTRL,ORSRC
689
"RTN","ORCSAVE",50,0)
690
; (else use values from ORDIALOG and current state)
691
"RTN","ORCSAVE",51,0)
693
"RTN","ORCSAVE",52,0)
694
N PKG,NOW,NODE,CNT,CDL,I,X,STS,SIGNREQD,LOC,TRSPEC,NATR,CATG,DG,LOG,USR,TYPE
695
"RTN","ORCSAVE",53,0)
696
Q:'$G(ORVP) Q:'$G(ORDIALOG) Q:'$D(^ORD(101.41,+ORDIALOG,0))
697
"RTN","ORCSAVE",54,0)
698
S NOW=$$NOW^XLFDT,SIGNREQD=+$P(^ORD(101.41,+ORDIALOG,0),U,6)
699
"RTN","ORCSAVE",55,0)
700
S CATG=$S($L($G(ORCAT)):ORCAT,1:$S($$INPT^ORCD:"I",1:"O"))
701
"RTN","ORCSAVE",56,0)
702
S PKG=$S($G(ORPKG):ORPKG,1:$P(^ORD(101.41,+ORDIALOG,0),U,7))
703
"RTN","ORCSAVE",57,0)
704
I $G(ORIFN),$D(^OR(100,ORIFN,0)) S STS=$P(^(3),U,3) G EN2 ; unrel order
705
"RTN","ORCSAVE",58,0)
706
S DG=$S($G(ORDG):+ORDG,1:$P(^ORD(101.41,+ORDIALOG,0),U,5))
707
"RTN","ORCSAVE",59,0)
708
I $G(OREVENT),$$GET1^DIQ(9.4,+PKG_",",1)'="PSO",'$G(DGPMT) S LOC="",TRSPEC="" ;195
709
"RTN","ORCSAVE",60,0)
710
E S LOC=$G(ORL),TRSPEC=$G(ORTS)
711
"RTN","ORCSAVE",61,0)
712
S TYPE=$S("^B^C^X^P^0^"[(U_$G(ORSRC)_U):ORSRC,$G(ORDCNTRL)="SN":"P",1:0)
713
"RTN","ORCSAVE",62,0)
714
S LOG=$S($G(ORLOG):ORLOG,1:+$E(NOW,1,12)),USR=$S($G(ORDUZ):ORDUZ,1:DUZ)
715
"RTN","ORCSAVE",63,0)
716
S NATR=+$O(^ORD(100.02,"C","E",0)) ;assume Elec Entered until changed
717
"RTN","ORCSAVE",64,0)
718
S STS=$S($G(OREVENT):10,1:11),ORIFN=$$NEXTIFN Q:'ORIFN
719
"RTN","ORCSAVE",65,0)
720
EN1 S ^OR(100,ORIFN,0)=ORIFN_U_ORVP_U_U_$G(ORNP)_U_+ORDIALOG_";ORD(101.41,^"_USR_U_LOG_U_U_U_LOC_U_DG_U_CATG_U_TRSPEC_U_PKG_U_U_SIGNREQD_U_$G(OREVENT)_U_$G(ORAPPT)
721
"RTN","ORCSAVE",66,0)
722
S ^OR(100,ORIFN,3)=LOG_"^90^"_STS_U_$S($G(ORIT):ORIT_";ORD(101.41,",1:"")_U_$G(ORDIALOG("PREV"))_"^^1^^^^"_TYPE
723
"RTN","ORCSAVE",67,0)
724
S ^OR(100,ORIFN,8,0)="^100.008DA^1^1",^OR(100,ORIFN,8,1,0)=LOG_"^NW^"_$G(ORNP)_U_$S(SIGNREQD:2,1:3)_"^^^^^^^^"_NATR_U_USR_"^1^"_STS,^OR(100,ORIFN,8,"C","NW",1)=""
725
"RTN","ORCSAVE",68,0)
726
S ^OR(100,"AF",LOG,ORIFN,1)=""
727
"RTN","ORCSAVE",69,0)
728
S ^OR(100,"ACT",ORVP,9999999-LOG,+DG,ORIFN,1)=""
729
"RTN","ORCSAVE",70,0)
730
S:STS'=10 ^OR(100,"AC",ORVP,9999999-LOG,ORIFN,1)=""
731
"RTN","ORCSAVE",71,0)
732
S:SIGNREQD ^OR(100,"AS",ORVP,9999999-LOG,ORIFN,1)=""
733
"RTN","ORCSAVE",72,0)
734
S:$G(OREVENT) ^OR(100,"AEVNT",ORVP,OREVENT,ORIFN)=""
735
"RTN","ORCSAVE",73,0)
736
EN2 S ORIFN=+ORIFN D RESPONSE ; save responses
737
"RTN","ORCSAVE",74,0)
738
I $P(^OR(100,ORIFN,0),"^",5) D ;Copy orders PKI fix
739
"RTN","ORCSAVE",75,0)
741
"RTN","ORCSAVE",76,0)
742
. S OI=+$O(^OR(100,ORIFN,4.5,"ID","ORDERABLE",0)),OI=+$G(^OR(100,ORIFN,4.5,OI,1)) Q:'OI
743
"RTN","ORCSAVE",77,0)
744
. I PKG'=$O(^DIC(9.4,"B","OUTPATIENT PHARMACY",0)) Q
745
"RTN","ORCSAVE",78,0)
746
. D PKI^ORWDPS1(.ORY,OI,CATG,+ORVP,$$GET^XPAR("ALL^USR.`"_DUZ,"ORWOR PKI USE",1,"Q"))
747
"RTN","ORCSAVE",79,0)
748
. I $E($G(ORY))=2 S ORDEA=ORY
749
"RTN","ORCSAVE",80,0)
750
K ^OR(100,ORIFN,8,1,.1) D ORDTEXT^ORCSAVE1(ORIFN_";1") ; order text
751
"RTN","ORCSAVE",81,0)
752
S NODE=$G(^OR(100,ORIFN,0)) D S ^OR(100,ORIFN,0)=NODE
753
"RTN","ORCSAVE",82,0)
754
. S $P(NODE,U,4)=$G(ORNP) ; COST?
755
"RTN","ORCSAVE",83,0)
756
. S I=$O(^OR(100,ORIFN,4.5,"ID","LOCATION",0))
757
"RTN","ORCSAVE",84,0)
758
. I I,$P(NODE,U,10) S X=+$G(^OR(100,ORIFN,4.5,+I,1)) S:X $P(NODE,U,10)=X_";SC(" ;reset Loc if prev value
759
"RTN","ORCSAVE",85,0)
760
. S I=$O(^OR(100,ORIFN,4.5,"ID","CLASS",0))
761
"RTN","ORCSAVE",86,0)
762
. I I S X=$G(^OR(100,ORIFN,4.5,+I,1)) S:"^I^O^"[(U_X_U) $P(NODE,U,12)=X
763
"RTN","ORCSAVE",87,0)
764
S $P(^OR(100,ORIFN,3),U)=NOW
765
"RTN","ORCSAVE",88,0)
766
K ^OR(100,ORIFN,9) I $G(ORCHECK) D ; save order checks
767
"RTN","ORCSAVE",89,0)
768
. S (CNT,CDL)=0 F S CDL=$O(ORCHECK("NEW",CDL)) Q:CDL'>0 S I=0 D
769
"RTN","ORCSAVE",90,0)
770
. . F S I=$O(ORCHECK("NEW",CDL,I)) Q:I'>0 S X=ORCHECK("NEW",CDL,I) D
771
"RTN","ORCSAVE",91,0)
772
. . . S CNT=CNT+1,^OR(100,ORIFN,9,"B",+X,CNT)=""
773
"RTN","ORCSAVE",92,0)
774
. . . S ^OR(100,ORIFN,9,CNT,0)=$P(X,U,1,2),^(1)=$E($P(X,U,3),1,245)
775
"RTN","ORCSAVE",93,0)
776
. S:CNT ^OR(100,ORIFN,9,0)="^100.09PA^"_CNT_U_CNT
777
"RTN","ORCSAVE",94,0)
778
;MSC/MGH Changes added here for the transfer to IP and OP functionality on home meds
779
"RTN","ORCSAVE",95,0)
780
I $G(TYPE)="X",$G(^TMP("MSCPSHMX",$J)) S MSCIEN=+^($J) K ^($J) D
781
"RTN","ORCSAVE",96,0)
782
.S MSCSTAT="TRANSFER TO "_$P($G(^OR(100,ORIFN,0)),U,12)_"P",MSCSTAT=$O(^ORD(100.01,"B",MSCSTAT,0)) Q:'MSCSTAT
783
"RTN","ORCSAVE",97,0)
784
.D STATUS^ORCSAVE2(MSCIEN,MSCSTAT)
785
"RTN","ORCSAVE",98,0)
787
"RTN","ORCSAVE",99,0)
789
"RTN","ORCSAVE",100,0)
791
"RTN","ORCSAVE",101,0)
793
"RTN","ORCSAVE",102,0)
794
NEXTIFN() ; -- Returns next available ORIFN
795
"RTN","ORCSAVE",103,0)
796
N I,HDR,LAST,TOTAL,DA
797
"RTN","ORCSAVE",104,0)
798
F I=1:1:10 L +^OR(100,0):1 Q:$T H 2
799
"RTN","ORCSAVE",105,0)
801
"RTN","ORCSAVE",106,0)
802
S HDR=$G(^OR(100,0)),TOTAL=+$P(HDR,U,4),LAST=$O(^OR(100,"?"),-1)
803
"RTN","ORCSAVE",107,0)
804
S I=LAST\1 F I=(I+1):1 Q:'$D(^OR(100,I,0))
805
"RTN","ORCSAVE",108,0)
806
S DA=I,^OR(100,DA,0)=DA,$P(HDR,U,3,4)=DA_U_(TOTAL+1)
807
"RTN","ORCSAVE",109,0)
808
S ^OR(100,0)=HDR L -^OR(100,0)
809
"RTN","ORCSAVE",110,0)
811
"RTN","ORCSAVE",111,0)
813
"RTN","ORCSAVE",112,0)
814
RESPONSE ; -- Save responses in ORDIALOG() into ^OR(100,ORIFN,4.5)
815
"RTN","ORCSAVE",113,0)
816
N PROMPT,CNT,ITM,TYPE,INST,VALUE,I,START,PAT,X
817
"RTN","ORCSAVE",114,0)
818
S PAT=$P(^OR(100,ORIFN,0),U,2),START=$P(^(0),U,8) K ^(4.5)
819
"RTN","ORCSAVE",115,0)
820
S (PROMPT,CNT)=0 F S PROMPT=$O(ORDIALOG(PROMPT)) Q:PROMPT'>0 D
821
"RTN","ORCSAVE",116,0)
822
. S ITM=$G(ORDIALOG(PROMPT)) Q:'ITM
823
"RTN","ORCSAVE",117,0)
824
. S TYPE=$E($G(ORDIALOG(PROMPT,0))) Q:'$L(TYPE)
825
"RTN","ORCSAVE",118,0)
826
. S INST=0 F S INST=$O(ORDIALOG(PROMPT,INST)) Q:INST'>0 D
827
"RTN","ORCSAVE",119,0)
828
. . S VALUE=$G(ORDIALOG(PROMPT,INST)) Q:VALUE="" S CNT=CNT+1
829
"RTN","ORCSAVE",120,0)
830
. . S ^OR(100,ORIFN,4.5,CNT,0)=+ITM_U_PROMPT_U_INST_U_$P(ITM,U,2)
831
"RTN","ORCSAVE",121,0)
832
. . S:$L($P(ITM,U,2)) ^OR(100,ORIFN,4.5,"ID",$P(ITM,U,2),CNT)=""
833
"RTN","ORCSAVE",122,0)
834
. . S:TYPE'="W" ^OR(100,ORIFN,4.5,CNT,1)=$S("FN"'[TYPE:"",$E($P($G(^DIC(9.4,+$G(PKG),0)),U,2),1,2)'="PS":"",VALUE?1"."1N.E:0,1:"")_VALUE
835
"RTN","ORCSAVE",123,0)
836
. . M:TYPE="W" ^OR(100,ORIFN,4.5,CNT,2)=@VALUE ; array root
837
"RTN","ORCSAVE",124,0)
838
S ^OR(100,ORIFN,4.5,0)="^100.045A^"_CNT_U_CNT
839
"RTN","ORCSAVE",125,0)
840
R1 ; [Reset] Orderables
841
"RTN","ORCSAVE",126,0)
842
I $D(^OR(100,ORIFN,.1)) S I=0 F S I=$O(^OR(100,ORIFN,.1,I)) Q:I'>0 S X=$G(^(I,0)) I X,PAT,START K ^OR(100,"AOI",X,PAT,9999999-START,ORIFN) ; kill xref
843
"RTN","ORCSAVE",127,0)
844
K ^OR(100,ORIFN,.1) I $D(^OR(100,ORIFN,4.5,"ID","ORDERABLE")) D
845
"RTN","ORCSAVE",128,0)
847
"RTN","ORCSAVE",129,0)
848
. F S I=$O(^OR(100,ORIFN,4.5,"ID","ORDERABLE",I)) Q:I'>0 D
849
"RTN","ORCSAVE",130,0)
850
. . S X=$G(^OR(100,ORIFN,4.5,I,1)) Q:'X
851
"RTN","ORCSAVE",131,0)
852
. . S CNT=CNT+1,^OR(100,ORIFN,.1,CNT,0)=X,^OR(100,ORIFN,.1,"B",X,CNT)=""
853
"RTN","ORCSAVE",132,0)
854
. . I PAT,START S ^OR(100,"AOI",X,PAT,9999999-START,ORIFN)=""
855
"RTN","ORCSAVE",133,0)
856
. S ^OR(100,ORIFN,.1,0)="^100.001PA^"_CNT_U_CNT
857
"RTN","ORCSAVE",134,0)
859
"RTN","ORCSAVE",135,0)
861
"RTN","ORCSAVE",136,0)
862
RESUME(IFN) ; -- add Response nodes for RESUME tray service
863
"RTN","ORCSAVE",137,0)
864
; S ^OR(100,+IFN,4.5,<next>,0)=DT_"^^^RESUME",^(1)=1
865
"RTN","ORCSAVE",138,0)
867
"RTN","ORCSAVE",139,0)
869
"RTN","ORCSAVE",140,0)
870
S DIC="^OR(100,"_+IFN_",4.5,",DIC(0)="LX",DA(1)=+IFN,X=DT
871
"RTN","ORCSAVE",141,0)
872
S DIC("DR")=".04///RESUME",DIC("P")=$P(^DD(100,4.5,0),U,2)
873
"RTN","ORCSAVE",142,0)
874
D ^DIC S:Y ^OR(100,+IFN,4.5,+Y,1)=1
875
"RTN","ORCSAVE",143,0)
877
"RTN","ORCSAVE",144,0)
879
"RTN","ORCSAVE",145,0)
880
PROVIDER(ORDER,PROV) ; -- Change PROVider assigned to ORDER
881
"RTN","ORCSAVE",146,0)
882
Q:'$G(ORDER) Q:'$G(PROV)
883
"RTN","ORCSAVE",147,0)
884
N ORACT S ORACT=+$P(ORDER,";",2) S:'ORACT ORACT=1
885
"RTN","ORCSAVE",148,0)
886
S $P(^OR(100,+ORDER,8,ORACT,0),U,3)=PROV
887
"RTN","ORCSAVE",149,0)
888
S:ORACT=1 $P(^OR(100,+ORDER,0),U,4)=PROV
889
"RTN","ORCSAVE",150,0)
891
"RTN","ORCSAVE",151,0)
893
"RTN","ORCSAVE",152,0)
894
ACTION(CODE,DA,PROV,REASON,WHEN,WHO) ; -- save new action
895
"RTN","ORCSAVE",153,0)
896
N NEXT,TOTAL,HDR,LAST,X,PAT,DGRP,SIG,NATR,TXT S DA=+DA
897
"RTN","ORCSAVE",154,0)
898
Q:'$D(^OR(100,DA,0)) 0 Q:$G(CODE)'?2U 0
899
"RTN","ORCSAVE",155,0)
900
S:'$G(WHEN) WHEN=+$E($$NOW^XLFDT,1,12) S:'$G(WHO) WHO=DUZ
901
"RTN","ORCSAVE",156,0)
902
S NATR=+$O(^ORD(100.02,"C","E",0)) ;assume Elec Entered until changed
903
"RTN","ORCSAVE",157,0)
904
S PAT=$P(^OR(100,DA,0),U,2),DGRP=$P(^(0),U,11),SIG=$P(^(0),U,16),X=+$P($G(^(3)),U,7),HDR=$G(^(8,0))
905
"RTN","ORCSAVE",158,0)
906
S:X'>0 X=1 S TXT=$P($G(^OR(100,DA,8,X,0)),U,14) ;current actn's txt ptr
907
"RTN","ORCSAVE",159,0)
908
S:HDR="" HDR="^100.008DA^^" S TOTAL=+$P(HDR,U,4)
909
"RTN","ORCSAVE",160,0)
910
S LAST=$O(^OR(100,DA,8,"C",CODE,"?"),-1) I LAST D
911
"RTN","ORCSAVE",161,0)
912
. S X=$G(^OR(100,DA,8,LAST,0)) Q:$P(X,U,15)'=11 Q:$P(X,U,4)'=2
913
"RTN","ORCSAVE",162,0)
914
. S NEXT=LAST I PAT,$P(X,U) D ; kill old xref entries
915
"RTN","ORCSAVE",163,0)
916
. . K:DGRP ^OR(100,"ACT",PAT,(9999999-$P(X,U)),DGRP,DA,NEXT)
917
"RTN","ORCSAVE",164,0)
918
. . K ^OR(100,"AC",PAT,(9999999-$P(X,U)),DA,NEXT),^OR(100,"AS",PAT,(9999999-$P(X,U)),DA,NEXT),^OR(100,"AF",$P(X,U),DA,NEXT)
919
"RTN","ORCSAVE",165,0)
920
S:'$G(NEXT) NEXT=$O(^OR(100,DA,8,"?"),-1)+1,TOTAL=TOTAL+1
921
"RTN","ORCSAVE",166,0)
922
S ^OR(100,DA,8,NEXT,0)=WHEN_U_CODE_U_$G(PROV)_U_$S(SIG:2,1:3)_"^^^^^^^^"_NATR_U_WHO_U_TXT_"^11",^OR(100,DA,8,"C",CODE,NEXT)=""
923
"RTN","ORCSAVE",167,0)
924
S ^OR(100,"AF",WHEN,DA,NEXT)=""
925
"RTN","ORCSAVE",168,0)
926
I PAT,DGRP S ^OR(100,"ACT",PAT,9999999-WHEN,DGRP,DA,NEXT)=""
927
"RTN","ORCSAVE",169,0)
928
I PAT S ^OR(100,"AC",PAT,9999999-WHEN,DA,NEXT)=""
929
"RTN","ORCSAVE",170,0)
930
I SIG S ^OR(100,"AS",PAT,9999999-WHEN,DA,NEXT)=""
931
"RTN","ORCSAVE",171,0)
932
S:$L($G(REASON)) ^OR(100,DA,8,NEXT,1)=REASON
933
"RTN","ORCSAVE",172,0)
934
S $P(HDR,U,3,4)=NEXT_U_TOTAL,^OR(100,DA,8,0)=HDR
935
"RTN","ORCSAVE",173,0)
937
"RTN","ORCSAVE",174,0)
939
"RTN","ORCSAVE",175,0)
940
SET(DLG) ; -- Create new parent for order set ORDIALOG
941
"RTN","ORCSAVE",176,0)
942
; Returns ORPIFN = ifn of new parent order for set
943
"RTN","ORCSAVE",177,0)
945
"RTN","ORCSAVE",178,0)
946
Q:'$G(ORVP) Q:'$G(DLG) N OR0,PKG,NOW,CATG,STS,ORLOC,TRSPEC,X
947
"RTN","ORCSAVE",179,0)
948
S OR0=$G(^ORD(101.41,DLG,0)) Q:OR0="" S ORPIFN=$$NEXTIFN Q:'ORPIFN
949
"RTN","ORCSAVE",180,0)
950
S PKG=$O(^DIC(9.4,"C","OR",0)),CATG=$S($$INPT^ORCD:"I",1:"O"),STS=$S($G(OREVENT):10,1:11),NOW=$S($G(ORSLOG):ORSLOG,1:+$E($$NOW^XLFDT,1,12))
951
"RTN","ORCSAVE",181,0)
952
I $G(OREVENT) S ORLOC="",TRSPEC=""
953
"RTN","ORCSAVE",182,0)
954
S ^OR(100,ORPIFN,0)=ORPIFN_U_ORVP_U_U_$G(ORNP)_U_DLG_";ORD(101.41,^"_DUZ_U_NOW_U_U_U_ORLOC_U_U_CATG_U_TRSPEC_U_PKG_"^^^"_$G(OREVENT),^(3)=NOW_"^90^"_STS_U_$S($G(ORIT):ORIT_"ORD(101.41,",1:"")_"^^^1^^^^0^^"_+$P(OR0,U,6)
955
"RTN","ORCSAVE",183,0)
956
S ^OR(100,ORPIFN,8,0)="^100.008DA^1^1",^(1,0)=NOW_"^NW^"_$G(ORNP)_"^^^^^^^^^^"_DUZ_"^^"_STS,^OR(100,ORPIFN,8,"C","NW",1)="",^OR(100,"AF",NOW,ORPIFN,1)=""
957
"RTN","ORCSAVE",184,0)
958
S ^OR(100,"ACT",ORVP,9999999-NOW,ORPIFN,1)=""
959
"RTN","ORCSAVE",185,0)
960
S:STS=11 ^OR(100,"AC",ORVP,9999999-NOW,ORPIFN,1)=""
961
"RTN","ORCSAVE",186,0)
963
"RTN","ORCSAVE",187,0)
964
S ^OR(100,ORPIFN,1,0)="^100.011^1^1",^(1,0)=$P(OR0,U,2) ; Order text
965
"RTN","ORCSAVE",188,0)
970
ORWPS ; SLC/KCM/JLI/REV/CLA - Meds Tab -show meds;30 JUNE 2009 ; 01 Jul 2010 1:41 PM
972
;;3.0;ORDER ENTRY/RESULTS REPORTING;**10,85,116,132,141,173,203,190,195,265,275,MSC,1502**;Dec 17, 1997;Build 7
974
COVER(LST,DFN) ; retrieve meds for cover sheet
978
D OCL^PSOORRL(DFN,"","") ;DBIA #2400
980
N ILST,ITMP,X S ILST=0
982
S ITMP="" F S ITMP=$O(^TMP("PS",$J,ITMP)) Q:'ITMP D
984
. S X=^TMP("PS",$J,ITMP,0)
986
. I '$L($P(X,U,2)) S X="??" ; show something if drug empty
988
. I $D(^TMP("PS",$J,ITMP,"CLINIC",0)) S LST($$NXT)=$P(X,U,1,2)_U_$P(X,U,8,9)_U_"C"
990
. E S LST($$NXT)=$P(X,U,1,2)_U_$P(X,U,8,9)
992
. I $P(X,U)["N" N MSC S MSC=$P($G(^OR(100,+$P(X,U,8),3)),U,3) I (MSC>21399)!(MSC=3) S $P(LST(ILST),U,4)=$P($G(^ORD(100.01,+MSC,0)),U)
998
DT(X) ; -- Returns FM date for X
1000
N Y,%DT S %DT="T",Y="" D:X'="" ^%DT
1006
ACTIVE(LST,DFN) ; retrieve active inpatient & outpatient meds
1016
S CTX=$$GET^XPAR("ALL","ORCH CONTEXT MEDS")
1018
I CTX=";" D DEL^XPAR("USR.`"_DUZ,"ORCH CONTEXT MEDS")
1020
S CTX=$$GET^XPAR("ALL","ORCH CONTEXT MEDS")
1022
S BEG=$$DT($P(CTX,";")),END=$$DT($P(CTX,";",2))
1024
D OCL^PSOORRL(DFN,BEG,END) ;DBIA #2400
1026
N ITMP,FIELDS,INSTRUCT,COMMENTS,REASON,NVSDT,TYPE,ILST,J S ILST=0
1028
S ITMP="" F S ITMP=$O(^TMP("PS",$J,ITMP),-1) Q:'ITMP D
1030
. K INSTRUCT,COMMENTS,REASON,MEDREC,MSCOA ;msc/rec - Added MEDREC to this line. 10/30/08
1032
. K ^TMP("ORACT",$J,"COMMENTS")
1034
. S COMMENTS="^TMP(""ORACT"",$J,""COMMENTS"")"
1036
. S (INSTRUCT,@COMMENTS)="",FIELDS=^TMP("PS",$J,ITMP,0)
1040
ORDER .I +$P(FIELDS,"^",8) D
1042
..N N,IFN,OI,NODE S NODE=^TMP("PS",$J,ITMP,0),IFN=+$P(FIELDS,"^",8) D GFT S N=$P(NODE,"^",2)
1044
..F J=0:0 S J=$O(^OR(100,IFN,4.5,J)) Q:'J I $P($G(^(J,0)),U,4)="ORDERABLE" S OI=+$G(^(1)) Q
1046
..I $G(OI) F J=0:0 S J=$O(^ORD(101.43,OI,2,J)) Q:'J I $G(^(J,0))?1U.E S N=N_" [GEQ: "_$P(^(0),U)_"]" Q ;***GFT/MSC
1048
..I $D(^OR(100,IFN,8,"C","XX")) S N="*"_N ;dan testing
1050
..S $P(^TMP("PS",$J,ITMP,0),"^",2)=N
1052
..N MSC S MSC=$P($G(^OR(100,IFN,3)),U,3) I (MSC>21399)!(MSC=3) S ($P(FIELDS,U,9),$P(^TMP("PS",$J,ITMP,0),U,9))=$P($G(^ORD(100.01,+MSC,0)),U)
1054
. S TYPE=$S($P($P(FIELDS,U),";",2)="O":"OP",1:"UD")
1056
. I $D(^TMP("PS",$J,ITMP,"CLINIC",0)) S TYPE="CP"
1058
. N LOC,LOCEX S (LOC,LOCEX)=""
1060
. I TYPE="CP" S LOC=$G(^TMP("PS",$J,ITMP,"CLINIC",0))
1062
. S:LOC LOCEX=$P($G(^SC(+LOC,0)),U)_":"_+LOC ;IMO NEW
1066
. I TYPE="OP",$P(FIELDS,";")["N" S TYPE="NV" ;non-VA med
1068
. I $O(^TMP("PS",$J,ITMP,"A",0))>0 S TYPE="IV"
1070
. I $O(^TMP("PS",$J,ITMP,"B",0))>0 S TYPE="IV"
1072
. I (TYPE="UD")!(TYPE="CP") D UDINST(.INSTRUCT,ITMP)
1074
. I TYPE="OP" D OPINST(.INSTRUCT,ITMP)
1076
. I TYPE="IV" D IVINST(.INSTRUCT,ITMP)
1078
. I TYPE="NV" D NVINST(.INSTRUCT,ITMP),NVREASON(.REASON,.NVSDT,ITMP),NVMEDREC(.MEDREC,ITMP),NVOA(ITMP) ; msc/rec - Add NVMEDREC call to this line 10/30/08
1080
. I (TYPE="UD")!(TYPE="IV")!(TYPE="NV")!(TYPE="CP") D SETMULT(COMMENTS,ITMP,"SIO")
1082
. M COMMENTS=@COMMENTS
1084
. I $D(COMMENTS(1)) S COMMENTS(1)="\"_COMMENTS(1)
1086
. S:TYPE="NV" $P(FIELDS,U,4)=$G(NVSDT)
1088
. I LOC S LST($$NXT)="~CP:"_LOCEX_U_FIELDS
1090
. E S LST($$NXT)="~"_TYPE_U_FIELDS
1092
. ;msc/rec 1/21/09 - Add order action for home meds to return array
1094
. I $G(MSCOA)]"" S $P(LST(ILST),U,30)=MSCOA
1098
. S J=0 F S J=$O(INSTRUCT(J)) Q:'J S LST($$NXT)=INSTRUCT(J)
1100
. S J=0 F S J=$O(COMMENTS(J)) Q:'J S LST($$NXT)="t"_COMMENTS(J)
1102
. S J=0 F S J=$O(REASON(J)) Q:'J S LST($$NXT)="t"_REASON(J)
1104
. ;msc/rec - Add new Med Rec fields to display on MEDS tab 10/30/08
1106
. S J=0 F S J=$O(MEDREC(J)) Q:'J S LST($$NXT)="t"_MEDREC(J)
1114
NXT() ; increment ILST
1124
GFT I $P(NODE,U,2)="" N GFT S GFT=$P($G(^PS(50.7,+$G(^PSRX(+NODE,"OR1")),0)),U) I GFT]"" S $P(NODE,U,2)=GFT ;look at PHARMACY ORDERABLE ITEM if no DRUG
1130
UDINST(Y,INDEX) ; assembles instructions for a unit dose order
1134
S X=^TMP("PS",$J,INDEX,0)
1136
S RST="^TMP(""ORACT"",$J,""INSTRUCT"")"
1138
S @RST@(1)=" "_$P(X,U,2),@RST=1
1140
S X=$S($L($P(X,U,6)):$P(X,U,6),1:$P(X,U,7))
1142
I $L(X) S @RST=2,@RST@(2)=$S(X?1"."1N.E:0_X,1:X) ;JDS/MSC
1144
E S @RST=1 D SETMULT(.RST,INDEX,"SIG")
1146
S @RST@(2)="\Give: "_$G(@RST@(2)),@RST=$G(@RST,2)
1148
D SETMULT(RST,INDEX,"MDR"),SETMULT(RST,INDEX,"SCH")
1150
F I=3:1:@RST S @RST@(I)=" "_@RST@(I)
1156
OPINST(Y,INDEX) ; assembles instructions for an outpatient prescription
1160
S X=^TMP("PS",$J,INDEX,0)
1162
S RST="^TMP(""ORACT"",$J,""INSTRUCT"")"
1164
S @RST@(1)=" "_$P(X,U,2),@RST=1
1166
I $L($P(X,U,12)) S @RST@(1)=@RST@(1)_" Qty: "_$P(X,U,12)
1167
"RTN","ORWPS",100,0)
1168
I $L($P(X,U,11)) S @RST@(1)=@RST@(1)_" for "_$P(X,U,11)_" days"
1169
"RTN","ORWPS",101,0)
1170
D SETMULT(RST,INDEX,"SIG")
1171
"RTN","ORWPS",102,0)
1173
"RTN","ORWPS",103,0)
1174
. D SETMULT(RST,INDEX,"SIO")
1175
"RTN","ORWPS",104,0)
1176
. D SETMULT(RST,INDEX,"MDR")
1177
"RTN","ORWPS",105,0)
1178
. D SETMULT(RST,INDEX,"SCH")
1179
"RTN","ORWPS",106,0)
1180
S @RST@(2)="\ Sig: "_$G(@RST@(2))
1181
"RTN","ORWPS",107,0)
1182
F I=3:1:@RST S @RST@(I)=" "_@RST@(I)
1183
"RTN","ORWPS",108,0)
1185
"RTN","ORWPS",109,0)
1187
"RTN","ORWPS",110,0)
1188
IVINST(Y,INDEX) ; assembles instructions for an IV order
1189
"RTN","ORWPS",111,0)
1191
"RTN","ORWPS",112,0)
1193
"RTN","ORWPS",113,0)
1194
S RST="^TMP(""ORACT"",$J,""INSTRUCT"")"
1195
"RTN","ORWPS",114,0)
1196
S @RST=0 D SETMULT(RST,INDEX,"A") S SOLN1=@RST+1
1197
"RTN","ORWPS",115,0)
1198
D SETMULT(RST,INDEX,"B")
1199
"RTN","ORWPS",116,0)
1200
; msc/rec 9/9/08 - modified next line so "in" is only added to IV's with additives and solutions
1201
"RTN","ORWPS",117,0)
1202
I $D(@RST@(SOLN1)),$L($P(FIELDS,U,2)),$G(SOLN1)>1 S @RST@(SOLN1)="in "_@RST@(SOLN1)
1203
"RTN","ORWPS",118,0)
1205
"RTN","ORWPS",119,0)
1206
D SETMULT(RST,INDEX,"SCH") S:$D(@RST@(SOLN1)) @RST@(SOLN1)=" "_@RST@(SOLN1)
1207
"RTN","ORWPS",120,0)
1208
F I=1:1:@RST S @RST@(I)="\"_$TR(@RST@(I),U," ")
1209
"RTN","ORWPS",121,0)
1210
I $D(@RST@(1)) S @RST@(1)=" "_$E(@RST@(1),2,999)
1211
"RTN","ORWPS",122,0)
1212
S @RST@(@RST)=@RST@(@RST)_" "_$P(^TMP("PS",$J,INDEX,0),U,3)
1213
"RTN","ORWPS",123,0)
1214
S:$D(^TMP("PS",$J,INDEX,"IVLIM",0)) IVDUR=$G(^TMP("PS",$J,INDEX,"IVLIM",0))
1215
"RTN","ORWPS",124,0)
1217
"RTN","ORWPS",125,0)
1218
. N DURU,DURV S DURU="",DURV=0
1219
"RTN","ORWPS",126,0)
1220
. S DURU=$E(IVDUR,1),DURV=$E(IVDUR,2,$L(IVDUR))
1221
"RTN","ORWPS",127,0)
1222
. I (DURU="D")!(DURU="d") S IVDUR="for "_+DURV_$S(+DURV=1:" day",+DURV>1:" days",1:" day")
1223
"RTN","ORWPS",128,0)
1224
. I (DURU="H")!(DURU="h") S IVDUR="for "_+DURV_$S(+DURV=1:" hours",+DURV>1:" hours",1:" hour")
1225
"RTN","ORWPS",129,0)
1226
. I (DURU="M")!(DURU="m") S IVDUR="with total volume "_+DURV_" ml"
1227
"RTN","ORWPS",130,0)
1228
. I (DURU="L")!(DURU="l") S IVDUR="with total volume "_+DURV_" L"
1229
"RTN","ORWPS",131,0)
1230
. S @RST@(@RST)=@RST@(@RST)_" "_IVDUR
1231
"RTN","ORWPS",132,0)
1233
"RTN","ORWPS",133,0)
1235
"RTN","ORWPS",134,0)
1236
NVINST(Y,INDEX) ; assembles instructions for a non-VA med
1237
"RTN","ORWPS",135,0)
1239
"RTN","ORWPS",136,0)
1240
S X=^TMP("PS",$J,INDEX,0)
1241
"RTN","ORWPS",137,0)
1242
S RST="^TMP(""ORACT"",$J,""INSTRUCT"")"
1243
"RTN","ORWPS",138,0)
1244
S @RST@(1)=" "_$P(X,U,2),@RST=1
1245
"RTN","ORWPS",139,0)
1246
D SETMULT(RST,INDEX,"SIG")
1247
"RTN","ORWPS",140,0)
1249
"RTN","ORWPS",141,0)
1250
. D SETMULT(RST,INDEX,"SIO")
1251
"RTN","ORWPS",142,0)
1252
. D SETMULT(RST,INDEX,"MDR")
1253
"RTN","ORWPS",143,0)
1254
. D SETMULT(RST,INDEX,"SCH")
1255
"RTN","ORWPS",144,0)
1256
S @RST@(2)="\ "_$G(@RST@(2))
1257
"RTN","ORWPS",145,0)
1258
F I=3:1:@RST S @RST@(I)=" "_@RST@(I)
1259
"RTN","ORWPS",146,0)
1261
"RTN","ORWPS",147,0)
1263
"RTN","ORWPS",148,0)
1264
NVREASON(ORR,NVSDT,INDEX) ; assembles start date and reasons for a non-VA med
1265
"RTN","ORWPS",149,0)
1267
"RTN","ORWPS",150,0)
1269
"RTN","ORWPS",151,0)
1270
S X=^TMP("PS",$J,INDEX,0)
1271
"RTN","ORWPS",152,0)
1273
"RTN","ORWPS",153,0)
1274
I $D(^OR(100,ORN,0)) D
1275
"RTN","ORWPS",154,0)
1276
.S NVSDT=$P(^OR(100,ORN,0),U,8)
1277
"RTN","ORWPS",155,0)
1278
.D WPVAL^ORWDXR(.ORA,ORN,"STATEMENTS") I $D(ORA) D
1279
"RTN","ORWPS",156,0)
1280
..S J=0 F S J=$O(ORA(J)) Q:J<1 S ORI=ORI+1,ORR(ORI)=ORA(J)
1281
"RTN","ORWPS",157,0)
1283
"RTN","ORWPS",158,0)
1284
NVMEDREC(Y,INDEX) ; assemble Med Rec Fields
1285
"RTN","ORWPS",159,0)
1287
"RTN","ORWPS",160,0)
1289
"RTN","ORWPS",161,0)
1290
Q:'$D(^TMP("PS",$J,INDEX,"MREC"))
1291
"RTN","ORWPS",162,0)
1292
S I=0 F S I=$O(^TMP("PS",$J,INDEX,"MREC",I)) Q:'I D
1293
"RTN","ORWPS",163,0)
1294
. S X=^(I,0),III=III+1
1295
"RTN","ORWPS",164,0)
1296
. S MEDREC(III)=$P(X,U)_" "_$P(X,U,2)_" "_$P(X,U,3)
1297
"RTN","ORWPS",165,0)
1298
. S II=0 F S II=$O(^TMP("PS",$J,INDEX,"MREC",I,II)) Q:'II D
1299
"RTN","ORWPS",166,0)
1300
. . S III=III+1,MEDREC(III)=^(II)
1301
"RTN","ORWPS",167,0)
1303
"RTN","ORWPS",168,0)
1305
"RTN","ORWPS",169,0)
1306
; msc/rec 1/21/09 - grab order action for home med from file 100
1307
"RTN","ORWPS",170,0)
1309
"RTN","ORWPS",171,0)
1310
S MSCOR=$P(^TMP("PS",$J,INDEX,0),U,8) Q:'MSCOR
1311
"RTN","ORWPS",172,0)
1312
Q:'$D(^OR(100,MSCOR,8,1,0))
1313
"RTN","ORWPS",173,0)
1314
S MSCOA=$P(^OR(100,MSCOR,8,1,0),U,2)
1315
"RTN","ORWPS",174,0)
1316
I MSCOA'="VA" K MSCOA
1317
"RTN","ORWPS",175,0)
1319
"RTN","ORWPS",176,0)
1321
"RTN","ORWPS",177,0)
1322
SETMULT(Y,INDEX,SUB) ; appends the multiple at the subscript to Y
1323
"RTN","ORWPS",178,0)
1325
"RTN","ORWPS",179,0)
1327
"RTN","ORWPS",180,0)
1328
S I=0 F S I=$O(^TMP("PS",$J,INDEX,SUB,I)) Q:'I S X=$G(^(I,0)) D
1329
"RTN","ORWPS",181,0)
1330
. I SUB="B",$L($P(X,U,3)) S X=$P(X,U)_" "_$P(X,U,3)_"^"_$P(X,U,2)
1331
"RTN","ORWPS",182,0)
1332
. N K F K=1:1:$L(X,U) I $P(X,U,K)?1"."1N.E S $P(X,U,K)=0_$P(X,U,K)
1333
"RTN","ORWPS",183,0)
1335
"RTN","ORWPS",184,0)
1337
"RTN","ORWPS",185,0)
1339
"RTN","ORWPS",186,0)
1340
COMPRESS(Y) ; concatenate Y subscripts into smallest possible number
1341
"RTN","ORWPS",187,0)
1342
N I,J,X S J=1,X(J)=""
1343
"RTN","ORWPS",188,0)
1344
S I=0 F S I=$O(Y(I)) Q:'I D
1345
"RTN","ORWPS",189,0)
1346
. I ($L(Y(I))+$L(X(J)))>245 S J=J+1,X(J)=""
1347
"RTN","ORWPS",190,0)
1348
. S X(J)=X(J)_$S($L(X(J)):" ",1:"")_Y(I)
1349
"RTN","ORWPS",191,0)
1351
"RTN","ORWPS",192,0)
1353
"RTN","ORWPS",193,0)
1354
DETAIL(ROOT,DFN,ID) ; -- show details for a med order
1355
"RTN","ORWPS",194,0)
1357
"RTN","ORWPS",195,0)
1359
"RTN","ORWPS",196,0)
1360
S LCNT=0,ORVP=DFN_";DPT("
1361
"RTN","ORWPS",197,0)
1363
"RTN","ORWPS",198,0)
1364
S ROOT=$NA(^TMP("ORXPND",$J))
1365
"RTN","ORWPS",199,0)
1367
"RTN","ORWPS",200,0)
1368
MEDHIST(ORROOT,DFN,ORIFN) ; -- show admin history for a med (RV)
1369
"RTN","ORWPS",201,0)
1370
N ORPSID,HPIV,ISIV,CKPKG,ORPHMID
1371
"RTN","ORWPS",202,0)
1372
S ORPSID=+$P($$OI^ORX8(ORIFN),U,3),(HPIV,ISIV)=0
1373
"RTN","ORWPS",203,0)
1374
S ORROOT=$NA(^TMP("ORHIST",$J)) K @ORROOT
1375
"RTN","ORWPS",204,0)
1376
S ORPHMID=$G(^OR(100,+ORIFN,4)) ;Pharmacy order number
1377
"RTN","ORWPS",205,0)
1378
S ISIV=$O(^ORD(100.98,"B","IV RX",ISIV))
1379
"RTN","ORWPS",206,0)
1380
S HPIV=$O(^ORD(100.98,"B","TPN",HPIV))
1381
"RTN","ORWPS",207,0)
1382
S CKPKG=$$PATCH^XPDUTL("PSB*2.0*19")
1383
"RTN","ORWPS",208,0)
1384
;if the order is pending or the order has no pharmacy #
1385
"RTN","ORWPS",209,0)
1386
;or the order is not in the Display Group IV MEDICATION
1387
"RTN","ORWPS",210,0)
1388
; then use the Orderable item number to get the MAH.
1389
"RTN","ORWPS",211,0)
1390
I (ORPHMID["P")!(ORPHMID="") D Q
1391
"RTN","ORWPS",212,0)
1392
. I '$L($T(HISTORY^PSBMLHS)) D Q
1393
"RTN","ORWPS",213,0)
1394
. . S @ORROOT@(0)="This report is only available using BCMA version 2.0."
1395
"RTN","ORWPS",214,0)
1396
. D HISTORY^PSBMLHS(.ORROOT,DFN,ORPSID) ; DBIA #3459 for BCMA v2.0
1397
"RTN","ORWPS",215,0)
1398
; If the order has a Display Group of IV MEDICATION the use the Pharmacy order number to get the MAH
1399
"RTN","ORWPS",216,0)
1400
I $P($G(^OR(100,+ORIFN,0)),U,11)=ISIV!($P($G(^OR(100,+ORIFN,0)),U,11)=HPIV) D Q
1401
"RTN","ORWPS",217,0)
1402
. I 'CKPKG S @ORROOT@(0)="Medication Administration History is not available at this time for IV fluids."
1403
"RTN","ORWPS",218,0)
1405
"RTN","ORWPS",219,0)
1406
. . D RPC^PSBO(.ORROOT,"PM",DFN,"","","","","","","","","",ORPHMID) ;DBIA #3955
1407
"RTN","ORWPS",220,0)
1408
. . I '$D(@ORROOT) S @ORROOT@(0)="No Medication Administration History found for the IV order."
1409
"RTN","ORWPS",221,0)
1410
I '$L($T(HISTORY^PSBMLHS)) D Q
1411
"RTN","ORWPS",222,0)
1412
. S @ORROOT@(0)="This report is only available using BCMA version 2.0."
1413
"RTN","ORWPS",223,0)
1414
D HISTORY^PSBMLHS(.ORROOT,DFN,ORPSID) ; DBIA #3459 for BCMA v2.0
1415
"RTN","ORWPS",224,0)
1417
"RTN","ORWPS",225,0)
1419
"RTN","ORWPS",226,0)
1420
REASON(ORY) ; -- Return Non-VA Med Statement/Reasons
1421
"RTN","ORWPS",227,0)
1423
"RTN","ORWPS",228,0)
1424
D GETLST^XPAR(.ORY,"ALL","ORWD NONVA REASON","E")
1425
"RTN","ORWPS",229,0)
1430
PSGOE4 ;BIR/CML3-REGULAR ORDER ENTRY ;06 Feb 2001 4:31 PM
1432
;;5.0; INPATIENT MEDICATIONS ;**2,50,64,58,111,1502**;16 DEC 97
1436
; Reference to ^PS(51.2 is supported by DBIA 2178.
1440
;K PSGOES S PSGMR=$S($P(PSGNEDFD,"^",2):$P(PSGNEDFD,"^",2),1:PSGOEDMR),PSGSCH=$P(PSGNEDFD,"^",4),PSGPR=$S($D(PSJOERR):PSJORPV,1:PSGOEPR),(PSGSD,PSGFD,PSGSM,PSGHSM,PSGUD,PSGSI,PSGOROE1,PSGNEFD,PSGMRN)=""
1442
K PSGOES S PSGMR=$S($P(PSGNEDFD,"^",2):$P(PSGNEDFD,"^",2),1:PSGOEDMR),PSGSCH=$P(PSGNEDFD,"^",4),PSGPR=PSGOEPR,(PSGSD,PSGFD,PSGSM,PSGHSM,PSGUD,PSGSI,PSGOROE1,PSGNEFD,PSGMRN)=""
1444
S:PSGMR PSGMRN=$S('$P(PSGNEDFD,"^",2):"ORAL",'$D(^PS(51.2,PSGMR,0)):PSGMR,$P(^(0),"^")]"":$P(^(0),"^"),1:PSGMR) I PSGPR S PSGPRN=$P($G(^VA(200,PSGPR,0)),"^") S:PSGPRN="" PSGPRN=PSGPR
1446
S PSGST=$S($P(PSGNEDFD,"^",3)]"":$P(PSGNEDFD,"^",3),1:"C"),PSGSTN=$$ENSTN^PSGMI(PSGST),F1=53.1 K PSGFOK S PSGFOK(2)=""
1447
"RTN","PSGOE4",10,0)
1448
S:$P(PSJSYSU,";",4) PSGFOK(2)="" K ^PS(53.45,PSJSYSP,1),^(2) I PSGDRG S ^(2,0)="^53.4502P^"_PSGDRG_"^1",^(1,0)=PSGDRG,^PS(53.45,PSJSYSP,2,"B",PSGDRG,1)=""
1449
"RTN","PSGOE4",11,0)
1450
;I '$D(PSJOERR) S PSJNOO=$S($P(PSJSYSU,";",2):"E",1:"W"),PSJNOON=$S(PSJNOO="E":"PROVIDER ENTERED",1:"WRITTEN")
1451
"RTN","PSGOE4",12,0)
1453
"RTN","PSGOE4",13,0)
1454
109 ; dosage ordered
1455
"RTN","PSGOE4",14,0)
1456
I $P(PSJSYSU,";",4) D GETDOSE^PSJDOSE(PSGDRG) G:PSGOROE1 DONE G:'$G(PSGOE3) 3
1457
"RTN","PSGOE4",15,0)
1458
W !,"DOSAGE ORDERED: ",$S(PSGDO]"":PSGDO_"// ",1:"") R X:DTIME I X="^"!'$T W:'$T $C(7) S PSGOROE1=1 G DONE
1459
"RTN","PSGOE4",16,0)
1460
I X="" S X=PSGDO ;I X="" W $C(7)," (Required)" G 109
1461
"RTN","PSGOE4",17,0)
1462
S PSGF2=109 I X="@" S PSGDO="" ;W $C(7)," (Required)" G 109
1463
"RTN","PSGOE4",18,0)
1464
I X="@" D DEL G:%'=1 109 S (PSGDO,PSGFOK(109),PSGUD)="" G 3
1465
"RTN","PSGOE4",19,0)
1466
I X?1."?" D ENHLP^PSGOEM(53.1,109) G 109
1467
"RTN","PSGOE4",20,0)
1468
I $E(X)="^" D FF G:Y>0 @Y G 109
1469
"RTN","PSGOE4",21,0)
1470
I $E(X,$L(X))=" " F S X=$E(X,1,$L(X)-1) Q:$E(X,$L(X))'=" "
1471
"RTN","PSGOE4",22,0)
1472
I $S(X="":0,X?.E1C.E:1,$L(X)>20:1,X="":1,X["^":1,X?1.P:1,1:X=+X) W $C(7)," ",$S(X?1.P!(X=""):"(Required)",1:"??") D ENHLP^PSGOEM(53.1,109) G 109
1473
"RTN","PSGOE4",23,0)
1474
S PSGDO=$S(X?1"."1N.E:0,1:"")_X,PSGFOK(109)=""
1475
"RTN","PSGOE4",24,0)
1477
"RTN","PSGOE4",25,0)
1479
"RTN","PSGOE4",26,0)
1480
;/** NO LONGER USE WITH POE
1481
"RTN","PSGOE4",27,0)
1483
"RTN","PSGOE4",28,0)
1484
G:'$P(PSJSYSU,";",4) 3 I $D(PSGFOK(13)) S PSGFOK(13)=1 D 2^PSGOE42 S PSGFOK(13)="" G 3
1485
"RTN","PSGOE4",29,0)
1487
"RTN","PSGOE4",30,0)
1489
"RTN","PSGOE4",31,0)
1490
W !,"UNITS PER DOSE: ",$S(PSGUD:PSGUD_"// ",1:"") R X:DTIME I X="^"!'$T S PSGOROE1=1 G DONE
1491
"RTN","PSGOE4",32,0)
1492
I X="" W:'PSGUD " (1)" G S13
1493
"RTN","PSGOE4",33,0)
1494
S PSGF2=13 I X="@",'PSGUD W $C(7)," ??" S X="?" D ENHLP^PSGOEM(53.1,13) G A13
1495
"RTN","PSGOE4",34,0)
1496
I X="@" D DEL G:%'=1 13 S PSGUD="" G S13
1497
"RTN","PSGOE4",35,0)
1498
I X?1."?" D ENHLP^PSGOEM(53.1,13) G A13
1499
"RTN","PSGOE4",36,0)
1500
I $E(X)="^" D FF G:Y>0 @Y G A13
1501
"RTN","PSGOE4",37,0)
1502
I X?1.2N1"/"1.2N S X=+$J(+X/$P(X,"/",2),0,2) W " ("_$E("0",X<1)_X_")"
1503
"RTN","PSGOE4",38,0)
1504
I $S($L(X)>12:1,X'=+X:1,X>50:1,X<0:1,1:X?.N1"."3.N) W $C(7)," ??" S X="?" D ENHLP^PSGOEM(53.1,13) G 13
1505
"RTN","PSGOE4",39,0)
1506
S PSGUD=X W:'X " (1)"
1507
"RTN","PSGOE4",40,0)
1509
"RTN","PSGOE4",41,0)
1511
"RTN","PSGOE4",42,0)
1512
S PSGFOK(13)="" I PSGDRG S $P(^PS(53.45,PSJSYSP,2,1,0),"^",2)=PSGUD
1513
"RTN","PSGOE4",43,0)
1515
"RTN","PSGOE4",44,0)
1517
"RTN","PSGOE4",45,0)
1518
W !,"MED ROUTE: ",$S(PSGMR:PSGMRN_"// ",1:"") R X:DTIME I X="^"!'$T W:'$T $C(7) S PSGOROE1=1 G DONE
1519
"RTN","PSGOE4",46,0)
1520
I X="",PSGMR S X=PSGMRN I PSGMR'=PSGMRN,$D(^PS(51.2,PSGMR,0)) W " "_$P(^(0),"^",3) S PSGFOK(3)="" G 7
1521
"RTN","PSGOE4",47,0)
1522
S PSGF2=3 I $S(X="@":1,X]"":0,1:'PSGMR) W $C(7)," (Required)" S X="?" D ENHLP^PSGOEM(53.1,2) G 3
1523
"RTN","PSGOE4",48,0)
1524
I X?1."?" D ENHLP^PSGOEM(53.1,3)
1525
"RTN","PSGOE4",49,0)
1526
I $E(X)="^" D FF G:Y>0 @Y G 3
1527
"RTN","PSGOE4",50,0)
1528
K DIC S DIC="^PS(51.2,",DIC(0)="EMQZ",DIC("S")="I $P(^(0),""^"",4)" D ^DIC K DIC I Y'>0 G 3
1529
"RTN","PSGOE4",51,0)
1530
S PSGMR=+Y,PSGMRN=$P(Y(0),"^") S PSGFOK(3)=""
1531
"RTN","PSGOE4",52,0)
1533
"RTN","PSGOE4",53,0)
1535
"RTN","PSGOE4",54,0)
1537
"RTN","PSGOE4",55,0)
1538
W !,"SCHEDULE TYPE: "_$S(PSGSTN]"":PSGSTN_"// ",1:"") R X:DTIME S X=$TR(X,"coprocf","COPROCF") I X="^"!'$T S PSGOROE1=1 W $C(7) G DONE
1539
"RTN","PSGOE4",56,0)
1540
I X="" S:PSGST="OC" PSGSCH=PSGSTN,(PSGS0Y,PSGS0XT)="" W " "_PSGSTN S PSGFOK(7)="" S $P(PSGNEDFD,"^",3)=PSGST G:PSGST="OC" 8^PSGOE41 G 26
1541
"RTN","PSGOE4",57,0)
1542
S PSGF2=7 I X="@"!(X?1."?") W:X="@" $C(7)," ?? (Required)" S:X="@" X="?" D ENHLP^PSGOEM(53.1,7) G 7
1543
"RTN","PSGOE4",58,0)
1544
I $E(X)="^" D FF G:Y>0 @Y G 7
1545
"RTN","PSGOE4",59,0)
1546
I X="OC"!(X="R") S PSGST=X,$P(PSGNEDFD,"^",3)=X,PSGSTN=$S(X="R":"FILL on REQUEST",1:"ON CALL") W " "_PSGSTN S PSGFOK(7)="" G:X="R" 26 S PSGSCH=PSGSTN,(PSGS0Y,PSGS0XT)="" G 8^PSGOE41
1547
"RTN","PSGOE4",60,0)
1548
F Y="C^CONTINUOUS","O^ONE TIME","OC^ON CALL","P^PRN","R^FILL on REQUEST" I $P($P(Y,"^",2),X)="" W $P($P(Y,"^",2),X,2) S PSGST=$P(Y,"^"),PSGSTN=$P(Y,"^",2),$P(PSGNEDFD,"^",3)=PSGST Q
1549
"RTN","PSGOE4",61,0)
1550
E W $C(7)," ??" S X="?" D ENHLP^PSGOEM(53.1,7) G 7
1551
"RTN","PSGOE4",62,0)
1552
I PSGST="OC"!(PSGST="R") S PSGFOK(7)="" G:PSGST="R" 26 S PSGSCH=PSGSTN,(PSGS0Y,PSGS0XT)="" G 8^PSGOE41
1553
"RTN","PSGOE4",63,0)
1555
"RTN","PSGOE4",64,0)
1557
"RTN","PSGOE4",65,0)
1559
"RTN","PSGOE4",66,0)
1560
W !,"SCHEDULE: ",$S(PSGSCH]"":PSGSCH_"// ",1:"") R X:DTIME I X="^"!'$T W:'$T $C(7) S PSGOROE1=1 G DONE
1561
"RTN","PSGOE4",67,0)
1562
;*S PSGF2=26 S:X="" X=PSGSCH I "@"[X W $C(7)," (Required)" S X="?" D ENHLP^PSGOEM(53.1,26) G 26
1563
"RTN","PSGOE4",68,0)
1564
S PSGF2=26 S:X="" X=PSGSCH,PSGSCH="" I "@"[X W $C(7)," (Required)" S X="?" D ENHLP^PSGOEM(53.1,26) G 26
1565
"RTN","PSGOE4",69,0)
1566
I X?1."?" D ENHLP^PSGOEM(53.1,26) G 26
1567
"RTN","PSGOE4",70,0)
1568
I $E(X)="^" D FF G:Y>0 @Y G 26
1569
"RTN","PSGOE4",71,0)
1570
N PSJSLUP S PSJSLUP=1 D EN^PSGS0 I '$D(X) W $C(7)," ??" S X="?" D ENHLP^PSGOEM(53.1,26) G 26
1571
"RTN","PSGOE4",72,0)
1572
S PSGSCH=X,$P(PSGNEDFD,"^",4)=X,PSGFOK(26)="" I PSGS0XT="O" S $P(PSGNEDFD,"^",3)="O",PSGST="O",PSGSTN=$$ENSTN^PSGMI(PSGST)
1573
"RTN","PSGOE4",73,0)
1575
"RTN","PSGOE4",74,0)
1576
. S PSGSCH=X,PSGST=$S(PSGS0XT="O":"O",PSGST="R":"R",X["PRN":"P",X="ON CALL":"OC",PSGST]"":PSGST,1:"C"),PSGFOK(26)=""
1577
"RTN","PSGOE4",75,0)
1578
. S $P(PSGNEDFD,"^",3)=PSGST S:PSGSCH=""!(X?1." ") PSGSCH="PRN"
1579
"RTN","PSGOE4",76,0)
1580
. S PSGSTN=$$ENSTN^PSGMI(PSGST)
1581
"RTN","PSGOE4",77,0)
1583
"RTN","PSGOE4",78,0)
1585
"RTN","PSGOE4",79,0)
1587
"RTN","PSGOE4",80,0)
1589
"RTN","PSGOE4",81,0)
1591
"RTN","PSGOE4",82,0)
1593
"RTN","PSGOE4",83,0)
1594
I PSGOROE1 K Y W $C(7)," ...order not entered..."
1595
"RTN","PSGOE4",84,0)
1596
K F,F0,F1,PSGF2,F3,PSG,PSGSD,SDT Q
1597
"RTN","PSGOE4",85,0)
1599
"RTN","PSGOE4",86,0)
1600
FF ; up-arrow to another field
1601
"RTN","PSGOE4",87,0)
1602
D ENFF^PSGOEM I Y>0,Y'=109,Y'=13,Y'=3,Y'=7,Y'=26 S:Y=2 FB=PSGF2_"^PSGOE4" S Y=Y_"^PSGOE4"_$S("^39^8^10^25^"[("^"_Y_"^"):1,1:2)
1603
"RTN","PSGOE4",88,0)
1605
"RTN","PSGOE4",89,0)
1607
"RTN","PSGOE4",90,0)
1609
"RTN","PSGOE4",91,0)
1610
W !?3,"SURE YOU WANT TO DELETE" S %=0 D YN^DICN I %'=1 W $C(7)," <NOTHING DELETED>"
1611
"RTN","PSGOE4",92,0)
1615
"RTN","PSJHL4A",1,0)
1616
PSJHL4A ;BIR/RLW-CONTINUE DECODE HL7 /MESSSAGE FROM OE/RR ; 06 Jul 2010 12:05 PM
1617
"RTN","PSJHL4A",2,0)
1618
;;5.0; INPATIENT MEDICATIONS ;**105,111,154,1502**;16 DEC 97
1619
"RTN","PSJHL4A",3,0)
1621
"RTN","PSJHL4A",4,0)
1622
; Reference to ^PS(52.6 is supported by DBIA# 1231.
1623
"RTN","PSJHL4A",5,0)
1624
; Reference to ^PS(52.7 is supported by DBIA# 2173.
1625
"RTN","PSJHL4A",6,0)
1626
; Reference to ^PS(55 is supported by DBIA# 2191.
1627
"RTN","PSJHL4A",7,0)
1628
; Reference to ^PS(59.7 supported by DBIA #2181.
1629
"RTN","PSJHL4A",8,0)
1631
"RTN","PSJHL4A",9,0)
1633
"RTN","PSJHL4A",10,0)
1635
"RTN","PSJHL4A",11,0)
1636
I APPL["B" S SOLCNT=SOLCNT+1,PTR=$P(FIELD(2),"^",4) Q:'PTR S VOLUME=$S(FIELD(3)?1".".N:0_FIELD(3),1:+FIELD(3))_" ML" D I '$D(^TMP("PSJNVO",$J,"SOL",SOLCNT,0)) D SOLSRCH
1637
"RTN","PSJHL4A",12,0)
1638
.S SOLUTION="" F S SOLUTION=$O(^PS(52.7,"AOI",PTR,SOLUTION)) Q:'SOLUTION S INACT=$G(^PS(52.7,SOLUTION,"I")) I 'INACT!(INACT>DT) I VOLUME=$P(^PS(52.7,SOLUTION,0),U,3) D
1639
"RTN","PSJHL4A",13,0)
1640
..S ^TMP("PSJNVO",$J,"SOL",0)=SOLCNT
1641
"RTN","PSJHL4A",14,0)
1642
..S ^TMP("PSJNVO",$J,"SOL",SOLCNT,0)=SOLUTION_"^"_VOLUME,TVOLUME=TVOLUME+(+VOLUME)
1643
"RTN","PSJHL4A",15,0)
1644
I $G(INFRT)]"" S X=INFRT D ENI^PSJHLU S INFRT=$G(X)
1645
"RTN","PSJHL4A",16,0)
1646
S FIELD(3)=$S($G(FIELD(3))?1".".N:0_$G(FIELD(3)),1:$G(FIELD(3)))
1647
"RTN","PSJHL4A",17,0)
1648
I APPL="A" S ADCNT=ADCNT+1,PTR=$P(FIELD(2),"^",4) Q:'PTR S STRENGTH=FIELD(3)_" "_$P($G(FIELD(4)),"^",5) D I '$D(^TMP("PSJNVO",$J,"AD",ADCNT,0)) S PSREASON="Can't find matching additive" D ERROR^PSJHL9 Q
1649
"RTN","PSJHL4A",18,0)
1650
.S ADDITIVE="" F S ADDITIVE=$O(^PS(52.6,"AOI",PTR,ADDITIVE)) Q:'ADDITIVE S INACT=$G(^PS(52.6,ADDITIVE,"I")) I 'INACT!(INACT>DT) Q:$G(^PS(52.6,ADDITIVE,0))']"" D Q:ADDITIVE
1651
"RTN","PSJHL4A",19,0)
1652
..I $G(PSITEM)="" S PSITEM=PTR
1653
"RTN","PSJHL4A",20,0)
1654
..S ^TMP("PSJNVO",$J,"AD",0)=ADCNT
1655
"RTN","PSJHL4A",21,0)
1656
..S ^TMP("PSJNVO",$J,"AD",ADCNT,0)=ADDITIVE_"^"_STRENGTH
1657
"RTN","PSJHL4A",22,0)
1659
"RTN","PSJHL4A",23,0)
1661
"RTN","PSJHL4A",24,0)
1663
"RTN","PSJHL4A",25,0)
1664
I $O(PSJMSG(II,0)) D
1665
"RTN","PSJHL4A",26,0)
1667
"RTN","PSJHL4A",27,0)
1669
"RTN","PSJHL4A",28,0)
1670
.S SEGMENT(1)=$G(PSJMSG(II))
1671
"RTN","PSJHL4A",29,0)
1672
.S KK=1,JJ="" F S JJ=$O(PSJMSG(II,JJ)) Q:'JJ S KK=KK+1,SEGMENT(KK)=$G(PSJMSG(II,JJ))
1673
"RTN","PSJHL4A",30,0)
1675
"RTN","PSJHL4A",31,0)
1676
.F Q:'$D(SEGMENT(KK)) D
1677
"RTN","PSJHL4A",32,0)
1678
..I SEGMENT(KK)["|" S FIELD(JJ)=$P(SEGMENT(KK),"|"),SEGMENT(KK)=$E(SEGMENT(KK),$L(FIELD(JJ))+2,$L(SEGMENT(KK))),JJ=JJ+1 Q
1679
"RTN","PSJHL4A",33,0)
1680
..I SEGMENT(KK)'["|" S FIELD(JJ)=SEGMENT(KK),KK=KK+1 Q:'$D(SEGMENT(KK)) D
1681
"RTN","PSJHL4A",34,0)
1682
...S XX=$P(SEGMENT(KK),"|"),SEGMENT(KK)=$E(SEGMENT(KK),$L(X)+2,$L(SEGMENT(KK))),FIELD(JJ)=FIELD(JJ)_XX,JJ=JJ+1
1683
"RTN","PSJHL4A",35,0)
1684
S APPL="",PSITEM=$S($P(FIELD(1),"^",5)="IV":"",1:$P(FIELD(1),"^",4))
1685
"RTN","PSJHL4A",36,0)
1686
S:$P(FIELD(1),"^",6)="ORD" PSITEM=""
1687
"RTN","PSJHL4A",37,0)
1688
S:$P(FIELD(1),"^",5)="IV" IVTYP="A",SCHTYP="C",INFRT=$G(FIELD(2))
1689
"RTN","PSJHL4A",38,0)
1690
S DISPENSE=$P($G(FIELD(10)),"^",4)
1691
"RTN","PSJHL4A",39,0)
1692
S IVLIMIT=$P($G(PSJMSG(II)),"^",3)
1693
"RTN","PSJHL4A",40,0)
1695
"RTN","PSJHL4A",41,0)
1697
"RTN","PSJHL4A",42,0)
1699
"RTN","PSJHL4A",43,0)
1700
S OBXFL=1,OCNARR=FIELD(5),OCPROV=CLERK,OCCNT=OCCNT+1
1701
"RTN","PSJHL4A",44,0)
1702
S ^TMP("PSJNVO",$J,10,0)=OCCNT
1703
"RTN","PSJHL4A",45,0)
1704
S ^TMP("PSJNVO",$J,10,OCCNT,0)=OCNARR
1705
"RTN","PSJHL4A",46,0)
1706
S ^TMP("PSJNVO",$J,10,OCCNT,1)=$P($G(^VA(200,+OCPROV,0)),"^")
1707
"RTN","PSJHL4A",47,0)
1709
"RTN","PSJHL4A",48,0)
1711
"RTN","PSJHL4A",49,0)
1713
"RTN","PSJHL4A",50,0)
1714
S TEXT=$S((FIELD(1)=6)&('OBXFL):"PROCOM",(FIELD(1)=7)&('OBXFL):"ADMINSTR",1:"OCRSN")
1715
"RTN","PSJHL4A",51,0)
1716
S @TEXT@(1)=$G(FIELD(3))
1717
"RTN","PSJHL4A",52,0)
1718
S K=1,J="" F S J=$O(PSJMSG(II,J)) Q:'J S K=K+1,@TEXT@(K)=$G(PSJMSG(II,J))
1719
"RTN","PSJHL4A",53,0)
1721
"RTN","PSJHL4A",54,0)
1722
.S QQ=0 F S QQ=$O(OCRSN(QQ)) Q:'QQ S ^TMP("PSJNVO",$J,10,OCCNT,2,QQ,0)=OCRSN(QQ)
1723
"RTN","PSJHL4A",55,0)
1725
"RTN","PSJHL4A",56,0)
1727
"RTN","PSJHL4A",57,0)
1729
"RTN","PSJHL4A",58,0)
1731
"RTN","PSJHL4A",59,0)
1732
N ND,ND2,CHK,FOLOR,STDT
1733
"RTN","PSJHL4A",60,0)
1734
S PREON=$G(FIELD(1)),ROC=$G(FIELD(3))
1735
"RTN","PSJHL4A",61,0)
1736
S ND=$S((PREON["N")!(PREON["P"):$G(^PS(53.1,+PREON,0)),PREON["V":$G(^PS(55,PSJHLDFN,"IV",+PREON,0)),1:$G(^PS(55,PSJHLDFN,5,+PREON,0)))
1737
"RTN","PSJHL4A",62,0)
1738
S ND2=$S((PREON["N")!(PREON["P"):$G(^PS(53.1,+PREON,2)),PREON["V":$G(^PS(55,PSJHLDFN,"IV",+PREON,2)),1:$G(^PS(55,PSJHLDFN,5,+PREON,2)))
1739
"RTN","PSJHL4A",63,0)
1740
I 'ND I ROC'="N" S PSREASON="Invalid Pharmacy order number" D ERROR^PSJHL9 Q
1741
"RTN","PSJHL4A",64,0)
1742
I ND I ROC="R" S FOLOR=$S(PREON["V":$P(ND2,U,6),1:$P(ND,U,26)) I FOLOR S PSREASON="Duplicate Renewal Request" D ERROR^PSJHL9 Q
1743
"RTN","PSJHL4A",65,0)
1744
I ND I ROC="R" S CHK=$S(PREON["V":$P(ND,U,17),1:$P(ND,U,9)) I "AE"'[CHK S PSREASON="Pharmacy orders with a status of "_CHK_" may not be renewed" D ERROR^PSJHL9 Q
1745
"RTN","PSJHL4A",66,0)
1746
I $G(CHK)="E" I PREON'["V" D NOW^%DTC S X1=+$E(%,1,12),X2=-4 D C^%DTC S STDT=$S(PREON["V":$P(ND,U,3),1:$P(ND2,U,4)) I STDT'>X S PSREASON="Pharmacy orders expired longer than 4 days may not be renewed" D ERROR^PSJHL9 Q
1747
"RTN","PSJHL4A",67,0)
1748
I ND I ROC="E" S FOLOR=$S(PREON["V":$P(ND2,U,6),1:$P(ND,U,26)) I FOLOR S PSREASON="Pharmacy orders may only be edited ONCE" D ERROR^PSJHL9 Q
1749
"RTN","PSJHL4A",68,0)
1750
I ND I ROC="E" S CHK=$S(PREON["V":$P(ND,U,17),1:$P(ND,U,9)) I "DEHO"[CHK N CHKRTN S CHKRTN=CHK_"^PSJHL6" D @CHKRTN S PSREASON=PSREASON_" orders may not be edited" D ERROR^PSJHL9 Q
1751
"RTN","PSJHL4A",69,0)
1752
D:ROC'="R" VALID^PSJHL9 Q:QFLG
1753
"RTN","PSJHL4A",70,0)
1754
I $G(PSITEM)="",$D(^TMP("PSJNVO",$J,"SOL",1,0)) S PSITEM=$P($G(^PS(52.7,+^TMP("PSJNVO",$J,"SOL",1,0),0)),"^",11)
1755
"RTN","PSJHL4A",71,0)
1756
I PRIORITY="ZD" D VALID^PSJHL10 S QFLG=1 Q
1757
"RTN","PSJHL4A",72,0)
1758
I (PREON]"")&(ROC="E") D EDITCK^PSJHL5 Q:QFLG
1759
"RTN","PSJHL4A",73,0)
1761
"RTN","PSJHL4A",74,0)
1762
I (PREON]"")&(ROC="R") D RENEW^PSJHL7 Q
1763
"RTN","PSJHL4A",75,0)
1764
I (PREON]"")&(ROC="E") D EDIT^PSJHL5
1765
"RTN","PSJHL4A",76,0)
1767
"RTN","PSJHL4A",77,0)
1769
"RTN","PSJHL4A",78,0)
1770
SOLSRCH ;Find solution
1771
"RTN","PSJHL4A",79,0)
1772
N SSSS,SEG,ON,ROC,SOL,SOL2
1773
"RTN","PSJHL4A",80,0)
1774
F SSSS=II:0 S SSSS=$O(PSJMSG(SSSS)) Q:'SSSS I $P(PSJMSG(SSSS),"|")="ZRX" D Q
1775
"RTN","PSJHL4A",81,0)
1776
.S SEG=$G(PSJMSG(SSSS)),ON=$P(SEG,"|",2),ROC=$P(SEG,"|",4)
1777
"RTN","PSJHL4A",82,0)
1778
I $G(ROC)'="N" F SOL=0:0 S SOL=$O(^PS(55,PSJHLDFN,"IV",+ON,"SOL",SOL)) Q:'SOL S SOL2=$G(^PS(55,PSJHLDFN,"IV",+ON,"SOL",SOL,0)) I $D(^PS(52.7,"AOI",PTR,+SOL2))&($P(SOL2,U,2)=VOLUME) S SOLUTION=+SOL2 D SET Q
1779
"RTN","PSJHL4A",83,0)
1780
I 'SOLUTION S SOLUTION=$O(^PS(52.7,"AOI",PTR,SOLUTION)) D SET
1781
"RTN","PSJHL4A",84,0)
1783
"RTN","PSJHL4A",85,0)
1784
SET ;Set solution tmp nodes
1785
"RTN","PSJHL4A",86,0)
1787
"RTN","PSJHL4A",87,0)
1788
S ^TMP("PSJNVO",$J,"SOL",0)=SOLCNT
1789
"RTN","PSJHL4A",88,0)
1790
S ^TMP("PSJNVO",$J,"SOL",SOLCNT,0)=SOLUTION_"^"_VOLUME,TVOLUME=TVOLUME+(+VOLUME)
1791
"RTN","PSJHL4A",89,0)
1793
"RTN","PSJHL4A",90,0)
1795
"RTN","PSJHL4A",91,0)
1796
SNDTSTW(PRIO,PSJSCHED,WARD) ; Test to determine if mail message should be sent.
1797
"RTN","PSJHL4A",92,0)
1798
N SNPRIO,SNSCHD,SNOPT
1799
"RTN","PSJHL4A",93,0)
1800
S SNPRIO=$S(PRIO="S":"S",PRIO="A":"A",1:"R")
1801
"RTN","PSJHL4A",94,0)
1802
S SNSCHD=$S(PSJSCHED="STAT":"S",PSJSCHED="NOW":"N",1:"R")
1803
"RTN","PSJHL4A",95,0)
1804
S SNOPT=$P($G(^PS(59.6,WARD,0)),"^",32)
1805
"RTN","PSJHL4A",96,0)
1806
S:SNOPT="" SNOPT=$P($G(^PS(59.7,1,27)),"^",1)
1807
"RTN","PSJHL4A",97,0)
1809
"RTN","PSJHL4A",98,0)
1811
"RTN","PSJHL4A",99,0)
1813
"RTN","PSJHL4A",100,0)
1815
"RTN","PSJHL4A",101,0)
1817
"RTN","PSJHL4A",102,0)
1818
SNDTSTP(PRIO,PSJSCHED) ; Test to determine if mail message should be sent.
1819
"RTN","PSJHL4A",103,0)
1820
N SNPRIO,SNSCHD,SNOPT
1821
"RTN","PSJHL4A",104,0)
1822
S SNPRIO=$S(PRIO="S":"S",PRIO="A":"A",1:"R")
1823
"RTN","PSJHL4A",105,0)
1824
S SNSCHD=$S(PSJSCHED="STAT":"S",PSJSCHED="NOW":"N",1:"R")
1825
"RTN","PSJHL4A",106,0)
1826
S SNOPT=$P($G(^PS(59.7,1,27)),"^",1)
1827
"RTN","PSJHL4A",107,0)
1829
"RTN","PSJHL4A",108,0)
1831
"RTN","PSJHL4A",109,0)
1833
"RTN","PSJHL4A",110,0)
1835
"RTN","PSJHL4A",111,0)
1837
"RTN","PSJHL4A",112,0)
1838
SNDTSTA(PRIO,PSJSCHED) ; Test to determine if mail message should be sent.
1839
"RTN","PSJHL4A",113,0)
1840
N SNPRIO,SNSCHD,SNOPT
1841
"RTN","PSJHL4A",114,0)
1842
S SNPRIO=$S(PRIO="S":"S",PRIO="A":"A",1:"R")
1843
"RTN","PSJHL4A",115,0)
1844
S SNSCHD=$S(PSJSCHED="STAT":"S",PSJSCHED="NOW":"N",1:"R")
1845
"RTN","PSJHL4A",116,0)
1846
S SNOPT=$P($G(^PS(59.7,1,27)),"^",2)
1847
"RTN","PSJHL4A",117,0)
1848
S:SNOPT="" SNOPT=$P($G(^PS(59.7,1,27)),"^",1)
1849
"RTN","PSJHL4A",118,0)
1851
"RTN","PSJHL4A",119,0)
1853
"RTN","PSJHL4A",120,0)
1855
"RTN","PSJHL4A",121,0)