- BDMGT ; IHS/CMI/LAB - BDM DMS GUI Table Lookup ; 16 Apr 2010 8:30 AM
- ;;2.0;BDM DIABETES MANAGEMENT SYSTEM;**1,2,3,4,8**;JUN 14, 2007;Build 53
- ;
- ;
- DEBUG(BDMRET,BDMSTR) ;-- debug entry point for Serenji
- D DEBUG^%Serenji("ICD^BDMGT(.BDMRET,.BDMSTR)")
- Q
- ;
- DEBUGR(BDMRET) ;-- single entry point debugger
- D DEBUG^%Serenji("ICD^BDMGT(.BDMRET)")
- Q
- ;
- LOCA(BDMRET) ;-- get all locations
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMLOC,BDMI,BDMERR,BDMLOCE,BDMASU,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00060LOCATIONS"_$C(30)
- S BDMLOC=0 F S BDMLOC=$O(^AUTTLOC("C",BDMLOC)) Q:BDMLOC="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTLOC("C",BDMLOC,BDMIEN)) Q:'BDMIEN D
- .. S BDMI=BDMI+1
- .. S BDMASU=BDMLOC
- .. S BDMLOCE=$P($G(^DIC(4,BDMIEN,0)),U)
- .. S ^BDMTMP($J,BDMI)=BDMASU_"-"_BDMLOCE_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- USRA(BDMRET) ;-- get all Users
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMUSR,BDMI,BDMERR
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00060USER"_$C(30)
- S BDMUSR=0 F S BDMUSR=$O(^VA(200,"B",BDMUSR)) Q:BDMUSR="" D
- . S BDMI=BDMI+1
- . S ^BDMTMP($J,BDMI)=BDMUSR_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- GETKEYS(BDMRET,BDMSTR) ;-- return keys by DUZ
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMDA,BDMNS,P,BDMDATA,BDMKEYI,BDMKEY,BDMI
- S BDMI=0
- S P="|"
- S BDMNS=$P(BDMSTR,P)
- S BDMDA=0 F S BDMDA=$O(^VA(200,DUZ,51,BDMDA)) Q:'BDMDA D
- . S BDMDATA=$G(^VA(200,DUZ,51,BDMDA,0))
- . S BDMKEYI=$P(BDMDATA,U)
- . S BDMKEY=$P($G(^DIC(19.1,BDMKEYI,0)),U)
- . I BDMNS'="*" Q:$E(BDMKEY,1,4)'[BDMNS
- . S BDMI=BDMI+1
- . S $P(BDMRET,"|",BDMI)=BDMKEY
- S BDMRET=BDMI_"|"_BDMRET
- Q
- ;
- CMP(BDMRET,BDMSTR) ;-- return complications
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMCMP,BDMI,BDMERR,BDMREGE,BDMREG,BDMIEN,BDMCMPE
- S BDMREGE=$P(BDMSTR,"|")
- S BDMREG=$O(^ACM(41.1,"B",BDMREGE,0))
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00060COMPLICATION"_$C(30)
- S BDMCMP=0 F S BDMCMP=$O(^ACM(42.1,"RG",BDMREG,BDMCMP)) Q:BDMCMP="" D
- . ;S BDMIEN=$O(^ACM(42.1,"RG",BDMREG,BDMCMP,0))
- . S BDMCMPE=$P($G(^ACM(42.1,BDMCMP,0)),U)
- . S BDMI=BDMI+1
- . S ^BDMTMP($J,BDMI)=BDMCMPE_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- CMPDX(BDMRET,BDMSTR) ;-- return complications diagnosis
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMCMP,BDMI,BDMERR,BDMREGE,BDMREG,BDMIEN,BDMCMPE,P,BDMCMP
- S P="|"
- S BDMREG=$P(BDMSTR,P)
- S BDMCMPE=$P(BDMSTR,P,2)
- S BDMCMP=$O(^ACM(42.1,"B",BDMCMPE,0))
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00007BMXIEN^T00060DIAGNOSIS"_$C(30)
- N BDMDX
- S BDMDX=0 F S BDMDX=$O(^ACM(42.1,BDMCMP,11,BDMDX)) Q:'BDMDX D
- . N BDMDXI,BDMDXE
- . S BDMDXI=$P($G(^ACM(42.1,BDMCMP,11,BDMDX,0)),U)
- . S BDMDXE=$P($G(^ICD9(BDMDXI,0)),U)
- . S BDMI=BDMI+1
- . S ^BDMTMP($J,BDMI)=BDMDXI_U_BDMDXE_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- ST(BDMRET,BDMSTR) ;-- return complications status
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMST,BDMI,BDMERR
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00060STATUS"_$C(30)
- S BDMST=0 F S BDMST=$O(^ACM(42.3,"B",BDMST)) Q:BDMST="" D
- . S BDMI=BDMI+1
- . S ^BDMTMP($J,BDMI)=BDMST_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- HS(BDMRET) ;-- get all health summary types
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMHS,BDMI,BDMERR,BDMHSE
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00060HEALTHSUMMARY"_$C(30)
- S BDMHS=0 F S BDMHS=$O(^APCHSCTL("B",BDMHS)) Q:BDMHS="" D
- . S BDMI=BDMI+1
- . S ^BDMTMP($J,BDMI)=BDMHS_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- FLOW(BDMRET) ;-- get all flow sheet types
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMHS,BDMI,BDMERR,BDMHSE
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00060FLOWSHEET"_$C(30)
- S BDMHS=0 F S BDMHS=$O(^APCHSFLC("B",BDMHS)) Q:BDMHS="" D
- . S BDMI=BDMI+1
- . S ^BDMTMP($J,BDMI)=BDMHS_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- LET(BDMRET) ;-- get all letter types
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMHS,BDMI,BDMERR,BDMHSE
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00007BMXIEN^T00060Letters^T00050Letter Directory^T00030Letter File"_$C(30)
- S BDMHS=0 F S BDMHS=$O(^BDMLET("B",BDMHS)) Q:BDMHS="" D
- . N BDMIEN
- . S BDMIEN=0 F S BDMIEN=$O(^BDMLET("B",BDMHS,BDMIEN)) Q:'BDMIEN D
- .. N BDMDIR,BDMFN,BDMDATA
- .. S BDMI=BDMI+1
- .. S BDMDATA=$G(^BDMLET(BDMIEN,0))
- .. S BDMDIR=$P(BDMDATA,U,4)
- .. S BDMFN=$P(BDMDATA,U,5)
- .. Q:BDMFN="" ;don't display letters without a word document
- .. S ^BDMTMP($J,BDMI)=BDMIEN_U_BDMHS_U_BDMDIR_U_BDMFN_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- EDU(BDMRET) ;-- get all education topics
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMEDU,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00050EDUCATIONTOPICS"_$C(30)
- S BDMEDU=0 F S BDMEDU=$O(^AUTTEDT("B",BDMEDU)) Q:BDMEDU="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTEDT("B",BDMEDU,BDMIEN)) Q:'BDMIEN D
- .. Q:$P($G(^AUTTEDT(BDMIEN,0)),U,3) ;inactive
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMEDU_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- DEDU(BDMRET) ;-- get all diabetes education topics
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMEDU,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00050EDUCATIONTOPICS"_$C(30)
- S BDMEDU=0 F S BDMEDU=$O(^AUTTEDT("B",BDMEDU)) Q:BDMEDU="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTEDT("B",BDMEDU,BDMIEN)) Q:'BDMIEN D
- .. Q:$P($G(^AUTTEDT(BDMIEN,0)),U,3) ;inactive
- .. ;Q:$E($P($G(^AUTTEDT(BDMIEN,0)),U),1,2)'="DM"
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMEDU_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- ICD(BDMRET) ;-- get all POV's
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMPOV,BDMI,BDMERR,BDMPOVE,BDMPOVD,BDMPIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00100POVS"_$C(30)
- S BDMPOV="" F S BDMPOV=$O(^ICD9("AB",BDMPOV)) Q:BDMPOV="" D
- . S BDMPIEN=0 F S BDMPIEN=$O(^ICD9("AB",BDMPOV,BDMPIEN)) Q:'BDMPIEN D
- .. Q:$E(BDMPOV,1,1)="["
- .. Q:BDMPOV="delete"
- .. S BDMPOVE=$P($G(^ICD9(BDMPIEN,0)),U)
- .. Q:$P($G(^ICD9(BDMPIEN,0)),U,9) ;inactive
- .. S BDMI=BDMI+1
- .. S BDMPOVD=$P($G(^ICD9(BDMPIEN,0)),U,3)
- .. S ^BDMTMP($J,BDMI)=BDMPOVE_"-"_BDMPOVD_$C(30)
- .. ;S ^BDMTMP($J,BDMI)=BDMPOVE_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- LAB(BDMRET) ;-- get all lab tests
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMLAB,BDMI,BDMERR
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080LAB"_$C(30) ;^T00001Panel"_$C(30)
- S BDMLAB=0 F S BDMLAB=$O(^LAB(60,"B",BDMLAB)) Q:BDMLAB="" D
- . N BDMIEN,BDMPAN
- . S BDMPAN=""
- . S BDMIEN=0 F S BDMIEN=$O(^LAB(60,"B",BDMLAB,BDMIEN)) Q:'BDMIEN D
- .. Q:$G(^LAB(60,"B",BDMLAB,BDMIEN))
- .. I $O(^LAB(60,BDMIEN,2,0)) S BDMPAN=1
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMLAB_$C(30) ;_U_BDMPAN_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- HF(BDMRET) ;-- health factors table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMHF,BDMI,BDMERR,BDMDA,BDMTB,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080HF"_$C(30)
- S BDMDA=0 F S BDMDA=$O(^AUTTHF("B",BDMDA)) Q:BDMDA="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTHF("B",BDMDA,BDMIEN)) Q:'BDMIEN D
- .. Q:$P($G(^AUTTHF(BDMIEN,0)),U,13)
- .. Q:$P($G(^AUTTHF(BDMIEN,0)),U,10)'="F"
- .. S BDMHF=$P($G(^AUTTHF(BDMIEN,0)),U)
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMHF_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- TB(BDMRET) ;-- tb health factors table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMHF,BDMI,BDMERR,BDMPIEN,BDMDA,BDMTB
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080HF"_$C(30)
- S BDMTB=$O(^AUTTHF("B","TB STATUS",0))
- S BDMDA=0 F S BDMDA=$O(^AUTTHF("AC",BDMDA)) Q:BDMDA="" D
- . S BDMPIEN=0 F S BDMPIEN=$O(^AUTTHF("AC",BDMDA,BDMPIEN)) Q:'BDMPIEN D
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,13)
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,3)'=BDMTB
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,10)'="F"
- .. S BDMHF=$P($G(^AUTTHF(BDMPIEN,0)),U)
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMHF_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- TU(BDMRET) ;-- tobacco use health factors table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMHF,BDMI,BDMERR,BDMPIEN,BDMDA,BDMTU,BDMTOB
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080HF"_$C(30)
- N TDA,TIEN
- S TDA=0 F S TDA=$O(^AUTTHF("B",TDA)) Q:TDA="" D
- . Q:$E(TDA,1,7)'="TOBACCO"
- . S TIEN=0 F S TIEN=$O(^AUTTHF("B",TDA,TIEN)) Q:'TIEN D
- .. S BDMTOB(TIEN)=""
- S BDMDA=0 F S BDMDA=$O(^AUTTHF("AC",BDMDA)) Q:BDMDA="" D
- . S BDMPIEN=0 F S BDMPIEN=$O(^AUTTHF("AC",BDMDA,BDMPIEN)) Q:'BDMPIEN D
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,13)
- .. S BDMTU=$P($G(^AUTTHF(BDMPIEN,0)),U,3)
- .. Q:'$D(BDMTOB(BDMTU))
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,10)'="F"
- .. S BDMHF=$P($G(^AUTTHF(BDMPIEN,0)),U)
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMHF_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- GLU(BDMRET) ;-- glucose health factors table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMHF,BDMI,BDMERR,BDMPIEN,BDMDA,BDMGLU
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080HF"_$C(30)
- S BDMGLU=$O(^AUTTHF("B","DIABETES SELF MONITORING",0))
- S BDMDA=0 F S BDMDA=$O(^AUTTHF("AC",BDMDA)) Q:BDMDA="" D
- . S BDMPIEN=0 F S BDMPIEN=$O(^AUTTHF("AC",BDMDA,BDMPIEN)) Q:'BDMPIEN D
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,13)
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,3)'=BDMGLU
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,10)'="F"
- .. S BDMHF=$P($G(^AUTTHF(BDMPIEN,0)),U)
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMHF_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- BAR(BDMRET) ;-- barriers health factors table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMHF,BDMI,BDMERR,BDMPIEN,BDMDA,BDMBAR
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080HF"_$C(30)
- S BDMBAR=$O(^AUTTHF("B","BARRIERS TO LEARNING",0))
- S BDMDA=0 F S BDMDA=$O(^AUTTHF("AC",BDMDA)) Q:BDMDA="" D
- . S BDMPIEN=0 F S BDMPIEN=$O(^AUTTHF("AC",BDMDA,BDMPIEN)) Q:'BDMPIEN D
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,13)
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,3)'=BDMBAR
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,10)'="F"
- .. S BDMHF=$P($G(^AUTTHF(BDMPIEN,0)),U)
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMHF_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- READ(BDMRET) ;-- readiness use health factors table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMHF,BDMI,BDMERR,BDMPIEN,BDMDA,BDMR
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080HF"_$C(30)
- S BDMR=$O(^AUTTHF("B","READINESS TO LEARN",0))
- S BDMDA=0 F S BDMDA=$O(^AUTTHF("AC",BDMDA)) Q:BDMDA="" D
- . S BDMPIEN=0 F S BDMPIEN=$O(^AUTTHF("AC",BDMDA,BDMPIEN)) Q:'BDMPIEN D
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,13)
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,3)'=BDMR
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,10)'="F"
- .. S BDMHF=$P($G(^AUTTHF(BDMPIEN,0)),U)
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMHF_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- LRN(BDMRET) ;-- learning health factors table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMHF,BDMI,BDMERR,BDMPIEN,BDMDA,BDML
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080HF"_$C(30)
- S BDML=$O(^AUTTHF("B","LEARNING PREFERENCE",0))
- S BDMDA=0 F S BDMDA=$O(^AUTTHF("AC",BDMDA)) Q:BDMDA="" D
- . S BDMPIEN=0 F S BDMPIEN=$O(^AUTTHF("AC",BDMDA,BDMPIEN)) Q:'BDMPIEN D
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,13)
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,3)'=BDML
- .. Q:$P($G(^AUTTHF(BDMPIEN,0)),U,10)'="F"
- .. S BDMHF=$P($G(^AUTTHF(BDMPIEN,0)),U)
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMHF_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- MED(BDMRET) ;-- get all drugs
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMMED,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080MED"_$C(30)
- S BDMMED=0 F S BDMMED=$O(^PSDRUG("B",BDMMED)) Q:BDMMED="" D
- . S BDMIEN=0 F S BDMIEN=$O(^PSDRUG("B",BDMMED,BDMIEN)) Q:'BDMIEN D
- .. ;Q:$G(^PSDRUG(BDMIEN,"I"))
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMMED_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- BDMGT ; IHS/CMI/LAB - BDM DMS GUI Table Lookup ; 16 Apr 2010 8:30 AM
- +1 ;;2.0;BDM DIABETES MANAGEMENT SYSTEM;**1,2,3,4,8**;JUN 14, 2007;Build 53
- +2 ;
- +3 ;
- DEBUG(BDMRET,BDMSTR) ;-- debug entry point for Serenji
- +1 DO DEBUG^%Serenji("ICD^BDMGT(.BDMRET,.BDMSTR)")
- +2 QUIT
- +3 ;
- DEBUGR(BDMRET) ;-- single entry point debugger
- +1 DO DEBUG^%Serenji("ICD^BDMGT(.BDMRET)")
- +2 QUIT
- +3 ;
- LOCA(BDMRET) ;-- get all locations
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMLOC,BDMI,BDMERR,BDMLOCE,BDMASU,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00060LOCATIONS"_$CHAR(30)
- +8 SET BDMLOC=0
- FOR
- SET BDMLOC=$ORDER(^AUTTLOC("C",BDMLOC))
- IF BDMLOC=""
- QUIT
- Begin DoDot:1
- +9 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTLOC("C",BDMLOC,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +10 SET BDMI=BDMI+1
- +11 SET BDMASU=BDMLOC
- +12 SET BDMLOCE=$PIECE($GET(^DIC(4,BDMIEN,0)),U)
- +13 SET ^BDMTMP($JOB,BDMI)=BDMASU_"-"_BDMLOCE_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +14 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +15 QUIT
- +16 ;
- USRA(BDMRET) ;-- get all Users
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMUSR,BDMI,BDMERR
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00060USER"_$CHAR(30)
- +8 SET BDMUSR=0
- FOR
- SET BDMUSR=$ORDER(^VA(200,"B",BDMUSR))
- IF BDMUSR=""
- QUIT
- Begin DoDot:1
- +9 SET BDMI=BDMI+1
- +10 SET ^BDMTMP($JOB,BDMI)=BDMUSR_$CHAR(30)
- End DoDot:1
- +11 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +12 QUIT
- +13 ;
- GETKEYS(BDMRET,BDMSTR) ;-- return keys by DUZ
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMDA,BDMNS,P,BDMDATA,BDMKEYI,BDMKEY,BDMI
- +3 SET BDMI=0
- +4 SET P="|"
- +5 SET BDMNS=$PIECE(BDMSTR,P)
- +6 SET BDMDA=0
- FOR
- SET BDMDA=$ORDER(^VA(200,DUZ,51,BDMDA))
- IF 'BDMDA
- QUIT
- Begin DoDot:1
- +7 SET BDMDATA=$GET(^VA(200,DUZ,51,BDMDA,0))
- +8 SET BDMKEYI=$PIECE(BDMDATA,U)
- +9 SET BDMKEY=$PIECE($GET(^DIC(19.1,BDMKEYI,0)),U)
- +10 IF BDMNS'="*"
- IF $EXTRACT(BDMKEY,1,4)'[BDMNS
- QUIT
- +11 SET BDMI=BDMI+1
- +12 SET $PIECE(BDMRET,"|",BDMI)=BDMKEY
- End DoDot:1
- +13 SET BDMRET=BDMI_"|"_BDMRET
- +14 QUIT
- +15 ;
- CMP(BDMRET,BDMSTR) ;-- return complications
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMCMP,BDMI,BDMERR,BDMREGE,BDMREG,BDMIEN,BDMCMPE
- +3 SET BDMREGE=$PIECE(BDMSTR,"|")
- +4 SET BDMREG=$ORDER(^ACM(41.1,"B",BDMREGE,0))
- +5 KILL ^BDMTMP($JOB)
- +6 SET BDMRET="^BDMTMP("_$JOB_")"
- +7 SET BDMI=0
- +8 SET BDMERR=""
- +9 SET ^BDMTMP($JOB,BDMI)="T00060COMPLICATION"_$CHAR(30)
- +10 SET BDMCMP=0
- FOR
- SET BDMCMP=$ORDER(^ACM(42.1,"RG",BDMREG,BDMCMP))
- IF BDMCMP=""
- QUIT
- Begin DoDot:1
- +11 ;S BDMIEN=$O(^ACM(42.1,"RG",BDMREG,BDMCMP,0))
- +12 SET BDMCMPE=$PIECE($GET(^ACM(42.1,BDMCMP,0)),U)
- +13 SET BDMI=BDMI+1
- +14 SET ^BDMTMP($JOB,BDMI)=BDMCMPE_$CHAR(30)
- End DoDot:1
- +15 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +16 QUIT
- +17 ;
- CMPDX(BDMRET,BDMSTR) ;-- return complications diagnosis
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMCMP,BDMI,BDMERR,BDMREGE,BDMREG,BDMIEN,BDMCMPE,P,BDMCMP
- +3 SET P="|"
- +4 SET BDMREG=$PIECE(BDMSTR,P)
- +5 SET BDMCMPE=$PIECE(BDMSTR,P,2)
- +6 SET BDMCMP=$ORDER(^ACM(42.1,"B",BDMCMPE,0))
- +7 KILL ^BDMTMP($JOB)
- +8 SET BDMRET="^BDMTMP("_$JOB_")"
- +9 SET BDMI=0
- +10 SET BDMERR=""
- +11 SET ^BDMTMP($JOB,BDMI)="T00007BMXIEN^T00060DIAGNOSIS"_$CHAR(30)
- +12 NEW BDMDX
- +13 SET BDMDX=0
- FOR
- SET BDMDX=$ORDER(^ACM(42.1,BDMCMP,11,BDMDX))
- IF 'BDMDX
- QUIT
- Begin DoDot:1
- +14 NEW BDMDXI,BDMDXE
- +15 SET BDMDXI=$PIECE($GET(^ACM(42.1,BDMCMP,11,BDMDX,0)),U)
- +16 SET BDMDXE=$PIECE($GET(^ICD9(BDMDXI,0)),U)
- +17 SET BDMI=BDMI+1
- +18 SET ^BDMTMP($JOB,BDMI)=BDMDXI_U_BDMDXE_$CHAR(30)
- End DoDot:1
- +19 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +20 QUIT
- +21 ;
- ST(BDMRET,BDMSTR) ;-- return complications status
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMST,BDMI,BDMERR
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00060STATUS"_$CHAR(30)
- +8 SET BDMST=0
- FOR
- SET BDMST=$ORDER(^ACM(42.3,"B",BDMST))
- IF BDMST=""
- QUIT
- Begin DoDot:1
- +9 SET BDMI=BDMI+1
- +10 SET ^BDMTMP($JOB,BDMI)=BDMST_$CHAR(30)
- End DoDot:1
- +11 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +12 QUIT
- +13 ;
- HS(BDMRET) ;-- get all health summary types
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMHS,BDMI,BDMERR,BDMHSE
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00060HEALTHSUMMARY"_$CHAR(30)
- +8 SET BDMHS=0
- FOR
- SET BDMHS=$ORDER(^APCHSCTL("B",BDMHS))
- IF BDMHS=""
- QUIT
- Begin DoDot:1
- +9 SET BDMI=BDMI+1
- +10 SET ^BDMTMP($JOB,BDMI)=BDMHS_$CHAR(30)
- End DoDot:1
- +11 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +12 QUIT
- +13 ;
- FLOW(BDMRET) ;-- get all flow sheet types
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMHS,BDMI,BDMERR,BDMHSE
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00060FLOWSHEET"_$CHAR(30)
- +8 SET BDMHS=0
- FOR
- SET BDMHS=$ORDER(^APCHSFLC("B",BDMHS))
- IF BDMHS=""
- QUIT
- Begin DoDot:1
- +9 SET BDMI=BDMI+1
- +10 SET ^BDMTMP($JOB,BDMI)=BDMHS_$CHAR(30)
- End DoDot:1
- +11 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +12 QUIT
- +13 ;
- LET(BDMRET) ;-- get all letter types
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMHS,BDMI,BDMERR,BDMHSE
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00007BMXIEN^T00060Letters^T00050Letter Directory^T00030Letter File"_$CHAR(30)
- +8 SET BDMHS=0
- FOR
- SET BDMHS=$ORDER(^BDMLET("B",BDMHS))
- IF BDMHS=""
- QUIT
- Begin DoDot:1
- +9 NEW BDMIEN
- +10 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^BDMLET("B",BDMHS,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +11 NEW BDMDIR,BDMFN,BDMDATA
- +12 SET BDMI=BDMI+1
- +13 SET BDMDATA=$GET(^BDMLET(BDMIEN,0))
- +14 SET BDMDIR=$PIECE(BDMDATA,U,4)
- +15 SET BDMFN=$PIECE(BDMDATA,U,5)
- +16 ;don't display letters without a word document
- IF BDMFN=""
- QUIT
- +17 SET ^BDMTMP($JOB,BDMI)=BDMIEN_U_BDMHS_U_BDMDIR_U_BDMFN_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +18 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +19 QUIT
- +20 ;
- EDU(BDMRET) ;-- get all education topics
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMEDU,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00050EDUCATIONTOPICS"_$CHAR(30)
- +8 SET BDMEDU=0
- FOR
- SET BDMEDU=$ORDER(^AUTTEDT("B",BDMEDU))
- IF BDMEDU=""
- QUIT
- Begin DoDot:1
- +9 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTEDT("B",BDMEDU,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +10 ;inactive
- IF $PIECE($GET(^AUTTEDT(BDMIEN,0)),U,3)
- QUIT
- +11 SET BDMI=BDMI+1
- +12 SET ^BDMTMP($JOB,BDMI)=BDMEDU_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +13 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +14 QUIT
- +15 ;
- DEDU(BDMRET) ;-- get all diabetes education topics
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMEDU,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00050EDUCATIONTOPICS"_$CHAR(30)
- +8 SET BDMEDU=0
- FOR
- SET BDMEDU=$ORDER(^AUTTEDT("B",BDMEDU))
- IF BDMEDU=""
- QUIT
- Begin DoDot:1
- +9 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTEDT("B",BDMEDU,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +10 ;inactive
- IF $PIECE($GET(^AUTTEDT(BDMIEN,0)),U,3)
- QUIT
- +11 ;Q:$E($P($G(^AUTTEDT(BDMIEN,0)),U),1,2)'="DM"
- +12 SET BDMI=BDMI+1
- +13 SET ^BDMTMP($JOB,BDMI)=BDMEDU_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +14 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +15 QUIT
- +16 ;
- ICD(BDMRET) ;-- get all POV's
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMPOV,BDMI,BDMERR,BDMPOVE,BDMPOVD,BDMPIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00100POVS"_$CHAR(30)
- +8 SET BDMPOV=""
- FOR
- SET BDMPOV=$ORDER(^ICD9("AB",BDMPOV))
- IF BDMPOV=""
- QUIT
- Begin DoDot:1
- +9 SET BDMPIEN=0
- FOR
- SET BDMPIEN=$ORDER(^ICD9("AB",BDMPOV,BDMPIEN))
- IF 'BDMPIEN
- QUIT
- Begin DoDot:2
- +10 IF $EXTRACT(BDMPOV,1,1)="["
- QUIT
- +11 IF BDMPOV="delete"
- QUIT
- +12 SET BDMPOVE=$PIECE($GET(^ICD9(BDMPIEN,0)),U)
- +13 ;inactive
- IF $PIECE($GET(^ICD9(BDMPIEN,0)),U,9)
- QUIT
- +14 SET BDMI=BDMI+1
- +15 SET BDMPOVD=$PIECE($GET(^ICD9(BDMPIEN,0)),U,3)
- +16 SET ^BDMTMP($JOB,BDMI)=BDMPOVE_"-"_BDMPOVD_$CHAR(30)
- +17 ;S ^BDMTMP($J,BDMI)=BDMPOVE_$C(30)
- End DoDot:2
- End DoDot:1
- +18 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +19 QUIT
- +20 ;
- LAB(BDMRET) ;-- get all lab tests
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMLAB,BDMI,BDMERR
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 ;^T00001Panel"_$C(30)
- SET ^BDMTMP($JOB,BDMI)="T00080LAB"_$CHAR(30)
- +8 SET BDMLAB=0
- FOR
- SET BDMLAB=$ORDER(^LAB(60,"B",BDMLAB))
- IF BDMLAB=""
- QUIT
- Begin DoDot:1
- +9 NEW BDMIEN,BDMPAN
- +10 SET BDMPAN=""
- +11 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^LAB(60,"B",BDMLAB,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +12 IF $GET(^LAB(60,"B",BDMLAB,BDMIEN))
- QUIT
- +13 IF $ORDER(^LAB(60,BDMIEN,2,0))
- SET BDMPAN=1
- +14 SET BDMI=BDMI+1
- +15 ;_U_BDMPAN_$C(30)
- SET ^BDMTMP($JOB,BDMI)=BDMLAB_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +16 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +17 QUIT
- +18 ;
- HF(BDMRET) ;-- health factors table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMHF,BDMI,BDMERR,BDMDA,BDMTB,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080HF"_$CHAR(30)
- +8 SET BDMDA=0
- FOR
- SET BDMDA=$ORDER(^AUTTHF("B",BDMDA))
- IF BDMDA=""
- QUIT
- Begin DoDot:1
- +9 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTHF("B",BDMDA,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +10 IF $PIECE($GET(^AUTTHF(BDMIEN,0)),U,13)
- QUIT
- +11 IF $PIECE($GET(^AUTTHF(BDMIEN,0)),U,10)'="F"
- QUIT
- +12 SET BDMHF=$PIECE($GET(^AUTTHF(BDMIEN,0)),U)
- +13 SET BDMI=BDMI+1
- +14 SET ^BDMTMP($JOB,BDMI)=BDMHF_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +15 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +16 QUIT
- +17 ;
- TB(BDMRET) ;-- tb health factors table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMHF,BDMI,BDMERR,BDMPIEN,BDMDA,BDMTB
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080HF"_$CHAR(30)
- +8 SET BDMTB=$ORDER(^AUTTHF("B","TB STATUS",0))
- +9 SET BDMDA=0
- FOR
- SET BDMDA=$ORDER(^AUTTHF("AC",BDMDA))
- IF BDMDA=""
- QUIT
- Begin DoDot:1
- +10 SET BDMPIEN=0
- FOR
- SET BDMPIEN=$ORDER(^AUTTHF("AC",BDMDA,BDMPIEN))
- IF 'BDMPIEN
- QUIT
- Begin DoDot:2
- +11 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,13)
- QUIT
- +12 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,3)'=BDMTB
- QUIT
- +13 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,10)'="F"
- QUIT
- +14 SET BDMHF=$PIECE($GET(^AUTTHF(BDMPIEN,0)),U)
- +15 SET BDMI=BDMI+1
- +16 SET ^BDMTMP($JOB,BDMI)=BDMHF_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +17 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +18 QUIT
- +19 ;
- TU(BDMRET) ;-- tobacco use health factors table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMHF,BDMI,BDMERR,BDMPIEN,BDMDA,BDMTU,BDMTOB
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080HF"_$CHAR(30)
- +8 NEW TDA,TIEN
- +9 SET TDA=0
- FOR
- SET TDA=$ORDER(^AUTTHF("B",TDA))
- IF TDA=""
- QUIT
- Begin DoDot:1
- +10 IF $EXTRACT(TDA,1,7)'="TOBACCO"
- QUIT
- +11 SET TIEN=0
- FOR
- SET TIEN=$ORDER(^AUTTHF("B",TDA,TIEN))
- IF 'TIEN
- QUIT
- Begin DoDot:2
- +12 SET BDMTOB(TIEN)=""
- End DoDot:2
- End DoDot:1
- +13 SET BDMDA=0
- FOR
- SET BDMDA=$ORDER(^AUTTHF("AC",BDMDA))
- IF BDMDA=""
- QUIT
- Begin DoDot:1
- +14 SET BDMPIEN=0
- FOR
- SET BDMPIEN=$ORDER(^AUTTHF("AC",BDMDA,BDMPIEN))
- IF 'BDMPIEN
- QUIT
- Begin DoDot:2
- +15 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,13)
- QUIT
- +16 SET BDMTU=$PIECE($GET(^AUTTHF(BDMPIEN,0)),U,3)
- +17 IF '$DATA(BDMTOB(BDMTU))
- QUIT
- +18 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,10)'="F"
- QUIT
- +19 SET BDMHF=$PIECE($GET(^AUTTHF(BDMPIEN,0)),U)
- +20 SET BDMI=BDMI+1
- +21 SET ^BDMTMP($JOB,BDMI)=BDMHF_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +22 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +23 QUIT
- +24 ;
- GLU(BDMRET) ;-- glucose health factors table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMHF,BDMI,BDMERR,BDMPIEN,BDMDA,BDMGLU
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080HF"_$CHAR(30)
- +8 SET BDMGLU=$ORDER(^AUTTHF("B","DIABETES SELF MONITORING",0))
- +9 SET BDMDA=0
- FOR
- SET BDMDA=$ORDER(^AUTTHF("AC",BDMDA))
- IF BDMDA=""
- QUIT
- Begin DoDot:1
- +10 SET BDMPIEN=0
- FOR
- SET BDMPIEN=$ORDER(^AUTTHF("AC",BDMDA,BDMPIEN))
- IF 'BDMPIEN
- QUIT
- Begin DoDot:2
- +11 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,13)
- QUIT
- +12 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,3)'=BDMGLU
- QUIT
- +13 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,10)'="F"
- QUIT
- +14 SET BDMHF=$PIECE($GET(^AUTTHF(BDMPIEN,0)),U)
- +15 SET BDMI=BDMI+1
- +16 SET ^BDMTMP($JOB,BDMI)=BDMHF_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +17 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +18 QUIT
- +19 ;
- BAR(BDMRET) ;-- barriers health factors table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMHF,BDMI,BDMERR,BDMPIEN,BDMDA,BDMBAR
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080HF"_$CHAR(30)
- +8 SET BDMBAR=$ORDER(^AUTTHF("B","BARRIERS TO LEARNING",0))
- +9 SET BDMDA=0
- FOR
- SET BDMDA=$ORDER(^AUTTHF("AC",BDMDA))
- IF BDMDA=""
- QUIT
- Begin DoDot:1
- +10 SET BDMPIEN=0
- FOR
- SET BDMPIEN=$ORDER(^AUTTHF("AC",BDMDA,BDMPIEN))
- IF 'BDMPIEN
- QUIT
- Begin DoDot:2
- +11 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,13)
- QUIT
- +12 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,3)'=BDMBAR
- QUIT
- +13 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,10)'="F"
- QUIT
- +14 SET BDMHF=$PIECE($GET(^AUTTHF(BDMPIEN,0)),U)
- +15 SET BDMI=BDMI+1
- +16 SET ^BDMTMP($JOB,BDMI)=BDMHF_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +17 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +18 QUIT
- +19 ;
- READ(BDMRET) ;-- readiness use health factors table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMHF,BDMI,BDMERR,BDMPIEN,BDMDA,BDMR
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080HF"_$CHAR(30)
- +8 SET BDMR=$ORDER(^AUTTHF("B","READINESS TO LEARN",0))
- +9 SET BDMDA=0
- FOR
- SET BDMDA=$ORDER(^AUTTHF("AC",BDMDA))
- IF BDMDA=""
- QUIT
- Begin DoDot:1
- +10 SET BDMPIEN=0
- FOR
- SET BDMPIEN=$ORDER(^AUTTHF("AC",BDMDA,BDMPIEN))
- IF 'BDMPIEN
- QUIT
- Begin DoDot:2
- +11 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,13)
- QUIT
- +12 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,3)'=BDMR
- QUIT
- +13 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,10)'="F"
- QUIT
- +14 SET BDMHF=$PIECE($GET(^AUTTHF(BDMPIEN,0)),U)
- +15 SET BDMI=BDMI+1
- +16 SET ^BDMTMP($JOB,BDMI)=BDMHF_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +17 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +18 QUIT
- +19 ;
- LRN(BDMRET) ;-- learning health factors table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMHF,BDMI,BDMERR,BDMPIEN,BDMDA,BDML
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080HF"_$CHAR(30)
- +8 SET BDML=$ORDER(^AUTTHF("B","LEARNING PREFERENCE",0))
- +9 SET BDMDA=0
- FOR
- SET BDMDA=$ORDER(^AUTTHF("AC",BDMDA))
- IF BDMDA=""
- QUIT
- Begin DoDot:1
- +10 SET BDMPIEN=0
- FOR
- SET BDMPIEN=$ORDER(^AUTTHF("AC",BDMDA,BDMPIEN))
- IF 'BDMPIEN
- QUIT
- Begin DoDot:2
- +11 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,13)
- QUIT
- +12 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,3)'=BDML
- QUIT
- +13 IF $PIECE($GET(^AUTTHF(BDMPIEN,0)),U,10)'="F"
- QUIT
- +14 SET BDMHF=$PIECE($GET(^AUTTHF(BDMPIEN,0)),U)
- +15 SET BDMI=BDMI+1
- +16 SET ^BDMTMP($JOB,BDMI)=BDMHF_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +17 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +18 QUIT
- +19 ;
- MED(BDMRET) ;-- get all drugs
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMMED,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080MED"_$CHAR(30)
- +8 SET BDMMED=0
- FOR
- SET BDMMED=$ORDER(^PSDRUG("B",BDMMED))
- IF BDMMED=""
- QUIT
- Begin DoDot:1
- +9 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^PSDRUG("B",BDMMED,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +10 ;Q:$G(^PSDRUG(BDMIEN,"I"))
- +11 SET BDMI=BDMI+1
- +12 SET ^BDMTMP($JOB,BDMI)=BDMMED_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +13 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +14 QUIT
- +15 ;