| 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
 | 
|---|