VistA-WorldVistAEHR/r/SPINAL_CORD_DYSFUNCTION-SPN/SPNAGGU.m

183 lines
7.4 KiB
Mathematica

SPNAGGU ;SD/CM- AGGREGATE OUTCOME REPORT UTILITIES; 2-21-2003
;;2.0;Spinal Cord Dysfunction;**20,21**;01/02/97
;
INPT ;SPNLSTDT=Last date of ASIA HIGHEST NEURO LEVEL (most recent)
;SPNSEVC =Count of unique pts in diag category of 'severe'
;SPNMODC = " " " " " " " " 'moderate'
;SPNPARC = " " " " " " " " 'para'
;SPNLOWC = " " " " " " " " 'low'
;SPNDIAGC=Total count of unique pts over all diag categories
;SPNDCS =Set to 1 if diag category criteria for 'severe' are met
;SPNDCM =Set to 1 if diag category criteria for 'moderate' are met
;SPNDCP =Set to 1 if diag category criteria for 'para' are met
;SPNDCL =Set to 1 if diag category criteria for 'low' are met
;SPNAGES =Cumulative Age in Severe, SPNAGEM=Cum. Age in Moderate, etc
;BMAS =Base Minimum Age Severe, BMAM=Base Minimum Age Moderate, etc
;AGESC =Age Range Severe Count, AGEMC=Age Range Moderate Count, etc
;MINAGES =Minimum Age Severe, MINAGEM=Minimum Age Moderate, etc
;BHAS =Base Maximum Age Severe, BHAM=Base Maximum Age Moderate, etc
;MAXAGES =Maximum Age Severe, MAXAGEM=Maximum Age Moderate, etc
;AGEL =Low value of Age range, AGEH=High value of Age range
;SPNSEXS =No. of Male pts in Severe, SPNSEXM=No. Male in Moderate, etc
;SPNLORS =Cumulative Length of Rehab Severe, SPNLORM=Cum. LOR Mod, etc
;BMLS =Base Minimum LOR Severe, BMLM=Base Minimum LOR Moderate, etc
;LORSC =Length of Rehab Severe Count, LORMC=LOR Moderate Count, etc
;MINLORS =Minimum LOR Severe, MINLORM=Minimum LOR Moderate, etc
;BHLS =Base Maximum LOR Severe, BHLM=Base Maximum LOR Moderate, etc
;MAXLORS =Maximum LOR Severe, MAXLORM=Maximum LOR Moderate, etc
;LORRN =Length of Rehab record number (node w/ Rehab Finish data)
;LORL =Low value of LOR range, LORH=High value of LOR range
;TFSRN =Total FIM Start record number
;TFS =Total FIM Start score, TFF=Total FIM Finish score
;TFCUMS =Total FIM cumulative change Severe, TFCUMM=Tot FIM ch Mod,etc
;TFCS =Total FIM Count Severe, TFCM=Total FIM Count Moderate, etc
;TFGRN =Total FIM Goal record number
;TFG =Total FIM Goal score
;TFGCUMS =Total FIM Goal cumul change Severe,TFGCUMM=TF Goal ch Mod,etc
;TFGCS =Total FIM Goal Count Severe,TFGCM=Tot FIM Goal Count Mod, etc
;COMDISS =No. of Severe pts w/ DISPOSITION<5, COMDISM=No. Mod pts, etc
;TFURN =Total FIM Follow-Up record number
;TFU =Total FIM Follow-Up score
;TFUCUMS =Total FIM F/U cumul change Severe,TFUCUMM=TF F/U ch Mod, etc
;TFUCS =Total FIM F/U Count Severe,TFUCM=Tot FIM F/U Count Mod, etc
;SLSRN =SWLS Start record number, SLFRN=SWLS Finish record number
;SLS =SWLS Start score
;SLF =SWLS Finish score
;SLCUMS =SWLS cumul change Severe,SLCUMM=SWLS cumul change Mod, etc
;SLCS =SWLS Count Severe,SLCM=Count Moderate, etc
;SLURN =SWLS Follow-Up record number
;SLU =SWLS Follow-Up score
;SLUCUMS =SWLS F/U cumul change Severe,SLUCUMM=SWLS F/U Chng Mod, etc
;SLUCS =SWLS F/U Count Severe,SLUCM=SWLS F/U Count Mod, etc
S U="^"
S SPNDIAGC=0,SPNSEVC=0,SPNMODC=0,SPNPARC=0,SPNLOWC=0
S SPNLSTDT="",SPNNODUP=""
S SPNSDATE=0,SPNMDATE=0,SPNPDATE=0,SPNLDATE=0
S SPNSEXS=0,SPNSEXM=0,SPNSEXP=0,SPNSEXL=0
S SPNAGES=0,SPNAGEM=0,SPNAGEP=0,SPNAGEL=0
S SPNT1=30,SPNT2=40,SPNT3=50,SPNT4=60,SPNT5=70
S BMAS=0,BMAM=0,BMAP=0,BMAL=0,AGESC=0,AGEMC=0,AGEPC=0,AGELC=0
S MINAGES=0,MINAGEM=0,MINAGEP=0,MINAGEL=0
S MAXAGES=0,MAXAGEM=0,MAXAGEP=0,MAXAGEL=0
S BHAS=0,BHAM=0,BHAP=0,BHAL=0
S SPNLORS=0,SPNLORM=0,SPNLORP=0,SPNLORL=0
S BMLS=0,BMLM=0,BMLP=0,BMLL=0,LORSC=0,LORMC=0,LORPC=0,LORLC=0
S MINLORS=0,MINLORM=0,MINLORP=0,MINLORL=0
S MAXLORS=0,MAXLORM=0,MAXLORP=0,MAXLORL=0
S BHLS=0,BHLM=0,BHLP=0,BHLL=0,LORRN=0,V=0,LORL=0,LORH=0,AGEL=0,AGEH=0
S TFSRN=0,TFS=0,TFF=0,TFCUMS=0,TFCUMM=0,TFCUMP=0,TFCUML=0
S TFCS=0,TFCM=0,TFCP=0,TFCL=0
S TFGRN=0,TFG=0,TFGCUMS=0,TFGCUMM=0,TFGCUMP=0,TFGCUML=0
S TFGCS=0,TFGCM=0,TFGCP=0,TFGCL=0
S COMDISS=0,COMDISM=0,COMDISP=0,COMDISL=0
S TFURN=0,TFU=0,TFUCUMS=0,TFUCUMM=0,TFUCUMP=0,TFUCUML=0
S TFUCS=0,TFUCM=0,TFUCP=0,TFUCL=0
S SLSRN=0,SLFRN=0,SLS=0,SLF=0,SLCUMS=0,SLCUMM=0,SLCUMP=0,SLCUML=0
S SLCS=0,SLCM=0,SLCP=0,SLCL=0
S SLU=0,SLURN=0,SLUCUMS=0,SLUCUMM=0,SLUCUMP=0,SLUCUML=0
S SLUCS=0,SLUCM=0,SLUCP=0,SLUCL=0
Q
PARAMS ;
CT ;Care Type
CED ;date range for Care End Date
OIEN ;
DIAGCAT ;
;
MINLORS(SPNPD1) ;
S MAX1=LORCALL
S X=0 F S X=$O(^TMP($J,"SPNLRNS",X)) Q:'+X D
.Q:'$D(^TMP($J,"SPNLRNS",X))
.S MAX2=$P(^TMP($J,"SPNLRNS",X),U,1)
.I MAX2<MAX1 S MAX1=MAX2
.Q
Q MAX1
MAXLORS(SPNPD1) ;
S MAX1=0
S X=0 F S X=$O(^TMP($J,"SPNLRXS",X)) Q:'+X D
.Q:'$D(^TMP($J,"SPNLRXS",X))
.S MAX2=$P(^TMP($J,"SPNLRXS",X),U,1)
.I MAX2>MAX1 S MAX1=MAX2
.Q
Q MAX1
MINLORM(SPNPD1) ;
S MAX1=LORCALL
S X=0 F S X=$O(^TMP($J,"SPNLRNM",X)) Q:'+X D
.Q:'$D(^TMP($J,"SPNLRNM",X))
.S MAX2=$P(^TMP($J,"SPNLRNM",X),U,1)
.I MAX2<MAX1 S MAX1=MAX2
.Q
Q MAX1
MAXLORM(SPNPD1) ;
S MAX1=0
S X=0 F S X=$O(^TMP($J,"SPNLRXM",X)) Q:'+X D
.Q:'$D(^TMP($J,"SPNLRXM",X))
.S MAX2=$P(^TMP($J,"SPNLRXM",X),U,1)
.I MAX2>MAX1 S MAX1=MAX2
.Q
Q MAX1
MINLORP(SPNPD1) ;
S MAX1=LORCALL
S X=0 F S X=$O(^TMP($J,"SPNLRNP",X)) Q:'+X D
.Q:'$D(^TMP($J,"SPNLRNP",X))
.S MAX2=$P(^TMP($J,"SPNLRNP",X),U,1)
.I MAX2<MAX1 S MAX1=MAX2
.Q
Q MAX1
MAXLORP(SPNPD1) ;
S MAX1=0
S X=0 F S X=$O(^TMP($J,"SPNLRXP",X)) Q:'+X D
.Q:'$D(^TMP($J,"SPNLRXP",X))
.S MAX2=$P(^TMP($J,"SPNLRXP",X),U,1)
.I MAX2>MAX1 S MAX1=MAX2
.Q
Q MAX1
MINLORL(SPNPD1) ;
S MAX1=LORCALL
S X=0 F S X=$O(^TMP($J,"SPNLRNL",X)) Q:'+X D
.Q:'$D(^TMP($J,"SPNLRNL",X))
.S MAX2=$P(^TMP($J,"SPNLRNL",X),U,1)
.I MAX2<MAX1 S MAX1=MAX2
.Q
Q MAX1
MAXLORL(SPNPD1) ;
S MAX1=0
S X=0 F S X=$O(^TMP($J,"SPNLRXL",X)) Q:'+X D
.Q:'$D(^TMP($J,"SPNLRXL",X))
.S MAX2=$P(^TMP($J,"SPNLRXL",X),U,1)
.I MAX2>MAX1 S MAX1=MAX2
.Q
Q MAX1
STATS ;finds record with Rehab Finish, so Length of Rehab can be obtained
S LORRN=0,TFSRN=0,TFGRN=0
S V=SPNPD1 F S V=$O(^SPNL(154.1,"B",SPNPD0,V)) Q:'+V D GETLOR
Q
GETLOR ;gets Rec No. for LOR, TFS (TFF is same rec no. as LOR), and TFG
Q:'$D(^SPNL(154.1,V,0))
Q:'+$P(^SPNL(154.1,V,2),U,17)
Q:$P($G(^SPNL(154.1,V,8)),U,3)'=CARETYP
;Q:$P($G(^SPNL(154.1,V,8)),U,2)<BDATE!($P($G(^SPNL(154.1,V,8)),U,2)>EDATE)
I $P(^SPNL(154.1,V,2),U,17)=1,($P(^SPNL(154.1,V,0),U,2)=2) S TFSRN=V
I $P(^SPNL(154.1,V,2),U,17)=2,($P(^SPNL(154.1,V,0),U,2)=2) S TFGRN=V
I $P($G(^SPNL(154.1,V,8)),U,4)'="" S LORRN=V
Q
EXIT ;
K BDATE,EDATE,I,SPNLEXIT,SPNPD0,SPNPD1,SPNLSTDT,SPNDIAGC,SPNSEVC,SPNMODC,SPNPARC,SPNLOWC,SPNSDATE,SPNMDATE,SPNPDATE,SPNLDATE,SPNNODUP,SPNSEXS,SPNSEXM,SPNSEXP,SPNSEXL
K SPNT1,SPNT2,SPNT3,SPNT4,SPNT5,SPNDCS,SPNDCM,SPNDCP,SPNDCL,SPNAGROU
K SPNAGES,SPNAGEM,SPNAGEP,SPNAGEL
K BMAS,BMAM,BMAP,BMAL,BHAS,BHAM,BHAP,BHAL
K AGESC,AGEMC,AGEPC,AGELC,MINAGES,MINAGEM,MINAGEP,MINAGEL
K MAXAGES,MAXAGEM,MAXAGEP,MAXAGEL,CARETYP,LINE
K SPNLORS,SPNLORM,SPNLORP,SPNLORL
K BMLS,BMLM,BMLP,BMLL,BHLS,BHLM,BHLP,BHLL
K LORSC,LORMC,LORPC,LORLC,MINLORS,MINLORM,MINLORP,MINLORL
K MAXLORS,MAXLORM,MAXLORP,MAXLORL,LORRN,V,LORL,LORH,AGEL,AGEH
K TFSRN,TFS,TFF,TFCUMS,TFCUMM,TFCUMP,TFCUML,TFCS,TFCM,TFCP,TFCL
K TFGRN,TFG,TFGCUMS,TFGCUMM,TFGCUMP,TFGCUML,TFGCS,TFGCM,TFGCP,TFGCL
K COMDISS,COMDISM,COMDISP,COMDISL,ZTSAVE
K TFURN,TFU,TFUCUMS,TFUCUMM,TFUCUMP,TFUCUML,TFUCS,TFUCM,TFUCP,TFUCL
K SLSRN,SLFRN,SLS,SLF,SLCUMS,SLCUMM,SLCUMP,SLCUML,SLCS,SLCM,SLCP,SLCL
K SLURN,SLU,SLUCUMS,SLUCUMM,SLUCUMP,SLUCUML,SLUCS,SLUCM,SLUCP,SLUCL
K AGECALL,ASIAONE,ASIAFRTN,SEXCALL,LORCALL,LOR5CALL
K TFSCALL,TFGCALL,TFUCALL,SLSCALL,SLFCALL,SLUCALL
Q