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

APCM13E4.m

Go to the documentation of this file.
  1. APCM13E4 ;IHS/CMI/LAB - IHS MU;
  1. ;;1.0;IHS MU PERFORMANCE REPORTS;**2,3**;MAR 26, 2012;Build 1
  1. ;;;;;;Build 3
  1. AL ;EP - CALCULATE ALLERY LIST
  1. ;for each provider or for the facility find out if this
  1. ;patient had a visit of A, O, R, S to this provider or facility
  1. ;if so, then check to see if they any ALLERGIES OR NAA documented in report period
  1. NEW APCMP
  1. S (APCMD1,APCMN1)=0
  1. I APCMRPTT=1 D Q
  1. .S APCMP=0 F S APCMP=$O(APCMPRV(APCMP)) Q:APCMP'=+APCMP D
  1. ..Q:'$D(APCMHVTP(APCMP)) ;no visits to this provider for this patient so don't bother, the patient is not in the denominator
  1. ..D AL1
  1. ..Q
  1. I APCMRPTT=2 D
  1. .S APCMP=APCMFAC
  1. .Q:'$D(APCMHVTP(APCMP))
  1. .D AL1
  1. .Q
  1. Q
  1. AL1 ;
  1. ;set denominator value into field
  1. S F=$P(^APCM13OB(APCMIC,0),U,8) ;denom field for this measure
  1. D S^APCM13E1(APCMRPT,APCMIC,1,APCMP,APCMRPTT,APCMTIME,F)
  1. S APCMVALU="VISIT: "_$$DATE^APCM1UTL(APCMHVTP(APCMP))
  1. ;numerator?
  1. S APCMEP=$$HASAL(DFN,APCMBDAT,APCMEDAT)
  1. S APCMVALU=APCMVALU_"|||"_$P(APCMEP,U,2)_"|||"_$P(APCMEP,U,1)
  1. S F=$P(^APCM13OB(APCMIC,0),U,9)
  1. D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U,1),APCMP,APCMRPTT,APCMTIME,F)
  1. D SETLIST^APCM13E1
  1. Q
  1. HASAL(P,BD,ED) ;does patient have an allergy entered before end of report period
  1. ;
  1. NEW A,B,C,D,E,X
  1. ;check in allergy tracking for a "drug" allergy ever
  1. S E=""
  1. S X=0 F S X=$O(^GMR(120.8,"B",P,X)) Q:X'=+X!(E) D
  1. .S A=$$VAL^XBDIQ1(120.8,X,3.1)
  1. .S D=$P($P(^GMR(120.8,X,0),U,4),".")
  1. .I D>ED Q ;after report period
  1. .I A]"",A["DRUG" S E=1_U_"Allergy: "_$$VAL^XBDIQ1(120.8,X,.02)_" entered on "_$$DATE^APCM1UTL(D) Q
  1. I E]"" Q E
  1. ;now check for no known allergies
  1. I $D(^GMR(120.86,P,0)),$P(^GMR(120.86,P,0),U,2)=0 D
  1. .S D=$P($P(^GMR(120.86,P,0),U,4),".",1)
  1. .Q:D>ED ;after ed
  1. .S E=1_U_"NKA noted on "_$$FMTE^XLFDT($P($P(^GMR(120.86,P,0),U,4),".",1))
  1. I E]"" Q E
  1. S D=$$LASTNAA^APCLAPI6(P,,ED,"D")
  1. I D]"" S E="1^No Active Allergies on "_$$DATE^APCM1UTL(D)
  1. Q E
  1. EPRES ;EP - CALCULATE EPRESCRIBING
  1. ;for each provider or for the facility count all prescriptions that meet criteria and if it is not written it meets numerator
  1. K ^TMP($J,"PATSRX")
  1. K APCMRXS
  1. D TOTRX
  1. NEW APCMP,N,F
  1. S (APCMD1,APCMN1)=0
  1. I APCMRPTT=1 S APCMP=0 F S APCMP=$O(APCMPRV(APCMP)) Q:APCMP'=+APCMP D
  1. .I $D(APCM100R(APCMP,APCMTIME)) S F=$P(^APCM13OB(APCMIC,0),U,11) D G D
  1. ..D S^APCM13E1(APCMRPT,APCMIC,"Provider is excluded from this measure as he/she had < 100 prescriptions issued during the EHR reporting period.",APCMP,APCMRPTT,APCMTIME,F,1)
  1. .I $G(APCMADDQ("ANS",APCMIC,24,APCMP))="No",$G(APCMADDQ("ANS",APCMIC,25,APCMP))="No" S F=$P(^APCM13OB(APCMIC,0),U,11) D
  1. ..D S^APCM13E1(APCMRPT,APCMIC,"Provider may be eligible for an exclusion on this measure as they not have an onsite pharmacy and do not have a pharmacy within 10 miles accepting electronic prescriptions.",APCMP,APCMRPTT,APCMTIME,F,1)
  1. D .;set denominator value into field
  1. .S F=$P(^APCM13OB(APCMIC,0),U,8) ;denom field for this measure
  1. .S N=$P($G(APCMRXS(APCMP)),U,1) ;returns # of prescriptions^# not written by nature of order
  1. .D S^APCM13E1(APCMRPT,APCMIC,N,APCMP,APCMRPTT,APCMTIME,F)
  1. .;now set patient list for this provider
  1. .S P=0 F S P=$O(^TMP($J,"PATSRX",APCMP,P)) Q:P'=+P D
  1. ..;Q:'$P(^TMP($J,"PATSRX",APCMP,P),U,1)
  1. ..I $P(^TMP($J,"PATSRX",APCMP,P),U,1)=$P(^TMP($J,"PATSRX",APCMP,P),U,2) S APCMVALU="# Prescriptions: "_$P(^TMP($J,"PATSRX",APCMP,P),U,1)_"|||"_" # transmitted electronically: "_+$P(^TMP($J,"PATSRX",APCMP,P),U,2)_"|||1" D Q
  1. ...S DFN=P D SETLIST^APCM13E1 Q
  1. ..S S="",APCMVALU="Not transmitted electronically: "
  1. ..F S S=$O(^TMP($J,"PATSRX",APCMP,P,"SCRIPTS",S)) Q:S="" D
  1. ...I '$D(^TMP($J,"PATSRX",APCMP,P,"ELEC",S)) D
  1. ....S APCMVALU=APCMVALU_S_";"
  1. ..S DFN=P,APCMVALU="# of Prescriptions: "_$P(^TMP($J,"PATSRX",APCMP,P),U,1)_" # transmitted electronically: "_+$P(^TMP($J,"PATSRX",APCMP,P),U,2)_"|||"_APCMVALU,$P(APCMVALU,"|||",3)=0 D SETLIST^APCM13E1
  1. .;numerator?
  1. .S F=$P(^APCM13OB(APCMIC,0),U,9)
  1. .S N=$P($G(APCMRXS(APCMP)),U,2)
  1. .D S^APCM13E1(APCMRPT,APCMIC,N,APCMP,APCMRPTT,APCMTIME,F)
  1. K ^TMP($J,"PATSRX")
  1. Q
  1. TOTRX ;EP - did patient have a RX in file 52 with an issue date
  1. ;between BD and ED
  1. ;SET ARRAY APCMRXS to APCMRXS(prov ien)=denom^numer
  1. NEW ID,C,Y,X,D,S,N,A,B,R,PAT,G
  1. S C=0,N=0
  1. S ID=$$FMADD^XLFDT(APCMBDAT,-1)
  1. F S ID=$O(^PSRX("AC",ID)) Q:ID'=+ID!(ID>APCMEDAT) D
  1. .S X=0 F S X=$O(^PSRX("AC",ID,X)) Q:X'=+X D
  1. ..S R=$P($G(^PSRX(X,0)),U,4)
  1. ..Q:'R
  1. ..;I '$D(APCMPRV(R)) Q ;not a provider of interest
  1. ..I '$D(APCMRXS(R)) S APCMRXS(R)=""
  1. ..Q:$P($G(^PSRX(X,"STA")),"^")=13
  1. ..S D=$P(^PSRX(X,0),U,6)
  1. ..S S=$P($G(^PSDRUG(D,0)),U,3)
  1. ..Q:S[5
  1. ..Q:S[4
  1. ..Q:S[3
  1. ..Q:S[2
  1. ..Q:S[1
  1. ..S S=$P($G(^PSRX(X,3)),U,7)
  1. ..Q:$$UP^XLFSTR(S)["ADMINISTERED IN CLINIC"
  1. ..S PAT=$P(^PSRX(X,0),U,2)
  1. ..;quit if demo patient
  1. ..Q:$$DEMO^APCLUTL(PAT,$G(APCMDEMO))
  1. ..S $P(APCMRXS(R),U,1)=$P(APCMRXS(R),U,1)+1,$P(^TMP($J,"PATSRX",R,PAT),U,1)=$P($G(^TMP($J,"PATSRX",R,PAT)),U,1)+1,^TMP($J,"PATSRX",R,PAT,"SCRIPTS",$P(^PSRX(X,0),U,1))=""
  1. ..;
  1. ..;now check to see if it has a nature of order not equal to 1-written
  1. ..S G=0
  1. ..I $E($P(^PSRX(X,0),U,1))?1N D
  1. ...S O=$P($G(^PSRX(X,"OR1")),U,2) ;order number
  1. ...Q:O=""
  1. ...S B=$P($G(^OR(100,O,0)),U,6)
  1. ...Q:B=""
  1. ...S A=0,G=0 F S A=$O(^OR(100,O,8,A)) Q:A'=+A!(G) D
  1. ....S B=$P($G(^OR(100,O,8,A,0)),U,12)
  1. ....Q:B=1
  1. ....Q:B=""
  1. ....S G=1
  1. ...S $P(APCMRXS(R),U,2)=$P(APCMRXS(R),U,2)+G,$P(^TMP($J,"PATSRX",R,PAT),U,2)=$P($G(^TMP($J,"PATSRX",R,PAT)),U,2)+G I G S ^TMP($J,"PATSRX",R,PAT,"ELEC",$P(^PSRX(X,0),U,1))="" ;S N=N+G
  1. ..S B=0 I $E($P(^PSRX(X,0),U,1))="X" D
  1. ...S A=0 F S A=$O(^PSRX(X,"A",A)) Q:A'=+A!(B) D
  1. ....I $P(^PSRX(X,"A",A,0),U,5)["E-Prescribe" S B=1
  1. ....I $P(^PSRX(X,"A",A,0),U,5)["eRx" S B=1
  1. ...S $P(APCMRXS(R),U,2)=$P(APCMRXS(R),U,2)+B,$P(^TMP($J,"PATSRX",R,PAT),U,2)=$P($G(^TMP($J,"PATSRX",R,PAT)),U,2)+B I B S ^TMP($J,"PATSRX",R,PAT,"ELEC",$P(^PSRX(X,0),U,1))=""
  1. Q
  1. VS ;EP - CALCULATE VITAL SIGNS
  1. ;for each provider or for the facility find out if this
  1. ;patient had a visit of A, O, R, S to this provider or facility
  1. ;if so, then check to see if they have vital signs documented anytime before end of report period
  1. Q:$$AGE^AUPNPAT(DFN,APCMBDAT)<2
  1. NEW APCMP
  1. S (APCMD1,APCMN1)=0
  1. I APCMRPTT=1 D Q
  1. .S APCMP=0 F S APCMP=$O(APCMPRV(APCMP)) Q:APCMP'=+APCMP D
  1. ..I $D(APCM2ON(APCMP,APCMTIME)) S F=$P(^APCM13OB(APCMIC,0),U,11) D S^APCM13E1(APCMRPT,APCMIC,"Provider is excluded from this measure as he/she did not see anyone over 2 during the EHR reporting period.",APCMP,APCMRPTT,APCMTIME,F,1) Q
  1. ..Q:'$D(APCMHVTP(APCMP)) ;no visits to this provider for this patient so don't bother, the patient is not in the denominator
  1. ..D VS1
  1. .Q
  1. I APCMRPTT=2 D
  1. .S APCMP=APCMFAC
  1. .Q:'$D(APCMHVTP(APCMP))
  1. .D VS1
  1. .Q
  1. Q
  1. VS1 ;set denominator value into field
  1. S F=$P(^APCM13OB(APCMIC,0),U,8) ;denom field for this measure
  1. D S^APCM13E1(APCMRPT,APCMIC,1,APCMP,APCMRPTT,APCMTIME,F)
  1. S APCMVALU="VISIT: "_$$DATE^APCM1UTL(APCMHVTP(APCMP))
  1. ;numerator?
  1. S APCMEP=$$HASVS(DFN,$$DOB^AUPNPAT(DFN),APCMEDAT)
  1. S APCMVALU=APCMVALU_"|||"_$P(APCMEP,U,2)_"|||"_$P(APCMEP,U,1)
  1. S F=$P(^APCM13OB(APCMIC,0),U,9)
  1. D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U,1),APCMP,APCMRPTT,APCMTIME,F)
  1. D SETLIST^APCM13E1
  1. Q
  1. HASVS(P,BD,ED) ;does patient have a problem entered before end of report period
  1. ;
  1. NEW A,B,C,D,E,HT,WT,BP
  1. S C=0
  1. S (HT,WT,BP)=""
  1. S HT=$$LASTITEM^APCLAPIU(P,"HT","MEASUREMENT",BD,ED)
  1. S WT=$$LASTITEM^APCLAPIU(P,"WT","MEASUREMENT",BD,ED)
  1. S BP=$$LASTITEM^APCLAPIU(P,"BP","MEASUREMENT",BD,ED)
  1. I HT]"",WT]"",BP]"" Q 1_U_"Has: HT, WT, BP"
  1. Q 0_U_"Has: "_$S(HT]"":"HT ",1:"")_$S(WT]"":"WT ",1:"")_$S(BP]"":"BP ",1:"")
  1. ;
  1. ST ;EP - CALCULATE SMOKING STATUS
  1. ;for each provider or for the facility find out if this
  1. ;patient had a visit of A, O, R, S to this provider or facility
  1. ;if so, then check to see if they have SMOKING STATUS documented anytime before end of report period
  1. Q:$$AGE^AUPNPAT(DFN,APCMBDAT)<13
  1. NEW APCMP
  1. S (APCMD1,APCMN1)=0
  1. I APCMRPTT=1 D Q
  1. .S APCMP=0 F S APCMP=$O(APCMPRV(APCMP)) Q:APCMP'=+APCMP D
  1. ..I $D(APCM13ON(APCMP,APCMTIME)) S F=$P(^APCM13OB(APCMIC,0),U,11) D S^APCM13E1(APCMRPT,APCMIC,"Provider is excluded from this measure as he/she did not see anyone over 13 during the EHR reporting period.",APCMP,APCMRPTT,APCMTIME,F,1) Q
  1. ..Q:'$D(APCMHVTP(APCMP)) ;no visits to this provider for this patient so don't bother, the patient is not in the denominator
  1. ..D ST1
  1. I APCMRPTT=2 D
  1. .S APCMP=APCMFAC
  1. .I $D(APCM13ON(APCMP,APCMTIME)) S F=$P(^APCM13OB(APCMIC,0),U,11) D S^APCM13E1(APCMRPT,APCMIC,"Hospital is excluded from this measure as did not admit anyone over 13 during the EHR reporting period.",APCMP,APCMRPTT,APCMTIME,F,1) Q
  1. .Q:'$D(APCMHVTP(APCMP))
  1. .D ST1
  1. .Q
  1. Q
  1. ST1 ;set denominator value into field
  1. S F=$P(^APCM13OB(APCMIC,0),U,8) ;denom field for this measure
  1. D S^APCM13E1(APCMRPT,APCMIC,1,APCMP,APCMRPTT,APCMTIME,F)
  1. S APCMVALU="VISIT: "_$$DATE^APCM1UTL(APCMHVTP(APCMP))
  1. ;numerator?
  1. S APCMEP=$$HASST(DFN,$$DOB^AUPNPAT(DFN),APCMEDAT)
  1. S APCMVALU=APCMVALU_"|||"_$P(APCMEP,U,2)_"|||"_$P(APCMEP,U,1)
  1. S F=$P(^APCM13OB(APCMIC,0),U,9)
  1. D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U,1),APCMP,APCMRPTT,APCMTIME,F)
  1. D SETLIST^APCM13E1
  1. Q
  1. HASST(P,BD,ED) ;does patient have a SMOKING STATUS
  1. ;
  1. NEW A,B,C,D,E,HF
  1. S C=0
  1. S HF=""
  1. S HF=$$LASTHF^APCLAPIU(P,"TOBACCO (SMOKING)",,ED,"A")
  1. I HF]"" Q 1_U_$$DATE^APCM1UTL($P(HF,U))_" "_$P(HF,U,2)
  1. Q 0
  1. ECHI ;EP - electronic copy of HI
  1. NEW APCMP,APCMECV
  1. K APCMECV
  1. S (APCMD1,APCMN1)=0
  1. I APCMRPTT=1 S APCMP=0 F S APCMP=$O(APCMPRV(APCMP)) Q:APCMP'=+APCMP D
  1. .I $D(APCMECHI(APCMP,APCMTIME)) S F=$P(^APCM13OB(APCMIC,0),U,11) D Q
  1. ..D S^APCM13E1(APCMRPT,APCMIC,"Provider is excluded from this measure as he/she did not see anyone who requested a copy of their health information during the EHR reporting period.",APCMP,APCMRPTT,APCMTIME,F,1) Q
  1. .D ALLV^APCLAPIU(DFN,$$FMADD^XLFDT(APCMEDAT,-365),APCMEDAT,"APCMECV")
  1. .S APCMHV=$$HADV^APCM13CI(DFN,APCMP,$$FMADD^XLFDT(APCMEDAT,-365),APCMEDAT,.APCMECV)
  1. .I 'APCMHV Q ;no visits to this provider for this patient so don't bother, the patient is not in the denominator
  1. .;set denominator value into field
  1. .S APCMEP=$$HASECHI(DFN,APCMBDAT,$$BDB(APCMEDAT,-4)) ;"" if no requests so not in denom
  1. .Q:APCMEP=""
  1. .S F=$P(^APCM13OB(APCMIC,0),U,8) ;denom field for this measure
  1. .D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U),APCMP,APCMRPTT,APCMTIME,F)
  1. .;S APCMVALU="VISIT: "_$$DATE^APCM1UTL(APCMHVTP(APCMP)) ;IHS/CMI/LAB - PATCH 7 FIX
  1. .S APCMVALU=$$DATE^APCM1UTL(APCMHV)
  1. .S APCMVALU=APCMVALU_"|||"_$S($P(APCMEP,U,2):"MET: ",1:"NOT MET: ")_$P(APCMEP,U,3)_"|||"_$P(APCMEP,U,2)
  1. .;numerator?
  1. .S F=$P(^APCM13OB(APCMIC,0),U,9)
  1. .D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U,2),APCMP,APCMRPTT,APCMTIME,F)
  1. .D SETLIST^APCM13E1
  1. K APCMECV
  1. Q
  1. HASECHI(P,BD,ED) ;EP - does patient have a ROI
  1. ;
  1. NEW A,B,C,D,E,ROI,X,ROII
  1. S ROI="" ;set to 1 if had a good request
  1. S ROII="" ;set to date of reques
  1. S D=$$FMADD^XLFDT(BD,-1)
  1. F S D=$O(^BRNREC("AA",P,D)) Q:D'=+D!(D>ED) D
  1. .S X=0 F S X=$O(^BRNREC("AA",P,D,X)) Q:X'=+X D
  1. ..Q:$P($G(^BRNREC(X,11)),U,1)'="E" ;check to see if the request was electronic
  1. ..S (A,B)=0 F S A=$O(^BRNREC(X,23,A)) Q:A'=+A D
  1. ...I $P($G(^BRNREC(X,23,A,0)),U,3)='"E" Q ;electronic request
  1. ...;had a request and it was disseminated electronically
  1. ...;was it disseminated within 3 business days?
  1. ...S B=$P(^BRNREC(X,23,A,0),U,2)
  1. ...I B="" S ROII=ROII_"Request date: "_$$DATE^APCM1UTL(D)_"disseminated: "_$$DATE^APCM1UTL(B)_";" Q
  1. ...I B>$$BD(D,3) S ROII=ROII_"Request date: "_$$DATE^APCM1UTL(D)_" disseminated: "_$$DATE^APCM1UTL(B)_";" Q
  1. ...S ROI=1_U_1_U_"Request Date: "_$$DATE^APCM1UTL(D)_" disseminated: "_$$DATE^APCM1UTL(B)
  1. I $P(ROI,U,1) Q ROI
  1. I ROII="" Q ""
  1. Q 1_U_0_U_ROII
  1. CS ;EP - CLINICAL SUMMARIES ON EACH VISIT
  1. NEW APCMP
  1. S (APCMD1,APCMN1)=0
  1. I APCMRPTT=1 S APCMP=0 F S APCMP=$O(APCMPRV(APCMP)) Q:APCMP'=+APCMP D
  1. .I $D(APCMOFFV(APCMP,APCMTIME)) S F=$P(^APCM13OB(APCMIC,0),U,11) D Q
  1. ..D S^APCM13E1(APCMRPT,APCMIC,"Provider is excluded from this measure as he/she did not have any office visits during the EHR Reporting Period.",APCMP,APCMRPTT,APCMTIME,F,1) Q
  1. .Q:'$D(APCMHVTP(APCMP)) ;no visits to this provider for this patient so don't bother, the patient is not in the denominator
  1. .;set denominator value into field
  1. .S APCMEP=$$HASCS(DFN,APCMP,APCMBDAT,$$BDB(APCMEDAT,-4),.APCMVSTS) ;RETURNS # OF VISIT^# THAT HAD PWH GIVEN W/IN 3 BUS DAYS
  1. .S F=$P(^APCM13OB(APCMIC,0),U,8) ;denom field for this measure
  1. .D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U),APCMP,APCMRPTT,APCMTIME,F)
  1. .;S APCMVALU="VISIT: "_$$DATE^APCM1UTL(APCMHVTP(APCMP))
  1. .I $P(APCMEP,U,1) S APCMVALU="# visits: "_$P(APCMEP,U,1)_" - # w/PWH: "_$P(APCMEP,U,2)_"|||"_$P(APCMEP,U,3)_"|||"_$S('(+$P(APCMEP,U,1)):0,$P(APCMEP,U,1)=$P(APCMEP,U,2):1,1:0)
  1. .;numerator?
  1. .S F=$P(^APCM13OB(APCMIC,0),U,9)
  1. .D S^APCM13E1(APCMRPT,APCMIC,$P(APCMEP,U,2),APCMP,APCMRPTT,APCMTIME,F)
  1. .I APCMVALU]"" D SETLIST^APCM13E1
  1. Q
  1. HASCS(P,R,BD,ED,VSTS) ;does patient have a SMOKING STATUS
  1. ;
  1. NEW A,B,C,D,E,X,Y,V,PWH,J
  1. ;LOOP THROUGH ALL VISITS AND COUNT VISIT AND PWH'S
  1. S PWH="0^0"
  1. ;RETURN 3RD PIECE AS LIST OF VISITS WITH A "PWH" or "No PWH"
  1. S X=0 F S X=$O(VSTS(X)) Q:X'=+X D
  1. .S G=0
  1. .S V=$P(VSTS(X),U,5)
  1. .I '$D(^AUPNVSIT(V,0)) Q
  1. .I $P(^AUPNVSIT(V,0),U,11) Q ;deleted
  1. .I "AOSM"'[$P(^AUPNVSIT(V,0),U,7) Q ;not correct service category/OFFICE VISIT
  1. .S C=$$CLINIC^APCLV(V,"C")
  1. .Q:C=30
  1. .Q:C=77
  1. .I C=76 Q ;no lab
  1. .I C=63 Q ;no radiology
  1. .I C=39 Q ;no pharmacy
  1. .S Y=0 F S Y=$O(^AUPNVPRV("AD",V,Y)) Q:Y'=+Y!(G) D
  1. ..I $P($G(^AUPNVPRV(Y,0)),U)'=R Q
  1. ..I $P($G(^AUPNVPRV(Y,0)),U,4)'="P" Q
  1. ..S G=1
  1. .Q:'G ;not a visit to this provider
  1. .Q:$$VD^APCLV(V)>ED
  1. .S $P(PWH,U,1)=$P(PWH,U,1)+1
  1. .;was there a pwh after the date of the visit up to 3 days after day of visit
  1. .;S D=$P(^AUPNVSIT(V,0),U),D=D-.000001 ;date of visit
  1. .S E=$$BD($$VD^APCLV(V),3)
  1. .S A=$$FMADD^XLFDT($$VD^APCLV(V),-1),B=0
  1. .F S A=$O(^APCHPWHL("AA",P,A)) Q:A'=+A!($P(A,".")>E)!(B) D
  1. ..S J=0 F S J=$O(^APCHPWHL("AA",P,A,J)) Q:J'=+J!(B) D
  1. ...Q:$P(^APCHPWHL(J,0),U,5)<$P(^AUPNVSIT(V,0),U,1)
  1. ...Q:$P($P(^APCHPWHL(J,0),U,5),".")>E
  1. ...S B=1
  1. .I B S $P(PWH,U,2)=$P(PWH,U,2)+1
  1. .S $P(PWH,U,3)=$P(PWH,U,3)_$$DATE^APCM1UTL($$VD^APCLV(V))_":"_$S(B:"PWH",1:"No PWH")_";"
  1. Q PWH
  1. BD(D,N) ;3 business days from this date
  1. NEW O,C,Q,R,T
  1. S C=0,T=""
  1. S O=D F S O=$$FMADD^XLFDT(O,1) Q:C=N D
  1. .S Q=$$DOW^XLFDT(O,1)
  1. .I Q=0 Q
  1. .I Q=6 Q
  1. .Q:$D(^HOLIDAY(O))
  1. .S C=C+1,T=O
  1. Q T
  1. BDB(D,N) ;EP - 3 business days from this date
  1. NEW O,C,Q,R,T
  1. S C=0,T=""
  1. S O=D F S O=$$FMADD^XLFDT(O,-1) Q:C=$P(N,"-",2) D
  1. .S Q=$$DOW^XLFDT(O,1)
  1. .I Q=0 Q
  1. .I Q=6 Q
  1. .Q:$D(^HOLIDAY(O))
  1. .S C=C+1,T=O
  1. Q T