- BDMGTA ; cmi/anch/maw - BDM DMS GUI Table Lookup ;
- ;;2.0;BDM DIABETES MANAGEMENT SYSTEM;**1,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
- ;
- MSR(BDMRET) ;-- measurement type
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMMST,BDMMSA,BDMMS,BDMMSTE,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080MSR"_$C(30)
- S BDMMST=0 F S BDMMST=$O(^AUTTMSR(BDMMST)) Q:'BDMMST D
- . S BDMI=BDMI+1
- . S BDMMSA=$P($G(^AUTTMSR(BDMMST,0)),U)
- . S BDMMS=$P($G(^AUTTMSR(BDMMST,0)),U,2)
- . S ^BDMTMP($J,BDMI)=BDMMS_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- IMM(BDMRET) ;-- immunization table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMIMM,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080IMM"_$C(30)
- S BDMIMM=0 F S BDMIMM=$O(^AUTTIMM("D",BDMIMM)) Q:BDMIMM="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTIMM("D",BDMIMM,BDMIEN)) Q:'BDMIEN D
- .. Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMIMM_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- FLU(BDMRET) ;-- flu immunization table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMIMM,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080IMM"_$C(30)
- S BDMI=1
- S BDMIMM=0 F S BDMIMM=$O(^AUTTIMM("D",BDMIMM)) Q:BDMIMM="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTIMM("D",BDMIMM,BDMIEN)) Q:'BDMIEN D
- .. ;Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=15 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=16 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=88 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=111 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=135 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=140 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=141 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- S ^BDMTMP($J,BDMI)=$C(31)_$G(BDMERR)
- Q
- ;
- PNU(BDMRET) ;-- pneumovax immunization table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMIMM,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080IMM"_$C(30)
- S BDMI=1
- S BDMIMM=0 F S BDMIMM=$O(^AUTTIMM("D",BDMIMM)) Q:BDMIMM="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTIMM("D",BDMIMM,BDMIEN)) Q:'BDMIEN D
- .. ;Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=33 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=100 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=109 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=133 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- S ^BDMTMP($J,BDMI)=$C(31)_$G(BDMERR)
- Q
- ;
- HEP(BDMRET) ;-- hepb immunization table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMIMM,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080IMM"_$C(30)
- S BDMI=1
- S BDMIMM=0 F S BDMIMM=$O(^AUTTIMM("D",BDMIMM)) Q:BDMIMM="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTIMM("D",BDMIMM,BDMIEN)) Q:'BDMIEN D
- .. ;Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=8 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=42 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=43 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=44 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=45 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=51 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=52 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=102 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=104 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- S ^BDMTMP($J,BDMI)=$C(31)_$G(BDMERR)
- Q
- ;
- TD(BDMRET) ;-- td immunization table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMIMM,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080IMM"_$C(30)
- S BDMI=1
- S BDMIMM=0 F S BDMIMM=$O(^AUTTIMM("D",BDMIMM)) Q:BDMIMM="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTIMM("D",BDMIMM,BDMIEN)) Q:'BDMIEN D
- .. ;Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=1 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=9 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=20 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=22 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=28 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=35 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=50 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=106 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=107 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=110 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=113 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=115 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=120 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=130 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=132 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=138 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=139 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
- S ^BDMTMP($J,BDMI)=$C(31)_$G(BDMERR)
- Q
- ;
- SKT(BDMRET) ;-- skin test table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMSKT,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080SKT"_$C(30)
- S BDMSKT=0 F S BDMSKT=$O(^AUTTSK("B",BDMSKT)) Q:BDMSKT="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTSK("B",BDMSKT,BDMIEN)) Q:'BDMIEN D
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMSKT_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- DXP(BDMRET) ;-- diagnostic procedure result
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMDXP,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080DXP"_$C(30)
- S BDMDXP=0 F S BDMDXP=$O(^AUTTDXPR("B",BDMDXP)) Q:BDMDXP="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTDXPR("B",BDMDXP,BDMIEN)) Q:'BDMIEN D
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMDXP_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- XAM(BDMRET) ;-- exam table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMXAM,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080XAM"_$C(30)
- S BDMXAM=0 F S BDMXAM=$O(^AUTTEXAM("B",BDMXAM)) Q:BDMXAM="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTEXAM("B",BDMXAM,BDMIEN)) Q:'BDMIEN D
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMXAM_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- RAD(BDMRET) ;-- rad table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMRAD,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080RAD"_$C(30)
- S BDMRAD=0 F S BDMRAD=$O(^RAMIS(71,"B",BDMRAD)) Q:BDMRAD="" D
- . S BDMIEN=0 F S BDMIEN=$O(^RAMIS(71,"B",BDMRAD,BDMIEN)) Q:'BDMIEN D
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMRAD_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- RFL(BDMRET) ;-- refusal types
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMRFL,BDMI,BDMERR,BDMIEN
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080REFUSAL"_$C(30)
- S BDMRFL=0 F S BDMRFL=$O(^AUTTREFT("B",BDMRFL)) Q:BDMRFL="" D
- . S BDMIEN=0 F S BDMIEN=$O(^AUTTREFT("B",BDMRFL,BDMIEN)) Q:'BDMIEN D
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=BDMRFL_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- TAX(BDMRET,BDMSTR) ;-- generic taxonomy table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N P,BDMRFL,BDMI,BDMERR,BDMIEN,BDMTAXE,BDMTAX,BDMDA,BDMNONC,BDMXRF
- N BDMGL,BDMGRF,BDMP
- S P="|"
- I $P(BDMSTR,P)="Lab" D LABTAX(.BDMRET,.BDMSTR) Q
- I $P(BDMSTR,P)="LAB" D LTAX(.BDMRET) Q
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080TAXONOMY"_$C(30)
- I $P(BDMSTR,P)="MED" D MEDBLD
- F BDMP=3:1 S BDMTAXE=$P(BDMSTR,P,BDMP) Q:$G(BDMTAXE)="" D
- . Q:$G(BDMTAXE)=""
- . ;S BDMTAXE=$P(BDMSTR,P)
- . S BDMTAX=$O(^ATXAX("B",BDMTAXE,0))
- . Q:'$G(BDMTAX)
- . S BDMNONC=$P($G(^ATXAX(BDMTAX,0)),U,13)
- . S BDMXRF=$P($G(^ATXAX(BDMTAX,0)),U,14)
- . S BDMFL=$P($G(^ATXAX(BDMTAX,0)),U,15)
- . ;I $G(BDMXRF)="" S BDMXRF="B"
- . I BDMFL=80 S BDMXRF="BA" ;icd diagnosis x ref
- . I BDMFL=80.1 S BDMXRF="BA" ;icd op and proc xref
- . ;I $G(BDMXRF)="" S BDMXRF="B"
- . S BDMGL=$G(^DIC(BDMFL,0,"GL"))
- . S BDMDA=0 F S BDMDA=$O(^ATXAX(BDMTAX,21,BDMDA)) Q:'BDMDA D
- .. N BDML,BDMH
- .. S BDMI=BDMI+1
- .. S BDML=$P($G(^ATXAX(BDMTAX,21,BDMDA,0)),U)
- .. S BDMH=$P($G(^ATXAX(BDMTAX,21,BDMDA,0)),U,2)
- .. I (BDML=BDMH)!($G(BDMH)="") D Q
- ... I $G(BDMXRF)="" D Q
- .... S BDMGRF=BDMGL_""""_BDML_""""_")"
- .... S ^BDMTMP($J,BDMI)=$P($G(@BDMGRF@(0)),U)_$C(30)
- ... S ^BDMTMP($J,BDMI)=BDML_$C(30)
- .. S BDMGRF=BDMGL_""""_BDMXRF_""")"
- .. N BDMIEN
- .. S BDMIEN=$O(@BDMGRF@(BDML),-1)
- .. F S BDMIEN=$O(@BDMGRF@(BDMIEN)) Q:BDMIEN>BDMH D
- ... S BDMI=BDMI+1
- ... S ^BDMTMP($J,BDMI)=BDMIEN_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- LABTAX(BDMRET,BDMSTR) ;-- return the lab taxonomy
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N P,BDMRFL,BDMI,BDMERR,BDMIEN,BDMTAXE,BDMTAX,BDMDA,BDMNONC,BDMXRF
- N BDMGL,BDMGRF,BDMP
- S P="|"
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S ^BDMTMP($J,BDMI)="T00080LABTAXONOMY"_$C(30)
- F BDMP=3:1 S BDMTAXE=$P(BDMSTR,P,BDMP) Q:$G(BDMTAXE)="" D
- . Q:$G(BDMTAXE)=""
- . ;S BDMTAXE=$P(BDMSTR,P)
- . S BDMTAX=$O(^ATXLAB("B",BDMTAXE,0))
- . Q:'$G(BDMTAX)
- . S BDMNONC=$P($G(^ATXLAB(BDMTAX,0)),U,13)
- . S BDMXRF=$P($G(^ATXLAB(BDMTAX,0)),U,14)
- . S BDMFL=60
- . S BDMGL=$G(^DIC(BDMFL,0,"GL"))
- . S BDMDA=0 F S BDMDA=$O(^ATXLAB(BDMTAX,21,BDMDA)) Q:'BDMDA D
- .. N BDML,BDMH
- .. S BDMI=BDMI+1
- .. S BDML=$P($G(^ATXLAB(BDMTAX,21,BDMDA,0)),U)
- .. S BDMH=$P($G(^ATXLAB(BDMTAX,21,BDMDA,0)),U,2)
- .. I (BDML=BDMH)!($G(BDMH)="") D Q
- ... I $G(BDMXRF)="" D Q
- .... S BDMGRF=BDMGL_""""_BDML_""""_")"
- .... S ^BDMTMP($J,BDMI)=$P($G(@BDMGRF@(0)),U)_$C(30)
- ... S ^BDMTMP($J,BDMI)=BDML_$C(30)
- .. S BDMGRF=BDMGL_""""_BDMXRF_""")"
- .. N BDMIEN
- .. S BDMIEN=$O(@BDMGRF@(BDML),-1)
- .. F S BDMIEN=$O(@BDMGRF@(BDMIEN)) Q:BDMIEN>BDMH D
- ... S BDMI=BDMI+1
- ... S ^BDMTMP($J,BDMI)=BDMIEN_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- LTAX(BDMRET) ;-- generic lab taxonomy table
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N P,BDMRFL,BDMI,BDMERR,BDMIEN,BDMTAXE,BDMTAX,BDMDA,BDMNONC,BDMXRF
- N BDMGL,BDMGRF,BDMP,BDMPKG,BDMTDA,BDMPKGI
- S P="|"
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S BDMPKG=$P(BDMSTR,P,2)
- S BDMPKGI=$O(^DIC(9.4,"C",BDMPKG,0))
- S ^BDMTMP($J,BDMI)="T00080LABTAXONOMY"_$C(30)
- S BDMTAX=0 F S BDMTAX=$O(^ATXLAB("APKG",BDMPKGI,BDMTAX)) Q:'BDMTAX D
- . ;S BDMTAX=0 F S BDMTAX=$O(^ATXLAB(BDMTAX)) Q:'BDMTAX D
- . ;S BDMTAX=$P($G(^ATXLAB(BDMP,0)),U)
- . ;Q:$E($P($G(^ATXLAB(BDMTAX,0)),U),1,2)'="DM"
- . ;S BDMTAXE=$P(BDMSTR,P)
- . ;S BDMTAX=$O(^ATXLAB("B",BDMTAXE,0))
- . ;Q:'$G(BDMTAX)
- . S BDMXRF=$P($G(^ATXLAB(BDMTAX,0)),U,8)
- . I $G(BDMXRF)="" S BDMXRF="B"
- . S BDMFL=$P($G(^ATXLAB(BDMTAX,0)),U,9)
- . S BDMGL=$G(^DIC(BDMFL,0,"GL"))
- . S BDMDA=0 F S BDMDA=$O(^ATXLAB(BDMTAX,21,BDMDA)) Q:'BDMDA D
- .. N BDML,BDMH
- .. S BDMI=BDMI+1
- .. S BDML=$P($G(^ATXLAB(BDMTAX,21,BDMDA,0)),U)
- .. S BDMGRF=BDMGL_""""_BDML_""""_")"
- .. N BDMIEN
- .. S BDMI=BDMI+1
- .. S ^BDMTMP($J,BDMI)=$P($G(@BDMGRF@(0)),U)_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- Q
- ;
- MEDBLD ;-- setup BDMSTR for medication taxonomy
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMTDA,BDMI,BDMPKG,BDMPKGI
- S BDMI=1
- S BDMPKG=$P(BDMSTR,P,2)
- S BDMPKGI=$O(^DIC(9.4,"C",BDMPKG,0))
- S BDMTDA=0 F S BDMTDA=$O(^ATXAX(BDMTDA)) Q:'BDMTDA D
- . ;S BDMTDA=0 F S BDMTDA=$O(^ATXAX(BDMTDA)) Q:'BDMTDA D
- . ;Q:$E($P($G(^ATXAX(BDMTDA,0)),U),1,2)'="DM"
- . Q:$P($G(^ATXAX(BDMTDA,0)),U,15)'=50
- . S BDMI=BDMI+1
- . S $P(BDMSTR,P,BDMI)=$P($G(^ATXAX(BDMTDA,0)),U)
- Q
- ;
- GETTAX(BDMRET,BDMSTR) ;-- get taxonomies based on user selection
- S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
- N BDMDA,BDMI,P,BDMPKG,BDMPKGI,BDMI
- S P="|"
- K ^BDMTMP($J)
- S BDMRET="^BDMTMP("_$J_")"
- S BDMI=0
- S BDMERR=""
- S BDMPKG=$P(BDMSTR,P)
- S BDMPKGI=$O(^DIC(9.4,"C",BDMPKG,0))
- S ^BDMTMP($J,BDMI)="T00080TAXONOMIES"_$C(30)
- S BDMDA=0 F S BDMDA=$O(^ATXAX("APKG",BDMPKGI,BDMDA)) Q:'BDMDA D
- . N BDMTAX,BDMRO,BDMFL
- . S BDMTAX=$P($G(^ATXAX(BDMDA,0)),U)
- . S BDMRO=$S($P($G(^ATXAX(BDMDA,0)),U,22):"Read Only",1:"Editable")
- . S BDMFL=$P($G(^ATXAX(BDMDA,0)),U,15)
- . S ^BDMTMP("TAX",$J,BDMFL,BDMTAX)=BDMRO_U_$S(BDMFL=50:"Med",1:"Tax")
- S BDMDA=0 F S BDMDA=$O(^ATXLAB("APKG",BDMPKGI,BDMDA)) Q:'BDMDA D
- . N BDMTAX,BDMRO,BDMFL
- . S BDMTAX=$P($G(^ATXLAB(BDMDA,0)),U)
- . S BDMRO=$S($P($G(^ATXLAB(BDMDA,0)),U,22):"Read Only",1:"Editable")
- . S BDMFL=$P($G(^ATXLAB(BDMDA,0)),U,9)
- . S ^BDMTMP("TAX",$J,BDMFL,BDMTAX)=BDMRO_U_"Lab"
- S BDMDA=0 F S BDMDA=$O(^BDMTMP("TAX",$J,BDMDA)) Q:BDMDA="" D
- . N BDMIEN
- . S BDMIEN=0 F S BDMIEN=$O(^BDMTMP("TAX",$J,BDMDA,BDMIEN)) Q:BDMIEN="" D
- .. S BDMI=BDMI+1
- .. S BDMRO=$G(^BDMTMP("TAX",$J,BDMDA,BDMIEN))
- .. S ^BDMTMP($J,BDMI)=BDMIEN_"("_$P(BDMRO,U)_"/"_$P(BDMRO,U,2)_"/"_BDMDA_")"_$C(30)
- S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
- K ^BDMTMP("TAX",$J)
- Q
- ;
- BDMGTA ; cmi/anch/maw - BDM DMS GUI Table Lookup ;
- +1 ;;2.0;BDM DIABETES MANAGEMENT SYSTEM;**1,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 ;
- MSR(BDMRET) ;-- measurement type
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMMST,BDMMSA,BDMMS,BDMMSTE,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080MSR"_$CHAR(30)
- +8 SET BDMMST=0
- FOR
- SET BDMMST=$ORDER(^AUTTMSR(BDMMST))
- IF 'BDMMST
- QUIT
- Begin DoDot:1
- +9 SET BDMI=BDMI+1
- +10 SET BDMMSA=$PIECE($GET(^AUTTMSR(BDMMST,0)),U)
- +11 SET BDMMS=$PIECE($GET(^AUTTMSR(BDMMST,0)),U,2)
- +12 SET ^BDMTMP($JOB,BDMI)=BDMMS_$CHAR(30)
- End DoDot:1
- +13 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +14 QUIT
- +15 ;
- IMM(BDMRET) ;-- immunization table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMIMM,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080IMM"_$CHAR(30)
- +8 SET BDMIMM=0
- FOR
- SET BDMIMM=$ORDER(^AUTTIMM("D",BDMIMM))
- IF BDMIMM=""
- QUIT
- Begin DoDot:1
- +9 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTIMM("D",BDMIMM,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +10 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,7)
- QUIT
- +11 SET BDMI=BDMI+1
- +12 SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +13 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +14 QUIT
- +15 ;
- FLU(BDMRET) ;-- flu immunization table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMIMM,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080IMM"_$CHAR(30)
- +8 SET BDMI=1
- +9 SET BDMIMM=0
- FOR
- SET BDMIMM=$ORDER(^AUTTIMM("D",BDMIMM))
- IF BDMIMM=""
- QUIT
- Begin DoDot:1
- +10 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTIMM("D",BDMIMM,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +11 ;Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
- +12 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=15
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +13 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=16
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +14 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=88
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +15 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=111
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +16 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=135
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +17 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=140
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +18 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=141
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- End DoDot:2
- End DoDot:1
- +19 SET ^BDMTMP($JOB,BDMI)=$CHAR(31)_$GET(BDMERR)
- +20 QUIT
- +21 ;
- PNU(BDMRET) ;-- pneumovax immunization table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMIMM,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080IMM"_$CHAR(30)
- +8 SET BDMI=1
- +9 SET BDMIMM=0
- FOR
- SET BDMIMM=$ORDER(^AUTTIMM("D",BDMIMM))
- IF BDMIMM=""
- QUIT
- Begin DoDot:1
- +10 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTIMM("D",BDMIMM,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +11 ;Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
- +12 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=33
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +13 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=100
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +14 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=109
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +15 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=133
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- End DoDot:2
- End DoDot:1
- +16 SET ^BDMTMP($JOB,BDMI)=$CHAR(31)_$GET(BDMERR)
- +17 QUIT
- +18 ;
- HEP(BDMRET) ;-- hepb immunization table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMIMM,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080IMM"_$CHAR(30)
- +8 SET BDMI=1
- +9 SET BDMIMM=0
- FOR
- SET BDMIMM=$ORDER(^AUTTIMM("D",BDMIMM))
- IF BDMIMM=""
- QUIT
- Begin DoDot:1
- +10 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTIMM("D",BDMIMM,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +11 ;Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
- +12 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=8
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +13 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=42
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +14 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=43
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +15 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=44
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +16 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=45
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +17 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=51
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +18 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=52
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +19 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=102
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +20 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=104
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- End DoDot:2
- End DoDot:1
- +21 SET ^BDMTMP($JOB,BDMI)=$CHAR(31)_$GET(BDMERR)
- +22 QUIT
- +23 ;
- TD(BDMRET) ;-- td immunization table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMIMM,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080IMM"_$CHAR(30)
- +8 SET BDMI=1
- +9 SET BDMIMM=0
- FOR
- SET BDMIMM=$ORDER(^AUTTIMM("D",BDMIMM))
- IF BDMIMM=""
- QUIT
- Begin DoDot:1
- +10 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTIMM("D",BDMIMM,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +11 ;Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
- +12 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=1
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +13 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=9
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +14 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=20
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +15 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=22
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +16 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=28
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +17 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=35
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +18 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=50
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +19 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=106
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +20 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=107
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +21 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=110
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +22 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=113
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +23 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=115
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +24 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=120
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +25 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=130
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +26 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=132
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +27 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=138
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- +28 IF $PIECE($GET(^AUTTIMM(BDMIEN,0)),U,3)=139
- SET ^BDMTMP($JOB,BDMI)=BDMIMM_$CHAR(30)
- SET BDMI=BDMI+1
- End DoDot:2
- End DoDot:1
- +29 SET ^BDMTMP($JOB,BDMI)=$CHAR(31)_$GET(BDMERR)
- +30 QUIT
- +31 ;
- SKT(BDMRET) ;-- skin test table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMSKT,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080SKT"_$CHAR(30)
- +8 SET BDMSKT=0
- FOR
- SET BDMSKT=$ORDER(^AUTTSK("B",BDMSKT))
- IF BDMSKT=""
- QUIT
- Begin DoDot:1
- +9 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTSK("B",BDMSKT,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +10 SET BDMI=BDMI+1
- +11 SET ^BDMTMP($JOB,BDMI)=BDMSKT_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +12 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +13 QUIT
- +14 ;
- DXP(BDMRET) ;-- diagnostic procedure result
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMDXP,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080DXP"_$CHAR(30)
- +8 SET BDMDXP=0
- FOR
- SET BDMDXP=$ORDER(^AUTTDXPR("B",BDMDXP))
- IF BDMDXP=""
- QUIT
- Begin DoDot:1
- +9 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTDXPR("B",BDMDXP,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +10 SET BDMI=BDMI+1
- +11 SET ^BDMTMP($JOB,BDMI)=BDMDXP_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +12 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +13 QUIT
- +14 ;
- XAM(BDMRET) ;-- exam table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMXAM,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080XAM"_$CHAR(30)
- +8 SET BDMXAM=0
- FOR
- SET BDMXAM=$ORDER(^AUTTEXAM("B",BDMXAM))
- IF BDMXAM=""
- QUIT
- Begin DoDot:1
- +9 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTEXAM("B",BDMXAM,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +10 SET BDMI=BDMI+1
- +11 SET ^BDMTMP($JOB,BDMI)=BDMXAM_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +12 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +13 QUIT
- +14 ;
- RAD(BDMRET) ;-- rad table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMRAD,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080RAD"_$CHAR(30)
- +8 SET BDMRAD=0
- FOR
- SET BDMRAD=$ORDER(^RAMIS(71,"B",BDMRAD))
- IF BDMRAD=""
- QUIT
- Begin DoDot:1
- +9 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^RAMIS(71,"B",BDMRAD,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +10 SET BDMI=BDMI+1
- +11 SET ^BDMTMP($JOB,BDMI)=BDMRAD_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +12 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +13 QUIT
- +14 ;
- RFL(BDMRET) ;-- refusal types
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW BDMRFL,BDMI,BDMERR,BDMIEN
- +3 KILL ^BDMTMP($JOB)
- +4 SET BDMRET="^BDMTMP("_$JOB_")"
- +5 SET BDMI=0
- +6 SET BDMERR=""
- +7 SET ^BDMTMP($JOB,BDMI)="T00080REFUSAL"_$CHAR(30)
- +8 SET BDMRFL=0
- FOR
- SET BDMRFL=$ORDER(^AUTTREFT("B",BDMRFL))
- IF BDMRFL=""
- QUIT
- Begin DoDot:1
- +9 SET BDMIEN=0
- FOR
- SET BDMIEN=$ORDER(^AUTTREFT("B",BDMRFL,BDMIEN))
- IF 'BDMIEN
- QUIT
- Begin DoDot:2
- +10 SET BDMI=BDMI+1
- +11 SET ^BDMTMP($JOB,BDMI)=BDMRFL_$CHAR(30)
- End DoDot:2
- End DoDot:1
- +12 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +13 QUIT
- +14 ;
- TAX(BDMRET,BDMSTR) ;-- generic taxonomy table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW P,BDMRFL,BDMI,BDMERR,BDMIEN,BDMTAXE,BDMTAX,BDMDA,BDMNONC,BDMXRF
- +3 NEW BDMGL,BDMGRF,BDMP
- +4 SET P="|"
- +5 IF $PIECE(BDMSTR,P)="Lab"
- DO LABTAX(.BDMRET,.BDMSTR)
- QUIT
- +6 IF $PIECE(BDMSTR,P)="LAB"
- DO LTAX(.BDMRET)
- QUIT
- +7 KILL ^BDMTMP($JOB)
- +8 SET BDMRET="^BDMTMP("_$JOB_")"
- +9 SET BDMI=0
- +10 SET BDMERR=""
- +11 SET ^BDMTMP($JOB,BDMI)="T00080TAXONOMY"_$CHAR(30)
- +12 IF $PIECE(BDMSTR,P)="MED"
- DO MEDBLD
- +13 FOR BDMP=3:1
- SET BDMTAXE=$PIECE(BDMSTR,P,BDMP)
- IF $GET(BDMTAXE)=""
- QUIT
- Begin DoDot:1
- +14 IF $GET(BDMTAXE)=""
- QUIT
- +15 ;S BDMTAXE=$P(BDMSTR,P)
- +16 SET BDMTAX=$ORDER(^ATXAX("B",BDMTAXE,0))
- +17 IF '$GET(BDMTAX)
- QUIT
- +18 SET BDMNONC=$PIECE($GET(^ATXAX(BDMTAX,0)),U,13)
- +19 SET BDMXRF=$PIECE($GET(^ATXAX(BDMTAX,0)),U,14)
- +20 SET BDMFL=$PIECE($GET(^ATXAX(BDMTAX,0)),U,15)
- +21 ;I $G(BDMXRF)="" S BDMXRF="B"
- +22 ;icd diagnosis x ref
- IF BDMFL=80
- SET BDMXRF="BA"
- +23 ;icd op and proc xref
- IF BDMFL=80.1
- SET BDMXRF="BA"
- +24 ;I $G(BDMXRF)="" S BDMXRF="B"
- +25 SET BDMGL=$GET(^DIC(BDMFL,0,"GL"))
- +26 SET BDMDA=0
- FOR
- SET BDMDA=$ORDER(^ATXAX(BDMTAX,21,BDMDA))
- IF 'BDMDA
- QUIT
- Begin DoDot:2
- +27 NEW BDML,BDMH
- +28 SET BDMI=BDMI+1
- +29 SET BDML=$PIECE($GET(^ATXAX(BDMTAX,21,BDMDA,0)),U)
- +30 SET BDMH=$PIECE($GET(^ATXAX(BDMTAX,21,BDMDA,0)),U,2)
- +31 IF (BDML=BDMH)!($GET(BDMH)="")
- Begin DoDot:3
- +32 IF $GET(BDMXRF)=""
- Begin DoDot:4
- +33 SET BDMGRF=BDMGL_""""_BDML_""""_")"
- +34 SET ^BDMTMP($JOB,BDMI)=$PIECE($GET(@BDMGRF@(0)),U)_$CHAR(30)
- End DoDot:4
- QUIT
- +35 SET ^BDMTMP($JOB,BDMI)=BDML_$CHAR(30)
- End DoDot:3
- QUIT
- +36 SET BDMGRF=BDMGL_""""_BDMXRF_""")"
- +37 NEW BDMIEN
- +38 SET BDMIEN=$ORDER(@BDMGRF@(BDML),-1)
- +39 FOR
- SET BDMIEN=$ORDER(@BDMGRF@(BDMIEN))
- IF BDMIEN>BDMH
- QUIT
- Begin DoDot:3
- +40 SET BDMI=BDMI+1
- +41 SET ^BDMTMP($JOB,BDMI)=BDMIEN_$CHAR(30)
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +42 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +43 QUIT
- +44 ;
- LABTAX(BDMRET,BDMSTR) ;-- return the lab taxonomy
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW P,BDMRFL,BDMI,BDMERR,BDMIEN,BDMTAXE,BDMTAX,BDMDA,BDMNONC,BDMXRF
- +3 NEW BDMGL,BDMGRF,BDMP
- +4 SET P="|"
- +5 KILL ^BDMTMP($JOB)
- +6 SET BDMRET="^BDMTMP("_$JOB_")"
- +7 SET BDMI=0
- +8 SET BDMERR=""
- +9 SET ^BDMTMP($JOB,BDMI)="T00080LABTAXONOMY"_$CHAR(30)
- +10 FOR BDMP=3:1
- SET BDMTAXE=$PIECE(BDMSTR,P,BDMP)
- IF $GET(BDMTAXE)=""
- QUIT
- Begin DoDot:1
- +11 IF $GET(BDMTAXE)=""
- QUIT
- +12 ;S BDMTAXE=$P(BDMSTR,P)
- +13 SET BDMTAX=$ORDER(^ATXLAB("B",BDMTAXE,0))
- +14 IF '$GET(BDMTAX)
- QUIT
- +15 SET BDMNONC=$PIECE($GET(^ATXLAB(BDMTAX,0)),U,13)
- +16 SET BDMXRF=$PIECE($GET(^ATXLAB(BDMTAX,0)),U,14)
- +17 SET BDMFL=60
- +18 SET BDMGL=$GET(^DIC(BDMFL,0,"GL"))
- +19 SET BDMDA=0
- FOR
- SET BDMDA=$ORDER(^ATXLAB(BDMTAX,21,BDMDA))
- IF 'BDMDA
- QUIT
- Begin DoDot:2
- +20 NEW BDML,BDMH
- +21 SET BDMI=BDMI+1
- +22 SET BDML=$PIECE($GET(^ATXLAB(BDMTAX,21,BDMDA,0)),U)
- +23 SET BDMH=$PIECE($GET(^ATXLAB(BDMTAX,21,BDMDA,0)),U,2)
- +24 IF (BDML=BDMH)!($GET(BDMH)="")
- Begin DoDot:3
- +25 IF $GET(BDMXRF)=""
- Begin DoDot:4
- +26 SET BDMGRF=BDMGL_""""_BDML_""""_")"
- +27 SET ^BDMTMP($JOB,BDMI)=$PIECE($GET(@BDMGRF@(0)),U)_$CHAR(30)
- End DoDot:4
- QUIT
- +28 SET ^BDMTMP($JOB,BDMI)=BDML_$CHAR(30)
- End DoDot:3
- QUIT
- +29 SET BDMGRF=BDMGL_""""_BDMXRF_""")"
- +30 NEW BDMIEN
- +31 SET BDMIEN=$ORDER(@BDMGRF@(BDML),-1)
- +32 FOR
- SET BDMIEN=$ORDER(@BDMGRF@(BDMIEN))
- IF BDMIEN>BDMH
- QUIT
- Begin DoDot:3
- +33 SET BDMI=BDMI+1
- +34 SET ^BDMTMP($JOB,BDMI)=BDMIEN_$CHAR(30)
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +35 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
- +36 QUIT
- +37 ;
- LTAX(BDMRET) ;-- generic lab taxonomy table
- +1 ; m error trap
- SET X="MERR^BDMGU"
- SET @^%ZOSF("TRAP")
- +2 NEW P,BDMRFL,BDMI,BDMERR,BDMIEN,BDMTAXE,BDMTAX,BDMDA,BDMNONC,BDMXRF
- +3 NEW BDMGL,BDMGRF,BDMP,BDMPKG,BDMTDA,BDMPKGI
- +4 SET P="|"
- +5 KILL ^BDMTMP($JOB)
- +6 SET BDMRET="^BDMTMP("_$JOB_")"
- +7 SET BDMI=0
- +8 SET BDMERR=""
- +9 SET BDMPKG=$PIECE(BDMSTR,P,2)
- +10 SET BDMPKGI=$ORDER(^DIC(9.4,"C",BDMPKG,0))
- +11 SET ^BDMTMP($JOB,BDMI)="T00080LABTAXONOMY"_$CHAR(30)
- +12 SET BDMTAX=0
- FOR
- SET BDMTAX=$ORDER(^ATXLAB("APKG",BDMPKGI,BDMTAX))
- IF 'BDMTAX
- QUIT
- Begin DoDot:1
- +13 ;S BDMTAX=0 F S BDMTAX=$O(^ATXLAB(BDMTAX)) Q:'BDMTAX D
- +14 ;S BDMTAX=$P($G(^ATXLAB(BDMP,0)),U)
- +15 ;Q:$E($P($G(^ATXLAB(BDMTAX,0)),U),1,2)'="DM"
- +16 ;S BDMTAXE=$P(BDMSTR,P)
- +17 ;S BDMTAX=$O(^ATXLAB("B",BDMTAXE,0))
- +18 ;Q:'$G(BDMTAX)
- +19 SET BDMXRF=$PIECE($GET(^ATXLAB(BDMTAX,0)),U,8)
- +20 IF $GET(BDMXRF)=""
- SET BDMXRF="B"
- +21 SET BDMFL=$PIECE($GET(^ATXLAB(BDMTAX,0)),U,9)
- +22 SET BDMGL=$GET(^DIC(BDMFL,0,"GL"))
- +23 SET BDMDA=0
- FOR
- SET BDMDA=$ORDER(^ATXLAB(BDMTAX,21,BDMDA))
- IF 'BDMDA
- QUIT
- Begin DoDot:2
- +24 NEW BDML,BDMH
- +25 SET BDMI=BDMI+1
- +26 SET BDML=$PIECE($GET(^ATXLAB(BDMTAX,21,BDMDA,0)),U)
- +27 SET BDMGRF=BDMGL_""""_BDML_""""_")"
- +28 NEW BDMIEN
- +29 SET BDMI=BDMI+1
- +30 SET ^BDMTMP($JOB,BDMI)=$PIECE($GET(@BDMGRF@(0)),U)_$CHAR(30)
- End DoDot:2
End DoDot:1
+31 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
+32 QUIT
+33 ;
MEDBLD ;-- setup BDMSTR for medication taxonomy
+1 ; m error trap
SET X="MERR^BDMGU"
SET @^%ZOSF("TRAP")
+2 NEW BDMTDA,BDMI,BDMPKG,BDMPKGI
+3 SET BDMI=1
+4 SET BDMPKG=$PIECE(BDMSTR,P,2)
+5 SET BDMPKGI=$ORDER(^DIC(9.4,"C",BDMPKG,0))
+6 SET BDMTDA=0
FOR
SET BDMTDA=$ORDER(^ATXAX(BDMTDA))
IF 'BDMTDA
QUIT
Begin DoDot:1
+7 ;S BDMTDA=0 F S BDMTDA=$O(^ATXAX(BDMTDA)) Q:'BDMTDA D
+8 ;Q:$E($P($G(^ATXAX(BDMTDA,0)),U),1,2)'="DM"
+9 IF $PIECE($GET(^ATXAX(BDMTDA,0)),U,15)'=50
QUIT
+10 SET BDMI=BDMI+1
+11 SET $PIECE(BDMSTR,P,BDMI)=$PIECE($GET(^ATXAX(BDMTDA,0)),U)
End DoDot:1
+12 QUIT
+13 ;
GETTAX(BDMRET,BDMSTR) ;-- get taxonomies based on user selection
+1 ; m error trap
SET X="MERR^BDMGU"
SET @^%ZOSF("TRAP")
+2 NEW BDMDA,BDMI,P,BDMPKG,BDMPKGI,BDMI
+3 SET P="|"
+4 KILL ^BDMTMP($JOB)
+5 SET BDMRET="^BDMTMP("_$JOB_")"
+6 SET BDMI=0
+7 SET BDMERR=""
+8 SET BDMPKG=$PIECE(BDMSTR,P)
+9 SET BDMPKGI=$ORDER(^DIC(9.4,"C",BDMPKG,0))
+10 SET ^BDMTMP($JOB,BDMI)="T00080TAXONOMIES"_$CHAR(30)
+11 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^ATXAX("APKG",BDMPKGI,BDMDA))
IF 'BDMDA
QUIT
Begin DoDot:1
+12 NEW BDMTAX,BDMRO,BDMFL
+13 SET BDMTAX=$PIECE($GET(^ATXAX(BDMDA,0)),U)
+14 SET BDMRO=$SELECT($PIECE($GET(^ATXAX(BDMDA,0)),U,22):"Read Only",1:"Editable")
+15 SET BDMFL=$PIECE($GET(^ATXAX(BDMDA,0)),U,15)
+16 SET ^BDMTMP("TAX",$JOB,BDMFL,BDMTAX)=BDMRO_U_$SELECT(BDMFL=50:"Med",1:"Tax")
End DoDot:1
+17 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^ATXLAB("APKG",BDMPKGI,BDMDA))
IF 'BDMDA
QUIT
Begin DoDot:1
+18 NEW BDMTAX,BDMRO,BDMFL
+19 SET BDMTAX=$PIECE($GET(^ATXLAB(BDMDA,0)),U)
+20 SET BDMRO=$SELECT($PIECE($GET(^ATXLAB(BDMDA,0)),U,22):"Read Only",1:"Editable")
+21 SET BDMFL=$PIECE($GET(^ATXLAB(BDMDA,0)),U,9)
+22 SET ^BDMTMP("TAX",$JOB,BDMFL,BDMTAX)=BDMRO_U_"Lab"
End DoDot:1
+23 SET BDMDA=0
FOR
SET BDMDA=$ORDER(^BDMTMP("TAX",$JOB,BDMDA))
IF BDMDA=""
QUIT
Begin DoDot:1
+24 NEW BDMIEN
+25 SET BDMIEN=0
FOR
SET BDMIEN=$ORDER(^BDMTMP("TAX",$JOB,BDMDA,BDMIEN))
IF BDMIEN=""
QUIT
Begin DoDot:2
+26 SET BDMI=BDMI+1
+27 SET BDMRO=$GET(^BDMTMP("TAX",$JOB,BDMDA,BDMIEN))
+28 SET ^BDMTMP($JOB,BDMI)=BDMIEN_"("_$PIECE(BDMRO,U)_"/"_$PIECE(BDMRO,U,2)_"/"_BDMDA_")"_$CHAR(30)
End DoDot:2
End DoDot:1
+29 SET ^BDMTMP($JOB,BDMI+1)=$CHAR(31)_$GET(BDMERR)
+30 KILL ^BDMTMP("TAX",$JOB)
+31 QUIT
+32 ;