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

BQIMUEXP.m

Go to the documentation of this file.
  1. BQIMUEXP ;GDIT/HS/ALA-MU CQ Export ; 01 Sep 2010 8:35 PM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;**3,4**;Apr 18, 2012;Build 66
  1. ;
  1. ;
  1. EN(FLAG) ; Entry Point
  1. NEW ASUFAC,ASUN,ASUNM,CT,DATE,DELIM,EXIEN,HDR,IEN,IN,N,VISIT,XBFLG,XBPAFN,XBS1,ZISHFL
  1. NEW RECORD,VDATE,XBE,XBF,ZTQUEUED,ERROR,ZISHC,ZISHDA1,BEGDT,ENDT,TMFRAME,CQN,DEN,NUM
  1. NEW EXC,MDATA,MS,MSNM,MSID,MSN,PRECORD,ALT,TIME,FLNM
  1. ;
  1. S ZTQUEUED=1
  1. ;
  1. ;If export is turned off, quit
  1. I $P(^BQI(90508,1,0),U,7)=1 Q
  1. S FLAG=$G(FLAG,0)
  1. ;
  1. S ASUN=$P(^AUTTSITE(1,0),U),ASUFAC=$P($G(^AUTTLOC(ASUN,0)),U,10),ASUNM=$P(^DIC(4,ASUN,0),U)
  1. ;
  1. K ^BQIDATA($J)
  1. S IN=0,CT=0,DELIM="^"
  1. ;
  1. I 'FLAG D
  1. . S IEN=0
  1. . F S IEN=$O(^XTMP("BQIMUMON",IEN)) Q:'IEN D
  1. .. S BEGDT=$P(^XTMP("BQIMUMON",IEN),U,1),ENDT=$P(^XTMP("BQIMUMON",IEN),U,2)
  1. .. S TMFRAME=$$FMTE^BQIUL1(BEGDT)_" - "_$$FMTE^BQIUL1(ENDT)
  1. .. ; ASUFAC
  1. .. S RECORD=ASUFAC
  1. .. ; Unique Identifier
  1. .. S $P(RECORD,DELIM,2)=$$UID(IEN)
  1. .. ; Timeframe
  1. .. S $P(RECORD,DELIM,3)=TMFRAME
  1. .. ; Measures
  1. .. S BQTDT=$E(ENDT,1,5)_"00"
  1. .. S CQN=$O(^BQIPROV(IEN,50,"B",BQTDT,"")) I CQN="" Q
  1. .. S MSN=0
  1. .. F S MSN=$O(^BQIPROV(IEN,50,CQN,1,MSN)) Q:'MSN D
  1. ... S PRECORD=RECORD
  1. ... S MDATA=^BQIPROV(IEN,50,CQN,1,MSN,0)
  1. ... S MSID=$P(MDATA,U,1),DEN=+$P(MDATA,U,2),NUM=+$P(MDATA,U,3),EXC=+$P(MDATA,U,4)
  1. ... I NUM>DEN S DEN=+$P(MDATA,U,3),NUM=+$P(MDATA,U,2)
  1. ... S MS=$O(^BGPMUIND(90596.11,"C",MSID,"")) I MS="" Q
  1. ... S MSNM=$P($G(^BGPMUIND(90596.11,MS,17)),U,3),MN=$P(^BGPMUIND(90596.11,MS,0),U,1)
  1. ... S ALT=$G(^BGPMUIND(90595.11,MN,18,1,0))
  1. ... ;
  1. ... S $P(PRECORD,DELIM,4)=ALT
  1. ... S $P(PRECORD,DELIM,5)=MSID
  1. ... S $P(PRECORD,DELIM,6)=MSNM
  1. ... S $P(PRECORD,DELIM,7)=DEN
  1. ... S $P(PRECORD,DELIM,8)=NUM
  1. ... S $P(PRECORD,DELIM,9)=EXC
  1. ... S IN=IN+1,^BQIDATA($J,IN)=PRECORD
  1. . ;
  1. . D WRITE
  1. . K ^XTMP("BQIMUMON")
  1. ;
  1. I FLAG D
  1. . S DN=0
  1. . F S DN=$O(^BQI(90508,1,19,DN)) Q:'DN D
  1. .. S BEGDT=$P(^BQI(90508,1,19,DN,0),U,2),ENDT=$P(^(0),U,3)
  1. .. S TMFRAME=$$FMTE^BQIUL1(BEGDT)_" - "_$$FMTE^BQIUL1(ENDT)
  1. .. S IEN=0
  1. .. F S IEN=$O(^BQIPROV(IEN)) Q:'IEN D
  1. ... ; ASUFAC
  1. ... S RECORD=ASUFAC
  1. ... ; Unique Identifier
  1. ... S $P(RECORD,DELIM,2)=$$UID(IEN)
  1. ... ; 90 Day Timeframe
  1. ... S $P(RECORD,DELIM,3)=TMFRAME
  1. ... ; Measures
  1. ... S BQTDT=$E(ENDT,1,5)_"00"
  1. ... S CQN=$O(^BQIPROV(IEN,50,"B",BQTDT,"")) I CQN="" Q
  1. ... S MSN=0
  1. ... F S MSN=$O(^BQIPROV(IEN,50,CQN,1,MSN)) Q:'MSN D
  1. .... S PRECORD=RECORD
  1. .... S MDATA=^BQIPROV(IEN,50,CQN,1,MSN,0)
  1. .... S MSID=$P(MDATA,U,1),DEN=+$P(MDATA,U,2),NUM=+$P(MDATA,U,3),EXC=+$P(MDATA,U,4)
  1. .... I NUM>DEN S DEN=+$P(MDATA,U,3),NUM=+$P(MDATA,U,2)
  1. .... S MS=$O(^BGPMUIND(90596.11,"C",MSID,"")) I MS="" Q
  1. .... S MSNM=$P($G(^BGPMUIND(90596.11,MS,17)),U,3),MN=$P(^BGPMUIND(90596.11,MS,0),U,1)
  1. .... S ALT=$G(^BGPMUIND(90595.11,MN,18,1,0))
  1. .... ;
  1. .... S $P(PRECORD,DELIM,4)=ALT
  1. .... S $P(PRECORD,DELIM,5)=MSID
  1. .... S $P(PRECORD,DELIM,6)=MSNM
  1. .... S $P(PRECORD,DELIM,7)=DEN
  1. .... S $P(PRECORD,DELIM,8)=NUM
  1. .... S $P(PRECORD,DELIM,9)=EXC
  1. .... S IN=IN+1,^BQIDATA($J,IN)=PRECORD
  1. ;
  1. D WRITE
  1. Q
  1. ;
  1. UID(BQIIEN) ;EP - Given IEN of provider return unique Provider record id.
  1. I $P($G(^VA(200,BQIIEN,"NPI")),U,1)'="" Q $P($G(^VA(200,BQIIEN,"NPI")),U,1)
  1. Q "Z"_$$GET1^DIQ(9999999.06,$P(^AUTTSITE(1,0),U),.32)_$E("0000000000",1,10-$L(BQIIEN))_BQIIEN
  1. ;
  1. JDATE(DATE) ;EP - Format the date
  1. I $G(DATE)="" Q ""
  1. NEW A
  1. S A=$$FMTE^XLFDT(DATE)
  1. Q $E(DATE,6,7)_$$UP^XLFSTR($P(A," ",1))_(1700+$E(DATE,1,3))
  1. ;
  1. DATE(D) ;
  1. Q (1700+$E(D,1,3))_$E(D,4,5)_$E(D,6,7)
  1. ;
  1. TIME() ;
  1. S TIME=$$NOW^XLFDT(),TIME=$P(TIME,".",2)
  1. S TIME=$E(TIME,1,4)
  1. ;,TIME=TIME_$E("000",$L(TIME)+1,$L(TIME))
  1. Q TIME
  1. ;
  1. ;send file
  1. WRITE ; use XBGSAVE to save the temp global (BQIDATA) to a file that is exported
  1. ;
  1. NEW XBGL,XBQ,XBQTO,XBNAR,XBMED,XBFLT,XBUF,XBFN,TIME
  1. S XBMED="F",XBQ="N",XBFLT=1,XBF=$J,XBE=$J
  1. S XBGL="BQIDATA"
  1. S XBNAR="MU PROVIDER CLINICAL QUALITY EXPORT"
  1. S ASUFAC=$P($G(^AUTTLOC($P(^AUTTSITE(1,0),U),0)),U,10) ;asufac for file name
  1. S FLNM=$S('$$PROD^XUPROD():"MUCQEPZ",1:"MUCQEP")
  1. S XBFN=FLNM_"_"_ASUFAC_"_"_$$DATE(DT)_"_"_$$TIME()_".txt"
  1. ;S XBFN="MUCQPR_"_ASUFAC_"_"_$$DATE(DT)_".txt"
  1. S XBS1="CANE SURVEILLANCE SEND"
  1. S XBUF=$P($G(^AUTTSITE(1,1)),"^",2)
  1. I XBUF="" S XBUF=$P($G(^XTV(8989.3,1,"DEV")),"^",1)
  1. ;
  1. D ^XBGSAVE
  1. ;
  1. K ^BQIDATA($J)
  1. Q
  1. ;
  1. HOS(FLAG) ;EP - Hospital Export
  1. NEW ASUFAC,ASUN,ASUNM,CT,DATE,DELIM,EXIEN,HDR,IEN,IN,N,VISIT,XBFLG,XBPAFN,XBS1,ZISHFL
  1. NEW RECORD,VDATE,XBE,XBF,ZTQUEUED,ERROR,ZISHC,ZISHDA1,BEGDT,ENDT,TMFRAME,CQN,DEN,NUM
  1. NEW EXC,MDATA,MS,MSNM,MSID,MSN,PRECORD,ALT,TIME,FLNM
  1. S ZTQUEUED=1
  1. ;
  1. ;If export is turned off, quit
  1. I $P(^BQI(90508,1,0),U,7)=1 Q
  1. S FLAG=$G(FLAG,0)
  1. ;
  1. S ASUN=$P(^BQI(90508,1,0),U),ASUFAC=$P($G(^AUTTLOC(ASUN,0)),U,10),ASUNM=$P(^DIC(4,ASUN,0),U)
  1. ;
  1. K ^BQIDATA($J)
  1. S IN=0,CT=0,DELIM="^"
  1. ;
  1. I 'FLAG D
  1. . S BEGDT=$$GET1^DIQ(90508,"1,",12.08,"I"),ENDT=$$GET1^DIQ(90508,"1,",12.09,"I")
  1. . S TMFRAME=$$FMTE^BQIUL1(BEGDT)_" - "_$$FMTE^BQIUL1(ENDT)
  1. . ;
  1. . ; ASUFAC
  1. . S RECORD=ASUFAC
  1. . ; Timeframe
  1. . S $P(RECORD,DELIM,2)=TMFRAME
  1. . ; Measures
  1. . S BQTDT=$E(ENDT,1,5)_"00"
  1. . S CQN=$O(^BQIFAC(ASUN,50,"B",BQTDT,"")) I CQN="" Q
  1. . I $P($G(^BQIFAC(ASUN,3)),U,1)=TMFRAME Q
  1. . S MSN=0
  1. . F S MSN=$O(^BQIFAC(ASUN,50,CQN,1,MSN)) Q:'MSN D
  1. .. S PRECORD=RECORD
  1. .. S MDATA=^BQIFAC(ASUN,50,CQN,1,MSN,0)
  1. .. S MSID=$P(MDATA,U,1),DEN=+$P(MDATA,U,2),NUM=+$P(MDATA,U,3),EXC=+$P(MDATA,U,4)
  1. .. S MS=$O(^BGPMUIND(90596.11,"C",MSID,"")) I MS="" Q
  1. .. S MSNM=$P($G(^BGPMUIND(90596.11,MS,17)),U,3),MN=$P(^BGPMUIND(90596.11,MS,0),U,1)
  1. .. S ALT=$G(^BGPMUIND(90595.11,MN,18,1,0))
  1. .. ;
  1. .. S $P(PRECORD,DELIM,3)=ALT
  1. .. S $P(PRECORD,DELIM,4)=MSID
  1. .. S $P(PRECORD,DELIM,5)=MSNM
  1. .. S $P(PRECORD,DELIM,6)=DEN
  1. .. S $P(PRECORD,DELIM,7)=NUM
  1. .. S $P(PRECORD,DELIM,8)=EXC
  1. .. S IN=IN+1,^BQIDATA($J,IN)=PRECORD
  1. ;
  1. I FLAG D
  1. . S DN=0
  1. . F S DN=$O(^BQI(90508,1,19,DN)) Q:'DN D
  1. .. S BEGDT=$P(^BQI(90508,1,19,DN,0),U,2),ENDT=$P(^(0),U,3)
  1. .. S TMFRAME=$$FMTE^BQIUL1(BEGDT)_" - "_$$FMTE^BQIUL1(ENDT)
  1. .. ; ASUFAC
  1. .. S RECORD=ASUFAC
  1. .. ; Timeframe
  1. .. S $P(RECORD,DELIM,2)=TMFRAME
  1. .. ; Measures
  1. .. S BQTDT=$E(ENDT,1,5)_"00"
  1. .. S CQN=$O(^BQIFAC(ASUN,50,"B",BQTDT,"")) I CQN="" Q
  1. .. I $P($G(^BQIFAC(ASUN,3)),U,1)=TMFRAME Q
  1. .. S MSN=0
  1. .. F S MSN=$O(^BQIFAC(ASUN,50,CQN,1,MSN)) Q:'MSN D
  1. ... S PRECORD=RECORD
  1. ... S MDATA=^BQIFAC(ASUN,50,CQN,1,MSN,0)
  1. ... S MSID=$P(MDATA,U,1),DEN=+$P(MDATA,U,2),NUM=+$P(MDATA,U,3),EXC=+$P(MDATA,U,4)
  1. ... I NUM>DEN S DEN=+$P(MDATA,U,3),NUM=+$P(MDATA,U,2)
  1. ... S MS=$O(^BGPMUIND(90596.11,"C",MSID,"")) I MS="" Q
  1. ... S MSNM=$P($G(^BGPMUIND(90596.11,MS,17)),U,3),MN=$P(^BGPMUIND(90596.11,MS,0),U,1)
  1. ... S ALT=$G(^BGPMUIND(90595.11,MN,18,1,0))
  1. ... ;
  1. ... S $P(PRECORD,DELIM,3)=ALT
  1. ... S $P(PRECORD,DELIM,4)=MSID
  1. ... S $P(PRECORD,DELIM,5)=MSNM
  1. ... S $P(PRECORD,DELIM,6)=DEN
  1. ... S $P(PRECORD,DELIM,7)=NUM
  1. ... S $P(PRECORD,DELIM,8)=EXC
  1. ... S IN=IN+1,^BQIDATA($J,IN)=PRECORD
  1. ;
  1. NEW XBGL,XBQ,XBQTO,XBNAR,XBMED,XBFLT,XBUF,XBFN
  1. S XBMED="F",XBQ="N",XBFLT=1,XBF=$J,XBE=$J
  1. S XBGL="BQIDATA"
  1. S XBNAR="MU HOSPITAL CLINICAL QUALITY EXPORT"
  1. S ASUFAC=$P($G(^AUTTLOC($P(^AUTTSITE(1,0),U),0)),U,10) ;asufac for file name
  1. S FLNM=$S('$$PROD^XUPROD():"MUCQEHZ",1:"MUCQEH")
  1. S XBFN=FLNM_"_"_ASUFAC_"_"_$$DATE(DT)_"_"_$$TIME()_".txt"
  1. S XBS1="CANE SURVEILLANCE SEND"
  1. S XBUF=$P($G(^AUTTSITE(1,1)),"^",2)
  1. I XBUF="" S XBUF=$P($G(^XTV(8989.3,1,"DEV")),"^",1)
  1. ;
  1. D ^XBGSAVE
  1. ;
  1. K ^BQIDATA($J)
  1. S $P(^BQIFAC(ASUN,3),U,1)=TMFRAME
  1. Q