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

BGPMUG03.m

Go to the documentation of this file.
  1. BGPMUG03 ; IHS/MSC/MMT - MI measure NQF0001 ;20-Aug-2011 14:56;DU
  1. ;;11.1;IHS CLINICAL REPORTING SYSTEM;**1**;JUN 27, 2011;Build 106
  1. ;Code to collect meaningful use report for Asthma Assessment
  1. ENTRY ;EP
  1. N START,END,BGPNUM,BGPDEN,STRING,STRING2
  1. N IEN,INV,VISIT,DATA,VDATE,VALUE,FIRST,VIEN,RESULT
  1. N CNT,NUM,ASTHENC,ASTHMA,ASTDT,ASTDX,ASTPL,LASTVDT
  1. S (BGPDEN,BGPNUM,NUM,RESULT)=0
  1. S START=9999999-BGPBDATE,END=9999999-BGPEDATE,VALUE=0
  1. S START=START_".2359"
  1. ;Pts must be between 5 and 40 years
  1. ;No need to check further if no age match
  1. Q:BGPAGEE<5!(BGPAGEE>40)
  1. ;First check for Asthma Dx since this will eliminate many pts
  1. S ASTHMA=$$ASTHMA(DFN,BGPEDATE)
  1. Q:'ASTHMA
  1. S CNT=0
  1. S FIRST=END-0.1 F S FIRST=$O(^AUPNVSIT("AA",DFN,FIRST)) Q:FIRST=""!($P(FIRST,".",1)>START) D
  1. .S IEN=0 F S IEN=$O(^AUPNVSIT("AA",DFN,FIRST,IEN)) Q:'+IEN D
  1. ..;Check provider, Only visits for chosen provider
  1. ..Q:'$$PRV^BGPMUUT1(IEN,BGPPROV)
  1. ..S ASTENC=$$VSTCPT^BGPMUUT1(DFN,IEN,"BGPMU ASTHMA ENCOUNT EM")
  1. ..I +ASTENC D VSTSTORE Q
  1. Q:CNT<2
  1. ;check to see if they are in the numerator
  1. S NUM=$$NUM(DFN,$P(VIEN(CNT),U,2),$P(VIEN(1),U,2),ASTHMA)
  1. D TOTAL(DFN,ASTHMA,NUM)
  1. Q
  1. VSTSTORE ;Store compliant visit into array
  1. S CNT=CNT+1
  1. S VDATE=$P($G(^AUPNVSIT(IEN,0)),U,1)
  1. S VIEN(CNT)=IEN_U_VDATE
  1. S STRING(CNT)=$$DATE^BGPMUUTL(VDATE)
  1. Q
  1. TOTAL(DFN,ASTHMA,NUM) ;See where this patient ends up
  1. N PTCNT,DENCT,NUMCT,NOTNUM,TOTALS,DEN,DXTIME
  1. S TOTALS=$G(^TMP("BGPMU0001",$J,BGPMUTF,"TOT"))
  1. S DENCT=+$G(^TMP("BGPMU0001",$J,BGPMUTF,"DEN"))
  1. S NUMCT=+$G(^TMP("BGPMU0001",$J,BGPMUTF,"NUM"))
  1. S NOTNUM=+$G(^TMP("BGPMU0001",$J,BGPMUTF,"NOT"))
  1. S PTCNT=TOTALS
  1. S PTCNT=PTCNT+1
  1. S DENCT=DENCT+1 S ^TMP("BGPMU0001",$J,BGPMUTF,"DEN")=DENCT
  1. S DEN="AST:"_$$DATE^BGPMUUTL($P(ASTHMA,U,3))
  1. I $D(STRING(1)) S DEN=DEN_";EN:"_STRING(1)
  1. I $D(STRING(2)) S DEN=DEN_";EN:"_STRING(2)
  1. I +NUM D
  1. .S NUMCT=NUMCT+1 S ^TMP("BGPMU0001",$J,BGPMUTF,"NUM")=NUMCT
  1. .I BGPMUTF="C" S ^TMP("BGPMU0001",$J,"PAT",BGPMUTF,"NUM",PTCNT)=DFN_U_DEN_U_"M:"_$P(NUM,U,2)
  1. I +NUM=0 D
  1. .S NOTNUM=NOTNUM+1 S ^TMP("BGPMU0001",$J,BGPMUTF,"NOT")=NOTNUM
  1. .I BGPMUTF="C" S ^TMP("BGPMU0001",$J,"PAT",BGPMUTF,"NOT",PTCNT)=DFN_U_DEN_U_"NM:"
  1. S ^TMP("BGPMU0001",$J,BGPMUTF,"TOT")=PTCNT
  1. ;Setup iCare array for patient
  1. S BGPICARE("MU.EP.0001.1",BGPMUTF)=1_U_+NUM_U_""_U_DEN_";"_$P(NUM,U,2)_";"_$P(NUM,U,3)
  1. Q
  1. ASTHMA(DFN,EDATE) ;Find if patient had a PROBLEM or POV of Asthma on or before the end date
  1. N ASTHMA
  1. S ASTHMA=0
  1. S ASTPL=$$PLTAX^BGPMUUT1(DFN,"BGPMU ASTHMA DX ICD","C",EDATE)
  1. ;check date of problem
  1. I +ASTPL S ASTHMA=1_U_$P(ASTPL,U,2,3) Q ASTHMA
  1. S BGPBIRTH=$$DOB^AUPNPAT(DFN)
  1. S ASTDX=$$LASTDX^BGPMUUT2(DFN,BGPBIRTH,EDATE,"BGPMU ASTHMA DX ICD")
  1. I +ASTDX S ASTHMA=2_U_$P(ASTDX,U,2,3) Q ASTHMA
  1. Q ASTHMA
  1. NUM(DFN,BDATE,EDATE,ASTHMA) ;Look for documentation of Asthma assessment
  1. N FOUND,D,G,S,I,ACONTROL
  1. S FOUND=0
  1. ;check for documentation in the ASTHMA package
  1. S D=9999999-EDATE-1,G="",S=9999999-BDATE
  1. S D=$O(^AUPNVAST("AS",DFN,D)) I D]""!(D>S) D
  1. .S I="" F S I=$O(^AUPNVAST("AS",DFN,D,I)) Q:I'=+I!(+FOUND) D
  1. ..S ACONTROL=$P(^AUPNVAST(I,0),U,14)
  1. ..I ACONTROL'="" S FOUND=1_U_"AC "_$$DATE^BGPMUUTL($P($P($G(^AUPNVSIT($P(^AUPNVAST(I,0),U,3),0)),U,1),"."))
  1. Q:+FOUND FOUND
  1. ;check for documentation in the PROBLEM record
  1. I $P(ASTHMA,U)=1 D
  1. .S CLASS=$P($G(^AUPNPROB($P(ASTPL,U,4),0)),U,15)
  1. .I CLASS=1!(CLASS=2)!(CLASS=3)!(CLASS=4) D ; YES, this is ALL of the possible values, CLASS=1 MAY be removed later
  1. .S FOUND=1_U_"CL "_$$DATE^BGPMUUTL($P(ASTHMA,U,3))
  1. Q:+FOUND FOUND
  1. ;check for CPT code documented
  1. S ASTCPT=$$CPT^BGPMUUT1(DFN,BDATE,EDATE,"BGPMU ASTHMA EVAL CPT")
  1. S:+ASTCPT FOUND=1_U_$P(ASTCPT,U,2)_" "_$$DATE^BGPMUUTL($P(ASTCPT,U,3))
  1. Q FOUND