1 | ORWD2 ; SLC/KCM/REV - GUI Prints; 28-JAN-1999 12:51 ;1/9/06 00:35
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10,215**;Dec 17, 1997
|
---|
3 | ;
|
---|
4 | ; PUBLIC CALLS
|
---|
5 | ;
|
---|
6 | DEVINFO(LST,LOC,NATR,ORDERS) ; Return device info when signing/releasing orders
|
---|
7 | ; Y(0)=Prompt Chart ^ Prompt Label ^ Prompt Requisition ^ Prompt Work
|
---|
8 | ; ^ Chart Device ^ Label Device ^ Requisition Device ^ Work Device
|
---|
9 | ; for Prompt X: *=no print, 0=autoprint, 1=prompt&dev 2=prompt only
|
---|
10 | ; Y(n)=ORIFN;ACT ^ Chart ^ Label ^ Requisition ^ Service ^ Work
|
---|
11 | ; LOC=location (ptr 44), NATR=nature of order (ptr 100.02)
|
---|
12 | ; ORDERS=ORIFN;ACT ^ R | S | E (released, signed, error)
|
---|
13 | N NATCHT,NATWRK,WHENCHT,PRMTCHT,PRMTLBL,PRMTREQ,PRMTWRK
|
---|
14 | N DOCHT,DOLBL,DOREQ,DOWRK,RELEASE,ORDERID,I,J,X
|
---|
15 | N NDCR,NODE,NPCC,NPWC
|
---|
16 | S (DOCHT,DOLBL,DOREQ,DOWRK,I,J)=0,LOC=+LOC_";SC("
|
---|
17 | S NATR=$O(^ORD(100.02,"C",NATR,0))
|
---|
18 | S NATCHT=+$P($G(^ORD(100.02,NATR,1)),U,2),NATWRK=+$P($G(^(1)),U,5)
|
---|
19 | S WHENCHT=$$GET^XPAR("ALL^"_LOC,"ORPF PRINT CHART COPY WHEN",1,"I")
|
---|
20 | I '$L(WHENCHT) S WHENCHT="R"
|
---|
21 | S PRMTCHT=$$GET^XPAR("ALL^"_LOC,"ORPF PROMPT FOR CHART COPY",1,"I")
|
---|
22 | S PRMTLBL=$$GET^XPAR("ALL^"_LOC,"ORPF PROMPT FOR LABELS",1,"I")
|
---|
23 | S PRMTREQ=$$GET^XPAR("ALL^"_LOC,"ORPF PROMPT FOR REQUISITIONS",1,"I")
|
---|
24 | S PRMTWRK=$$GET^XPAR("ALL^"_LOC,"ORPF PROMPT FOR WORK COPY",1,"I")
|
---|
25 | N BBPKG S BBPKG=+$O(^DIC(9.4,"B","VBECS",0))
|
---|
26 | D INSRTBB(.ORDERS) ; insert any blood bank child lab orders into ORDERS array
|
---|
27 | F S I=$O(ORDERS(I)) Q:'I I $P(ORDERS(I),U,2)'["E" D
|
---|
28 | . S ORDERID=$P(ORDERS(I),U),RELEASE=($P(ORDERS(I),U,2)["R")
|
---|
29 | . S J=J+1,LST(J)=ORDERID_"^^^^"
|
---|
30 | . ;AGP this section check the order for DC Reason and grabs the print requirement
|
---|
31 | . ;from the Nature of Order file.
|
---|
32 | . S NPCC=1,NPWC=1
|
---|
33 | . S NDCR=$P($G(^OR(100,+ORDERID,6)),U) I NDCR>0 D
|
---|
34 | . .S NODE=$G(^ORD(100.02,NDCR,1))
|
---|
35 | . .S NPCC=+$P(NODE,U,2)
|
---|
36 | . .S NPWC=+$P(NODE,U,5)
|
---|
37 | . ; skip chart copy if nature doesn't print, no match to 'print when',
|
---|
38 | . ; prompt parameter says don't print, or is lab child of blood bank
|
---|
39 | . I NPCC,NATCHT,($P(ORDERS(I),U,2)[WHENCHT),(PRMTCHT'="*"),$$NOTBB(+ORDERS(I)) S $P(LST(J),U,2)=1,DOCHT=1
|
---|
40 | . ; skip label if not released, no label format, or prompt parameter
|
---|
41 | . ; says don't print
|
---|
42 | . I RELEASE,(PRMTLBL'="*"),$$HASFMTL S $P(LST(J),U,3)=1,DOLBL=1
|
---|
43 | . ; skip requisition if not released, no requistion format, or the
|
---|
44 | . ; prompt parameter says don't print
|
---|
45 | . I RELEASE,(PRMTREQ'="*"),$$HASFMTR S $P(LST(J),U,4)=1,DOREQ=1
|
---|
46 | . ; skip service copy if not releasing
|
---|
47 | . I RELEASE S $P(LST(J),U,5)=1
|
---|
48 | . ; skip work copy if nature doesn't print, not released, no work
|
---|
49 | . ; copy format, or prompt parameter says don't print
|
---|
50 | . I NPWC,NATWRK,RELEASE,(PRMTWRK'="*"),$$HASFMTW,$$NOTBB(+ORDERS(I)) S $P(LST(J),U,6)=1,DOWRK=1
|
---|
51 | S LST(0)=$$DEFDEV
|
---|
52 | Q
|
---|
53 | MANUAL(REC,LOC,ORDERS) ; return device info for manual prints
|
---|
54 | N DOCHT,DOLBL,DOREQ,DOWRK,ORDERID,I
|
---|
55 | N PRMTCHT,PRMTLBL,PRMTREQ,PRMTWRK ; (so undefined for DEFDEV call)
|
---|
56 | S (DOLBL,DOREQ,DOWRK,I,J)=0,DOCHT=1,LOC=+LOC_";SC("
|
---|
57 | N BBPKG S BBPKG=+$O(^DIC(9.4,"B","VBECS",0))
|
---|
58 | D INSRTBB(.ORDERS) ; insert any blood bank child lab orders into ORDERS array
|
---|
59 | F S I=$O(ORDERS(I)) Q:'I D Q:DOCHT&DOLBL&DOREQ&DOWRK
|
---|
60 | . S ORDERID=$P(ORDERS(I),U)
|
---|
61 | . I $$HASFMTL S DOLBL=1
|
---|
62 | . I $$HASFMTR S DOREQ=1
|
---|
63 | . I $$HASFMTW,$$NOTBB(+ORDERS(I)) S DOWRK=1
|
---|
64 | S REC=$$DEFDEV
|
---|
65 | Q
|
---|
66 | ;
|
---|
67 | ; PRIVATE CALLS
|
---|
68 | ;
|
---|
69 | DEFDEV() ; returns string of prompt flags & default devices
|
---|
70 | ; called from DEVINFO & MANUAL
|
---|
71 | ; expects LOC,DOCHT,DOLBL,DOREQ,DOWRK to be defined
|
---|
72 | ; optionally expects PRMTCHT, PRMTLBL, PRMTREQ, PRMTWRK
|
---|
73 | N X
|
---|
74 | I DOCHT D
|
---|
75 | . S $P(X,U,1)=$G(PRMTCHT,1)
|
---|
76 | . S $P(X,U,5)=$TR($$GET^XPAR("ALL^"_LOC,"ORPF CHART COPY PRINT DEVICE",1,"B"),U,";")
|
---|
77 | E S $P(X,U,1)="*"
|
---|
78 | I DOLBL D
|
---|
79 | . S $P(X,U,2)=$G(PRMTLBL,1)
|
---|
80 | . S $P(X,U,6)=$TR($$GET^XPAR("ALL^"_LOC,"ORPF LABEL PRINT DEVICE",1,"B"),U,";")
|
---|
81 | E S $P(X,U,2)="*"
|
---|
82 | I DOREQ D
|
---|
83 | . S $P(X,U,3)=$G(PRMTREQ,1)
|
---|
84 | . S $P(X,U,7)=$TR($$GET^XPAR("ALL^"_LOC,"ORPF REQUISITION PRINT DEVICE",1,"B"),U,";")
|
---|
85 | E S $P(X,U,3)="*"
|
---|
86 | I DOWRK D
|
---|
87 | . S $P(X,U,4)=$G(PRMTWRK,1)
|
---|
88 | . S $P(X,U,8)=$TR($$GET^XPAR("ALL^"_LOC,"ORPF WORK COPY PRINT DEVICE",1,"B"),U,";")
|
---|
89 | E S $P(X,U,4)="*"
|
---|
90 | Q X
|
---|
91 | HASFMTL() ; returns 1 if a label format is available
|
---|
92 | ; called from DEVINFO & MANUAL, expects ORDERID & DOLBL to be defined
|
---|
93 | I DOLBL=1 Q 1 ; already know we're doing at least 1 label
|
---|
94 | N PKG S PKG=+$P($G(^OR(100,+ORDERID,0)),U,14)
|
---|
95 | Q ''$$GET^XPAR("SYS","ORPF WARD LABEL FORMAT",PKG,"I")
|
---|
96 | ;
|
---|
97 | HASFMTR() ; returns 1 if a requisition format is available
|
---|
98 | ; called from DEVINFO & MANUAL, expects ORDERID & DOREQ to be defined
|
---|
99 | ;I DOREQ=1 Q 1 ; already know we're doing at least 1 requisition
|
---|
100 | N PKG,DLG S PKG=+$P($G(^OR(100,+ORDERID,0)),U,14),DLG=+$P($G(^OR(100,+ORDERID,0)),U,5)
|
---|
101 | I PKG=$O(^DIC(9.4,"B","DIETETICS",0)),DLG'=$O(^ORD(101.41,"B","FHW SPECIAL MEAL",0)) Q 0 ;no requisitions
|
---|
102 | I DOREQ=1 Q 1 ; already know we're doing at least 1 requisition
|
---|
103 | Q ''$$GET^XPAR("SYS","ORPF WARD REQUISITION FORMAT",PKG,"I")
|
---|
104 | ;
|
---|
105 | HASFMTW() ; returns 1 if a work copy format is available
|
---|
106 | ; called from DEVINFO & MANUAL, expects ORDERID & DOWRK to be defined
|
---|
107 | I DOWRK=1 Q 1 ; already know we're doing at least 1 work copy
|
---|
108 | Q ''$$GET^XPAR("SYS","ORPF WORK COPY FORMAT",1,"I") ; not at pkg level
|
---|
109 | ;
|
---|
110 | INSRTBB(ORDRLST) ; Insert child lab orders for any orders going to VBECS
|
---|
111 | ; called from DEVINFO, MANUAL
|
---|
112 | ; expects BBPKG to be defined
|
---|
113 | Q:'BBPKG
|
---|
114 | N I,LABPKG,SUBID,CHILD,ACT,KIND
|
---|
115 | S LABPKG=+$O(^DIC(9.4,"B","LAB SERVICE",0)) Q:'LABPKG
|
---|
116 | S I=0 F S I=$O(ORDRLST(I)) Q:'I I $P(ORDRLST(I),U,2)'["E" D
|
---|
117 | . I $P($G(^OR(100,+ORDRLST(I),0)),U,14)'=BBPKG Q
|
---|
118 | . S SUBID=.0001
|
---|
119 | . S CHILD=0 F S CHILD=$O(^OR(100,+ORDRLST(I),2,CHILD)) Q:'CHILD D
|
---|
120 | . . I $P($G(^OR(100,CHILD,0)),U,14)'=LABPKG Q
|
---|
121 | . . S SUBID=SUBID+.0001,ACT=+$P(^OR(100,CHILD,3),U,7),KIND=$P(ORDRLST(I),U,2)
|
---|
122 | . . S ORDRLST(I+SUBID)=CHILD_";"_ACT_U_KIND
|
---|
123 | . S I=I+SUBID
|
---|
124 | Q
|
---|
125 | NOTBB(CHILD) ; returns 1 if the order is not a blood bank child lab order
|
---|
126 | ; called from DEVINFO, MANUAL
|
---|
127 | ; expects BBPKG to be defined
|
---|
128 | N PARENT S PARENT=$P(^OR(100,CHILD,3),U,9)
|
---|
129 | I PARENT,$P(^OR(100,PARENT,0),U,14)=BBPKG Q 0
|
---|
130 | Q 1
|
---|