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

BQITRPRT.m

Go to the documentation of this file.
  1. BQITRPRT ;PRXM/HC/ALA-Get Treatment Prompts for a Patient ; 18 May 2007 12:05 PM
  1. ;;2.5;ICARE MANAGEMENT SYSTEM;**1**;May 24, 2016;Build 17
  1. ;
  1. EN(DATA,DFN,NUM) ;EP -- BQI PATIENT TRMT PROMPTS
  1. ; Input
  1. ; DFN - Patient internal entry number
  1. ;
  1. NEW DXCAT,DOD,DXFND,UID,II,CT,TRIEN,TIT,RMK,REMARK,DTLUP,CAT,DXCAT,PRI,ORD,LPRI
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQITRPRT",UID))
  1. K @DATA
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQITRPRT D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S NUM=$G(NUM,"")
  1. S @DATA@(II)="T00030CATEGORY^T00030PROMPT^D00030DATE_LAST_UPDATED^T01024REMARK^I00003DISPLAY_ORDER"_$C(30)
  1. ;
  1. ;Do not display for deceased patients
  1. S DOD=$$GET1^DIQ(2,DFN_",",.351,"I") I DOD]"" S II=II+1,@DATA@(II)=$C(31) Q
  1. ;
  1. S TRIEN=0,CT=0,CAT="CVD-RELATED",DTLUP=$$GET1^DIQ(90507.5,DFN_",",.07,"I")
  1. ;
  1. ;Pull CVD-RELATED entries from ^BQIPAT
  1. ;
  1. F S TRIEN=$O(^BQIPAT(DFN,50,TRIEN)) Q:'TRIEN D
  1. . S PRI=$$GET1^DIQ(90508.5,TRIEN_",",.03,"I") Q:PRI=""
  1. . S DXCAT=$$GET1^DIQ(90508.5,TRIEN_",",.02,"E") Q:DXCAT=""
  1. . S TIT=$$GET1^DIQ(90508.5,TRIEN_",",.01,"E")
  1. . S RMK=0,REMARK=""
  1. . F S RMK=$O(^BQIPAT(DFN,50,TRIEN,1,RMK)) Q:'RMK D
  1. .. S REMARK=REMARK_^BQIPAT(DFN,50,TRIEN,1,RMK,0)_" "
  1. . S ORD(CAT,DXCAT,PRI)=CAT_U_TIT_U_$$FMTE^BQIUL1(DTLUP)_U_REMARK_U_PRI_$C(30)
  1. ;
  1. ; Check for other Treatment Prompts (note - there may be additional CVD-RELATED entries)
  1. ;
  1. I $T(GVTP^APCHSMU)'="" D
  1. . S TRIEN=0,DTLUP="",PRI=0
  1. . F S TRIEN=$O(^APCHSURV(TRIEN)) Q:'TRIEN D
  1. .. N ARRAY
  1. .. I $P(^APCHSURV(TRIEN,0),U,7)'="T" Q
  1. .. I $P(^APCHSURV(TRIEN,0),U,2)["BQITRASM" D VAR^BQIRMDR1
  1. .. D GVTP^APCHSMU(DFN,TRIEN,80,.ARRAY)
  1. .. I $P($G(ARRAY(0)),U)'=1 Q
  1. .. S CAT=$$GET1^DIQ(9001018,TRIEN_",",.05,"E")
  1. .. S DXCAT="",LPRI=$G(LPRI)+1
  1. .. S TIT=$$GET1^DIQ(9001018,TRIEN_",",.01,"E")
  1. .. S DXCAT=$$GET1^DIQ(9001018,TRIEN_",",.05,"E") Q:DXCAT=""
  1. .. S RMK=0,REMARK=""
  1. .. F S RMK=$O(ARRAY(RMK)) Q:RMK="" D
  1. ... S REMARK=REMARK_ARRAY(RMK)_" "
  1. .. S PRI=PRI+1
  1. .. S ORD(CAT,DXCAT,PRI)=CAT_U_TIT_U_$$FMTE^BQIUL1(DTLUP)_U_REMARK_U
  1. ;
  1. ;Process CVD-RELATED entries
  1. S CAT="CVD-RELATED",LPRI=0
  1. I $D(ORD(CAT)) D
  1. . S DXFND="",CT=0
  1. . F DXCAT="CVD-RELATED" D
  1. .. S PRI="" F S PRI=$O(ORD(CAT,DXCAT,PRI)) Q:PRI="" D
  1. ... S CT=CT+1 I NUM'="",CT>NUM Q
  1. ... S LPRI=$S(PRI>LPRI:PRI,1:LPRI)
  1. ... I $E(ORD(CAT,DXCAT,PRI),$L(ORD(CAT,DXCAT,PRI)))'=$C(30) S ORD(CAT,DXCAT,PRI)=ORD(CAT,DXCAT,PRI)_$C(30)
  1. ... S II=II+1,@DATA@(II)=ORD(CAT,DXCAT,PRI)
  1. . ;F DXCAT="CVD Known","CVD Highest Risk","CVD Significant Risk","CVD At Risk" D Q:DXFND
  1. . F DXCAT="ASCVD Known","ASCVD At Risk" D Q:DXFND
  1. .. S PRI="" F S PRI=$O(ORD(CAT,DXCAT,PRI)) Q:PRI="" D
  1. ... S CT=CT+1 I NUM'="",CT>NUM Q
  1. ... S LPRI=$S(PRI>LPRI:PRI,1:LPRI)
  1. ... S DXFND=1 ;Found an entry for this ASSOCIATED DX TAG
  1. ... I $E(ORD(CAT,DXCAT,PRI),$L(ORD(CAT,DXCAT,PRI)))'=$C(30) S ORD(CAT,DXCAT,PRI)=ORD(CAT,DXCAT,PRI)_$C(30)
  1. ... S II=II+1,@DATA@(II)=ORD(CAT,DXCAT,PRI)
  1. . K ORD(CAT)
  1. ;
  1. ;Process other CAT entries
  1. S CAT="" F S CAT=$O(ORD(CAT)) Q:CAT="" D
  1. . S DXCAT="",CT=0 F S DXCAT=$O(ORD(CAT,DXCAT)) Q:DXCAT="" D
  1. .. S PRI="" F S PRI=$O(ORD(CAT,DXCAT,PRI)) Q:PRI="" D
  1. ... S LPRI=LPRI+1,ORD(CAT,DXCAT,PRI)=ORD(CAT,DXCAT,PRI)_LPRI_$C(30)
  1. ... S CT=CT+1 I NUM'="",CT>NUM Q
  1. ... S II=II+1,@DATA@(II)=ORD(CAT,DXCAT,PRI)
  1. ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. ERR ;
  1. D ^%ZTER
  1. NEW Y,ERRDTM
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
  1. S BMXSEC="Recording that an error occurred at "_ERRDTM
  1. I $D(II),$D(DATA) S II=II+1,@DATA@(II)=$C(31)
  1. Q