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

BQIRPLN.m

Go to the documentation of this file.
  1. BQIRPLN ;VANGENT/HC/ALA-Problem List Notes ; 08 May 2008 4:59 PM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;**3,4**;Apr 18, 2012;Build 66
  1. ;
  1. ;
  1. EN(DATA,BQPIEN) ;EP - BQI PATIENT PROBLEM NOTES
  1. ;Input
  1. ; BQPIEN - Specific problem IEN
  1. ;
  1. ;Output
  1. ; DATA - Name of global in which data is stored
  1. ;
  1. NEW II,UID,BQDL,LOCN,LOC,NN,PBNIEN,PBNTNB,PBNNAR,PBNSTN,PBNSTAT
  1. NEW PBNDT,PBNUSN,PBNUSR
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIRPLN",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIRPL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S BQPIEN=$G(BQPIEN,"") I BQPIEN="" S BMXSEC="No problem identified" Q
  1. ;
  1. S @DATA@(II)="I00010PBNIEN^T00030APCDFAC^T00010PBNTNB^T00060PBNNAR^T00001PBNSTAT^D00015PBNDT^T00035PBNUSR"_$C(30)
  1. ;
  1. S BQDL=0
  1. F S BQDL=$O(^AUPNPROB(BQPIEN,11,BQDL)) Q:'BQDL D
  1. . NEW DA,IENS
  1. . S DA(1)=BQPIEN,DA=BQDL,IENS=$$IENS^DILF(.DA)
  1. . S LOCN=$$GET1^DIQ(9000011.11,IENS,.01,"I")
  1. . I LOCN'="" S LOC=LOCN_$C(28)_$$GET1^DIQ(9000011.11,IENS,.01,"E")
  1. . S NN=0
  1. . F S NN=$O(^AUPNPROB(BQPIEN,11,BQDL,11,NN)) Q:'NN D
  1. .. NEW DA,IENS
  1. .. S DA(2)=BQPIEN,DA(1)=BQDL,DA=NN,IENS=$$IENS^DILF(.DA)
  1. .. S PBNIEN=NN
  1. .. S PBNTNB=$$GET1^DIQ(9000011.1111,IENS,.01,"E")
  1. .. S PBNNAR=$P(^AUPNPROB(BQPIEN,11,BQDL,11,NN,0),U,3)
  1. .. ;S PBNNAR=$$STRIP^XLFSTR(PBNNAR,$C(13))
  1. .. ;S PBNNAR=$TR(PBNNAR,$C(10)," ")
  1. .. S PBNSTN=$$GET1^DIQ(9000011.1111,IENS,.04,"I")
  1. .. I PBNSTN'="" S PBNSTAT=PBNSTN_$C(28)_$$GET1^DIQ(9000011.1111,IENS,.04,"E")
  1. .. S PBNDT=$$GET1^DIQ(9000011.1111,IENS,.05,"I")
  1. .. S PBNUSN=$$GET1^DIQ(9000011.1111,IENS,.06,"I")
  1. .. I PBNUSN'="" S PBNUSR=PBNUSN_$C(28)_$$GET1^DIQ(9000011.1111,IENS,.06,"E")
  1. .. S II=II+1,@DATA@(II)=PBNIEN_U_$G(LOC)_U_$G(PBNTNB)_U_$G(PBNNAR)_U_$G(PBNSTAT)_U_$$FMTE^BQIUL1(PBNDT)_U_$G(PBNUSR)_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. UPD(DATA,PBLIEN,PBNIEN,PARMS) ; EP - BQI UPDATE PROBLEM NOTE
  1. NEW UID,II,VFIEN,FILE,LIST,BN,PDATA,NAME,VALUE,PFIEN,PTYP,CHIEN,FIELD,BQIUPD,FACN
  1. NEW PBNTNB,RESULT,ERROR,BQ,APCDFAC
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIRPLNU",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIRPL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00010RESULT^T01024MSG"_$C(30)
  1. S VFIEN=$O(^BQI(90506.3,"B","Problem Notes",""))
  1. I VFIEN="" S BMXSEC="RPC Call Failed: Problem Notes Definition does not exist." Q
  1. S FILE=$P(^BQI(90506.3,VFIEN,0),U,2)
  1. ;
  1. S PARMS=$G(PARMS,"")
  1. I PARMS="" D
  1. . S LIST="",BN=""
  1. . F S BN=$O(PARMS(BN)) Q:BN="" S LIST=LIST_PARMS(BN)
  1. . K PARMS
  1. . S PARMS=LIST
  1. . K LIST
  1. ;
  1. F BQ=1:1:$L(PARMS,$C(28)) D
  1. . S PDATA=$P(PARMS,$C(28),BQ) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1),VALUE=$P(PDATA,"=",2,99) I VALUE="" Q
  1. . S PFIEN=$O(^BQI(90506.3,VFIEN,10,"AC",NAME,""))
  1. . S PTYP=$P($G(^BQI(90506.3,VFIEN,10,PFIEN,1)),U,1)
  1. . I PTYP="D"!(PTYP="A") S VALUE=$$DATE^BQIUL1(VALUE)
  1. . ;I PTYP="T" S VALUE=VALUE
  1. . I PTYP="C" D
  1. .. S CHIEN=$O(^BQI(90506.3,VFIEN,10,PFIEN,5,"B",VALUE,"")) I CHIEN="" Q
  1. .. S VALUE=$P(^BQI(90506.3,VFIEN,10,PFIEN,5,CHIEN,0),U,2)
  1. . S FIELD=$P($G(^BQI(90506.3,VFIEN,10,PFIEN,3)),U,1)
  1. . I FIELD'="" S BQIUPD(FILE,1_",",FIELD)=VALUE
  1. . S @NAME=VALUE
  1. ;
  1. S FACN=""
  1. I $G(APCDFAC)="" S FACN=$O(^AUPNPROB(PBLIEN,11,"B",DUZ(2),""))
  1. I $G(APCDFAC)'="" S FACN=$O(^AUPNPROB(PBLIEN,11,"B",APCDFAC,""))
  1. I FACN="" D
  1. . NEW DA,DIC,DLAYGO,Y,X
  1. . S DA(1)=PBLIEN
  1. . S DIC(0)="LN",DLAYGO=9000011.11,DIC("P")=DLAYGO,DIC="^AUPNPROB("_DA(1)_",11,",X=DUZ(2)
  1. . K DO,DD D FILE^DICN
  1. . S FACN=+Y
  1. ;
  1. I $G(PBNIEN)="" D
  1. . NEW DA,DIC,DLAYGO,Y,X
  1. . S DA(2)=PBLIEN,DA(1)=FACN
  1. . S DIC(0)="LN",DLAYGO=9000011.1111,DIC("P")=DLAYGO,DIC="^AUPNPROB("_DA(2)_",11,"_DA(1)_",11,"
  1. . S X=PBNTNB
  1. . K DO,DD D FILE^DICN
  1. . S PBNIEN=+Y
  1. ;
  1. NEW DA,IENS,BQIUPDT
  1. S DA(2)=PBLIEN,DA(1)=FACN,DA=PBNIEN,IENS=$$IENS^DILF(.DA)
  1. M BQIUPDT(FILE,IENS)=BQIUPD(FILE,1_",")
  1. K BQIUPD
  1. D FILE^DIE("","BQIUPDT","ERROR")
  1. S RESULT=1_U
  1. I $D(ERROR)>0 S RESULT=-1_U_$G(ERROR("DIERR","1","TEXT","1"))
  1. S II=II+1,@DATA@(II)=RESULT_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. PLR(DATA,DFN,PARMS) ;EP - BQI UPDATE PRB LIST REV
  1. ;
  1. NEW UID,II,APCDTCDT,APCDTEPR,LIST,BN,VFIEN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIRPLN",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIRPL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00010RESULT^T01024MSG"_$C(30)
  1. ;
  1. S PARMS=$G(PARMS,"")
  1. I PARMS="" D
  1. . S LIST="",BN=""
  1. . F S BN=$O(PARMS(BN)) Q:BN="" S LIST=LIST_PARMS(BN)
  1. . K PARMS
  1. . S PARMS=LIST
  1. . K LIST
  1. ;
  1. S VFIEN=$O(^BQI(90506.3,"B","Prob List Reviewed","")) I VFIEN="" S BMXSEC="Error locating Prob List Reviewed" G XPLR
  1. ;
  1. F BQ=1:1:$L(PARMS,$C(28)) D
  1. . N PDATA,NAME,VALUE,PFIEN,PTYP
  1. . S PDATA=$P(PARMS,$C(28),BQ) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1),VALUE=$P(PDATA,"=",2,99) I VALUE="" Q
  1. . S PFIEN=$O(^BQI(90506.3,VFIEN,10,"AC",NAME,""))
  1. . S PTYP=$P($G(^BQI(90506.3,VFIEN,10,PFIEN,1)),U,1)
  1. . S @NAME=VALUE
  1. ;
  1. ;Log V UPDATED/REVIEWED (Updated) entry
  1. D VUP^BQIRPL("PROBLEM LIST REVIEWED")
  1. S II=II+1,@DATA@(II)=$P($G(^TMP("BQIVFADD",$J,1)),U)_U_$C(30)
  1. K ^TMP("BQIVFADD",$J)
  1. ;
  1. XPLR S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. NAP(DATA,DFN,PARMS) ;EP - BQI UPDATE NO ACTIVE PRB
  1. ;
  1. NEW UID,II,APCDTCDT,APCDTEPR,LIST,BN,VFIEN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIRPLN",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIRPL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00010RESULT^T01024MSG"_$C(30)
  1. ;
  1. S PARMS=$G(PARMS,"")
  1. I PARMS="" D
  1. . S LIST="",BN=""
  1. . F S BN=$O(PARMS(BN)) Q:BN="" S LIST=LIST_PARMS(BN)
  1. . K PARMS
  1. . S PARMS=LIST
  1. . K LIST
  1. ;
  1. S VFIEN=$O(^BQI(90506.3,"B","No Active Problems","")) I VFIEN="" S BMXSEC="Error locating No Active Problems" G XNAP
  1. ;
  1. F BQ=1:1:$L(PARMS,$C(28)) D
  1. . N PDATA,NAME,VALUE,PFIEN,PTYP
  1. . S PDATA=$P(PARMS,$C(28),BQ) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1),VALUE=$P(PDATA,"=",2,99) I VALUE="" Q
  1. . S PFIEN=$O(^BQI(90506.3,VFIEN,10,"AC",NAME,""))
  1. . S PTYP=$P($G(^BQI(90506.3,VFIEN,10,PFIEN,1)),U,1)
  1. . S @NAME=VALUE
  1. ;
  1. ;Log V UPDATED/REVIEWED (Updated) entry
  1. D VUP^BQIRPL("NO ACTIVE PROBLEMS")
  1. S II=II+1,@DATA@(II)=$P($G(^TMP("BQIVFADD",$J,1)),U)_U_$C(30)
  1. K ^TMP("BQIVFADD",$J)
  1. ;
  1. XNAP S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. DPLR(DATA,DFN) ;EP - BQI DISPLAY PRB LIST REV
  1. ;
  1. NEW UID,II,APCDTCDT,APCDTEPR
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIRPLN",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIRPL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00010DFN^D00030APCDTCDT^T00035APCDTEPR"_$C(30)
  1. ;
  1. S APCDTCDT=$$LASTPLR^APCLAPI6(DFN,,DT,"A")
  1. S APCDTEPR=$P(APCDTCDT,U,3)_$C(28)_$$GET1^DIQ(200,$P(APCDTCDT,U,3)_",",.01,"E"),APCDTCDT=$$FMTE^BQIUL1($P(APCDTCDT,U))
  1. ;
  1. S II=II+1,@DATA@(II)=DFN_U_APCDTCDT_U_APCDTEPR_$C(30)
  1. ;
  1. XDPLR S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. DNAP(DATA,DFN) ;EP - BQI DISPLAY NO ACTIVE PRB
  1. ;
  1. NEW UID,II,APCDTCDT,APCDTEPR
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIRPLN",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIRPL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00010DFN^D00030APCDTCDT^T00035APCDTEPR"_$C(30)
  1. ;
  1. S APCDTCDT=$$LASTPLR^APCLAPI6(DFN,,DT,"A")
  1. S APCDTEPR=$P(APCDTCDT,U,3)_$C(28)_$$GET1^DIQ(200,$P(APCDTCDT,U,3)_",",.01,"E"),APCDTCDT=$$FMTE^BQIUL1($P(APCDTCDT,U))
  1. ;
  1. S II=II+1,@DATA@(II)=DFN_U_APCDTCDT_U_APCDTEPR_$C(30)
  1. ;
  1. XDNAP S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. PLACT(DATA,DFN) ;EP - BQI ACTIVE PROBLEM LIST
  1. ;
  1. NEW UID,II,ACTIVE,PRBIEN,RESULT,SDATA
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIRPLN",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIRPL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00001ACTIVE"_$C(30)
  1. ;
  1. S RESULT=0,SDATA=$P($G(^DD(9000011,.12,0)),U,3)
  1. S PRBIEN="" F S PRBIEN=$O(^AUPNPROB("AC",DFN,PRBIEN)) Q:PRBIEN="" D Q:RESULT
  1. . ;
  1. . ;Pull the status of the problem
  1. . S ACTIVE=$$GET1^DIQ(9000011,PRBIEN_",",.12,"I")
  1. . I SDATA["ACTIVE",ACTIVE="A" S RESULT=1 Q
  1. . I SDATA["CHRONIC" D
  1. .. S RESULT=1
  1. .. I ACTIVE="D"!(ACTIVE="I") S RESULT=0 Q
  1. ;
  1. S II=II+1,@DATA@(II)=RESULT_$C(30)
  1. ;
  1. XPLACT S II=II+1,@DATA@(II)=$C(31)
  1. Q