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

AUPNPC.m

Go to the documentation of this file.
  1. AUPNPC ; IHS/CMI/LAB - PERCENTILES ;
  1. ;;99.1;IHS DICTIONARIES (PATIENT);;MAR 09, 1999
  1. ;
  1. ;FOR PERCENTILES, HT AND WT
  1. ;
  1. ; This extrinsic function returns the height or weight percentile
  1. ; based on sex and age in months. If any passed variable is missing
  1. ; or invalid null is returned.
  1. ;
  1. ; Formal list:
  1. ;
  1. ; 1) TYPE = HT or WT (call by value)
  1. ; 2) SEX = patient's sex, M or F (call by value)
  1. ; 3) AGE = patient's age in whole months (call by value)
  1. ; must be less than 216 months
  1. ; 4) VALUE = height in inches or weight in pounds (call by value)
  1. ;
  1. AUHTWT(TYPE,SEX,AGE,VALUE) ; EXTRINSIC FUNCTION TO RETURN HT/WT PERCENTILE
  1. START ;
  1. NEW %,AGEINC,GRP,INTERP,LASTINT,LOWAGE,MSR1,MSR2,P,P1,P2,R,RATA,V1,V2,XAGE,XSEX,XTYPE
  1. ; ----------
  1. I TYPE'="HT"&(TYPE'="WT") G ERR
  1. I SEX'="M"&(SEX'="F") G ERR
  1. I AGE<0 G ERR
  1. I AGE'=+AGE G ERR
  1. I AGE'<216 G ERR
  1. I VALUE'=+VALUE G ERR
  1. ; ----------
  1. S XTYPE=$O(^AUTTPCT("B",TYPE,""))
  1. S XSEX=$O(^AUTTPCT(XTYPE,1,"B",SEX,""))
  1. S AGEINC=$S(AGE<18:3,1:6)
  1. S LOWAGE=AGE-(AGE#AGEINC)
  1. S XAGE=$O(^AUTTPCT(XTYPE,1,XSEX,1,"B",LOWAGE,""))
  1. ; ----------
  1. FIND S MSR1=$P(^AUTTPCT(XTYPE,1,XSEX,1,XAGE,0),"^",2)
  1. S MSR2=$P(^AUTTPCT(XTYPE,1,XSEX,1,XAGE+1,0),"^",2)
  1. S RATA=(AGE-LOWAGE)/AGEINC
  1. F GRP=0:1:7 Q:GRP=7 S V1=$E(MSR1,GRP*4+1,GRP*4+4)/10,V2=$E(MSR2,GRP*4+1,GRP*4+4)/10,INTERP=V1+((V2-V1)*RATA) Q:VALUE<INTERP S LASTINT=INTERP
  1. S GRP=GRP+1
  1. I GRP=1 S %="<3" G EXIT
  1. I GRP=8 S %=">97" G EXIT
  1. S R=(VALUE-LASTINT)/(INTERP-LASTINT)
  1. S P=$P($T(PCT),";;",2),P2=$P(P,"^",GRP),P1=$P(P,"^",GRP-1),%=P1+(R*(P2-P1)),%=%+.5\1
  1. DEBUG ;W LASTINT,"-",VALUE,"-",INTERP," ",R," ",P1,"..",%,"..",P2,!
  1. G EXIT
  1. ERR ;
  1. S %=""
  1. EXIT ;
  1. Q %
  1. ;
  1. ;
  1. PCT ;;3^10^25^50^75^90^97