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

BDMGTA.m

Go to the documentation of this file.
  1. BDMGTA ; cmi/anch/maw - BDM DMS GUI Table Lookup ;
  1. ;;2.0;BDM DIABETES MANAGEMENT SYSTEM;**1,4,8**;JUN 14, 2007;Build 53
  1. ;
  1. ;
  1. DEBUG(BDMRET,BDMSTR) ;-- debug entry point for Serenji
  1. D DEBUG^%Serenji("ICD^BDMGT(.BDMRET,.BDMSTR)")
  1. Q
  1. ;
  1. DEBUGR(BDMRET) ;-- single entry point debugger
  1. D DEBUG^%Serenji("ICD^BDMGT(.BDMRET)")
  1. Q
  1. ;
  1. MSR(BDMRET) ;-- measurement type
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMMST,BDMMSA,BDMMS,BDMMSTE,BDMI,BDMERR,BDMIEN
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080MSR"_$C(30)
  1. S BDMMST=0 F S BDMMST=$O(^AUTTMSR(BDMMST)) Q:'BDMMST D
  1. . S BDMI=BDMI+1
  1. . S BDMMSA=$P($G(^AUTTMSR(BDMMST,0)),U)
  1. . S BDMMS=$P($G(^AUTTMSR(BDMMST,0)),U,2)
  1. . S ^BDMTMP($J,BDMI)=BDMMS_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. IMM(BDMRET) ;-- immunization table
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMIMM,BDMI,BDMERR,BDMIEN
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080IMM"_$C(30)
  1. S BDMIMM=0 F S BDMIMM=$O(^AUTTIMM("D",BDMIMM)) Q:BDMIMM="" D
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUTTIMM("D",BDMIMM,BDMIEN)) Q:'BDMIEN D
  1. .. Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
  1. .. S BDMI=BDMI+1
  1. .. S ^BDMTMP($J,BDMI)=BDMIMM_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. FLU(BDMRET) ;-- flu immunization table
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMIMM,BDMI,BDMERR,BDMIEN
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080IMM"_$C(30)
  1. S BDMI=1
  1. S BDMIMM=0 F S BDMIMM=$O(^AUTTIMM("D",BDMIMM)) Q:BDMIMM="" D
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUTTIMM("D",BDMIMM,BDMIEN)) Q:'BDMIEN D
  1. .. ;Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=15 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=16 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=88 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=111 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=135 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=140 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=141 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. S ^BDMTMP($J,BDMI)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. PNU(BDMRET) ;-- pneumovax immunization table
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMIMM,BDMI,BDMERR,BDMIEN
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080IMM"_$C(30)
  1. S BDMI=1
  1. S BDMIMM=0 F S BDMIMM=$O(^AUTTIMM("D",BDMIMM)) Q:BDMIMM="" D
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUTTIMM("D",BDMIMM,BDMIEN)) Q:'BDMIEN D
  1. .. ;Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=33 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=100 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=109 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=133 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. S ^BDMTMP($J,BDMI)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. HEP(BDMRET) ;-- hepb immunization table
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMIMM,BDMI,BDMERR,BDMIEN
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080IMM"_$C(30)
  1. S BDMI=1
  1. S BDMIMM=0 F S BDMIMM=$O(^AUTTIMM("D",BDMIMM)) Q:BDMIMM="" D
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUTTIMM("D",BDMIMM,BDMIEN)) Q:'BDMIEN D
  1. .. ;Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=8 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=42 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=43 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=44 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=45 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=51 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=52 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=102 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=104 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. S ^BDMTMP($J,BDMI)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. TD(BDMRET) ;-- td immunization table
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMIMM,BDMI,BDMERR,BDMIEN
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080IMM"_$C(30)
  1. S BDMI=1
  1. S BDMIMM=0 F S BDMIMM=$O(^AUTTIMM("D",BDMIMM)) Q:BDMIMM="" D
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUTTIMM("D",BDMIMM,BDMIEN)) Q:'BDMIEN D
  1. .. ;Q:$P($G(^AUTTIMM(BDMIEN,0)),U,7)
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=1 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=9 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=20 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=22 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=28 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=35 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=50 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=106 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=107 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=110 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=113 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=115 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=120 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=130 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=132 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=138 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. .. I $P($G(^AUTTIMM(BDMIEN,0)),U,3)=139 S ^BDMTMP($J,BDMI)=BDMIMM_$C(30),BDMI=BDMI+1
  1. S ^BDMTMP($J,BDMI)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. SKT(BDMRET) ;-- skin test table
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMSKT,BDMI,BDMERR,BDMIEN
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080SKT"_$C(30)
  1. S BDMSKT=0 F S BDMSKT=$O(^AUTTSK("B",BDMSKT)) Q:BDMSKT="" D
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUTTSK("B",BDMSKT,BDMIEN)) Q:'BDMIEN D
  1. .. S BDMI=BDMI+1
  1. .. S ^BDMTMP($J,BDMI)=BDMSKT_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. DXP(BDMRET) ;-- diagnostic procedure result
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMDXP,BDMI,BDMERR,BDMIEN
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080DXP"_$C(30)
  1. S BDMDXP=0 F S BDMDXP=$O(^AUTTDXPR("B",BDMDXP)) Q:BDMDXP="" D
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUTTDXPR("B",BDMDXP,BDMIEN)) Q:'BDMIEN D
  1. .. S BDMI=BDMI+1
  1. .. S ^BDMTMP($J,BDMI)=BDMDXP_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. XAM(BDMRET) ;-- exam table
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMXAM,BDMI,BDMERR,BDMIEN
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080XAM"_$C(30)
  1. S BDMXAM=0 F S BDMXAM=$O(^AUTTEXAM("B",BDMXAM)) Q:BDMXAM="" D
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUTTEXAM("B",BDMXAM,BDMIEN)) Q:'BDMIEN D
  1. .. S BDMI=BDMI+1
  1. .. S ^BDMTMP($J,BDMI)=BDMXAM_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. RAD(BDMRET) ;-- rad table
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMRAD,BDMI,BDMERR,BDMIEN
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080RAD"_$C(30)
  1. S BDMRAD=0 F S BDMRAD=$O(^RAMIS(71,"B",BDMRAD)) Q:BDMRAD="" D
  1. . S BDMIEN=0 F S BDMIEN=$O(^RAMIS(71,"B",BDMRAD,BDMIEN)) Q:'BDMIEN D
  1. .. S BDMI=BDMI+1
  1. .. S ^BDMTMP($J,BDMI)=BDMRAD_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. RFL(BDMRET) ;-- refusal types
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMRFL,BDMI,BDMERR,BDMIEN
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080REFUSAL"_$C(30)
  1. S BDMRFL=0 F S BDMRFL=$O(^AUTTREFT("B",BDMRFL)) Q:BDMRFL="" D
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUTTREFT("B",BDMRFL,BDMIEN)) Q:'BDMIEN D
  1. .. S BDMI=BDMI+1
  1. .. S ^BDMTMP($J,BDMI)=BDMRFL_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. TAX(BDMRET,BDMSTR) ;-- generic taxonomy table
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N P,BDMRFL,BDMI,BDMERR,BDMIEN,BDMTAXE,BDMTAX,BDMDA,BDMNONC,BDMXRF
  1. N BDMGL,BDMGRF,BDMP
  1. S P="|"
  1. I $P(BDMSTR,P)="Lab" D LABTAX(.BDMRET,.BDMSTR) Q
  1. I $P(BDMSTR,P)="LAB" D LTAX(.BDMRET) Q
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080TAXONOMY"_$C(30)
  1. I $P(BDMSTR,P)="MED" D MEDBLD
  1. F BDMP=3:1 S BDMTAXE=$P(BDMSTR,P,BDMP) Q:$G(BDMTAXE)="" D
  1. . Q:$G(BDMTAXE)=""
  1. . ;S BDMTAXE=$P(BDMSTR,P)
  1. . S BDMTAX=$O(^ATXAX("B",BDMTAXE,0))
  1. . Q:'$G(BDMTAX)
  1. . S BDMNONC=$P($G(^ATXAX(BDMTAX,0)),U,13)
  1. . S BDMXRF=$P($G(^ATXAX(BDMTAX,0)),U,14)
  1. . S BDMFL=$P($G(^ATXAX(BDMTAX,0)),U,15)
  1. . ;I $G(BDMXRF)="" S BDMXRF="B"
  1. . I BDMFL=80 S BDMXRF="BA" ;icd diagnosis x ref
  1. . I BDMFL=80.1 S BDMXRF="BA" ;icd op and proc xref
  1. . ;I $G(BDMXRF)="" S BDMXRF="B"
  1. . S BDMGL=$G(^DIC(BDMFL,0,"GL"))
  1. . S BDMDA=0 F S BDMDA=$O(^ATXAX(BDMTAX,21,BDMDA)) Q:'BDMDA D
  1. .. N BDML,BDMH
  1. .. S BDMI=BDMI+1
  1. .. S BDML=$P($G(^ATXAX(BDMTAX,21,BDMDA,0)),U)
  1. .. S BDMH=$P($G(^ATXAX(BDMTAX,21,BDMDA,0)),U,2)
  1. .. I (BDML=BDMH)!($G(BDMH)="") D Q
  1. ... I $G(BDMXRF)="" D Q
  1. .... S BDMGRF=BDMGL_""""_BDML_""""_")"
  1. .... S ^BDMTMP($J,BDMI)=$P($G(@BDMGRF@(0)),U)_$C(30)
  1. ... S ^BDMTMP($J,BDMI)=BDML_$C(30)
  1. .. S BDMGRF=BDMGL_""""_BDMXRF_""")"
  1. .. N BDMIEN
  1. .. S BDMIEN=$O(@BDMGRF@(BDML),-1)
  1. .. F S BDMIEN=$O(@BDMGRF@(BDMIEN)) Q:BDMIEN>BDMH D
  1. ... S BDMI=BDMI+1
  1. ... S ^BDMTMP($J,BDMI)=BDMIEN_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. LABTAX(BDMRET,BDMSTR) ;-- return the lab taxonomy
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N P,BDMRFL,BDMI,BDMERR,BDMIEN,BDMTAXE,BDMTAX,BDMDA,BDMNONC,BDMXRF
  1. N BDMGL,BDMGRF,BDMP
  1. S P="|"
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00080LABTAXONOMY"_$C(30)
  1. F BDMP=3:1 S BDMTAXE=$P(BDMSTR,P,BDMP) Q:$G(BDMTAXE)="" D
  1. . Q:$G(BDMTAXE)=""
  1. . ;S BDMTAXE=$P(BDMSTR,P)
  1. . S BDMTAX=$O(^ATXLAB("B",BDMTAXE,0))
  1. . Q:'$G(BDMTAX)
  1. . S BDMNONC=$P($G(^ATXLAB(BDMTAX,0)),U,13)
  1. . S BDMXRF=$P($G(^ATXLAB(BDMTAX,0)),U,14)
  1. . S BDMFL=60
  1. . S BDMGL=$G(^DIC(BDMFL,0,"GL"))
  1. . S BDMDA=0 F S BDMDA=$O(^ATXLAB(BDMTAX,21,BDMDA)) Q:'BDMDA D
  1. .. N BDML,BDMH
  1. .. S BDMI=BDMI+1
  1. .. S BDML=$P($G(^ATXLAB(BDMTAX,21,BDMDA,0)),U)
  1. .. S BDMH=$P($G(^ATXLAB(BDMTAX,21,BDMDA,0)),U,2)
  1. .. I (BDML=BDMH)!($G(BDMH)="") D Q
  1. ... I $G(BDMXRF)="" D Q
  1. .... S BDMGRF=BDMGL_""""_BDML_""""_")"
  1. .... S ^BDMTMP($J,BDMI)=$P($G(@BDMGRF@(0)),U)_$C(30)
  1. ... S ^BDMTMP($J,BDMI)=BDML_$C(30)
  1. .. S BDMGRF=BDMGL_""""_BDMXRF_""")"
  1. .. N BDMIEN
  1. .. S BDMIEN=$O(@BDMGRF@(BDML),-1)
  1. .. F S BDMIEN=$O(@BDMGRF@(BDMIEN)) Q:BDMIEN>BDMH D
  1. ... S BDMI=BDMI+1
  1. ... S ^BDMTMP($J,BDMI)=BDMIEN_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. LTAX(BDMRET) ;-- generic lab taxonomy table
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N P,BDMRFL,BDMI,BDMERR,BDMIEN,BDMTAXE,BDMTAX,BDMDA,BDMNONC,BDMXRF
  1. N BDMGL,BDMGRF,BDMP,BDMPKG,BDMTDA,BDMPKGI
  1. S P="|"
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S BDMPKG=$P(BDMSTR,P,2)
  1. S BDMPKGI=$O(^DIC(9.4,"C",BDMPKG,0))
  1. S ^BDMTMP($J,BDMI)="T00080LABTAXONOMY"_$C(30)
  1. S BDMTAX=0 F S BDMTAX=$O(^ATXLAB("APKG",BDMPKGI,BDMTAX)) Q:'BDMTAX D
  1. . ;S BDMTAX=0 F S BDMTAX=$O(^ATXLAB(BDMTAX)) Q:'BDMTAX D
  1. . ;S BDMTAX=$P($G(^ATXLAB(BDMP,0)),U)
  1. . ;Q:$E($P($G(^ATXLAB(BDMTAX,0)),U),1,2)'="DM"
  1. . ;S BDMTAXE=$P(BDMSTR,P)
  1. . ;S BDMTAX=$O(^ATXLAB("B",BDMTAXE,0))
  1. . ;Q:'$G(BDMTAX)
  1. . S BDMXRF=$P($G(^ATXLAB(BDMTAX,0)),U,8)
  1. . I $G(BDMXRF)="" S BDMXRF="B"
  1. . S BDMFL=$P($G(^ATXLAB(BDMTAX,0)),U,9)
  1. . S BDMGL=$G(^DIC(BDMFL,0,"GL"))
  1. . S BDMDA=0 F S BDMDA=$O(^ATXLAB(BDMTAX,21,BDMDA)) Q:'BDMDA D
  1. .. N BDML,BDMH
  1. .. S BDMI=BDMI+1
  1. .. S BDML=$P($G(^ATXLAB(BDMTAX,21,BDMDA,0)),U)
  1. .. S BDMGRF=BDMGL_""""_BDML_""""_")"
  1. .. N BDMIEN
  1. .. S BDMI=BDMI+1
  1. .. S ^BDMTMP($J,BDMI)=$P($G(@BDMGRF@(0)),U)_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. MEDBLD ;-- setup BDMSTR for medication taxonomy
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMTDA,BDMI,BDMPKG,BDMPKGI
  1. S BDMI=1
  1. S BDMPKG=$P(BDMSTR,P,2)
  1. S BDMPKGI=$O(^DIC(9.4,"C",BDMPKG,0))
  1. S BDMTDA=0 F S BDMTDA=$O(^ATXAX(BDMTDA)) Q:'BDMTDA D
  1. . ;S BDMTDA=0 F S BDMTDA=$O(^ATXAX(BDMTDA)) Q:'BDMTDA D
  1. . ;Q:$E($P($G(^ATXAX(BDMTDA,0)),U),1,2)'="DM"
  1. . Q:$P($G(^ATXAX(BDMTDA,0)),U,15)'=50
  1. . S BDMI=BDMI+1
  1. . S $P(BDMSTR,P,BDMI)=$P($G(^ATXAX(BDMTDA,0)),U)
  1. Q
  1. ;
  1. GETTAX(BDMRET,BDMSTR) ;-- get taxonomies based on user selection
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP") ; m error trap
  1. N BDMDA,BDMI,P,BDMPKG,BDMPKGI,BDMI
  1. S P="|"
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S BDMPKG=$P(BDMSTR,P)
  1. S BDMPKGI=$O(^DIC(9.4,"C",BDMPKG,0))
  1. S ^BDMTMP($J,BDMI)="T00080TAXONOMIES"_$C(30)
  1. S BDMDA=0 F S BDMDA=$O(^ATXAX("APKG",BDMPKGI,BDMDA)) Q:'BDMDA D
  1. . N BDMTAX,BDMRO,BDMFL
  1. . S BDMTAX=$P($G(^ATXAX(BDMDA,0)),U)
  1. . S BDMRO=$S($P($G(^ATXAX(BDMDA,0)),U,22):"Read Only",1:"Editable")
  1. . S BDMFL=$P($G(^ATXAX(BDMDA,0)),U,15)
  1. . S ^BDMTMP("TAX",$J,BDMFL,BDMTAX)=BDMRO_U_$S(BDMFL=50:"Med",1:"Tax")
  1. S BDMDA=0 F S BDMDA=$O(^ATXLAB("APKG",BDMPKGI,BDMDA)) Q:'BDMDA D
  1. . N BDMTAX,BDMRO,BDMFL
  1. . S BDMTAX=$P($G(^ATXLAB(BDMDA,0)),U)
  1. . S BDMRO=$S($P($G(^ATXLAB(BDMDA,0)),U,22):"Read Only",1:"Editable")
  1. . S BDMFL=$P($G(^ATXLAB(BDMDA,0)),U,9)
  1. . S ^BDMTMP("TAX",$J,BDMFL,BDMTAX)=BDMRO_U_"Lab"
  1. S BDMDA=0 F S BDMDA=$O(^BDMTMP("TAX",$J,BDMDA)) Q:BDMDA="" D
  1. . N BDMIEN
  1. . S BDMIEN=0 F S BDMIEN=$O(^BDMTMP("TAX",$J,BDMDA,BDMIEN)) Q:BDMIEN="" D
  1. .. S BDMI=BDMI+1
  1. .. S BDMRO=$G(^BDMTMP("TAX",$J,BDMDA,BDMIEN))
  1. .. S ^BDMTMP($J,BDMI)=BDMIEN_"("_$P(BDMRO,U)_"/"_$P(BDMRO,U,2)_"/"_BDMDA_")"_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. K ^BDMTMP("TAX",$J)
  1. Q
  1. ;