1 | PSOORED5 ;BIR/SAB-Rxs without dosing info ;07/20/00
|
---|
2 | ;;7.0;OUTPATIENT PHARMACY;**46,75,78,100,99,117,133**;DEC 1997
|
---|
3 | ;^PS(51.2 - DBIA 2226
|
---|
4 | ;^PS(50.7 - DBIA 2223
|
---|
5 | ;^PSDRUG - DBIA 221
|
---|
6 | ;^PS(55 - DBIA 2228
|
---|
7 | ;called by psoored2 and psodir
|
---|
8 | ;pre-poe rxs and new backdoor rxs
|
---|
9 | DOSE1(PSORXED) ;for new rxs
|
---|
10 | DOSE ;pre-poe rx
|
---|
11 | D KV K ROU,STRE,FIELD,DOSEOR,DUPD,X,Y,UNITS S ENT=1,OLENT=ENT
|
---|
12 | ASK S ROU="PSOORED5" D ASK^PSOBKDED K ROU G:$D(DIRUT) EX
|
---|
13 | I $G(JUMP) K JUMP G JUMP
|
---|
14 | I $G(QUIT)]"" K QUIT,ROU Q
|
---|
15 | ;
|
---|
16 | I $G(VERB)]"" S PSORXED("VERB",ENT)=VERB G DUPD
|
---|
17 | I $G(PSORX("EDIT"))']"" W:$G(PSORXED("VERB",ENT))]"" !,"VERB: "_PSORXED("VERB",ENT) G DUPD
|
---|
18 | VER D VER^PSOOREDX
|
---|
19 | I X[U,$L(X)>1 S FIELD="VER" G JUMP
|
---|
20 | G:$D(DTOUT)!($D(DUOUT)) EX I X="@" K PSORXED("VERB",ENT),VERB G DUPD
|
---|
21 | S:X'="" (PSORXED("VERB",ENT),VERB)=X
|
---|
22 | DUPD ;
|
---|
23 | I $G(PSORXED("DOSE",ENT))'?.N&($G(PSORXED("DOSE",ENT))'?.N1".".N)!'DOSE("LD") K PSORXED("DOSE ORDERED",ENT),DUPD G NOU1
|
---|
24 | D KV S DIR(0)="52.0113,1",DIR("A")="DISPENSE UNITS PER DOSE"_$S($G(PSORXED("NOUN",ENT))]"":"("_PSORXED("NOUN",ENT)_")",1:"")
|
---|
25 | I '$G(PSORXED("DOSE",ENT)),$G(PSORXED("DOSE",ENT-1)) S PSORXED("DOSE",ENT)=PSORXED("DOSE",ENT-1)
|
---|
26 | S DIR("B")=$S($G(PSORXED("DOSE ORDERED",ENT))]"":PSORXED("DOSE ORDERED",ENT),$G(DUPD)]"":DUPD,1:"") S:$E($G(DIR("B")),1)="." DIR("B")="0"_$G(DIR("B")) K:DIR("B")="" DIR("B")
|
---|
27 | D ^DIR I X[U,$L(X)>1 S FIELD="DUPD" G JUMP
|
---|
28 | G:$D(DTOUT)!($D(DUOUT)) EX
|
---|
29 | I X="@"!(X=0) W !,"Dispense Units Per Dose is Required!!",! G DUPD
|
---|
30 | D STR^PSOOREDX
|
---|
31 | ;
|
---|
32 | NOU1 G:'$D(DUPD) RTE D CNON^PSOORED3 N PSONDEF
|
---|
33 | I $G(NOUN)]"",$G(PSORX("EDIT"))']"" S PSORXED("NOUN",ENT)=NOUN W !,"NOUN: "_$G(NOUN) G RTE
|
---|
34 | I $G(PSORX("EDIT"))']"",$G(PSORXED("NOUN",ENT))]"" W !,"NOUN: "_PSORXED("NOUN",ENT) G RTE
|
---|
35 | NOU D NOU^PSOOREDX I X[U,$L(X)>1 S FIELD="NOU" G JUMP
|
---|
36 | G:$D(DTOUT)!($D(DUOUT)) EX I X="@" K PSORXED("NOUN",ENT),NOUN G RTE
|
---|
37 | I X'="",$G(PSONDEF)="" S NOUN=X
|
---|
38 | I X'="",$G(PSONDEF)'=X S NOUN=X
|
---|
39 | S:X'="" PSORXED("NOUN",ENT)=X
|
---|
40 | ;
|
---|
41 | RTE I $G(ENT)>1,$G(PSORX("EDIT"))']"",$G(PSORXED("ROUTE",ENT-1)),$G(PSORXED("ROUTE",ENT))']"" S PSORXED("ROUTE",ENT)=PSORXED("ROUTE",ENT-1) G SCH
|
---|
42 | I '$G(DRET),'$G(PSORXED("ROUTE",ENT)),$P(^PS(50.7,PSODRUG("OI"),0),"^",6) S PSORXED("ROUTE",ENT)=$P(^PS(50.7,PSODRUG("OI"),0),"^",6)
|
---|
43 | I $G(DRET) S PSORXED("ROUTE",ENT)=""
|
---|
44 | I $G(RTE) K RTE
|
---|
45 | D KV S DIR(0)="FO^2:45",DIR("A")="ROUTE",DIR("?")="^D HLP^PSOORED4"
|
---|
46 | S DIR("B")=$S($G(PSORXED("ROUTE",ENT)):$P(^PS(51.2,PSORXED("ROUTE",ENT),0),"^"),$G(RTE)]"":RTE,$G(DRET):"",1:"PO") K:DIR("B")="" DIR("B")
|
---|
47 | D ^DIR I X[U,$L(X)>1 S FIELD="RTE" G JUMP
|
---|
48 | I $D(DTOUT)!($D(DUOUT)) S PSODIR("DFLG")=1 Q
|
---|
49 | I X="@"!(X="") K RTE,ERTE S DRET=1,PSORXED("ROUTE",ENT)="" G SCH
|
---|
50 | K DRET I X=$P($G(^PS(51.2,+$G(PSORXED("ROUTE",ENT)),0)),"^") S RTE=$P(^PS(51.2,PSORXED("ROUTE",ENT),0),"^") W X_" "_$G(ERTE) G SCH
|
---|
51 | S DIC=51.2,DIC(0)="QEZM",DIC("S")="I $P(^(0),""^"",4)" D ^DIC Q:X[U G:Y=-1 RTE W " "_$P(Y(0),"^",2)
|
---|
52 | S:X'="" PSORXED("ROUTE",ENT)=+Y,RTE=Y(0,0),ERTE=$P(Y(0),"^",2)
|
---|
53 | ;
|
---|
54 | SCH D SCH^PSOBKDED I X[U,$L(X)>1 S FIELD="SCH" G JUMP
|
---|
55 | G:$D(DTOUT)!($D(DUOUT)) EX S SCH=Y D SCH^PSOSIG I $G(SCH)']"" G SCH
|
---|
56 | S PSORXED("SCHEDULE",ENT)=SCH W " ("_SCHEX_")" K SCH,SCHEX,X,Y,PSOSCH
|
---|
57 | S:$G(PSORXED("ENT"))<ENT PSORXED("ENT")=ENT
|
---|
58 | ;
|
---|
59 | DUR D KV K EXP S DIR(0)="52.0113,4",DIR("A")="LIMITED DURATION (IN DAYS, HOURS OR MINUTES)"
|
---|
60 | S DIR("B")=$S($D(DUR):DUR,$G(PSORXED("DURATION",ENT))]"":PSORXED("DURATION",ENT),1:"") K:DIR("B")="" DIR("B")
|
---|
61 | D ^DIR I X[U,$L(X)>1 S FIELD="DUR" G JUMP
|
---|
62 | G:$D(DTOUT)!($D(DUOUT)) EX
|
---|
63 | D DUR1^PSOOREDX
|
---|
64 | ;
|
---|
65 | CON D CON^PSOOREDX I X[U,$L(X)>1 S FIELD="CON" G JUMP
|
---|
66 | G:$D(DTOUT)!($D(DUOUT)) EX
|
---|
67 | I X="@",$G(PSORXED("CONJUNCTION",ENT))="" W !,?10,"Invalid Entry - nothing to delete!!" G CON
|
---|
68 | S:X'=""&(X'="@") PSORXED("CONJUNCTION",ENT)=Y
|
---|
69 | I X="@" D CON1^PSOOREDX G:$D(DIRUT) EX G:'Y CON S:'$G(COPY) PSOSIGFL=1 D UPD^PSOOREDX G CON
|
---|
70 | I $G(PSORXED("CONJUNCTION",ENT))]"" S ENT=ENT+1 K DIR G ASK
|
---|
71 | S X=$G(PSORXED("INS")) D SIG^PSOHELP S:$G(INS1)]"" PSORXED("SIG")=$E(INS1,2,9999999)
|
---|
72 | D EN^PSOFSIG(.PSORXED) I $O(SIG(0)) S PSORXED("ENT")=ENT,SIGOK=1
|
---|
73 | Q:$G(PSOREEDT)!($G(PSOORRNW))
|
---|
74 | K QTYHLD S:$G(PSORXED("QTY")) QTYHLD=PSORXED("QTY") D QTY^PSOSIG(.PSORXED) I $G(PSORXED("QTY")) S QTY=1
|
---|
75 | I $G(QTYHLD),'$G(PSORXED("QTY")) S PSORXED("QTY")=QTYHLD
|
---|
76 | K QTYHLD Q:$G(PSOFROM)="NEW"!($G(COPY))!($G(PSOFROM))!($G(PSOREEDT))
|
---|
77 | Q:$G(PSOSIGFL) D
|
---|
78 | .S D=0 F S D=$O(SIG(D)) Q:'D S ^PSRX(PSORXED("IRXN"),"SIG1",D,0)=SIG(D),$P(^PSRX(PSORXED("IRXN"),"SIG1",0),"^",3)=+$P($G(^PSRX(PSORXED("IRXN"),"SIG1",0)),"^",3)+1,$P(^(0),"^",4)=+$P($G(^(0)),"^",4)+1 Q:'$O(SIG(D))
|
---|
79 | .S (A,I)=0 F S I=$O(^PSRX(PSORXED("IRXN"),"A",I)) Q:'I S A=A+1
|
---|
80 | .S:'$D(^PSRX(PSORXED("IRXN"),"A",0)) ^PSRX(PSORXED("IRXN"),"A",0)="^52.3DA^"
|
---|
81 | .S $P(^PSRX(PSORXED("IRXN"),"A",0),"^",3)=$P($G(^PSRX(PSORXED("IRXN"),"A",0)),"^",3)+1,$P(^(0),"^",4)=$P($G(^(0)),"^",4)+1
|
---|
82 | .D NOW^%DTC S A=A+1,^PSRX(PSORXED("IRXN"),"A",A,0)=%_"^E^"_DUZ_"^0^New Dosing Instructions Added",^PSRX(PSORXED("IRXN"),"A",A,1)="ORIGINAL SIG^" D
|
---|
83 | ..I '$P(^PSRX(PSORXED("IRXN"),"SIG"),"^",2) S $P(^PSRX(PSORXED("IRXN"),"A",A,1),"^",2)=$P(^PSRX(PSORXED("IRXN"),"SIG"),"^") Q
|
---|
84 | ..F I=0:0 S I=$O(^PSRX(PSORXED("IRXN"),"SIG1",I)) Q:'I S ^PSRX(PSORXED("IRXN"),"A",A,2,I,0)=^PSRX(PSORXED("IRXN"),"SIG1",I,0),^PSRX(PSORXED("IRXN"),"A",A,2,0)="^52.34A^"_I_"^"_I
|
---|
85 | .S ^PSRX(PSORXED("IRXN"),"SIG")="^1" K SIG,A,I
|
---|
86 | S ^PSRX(PSORXED("IRXN"),6,0)="^52.0113^"_ENT_"^"_ENT
|
---|
87 | F I=1:1:ENT S ^PSRX(PSORXED("IRXN"),6,I,0)=PSORXED("DOSE",I)_"^"_$G(PSORXED("DOSE ORDERED",I))_"^"_$G(PSORXED("UNITS",I))_"^"_$G(PSORXED("NOUN",I))_"^" D
|
---|
88 | .S ^PSRX(PSORXED("IRXN"),6,I,0)=^PSRX(PSORXED("IRXN"),6,I,0)_$G(PSORXED("DURATION",I))_"^"_$G(PSORXED("CONJUNCTION",I))_"^"_$G(PSORXED("ROUTE",I))_"^"_$G(PSORXED("SCHEDULE",I))_"^"_$G(PSORXED("VERB",I))
|
---|
89 | .I $G(PSORXED("DOSE",I))]"" S ^PSRX(PSORXED("IRXN"),6,I,1)=PSORXED("DOSE",I)
|
---|
90 | S ^PSRX(PSORXED("IRXN"),"POE")=1 G EX
|
---|
91 | Q
|
---|
92 | EX I $D(DUOUT)!($D(DTOUT)) S PSONEW("DFLG")=1
|
---|
93 | ;I $D(DUOUT)!($D(DTOUT)) S:'$G(PSORX("EDIT")) PSONEW("DFLG")=1
|
---|
94 | G:$G(PSOSIGFL)!($G(PSORX("EDIT")))!($G(PSORXED))!($G(PSOREEDT)) EX1
|
---|
95 | K PSORXED("DOSE"),PSORXED("NOUN"),PSORXED("VERB"),PSORXED("DOSE ORDERED"),PSORXED("ROUTE"),SIG,PSORXED("SCHEDULE"),PSORXED("DURATION"),PSORXED("CONJUNCTION"),PSORXED("ODOSE")
|
---|
96 | EX1 K UNITN,STRE,DOSE,DUPD,SCH,VERB,NOUN,DOSEOR,RTE,DUR,X,Y,ENTS,PSOSCH,ENT,PSORTE,DURA,ERTE,ROU
|
---|
97 | KV K DIR,DIRUT,DTOUT,DUOUT
|
---|
98 | Q
|
---|
99 | UPD ;updates dosing array
|
---|
100 | D UPD^PSOORED6
|
---|
101 | Q
|
---|
102 | JUMP ;
|
---|
103 | I $G(PSORXED("SCHEDULE",1))']"" W $C(7),!!,"All Dosing Instructions must be entered before Jumping to other Fields!",!! G @FIELD
|
---|
104 | I $L($E(X,2,99))<3 W !,"Field Name Must Be At Least 3 Characters in Length",! G @FIELD
|
---|
105 | D FNM^PSOOREDX
|
---|
106 | I FLDNM']"" K X,NM,FLDNM W !,"INVALID FIELD NAME. PLEASE TRY AGAIN!",! G @FIELD
|
---|
107 | F AR=1:1:PSORXED("ENT") W !,AR_". "_$P(FLDNM,"^",2)_": "_$S(NM="ROU"&($G(PSORXED($P(FLDNM,"^"),AR))):$P(^PS(51.2,PSORXED($P(FLDNM,"^"),AR),0),"^"),1:$G(PSORXED($P(FLDNM,"^"),AR))) S AR1=AR
|
---|
108 | D KV
|
---|
109 | I $G(PSOFROM)'="NEW",'$G(COPY) S DIR("A",1)="* Indicates which fields will create a New Order"
|
---|
110 | S DIR("A")="Select Field by number",DIR(0)="NO^1:"_AR1 D ^DIR G:$D(DIRUT) @FIELD
|
---|
111 | D JFN^PSOOREDX G:FLDNM="" @FIELD G @FLDNM
|
---|
112 | G EX
|
---|
113 | Q
|
---|
114 | LAN ;
|
---|
115 | Q:'$G(PSODRUG("IEN"))
|
---|
116 | I $G(OR0),'$G(PSONEW("DOSE ORDERED",II)),$P($G(^PS(55,PSODFN,"LAN")),"^") D K QI,QII Q
|
---|
117 | .Q:$G(OTHDOS(II))
|
---|
118 | .F QI=0:0 S QI=$O(^PSDRUG(PSODRUG("IEN"),"DOS2",QI)) Q:'QI D Q:$G(QII)
|
---|
119 | ..Q:$G(PSONEW("DOSE",II))']""
|
---|
120 | ..I PSONEW("DOSE",II)=$P(^PSDRUG(PSODRUG("IEN"),"DOS2",QI,0),"^") S PSONEW("ODOSE",II)=$P(^PSDRUG(PSODRUG("IEN"),"DOS2",QI,0),"^",4),QII=1
|
---|
121 | I $G(Y),$P($G(DOSE(Y)),"^",13)]"" S PSORXED("ODOSE",ENT)=$P(DOSE(Y),"^",13) Q
|
---|
122 | K QII F I=0:0 S I=$O(^PSDRUG(PSODRUG("IEN"),"DOS2",I)) Q:'I I DOSE=$P(^PSDRUG(PSODRUG("IEN"),"DOS2",I,0),"^") D Q:$G(QII)
|
---|
123 | .S PSORXED("ODOSE",ENT)=$P(^PSDRUG(PSODRUG("IEN"),"DOS2",I,0),"^",4),QII=1
|
---|
124 | K QII,I Q
|
---|