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

BKMQQCR6.m

Go to the documentation of this file.
  1. BKMQQCR6 ;PRXM/HC/BWF - BKMV Quality of Care Report; [ 1/19/2005 7:16 PM ]
  1. ;;2.1;HIV MANAGEMENT SYSTEM;;Feb 07, 2011
  1. ; Quality of Care Audit Report
  1. Q
  1. CD4CALC ; EP - CD4 calculation
  1. N CD4TOT,BKMDFN,CNT1,CNT2,CNT3,CNT4,CNT5,CNT6,FOUND,FOUND1,FOUND2,VSTDT,TEST,CD4CNT,PTOTAL
  1. S PTOTAL=$G(@GLOB@("HIVTOT1"))
  1. S CD4TOT=$G(@GLOB@("HIVCHK","CD4PTCNT"))
  1. I CD4TOT=""!(CD4TOT=0) Q
  1. S BKMDFN=0,(CNT1,CNT2,CNT3,CNT4,CNT5,CNT6)=0
  1. F S BKMDFN=$O(@GLOB@("HIVCHK",BKMDFN)) Q:'BKMDFN D
  1. .I '$D(@GLOB@("HIVCHK",BKMDFN,"CD4ABS")),'$D(@GLOB@("HIVCHK",BKMDFN,"CD4ALL")) Q
  1. .S VSTDT="",(FOUND,FOUND1,FOUND2)=0
  1. .F S VSTDT=$O(@GLOB@("HIVCHK",BKMDFN,"CD4ABS",VSTDT),-1) Q:VSTDT=""!(FOUND&FOUND1&FOUND2) D
  1. ..S TEST=""
  1. ..F S TEST=$O(@GLOB@("HIVCHK",BKMDFN,"CD4ABS",VSTDT,TEST),-1) Q:TEST=""!(FOUND&FOUND1&FOUND2) D
  1. ...S CD4CNT=$P($G(@GLOB@("HIVCHK",BKMDFN,"CD4ABS",VSTDT,TEST)),U)
  1. ...I CD4CNT'?1N.E Q
  1. ...;S FOUND=1
  1. ...I CD4CNT<50,'FOUND1 S:'FOUND CNT1=CNT1+1,FOUND=1 S FOUND1=1 Q
  1. ...I CD4CNT<200,'FOUND2 S:'FOUND CNT2=CNT2+1,FOUND=1 S FOUND2=1 Q
  1. ...S:'FOUND CNT3=CNT3+1
  1. ...S FOUND=1
  1. .I 'FOUND S CNT4=CNT4+1 Q ; Includes patients with no ABS test but with an ALL test.
  1. .;I FOUND1 S CNT5=CNT5+1
  1. .;I FOUND2 S CNT6=CNT6+1
  1. S BKMDFN=0,(CNT5,CNT6)=0
  1. F S BKMDFN=$O(@GLOB@("HIVCHK",BKMDFN)) Q:'BKMDFN D
  1. .I '$D(@GLOB@("HIVCHK",BKMDFN,"CD4ABS12")) Q
  1. .S VSTDT="",(FOUND,FOUND1,FOUND2)=0
  1. .F S VSTDT=$O(@GLOB@("HIVCHK",BKMDFN,"CD4ABS12",VSTDT),-1) Q:VSTDT=""!(FOUND1&FOUND2) D
  1. ..S TEST=""
  1. ..F S TEST=$O(@GLOB@("HIVCHK",BKMDFN,"CD4ABS12",VSTDT,TEST),-1) Q:TEST=""!(FOUND1&FOUND2) D
  1. ...S CD4CNT=$P($G(@GLOB@("HIVCHK",BKMDFN,"CD4ABS12",VSTDT,TEST)),U)
  1. ...I CD4CNT'?1N.E Q
  1. ...;S FOUND=1
  1. ...I CD4CNT<50,'FOUND1 S FOUND1=1 Q
  1. ...I CD4CNT<200,'FOUND2 S FOUND2=1 Q
  1. .I FOUND1 S CNT5=CNT5+1
  1. .I FOUND2 S CNT6=CNT6+1
  1. S @GLOB@("CD4T","TOTAL","CNT")=CD4TOT
  1. S @GLOB@("CD4T","TOTAL","PERC")=CD4TOT/PTOTAL*100
  1. S @GLOB@("CD4T","LT50","PERC")=CNT1/CD4TOT*100
  1. S @GLOB@("CD4T","LT50","CNT")=CNT1
  1. S @GLOB@("CD4T","BET50/200","PERC")=CNT2/CD4TOT*100
  1. S @GLOB@("CD4T","BET50/200","CNT")=CNT2
  1. S @GLOB@("CD4T","GTE200","PERC")=CNT3/CD4TOT*100
  1. S @GLOB@("CD4T","GTE200","CNT")=CNT3
  1. S @GLOB@("CD4T","UND","PERC")=CNT4/CD4TOT*100
  1. S @GLOB@("CD4T","UND","CNT")=CNT4
  1. S @GLOB@("CD4T","LT50 ANY","CNT")=CNT5
  1. ;S @GLOB@("CD4T","BET50/200 ANY","CNT")=CNT6
  1. S @GLOB@("CD4T","LT200 ANY","CNT")=CNT5+CNT6 ;***
  1. Q
  1. VRLLDC ; EP - Viral Load Calculation
  1. N VRLTOT,BKMDFN,CNT1,CNT2,CNT3,VSTDT,TEST,VRLRES,FOUND,PTOTAL,RES,OPER
  1. S PTOTAL=$G(@GLOB@("HIVTOT1"))
  1. S VRLTOT=$G(@GLOB@("HIVCHK","VRLPTCNT"))
  1. I VRLTOT=""!(VRLTOT=0) Q
  1. S BKMDFN=0,(CNT1,CNT2,CNT3)=0
  1. F S BKMDFN=$O(@GLOB@("HIVCHK",BKMDFN)) Q:'BKMDFN D
  1. .I '$D(@GLOB@("HIVCHK",BKMDFN,"VRL")) Q
  1. .S VSTDT="",FOUND=0
  1. .F S VSTDT=$O(@GLOB@("HIVCHK",BKMDFN,"VRL",VSTDT),-1) Q:VSTDT=""!FOUND D
  1. ..S TEST=""
  1. ..F S TEST=$O(@GLOB@("HIVCHK",BKMDFN,"VRL",VSTDT,TEST),-1) Q:TEST=""!FOUND D
  1. ...S VRLRES=$P($G(@GLOB@("HIVCHK",BKMDFN,"VRL",VSTDT,TEST)),U)
  1. ...I VRLRES=""!(VRLRES?.A) Q
  1. ...;I VRLRES'?1N.E Q
  1. ...S FOUND=1
  1. ...S OPER=$S($E(VRLRES,1)="<":"<",$E(VRLRES,1)=">":">",1:"")
  1. ...S VRLRES=$S($E(VRLRES,1)?.P:$E(VRLRES,2,99),1:VRLRES)
  1. ...S RES=100000
  1. ...I OPER="" S OPER="<"
  1. ...I OPER="<",@(VRLRES_OPER_RES) S CNT1=CNT1+1 Q
  1. ...;I VRLRES<100000 S CNT1=CNT1+1 Q
  1. ...S CNT2=CNT2+1
  1. .I 'FOUND S CNT3=CNT3+1
  1. S @GLOB@("VRLT","TOTAL","CNT")=VRLTOT
  1. S @GLOB@("VRLT","TOTAL","PERC")=VRLTOT/PTOTAL*100
  1. S @GLOB@("VRLT","LT100K","CNT")=CNT1
  1. S @GLOB@("VRLT","LT100K","PERC")=CNT1/VRLTOT*100
  1. S @GLOB@("VRLT","GTE100K","CNT")=CNT2
  1. S @GLOB@("VRLT","GTE100K","PERC")=CNT2/VRLTOT*100
  1. S @GLOB@("VRLT","UND","CNT")=CNT3
  1. S @GLOB@("VRLT","UND","PERC")=CNT3/VRLTOT*100
  1. Q
  1. RPRCALC ; EP - Rapid Plasma Reagin (and FTA-ABS) Calculation
  1. N TOTALRPR,BKMDFN,CNT1,CNT2,CNT3,CNT4,CNT5,VSTDT,TEST,RPRRES,PTOTAL,REFVSTDT,DFNSTAT
  1. S PTOTAL=$G(@GLOB@("HIVTOT1"))
  1. S TOTALRPR=$G(@GLOB@("HIVCHK","RPRPTCNT"))
  1. I +TOTALRPR=0 Q
  1. S BKMDFN=0,(CNT1,CNT2,CNT3,CNT4,CNT5)=0
  1. F S BKMDFN=$O(@GLOB@("HIVCHK",BKMDFN)) Q:'BKMDFN D
  1. .I '$D(@GLOB@("HIVCHK",BKMDFN,"RPRREF")),'$D(@GLOB@("HIVCHK",BKMDFN,"RPR")) Q
  1. .S VSTDT="",FOUND=0,DFNSTAT=0
  1. .F S VSTDT=$O(@GLOB@("HIVCHK",BKMDFN,"RPR",VSTDT),-1) Q:VSTDT="" D Q:FOUND
  1. ..S TEST=""
  1. ..F S TEST=$O(@GLOB@("HIVCHK",BKMDFN,"RPR",VSTDT,TEST),-1) Q:TEST="" D Q:FOUND
  1. ...S RPRRES=$P($G(@GLOB@("HIVCHK",BKMDFN,"RPR",VSTDT,TEST)),U)
  1. ...I $$POSITIVE^BKMVF32(RPRRES) S DFNSTAT=1,FOUND=1 Q
  1. ...I $$NEGATIVE^BKMVF32(RPRRES) S DFNSTAT=2,FOUND=1 Q
  1. .S REFVSTDT=$O(@GLOB@("HIVCHK",BKMDFN,"RPRREF",""),-1)
  1. .D
  1. ..I REFVSTDT'="",REFVSTDT>VSTDT D Q
  1. ...S TEST=$O(@GLOB@("HIVCHK",BKMDFN,"RPRREF",REFVSTDT,""),-1)
  1. ...S RPRRES=$P($G(@GLOB@("HIVCHK",BKMDFN,"RPRREF",REFVSTDT,TEST)),U)
  1. ...I $P(RPRRES,"^")="NOT MEDICALLY INDICATED" S CNT5=CNT5+1 Q
  1. ...S CNT4=CNT4+1
  1. ..I DFNSTAT=1 S CNT1=CNT1+1 Q
  1. ..I DFNSTAT=2 S CNT2=CNT2+1 Q
  1. ..S CNT3=CNT3+1
  1. S @GLOB@("RPRT","TOTAL","CNT")=TOTALRPR
  1. S @GLOB@("RPRT","TOTAL","PERC")=TOTALRPR/PTOTAL*100
  1. S @GLOB@("RPRT","REAC","CNT")=CNT1
  1. S @GLOB@("RPRT","REAC","PERC")=CNT1/TOTALRPR*100
  1. S @GLOB@("RPRT","NONREAC","CNT")=CNT2
  1. S @GLOB@("RPRT","NONREAC","PERC")=CNT2/TOTALRPR*100
  1. S @GLOB@("RPRT","UND","CNT")=CNT3
  1. S @GLOB@("RPRT","UND","PERC")=CNT3/TOTALRPR*100
  1. S @GLOB@("RPRT","REF","CNT")=CNT4
  1. S @GLOB@("RPRT","REF","PERC")=CNT4/TOTALRPR*100
  1. S @GLOB@("RPRT","REFNMI","CNT")=CNT5
  1. S @GLOB@("RPRT","REFNMI","PERC")=CNT5/TOTALRPR*100
  1. Q