1 | FHWOR6 ; HISC/NCA - Update Orderable Items For Master File ;5/2/00 10:07
|
---|
2 | ;;5.5;DIETETICS;**5**;Jan 28, 2005;Build 53
|
---|
3 | UPDATE ; Update Diet Orders and Tubefeedings
|
---|
4 | K MSG
|
---|
5 | I TYP="D" D CHKD
|
---|
6 | I TYP="T" D CHKT
|
---|
7 | K ACT,FILE,FILNM,K,NAM,N1,N2,PREC,STR,STR1,SYN,Z1
|
---|
8 | I $D(MSG) D SEND
|
---|
9 | Q
|
---|
10 | CHKD ; Check which Diet Order transactions
|
---|
11 | S FILE="111",FILNM=$P($G(^FH(111,0)),"^",1)
|
---|
12 | I $P(IEN,"^",3) S CHK=1,IEN=+IEN D PROCD S CHK=0 D CHKI Q
|
---|
13 | S IEN=+IEN
|
---|
14 | I $G(^FH(111,IEN,0))="" S CHK=2 D PROCD Q
|
---|
15 | I NOD1'=$P($G(^FH(111,IEN,0)),"^",1,4) S CHK=3 D PROCD S CHK=0
|
---|
16 | S STR="" F IEN1=0:0 S IEN1=$O(^FH(111,IEN,"AN",IEN1)) Q:IEN1<1 S:STR'="" STR=STR_"," S STR=STR_IEN1
|
---|
17 | S STR1="" F IEN1=0:0 S IEN1=$O(^TMP($J,"FHNOD3",IEN1)) Q:IEN1<1 S:STR1'="" STR1=STR1_"," S STR1=STR1_IEN1
|
---|
18 | I $L(STR,",")'=$L(STR1,",") S CHK=3 D PROCD S CHK=0 D CHKI Q
|
---|
19 | I STR'=STR1 S CHK=3 D PROCD S CHK=0 D CHKI Q
|
---|
20 | F K=1:1 Q:$P(STR1,",",K)="" S IEN1=$P(STR,",",K) D CHKD1
|
---|
21 | CHKI I NOD2'="Y",$G(^FH(111,IEN,"I"))="Y" S CHK=4 D PROCD Q
|
---|
22 | I NOD2="Y",$G(^FH(111,IEN,"I"))'="Y" S CHK=5 D PROCD Q
|
---|
23 | Q
|
---|
24 | CHKD1 I 'IEN1 S CHK=3 D PROCD S CHK=0 Q
|
---|
25 | I $G(^FH(111,IEN,"AN",IEN1,0))'=$G(^TMP($J,"FHNOD3",($P(STR1,",",K)))) S CHK=3 D PROCD S CHK=0
|
---|
26 | Q
|
---|
27 | PROCD ; Process Diet Order Msg.
|
---|
28 | Q:'CHK
|
---|
29 | I REC D CODE^FHWORI S REC=0,N1=2
|
---|
30 | S Z1=$S($G(^FH(111,IEN,0))'="":$G(^FH(111,IEN,0)),1:$P(NOD1,"^",1,4))
|
---|
31 | G ADD:CHK=1,DLD:CHK=2,UPD:CHK=3,DCD:CHK=4,ACD:CHK=5
|
---|
32 | Q
|
---|
33 | CHKT ; Check which Tubefeeding Transactions
|
---|
34 | S FILE="118.2",FILNM=$P($G(^FH(118.2,0)),"^",1)
|
---|
35 | I $P(IEN,"^",3) S CHK=1 S IEN=+IEN D PROCT S CHK=0 D CHKIN Q
|
---|
36 | S IEN=+IEN
|
---|
37 | I $G(^FH(118.2,IEN,0))="" S CHK=2 D PROCT Q
|
---|
38 | I NOD1'=$P($G(^FH(118.2,IEN,0)),"^",1) S CHK=3 D PROCT S CHK=0 D CHKIN Q
|
---|
39 | S STR="" F IEN1=0:0 S IEN1=$O(^FH(118.2,IEN,1,IEN1)) Q:IEN1<1 S:STR'="" STR=STR_"," S STR=STR_IEN1
|
---|
40 | S STR1="" F IEN1=0:0 S IEN1=$O(^TMP($J,"FHNOD2",IEN1)) Q:IEN1<1 S:STR1'="" STR1=STR1_"," S STR1=STR1_IEN1
|
---|
41 | I $L(STR,",")'=$L(STR1,",") S CHK=3 D PROCT S CHK=0 D CHKIN Q
|
---|
42 | I STR'=STR1 S CHK=3 D PROCT S CHK=0 D CHKIN Q
|
---|
43 | F K=1:1 Q:$P(STR1,",",K)="" S IEN1=$P(STR,",",K) D CHKT1
|
---|
44 | CHKIN ; Check if more than one transaction
|
---|
45 | I NOD3'="Y",$G(^FH(118.2,IEN,"I"))="Y" S CHK=4 D PROCT Q
|
---|
46 | I NOD3="Y",$G(^FH(118.2,IEN,"I"))'="Y" S CHK=5 D PROCT Q
|
---|
47 | Q
|
---|
48 | CHKT1 I 'IEN1 S CHK=3 D PROCT S CHK=0 Q
|
---|
49 | I $G(^FH(118.2,IEN,1,IEN1,0))'=$G(^TMP($J,"FHNOD2",($P(STR1,",",K)))) S CHK=3 D PROCT S CHK=0
|
---|
50 | Q
|
---|
51 | PROCT ; Process Tubefeeding Msg.
|
---|
52 | Q:'CHK
|
---|
53 | I REC D CODE^FHWORI S REC=0,N1=2
|
---|
54 | S Z1=$S($G(^FH(118.2,IEN,0))'="":$G(^FH(118.2,IEN,0)),1:NOD1)
|
---|
55 | G ADT:CHK=1,DLT:CHK=2,UPT:CHK=3,DCT:CHK=4,ACT:CHK=5
|
---|
56 | Q
|
---|
57 | ADD ; Code Add Diet Order
|
---|
58 | S ACT="MAD" G DO
|
---|
59 | DLD ; Code Delete Diet Order
|
---|
60 | S ACT="MDL" G DO
|
---|
61 | UPD ; Code Update Diet Order
|
---|
62 | S ACT="MUP" G DO
|
---|
63 | DCD ; Code Deactivate Diet Order
|
---|
64 | S ACT="MDC" G DO
|
---|
65 | ACD ; Code Reactivate Deactivated Diet Order
|
---|
66 | S ACT="MAC" G DO
|
---|
67 | ADT ; Code Add Tubefeeding
|
---|
68 | S ACT="MAD" G TF
|
---|
69 | DLT ; Code Delete Tubefeeding
|
---|
70 | S ACT="MDL" G TF
|
---|
71 | UPT ; Code Update Tubefeeding
|
---|
72 | S ACT="MUP" G TF
|
---|
73 | DCT ; Code Deactive Tubefeeding
|
---|
74 | S ACT="MDC" G TF
|
---|
75 | ACT ; Code Reactivate Deactivated Tubefeeding
|
---|
76 | S ACT="MAC" G TF
|
---|
77 | DO ; Code Diet Order MFE, ZFH, and ZSY
|
---|
78 | S NAM=$P(Z1,"^",1) Q:NAM="" S PREC=$P(Z1,"^",4) Q:'PREC
|
---|
79 | S SYN=$P(Z1,"^",2),N1=N1+1
|
---|
80 | S MSG(N1)="MFE|"_ACT_"|||^^^"_IEN_"^"_NAM_"^99FHD"
|
---|
81 | S N1=N1+1,MSG(N1)="ZFH|D|"_PREC_"||"_$P(Z1,"^",3)
|
---|
82 | I $G(^FH(111,IEN,0))="" S FHK=0 D Q
|
---|
83 | .F IEN1=0:0 S IEN1=$O(^TMP($J,"FHNOD3",IEN1)) Q:IEN1<1 S FHK=IEN1 D
|
---|
84 | ..S SYN1=$G(^TMP($J,"FHNOD3",IEN1)) I SYN1'="" S N1=N1+1,MSG(N1)="ZSY|"_IEN1_"|"_SYN1 Q
|
---|
85 | .I SYN'="" S N1=N1+1,MSG(N1)="ZSY|"_(FHK+1)_"|"_SYN
|
---|
86 | .Q
|
---|
87 | S FHK=0 F IEN1=0:0 S IEN1=$O(^FH(111,IEN,"AN",IEN1)) Q:IEN1<1 S SYN1=$G(^(IEN1,0)) D
|
---|
88 | .S FHK=IEN1,SYN1=$P(SYN1,"^",1) I SYN1'="" S N1=N1+1,MSG(N1)="ZSY|"_IEN1_"|"_SYN1 Q
|
---|
89 | I SYN'="" S N1=N1+1,MSG(N1)="ZSY|"_(FHK+1)_"|"_SYN
|
---|
90 | Q
|
---|
91 | TF ; Code Tubefeeding MFE, ZFH, and ZSY
|
---|
92 | S NAM=$P(Z1,"^",1) Q:NAM="" S N1=N1+1
|
---|
93 | S MSG(N1)="MFE|"_ACT_"|||^^^"_IEN_"^"_NAM_"^99FHT"
|
---|
94 | S N1=N1+1,MSG(N1)="ZFH|T|"
|
---|
95 | I $G(^FH(118.2,IEN,0))="" D Q
|
---|
96 | .F IEN1=0:0 S IEN1=$O(^TMP($J,"FHNOD2",IEN1)) Q:IEN1<1 D
|
---|
97 | ..S SYN=$G(^TMP($J,"FHNOD2",IEN1)) I SYN'="" D
|
---|
98 | ..S N1=N1+1
|
---|
99 | ..S MSG(N1)="ZSY|"_IEN1_"|"_SYN Q
|
---|
100 | .Q
|
---|
101 | F IEN1=0:0 S IEN1=$O(^FH(118.2,IEN,1,IEN1)) Q:IEN1<1 S SYN=$G(^(IEN1,0)) D
|
---|
102 | .S SYN=$P(SYN,"^",1) Q:SYN="" S N1=N1+1
|
---|
103 | .S MSG(N1)="ZSY|"_IEN1_"|"_SYN Q
|
---|
104 | Q
|
---|
105 | SEND ; Send Message to OE/RR
|
---|
106 | D MSG^XQOR("FH ORDERABLE ITEM UPDATE",.MSG)
|
---|
107 | K MSG Q
|
---|