1 | FHSP ; HISC/REL/NCA - Standing Orders ;2/13/95 14:30
|
---|
2 | ;;5.5;DIETETICS;**5,8**;Jan 28, 2005;Build 28
|
---|
3 | EN1 ; Enter/Edit Standing Orders
|
---|
4 | K DIC W ! S (DIC,DIE)="^FH(118.3,",DIC(0)="AEQLM",DIC("DR")=".01",DLAYGO=118.3 W ! D ^DIC K DIC,DLAYGO G KIL:U[X!$D(DTOUT),EN1:Y<1
|
---|
5 | S DA=+Y,DR=".01:99" S:$D(^XUSEC("FHMGR",DUZ)) DIDEL=118.3 D ^DIE K DA,DIE,DIDEL,DR G EN1
|
---|
6 | EN2 ; List Standing Orders
|
---|
7 | W ! S L=0,DIC="^FH(118.3,",FLDS=".01,99,1",BY="NAME"
|
---|
8 | S FR="",TO="",DHD="STANDING ORDERS" D EN1^DIP
|
---|
9 | K %ZIS S IOP="" D ^%ZIS G KIL
|
---|
10 | SO ;OutPT SO
|
---|
11 | S FHSOOP=$O(^FHPT(FHDFN,"OP","B",DT-1))
|
---|
12 | I '$D(^FHPT(FHDFN,"OP"))!'$G(FHSOOP) W !!,"** NO OUTPATIENT DATA ON FILE! Please enter outpatient meals from Recurring Meals Menu [FHOMRMGR]." Q
|
---|
13 | W @IOF,!,"Outpatient Recurring Meals... "
|
---|
14 | A0 ;Rec Meal entry.
|
---|
15 | K FHDM14,FHEDI,FHEDIF,FHIEN,FHMIEN,FHFLG,FHCK
|
---|
16 | S FHQ=0
|
---|
17 | S (FHTOTML("B"),FHTOTML("N"),FHTOTML("E"),FHTOTML("A"))=0
|
---|
18 | F FHI=DT-1:0 S FHI=$O(^FHPT("RM",FHI)) Q:FHI'>0!FHQ F FHJ=0:0 S FHJ=$O(^FHPT("RM",FHI,FHDFN,FHJ)) Q:FHJ'>0!FHQ I ($P($G(^FHPT(FHDFN,"OP",FHJ,0)),U,15)'="C") D
|
---|
19 | .S FHDA15=$G(^FHPT(FHDFN,"OP",FHJ,0))
|
---|
20 | .S FHDM14(FHI,$P(FHDA15,U,4))=FHI_U_FHJ
|
---|
21 | .S FHMEAL=$P(FHDA15,U,4),FHLOC=$P(FHDA15,U,3),FHLOCN=$P($G(^FH(119.6,FHLOC,0)),U,1),FHMEAL=$S(FHMEAL="B":"Break",FHMEAL="N":"Noon",1:"Even"),FH11=FHMEAL_" "_FHLOCN
|
---|
22 | .S Y=$P(FHDA15,U,1) X ^DD("DD") S DTP=Y
|
---|
23 | .S (FHCOFLG,FHDATL)=0
|
---|
24 | .I $Y>(IOSL-5) K DIR S DIR(0)="E",DIR("A")="Enter RETURN to Continue or '^' to Quit Listing" D ^DIR W:Y @IOF I 'Y S FHQ=1 Q
|
---|
25 | .W !,DTP,?12,FH11,":"
|
---|
26 | .S FHDATL=$L(DTP)+13+$L(FH11)
|
---|
27 | .F FHSF=0:0 S FHSF=$O(^FHPT(FHDFN,"OP",FHJ,"SP",FHSF)) Q:FHSF'>0 D
|
---|
28 | ..S FHDA15SF=$G(^FHPT(FHDFN,"OP",FHJ,"SP",FHSF,0))
|
---|
29 | ..Q:$P(FHDA15SF,U,6)
|
---|
30 | ..S FHDASFNM=$P($G(^FH(118.3,$P(FHDA15SF,U,2),0)),U,1),FHDASFQT=$P(FHDA15SF,U,8)
|
---|
31 | ..I (FHDATL+$L(FHDASFNM)+3+$L(FHDASFQT))>79 W !,?19 S FHDATL=19
|
---|
32 | ..I (FHDATL>19),(FHCOFLG=1) W ","
|
---|
33 | ..S FHDATL=FHDATL+4+$L(FHDASFNM)+3+$L(FHDASFQT)
|
---|
34 | ..W " ",FHDASFNM," = ",FHDASFQT
|
---|
35 | ..S FHCOFLG=1
|
---|
36 | F FHI=0:0 S FHI=$O(FHDM14(FHI)) Q:FHI'>0 D
|
---|
37 | .F FHJ="B","N","E" Q:FHJ="" D
|
---|
38 | ..I (FHJ="B")&$D(FHDM14(FHI,FHJ)) S FHTOTML("B")=FHTOTML("B")+1,FHIEN(FHJ)=FHDM14(FHI,FHJ)
|
---|
39 | ..I (FHJ="N")&$D(FHDM14(FHI,FHJ)) S FHTOTML("N")=FHTOTML("N")+1,FHIEN(FHJ)=FHDM14(FHI,FHJ)
|
---|
40 | ..I (FHJ="E")&$D(FHDM14(FHI,FHJ)) S FHTOTML("E")=FHTOTML("E")+1,FHIEN(FHJ)=FHDM14(FHI,FHJ)
|
---|
41 | I '$D(FHDM14) W !!,"NO OUTPATIENT DATA ON FILE for today's date and the future!!",! Q
|
---|
42 | ;
|
---|
43 | R1 S (FHCNSOF,FH1,FHQ)=0,(FHDTML,FHX,FHALML)="" R !!,"Enter a Meal (B,N,E or ALL): ALL// ",FHDTML:DTIME
|
---|
44 | Q:'$T!(FHDTML["^")
|
---|
45 | S:FHDTML="" FHDTML="ALL"
|
---|
46 | I FHDTML["?" S FHQ=1 G MS1
|
---|
47 | S X=FHDTML D TR^FH S (FHX,FHDTML)=X
|
---|
48 | I FHDTML="A" S FHQ=1 G MS1
|
---|
49 | S FHALML=FHX
|
---|
50 | I FHDTML="ALL" S FHDTML=$E(FHDTML,1),FHALML="BNE"
|
---|
51 | I $L(FHDTML)=3 S:("BNE")'[$E(FHDTML,1) FHQ=1 S:("BNE")'[$E(FHDTML,2) FHQ=1 S:("BNE")'[$E(FHDTML,3) FHQ=1 S FHCK($E(FHDTML,1))="",FHCK($E(FHDTML,2))="",FHCK($E(FHDTML,3))=""
|
---|
52 | I $L(FHDTML)=2 S:("BNE")'[$E(FHDTML,1) FHQ=1 S:("BNE")'[$E(FHDTML,2) FHQ=1 S FHCK($E(FHDTML,1))="",FHCK($E(FHDTML,2))=""
|
---|
53 | I $L(FHDTML)=1 S:("ABNE")'[$E(FHDTML,1) FHQ=1 S FHCK(FHDTML)=""
|
---|
54 | I FHDTML="A" S (FHCK("B"),FHCK("N"),FHCK("E"))=""
|
---|
55 | S:$L(FHDTML)>3 FHQ=1
|
---|
56 | G:FHQ MS1
|
---|
57 | I $L(FHDTML)=3 S:'$G(FHTOTML($E(FHDTML,1))) FH1=1 S:'$G(FHTOTML($E(FHDTML,2))) FH1=1 S:'$G(FHTOTML($E(FHDTML,3))) FH1=1 I FH1 W !!,"There is no outpatient data for this Meal!!" G R1
|
---|
58 | I $L(FHDTML)=2 S:'$G(FHTOTML($E(FHDTML,1))) FH1=1 S:'$G(FHTOTML($E(FHDTML,2))) FH1=1 I FH1 W !!,"There is no outpatient data for this Meal!!" G R1
|
---|
59 | MS1 I FHQ W *7,!,"Select B for Breakfast, N for Noon, E for Evening or ALL for all meals",!,"Answer may be multiple meals, e.g., BN or NE" G R1
|
---|
60 | S:$L(FHDTML)>1 FHDTML="A"
|
---|
61 | S FHLIS=0
|
---|
62 | I (FHDTML'="A"),(FHTOTML(FHDTML)'>0) W !!,"There is no outpatient data for this Meal!!" G R1
|
---|
63 | I FHDTML'="A",(FHTOTML(FHDTML)=1) S FHEDI($P(FHIEN(FHDTML),U,2))="" G E0
|
---|
64 | I FHDTML="A" G ALL
|
---|
65 | I FHDTML'="A",(FHTOTML(FHDTML)>1) D CHK^FHSPED Q:'$G(FHFLG) ;quit dates are not entered for range.
|
---|
66 | I $G(FHFLG) F FHI=FHDT1-1:0 S FHI=$O(FHDM14(FHI)) Q:(FHI'>0)!(FHI>FHDT2) S:$D(FHDM14(FHI,FHDTML)) FHEDI($P(FHDM14(FHI,FHDTML),U,2))=""
|
---|
67 | G E0
|
---|
68 | ALL S FHCT=0,(FHDT1,FHDT2,FHDTSV)=DT F FHI=DT-1:0 S FHI=$O(FHDM14(FHI)) S:'FHI FHDT2=FHDTSV Q:FHI'>0 S FHCT=FHCT+1,FHDTSV=FHI S:FHCT=1 FHDT1=FHI S FHJ="" F S FHJ=$O(FHDM14(FHI,FHJ)) Q:FHJ="" S FHEDI($P(FHDM14(FHI,FHJ),U,2))=""
|
---|
69 | E0 S ADM=0
|
---|
70 | E1 W ! S FHLOCN="",ADM=$O(FHEDI(ADM)) Q:'ADM S NO=1,MEAL=$P($G(^FHPT(FHDFN,"OP",ADM,0)),U,4),FHLOC=$P($G(^(0)),U,3)
|
---|
71 | I FHX'="ALL",FHX'[MEAL G E1
|
---|
72 | I $G(FHLOC) S FHLOCN=$P($G(^FH(119.6,FHLOC,0)),U,1)
|
---|
73 | D LIS G:'LN N1
|
---|
74 | K DIR W ! S DIR(0)="YA",DIR("A")="Edit a Standing Order? ",DIR("B")="YES" D ^DIR K DIR Q:$D(DIRUT)!$D(DIROUT) G N1:Y<1
|
---|
75 | N0 R !!,"Edit which Order #? ",X:DTIME Q:'$T!("^"[X) I X'?1N.N!(X<1)!(X>LN) W *7," Enter # of Order to Edit" G N0
|
---|
76 | S SP=$P(LS,",",+X),SP=$P($G(^FHPT(FHDFN,"OP",ADM,"SP",+SP,0)),"^",2) I $D(P(+X,SP)) S LN=+X G N1A
|
---|
77 | W !!,"Standing Order ",$P($G(^FH(118.3,+SP,0)),"^",1)," added" S LN=LN+1,P(LN,SP)="" G N1A
|
---|
78 | N1 K DIC W ! S DIC="^FH(118.3,",DIC("A")="Enter Standing Order: ",DIC(0)="AEQM"
|
---|
79 | D ^DIC K DIC,DLAYGO Q:"^"[X!$D(DTOUT) G SO:Y<1 S SP=+Y
|
---|
80 | W !!,"Standing Order ",$P($G(^FH(118.3,+SP,0)),"^",1)," added"
|
---|
81 | S LN=LN+1,P(LN,SP)=""
|
---|
82 | N1A W !,"Standing Order: ",$P($G(^FH(118.3,+SP,0)),"^",1)_" // " R X:DTIME G KIL:'$T
|
---|
83 | I X="^" G E0
|
---|
84 | I X="@" D SO3 W " .. Done" G E0
|
---|
85 | I X'="" W *7,!,"Press Return to take Default or ""@"" to Delete" G N1A
|
---|
86 | S $P(P(LN,SP),"^",5)=SP
|
---|
87 | N2 ;
|
---|
88 | S $P(P(LN,SP),"^",6)=MEAL
|
---|
89 | N2A W !,"Quantity: ",$S($P(P(LN,SP),"^",4):$P(P(LN,SP),"^",4)_"// ",1:"1// ") R NUM:DTIME S:NUM="" NUM=$S($P(P(LN,SP),"^",4):$P(P(LN,SP),"^",4),1:1) G:'$T!(NUM="^") KIL
|
---|
90 | I NUM="@" S $P(P(LN,SP),"^",4)="" G N2A
|
---|
91 | I NUM'?1N!(NUM<1) W !,*7,"Enter a number from 1-9." G N2A
|
---|
92 | S $P(P(LN,SP),"^",7)=NUM
|
---|
93 | S C1=$P(P(LN,SP),"^",2,4),C2=$P(P(LN,SP),"^",5,7)
|
---|
94 | Q:C1=C2
|
---|
95 | N3 W !!,"ADD this Order? Y// " R YN:DTIME G:'$T!(YN="^") KIL S:YN="" YN="Y" S X=YN D TR^FH S YN=X I $P("YES",YN,1)'="",$P("NO",YN,1)'="" W *7," Answer YES or NO" G N3
|
---|
96 | Q:YN?1"N".E
|
---|
97 | I C1'="^^" S OLD=$P(P(LN,SP),"^",1),$P(^FHPT(FHDFN,"OP",ADM,"SP",OLD,0),"^",6,7)=NOW_"^"_DUZ K ^FHPT("ASPO",FHDFN,ADM,OLD) D
|
---|
98 | .S DTP=$P($G(^FHPT(FHDFN,"OP",ADM,0)),U,1) D DTP^FH
|
---|
99 | .S FHACT="O",FHTXT="Outpatient Standing Order: "_NUM_" "_$P($G(^FH(118.3,SP,0)),U,1)_" ("_MEAL_"), "_FHLOCN_", "_DTP D OPFILE^FHORX Q
|
---|
100 | S $P(P(LN,SP),"^",2,4)="^^",$P(P(LN,SP),"^",2,4)=$P(P(LN,SP),"^",5,7),$P(P(LN,SP),"^",5,7)="^^"
|
---|
101 | ADD ; Add SO
|
---|
102 | F FHI=0:0 S FHI=$O(FHEDI(FHI)) Q:FHI'>0 S ADM=FHI D AD1
|
---|
103 | D EVNT^FHSP1
|
---|
104 | G E0
|
---|
105 | AD1 L +^FHPT(FHDFN,"OP",ADM,"SP",0)
|
---|
106 | S FHLOCN="" S:'$D(FHCNSOF) FHCNSOF=0
|
---|
107 | S MEAL=$P($G(^FHPT(FHDFN,"OP",ADM,0)),U,4) Q:'$D(FHCK(MEAL))
|
---|
108 | S FHLOC=$P($G(^(0)),U,3) I $G(FHLOC) S FHLOCN=$P($G(^FH(119.6,FHLOC,0)),U,1)
|
---|
109 | I '$D(^FHPT(FHDFN,"OP",ADM,"SP",0)) S ^FHPT(FHDFN,"OP",ADM,"SP",0)="^115.1626^^"
|
---|
110 | S X=^FHPT(FHDFN,"OP",ADM,"SP",0),NO=$P(X,"^",3)+1,^(0)=$P(X,"^",1,2)_"^"_NO_"^"_($P(X,"^",4)+1)
|
---|
111 | L -^FHPT(FHDFN,"OP",ADM,"SP",0) I $D(^FHPT(FHDFN,"OP",ADM,"SP",NO)) G AD1
|
---|
112 | S ^FHPT(FHDFN,"OP",ADM,"SP",NO,0)=NO_"^"_SP_"^"_MEAL_"^"_NOW_"^"_DUZ_"^^^"_NUM,^FHPT("ASPO",FHDFN,ADM,NO)="",LS=LS_NO_","
|
---|
113 | S $P(P(LN,SP),"^",1)=NO
|
---|
114 | S DTP=$P($G(^FHPT(FHDFN,"OP",ADM,0)),U,1) D DTP^FH S FHCNSOF=FHCNSOF+1 S:FHCNSOF=1 FHDTP=DTP
|
---|
115 | Q
|
---|
116 | SO2 ; SO Inquiry
|
---|
117 | Q:'$G(ADM)
|
---|
118 | S ALL=1 D ^FHOMDPA G:'FHDFN KIL S NO=0 D LIS G SO2
|
---|
119 | SO3 ; Cancel SO
|
---|
120 | S (FHLOCN,FHDTP)="" S:'$D(FHCNSOF) FHCNSOF=0
|
---|
121 | F FHI=0:0 S FHI=$O(FHEDI(FHI)) Q:FHI'>0 S ADM=FHI D
|
---|
122 | .S MEAL=$P($G(^FHPT(FHDFN,"OP",ADM,0)),U,4) Q:'$D(FHCK(MEAL))
|
---|
123 | .S FHLOCN=""
|
---|
124 | .S FHLOC=$P($G(^FHPT(FHDFN,"OP",ADM,0)),U,3) I $G(FHLOC) S FHLOCN=$P($G(^FH(119.6,FHLOC,0)),U,1)
|
---|
125 | .F FHJ=0:0 S FHJ=$O(^FHPT(FHDFN,"OP",ADM,"SP",FHJ)) Q:FHJ'>0 D
|
---|
126 | ..S SPD=$P($G(^FHPT(FHDFN,"OP",ADM,"SP",FHJ,0)),U,2)
|
---|
127 | ..S NO=""
|
---|
128 | ..I SP=SPD,$P($G(^FHPT(FHDFN,"OP",ADM,"SP",FHJ,0)),U,6)="" S NO=FHJ
|
---|
129 | ..Q:'NO
|
---|
130 | ..S $P(^FHPT(FHDFN,"OP",ADM,"SP",NO,0),"^",6,7)=NOW_"^"_DUZ
|
---|
131 | ..S X=^FHPT(FHDFN,"OP",ADM,"SP",NO,0),SP=$P(X,"^",2),MEAL=$P(X,"^",3),NUM=$P(X,"^",8)
|
---|
132 | ..K ^FHPT("ASPO",FHDFN,ADM,NO),P(LN,SP)
|
---|
133 | ..S DTP=$P($G(^FHPT(FHDFN,"OP",ADM,0)),U,1) D DTP^FH S FHDTP=DTP
|
---|
134 | S:'$D(FHDTP) FHDTP=DT
|
---|
135 | I $D(FHDT1) S DTP=FHDT1 D DTP^FH S FHDTP=DTP
|
---|
136 | I $D(FHDT2) S DTP=FHDT2 D DTP^FH S:FHDTP'=DTP FHDTP=FHDTP_" to "_DTP
|
---|
137 | S FHACT="C",FHTXT="Outpatient Standing Order: "_$P($G(^FH(118.3,SP,0)),U,1)_" ("_FHALML_"), "_FHLOCN_", Cancelled "_FHDTP D OPFILE^FHORX
|
---|
138 | Q
|
---|
139 | LIS ;list outpt SO
|
---|
140 | Q:'$G(ADM)
|
---|
141 | D PATNAME^FHOMUTL
|
---|
142 | S FHDATA0=$G(^FHPT(FHDFN,"OP",ADM,0))
|
---|
143 | S DTP=$P(FHDATA0,U,1) D DTP^FH S FHDTST=DTP
|
---|
144 | S NAM=FHPTNM,Y="",(FHDIETP,FHDIET,WARD)=""
|
---|
145 | S FHDIET=$P(FHDATA0,U,2) I $D(^FH(119.6,$P(FHDATA0,U,3),0)) S WARD=$P(^FH(119.6,$P(FHDATA0,U,3),0),U,1)
|
---|
146 | I $G(FHDIET) S Y=$P(^FH(111,FHDIET,0),U,1)
|
---|
147 | I FHDIET="" S FHRNUM=ADM D DIETPAT^FHOMRR1 S:$D(FHDIETP) Y=FHDIETP
|
---|
148 | W !!,NAM," " W:WARD'="" "( ",WARD," )" W:$D(FHDTST) ?40,"Date: ",FHDTST
|
---|
149 | W !!,"Current Diet: ",$S(Y'="":Y,1:"No current order")
|
---|
150 | D ALG^FHCLN W !," Allergies: ",$S(ALG="":"None on file",1:ALG)
|
---|
151 | K N,P S CTR=0
|
---|
152 | F K=0:0 S K=$O(^FHPT("ASPO",FHDFN,ADM,K)) Q:K<1 S X=^FHPT(FHDFN,"OP",ADM,"SP",K,0),M=$P(X,"^",3),M=$S(M="BNE":"A",1:$E(M,1)),N(M,K)=$P(X,"^",2,3)_"^"_$P(X,"^",8,9)
|
---|
153 | S FHSOFG=1
|
---|
154 | S LN=0,LS="" I $O(N(""))="" W !!,"No Active Outpatient Standing Orders." Q
|
---|
155 | W !!,"Active Outpatient Standing Orders: ",!
|
---|
156 | F M="A","B","N","E" D
|
---|
157 | .F K=0:0 S K=$O(N(M,K)) Q:K<1 S Z=+N(M,K) I Z D
|
---|
158 | ..S LN=LN+1,LS=LS_K_"," D L1 W ! W:NO $J(LN,2)
|
---|
159 | ..S NUM=$P(N(M,K),"^",3)
|
---|
160 | ..W ?5,M2,?18,$S(NUM:NUM,1:1)," ",$P(^FH(118.3,Z,0),"^",1)_$S($P(N(M,K),"^",4)'="Y":" (I)",1:"") I $G(^FH(118.3,Z,"I"))="Y" W " (** INACTIVE **)"
|
---|
161 | ..S P(LN,+Z)=K_"^"_$P(N(M,K),"^",1,3) Q
|
---|
162 | Q
|
---|
163 | L1 ; Store SO
|
---|
164 | S M1=$P(N(M,K),"^",2) I M1="BNE" S M2="All Meals" Q
|
---|
165 | S L=$E(M1,1),M2=$S(L="B":"Break",L="N":"Noon",1:"Even")
|
---|
166 | S L=$E(M1,2) Q:L="" S M2=M2_","_$S(L="B":"Break",L="N":"Noon",1:"Even") Q
|
---|
167 | Q
|
---|
168 | KIL G KILL^XUSCLEAN
|
---|