[613] | 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
|
---|