1 | ORPR07 ; slc/dcm - Printless in Tuscaloosa ;6/10/97 15:36
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**15,11,94,141**;Dec 17, 1997
|
---|
3 | ORDT(IFN,ACT) ;Get order date
|
---|
4 | ;IFN=ORIFN
|
---|
5 | ;ACT=DA of action
|
---|
6 | Q:'$G(IFN) ""
|
---|
7 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
8 | N X,Y
|
---|
9 | S X="" I $G(ACT) S Y=$$ACT(IFN,ACT) Q +Y
|
---|
10 | S X=$P(^OR(100,IFN,0),"^",7)
|
---|
11 | Q X
|
---|
12 | ACT(IFN,ACT) ;This is an action
|
---|
13 | N X
|
---|
14 | Q:'$D(^OR(100,+$G(IFN),8,+$G(ACT),0)) "" S X=^(0)
|
---|
15 | Q X
|
---|
16 | VNURSE(IFN,ACT) ;Get verifying nurse data
|
---|
17 | ;Returns 1^name^initials^title^date/time verified if data, "" if not
|
---|
18 | Q:'$G(IFN) ""
|
---|
19 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
20 | N X,Y,Z S X=""
|
---|
21 | I $G(ACT) S Y=$$ACT(IFN,ACT),Z=$G(^VA(200,+$P(Y,"^",8),0)) I $L(Z) S X=1_"^"_$P(Z,"^")_"^"_$P(Z,"^",2)_"^"_$P($G(^DIC(3.1,+$P(Z,"^",9),0)),"^")_"^"_$P(Y,"^",9)
|
---|
22 | Q X
|
---|
23 | VCLERK(IFN,ACT) ;Get verifying clerk data
|
---|
24 | ;Returns 1^name^initials^title^date/time verified if data, "" if not
|
---|
25 | Q:'$G(IFN) ""
|
---|
26 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
27 | N X,Y,Z S X=""
|
---|
28 | I $G(ACT) S Y=$$ACT(IFN,ACT),Z=$G(^VA(200,+$P(Y,"^",10),0)) I $L(Z) S X=1_"^"_$P(Z,"^")_"^"_$P(Z,"^",2)_"^"_$P($G(^DIC(3.1,+$P(Z,"^",9),0)),"^")_"^"_$P(Y,"^",11)
|
---|
29 | Q X
|
---|
30 | RVIEW(IFN,ACT) ;Get Chart reviewed by data
|
---|
31 | ;Returns 1^name^initials^titel^date/time reviewed, "" if not
|
---|
32 | Q:'$G(IFN) ""
|
---|
33 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
34 | N X,Y,Z S X=""
|
---|
35 | I $G(ACT) S Y=$$ACT(IFN,ACT),Z=$G(^VA(200,+$P(Y,"^",18),0)) I $L(Z) S X=1_"^"_$P(Z,"^")_"^"_$P(Z,"^",2)_"^"_$P($G(^DIC(3.1,+$P(Z,"^",9),0)),"^")_"^"_$P(Y,"^",19)
|
---|
36 | Q X
|
---|
37 | ORDOC(IFN,ACT) ;Get Ordering provider
|
---|
38 | Q:'$G(IFN) ""
|
---|
39 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
40 | N X,Y,Z
|
---|
41 | S X=""
|
---|
42 | I $G(ACT) S Y=$$ACT(IFN,ACT),Z=$G(^VA(200,+$P(Y,"^",3),0)) I $L(Z) S X=$P(Z,"^")
|
---|
43 | I '$L(X) S Y=$P(^OR(100,IFN,0),"^",4),Z=$G(^VA(200,+Y,0)) I $L(Z) S X=$P(Z,"^")
|
---|
44 | Q X
|
---|
45 | PHONE(IFN,ACT,PIECE) ;Get Ordering provider's phone number (multiple choice)
|
---|
46 | ;PIECE=the piece of data to get from node ^VA(200,DUZ,.13)
|
---|
47 | Q:'$G(IFN) ""
|
---|
48 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
49 | Q:'$G(PIECE)
|
---|
50 | N X,Y,Z
|
---|
51 | S X=""
|
---|
52 | I $G(ACT) S Y=$$ACT(IFN,ACT),Z=$G(^VA(200,+$P(Y,"^",3),.13)) I $L(Z) S X=$P(Z,"^",PIECE) Q X
|
---|
53 | S Y=$P(^OR(100,IFN,0),"^",4) S:Y X=$P($G(^VA(200,Y,.13)),"^",PIECE)
|
---|
54 | Q X
|
---|
55 | NAT(IFN,ACT) ;Get Nature of order
|
---|
56 | Q:'$G(IFN) ""
|
---|
57 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
58 | N X,Y
|
---|
59 | S X=""
|
---|
60 | I $G(ACT) S Y=$P($$ACT(IFN,ACT),"^",12),X=$S($D(^ORD(100.02,+Y,0)):$P(^(0),"^"),1:"")
|
---|
61 | Q X
|
---|
62 | ESNAME(IFN,ACT) ;Get Electronic Sig Name
|
---|
63 | Q:'$G(IFN) ""
|
---|
64 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
65 | N X,Y
|
---|
66 | S X=""
|
---|
67 | I $G(ACT) S Y=$$ACT(IFN,ACT) D Q X
|
---|
68 | . I $P(Y,"^",5) S X=$P($G(^VA(200,$P(Y,"^",5),20)),"^",2) S:$L(X) X=$S($P(Y,"^",4)=7:"/ds/",1:"/es/")_X Q
|
---|
69 | . I $P(Y,"^",4),"42"[$P(Y,"^",4) S X="_______________" Q
|
---|
70 | Q X
|
---|
71 | ESTIT(IFN,ACT) ;Get Electronic Sig Title
|
---|
72 | Q:'$G(IFN) ""
|
---|
73 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
74 | N X,Y
|
---|
75 | S X="" I $G(ACT) S Y=$$ACT(IFN,ACT) S:$P(Y,"^",5) X=$E($P($G(^VA(200,$P(Y,"^",5),20)),"^",3),1,20)
|
---|
76 | Q X
|
---|
77 | ESDATE(IFN,ACT) ;Get Electronic Sig Date
|
---|
78 | Q:'$G(IFN) ""
|
---|
79 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
80 | N X
|
---|
81 | S X=""
|
---|
82 | I $G(ACT) S X=$P($$ACT(IFN,ACT),"^",6)
|
---|
83 | Q X
|
---|
84 | ESODATE(IFN,ACT) ;Get Date/time Signed online
|
---|
85 | Q:'$G(IFN) ""
|
---|
86 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
87 | N X
|
---|
88 | S X=""
|
---|
89 | I $G(ACT),$P($$ACT(IFN,ACT),"^",4)=1 S X=$P($$ACT(IFN,ACT),"^",6)
|
---|
90 | Q X
|
---|
91 | ENTBY(IFN,ACT) ;Get Entered by
|
---|
92 | Q:'$G(IFN) ""
|
---|
93 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
94 | N X,Y
|
---|
95 | S X="" I $G(ACT) S Y=$$ACT(IFN,ACT) S:$P(Y,"^",13) X=$P($G(^VA(200,$P(Y,"^",13),0)),"^") Q X
|
---|
96 | S X=$P(^OR(100,IFN,0),"^",6) S:X X=$P(^VA(200,X,0),"^")
|
---|
97 | Q X
|
---|
98 | ENTINT(IFN,ACT) ;Get Entered by Initials
|
---|
99 | Q:'$G(IFN) ""
|
---|
100 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
101 | N X,Y
|
---|
102 | S X="" I $G(ACT) S Y=$$ACT(IFN,ACT) S:$P(Y,"^",13) X=$P($G(^VA(200,$P(Y,"^",13),0)),"^",2) Q X
|
---|
103 | S X=$P(^OR(100,IFN,0),"^",6) S:X X=$P(^VA(200,X,0),"^",2)
|
---|
104 | Q X
|
---|
105 | ENTIT(IFN,ACT) ;Get Electronic Sig Title of Entering Person
|
---|
106 | Q:'$G(IFN) ""
|
---|
107 | Q:'$D(^OR(100,IFN,0)) ""
|
---|
108 | N X,Y
|
---|
109 | S X="" I $G(ACT) S Y=$$ACT(IFN,ACT) S:$P(Y,"^",13) X=$E($P($G(^VA(200,$P(Y,"^",13),20)),"^",3),1,20) Q X
|
---|
110 | S X=$P(^OR(100,IFN,0),"^",6) S:X X=$E($P(^VA(200,X,20),"^",3),1,20)
|
---|
111 | Q X
|
---|
112 | BY(ORIFN) ;Get DC info for DC by & when PRINT FIELD
|
---|
113 | Q:'$G(ORIFN) ""
|
---|
114 | N Y,Z,X6,X1,ORDCBY
|
---|
115 | I $P($G(^OR(100,ORIFN,6)),"^",2) S X6=^(6) D Q ORDCBY
|
---|
116 | . S Y=+$J($P(X6,"^",3),0,4),Z=$G(^VA(200,+$P(X6,"^",2),0)) I $L(Z) S X1=$P(Z,"^")_$S($P(Z,"^",9):" ("_$E($P(^DIC(3.1,$P(Z,"^",9),0),"^"),1,10)_")",1:""),Y=$$DATE^ORU(Y)_" "_$$TIME^ORU(Y)
|
---|
117 | . S ORDCBY="DC'ed "_$S(+$P(X6,"^",4):"("_$P(^ORD(100.03,+$P(X6,"^",4),0),"^")_")",1:"")_" by:"_X1_" "_Y
|
---|
118 | Q ""
|
---|
119 | WARDREM(ORIFN) ;Get Ward Remarks
|
---|
120 | N ORI,X
|
---|
121 | S X=""
|
---|
122 | I $G(ORIFN) S ORI=$O(^OR(100,ORIFN,4.5,"ID","COMMENT",0)) I ORI S X="^OR(100,"_+ORIFN_",4.5,"_ORI_",2)"
|
---|
123 | Q X
|
---|
124 | RX(IFN,FLD,Y) ;Get Pharmacy Fields
|
---|
125 | ;IFN=internal # of 100
|
---|
126 | ;FLD=code for RX field to lookup
|
---|
127 | ;Y=output returned in Y
|
---|
128 | Q:'$G(IFN) Q:'$L($G(FLD))
|
---|
129 | Q:'$D(^OR(100,IFN,0))
|
---|
130 | N X,X4,PKG,DFN,I S X=^OR(100,IFN,0),X4=$G(^(4)) Q:'$L(X4)
|
---|
131 | S PKG=$P(X,"^",14) Q:'PKG
|
---|
132 | S PKG=$S($P(^DIC(9.4,PKG,0),"^")="INPATIENT MEDICATIONS":"I",$P(^(0),"^")="OUTPATIENT MEDICATIONS":"O",$P(^(0),"^")="IV MEDICATIONS":"I",$P(^(0),"^")="UNIT DOSE MEDICATIONS":"I",1:"") Q:'$L(PKG)
|
---|
133 | S DFN=+$P(X,"^",2)
|
---|
134 | D OEL^PSOORRL(DFN,X4_";"_PKG)
|
---|
135 | I FLD="SI" S Y=$P($G(^TMP("PS",$J,"SI")),"^",1,99) Q ;Special Instructions
|
---|
136 | I FLD="SCH" S I=0 D Q ;Schedule & Admin Times
|
---|
137 | . F S I=$O(^TMP("PS",$J,"SCH",I)) Q:I<1 S Y(I)=$P(^(I,0),"^") ;_" "_$P(^(0),"^",2)
|
---|
138 | I FLD="OTH" S Y=$P($G(^TMP("PS",$J,"OPI")),1,99) Q ;Other print info
|
---|
139 | I FLD="DRUG" S Y=$P($G(^TMP("PS",$J,0)),"^") Q ;Drug
|
---|
140 | I FLD="INF" S Y=$P($G(^TMP("PS",$J,0)),"^",2) Q ;Infusion rate
|
---|
141 | I FLD="STOP" S Y=$P($G(^TMP("PS",$J,0)),"^",3) Q ;Stop date
|
---|
142 | I FLD="REFIL" S Y=$P($G(^TMP("PS",$J,0)),"^",4) Q ;Refills
|
---|
143 | I FLD="MDRT" S I=0 D Q ;Med Route
|
---|
144 | . F S I=$O(^TMP("PS",$J,"MDR",I)) Q:I<1 S Y(I)=^(I,0)
|
---|
145 | I FLD="SIG" S I=0 D Q ;SIG (outpat) Instructions (inpat)
|
---|
146 | . F S I=$O(^TMP("PS",$J,"SIG",I)) Q:I<1 S Y(I)=^(I,0)
|
---|
147 | I FLD="PC" S I=0 D Q ;Provider comments
|
---|
148 | . F S I=$O(^TMP("PS",$J,"PC",I)) Q:I<1 S Y(I)=^(I,0)
|
---|
149 | I FLD="ADD" S I=0 D Q ;Additive, amount, bottle
|
---|
150 | . F S I=$O(^TMP("PS",$J,"A",I)) Q:I<1 S Y(I)=$P(^(I,0),"^")_" "_$P(^(0),"^",2)_" #"_$P(^(0),"^",3)
|
---|
151 | I FLD="SOL" S I=0 D Q ;Solution & amount
|
---|
152 | . F S I=$O(^TMP("PS",$J,"B",I)) Q:I<1 S Y(I)=$P(^(I,0),"^")_" "_$P(^(0),"^",2)
|
---|
153 | Q
|
---|
154 | TEST ;Test RX call
|
---|
155 | W !,"Enter Pharmacy Order # (ORIFN): " R X:DTIME Q:X=""!(X["^") I '$D(^OR(100,+$G(X),0)) W !,$C(7),X_" does not exist" G TEST
|
---|
156 | S ORIFN=X F ORI="SCH","SI","ADM","OTH","DRUG","INF","STOP","REFIL","MDRT","SIG","PC","ADD","SOL" K TEST D RX(ORIFN,ORI,.TEST) I $D(TEST) W !,ORI_"- " ;ZW TEST
|
---|
157 | Q
|
---|
158 | LABEL(Y,ORIFN,QUIET,OACTION) ;Print pharmacy label
|
---|
159 | I $G(ORTEST) D TEST1 Q
|
---|
160 | N X,X4,ORC
|
---|
161 | Q:'$D(^OR(100,+$G(ORIFN),0)) Q:'$L($G(^(4))) S X=^(0),X4=^(4)
|
---|
162 | I $S($P($G(^DIC(9.4,+$P(X,"^",14),0)),"^")="INPATIENT MEDICATIONS":0,$P($G(^DIC(9.4,+$P(X,"^",14),0)),"^")="IV MEDICATIONS":0,$P($G(^DIC(9.4,+$P(X,"^",14),0)),"^")="UNIT DOSE MEDICATIONS":0,1:1) Q
|
---|
163 | N LINES,ORXPTMP,I,ACT
|
---|
164 | I $G(OACTION),$D(^OR(100,+$G(ORIFN),8,OACTION,0)) S ACT=$P(^(0),"^",2)
|
---|
165 | I $L($T(MAR^PSJORMAR),",")>4 D MAR^PSJORMAR(+$P(X,"^",2),$P(X4,"^"),1,.LINES,$G(ACT))
|
---|
166 | I $L($T(MAR^PSJORMAR),",")'>4 D MAR^PSJORMAR(+$P(X,"^",2),$P(X4,"^"),1,.LINES)
|
---|
167 | I $G(QUIET) K Y S (I,Y)=0 D Q
|
---|
168 | . F S I=$O(LINES(I)) Q:'I S Y(I,0)=LINES(I),ORPICKUP=I
|
---|
169 | S (ORC,I)=0
|
---|
170 | I '$D(ORIOSL) N ORIOSL S ORIOSL=$S($D(IOSL):IOSL,1:50)
|
---|
171 | I '$D(ORIOF) N ORIOF S ORIOF=$S($D(IOF):IOF,1:"!")
|
---|
172 | F S I=$O(LINES(I)) Q:I<1 S ORC=ORC+1 D
|
---|
173 | . I $Y>(ORIOSL-2) W @ORIOF S ORC=1
|
---|
174 | . W:ORC>1 ! W LINES(I)
|
---|
175 | Q
|
---|
176 | TEST1 ;Print test label
|
---|
177 | W !,"03/03 | | (F1990)|"
|
---|
178 | W !,"Test Pharmacy Label"
|
---|
179 | W !,"Give: 1GM TOP QD"
|
---|
180 | W !!," RPH: _____RN: _____|"
|
---|
181 | Q
|
---|