| 1 | FH55P5 ;ALB/TDP - POST-INIT FOR PATCH FH*5.5*5 ;12/13/2005 | 
|---|
| 2 | ;;5.5;DIETETICS;**5**;Jan 28, 2005;Build 53 | 
|---|
| 3 | Q | 
|---|
| 4 | POST ; | 
|---|
| 5 | D BMES^XPDUTL("Searching for DIETS (#111) file entries which are out of sync with the") | 
|---|
| 6 | D MES^XPDUTL("   corresponding entry in the ORDERABLE ITEM (#101.43) file...") | 
|---|
| 7 | D DIET | 
|---|
| 8 | D BMES^XPDUTL("Searching for TUBEFEEDING (#118.2) file entries which are out of sync with") | 
|---|
| 9 | D MES^XPDUTL("   the corresponding entry in the ORDERABLE ITEM (#101.43) file...") | 
|---|
| 10 | D TF | 
|---|
| 11 | D BMES^XPDUTL("Searching for DIET PATTERN (#111.1) names which are out of sync with") | 
|---|
| 12 | D MES^XPDUTL("   corresponding DIET ABBREVIATED LABELS...") | 
|---|
| 13 | D UPDPAT | 
|---|
| 14 | D BMES^XPDUTL("Post-init complete.") | 
|---|
| 15 | Q | 
|---|
| 16 | ; | 
|---|
| 17 | DIET ; | 
|---|
| 18 | N DIFF,FH0,FHACT,FHFILE,FHFLNM,FHIEN,FHIEN1,FHINACT | 
|---|
| 19 | N FHNM,FHORIEN,FHSYN,FHTYP | 
|---|
| 20 | K ^TMP($J,"FH55P5_nutrition"),^TMP($J,"FH55P5_order") | 
|---|
| 21 | S FHTYP="D" | 
|---|
| 22 | S FHFILE="111",FHFLNM=$P($G(^FH(111,0)),"^",1) | 
|---|
| 23 | S FHNM="" | 
|---|
| 24 | F  S FHNM=$O(^FH(111,"B",FHNM)) Q:FHNM=""  D | 
|---|
| 25 | . S FHIEN="" | 
|---|
| 26 | . F  S FHIEN=$O(^FH(111,"B",FHNM,FHIEN)) Q:FHIEN=""  D | 
|---|
| 27 | .. S DIFF=0 | 
|---|
| 28 | .. S FHINACT=$G(^FH(111,+FHIEN,"I")) I FHINACT="N" S FHINACT="" | 
|---|
| 29 | .. S FH0=$G(^FH(111,+FHIEN,0)) | 
|---|
| 30 | .. S FHNM=$P(FH0,U,1) I FHNM="" Q | 
|---|
| 31 | .. S ^TMP($J,"FH55P5_nutrition",FHNM)=FHINACT | 
|---|
| 32 | .. F FHIEN1=0:0 S FHIEN1=$O(^FH(111,+FHIEN,"AN",FHIEN1)) Q:FHIEN1<1  D | 
|---|
| 33 | ... S FHSYN=$G(^FH(111,+FHIEN,"AN",FHIEN1,0)) | 
|---|
| 34 | ... S:'$D(^TMP($J,"FH55P5_nutrition",FHNM,FHSYN)) ^TMP($J,"FH55P5_nutrition",FHNM,FHSYN)="" | 
|---|
| 35 | .. S FHSYN=$P(FH0,U,2) | 
|---|
| 36 | .. I FHSYN'="" S:'$D(^TMP($J,"FH55P5_nutrition",FHNM,FHSYN)) ^TMP($J,"FH55P5_nutrition",FHNM,FHSYN)="" | 
|---|
| 37 | .. D ORDER | 
|---|
| 38 | .. D COMPARE | 
|---|
| 39 | .. I DIFF D UPDATE | 
|---|
| 40 | .. K ^TMP($J,"FH55P5_nutrition"),^TMP($J,"FH55P5_order") | 
|---|
| 41 | Q | 
|---|
| 42 | TF ; | 
|---|
| 43 | N DIFF,FH0,FHACT,FHFILE,FHFLNM,FHIEN,FHIEN1,FHINACT | 
|---|
| 44 | N FHNM,FHORIEN,FHSYN,FHTYP | 
|---|
| 45 | K ^TMP($J,"FH55P5_nutrition"),^TMP($J,"FH55P5_order") | 
|---|
| 46 | S FHTYP="T" | 
|---|
| 47 | S FHFILE="118.2",FHFLNM=$P($G(^FH(118.2,0)),"^",1) | 
|---|
| 48 | S FHNM="" | 
|---|
| 49 | F  S FHNM=$O(^FH(118.2,"B",FHNM)) Q:FHNM=""  D | 
|---|
| 50 | . S FHIEN="" | 
|---|
| 51 | . F  S FHIEN=$O(^FH(118.2,"B",FHNM,FHIEN)) Q:FHIEN=""  D | 
|---|
| 52 | .. S DIFF=0 | 
|---|
| 53 | .. S FHINACT=$G(^FH(118.2,+FHIEN,"I")) I FHINACT="N" S FHINACT="" | 
|---|
| 54 | .. S FH0=$G(^FH(118.2,+FHIEN,0)) | 
|---|
| 55 | .. S FHNM=$P(FH0,U,1) I FHNM="" Q | 
|---|
| 56 | .. S ^TMP($J,"FH55P5_nutrition",FHNM)=FHINACT | 
|---|
| 57 | .. F FHIEN1=0:0 S FHIEN1=$O(^FH(118.2,+FHIEN,1,FHIEN1)) Q:FHIEN1<1  D | 
|---|
| 58 | ... S FHSYN=$G(^FH(118.2,+FHIEN,1,FHIEN1,0)) | 
|---|
| 59 | ... S:'$D(^TMP($J,"FH55P5_nutrition",FHNM,FHSYN)) ^TMP($J,"FH55P5_nutrition",FHNM,FHSYN)="" | 
|---|
| 60 | .. ;S FHSYN=$P(FH0,U,2) | 
|---|
| 61 | .. ;I FHSYN'="" S:'$D(^TMP($J,"FH55P5_nutrition",FHNM,FHSYN)) ^TMP($J,"FH55P5_nutrition",FHNM,FHSYN)="" | 
|---|
| 62 | .. D ORDER | 
|---|
| 63 | .. D COMPARE | 
|---|
| 64 | .. I DIFF D UPDATE | 
|---|
| 65 | .. K ^TMP($J,"FH55P5_nutrition"),^TMP($J,"FH55P5_order") | 
|---|
| 66 | Q | 
|---|
| 67 | ORDER ;COMPILE ORD(101.43 DATA RELATED TO DIET ORDER/TF PRODUCT | 
|---|
| 68 | N FHORIN,FHORNM,FHORSYN | 
|---|
| 69 | S FHORIEN=$O(^ORD(101.43,"ID",+FHIEN_";99FH"_FHTYP,0)) | 
|---|
| 70 | I +FHORIEN<1 Q | 
|---|
| 71 | S FHORIN=$G(^ORD(101.43,FHORIEN,.1)) | 
|---|
| 72 | I FHORIN'="" S FHORIN="Y" | 
|---|
| 73 | S FHORNM=$P($G(^ORD(101.43,FHORIEN,0)),U,1) I FHORNM="" S FHORNM="UNKNOWN NAME (FH55P5)" | 
|---|
| 74 | S ^TMP($J,"FH55P5_order",FHORNM)=FHORIN | 
|---|
| 75 | S FHORSYN="" | 
|---|
| 76 | F  S FHORSYN=$O(^ORD(101.43,FHORIEN,2,"B",FHORSYN)) Q:FHORSYN=""  D | 
|---|
| 77 | . S:'$D(^TMP($J,"FH55P5_order",FHORNM,FHORSYN)) ^TMP($J,"FH55P5_order",FHORNM,FHORSYN)="" | 
|---|
| 78 | Q | 
|---|
| 79 | COMPARE ;COMPARE ORD(101.43 ENTRY TO FH(111 OR FH(118.2 ENTRY | 
|---|
| 80 | N FHINACT,FHNM,FHORIN,FHORNM,FHORSYN,FHSYN | 
|---|
| 81 | I '$D(^TMP($J,"FH55P5_order")) Q | 
|---|
| 82 | S (FHACT,FHNM,FHORNM,FHORSYN,FHSYN)="" | 
|---|
| 83 | S FHNM=$O(^TMP($J,"FH55P5_nutrition",FHNM)) | 
|---|
| 84 | S FHORNM=$O(^TMP($J,"FH55P5_order",FHORNM)) | 
|---|
| 85 | I FHNM'=FHORNM S DIFF=1 | 
|---|
| 86 | S FHINACT=$G(^TMP($J,"FH55P5_nutrition",FHNM)) | 
|---|
| 87 | S FHORIN=$G(^TMP($J,"FH55P5_order",FHORNM)) | 
|---|
| 88 | I FHINACT'=FHORIN S DIFF=1 D | 
|---|
| 89 | . I FHINACT="Y" S FHACT=$$FMTHL7^XLFDT($$NOW^XLFDT) | 
|---|
| 90 | . I FHINACT'="Y" S FHACT="" | 
|---|
| 91 | I FHINACT=FHORIN,FHINACT="Y" D | 
|---|
| 92 | . S FHACT=$O(^ORD(101.43,"ID",FHIEN_";99FH"_FHTYP,0)) | 
|---|
| 93 | . S FHACT=$G(^ORD(101.43,FHACT,.1)) | 
|---|
| 94 | . S FHACT=$$FMTHL7^XLFDT(FHACT) | 
|---|
| 95 | CLOOP S FHSYN=$O(^TMP($J,"FH55P5_nutrition",FHNM,FHSYN)) | 
|---|
| 96 | S FHORSYN=$O(^TMP($J,"FH55P5_order",FHORNM,FHORSYN)) | 
|---|
| 97 | I FHSYN'="",FHSYN=FHORSYN G CLOOP | 
|---|
| 98 | I FHSYN'=FHORSYN S DIFF=1 | 
|---|
| 99 | Q | 
|---|
| 100 | UPDATE ;FORMAT AND SEND UPDATE MESSAGE | 
|---|
| 101 | N CNT,FHNAM,MSG | 
|---|
| 102 | S CNT=1 | 
|---|
| 103 | S MSG(CNT)="MSH|^~\&|DIETETICS|"_^DD("SITE",1)_"|||||MFN" | 
|---|
| 104 | ; code MFI | 
|---|
| 105 | S CNT=CNT+1 | 
|---|
| 106 | S MSG(CNT)="MFI|"_FHFILE_"^"_FHFLNM_"^99DD||UPD|||NE" | 
|---|
| 107 | S FHNAM="" | 
|---|
| 108 | F  S FHNAM=$O(^TMP($J,"FH55P5_nutrition",FHNAM)) Q:FHNAM=""  D | 
|---|
| 109 | . S CNT=CNT+1 | 
|---|
| 110 | . S MSG(CNT)="MFE|MUP||"_FHACT_"|^^^"_FHIEN_"^"_FHNAM_"^99FH"_FHTYP | 
|---|
| 111 | . S CNT=CNT+1 | 
|---|
| 112 | . I FHTYP="D" S MSG(CNT)="ZFH|D|"_$P(FH0,U,4)_"||"_$P(FH0,U,3) | 
|---|
| 113 | . I FHTYP="T" S MSG(CNT)="ZFH|T|" | 
|---|
| 114 | . S FHSYN="" | 
|---|
| 115 | . F  S FHSYN=$O(^TMP($J,"FH55P5_nutrition",FHNAM,FHSYN)) Q:FHSYN=""  D | 
|---|
| 116 | .. S CNT=CNT+1,MSG(CNT)="ZSY|"_CNT_"|"_FHSYN | 
|---|
| 117 | I $D(MSG) D SEND | 
|---|
| 118 | Q | 
|---|
| 119 | SEND ; Send Message to OE/RR | 
|---|
| 120 | D MSG^XQOR("FH ORDERABLE ITEM UPDATE",.MSG) | 
|---|
| 121 | D BMES^XPDUTL("   Updated ORDERABLE ITEM (#101.43) file entry #"_FHORIEN_" with data") | 
|---|
| 122 | D MES^XPDUTL("      for "_FHNM_" from the "_$S($G(FHTYP)="D":"DIETS (#111) file",1:"TUBEFEEDING (#118.2) file")) | 
|---|
| 123 | K MSG | 
|---|
| 124 | Q | 
|---|
| 125 | UPDPAT ; Update Diet Pattern names | 
|---|
| 126 | S FLG=0 F FHDPIEN=0:0 S FHDPIEN=$O(^FH(111.1,FHDPIEN)) Q:FHDPIEN'>0  D | 
|---|
| 127 | .S FHFND=0,FHOLDNM=$P($G(^FH(111.1,FHDPIEN,0)),U,1),FHNEWNM="" | 
|---|
| 128 | .S FHDPDTS=$P($G(^FH(111.1,FHDPIEN,0)),U,2,6) | 
|---|
| 129 | .F FHPCE=1:1:5 D | 
|---|
| 130 | ..S FHDTPTR=$P(FHDPDTS,U,FHPCE) Q:FHDTPTR="" | 
|---|
| 131 | ..S FHNEWNM=FHNEWNM_$S(FHNEWNM="":"",1:", ") | 
|---|
| 132 | ..S FHNEWNM=FHNEWNM_$P($G(^FH(111,FHDTPTR,0)),U,7) | 
|---|
| 133 | .I FHOLDNM=FHNEWNM Q | 
|---|
| 134 | .S FLG=1 D BMES^XPDUTL("   Updated "_FHOLDNM_" to  "_FHNEWNM) | 
|---|
| 135 | .K DIE S DIE="^FH(111.1,",DA=FHDPIEN,DR=".01////^S X=FHNEWNM" D ^DIE | 
|---|
| 136 | Q | 
|---|