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

BQICAVW.m

Go to the documentation of this file.
  1. BQICAVW ;PRXM/HC/ALA-Community Alerts View ; 12 Nov 2007 4:44 PM
  1. ;;2.4;ICARE MANAGEMENT SYSTEM;;Apr 01, 2015;Build 41
  1. ;
  1. EN(DATA,FAKE) ;EP -- BQI GET COMM ALERTS VIEW
  1. ;Description
  1. ; Retrieve all the defined "flags" definitions for an owner
  1. ;
  1. ;Input
  1. ; FAKE - extra 'blank' parameter required by BMXNET async 'feature'
  1. ;Output
  1. ; DATA - name of global (passed by reference) in which the data
  1. ; is stored
  1. ;Assumes
  1. ; DUZ - User who signed onto iCare
  1. ;
  1. NEW UID,II,X,MIEN,SOURCE,PARMS,PIEN,NAME,PTYP,VALUE,PMIEN,SORT,TYP
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQICAVW",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQICAVW D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T00045DISPLAY_GROUP^T00030TYPE^T00045LABEL^T00005TMFRAME^T00003STATUS"_$C(30)
  1. ;
  1. ; If no community alerts definition, pull default
  1. S MIEN=0
  1. F S MIEN=$O(^BQICARE(DUZ,11,MIEN)) Q:'MIEN D
  1. . NEW DA,IENS
  1. . S DA(1)=DUZ,DA=MIEN,IENS=$$IENS^DILF(.DA)
  1. . S LABEL=$$GET1^DIQ(90505.011,IENS,.01,"E")
  1. . S LIEN=$$GET1^DIQ(90505.011,IENS,.01,"I"),GROUP="",TYP=""
  1. . I LIEN'="" D
  1. .. S GROUP=$$GET1^DIQ(90507.8,LIEN_",",.03,"E")
  1. .. S TYP=$$GET1^DIQ(90507.8,LIEN_",",2.01,"E")
  1. . S GRP=GROUP
  1. . S:GROUP="OPTIONAL" GRP="Z"_GROUP
  1. . ;
  1. . S PIEN=0,PARMS=""
  1. . F S PIEN=$O(^BQICARE(DUZ,11,MIEN,1,PIEN)) Q:'PIEN D
  1. .. NEW DA,IENS
  1. .. S DA(2)=DUZ,DA(1)=MIEN,DA=PIEN,IENS=$$IENS^DILF(.DA)
  1. .. S NAME=$$GET1^DIQ(90505.111,IENS,.01,"E")
  1. .. S VALUE=$$GET1^DIQ(90505.111,IENS,.02,"E")
  1. .. ;S PARMS=PARMS_NAME_"="
  1. .. S @NAME=VALUE
  1. . S TMFRAME=$S($G(TMFRAME):TMFRAME,1:"T-30")
  1. . S STATUS=$S($G(STATUS)'="":STATUS,$G(STATUS)=""&GROUP="MANDATORY":"ON",1:"OFF")
  1. . S SORT(GRP,TYP,LABEL)=LIEN_U_TMFRAME_U_STATUS_U_GROUP
  1. ;
  1. D DFLT
  1. ;
  1. S GRP=""
  1. F S GRP=$O(SORT(GRP)) Q:GRP="" D
  1. . S TYP=""
  1. . F S TYP=$O(SORT(GRP,TYP)) Q:TYP="" D
  1. .. S LABEL=""
  1. .. F S LABEL=$O(SORT(GRP,TYP,LABEL)) Q:LABEL="" D
  1. ... S TMFRAME=$P(SORT(GRP,TYP,LABEL),U,2)
  1. ... S STATUS=$P(SORT(GRP,TYP,LABEL),U,3)
  1. ... S GROUP=$P(SORT(GRP,TYP,LABEL),U,4)
  1. ... S II=II+1,@DATA@(II)=GROUP_U_TYP_U_LABEL_U_TMFRAME_U_STATUS_$C(30)
  1. ;
  1. DONE 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
  1. ;
  1. UPD(DATA,LABEL,PARMS) ; EP - BQI SET COMM ALERTS VIEW
  1. ;
  1. ;Input
  1. ; LABEL - Label name for the alert
  1. ; PARMS - Parameter for the alert
  1. ;Assumes
  1. ; DUZ - User who signed onto iCare
  1. ;
  1. NEW UID,II,X,MIEN,PIEN,PMIEN,VALUE,PDATA,ALDA,QFL,BQ,NAME,MVAL,BQII,PPIEN
  1. NEW GRP,GRPP,GROUP
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQICAVW",UID))
  1. K @DATA
  1. ;
  1. S II=0,PARMS=$G(PARMS,"")
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQICAVW D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="I00010RESULT"_$C(30)
  1. ;
  1. NEW DA,DIC,DLAYGO
  1. S DA(1)=DUZ,X=LABEL
  1. S DLAYGO=90505.011,DIC(0)="LNXZ"
  1. S DIC="^BQICARE("_DA(1)_",11,"
  1. I '$D(^BQICARE(DA(1),11,0)) S ^BQICARE(DA(1),11,0)="^90505.011P^^"
  1. ;K DO,DD D FILE^DICN
  1. D ^DIC
  1. S ALDA=+Y
  1. I ALDA=-1 S II=II+1,@DATA@(II)="-1"_$C(30) G DONE
  1. ;
  1. ; Clean out all the previous parameters
  1. NEW DA,DIK,PN,PDA,BQI,PDATA,NAME,VALUE,ERROR
  1. S DA(2)=DUZ,DA(1)=ALDA,DIK="^BQICARE("_DA(2)_",11,"_DA(1)_",1,",PN=0
  1. F S PN=$O(^BQICARE(DA(2),11,DA(1),1,PN)) Q:'PN S DA=PN D ^DIK
  1. ;
  1. F BQI=1:1:$L(PARMS,$C(28)) D
  1. . S PDATA=$P(PARMS,$C(28),BQI)
  1. . S NAME=$P(PDATA,"=",1),VALUE=$P(PDATA,"=",2,99)
  1. . NEW DA,IENS,DIC,DLAYGO
  1. . S DA(2)=DUZ,DA(1)=ALDA,X=NAME
  1. . S DLAYGO=90505.111,DIC(0)="L",DIC("P")=DLAYGO
  1. . S DIC="^BQICARE("_DA(2)_",11,"_DA(1)_",1,"
  1. . I '$D(^BQICARE(DA(2),10,DA(1),1,0)) S ^BQICARE(DA(2),11,DA(1),1,0)="^90505.111A^^"
  1. . K DO,DD D FILE^DICN
  1. . S (DA,PDA)=+Y
  1. . I DA=-1 S II=II+1,@DATA@(II)="-1"_$C(30),ERROR=1 Q
  1. . ;
  1. . NEW DA,IENS
  1. . S DA(2)=DUZ,DA(1)=ALDA,DA=PDA
  1. . S IENS=$$IENS^DILF(.DA)
  1. . S BQIUPD(90505.111,IENS,.02)=VALUE
  1. . D FILE^DIE("","BQIUPD","ERROR")
  1. . K BQIUPD
  1. ;
  1. S II=II+1,@DATA@(II)="1"_$C(30)
  1. I $D(ERROR) S @DATA@(II)="-1^"_$G(ERROR("DIERR",1,"TEXT",1))_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. DEL ; Delete the previous community alert definitions
  1. NEW DA,DIK
  1. S DA(1)=DUZ,DA=0,DIK="^BQICARE("_DA(1)_",11,"
  1. F S DA=$O(^BQICARE(DUZ,11,DA)) Q:'DA D ^DIK
  1. Q
  1. ;
  1. DFLT ; Get default values
  1. NEW LIEN,GRP,LBL,GROUP,GRPP,STATUS,TMFRAME,TYP,INAC
  1. ; For the display group of mandatory, recommended, and optional
  1. F GRP="M","R","O" D
  1. . S LIEN=""
  1. . F S LIEN=$O(^BQI(90507.8,"C",GRP,LIEN)) Q:LIEN="" D
  1. .. S LBL=$P(^BQI(90507.8,LIEN,0),U,1)
  1. .. S GROUP=$$GET1^DIQ(90507.8,LIEN_",",.03,"E"),TMFRAME="T-30"
  1. .. S TYP=$$GET1^DIQ(90507.8,LIEN_",",2.01,"E")
  1. .. S GRPP=GROUP
  1. .. S:GROUP="OPTIONAL" GRPP="Z"_GROUP
  1. .. S STATUS=$S(GRP="O":"OFF",1:"ON")
  1. .. S INAC=$P(^BQI(90507.8,LIEN,0),U,5)
  1. .. I INAC=1 K SORT(GRPP,TYP,LBL) Q
  1. .. I $G(SORT(GRPP,TYP,LBL))="" S SORT(GRPP,TYP,LBL)=LIEN_U_TMFRAME_U_STATUS_U_GROUP
  1. ;
  1. Q
  1. ;
  1. VAL(NDUZ,NDCN) ;EP - Find the values of a community alert
  1. ; Input
  1. ; NDUZ - User
  1. ; NDCN - IEN of the alert
  1. NEW BQUIEN,BQII,DATE,BQUIEN,STAT
  1. S BQUIEN=$O(^BQICARE(NDUZ,11,"B",NDCN,""))
  1. I BQUIEN'="" D
  1. . S BQII=0
  1. . F S BQII=$O(^BQICARE(NDUZ,11,BQUIEN,1,BQII)) Q:'BQII D
  1. .. ; **temporary hardcode for data dates**
  1. .. ;I $P(^BQICARE(NDUZ,11,BQUIEN,1,BQII,0),U,1)="TMFRAME" S DATE=$$DATE^BQIUL1($P(^(0),U,2))
  1. .. I $P(^BQICARE(NDUZ,11,BQUIEN,1,BQII,0),U,1)="TMFRAME" S DATE=$$DATE^BQIUL1("T-30")
  1. .. I $P(^BQICARE(NDUZ,11,BQUIEN,1,BQII,0),U,1)="STATUS" S STAT=$P(^(0),U,2)
  1. I BQUIEN="" D
  1. . S STAT=$P(^BQI(90507.8,NDCN,0),U,3)
  1. . S STAT=$S(STAT="O":"OFF",1:"ON")
  1. . ; **temporary hardcode for data dates**
  1. . S DATE=$$DATE^BQIUL1("T-30")
  1. . ;S DATE=$$DATE^BQIUL1("T-36M")
  1. Q STAT_U_DATE