Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: FHWOR6

FHWOR6.m

Go to the documentation of this file.
  1. FHWOR6 ; HISC/NCA - Update Orderable Items For Master File ;5/2/00 10:07
  1. ;;5.5;DIETETICS;**5**;Jan 28, 2005;Build 53
  1. UPDATE ; Update Diet Orders and Tubefeedings
  1. K MSG
  1. I TYP="D" D CHKD
  1. I TYP="T" D CHKT
  1. K ACT,FILE,FILNM,K,NAM,N1,N2,PREC,STR,STR1,SYN,Z1
  1. I $D(MSG) D SEND
  1. Q
  1. CHKD ; Check which Diet Order transactions
  1. S FILE="111",FILNM=$P($G(^FH(111,0)),"^",1)
  1. I $P(IEN,"^",3) S CHK=1,IEN=+IEN D PROCD S CHK=0 D CHKI Q
  1. S IEN=+IEN
  1. I $G(^FH(111,IEN,0))="" S CHK=2 D PROCD Q
  1. I NOD1'=$P($G(^FH(111,IEN,0)),"^",1,4) S CHK=3 D PROCD S CHK=0
  1. 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
  1. S STR1="" F IEN1=0:0 S IEN1=$O(^TMP($J,"FHNOD3",IEN1)) Q:IEN1<1 S:STR1'="" STR1=STR1_"," S STR1=STR1_IEN1
  1. I $L(STR,",")'=$L(STR1,",") S CHK=3 D PROCD S CHK=0 D CHKI Q
  1. I STR'=STR1 S CHK=3 D PROCD S CHK=0 D CHKI Q
  1. F K=1:1 Q:$P(STR1,",",K)="" S IEN1=$P(STR,",",K) D CHKD1
  1. CHKI I NOD2'="Y",$G(^FH(111,IEN,"I"))="Y" S CHK=4 D PROCD Q
  1. I NOD2="Y",$G(^FH(111,IEN,"I"))'="Y" S CHK=5 D PROCD Q
  1. Q
  1. CHKD1 I 'IEN1 S CHK=3 D PROCD S CHK=0 Q
  1. I $G(^FH(111,IEN,"AN",IEN1,0))'=$G(^TMP($J,"FHNOD3",($P(STR1,",",K)))) S CHK=3 D PROCD S CHK=0
  1. Q
  1. PROCD ; Process Diet Order Msg.
  1. Q:'CHK
  1. I REC D CODE^FHWORI S REC=0,N1=2
  1. S Z1=$S($G(^FH(111,IEN,0))'="":$G(^FH(111,IEN,0)),1:$P(NOD1,"^",1,4))
  1. G ADD:CHK=1,DLD:CHK=2,UPD:CHK=3,DCD:CHK=4,ACD:CHK=5
  1. Q
  1. CHKT ; Check which Tubefeeding Transactions
  1. S FILE="118.2",FILNM=$P($G(^FH(118.2,0)),"^",1)
  1. I $P(IEN,"^",3) S CHK=1 S IEN=+IEN D PROCT S CHK=0 D CHKIN Q
  1. S IEN=+IEN
  1. I $G(^FH(118.2,IEN,0))="" S CHK=2 D PROCT Q
  1. I NOD1'=$P($G(^FH(118.2,IEN,0)),"^",1) S CHK=3 D PROCT S CHK=0 D CHKIN Q
  1. 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
  1. S STR1="" F IEN1=0:0 S IEN1=$O(^TMP($J,"FHNOD2",IEN1)) Q:IEN1<1 S:STR1'="" STR1=STR1_"," S STR1=STR1_IEN1
  1. I $L(STR,",")'=$L(STR1,",") S CHK=3 D PROCT S CHK=0 D CHKIN Q
  1. I STR'=STR1 S CHK=3 D PROCT S CHK=0 D CHKIN Q
  1. F K=1:1 Q:$P(STR1,",",K)="" S IEN1=$P(STR,",",K) D CHKT1
  1. CHKIN ; Check if more than one transaction
  1. I NOD3'="Y",$G(^FH(118.2,IEN,"I"))="Y" S CHK=4 D PROCT Q
  1. I NOD3="Y",$G(^FH(118.2,IEN,"I"))'="Y" S CHK=5 D PROCT Q
  1. Q
  1. CHKT1 I 'IEN1 S CHK=3 D PROCT S CHK=0 Q
  1. I $G(^FH(118.2,IEN,1,IEN1,0))'=$G(^TMP($J,"FHNOD2",($P(STR1,",",K)))) S CHK=3 D PROCT S CHK=0
  1. Q
  1. PROCT ; Process Tubefeeding Msg.
  1. Q:'CHK
  1. I REC D CODE^FHWORI S REC=0,N1=2
  1. S Z1=$S($G(^FH(118.2,IEN,0))'="":$G(^FH(118.2,IEN,0)),1:NOD1)
  1. G ADT:CHK=1,DLT:CHK=2,UPT:CHK=3,DCT:CHK=4,ACT:CHK=5
  1. Q
  1. ADD ; Code Add Diet Order
  1. S ACT="MAD" G DO
  1. DLD ; Code Delete Diet Order
  1. S ACT="MDL" G DO
  1. UPD ; Code Update Diet Order
  1. S ACT="MUP" G DO
  1. DCD ; Code Deactivate Diet Order
  1. S ACT="MDC" G DO
  1. ACD ; Code Reactivate Deactivated Diet Order
  1. S ACT="MAC" G DO
  1. ADT ; Code Add Tubefeeding
  1. S ACT="MAD" G TF
  1. DLT ; Code Delete Tubefeeding
  1. S ACT="MDL" G TF
  1. UPT ; Code Update Tubefeeding
  1. S ACT="MUP" G TF
  1. DCT ; Code Deactive Tubefeeding
  1. S ACT="MDC" G TF
  1. ACT ; Code Reactivate Deactivated Tubefeeding
  1. S ACT="MAC" G TF
  1. DO ; Code Diet Order MFE, ZFH, and ZSY
  1. S NAM=$P(Z1,"^",1) Q:NAM="" S PREC=$P(Z1,"^",4) Q:'PREC
  1. S SYN=$P(Z1,"^",2),N1=N1+1
  1. S MSG(N1)="MFE|"_ACT_"|||^^^"_IEN_"^"_NAM_"^99FHD"
  1. S N1=N1+1,MSG(N1)="ZFH|D|"_PREC_"||"_$P(Z1,"^",3)
  1. I $G(^FH(111,IEN,0))="" S FHK=0 D Q
  1. .F IEN1=0:0 S IEN1=$O(^TMP($J,"FHNOD3",IEN1)) Q:IEN1<1 S FHK=IEN1 D
  1. ..S SYN1=$G(^TMP($J,"FHNOD3",IEN1)) I SYN1'="" S N1=N1+1,MSG(N1)="ZSY|"_IEN1_"|"_SYN1 Q
  1. .I SYN'="" S N1=N1+1,MSG(N1)="ZSY|"_(FHK+1)_"|"_SYN
  1. .Q
  1. S FHK=0 F IEN1=0:0 S IEN1=$O(^FH(111,IEN,"AN",IEN1)) Q:IEN1<1 S SYN1=$G(^(IEN1,0)) D
  1. .S FHK=IEN1,SYN1=$P(SYN1,"^",1) I SYN1'="" S N1=N1+1,MSG(N1)="ZSY|"_IEN1_"|"_SYN1 Q
  1. I SYN'="" S N1=N1+1,MSG(N1)="ZSY|"_(FHK+1)_"|"_SYN
  1. Q
  1. TF ; Code Tubefeeding MFE, ZFH, and ZSY
  1. S NAM=$P(Z1,"^",1) Q:NAM="" S N1=N1+1
  1. S MSG(N1)="MFE|"_ACT_"|||^^^"_IEN_"^"_NAM_"^99FHT"
  1. S N1=N1+1,MSG(N1)="ZFH|T|"
  1. I $G(^FH(118.2,IEN,0))="" D Q
  1. .F IEN1=0:0 S IEN1=$O(^TMP($J,"FHNOD2",IEN1)) Q:IEN1<1 D
  1. ..S SYN=$G(^TMP($J,"FHNOD2",IEN1)) I SYN'="" D
  1. ..S N1=N1+1
  1. ..S MSG(N1)="ZSY|"_IEN1_"|"_SYN Q
  1. .Q
  1. F IEN1=0:0 S IEN1=$O(^FH(118.2,IEN,1,IEN1)) Q:IEN1<1 S SYN=$G(^(IEN1,0)) D
  1. .S SYN=$P(SYN,"^",1) Q:SYN="" S N1=N1+1
  1. .S MSG(N1)="ZSY|"_IEN1_"|"_SYN Q
  1. Q
  1. SEND ; Send Message to OE/RR
  1. D MSG^XQOR("FH ORDERABLE ITEM UPDATE",.MSG)
  1. K MSG Q