1 | ORPR03 ; slc/dcm - While you were printing ; 07 Dec 99 01:43PM
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**11,69**;Dec 17, 1997
|
---|
3 | C1 ; Chart Copy Print
|
---|
4 | N ORIFN,OACTION,ORX,ORHEAD,ORFOOT,OROFMT,ORFMT,ORIOF,ORBOT,ORIOSL,ORXPND,ORFIRST1
|
---|
5 | N ORAGE,ORDOB,ORL,ORNP,ORPNM,ORPV,ORSEX,ORSSN,ORTS,ORWARD
|
---|
6 | U IO
|
---|
7 | D PAT(+ORVP)
|
---|
8 | S ORXPND=$$GET^XPAR("ALL","ORPF EXPAND CONTINUOUS ORDERS",1,"I")
|
---|
9 | S ORHEAD=$$GET^XPAR("ALL","ORPF CHART COPY HEADER",1,"I")
|
---|
10 | S ORFOOT=$$GET^XPAR("ALL","ORPF CHART COPY FOOTER",1,"I")
|
---|
11 | S OROFMT=$$GET^XPAR("ALL","ORPF CHART COPY FORMAT",1,"I")
|
---|
12 | S ORIOSL=IOSL
|
---|
13 | I ORFOOT,$D(^ORD(100.23,ORFOOT,0)) S ORBOT=$P(^(0),"^",2),ORIOSL=IOSL-ORBOT
|
---|
14 | I ORHEAD D PRINT^ORPR00(ORHEAD,1,0,1)
|
---|
15 | S ORIOF=IOF,IOF="!!",ORFIRST1=1
|
---|
16 | I OROFMT S ORFMT=OROFMT,ORCI=0 F S ORCI=$O(@ARAY@(ORCI)) Q:ORCI<1 S ORIFN=+@ARAY@(ORCI),OACTION=$P(@ARAY@(ORCI),";",2) D S ORFIRST1=0 Q:$G(OREND)
|
---|
17 | . I '$L($G(^OR(100,ORIFN,0))) D EN^ORERR("CHARTCOPY PRINT WITH INVALID ORIFN:"_ORIFN) Q
|
---|
18 | . D CHT1^ORPR04
|
---|
19 | . I 'OACTION D EN^ORERR("NO ACTION DEFINED FOR CHARTCOPY PRINT ORIFN:"_ORIFN) Q
|
---|
20 | . I '$D(^OR(100,ORIFN,8,OACTION)) D EN^ORERR("ACTION NODE ^(8) NOT SET FOR ORIFN:DA:"_ORIFN_":"_OACTION) Q
|
---|
21 | . I '$D(ORRACT) S:'$P($G(^OR(100,ORIFN,8,OACTION,7)),"^") $P(^(7),"^",1,4)=1_"^"_$$NOW^XLFDT_"^"_DUZ_"^"_IO ;ORRACT is around if this is a reprint.
|
---|
22 | I ORFOOT,'$G(OREND) S:IOF?1"!"."!" $P(IOF,"!",$S(ORIOSL>200:200,ORIOSL-$Y>1:ORIOSL-$Y,1:2))="" D PRINT^ORPR00(ORFOOT,1)
|
---|
23 | S IOF=ORIOF
|
---|
24 | W @IOF
|
---|
25 | I '$G(TASK) D ^%ZISC I $D(ZTSK) D KILL^%ZTLOAD K ZTSK
|
---|
26 | Q
|
---|
27 | W1 ;Work Copy Print
|
---|
28 | N ORIFN,OACTION,ORX,ORHEAD,ORFOOT,OROFMT,ORFMT,ORIOF,ORBOT,ORIOSL,ORXPND,ORFIRST1
|
---|
29 | N ORAGE,ORDOB,ORL,ORNP,ORPNM,ORPV,ORSEX,ORSSN,ORTS,ORWARD
|
---|
30 | U IO
|
---|
31 | D PAT(+ORVP)
|
---|
32 | S ORXPND=$$GET^XPAR("ALL","ORPF EXPAND CONTINUOUS ORDERS",1,"I")
|
---|
33 | S ORHEAD=$$GET^XPAR("ALL","ORPF WORK COPY HEADER",1,"I")
|
---|
34 | S ORFOOT=$$GET^XPAR("ALL","ORPF WORK COPY FOOTER",1,"I")
|
---|
35 | S OROFMT=$$GET^XPAR("ALL","ORPF WORK COPY FORMAT",1,"I")
|
---|
36 | S ORIOSL=IOSL
|
---|
37 | I ORFOOT,$D(^ORD(100.23,ORFOOT,0)) S ORBOT=$P(^(0),"^",2),ORIOSL=IOSL-ORBOT
|
---|
38 | I ORHEAD D PRINT^ORPR00(ORHEAD,1,0,1)
|
---|
39 | S ORIOF=IOF,IOF="!!",ORFIRST1=1
|
---|
40 | I OROFMT S ORFMT=OROFMT,ORCI=0 F S ORCI=$O(@ARAY@(ORCI)) Q:ORCI<1 D Q:$G(OREND)
|
---|
41 | . S ORIFN=+@ARAY@(ORCI),OACTION=$P(@ARAY@(ORCI),";",2)
|
---|
42 | . D WRK^ORPR08
|
---|
43 | . S ORFIRST1=0
|
---|
44 | I ORFOOT,'$G(OREND) S:IOF?1"!"."!" $P(IOF,"!",$S(ORIOSL>200:200,ORIOSL-$Y>1:ORIOSL-$Y,1:2))="" D PRINT^ORPR00(ORFOOT,1)
|
---|
45 | S IOF=ORIOF
|
---|
46 | I '$G(TASK) D ^%ZISC I $D(ZTSK) D KILL^%ZTLOAD K ZTSK
|
---|
47 | Q
|
---|
48 | L1 ; Label Print
|
---|
49 | N ORIFN,OACTION,ORX,ORX5,ORHEAD,ORFOOT,OROFMT,ORFMT,ORIOF,ORBOT,ORIOSL,ORXPND,ORPK,SORT,SORT1,ORCI,X3,SFIELD,ORFIRST1
|
---|
50 | N ORAGE,ORDOB,ORL,ORNP,ORPNM,ORPV,ORSEX,ORSSN,ORTS,ORWARD
|
---|
51 | U IO
|
---|
52 | S ORTKG=0,ORIOF=IOF,ORIOSL=IOSL,ORFIRST1=1
|
---|
53 | D PAT(+ORVP)
|
---|
54 | F S ORTKG=$O(@ARAY@(ORTKG)) Q:ORTKG<1 I $$GET^XPAR("SYS","ORPF WARD LABEL FORMAT",ORTKG,"I") S ORCI="" D
|
---|
55 | . S SFIELD=$$GET^XPAR("SYS","ORPF LABEL SORT FIELD",ORTKG,"I")
|
---|
56 | . K ^TMP("ORBEFORE",$J),^TMP("ORAFTER",$J)
|
---|
57 | . M ^TMP("ORBEFORE",$J)=@ARAY@(ORTKG)
|
---|
58 | . D ARAY^ORPR06(ORVP,ORTKG,"START",SFIELD)
|
---|
59 | . S SORT=""
|
---|
60 | . F S SORT=$O(^TMP("ORAFTER",$J,SORT)) Q:SORT="" D
|
---|
61 | .. S SORT1=""
|
---|
62 | .. F S SORT1=$O(^TMP("ORAFTER",$J,SORT,SORT1)) Q:SORT1="" D
|
---|
63 | ... S ORCI=""
|
---|
64 | ... F S ORCI=$O(^TMP("ORAFTER",$J,SORT,SORT1,ORCI)) Q:ORCI="" D Q:$G(OREND)
|
---|
65 | .... S ORIFN=+ORCI,OACTION=$P(ORCI,";",2),X3=$P($G(^OR(100,ORIFN,3)),"^",3)
|
---|
66 | .... I X3,X3'=11 D LBL1^ORPR01(1,$G(ORTIMES))
|
---|
67 | I $D(ZTSK),'$G(TASK) D ^%ZISC,KILL^%ZTLOAD K ZTSK
|
---|
68 | K ^TMP("ORBEFORE",$J),^TMP("ORAFTER",$J)
|
---|
69 | Q
|
---|
70 | R1 ; Requisition Print
|
---|
71 | N ORIFN,OACTION,ORX,ORX5,ORHEAD,ORFOOT,OROFMT,ORFMT,ORIOF,ORBOT,ORIOSL,ORTKG,ORXPND,ORPK,SORT,SORT1,ORGE,ORCI,X3,SFIELD,ORFIRST1
|
---|
72 | N ORAGE,ORDOB,ORL,ORNP,ORPNM,ORPV,ORSEX,ORSSN,ORTS,ORWARD
|
---|
73 | U IO
|
---|
74 | S ORTKG=0,ORIOF=IOF,ORIOSL=IOSL
|
---|
75 | D PAT(+ORVP)
|
---|
76 | F S ORTKG=$O(@ARAY@(ORTKG)) Q:ORTKG<1 I $$GET^XPAR("SYS","ORPF WARD REQUISITION FORMAT",ORTKG,"I") S ORCI="",IOF=ORIOF D
|
---|
77 | . S SFIELD=$$GET^XPAR("SYS","ORPF REQUISITION SORT FIELD",ORTKG,"I")
|
---|
78 | . S ORHEAD=$$GET^XPAR("SYS","ORPF WARD REQUISITION HEADER",ORTKG,"I")
|
---|
79 | . S ORFOOT=$$GET^XPAR("SYS","ORPF WARD REQUISITION FOOTER",ORTKG,"I")
|
---|
80 | . K ^TMP("ORBEFORE",$J),^TMP("ORAFTER",$J)
|
---|
81 | . M ^TMP("ORBEFORE",$J)=@ARAY@(ORTKG)
|
---|
82 | . D ARAY^ORPR06(ORVP,ORTKG,"START",SFIELD)
|
---|
83 | . S SORT="",ORGE=0 F S SORT=$O(^TMP("ORAFTER",$J,SORT)) Q:SORT="" D
|
---|
84 | .. S ORGE=1 ;ORGE used to control form feeds and indicate screened transactions
|
---|
85 | .. I ORFOOT,$D(^ORD(100.23,ORFOOT,0)) S ORBOT=$P(^(0),"^",2),ORIOSL=IOSL-ORBOT
|
---|
86 | .. I +ORHEAD D PRINT^ORPR00(ORHEAD,1)
|
---|
87 | .. S ORIOF=IOF,IOF="!!",ORFIRST1=1
|
---|
88 | .. S SORT1="" F S SORT1=$O(^TMP("ORAFTER",$J,SORT,SORT1)) Q:SORT1="" D
|
---|
89 | ... I 'ORGE W @ORIOF S ORGE=1 I +ORHEAD D PRINT^ORPR00(ORHEAD,1)
|
---|
90 | ... S ORCI=""
|
---|
91 | ... F S ORCI=$O(^TMP("ORAFTER",$J,SORT,SORT1,ORCI)) Q:ORCI="" D Q:$G(OREND)
|
---|
92 | .... S ORFIRST1=0,ORGE=0,ORIFN=+ORCI,OACTION=$P(ORCI,";",2),X3=$P($G(^OR(100,ORIFN,3)),"^",3)
|
---|
93 | .... I X3,X3'=11 D REQ1^ORPR01(1,"S ORGE=1")
|
---|
94 | ... I ORFOOT,'$G(OREND) S:IOF?1"!"."!" $P(IOF,"!",$S(ORIOSL>200:200,ORIOSL-$Y>1:ORIOSL-$Y,1:2))="" D PRINT^ORPR00(ORFOOT,1)
|
---|
95 | ... S IOF=ORIOF
|
---|
96 | .. I 'ORFOOT,'ORGE,$O(^TMP("ORAFTER",$J,SORT)) W @ORIOF
|
---|
97 | I '$G(TASK) D ^%ZISC I $D(ZTSK) D KILL^%ZTLOAD K ZTSK
|
---|
98 | S IOF=ORIOF
|
---|
99 | K ^TMP("ORBEFORE",$J),^TMP("ORAFTER",$J)
|
---|
100 | Q
|
---|
101 | SVCOPY(ORDEFIO,SARAY) ; Print Service Copies
|
---|
102 | ;SARAY(PKG,ORIFN)=Device ptr^# of copies (used by Consults service copies)
|
---|
103 | N ORDEF,ORSCI,ORSCPY,ORIC,ORNM,ZTREQ
|
---|
104 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
105 | I $D(ARAY) F ORTKG=0:0 S ORTKG=$O(@ARAY@(ORTKG)) Q:ORTKG<1 S ORNM=$P($G(^DIC(9.4,ORTKG,0)),"^") D
|
---|
106 | . I $D(SARAY(ORTKG))>9 S ORSCI=0 D
|
---|
107 | .. F S ORSCI=$O(SARAY(ORTKG,ORSCI)) Q:ORSCI'>0 D
|
---|
108 | ... N ARAY
|
---|
109 | ... S ORDEF=$S($G(ORDEFIO):"",1:$P($G(SARAY(ORTKG,ORSCI)),U)),ARAY(ORTKG,ORSCI)=""
|
---|
110 | ... S ORSCPY=$S(+$P($G(SARAY(ORTKG,ORSCI)),U,2):+$P($G(SARAY(ORTKG,ORSCI)),U,2),1:1)
|
---|
111 | ... F ORIC=1:1:ORSCPY S X=$$DEVICE^ORPR02(+$G(ORDEFIO)_"^"_ORNM_" SERVICE COPIES",ORDEF,"S1^ORPR03")
|
---|
112 | . Q:'$$GET^XPAR("SYS","ORPF SERVICE COPY FORMAT",ORTKG,"I")
|
---|
113 | . I $D(SARAY(ORTKG))'>9 D
|
---|
114 | .. S X=$S($G(ORDEFIO):"",1:$$GET^XPAR(+LOC_";SC("_"^DIV^SYS","ORPF SERVICE COPY DEFLT DEVICE",ORTKG,"I"))
|
---|
115 | .. I $L(X) S X=$$DEVICE^ORPR02("0^"_ORNM_" SERVICE COPIES",X,"S1^ORPR03") Q
|
---|
116 | .. E I $G(ORDEFIO) S X=$$DEVICE^ORPR02("1^"_ORNM_" SERVICE COPIES",,"S1^ORPR03") Q
|
---|
117 | Q
|
---|
118 | S1 ; Service Copy Print Routine
|
---|
119 | N ORIFN,OACTION,ORX,ORNUM,ORHEAD,ORFOOT,OROFMT,ORFMT,ORIOF,ORBOT,ORIOSL,ORSNUM,ORFIRST1
|
---|
120 | N ORAGE,ORDOB,ORL,ORNP,ORPNM,ORPV,ORSEX,ORSSN,ORTS,ORWARD
|
---|
121 | U IO
|
---|
122 | D PAT(+ORVP)
|
---|
123 | S OROFMT=$$GET^XPAR("SYS","ORPF SERVICE COPY FORMAT",ORTKG,"I")
|
---|
124 | S ORHEAD=$$GET^XPAR("SYS","ORPF SERVICE COPY HEADER",ORTKG,"I")
|
---|
125 | S ORFOOT=$$GET^XPAR("SYS","ORPF SERVICE COPY FOOTER",ORTKG,"I")
|
---|
126 | S ORIOSL=IOSL
|
---|
127 | I ORFOOT,$D(^ORD(100.23,ORFOOT,0)) S ORBOT=$P(^(0),"^",2),ORIOSL=IOSL-ORBOT
|
---|
128 | I ORHEAD D PRINT^ORPR00(ORHEAD,1,0,1)
|
---|
129 | S ORIOF=IOF,IOF="!",ORFIRST1=1
|
---|
130 | I OROFMT S ORFMT=OROFMT,ORCI="" F S ORCI=$O(@ARAY@(ORTKG,ORCI)) Q:ORCI="" S ORIFN=+ORCI,OACTION=$P(ORCI,";",2) D CHT1^ORPR04 S ORFIRST1=0 Q:$G(OREND)
|
---|
131 | I ORFOOT,'$G(OREND) S:IOF?1"!"."!" $P(IOF,"!",$S(ORIOSL>200:200,ORIOSL-$Y>1:ORIOSL-$Y,1:1))="" S:IOF="" IOF=ORIOF D PRINT^ORPR00(ORFOOT,1,0)
|
---|
132 | S IOF=ORIOF
|
---|
133 | I '$G(TASK) D ^%ZISC I $D(ZTSK) D KILL^%ZTLOAD K ZTSK
|
---|
134 | Q
|
---|
135 | PAT(Y) ;Get patient variables
|
---|
136 | ;Y=DFN or ORVP
|
---|
137 | N VA,VA200,VAIN,VADM,VAROOT,VAERR,VAINDT
|
---|
138 | Q:'$G(Y)
|
---|
139 | S DFN=+Y,VA200=1
|
---|
140 | D OERR^VADPT
|
---|
141 | S ORPNM=VADM(1),ORSSN=VA("PID"),ORDOB=$P(VADM(3),"^",2),ORAGE=VADM(4),ORSEX=$P(VADM(5),"^"),ORTS=+VAIN(3),ORTS=$S($G(ORTS):ORTS,1:""),ORNP=+VAIN(2),ORWARD=VAIN(4),ORPV=""
|
---|
142 | I '$D(ORL),$P(ORWARD,"^")?1N.N S ORL(1)=VAIN(5),(ORL,ORL(0),ORL(2))="",X=+ORWARD I $D(^DIC(42,+X,44)) S X=$P(^(44),"^") I X,$D(^SC(X,0)) S ORL=X_";SC(",ORL(0)=$S($L($P(^(0),"^",2)):$P(^(0),"^",2),1:$E($P(^(0),"^"),1,4)),ORL(2)=ORL
|
---|
143 | Q
|
---|