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

BGPMUEHD.m

Go to the documentation of this file.
  1. BGPMUEHD ; IHS/MSC/MMT - EH Report Driver;02-Mar-2011 16:33;MGH
  1. ;;11.0;IHS CLINICAL REPORTING;**4**;JAN 06, 2011;Build 84
  1. ;Eligible Hospital CQM evaluation driver
  1. PROC ;EP
  1. S BGPBT=$H
  1. D JRNL^BGPMUUTL
  1. S BGPJ=$J,BGPH=$H
  1. S BGPCHWC=0
  1. K ^XTMP("BGPMUHOS",BGPJ,BGPH) ; not sure if I need this Timestamp stuff or if it should be Provider Specific
  1. D XTMP^BGPMUUTL("BGPMUHOS","Meaningful Use Hospital CQM Report")
  1. ;calculate 3 years before end of each time frame
  1. S BGP3YE=$$FMADD^XLFDT(BGPED,-1096)
  1. S BGPB3YE=$$FMADD^XLFDT(BGPBED,-1096)
  1. D PROCCY,PROCPY,PROCBY
  1. N ;
  1. S BGPET=$H
  1. Q
  1. ;
  1. PROCCY ;EP - current time period
  1. S BGPBDATE=BGPBD,BGPEDATE=BGPED,BGPTIME=1
  1. S BGP365=BGPBDATE
  1. S BGPMUTF="C"
  1. D CALCMEAS
  1. Q
  1. PROCPY ;
  1. S BGPBDATE=BGPPBD,BGPEDATE=BGPPED,BGPTIME=2
  1. S BGP365=BGPBDATE
  1. S BGPMUTF="P"
  1. D CALCMEAS
  1. Q
  1. PROCBY ;
  1. S BGPBDATE=BGPBBD,BGPEDATE=BGPBED,BGPTIME=3
  1. S BGP365=BGPBDATE
  1. S BGPMUTF="B"
  1. D CALCMEAS
  1. Q
  1. CALCMEAS ;
  1. D CALCMEAS^BGPMUDCI
  1. Q
  1. ACTUPAP(P,BDATE,EDATE,B) ;EP - is this patient in user pop? - NO EXPIRED CHECKS
  1. I B=1,$$BEN^AUPNPAT(P,"C")'="01" Q 0 ;must be Indian/Alaskan Native
  1. I B=2,$$BEN^AUPNPAT(P,"C")="01" Q 0 ;must not be I/A
  1. Q 1
  1. V2(P,BDATE,EDATE) ;EP
  1. N A,B,V,X,G,E
  1. I '$D(^AUPNVSIT("AC",P)) Q ""
  1. K ^TMP($J,"A")
  1. S A="^TMP($J,""A"",",B=P_"^ALL VISITS;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE),E=$$START1^APCLDF(B,A)
  1. I '$D(^TMP($J,"A",1)) Q ""
  1. S (X,G)=0 F S X=$O(^TMP($J,"A",X)) Q:X'=+X!(G>2) S V=$P(^TMP($J,"A",X),U,5) D
  1. .Q:'$D(^AUPNVSIT(V,0))
  1. .Q:'$P(^AUPNVSIT(V,0),U,9)
  1. .Q:$P(^AUPNVSIT(V,0),U,11)
  1. .Q:"SAHO"'[$P(^AUPNVSIT(V,0),U,7)
  1. .Q:"V"[$P(^AUPNVSIT(V,0),U,3)
  1. .Q:$P(^AUPNVSIT(V,0),U,6)=""
  1. .S G=G+1
  1. .Q
  1. Q $S(G<2:"",1:1)
  1. ;
  1. LOINC(A,B) ;
  1. NEW %
  1. S %=$P($G(^LAB(95.3,A,9999999)),U,2)
  1. I %]"",$D(^ATXAX(B,21,"B",%)) Q 1
  1. S %=$P($G(^LAB(95.3,A,0)),U)_"-"_$P($G(^LAB(95.3,A,0)),U,15)
  1. I $D(^ATXAX(B,21,"B",%)) Q 1
  1. Q ""
  1. BQI(BQIGREF) ;PEP - iCARE
  1. ; Input parameters
  1. ; BQIGREF = Global reference to store data
  1. Q:BQIGREF=""
  1. N BGPICARE,BGPIMEAS,BGPUMTF,BGPIIEN,BGPIDATA
  1. S BGPBT=$H
  1. D JRNL^BGPMUUTL
  1. S BGPJ=$J,BGPH=$H
  1. S BGPCHWC=0
  1. K ^XTMP("BGPMUHOS",BGPJ,BGPH) ; not sure if I need this Timestamp stuff or if it should be Provider Specific
  1. D XTMP^BGPMUUTL("BGPMUHOS","Meaningful Use Hospital CQM Report")
  1. ;calculate 3 years before end of each time frame
  1. S BGP3YE=$$FMADD^XLFDT(BGPED,-1096)
  1. S BGPB3YE=$$FMADD^XLFDT(BGPBED,-1096)
  1. K BGPICARE
  1. D PROCCY,PROCPY
  1. ;Move patient data for all requested measures from array to the passed in global reference
  1. S BGPIMEAS=""
  1. F S BGPIMEAS=$O(BGPICARE(BGPIMEAS)) Q:BGPIMEAS="" D
  1. .S BGPMUTF=""
  1. .F S BGPMUTF=$O(BGPICARE(BGPIMEAS,BGPMUTF)) Q:BGPMUTF="" D
  1. ..S DFN=""
  1. ..F S DFN=$O(BGPICARE(BGPIMEAS,BGPMUTF,DFN)) Q:DFN="" D
  1. ...S BGPIDATA=$G(BGPICARE(BGPIMEAS,BGPMUTF,DFN))
  1. ...;Lookup indicator ID
  1. ...S BGPIIEN=$O(^BGPMUIND(90596.11,"C",BGPIMEAS,0))
  1. ...;Store into global
  1. ...S @BQIGREF@(DFN,BGPMUTF,BGPIIEN)=BGPIDATA
  1. D BQIKILL
  1. K BGPICARE,BGPIMEAS,BGPUMTF,BGPIIEN,BGPIDATA
  1. Q
  1. BQIKILL ; TEMPORARY Subroutine to kill off ^TMP globals created by running measure evals without printing
  1. ;This routine should be removed once a better system for killing off ^TMP globals has been implemented
  1. K ^TMP("BGPMU0495",$J)
  1. K ^TMP("BGPMU0497",$J)
  1. K ^TMP("BGPMU0435",$J)
  1. K ^TMP("BGPMU0436",$J)
  1. K ^TMP("BGPMU0437",$J)
  1. K ^TMP("BGPMU0438",$J)
  1. K ^TMP("BGPMU0439",$J)
  1. K ^TMP("BGPMU0440",$J)
  1. K ^TMP("BGPMU0441",$J)
  1. K ^TMP("BGPMU0371",$J)
  1. K ^TMP("BGPMU0372",$J)
  1. K ^TMP("BGPMU0373",$J)
  1. K ^TMP("BGPMU0374",$J)
  1. K ^TMP("BGPMU0375",$J)
  1. K ^TMP("BGPMU0376",$J)
  1. Q