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

BQIRGDMA.m

Go to the documentation of this file.
  1. BQIRGDMA ;VNGT/HS/ALA-Set up Diabetes Audit fields ; 17 Feb 2016 2:46 PM
  1. ;;2.6;ICARE MANAGEMENT SYSTEM;;Jul 07, 2017;Build 72
  1. ;
  1. EN ;EP - Update Diabetes Audit when new one comes in
  1. NEW PRVY,DMN,YR,NYRN,NYR,BQIGDA,BQIN1,BQIN2,DVY
  1. S PRVY=$P($G(^BQI(90508,1,"DM")),U,1)
  1. I PRVY'="" S NYR=PRVY+1
  1. I PRVY="" S DVY=$P($$FMTE^XLFDT(DT,7),"/",1) D
  1. . I '$D(^BDMDMTX("B",DVY)) S NYR=DVY-1 Q
  1. . I $D(^BDMDMTX("B",DVY)) S NYR=DVY
  1. ;
  1. S NYRN=$O(^BDMDMTX("B",NYR,"")) I NYRN="" Q
  1. S BQIN1=$P(^BDMDMTX(NYRN,0),U,2),BQIN2=$P(^(0),U,3)
  1. I PRVY'=NYR D
  1. . S BQIDA=1
  1. . NEW DA,IENS,DIC
  1. . S DA(1)=BQIDA,X=NYR,DIC(0)="LMNZ",DIC="^BQI(90508,"_DA(1)_",21,"
  1. . D ^DIC
  1. . I +Y<1 Q
  1. . S BQIGDA=+Y
  1. . S DA=BQIGDA,IENS=$$IENS^DILF(.DA)
  1. . S BQIUPD(90508.021,IENS,.02)=BQIN1
  1. . S BQIUPD(90508.021,IENS,.03)=BQIN2
  1. . S BQIUPD(90508.021,IENS,.04)="BDMDM"_$E(NYR,3,4)
  1. . S BQIUPD(90508,BQIDA_",",21.01)=NYR
  1. . D FILE^DIE("","BQIUPD","ERROR")
  1. . D TAX(NYR)
  1. . ;
  1. . D AU
  1. . ;
  1. . D JBDM^BQITASK2
  1. Q
  1. ;
  1. AU ; Update Dm Audit in 90506.5
  1. NEW BDMN,CODE,EXEC,IEN,BDMDATA,IEN,BQIUPD,TBDMN,TEXT
  1. S IEN=""
  1. F S IEN=$O(^BQI(90506.1,"AC","DM",IEN)) Q:IEN="" D
  1. . S BQIUPD(90506.1,IEN_",",.1)=1
  1. . I $P(^BQI(90506.1,IEN,0),U,11)="" S BQIUPD(90506.1,IEN_",",.11)=DT
  1. D FILE^DIE("","BQIUPD","ERROR")
  1. K BQIUPD
  1. ;
  1. S BDMN=0
  1. F S BDMN=$O(^BDMDMTX(NYRN,11,BDMN)) Q:'BDMN D
  1. . S BDMDATA=$G(^BDMDMTX(NYRN,11,BDMN,1)) I BDMDATA="" Q
  1. . I $P(BDMDATA,U,4)="" Q
  1. . S CODE="DM_"_$P(BDMDATA,U,4),EXEC=$TR($P(BDMDATA,U,3),"~","^")
  1. . I CODE="DM_COMB",EXEC["COMBINEE" S EXEC="$$COMBINED^BDMDD1C(BDMPD)"
  1. . I CODE="DM_HDL",EXEC["$$LDL" D
  1. .. I NYR=2016 S EXEC="$$HDL^BDMDD18(BDMPD,BDMBDAT,BDMADAT)"
  1. .. I NYR=2015 S EXEC="$$HDL^BDMDC18(BDMPD,BDMBDAT,BDMADAT)"
  1. . S HDR="T00030"_CODE,NSOURCE="DM Audit",NCLIN="",NCAT=$P(BDMDATA,U,2)
  1. . S ORD=$P(^BDMDMTX(NYRN,11,BDMN,0),"^",3)
  1. . I ORD="" D
  1. .. F I=1:1:12 S TEXT=$P($T(THER+I),";;",2) Q:TEXT="" D
  1. ... S TBDMN=$O(^BDMDMTX(NYRN,11,"B","DM THERAPY","")) I TBDMN="" S TBDMN=$O(^BDMDMTX(NYRN,11,"B","DIABETES THERAPY","")) I TBDMN="" Q
  1. ... I CODE=TEXT S ORD=$P(^BDMDMTX(NYRN,11,TBDMN,0),"^",3)
  1. . S TEXT=$P(BDMDATA,U,1)
  1. . I CODE="DM_TBTEST" S TEXT="TB Test Done"
  1. . NEW DA,X,DIC,DLAYGO
  1. . S DIC="^BQI(90506.1,",DIC(0)="L",X=CODE
  1. . S DA=$O(^BQI(90506.1,"B",CODE,""))
  1. . ;I DA'="" S ORD=$O(^BQI(90506.1,"AD","DM",""),-1)+1
  1. . I DA="" D Q:$G(ERROR)=1
  1. .. K DO,DD D FILE^DICN
  1. .. S DA=+Y I DA=-1 S ERROR=1
  1. .. ;S ORD=$O(^BQI(90506.1,"AD","DM",""),-1)+1
  1. . S BQIUPD(90506.1,DA_",",.03)=TEXT
  1. . S BQIUPD(90506.1,DA_",",.08)=HDR
  1. . S BQIUPD(90506.1,DA_",",.15)=120
  1. . S BQIUPD(90506.1,DA_",",.1)="@"
  1. . S BQIUPD(90506.1,DA_",",.11)="@"
  1. . D FILE^DIE("","BQIUPD","ERROR")
  1. . ;
  1. . S BQIUPD(90506.1,DA_",",3.01)=NSOURCE
  1. . S BQIUPD(90506.1,DA_",",3.02)=NCLIN
  1. . S BQIUPD(90506.1,DA_",",3.03)=NCAT
  1. . S BQIUPD(90506.1,DA_",",3.04)="Default"
  1. . S BQIUPD(90506.1,DA_",",3.05)=ORD
  1. . S BQIUPD(90506.1,DA_",",1)="S VAL=$$DSP^BQIRGDMA(DFN,STVW)"
  1. . ;S BQIUPD(90506.1,DA_",",5)="S VAL=$$AUD^BQIRGDMA("_EXEC_")"
  1. . S BQIUPD(90506.1,DA_",",5)="S VAL="_EXEC
  1. . D FILE^DIE("E","BQIUPD","ERROR")
  1. . K BQIUPD
  1. . S HELP(1)="Diabetes Audit "_NYR_" for "_TEXT_"."
  1. . D WP^DIE(90506.1,DA_",",4,"","HELP","ERROR")
  1. . K HELP
  1. Q
  1. ;
  1. TAX(YEAR) ; Set up Taxonomies for Diabetes Register
  1. NEW TXN,RGN,IEN,VALUE,TAX,FILE,SITE,TAX,BQIUPD
  1. S TXN=$O(^BDMTAXS("B",YEAR,"")) I TXN="" Q
  1. S RGN=$O(^BQI(90507,"B","DIABETES","")) I RGN="" Q
  1. S IEN=0
  1. F S IEN=$O(^BDMTAXS(TXN,11,IEN)) Q:'IEN D
  1. . S VALUE=^BDMTAXS(TXN,11,IEN,0)
  1. . S TAX=$P(VALUE,U,1),FILE=$P(VALUE,U,2),SITE=$P(VALUE,U,3)
  1. . NEW DA,DIC,IENS,GLB,TAXN,TXDN,CN,CAT,ID
  1. . S DA(1)=RGN,DIC(0)="LNZ",DLAYGO=90507.01,DIC="^BQI(90507,"_DA(1)_",10,"
  1. . I $G(^BQI(90507,DA(1),10,0))="" S ^BQI(90507,DA(1),10,0)="^90507.01^^"
  1. . S X=TAX
  1. . D ^DIC
  1. . I +Y=-1 K DO,DD D FILE^DICN
  1. . S DA=+Y,IENS=$$IENS^DILF(.DA)
  1. . S BQIUPD(90507.01,IENS,.04)=$S(SITE=1:1,1:"")
  1. . S GLB=$S(FILE=60:"^ATXLAB",1:"^ATXAX")
  1. . S TAXN=$O(@GLB@("B",TAX,"")) I TAXN="" Q
  1. . S TXDN=$O(^BQI(90508.4,"B",FILE,"")) I TXDN="" Q
  1. . S CN=$P(^BQI(90508.4,TXDN,0),U,2)
  1. . I $G(CN)'="" S CAT=$P(^BQI(90508.3,CN,0),U,1),ID=$P(^BQI(90508.3,CN,0),U,2)
  1. . I CAT="" S CAT="OTHER",ID="OTHER"
  1. . S BQIUPD(90507.01,IENS,.03)=CAT
  1. . S BQIUPD(90507.01,IENS,.02)=TAXN_";"_$P(GLB,U,2)_"("
  1. . S BQIUPD(90507.01,IENS,.05)=$$STCC^BQIUL2(90507.01,.05,ID)
  1. . D FILE^DIE("","BQIUPD","ERROR")
  1. Q
  1. ;
  1. AUD(EVAL) ;EP - Execute DM Audit executable
  1. ;NEW BDMPD,BDMRBD,BDMRED,BDMBDAT,BDMADAT,BDMDMRG,BDM6MBD
  1. S RESULT=0
  1. I EVAL="" D
  1. . S EVAL=$P(EXEC,"(",2,99)
  1. . S EVAL=$P(EVAL,")",1)
  1. . S EVAL=EVAL_")"
  1. ;S EVAL="S RES="_$TR(EVAL,"~","^")
  1. S BDMPD=DFN,BDMADAT=DT,BDMDMRG=$P($G(^BQI(90508,1,"DM")),U,2)
  1. S BDM6MBD=$$FMADD^XLFDT(BDMADAT,-(6*31))
  1. S BDMBDAT=$$FMADD^XLFDT(BDMADAT,-365),BDMRBD=$$FMTE^XLFDT(BDMBDAT),BDMRED=$$FMTE^XLFDT(BDMADAT)
  1. S EVAL="S RES="_EVAL
  1. X EVAL
  1. I RES'="" S RESULT=1_U_RES
  1. Q RESULT
  1. ;
  1. GLS(DATA,FAKE) ;EP - BQI GET DM AUDIT GLOSSARY
  1. NEW UID,II,TRIEN,CAT,TIT,SORT,RMK,REMARK,CT,NXT,GLIEN,IEN
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIRGDMGLS",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIRGPG D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T32767REPORT_TEXT"_$C(30)
  1. S PRVY=$P($G(^BQI(90508,1,"DM")),U,1)
  1. S NYRN=$O(^BDMDMTX("B",PRVY,"")) I NYRN="" G DONE
  1. S IEN=0
  1. F S IEN=$O(^BDMDMTX(NYRN,11,IEN)) Q:'IEN D
  1. . S II=II+1,@DATA@(II)=$P(^BDMDMTX(NYRN,11,IEN,0),U,1)_$C(10)_$C(13)
  1. . ;S II=II+1,@DATA@(II)=" "_$C(10)_$C(13)
  1. . S GLIEN=0
  1. . F S GLIEN=$O(^BDMDMTX(NYRN,11,IEN,11,GLIEN)) Q:'GLIEN D
  1. .. S II=II+1,@DATA@(II)=" "_$G(^BDMDMTX(NYRN,11,IEN,11,GLIEN,0))_$C(10)_$C(13)
  1. . S II=II+1,@DATA@(II)=" "_$C(10)_$C(13)
  1. I II>0 S @DATA@(II)=@DATA@(II)_$C(30)
  1. ;
  1. DONE S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. DSP(RGDFN,RGSTVW) ;EP = Display Audit information
  1. NEW VALUE,RESULT,RGPIEN,CRIEN,CMSN,LINK
  1. S CODE=$P($G(^BQI(90506.1,RGSTVW,0)),U,1) I CODE="" Q ""
  1. ;S RGSTVW=$O(^BQI(90506.1,"B",CODE,"")) I RGSTVW="" Q ""
  1. I $P(^BQI(90506.1,RGSTVW,0),"^",10)=1 Q ""
  1. S CMSN=$P($G(^BQI(90506.1,RGSTVW,3)),U,1) I CMSN="" Q ""
  1. S CRIEN=$O(^BQIPAT(RGDFN,60,"B",CMSN,"")) I CRIEN="" Q ""
  1. S RGPIEN="",VALUE="",HOVER="",LINK="",RESULT=""
  1. F S RGPIEN=$O(^BQIPAT(RGDFN,60,CRIEN,1,"B",CODE,RGPIEN)) Q:RGPIEN="" D
  1. . S VALUE=$P($G(^BQIPAT(RGDFN,60,CRIEN,1,RGPIEN,0)),U,2)
  1. . S HOVER=$P($G(^BQIPAT(RGDFN,60,CRIEN,1,RGPIEN,0)),U,5)
  1. . S LINK=$P($G(^BQIPAT(RGDFN,60,CRIEN,1,RGPIEN,0)),U,4)
  1. I VALUE'="" D
  1. . I $L(VALUE," ")=2 S VALUE=$$UP^XLFSTR($P(VALUE," ",2)) Q
  1. . ;I $L(VALUE," ")=2 S VALUE=$$UP^XLFSTR($P(VALUE," ",2)) Q
  1. . I $P(VALUE," ",1)=1!($P(VALUE," ",1)=2)!($P(VALUE," ",1)=3) S VALUE=$P(VALUE," ",2,99) Q
  1. . I VALUE?.7N,$$FMTE^BQIUL1(VALUE)'="" S VALUE=$$FMTE^XLFDT(VALUE,"5Z") Q
  1. . Q
  1. I VALUE'="",HOVER'="" S RESULT=VALUE_$C(26)_HOVER_$C(26)_LINK
  1. E S RESULT=VALUE
  1. Q RESULT
  1. ;
  1. THER ;EP - Therapy who don't have an order
  1. ;;DM_INSU
  1. ;;DM_SULF
  1. ;;DM_SULFL
  1. ;;DM_METFOR
  1. ;;DM_ACAR
  1. ;;DM_PIOG
  1. ;;DM_DPP4
  1. ;;DM_AMYL
  1. ;;DM_GLP
  1. ;;DM_BROMO
  1. ;;DM_COLES
  1. ;;DM_SGLT2