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

APCM25E0.m

Go to the documentation of this file.
  1. APCM25E0 ;IHS/CMI/LAB - IHS MU;
  1. ;;1.0;MU PERFORMANCE REPORTS;**8,9,10**;MAR 26, 2012;Build 31
  1. ;;;;;;Build 3
  1. SC ;EP - TRANSITION OF CARE SUMMARY
  1. ;new logic for patch 8, keep old logic in case need to revert based on testing
  1. ;for each provider count each referral entry in ^BMCREF
  1. K ^TMP($J,"TRANS")
  1. NEW APCMLABS,MMR
  1. D TOCSUMC
  1. NEW APCMP,N,F,O,Y
  1. S (APCMD1,APCMN1)=0
  1. I APCMRPTT=1 S APCMP=0 F S APCMP=$O(APCMPRV(APCMP)) Q:APCMP'=+APCMP D
  1. .I $P($G(MMR(APCMP)),U,1)<100 D
  1. ..S F=$P(^APCM25OB(APCMIC,0),U,11) D S^APCM25E1(APCMRPT,APCMIC,"Provider is excluded from this measure as he/she had less than 1 referrals during the EHR reporting period.",APCMP,APCMRPTT,APCMTIME,F,1)
  1. .S F=$P(^APCM25OB(APCMIC,0),U,8) ;denom field for this measure
  1. .S N=$P($G(MMR(APCMP)),U,1) ;returns # of transS^# with mmr
  1. .D S^APCM25E1(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,"TRANS",APCMP,P)) Q:P'=+P D
  1. ..I $P(^TMP($J,"TRANS",APCMP,P),U,1)=$P(^TMP($J,"TRANS",APCMP,P),U,2) S APCMVALU="# referrals: "_$P(^TMP($J,"TRANS",APCMP,P),U,1)_"|||"_" # w/TOCS: "_+$P(^TMP($J,"TRANS",APCMP,P),U,2)_" "_$P(^TMP($J,"TRANS",APCMP,P),U,3)_"|||1" D Q
  1. ...S DFN=P D SETLIST^APCM25E1 Q
  1. ..S DFN=P,APCMVALU="# referrals: "_$P(^TMP($J,"TRANS",APCMP,P),U,1)_"|||"_" # w/TOCS: "_+$P(^TMP($J,"TRANS",APCMP,P),U,2)_" "_$P(^TMP($J,"TRANS",APCMP,P),U,3)_"|||0" D SETLIST^APCM25E1
  1. .S Y=APCMIC
  1. .S F=$P(^APCM25OB(Y,0),U,9)
  1. .S N=$P($G(MMR(APCMP)),U,2)
  1. .D S^APCM25E1(APCMRPT,APCMIC,N,APCMP,APCMRPTT,APCMTIME,F)
  1. I APCMRPTT=2 S APCMP=APCMFAC D
  1. .;I '$P($G(MMR(APCMP)),U,1) D Q
  1. .;.S F=$P(^APCM25OB(APCMIC,0),U,11) D S^APCM25E1(APCMRPT,APCMIC,"Facility is excluded from this measure as there were no referrals during the EHR reporting period.",APCMP,APCMRPTT,APCMTIME,F,1)
  1. .;set denominator value into field FOR measure 1
  1. .S F=$P(^APCM25OB(APCMIC,0),U,8) ;denom field for this measure
  1. .S N=$P($G(MMR(APCMP)),U,1) ;returns # of transS^# with mmr
  1. .D S^APCM25E1(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,"TRANS",APCMP,P)) Q:P'=+P D
  1. ..I $P(^TMP($J,"TRANS",APCMP,P),U,1)=$P(^TMP($J,"TRANS",APCMP,P),U,2) S APCMVALU="# referrals: "_$P(^TMP($J,"TRANS",APCMP,P),U,1)_"|||"_" # w/TOCS: "_+$P(^TMP($J,"TRANS",APCMP,P),U,2)_" "_$P(^TMP($J,"TRANS",APCMP,P),U,3)_"|||1" D Q
  1. ...S DFN=P D SETLIST^APCM25E1 Q
  1. ..S DFN=P,APCMVALU="# referrals: "_$P(^TMP($J,"TRANS",APCMP,P),U,1)_"|||"_" # w/TOCS: "_+$P(^TMP($J,"TRANS",APCMP,P),U,2)_" "_$P(^TMP($J,"TRANS",APCMP,P),U,3)_"|||0" D SETLIST^APCM25E1
  1. .;numerator?
  1. .;NOW SET VALUES FOR NUMERATOR
  1. .S Y=APCMIC
  1. .;S F=$P(^APCM25OB(Y,0),U,8) D S^APCM25E1(APCMRPT,Y,$P($G(MMR(APCMP)),U,1),APCMP,APCMRPTT,APCMTIME,F)
  1. .S F=$P(^APCM25OB(Y,0),U,9)
  1. .S N=$P($G(MMR(APCMP)),U,2)
  1. .D S^APCM25E1(APCMRPT,APCMIC,N,APCMP,APCMRPTT,APCMTIME,F)
  1. K ^TMP($J,"TRANS")
  1. Q
  1. TOCSUMC ;EP - ep toc
  1. ;SET ARRAY MMR to MMR(prov ien)=denom^numer
  1. ;DENOM=# VISITS W/REFERRAL
  1. ;NUMER=# W/TOC DOCUMENT IN 600 MULTIPLE
  1. ;IF DENOM =0 THEN PROVIDER EXCLUSION
  1. NEW T,C,PAT,N,APCMX,R,C,G,Z,S,B,E,J,K,APCMED,APCMBD
  1. S C=0,N=0,PAT=""
  1. S T=$O(^APCMMUCN("B","MODIFIED STAGE 2 2015",0))
  1. S APCMBD=$$FMADD^XLFDT(APCMBDAT,-1)
  1. S APCMED=APCMEDAT
  1. ;loop all referrals initiated in the time period
  1. F S APCMBD=$O(^BMCREF("B",APCMBD)) Q:APCMBD'=+APCMBD!(APCMBD>APCMED) D
  1. .S APCMX=0 F S APCMX=$O(^BMCREF("B",APCMBD,APCMX)) Q:APCMX'=+APCMX D
  1. ..;check .06 to make sure it is provider we are running the report for in APCMPRV array
  1. ..S R=$$VALI^XBDIQ1(90001,APCMX,.06)
  1. ..I APCMRPTT=1 I 'R Q ;IN EP AND NO PROVIDER
  1. ..I APCMRPTT=1 I '$D(APCMPRV(R)) Q ;IN EP AND NOT CORRECT PROVIDER
  1. ..I APCMRPTT=2 Q:$$VALI^XBDIQ1(90001,APCMX,.05)'=APCMFAC
  1. ..Q:$P(^BMCREF(APCMX,0),U,4)="N" ;NO INHOUSE
  1. ..S D=$P($G(^BMCREF(APCMX,13)),U,5) ;approval date
  1. ..Q:D="" ;NO APPROVAL DATE
  1. ..Q:D>APCMEDAT ;AFTER TP APPROVAL DATE MUST BE IN TIME PERIOD
  1. ..Q:D<APCMBDAT ;BEFORE TP
  1. ..Q:$$VAL^XBDIQ1(90001,APCMX,.13)="DIAGNOSTIC IMAGING"
  1. ..Q:$$VAL^XBDIQ1(90001,APCMX,.13)="PATHOLOGY AND LABORATORY"
  1. ..Q:$$VAL^XBDIQ1(90001,APCMX,.13)="TRANSPORTATION"
  1. ..Q:$$VAL^XBDIQ1(90001,APCMX,.13)="DURABLE MEDICAL EQUIPMENT"
  1. ..;get visit and exclude clinic 30 and H for EP report
  1. ..;do hoser for inpatient
  1. ..S V=$$VALI^XBDIQ1(90001,APCMX,1303) ;V REF IEN
  1. ..I 'V Q ;NO V REFERRAL???
  1. ..S V=$$VALI^XBDIQ1(9000010.59,V,.03)
  1. ..I 'V Q ;;WHY WOULD THERE BE NO VISIT??
  1. ..Q:'$D(^AUPNVSIT(V,0)) ;NO VISIT??
  1. ..I APCMRPTT=2,APCMMETH="E" Q:'$$HOSER^APCM25E6(V,APCMFAC) S R=APCMFAC G TOCS2
  1. ..I APCMRPTT=2,APCMMETH="O" Q:"OH"'[$P(^AUPNVSIT(V,0),U,7) Q:$P(^AUPNVSIT(V,0),U,6)'=APCMFAC S R=APCMFAC G TOCS2
  1. ..I APCMRPTT=2 Q
  1. ..Q:$P(^AUPNVSIT(V,0),U,7)="H" ;Q:$P(^AUPNVSIT(V,0),U,7)="O"
  1. ..S C=$$CLINIC^APCLV(V,"C")
  1. ..Q:C=30
  1. TOCS2 ..;
  1. ..S PAT=$$VALI^XBDIQ1(90001,APCMX,.03)
  1. SUMNUM ..;
  1. ..I '$D(MMR(R)) S MMR(R)=""
  1. ..S $P(MMR(R),U,1)=$P(MMR(R),U,1)+1 D
  1. ...S $P(^TMP($J,"TRANS",R,PAT),U,1)=$P($G(^TMP($J,"TRANS",R,PAT)),U,1)+1
  1. ...S $P(^TMP($J,"TRANS",R,PAT),U,3)=$P(^TMP($J,"TRANS",R,PAT),U,3)_" "_$$VAL^XBDIQ1(90001,APCMX,.01)_"-"_$P(^BMCREF(APCMX,0),U,2)
  1. ..;now check numerator, FIELD 600
  1. ..S G=0,T=0
  1. ..;FIRST LOOK FOR A TX AND ACKNOWLEDGED IF FOUND, USE IT
  1. ..;NEXT LOOK FOR A TX, IF FOUND, USE IT
  1. ..S B=0 F S B=$O(^BMCREF(APCMX,6,B)) Q:B'=+B!(G) D
  1. ...S (A,E)=""
  1. ...I $P(^BMCREF(APCMX,6,B,0),U,4)'="CT" Q
  1. ...S E=$P($P(^BMCREF(APCMX,6,B,0),U,1),".")
  1. ...I E="" Q ;NO .01
  1. ...I $G(APCMEDUD),E>APCMEDUD Q ;IHS/CMI/LAB - PATCH 9 - printed after 12/31/17
  1. ...S M=$$CD(E,APCMBD)
  1. ...I 'M Q ;NOT IN REPORTING YEAR
  1. ...;I 'M S E=$P($P(^BMCREF(APCMX,6,B,0),U,1),".") S M=$$CD(E) Q:'M ;dates aren't good
  1. ...S A=$P($P(^BMCREF(APCMX,6,B,0),U,3),".") ;tx acknowledged
  1. ...I $G(APCMEDUD),A,A>APCMEDUD Q ;IHS/CMI/LAB - PATCH 9 in 2017, acknowledged after 12/31/17
  1. ...I A,$$CD(A,APCMBD) D SN S G=1
  1. Q
  1. SN ;
  1. S $P(MMR(R),U,2)=$P(MMR(R),U,2)+1 D Q
  1. .S $P(^TMP($J,"TRANS",R,PAT),U,2)=$P($G(^TMP($J,"TRANS",R,PAT)),U,2)+1
  1. .S $P(^TMP($J,"TRANS",R,PAT),U,3)=$P(^TMP($J,"TRANS",R,PAT),U,3)_";YES TX AND ACK"
  1. .;S $P(MMR(R),U,5)=$P(MMR(R),U,5)+1
  1. Q
  1. CD(E,BD) ;
  1. I E="" Q 0 ;NO DATE TRANSMITTED
  1. NEW %
  1. S %=$E(BD,1,3)_"0101"
  1. I $P(E,".")<% Q 0
  1. Q 1