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

BQIPLCR.m

Go to the documentation of this file.
  1. BQIPLCR ;PRXM/HC/ALA-Create Panel Functions ; 18 Oct 2005 3:45 PM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;**1,3,4**;Apr 18, 2012;Build 66
  1. ;
  1. Q
  1. ;
  1. APTM(DFN) ;EP - Add patient record manually
  1. NEW DIC,DIE,BQIPTUP,IENS,DA,RESULT
  1. S DA(2)=OWNR,DA(1)=PLIEN
  1. S (X,DINUM)="`"_DFN
  1. S DIC="^BQICARE("_DA(2)_",1,"_DA(1)_",40,",DIC(0)="LN"
  1. S DLAYGO=90505.04,DIC(0)="LN"
  1. I '$D(^BQICARE(DA(2),1,DA(1),40,0)) S ^BQICARE(DA(2),1,DA(1),40,0)="^90505.04P^^"
  1. D ^DIC
  1. I +Y=-1 S RESULT=-1 Q
  1. ; Update the user for flags for this patient
  1. I '$D(^BQICARE(DA(2),1,"AB",DFN)) D UPU^BQIFLAG(DFN,OWNR)
  1. ; Update the patient record in panel
  1. S DA=DFN,IENS=$$IENS^DILF(.DA)
  1. S BQIPTUP(90505.04,IENS,.02)="A"
  1. S BQIPTUP(90505.04,IENS,.03)=DUZ
  1. S BQIPTUP(90505.04,IENS,.04)=$$NOW^XLFDT()
  1. S BQIPTUP(90505.04,IENS,.08)=$S($$FLG^BQIULPT(OWNR,PLIEN,DFN)="Y":1,1:0)
  1. D FILE^DIE("","BQIPTUP","ERROR")
  1. I $D(ERROR) S RESULT=-1 Q
  1. S RESULT=1
  1. Q
  1. ;
  1. APMTC(CDATA,CTYP,CDFN) ;EP - Add a patient's matched criteria
  1. NEW DIC,DIE,DA,MTC
  1. S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=CDFN,X=CTYP
  1. I $G(^BQICARE(DA(3),1,DA(2),40,DA(1),0))="" Q
  1. S DIC="^BQICARE("_DA(3)_",1,"_DA(2)_",40,"_DA(1)_",5,",DIC(0)="LN"
  1. S DLAYGO=90505.18,DIC(0)="LN"
  1. I '$D(^BQICARE(DA(3),1,DA(2),40,DA(1),5,0)) S ^BQICARE(DA(3),1,DA(2),40,DA(1),5,0)="^90505.18^^"
  1. D ^DIC
  1. I +Y=-1 Q
  1. S MTC=+Y
  1. ; update the records
  1. K DA
  1. S DA(4)=OWNR,DA(3)=PLIEN,DA(2)=CDFN,DA(1)=MTC
  1. S DIC="^BQICARE("_DA(4)_",1,"_DA(3)_",40,"_DA(2)_",5,"_DA(1)_",1,",DIC(0)="LN"
  1. S DLAYGO=90505.181,DIC(0)="LN"
  1. I '$D(^BQICARE(DA(4),1,DA(3),40,DA(2),5,DA(1),1,0)) S ^BQICARE(DA(4),1,DA(3),40,DA(2),5,DA(1),1,0)="^90505.181^^"
  1. S CDA="" F S CDA=$O(@CDATA@(CTYP,CDFN,CDA)) Q:CDA="" D
  1. . S X=CDA
  1. . D ^DIC S DA=+Y I DA=-1 Q
  1. . ;M ^BQICARE(DA(4),1,DA(3),40,DA(2),5,DA(1),1,DA)=@CDATA@(CTYP,CDFN,CDA)
  1. Q
  1. ;
  1. RPTM(DFN) ;EP - Remove patient record manually
  1. NEW DA,IENS,BQIPTUP,RESULT
  1. S DA(2)=OWNR,DA(1)=PLIEN
  1. S DA=DFN,IENS=$$IENS^DILF(.DA)
  1. S BQIPTUP(90505.04,IENS,.02)="R"
  1. S BQIPTUP(90505.04,IENS,.05)=DUZ
  1. S BQIPTUP(90505.04,IENS,.06)=$$NOW^XLFDT()
  1. S BQIPTUP(90505.04,IENS,.08)=0
  1. D FILE^DIE("","BQIPTUP","ERROR")
  1. I $D(ERROR) S RESULT=-1 Q
  1. S RESULT=1
  1. Q
  1. ;
  1. APT(DFN) ;EP - Add patient
  1. NEW DIC,DIE,BQIPTUP,DA,IENS,X
  1. S DA(2)=OWNR,DA(1)=PLIEN,(X,DINUM)=DFN
  1. S DIC="^BQICARE("_DA(2)_",1,"_DA(1)_",40,",DIE=DIC
  1. S DLAYGO=90505.04,DIC(0)="L",DIC("P")=DLAYGO
  1. I '$D(^BQICARE(DA(2),1,DA(1),40,0)) S ^BQICARE(DA(2),1,DA(1),40,0)="^90505.04P^^"
  1. K DO,DD D FILE^DICN
  1. I +Y=-1 Q
  1. S DA=+Y,IENS=$$IENS^DILF(.DA)
  1. S BQIPTUP(90505.04,IENS,.07)=$$NOW^XLFDT()
  1. D FILE^DIE("","BQIPTUP","ERROR")
  1. ; Update the user for flags for this patient
  1. D UPU^BQIFLAG(DFN,OWNR)
  1. Q
  1. ;
  1. DPT(DFN) ;EP - Delete patient
  1. ;
  1. ;Input
  1. ; DFN - Patient internal entry number
  1. NEW DIK,DA
  1. S DA(2)=OWNR,DA(1)=PLIEN
  1. S DA=DFN,DIK="^BQICARE("_DA(2)_",1,"_DA(1)_",40,"
  1. D ^DIK
  1. Q
  1. ;
  1. CNTP(OWNR,PLIEN) ;EP - Count patients and file the total
  1. ;
  1. ;Input
  1. ; OWNR - Owner of the panel
  1. ; PLIEN - Panel internal entry number
  1. ;
  1. NEW DA,PIENS,DFN,IENS,CNT,BQIUP,SFLG
  1. S DA(1)=OWNR,DA=PLIEN,PIENS=$$IENS^DILF(.DA)
  1. S DFN=0,CNT=0,SFLG=0
  1. F S DFN=$O(^BQICARE(OWNR,1,PLIEN,40,DFN)) Q:'DFN D
  1. . S DA(2)=OWNR,DA(1)=PLIEN,DA=DFN,IENS=$$IENS^DILF(.DA)
  1. . I $$GET1^DIQ(90505.04,IENS,.02,"I")="R" Q
  1. . S CNT=CNT+1
  1. . ; Check for sensitive patient
  1. . I $$SENS^BQIULPT(DFN)="Y" S SFLG=1
  1. . ; Set flags for patient
  1. . D UPU^BQIFLAG(DFN,OWNR)
  1. ;
  1. S BQIUP(90505.01,PIENS,.1)=CNT
  1. S BQIUP(90505.01,PIENS,.07)=$$NOW^XLFDT()
  1. S BQIUP(90505.01,PIENS,3.5)=DUZ
  1. S BQIUP(90505.01,PIENS,3.6)=SFLG
  1. D FILE^DIE("I","BQIUP")
  1. ;
  1. ; Count flags for panel
  1. D CNTP^BQIFLG(OWNR,PLIEN)
  1. Q
  1. ;
  1. CRPNL(DATA,OWNR,PLIEN,PLNM,PLDES,SRCNM,SRC,FSOURCE,AUFL,STATUS,ASSOC,IPCPL,PCAT) ; Create/Update a new panel
  1. ; EP - BQI SET PANEL DEF
  1. ; Description
  1. ; Adds/updates a panel using the user defined panel name and description.
  1. ; If no name is passed, generates a temporary name which is a composite
  1. ; of "TEMP PANEL " and the last assigned panel ien plus 1.
  1. ; If no Panel IEN is passed then it generates a new one.
  1. ; Input:
  1. ; OWNR - Owner of the panel
  1. ; PLIEN - Panel internal entry number (if blank, a new panel is being created)
  1. ; PLNM - User defined panel name (optional)
  1. ; PLDES - User defined panel description (optional)
  1. ; SRCNM - Source name (optional)
  1. ; SRC - Source type (optional)
  1. ; FSOURCE - Filter source name (optional)
  1. ; AUFL - Autopopulate flag
  1. ; STATUS - I=in progress, T=temporary, @=remove status flag
  1. ; ASSOC - associated panel IEN (either existing to TEMP or vice versa), @=remove association
  1. ; IPCPL - IPC Panel flag
  1. ; PCAT - Category for folder grouping
  1. ; Output:
  1. ; PLIEN - panel IEN
  1. ; PLID - panel ID (owner and panel ien)
  1. ; PLNM - panel name
  1. ; or
  1. ; BMXSEC - if record can't be locked or if $D(ERROR)
  1. ; when filing or M error encountered
  1. ;
  1. N UID,X,BQII,PLID,TMP
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIPLCR",UID))
  1. K ^TMP("BQIPLCR",UID)
  1. ;
  1. S AUFL=$G(AUFL),SRCNM=$G(SRCNM),SRC=$G(SRC),FSOURCE=$G(FSOURCE)
  1. S PLNM=$G(PLNM),PLDES=$G(PLDES),PLIEN=$G(PLIEN),STATUS=$G(STATUS)
  1. S ASSOC=$G(ASSOC),IPCPL=$G(IPCPL),PCAT=$G(PCAT)
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIPLCR D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. ; Create owner if new to iCare - If unable to do so - error
  1. I '$$OWNR^BQIPLUSR(OWNR) S BMXSEC="Unable to create panel" Q
  1. ;
  1. ; Check that panel name is unique
  1. I PLNM'="" D Q:$G(BMXSEC)'=""
  1. . N DA,IENS,ERROR
  1. . S DA(1)=OWNR,DA=""
  1. . S IENS=$$IENS^DILF(.DA)
  1. . S TMP=$$FIND1^DIC(90505.01,IENS,"X",PLNM,"","","ERROR")
  1. . I TMP=0 Q ; Name not currently in use
  1. . I PLIEN=TMP Q ; Name in use on the panel being edited
  1. . S BMXSEC="Panel name already exists" ; Name in use on another panel
  1. . Q
  1. ;
  1. ; Create header record
  1. S BQII=0,^TMP("BQIPLCR",UID,BQII)="I00010PANEL_IEN^T00020PANEL_ID^T00120PANEL_NAME"_$C(30)
  1. ;
  1. ;If no panel IEN entered, assign a new one
  1. I PLIEN="" D Q:$G(BMXSEC)'=""
  1. . L +^BQICARE(OWNR,1,0):5
  1. . I '$T S BMXSEC="Unable to create panel" Q ; Error - unable to assign next panel IEN
  1. . I '$D(^BQICARE(OWNR,1,0)) S ^BQICARE(OWNR,1,0)="^90505.01^^"
  1. . ;If no panel name entered, assign a temporary name
  1. . I PLNM="" D
  1. .. N PLN
  1. .. S PLN=$P(^BQICARE(OWNR,1,0),"^",3)+1
  1. .. S PLNM=$$TMPNM(PLN)
  1. .. I $D(^BQICARE(OWNR,1,"B",PLNM)) D
  1. ... S PLN=$O(^BQICARE(OWNR,1,"B","TEMP PANEL A"),-1)
  1. ... S PLN=$P(PLNM,"TEMP PANEL ",2)+1,PLNM=$$TMPNM(PLN)
  1. . ;Filing is included in structured do to allow locks to frame the
  1. . ;assignment of the IEN and the record filing
  1. . D FILE
  1. . ;
  1. . ;Copy User Templates into Panel
  1. . D TMPL(OWNR,PLIEN)
  1. . ;
  1. . L -^BQICARE(OWNR,1,0)
  1. D UPD Q:$G(BMXSEC)'=""
  1. G DONE
  1. ;
  1. FILE ;File new panel
  1. N DA,X,DINUM,DIC,DIE,DLAYGO
  1. S DA(1)=OWNR,X=PLNM,DLAYGO=90505.01
  1. S DIC="^BQICARE("_DA(1)_",1,",DIE=DIC
  1. S DIC(0)="L",DIC("P")=DLAYGO
  1. K DO,DD D FILE^DICN
  1. S (DA,PLIEN)=+Y
  1. I PLIEN=-1 S BMXSEC="Error encountered while filing panel." Q
  1. ;I $G(ASSOC)'="" D CPY^BQIPLCP(OWNR,ASSOC,.PLIEN,1)
  1. I $G(ASSOC)'="" D CPY(OWNR,PLIEN,ASSOC)
  1. Q
  1. ;
  1. UPD ; Update panel definition values
  1. NEW DA,IENS,BQIPLUP,ERROR,OPLNM
  1. S DA(1)=OWNR,DA=PLIEN
  1. S IENS=$$IENS^DILF(.DA)
  1. ;
  1. D CHK
  1. ;
  1. I $$GET1^DIQ(90505.01,IENS,.02,"I")="" S BQIPLUP(90505.01,IENS,.02)=$$NOW^XLFDT()
  1. S BQIPLUP(90505.01,IENS,.04)=DUZ
  1. S BQIPLUP(90505.01,IENS,.05)=$$NOW^XLFDT()
  1. S BQIPLUP(90505.01,IENS,3.7)=DUZ(2)
  1. ;
  1. I ASSOC'="" S OPLNM=$P(^BQICARE(OWNR,1,ASSOC,0),U,1)
  1. I ASSOC="" S OPLNM=$$GET1^DIQ(90505.01,IENS,.01,"E")
  1. ;
  1. I PLNM]"" D
  1. . I OPLNM="" S BQIPLUP(90505.01,IENS,.01)=PLNM Q
  1. . S BQIPLUP(90505.01,IENS,.01)=PLNM
  1. . ; Check if panel is a specified panel and update with new panel name
  1. . I $D(^BQICARE("SPNL",OPLNM,OWNR)) S BQIPLUP(90505,OWNR_",",.03)=PLNM
  1. . ; Check if any filters have this panel name
  1. . I STATUS="T"!(ASSOC'="") Q
  1. . NEW PLIDEN,TUSR,TPNL,TN,NPLIDEN,TNN
  1. . S PLIDEN=OWNR_$C(26)_OPLNM,TUSR="",NPLIDEN=OWNR_$C(26)_PLNM
  1. . F S TUSR=$O(^BQICARE("AD",PLIDEN,TUSR)) Q:TUSR="" D
  1. .. S TPNL=""
  1. .. F S TPNL=$O(^BQICARE("AD",PLIDEN,TUSR,TPNL)) Q:TPNL="" D
  1. ... S TN=""
  1. ... F S TN=$O(^BQICARE("AD",PLIDEN,TUSR,TPNL,TN)) Q:TN="" D
  1. .... I ^BQICARE(TUSR,1,TPNL,15,TN,0)'="PLIDEN" Q
  1. .... S TNN=0
  1. .... F S TNN=$O(^BQICARE(TUSR,1,TPNL,15,TN,1,TNN)) Q:'TNN D
  1. ..... I $P(^BQICARE(TUSR,1,TPNL,15,TN,1,TNN,0),U,1)=PLIDEN D
  1. ...... S $P(^BQICARE(TUSR,1,TPNL,15,TN,1,TNN,0),U,1)=NPLIDEN
  1. ...... K ^BQICARE(TUSR,1,TPNL,15,TN,1,"B",PLIDEN,TNN)
  1. ...... S ^BQICARE(TUSR,1,TPNL,15,TN,1,"B",NPLIDEN,TNN)=""
  1. ...... K ^BQICARE("AD",PLIDEN,TUSR,TPNL,TN)
  1. ...... S ^BQICARE("AD",NPLIDEN,TUSR,TPNL,TN)=""
  1. ;
  1. I PLNM="" D
  1. . I ASSOC'="" S PLNM=OPLNM
  1. ;
  1. I PLDES]"" S BQIPLUP(90505.01,IENS,1)=PLDES
  1. I SRC]"" S BQIPLUP(90505.01,IENS,.03)=SRC
  1. I SRCNM]"" S BQIPLUP(90505.01,IENS,.11)=SRCNM
  1. I FSOURCE]"" S BQIPLUP(90505.01,IENS,.14)=FSOURCE
  1. I AUFL]"" S BQIPLUP(90505.01,IENS,.06)=AUFL
  1. I STATUS]"" S BQIPLUP(90505.01,IENS,.13)=STATUS
  1. I ASSOC]"" S BQIPLUP(90505.01,IENS,.15)=ASSOC
  1. I IPCPL'="" S BQIPLUP(90505.01,IENS,2.1)=$S(IPCPL="Y":1,1:IPCPL)
  1. ;I IPCPL="" S BQIPLUP(90505.01,IENS,2.1)="@"
  1. I PCAT'="" D
  1. . I OWNR=DUZ S BQIPLUP(90505.01,IENS,2.2)=PCAT Q
  1. . NEW DA,IENS
  1. . S DA(2)=OWNR,DA(1)=PLIEN,DA=DUZ,IENS=$$IENS^DILF(.DA)
  1. . S BQIPLUP(90505.03,IENS,.06)=PCAT
  1. ;
  1. ;I PCAT="" S BQIPLUP(90505.01,IENS,2.2)="@"
  1. D FILE^DIE("","BQIPLUP","ERROR")
  1. I $D(ERROR) S BMXSEC="Error encountered while filing panel." Q
  1. ;
  1. ; Send notification
  1. I $G(STATUS)'="T" D
  1. . NEW TEXT
  1. . I OPLNM'=PLNM S TEXT="Panel name changed from "_OPLNM_" to "_PLNM_"."
  1. . E S TEXT="Panel Definition for "_OPLNM_" has been modified."
  1. . D UPD^BQINOTF(OWNR,PLIEN,TEXT)
  1. ;
  1. ; Return panel IEN, ID, and NAME on success
  1. S PLID=$$PLID^BQIUG1(OWNR,PLIEN)
  1. S BQII=BQII+1,^TMP("BQIPLCR",UID,BQII)=PLIEN_"^"_PLID_"^"_PLNM_$C(30)
  1. Q
  1. ;
  1. TMPNM(NM) ;EP -- Return temporary panel name
  1. S NM=$E("0000000000",1,10-$L(NM))_NM
  1. Q "TEMP PANEL "_NM
  1. ;
  1. ERR ;
  1. L -^BQICARE(OWNR,1,0)
  1. D ^%ZTER
  1. N Y,ERRDTM
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
  1. S BMXSEC="Recording that an error occurred at "_ERRDTM
  1. ; If a temporary panel was created when an error occurred, delete it
  1. I $G(ASSOC)'="" D
  1. . NEW DA,DIK
  1. . S DA(1)=OWNR,DA=PLIEN
  1. . S DIK="^BQICARE("_DA(1)_",1,"
  1. . D ^DIK
  1. Q
  1. ;
  1. DONE ; -- exit code
  1. S BQII=BQII+1,^TMP("BQIPLCR",UID,BQII)=$C(31)
  1. Q
  1. ;
  1. CHK ; Check Source Type changed to Manual
  1. ; If the panel is already Manual and is changed to manual, quit
  1. I $$GET1^DIQ(90505.01,IENS,.03,"I")="M",SRC="M" Q
  1. ; If the panel is not manual and is not being changed to manual, quit
  1. I $$GET1^DIQ(90505.01,IENS,.03,"I")'="M",SRC'="M" Q
  1. ; If changing a panel to a manual from any other definition type,
  1. ; set all users not having a manual flag, the manual flag of 'Add'.
  1. NEW DFN
  1. S DFN=0
  1. F S DFN=$O(^BQICARE(OWNR,1,PLIEN,40,DFN)) Q:'DFN D
  1. . I $P(^BQICARE(OWNR,1,PLIEN,40,DFN,0),U,2)'="" Q
  1. . S $P(^BQICARE(OWNR,1,PLIEN,40,DFN,0),U,2)="A"
  1. . S $P(^BQICARE(OWNR,1,PLIEN,40,DFN,0),U,4)=$$NOW^XLFDT()
  1. Q
  1. ;
  1. CPY(OWNR,PLIEN,OPLIEN) ;EP - Copy a temporary panel
  1. S $P(^BQICARE(OWNR,1,PLIEN,0),U,2,14)=$P(^BQICARE(OWNR,1,OPLIEN,0),U,2,14)
  1. ;
  1. ; Copy PANEL DESCRIPTION
  1. I $D(^BQICARE(OWNR,1,OPLIEN,1)) M ^BQICARE(OWNR,1,PLIEN,1)=^BQICARE(OWNR,1,OPLIEN,1)
  1. ;
  1. ; Copy Panel information
  1. I $D(^BQICARE(OWNR,1,OPLIEN,3)) M ^BQICARE(OWNR,1,PLIEN,3)=^BQICARE(OWNR,1,OPLIEN,3)
  1. ;
  1. ; Copy GENERATED DESCRIPTION
  1. I $D(^BQICARE(OWNR,1,OPLIEN,5)) M ^BQICARE(OWNR,1,PLIEN,5)=^BQICARE(OWNR,1,OPLIEN,5)
  1. ;
  1. ; Copy PARAMETER DEFINITION
  1. I $D(^BQICARE(OWNR,1,OPLIEN,10)) M ^BQICARE(OWNR,1,PLIEN,10)=^BQICARE(OWNR,1,OPLIEN,10)
  1. ;
  1. ; Copy FILTER DEFINITION
  1. I $D(^BQICARE(OWNR,1,OPLIEN,15)) M ^BQICARE(OWNR,1,PLIEN,15)=^BQICARE(OWNR,1,OPLIEN,15)
  1. ;
  1. ; Copy CUSTOMIZED VIEW
  1. I $D(^BQICARE(OWNR,1,OPLIEN,20)) M ^BQICARE(OWNR,1,PLIEN,20)=^BQICARE(OWNR,1,OPLIEN,20)
  1. ;
  1. ; Copy SHARED USERS
  1. I $D(^BQICARE(OWNR,1,OPLIEN,30)) M ^BQICARE(OWNR,1,PLIEN,30)=^BQICARE(OWNR,1,OPLIEN,30)
  1. ;
  1. ; Copy PATIENT LIST
  1. I $D(^BQICARE(OWNR,1,OPLIEN,40)) M ^BQICARE(OWNR,1,PLIEN,40)=^BQICARE(OWNR,1,OPLIEN,40)
  1. ;
  1. ; Update cross references for merged entries
  1. S DIK="^BQICARE("_DA(1)_",1,"
  1. D IX^DIK
  1. Q
  1. ;
  1. ;Copy template information into new panels
  1. TMPL(OWNR,PLIEN) ;EP - Copy template information into new panel
  1. ;
  1. N IEN
  1. I $G(OWNR)="" Q ;Quit if no owner
  1. I $G(PLIEN)="" Q ;Quit if no panel ien
  1. ;
  1. ;Quit if template node has already been set up
  1. I $O(^BQICARE(OWNR,1,PLIEN,4,0))]"" Q
  1. ;
  1. ;Quit if user has no defined templates
  1. I $O(^BQICARE(OWNR,15,0))="" Q
  1. ;
  1. ;Set top node
  1. I '$D(^BQICARE(OWNR,1,PLIEN,4,0)) S ^BQICARE(OWNR,1,PLIEN,4,0)="^90505.14^^"
  1. ;
  1. ;Loop through user templates and move to panel
  1. S IEN=0 F S IEN=$O(^BQICARE(OWNR,15,IEN)) Q:'IEN D
  1. . ;
  1. . N BQDATA,DA,DIC,ERROR,IENS,TMPLT,TMPLN,X,Y
  1. . ;
  1. . ;Get the template
  1. . S DA(1)=OWNR,DA=IEN
  1. . S IENS=$$IENS^DILF(.DA)
  1. . S TMPLN=$$GET1^DIQ(90505.015,IENS,.01,"E")
  1. . ;
  1. . ;Only copy if set to default
  1. . I $$GET1^DIQ(90505.015,IENS,.03,"I")'="Y" Q
  1. . ;
  1. . ;Get the code
  1. . S TMPLT=$$GET1^DIQ(90505.015,IENS,.02,"I")
  1. . ;
  1. . ;Lookup/Define new entry
  1. . S DA(2)=OWNR,DA(1)=PLIEN
  1. . S X=TMPLN
  1. . S DIC(0)="L",DIC="^BQICARE("_DA(2)_",1,"_DA(1)_",4,"
  1. . D ^DIC
  1. . S:+Y>0 DA=+Y
  1. . S IENS=$$IENS^DILF(.DA)
  1. . ;
  1. . ;Insert TYPE
  1. . S BQDATA(90505.14,IENS,".02")=TMPLT
  1. . ;
  1. . ;File update
  1. . I $D(BQDATA) D FILE^DIE("","BQDATA","ERROR")