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

APCHS2A2.m

Go to the documentation of this file.
  1. APCHS2A2 ; IHS/CMI/LAB - PART 2A2 - HEIGHT/WEIGHT PERCENTILES ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;
  1. AUHTWT(APCHTYPE,APCHSEX,APCHAGE,APCHVALU) ; EP - Extrinsic Function to return HT/WT PERCENTILE
  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. START ;
  1. NEW APCHSP,APCHAINC,APCHGRP,APCHINTR,APCHLSTI,APCHLAGE,APCHMSR1,APCHMSR2,APCHP,APCHP1,APCHP2,APCHR,APCHRATA,APCHV1,APCHV2,APCHXAGE,APCHXSEX,APCHXTYP
  1. ; ----------
  1. I APCHTYPE'="HT"&(APCHTYPE'="WT") G ERR
  1. I APCHSEX'="M"&(APCHSEX'="F") G ERR
  1. I APCHAGE'=+APCHAGE G ERR
  1. I APCHAGE'<216 G ERR
  1. I APCHVALU'=+APCHVALU G ERR
  1. ; ----------
  1. S APCHXTYP=$O(^APCHSPER("B",APCHTYPE,""))
  1. S APCHXSEX=$O(^APCHSPER(APCHXTYP,1,"B",APCHSEX,""))
  1. S APCHAINC=$S(APCHAGE<18:3,1:6)
  1. S APCHLAGE=APCHAGE-(APCHAGE#APCHAINC)
  1. S APCHXAGE=$O(^APCHSPER(APCHXTYP,1,APCHXSEX,1,"B",APCHLAGE,""))
  1. ; ----------
  1. FIND S APCHMSR1=$P(^APCHSPER(APCHXTYP,1,APCHXSEX,1,APCHXAGE,0),"^",2)
  1. S APCHMSR2=$P(^APCHSPER(APCHXTYP,1,APCHXSEX,1,APCHXAGE+1,0),"^",2)
  1. S APCHRATA=(APCHAGE-APCHLAGE)/APCHAINC
  1. F APCHGRP=0:1:7 Q:APCHGRP=7 S APCHV1=$E(APCHMSR1,APCHGRP*4+1,APCHGRP*4+4)/10,APCHV2=$E(APCHMSR2,APCHGRP*4+1,APCHGRP*4+4)/10,APCHINTR=APCHV1+((APCHV2-APCHV1)*APCHRATA) Q:APCHVALU<APCHINTR S APCHLSTI=APCHINTR
  1. S APCHGRP=APCHGRP+1
  1. I APCHGRP=1 S APCHSP="<3" G EXIT
  1. I APCHGRP=8 S APCHSP=">97" G EXIT
  1. S APCHR=(APCHVALU-APCHLSTI)/(APCHINTR-APCHLSTI)
  1. S APCHP=$P($T(PCT),";;",2),APCHP2=$P(APCHP,"^",APCHGRP),APCHP1=$P(APCHP,"^",APCHGRP-1),APCHSP=APCHP1+(APCHR*(APCHP2-APCHP1)),APCHSP=APCHSP+.5\1
  1. G EXIT
  1. ERR ;
  1. S APCHSP=""
  1. EXIT ;
  1. K APCHAINC,APCHGRP,APCHINTR,APCHLSTI,APCHLAGE,APCHMSR1,APCHMSR2,APCHP,APCHP1,APCHP2,APCHR,APCHRATA,APCHV1,APCHV2,APCHXAGE,APCHXSEX,APCHXTYP
  1. S Y=APCHSP
  1. K APCHSP,APCHTYPE,APCHVALU
  1. Q Y
  1. ;
  1. ;
  1. PCT ;;3^10^25^50^75^90^97