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

GMVBMI.m

Go to the documentation of this file.
  1. GMVBMI ;HIOFO/YH,FT-EXTRACT HEIGHT TO CALCULATE BMI FOR WEIGHT; 5/9/07
  1. ;;5.0;GEN. MED. REC. - VITALS;**3,23**;Oct 31, 2002;Build 25
  1. ;
  1. ; This routine uses the following IAs:
  1. ; <None>
  1. ;
  1. HT ;OBTAIN ALL HEIGHTS FOR THE PATIENT
  1. ; DFN MUST BE DEFINED
  1. K GHEIGHT
  1. S GH=0,GI=$O(^GMRD(120.51,"B","HEIGHT",0))
  1. Q:GI'>0
  1. F S GH=$O(^PXRMINDX(120.5,"PI",DFN,GI,GH)) Q:GH'>0 S GH(1)=0 F S GH(1)=$O(^PXRMINDX(120.5,"PI",DFN,GI,GH,GH(1))) Q:$L(GH(1))'>0 D
  1. .I GH(1)=+GH(1) D ;VITALS RECORD
  1. ..I $D(^GMR(120.5,GH(1),0)),'$D(^GMR(120.5,GH(1),2)),$P(^GMR(120.5,GH(1),0),U,8)'="" D
  1. ...I $P(^GMR(120.5,GH(1),0),U,8)>0 S GHEIGHT($P(^GMR(120.5,GH(1),0),U,1))=$P(^GMR(120.5,GH(1),0),U,8)
  1. ...Q
  1. ..Q
  1. .I GH(1)'=+GH(1) D
  1. ..N GMVCLIO
  1. ..D CLIO^GMVUTL(.GMVCLIO,GH(1))
  1. ..Q:$P(GMVCLIO(0),U,1)=""
  1. ..Q:$P(GMVCLIO(0),U,8)'>0
  1. ..I $P(GMVCLIO(0),U,8)>0 S GHEIGHT($P(GMVCLIO(0),U,1))=$P(GMVCLIO(0),U,8)
  1. ..Q
  1. .Q
  1. Q
  1. CALBMI(GBMI,GMVDEC) ;OBTAIN HEIGHT TO CALCULATE BMI
  1. ; GBMI(1)=DATE/TIME WEIGHT WAS TAKEN
  1. ; GBMI(2)=WEIGHT
  1. ; GMVDEC = # of decimal places to return (optional)
  1. ; Can have 0, 1, 2, or 3.
  1. ; Default is 2.
  1. N GDATE,GMRVHT
  1. S GMRVHT="",GMVDEC=$G(GMVDEC,2)
  1. S GMVDEC=$S(GMVDEC=3:3,GMVDEC=1:1,GMVDEC=0:0,1:2)
  1. D HT
  1. I '$D(GHEIGHT) K GHEIGHT,GI,GH Q
  1. ;HEIGHT AND WEIGHT WERE OBTAINED AT THE SAME TIME
  1. I $D(GHEIGHT(GBMI(1))) D K GHEIGHT,GH,GI Q
  1. .S GBMI(2)=GBMI(2)/2.2,GMRVHT=+GHEIGHT(GBMI(1))*2.54/100
  1. .I +GMRVHT'>0 S GBMI=$J(0,0,0) Q
  1. .S GBMI=$J(GBMI(2)/(GMRVHT*GMRVHT),0,GMVDEC) S GBMI=GBMI_$S(GBMI>27:"*",1:"")
  1. ;EXTRACT THE HEIGHT TAKEN BEFORE THE WEIGHT WAS TAKEN
  1. S GDATE=GBMI(1),GDATE(1)=0
  1. F S GDATE=$O(GHEIGHT(GDATE),-1) Q:GDATE'>0!(GDATE(1)>0) D
  1. .S GDATE(1)=GDATE
  1. I GDATE(1)>0,$D(GHEIGHT(GDATE(1))) D K GHEIGHT,GH,GI Q
  1. .S GMRVHT=+GHEIGHT(GDATE(1))
  1. .S GBMI(2)=GBMI(2)/2.2,GMRVHT=GMRVHT*2.54/100
  1. .I +GMRVHT'>0 S GBMI=$J(0,0,0) Q
  1. .S GBMI=$J(GBMI(2)/(GMRVHT*GMRVHT),0,GMVDEC),GBMI=GBMI_$S(GBMI>27:"*",1:"")
  1. ;EXTRACT THE HEIGHT TAKEN AFTER THE WEIGHT WAS TAKEN
  1. S GDATE=GBMI(1),GDATE(1)=0
  1. F S GDATE=$O(GHEIGHT(GDATE)) Q:GDATE'>0!(GDATE(1)>0) S GDATE(1)=GDATE
  1. I GDATE(1)>0 D K GHEIGHT,GH,GI,G Q
  1. .S GMRVHT=+GHEIGHT(GDATE(1))
  1. .S GBMI(2)=GBMI(2)/2.2,GMRVHT=GMRVHT*2.54/100
  1. .I +GMRVHT'>0 S GBMI=$J(0,0,0) Q
  1. .S GBMI=$J(GBMI(2)/(GMRVHT*GMRVHT),0,GMVDEC),GBMI=GBMI_$S(GBMI>27:"*",1:"")
  1. K GHEIGHT,GI,GH,G
  1. Q