| 1 | FHOMRBL1 ;Hines OIFO/RVD-OUTPATIENT REPORT UTILITY2  ;2/03/04  10:05
 | 
|---|
| 2 |  ;;5.5;DIETETICS;**5**;Jan 28, 2005;Build 53
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;PATCH #5 - added the cancelled guest meal status and a screen for cancelled meals.
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | GETGM(FHGDT,FHGCOM,FHGLOC,FHGDFN) ;get guest meals data
 | 
|---|
| 7 |  ;ENTRY POINTS:
 | 
|---|
| 8 |  ;          GETGM - get outpatient guest meals data from starting dt.
 | 
|---|
| 9 |  ;input variable:
 | 
|---|
| 10 |  ;         FHGDT        = starting date
 | 
|---|
| 11 |  ;         FHGCOM       = IEN of communication office, 'ALL' for all.
 | 
|---|
| 12 |  ;                      = if NULL, considered 'ALL'
 | 
|---|
| 13 |  ;         FHGLOC       = IEN of location, 'ALL' for all.
 | 
|---|
| 14 |  ;                      = if NULL, considered 'ALL'
 | 
|---|
| 15 |  ;         FHGDFN       = IEN of file #115, 'ALL' for all.
 | 
|---|
| 16 |  ;                      = if NULL, considered 'ALL'
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ;output variable:
 | 
|---|
| 19 |  ;         ^TMP($J,"OP","G",COMM OFF,PATIENT NAME,DTE)
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  ;error:
 | 
|---|
| 22 |  ;         ^TMP($J,"OP","ER")
 | 
|---|
| 23 |  K ^TMP($J,"OP","G")
 | 
|---|
| 24 |  D NEWVAR
 | 
|---|
| 25 |  S:FHGDFN="" FHGDFN="ALL"
 | 
|---|
| 26 |  S:FHGCOM="" FHGCOM="ALL"
 | 
|---|
| 27 |  S:FHGLOC="" FHGLOC="ALL"
 | 
|---|
| 28 |  S FHGDT=FHGDT-.000001
 | 
|---|
| 29 |  I '$O(^FHPT("GM",FHGDT)) S ^TMP($J,"OP","ER")="NO GUEST MEALS FOR THIS DATE RANGE" Q
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  F FHGMDT=FHGDT:0 S FHGMDT=$O(^FHPT("GM",FHGMDT)) Q:FHGMDT'>0  D
 | 
|---|
| 32 |  .F FHDFN=0:0 S FHDFN=$O(^FHPT("GM",FHGMDT,FHDFN)) Q:FHDFN'>0  D
 | 
|---|
| 33 |  ..I $G(FHGDFN),(FHGDFN'=FHDFN) Q
 | 
|---|
| 34 |  ..S (FHGCOMN,FHPTNM,FHLOCN)=""
 | 
|---|
| 35 |  ..S FHNODE=$G(^FHPT(FHDFN,"GM",FHGMDT,0))
 | 
|---|
| 36 |  ..S FHCL=$P(FHNODE,U,2)
 | 
|---|
| 37 |  ..S FHML=$P(FHNODE,U,3)
 | 
|---|
| 38 |  ..S FHCH=$P(FHNODE,U,4)
 | 
|---|
| 39 |  ..S FHLPT=$P(FHNODE,U,5)
 | 
|---|
| 40 |  ..S FHDIET=$P(FHNODE,U,6)
 | 
|---|
| 41 |  ..S FHSTAT=$P(FHNODE,U,9)
 | 
|---|
| 42 |  ..I $G(FHGLOC),FHGLOC'=FHLPT Q   ;quit if location is not the same
 | 
|---|
| 43 |  ..S:$G(FHLPT) FHLCOM=$P($G(^FH(119.6,FHLPT,0)),U,8)
 | 
|---|
| 44 |  ..I $G(FHGCOM),FHGCOM'=FHLCOM Q  ;quit if d same communication office
 | 
|---|
| 45 |  ..S:$G(FHLCOM) FHGCOMN=$P($G(^FH(119.73,FHLCOM,0)),U,1)
 | 
|---|
| 46 |  ..S:FHGCOMN="" FHGCOMN="***"
 | 
|---|
| 47 |  ..I $G(FHLPT) D
 | 
|---|
| 48 |  ...S FHLOCN=$P($G(^FH(119.6,FHLPT,0)),U,1)
 | 
|---|
| 49 |  ..S:FHLOCN="" FHLOCN="***"
 | 
|---|
| 50 |  ..;
 | 
|---|
| 51 |  ..S FHCL=$S(FHCL="E":"EMPLOYEE",FHCL="G":"GRATUITOUS",FHCL="O":"OOD",FHCL="P":"PAID",1:"VOLUNTEER")
 | 
|---|
| 52 |  ..S FHD=$$FMTE^XLFDT(FHGMDT,"P")
 | 
|---|
| 53 |  ..S FHD=$E(FHD,1,12)
 | 
|---|
| 54 |  ..D PATNAME^FHOMUTL S FHPTNM=$E(FHPTNM,1,24)
 | 
|---|
| 55 |  ..S:FHPTNM="" FHPTNM="***"
 | 
|---|
| 56 |  ..S ^TMP($J,"OP","G",FHGCOMN,FHLOCN,FHPTNM,FHGMDT)=FHDFN_"^"_FHD_"^"_FHML_"^"_FHCL_"^"_FHCH_"^"_FHDIET_"^"_FHSTAT
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 | NEWVAR ;new all variables.
 | 
|---|
| 60 |  N FHPTNM,FHD,FHDIET,FHMEAL,FHELTT,FHELBG,FHDAT,FHSTAT,FHLPT
 | 
|---|
| 61 |  N FHAGE,FHCH,FHCL,FHDOB,FHGMDT,FHML,FHNODE,FHPCZN,FHSEX,FHSSN,FILE
 | 
|---|
| 62 |  N FHDAT,FHDPT,FHEL,FHLPT,FHS,FHSMDT,FHSTAT,FHNN,FH
 | 
|---|
| 63 |  Q
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 | GETOUT ;get outpatient data for TODAY.
 | 
|---|
| 66 |  ;output variables:
 | 
|---|
| 67 |  ;         ^TMP($J,"FH",##LOCATION,PATIENT NAME,DATE)=OP or SM or GM^IEN OF 115^MEAL^
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 |  K ^TMP($J)
 | 
|---|
| 70 |  N FHMEAL,FHDT,DT3,FHI,I,J,FHRMD,FHRMLNM,FHSMD,FHSMSTA,DFN,FHDFN
 | 
|---|
| 71 |  N DTTST,FHSMLNM,FHGMLNM
 | 
|---|
| 72 |  ;recurring meals
 | 
|---|
| 73 |  S FHDT=DT-.00001,DT3=DT+.999999
 | 
|---|
| 74 |  F FHI=FHDT:0 S FHI=$O(^FHPT("RM",FHI)) Q:(FHI>DT3)!(FHI="")  F I=0:0 S I=$O(^FHPT("RM",FHI,I)) Q:I'>0  D
 | 
|---|
| 75 |  .F J=0:0 S J=$O(^FHPT("RM",FHI,I,J)) Q:J'>0  D
 | 
|---|
| 76 |  ..S (FHRMD,FHMEAL)=""
 | 
|---|
| 77 |  ..S FHRMLNM="***"
 | 
|---|
| 78 |  ..I $D(^FHPT(I,"OP",J,0)) S FHRMD=$G(^FHPT(I,"OP",J,0))
 | 
|---|
| 79 |  ..Q:$P(FHRMD,U,15)="C"
 | 
|---|
| 80 |  ..I $D(FHRMD) S FHMEAL=$P(FHRMD,U,2)
 | 
|---|
| 81 |  ..S FHDFN=I D PATNAME^FHOMUTL Q:DFN=""
 | 
|---|
| 82 |  ..S:FHMEAL="" FHMEAL=$P(FHRMD,U,7)
 | 
|---|
| 83 |  ..S:FHMEAL="" FHMEAL=$P(FHRMD,U,8)
 | 
|---|
| 84 |  ..S:FHMEAL="" FHMEAL=$P(FHRMD,U,9)
 | 
|---|
| 85 |  ..S:FHMEAL="" FHMEAL=$P(FHRMD,U,10)
 | 
|---|
| 86 |  ..S:FHMEAL="" FHMEAL=$P(FHRMD,U,11)
 | 
|---|
| 87 |  ..S FHRMLOC=$P(FHRMD,U,3) Q:FHRMLOC=""
 | 
|---|
| 88 |  ..S FHML=$P(FHRMD,U,4)
 | 
|---|
| 89 |  ..I $G(FHRMLOC),$D(^FH(119.6,FHRMLOC,0)) D
 | 
|---|
| 90 |  ...S FHRMLNM=$P(^FH(119.6,FHRMLOC,0),U,1)
 | 
|---|
| 91 |  ...S FHRMPR=$P(^FH(119.6,FHRMLOC,0),U,4)
 | 
|---|
| 92 |  ...S FHRMSTA=$P(^FH(119.6,FHRMLOC,0),U,8)
 | 
|---|
| 93 |  ...S:FHRMPR<10 FHRMPR=0_FHRMPR
 | 
|---|
| 94 |  ...S:FHRMPR="" FHRMPR=99
 | 
|---|
| 95 |  ..S ^TMP($J,"FH",FHRMPR_FHRMLNM,FHPTNM,FHI,J)="OP"_"^"_I_"^"_FHMEAL_"^"_FHRMSTA_"^"_FHML_"^"_FHRMLOC_"^"_J
 | 
|---|
| 96 | SM ;special meals
 | 
|---|
| 97 |  S FHDT=DT-.00001,DTTST=$P(DT,".",1),DT3=DTTST+1
 | 
|---|
| 98 |  F FHI=FHDT:0 S FHI=$O(^FHPT("SM",FHI)) Q:(FHI>DT3)!(FHI="")  F I=0:0 S I=$O(^FHPT("SM",FHI,I)) Q:I'>0  D
 | 
|---|
| 99 |  .F J=0:0 S J=$O(^FHPT("SM",FHI,I,J)) Q:J'>0  D
 | 
|---|
| 100 |  ..S (FHSMD,FHMEAL)=""
 | 
|---|
| 101 |  ..S FHSMSTA=""
 | 
|---|
| 102 |  ..I $D(^FHPT(I,"SM",J,0)) S FHSMD=$G(^FHPT(I,"SM",J,0))
 | 
|---|
| 103 |  ..Q:$P(FHSMD,U,2)'="A"
 | 
|---|
| 104 |  ..I $D(FHSMD) S FHMEAL=$P(FHSMD,U,4)
 | 
|---|
| 105 |  ..S FHDFN=I D PATNAME^FHOMUTL Q:DFN=""
 | 
|---|
| 106 |  ..S FHSMLOC=$P(FHSMD,U,3) Q:FHSMLOC=""
 | 
|---|
| 107 |  ..S FHSMSTA=$P(FHSMD,U,2)
 | 
|---|
| 108 |  ..S FHML=$P(FHSMD,U,9)
 | 
|---|
| 109 |  ..I $G(FHSMLOC),$D(^FH(119.6,FHSMLOC,0)) D
 | 
|---|
| 110 |  ...S FHSMLNM=$P(^FH(119.6,FHSMLOC,0),U,1)
 | 
|---|
| 111 |  ...S FHSMPR=$P(^FH(119.6,FHSMLOC,0),U,4)
 | 
|---|
| 112 |  ...S FHSMSTA=$P(^FH(119.6,FHSMLOC,0),U,8)
 | 
|---|
| 113 |  ...S:FHSMPR<10 FHSMPR=0_FHSMPR
 | 
|---|
| 114 |  ...S:FHSMPR="" FHSMPR=99
 | 
|---|
| 115 |  ..S ^TMP($J,"FH",FHSMPR_FHSMLNM,FHPTNM,J)="SM"_"^"_I_"^"_FHMEAL_"^"_FHSMSTA_"^"_FHML_"^"_FHSMLOC_"^"_J
 | 
|---|
| 116 |  ;guest meals
 | 
|---|
| 117 |  S FHDT=DT-.00001,DTTST=$P(DT,".",1),DT3=DTTST+1
 | 
|---|
| 118 |  F FHI=FHDT:0 S FHI=$O(^FHPT("GM",FHI)) Q:(FHI>DT3)!(FHI="")  F I=0:0 S I=$O(^FHPT("GM",FHI,I)) Q:I'>0  D
 | 
|---|
| 119 |  .F J=0:0 S J=$O(^FHPT("GM",FHI,I,J)) Q:J'>0  D
 | 
|---|
| 120 |  ..S (FHSMD,FHMEAL)=""
 | 
|---|
| 121 |  ..S FHSMSTA=""
 | 
|---|
| 122 |  ..S FHSMLNM="***"
 | 
|---|
| 123 |  ..I $D(^FHPT(I,"GM",J,0)) S FHSMD=$G(^FHPT(I,"GM",J,0))
 | 
|---|
| 124 |  ..Q:$P(FHSMD,U,9)="C"
 | 
|---|
| 125 |  ..I $D(FHSMD) S FHMEAL=$P(FHSMD,U,6)
 | 
|---|
| 126 |  ..S FHDFN=I D PATNAME^FHOMUTL Q:DFN=""
 | 
|---|
| 127 |  ..S FHSMLOC=$P(FHSMD,U,5) Q:FHSMLOC=""
 | 
|---|
| 128 |  ..S FHML=$P(FHSMD,U,3)
 | 
|---|
| 129 |  ..I $G(FHSMLOC),$D(^FH(119.6,FHSMLOC,0)) D
 | 
|---|
| 130 |  ...S FHSMLNM=$P(^FH(119.6,FHSMLOC,0),U,1)
 | 
|---|
| 131 |  ...S FHSMSTA=$P(^FH(119.6,FHSMLOC,0),U,8)
 | 
|---|
| 132 |  ...S FHSMPR=$P(^FH(119.6,FHSMLOC,0),U,4)
 | 
|---|
| 133 |  ...S:FHSMPR<10 FHSMPR=0_FHSMPR
 | 
|---|
| 134 |  ...S:FHSMPR="" FHSMPR=99
 | 
|---|
| 135 |  ..S ^TMP($J,"FH",FHSMPR_FHSMLNM,FHPTNM,J)="GM"_"^"_I_"^"_FHMEAL_"^"_FHSMSTA_"^"_FHML_"^"_FHSMLOC_"^"_J
 | 
|---|
| 136 |  Q
 | 
|---|