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

BDMGUA.m

Go to the documentation of this file.
  1. BDMGUA ; cmi/anch/maw - BDM DMS GUI Utilities ; 11 Feb 2010 7:45 AM
  1. ;;2.0;BDM DIABETES MANAGEMENT SYSTEM;**1,3,5,6,7,8,9,10,11,12**;JUN 14, 2007;Build 51
  1. ;
  1. ;
  1. ;
  1. ;
  1. DEBUG(BDMRET,BDMSTR) ;-- debug
  1. D DEBUG^%Serenji("TAXCHK^BDMGUA(.BDMRET,.BDMSTR)")
  1. Q
  1. ;
  1. DELPT(BDMRET,BDMSTR) ;-- delete a patient/data from dms
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP")
  1. N P,BDMPAT,BDMGREF,BDMI,BDMX
  1. S P="|"
  1. S BDMPAT=$P(BDMSTR,P) ;patient
  1. S BDMREGE=$P(BDMSTR,P,2) ;register
  1. S BDMREG=$O(^ACM(41.1,"B",BDMREGE,0)) ;register ien
  1. S BDMGREF="^ACM(49)"
  1. S BDMX=0 F S BDMX=$O(@BDMGREF@("AC",BDMREG,BDMPAT,BDMX)) Q:'BDMX D
  1. . S DA=0 F S DA=$O(@BDMGREF@("AC",BDMREG,BDMPAT,BDMX,DA)) Q:'DA D
  1. .. S DIK="^ACM(49,"
  1. .. D ^DIK
  1. .. K DIK,DIC
  1. F BDMI=42,43,44,45,46,47,48,51,53,54,41 S BDMGREF="^ACM("_BDMI_")"
  1. S BDMX=0 F S BDMX=$O(@BDMGREF@("AC",BDMREG,BDMPAT,BDMX)) Q:'BDMX S DIK="^ACM("_BDMI_",",DA=^(BDMX) D
  1. . D ^DIK
  1. . K DIK,DIC,DA
  1. S DA=^ACM(41,"AC",BDMPAT,BDMREG),DIK="^ACM(41,"
  1. D ^DIK
  1. K DIK,DIC
  1. S BDMRET=""
  1. Q
  1. ;
  1. TAXCHKO(BDMRET) ;-- check taxonomies
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP")
  1. N BDMI,BDMJ,BDMDATA,BDMDA
  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 BDMJ=0
  1. S IOM=80
  1. D GUIR^XBLM("TAXCHK^BDMDA19","^XTMP(""BDMTAX"",$J)")
  1. S BDMDA=.5 F S BDMDA=$O(^XTMP("BDMTAX",$J,BDMDA)) Q:'BDMDA D
  1. . N BDMDATA
  1. . S BDMI=BDMI+1
  1. . S BDMDATA=$G(^XTMP("BDMTAX",$J,BDMDA))
  1. . S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. K ^XTMP("BDMTAX",$J)
  1. Q
  1. ;
  1. TAXCHK(RETVAL,BDMSTR) ;-- check taxonomies
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP")
  1. N BDMI,BDMJ,BDMDATA,BDMDA,BDMRTN,P
  1. S P="|"
  1. S BDMI=0
  1. S BDMERR=""
  1. S BDMRTN=$P(BDMSTR,P)
  1. K ^BDMTMP($J)
  1. S RETVAL="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00250DATA"_$C(30)
  1. S BDMJ=0
  1. S IOM=80
  1. D GUIR^XBLM("TAXCHK^"_BDMRTN,"^XTMP(""BDMTAX"",$J)")
  1. S BDMDA=.5 F S BDMDA=$O(^XTMP("BDMTAX",$J,BDMDA)) Q:'BDMDA D
  1. . N BDMDATA
  1. . S BDMI=BDMI+1
  1. . S BDMDATA=$G(^XTMP("BDMTAX",$J,BDMDA))
  1. . S ^BDMTMP($J,BDMI)=BDMDATA_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_BDMERR
  1. K ^XTMP("BDMTAX",$J)
  1. Q
  1. ;
  1. UPDTAX(BDMRET,BDMSTR) ;update taxonomies
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP")
  1. N P,BDMOPT,BDMI
  1. S P="|"
  1. S BDMI=0
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00080TAXONOMY NAME"_$C(30)
  1. S BDMOPT=$P(BDMSTR,P)
  1. I BDMOPT="Upd DM Audit P 05" D
  1. . D INIT^BDMP5TS
  1. I BDMOPT="Upd DM Audit 05" D
  1. . D INIT^BDMD5TS
  1. I BDMOPT="Upd DM Audit P 06" D
  1. . D INIT^BDMP6TS
  1. I BDMOPT="Upd DM Audit 06" D
  1. . D INIT^BDMD6TS
  1. I BDMOPT="Upd DM Audit P 07" D
  1. . D INIT^BDMP7TS
  1. I BDMOPT="Upd DM Audit 07" D
  1. . D INIT^BDMD7TS
  1. I BDMOPT="Upd DM Audit P 08" D
  1. . D INIT^BDMP8TS
  1. I BDMOPT="Upd DM Audit 08" D
  1. . D INIT^BDMD8TS
  1. I BDMOPT="Upd DM Audit P 09" D
  1. . D INIT^BDMP9TS
  1. I BDMOPT="Upd DM Audit 09" D
  1. . D INIT^BDMD9TS
  1. I BDMOPT="Upd DM Audit P 10" D
  1. . D INIT^BDMP0TS
  1. I BDMOPT="Upd DM Audit 10" D
  1. . D INIT^BDMD0TS
  1. I BDMOPT="Upd DM Audit P 11" D
  1. . D INIT^BDMP1TS
  1. I BDMOPT="Upd DM Audit 11" D
  1. . D INIT^BDMD1TS
  1. I BDMOPT="Upd DM Audit P 12" D
  1. . D INIT^BDMP4TS
  1. I BDMOPT="Upd DM Audit 12" D
  1. . D INIT^BDMD4TS
  1. I BDMOPT="Upd DM Audit P 13" D
  1. . D INIT^BDMPATS
  1. I BDMOPT="Upd DM Audit 13" D
  1. . D INIT^BDMDATS
  1. I BDMOPT="Upd DM Audit P 14" D
  1. . D INIT^BDMPBTS
  1. I BDMOPT="Upd DM Audit 14" D
  1. . D INIT^BDMDBTS
  1. I BDMOPT="Upd DM Audit P 15" D
  1. . D INIT^BDMPCTS
  1. I BDMOPT="Upd DM Audit 15" D
  1. . D INIT^BDMDCTS
  1. I BDMOPT="Upd DM Audit P 16" D
  1. . D INIT^BDMPDTS
  1. I BDMOPT="Upd DM Audit 16" D
  1. . D INIT^BDMDDTS
  1. I BDMOPT="Upd DM Audit P 17" D
  1. . D INIT^BDMPETS
  1. I BDMOPT="Upd DM Audit 17" D
  1. . D INIT^BDMDETS
  1. I BDMOPT="Upd DM Audit P 18" D
  1. . D INIT^BDMPFTS
  1. I BDMOPT="Upd DM Audit 18" D
  1. . D INIT^BDMDFTS
  1. I BDMOPT="Upd DM Audit P 19" D
  1. . D INIT^BDMPGTS
  1. I BDMOPT="Upd DM Audit 19" D
  1. . D INIT^BDMDGTS
  1. N BDMDA,BDMT
  1. S BDMDA=0 F S BDMDA=$O(BDMTAX("IDX",BDMDA)) Q:'BDMDA D
  1. . N BDMN,BDMFL,BDMRO,BDMFLT,BDMPAN
  1. . S BDMI=BDMI+1
  1. . S BDMT=$P($G(BDMTAX("IDX",BDMDA,BDMDA)),U)
  1. . S BDMTT=$P($G(BDMTAX("IDX",BDMDA,BDMDA)),U,2)
  1. . I BDMTT="T" D
  1. .. S BDMN=$P($G(^ATXAX(BDMT,0)),U)
  1. .. S BDMRO=$S($P($G(^ATXAX(BDMT,0)),U,22):"Read Only",1:"Editable")
  1. .. S BDMFL=$P($G(^ATXAX(BDMT,0)),U,15)
  1. .. S BDMFLT=$S(BDMFL=50:"Med",1:"Tax")
  1. . I BDMTT="L" D
  1. .. S BDMN=$P($G(^ATXLAB(BDMT,0)),U)
  1. .. S BDMPAN=$P($G(^ATXLAB(BDMT,0)),U,11)
  1. .. S BDMRO=$S($P($G(^ATXLAB(BDMT,0)),U,22):"Read Only",1:"Editable")
  1. .. S BDMFL=$P($G(^ATXLAB(BDMT,0)),U,9)
  1. .. S BDMFLT="Lab"
  1. . S ^BDMTMP($J,BDMI)=BDMN_"("_BDMRO_"/"_BDMFLT_"/"_BDMFL_"/"_$G(BDMPAN)_")"_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)
  1. Q
  1. ;
  1. CHTDATA(BDMRET,BDMSTR) ;-- get lab, bp or wt data for chart
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP")
  1. N P,BDMCTP,BDMBD,BDMED,BDMPIEN,BDMI,BDMPAT,BDMCHT,BDMINST,BDMLAB,BDMEL
  1. S P="|"
  1. S BDMCTP=$P(BDMSTR,P)
  1. S BDMBD=$P(BDMSTR,P,2)
  1. S BDMED=$P(BDMSTR,P,3)
  1. S BDMPIEN=$P(BDMSTR,P,4)
  1. S BDMINST=$P(BDMSTR,P,5)-1
  1. S BDMLAB=$P(BDMSTR,P,6)
  1. S BDMEL=$P(BDMSTR,P,7)
  1. S BDMPAT=$P($G(^DPT(BDMPIEN,0)),U)
  1. S BDMCHT=$$HRN^AUPNPAT(BDMPIEN,DUZ(2))
  1. S BDMI=0
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. D @BDMCTP^BDMGUA(BDMBD,BDMED,BDMPIEN,BDMPAT,BDMCHT,BDMINST,BDMLAB,BDMEL)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)
  1. Q
  1. ;
  1. WEIGHT(BD,ED,PIEN,PAT,CHT,INST,LAB,EL) ;-- get the chartable wts
  1. S ^BDMTMP($J,BDMI)="T00020Begin Date^T00020End Date^T00020Date^T00004Weight^T00030Patient^T00007Chart"_$C(30)
  1. N BDMDA,BDMEDA,BDMMST,BDMCNT
  1. S BDMCNT=0
  1. S BDMBDA=9999999-BD
  1. S BDMDA=9999999-ED
  1. S BDMMST=$O(^AUTTMSR("B","WT",0))
  1. F S BDMDA=$O(^AUPNVMSR("AA",PIEN,BDMMST,BDMDA)) Q:'BDMDA!(BDMDA>BDMBDA)!(BDMCNT>INST) D
  1. . Q:BDMCNT>INST
  1. . N BDMIEN,BDMVAL,BDMVDT
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUPNVMSR("AA",PIEN,BDMMST,BDMDA,BDMIEN)) Q:'BDMIEN D
  1. .. Q:BDMCNT>INST
  1. .. S BDMCNT=BDMCNT+1
  1. .. S BDMVAL=$P($G(^AUPNVMSR(BDMIEN,0)),U,4)
  1. .. S BDMVDT=9999999-BDMDA
  1. .. I $G(EL)="L" D Q
  1. ... S BDMI=BDMI+1
  1. ... S ^BDMTMP($J,BDMI)=$$FMTE^XLFDT(BD)_U_$$FMTE^XLFDT(ED)_U_$$FMTE^XLFDT(BDMVDT)_U_BDMVAL_U_PAT_U_CHT_$C(30)
  1. .. S ^TMP($J,"BDMGUI",BDMVDT,BDMIEN)=$$FMTE^XLFDT(BD)_U_$$FMTE^XLFDT(ED)_U_$$FMTE^XLFDT(BDMVDT)_U_BDMVAL_U_PAT_U_CHT
  1. Q:$G(EL)="L"
  1. N BDMTDA,BDMTIEM
  1. S BDMTDA=0 F S BDMTDA=$O(^TMP($J,"BDMGUI",BDMTDA)) Q:'BDMTDA D
  1. . S BDMTIEN=0 F S BDMTIEN=$O(^TMP($J,"BDMGUI",BDMTDA,BDMTIEN)) Q:'BDMTIEN D
  1. .. S BDMI=BDMI+1
  1. .. S ^BDMTMP($J,BDMI)=$G(^TMP($J,"BDMGUI",BDMTDA,BDMTIEN))_$C(30)
  1. K ^TMP($J,"BDMGUI")
  1. Q
  1. ;
  1. BP(BD,ED,PIEN,PAT,CHT,INST,LAB,EL) ;-- get the chartable bps
  1. S ^BDMTMP($J,BDMI)="T00020Begin Date^T00020End Date^T00020Date^T00004Systolic^T00004Diastolic^T00007Chart"_$C(30)
  1. N BDMDA,BDMEDA,BDMMST,BDMCNT
  1. S BDMCNT=0
  1. S BDMBDA=9999999-BD
  1. S BDMDA=9999999-ED
  1. S BDMMST=$O(^AUTTMSR("B","BP",0))
  1. F S BDMDA=$O(^AUPNVMSR("AA",PIEN,BDMMST,BDMDA)) Q:'BDMDA!(BDMDA>BDMBDA)!(BDMCNT>INST) D
  1. . Q:BDMCNT>INST
  1. . N BDMIEN
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUPNVMSR("AA",PIEN,BDMMST,BDMDA,BDMIEN)) Q:'BDMIEN D
  1. .. N BDMVAL,BDMVDT,BDMSYS,BDMDIA
  1. .. Q:BDMCNT>INST
  1. .. S BDMCNT=BDMCNT+1
  1. .. S BDMVAL=$P($G(^AUPNVMSR(BDMIEN,0)),U,4)
  1. .. S BDMSYS=$P(BDMVAL,"/")
  1. .. S BDMDIA=$P(BDMVAL,"/",2)
  1. .. S BDMVDT=9999999-BDMDA
  1. .. I $G(EL)="L" D Q
  1. ... S BDMI=BDMI+1
  1. ... S ^BDMTMP($J,BDMI)=$$FMTE^XLFDT(BD)_U_$$FMTE^XLFDT(ED)_U_$$FMTE^XLFDT(BDMVDT)_U_BDMSYS_U_BDMDIA_U_CHT_$C(30)
  1. .. S ^TMP($J,"BDMGUI",BDMVDT,BDMIEN)=$$FMTE^XLFDT(BD)_U_$$FMTE^XLFDT(ED)_U_$$FMTE^XLFDT(BDMVDT)_U_BDMSYS_U_BDMDIA_U_CHT
  1. N BDMTDA,BDMTIEM
  1. S BDMTDA=0 F S BDMTDA=$O(^TMP($J,"BDMGUI",BDMTDA)) Q:'BDMTDA D
  1. . S BDMTIEN=0 F S BDMTIEN=$O(^TMP($J,"BDMGUI",BDMTDA,BDMTIEN)) Q:'BDMTIEN D
  1. .. S BDMI=BDMI+1
  1. .. S ^BDMTMP($J,BDMI)=$G(^TMP($J,"BDMGUI",BDMTDA,BDMTIEN))_$C(30)
  1. K ^TMP($J,"BDMGUI")
  1. Q
  1. ;
  1. LAB(BD,ED,PIEN,PAT,CHT,INST,LAB,EL) ;-- get the chartable labs
  1. S ^BDMTMP($J,BDMI)="T00020Begin Date^T00020End Date^T00020Date^T00004Lab Value^T00030Abnormal^T00007Chart"_$C(30)
  1. N BDMDA,BDMEDA,BDMCNT
  1. S BDMCNT=0
  1. S BDMBDA=9999999-BD
  1. S BDMDA=9999999-ED
  1. F S BDMDA=$O(^AUPNVLAB("AA",PIEN,LAB,BDMDA)) Q:'BDMDA!(BDMDA>BDMBDA)!(BDMCNT>INST) D
  1. . Q:BDMCNT>INST
  1. . N BDMIEN
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUPNVLAB("AA",PIEN,LAB,BDMDA,BDMIEN)) Q:'BDMIEN D
  1. .. N BDMVAL,BDMABN,BDMVDT
  1. .. Q:BDMCNT>INST
  1. .. S BDMCNT=BDMCNT+1
  1. .. S BDMVAL=$P($G(^AUPNVLAB(BDMIEN,0)),U,4)
  1. .. S BDMABN=$P($G(^AUPNVLAB(BDMIEN,0)),U,5)
  1. .. S BDMVDT=9999999-BDMDA
  1. .. I $G(EL)="L" D Q
  1. ... S BDMI=BDMI+1
  1. ... S ^BDMTMP($J,BDMI)=$$FMTE^XLFDT(BD)_U_$$FMTE^XLFDT(ED)_U_$$FMTE^XLFDT(BDMVDT)_U_BDMVAL_U_BDMABN_U_CHT_$C(30)
  1. .. S ^TMP($J,"BDMGUI",BDMVDT,BDMIEN)=$$FMTE^XLFDT(BD)_U_$$FMTE^XLFDT(ED)_U_$$FMTE^XLFDT(BDMVDT)_U_BDMVAL_U_BDMABN_U_CHT
  1. N BDMTDA,BDMTIEM
  1. S BDMTDA=0 F S BDMTDA=$O(^TMP($J,"BDMGUI",BDMTDA)) Q:'BDMTDA D
  1. . S BDMTIEN=0 F S BDMTIEN=$O(^TMP($J,"BDMGUI",BDMTDA,BDMTIEN)) Q:'BDMTIEN D
  1. .. S BDMI=BDMI+1
  1. .. S ^BDMTMP($J,BDMI)=$G(^TMP($J,"BDMGUI",BDMTDA,BDMTIEN))_$C(30)
  1. K ^TMP($J,"BDMGUI")
  1. Q
  1. ;
  1. ASTMP(BDMRET,BDMSTR) ;-- add entries search template
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP")
  1. N P,BDMRGE,BDMST,BDMRG,BDMGLB,BDMU,BDMTRNE,BDMTRN
  1. S P="|"
  1. K ^BDMTMP($J)
  1. S BDMRGE=$P(BDMSTR,P)
  1. S BDMRG=$O(^ACM(41.1,"B",BDMRGE,0))
  1. S BDMTRNE=$P(BDMSTR,P,2)
  1. S BDMTRN=$O(^DIBT("B",BDMTRNE,0))
  1. S $P(^ACM(41.1,BDMRG,0),U,9)=1
  1. S BDMGLB="^DIBT("_BDMTRN_",1)"
  1. S BDMU=0 F S BDMU=$O(@BDMGLB@(BDMU)) Q:BDMU="" D
  1. . I '$D(^ACM(41,"AC",BDMU,BDMRG)) D
  1. .. S:$P(^ACM(41.1,BDMRG,0),U,9)="" $P(^(0),U,9)=1
  1. .. D REGADD^BDMGE(.BDMRET,BDMRGE_"|"_BDMU)
  1. S $P(^ACM(41.1,BDMRG,0),U,9)=""
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,0)="T00050RETURN"_$C(30)
  1. S ^BDMTMP($J,1)="Patients Added Successfully"_$C(30)
  1. S ^BDMTMP($J,2)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. DELRPT(RETVAL,BDMSTR) ;-- delete a report
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP")
  1. N P,R,I
  1. S P="|",R="~"
  1. S BDMERR=""
  1. K ^BDMTMP($J)
  1. S RETVAL="^BDMTMP("_$J_")"
  1. F I=2:1 D Q:$P(BDMSTR,R,I)=""
  1. . N BDMI,BDMDA
  1. . Q:$P(BDMSTR,R,I)=""
  1. . S BDMI=$P(BDMSTR,R,I)
  1. . S BDMDA=$E(BDMI,2,9)
  1. . I $E(BDMI,1,1)="A" D
  1. .. S DIK="^BDMGUI(",DA=BDMDA D ^DIK
  1. . I $E(BDMI,1,1)="B" D
  1. .. S DIK="^BDMGUI(",DA=BDMDA D ^DIK
  1. S ^BDMTMP($J,0)="T00250DATA"_$C(30)
  1. S ^BDMTMP($J,1)=$G(BDMERR)_$C(30)
  1. S ^BDMTMP($J,2)=$C(31)_BDMERR
  1. Q
  1. ;
  1. PRB(BDMRET,BDMSTR) ;-- return a list of problems
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP")
  1. N BDMDA,BDMI,BDMERR,BDMDATA,BDMPAT,BDMPIEN,P,BDMDX,BDMDLM,BDMCL,BDMNAR,BDMFAC,BDMNMBR,BDMDE,BDMST,BDMON,BDMULM,BDMENT,BDMUENT
  1. N BDMOEN,BDMFACA,BDMFACE,BDMFAC,BDMPOVD,BDMDEL
  1. S P="|"
  1. S BDMPAT=$P(BDMSTR,P)
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00035NMBR^T00010DIAGNOSISIEN^T00010DIAGNOSIS^T00020DLM^T00025CLASS^T00080NARRATIVE^T00020ENT^T00010STATUS^T00020ONSET^T00030ULM^T00030ENTER^T00003NOTES^T00008IEN^T00050FACILITY"_$C(30)
  1. S DFN=BDMPAT
  1. D GETPLDX^BDMVRL8
  1. S BDMOEN=0 F S BDMOEN=$O(BDMPLDX(BDMOEN)) Q:'BDMOEN D
  1. . S BDMDATA=$G(^AUPNPROB(BDMOEN,0))
  1. . S BDMPOVD=$E($G(^ICD9($P(BDMDATA,U),1)),1,70)
  1. . S BDMDXI=$P(BDMDATA,U)
  1. . S BDMDX=$$GET1^DIQ(9000011,BDMOEN,.01)
  1. . S BDMDLM=$$FMTE^XLFDT($P(BDMDATA,U,3))
  1. . S BDMCL=$S($$GET1^DIQ(9000011,BDMOEN,.04,"I")]"":$$GET1^DIQ(9000011,BDMOEN,.04,"I")_"-"_$$GET1^DIQ(9000011,BDMOEN,.04),1:"")
  1. . S BDMNAR=$TR($$GET1^DIQ(9000011,BDMOEN,.05),"|","")
  1. . S BDMFAC=$P(BDMDATA,U,6)
  1. . I BDMFAC S BDMFACE=$P($G(^DIC(4,BDMFAC,0)),U)
  1. . I BDMFAC S BDMFACA=$P($G(^AUTTLOC(BDMFAC,0)),U,7)
  1. . I BDMFAC S BDMFACS=$P($G(^AUTTLOC(BDMFAC,0)),U,10)
  1. . S BDMNMBR=$P(BDMDATA,U,7)
  1. . S BDMENT=$$FMTE^XLFDT($P(BDMDATA,U,8))
  1. . S BDMST=$$GET1^DIQ(9000011,BDMOEN,.12)
  1. . S BDMON=$$FMTE^XLFDT($P(BDMDATA,U,13))
  1. . S BDMULM=$$GET1^DIQ(9000011,BDMOEN,.14)
  1. . S BDMUENT=$$GET1^DIQ(9000011,BDMOEN,1.03)
  1. . S BDMNOTES=$S($P($G(^AUPNPROB(BDMOEN,11,0)),U,4):"Yes",1:"No")
  1. . S BDMI=BDMI+1
  1. . S ^BDMTMP($J,BDMI)=$G(BDMFACA)_BDMNMBR_U_BDMDXI_U_BDMDX_U_BDMDLM_U_BDMCL_U_BDMNAR_U_BDMENT_U_BDMON_U_BDMST_U_BDMULM_U_BDMUENT_U_BDMNOTES_U_BDMOEN_U_$G(BDMFAC)_"~"_$G(BDMFACS)_"-"_$G(BDMFACE)_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. NOTES(BDMRET,BDMSTR) ;-- get pl notes
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP")
  1. N P,BDMDA,BDMIEN,BDMI
  1. S P="|"
  1. S BDMPIEN=$P(BDMSTR,P)
  1. K ^BDMTMP($J)
  1. S BDMRET="^BDMTMP("_$J_")"
  1. S BDMI=0
  1. S BDMERR=""
  1. S ^BDMTMP($J,BDMI)="T00040FAC^T00080NOTE^T00001STATUS^T00007NOTEFAC^T00007NOTEIEN^T00030NOTEDATE"_$C(30)
  1. S BDMDA=0 F S BDMDA=$O(^AUPNPROB(BDMPIEN,11,BDMDA)) Q:'BDMDA D
  1. . N BDMFAC,BDMFACA,BDMFACE
  1. . S BDMFAC=$P($G(^AUPNPROB(BDMPIEN,11,BDMDA,0)),U)
  1. . I BDMFAC S BDMFACE=$P($G(^DIC(4,BDMFAC,0)),U)
  1. . I BDMFAC S BDMFACA=$P($G(^AUTTLOC(BDMFAC,0)),U,7)
  1. . S BDMIEN=0 F S BDMIEN=$O(^AUPNPROB(BDMPIEN,11,BDMDA,11,BDMIEN)) Q:'BDMIEN D
  1. .. N BDMDATA,BDMNBMR,BDMNNAR,BDMST,BDMNDT
  1. .. S BDMDATA=$G(^AUPNPROB(BDMPIEN,11,BDMDA,11,BDMIEN,0))
  1. .. S BDMNMBR=$P(BDMDATA,U)
  1. .. S BDMNNAR=$P(BDMDATA,U,3)
  1. .. S BDMST=$P(BDMDATA,U,4)
  1. .. S BDMNDT=$$FMTE^XLFDT($P(BDMDATA,U,5))
  1. .. S BDMI=BDMI+1
  1. .. S ^BDMTMP($J,BDMI)=$G(BDMFACA)_BDMNMBR_U_BDMNNAR_U_$G(BDMNDT)_U_BDMST_U_BDMDA_U_BDMIEN_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)_$G(BDMERR)
  1. Q
  1. ;
  1. ADDPRB(BDMRET,BDMSTR) ;-- add a problem
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP")
  1. N P,BDMPAT,BDMDX,BDMDLM,BDMCL,BDMNAR,BDMFAC,BDMDE,BDMST,BDMON
  1. S P="|"
  1. S BDMPAT=$P(BDMSTR,P)
  1. S BDMDX=$TR($P(BDMSTR,P,2)," ")
  1. I $G(BDMDX) S BDMDX="`"_BDMDX
  1. S BDMDLM=$P(BDMSTR,P,3)
  1. S BDMCL=$P(BDMSTR,P,4)
  1. S BDMNAR=$P(BDMSTR,P,5)
  1. S BDMFAC=$P($P(BDMSTR,P,6),"-")
  1. I $G(BDMFAC)'?.N S BDMFAC=$O(^AUTTLOC("C",BDMFAC,0))
  1. S BDMST=$P(BDMSTR,P,7)
  1. S BDMON=$P(BDMSTR,P,8)
  1. S BDMRET=$$ADDPROB^BDMPROB(BDMDX,BDMPAT,BDMDLM,BDMCL,BDMNAR,BDMFAC,"",BDMST,BDMON)
  1. Q
  1. ;
  1. DELPR(BDMRET,BDMSTR) ;-- delete a problem
  1. S X="MERR^BDMGU",@^%ZOSF("TRAP")
  1. S R="~"
  1. N BDMIEN,BDMREA,BDMOTH
  1. S BDMIEN=$P(BDMSTR,R)
  1. S BDMREA=$P(BDMSTR,R,2)
  1. S BDMOTH=$P(BDMSTR,R,3)
  1. S BDMRET=$$DELPROB^BDMPROB(BDMIEN,BDMREA,BDMOTH)
  1. Q
  1. ;
  1. VC(RETVAL,BDMSTR) ;-- get version number
  1. N P
  1. S P="|"
  1. K ^BDMTMP($J)
  1. N BDMVER,BDMVERI,BDMVERIN,BDMPKG,BDMI,BDMPTCH,BDMPTCHI,BDMVERI
  1. S BDMI=0
  1. S BDMVERIN=$P(BDMSTR,P)
  1. S BDMVERIN=$TR(BDMVERIN,".")
  1. S RETVAL="^BDMTMP("_$J_")"
  1. S ^BDMTMP($J,BDMI)="T00001VersionPresent"_$C(30)
  1. S BDMI=BDMI+1
  1. S BDMPKG=$O(^DIC(9.4,"C","BDM",0))
  1. I '$G(BDMPKG) D Q
  1. . S ^BDMTMP($J,BDMI)=0_$C(30)
  1. . S ^BDMTMP($J,BDMI+1)=$C(31)
  1. S BDMVER=$G(^DIC(9.4,BDMPKG,"VERSION"))
  1. S BDMVERI=$O(^DIC(9.4,BDMPKG,22,"B",BDMVER,0))
  1. S BDMPTCH=$O(^DIC(9.4,BDMPKG,22,BDMVERI,"PAH","B",""),-1)
  1. I ($TR(BDMVER,".")_BDMPTCH)=BDMVERIN D Q
  1. . S ^BDMTMP($J,BDMI)=1_$C(30)
  1. . S ^BDMTMP($J,BDMI+1)=$C(31)
  1. S ^BDMTMP($J,BDMI)=0_$C(30)
  1. S ^BDMTMP($J,BDMI+1)=$C(31)
  1. Q