APCM13E6 ;IHS/CMI/LAB - IHS MU;
;;1.0;IHS MU PERFORMANCE REPORTS;**2,4,5**;MAR 26, 2012;Build 5
;;;;;;Build 3
ADV ;EP - CALCULATE adv directives
NEW APCMP,APCMZ
S (APCMD1,APCMN1)=0
I APCMRPTT=2 D
.S APCMP=APCMFAC
.I $D(APCMHO65(APCMP,APCMTIME)) S F=$P(^APCM13OB(APCMIC,0),U,11) D Q
..D S^APCM13E1(APCMRPT,APCMIC,"Hospital is excluded from this measure as it did not admit anyone >=65 during the EHR Reporting Period.",APCMP,APCMRPTT,APCMTIME,F,1) Q
.S APCMZ=$$HASADM65(DFN,APCMP,.APCMVSTS)
.Q:APCMZ="" ;NO ADMISSION
.D ADV1
.Q
Q
HASADM65(P,R,VSTS) ;
NEW X,Y,Z,V,G
S G=""
S X=0 F S X=$O(VSTS(X)) Q:X'=+X!(G) D
.S V=$P(VSTS(X),U,5)
.I '$D(^AUPNVSIT(V,0)) Q
.I $P(^AUPNVSIT(V,0),U,11) Q
.I $P(^AUPNVSIT(V,0),U,7)'="H" Q ;not correct service category
.Q:$P(^AUPNVSIT(V,0),U,6)'=APCMP ;not this facility
.Q:$$AGE^AUPNPAT(P,$$VD^APCLV(V))<65 ;not 65 on date of admission
.S G=$$VD^APCLV(V)
Q G
ADV1 ;
;set denominator value into field
S F=$P(^APCM13OB(APCMIC,0),U,8) ;denom field for this measure
D S^APCM13E1(APCMRPT,APCMIC,1,APCMP,APCMRPTT,APCMTIME,F)
S APCMVALU="Admission: "_$$DATE^APCM1UTL(APCMZ)_" Age: "_$$AGE^AUPNPAT(DFN,APCMZ)
;numerator?
S APCMEP=$$HASADV(DFN,APCMEDAT)
S APCMVALU=APCMVALU_"|||"_$P(APCMEP,U,2)_"|||"_$P(APCMEP,U,1)
S F=$P(^APCM13OB(APCMIC,0),U,9)
D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U,1),APCMP,APCMRPTT,APCMTIME,F)
D SETLIST^APCM13E1
Q
HASADV(P,ED) ;does patient have an ADVANCE DIRECTIVE before end of report period
;
NEW A,B,C,D,E,X
;check advance directive file
S E=""
S X=0 F S X=$O(^AUPNADVD(P,11,X)) Q:X'=+X!(E) D
.Q:'$D(^AUPNADVD(P,11,X,0)) ;no zero node?
.S D=$P(^AUPNADVD(P,11,X,0),U,1)
.I D>ED Q ;after report period
.S B=$P(^AUPNADVD(P,11,X,0),U,2)
.Q:B=""
.S E=1_U_"Advance Directives: "_$S(B="Y":"YES",1:"NO")_" entered on "_$$DATE^APCM1UTL(D) Q
I E]"" Q E
;now check for TIU Note title before ED of A
S X=0 F S X=$O(^AUPNVNOT("AC",P,X)) Q:X'=+X!(E) D
.S B=$$VAL^XBDIQ1(9000010.28,X,.01)
.Q:$$UP^XLFSTR(B)'="ADVANCE DIRECTIVE"
.S D=$$VD^APCLV($P(^AUPNVNOT(X,0),U,3))
.Q:D>ED
.S E=1_U_"Advance Directives: TIU document entered on "_$$DATE^APCM1UTL(D) Q
Q E
MR ;EP - med reconciliation
;for each provider or for the facility find out if this
;patient had a er visit or an admission of transferred
;if so, then check to see if they have m-mr anytime before end of report period
NEW APCMP
S (APCMD1,APCMN1)=0
I APCMRPTT=2 S APCMP=APCMFAC D
.Q:'$D(APCMHVTP(APCMP)) ;no ADMISSIONS/ER TO THIS FACILITY SO SKIP THIS OBJ
.S APCMEP=$$HASMMR(DFN,APCMBDAT,APCMEDAT,APCMP,.APCMVSTS) ;return # of visits^# w/M-MR
.;set denominator value into field
.S F=$P(^APCM13OB(APCMIC,0),U,8) ;denom field for this measure
.D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U,1),APCMP,APCMRPTT,APCMTIME,F)
.;numerator?
.S APCMVALU="# of visits: "_$P(APCMEP,U,1)_" - # w/ M-MR: "_+$P(APCMEP,U,2)_"|||"_$P(APCMEP,U,3)_"|||"_$S($P(APCMEP,U,1)=$P(APCMEP,U,2):1,1:0)
.S F=$P(^APCM13OB(APCMIC,0),U,9)
.D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U,2),APCMP,APCMRPTT,APCMTIME,F)
.Q:$P(APCMEP,U,1)=0
.D SETLIST^APCM13E1
Q
HOSER(Z,R) ;EP
I $P(^AUPNVSIT(Z,0),U,6)'=R Q 0 ;not correct facility
I $P(^AUPNVSIT(Z,0),U,7)="H" Q 1
NEW C
I "A"'[$P(^AUPNVSIT(Z,0),U,7) Q 0
S C=$$CLINIC^APCLV(Z,"C")
I C=30 Q 1
;I C=80 Q 1
Q 0
DSCHDATE(V) ;EP
I 'V Q ""
I '$D(^AUPNVSIT(V)) Q ""
NEW Y,Z,D
S D=""
I $P(^AUPNVSIT(V,0),U,7)="H" D Q D
.S Z=$O(^AUPNVINP("AD",V,0))
.I 'Z S D=$$VD^APCLV(V) Q
.S Y=$P($P(^AUPNVINP(Z,0),U),".")
.S D=Y
S Z=$O(^AUPNVER("AD",V,0))
I 'Z Q $$VD^APCLV(V)
I '$D(^AUPNVER(Z,0)) Q $$VD^APCLV(V)
S Y=$P($P(^AUPNVER(Z,0),U,13),".")
I Y="" Q $$VD^APCLV(V)
Q $P(Y,".")
HASMMR(P,BD,ED,R,VSTS) ;does patient have a M-MR on each visit?
;
NEW A,B,C,D,E,X,Y,V,PWH,T,W,Z,Q,EDUC
;LOOP THROUGH ALL VISITS AND COUNT VISIT AND M-MR'S
S PWH="0^0"
S X=0 F S X=$O(VSTS(X)) Q:X'=+X D
.S G=0
.S V=$P(VSTS(X),U,5)
.I '$D(^AUPNVSIT(V,0)) Q
.I $P(^AUPNVSIT(V,0),U,11) Q ;deleted
.I '$$HOSER(V,R) Q ;not correct service category/ER VISIT
.I $P(^AUPNVSIT(V,0),U,7)="H" Q:'$$TRANS(V)
.I $$CLINIC^APCLV(V,"C")=30 Q:'$$ERTRANS(V)
.S $P(PWH,U,1)=$P(PWH,U,1)+1
.;was there a PAT ED M-MR on the date of the visit through 1 day after the visit
.S Y="EDUC("
.S Z=P_"^ALL EDUC;DURING "_$$FMTE^XLFDT($$VD^APCLV(V))_"-"_$$FMTE^XLFDT($$VD^APCLV(V),1) S E=$$START1^APCLDF(Z,Y)
.I '$D(EDUC(1)) S $P(PWH,U,3)=$P(PWH,U,3)_$$DATE^APCM1UTL($$VD^APCLV(V))_":NO M-MR" Q
.S (Z,B,D)=0,%="",T="" F S Z=$O(EDUC(Z)) Q:Z'=+Z!(B) D
..S A=$P(^AUPNVPED(+$P(EDUC(Z),U,4),0),U)
..Q:'A
..Q:'$D(^AUTTEDT(A,0))
..S T=$P(^AUTTEDT(A,0),U,2)
..Q:T'="M-MR"
..S B=1 S $P(PWH,U,2)=$P(PWH,U,2)+1
.S $P(PWH,U,3)=$P(PWH,U,3)_$$DATE^APCM1UTL($$VD^APCLV(V))_":"_$S(B:"M-MR",1:"NO M-MR")_";"
.Q
Q PWH
TRANS(%) ;
NEW A
S A=$$ADMTYPE^APCLV(%,"C")
I A=2 Q 1
I A=3 Q 1
I A=4 Q 1
Q 0
;
ERTRANS(%) ;
NEW E
S E=$O(^AMERVSIT("AD",%,0))
I 'E Q 0 ;no visit in ER Visit
I '$P($G(^AMERVSIT(E,17)),U,1) Q 0
Q 1
ECHI ;EP - electronic copy of HI
NEW APCMP,APCMECV
K APCMECV
S (APCMD1,APCMN1)=0
I APCMRPTT=2 S APCMP=APCMFAC D
.I $D(APCMECHI(APCMP,APCMTIME)) S F=$P(^APCM13OB(APCMIC,0),U,11) D Q
..D S^APCM13E1(APCMRPT,APCMIC,"Facility is excluded from this measure as no patients requested a copy of their health information during the EHR reporting period.",APCMP,APCMRPTT,APCMTIME,F,1) Q
.D ALLV^APCLAPIU(DFN,$$FMADD^XLFDT(APCMEDAT,-365),APCMEDAT,"APCMECV")
.S APCMHV=$$HADVH^APCM13CI(DFN,APCMP,$$FMADD^XLFDT(APCMEDAT,-365),APCMEDAT,.APCMECV)
.I 'APCMHV Q ;no visits to this FACILITY THAT ARE H/30/80 for this patient so don't bother, the patient is not in the denominator
.;set denominator value into field
.S APCMEP=$$HASECHI^APCM13E4(DFN,APCMBDAT,$$BDB^APCM13E4(APCMEDAT,-4)) ;"" if no requests so not in denom
.Q:APCMEP=""
.S F=$P(^APCM13OB(APCMIC,0),U,8) ;denom field for this measure
.D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U),APCMP,APCMRPTT,APCMTIME,F)
.S APCMVALU="VISIT: "_$$DATE^APCM1UTL(APCMHV)
.;numerator?
.S APCMVALU=APCMVALU_"|||"_$S($P(APCMEP,U,2):"MET: ",1:"NOT MET: ")_$P(APCMEP,U,3)_"|||"_$P(APCMEP,U,2)
.S F=$P(^APCM13OB(APCMIC,0),U,9)
.D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U,2),APCMP,APCMRPTT,APCMTIME,F)
.D SETLIST^APCM13E1
K APCMECV
Q
SC ;EP - REFERRAL, SUMMARY OF CARE
NEW APCMP
S (APCMD1,APCMN1)=0
I APCMRPTT=2 S APCMP=APCMFAC D
.I $D(APCMRCIS(APCMP,APCMTIME)) S F=$P(^APCM13OB(APCMIC,0),U,11) D Q
..D S^APCM13E1(APCMRPT,APCMIC,"Hospital is excluded from this measure as they did not make any referrals for patients they saw during the report period.",APCMP,APCMRPTT,APCMTIME,F,1) Q
.Q:'$D(APCMHVTP(APCMP)) ;no visits to this provider for this patient so don't bother, the patient is not in the denominator
.;set denominator value into field
.S APCMEP=$$HASC32H(DFN,APCMBDAT,$$FMADD^XLFDT(APCMEDAT),APCMFAC,.APCMVSTS) ;# referrals^# w/c32 documentation
.Q:'$P(APCMEP,U,1)
.S F=$P(^APCM13OB(APCMIC,0),U,8) ;denom field for this measure
.D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U,1),APCMP,APCMRPTT,APCMTIME,F)
.;S APCMVALU="VISIT: "_$$DATE^APCM1UTL(APCMHVTP(APCMP))
.S APCMVALU="# ref: "_$P(APCMEP,U,1)_" - # w/C32: "_+$P(APCMEP,U,2)_" "_$P(APCMEP,U,4)_"|||"_$P(APCMEP,U,3)_"|||"_$S('(+$P(APCMEP,U,1)):0,+$P(APCMEP,U,1)=+$P(APCMEP,U,2):1,1:0)
.;numerator?
.S F=$P(^APCM13OB(APCMIC,0),U,9)
.D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U,2),APCMP,APCMRPTT,APCMTIME,F)
.D SETLIST^APCM13E1
Q
HASC32H(P,BD,ED,R,VSTS) ;does patient have a referral with c32
;
NEW A,B,C,D,E,ROI,X,ROII,VDS
S ROI="" ;set to 1 if had a good request
S ROII="" ;set to date of reques
S VDS=""
S D=$$FMADD^XLFDT(BD,-1)
S X=0 F S X=$O(VSTS(X)) Q:X'=+X D
.S V=$P(VSTS(X),U,5)
.Q:$P(^AUPNVSIT(V,0),U,6)'=R
.Q:'$$HOSER^APCM13E6(V,R)
.I $P(^AUPNVSIT(V,0),U,7)="H" Q:'$$TRANSOUT(V)
.I $$CLINIC^APCLV(V,"C")=30 Q:'$$ERTRANSO(V)
.S O=$$FMADD^XLFDT($$VD^APCLV(V),-1),E=$$DSCHDATE^APCM13E6(V)
.I VDS="" S VDS="Visits: "
.S VDS=VDS_$$DATE^APCM1UTL($$VD^APCLV(V))_";"
.F S O=$O(^BMCREF("AA",P,O)) Q:O'=+O!(O>E) D
..S Q=0 F S Q=$O(^BMCREF("AA",P,O,Q)) Q:Q'=+Q D
...S S=$P(^BMCREF(Q,0),U,15)
...I S'="A",S'="C1" Q ;not a A or C1
...Q:$P(^BMCREF(Q,0),U,4)="N"
...Q:$P(^BMCREF(Q,0),U,5)'=R
...S $P(ROI,U,1)=$P(ROI,U,1)+1
...;now check to see if a C32 was printed
...S Y=0 F S Y=$O(^BMCREF(Q,6,"B",Y)) Q:Y'=+Y D
....I $P(^AUPNVSIT(V,0),U,7)="H" D Q
.....I $P(Y,".")'<$$FMADD^XLFDT($$DSCHDATE^APCM13E6(V),-1),$P(Y,".")'>$$DSCHDATE^APCM13E6(V) D Q
......S $P(ROI,U,2)=$P(ROI,U,2)+1,ROII=ROII_"RI "_$$DATE^APCM1UTL(O)_" C32 "_$$DATE^APCM1UTL(Y)_";" Q
....D Q
.....I $P(Y,".")'<$$VD^APCLV(V),$P(Y,".")'>$$DSCHDATE^APCM13E6(V) D
......S $P(ROI,U,2)=$P(ROI,U,2)+1,ROII=ROII_"RI "_$$DATE^APCM1UTL(O)_" C32 "_$$DATE^APCM1UTL(Y)_";" Q
....S ROII=ROII_"RI "_$$DATE^APCM1UTL(O)_" C32 None;"
S $P(ROI,U,3)=ROII
Q ROI_U_VDS
ECDI ;EP - electronic copy of discharge instructions
NEW APCMP,APCMZ,APCMEP
I APCMRPTT=2 D
.S APCMP=APCMFAC
.I $D(APCMNOEC(APCMP,APCMTIME)) S F=$P(^APCM13OB(APCMIC,0),U,11) D Q
..D S^APCM13E1(APCMRPT,APCMIC,"Facility is excluded from this measure as it did not have any requests from patients for and electronic copy of their discharge instructions during the EHR reporting period.",APCMP,APCMRPTT,APCMTIME,F,1) Q
.S APCMEP=$$HASECDI(DFN,APCMBDAT,APCMEDAT,APCMP,.APCMVSTS) ;return # of visits^# w/M-MR
.;set denominator value into field
.I APCMEP="" Q
.S F=$P(^APCM13OB(APCMIC,0),U,8) ;denom field for this measure
.D S^APCM13E1(APCMRPT,APCMIC,1,APCMP,APCMRPTT,APCMTIME,F)
.S APCMVALU=$P(APCMEP,U,2)_"|||"_$P(APCMEP,U,3)_"|||"_$S($P(APCMEP,U,1):1,1:0)
.;numerator?
.S F=$P(^APCM13OB(APCMIC,0),U,9)
.D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U,1),APCMP,APCMRPTT,APCMTIME,F)
.D SETLIST^APCM13E1
Q
HASECDI(P,BD,ED,R,VSTS) ;does patient have a M-MR on each visit?
;
NEW A,B,C,D,E,X,Y,V,PWH,T,W,Z,Q,ECDI
;LOOP THROUGH ALL VISITS AND FIND AT LEAST ONE WITH ECDI TUI NOTES
S PWH="",ECDI=""
S X=0 F S X=$O(VSTS(X)) Q:X'=+X!(PWH) D
.S G=0
.S V=$P(VSTS(X),U,5)
.I '$D(^AUPNVSIT(V,0)) Q
.I $P(^AUPNVSIT(V,0),U,11) Q ;deleted
.I '$$HOSER(V,R) Q ;not correct service category/ER VISIT
.I $P(^AUPNVSIT(V,0),U,7)="H" Q:'$$DISCHOUT(V)
.I $P(^AUPNVSIT(V,0),U,7)="H" S Q="" D Q:'Q
..S Z=$O(^AUPNVINP("AD",V,0)) I 'Z Q
..Q:'$D(^AUPNVINP(Z,0))
..Q:$P($P(^AUPNVINP(Z,0),U),".")>ED ;discharged after report period
..S Q=1
.S T=$$TIUDCEL(V) Q:T="" ;no tiu notes for discharge instructions
.;set denominator
.I $$UP^XLFSTR($P(T,U))="E-COPY DISCHARGE INSTR RECEIVED" S PWH=1_U_"Adm/Visit Date: "_$$DATE^APCM1UTL($$VD^APCLV(V))_U_"Electronic Copy: "_$P(T,U)_" on "_$$DATE^APCM1UTL($P(T,U,2)) Q
.S ECDI=0_U_$$DATE^APCM1UTL($$VD^APCLV(V))_U_"Electronic Copy: "_$P(T,U)_" on "_$$DATE^APCM1UTL($P(T,U,2))
.Q
I PWH Q PWH
Q ECDI
DISCHOUT(%) ;
NEW A
S A=$$DSCHTYPE^APCLV(%,"C")
I A=1 Q 1
I A=2 Q 1
I A=3 Q 1
Q 0
;
TIUDCEL(%) ;any electronic dc instruction TIU Notes
NEW A,B,C,VD,DSC,DSC1,P,D
S VD=$$VD^APCLV(%) ;admission date
S DSC=$$DSCHDATE(%)
S DSC1=$$FMADD^XLFDT(DSC,1) ;day after discharge
S P=$P(^AUPNVSIT(%,0),U,5)
S A=0,B="" F S A=$O(^AUPNVNOT("AC",P,A)) Q:A'=+A!(B]"") D
.Q:'$D(^AUPNVNOT(A,0))
.Q:$P(^AUPNVNOT(A,0),U,4) ;retracted
.S D=$P($P($G(^AUPNVNOT(A,12)),U,1),".") ;event date
.Q:D>DSC1 ;after day after discharge
.Q:D<DSC ;before discharge date
.S C=$$VAL^XBDIQ1(9000010.28,A,.01)
.I $$UP^XLFSTR(C)="E-COPY DISCHARGE INSTR RECEIVED" S B=C_U_D Q
.I $$UP^XLFSTR(C)="E-COPY DISCHARGE INSTR NOT RECEIVED" S B=C_U_D Q
Q B
TRANSOUT(%) ;
NEW A
S A=$$DSCHTYPE^APCLV(%,"C")
I A=2 Q 1
Q 0
;
ERTRANSO(%) ;
NEW E,J
S E=$O(^AMERVSIT("AD",%,0))
I 'E Q 0 ;no visit in ER Visit
S J=$$VAL^XBDIQ1(9009080,E,6.1)
I J="REFERRED TO ANOTHER SERVICE" Q 1
I J="TRANSFER TO ANOTHER FACILITY" Q 1
Q 0
APCM13E6 ;IHS/CMI/LAB - IHS MU;
+1 ;;1.0;IHS MU PERFORMANCE REPORTS;**2,4,5**;MAR 26, 2012;Build 5
+2 ;;;;;;Build 3
ADV ;EP - CALCULATE adv directives
+1 NEW APCMP,APCMZ
+2 SET (APCMD1,APCMN1)=0
+3 IF APCMRPTT=2
Begin DoDot:1
+4 SET APCMP=APCMFAC
+5 IF $DATA(APCMHO65(APCMP,APCMTIME))
SET F=$PIECE(^APCM13OB(APCMIC,0),U,11)
Begin DoDot:2
+6 DO S^APCM13E1(APCMRPT,APCMIC,"Hospital is excluded from this measure as it did not admit anyone >=65 during the EHR Reporting Period.",APCMP,APCMRPTT,APCMTIME,F,1)
QUIT
End DoDot:2
QUIT
+7 SET APCMZ=$$HASADM65(DFN,APCMP,.APCMVSTS)
+8 ;NO ADMISSION
IF APCMZ=""
QUIT
+9 DO ADV1
+10 QUIT
End DoDot:1
+11 QUIT
HASADM65(P,R,VSTS) ;
+1 NEW X,Y,Z,V,G
+2 SET G=""
+3 SET X=0
FOR
SET X=$ORDER(VSTS(X))
IF X'=+X!(G)
QUIT
Begin DoDot:1
+4 SET V=$PIECE(VSTS(X),U,5)
+5 IF '$DATA(^AUPNVSIT(V,0))
QUIT
+6 IF $PIECE(^AUPNVSIT(V,0),U,11)
QUIT
+7 ;not correct service category
IF $PIECE(^AUPNVSIT(V,0),U,7)'="H"
QUIT
+8 ;not this facility
IF $PIECE(^AUPNVSIT(V,0),U,6)'=APCMP
QUIT
+9 ;not 65 on date of admission
IF $$AGE^AUPNPAT(P,$$VD^APCLV(V))<65
QUIT
+10 SET G=$$VD^APCLV(V)
End DoDot:1
+11 QUIT G
ADV1 ;
+1 ;set denominator value into field
+2 ;denom field for this measure
SET F=$PIECE(^APCM13OB(APCMIC,0),U,8)
+3 DO S^APCM13E1(APCMRPT,APCMIC,1,APCMP,APCMRPTT,APCMTIME,F)
+4 SET APCMVALU="Admission: "_$$DATE^APCM1UTL(APCMZ)_" Age: "_$$AGE^AUPNPAT(DFN,APCMZ)
+5 ;numerator?
+6 SET APCMEP=$$HASADV(DFN,APCMEDAT)
+7 SET APCMVALU=APCMVALU_"|||"_$PIECE(APCMEP,U,2)_"|||"_$PIECE(APCMEP,U,1)
+8 SET F=$PIECE(^APCM13OB(APCMIC,0),U,9)
+9 DO S^APCM13E1(APCMRPT,APCMIC,$PIECE(APCMEP,U,1),APCMP,APCMRPTT,APCMTIME,F)
+10 DO SETLIST^APCM13E1
+11 QUIT
HASADV(P,ED) ;does patient have an ADVANCE DIRECTIVE before end of report period
+1 ;
+2 NEW A,B,C,D,E,X
+3 ;check advance directive file
+4 SET E=""
+5 SET X=0
FOR
SET X=$ORDER(^AUPNADVD(P,11,X))
IF X'=+X!(E)
QUIT
Begin DoDot:1
+6 ;no zero node?
IF '$DATA(^AUPNADVD(P,11,X,0))
QUIT
+7 SET D=$PIECE(^AUPNADVD(P,11,X,0),U,1)
+8 ;after report period
IF D>ED
QUIT
+9 SET B=$PIECE(^AUPNADVD(P,11,X,0),U,2)
+10 IF B=""
QUIT
+11 SET E=1_U_"Advance Directives: "_$SELECT(B="Y":"YES",1:"NO")_" entered on "_$$DATE^APCM1UTL(D)
QUIT
End DoDot:1
+12 IF E]""
QUIT E
+13 ;now check for TIU Note title before ED of A
+14 SET X=0
FOR
SET X=$ORDER(^AUPNVNOT("AC",P,X))
IF X'=+X!(E)
QUIT
Begin DoDot:1
+15 SET B=$$VAL^XBDIQ1(9000010.28,X,.01)
+16 IF $$UP^XLFSTR(B)'="ADVANCE DIRECTIVE"
QUIT
+17 SET D=$$VD^APCLV($PIECE(^AUPNVNOT(X,0),U,3))
+18 IF D>ED
QUIT
+19 SET E=1_U_"Advance Directives: TIU document entered on "_$$DATE^APCM1UTL(D)
QUIT
End DoDot:1
+20 QUIT E
MR ;EP - med reconciliation
+1 ;for each provider or for the facility find out if this
+2 ;patient had a er visit or an admission of transferred
+3 ;if so, then check to see if they have m-mr anytime before end of report period
+4 NEW APCMP
+5 SET (APCMD1,APCMN1)=0
+6 IF APCMRPTT=2
SET APCMP=APCMFAC
Begin DoDot:1
+7 ;no ADMISSIONS/ER TO THIS FACILITY SO SKIP THIS OBJ
IF '$DATA(APCMHVTP(APCMP))
QUIT
+8 ;return # of visits^# w/M-MR
SET APCMEP=$$HASMMR(DFN,APCMBDAT,APCMEDAT,APCMP,.APCMVSTS)
+9 ;set denominator value into field
+10 ;denom field for this measure
SET F=$PIECE(^APCM13OB(APCMIC,0),U,8)
+11 DO S^APCM13E1(APCMRPT,APCMIC,$PIECE(APCMEP,U,1),APCMP,APCMRPTT,APCMTIME,F)
+12 ;numerator?
+13 SET APCMVALU="# of visits: "_$PIECE(APCMEP,U,1)_" - # w/ M-MR: "_+$PIECE(APCMEP,U,2)_"|||"_$PIECE(APCMEP,U,3)_"|||"_$SELECT($PIECE(APCMEP,U,1)=$PIECE(APCMEP,U,2):1,1:0)
+14 SET F=$PIECE(^APCM13OB(APCMIC,0),U,9)
+15 DO S^APCM13E1(APCMRPT,APCMIC,$PIECE(APCMEP,U,2),APCMP,APCMRPTT,APCMTIME,F)
+16 IF $PIECE(APCMEP,U,1)=0
QUIT
+17 DO SETLIST^APCM13E1
End DoDot:1
+18 QUIT
HOSER(Z,R) ;EP
+1 ;not correct facility
IF $PIECE(^AUPNVSIT(Z,0),U,6)'=R
QUIT 0
+2 IF $PIECE(^AUPNVSIT(Z,0),U,7)="H"
QUIT 1
+3 NEW C
+4 IF "A"'[$PIECE(^AUPNVSIT(Z,0),U,7)
QUIT 0
+5 SET C=$$CLINIC^APCLV(Z,"C")
+6 IF C=30
QUIT 1
+7 ;I C=80 Q 1
+8 QUIT 0
DSCHDATE(V) ;EP
+1 IF 'V
QUIT ""
+2 IF '$DATA(^AUPNVSIT(V))
QUIT ""
+3 NEW Y,Z,D
+4 SET D=""
+5 IF $PIECE(^AUPNVSIT(V,0),U,7)="H"
Begin DoDot:1
+6 SET Z=$ORDER(^AUPNVINP("AD",V,0))
+7 IF 'Z
SET D=$$VD^APCLV(V)
QUIT
+8 SET Y=$PIECE($PIECE(^AUPNVINP(Z,0),U),".")
+9 SET D=Y
End DoDot:1
QUIT D
+10 SET Z=$ORDER(^AUPNVER("AD",V,0))
+11 IF 'Z
QUIT $$VD^APCLV(V)
+12 IF '$DATA(^AUPNVER(Z,0))
QUIT $$VD^APCLV(V)
+13 SET Y=$PIECE($PIECE(^AUPNVER(Z,0),U,13),".")
+14 IF Y=""
QUIT $$VD^APCLV(V)
+15 QUIT $PIECE(Y,".")
HASMMR(P,BD,ED,R,VSTS) ;does patient have a M-MR on each visit?
+1 ;
+2 NEW A,B,C,D,E,X,Y,V,PWH,T,W,Z,Q,EDUC
+3 ;LOOP THROUGH ALL VISITS AND COUNT VISIT AND M-MR'S
+4 SET PWH="0^0"
+5 SET X=0
FOR
SET X=$ORDER(VSTS(X))
IF X'=+X
QUIT
Begin DoDot:1
+6 SET G=0
+7 SET V=$PIECE(VSTS(X),U,5)
+8 IF '$DATA(^AUPNVSIT(V,0))
QUIT
+9 ;deleted
IF $PIECE(^AUPNVSIT(V,0),U,11)
QUIT
+10 ;not correct service category/ER VISIT
IF '$$HOSER(V,R)
QUIT
+11 IF $PIECE(^AUPNVSIT(V,0),U,7)="H"
IF '$$TRANS(V)
QUIT
+12 IF $$CLINIC^APCLV(V,"C")=30
IF '$$ERTRANS(V)
QUIT
+13 SET $PIECE(PWH,U,1)=$PIECE(PWH,U,1)+1
+14 ;was there a PAT ED M-MR on the date of the visit through 1 day after the visit
+15 SET Y="EDUC("
+16 SET Z=P_"^ALL EDUC;DURING "_$$FMTE^XLFDT($$VD^APCLV(V))_"-"_$$FMTE^XLFDT($$VD^APCLV(V),1)
SET E=$$START1^APCLDF(Z,Y)
+17 IF '$DATA(EDUC(1))
SET $PIECE(PWH,U,3)=$PIECE(PWH,U,3)_$$DATE^APCM1UTL($$VD^APCLV(V))_":NO M-MR"
QUIT
+18 SET (Z,B,D)=0
SET %=""
SET T=""
FOR
SET Z=$ORDER(EDUC(Z))
IF Z'=+Z!(B)
QUIT
Begin DoDot:2
+19 SET A=$PIECE(^AUPNVPED(+$PIECE(EDUC(Z),U,4),0),U)
+20 IF 'A
QUIT
+21 IF '$DATA(^AUTTEDT(A,0))
QUIT
+22 SET T=$PIECE(^AUTTEDT(A,0),U,2)
+23 IF T'="M-MR"
QUIT
+24 SET B=1
SET $PIECE(PWH,U,2)=$PIECE(PWH,U,2)+1
End DoDot:2
+25 SET $PIECE(PWH,U,3)=$PIECE(PWH,U,3)_$$DATE^APCM1UTL($$VD^APCLV(V))_":"_$SELECT(B:"M-MR",1:"NO M-MR")_";"
+26 QUIT
End DoDot:1
+27 QUIT PWH
TRANS(%) ;
+1 NEW A
+2 SET A=$$ADMTYPE^APCLV(%,"C")
+3 IF A=2
QUIT 1
+4 IF A=3
QUIT 1
+5 IF A=4
QUIT 1
+6 QUIT 0
+7 ;
ERTRANS(%) ;
+1 NEW E
+2 SET E=$ORDER(^AMERVSIT("AD",%,0))
+3 ;no visit in ER Visit
IF 'E
QUIT 0
+4 IF '$PIECE($GET(^AMERVSIT(E,17)),U,1)
QUIT 0
+5 QUIT 1
ECHI ;EP - electronic copy of HI
+1 NEW APCMP,APCMECV
+2 KILL APCMECV
+3 SET (APCMD1,APCMN1)=0
+4 IF APCMRPTT=2
SET APCMP=APCMFAC
Begin DoDot:1
+5 IF $DATA(APCMECHI(APCMP,APCMTIME))
SET F=$PIECE(^APCM13OB(APCMIC,0),U,11)
Begin DoDot:2
+6 DO S^APCM13E1(APCMRPT,APCMIC,"Facility is excluded from this measure as no patients requested a copy of their health information during the EHR reporting period.",APCMP,APCMRPTT,APCMTIME,F,1)
QUIT
End DoDot:2
QUIT
+7 DO ALLV^APCLAPIU(DFN,$$FMADD^XLFDT(APCMEDAT,-365),APCMEDAT,"APCMECV")
+8 SET APCMHV=$$HADVH^APCM13CI(DFN,APCMP,$$FMADD^XLFDT(APCMEDAT,-365),APCMEDAT,.APCMECV)
+9 ;no visits to this FACILITY THAT ARE H/30/80 for this patient so don't bother, the patient is not in the denominator
IF 'APCMHV
QUIT
+10 ;set denominator value into field
+11 ;"" if no requests so not in denom
SET APCMEP=$$HASECHI^APCM13E4(DFN,APCMBDAT,$$BDB^APCM13E4(APCMEDAT,-4))
+12 IF APCMEP=""
QUIT
+13 ;denom field for this measure
SET F=$PIECE(^APCM13OB(APCMIC,0),U,8)
+14 DO S^APCM13E1(APCMRPT,APCMIC,$PIECE(APCMEP,U),APCMP,APCMRPTT,APCMTIME,F)
+15 SET APCMVALU="VISIT: "_$$DATE^APCM1UTL(APCMHV)
+16 ;numerator?
+17 SET APCMVALU=APCMVALU_"|||"_$SELECT($PIECE(APCMEP,U,2):"MET: ",1:"NOT MET: ")_$PIECE(APCMEP,U,3)_"|||"_$PIECE(APCMEP,U,2)
+18 SET F=$PIECE(^APCM13OB(APCMIC,0),U,9)
+19 DO S^APCM13E1(APCMRPT,APCMIC,$PIECE(APCMEP,U,2),APCMP,APCMRPTT,APCMTIME,F)
+20 DO SETLIST^APCM13E1
End DoDot:1
+21 KILL APCMECV
+22 QUIT
SC ;EP - REFERRAL, SUMMARY OF CARE
+1 NEW APCMP
+2 SET (APCMD1,APCMN1)=0
+3 IF APCMRPTT=2
SET APCMP=APCMFAC
Begin DoDot:1
+4 IF $DATA(APCMRCIS(APCMP,APCMTIME))
SET F=$PIECE(^APCM13OB(APCMIC,0),U,11)
Begin DoDot:2
+5 DO S^APCM13E1(APCMRPT,APCMIC,"Hospital is excluded from this measure as they did not make any referrals for patients they saw during the report period.",APCMP,APCMRPTT,APCMTIME,F,1)
QUIT
End DoDot:2
QUIT
+6 ;no visits to this provider for this patient so don't bother, the patient is not in the denominator
IF '$DATA(APCMHVTP(APCMP))
QUIT
+7 ;set denominator value into field
+8 ;# referrals^# w/c32 documentation
SET APCMEP=$$HASC32H(DFN,APCMBDAT,$$FMADD^XLFDT(APCMEDAT),APCMFAC,.APCMVSTS)
+9 IF '$PIECE(APCMEP,U,1)
QUIT
+10 ;denom field for this measure
SET F=$PIECE(^APCM13OB(APCMIC,0),U,8)
+11 DO S^APCM13E1(APCMRPT,APCMIC,$PIECE(APCMEP,U,1),APCMP,APCMRPTT,APCMTIME,F)
+12 ;S APCMVALU="VISIT: "_$$DATE^APCM1UTL(APCMHVTP(APCMP))
+13 SET APCMVALU="# ref: "_$PIECE(APCMEP,U,1)_" - # w/C32: "_+$PIECE(APCMEP,U,2)_" "_$PIECE(APCMEP,U,4)_"|||"_$PIECE(APCMEP,U,3)_"|||"_$SELECT('(+$PIECE(APCMEP,U,1)):0,+$PIECE(APCMEP,U,1)=+$PIECE(APCMEP,U,2):1,1:0)
+14 ;numerator?
+15 SET F=$PIECE(^APCM13OB(APCMIC,0),U,9)
+16 DO S^APCM13E1(APCMRPT,APCMIC,$PIECE(APCMEP,U,2),APCMP,APCMRPTT,APCMTIME,F)
+17 DO SETLIST^APCM13E1
End DoDot:1
+18 QUIT
HASC32H(P,BD,ED,R,VSTS) ;does patient have a referral with c32
+1 ;
+2 NEW A,B,C,D,E,ROI,X,ROII,VDS
+3 ;set to 1 if had a good request
SET ROI=""
+4 ;set to date of reques
SET ROII=""
+5 SET VDS=""
+6 SET D=$$FMADD^XLFDT(BD,-1)
+7 SET X=0
FOR
SET X=$ORDER(VSTS(X))
IF X'=+X
QUIT
Begin DoDot:1
+8 SET V=$PIECE(VSTS(X),U,5)
+9 IF $PIECE(^AUPNVSIT(V,0),U,6)'=R
QUIT
+10 IF '$$HOSER^APCM13E6(V,R)
QUIT
+11 IF $PIECE(^AUPNVSIT(V,0),U,7)="H"
IF '$$TRANSOUT(V)
QUIT
+12 IF $$CLINIC^APCLV(V,"C")=30
IF '$$ERTRANSO(V)
QUIT
+13 SET O=$$FMADD^XLFDT($$VD^APCLV(V),-1)
SET E=$$DSCHDATE^APCM13E6(V)
+14 IF VDS=""
SET VDS="Visits: "
+15 SET VDS=VDS_$$DATE^APCM1UTL($$VD^APCLV(V))_";"
+16 FOR
SET O=$ORDER(^BMCREF("AA",P,O))
IF O'=+O!(O>E)
QUIT
Begin DoDot:2
+17 SET Q=0
FOR
SET Q=$ORDER(^BMCREF("AA",P,O,Q))
IF Q'=+Q
QUIT
Begin DoDot:3
+18 SET S=$PIECE(^BMCREF(Q,0),U,15)
+19 ;not a A or C1
IF S'="A"
IF S'="C1"
QUIT
+20 IF $PIECE(^BMCREF(Q,0),U,4)="N"
QUIT
+21 IF $PIECE(^BMCREF(Q,0),U,5)'=R
QUIT
+22 SET $PIECE(ROI,U,1)=$PIECE(ROI,U,1)+1
+23 ;now check to see if a C32 was printed
+24 SET Y=0
FOR
SET Y=$ORDER(^BMCREF(Q,6,"B",Y))
IF Y'=+Y
QUIT
Begin DoDot:4
+25 IF $PIECE(^AUPNVSIT(V,0),U,7)="H"
Begin DoDot:5
+26 IF $PIECE(Y,".")'<$$FMADD^XLFDT($$DSCHDATE^APCM13E6(V),-1)
IF $PIECE(Y,".")'>$$DSCHDATE^APCM13E6(V)
Begin DoDot:6
+27 SET $PIECE(ROI,U,2)=$PIECE(ROI,U,2)+1
SET ROII=ROII_"RI "_$$DATE^APCM1UTL(O)_" C32 "_$$DATE^APCM1UTL(Y)_";"
QUIT
End DoDot:6
QUIT
End DoDot:5
QUIT
+28 Begin DoDot:5
+29 IF $PIECE(Y,".")'<$$VD^APCLV(V)
IF $PIECE(Y,".")'>$$DSCHDATE^APCM13E6(V)
Begin DoDot:6
+30 SET $PIECE(ROI,U,2)=$PIECE(ROI,U,2)+1
SET ROII=ROII_"RI "_$$DATE^APCM1UTL(O)_" C32 "_$$DATE^APCM1UTL(Y)_";"
QUIT
End DoDot:6
End DoDot:5
QUIT
+31 SET ROII=ROII_"RI "_$$DATE^APCM1UTL(O)_" C32 None;"
End DoDot:4
End DoDot:3
End DoDot:2
End DoDot:1
+32 SET $PIECE(ROI,U,3)=ROII
+33 QUIT ROI_U_VDS
ECDI ;EP - electronic copy of discharge instructions
+1 NEW APCMP,APCMZ,APCMEP
+2 IF APCMRPTT=2
Begin DoDot:1
+3 SET APCMP=APCMFAC
+4 IF $DATA(APCMNOEC(APCMP,APCMTIME))
SET F=$PIECE(^APCM13OB(APCMIC,0),U,11)
Begin DoDot:2
+5 DO S^APCM13E1(APCMRPT,APCMIC,"Facility is excluded from this measure as it did not have any requests from patients for and electronic copy of their discharge instructions during the EHR reporting period.",APCMP,APCMRPTT,APCMTIME
,F,1)
QUIT
End DoDot:2
QUIT
+6 ;return # of visits^# w/M-MR
SET APCMEP=$$HASECDI(DFN,APCMBDAT,APCMEDAT,APCMP,.APCMVSTS)
+7 ;set denominator value into field
+8 IF APCMEP=""
QUIT
+9 ;denom field for this measure
SET F=$PIECE(^APCM13OB(APCMIC,0),U,8)
+10 DO S^APCM13E1(APCMRPT,APCMIC,1,APCMP,APCMRPTT,APCMTIME,F)
+11 SET APCMVALU=$PIECE(APCMEP,U,2)_"|||"_$PIECE(APCMEP,U,3)_"|||"_$SELECT($PIECE(APCMEP,U,1):1,1:0)
+12 ;numerator?
+13 SET F=$PIECE(^APCM13OB(APCMIC,0),U,9)
+14 DO S^APCM13E1(APCMRPT,APCMIC,$PIECE(APCMEP,U,1),APCMP,APCMRPTT,APCMTIME,F)
+15 DO SETLIST^APCM13E1
End DoDot:1
+16 QUIT
HASECDI(P,BD,ED,R,VSTS) ;does patient have a M-MR on each visit?
+1 ;
+2 NEW A,B,C,D,E,X,Y,V,PWH,T,W,Z,Q,ECDI
+3 ;LOOP THROUGH ALL VISITS AND FIND AT LEAST ONE WITH ECDI TUI NOTES
+4 SET PWH=""
SET ECDI=""
+5 SET X=0
FOR
SET X=$ORDER(VSTS(X))
IF X'=+X!(PWH)
QUIT
Begin DoDot:1
+6 SET G=0
+7 SET V=$PIECE(VSTS(X),U,5)
+8 IF '$DATA(^AUPNVSIT(V,0))
QUIT
+9 ;deleted
IF $PIECE(^AUPNVSIT(V,0),U,11)
QUIT
+10 ;not correct service category/ER VISIT
IF '$$HOSER(V,R)
QUIT
+11 IF $PIECE(^AUPNVSIT(V,0),U,7)="H"
IF '$$DISCHOUT(V)
QUIT
+12 IF $PIECE(^AUPNVSIT(V,0),U,7)="H"
SET Q=""
Begin DoDot:2
+13 SET Z=$ORDER(^AUPNVINP("AD",V,0))
IF 'Z
QUIT
+14 IF '$DATA(^AUPNVINP(Z,0))
QUIT
+15 ;discharged after report period
IF $PIECE($PIECE(^AUPNVINP(Z,0),U),".")>ED
QUIT
+16 SET Q=1
End DoDot:2
IF 'Q
QUIT
+17 ;no tiu notes for discharge instructions
SET T=$$TIUDCEL(V)
IF T=""
QUIT
+18 ;set denominator
+19 IF $$UP^XLFSTR($PIECE(T,U))="E-COPY DISCHARGE INSTR RECEIVED"
SET PWH=1_U_"Adm/Visit Date: "_$$DATE^APCM1UTL($$VD^APCLV(V))_U_"Electronic Copy: "_$PIECE(T,U)_" on "_$$DATE^APCM1UTL($PIECE(T,U,2))
QUIT
+20 SET ECDI=0_U_$$DATE^APCM1UTL($$VD^APCLV(V))_U_"Electronic Copy: "_$PIECE(T,U)_" on "_$$DATE^APCM1UTL($PIECE(T,U,2))
+21 QUIT
End DoDot:1
+22 IF PWH
QUIT PWH
+23 QUIT ECDI
DISCHOUT(%) ;
+1 NEW A
+2 SET A=$$DSCHTYPE^APCLV(%,"C")
+3 IF A=1
QUIT 1
+4 IF A=2
QUIT 1
+5 IF A=3
QUIT 1
+6 QUIT 0
+7 ;
TIUDCEL(%) ;any electronic dc instruction TIU Notes
+1 NEW A,B,C,VD,DSC,DSC1,P,D
+2 ;admission date
SET VD=$$VD^APCLV(%)
+3 SET DSC=$$DSCHDATE(%)
+4 ;day after discharge
SET DSC1=$$FMADD^XLFDT(DSC,1)
+5 SET P=$PIECE(^AUPNVSIT(%,0),U,5)
+6 SET A=0
SET B=""
FOR
SET A=$ORDER(^AUPNVNOT("AC",P,A))
IF A'=+A!(B]"")
QUIT
Begin DoDot:1
+7 IF '$DATA(^AUPNVNOT(A,0))
QUIT
+8 ;retracted
IF $PIECE(^AUPNVNOT(A,0),U,4)
QUIT
+9 ;event date
SET D=$PIECE($PIECE($GET(^AUPNVNOT(A,12)),U,1),".")
+10 ;after day after discharge
IF D>DSC1
QUIT
+11 ;before discharge date
IF D<DSC
QUIT
+12 SET C=$$VAL^XBDIQ1(9000010.28,A,.01)
+13 IF $$UP^XLFSTR(C)="E-COPY DISCHARGE INSTR RECEIVED"
SET B=C_U_D
QUIT
+14 IF $$UP^XLFSTR(C)="E-COPY DISCHARGE INSTR NOT RECEIVED"
SET B=C_U_D
QUIT
End DoDot:1
+15 QUIT B
TRANSOUT(%) ;
+1 NEW A
+2 SET A=$$DSCHTYPE^APCLV(%,"C")
+3 IF A=2
QUIT 1
+4 QUIT 0
+5 ;
ERTRANSO(%) ;
+1 NEW E,J
+2 SET E=$ORDER(^AMERVSIT("AD",%,0))
+3 ;no visit in ER Visit
IF 'E
QUIT 0
+4 SET J=$$VAL^XBDIQ1(9009080,E,6.1)
+5 IF J="REFERRED TO ANOTHER SERVICE"
QUIT 1
+6 IF J="TRANSFER TO ANOTHER FACILITY"
QUIT 1
+7 QUIT 0