BDMGRH ; IHS/CMI/LAB - BDM DMS GUI Reports ; 09 Feb 2010 7:38 AM
;;2.0;DIABETES MANAGEMENT SYSTEM;**9,10,11**;JUN 14, 2007;Build 30
;
DEBUG(BDMRET,BDMSTR) ;-- debugger
D DEBUG^%Serenji("DMA12P^BDMGRE(.BDMRET,.BDMSTR)")
Q
;
DMA16(RETVAL,BDMSTR) ;-- dm audit 2016
N P,R
N BDMRG,BDMDAT,BDMTYP,BDMSTMP,BDMPCP,BDMLCOM,BDMRAND,BDMRCNT,BDMDSP,BDMPNA
N BDMCMS,BDMRGI,BDMSTAT,BDMPREP,BDMFILE,BDMPATS,BDMSTMPE,BDMCMSE,BDMH,BDMJ
N BDMDZ2,BDMDEMO,BDMBEN,BDMPREG,BDMBD
S BDMH=$H,BDMJ=$J
S P="|",R="~"
S RETVAL="^BDMTMP("_$J_")"
I $G(BDMSTR)="" D CATSTR^BDMGU(.BDMSTR,.BDMSTR)
S BDMRGI=$P(BDMSTR,P)
S BDMRG=$O(^ACM(41.1,"B",BDMRGI,0))
S BDMDAT=$P(BDMSTR,P,2)
S BDMBD=($E(BDMDAT,1,3)-1)_$E(BDMDAT,4,7),BDMBD=$$FMADD^XLFDT(BDMBD,1)
S BDMTYP=$P(BDMSTR,P,3)
S BDMPCP=$P(BDMSTR,P,5)
S BDMCOM=$P(BDMSTR,P,6)
S BDMRAND=$P(BDMSTR,P,7)
S BDMRCNT=$P(BDMSTR,P,8)
S BDMSTAT=$P(BDMSTR,P,9)
S BDMPREP=$P(BDMSTR,P,10)
S BDMFILE=$P(BDMSTR,P,11)
S BDMPNA=$P(BDMSTR,P,15)
S BDMDSP=$P(BDMSTR,P,16)
S BDMSDPI=$P(BDMSTR,P,12)
S BDMSDPIN=$P(BDMSTR,P,13)
S BDMCALL=$P(BDMSTR,P,14)
S BDMDZ2=$P(BDMSTR,P,17)
S BDMDEMO=$P(BDMSTR,P,18)
S BDMBEN=$P(BDMSTR,P,19)
S BDMPREG=$P(BDMSTR,P,20)
I BDMCALL="DM Audit E 16" D
. S BDMTYP=""
I BDMTYP="P" D
. S BDMPATS=$P(BDMSTR,P,4)
. N I
. F I=1:1 D Q:$P(BDMPATS,R,I)=""
.. Q:$P(BDMPATS,R,I)=""
.. S ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",$P(BDMPATS,R,I))=""
.. I BDMCALL="DM Audit P 16" D
... S ^XTMP("BDMPD1",BDMJ,BDMH,"PATS",$P(BDMPATS,R,I))=""
I BDMTYP="S" D
. S BDMSTMPE=$P(BDMSTR,P,4)
. S BDMSTMP=$O(^DIBT("B",BDMSTMPE,0))
. Q:'BDMSTMP
. N BDMDA,BDMCNT
. S BDMCNT=0
. S BDMDA=0 F S BDMDA=$O(^DIBT(BDMSTMP,1,BDMDA)) Q:'BDMDA D
.. I $G(BDMCOM) Q:$P($G(^AUPNPAT(BDMDA,11)),U,17)'=BDMCOM
.. I $G(BDMPCP) Q:$P($G(^AUPNPAT(BDMDA,0)),U,14)'=BDMPCP
.. S BDMCNT=BDMCNT+1
.. I BDMBEN=1,$$BEN^AUPNPAT(BDMDA,"C")'="01" Q
.. I BDMBEN=2,$$BEN^AUPNPAT(BDMDA,"C")="01" Q
.. I BDMPREG="E" Q:$$PREG^BDMDD1B(BDMDA,BDMBD,BDMDAT,1,1)
.. S ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",BDMDA)=""
.. S ^TMP($J,"PATS",BDMCNT,BDMDA)=""
.. I BDMCALL="DM Audit P 16" D
... S ^XTMP("BDMPD1",BDMJ,BDMH,"PATS",BDMDA)=""
I BDMTYP="C" D
. S BDMCMSE=$P(BDMSTR,P,4)
. Q:$G(BDMCMSE)=""
. S BDMCMS=$O(^ACM(41.1,"B",BDMCMSE,0))
. Q:'BDMCMS
. N BDMDA,BDMCNT
. S BDMCNT=0
. S BDMDA=0 F S BDMDA=$O(^ACM(41,"B",BDMCMS,BDMDA)) Q:'BDMDA D
.. S BDMRPAT=$P($G(^ACM(41,BDMDA,0)),U,2)
.. I $G(BDMCOM) Q:$P($G(^AUPNPAT(BDMRPAT,11)),U,17)'=BDMCOM
.. I $G(BDMPCP) Q:$P($G(^AUPNPAT(BDMRPAT,0)),U,14)'=BDMPCP
.. I $G(BDMSTAT)]"" Q:$P($G(^ACM(41,BDMDA,"DT")),U)'=BDMSTAT
.. I BDMBEN=1,$$BEN^AUPNPAT(BDMRPAT,"C")'="01" Q
.. I BDMBEN=2,$$BEN^AUPNPAT(BDMRPAT,"C")="01" Q
.. I BDMPREG="E" Q:$$PREG^BDMDD1B(BDMRPAT,BDMBD,BDMDAT,1,1)
.. S ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",BDMRPAT)=""
.. I BDMSTAT]"",$P($G(^ACM(41,BDMDA,"DT")),U,1)=BDMSTAT S BDMCNT=BDMCNT+1,^TMP($J,"PATS",BDMCNT,BDMRPAT)=""
.. I BDMSTAT="" S BDMCNT=BDMCNT+1,^TMP($J,"PATS",BDMCNT,BDMRPAT)=""
.. I BDMCALL="DM Audit P 16" D
... S ^XTMP("BDMPD1",BDMJ,BDMH,"PATS",BDMRPAT)=""
I BDMRAND="Y" D
. N X
. K ^TMP($J,"PATS") S BDMCNT=0,X=0 F S X=$O(^ACM(41,"B",BDMRG,X)) Q:X'=+X D
.. I BDMSTAT]"",$P($G(^ACM(41,X,"DT")),U,1)=BDMSTAT S BDMCNT=BDMCNT+1,^TMP($J,"PATS",BDMCNT,$P(^ACM(41,X,0),U,2))=""
.. I BDMSTAT="" S BDMCNT=BDMCNT+1,^TMP($J,"PATS",BDMCNT,$P(^ACM(41,X,0),U,2))=""
. K ^XTMP("BDMDM16",BDMJ,BDMH,"PATS")
. S (X,BDMCNT)=0 F S X=$O(^TMP($J,"PATS",X)) Q:X'=+X S BDMCNT=BDMCNT+1
. S C=0 F N=1:1:BDMCNT Q:C=BDMRCNT S I=$R(BDMCNT) I I,$D(^TMP($J,"PATS",I)) S X=$O(^TMP($J,"PATS",I,0)),^XTMP("BDMDM16",BDMJ,BDMH,"PATS",X)="",C=C+1 K ^TMP($J,"PATS",I,X)
. K ^TMP($J,"PATS")
I '$G(BDMDSP) S ^BDMTMP($J,1)="T00010REPORTIEN"_$C(30)
I BDMCALL="DM Audit 2016" D
. D BDMG^BDMDD1(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$G(BDMSTMP),BDMPCP,BDMCOM,$G(BDMRAND),$G(BDMRCNT),$G(BDMCMS),$G(BDMSTAT),BDMPREP,$G(BDMFILE),$G(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMPNA,BDMDZ2,BDMDEMO,BDMBEN)
I BDMCALL="DM Audit P 16" D
. D BDMG^BDMPD1(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$G(BDMSTMP),BDMPCP,BDMCOM,$G(BDMRAND),$G(BDMRCNT),$G(BDMCMS),$G(BDMSTAT),BDMPREP,$G(BDMFILE),$G(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMPNA,BDMDZ2,BDMDEMO,BDMBEN)
I BDMCALL="DM Audit E 16" D
. D BDMG^BDMDD1E(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$G(BDMSTMP),BDMPCP,BDMCOM,$G(BDMRAND),$G(BDMRCNT),$G(BDMCMS),$G(BDMSTAT),BDMPREP,$G(BDMFILE),$G(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMDZ2,BDMDEMO)
I $G(BDMDSP) S BDMIEN=1 D NOWDMO16 Q
I '$G(BDMIEN) S BDMERR="Error Queueing DM Audit"
I '$G(BDMDSP) S ^BDMTMP($J,2)=$C(31)_$G(BDMERR)
D EN^XBVK("BDM")
Q
;
DMA16P(BDMRET,BDMSTR) ;-- dm audit 2016
N P,R
N BDMRG,BDMDAT,BDMTYP,BDMSTMP,BDMPCP,BDMLCOM,BDMRAND,BDMRCNT,BDMDSP,BDMPNA
N BDMCMS,BDMRGI,BDMSTAT,BDMPREP,BDMFILE,BDMPATS,BDMSTMPE,BDMCMSE,BDMH,BDMJ
N BDMDZ2,BDMDEMO,BDMBEN,BDMPREG,BDMBD
S BDMH=$H,BDMJ=$J
S P="|",R="~"
S BDMRET="^BDMTMP("_$J_")"
I $G(BDMSTR)="" D CATSTR^BDMGU(.BDMSTR,.BDMSTR)
S BDMRGI=$P(BDMSTR,P)
S BDMRG=$O(^ACM(41.1,"B",BDMRGI,0))
S BDMRGI=$P(BDMSTR,P)
S BDMRG=$O(^ACM(41.1,"B",BDMRGI,0))
S BDMDAT=$P(BDMSTR,P,2)
S BDMBD=($E(BDMDAT,1,3)-1)_$E(BDMDAT,4,7),BDMBD=$$FMADD^XLFDT(BDMBD,1)
S BDMTYP=$P(BDMSTR,P,3)
S BDMPCP=$P(BDMSTR,P,5)
S BDMCOM=$P(BDMSTR,P,6)
S BDMRAND=$P(BDMSTR,P,7)
S BDMRCNT=$P(BDMSTR,P,8)
S BDMSTAT=$P(BDMSTR,P,9)
S BDMPREP=$P(BDMSTR,P,10)
S BDMFILE=$P(BDMSTR,P,11)
S BDMPNA=$P(BDMSTR,P,15)
S BDMDSP=$P(BDMSTR,P,16)
S BDMSDPI=$P(BDMSTR,P,12)
S BDMSDPIN=$P(BDMSTR,P,13)
S BDMCALL=$P(BDMSTR,P,14)
S BDMDZ2=$P(BDMSTR,P,17)
S BDMDEMO=$P(BDMSTR,P,18)
S BDMBEN=$P(BDMSTR,P,19)
S BDMPREG=$P(BDMSTR,P,20)
I BDMTYP="P" D
. S BDMPATS=$P(BDMSTR,P,4)
. N I
. F I=1:1 D Q:$P(BDMPATS,R,I)=""
.. Q:$P(BDMPATS,R,I)=""
.. S ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",$P(BDMPATS,R,I))=""
I BDMTYP="S" D
. S BDMSTMPE=$P(BDMSTR,P,4)
. S BDMSTMP=$O(^DIBT("B",BDMSTMPE,0))
. Q:'BDMSTMP
. N BDMDA
. S BDMDA=0 F S BDMDA=$O(^DIBT(BDMSTMP,1,BDMDA)) Q:'BDMDA D
.. I $G(BDMCOM) Q:$P($G(^AUPNPAT(BDMDA,11)),U,17)'=BDMCOM
.. I $G(BDMPCP) Q:$P($G(^AUPNPAT(BDMDA,0)),U,14)'=BDMPCP
.. I BDMPREG="E" Q:$$PREG^BDMDD1B(BDMDA,BDMBD,BDMDAT,1,1)
.. S ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",BDMDA)=""
I BDMTYP="C" D
. S BDMCMSE=$P(BDMSTR,P,4)
. S BDMCMS=$O(^ACM(41.1,"B",BDMCMSE,0))
. Q:'BDMCMS
. N BDMDA
. S BDMDA=0 F S BDMDA=$O(^ACM(41,"B",BDMCMS,BDMDA)) Q:'BDMDA D
.. S BDMRPAT=$P($G(^ACM(41,BDMDA,0)),U,2)
.. I $G(BDMCOM) Q:$P($G(^AUPNPAT(BDMRPAT,11)),U,17)'=BDMCOM
.. I $G(BDMPCP) Q:$P($G(^AUPNPAT(BDMRPAT,0)),U,14)'=BDMPCP
.. I $G(BDMSTAT)]"" Q:$P($G(^ACM(41,BDMDA,"DT")),U)'=BDMSTAT
.. I BDMPREG="E" Q:$$PREG^BDMDD1B(BDMRPAT,BDMBD,BDMDAT,1,1)
.. S ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",BDMRPAT)=""
I '$G(BDMDSP) S ^BDMTMP($J,1)="T00010REPORTIEN"_$C(30)
D BDMG^BDMDD1(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$G(BDMSTMP),BDMPCP,BDMCOM,$G(BDMRAND),$G(BDMRCNT),$G(BDMCMS),$G(BDMSTAT),BDMPREP,$G(BDMFILE),$G(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMPNA,BDMDZ2,BDMDEMO,BDMBEN)
I $G(BDMDSP) S BDMIEN=1 D NOWDMO16 Q
I '$G(BDMIEN) S BDMERR="Error Queueing DM Audit"
I '$G(BDMDSP) S ^BDMTMP($J,2)=$C(31)_$G(BDMERR)
Q
;
NOWDMO16 ;EP - return the output to the screen
N BDMI,BDMDA
S BDMI=0
S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
S BDMDA=0 F S BDMDA=$O(^TMP($J,"BDMDM16",BDMDA)) Q:'BDMDA D
. S BDMI=BDMI+1
. S ^BDMTMP($J,BDMI)=$G(^TMP($J,"BDMDM16",BDMDA))_$C(30)
S ^BDMTMP($J,BDMI+1)=$C(31)+$G(BDMERR)
Q
;
DMA17(RETVAL,BDMSTR) ;-- dm audit 2017
N P,R
N BDMRG,BDMDAT,BDMTYP,BDMSTMP,BDMPCP,BDMLCOM,BDMRAND,BDMRCNT,BDMDSP,BDMPNA
N BDMCMS,BDMRGI,BDMSTAT,BDMPREP,BDMFILE,BDMPATS,BDMSTMPE,BDMCMSE,BDMH,BDMJ
N BDMDZ2,BDMDEMO,BDMBEN,BDMPREG,BDMBD
S BDMH=$H,BDMJ=$J
S P="|",R="~"
S RETVAL="^BDMTMP("_$J_")"
I $G(BDMSTR)="" D CATSTR^BDMGU(.BDMSTR,.BDMSTR)
S BDMRGI=$P(BDMSTR,P)
S BDMRG=$O(^ACM(41.1,"B",BDMRGI,0))
S BDMDAT=$P(BDMSTR,P,2)
S BDMBD=($E(BDMDAT,1,3)-1)_$E(BDMDAT,4,7),BDMBD=$$FMADD^XLFDT(BDMBD,1)
S BDMTYP=$P(BDMSTR,P,3)
S BDMPCP=$P(BDMSTR,P,5)
S BDMCOM=$P(BDMSTR,P,6)
S BDMRAND=$P(BDMSTR,P,7)
S BDMRCNT=$P(BDMSTR,P,8)
S BDMSTAT=$P(BDMSTR,P,9)
S BDMPREP=$P(BDMSTR,P,10)
S BDMFILE=$P(BDMSTR,P,11)
S BDMPNA=$P(BDMSTR,P,15)
S BDMDSP=$P(BDMSTR,P,16)
S BDMSDPI=$P(BDMSTR,P,12)
S BDMSDPIN=$P(BDMSTR,P,13)
S BDMCALL=$P(BDMSTR,P,14)
S BDMDZ2=$P(BDMSTR,P,17)
S BDMDEMO=$P(BDMSTR,P,18)
S BDMBEN=$P(BDMSTR,P,19)
S BDMPREG=$P(BDMSTR,P,20)
I BDMCALL="DM Audit E 17" D
. S BDMTYP=""
I BDMTYP="P" D
. S BDMPATS=$P(BDMSTR,P,4)
. N I
. F I=1:1 D Q:$P(BDMPATS,R,I)=""
.. Q:$P(BDMPATS,R,I)=""
.. S ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",$P(BDMPATS,R,I))=""
.. I BDMCALL="DM Audit P 17" D
... S ^XTMP("BDMPD1",BDMJ,BDMH,"PATS",$P(BDMPATS,R,I))=""
I BDMTYP="S" D
. S BDMSTMPE=$P(BDMSTR,P,4)
. S BDMSTMP=$O(^DIBT("B",BDMSTMPE,0))
. Q:'BDMSTMP
. N BDMDA,BDMCNT
. S BDMCNT=0
. S BDMDA=0 F S BDMDA=$O(^DIBT(BDMSTMP,1,BDMDA)) Q:'BDMDA D
.. I $G(BDMCOM) Q:$P($G(^AUPNPAT(BDMDA,11)),U,17)'=BDMCOM
.. I $G(BDMPCP) Q:$P($G(^AUPNPAT(BDMDA,0)),U,14)'=BDMPCP
.. S BDMCNT=BDMCNT+1
.. I BDMBEN=1,$$BEN^AUPNPAT(BDMDA,"C")'="01" Q
.. I BDMBEN=2,$$BEN^AUPNPAT(BDMDA,"C")="01" Q
.. I BDMPREG="E" Q:$$PREG^BDMDE1B(BDMDA,BDMBD,BDMDAT,1,1)
.. S ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",BDMDA)=""
.. S ^TMP($J,"PATS",BDMCNT,BDMDA)=""
.. I BDMCALL="DM Audit P 17" D
... S ^XTMP("BDMPE1",BDMJ,BDMH,"PATS",BDMDA)=""
I BDMTYP="C" D
. S BDMCMSE=$P(BDMSTR,P,4)
. Q:$G(BDMCMSE)=""
. S BDMCMS=$O(^ACM(41.1,"B",BDMCMSE,0))
. Q:'BDMCMS
. N BDMDA,BDMCNT
. S BDMCNT=0
. S BDMDA=0 F S BDMDA=$O(^ACM(41,"B",BDMCMS,BDMDA)) Q:'BDMDA D
.. S BDMRPAT=$P($G(^ACM(41,BDMDA,0)),U,2)
.. I $G(BDMCOM) Q:$P($G(^AUPNPAT(BDMRPAT,11)),U,17)'=BDMCOM
.. I $G(BDMPCP) Q:$P($G(^AUPNPAT(BDMRPAT,0)),U,14)'=BDMPCP
.. I $G(BDMSTAT)]"" Q:$P($G(^ACM(41,BDMDA,"DT")),U)'=BDMSTAT
.. I BDMBEN=1,$$BEN^AUPNPAT(BDMRPAT,"C")'="01" Q
.. I BDMBEN=2,$$BEN^AUPNPAT(BDMRPAT,"C")="01" Q
.. I BDMPREG="E" Q:$$PREG^BDMDE1B(BDMRPAT,BDMBD,BDMDAT,1,1)
.. S ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",BDMRPAT)=""
.. I BDMSTAT]"",$P($G(^ACM(41,BDMDA,"DT")),U,1)=BDMSTAT S BDMCNT=BDMCNT+1,^TMP($J,"PATS",BDMCNT,BDMRPAT)=""
.. I BDMSTAT="" S BDMCNT=BDMCNT+1,^TMP($J,"PATS",BDMCNT,BDMRPAT)=""
.. I BDMCALL="DM Audit P 17" D
... S ^XTMP("BDMPE1",BDMJ,BDMH,"PATS",BDMRPAT)=""
I BDMRAND="Y" D
. N X
. K ^TMP($J,"PATS") S BDMCNT=0,X=0 F S X=$O(^ACM(41,"B",BDMRG,X)) Q:X'=+X D
.. I BDMSTAT]"",$P($G(^ACM(41,X,"DT")),U,1)=BDMSTAT S BDMCNT=BDMCNT+1,^TMP($J,"PATS",BDMCNT,$P(^ACM(41,X,0),U,2))=""
.. I BDMSTAT="" S BDMCNT=BDMCNT+1,^TMP($J,"PATS",BDMCNT,$P(^ACM(41,X,0),U,2))=""
. K ^XTMP("BDMDM17",BDMJ,BDMH,"PATS")
. S (X,BDMCNT)=0 F S X=$O(^TMP($J,"PATS",X)) Q:X'=+X S BDMCNT=BDMCNT+1
. S C=0 F N=1:1:BDMCNT Q:C=BDMRCNT S I=$R(BDMCNT) I I,$D(^TMP($J,"PATS",I)) S X=$O(^TMP($J,"PATS",I,0)),^XTMP("BDMDM17",BDMJ,BDMH,"PATS",X)="",C=C+1 K ^TMP($J,"PATS",I,X)
. K ^TMP($J,"PATS")
I '$G(BDMDSP) S ^BDMTMP($J,1)="T00010REPORTIEN"_$C(30)
I BDMCALL="DM Audit 2017" D
. D BDMG^BDMDE1(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$G(BDMSTMP),BDMPCP,BDMCOM,$G(BDMRAND),$G(BDMRCNT),$G(BDMCMS),$G(BDMSTAT),BDMPREP,$G(BDMFILE),$G(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMPNA,BDMDZ2,BDMDEMO,BDMBEN)
I BDMCALL="DM Audit P 17" D
. D BDMG^BDMPE1(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$G(BDMSTMP),BDMPCP,BDMCOM,$G(BDMRAND),$G(BDMRCNT),$G(BDMCMS),$G(BDMSTAT),BDMPREP,$G(BDMFILE),$G(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMPNA,BDMDZ2,BDMDEMO,BDMBEN)
I BDMCALL="DM Audit E 17" D
. D BDMG^BDMDE1E(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$G(BDMSTMP),BDMPCP,BDMCOM,$G(BDMRAND),$G(BDMRCNT),$G(BDMCMS),$G(BDMSTAT),BDMPREP,$G(BDMFILE),$G(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMDZ2,BDMDEMO)
I $G(BDMDSP) S BDMIEN=1 D NOWDMO17 Q
I '$G(BDMIEN) S BDMERR="Error Queueing DM Audit"
I '$G(BDMDSP) S ^BDMTMP($J,2)=$C(31)_$G(BDMERR)
D EN^XBVK("BDM")
Q
;
DMA17P(BDMRET,BDMSTR) ;-- dm audit 2017
N P,R
N BDMRG,BDMDAT,BDMTYP,BDMSTMP,BDMPCP,BDMLCOM,BDMRAND,BDMRCNT,BDMDSP,BDMPNA
N BDMCMS,BDMRGI,BDMSTAT,BDMPREP,BDMFILE,BDMPATS,BDMSTMPE,BDMCMSE,BDMH,BDMJ
N BDMDZ2,BDMDEMO,BDMBEN,BDMPREG,BDMBD
S BDMH=$H,BDMJ=$J
S P="|",R="~"
S BDMRET="^BDMTMP("_$J_")"
I $G(BDMSTR)="" D CATSTR^BDMGU(.BDMSTR,.BDMSTR)
S BDMRGI=$P(BDMSTR,P)
S BDMRG=$O(^ACM(41.1,"B",BDMRGI,0))
S BDMRGI=$P(BDMSTR,P)
S BDMRG=$O(^ACM(41.1,"B",BDMRGI,0))
S BDMDAT=$P(BDMSTR,P,2)
S BDMBD=($E(BDMDAT,1,3)-1)_$E(BDMDAT,4,7),BDMBD=$$FMADD^XLFDT(BDMBD,1)
S BDMTYP=$P(BDMSTR,P,3)
S BDMPCP=$P(BDMSTR,P,5)
S BDMCOM=$P(BDMSTR,P,6)
S BDMRAND=$P(BDMSTR,P,7)
S BDMRCNT=$P(BDMSTR,P,8)
S BDMSTAT=$P(BDMSTR,P,9)
S BDMPREP=$P(BDMSTR,P,10)
S BDMFILE=$P(BDMSTR,P,11)
S BDMPNA=$P(BDMSTR,P,15)
S BDMDSP=$P(BDMSTR,P,16)
S BDMSDPI=$P(BDMSTR,P,12)
S BDMSDPIN=$P(BDMSTR,P,13)
S BDMCALL=$P(BDMSTR,P,14)
S BDMDZ2=$P(BDMSTR,P,17)
S BDMDEMO=$P(BDMSTR,P,18)
S BDMBEN=$P(BDMSTR,P,19)
S BDMPREG=$P(BDMSTR,P,20)
I BDMTYP="P" D
. S BDMPATS=$P(BDMSTR,P,4)
. N I
. F I=1:1 D Q:$P(BDMPATS,R,I)=""
.. Q:$P(BDMPATS,R,I)=""
.. S ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",$P(BDMPATS,R,I))=""
I BDMTYP="S" D
. S BDMSTMPE=$P(BDMSTR,P,4)
. S BDMSTMP=$O(^DIBT("B",BDMSTMPE,0))
. Q:'BDMSTMP
. N BDMDA
. S BDMDA=0 F S BDMDA=$O(^DIBT(BDMSTMP,1,BDMDA)) Q:'BDMDA D
.. I $G(BDMCOM) Q:$P($G(^AUPNPAT(BDMDA,11)),U,17)'=BDMCOM
.. I $G(BDMPCP) Q:$P($G(^AUPNPAT(BDMDA,0)),U,14)'=BDMPCP
.. I BDMPREG="E" Q:$$PREG^BDMDE1B(BDMDA,BDMBD,BDMDAT,1,1)
.. S ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",BDMDA)=""
I BDMTYP="C" D
. S BDMCMSE=$P(BDMSTR,P,4)
. S BDMCMS=$O(^ACM(41.1,"B",BDMCMSE,0))
. Q:'BDMCMS
. N BDMDA
. S BDMDA=0 F S BDMDA=$O(^ACM(41,"B",BDMCMS,BDMDA)) Q:'BDMDA D
.. S BDMRPAT=$P($G(^ACM(41,BDMDA,0)),U,2)
.. I $G(BDMCOM) Q:$P($G(^AUPNPAT(BDMRPAT,11)),U,17)'=BDMCOM
.. I $G(BDMPCP) Q:$P($G(^AUPNPAT(BDMRPAT,0)),U,14)'=BDMPCP
.. I $G(BDMSTAT)]"" Q:$P($G(^ACM(41,BDMDA,"DT")),U)'=BDMSTAT
.. I BDMPREG="E" Q:$$PREG^BDMDE1B(BDMRPAT,BDMBD,BDMDAT,1,1)
.. S ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",BDMRPAT)=""
I '$G(BDMDSP) S ^BDMTMP($J,1)="T00010REPORTIEN"_$C(30)
D BDMG^BDMDE1(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$G(BDMSTMP),BDMPCP,BDMCOM,$G(BDMRAND),$G(BDMRCNT),$G(BDMCMS),$G(BDMSTAT),BDMPREP,$G(BDMFILE),$G(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMPNA,BDMDZ2,BDMDEMO,BDMBEN)
I $G(BDMDSP) S BDMIEN=1 D NOWDMO17 Q
I '$G(BDMIEN) S BDMERR="Error Queueing DM Audit"
I '$G(BDMDSP) S ^BDMTMP($J,2)=$C(31)_$G(BDMERR)
Q
;
NOWDMO17 ;EP - return the output to the screen
N BDMI,BDMDA
S BDMI=0
S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
S BDMDA=0 F S BDMDA=$O(^TMP($J,"BDMDM17",BDMDA)) Q:'BDMDA D
. S BDMI=BDMI+1
. S ^BDMTMP($J,BDMI)=$G(^TMP($J,"BDMDM17",BDMDA))_$C(30)
S ^BDMTMP($J,BDMI+1)=$C(31)+$G(BDMERR)
Q
;
BDMGRH ; IHS/CMI/LAB - BDM DMS GUI Reports ; 09 Feb 2010 7:38 AM
+1 ;;2.0;DIABETES MANAGEMENT SYSTEM;**9,10,11**;JUN 14, 2007;Build 30
+2 ;
DEBUG(BDMRET,BDMSTR) ;-- debugger
+1 DO DEBUG^%Serenji("DMA12P^BDMGRE(.BDMRET,.BDMSTR)")
+2 QUIT
+3 ;
DMA16(RETVAL,BDMSTR) ;-- dm audit 2016
+1 NEW P,R
+2 NEW BDMRG,BDMDAT,BDMTYP,BDMSTMP,BDMPCP,BDMLCOM,BDMRAND,BDMRCNT,BDMDSP,BDMPNA
+3 NEW BDMCMS,BDMRGI,BDMSTAT,BDMPREP,BDMFILE,BDMPATS,BDMSTMPE,BDMCMSE,BDMH,BDMJ
+4 NEW BDMDZ2,BDMDEMO,BDMBEN,BDMPREG,BDMBD
+5 SET BDMH=$HOROLOG
SET BDMJ=$JOB
+6 SET P="|"
SET R="~"
+7 SET RETVAL="^BDMTMP("_$JOB_")"
+8 IF $GET(BDMSTR)=""
DO CATSTR^BDMGU(.BDMSTR,.BDMSTR)
+9 SET BDMRGI=$PIECE(BDMSTR,P)
+10 SET BDMRG=$ORDER(^ACM(41.1,"B",BDMRGI,0))
+11 SET BDMDAT=$PIECE(BDMSTR,P,2)
+12 SET BDMBD=($EXTRACT(BDMDAT,1,3)-1)_$EXTRACT(BDMDAT,4,7)
SET BDMBD=$$FMADD^XLFDT(BDMBD,1)
+13 SET BDMTYP=$PIECE(BDMSTR,P,3)
+14 SET BDMPCP=$PIECE(BDMSTR,P,5)
+15 SET BDMCOM=$PIECE(BDMSTR,P,6)
+16 SET BDMRAND=$PIECE(BDMSTR,P,7)
+17 SET BDMRCNT=$PIECE(BDMSTR,P,8)
+18 SET BDMSTAT=$PIECE(BDMSTR,P,9)
+19 SET BDMPREP=$PIECE(BDMSTR,P,10)
+20 SET BDMFILE=$PIECE(BDMSTR,P,11)
+21 SET BDMPNA=$PIECE(BDMSTR,P,15)
+22 SET BDMDSP=$PIECE(BDMSTR,P,16)
+23 SET BDMSDPI=$PIECE(BDMSTR,P,12)
+24 SET BDMSDPIN=$PIECE(BDMSTR,P,13)
+25 SET BDMCALL=$PIECE(BDMSTR,P,14)
+26 SET BDMDZ2=$PIECE(BDMSTR,P,17)
+27 SET BDMDEMO=$PIECE(BDMSTR,P,18)
+28 SET BDMBEN=$PIECE(BDMSTR,P,19)
+29 SET BDMPREG=$PIECE(BDMSTR,P,20)
+30 IF BDMCALL="DM Audit E 16"
Begin DoDot:1
+31 SET BDMTYP=""
End DoDot:1
+32 IF BDMTYP="P"
Begin DoDot:1
+33 SET BDMPATS=$PIECE(BDMSTR,P,4)
+34 NEW I
+35 FOR I=1:1
Begin DoDot:2
+36 IF $PIECE(BDMPATS,R,I)=""
QUIT
+37 SET ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",$PIECE(BDMPATS,R,I))=""
+38 IF BDMCALL="DM Audit P 16"
Begin DoDot:3
+39 SET ^XTMP("BDMPD1",BDMJ,BDMH,"PATS",$PIECE(BDMPATS,R,I))=""
End DoDot:3
End DoDot:2
IF $PIECE(BDMPATS,R,I)=""
QUIT
End DoDot:1
+40 IF BDMTYP="S"
Begin DoDot:1
+41 SET BDMSTMPE=$PIECE(BDMSTR,P,4)
+42 SET BDMSTMP=$ORDER(^DIBT("B",BDMSTMPE,0))
+43 IF 'BDMSTMP
QUIT
+44 NEW BDMDA,BDMCNT
+45 SET BDMCNT=0
+46 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^DIBT(BDMSTMP,1,BDMDA))
IF 'BDMDA
QUIT
Begin DoDot:2
+47 IF $GET(BDMCOM)
IF $PIECE($GET(^AUPNPAT(BDMDA,11)),U,17)'=BDMCOM
QUIT
+48 IF $GET(BDMPCP)
IF $PIECE($GET(^AUPNPAT(BDMDA,0)),U,14)'=BDMPCP
QUIT
+49 SET BDMCNT=BDMCNT+1
+50 IF BDMBEN=1
IF $$BEN^AUPNPAT(BDMDA,"C")'="01"
QUIT
+51 IF BDMBEN=2
IF $$BEN^AUPNPAT(BDMDA,"C")="01"
QUIT
+52 IF BDMPREG="E"
IF $$PREG^BDMDD1B(BDMDA,BDMBD,BDMDAT,1,1)
QUIT
+53 SET ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",BDMDA)=""
+54 SET ^TMP($JOB,"PATS",BDMCNT,BDMDA)=""
+55 IF BDMCALL="DM Audit P 16"
Begin DoDot:3
+56 SET ^XTMP("BDMPD1",BDMJ,BDMH,"PATS",BDMDA)=""
End DoDot:3
End DoDot:2
End DoDot:1
+57 IF BDMTYP="C"
Begin DoDot:1
+58 SET BDMCMSE=$PIECE(BDMSTR,P,4)
+59 IF $GET(BDMCMSE)=""
QUIT
+60 SET BDMCMS=$ORDER(^ACM(41.1,"B",BDMCMSE,0))
+61 IF 'BDMCMS
QUIT
+62 NEW BDMDA,BDMCNT
+63 SET BDMCNT=0
+64 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^ACM(41,"B",BDMCMS,BDMDA))
IF 'BDMDA
QUIT
Begin DoDot:2
+65 SET BDMRPAT=$PIECE($GET(^ACM(41,BDMDA,0)),U,2)
+66 IF $GET(BDMCOM)
IF $PIECE($GET(^AUPNPAT(BDMRPAT,11)),U,17)'=BDMCOM
QUIT
+67 IF $GET(BDMPCP)
IF $PIECE($GET(^AUPNPAT(BDMRPAT,0)),U,14)'=BDMPCP
QUIT
+68 IF $GET(BDMSTAT)]""
IF $PIECE($GET(^ACM(41,BDMDA,"DT")),U)'=BDMSTAT
QUIT
+69 IF BDMBEN=1
IF $$BEN^AUPNPAT(BDMRPAT,"C")'="01"
QUIT
+70 IF BDMBEN=2
IF $$BEN^AUPNPAT(BDMRPAT,"C")="01"
QUIT
+71 IF BDMPREG="E"
IF $$PREG^BDMDD1B(BDMRPAT,BDMBD,BDMDAT,1,1)
QUIT
+72 SET ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",BDMRPAT)=""
+73 IF BDMSTAT]""
IF $PIECE($GET(^ACM(41,BDMDA,"DT")),U,1)=BDMSTAT
SET BDMCNT=BDMCNT+1
SET ^TMP($JOB,"PATS",BDMCNT,BDMRPAT)=""
+74 IF BDMSTAT=""
SET BDMCNT=BDMCNT+1
SET ^TMP($JOB,"PATS",BDMCNT,BDMRPAT)=""
+75 IF BDMCALL="DM Audit P 16"
Begin DoDot:3
+76 SET ^XTMP("BDMPD1",BDMJ,BDMH,"PATS",BDMRPAT)=""
End DoDot:3
End DoDot:2
End DoDot:1
+77 IF BDMRAND="Y"
Begin DoDot:1
+78 NEW X
+79 KILL ^TMP($JOB,"PATS")
SET BDMCNT=0
SET X=0
FOR
SET X=$ORDER(^ACM(41,"B",BDMRG,X))
IF X'=+X
QUIT
Begin DoDot:2
+80 IF BDMSTAT]""
IF $PIECE($GET(^ACM(41,X,"DT")),U,1)=BDMSTAT
SET BDMCNT=BDMCNT+1
SET ^TMP($JOB,"PATS",BDMCNT,$PIECE(^ACM(41,X,0),U,2))=""
+81 IF BDMSTAT=""
SET BDMCNT=BDMCNT+1
SET ^TMP($JOB,"PATS",BDMCNT,$PIECE(^ACM(41,X,0),U,2))=""
End DoDot:2
+82 KILL ^XTMP("BDMDM16",BDMJ,BDMH,"PATS")
+83 SET (X,BDMCNT)=0
FOR
SET X=$ORDER(^TMP($JOB,"PATS",X))
IF X'=+X
QUIT
SET BDMCNT=BDMCNT+1
+84 SET C=0
FOR N=1:1:BDMCNT
IF C=BDMRCNT
QUIT
SET I=$RANDOM(BDMCNT)
IF I
IF $DATA(^TMP($JOB,"PATS",I))
SET X=$ORDER(^TMP($JOB,"PATS",I,0))
SET ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",X)=""
SET C=C+1
KILL ^TMP($JOB,"PATS",I,X)
+85 KILL ^TMP($JOB,"PATS")
End DoDot:1
+86 IF '$GET(BDMDSP)
SET ^BDMTMP($JOB,1)="T00010REPORTIEN"_$CHAR(30)
+87 IF BDMCALL="DM Audit 2016"
Begin DoDot:1
+88 DO BDMG^BDMDD1(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$GET(BDMSTMP),BDMPCP,BDMCOM,$GET(BDMRAND),$GET(BDMRCNT),$GET(BDMCMS),$GET(BDMSTAT),BDMPREP,$GET(BDMFILE),$GET(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMPNA,BDMDZ2,BDMDEMO,BDMBEN)
End DoDot:1
+89 IF BDMCALL="DM Audit P 16"
Begin DoDot:1
+90 DO BDMG^BDMPD1(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$GET(BDMSTMP),BDMPCP,BDMCOM,$GET(BDMRAND),$GET(BDMRCNT),$GET(BDMCMS),$GET(BDMSTAT),BDMPREP,$GET(BDMFILE),$GET(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMPNA,BDMDZ2,BDMDEMO,BDMBEN)
End DoDot:1
+91 IF BDMCALL="DM Audit E 16"
Begin DoDot:1
+92 DO BDMG^BDMDD1E(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$GET(BDMSTMP),BDMPCP,BDMCOM,$GET(BDMRAND),$GET(BDMRCNT),$GET(BDMCMS),$GET(BDMSTAT),BDMPREP,$GET(BDMFILE),$GET(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMDZ2,BDMDEMO)
End DoDot:1
+93 IF $GET(BDMDSP)
SET BDMIEN=1
DO NOWDMO16
QUIT
+94 IF '$GET(BDMIEN)
SET BDMERR="Error Queueing DM Audit"
+95 IF '$GET(BDMDSP)
SET ^BDMTMP($JOB,2)=$CHAR(31)_$GET(BDMERR)
+96 DO EN^XBVK("BDM")
+97 QUIT
+98 ;
DMA16P(BDMRET,BDMSTR) ;-- dm audit 2016
+1 NEW P,R
+2 NEW BDMRG,BDMDAT,BDMTYP,BDMSTMP,BDMPCP,BDMLCOM,BDMRAND,BDMRCNT,BDMDSP,BDMPNA
+3 NEW BDMCMS,BDMRGI,BDMSTAT,BDMPREP,BDMFILE,BDMPATS,BDMSTMPE,BDMCMSE,BDMH,BDMJ
+4 NEW BDMDZ2,BDMDEMO,BDMBEN,BDMPREG,BDMBD
+5 SET BDMH=$HOROLOG
SET BDMJ=$JOB
+6 SET P="|"
SET R="~"
+7 SET BDMRET="^BDMTMP("_$JOB_")"
+8 IF $GET(BDMSTR)=""
DO CATSTR^BDMGU(.BDMSTR,.BDMSTR)
+9 SET BDMRGI=$PIECE(BDMSTR,P)
+10 SET BDMRG=$ORDER(^ACM(41.1,"B",BDMRGI,0))
+11 SET BDMRGI=$PIECE(BDMSTR,P)
+12 SET BDMRG=$ORDER(^ACM(41.1,"B",BDMRGI,0))
+13 SET BDMDAT=$PIECE(BDMSTR,P,2)
+14 SET BDMBD=($EXTRACT(BDMDAT,1,3)-1)_$EXTRACT(BDMDAT,4,7)
SET BDMBD=$$FMADD^XLFDT(BDMBD,1)
+15 SET BDMTYP=$PIECE(BDMSTR,P,3)
+16 SET BDMPCP=$PIECE(BDMSTR,P,5)
+17 SET BDMCOM=$PIECE(BDMSTR,P,6)
+18 SET BDMRAND=$PIECE(BDMSTR,P,7)
+19 SET BDMRCNT=$PIECE(BDMSTR,P,8)
+20 SET BDMSTAT=$PIECE(BDMSTR,P,9)
+21 SET BDMPREP=$PIECE(BDMSTR,P,10)
+22 SET BDMFILE=$PIECE(BDMSTR,P,11)
+23 SET BDMPNA=$PIECE(BDMSTR,P,15)
+24 SET BDMDSP=$PIECE(BDMSTR,P,16)
+25 SET BDMSDPI=$PIECE(BDMSTR,P,12)
+26 SET BDMSDPIN=$PIECE(BDMSTR,P,13)
+27 SET BDMCALL=$PIECE(BDMSTR,P,14)
+28 SET BDMDZ2=$PIECE(BDMSTR,P,17)
+29 SET BDMDEMO=$PIECE(BDMSTR,P,18)
+30 SET BDMBEN=$PIECE(BDMSTR,P,19)
+31 SET BDMPREG=$PIECE(BDMSTR,P,20)
+32 IF BDMTYP="P"
Begin DoDot:1
+33 SET BDMPATS=$PIECE(BDMSTR,P,4)
+34 NEW I
+35 FOR I=1:1
Begin DoDot:2
+36 IF $PIECE(BDMPATS,R,I)=""
QUIT
+37 SET ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",$PIECE(BDMPATS,R,I))=""
End DoDot:2
IF $PIECE(BDMPATS,R,I)=""
QUIT
End DoDot:1
+38 IF BDMTYP="S"
Begin DoDot:1
+39 SET BDMSTMPE=$PIECE(BDMSTR,P,4)
+40 SET BDMSTMP=$ORDER(^DIBT("B",BDMSTMPE,0))
+41 IF 'BDMSTMP
QUIT
+42 NEW BDMDA
+43 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^DIBT(BDMSTMP,1,BDMDA))
IF 'BDMDA
QUIT
Begin DoDot:2
+44 IF $GET(BDMCOM)
IF $PIECE($GET(^AUPNPAT(BDMDA,11)),U,17)'=BDMCOM
QUIT
+45 IF $GET(BDMPCP)
IF $PIECE($GET(^AUPNPAT(BDMDA,0)),U,14)'=BDMPCP
QUIT
+46 IF BDMPREG="E"
IF $$PREG^BDMDD1B(BDMDA,BDMBD,BDMDAT,1,1)
QUIT
+47 SET ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",BDMDA)=""
End DoDot:2
End DoDot:1
+48 IF BDMTYP="C"
Begin DoDot:1
+49 SET BDMCMSE=$PIECE(BDMSTR,P,4)
+50 SET BDMCMS=$ORDER(^ACM(41.1,"B",BDMCMSE,0))
+51 IF 'BDMCMS
QUIT
+52 NEW BDMDA
+53 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^ACM(41,"B",BDMCMS,BDMDA))
IF 'BDMDA
QUIT
Begin DoDot:2
+54 SET BDMRPAT=$PIECE($GET(^ACM(41,BDMDA,0)),U,2)
+55 IF $GET(BDMCOM)
IF $PIECE($GET(^AUPNPAT(BDMRPAT,11)),U,17)'=BDMCOM
QUIT
+56 IF $GET(BDMPCP)
IF $PIECE($GET(^AUPNPAT(BDMRPAT,0)),U,14)'=BDMPCP
QUIT
+57 IF $GET(BDMSTAT)]""
IF $PIECE($GET(^ACM(41,BDMDA,"DT")),U)'=BDMSTAT
QUIT
+58 IF BDMPREG="E"
IF $$PREG^BDMDD1B(BDMRPAT,BDMBD,BDMDAT,1,1)
QUIT
+59 SET ^XTMP("BDMDM16",BDMJ,BDMH,"PATS",BDMRPAT)=""
End DoDot:2
End DoDot:1
+60 IF '$GET(BDMDSP)
SET ^BDMTMP($JOB,1)="T00010REPORTIEN"_$CHAR(30)
+61 DO BDMG^BDMDD1(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$GET(BDMSTMP),BDMPCP,BDMCOM,$GET(BDMRAND),$GET(BDMRCNT),$GET(BDMCMS),$GET(BDMSTAT),BDMPREP,$GET(BDMFILE),$GET(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMPNA,BDMDZ2,BDMDEMO,BDMBEN)
+62 IF $GET(BDMDSP)
SET BDMIEN=1
DO NOWDMO16
QUIT
+63 IF '$GET(BDMIEN)
SET BDMERR="Error Queueing DM Audit"
+64 IF '$GET(BDMDSP)
SET ^BDMTMP($JOB,2)=$CHAR(31)_$GET(BDMERR)
+65 QUIT
+66 ;
NOWDMO16 ;EP - return the output to the screen
+1 NEW BDMI,BDMDA
+2 SET BDMI=0
+3 SET ^BDMTMP($JOB,BDMI)="T00250DATA"_$CHAR(30)
+4 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^TMP($JOB,"BDMDM16",BDMDA))
IF 'BDMDA
QUIT
Begin DoDot:1
+5 SET BDMI=BDMI+1
+6 SET ^BDMTMP($JOB,BDMI)=$GET(^TMP($JOB,"BDMDM16",BDMDA))_$CHAR(30)
End DoDot:1
+7 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)+$GET(BDMERR)
+8 QUIT
+9 ;
DMA17(RETVAL,BDMSTR) ;-- dm audit 2017
+1 NEW P,R
+2 NEW BDMRG,BDMDAT,BDMTYP,BDMSTMP,BDMPCP,BDMLCOM,BDMRAND,BDMRCNT,BDMDSP,BDMPNA
+3 NEW BDMCMS,BDMRGI,BDMSTAT,BDMPREP,BDMFILE,BDMPATS,BDMSTMPE,BDMCMSE,BDMH,BDMJ
+4 NEW BDMDZ2,BDMDEMO,BDMBEN,BDMPREG,BDMBD
+5 SET BDMH=$HOROLOG
SET BDMJ=$JOB
+6 SET P="|"
SET R="~"
+7 SET RETVAL="^BDMTMP("_$JOB_")"
+8 IF $GET(BDMSTR)=""
DO CATSTR^BDMGU(.BDMSTR,.BDMSTR)
+9 SET BDMRGI=$PIECE(BDMSTR,P)
+10 SET BDMRG=$ORDER(^ACM(41.1,"B",BDMRGI,0))
+11 SET BDMDAT=$PIECE(BDMSTR,P,2)
+12 SET BDMBD=($EXTRACT(BDMDAT,1,3)-1)_$EXTRACT(BDMDAT,4,7)
SET BDMBD=$$FMADD^XLFDT(BDMBD,1)
+13 SET BDMTYP=$PIECE(BDMSTR,P,3)
+14 SET BDMPCP=$PIECE(BDMSTR,P,5)
+15 SET BDMCOM=$PIECE(BDMSTR,P,6)
+16 SET BDMRAND=$PIECE(BDMSTR,P,7)
+17 SET BDMRCNT=$PIECE(BDMSTR,P,8)
+18 SET BDMSTAT=$PIECE(BDMSTR,P,9)
+19 SET BDMPREP=$PIECE(BDMSTR,P,10)
+20 SET BDMFILE=$PIECE(BDMSTR,P,11)
+21 SET BDMPNA=$PIECE(BDMSTR,P,15)
+22 SET BDMDSP=$PIECE(BDMSTR,P,16)
+23 SET BDMSDPI=$PIECE(BDMSTR,P,12)
+24 SET BDMSDPIN=$PIECE(BDMSTR,P,13)
+25 SET BDMCALL=$PIECE(BDMSTR,P,14)
+26 SET BDMDZ2=$PIECE(BDMSTR,P,17)
+27 SET BDMDEMO=$PIECE(BDMSTR,P,18)
+28 SET BDMBEN=$PIECE(BDMSTR,P,19)
+29 SET BDMPREG=$PIECE(BDMSTR,P,20)
+30 IF BDMCALL="DM Audit E 17"
Begin DoDot:1
+31 SET BDMTYP=""
End DoDot:1
+32 IF BDMTYP="P"
Begin DoDot:1
+33 SET BDMPATS=$PIECE(BDMSTR,P,4)
+34 NEW I
+35 FOR I=1:1
Begin DoDot:2
+36 IF $PIECE(BDMPATS,R,I)=""
QUIT
+37 SET ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",$PIECE(BDMPATS,R,I))=""
+38 IF BDMCALL="DM Audit P 17"
Begin DoDot:3
+39 SET ^XTMP("BDMPD1",BDMJ,BDMH,"PATS",$PIECE(BDMPATS,R,I))=""
End DoDot:3
End DoDot:2
IF $PIECE(BDMPATS,R,I)=""
QUIT
End DoDot:1
+40 IF BDMTYP="S"
Begin DoDot:1
+41 SET BDMSTMPE=$PIECE(BDMSTR,P,4)
+42 SET BDMSTMP=$ORDER(^DIBT("B",BDMSTMPE,0))
+43 IF 'BDMSTMP
QUIT
+44 NEW BDMDA,BDMCNT
+45 SET BDMCNT=0
+46 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^DIBT(BDMSTMP,1,BDMDA))
IF 'BDMDA
QUIT
Begin DoDot:2
+47 IF $GET(BDMCOM)
IF $PIECE($GET(^AUPNPAT(BDMDA,11)),U,17)'=BDMCOM
QUIT
+48 IF $GET(BDMPCP)
IF $PIECE($GET(^AUPNPAT(BDMDA,0)),U,14)'=BDMPCP
QUIT
+49 SET BDMCNT=BDMCNT+1
+50 IF BDMBEN=1
IF $$BEN^AUPNPAT(BDMDA,"C")'="01"
QUIT
+51 IF BDMBEN=2
IF $$BEN^AUPNPAT(BDMDA,"C")="01"
QUIT
+52 IF BDMPREG="E"
IF $$PREG^BDMDE1B(BDMDA,BDMBD,BDMDAT,1,1)
QUIT
+53 SET ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",BDMDA)=""
+54 SET ^TMP($JOB,"PATS",BDMCNT,BDMDA)=""
+55 IF BDMCALL="DM Audit P 17"
Begin DoDot:3
+56 SET ^XTMP("BDMPE1",BDMJ,BDMH,"PATS",BDMDA)=""
End DoDot:3
End DoDot:2
End DoDot:1
+57 IF BDMTYP="C"
Begin DoDot:1
+58 SET BDMCMSE=$PIECE(BDMSTR,P,4)
+59 IF $GET(BDMCMSE)=""
QUIT
+60 SET BDMCMS=$ORDER(^ACM(41.1,"B",BDMCMSE,0))
+61 IF 'BDMCMS
QUIT
+62 NEW BDMDA,BDMCNT
+63 SET BDMCNT=0
+64 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^ACM(41,"B",BDMCMS,BDMDA))
IF 'BDMDA
QUIT
Begin DoDot:2
+65 SET BDMRPAT=$PIECE($GET(^ACM(41,BDMDA,0)),U,2)
+66 IF $GET(BDMCOM)
IF $PIECE($GET(^AUPNPAT(BDMRPAT,11)),U,17)'=BDMCOM
QUIT
+67 IF $GET(BDMPCP)
IF $PIECE($GET(^AUPNPAT(BDMRPAT,0)),U,14)'=BDMPCP
QUIT
+68 IF $GET(BDMSTAT)]""
IF $PIECE($GET(^ACM(41,BDMDA,"DT")),U)'=BDMSTAT
QUIT
+69 IF BDMBEN=1
IF $$BEN^AUPNPAT(BDMRPAT,"C")'="01"
QUIT
+70 IF BDMBEN=2
IF $$BEN^AUPNPAT(BDMRPAT,"C")="01"
QUIT
+71 IF BDMPREG="E"
IF $$PREG^BDMDE1B(BDMRPAT,BDMBD,BDMDAT,1,1)
QUIT
+72 SET ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",BDMRPAT)=""
+73 IF BDMSTAT]""
IF $PIECE($GET(^ACM(41,BDMDA,"DT")),U,1)=BDMSTAT
SET BDMCNT=BDMCNT+1
SET ^TMP($JOB,"PATS",BDMCNT,BDMRPAT)=""
+74 IF BDMSTAT=""
SET BDMCNT=BDMCNT+1
SET ^TMP($JOB,"PATS",BDMCNT,BDMRPAT)=""
+75 IF BDMCALL="DM Audit P 17"
Begin DoDot:3
+76 SET ^XTMP("BDMPE1",BDMJ,BDMH,"PATS",BDMRPAT)=""
End DoDot:3
End DoDot:2
End DoDot:1
+77 IF BDMRAND="Y"
Begin DoDot:1
+78 NEW X
+79 KILL ^TMP($JOB,"PATS")
SET BDMCNT=0
SET X=0
FOR
SET X=$ORDER(^ACM(41,"B",BDMRG,X))
IF X'=+X
QUIT
Begin DoDot:2
+80 IF BDMSTAT]""
IF $PIECE($GET(^ACM(41,X,"DT")),U,1)=BDMSTAT
SET BDMCNT=BDMCNT+1
SET ^TMP($JOB,"PATS",BDMCNT,$PIECE(^ACM(41,X,0),U,2))=""
+81 IF BDMSTAT=""
SET BDMCNT=BDMCNT+1
SET ^TMP($JOB,"PATS",BDMCNT,$PIECE(^ACM(41,X,0),U,2))=""
End DoDot:2
+82 KILL ^XTMP("BDMDM17",BDMJ,BDMH,"PATS")
+83 SET (X,BDMCNT)=0
FOR
SET X=$ORDER(^TMP($JOB,"PATS",X))
IF X'=+X
QUIT
SET BDMCNT=BDMCNT+1
+84 SET C=0
FOR N=1:1:BDMCNT
IF C=BDMRCNT
QUIT
SET I=$RANDOM(BDMCNT)
IF I
IF $DATA(^TMP($JOB,"PATS",I))
SET X=$ORDER(^TMP($JOB,"PATS",I,0))
SET ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",X)=""
SET C=C+1
KILL ^TMP($JOB,"PATS",I,X)
+85 KILL ^TMP($JOB,"PATS")
End DoDot:1
+86 IF '$GET(BDMDSP)
SET ^BDMTMP($JOB,1)="T00010REPORTIEN"_$CHAR(30)
+87 IF BDMCALL="DM Audit 2017"
Begin DoDot:1
+88 DO BDMG^BDMDE1(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$GET(BDMSTMP),BDMPCP,BDMCOM,$GET(BDMRAND),$GET(BDMRCNT),$GET(BDMCMS),$GET(BDMSTAT),BDMPREP,$GET(BDMFILE),$GET(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMPNA,BDMDZ2,BDMDEMO,BDMBEN)
End DoDot:1
+89 IF BDMCALL="DM Audit P 17"
Begin DoDot:1
+90 DO BDMG^BDMPE1(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$GET(BDMSTMP),BDMPCP,BDMCOM,$GET(BDMRAND),$GET(BDMRCNT),$GET(BDMCMS),$GET(BDMSTAT),BDMPREP,$GET(BDMFILE),$GET(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMPNA,BDMDZ2,BDMDEMO,BDMBEN)
End DoDot:1
+91 IF BDMCALL="DM Audit E 17"
Begin DoDot:1
+92 DO BDMG^BDMDE1E(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$GET(BDMSTMP),BDMPCP,BDMCOM,$GET(BDMRAND),$GET(BDMRCNT),$GET(BDMCMS),$GET(BDMSTAT),BDMPREP,$GET(BDMFILE),$GET(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMDZ2,BDMDEMO)
End DoDot:1
+93 IF $GET(BDMDSP)
SET BDMIEN=1
DO NOWDMO17
QUIT
+94 IF '$GET(BDMIEN)
SET BDMERR="Error Queueing DM Audit"
+95 IF '$GET(BDMDSP)
SET ^BDMTMP($JOB,2)=$CHAR(31)_$GET(BDMERR)
+96 DO EN^XBVK("BDM")
+97 QUIT
+98 ;
DMA17P(BDMRET,BDMSTR) ;-- dm audit 2017
+1 NEW P,R
+2 NEW BDMRG,BDMDAT,BDMTYP,BDMSTMP,BDMPCP,BDMLCOM,BDMRAND,BDMRCNT,BDMDSP,BDMPNA
+3 NEW BDMCMS,BDMRGI,BDMSTAT,BDMPREP,BDMFILE,BDMPATS,BDMSTMPE,BDMCMSE,BDMH,BDMJ
+4 NEW BDMDZ2,BDMDEMO,BDMBEN,BDMPREG,BDMBD
+5 SET BDMH=$HOROLOG
SET BDMJ=$JOB
+6 SET P="|"
SET R="~"
+7 SET BDMRET="^BDMTMP("_$JOB_")"
+8 IF $GET(BDMSTR)=""
DO CATSTR^BDMGU(.BDMSTR,.BDMSTR)
+9 SET BDMRGI=$PIECE(BDMSTR,P)
+10 SET BDMRG=$ORDER(^ACM(41.1,"B",BDMRGI,0))
+11 SET BDMRGI=$PIECE(BDMSTR,P)
+12 SET BDMRG=$ORDER(^ACM(41.1,"B",BDMRGI,0))
+13 SET BDMDAT=$PIECE(BDMSTR,P,2)
+14 SET BDMBD=($EXTRACT(BDMDAT,1,3)-1)_$EXTRACT(BDMDAT,4,7)
SET BDMBD=$$FMADD^XLFDT(BDMBD,1)
+15 SET BDMTYP=$PIECE(BDMSTR,P,3)
+16 SET BDMPCP=$PIECE(BDMSTR,P,5)
+17 SET BDMCOM=$PIECE(BDMSTR,P,6)
+18 SET BDMRAND=$PIECE(BDMSTR,P,7)
+19 SET BDMRCNT=$PIECE(BDMSTR,P,8)
+20 SET BDMSTAT=$PIECE(BDMSTR,P,9)
+21 SET BDMPREP=$PIECE(BDMSTR,P,10)
+22 SET BDMFILE=$PIECE(BDMSTR,P,11)
+23 SET BDMPNA=$PIECE(BDMSTR,P,15)
+24 SET BDMDSP=$PIECE(BDMSTR,P,16)
+25 SET BDMSDPI=$PIECE(BDMSTR,P,12)
+26 SET BDMSDPIN=$PIECE(BDMSTR,P,13)
+27 SET BDMCALL=$PIECE(BDMSTR,P,14)
+28 SET BDMDZ2=$PIECE(BDMSTR,P,17)
+29 SET BDMDEMO=$PIECE(BDMSTR,P,18)
+30 SET BDMBEN=$PIECE(BDMSTR,P,19)
+31 SET BDMPREG=$PIECE(BDMSTR,P,20)
+32 IF BDMTYP="P"
Begin DoDot:1
+33 SET BDMPATS=$PIECE(BDMSTR,P,4)
+34 NEW I
+35 FOR I=1:1
Begin DoDot:2
+36 IF $PIECE(BDMPATS,R,I)=""
QUIT
+37 SET ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",$PIECE(BDMPATS,R,I))=""
End DoDot:2
IF $PIECE(BDMPATS,R,I)=""
QUIT
End DoDot:1
+38 IF BDMTYP="S"
Begin DoDot:1
+39 SET BDMSTMPE=$PIECE(BDMSTR,P,4)
+40 SET BDMSTMP=$ORDER(^DIBT("B",BDMSTMPE,0))
+41 IF 'BDMSTMP
QUIT
+42 NEW BDMDA
+43 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^DIBT(BDMSTMP,1,BDMDA))
IF 'BDMDA
QUIT
Begin DoDot:2
+44 IF $GET(BDMCOM)
IF $PIECE($GET(^AUPNPAT(BDMDA,11)),U,17)'=BDMCOM
QUIT
+45 IF $GET(BDMPCP)
IF $PIECE($GET(^AUPNPAT(BDMDA,0)),U,14)'=BDMPCP
QUIT
+46 IF BDMPREG="E"
IF $$PREG^BDMDE1B(BDMDA,BDMBD,BDMDAT,1,1)
QUIT
+47 SET ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",BDMDA)=""
End DoDot:2
End DoDot:1
+48 IF BDMTYP="C"
Begin DoDot:1
+49 SET BDMCMSE=$PIECE(BDMSTR,P,4)
+50 SET BDMCMS=$ORDER(^ACM(41.1,"B",BDMCMSE,0))
+51 IF 'BDMCMS
QUIT
+52 NEW BDMDA
+53 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^ACM(41,"B",BDMCMS,BDMDA))
IF 'BDMDA
QUIT
Begin DoDot:2
+54 SET BDMRPAT=$PIECE($GET(^ACM(41,BDMDA,0)),U,2)
+55 IF $GET(BDMCOM)
IF $PIECE($GET(^AUPNPAT(BDMRPAT,11)),U,17)'=BDMCOM
QUIT
+56 IF $GET(BDMPCP)
IF $PIECE($GET(^AUPNPAT(BDMRPAT,0)),U,14)'=BDMPCP
QUIT
+57 IF $GET(BDMSTAT)]""
IF $PIECE($GET(^ACM(41,BDMDA,"DT")),U)'=BDMSTAT
QUIT
+58 IF BDMPREG="E"
IF $$PREG^BDMDE1B(BDMRPAT,BDMBD,BDMDAT,1,1)
QUIT
+59 SET ^XTMP("BDMDM17",BDMJ,BDMH,"PATS",BDMRPAT)=""
End DoDot:2
End DoDot:1
+60 IF '$GET(BDMDSP)
SET ^BDMTMP($JOB,1)="T00010REPORTIEN"_$CHAR(30)
+61 DO BDMG^BDMDE1(BDMJ,BDMH,BDMRG,BDMDAT,BDMTYP,$GET(BDMSTMP),BDMPCP,BDMCOM,$GET(BDMRAND),$GET(BDMRCNT),$GET(BDMCMS),$GET(BDMSTAT),BDMPREP,$GET(BDMFILE),$GET(BDMDSP),.BDMIEN,BDMSDPI,BDMSDPIN,BDMPNA,BDMDZ2,BDMDEMO,BDMBEN)
+62 IF $GET(BDMDSP)
SET BDMIEN=1
DO NOWDMO17
QUIT
+63 IF '$GET(BDMIEN)
SET BDMERR="Error Queueing DM Audit"
+64 IF '$GET(BDMDSP)
SET ^BDMTMP($JOB,2)=$CHAR(31)_$GET(BDMERR)
+65 QUIT
+66 ;
NOWDMO17 ;EP - return the output to the screen
+1 NEW BDMI,BDMDA
+2 SET BDMI=0
+3 SET ^BDMTMP($JOB,BDMI)="T00250DATA"_$CHAR(30)
+4 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^TMP($JOB,"BDMDM17",BDMDA))
IF 'BDMDA
QUIT
Begin DoDot:1
+5 SET BDMI=BDMI+1
+6 SET ^BDMTMP($JOB,BDMI)=$GET(^TMP($JOB,"BDMDM17",BDMDA))_$CHAR(30)
End DoDot:1
+7 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)+$GET(BDMERR)
+8 QUIT
+9 ;