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

BEHOVMC2.m

Go to the documentation of this file.
  1. BEHOVMC2 ;MSC/IND/MGH - CUMMULATIVE VITALS/MEASUREMENTS CONT ;09-Apr-2010 07:55;PLS
  1. ;;1.1;BEH COMPONENTS;**001004,001005**;Mar 20, 2007
  1. ;=================================================================
  1. SETLN ; Store the data in the one line
  1. N BEH,ALTU,DEFU,DEFAULT,BEHVER,QUALS,VAL
  1. S BEHVER=^TMP("BEHV",$J,BEHDATE,BEHVTY,BEHVDA) N BEHVPO
  1. D:IOSL<($Y+9) HDR Q:BEHOUT W ! W:BEHVER ?3,"(E)"
  1. I GPRT(BEHVTY)=0 D
  1. . W ?4,BEHVTY_": "
  1. S GPRT(BEHVTY)=1
  1. S BEHDAT=$G(^AUPNVMSR(BEHVDA,0))
  1. S BEHVX=BEHVTY,BEHVX(0)=$P(BEHDAT,"^",4) D
  1. .I "UNAVAILABLEPASSREFUSED"[$$UP^XLFSTR(BEHVX(0)) W ?9,BEHVX(0) Q
  1. .;Get the result
  1. .S TYP=$P(^AUPNVMSR(BEHVDA,0),U),VAL=$P(BEHDAT,U,4),MR=""
  1. . I BEHVTY="PA" D Q
  1. . . I VAL=0 W ?9,VAL_" - No pain" Q
  1. . . I VAL=99 W ?9,VAL_" - Unable to respond" Q
  1. . . I VAL=10 W ?9,VAL_" - Worst imaginable pain" Q
  1. . . S QUALS=$$QUAL(BEHVDA)
  1. . . W ?9,VAL_" "_QUALS
  1. .S:'$G(DAT) DAT=DT
  1. .S AGE=$$PTAGE^BGOUTL(DFN,$S(X:X,1:DAT))
  1. .S BEH="" S BEH=$O(^BEHOVM(90460.01,"B",BEHVTY,BEH))
  1. .I BEHVTY="" D
  1. ..W ?9,$$RND(VAL)
  1. .E D
  1. ..S DATA=$G(^BEHOVM(90460.01,BEH,0))
  1. ..S DEFAULT=$P(DATA,U,2)
  1. ..I DEFAULT=1 D
  1. ...S DEFU=$P(DATA,U,4),ALTU=$P(DATA,U,3)
  1. ...I ALTU=""!(DEFU=ALTU) D
  1. ....S QUALS=$$QUAL(BEHVDA)
  1. ....W ?9,$$RND(VAL)_" "_DEFU_" "_QUALS
  1. ...E S X=VAL I $D(^BEHOVM(90460.01,BEH,2)) X $G(^BEHOVM(90460.01,BEH,2)) D
  1. ....S QUALS=$$QUAL(BEHVDA)
  1. ....W ?9,$$RND(VAL)_" "_DEFU_" ("_$$RND(X)_" "_ALTU_") "_QUALS
  1. ..I DEFAULT=0 D
  1. ...S DEFU=$P(DATA,U,3),ALTU=$P(DATA,U,4)
  1. ...I ALTU=""!(DEFU=ALTU) D
  1. ....S QUALS=$$QUAL(BEHVDA)
  1. ....W ?9,$$RND(VAL)_" "_DEFU
  1. ...E S X=VAL I $D(^BEHOVM(90460.01,BEH,1)) X $G(^BEHOVM(90460.01,BEH,1)) D
  1. ....S QUALS=$$QUAL(BEHVDA)
  1. ....W ?9,$$RND(VAL)_" "_DEFU_" ("_$$RND(X)_" "_ALTU_") "_QUALS
  1. ..I DEFAULT="" D
  1. ...S QUALS=$$QUAL(BEHVDA)
  1. ...W ?9,$$RND(VAL)_" "_QUALS
  1. Q:$G(AGE)'>2!'$D(WT)!'$D(HT)
  1. S VAL=$$RND((WT*704.5)/(HT*HT))
  1. S MR=$S(AGE<20:"",VAL<18.5:"Underweight",VAL<25:"Normal Weight",VAL<30:"Overweight",VAL<35:"Obesity - Class 1",VAL<40:"Obesity - Class 2",1:"Extreme Obesity")
  1. W ?9,"BMI: "_VAL_" "_MR
  1. Q
  1. RND(X) Q $S(X=+X:+$J(X,0,2),1:X)
  1. HDR ;
  1. I 'BEH1ST D FOOTER^BEHVSC0
  1. I $E(IOST)'="P",'BEH1ST W "Press return to continue ""^"" to escape " R X:DTIME I X="^"!'$T S BEHOUT=1 Q
  1. W:'($E(IOST)'="C"&'$D(GFLAG)) @IOF S BEHPG=BEHPG+1,GFLAG=1
  1. W !,BEHPDT,?25,"Cumulative Vitals/Measurements Report",?70,"Page ",BEHPG,!!,$E(BEHDSH,1,78)
  1. I 'BEH1ST,$P(BEHDATE,".")=BEHDATE(0) W !,$E(BEHDATE(0),4,5)_"/"_$E(BEHDATE(0),6,7)_"/"_$E(BEHDATE,2,3)_" (continued)",!
  1. S BEH1ST=0
  1. Q
  1. BLNK ;
  1. F I=1:1:$L(Z) Q:$E(Z,I)'=" "
  1. S Z=$E(Z,I,$L(Z))
  1. Q
  1. QUAL(BEHIEN) ;Add on qualifiers
  1. N QUALSTR,MOD,QUAL
  1. S QUALSTR=""
  1. S MOD=0 F S MOD=$O(^AUPNVMSR(BEHIEN,5,MOD)) Q:'+MOD D
  1. .S QUAL=$G(^AUPNVMSR(BEHIEN,5,MOD,0))
  1. .S QUAL=$P($G(^GMRD(120.52,QUAL,0)),U,1)
  1. .S QUALSTR=QUALSTR_$S(QUALSTR'="":", ",1:"")_QUAL
  1. Q QUALSTR