- APCLP810 ; IHS/CMI/LAB -IHS -GETS DATA FOR DIABETES QA REPORT ;
- ;;2.0;IHS PCC SUITE;;MAY 14, 2009
- ;
- ;
- EN ; - ENTRY POINT - from ^APCLASK
- K ^APCLDATA("APCLEPI",$J)
- S ^XTMP("APCLP81",0)=$$FMADD^XLFDT(DT,14)_"^"_DT_"^PRE DM AUDIT 2007"
- S APCLEPIN=0
- S APCLPD=0 F S APCLPD=$O(^XTMP("APCLP81",APCLJOB,APCLBTH,"PATS",APCLPD)) Q:'APCLPD D
- .I APCLTYPE'="P",APCLTYPE'="S" Q:$$DEMO^APCLUTL(APCLPD,$G(APCLDEMO))
- .;I APCLPREP=2 D EPIREC Q
- .D GATHER
- ;I APCLPREP=2 D WRITEF^APCLP81 Q
- I APCLPREP=2!(APCLPREP=3) D CUML^APCLP815
- Q
- S(P,I,V) ;
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",P,I)=V
- Q
- GATHER ;gather data for 1 patient
- S APCLER=0
- ;set report dates
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,1)=$S($G(APCLFISC)]"":APCLFISC,1:APCLRBD_" - "_APCLRED)
- ;set audit date to DT
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,2)=$$FMTE^XLFDT(DT)
- ;set area, su, facility code and name
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,4)=$P(^DIC(4,DUZ(2),0),U)
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,6)=$E($P(^AUTTLOC(DUZ(2),0),U,10),1,2)
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,8)=$E($P(^AUTTLOC(DUZ(2),0),U,10),3,4)
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,10)=$E($P(^AUTTLOC(DUZ(2),0),U,10),5,6)
- ;# pats in register
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,12)=$S(APCLDMRG:$$RSTAT^APCLDM6(APCLDMRG,"A"),1:"")
- ;reviewer
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,14)=$P(^VA(200,DUZ,0),U,2)
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,15)=$$VAL^XBDIQ1(9000001,APCLPD,.14)
- DEMO ;pat demographics
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,16)=$$HRN^AUPNPAT(APCLPD,DUZ(2))
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,18)=$$DOB^AUPNPAT(APCLPD,"E")
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,20)=$$VAL^XBDIQ1(2,APCLPD,.02)
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,120)=$$TRIBE(APCLPD)
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,121)=$$COMM(APCLPD)
- DXDT ;dates of and dm dxs
- K APCLDATA D IFG^APCLP813(APCLPD,.APCLDATA)
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,200)=$S($D(APCLDATA):"Yes",1:"No")
- S X=0 F S X=$O(APCLDATA(X)) Q:X'=+X D
- .S Y=200_"."_X
- .S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,Y)=APCLDATA(X)
- K APCLDATA D IGT^APCLP813(APCLPD,.APCLDATA)
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,210)=$S($D(APCLDATA):"Yes",1:"No")
- S X=0 F S X=$O(APCLDATA(X)) Q:X'=+X D
- .S Y=210_"."_X
- .S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,Y)=APCLDATA(X)
- K APCLDATA D MS^APCLP813(APCLPD,.APCLDATA)
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,220)=$S($D(APCLDATA):"Yes",1:"No")
- S X=0 F S X=$O(APCLDATA(X)) Q:X'=+X D
- .S Y=220_"."_X
- .S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,Y)=APCLDATA(X)
- K APCLDATA D ABNG^APCLP813(APCLPD,.APCLDATA)
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,230)=$S($D(APCLDATA):"Yes",1:"No")
- S X=0 F S X=$O(APCLDATA(X)) Q:X'=+X D
- .S Y=230_"."_X
- .S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,Y)=APCLDATA(X)
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,22)=$S(APCLDMRG:$$CMSFDX^APCLP813(APCLPD,APCLDMRG,"D"),1:"")
- S ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,24)=$S(APCLDMRG:$$CMSFDX^APCLP813(APCLPD,APCLDMRG,"DX"),1:"")
- I $$PLDMDXS^APCLP813(APCLPD)]"" D S(APCLPD,25,"PLEASE NOTE: Diabetes is on the Problem list for this patient")
- S X=$$FRSTDMDX^APCLP813(APCLPD,"E") I X]"" D S(APCLPD,26,"PLEASE NOTE: Diabetes has been used as a diagnosis in PCC: "_X)
- D S(APCLPD,27,$$TOBACCO^APCLP816(APCLPD,APCLRED))
- D S(APCLPD,28,$$CESS^APCLP811(APCLPD,APCLRBD,APCLRED))
- VITAL ;
- D S(APCLPD,30,$$LASTHT^APCLP813(APCLPD,APCLRED))
- D S(APCLPD,32,$$LASTWT^APCLP813(APCLPD,APCLRED))
- D S(APCLPD,33,$$LASTWC^APCLP813(APCLPD,APCLRED))
- ;htn dx
- D S(APCLPD,34,$$HTNDX^APCLP813(APCLPD,APCLRED))
- ;last 3 BPs
- D S(APCLPD,36,$$BPS^APCLP813(APCLPD,APCLRBD,APCLRED))
- EXAMS ;
- D S(APCLPD,44,$$DIETEDUC^APCLP817(APCLPD,APCLRBD,APCLRED))
- D S(APCLPD,46,$$EXEDUC^APCLP817(APCLPD,APCLRBD,APCLRED))
- THERAPY ;
- S APCL6MBD=$$FMADD^XLFDT(APCLADAT,-(6*31)),APCL6MBD=$$FMTE^XLFDT(APCL6MBD)
- D S(APCLPD,53,$$SULF^APCLP812(APCLPD,APCL6MBD,APCLRED))
- D S(APCLPD,54,$$MET^APCLP812(APCLPD,APCL6MBD,APCLRED))
- D S(APCLPD,55,$$ACAR^APCLP812(APCLPD,APCL6MBD,APCLRED))
- D S(APCLPD,56,$$TROG^APCLP812(APCLPD,APCL6MBD,APCLRED))
- S Y="" F X=53:1:56 I ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,X)="X" S Y=1
- D S(APCLPD,51,$S(Y:"",1:"X"))
- D S(APCLPD,60,$$ACE^APCLP816(APCLPD,APCL6MBD,APCLRED))
- IMM ;
- D S(APCLPD,62,$$ASPIRIN^APCLP816(APCLPD,APCLRBD,APCLRED))
- D S(APCLPD,61,$$LIPID^APCLP816(APCLPD,APCL6MBD,APCLRED))
- D S(APCLPD,76,$$EKG^APCLP812(APCLPD,APCLRED))
- LABS ;
- D S(APCLPD,90,$$FGLUCOSE^APCLD718(APCLPD,$P(^DPT(APCLPD,0),U,3),APCLADAT))
- D S(APCLPD,91,$$G75^APCLD718(APCLPD,$P(^DPT(APCLPD,0),U,3),APCLADAT))
- D S(APCLPD,86,$$CHOL^APCLD718(APCLPD,APCLBDAT,APCLADAT))
- D S(APCLPD,88,$$LDL^APCLD718(APCLPD,APCLBDAT,APCLADAT))
- D S(APCLPD,89,$$HDL^APCLD718(APCLPD,APCLBDAT,APCLADAT))
- D S(APCLPD,90,$$TRIG^APCLD718(APCLPD,APCLBDAT,APCLADAT))
- ;
- D S(APCLPD,112,$$BMI^APCLD718(APCLPD,APCLRBD,APCLRED))
- Q
- DATE(D) ;EP
- I $G(D)="" Q ""
- Q $E(D,4,5)_"/"_$E(D,6,7)_"/"_(1700+($E(D,1,3)))
- TRIBE(P) ;EP
- I '$G(P) Q ""
- I '$D(^AUPNPAT(P,11)) Q ""
- Q $$TRIBE^AUPNPAT(P,"C")_"^"_$$TRIBE^AUPNPAT(P,"E")
- COMM(P) ;EP
- I '$G(P) Q ""
- I '$D(^AUPNPAT(P,11)) Q ""
- Q $$COMMRES^AUPNPAT(P,"C")_"^"_$$COMMRES^AUPNPAT(P,"E")
- APCLP810 ; IHS/CMI/LAB -IHS -GETS DATA FOR DIABETES QA REPORT ;
- +1 ;;2.0;IHS PCC SUITE;;MAY 14, 2009
- +2 ;
- +3 ;
- EN ; - ENTRY POINT - from ^APCLASK
- +1 KILL ^APCLDATA("APCLEPI",$JOB)
- +2 SET ^XTMP("APCLP81",0)=$$FMADD^XLFDT(DT,14)_"^"_DT_"^PRE DM AUDIT 2007"
- +3 SET APCLEPIN=0
- +4 SET APCLPD=0
- FOR
- SET APCLPD=$ORDER(^XTMP("APCLP81",APCLJOB,APCLBTH,"PATS",APCLPD))
- IF 'APCLPD
- QUIT
- Begin DoDot:1
- +5 IF APCLTYPE'="P"
- IF APCLTYPE'="S"
- IF $$DEMO^APCLUTL(APCLPD,$GET(APCLDEMO))
- QUIT
- +6 ;I APCLPREP=2 D EPIREC Q
- +7 DO GATHER
- End DoDot:1
- +8 ;I APCLPREP=2 D WRITEF^APCLP81 Q
- +9 IF APCLPREP=2!(APCLPREP=3)
- DO CUML^APCLP815
- +10 QUIT
- S(P,I,V) ;
- +1 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",P,I)=V
- +2 QUIT
- GATHER ;gather data for 1 patient
- +1 SET APCLER=0
- +1 ;set report dates
- +2 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,1)=$SELECT($GET(APCLFISC)]"":APCLFISC,1:APCLRBD_" - "_APCLRED)
- +3 ;set audit date to DT
- +4 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,2)=$$FMTE^XLFDT(DT)
- +5 ;set area, su, facility code and name
- +6 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,4)=$PIECE(^DIC(4,DUZ(2),0),U)
- +7 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,6)=$EXTRACT($PIECE(^AUTTLOC(DUZ(2),0),U,10),1,2)
- +8 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,8)=$EXTRACT($PIECE(^AUTTLOC(DUZ(2),0),U,10),3,4)
- +9 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,10)=$EXTRACT($PIECE(^AUTTLOC(DUZ(2),0),U,10),5,6)
- +10 ;# pats in register
- +11 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,12)=$SELECT(APCLDMRG:$$RSTAT^APCLDM6(APCLDMRG,"A"),1:"")
- +12 ;reviewer
- +13 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,14)=$PIECE(^VA(200,DUZ,0),U,2)
- +14 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,15)=$$VAL^XBDIQ1(9000001,APCLPD,.14)
- DEMO ;pat demographics
- +1 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,16)=$$HRN^AUPNPAT(APCLPD,DUZ(2))
- +2 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,18)=$$DOB^AUPNPAT(APCLPD,"E")
- +3 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,20)=$$VAL^XBDIQ1(2,APCLPD,.02)
- +4 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,120)=$$TRIBE(APCLPD)
- +5 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,121)=$$COMM(APCLPD)
- DXDT ;dates of and dm dxs
- +1 KILL APCLDATA
- DO IFG^APCLP813(APCLPD,.APCLDATA)
- +2 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,200)=$SELECT($DATA(APCLDATA):"Yes",1:"No")
- +3 SET X=0
- FOR
- SET X=$ORDER(APCLDATA(X))
- IF X'=+X
- QUIT
- Begin DoDot:1
- +4 SET Y=200_"."_X
- +5 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,Y)=APCLDATA(X)
- End DoDot:1
- +6 KILL APCLDATA
- DO IGT^APCLP813(APCLPD,.APCLDATA)
- +7 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,210)=$SELECT($DATA(APCLDATA):"Yes",1:"No")
- +8 SET X=0
- FOR
- SET X=$ORDER(APCLDATA(X))
- IF X'=+X
- QUIT
- Begin DoDot:1
- +9 SET Y=210_"."_X
- +10 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,Y)=APCLDATA(X)
- End DoDot:1
- +11 KILL APCLDATA
- DO MS^APCLP813(APCLPD,.APCLDATA)
- +12 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,220)=$SELECT($DATA(APCLDATA):"Yes",1:"No")
- +13 SET X=0
- FOR
- SET X=$ORDER(APCLDATA(X))
- IF X'=+X
- QUIT
- Begin DoDot:1
- +14 SET Y=220_"."_X
- +15 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,Y)=APCLDATA(X)
- End DoDot:1
- +16 KILL APCLDATA
- DO ABNG^APCLP813(APCLPD,.APCLDATA)
- +17 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,230)=$SELECT($DATA(APCLDATA):"Yes",1:"No")
- +18 SET X=0
- FOR
- SET X=$ORDER(APCLDATA(X))
- IF X'=+X
- QUIT
- Begin DoDot:1
- +19 SET Y=230_"."_X
- +20 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,Y)=APCLDATA(X)
- End DoDot:1
- +21 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,22)=$SELECT(APCLDMRG:$$CMSFDX^APCLP813(APCLPD,APCLDMRG,"D"),1:"")
- +22 SET ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,24)=$SELECT(APCLDMRG:$$CMSFDX^APCLP813(APCLPD,APCLDMRG,"DX"),1:"")
- +23 IF $$PLDMDXS^APCLP813(APCLPD)]""
- DO S(APCLPD,25,"PLEASE NOTE: Diabetes is on the Problem list for this patient")
- +24 SET X=$$FRSTDMDX^APCLP813(APCLPD,"E")
- IF X]""
- DO S(APCLPD,26,"PLEASE NOTE: Diabetes has been used as a diagnosis in PCC: "_X)
- +25 DO S(APCLPD,27,$$TOBACCO^APCLP816(APCLPD,APCLRED))
- +26 DO S(APCLPD,28,$$CESS^APCLP811(APCLPD,APCLRBD,APCLRED))
- VITAL ;
- +1 DO S(APCLPD,30,$$LASTHT^APCLP813(APCLPD,APCLRED))
- +2 DO S(APCLPD,32,$$LASTWT^APCLP813(APCLPD,APCLRED))
- +3 DO S(APCLPD,33,$$LASTWC^APCLP813(APCLPD,APCLRED))
- +4 ;htn dx
- +5 DO S(APCLPD,34,$$HTNDX^APCLP813(APCLPD,APCLRED))
- +6 ;last 3 BPs
- +7 DO S(APCLPD,36,$$BPS^APCLP813(APCLPD,APCLRBD,APCLRED))
- EXAMS ;
- +1 DO S(APCLPD,44,$$DIETEDUC^APCLP817(APCLPD,APCLRBD,APCLRED))
- +2 DO S(APCLPD,46,$$EXEDUC^APCLP817(APCLPD,APCLRBD,APCLRED))
- THERAPY ;
- +1 SET APCL6MBD=$$FMADD^XLFDT(APCLADAT,-(6*31))
- SET APCL6MBD=$$FMTE^XLFDT(APCL6MBD)
- +2 DO S(APCLPD,53,$$SULF^APCLP812(APCLPD,APCL6MBD,APCLRED))
- +3 DO S(APCLPD,54,$$MET^APCLP812(APCLPD,APCL6MBD,APCLRED))
- +4 DO S(APCLPD,55,$$ACAR^APCLP812(APCLPD,APCL6MBD,APCLRED))
- +5 DO S(APCLPD,56,$$TROG^APCLP812(APCLPD,APCL6MBD,APCLRED))
- +6 SET Y=""
- FOR X=53:1:56
- IF ^XTMP("APCLP81",APCLJOB,APCLBTH,"AUDIT",APCLPD,X)="X"
- SET Y=1
- +7 DO S(APCLPD,51,$SELECT(Y:"",1:"X"))
- +8 DO S(APCLPD,60,$$ACE^APCLP816(APCLPD,APCL6MBD,APCLRED))
- IMM ;
- +1 DO S(APCLPD,62,$$ASPIRIN^APCLP816(APCLPD,APCLRBD,APCLRED))
- +2 DO S(APCLPD,61,$$LIPID^APCLP816(APCLPD,APCL6MBD,APCLRED))
- +3 DO S(APCLPD,76,$$EKG^APCLP812(APCLPD,APCLRED))
- LABS ;
- +1 DO S(APCLPD,90,$$FGLUCOSE^APCLD718(APCLPD,$PIECE(^DPT(APCLPD,0),U,3),APCLADAT))
- +2 DO S(APCLPD,91,$$G75^APCLD718(APCLPD,$PIECE(^DPT(APCLPD,0),U,3),APCLADAT))
- +3 DO S(APCLPD,86,$$CHOL^APCLD718(APCLPD,APCLBDAT,APCLADAT))
- +4 DO S(APCLPD,88,$$LDL^APCLD718(APCLPD,APCLBDAT,APCLADAT))
- +5 DO S(APCLPD,89,$$HDL^APCLD718(APCLPD,APCLBDAT,APCLADAT))
- +6 DO S(APCLPD,90,$$TRIG^APCLD718(APCLPD,APCLBDAT,APCLADAT))
- +7 ;
- +8 DO S(APCLPD,112,$$BMI^APCLD718(APCLPD,APCLRBD,APCLRED))
- +9 QUIT
- DATE(D) ;EP
- +1 IF $GET(D)=""
- QUIT ""
- +2 QUIT $EXTRACT(D,4,5)_"/"_$EXTRACT(D,6,7)_"/"_(1700+($EXTRACT(D,1,3)))
- TRIBE(P) ;EP
- +1 IF '$GET(P)
- QUIT ""
- +2 IF '$DATA(^AUPNPAT(P,11))
- QUIT ""
- +3 QUIT $$TRIBE^AUPNPAT(P,"C")_"^"_$$TRIBE^AUPNPAT(P,"E")
- COMM(P) ;EP
- +1 IF '$GET(P)
- QUIT ""
- +2 IF '$DATA(^AUPNPAT(P,11))
- QUIT ""
- +3 QUIT $$COMMRES^AUPNPAT(P,"C")_"^"_$$COMMRES^AUPNPAT(P,"E")