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

BQIPLFL.m

Go to the documentation of this file.
  1. BQIPLFL ;PRXM/HC/ALA-Set the Panel's Filter Parameters ; 16 Dec 2005 2:58 PM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;**3,4**;Apr 18, 2012;Build 66
  1. ;
  1. Q
  1. ;
  1. RET(DATA,OWNR,PLIEN) ; EP -- BQI GET PANEL FILTERS
  1. ;
  1. ;Description - Retrieves the panel filter parameters for a specific panel
  1. ;
  1. ;Input
  1. ; OWNR = Owner of the panel internal entry number
  1. ; PLIEN = Panel internal entry number
  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,MASP,MM,MPARMS,MSN,N,NAME,NM,NN,PARMS,PM,PPIEN,PTYP,VM
  1. NEW FILTER,FSOURCE,IENS,AN,ASN,ASPM,ATYP,DA
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIPLFL",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIPLFL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T03200FILTERS"_$C(30)
  1. ;
  1. ;NEW DA,IENS,FSOURCE,PPIEN,PTYP,N,NN,PARMS,MPARMS
  1. S DA(1)=OWNR,DA=PLIEN,IENS=$$IENS^DILF(.DA)
  1. S FSOURCE=$$GET1^DIQ(90505.01,IENS,.14,"E")
  1. ;
  1. ; Find definition
  1. I FSOURCE="" G DONE
  1. S PPIEN=$$PP^BQIDCDF(FSOURCE) I PPIEN=-1 S BMXSEC="Pre-defined panel type "_FSOURCE_" was not found" Q
  1. ;
  1. S N=0,PARMS="",MPARMS=""
  1. F S N=$O(^BQICARE(OWNR,1,PLIEN,15,N)) Q:'N D
  1. . NEW DA,IENS
  1. . S DA(2)=OWNR,DA(1)=PLIEN,DA=N,IENS=$$IENS^DILF(.DA)
  1. . S NAME=$$GET1^DIQ(90505.115,IENS,.01,"E")
  1. . S PTYP=$$PTYP^BQIDCDF(FSOURCE,NAME)
  1. . S FILTER(N)=NAME
  1. . I '$D(^BQICARE(OWNR,1,PLIEN,15,N,1)) D Q
  1. .. NEW DA,IENS,NAME,VALUE
  1. .. S DA(2)=OWNR,DA(1)=PLIEN,DA=N,IENS=$$IENS^DILF(.DA)
  1. .. I PTYP="T" S VALUE=$$GET1^DIQ(90505.115,IENS,.03,"E")
  1. .. I PTYP'="T" S VALUE=$$GET1^DIQ(90505.115,IENS,.02,"E")
  1. .. I PTYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
  1. .. S FILTER(N,1)=VALUE
  1. .. ; Check for associated parameters
  1. .. S ASN=0
  1. .. F S ASN=$O(^BQICARE(OWNR,1,PLIEN,15,N,2,ASN)) Q:'ASN D
  1. ... NEW DA,IENS,ASSOC,AVALUE,VALUE
  1. ... S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=N,DA=ASN,IENS=$$IENS^DILF(.DA)
  1. ... S ASSOC=$$GET1^DIQ(90505.1152,IENS,.01,"E")
  1. ... S ATYP=$$PTYP^BQIDCDF(FSOURCE,ASSOC)
  1. ... S FILTER(N,1,ASN)=ASSOC
  1. ... I '$D(^BQICARE(OWNR,1,PLIEN,15,N,2,ASN,1)) D Q
  1. .... I ATYP="T" S VALUE=$$GET1^DIQ(90505.1152,IENS,.03,"E")
  1. .... I ATYP'="T" S VALUE=$$GET1^DIQ(90505.1152,IENS,.02,"E")
  1. .... I ATYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
  1. .... S FILTER(N,1,ASN,1)=VALUE
  1. ... S MSN=0
  1. ... F S MSN=$O(^BQICARE(OWNR,1,PLIEN,15,N,2,ASN,1,MSN)) Q:'MSN D
  1. .... NEW DA,IENS,VALUE
  1. .... S DA(4)=OWNR,DA(3)=PLIEN,DA(2)=N,DA(1)=ASN,DA=MSN,IENS=$$IENS^DILF(.DA)
  1. .... I ATYP="T" S VALUE=$$GET1^DIQ(90505.11521,IENS,.02,"E")
  1. .... I ATYP'="T" S VALUE=$$GET1^DIQ(90505.11521,IENS,.01,"E")
  1. .... I ATYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
  1. .... S FILTER(N,1,ASN,MSN)=VALUE
  1. . ;
  1. . S NN=0
  1. . F S NN=$O(^BQICARE(OWNR,1,PLIEN,15,N,1,NN)) Q:'NN D
  1. .. NEW DA,IENS,VALUE
  1. .. S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=N,DA=NN,IENS=$$IENS^DILF(.DA)
  1. .. I PTYP="T" S VALUE=$$GET1^DIQ(90505.1151,IENS,.02,"E")
  1. .. I PTYP'="T" S VALUE=$$GET1^DIQ(90505.1151,IENS,.01,"E")
  1. .. I PTYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
  1. .. S FILTER(N,NN)=VALUE
  1. .. ; Check for associated parameters
  1. .. S ASN=0
  1. .. F S ASN=$O(^BQICARE(OWNR,1,PLIEN,15,N,1,NN,2,ASN)) Q:'ASN D
  1. ... NEW DA,IENS,ASSOC,AVALUE,VALUE
  1. ... S DA(4)=OWNR,DA(3)=PLIEN,DA(2)=N,DA(1)=NN,DA=ASN,IENS=$$IENS^DILF(.DA)
  1. ... S ASSOC=$$GET1^DIQ(90505.11512,IENS,.01,"E")
  1. ... S ATYP=$$PTYP^BQIDCDF(FSOURCE,ASSOC)
  1. ... S FILTER(N,NN,ASN)=ASSOC
  1. ... I '$D(^BQICARE(OWNR,1,PLIEN,15,N,1,NN,2,ASN,1)) D Q
  1. .... I ATYP="T" S VALUE=$$GET1^DIQ(90505.11512,IENS,.03,"E")
  1. .... I ATYP'="T" S VALUE=$$GET1^DIQ(90505.11512,IENS,.02,"E")
  1. .... I ATYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
  1. .... S FILTER(N,NN,ASN,1)=VALUE
  1. ... S MSN=0
  1. ... F S MSN=$O(^BQICARE(OWNR,1,PLIEN,15,N,1,NN,2,ASN,1,MSN)) Q:'MSN D
  1. .... NEW DA,IENS,VALUE
  1. .... S DA(5)=OWNR,DA(4)=PLIEN,DA(3)=N,DA(2)=NN,DA(1)=ASN,DA=MSN,IENS=$$IENS^DILF(.DA)
  1. .... I ATYP="T" S VALUE=$$GET1^DIQ(90505.115121,IENS,.02,"E")
  1. .... I ATYP'="T" S VALUE=$$GET1^DIQ(90505.115121,IENS,.01,"E")
  1. .... I ATYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
  1. .... S FILTER(N,NN,ASN,MSN)=VALUE
  1. ;
  1. ; Build PARMS
  1. S PM=""
  1. F S PM=$O(FILTER(PM)) Q:PM="" D
  1. . S NAME=FILTER(PM),PARMS=$G(PARMS)_NAME_"="
  1. . S VM=""
  1. . F S VM=$O(FILTER(PM,VM)) Q:VM="" D
  1. .. S AN=""
  1. .. F S AN=$O(FILTER(PM,VM,AN)) Q:AN="" D
  1. ... S MM="",MASP=""
  1. ... F S MM=$O(FILTER(PM,VM,AN,MM)) Q:MM="" D
  1. .... S MASP=$G(MASP)_FILTER(PM,VM,AN,MM)_$C(24)
  1. ... S MASP=$$TKO^BQIUL1(MASP,$C(24))
  1. ... S ASPM=FILTER(PM,VM,AN)_"="_MASP
  1. ... S MPRM(VM)=$S(AN'<2:$$TKO^BQIUL1(MPRM(VM),$C(29)),1:FILTER(PM,VM))_$C(25)_ASPM_$C(29)
  1. .. I '$D(MPRM(VM)) S MPRM(VM)=FILTER(PM,VM)_$C(29)
  1. . S NM=""
  1. . F S NM=$O(MPRM(NM)) Q:NM="" S PARMS=PARMS_MPRM(NM)
  1. . S PARMS=$$TKO^BQIUL1(PARMS,$C(29))
  1. . S PARMS=PARMS_$C(28)
  1. . K MPRM
  1. ;
  1. S II=II+1
  1. S PARMS=$$TKO^BQIUL1(PARMS,$C(28))
  1. ;S PARMS=$$TKO^BQIUL1(PARMS,$C(29))
  1. S @DATA@(II)=PARMS_$C(30)
  1. ;
  1. DONE ;
  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
  1. ;
  1. UPD(DATA,OWNR,PLIEN,PARMS) ; EP -- BQI SET PANEL FILTERS
  1. ;
  1. ;Description
  1. ; Update or set the filter parameters
  1. ;Input
  1. ; OWNR = Owner of panel IEN
  1. ; PLIEN = Panel internal entry number
  1. ; PARMS = Filter parameters (if NULL, deletes ALL)
  1. ; if PARMS contain a $C(29), then that is
  1. ; a multiple value parameter
  1. ;
  1. NEW UID,II,X,BN,FSOURCE,PPIEN,PTYP,BQ,BQIUPD,PDATA,MVAL,PDA,QFL,ACT
  1. NEW ASDATA,ASNAME,ASV,AVAL,AVCT,BQQ,CT,MBQ,MVN,RESULT,VAL
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIPLFL",UID))
  1. K @DATA
  1. ;
  1. ; Check if share and has write access
  1. I '$$CKSHR^BQIPLSH(OWNR,PLIEN) S BMXSEC="You do not have write access" Q
  1. ;
  1. CV ;EP
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIPLFL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S PARMS=$G(PARMS,""),RESULT=1
  1. S @DATA@(II)="I00010RESULT^T00050MSG"_$C(30)
  1. ;
  1. D DEL(.OWNR,.PLIEN)
  1. ;
  1. NEW DA,IENS
  1. S DA(1)=OWNR,DA=PLIEN,IENS=$$IENS^DILF(.DA)
  1. S FSOURCE=$$GET1^DIQ(90505.01,IENS,.14,"E")
  1. ;
  1. ; Find definition panel
  1. I FSOURCE="" G DONE
  1. S PPIEN=$$PP^BQIDCDF(FSOURCE) I PPIEN=-1 S BMXSEC="Pre-defined panel type "_FSOURCE_" was not found" Q
  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. K FILTER
  1. S QFL=0
  1. F BQ=1:1:$L(PARMS,$C(28)) I $P(PARMS,$C(28),BQ)'="" S FILTER(BQ)=$P(PARMS,$C(28),BQ)
  1. F BQQ=1:1:BQ D
  1. . S PDATA=$G(FILTER(BQQ)) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1),VALUE=$P(PDATA,"=",2,99)
  1. . S FDATA(BQQ)=NAME
  1. . F II=1:1:$L(VALUE,$C(29)) D
  1. .. S VAL=$P(VALUE,$C(29),II),ASSOC=$P(VAL,$C(25),2,99)
  1. .. S FILTER(BQQ,II)=$P(VAL,$C(25),1)
  1. .. I ASSOC'="" D
  1. ... F ASN=1:1:$L(ASSOC,$C(25)) D
  1. .... S ASDATA=$P(ASSOC,$C(25),ASN)
  1. .... S ASVAL=$P(ASDATA,"=",2,99),ASNAME=$P(ASDATA,"=",1)
  1. .... S FILTER(BQQ,II,ASN)=ASNAME
  1. .... I ASVAL'[$C(24) S FILTER(BQQ,II,ASN,1)=ASVAL Q
  1. .... F ASV=1:1:$L(ASVAL,$C(24)) S FILTER(BQQ,II,ASN,ASV)=$P(ASVAL,$C(24),ASV)
  1. F BQQ=1:1:BQ S FILTER(BQQ)=FDATA(BQQ)
  1. K FDATA
  1. ;
  1. ; Store the filter data
  1. S BQQ=""
  1. F S BQQ=$O(FILTER(BQQ)) Q:BQQ="" D
  1. . S NAME=FILTER(BQQ)
  1. . S PTYP=$$PTYP^BQIDCDF(FSOURCE,NAME)
  1. . ; Create parameter entry
  1. . NEW DA,IENS,DIC,DLAYGO
  1. . S DA(2)=OWNR,DA(1)=PLIEN,X=NAME
  1. . S DLAYGO=90505.115,DIC(0)="L",DIC("P")=DLAYGO
  1. . S DIC="^BQICARE("_DA(2)_",1,"_DA(1)_",15,"
  1. . I '$D(^BQICARE(DA(2),1,DA(1),15,0)) S ^BQICARE(DA(2),1,DA(1),15,0)="^90505.115^^"
  1. . K DO,DD D FILE^DICN
  1. . S PDA=+Y
  1. . I PDA=-1 S RESULT=-1,QFL=1 Q
  1. . ;
  1. . S MBQ="",CT=1
  1. . F S MBQ=$O(FILTER(BQQ,MBQ)) Q:MBQ="" D
  1. .. ; If there are no multiple values, store and quit
  1. .. S VALUE=FILTER(BQQ,MBQ)
  1. .. I $O(FILTER(BQQ,MBQ))="",CT=1 D PMSV(OWNR,PLIEN,PDA,VALUE,PTYP) Q
  1. .. D PMMV(OWNR,PLIEN,PDA,VALUE,PTYP)
  1. .. S CT=CT+1
  1. .. ;
  1. ;
  1. S II=II+1,@DATA@(II)=RESULT_U_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. D DSC
  1. Q
  1. ;
  1. PMSV(BOWNR,BPLIEN,BDA,BVALUE,BTYP) ;EP Store singular parameter value
  1. NEW DA,IENS
  1. S DA(2)=BOWNR,DA(1)=BPLIEN,DA=BDA
  1. S IENS=$$IENS^DILF(.DA)
  1. I BTYP="D" S BVALUE=$$DATE^BQIUL1(BVALUE)
  1. I BTYP="T" S BQIUPD(90505.115,IENS,.03)=BVALUE
  1. I BTYP'="T" S BQIUPD(90505.115,IENS,.02)=BVALUE
  1. D FILE^DIE("","BQIUPD","ERROR")
  1. ; Check if there are associated parameters
  1. D CKAS
  1. Q
  1. ;
  1. PMMV(BOWNR,BPLIEN,BDA,BVAL,BTYP) ;EP
  1. NEW DA,IENS,DIC,DLAYGO
  1. S DA(3)=BOWNR,DA(2)=BPLIEN,DA(1)=BDA,X=BVAL
  1. S DLAYGO=90505.1151,DIC(0)="L",DIC("P")=DLAYGO
  1. S DIC="^BQICARE("_DA(3)_",1,"_DA(2)_",15,"_DA(1)_",1,"
  1. K DO,DD D FILE^DICN
  1. S (DA,MDA)=+Y
  1. I DA=-1 S RESULT=-1,QFL=1 Q
  1. S IENS=$$IENS^DILF(.DA)
  1. I BTYP="D" S BVAL=$$DATE^BQIUL1(BVAL)
  1. I BTYP="T" S BQIUPD(90505.1151,IENS,.02)=BVAL
  1. I BTYP'="T" S BQIUPD(90505.1151,IENS,.01)=BVAL
  1. D FILE^DIE("","BQIUPD","ERROR")
  1. ; Check if there are associated parameters
  1. D CKAM
  1. Q
  1. ;
  1. SASV(AOWNR,APLIEN,PDA,ADA,VALUE,PTYP) ;EP Single associated parameter
  1. ; Input
  1. ; AOWNR - Panel Owner
  1. ; APLIEN - Panel IEN
  1. ; PDA - Parameter record
  1. ; ADA - Associated parameter record
  1. ; VALUE - Value
  1. ; PTYP - Associate parameter type
  1. NEW DA,IENS
  1. S DA(3)=AOWNR,DA(2)=APLIEN,DA(1)=PDA,DA=ADA
  1. S IENS=$$IENS^DILF(.DA)
  1. I PTYP="D" S VALUE=$$DATE^BQIUL1(VALUE)
  1. I PTYP="T" S BQIUPD(90505.1152,IENS,.03)=VALUE
  1. I PTYP'="T" S BQIUPD(90505.1152,IENS,.02)=VALUE
  1. D FILE^DIE("","BQIUPD","ERROR")
  1. Q
  1. ;
  1. MASV(AOWNR,APLIEN,ADA,ASDA,ASVAL,ASTYP) ;EP Multiple associated parameter values
  1. NEW DA,IENS,DIC,DLAYGO
  1. S DA(4)=AOWNR,DA(3)=APLIEN,DA(2)=ADA,DA(1)=ASDA,X=ASVAL
  1. S DLAYGO=90505.11521,DIC(0)="L",DIC("P")=DLAYGO
  1. S DIC="^BQICARE("_DA(4)_",1,"_DA(3)_",15,"_DA(2)_",2,"_DA(1)_",1,"
  1. I '$D(^BQICARE(DA(4),1,DA(3),15,DA(2),2,DA(1),1,0)) S ^BQICARE(DA(4),1,DA(3),15,DA(2),2,DA(1),1,0)="^90505.11521^^"
  1. K DO,DD D FILE^DICN
  1. S DA=+Y
  1. I DA=-1 S RESULT=-1,QFL=1 Q
  1. S IENS=$$IENS^DILF(.DA)
  1. I ASTYP="D" S ASVAL=$$DATE^BQIUL1(ASVAL)
  1. I ASTYP="T" S BQIUPD(90505.11521,IENS,.02)=ASVAL
  1. I ASTYP'="T" S BQIUPD(90505.11521,IENS,.01)=ASVAL
  1. D FILE^DIE("","BQIUPD","ERROR")
  1. Q
  1. ;
  1. DSC ;EP Generate panel description to include any filters
  1. NEW DA,IENS
  1. S DA(1)=OWNR,DA=PLIEN,IENS=$$IENS^DILF(.DA)
  1. K DESC
  1. D DESC^BQIPDSCM(OWNR,PLIEN,.DESC)
  1. ;D PEN^BQIPLDSC(OWNR,PLIEN,.DESC)
  1. D WP^DIE(90505.01,IENS,5,"","DESC")
  1. K DESC
  1. Q
  1. ;
  1. DEL(OWNR,PLIEN) ;EP - Remove the previous filter parameters
  1. NEW DA,IENS,DIK
  1. S DA(2)=OWNR,DA(1)=PLIEN,DA=0
  1. S DIK="^BQICARE("_DA(2)_",1,"_DA(1)_",15,"
  1. F S DA=$O(^BQICARE(OWNR,1,PLIEN,15,DA)) Q:'DA D ^DIK
  1. Q
  1. ;
  1. CKAS ;EP Check for associated parameters for a single parameter
  1. S ASN="",ACT=1
  1. F S ASN=$O(FILTER(BQQ,MBQ,ASN)) Q:ASN="" D
  1. . ; Check for multiple associated parameters
  1. . S ASSOC=FILTER(BQQ,MBQ,ASN)
  1. . NEW DA,DIC,DLAYGO
  1. . S DA(3)=BOWNR,DA(2)=BPLIEN,DA(1)=BDA,X=ASSOC
  1. . S ATYP=$$PTYP^BQIDCDF(FSOURCE,ASSOC)
  1. . S DLAYGO=90505.1152,DIC(0)="L",DIC("P")=DLAYGO
  1. . S DIC="^BQICARE("_DA(3)_",1,"_DA(2)_",15,"_DA(1)_",2,"
  1. . I '$D(^BQICARE(DA(3),1,DA(2),15,DA(1),2,0)) S ^BQICARE(DA(3),1,DA(2),15,DA(1),2,0)="^90505.1152^^"
  1. . K DO,DD D FILE^DICN
  1. . S (DA,ADA)=+Y
  1. . I DA=-1 S RESULT=-1,QFL=1 Q
  1. . S MVN="",AVCT=1
  1. . F S MVN=$O(FILTER(BQQ,MBQ,ASN,MVN)) Q:MVN="" D
  1. .. S AVAL=FILTER(BQQ,MBQ,ASN,MVN)
  1. .. ; If single associated parameter value
  1. .. I $O(FILTER(BQQ,MBQ,ASN,MVN))="",AVCT=1 D SASV(BOWNR,BPLIEN,BDA,ADA,AVAL,ATYP) Q
  1. .. ; If multiple associated parameter values
  1. .. D MASV(BOWNR,BPLIEN,BDA,ADA,AVAL,ATYP)
  1. .. S AVCT=AVCT+1
  1. Q
  1. ;
  1. CKAM ;EP
  1. S ASN="",ACT=1
  1. F S ASN=$O(FILTER(BQQ,MBQ,ASN)) Q:ASN="" D
  1. . ; Check for multiple associated parameters
  1. . S ASSOC=FILTER(BQQ,MBQ,ASN)
  1. . NEW DA,DIC,DLAYGO
  1. . S DA(4)=BOWNR,DA(3)=BPLIEN,DA(2)=BDA,DA(1)=MDA,X=ASSOC
  1. . S ATYP=$$PTYP^BQIDCDF(FSOURCE,ASSOC)
  1. . S DLAYGO=90505.11512,DIC(0)="L",DIC("P")=DLAYGO
  1. . S DIC="^BQICARE("_DA(4)_",1,"_DA(3)_",15,"_DA(2)_",1,"_DA(1)_",2,"
  1. . I '$D(^BQICARE(DA(4),1,DA(3),15,DA(2),1,DA(1),2,0)) S ^BQICARE(DA(4),1,DA(3),15,DA(2),1,DA(1),2,0)="^90505.11512^^"
  1. . K DO,DD D FILE^DICN
  1. . S (DA,ADA)=+Y
  1. . I DA=-1 S RESULT=-1,QFL=1 Q
  1. . S MVN="",AVCT=1
  1. . F S MVN=$O(FILTER(BQQ,MBQ,ASN,MVN)) Q:MVN="" D
  1. .. S AVAL=FILTER(BQQ,MBQ,ASN,MVN)
  1. .. ; If single associated parameter value
  1. .. I $O(FILTER(BQQ,MBQ,ASN,MVN))="",AVCT=1 D MPSV(BOWNR,BPLIEN,BDA,MDA,ADA,AVAL,ATYP) Q
  1. .. ; If multiple associated parameter values
  1. .. D MPMV(BOWNR,BPLIEN,BDA,MDA,ADA,AVAL,ATYP)
  1. .. S AVCT=AVCT+1
  1. Q
  1. ;
  1. MPSV(AOWNR,APLIEN,PDA,MPDA,ASDA,VALUE,PTYP) ;EP
  1. NEW DA,IENS
  1. S DA(4)=AOWNR,DA(3)=APLIEN,DA(2)=PDA,DA(1)=MPDA,DA=ASDA
  1. S IENS=$$IENS^DILF(.DA)
  1. I PTYP="D" S VALUE=$$DATE^BQIUL1(VALUE)
  1. I PTYP="T" S BQIUPD(90505.11512,IENS,.03)=VALUE
  1. I PTYP'="T" S BQIUPD(90505.11512,IENS,.02)=VALUE
  1. D FILE^DIE("","BQIUPD","ERROR")
  1. Q
  1. ;
  1. MPMV(AOWNR,APLIEN,BDA,MDA,ADA,ASVAL,ATYP) ;EP
  1. NEW DA,IENS,DIC,DLAYGO
  1. S DA(5)=AOWNR,DA(4)=APLIEN,DA(3)=BDA,DA(2)=MDA,DA(1)=ADA,X=ASVAL
  1. S DLAYGO=90505.115121,DIC(0)="L",DIC("P")=DLAYGO
  1. S DIC="^BQICARE("_DA(5)_",1,"_DA(4)_",15,"_DA(3)_",1,"_DA(2)_",2,"_DA(1)_",1,"
  1. I '$D(^BQICARE(DA(5),1,DA(4),15,DA(3),1,DA(2),2,DA(1),1,0)) S ^BQICARE(DA(5),1,DA(4),15,DA(3),1,DA(2),2,DA(1),1,0)="^90505.115121^^"
  1. K DO,DD D FILE^DICN
  1. S DA=+Y
  1. I DA=-1 S RESULT=-1,QFL=1 Q
  1. S IENS=$$IENS^DILF(.DA)
  1. I ATYP="D" S ASVAL=$$DATE^BQIUL1(ASVAL)
  1. I ATYP="T" S BQIUPD(90505.115121,IENS,.02)=ASVAL
  1. I ATYP'="T" S BQIUPD(90505.115121,IENS,.01)=ASVAL
  1. D FILE^DIE("","BQIUPD","ERROR")
  1. Q
  1. ;
  1. SAVL(BOWNR,BPLIEN,BDA,MDA,ASSOC,AVAL,ATYP) ;EP - Add an assoc parameter to a multiple API
  1. NEW DA,DIC,DLAYGO
  1. S DA(4)=BOWNR,DA(3)=BPLIEN,DA(2)=BDA,DA(1)=MDA,X=ASSOC
  1. S DLAYGO=90505.11512,DIC(0)="L",DIC("P")=DLAYGO
  1. S DIC="^BQICARE("_DA(4)_",1,"_DA(3)_",15,"_DA(2)_",1,"_DA(1)_",2,"
  1. I '$D(^BQICARE(DA(4),1,DA(3),15,DA(2),1,DA(1),2,0)) S ^BQICARE(DA(4),1,DA(3),15,DA(2),1,DA(1),2,0)="^90505.11512^^"
  1. K DO,DD D FILE^DICN
  1. S (DA,ADA)=+Y
  1. D MPSV(BOWNR,BPLIEN,BDA,MDA,ADA,AVAL,ATYP)
  1. Q ADA
  1. ;
  1. CON(DATA,OWNR,PLIEN,PARMS) ;EP - For 2.2 conversion
  1. NEW UID,II,X,BN,FSOURCE,PPIEN,PTYP,BQ,BQIUPD,PDATA,MVAL,PDA,QFL,ACT
  1. NEW ASDATA,ASNAME,ASV,AVAL,AVCT,BQQ,CT,MBQ,MVN,RESULT,VAL,FILTER
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIPLFL",UID))
  1. K @DATA
  1. D CV
  1. Q