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

BQITMPLS.m

Go to the documentation of this file.
  1. BQITMPLS ;VNGT/HS/BEE-Template Add/Edit/Delete/Share ; 05 May 2011 12:06 PM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;**3,4**;Apr 18, 2012;Build 66
  1. ;
  1. Q
  1. ;
  1. DIST(DATA,TIEN,OWNR) ;EP -- BQI GET TMP DIST LIST
  1. ;
  1. ;Description
  1. ; Get the Distribution List for the Template
  1. ;Input
  1. ; TIEN - The IEN of the Template
  1. ; OWNR - If not use DUZ
  1. ;Output
  1. ; DATA - name of global (passed by reference) in which the data
  1. ; is stored
  1. ;Expects
  1. ; DUZ - the internal entry number of the person signed on
  1. ;
  1. S:$G(OWNR)="" OWNR=DUZ
  1. ;
  1. ;Check for existence of template
  1. I TIEN="" S BMXSEC="Template IEN is missing" Q
  1. I '$D(^BQICARE(OWNR,15,TIEN)) S BMXSEC="Template isn't defined" Q
  1. ;
  1. NEW UID,II,TMPLT,DA,IEN
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQITMPLS",UID))
  1. K @DATA
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQITMPLS D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S II=0
  1. S @DATA@(II)="I00010USER^I00040USER_NAME^D00030DATE_DISTRIBUTED^T00001DELETED^I00010USER_TMPIEN"_$C(30)
  1. ;
  1. S DA=TIEN,DA(1)=OWNR,IEN=$$IENS^DILF(.DA)
  1. D GETS^DIQ(90505.015,IEN,"2*","IE","TMPLT")
  1. ;
  1. S IEN="" F S IEN=$O(TMPLT(90505.152,IEN)) Q:IEN="" D
  1. . ;
  1. . NEW USERID,USERNM,DTTM,DELT,UIEN
  1. . S USERID=$G(TMPLT(90505.152,IEN,.01,"I")) Q:USERID=""
  1. . S USERNM=$G(TMPLT(90505.152,IEN,.01,"E"))
  1. . S DTTM=$G(TMPLT(90505.152,IEN,.02,"I"))
  1. . S DELT=$G(TMPLT(90505.152,IEN,.03,"I"))
  1. . S UIEN=$G(TMPLT(90505.152,IEN,.04,"I"))
  1. . S II=II+1,@DATA@(II)=USERID_U_USERNM_U_$$FMTE^BQIUL1(DTTM)_U_DELT_U_UIEN_$C(30)
  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
  1. ;
  1. UPLOAD(DATA,OWNR,TIEN) ;EP -- BQI TEMPLATE UPLOAD
  1. ;
  1. ;Description
  1. ; Upload the template to the directory
  1. ;Input
  1. ; OWNR - The template owner
  1. ; TIEN - The IEN of the Template
  1. ;
  1. ;Output
  1. ; DATA - name of global (passed by reference) in which the data
  1. ; is stored
  1. ;Expects
  1. ; DUZ - the internal entry number of the person signed on
  1. ;
  1. S:$G(OWNR)="" OWNR=DUZ
  1. ;
  1. ;Check for existence of template
  1. I TIEN="" S BMXSEC="Template IEN is missing" Q
  1. I '$D(^BQICARE(OWNR,15,TIEN)) S BMXSEC="Template isn't defined" Q
  1. ;
  1. NEW UID,II,TMPLT,DA,IENS,DIC,X,Y,DIEN,OIEN,ERROR,BQIUPD,DLAYGO
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQITMPLS",UID))
  1. K @DATA
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQITMPLS D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S II=0
  1. S @DATA@(II)="T00001RESULT"_$C(30)
  1. ;
  1. S DA=TIEN,DA(1)=OWNR,IENS=$$IENS^DILF(.DA)
  1. D GETS^DIQ(90505.015,IENS,"**","I","TMPLT")
  1. ;
  1. ;Look for existing entry or create new one
  1. S X=$G(TMPLT("90505.015",IENS,".01","I")) I X="" G XUPLD
  1. S X=OWNR_X
  1. S DIC(0)="XL",DIC="^BQI(90508.1,",DLAYGO=90508.1
  1. D ^DIC
  1. I Y="-1" S BMXSEC="UNABLE TO UPLOAD ENTRY" Q
  1. S DIEN=+Y
  1. ;
  1. ;If existing entry delete existing data
  1. I $$GET1^DIQ(90508.1,DIEN_",",".02","I")]"" D
  1. . ;
  1. . N DA,DIK
  1. . S DIK="^BQI(90508.1,"_DIEN_",10,"
  1. . S DA(1)=DIEN
  1. . S DA=0 F S DA=$O(^BQI(90508.1,DIEN,10,DA)) Q:'DA D ^DIK
  1. ;
  1. ;Save template in ICARE USER TEMPLATES
  1. ;
  1. S OIEN=$O(TMPLT("90505.015",""))
  1. I OIEN]"" D
  1. . NEW BQIUPD
  1. . S BQIUPD("90508.1",DIEN_",",".02")=$G(TMPLT("90505.015",OIEN,".02","I"))
  1. . S BQIUPD("90508.1",DIEN_",",".03")=$G(TMPLT("90505.015",OIEN,".01","I"))
  1. . S BQIUPD("90508.1",DIEN_",",".04")=$G(TMPLT("90505.015",OIEN,".04","I"))
  1. . S BQIUPD("90508.1",DIEN_",",".05")=DUZ
  1. . S BQIUPD("90508.1",DIEN_",",".06")=$$NOW^XLFDT()
  1. . I $D(BQIUPD) D FILE^DIE("","BQIUPD","ERROR")
  1. ;
  1. S OIEN="" F S OIEN=$O(TMPLT("90505.151",OIEN)) Q:OIEN="" D
  1. . N FIEN,X,DIC,Y,DA,FLD
  1. . ;
  1. . ;Add field .01 field
  1. . S X=$G(TMPLT("90505.151",OIEN,".01","I")) I X="" Q
  1. . S DA(1)=DIEN
  1. . S DIC(0)="XL",DIC="^BQI(90508.1,"_DIEN_",10,"
  1. . D ^DIC
  1. . I Y="-1" S BMXSEC="UNABLE TO UPLOAD ENTRY" Q
  1. . S FIEN=+Y
  1. . ;
  1. . ;Save each field
  1. . S FLD="" F S FLD=$O(TMPLT("90505.151",OIEN,FLD)) Q:FLD="" D
  1. .. N IENS
  1. .. S IENS=FIEN_","_DIEN_","
  1. .. S BQIUPD("90508.11",IENS,FLD)=$G(TMPLT("90505.151",OIEN,FLD,"I"))
  1. . ;
  1. . ;File entry in new
  1. . I $D(BQIUPD) D FILE^DIE("","BQIUPD","ERROR")
  1. I $D(ERROR) S II=II+1,@DATA@(II)="-1"_$C(30)
  1. E S II=II+1,@DATA@(II)="1"_$C(30)
  1. ;
  1. XUPLD S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. LIST(DATA,FAKE) ;EP -- BQI GET TEMPLATE LIST
  1. ;
  1. ;Description
  1. ; Get the list of available templates
  1. ;
  1. ;Output
  1. ; DATA - name of global (passed by reference) in which the data
  1. ; is stored
  1. ;Expects
  1. ; DUZ - the internal entry number of the person signed on
  1. ;
  1. NEW UID,II,IEN
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQITMPLS",UID))
  1. K @DATA
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQITMPLS D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S II=0
  1. S @DATA@(II)="I00010HIDE_TMP_IEN^T00001TMP_TYPE^T00040TMP_NAME^I00010TMP_AUTHOR_IEN^T00050TMP_AUTHOR^D00030DT_LAST_EDIT^D00030DT_UPLOAD"_$C(30)
  1. ;
  1. S IEN=0 F S IEN=$O(^BQI(90508.1,IEN)) Q:'IEN D
  1. . ;
  1. . NEW TMP,IENS,INAME,TTYPE,TNAME,TAUTH,TLEDT,TUPDT,DAUTH
  1. . S IENS=IEN_","
  1. . D GETS^DIQ(90508.1,IENS,".01:.06","I","TMP")
  1. . ;
  1. . S INAME=$G(TMP(90508.1,IENS,.01,"I"))
  1. . S TTYPE=$G(TMP(90508.1,IENS,.02,"I"))
  1. . S TNAME=$G(TMP(90508.1,IENS,.03,"I"))
  1. . S TAUTH=$G(TMP(90508.1,IENS,.05,"I"))
  1. . S DAUTH="" S:TAUTH]"" DAUTH=$$GET1^DIQ(200,TAUTH_",",".01","E")
  1. . S TLEDT=$$FMTE^BQIUL1($G(TMP(90508.1,IENS,.04,"I")))
  1. . S TUPDT=$$FMTE^BQIUL1($G(TMP(90508.1,IENS,.06,"I")))
  1. . ;
  1. . S II=II+1,@DATA@(II)=IEN_U_TTYPE_U_TNAME_U_TAUTH_U_DAUTH_U_TLEDT_U_TUPDT_$C(30)
  1. ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. ;
  1. DNLOAD(DATA,OWNR,TIEN) ;EP -- BQI DOWNLOAD TEMPLATE
  1. ;
  1. ;Description
  1. ; Download the template to the user's account
  1. ;Input
  1. ; OWNR - The iCare user to copy the template to
  1. ; TIEN - The IEN of the template in 90508.1
  1. ;
  1. ;Output
  1. ; DATA - name of global (passed by reference) in which the data
  1. ; is stored
  1. ;Expects
  1. ; DUZ - the internal entry number of the person signed on
  1. ;
  1. S:$G(OWNR)="" OWNR=DUZ
  1. ;
  1. ;Check for existence of template
  1. I TIEN="" S BMXSEC="Template IEN is missing" Q
  1. I '$D(^BQI(90508.1,TIEN)) S BMXSEC="Template isn't defined" Q
  1. ;
  1. NEW UID,II,TMPLT,DIC,X,Y,DIEN,IENS,AUTHOR,LSTEDT,LEN,DA,OIEN,ERROR,BQIUPD
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQITMPLS",UID))
  1. K @DATA
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQITMPLS D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S II=0
  1. S @DATA@(II)="T00001RESULT"_$C(30)
  1. ;
  1. D GETS^DIQ(90508.1,TIEN_",","**","I","TMPLT")
  1. ;
  1. ;Look for existing entry or create new one
  1. ;
  1. ;Get template author
  1. S AUTHOR=$G(TMPLT("90508.1",TIEN_",",".05","I"))
  1. I AUTHOR]"" S AUTHOR=$$GET1^DIQ(200,AUTHOR_",",.01,"E")
  1. ;
  1. ;Get template last edit date
  1. S LSTEDT=$G(TMPLT("90508.1",TIEN_",",".04","I"))
  1. I LSTEDT]"" S LSTEDT=$$FMTE^BQIUL1(LSTEDT)
  1. ;
  1. ;Create entry in 90505.015
  1. S X=$S(AUTHOR]"":AUTHOR,1:"")_$S((AUTHOR]""&(LSTEDT]"")):"-",1:"")_LSTEDT
  1. S:X]"" X="-"_X
  1. S LEN=80-$L(X)
  1. S X=$E($G(TMPLT("90508.1",TIEN_",",".03","I")),1,LEN)_X I X="" G XDNLD
  1. S DA(1)=OWNR
  1. S DIC(0)="XL",DIC="^BQICARE("_DA(1)_",15,"
  1. D ^DIC
  1. I Y="-1" S BMXSEC="UNABLE TO DOWNLOAD ENTRY" Q
  1. S DIEN=+Y
  1. ;
  1. ;If existing entry delete existing data
  1. S DA=DIEN,DA(1)=OWNR,IENS=$$IENS^DILF(.DA)
  1. I $$GET1^DIQ(90505.015,IENS,".02","I")]"" D
  1. . ;
  1. . N DA,DIK
  1. . S DIK="^BQICARE("_OWNR_",15,"_DIEN_",1,"
  1. . S DA(2)=OWNR,DA(1)=DIEN
  1. . S DA=0 F S DA=$O(^BQICARE(OWNR,15,DIEN,1,DA)) Q:'DA D ^DIK
  1. ;
  1. ;Save template in ICARE USER
  1. ;
  1. S OIEN=$O(TMPLT("90508.1",""))
  1. I OIEN]"" D
  1. . N DA,IENS,BQIUPD
  1. . S DA(1)=OWNR,DA=DIEN,IENS=$$IENS^DILF(.DA)
  1. . S BQIUPD("90505.015",IENS,".02")=$G(TMPLT("90508.1",OIEN,".02","I"))
  1. . S BQIUPD("90505.015",IENS,".04")=$G(TMPLT("90508.1",OIEN,".04","I"))
  1. . S BQIUPD("90505.015",IENS,".05")="Y"
  1. . I $D(BQIUPD) D FILE^DIE("","BQIUPD","ERROR")
  1. ;
  1. S OIEN="" F S OIEN=$O(TMPLT("90508.11",OIEN)) Q:OIEN="" D
  1. . N FIEN,X,DIC,Y,DA,FLD,BQIUPD
  1. . ;
  1. . ;Add field .01 field
  1. . S X=$G(TMPLT("90508.11",OIEN,".01","I")) I X="" Q
  1. . S DA(2)=OWNR,DA(1)=DIEN
  1. . S DIC(0)="XL",DIC="^BQICARE("_DA(2)_",15,"_DA(1)_",1,"
  1. . D ^DIC
  1. . I Y="-1" S BMXSEC="UNABLE TO DOWNLOAD ENTRY" Q
  1. . S FIEN=+Y
  1. . ;
  1. . ;Save each field
  1. . S FLD="" F S FLD=$O(TMPLT("90508.11",OIEN,FLD)) Q:FLD="" D
  1. .. N IENS
  1. .. S IENS=FIEN_","_DIEN_","_OWNR_","
  1. .. S BQIUPD("90505.151",IENS,FLD)=$G(TMPLT("90508.11",OIEN,FLD,"I"))
  1. . ;
  1. . ;File entry in new
  1. . I $D(BQIUPD) D FILE^DIE("","BQIUPD","ERROR")
  1. I $D(ERROR) S II=II+1,@DATA@(II)="-1"_$C(30)
  1. E S II=II+1,@DATA@(II)="1"_$C(30)
  1. ;
  1. XDNLD S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. DTMPSET(DTYP) ;EP - SET UP DEFAULT TEMPLATE ENTRY FOR USER
  1. N DOR,SOR,SDIR,DATA,UID
  1. ;
  1. ;Pull the standard fields and sort values for each type
  1. D
  1. . ; If the type is Patient, get the default definition
  1. . I DTYP="D" S DOR=$$DFNC^BQIPLVW(),SOR=$$SFNC^BQIPLVW(),SDIR="A" Q
  1. . ;
  1. . ; If the type is Reminders, get the default definition
  1. . I DTYP="R" S DOR=$$RDEF^BQIRMPL(),SOR=$$SFNC^BQIPLVW(),SDIR="A" Q
  1. . ;
  1. . ; If the type is Performance, get the default definition
  1. . I DTYP="G" S DOR=$$DFNC^BQIGPVW()_$C(29)_$$GDEF^BQIGPVW(),SOR=$$SFNC^BQIGPVW(),SDIR="A" Q
  1. . ;
  1. . ; If the type is MY MEASURES, get the default definition
  1. . I DTYP="Q"!(DTYP="T")!(DTYP="N") D Q
  1. .. N CRN,CARE
  1. .. S CRN=$O(^BQI(90506.5,"C",DTYP,"")) I CRN="" Q
  1. .. S CARE=$P(^BQI(90506.5,CRN,0),U,1)
  1. .. S DOR=$$DFNC^BQICEVW()_$C(29)_$$CDEF^BQICEVW(),SOR=$$SFNC^BQICEVW(CRN,DTYP),SDIR="A"_$C(29)_"D"_$C(29)_"A"
  1. . I DTYP'="D",DTYP'="R",DTYP'="G" D Q
  1. .. S CRN=$O(^BQI(90506.5,"C",DTYP,"")) I CRN="" Q
  1. .. S CARE=$P(^BQI(90506.5,CRN,0),U,1)
  1. .. S DOR=$$DFNC^BQICMVW()_$C(29)_$$CDEF^BQICMVW(),SOR=$$SFNC^BQICMVW(),SDIR="A"
  1. ;
  1. ;Save the entry, clear scratch global
  1. D SAV^BQILYDEF("",DUZ,"","",DTYP,"",SOR,SDIR,DOR)
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQILYSAV",UID))
  1. K @DATA
  1. ;
  1. Q
  1. ;
  1. DTMPDEF(DTYP) ;EP - SET THE DEFAULT TEMPLATE TO THE USER'S DEFAULT
  1. ;
  1. N SRCN,TEMPL,TIEN,UID,DATA
  1. ;
  1. S SRCN=$O(^BQI(90506.5,"C",DTYP,"")) Q:SRCN=""
  1. S TEMPL=$P(^BQI(90506.5,SRCN,0),U,1)_" Default" Q:TEMPL=""
  1. ;
  1. S TIEN=$$TPN^BQILYUTL(DUZ,TEMPL) Q:TIEN=""
  1. ;
  1. ;Set as default for this type, clear scratch global
  1. D DFLT^BQITMPLE("",DUZ,TIEN,DTYP,TEMPL)
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQILYDEF",UID))
  1. K @DATA
  1. ;
  1. Q
  1. ;
  1. VIEW(DATA,TIEN) ;EP -- BQI VIEW PUBLIC TEMPLATE
  1. ; Parameters
  1. ; TIEN - Public Template IEN
  1. ;
  1. NEW UID,II,SDIR,DOR,SOR,SORT,DISPLAY,TMPNM,TMPTY,HTMPNM,TMPLE
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQITMPLS",UID))
  1. K @DATA
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQITMPLS D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S II=0
  1. ;
  1. S @DATA@(II)="I00010TEMPL_IEN^T00001TMP_TYPE^T00040TMP_NAME^T00120DISPLAY_ORDER"
  1. S @DATA@(II)=@DATA@(II)_"^T00120SORT_ORDER^T00120SORT_DIRECTION^D00030LAST_EDITED"_$C(30)
  1. ;
  1. S HTMPNM=$$GET1^DIQ(90508.1,TIEN_",",.01,"E")
  1. S TMPTY=$$GET1^DIQ(90508.1,TIEN_",",.02,"I")
  1. S TMPNM=$$GET1^DIQ(90508.1,TIEN_",",.03,"E")
  1. S TMPLE=$$GET1^DIQ(90508.1,TIEN_",",.04,"I")
  1. ;
  1. ;Get field list
  1. S DOR="",DISPLAY=""
  1. F S DOR=$O(^BQI(90508.1,TIEN,10,"C",DOR)) Q:DOR="" D
  1. . N IEN
  1. . S IEN="" F S IEN=$O(^BQI(90508.1,TIEN,10,"C",DOR,IEN)) Q:IEN="" D
  1. .. N CODE
  1. .. S CODE=$P($G(^BQI(90508.1,TIEN,10,IEN,0)),U,1)
  1. .. S DISPLAY=DISPLAY_CODE_$C(29)
  1. ;
  1. S SOR="",SORT="",SDIR=""
  1. F S SOR=$O(^BQI(90508.1,TIEN,10,"D",SOR)) Q:SOR="" D
  1. . N IEN
  1. . S IEN=""
  1. . F S IEN=$O(^BQI(90508.1,TIEN,10,"D",SOR,IEN)) Q:IEN="" D
  1. .. N CODE,DIR
  1. .. S CODE=$P($G(^BQI(90508.1,TIEN,10,IEN,0)),U,1)
  1. .. S DIR=$P($G(^BQI(90508.1,TIEN,10,IEN,0)),U,4)
  1. .. S SORT=SORT_CODE_$C(29),SDIR=SDIR_DIR_$C(29)
  1. ;
  1. S DISPLAY=$$TKO^BQIUL1(DISPLAY,$C(29))
  1. S SORT=$$TKO^BQIUL1(SORT,$C(29))
  1. S SDIR=$$TKO^BQIUL1(SDIR,$C(29))
  1. I SDIR="" S SDIR="A"
  1. ;
  1. S II=II+1,@DATA@(II)=TIEN_U_TMPTY_U_TMPNM_U_DISPLAY_U_SORT_U_SDIR_U_$$FMTE^BQIUL1(TMPLE)_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. DEL(DATA,TIEN) ;EP -- BQI DELETE PUBLIC TEMPLATE
  1. ; Parameters
  1. ; TIEN - Public Template IEN
  1. ;
  1. NEW UID,II,DA,DIK
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQITMPLS",UID))
  1. K @DATA
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQITMPLS D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. I TIEN="" S BMXSEC="Template IEN is blank" Q
  1. ;
  1. S II=0
  1. ;
  1. S @DATA@(II)="I00001RESULT"_$C(30)
  1. ;
  1. ;Delete template entry
  1. S DIK="^BQI(90508.1,"
  1. S DA=TIEN D ^DIK
  1. ;
  1. S II=II+1,@DATA@(II)="1"_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q