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

BQITRCKN.m

Go to the documentation of this file.
  1. BQITRCKN ;VNGT/HS/ALA-CVD Known Treatment Prompts ; 02 Sep 2008 11:51 AM
  1. ;;2.5;ICARE MANAGEMENT SYSTEM;**1**;May 24, 2016;Build 17
  1. ;
  1. ;
  1. ASA(BQDFN) ; EP CVD.TP-1 No ASA/Antiplatelet
  1. ; If NOT on ASA OR Warfarin OR other Anti Platelet Medication or
  1. ; NOT contraindicated
  1. NEW CT,X,VISIT,VSDTM,MEET,DESC,TIEN,T2,PRGM,QFL,RESULT,IEN
  1. NEW ENDT,C,BQGPRG,BGPDXBD,BGPDXED,TAX,TREF
  1. S MEET=0,DESC=""
  1. D
  1. . ; If not on ASA Medications
  1. . S X=$$TAX^BQITRUTL("","DM AUDIT ASPIRIN DRUGS",1,BQDFN,9000010.14)
  1. . ; if returns a found medication, check if it is an active medication
  1. . I $P(X,U,1)=1 D
  1. .. I $$ACTMED^BKMQQCR4($P(X,U,5)) Q
  1. .. S $P(X,U,1)=0
  1. . I $P(X,U,1)=1 D Q
  1. .. S MEET=0,DESC=DESC_"On ASA Meds ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$$GET1^DIQ(9000010.14,$P(X,U,5)_",",.01,"E")_")"
  1. . S MEET=1,DESC=DESC_"Not on ASA Meds; "
  1. . ; If not on Warfarin Medications
  1. . S X=$$TAX^BQITRUTL("","BGP CMS WARFARIN MEDS",1,BQDFN,9000010.14)
  1. . ; if returns a found medication, check if it is an active medication
  1. . I $P(X,U,1)=1 D
  1. .. I $$ACTMED^BKMQQCR4($P(X,U,5)) Q
  1. .. S $P(X,U,1)=0
  1. . I $P(X,U,1)=1 D Q
  1. .. S MEET=0,DESC=DESC_"On Warfarin Meds ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$$GET1^DIQ(9000010.14,$P(X,U,5)_",",.01,"E")_")"
  1. . S MEET=1,DESC=DESC_"Not on Warfarin Meds; "
  1. . ; If not on other Anti Platelet Medications
  1. . S TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. . F TAX="BGP CMS ANTI-PLATELET CLASS","BGP ANTI-PLATELET DRUGS" D BLD^BQITUTL(TAX,TREF)
  1. . S X=$$TAX^BQITRUTL("","",1,BQDFN,9000010.14,"","",.TREF)
  1. . ; if returns a found medication, check if it is an active medication
  1. . I $P(X,U,1)=1 D
  1. .. I $$ACTMED^BKMQQCR4($P(X,U,5)) Q
  1. .. S $P(X,U,1)=0
  1. . I $P(X,U,1)=1 S MEET=0,DESC=DESC_"On Anti-Platelet Meds ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$$GET1^DIQ(9000010.14,$P(X,U,5)_",",.01,"E")_")"
  1. . I $P(X,U,1)=0 S MEET=1,DESC=DESC_"Not on Anti-Platelet Meds"
  1. . K @TREF
  1. D
  1. . ; If ASA/Warfarin/Anti-Platelet Medication contraindication
  1. . S X=$$ASA^BQITRCON(BQDFN,$G(BDATE,""),$G(EDATE,""))
  1. . I $P(X,U,1)=1 S MEET=0,DESC="Has a contraindication: "_$P(X,U,2) Q
  1. . S MEET=$S(MEET:0,1:1)
  1. . ; Check for allergy
  1. . S X=$$ASA^BQITRALG(BQDFN,$G(BDATE,""),$G(EDATE,""))
  1. . I $P(X,U,1)=1 S MEET=0,DESC="Has an allergy: "_$P(X,U,2) Q
  1. . S MEET=$S(MEET:0,1:1)
  1. Q MEET_U_DESC
  1. ;
  1. STAT(BQDFN) ; EP CVD.TP-2 No Statin
  1. NEW CT,X,VISIT,VSDTM,MEET,DESC,TIEN,T2,PRGM,QFL,RESULT,TREF
  1. NEW GREF,IEN,ENDT,C,BQGPRG,BGPDXBD,BGPDXED,TAX
  1. S MEET=0,DESC=""
  1. S TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. F TAX="BGP HEDIS STATIN MEDS","BGP HEDIS STATIN NDC" D BLD^BQITUTL(TAX,TREF)
  1. S X=$$TAX^BQITRUTL("","",1,BQDFN,9000010.14,"","",.TREF)
  1. ; if returns a found medication, check if it is an active medication
  1. I $P(X,U,1)=1 D
  1. . I $$ACTMED^BKMQQCR4($P(X,U,5)) Q
  1. . S $P(X,U,1)=0
  1. I $P(X,U,1)=1 S MEET=0,DESC=DESC_"On Statin Meds ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$$GET1^DIQ(9000010.14,$P(X,U,5)_",",.01,"E")_")"
  1. I $P(X,U,1)=0 S MEET=1,DESC=DESC_"Not on Statin Meds"
  1. D
  1. . ; If Statin Medication is contraindicated
  1. . S X=$$STAT^BQITRCON(BQDFN,$G(BDATE,""),$G(EDATE,""))
  1. . I $P(X,U,1)=1 S MEET=0,DESC="Has a contraindication: "_$P(X,U,2) Q
  1. . S MEET=$S(MEET:0,1:1)
  1. . ; Check for allergy
  1. . S X=$$STAT^BQITRALG(BQDFN,$G(BDATE,""),$G(EDATE,""))
  1. . I $P(X,U,1)=1 S MEET=0,DESC="Has an allergy: "_$P(X,U,2) Q
  1. . S MEET=$S(MEET:0,1:1)
  1. K @TREF
  1. Q MEET_U_DESC
  1. ;
  1. BETA(BQDFN,ONF) ;EP CVD.TP-3 No Beta Blocker
  1. ; Input parameter
  1. ; BQDFN - Patient internal entry number
  1. ; ONF - 'On' flag 1=if on medication, 0=if not on medication
  1. NEW CT,X,VISIT,VSDTM,MEET,DESC,TIEN,T2,PRGM,QFL,RESULT,GREF,IEN,ENDT,C,BQGPRG,BGPDXBD,BGPDXED
  1. S MEET=0,DESC=""
  1. S ONF=$G(ONF,0)
  1. ;
  1. ; If 2 of last 3 non-ER blood pressures in past 2 years are Systolic >130
  1. ; or Diastolic >80
  1. S RESULT=$$BP(BQDFN)
  1. I $P(RESULT,U,1)=0 Q RESULT
  1. ; And not on Beta Blocker and not contraindicated
  1. I 'ONF S RESULT=$$BETAN(BQDFN)
  1. ; And on Beta Blocker and not contraindicated
  1. I ONF S RESULT=$$BETAO(BQDFN)
  1. Q RESULT
  1. ;
  1. BETAN(BQDFN) ;EP - Not on Beta Blocker
  1. NEW X,MEET,DESC,TAX,TREF
  1. S MEET=0,DESC=""
  1. S TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. F TAX="BGP CMS BETA BLOCKER CLASS","BGP HEDIS BETA BLOCKER MEDS","BGP HEDIS BETA BLOCKER NDC" D BLD^BQITUTL(TAX,TREF)
  1. S X=$$TAX^BQITRUTL("","",1,BQDFN,9000010.14,"","",.TREF)
  1. ; if returns a found medication, check if it is an active medication
  1. I $P(X,U,1)=1 D
  1. . I $$ACTMED^BKMQQCR4($P(X,U,5)) Q
  1. . S $P(X,U,1)=0
  1. I $P(X,U,1)=1 S MEET=0,DESC=DESC_"On Beta Blocker Meds ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$$GET1^DIQ(9000010.14,$P(X,U,5)_",",.01,"E")_")"
  1. I $P(X,U,1)=0 S MEET=1,DESC="Not on Beta Blocker Meds"
  1. D
  1. . S X=$$BETA^BQITRCON(BQDFN,$G(BDATE,""),$G(EDATE,""))
  1. . I $P(X,U,1)=1 S MEET=0,DESC="Has a contraindication: "_$P(X,U,2) Q
  1. . S MEET=$S(MEET:0,1:1)
  1. . S X=$$BETA^BQITRALG(BQDFN,$G(BDATE,""),$G(EDATE,""))
  1. . I $P(X,U,1)=1 S MEET=0,DESC="Has an allergy: "_$P(X,U,2) Q
  1. . S MEET=$S(MEET:0,1:1)
  1. K @TREF
  1. Q MEET_U_DESC
  1. ;
  1. BETAO(BQDFN) ;EP - On Beta Blocker
  1. NEW X,MEET,DESC,TAX,TREF
  1. S MEET=0,DESC=""
  1. S TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. F TAX="BGP CMS BETA BLOCKER CLASS","BGP HEDIS BETA BLOCKER MEDS","BGP HEDIS BETA BLOCKER NDC" D BLD^BQITUTL(TAX,TREF)
  1. S X=$$TAX^BQITRUTL("","",1,BQDFN,9000010.14,"","",.TREF)
  1. ; if returns a found medication, check if it is an active medication
  1. I $P(X,U,1)=1 D
  1. . I $$ACTMED^BKMQQCR4($P(X,U,5)) Q
  1. . S $P(X,U,1)=0
  1. I $P(X,U,1)=1 S MEET=1,DESC=DESC_"On Beta Blocker Meds ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$$GET1^DIQ(9000010.14,$P(X,U,5)_",",.01,"E")_")"
  1. I $P(X,U,1)=0 S MEET=0,DESC="Not on Beta Blocker Meds"
  1. K @TREF
  1. D
  1. . S X=$$BETA^BQITRCON(BQDFN,$G(BDATE,""),$G(EDATE,""))
  1. . I $P(X,U,1)=1 S MEET=0,DESC="Has a contraindication: "_$P(X,U,2) Q
  1. . S MEET=$S(MEET:0,1:1)
  1. . S X=$$BETA^BQITRALG(BQDFN,$G(BDATE,""),$G(EDATE,""))
  1. . I $P(X,U,1)=1 S MEET=0,DESC="Has an allergy: "_$P(X,U,2) Q
  1. . S MEET=$S(MEET:0,1:1)
  1. Q MEET_U_DESC
  1. ;
  1. ACEI(BQDFN) ;EP CVD.TP-4 (TP-5) No ACEI
  1. ; If 2 of last 3 non-ER blood pressures in past 2 years are Systolic >130
  1. ; or Diastolic >80 and not on ACEI or ARB and not contraindicated
  1. NEW CT,X,VISIT,VSDTM,MEET,DESC,TIEN,T2,PRGM,QFL,RESULT,TREF,GREF,IEN
  1. NEW ENDT,C,BQGPRG,BGPDXBD,BGPDXED,TAX,TREF,TEXT,BQI,QFL
  1. S MEET=0,DESC="",TEXT=""
  1. S X=$$BP^BQITRUTL("T-24M",BQDFN,130,80,">")
  1. I $P(X,U,2)'="" D
  1. . NEW NDATE
  1. . S QFL=0
  1. . F BQI=1:1:3 D Q:QFL
  1. .. I $P($P(X,U,2),";",BQI)="No BPs in timeframe" S TEXT=$P($P(X,U,2),";",BQI),QFL=1 Q
  1. .. S NDATE=$$FMTE^BQIUL1($P($P(X,U,2),";",BQI))_"("_$P($P(X,U,5),";",BQI)_")",TEXT=TEXT_NDATE_";"
  1. I $P(X,U,1)=0 S MEET=0,DESC="2 of last 3 non-ER BP are not valid values ["_TEXT_"]" Q MEET_U_DESC
  1. I $P(X,U,1)=1 S MEET=1,DESC=DESC_$$PBP(DESC,X)
  1. I 'MEET Q MEET_U_DESC
  1. S TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. F TAX="BGP CMS ACEI MEDS CLASS","BGP HEDIS ACEI MEDS","BGP HEDIS ACEI NDC" D BLD^BQITUTL(TAX,TREF)
  1. S X=$$TAX^BQITRUTL("","",1,BQDFN,9000010.14,"","",.TREF)
  1. ; if returns a found medication, check if it is an active medication
  1. I $P(X,U,1)=1 D
  1. . I $$ACTMED^BKMQQCR4($P(X,U,5)) Q
  1. . S $P(X,U,1)=0
  1. I $P(X,U,1)=1 S MEET=0,DESC=DESC_"On ACEI Meds ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$$GET1^DIQ(9000010.14,$P(X,U,5)_",",.01,"E")_")"
  1. I $P(X,U,1)=0 S MEET=1,DESC=DESC_" and Not on ACEI Meds"
  1. I MEET D ACCON
  1. K @TREF
  1. I MEET Q MEET_U_DESC
  1. F TAX="BGP CMS ARB MEDS CLASS","BGP HEDIS ARB MEDS","BGP HEDIS ARB NDC" D BLD^BQITUTL(TAX,TREF)
  1. S X=$$TAX^BQITRUTL("","",1,BQDFN,9000010.14,"","",.TREF)
  1. ; if returns a found medication, check if it is an active medication
  1. I $P(X,U,1)=1 D
  1. . I $$ACTMED^BKMQQCR4($P(X,U,5)) Q
  1. . S $P(X,U,1)=0
  1. I $P(X,U,1)=1 S MEET=0,DESC=DESC_"On ARB Meds ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$$GET1^DIQ(9000010.14,$P(X,U,5)_",",.01,"E")_")"
  1. I $P(X,U,1)=0 S MEET=1,DESC="Not on ARB Meds"
  1. I MEET D ACCON
  1. K @TREF
  1. Q MEET_U_DESC
  1. ;
  1. ACCON ; Check for ACEI contraindication
  1. S X=$$ACEI^BQITRCON(BQDFN,$G(BDATE,""),$G(EDATE,""))
  1. I $P(X,U,1)=1 S MEET=0,DESC="Has a contraindication: "_$P(X,U,2) Q
  1. S MEET=$S(MEET:0,1:1)
  1. S X=$$ACEI^BQITRALG(BQDFN,$G(BDATE,""),$G(EDATE,""))
  1. I $P(X,U,1)=1 S MEET=0,DESC="Has an allergy: "_$P(X,U,2) Q
  1. S MEET=$S(MEET:0,1:1)
  1. Q
  1. ;
  1. HBP(BQDFN) ;EP CVD.TP-5 High BP
  1. ; If 2 of last 3 non-ER blood pressures in past 2 years are Systolic >130
  1. ; or Diastolic >80 and on beta blocker and on ACEI or ARB and not
  1. ; contraindicated
  1. NEW RESULT1,RESULT2,X,MEET,DESC
  1. S MEET=0,DESC=""
  1. S RESULT1=$$BETA(BQDFN,1)
  1. ; If '0', not on Beta Blocker
  1. I $P(RESULT1,U,1)=0 Q RESULT1
  1. S RESULT2=$$ACEI(BQDFN)
  1. ; If '1', not on ACEI
  1. I $P(RESULT2,U,1)=1 Q RESULT2
  1. S MEET=1,DESC=DESC_$P(RESULT1,U,2)_" and "_$P(RESULT2,U,2)
  1. Q MEET_U_DESC
  1. ;
  1. HLDL(BQDFN,TMFRAME) ;EP CVD.TP-6 High LDL
  1. ; If most recent LDL in past year >100 and on Statin Medication
  1. NEW X,MEET,DESC,TAX,TREF,X1
  1. S MEET=0,DESC=""
  1. S TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. F TAX="DM AUDIT LDL CHOLESTEROL TAX","BGP LDL LOINC CODES" D BLD^BQITUTL(TAX,TREF)
  1. S X=$$LAB^BQITRUTL("T-12M",1,BQDFN,"",100,">","","",.TREF)
  1. I $P(X,U,1)=0 S MEET=0,DESC="Most recent LDL not greater than 100 ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$P(X,U,3)_")"
  1. I $P(X,U,1)=1 S MEET=1,DESC="Most recent LDL greater than 100 ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$P(X,U,3)_") and ",X1=X
  1. I 'MEET Q MEET_U_DESC
  1. K @TREF
  1. F TAX="BGP HEDIS STATIN MEDS","BGP HEDIS STATIN NDC" D BLD^BQITUTL(TAX,TREF)
  1. S X=$$TAX^BQITRUTL("","",1,BQDFN,9000010.14,"","",.TREF)
  1. ; if returns a found medication, check if it is an active medication
  1. I $P(X,U,1)=1 D
  1. . I $$ACTMED^BKMQQCR4($P(X,U,5)) Q
  1. . S $P(X,U,1)=0
  1. I $P(X,U,1)=0 S MEET=0,DESC=DESC_"Not on Statin Meds "
  1. I $P(X,U,1)=1 S MEET=1,DESC=DESC_"On Statin Meds ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$$GET1^DIQ(9000010.14,$P(X,U,5)_",",.01,"E")_")"
  1. K @TREF
  1. Q MEET_U_DESC_U_$P(X1,U,2,5)
  1. ;
  1. LHDL(BQDFN) ;EP CVD.TP-7 Low HDL
  1. ; If most recent LDL in past year is <=100 AND HDL in past year is <40
  1. NEW MEET,DESC,X,HDL,LDL,TAX,TREF
  1. S MEET=0,DESC=""
  1. S TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. F TAX="DM AUDIT HDL TAX","BGP HDL LOINC CODES" D BLD^BQITUTL(TAX,TREF)
  1. S X=$$LAB^BQITRUTL("T-12M",1,BQDFN,"",40,"<","","",.TREF)
  1. I $P(X,U,1)=1 S HDL=X,MEET=1,DESC="HDL in past year less than 40 ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$P(X,U,3)_") and "
  1. I $P(X,U,1)=0 S MEET=0,DESC="HDL in past year not less than 40 ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$P(X,U,3)_")"
  1. I 'MEET Q MEET_U_DESC
  1. ;
  1. K @TREF
  1. F TAX="DM AUDIT LDL CHOLESTEROL TAX","BGP LDL LOINC CODES" D BLD^BQITUTL(TAX,TREF)
  1. S X=$$LAB^BQITRUTL("T-12M",1,BQDFN,"",100,"'>","","",.TREF)
  1. I $P(X,U,1)=1 S LDL=X,MEET=1,DESC=DESC_"LDL in past year not greater than 100 ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$P(X,U,3)_")"_U_$P(X,U,2,5)
  1. I $P(X,U,1)=0 S MEET=0,DESC=DESC_"LDL in past year greater than 100 ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$P(X,U,3)_")"_U_$P(X,U,2,5)
  1. K @TREF
  1. Q MEET_U_DESC
  1. ;
  1. NLDL(BQDFN) ;EP CVD.TP-8 No LDL
  1. ; No LDL in past year
  1. NEW MEET,DESC,X,TAX,TREF
  1. S MEET=0,DESC=""
  1. S TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. F TAX="DM AUDIT LDL CHOLESTEROL TAX","BGP LDL LOINC CODES" D BLD^BQITUTL(TAX,TREF)
  1. S X=$$LAB^BQITRUTL("T-12M",1,BQDFN,"",0,">","","",.TREF)
  1. I $P(X,U,1)=1 S MEET=0,DESC="Has LDL in past year ("_$$FMTE^BQIUL1($P(X,U,2))_" "_$P(X,U,3)_")"_U_$P(X,U,2,5)
  1. I $P(X,U,1)=0 S MEET=1,DESC="No LDL in past year"
  1. K @TREF
  1. Q MEET_U_DESC
  1. ;
  1. HTG(BQDFN,TMFRAME) ;EP CVD.TP-9 High TG
  1. ; Most recent TG in past year >150
  1. NEW MEET,DESC,X,TAX,TREF
  1. S MEET=0,DESC=""
  1. S TMFRAME=$G(TMFRAME,"")
  1. S TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. F TAX="DM AUDIT TRIGLYCERIDE TAX","BGP TRIGLYCERIDE LOINC CODES" D BLD^BQITUTL(TAX,TREF)
  1. S X=$$LAB^BQITRUTL(TMFRAME,1,BQDFN,"",150,">","","",.TREF)
  1. I $P(X,U,2)'="" S $P(X,U,2)=$$DATE^BQIUL1($P(X,U,2))
  1. I $P(X,U,1)=1 S MEET=1,DESC="Most recent Triglyceride in past year greater than 150 ("_$$FMTMDY^BQIUL1($P(X,U,2))_" "_$P(X,U,3)_")"_U_$$FMTMDY^BQIUL1($P(X,U,2))_U_$P(X,U,3,5)
  1. I $P(X,U,1)=0 S MEET=0,DESC="Most recent Triglyceride in past year is not greater than 150 ("_$$FMTMDY^BQIUL1($P(X,U,2))_" "_$P(X,U,3)_")"_U_$$FMTMDY^BQIUL1($P(X,U,2))_U_$P(X,U,3,5)
  1. K @TREF
  1. Q MEET_U_DESC
  1. ;
  1. PBP(NDESC,NX) ;EP - Parse Blood Pressure values
  1. NEW DATES,MIENS,DDSC,MDT,MVAL,MIEN
  1. S DATES=$P(NX,U,2),MIENS=$P(NX,U,3),DDSC=""
  1. F BQJ=1:1:$L(DATES,";") S MDT=$P(DATES,";",BQJ) Q:MDT="" D
  1. . S MIEN=$P(MIENS,";",BQJ),MVAL=""
  1. . I MIEN'="" S MVAL=$$GET1^DIQ(9000010.01,MIEN_",",.04,"E")
  1. . S DDSC=DDSC_$$FMTE^BQIUL1(MDT)_" "_MVAL_" "
  1. Q NDESC_" "_DDSC
  1. ;
  1. BP(BQDFN) ;EP
  1. ; If 2 of last 3 non-ER blood pressures in past 2 years are Systolic >130
  1. ; or Diastolic >80
  1. NEW X,DESC,TEXT,BQI,QFL
  1. S DESC="",TEXT=""
  1. S X=$$BP^BQITRUTL("T-24M",BQDFN,130,80,">")
  1. I $P(X,U,2)'="" D
  1. . NEW NDATE
  1. . S QFL=0
  1. . F BQI=1:1:3 D Q:QFL
  1. .. I $P($P(X,U,2),";",BQI)="No BPs in timeframe" S TEXT=$P($P(X,U,2),";",BQI),QFL=1 Q
  1. .. S NDATE=$$FMTE^BQIUL1($P($P(X,U,2),";",BQI))_"("_$P($P(X,U,5),";",BQI)_")",TEXT=TEXT_NDATE_";"
  1. I $P(X,U,1)=0 S DESC="2 of last 3 non-ER BP are not valid values ["_TEXT_"]" Q $P(X,U,1)_U_DESC
  1. I $P(X,U,1)=1 S DESC=DESC_$$PBP(DESC,X)
  1. Q $P(X,U,1)_U_DESC