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

BPXRMTP.m

Go to the documentation of this file.
  1. BPXRMTP ; IHS/MSC/MGH - Computed Findings for Treatment prompt reminders. ;30-Mar-2018 14:32;DU
  1. ;;2.0;CLINICAL REMINDERS;**1001,1002,1009**;Feb 04, 2005;Build 17
  1. ;=================================================================
  1. ;This routine is designed to use the standard PCC logic for reminders to
  1. ;evaluate if items are met or not met. Using the standard PCC calls ensures
  1. ;that all IHS items are using the same logic.
  1. ;Patch 1009 changed the BQI call for tag
  1. ;=====================================================================
  1. CVD(DFN,TEST,DATE,VALUE,TEXT) ; EP
  1. ;This computed finding will check the Treatment prompt logic for CVD
  1. N BPXRESLT,TODAY,X,Y,X1,X2
  1. S X="TODAY" D ^%DT S TODAY=Y
  1. S X1=TODAY,X2=-3 D C^%DTC
  1. ;S BPXRESLT=$$CVT^BQITRPHS(DFN)
  1. ;IHS/MSC/MGH changed for patch 1009
  1. S BPXRESLT=$$ATAG^BQITDUTL(DFN,"ASCVD At Risk")
  1. S BPXRSLT1=$$ATAG^BQITDUTL(DFN,"ASCVD Known")
  1. I BPXRESLT=0&(BPXRSLT1=0) S TEST=0,VALUE=TEST,DATE=TODAY
  1. I $P(BPXRESLT,U,1)=1 S TEST=1,VALUE=$P(BPXRESLT,U,2),TEXT=$P(BPXRESLT,U,2),DATE=$P(BPXRESLT,U,3)
  1. I $P(BPXRSLT1,U,1)=1 S TEST=1,VALUE=$P(BPXRESLT,U,2),TEXT=$P(BPXRESLT,U,2),DATE=$P(BPXRSLT1,U,3)
  1. Q
  1. WAR(DFN,TEST,DATE,VALUE,TEXT) ;EP
  1. ;This computed finding will check for active warfarin
  1. N BPXRESLT,TODAY,X,Y,APCHSPAT
  1. S X="TODAY" D ^%DT S TODAY=Y
  1. S APCHSPAT=DFN
  1. S BPXRESLT=$$ACTWARF^APCHSTP1(APCHSPAT,$$FMADD^XLFDT(DT,-45),DT)
  1. I $P(BPXRESLT,U,1)=1 S TEST=1,VALUE=$P(BPXRESLT,U,4),TEXT="Warfarin prescription found",DATE=DT
  1. I $P(BPXRESLT,U,1)=0 S TEST=0,VALUE=TEST,DATE=TODAY
  1. Q
  1. INRGOAL(DFN,TEST,DATE,VALUE,TEXT) ;EP
  1. ;This computed finding will check the PCC logic for INR goal
  1. N BPXRESLT,TODAY,X,Y,APCHSPAT,ACT,ITEM
  1. S ITEM=$O(^APCHSURV("B","ANTICOAGULATION: INR GOAL",""))
  1. S ACT=$$INAC^APCHSMU(ITEM)
  1. S X="TODAY" D ^%DT S TODAY=Y
  1. I ACT=0 S TEST=1,VALUE="TP NOT ACTIVE",DATE=TODAY
  1. I ACT=1 D
  1. .S APCHSPAT=DFN
  1. .S BPXRESLT=$$MRGOAL^APCHSACG(APCHSPAT)
  1. .I $P(BPXRESLT,U,1)>0 S TEST=1,VALUE=$P(BPXRESLT,U,2),TEXT=$P(BPXRESLT,U,2),DATE=TODAY
  1. .E S TEST=0,VALUE="NO INRGOAL",DATE=TODAY
  1. Q
  1. INRDUR(DFN,TEST,DATE,VALUE,TEXT) ; EP
  1. ;This computed finding will check the PCC logic for duration of therapy
  1. N BPXRESLT,TODAY,X,Y,APCHSPAT,ACT,ITEM
  1. S ITEM=$O(^APCHSURV("B","ANTICOAGULATION: DURATION OF A",""))
  1. S ACT=$$INAC^APCHSMU(ITEM)
  1. S X="TODAY" D ^%DT S TODAY=Y
  1. I ACT=0 S TEST=1,VALUE="TP NOT ACTIVE",DATE=TODAY
  1. I ACT=1 D
  1. .S APCHSPAT=DFN
  1. .S BPXRESLT=$$MRDUR^APCHSACG(APCHSPAT)
  1. .I $P(BPXRESLT,U,1)>0 S TEST=1,VALUE=$P(BPXRESLT,U,2),TEXT=$P(BPXRESLT,U,2),DATE=TODAY
  1. .E S TEST=0,VALUE=TEST,DATE=TODAY
  1. Q
  1. INREND(DFN,TEST,DATE,VALUE,TEXT) ; EP
  1. ;This computed finding will check for stop date of treatment
  1. N BPXRESLT,TODAY,X,Y,APCHSPAT,ACT,ITEM
  1. S ITEM=$O(^APCHSURV("B","ANTICOAGULATION: ANTICOAGULATI",""))
  1. S ACT=$$INAC^APCHSMU(ITEM)
  1. S X="TODAY" D ^%DT S TODAY=Y
  1. I ACT=0 S TEST=1,VALUE="TP NOT ACTIVE",DATE=TODAY
  1. I ACT=1 D
  1. .NEW X,G
  1. .S APCHSPAT=DFN
  1. .S X=$P($$MREND^APCHSACG(APCHSPAT),U,1) ;END DATE
  1. .I X="" S TEST=1,VALUE=TEST,DATE=TODAY Q ;no end date less than t+45
  1. .S G=0
  1. .S X=$P(X,U,1)
  1. .I X<$$FMADD^XLFDT(DT,45) S G=1
  1. .I G S TEST=0,VALUE=TEST,DATE=TODAY Q
  1. .I 'G S TEST=1,VALUE=TEST,DATE=TODAY ;Not a candidate
  1. Q
  1. ACURIN(DFN,TEST,DATE,VALUE,TEXT) ; EP
  1. ;This computed finding will check the PCC logic urinalysis
  1. N BPXRESLT,TODAY,X,Y,APCHSPAT
  1. S X="TODAY" D ^%DT S TODAY=Y
  1. S APCHSPAT=DFN
  1. S BPXRESLT=$$LASTACUR^APCHSACG(APCHSPAT)
  1. I BPXRESLT="" S TEST=0,VALUE=TEST,DATE=TODAY
  1. I $P(BPXRESLT,U,1)'<$$FMADD^XLFDT(DT,-365) S TEST=1,VALUE=$P(BPXRESLT,U,4),TEXT=$p(BPXRESLT,U,2),DATE=$P(BPXRESLT,U,1) ;had one in past year
  1. I $P(BPXRESLT,U,1)>0 S TEST=1,VALUE=$P(BPXRESLT,U,4),TEXT=$P(BPXRESLT,U,2),DATE=$P(BPXRESLT,U,1)
  1. I $P(BPXRESLT,U,1)=0 S TEST=0,VALUE=TEST,DATE=TODAY
  1. Q
  1. ACCBC(DFN,TEST,DATE,VALUE,TEXT) ; EP
  1. ;This computed finding will check the PCC logic for CBC
  1. N BPXRESLT,TODAY,X,Y,APCHSPAT
  1. S X="TODAY" D ^%DT S TODAY=Y
  1. S APCHSPAT=DFN
  1. S BPXRESLT=$$LASTACCB^APCHSACG(APCHSPAT)
  1. I BPXRESLT="" S TEST=0,VALUE=TEST,DATE=TODAY
  1. I $P(BPXRESLT,U,1)'<$$FMADD^XLFDT(DT,-365) S TEST=1,VALUE=$P(BPXRESLT,U,4),TEXT=$P(BPXRESLT,U,2),DATE=$P(BPXRESLT,U,1)
  1. I $P(BPXRESLT,U,1)>0 S TEST=1,VALUE=$P(BPXRESLT,U,4),TEXT=$P(BPXRESLT,U,2),DATE=$P(BPXRESLT,U,1)
  1. I $P(BPXRESLT,U,1)=0 S TEST=0,VALUE=TEST,DATE=TODAY
  1. Q
  1. ACFOBT(DFN,TEST,DATE,VALUE,TEXT) ; EP
  1. ;This computed finding will check the PCC logic for FOBT
  1. N BPXRESLT,TODAY,X,Y,APCHSPAT
  1. S X="TODAY" D ^%DT S TODAY=Y
  1. S APCHSPAT=DFN
  1. I $$LASTDX^APCHSMU2(APCHSPAT,"BGP OSTEOPOROSIS DXS",$P(^DPT(APCHSPAT,0),U,3),TODAY) S TEST=1,VALUE="NA",TEXT="Pt has DX of osteoporosis",DATE=TODAY Q
  1. S BPXRESLT=$$LASTACFO^APCHSACG(APCHSPAT)
  1. I BPXRESLT="" S TEST=0,VALUE=TEST,DATE=TODAY
  1. I $P(BPXRESLT,U,1)'<$$FMADD^XLFDT(DT,-365) S TEST=1,VALUE=$P(BPXRESLT,U,4),TEXT=$P(BPXRESLT,U,2),DATE=$P(BPXRESLT,U,1) Q ;had one in past year
  1. I $P(BPXRESLT,U,1)>1 S TEST=1,VALUE=$P(BPXRESLT,U,4),TEXT=$P(BPXRESLT,U,2),DATE=$P(BPXRESLT,U,1)
  1. I $P(BPXRESLT,U,1)=0 S TEST=0,VALUE=TEST,DATE=TODAY
  1. Q