| 1 | FHASM1 ; HISC/REL - Nutrition Assessment ;1/25/00  12:08
 | 
|---|
| 2 |  ;;5.5;DIETETICS;**8**;Jan 28, 2005;Build 28
 | 
|---|
| 3 |  W @IOF,!!?20,"N U T R I T I O N   A S S E S S M E N T",!! S X="T",%DT="X" D ^%DT S DT=+Y
 | 
|---|
| 4 | F1 ; Select Patient
 | 
|---|
| 5 |  S FHALL=1 D ^FHOMDPA G KILL^XUSCLEAN:'FHDFN
 | 
|---|
| 6 |  S:DFN'>0 DFN=""
 | 
|---|
| 7 |  I $G(DFN),$P($G(^DPT(DFN,.35)),"^",1) W *7,!!?5,"  [ Patient has expired. ]" G KILL^XUSCLEAN
 | 
|---|
| 8 |  S (ADM,ASN,FHASK,KNEE,EXT,DTP,FHCAS,FHCASD,FHASS,FHFFC,FHFEC,FHFPC,FHCFRBO,FHCM,FHEF,FHKCAL,FHLOC)="",(FHHWF,FHQUIT)=0
 | 
|---|
| 9 |  S (ADT,SEX,AGE,HGT,HGP,WGT,WGP,DWGT,UWGT,IBW,FRM,AMP,KCAL,PRO,FLD,RC,XD,BMI,BMIP,FHCLI,FHPLXSV)=""
 | 
|---|
| 10 |  S (NOW,NB,TSF,TSFP,SCA,SCAP,ACIR,ACIRP,CCIR,CCIRP,BFAMA,BFAMAP,FHAPP,FHEDU,DEWGT,WARD,FHSPC)=""
 | 
|---|
| 11 |  S (FHDIPL,FHDIPLD,FHAST,FHDINF,FHDINFD,FHFUD,FHDIST,FHDIDI,FHDITF,FHDIDI,FHDITF,FHDITFDT,FHDITFCM,FHDITFML,FHDITFKC,FHVHGT,FHDVHGT)=""
 | 
|---|
| 12 |  S (TSF,TSFP,SCA,SCAP,ACIR,ACIRP,CCIR,CCIRP,BFAMA,BFAMAP,BMI,BMIP,X1,X2,FHFUDS,EKKG,FHFDC,FHFDCSV)=""
 | 
|---|
| 13 |  S (WCCM,CIBW,CERBO,CENB,PCTB,SEF,CFRB,CFRBO,CPRBO,NWGT,DNWGT,FHYN,FHDINA,FHVWGT,FHDVWGT,FHPL)=""
 | 
|---|
| 14 |  S FHCLI=DUZ
 | 
|---|
| 15 |  K ^TMP("FH",$J) S FHQTALL=0
 | 
|---|
| 16 |  ;get current diet and tf
 | 
|---|
| 17 |  S Y=""
 | 
|---|
| 18 |  I DFN D
 | 
|---|
| 19 |  .F I=0:0 S I=$O(^FHPT("AW",I)) Q:I'>0  I $D(^FHPT("AW",I,FHDFN)) S FHLOC=I Q
 | 
|---|
| 20 |  .I $G(FHLOC),$D(^FH(119.6,FHLOC,0)) S FHCLI=$P($G(^FH(119.6,FHLOC,0)),U,2)
 | 
|---|
| 21 |  .S WARD=$G(^DPT(DFN,.1)) I WARD'="" S ADM=$G(^DPT("CN",WARD,DFN))
 | 
|---|
| 22 |  .D:ADM CUR^FHORD7
 | 
|---|
| 23 |  .S FHDIDI=$S(Y'="":Y,1:"No Order")
 | 
|---|
| 24 |  .W !,"Current Diet: ",FHDIDI
 | 
|---|
| 25 |  .Q:'ADM
 | 
|---|
| 26 |  .S TF=$P(^FHPT(FHDFN,"A",ADM,0),"^",4)
 | 
|---|
| 27 |  .Q:'TF
 | 
|---|
| 28 |  .S FHDITFDT=$P($G(^FHPT(FHDFN,"A",ADM,"TF",TF,0)),U,1)
 | 
|---|
| 29 |  .S FHDITFCM=$P($G(^FHPT(FHDFN,"A",ADM,"TF",TF,0)),U,5)
 | 
|---|
| 30 |  .S FHDITFML=$P($G(^FHPT(FHDFN,"A",ADM,"TF",TF,0)),U,6)
 | 
|---|
| 31 |  .S FHDITFKC=$P($G(^FHPT(FHDFN,"A",ADM,"TF",TF,0)),U,7)
 | 
|---|
| 32 |  .F TF2=0:0 S TF2=$O(^FHPT(FHDFN,"A",ADM,"TF",TF,"P",TF2)) Q:TF2<1  D
 | 
|---|
| 33 |  ..S Y=^(TF2,0),TUN=$P(Y,"^",1)
 | 
|---|
| 34 |  ..I TUN,$D(^FH(118.2,TUN,0)) S FHDITFPR(TUN)=Y
 | 
|---|
| 35 |  .W ?30,"Tubefeeding: " I $D(FHDITFPR) F FHTUN=0:0 S FHTUN=$O(FHDITFPR(FHTUN)) Q:FHTUN'>0  W $P($G(^FH(118.2,FHTUN,0)),"^",1) I $O(FHDITFPR(FHTUN))'="" W ", "
 | 
|---|
| 36 |  K Y
 | 
|---|
| 37 | STA ;if pt has Work in Progress assessment, ask user to Edit or Create or Delete Assessment.
 | 
|---|
| 38 |  D PATNAME^FHOMUTL
 | 
|---|
| 39 |  S AGE=FHAGE
 | 
|---|
| 40 |  I $D(^FHPT(FHDFN,"N",0)) D
 | 
|---|
| 41 |  .S FHCAS=$P(^FHPT(FHDFN,"N",0),U,3)
 | 
|---|
| 42 |  .Q:'FHCAS
 | 
|---|
| 43 |  .S FHCASD=$P(^FHPT(FHDFN,"N",FHCAS,0),U,1)
 | 
|---|
| 44 |  .I $D(^FHPT(FHDFN,"N",FHCAS,"DI")) S FHASS=$P($G(^FHPT(FHDFN,"N",FHCAS,"DI")),U,6)
 | 
|---|
| 45 |  .S FHAST=0
 | 
|---|
| 46 |  .F FHA=0:0 S FHA=$O(^FHPT(FHDFN,"N",FHA)) Q:'FHA  D
 | 
|---|
| 47 |  ..S FHASSD=$P($G(^FHPT(FHDFN,"N",FHA,"DI")),U,6)
 | 
|---|
| 48 |  ..I (FHASSD="W")!(FHASS="") S FHAST=1
 | 
|---|
| 49 |  ..I $D(^FHPT(FHDFN,"N",FHA,0)),'$D(^FHPT(FHDFN,"N",FHA,"DI")) S FHAST=1
 | 
|---|
| 50 |  I 'FHCAS!(FHAST=0) G CRE
 | 
|---|
| 51 |  D ASK^FHASM2 G:FHQUIT KILL^XUSCLEAN
 | 
|---|
| 52 |  I FHASK="D" S DIK="^FHPT("_FHDFN_",""N"",",DA(1)=FHDFN,DA=FHCAS D ^DIK W ?65,"Deleted..." G F1
 | 
|---|
| 53 |  I FHASK="E" S ADT=FHCAS D SVAR G:SEX=""!(AGE="") P1 G F3A
 | 
|---|
| 54 | CRE ;create new assessment
 | 
|---|
| 55 |  ;D:FHCAS PRTA^FHASM2
 | 
|---|
| 56 |  S FHASK="C"
 | 
|---|
| 57 |  W !!,"Creating new Assessment...",!
 | 
|---|
| 58 |  I (FHSEX="")!(FHAGE="") G P1
 | 
|---|
| 59 |  E  S NAM=FHPTNM,SEX=FHSEX,AGE=FHAGE
 | 
|---|
| 60 |  S X="NOW",%DT="XT" D ^%DT S ADT=Y
 | 
|---|
| 61 |  I SEX=""!(AGE="") G P1
 | 
|---|
| 62 | F2 S X="NOW",%DT="XT" D ^%DT S ADT=Y
 | 
|---|
| 63 | F3 I DFN,$D(^FHPT(FHDFN,"N",9999999-ADT)) S ADT=$$FMADD^XLFDT(ADT,,,1) G F3
 | 
|---|
| 64 | F3A ;start here if edit
 | 
|---|
| 65 |  S FHAP=$G(^FH(119.9,1,3)),FHU=$P(FHAP,"^",1),NAM=FHPTNM
 | 
|---|
| 66 |  G:'FHDFN F4 S XX=$O(^FHPT(FHDFN,"N",0)) G:XX="" F4 S XX=$G(^(XX,0)),HGT=$P(XX,"^",4),HGP=$P(XX,"^",5)
 | 
|---|
| 67 |  I HGP'="S" S X1=$S(HGT\12:HGT\12_"'",1:"")_$S(HGT#12:" "_(HGT#12)_"""",1:""),X2=+$J(HGT*2.54,0,0)_"CM",X1=$S(FHU'="M":X1,1:X2)
 | 
|---|
| 68 | F4 ; If Multidivisional site Select Communications Office
 | 
|---|
| 69 |  S FHCOMM="" I $P($G(^FH(119.9,1,0)),U,20)'="N" D  I FHCOMM="" Q
 | 
|---|
| 70 |  .K DIC S DIC="^FH(119.73," S DIC(0)="AEMQ" D ^DIC
 | 
|---|
| 71 |  .I Y=-1 Q
 | 
|---|
| 72 |  .S FHCOMM=+Y
 | 
|---|
| 73 |  ;get ht and wt from vitals.
 | 
|---|
| 74 |  I DFN S GMRVSTR="WT" D EN6^GMRVUTL S FHDVWGT=$P(X,"^",1),FHVWGT=$P(X,"^",8),GMRVSTR="HT" D EN6^GMRVUTL S FHVHGT=$P(X,"^",8)
 | 
|---|
| 75 |  I X1="" S (X1,HGT)=FHVHGT
 | 
|---|
| 76 | F4A W !!,"Height: " W:X1'="" X1,"// " R X:DTIME G:'$T!(X["^") KIL I X="",X1'="" S Y0=$J(HGT,0,0),H1=Y0 G F5
 | 
|---|
| 77 |  D TR,HGT I Y<1 D HGP G F4A
 | 
|---|
| 78 |  S:X1'=Y FHHWF=1
 | 
|---|
| 79 |  S HGT=Y,H1=Y0,HGP=Y1
 | 
|---|
| 80 | F5 I FHVWGT'="" S WGT=FHVWGT
 | 
|---|
| 81 |  W !!,"Weight: " W:WGT'="" WGT_" lbs","// " R X:DTIME G:'$T!(X["^") KIL I X="",WGT S X=WGT_"#"
 | 
|---|
| 82 |  S:X="a" X="A"
 | 
|---|
| 83 |  I X="A",AGE>39 D A^FHASM2D G:Y<1 F5 S:WGT'=Y FHHWF=1 S WGT=Y,WGP="A" G F6
 | 
|---|
| 84 |  D WGT I Y<1 D WGP W:AGE>39 !,"You may enter an A to calculate weight anthropometrically." G F5
 | 
|---|
| 85 |  S:WGT'=Y FHHWF=1
 | 
|---|
| 86 |  S WGT=Y,WGP=Y1,DWGT=$P(FHDVWGT,".",1)
 | 
|---|
| 87 | F6 G:'FHHWF F7
 | 
|---|
| 88 |  S %DT="AEP",%DT("A")="Date Weight Taken: "
 | 
|---|
| 89 |  I 'DWGT,FHDVWGT S DTP=$E(FHDVWGT,4,5)_"/"_$E(FHDVWGT,6,7)_"/"_$E(FHDVWGT,2,3)
 | 
|---|
| 90 |  I DWGT S DTP=$E(DWGT,4,5)_"/"_$E(DWGT,6,7)_"/"_$E(DWGT,2,3)
 | 
|---|
| 91 |  S:DTP'="" %DT("B")=DTP S:DTP="" %DT("B")="TODAY"
 | 
|---|
| 92 |  S %DT(0)="-T" W ! D ^%DT K %DT G KIL:X["^"!$D(DTOUT),F6:Y<1
 | 
|---|
| 93 |  S DWGT=Y
 | 
|---|
| 94 |  ;
 | 
|---|
| 95 | F7 S:UWGT X=UWGT W !!,"Usual Weight: " W:UWGT'="" UWGT_" lbs","// " R X:DTIME G:'$T!(X["^") KIL I X="" G F8
 | 
|---|
| 96 |  D WGT I Y<1 D WGP G F7
 | 
|---|
| 97 |  S UWGT=Y
 | 
|---|
| 98 | F8 K %DT,A1,K,X,Y G ^FHASM2
 | 
|---|
| 99 | HGT ; Convert Height to inches
 | 
|---|
| 100 |  S A1=+X I 'A1 S Y=-1 Q
 | 
|---|
| 101 |  S X=$P(X,A1,2,99) S:$E(X,1)=" " X=$E(X,2,99) I "SMK"[$E(X,1) S Y=A1 S:FHU="M" Y=Y/2.54 G H1
 | 
|---|
| 102 |  I """I"[$E(X,1) S Y=A1 G H1
 | 
|---|
| 103 |  I $E(X,1)="C" S Y=A1/2.54 G H1
 | 
|---|
| 104 |  I "'F"'[$E(X,1) S Y=-1 G H2
 | 
|---|
| 105 |  S Y=A1*12 F K=1:1 Q:$E(X,K)?.N
 | 
|---|
| 106 |  I $E(X,K,99)="" G H1
 | 
|---|
| 107 |  S A1=+$E(X,K,99),X=$P(X,A1,2,99) S:$E(X,1)=" " X=$E(X,2,99)
 | 
|---|
| 108 |  I """I"'[$E(X,1) S Y=-1 G H2
 | 
|---|
| 109 |  S Y=Y+A1
 | 
|---|
| 110 | H1 I X["K" D K^FHASM2D
 | 
|---|
| 111 | H2 I Y<12!(Y>96) S Y=-1
 | 
|---|
| 112 |  S:Y>0 Y0=+$J(Y,0,0),Y=+$J(Y,0,1) S Y1=$S(X["K":"K",X["S":"S",1:"") Q
 | 
|---|
| 113 | HGP ; Height Help
 | 
|---|
| 114 |  W !!,"Enter height as: 6' 2"" or 74"" or 74IN or 6FT 2 IN or 30CM"
 | 
|---|
| 115 |  W !,"Add an S if height is stated rather than measured."
 | 
|---|
| 116 |  W !,"Add a K if value is a Knee Height measurement."
 | 
|---|
| 117 |  W !,"Height should be between 12"" and 96"" (8')." Q
 | 
|---|
| 118 | WGT ; Convert Weight to lbs.
 | 
|---|
| 119 |  D TR S A1=+X I 'A1 S Y=-1 Q
 | 
|---|
| 120 |  S X=$P(X,A1,2,99) S:$E(X,1)=" " X=$E(X,2,99) I "SM"[$E(X,1) S Y=A1 S:FHU="M" Y=Y*2.2 G W1
 | 
|---|
| 121 |  I $E(X,1)="O" S Y=A1/16 G W1
 | 
|---|
| 122 |  I $E(X,1)="G" S Y=A1/1000*2.2 G W1
 | 
|---|
| 123 |  I $E(X,1)="K" S Y=A1*2.2 G W1
 | 
|---|
| 124 |  I "L#"'[$E(X,1) S Y=-1 G W1
 | 
|---|
| 125 |  S Y=A1 F K=1:1 Q:$E(X,K)?.N
 | 
|---|
| 126 |  I $E(X,K,99)="" G W1
 | 
|---|
| 127 |  S A1=+$E(X,K,99),X=$P(X,A1,2,99) S:$E(X,1)=" " X=$E(X,2,99)
 | 
|---|
| 128 |  I $E(X,1)'="O" S Y=-1 G W1
 | 
|---|
| 129 |  S Y=A1/16+Y
 | 
|---|
| 130 | W1 I Y<0!(Y>750) S Y=-1
 | 
|---|
| 131 |  S:Y>0 Y0=+$J(Y,0,0),Y=+$J(Y,0,1) S Y1="" S:X["S" Y1="S" Q
 | 
|---|
| 132 | WGP ; Weight help
 | 
|---|
| 133 |  W !!,"Enter Weight as 150# or 150# 6OZ or 800G or 70KG"
 | 
|---|
| 134 |  W !,"Add an S if weight is stated rather than measured."
 | 
|---|
| 135 |  W !,"Enter an A to determine weight anthropometrically."
 | 
|---|
| 136 |  W !,"Weight should be between 0 Lbs and 750 Lbs." Q
 | 
|---|
| 137 | TR ; Translate Lower to Upper Case
 | 
|---|
| 138 |  D TR^FH
 | 
|---|
| 139 |  Q
 | 
|---|
| 140 | KIL ; Final variable kill
 | 
|---|
| 141 |  ;if X not equal ^, update or create nutrition assessment
 | 
|---|
| 142 |  G:$G(FHQUIT) ASKUS
 | 
|---|
| 143 |  I $D(X),X=U G ASKUS
 | 
|---|
| 144 |  D SDAT^FHASM7
 | 
|---|
| 145 |  ;
 | 
|---|
| 146 |  G KILL^XUSCLEAN
 | 
|---|
| 147 | PAT S (FHDFN,DFN,SEX,AGE,PID)="" R !!,"Enter Patient's Name: ",NAM:DTIME G:'$T!(NAM["^") KILL^XUSCLEAN
 | 
|---|
| 148 |  I NAM["?"!(NAM'?.ANP)!(NAM="") W *7,!?5,"Enter Patient's Name to be printed on the report." G PAT
 | 
|---|
| 149 | P1 I SEX="" R !,"Sex: ",SEX:DTIME S:SEX="" SEX="?" G:'$T!(SEX["^") KILL^XUSCLEAN S X=SEX D TR S SEX=X I $P("FEMALE",SEX,1)'="",$P("MALE",SEX,1)'="" W *7,"  Enter M or F" S SEX="" G P1
 | 
|---|
| 150 |  S SEX=$E(SEX,1)
 | 
|---|
| 151 | P2 I AGE="" R !,"Age: ",AGE:DTIME S:AGE="" AGE="?" G:'$T!(AGE["^") KILL^XUSCLEAN S X=AGE D TR S AGE=X
 | 
|---|
| 152 |  S:AGE["M" AGE=+$J($P(AGE,"M",1)/12,0,2) I AGE'>0!(AGE>124) W !?5,"Enter Age Less Than 124 in Years or Months (followed by M) but Not Both" S AGE="" G P2
 | 
|---|
| 153 |  G F2
 | 
|---|
| 154 | SVAR ;set variables of incomplete assessment.
 | 
|---|
| 155 |  Q:'$D(^FHPT(FHDFN,"N",0))
 | 
|---|
| 156 |  S FHA0=$G(^FHPT(FHDFN,"N",FHCAS,0))
 | 
|---|
| 157 |  S ADT=$P(FHA0,U,1),SEX=$P(FHA0,U,2),AGE=$P(FHA0,U,3),HGT=$P(FHA0,U,4)
 | 
|---|
| 158 |  S HGP=$P(FHA0,U,5),WGT=$P(FHA0,U,6),WGP=$P(FHA0,U,7),DWGT=$P(FHA0,U,8)
 | 
|---|
| 159 |  S UWGT=$P(FHA0,U,9),IBW=$P(FHA0,U,10),FRM=$P(FHA0,U,11),AMP=$P(FHA0,U,12)
 | 
|---|
| 160 |  S KCAL=$P(FHA0,U,16),PRO=$P(FHA0,U,17),FLD=$P(FHA0,U,18),RC=$P(FHA0,U,19)
 | 
|---|
| 161 |  S XD=$P(FHA0,U,20),BMI=$P(FHA0,U,21),BMIP=$P(FHA0,U,22)
 | 
|---|
| 162 |  S NOW=$P(FHA0,U,24),NB=$P(FHA0,U,25)
 | 
|---|
| 163 |  S FHA1=$G(^FHPT(FHDFN,"N",FHCAS,1))
 | 
|---|
| 164 |  S TSF=$P(FHA1,U,1),TSFP=$P(FHA1,U,2),SCA=$P(FHA1,U,3),SCAP=$P(FHA1,U,4),ACIR=$P(FHA1,U,5)
 | 
|---|
| 165 |  S ACIRP=$P(FHA1,U,6),CCIR=$P(FHA1,U,7),CCIRP=$P(FHA1,U,8),BFAMA=$P(FHA1,U,9),BFAMAP=$P(FHA1,U,10)
 | 
|---|
| 166 |  S WCCM=$P(FHA1,U,11),CIBW=$P(FHA1,U,12),CERBO=$P(FHA1,U,13),CENB=$P(FHA1,U,14),PCTB=$P(FHA1,U,15)
 | 
|---|
| 167 |  S SEF=$P(FHA1,U,16),CFRB=$P(FHA1,U,17),CFRBO=$P(FHA1,U,18),CPRBO=$P(FHA1,U,19),EKKG=$P(FHA1,U,20)
 | 
|---|
| 168 |  S FHAPP=$G(^FHPT(FHDFN,"N",FHCAS,2))
 | 
|---|
| 169 |  S FHA3=$G(^FHPT(FHDFN,"N",FHCAS,3))
 | 
|---|
| 170 |  S FHYN=$P(FHA3,U,1),FHFEC=$P(FHA3,U,2),FHFPC=$P(FHA3,U,3),FHDINA=$P(FHA3,U,4),FHEDU=$P(FHA3,U,5)
 | 
|---|
| 171 |  S FHFDCSV=$P(FHA3,U,6),FHPL=$P(FHA3,U,7),FHSPC=$P(FHA3,U,8)
 | 
|---|
| 172 |  S FHADI=$G(^FHPT(FHDFN,"N",FHCAS,"DI"))
 | 
|---|
| 173 |  S FHDIPL=$P(FHADI,U,1),FHDIPLD=$P(FHADI,U,2),FHDINF=$P(FHADI,U,3),FHDINFD=$P(FHADI,U,4)
 | 
|---|
| 174 |  S (FHFUD,FHFUDS)=$P(FHADI,U,5),FHDIST=$P(FHADI,U,6),FHDIDI=$P(FHADI,U,7),FHDITF=$P(FHADI,U,8)
 | 
|---|
| 175 |  Q
 | 
|---|
| 176 | ASKUS R !!,"Do you wish to SAVE this Assessment Y// ",X:DTIME G:'$T!(X["^") KILL^XUSCLEAN
 | 
|---|
| 177 |  S:X="" X="Y" D TR I $P("YES",X,1)'="",$P("NO",X,1)'="" W *7,!,"  Answer YES or NO" G ASKUS
 | 
|---|
| 178 |  I X'?1"Y".E G KILL^XUSCLEAN
 | 
|---|
| 179 |  D SDAT^FHASM7 G KILL^XUSCLEAN
 | 
|---|