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

BDMGR.m

Go to the documentation of this file.
  1. BDMGR ; IHS/CMI/LAB - BDM DMS GUI Reports ; [ 01/23/2009 4:11 PM ]
  1. ;;2.0;BDM DIABETES MANAGEMENT SYSTEM;**1,8**;JUN 14, 2007;Build 53
  1. ;
  1. ;
  1. ;cmi/anch/maw 1/25/2005 added line in FUR for uppercase dx type
  1. ;
  1. DEBUG(BDMRET,BDMSTR) ;-- debugger
  1. D DEBUG^%Serenji("FUR^BDMGR(.BDMRET,.BDMSTR)")
  1. Q
  1. ;
  1. HS(BDMRET,BDMSTR) ;-- get health summary data from BPC
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMDA,BDMI,BDMPAT,BDMTYPE,BDMCALL,P
  1. S P="|"
  1. S APCHSPAT=$P(BDMSTR,P)
  1. S APCHSTYP=$P(BDMSTR,P,2)
  1. I APCHSTYP'?.N S APCHSTYP=$O(^APCHSCTL("B",APCHSTYP,0))
  1. S BDMI=0
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00080DATA"_$C(30)
  1. S IOM=80
  1. D GUIR^XBLM("EN^APCHS","^XTMP(""BDMHS"",$J)")
  1. I '$D(^XTMP("BDMHS",$J)) D Q
  1. . S BDMI=BDMI+1
  1. . S ^BDMTMP($J,BDMI)="NO DATA"_$C(30)
  1. . S ^BDMTMP($J,BDMI+1)=$C(31)
  1. S BDMDA=.5 F S BDMDA=$O(^XTMP("BDMHS",$J,BDMDA)) Q:'BDMDA D
  1. . N BDMDATA
  1. . S BDMI=BDMI+1
  1. . S BDMDATA=$G(^XTMP("BDMHS",$J,BDMDA))
  1. . S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. K ^XTMP("BDMHS",$J)
  1. Q
  1. ;
  1. FLS(BDMRET,BDMSTR) ;-- get flow sheet data
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMDA,BDMI,BDMPAT,BDMTYPE,BDMCALL,P,BDMODFN
  1. S P="|"
  1. I $G(DFN) S BDMODFN=DFN
  1. S DFN=$P(BDMSTR,P)
  1. S BDMFDF=$P(BDMSTR,P,2)
  1. I BDMFDF'?.N S BDMFDF=$O(^APCHSFLC("B",BDMFDF,0))
  1. S BDMI=0
  1. S BDMERR=""
  1. D SETVARS^BDMFLOW
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00080DATA"_$C(30)
  1. S IOM=80
  1. D GUIR^XBLM("FLOWDISP^BDMFLOW","^XTMP(""BDMFLS"",$J)")
  1. I '$D(^XTMP("BDMFLS",$J)) D Q
  1. . S BDMI=BDMI+1
  1. . S ^BDMTMP($J,BDMI)="NO DATA"_$C(30)
  1. . S ^BDMTMP($J,BDMI+1)=$C(31)
  1. S BDMDA=.5 F S BDMDA=$O(^XTMP("BDMFLS",$J,BDMDA)) Q:'BDMDA D
  1. . N BDMDATA
  1. . S BDMI=BDMI+1
  1. . S BDMDATA=$G(^XTMP("BDMFLS",$J,BDMDA))
  1. . S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. K ^XTMP("BDMFLS",$J)
  1. K BDMSPAT,BDMFDF
  1. I $G(BDMODFN) S DFN=BDMODFN
  1. Q
  1. ;
  1. PCC(BDMRET,BDMSTR) ;-- display pcc visit
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMDA,BDMI,BDMPAT,BDMTYPE,BDMCALL,BDMVIEN,P
  1. S P="|"
  1. S BDMPAT=$P(BDMSTR,P)
  1. S BDMVIEN=$P(BDMSTR,P,2)
  1. S BDMI=0
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
  1. I '$G(BDMVIEN) D
  1. . S BDMIVDT=$O(^AUPNVSIT("AA",BDMPAT,0))
  1. . I 'BDMIVDT D Q
  1. .. S BDMI=BDMI+1
  1. .. S ^BDMTMP($J,BDMI)="NO DATA"_$C(30)
  1. .. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. . S BDMVIEN=$O(^AUPNVSIT("AA",BDMPAT,BDMIVDT,0))
  1. Q:'$G(BDMVIEN)
  1. N BDMGUI
  1. S BDMGUI=1
  1. D EN^APCDVDSG(BDMVIEN,"^XTMP(""BDMLV"",$J)",BDMGUI)
  1. I '$D(^XTMP("BDMLV",$J)) D Q
  1. . S BDMI=BDMI+1
  1. . S ^BDMTMP($J,BDMI)="NO DATA"_$C(30)
  1. . S ^BDMTMP($J,BDMI+1)=$C(31)
  1. S BDMDA=0 F S BDMDA=$O(^XTMP("BDMLV",$J,BDMDA)) Q:'BDMDA D
  1. . N BDMDATA
  1. . S BDMI=BDMI+1
  1. . S BDMDATA=$G(^XTMP("BDMLV",$J,BDMDA,0))
  1. . S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. K ^XTMP("BDMLV",$J)
  1. Q
  1. ;
  1. MED(BDMRET,BDMSTR) ;-- medication profile all meds/dm meds
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMDA,BDMI,BDMPAT,BDMTYPE,BDMCALL,DFN,P,BDMDMO
  1. K BDMONLY
  1. S P="|"
  1. S DFN=$P(BDMSTR,P)
  1. S BDMDMO=+$P(BDMSTR,P,2)
  1. I $G(BDMDMO) D
  1. . S BDMONLY=""
  1. . D DMMEDS
  1. S BDMI=0
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S BDMREGNM="IHS DIABETES REGISTER"
  1. S BDMRDA=$O(^ACM(41.1,"B",BDMREGNM,0))
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
  1. D MINIT^BDMVRL1
  1. S BDMI=BDMI+1
  1. S ^BDMTMP($J,BDMI)="PATIENT NAME: "_$$GET1^DIQ(2,DFN,.01)_$C(30)
  1. S BDMI=BDMI+1
  1. S ^BDMTMP($J,BDMI)="CHART: "_$$HRN^AUPNPAT(DFN,DUZ(2))_$C(30)
  1. I '$D(^TMP("BDMVR",$J,2)) D Q
  1. . S BDMI=BDMI+1
  1. . S ^BDMTMP($J,BDMI)="NO DATA"_$C(30)
  1. . S ^BDMTMP($J,BDMI+1)=$C(31)
  1. S BDMDA=0 F S BDMDA=$O(^TMP("BDMVR",$J,BDMDA)) Q:'BDMDA D
  1. . N BDMDATA
  1. . S BDMI=BDMI+1
  1. . S BDMDATA=$G(^TMP("BDMVR",$J,BDMDA,0))
  1. . S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. K ^XTMP("BDMVR",$J),BDMMEDS,BDM
  1. K ^TMP("BDMVR",$J)
  1. Q
  1. ;
  1. DMMEDS ;EP - setup array for dm meds
  1. N S,T,TX,X,Y,Z,BDMJ
  1. S (T,TX)="DM AUDIT "
  1. F S T=$O(^ATXAX("B",T)) Q:T=""!(T'[TX) D
  1. .S X=0
  1. .F S X=$O(^ATXAX("B",T,X)) Q:'X D
  1. ..Q:+$P($G(^ATXAX(X,0)),U,15)'=50
  1. ..S BDM(X)=""
  1. S BDMTXDA=0
  1. F S BDMTXDA=$O(BDM(BDMTXDA)) Q:'BDMTXDA D
  1. .S X=0
  1. .F S X=$O(^ATXAX(BDMTXDA,21,X)) Q:'X D
  1. ..S Y=$P($G(^ATXAX(BDMTXDA,21,X,0)),U)
  1. ..Q:'Y
  1. ..S BDMMEDS(Y)=""
  1. Q:'$D(BDMMEDS)
  1. S DA=DFN
  1. Q
  1. ;
  1. APP(BDMRET,BDMSTR) ;-- appointments
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMDA,BDMI,BDMPAT,BDMTYPE,BDMCALL,DFN,P
  1. S P="|"
  1. S DFN=$P(BDMSTR,P)
  1. S BDMI=0
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
  1. S BDMREGNM=$P(BDMSTR,P,2)
  1. S BDMRDA=$O(^ACM(41.1,"B",BDMREGNM,0))
  1. D APPINIT^BDMVRL
  1. I '$D(^TMP("BDMVR",$J,2)) D Q
  1. . S BDMI=BDMI+1
  1. . S ^BDMTMP($J,BDMI)="NO DATA"_$C(30)
  1. . S ^BDMTMP($J,BDMI+1)=$C(31)
  1. S BDMDA=0 F S BDMDA=$O(^TMP("BDMVR",$J,BDMDA)) Q:'BDMDA D
  1. . N BDMDATA
  1. . S BDMI=BDMI+1
  1. . S BDMDATA=$G(^TMP("BDMVR",$J,BDMDA,0))
  1. . S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. K ^TMP("BDMVR",$J)
  1. Q
  1. ;
  1. AS(BDMRET,BDMSTR) ;-- audit status
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N X,BDMY,BDMZ,BDMQUIT,P
  1. S P="|"
  1. S DFN=$P(BDMSTR,P,1)
  1. S BDMRDA=$P(BDMSTR,P,2)
  1. F BDMY=91 D:'$D(BDMQUIT)
  1. .S X="BDMD"_BDMY
  1. .X ^%ZOSF("TEST")
  1. .I $T D Q
  1. ..S BDMJOB=$J
  1. ..S BDMBTH=$H
  1. ..S BDMDMRG=BDMRDA
  1. ..S ^XTMP(("BDMDM"_BDMY),BDMJOB,BDMBTH,"PATS",DFN)=""
  1. ..S ^TMP(("BDMDM"_BDMY),BDMJOB,BDMBTH,"PATS",DFN)=""
  1. ..S BDMZ="TIME^BDMD"_BDMY
  1. ..D @BDMZ
  1. ..Q:$G(BDMSTP)
  1. ..S BDMZ="IF^BDMD"_BDMY
  1. ..D @BDMZ
  1. ..S BDMQUIT=""
  1. I $D(BDMQUIT) K BDMQUIT Q
  1. S X="BDMD99"
  1. X ^%ZOSF("TEST")
  1. I $T D Q
  1. .S BDMJOB=$J
  1. .S BDMBTH=$H
  1. .S BDMDMRG=BDMRDA
  1. .S ^XTMP("BDMDM99",BDMJOB,BDMBTH,"PATS",DFN)=""
  1. .S ^TMP("BDMDM99",BDMJOB,BDMBTH,"PATS",DFN)=""
  1. .D TIME^BDMD99
  1. .Q:$G(BDMSTP)
  1. .D IF^BDMD99
  1. S BDMDFN=$O(^APCLRPT("B","APCL DIABETES PROGRAM QA AUDIT",0))
  1. Q:'BDMDFN
  1. S BDMPTS=1
  1. S BDMPREP=2
  1. S BDMCUML=0
  1. S ^XTMP("BDMPTS",$J,DFN)=""
  1. S ^TMP("BDMPTS",$J,DFN)=""
  1. D TIME^BDMASK
  1. Q:$G(BDMSTP)
  1. S BDMRTN="ZTM^BDMASK"
  1. D GUIR^XBLM(BDMRTN,"^XTMP(""BDMAS"",$J)")
  1. Q
  1. ;
  1. CS(BDMRET,BDMSTR) ;-- case summary
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMDA,BDMI,BDMPAT,BDMTYPE,BDMCALL,DFN,P
  1. S P="|"
  1. S BDMCS=$P(BDMSTR,P)
  1. S BDMRDA=$O(^ACM(41.1,"B",BDMCS,0))
  1. S BDMRPDA=$P(BDMSTR,P,2)
  1. S DFN=$P(BDMSTR,P,3)
  1. S BDMI=0
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
  1. S IOM=80
  1. D GUIR^XBLM("CS1^BDMVRL","^XTMP(""BDMCS"",$J)")
  1. I '$D(^XTMP("BDMCS",$J)) D Q
  1. . S BDMI=BDMI+1
  1. . S ^BDMTMP($J,BDMI)="NO DATA"_$C(30)
  1. . S ^BDMTMP($J,BDMI+1)=$C(31)
  1. S BDMDA=.5 F S BDMDA=$O(^XTMP("BDMCS",$J,BDMDA)) Q:'BDMDA D
  1. . N BDMDATA
  1. . S BDMI=BDMI+1
  1. . S BDMDATA=$G(^XTMP("BDMCS",$J,BDMDA))
  1. . S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. K ^TMP("BDMVR",$J)
  1. Q
  1. ;
  1. FS(BDMRET,BDMSTR) ;-- return patient reg face sheet
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N P,DFN,BDMDA,BDMI,BDMPAT,BDMTYPE,BDMCALL
  1. S P="|"
  1. S DFN=$P(BDMSTR,P)
  1. S BDMI=0
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
  1. S IOM=80
  1. D GUIR^XBLM("START^AGFACE","^XTMP(""BDMFS"",$J)")
  1. S BDMDA=.5 F S BDMDA=$O(^XTMP("BDMFS",$J,BDMDA)) Q:'BDMDA D
  1. . N BDMDATA
  1. . S BDMI=BDMI+1
  1. . S BDMDATA=$G(^XTMP("BDMFS",$J,BDMDA))
  1. . S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. K ^XTMP("BDMFS",$J)
  1. Q
  1. ;
  1. LET(BDMRET,BDMSTR) ;-- return letter
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N P,DFN,BDMDA,BDMI,BDMPAT,BDMTYPE,BDMCALL,BDMLDA,BDMLET
  1. S P="|"
  1. S DFN=$P(BDMSTR,P)
  1. S BDMLET=$P(BDMSTR,P,2)
  1. S BDMLDA=$O(^BDMLET("B",BDMLET,0))
  1. S BDMI=0
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
  1. D GUIR^XBLM("PRINT^BDMLET","^XTMP(""BDMLET"",$J)")
  1. S BDMDA=.5 F S BDMDA=$O(^XTMP("BDMLET",$J,BDMDA)) Q:'BDMDA D
  1. . N BDMDATA
  1. . S BDMI=BDMI+1
  1. . S BDMDATA=$G(^XTMP("BDMLET",$J,BDMDA))
  1. . S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. K ^XTMP("BDMLET",$J)
  1. Q
  1. ;
  1. PLD(BDMRET,BDMSTR) ;-- return problem list display
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMPIEN,P
  1. S P="|"
  1. S BDMPIEN=$P(BDMSTR,P)
  1. S BDMI=0
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
  1. S DIC="^AUPNPROB(",DA=BDMPIEN,DIQ(0)="C"
  1. D GUIR^XBLM("EN^DIQ","^XTMP(""BDMPL"",$J)")
  1. S BDMDA=.5 F S BDMDA=$O(^XTMP("BDMPL",$J,BDMDA)) Q:'BDMDA D
  1. . N BDMDATA
  1. . S BDMI=BDMI+1
  1. . S BDMDATA=$G(^XTMP("BDMPL",$J,BDMDA))
  1. . S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. K ^XTMP("BDMPL",$J)
  1. K DIC,DA,DIQ
  1. Q
  1. ;
  1. FUPROT(BDMRET) ;-- return the FU Protocols
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. S BDMI=0
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
  1. S IOM=80
  1. D GUIR^XBLM("PINIT^BDMVRL42","^XTMP(""BDMFUP"",$J)")
  1. S BDMDA=.5 F S BDMDA=$O(^XTMP("BDMFUP",$J,BDMDA)) Q:'BDMDA D
  1. . N BDMDATA
  1. . S BDMI=BDMI+1
  1. . S BDMDATA=$G(^XTMP("BDMFUP",$J,BDMDA))
  1. . S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. K ^XTMP("BDMFUP",$J)
  1. Q
  1. ;
  1. FUR(RETVAL,BDMSTR) ;-- print the followup report
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N P,R,BDMRTYP,BDMRS,BDMST,BDMPS,BDMDD,BDMPA,BDMPABD,BDMPAED
  1. N BDMPBY,BDMPBYV,BDMRL,BDMLP,BDM,BDMDEMO
  1. S P="|",R="~"
  1. D EXIT^BDMVRL4
  1. I $G(BDMSTR)="" S BDMSTR=$$CATSTR^BDMGU(.BDMSTR)
  1. S BDMRTYP=$P(BDMSTR,P)
  1. S BDMRS=$P(BDMSTR,P,2)
  1. S BDMST=$P(BDMSTR,P,3)
  1. I $G(BDMST)]"" S BDM("SEARCH TEMPLATE")=$O(^DIBT("B",BDMST,0))
  1. S BDMPS=$P(BDMSTR,P,4)
  1. S BDM("STATUS")=BDMPS
  1. S BDMDD=$P(BDMSTR,P,5)
  1. ;cmi/anch/maw 1/25/2005 added following line
  1. N X S X=BDMDD X ^%ZOSF("UPPERCASE") S BDMDD=Y
  1. S BDM("DM DIAGNOSIS")=BDMDD
  1. S BDMPA=$P(BDMSTR,P,6)
  1. I $G(BDMPA)="Y" S BDMFUAPP=""
  1. S BDMPABD=$P(BDMSTR,P,7)
  1. S BDMBEGIN=BDMPABD
  1. S BDMPAED=$P(BDMSTR,P,8)
  1. S BDMEND=BDMPAED
  1. S BDMPBY=$P(BDMSTR,P,9)
  1. I $P(BDMPBY,"-",2)="Community" S BDMFL=9999999.05,BDMK="COMMUNITY"
  1. I $P(BDMPBY,"-",3)="Provider" S BDMFL=200,BDMK="PROVIDER"
  1. S BDMPBYV=$P(BDMSTR,P,10)
  1. I BDMPBYV="All" S BDMPBYV=""
  1. F J=1:1 D Q:$P(BDMPBYV,R,J)=""
  1. . Q:$P(BDMPBYV,R,J)=""
  1. . S BDMK($P(BDMPBYV,R,J))=$$GET1^DIQ(BDMFL,$P(BDMPBYV,R,J),.01)
  1. S BDMRL=$P(BDMSTR,P,11)
  1. S BDMFU=$P(BDMRL,"-",2)
  1. S BDMLP=$P(BDMSTR,P,12)
  1. I $G(BDMLP)]"" S BDMLDA=$O(^BDMLET("B",BDMLP,0))
  1. S BDMREGNM=$P(BDMSTR,P,13)
  1. S BDMDEMO=$P(BDMSTR,P,15)
  1. S IOM=80
  1. D GUIR^XBLM("SCREEN^BDMVRL42","^TMP($J,")
  1. S BDMRTYP=$TR(BDMRTYP,"~",",")
  1. I BDMRTYP="All" D
  1. . D ALL^BDMVRL42
  1. . S BDMY=Y
  1. . D PARSE^BDMVRL42
  1. I BDMRTYP'="All" S BDMY=BDMRTYP D PARSE^BDMVRL42
  1. ;N I
  1. ;F I=1:1 D Q:$P(BDMRTYP,R,I)=""
  1. ;. ;Q:$P(BDMRTYP,R,I)=""
  1. ;. ;S BDM("PARSE",$P(BDMRTYP,R,I))=""
  1. S BDMI=0
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S RETVAL="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
  1. ;D BDMG^BDMVRL4(.BDM)
  1. ;D FUHEAD^BDMVRL42
  1. ;Q
  1. ;
  1. D BDMGA^BDMVRL4(.BDMERR,.BDM,$G(BDMFUAPP),BDMFL,.BDMK,BDMRL,BDMFU,$G(BDMLDA),BDMREGNM,1,BDMDEMO)
  1. ;S BDMJ=0
  1. ;D GUIR^XBLM("BDMG^BDMVRL4(.BDM)","^XTMP(""BDMFUR"",$J)")
  1. ;S BDMDA=.5 F S BDMDA=$O(^XTMP("BDMFUR",$J,BDMDA)) Q:'BDMDA D
  1. ;. N BDMDATA
  1. ;. S BDMI=BDMI+1
  1. ;. S BDMDATA=$G(^XTMP("BDMFUR",$J,BDMDA))
  1. ;. S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. D EN^XBVK("BDM")
  1. Q
  1. ;
  1. SELF(RETVAL,BDMSTR) ;-- glucose self monitoring report
  1. N BDMRG,BDMST,BDMRT,BDME,BDMSRT,P,BDMDEMO
  1. S P="|"
  1. S BDMRG=$P(BDMSTR,P)
  1. S BDMRDA=$O(^ACM(41.1,"B",BDMRG,0))
  1. S BDMST=$P(BDMSTR,P,2)
  1. S BDMRT=$P(BDMSTR,P,3)
  1. S BDME=$P(BDMSTR,P,4)
  1. S BDMSRT=$P(BDMSTR,P,5)
  1. S BDMDEMO=$P(BDMSTR,P,6)
  1. S BDMI=0
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S RETVAL="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
  1. S IOM=80
  1. D BDMGA^BDMSELFM(.BDMERR,BDMRDA,BDMST,BDMRT,BDME,BDMSRT,1,BDMDEMO)
  1. S ^BDMTMP($J,1)=$C(31)_$G(BDMERR)
  1. D EN^XBVK("BDM")
  1. Q
  1. ;
  1. LPA(RETVAL,BDMSTR) ;-- list patient appointments
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMDA,BDMI,BDMPAT,BDMTYPE,BDMCALL,BDMREGNM,BDMBEGIN,BDMEND,P
  1. S P="|"
  1. S BDMREGNM=$P(BDMSTR,P)
  1. S BDMBEGIN=$P(BDMSTR,P,2)
  1. S BDMEND=$P(BDMSTR,P,3)
  1. S BDMRDA=$O(^ACM(41.1,"B",BDMREGNM,0))
  1. S BDMI=0
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S RETVAL="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
  1. S IOM=80
  1. D BDMGA^BDMVRL6(.BDMERR,BDMBEGIN,BDMEND,BDMRDA,1)
  1. ;D APPINIT^BDMVRL6
  1. ;I '$D(^TMP("BDMVR",$J,2)) D Q
  1. ;. S BDMI=BDMI+1
  1. ;. S ^BDMTMP($J,BDMI)="NO DATA"_$C(30)
  1. ;. S ^BDMTMP($J,BDMI+1)=$C(31)
  1. ;S BDMDA=0 F S BDMDA=$O(^TMP("BDMVR",$J,BDMDA)) Q:'BDMDA D
  1. ;. N BDMDATA
  1. ;. S BDMI=BDMI+1
  1. ;. S BDMDATA=$G(^TMP("BDMVR",$J,BDMDA,0))
  1. ;. S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. D EN^XBVK("BDM")
  1. Q
  1. ;