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