1 | ORWD1 ; SLC/KCM/REV - GUI Prints; 28-JAN-1999 12:51 ;7/31/06 11:34
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10,85,140,215,260**;Dec 17, 1997;Build 26
|
---|
3 | PRINTS(PRTLST,HLOC,ORWDEV) ; Do the auto-prints after signing orders
|
---|
4 | ; PRTLST(n)=ORIFN;ACT^Chart^Label^Requisition^Service^Work
|
---|
5 | Q:$G(A7RNDBI) ; per NDBI, to suppress prints during integration
|
---|
6 | N ADEVICE,TMPLST S HLOC=+HLOC_";SC("
|
---|
7 | ; if there is a print device for chart copies, print chart copies
|
---|
8 | D MKLST(2) I $D(TMPLST)>1 D ; Print Chart Copies
|
---|
9 | . S ADEVICE=+$P($G(ORWDEV),U,1)
|
---|
10 | . I 'ADEVICE S ADEVICE=$$GET^XPAR(HLOC,"ORPF CHART COPY PRINT DEVICE",1,"I")
|
---|
11 | . I ADEVICE D GUI^ORPR02(.TMPLST,ADEVICE,"C",HLOC)
|
---|
12 | D MKLST(3) I $D(TMPLST)>1 D ; Print Labels
|
---|
13 | . S ADEVICE=+$P($G(ORWDEV),U,2)
|
---|
14 | . I 'ADEVICE S ADEVICE=$$GET^XPAR(HLOC,"ORPF LABEL PRINT DEVICE",1,"I")
|
---|
15 | . I ADEVICE D GUI^ORPR02(.TMPLST,ADEVICE,"L",HLOC)
|
---|
16 | D MKLST(4) I $D(TMPLST)>1 D ; Print Requisitions
|
---|
17 | . S ADEVICE=+$P($G(ORWDEV),U,3)
|
---|
18 | . I 'ADEVICE S ADEVICE=$$GET^XPAR(HLOC,"ORPF REQUISITION PRINT DEVICE",1,"I")
|
---|
19 | . I ADEVICE D GUI^ORPR02(.TMPLST,ADEVICE,"R",HLOC)
|
---|
20 | D MKLST(5) I $D(TMPLST)>1 D ; Print Service Copies
|
---|
21 | . D GUI^ORPR02(.TMPLST,"","S",HLOC)
|
---|
22 | D MKLST(6) I $D(TMPLST)>1 D ; Print Work Copies
|
---|
23 | . S ADEVICE=+$P($G(ORWDEV),U,4)
|
---|
24 | . I 'ADEVICE S ADEVICE=$$GET^XPAR(HLOC,"ORPF WORK COPY PRINT DEVICE",1,"I")
|
---|
25 | . I ADEVICE D GUI^ORPR02(.TMPLST,ADEVICE,"W",HLOC)
|
---|
26 | Q
|
---|
27 | MKLST(APIECE) ; Make a list to pass to GUI^ORPR02, called only from PRINTS
|
---|
28 | ; expect PRTLST to be defined, creates new TMPLST
|
---|
29 | N I,J,ORIFN,ACT,NOA,PKG,DLG K TMPLST
|
---|
30 | S I="",J=0 F S I=$O(PRTLST(I)) Q:I'>0 D
|
---|
31 | . I ($L(PRTLST(I),U)>1),'$P(PRTLST(I),"^",APIECE) Q
|
---|
32 | . S ORIFN=+PRTLST(I),ACT=+$P(PRTLST(I),";",2)
|
---|
33 | . S NOA=+$P($G(^OR(100,ORIFN,8,ACT,0)),U,12)
|
---|
34 | . I APIECE=2,'$P($G(^ORD(100.02,NOA,1)),U,2) Q ; no chart copies
|
---|
35 | . I APIECE=6,'$P($G(^ORD(100.02,NOA,1)),U,5) Q ; no work copies
|
---|
36 | . S PKG=+$P($G(^OR(100,+ORIFN,0)),U,14),DLG=+$P($G(^OR(100,+ORIFN,0)),U,5)
|
---|
37 | . I APIECE=4,PKG=$O(^DIC(9.4,"B","DIETETICS",0)),DLG'=$O(^ORD(101.41,"B","FHW SPECIAL MEAL",0)) Q ;no requisitions
|
---|
38 | . S J=J+1,TMPLST(J)=$P(PRTLST(I),U)
|
---|
39 | Q
|
---|
40 | PARAM(Y,LOC) ;Returns in 'Y' the print parameters
|
---|
41 | ;Y=Prompt for CC^Prompt for L ^Prompt for R ^Prompt for W ^CC device ^L Device ^R Device ^WC device
|
---|
42 | ;Device Params returned in internal;external format, the rest are internal
|
---|
43 | ;CC=Chart Copy
|
---|
44 | ;L=Label
|
---|
45 | ;R=Requisitions
|
---|
46 | ;WC=Work Copy
|
---|
47 | ;'Prompt for' values (internal):
|
---|
48 | ;0 for no prompts- chart copy is automatically generated.
|
---|
49 | ;1 to prompt for chart copy and ask which printer should be used.
|
---|
50 | ;2 to prompt for chart copy and automatically print to the
|
---|
51 | ; printer defined in the CHART COPY PRINT DEVICE field.
|
---|
52 | ;* don't print.
|
---|
53 | ;LOC=Ptr to location ^SC(LOC,
|
---|
54 | Q:'$G(LOC)
|
---|
55 | S Y=$$BLDIT(LOC)
|
---|
56 | Q
|
---|
57 | BLDIT(LOC) ;Get Print parameters
|
---|
58 | Q:'$G(LOC) ""
|
---|
59 | N PARAM,I
|
---|
60 | S PARAM=""
|
---|
61 | F I="ORPF PROMPT FOR CHART COPY","ORPF PROMPT FOR LABELS","ORPF PROMPT FOR REQUISITIONS","ORPF PROMPT FOR WORK COPY" D
|
---|
62 | . S PARAM=PARAM_$$XPAR(I,LOC,"Q")_"^"
|
---|
63 | S PARAM=PARAM_$$XPAR("ORPF CHART COPY PRINT DEVICE",LOC)_"^"
|
---|
64 | S PARAM=PARAM_$$XPAR("ORPF LABEL PRINT DEVICE",LOC)_"^"
|
---|
65 | S PARAM=PARAM_$$XPAR("ORPF REQUISITION PRINT DEVICE",LOC)_"^"
|
---|
66 | S PARAM=PARAM_$$XPAR("ORPF WORK COPY PRINT DEVICE",LOC)_"^"
|
---|
67 | Q PARAM
|
---|
68 | COMLOC(LOC,ORDERS) ; Return common location for orders in list, if any
|
---|
69 | N I
|
---|
70 | S LOC=0,I=0
|
---|
71 | ; get the location for the first order that was signed or released
|
---|
72 | F S I=$O(ORDERS(I)) Q:'I D Q:LOC
|
---|
73 | . I $P(ORDERS(I),U,2)'["R",($P(ORDERS(I),U,2)'["S") Q
|
---|
74 | . S LOC=+$P($G(^OR(100,+ORDERS(I),0)),U,10)
|
---|
75 | ; compare the location to the following orders
|
---|
76 | I LOC F S I=$O(ORDERS(I)) Q:'I D Q:'LOC
|
---|
77 | . I $P(ORDERS(I),U,2)'["R",($P(ORDERS(I),U,2)'["S") Q
|
---|
78 | . I (+$P($G(^OR(100,+ORDERS(I),0)),U,10)'=LOC) S LOC=0
|
---|
79 | Q
|
---|
80 | SIG4ONE(REQ,ANORDER) ; Return 1 if order requires a signature
|
---|
81 | S REQ=0
|
---|
82 | I +$P($G(^OR(100,+ANORDER,0)),U,16) S REQ=1
|
---|
83 | Q
|
---|
84 | SIG4ANY(REQ,ORDERS) ; Return 1 if any order requires a signature
|
---|
85 | N I
|
---|
86 | S I=0,REQ=0
|
---|
87 | F S I=$O(ORDERS(I)) Q:'I D Q:REQ
|
---|
88 | . I +$P($G(^OR(100,+ORDERS(I),0)),U,16) S REQ=1
|
---|
89 | Q
|
---|
90 | XPAR(NAME,LOC,FMT) ;Get parameter values
|
---|
91 | Q:'$L(NAME) ""
|
---|
92 | S:'$D(FMT) FMT="B"
|
---|
93 | Q $TR($$GET^XPAR("ALL^"_+LOC_";SC(",NAME,1,FMT),"^",";")
|
---|
94 | ;
|
---|
95 | PRINTGUI(ORESULT,HLOC,ORWDEV,PRTLST) ; File|Print orders from GUI
|
---|
96 | ;ORRACT is set here to identify this as a manual reprint
|
---|
97 | N ADEVICE,ORRACT,ORPLST,I,PKG,DLG
|
---|
98 | N BBPKG S BBPKG=+$O(^DIC(9.4,"B","VBECS",0))
|
---|
99 | S PRTLST="",I=0
|
---|
100 | K ORPLST M ORPLST=PRTLST
|
---|
101 | S ORRACT=1,ADEVICE=$P(ORWDEV,U,1),ORESULT=1
|
---|
102 | I +ADEVICE D GUI^ORPR02(.ORPLST,ADEVICE,"C",HLOC)
|
---|
103 | S ADEVICE=$P(ORWDEV,U,2)
|
---|
104 | K ORPLST M ORPLST=PRTLST
|
---|
105 | D INSRTBB^ORWD2(.ORPLST) ; insert BB child Lab orders into ORPLST for printing labels
|
---|
106 | I +ADEVICE D GUI^ORPR02(.ORPLST,ADEVICE,"L",HLOC)
|
---|
107 | ;
|
---|
108 | S ADEVICE=$P(ORWDEV,U,3)
|
---|
109 | K ORPLST M ORPLST=PRTLST
|
---|
110 | ;no FH order requisitions except special meals
|
---|
111 | F S I=$O(ORPLST(I)) Q:'I D
|
---|
112 | . S PKG=+$P($G(^OR(100,+ORPLST(I),0)),U,14),DLG=+$P($G(^OR(100,+ORPLST(I),0)),U,5)
|
---|
113 | . I PKG=$O(^DIC(9.4,"B","DIETETICS",0)),DLG'=$O(^ORD(101.41,"B","FHW SPECIAL MEAL",0)) K ORPLST(I)
|
---|
114 | D INSRTBB^ORWD2(.ORPLST) ; insert BB child Lab orders into ORPLST for printing requisitions
|
---|
115 | I +ADEVICE,$D(ORPLST) D GUI^ORPR02(.ORPLST,ADEVICE,"R",HLOC)
|
---|
116 | ;
|
---|
117 | S ADEVICE=$P(ORWDEV,U,4)
|
---|
118 | K ORPLST M ORPLST=PRTLST
|
---|
119 | I +ADEVICE D GUI^ORPR02(.ORPLST,ADEVICE,"W",HLOC)
|
---|
120 | ; D GUI^ORPR02(.ORPLST,"","S",HLOC) no svc copies from File|Print
|
---|
121 | Q
|
---|
122 | RVPRINT(OK,HLOC,ORWDEV,PRTLST) ; print orders from review/sign actions
|
---|
123 | D PRINTS(.PRTLST,HLOC,ORWDEV) S OK=1
|
---|
124 | Q
|
---|
125 | SVONLY(OK,HLOC,PRTLST) ; print service copies only
|
---|
126 | Q:$G(A7RNDBI) ; per NDBI, to suppress prints during integration
|
---|
127 | N TMPLST,I,J
|
---|
128 | S HLOC=+HLOC_";SC(",OK=1
|
---|
129 | S I="",J=0 F S I=$O(PRTLST(I)) Q:I'>0 D
|
---|
130 | . I ($L(PRTLST(I),U)>1),'$P(PRTLST(I),U,5) Q
|
---|
131 | . S J=J+1,TMPLST(J)=$P(PRTLST(I),U)
|
---|
132 | I $D(TMPLST)>1 D GUI^ORPR02(.TMPLST,"","S",HLOC)
|
---|
133 | Q
|
---|