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

APCM14E1.m

Go to the documentation of this file.
  1. APCM14E1 ; IHS/CMI/LAB - IHS MU 24 Feb 2014 10:32 AM ;
  1. ;;1.0;IHS MU PERFORMANCE REPORTS;**5,6**;MAR 26, 2012;Build 65
  1. ;
  1. BQI(BQIGREF,APCMPRV) ;PEP-Call from iCare
  1. ; input
  1. ; BQIGREF - Global reference
  1. ; APCMPRV - Array of providers
  1. ;
  1. PROC ;EP
  1. S APCMBT=$H
  1. ;D JRNL^APCM1UTL
  1. S APCMJ=$J,APCMH=$H
  1. D XTMP^APCM1UTL("APCM1D","MU Patient List")
  1. ;process each patient
  1. ;first gather up provider exclusions
  1. I APCMRPTT=2 D G PROC1 ;hospital report doesn't need this stuff for exclusions
  1. .K APCMOFFV
  1. .K APCM14ON ;SMK STATUS EXCL
  1. .K APCMIMME ;IMM EXCL
  1. .K APCMHO65 ;ADV DIR EXCL
  1. .S X=APCMFAC S APCMX=$$VSTH(APCMFAC,APCMBD,APCMED,APCMMETH) D
  1. ..I '$P(APCMX,U,3) S APCM14ON(X,1)="" ;SMOKING STATUS EXCL
  1. ..I '$P(APCMX,U,1) S APCMOFFV(X,1)=""
  1. ..I '$P(APCMX,U,5) S APCMIMME(X,1)="" ;IMM REG
  1. ..I '$P(APCMX,U,7) S APCMHO65(X,1)="" ;ADV DIR EXCL
  1. .;
  1. K APCM100R
  1. S X=0 F S X=$O(APCMPRV(X)) Q:X'=+X I '$$H100(X,APCMBD,APCMED) S APCM100R(X,1)="" ;S1.003.EP E-RX EXCL, DRUG FORM EXCL
  1. K APCMOFFV
  1. K APCM14ON
  1. K APCMIMME
  1. S X=0 F S X=$O(APCMPRV(X)) Q:X'=+X S APCMX=$$VST(X,APCMBD,APCMED) D
  1. .I '$P(APCMX,U,3) S APCM14ON(X,1)="" ;SMK STATUS EXCL
  1. .I '$P(APCMX,U,1) S APCMOFFV(X,1)="" ;CLIN SUM EXCL
  1. .I '$P(APCMX,U,5) S APCMIMME(X,1)="" ;IMM REG EXCL
  1. N1 ;
  1. ;any patients 0-5 or >64?
  1. S APCMN565(1)=1
  1. S P=0 F S P=$O(^DPT(P)) Q:P'=+P!(APCMN565(1)=0) D
  1. .S X=$$DOD^AUPNPAT(P)
  1. .I X,X'>APCMED Q
  1. .Q:$$DOB^AUPNPAT(P)>APCMBD ;born after time period begin date
  1. .S X=$P($G(^AUPNPAT(P,41,DUZ(2),0)),U,3)
  1. .I X,X'>APCMED Q
  1. .S A=$$AGE^AUPNPAT(P,APCMBD)
  1. .I A<6 S APCMN565(1)=0 Q
  1. .I A>64 S APCMN565(1)=0 Q
  1. ;
  1. PROC1 ;
  1. S DFN=0 F S DFN=$O(^AUPNPAT(DFN)) Q:DFN'=+DFN D
  1. .Q:'$D(^DPT(DFN,0))
  1. .;I DUZ=2793 Q:'$D(^DIBT(4723,1,DFN))
  1. .;I DUZ=2793 Q:DFN'=5851
  1. .Q:$$DEMO^APCLUTL(DFN,$G(APCMDEMO))
  1. .D PROCCY
  1. N ;
  1. ;NOW DO ATTESTATION MEASURES
  1. D PROCACY
  1. S APCMET=$H
  1. Q
  1. ;
  1. PROCCY ;EP - current time period
  1. K ^TMP($J)
  1. Q:'$D(^DPT(DFN,0))
  1. Q:$P(^DPT(DFN,0),U,2)=""
  1. S APCMEDAT=APCMED,APCMTIME=1,APCMBDAT=APCMBD,APCMGBL="^APCMM14C(",APCMFILN=9001302.0311
  1. S APCMAGEB=$$AGE^AUPNPAT(DFN,APCMBDAT)
  1. S APCMAGEE=$$AGE^AUPNPAT(DFN,APCMEDAT)
  1. S APCMSEX=$P(^DPT(DFN,0),U,2)
  1. ;had visit to each provider?
  1. D CALCIND
  1. K ^TMP($J,"A")
  1. Q
  1. CALCIND ;
  1. D CALCIND^APCM14CI
  1. Q
  1. PROCACY ;EP - current time period
  1. S APCMEDAT=APCMED,APCMTIME=1,APCMBDAT=APCMBD,APCMGBL="^APCMM14C(",APCMFILN=9001302.0311
  1. D CALCINDA^APCM14CI
  1. Q
  1. S(RPT,IND,VALUE,PROV,RT,T,F,NT) ;EP - set counter
  1. NEW N,P,Y,J,I,ID
  1. I VALUE="" Q ;no value to add
  1. I RT=1 S I=PROV_";VA(200,"
  1. I RT=2 S I=PROV_";AUTTLOC("
  1. I T=1 D Q
  1. .I $G(BQIGREF)'="" D Q
  1. ..NEW ID
  1. ..S ID=$P(^APCM14OB(IND,0),U,1)
  1. ..I $P(^APCM14OB(IND,0),U,8)=F S $P(@BQIGREF@(PROV,ID,"CURR"),U,1)=$P($G(@BQIGREF@(PROV,ID,"CURR")),U,1)+VALUE
  1. ..I $P(^APCM14OB(IND,0),U,9)=F S $P(@BQIGREF@(PROV,ID,"CURR"),U,2)=$P($G(@BQIGREF@(PROV,ID,"CURR")),U,2)+VALUE
  1. ..I $P(^APCM14OB(IND,0),U,11)=F S $P(@BQIGREF@(PROV,ID,"CURR"),U,3)=VALUE
  1. ..S $P(@BQIGREF@(PROV,ID,"CURR"),U,4)=$G(APCMVALU)
  1. .S Y=$P(^DD(9001302.0311,F,0),U,4)
  1. .S N=$P(Y,";")
  1. .S P=$P(Y,";",2)
  1. .S J=$O(^APCMM14C(RPT,11,"B",I,0))
  1. .I 'J W APCMBOMB Q
  1. .I VALUE?.N S $P(^APCMM14C(RPT,11,J,N),U,P)=$P($G(^APCMM14C(RPT,11,J,N)),U,P)+VALUE
  1. .I VALUE'?.N S $P(^APCMM14C(RPT,11,J,N),U,P)=VALUE
  1. .Q
  1. Q
  1. SETLIST ;EP
  1. NEW P,APCMX,APCMO
  1. Q:APCMTIME'=1
  1. Q:'$D(APCMINDL(APCMIC)) ;not a selected topic
  1. S APCMX=0 F S APCMX=$O(APCMINDL(APCMIC,APCMX)) Q:APCMX'=+APCMX D
  1. .X ^APCMM14L(APCMX,12) Q:'$T
  1. .S APCMINDL(APCMIC,APCMX,APCMP)=$G(APCMINDL(APCMIC,APCMX,APCMP))+1
  1. .S APCMO=$S(APCMRPTT=2:$P(^APCMM14L(APCMX,0),U,6),1:$P(^APCMM14L(APCMX,0),U,5))
  1. .S P=$S(APCMRPTT=2:$P(^DIC(4,APCMP,0),U),1:$P(^VA(200,APCMP,0),U))
  1. .S ^XTMP("APCM1D",APCMJ,APCMH,"LIST",$P(^APCM14OB(APCMIC,0),U,4),APCMIC,APCMO,APCMX,P,$S($P($G(^AUPNPAT(DFN,11)),U,18)]"":$P(^AUPNPAT(DFN,11),U,18),1:"UNKNOWN"),$P(^DPT(DFN,0),U,2),$$AGE^AUPNPAT(DFN,APCMBDAT),DFN)=$G(APCMVALU)
  1. Q
  1. H100(R,BD,ED) ;
  1. NEW ID,C,Y,X,VMED,V
  1. S C=0
  1. S ID=$$FMADD^XLFDT(BD,-1)
  1. F S ID=$O(^PSRX("AC",ID)) Q:ID'=+ID!(C>100)!(ID>ED) D
  1. .S X=0 F S X=$O(^PSRX("AC",ID,X)) Q:X'=+X!(C>100) D
  1. ..Q:$P($G(^PSRX(X,0)),U,4)'=R
  1. ..Q:$P($G(^PSRX(X,"STA")),"^")=13
  1. ..;SKIP ER CLINIC OR H VISIT, GET VISIT FROM V MED
  1. ..S VMED=$P($G(^PSRX(X,999999911)),U,1)
  1. ..Q:'VMED
  1. ..S V=$P($G(^AUPNVMED(VMED,0)),U,3)
  1. ..Q:'V
  1. ..Q:'$D(^AUPNVSIT(V,0))
  1. ..Q:$P(^AUPNVSIT(V,0),U,7)="H"
  1. ..Q:$$CLINIC^APCLV(V,"C")=30
  1. ..S C=C+1
  1. Q $S(C>100:1,1:"")
  1. VST(R,BD,ED) ;CALCULATE EXCLUSIONS
  1. NEW SD,A,B,C,G,V,T
  1. S T=$O(^APCMMUCN("B","INTERIM STAGE 1 2014",0))
  1. S SD=$$FMADD^XLFDT(BD,-1)
  1. S SD=SD_".9999"
  1. S G=""
  1. F S SD=$O(^AUPNVSIT("B",SD)) Q:SD'=+SD!($P(SD,".")>ED)!($$GOTALL(G)) D
  1. .S V=0 F S V=$O(^AUPNVSIT("B",SD,V)) Q:V'=+V!($$GOTALL(G)) D
  1. ..S B=0,C=0 F S B=$O(^AUPNVPRV("AD",V,B)) Q:B'=+B D
  1. ...Q:'$D(^AUPNVPRV(B,0))
  1. ...Q:$P(^AUPNVPRV(B,0),U,1)'=R
  1. ...Q:$P(^AUPNVPRV(B,0),U,4)'="P"
  1. ...S C=1
  1. ..Q:'C ;not to this provider
  1. ..S C=$$CLINIC^APCLV(V,"C")
  1. ..I C=30 Q ;no ER per Carmen patch 1
  1. ..I C=77 Q ;no case management clinic 77 per Chris
  1. ..I C=76 Q ;no lab
  1. ..I C=63 Q ;no radiology
  1. ..I C=39 Q ;no pharmacy
  1. ..S $P(G,U,1)=1 ;has an office visit ;clinic summary excl
  1. ..I $$AGE^AUPNPAT($P(^AUPNVSIT(V,0),U,5),$P(BD,"."))>12 S $P(G,U,3)=1 ;SMK STATUS EXCL
  1. ..I $D(^AUPNVIMM("AD",V)) S $P(G,U,5)=1 ;not an exclusion for imm reg
  1. Q G
  1. ;
  1. GOTALL(%) ;EP
  1. NEW Y
  1. S Y=$P(%,U,1)+$P(%,U,3)+$P(%,U,5)
  1. I Y=3 Q 1
  1. Q 0
  1. VSTH(R,BD,ED,APCMMETH) ;did this HOSPITAL HAVE THESE VISITS
  1. NEW SD,A,B,C,G,V,T,O,P,Q,E,J,S
  1. S T=$O(^APCMMUCN("B","INTERIM STAGE 1 2014",0))
  1. S SD=$$FMADD^XLFDT(BD,-1)
  1. S SD=SD_".9999"
  1. S G=""
  1. F S SD=$O(^AUPNVSIT("B",SD)) Q:SD'=+SD!($P(SD,".")>ED)!($$GOTALLH(G)) D
  1. .S V=0 F S V=$O(^AUPNVSIT("B",SD,V)) Q:V'=+V!($$GOTALLH(G)) D
  1. ..Q:$P(^AUPNVSIT(V,0),U,6)'=R
  1. ..I APCMMETH="E" Q:'$$HOSER^APCM24E6(V,R)
  1. ..I APCMMETH="O" Q:"OH"'[$P(^AUPNVSIT(V,0),U,7)
  1. ..S $P(G,U,1)=1
  1. ..S A=$$AGE^AUPNPAT($P(^AUPNVSIT(V,0),U,5),$P(BD,"."))
  1. ..I A>12 S $P(G,U,3)=1
  1. ..I $D(^AUPNVIMM("AD",V)) S $P(G,U,5)=1 ;not an exclusion for imm reg
  1. ..I $P(^AUPNVSIT(V,0),U,7)="H" S A=$$AGE^AUPNPAT($P(^AUPNVSIT(V,0),U,5),$$VD^APCLV(V)) I A>64 S $P(G,U,7)=1
  1. Q G
  1. TIUDCEL(%) ;any electronic dc instruction TIU Notes
  1. NEW A,B,C
  1. S A=0,B=0 F S A=$O(^AUPNVNOT("AD",%,A)) Q:A'=+A!(B) D
  1. .S C=$$VAL^XBDIQ1(9000010.28,A,.01)
  1. .I $$UP^XLFSTR(C)="E-COPY DISCHARGE INSTR RECEIVED" S B=1 Q
  1. .I $$UP^XLFSTR(C)="E-COPY DISCHARGE INSTR NOT RECEIVED" S B=1 Q
  1. Q B
  1. GOTALLH(%) ;EP
  1. NEW Y
  1. S Y=$P(%,U,1)+$P(%,U,2)+$P(%,U,3)+$P(%,U,4)+$P(%,U,5)+$P(%,U,6)+$P(%,U,7)+$P(%,U,8)+$P(%,U,9)
  1. I Y=9 Q 1
  1. Q 0
  1. VDT ;EP - ask additional exclusion questions for PEA
  1. S APCMQ=0
  1. S APCMY=$O(^APCM14OB("B","S1.020.EP",0))
  1. Q:'$D(APCMIND(APCMY)) ;measure not being run
  1. K APCMATTE("S1.020.EP.1")
  1. ;display exclusion text/narrative
  1. I $O(^APCM14OB(APCMY,26,0)) D ET
  1. I APCMPLTY="SEL"!(APCMPLTY="TAX") D G:APCMIND=1 EIND Q
  1. .S APCMZ=0 F S APCMZ=$O(^APCM14OB(APCMY,19,APCMZ)) Q:APCMZ'=+APCMZ W !,^APCM14OB(APCMY,19,APCMZ,0)
  1. .S APCMQ=0,APCMIND=0
  1. .W !!!,"The View, Download, Transmit question above may be addressed as a group or"
  1. .W !,"by individual provider. Do you want to answer for all selected providers as a"
  1. .S DIR(0)="Y",DIR("A")="group Y/N",DIR("B")="YES" KILL DA D ^DIR KILL DIR
  1. .I $D(DIRUT) S APCMQ=1 Q
  1. .I 'Y S APCMIND=1 Q
  1. .W !!,"Do all selected providers included in this report meet the broadband"
  1. .S DIR(0)="Y",DIR("A")="Exclusion",DIR("B")="YES" KILL DA D ^DIR KILL DIR
  1. .I $D(DIRUT) S APCMQ=1 Q
  1. .I 'Y S APCMIND=1 Q
  1. .S APCMP=0 F S APCMP=$O(APCMPRV(APCMP)) Q:APCMP'=+APCMP S APCMATTE("S1.020.EP.1",APCMP)="Yes"
  1. EIND ;ask individually
  1. S APCMP=0 F S APCMP=$O(APCMPRV(APCMP)) Q:APCMP'=+APCMP!(APCMQ) D
  1. .S APCMZ=0 F S APCMZ=$O(^APCM14OB(APCMY,19,APCMZ)) Q:APCMZ'=+APCMZ W !,^APCM14OB(APCMY,19,APCMZ,0)
  1. .S DIR(0)="Y",DIR("A")="Does "_$E($P(^VA(200,APCMP,0),U,1),1,25)_" meet the broadband exclusion",DIR("B")="YES" KILL DA D ^DIR KILL DIR
  1. .I $D(DIRUT) S APCMQ=1 Q
  1. .S APCMATTE("S1.020.EP.1",APCMP)=$S(Y:"Yes",1:"No")
  1. Q
  1. ET ;
  1. W ! S APCMZ=0 F S APCMZ=$O(^APCM14OB(APCMY,26,APCMZ)) Q:APCMZ'=+APCMZ W !,^APCM14OB(APCMY,26,APCMZ,0)
  1. W !
  1. Q