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

BQITMPLE.m

Go to the documentation of this file.
  1. BQITMPLE ;GDIT/HC/BEE-Template Handling ; 01 Jun 2007 11:51 AM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;**3,4**;Apr 18, 2012;Build 66
  1. ;
  1. DFLT(DATA,OWNR,LYIEN,TYPE,TMPNAM) ;EP -- BQI SET TEMPLATE DFLT
  1. ;
  1. ; Input
  1. ; OWNR - Whose template this is
  1. ; LYIEN - Template internal entry number
  1. ; TYPE - The type of template
  1. ; TMPNAM - The template name
  1. ;
  1. NEW UID,II,ERROR,HDR,IEN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQILYDEF",UID))
  1. K @DATA
  1. ;
  1. ;Define Header
  1. S @DATA@(0)="T00001RESULT"_$C(30)
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQILYDEF D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S:$G(OWNR)="" OWNR=DUZ
  1. S LYIEN=$G(LYIEN,"")
  1. S TYPE=$G(TYPE,"")
  1. ;
  1. I LYIEN="" S BMXSEC="Template IEN is blank." Q
  1. I TYPE="" D I TYPE="" S BMXSEC="Template TYPE is blank." Q
  1. . N DA,IENS
  1. . S DA(1)=OWNR,DA=LYIEN,IENS=$$IENS^DILF(.DA)
  1. . S TYPE=$$GET1^DIQ(90505.015,IENS,".02","I")
  1. ;
  1. ;Loop through all templates for type and set/remove default
  1. S IEN=0 F S IEN=$O(^BQICARE(OWNR,15,"C",TYPE,IEN)) Q:'IEN D Q:$D(ERROR)
  1. . ;
  1. . NEW DA,IENS,BQIUPD,CHG,DEF
  1. . S DA(1)=OWNR,DA=IEN,IENS=$$IENS^DILF(.DA)
  1. . ;
  1. . ;Get current default value
  1. . S DEF=$$GET1^DIQ(90505.015,IENS,".03","I")
  1. . ;
  1. . ;Set Change Flag
  1. . S CHG=0
  1. . ;
  1. . ;If this one is the passed in one
  1. . I IEN=LYIEN D
  1. .. I DEF="Y" Q ;Already default - don't save
  1. .. S BQIUPD(90505.015,IENS,".03")="Y",CHG=1
  1. . ;
  1. . ;Look for other templates
  1. . I IEN'=LYIEN D
  1. .. I DEF="" Q ;Already not the default - don't save
  1. .. S BQIUPD(90505.015,IENS,".03")="",CHG=1
  1. . ;
  1. . ;Set last edited
  1. . I CHG=1 S BQIUPD(90505.015,IENS,.04)=$$NOW^XLFDT()
  1. . I $D(BQIUPD) D FILE^DIE("","BQIUPD","ERROR")
  1. ;
  1. S II=II+1
  1. I $D(ERROR) S @DATA@(II)="-1"_$C(30)
  1. E S @DATA@(II)="1"_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. TMUSE(DATA,OWNR,TIEN) ;EP -- BQI GET TEMPLATE USE
  1. ;
  1. ; Input
  1. ; OWNR - Whose template this is
  1. ; TIEN - Template internal entry number
  1. ;
  1. NEW UID,II,ERROR,HDR,TNAME,PLIEN,DA,IENS,OWNIEN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQILYDEF",UID))
  1. K @DATA
  1. ;
  1. ;Define Header
  1. S @DATA@(0)="I00010PANEL_IEN^T00120PANEL_NAME^T00250PANEL_DESCRIPTION^I00010PANEL_OWNER"_$C(30)
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQILYDEF D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S:$G(OWNR)="" OWNR=DUZ
  1. ;
  1. I TIEN="" S BMXSEC="Template IEN is blank." Q
  1. ;
  1. ;Get template name
  1. S DA(1)=OWNR,DA=TIEN,IENS=$$IENS^DILF(.DA)
  1. S TNAME=$$GET1^DIQ(90505.015,IENS,".01","E") I TNAME="" S BMXSEC="Template does not have a NAME assigned to it" Q
  1. ;
  1. ;Loop through all panels for user to see if template in use
  1. S PLIEN=0
  1. F S PLIEN=$O(^BQICARE(OWNR,1,PLIEN)) Q:'PLIEN D
  1. . NEW PNAME,PDESC,DA,IENS,DIC,X,Y
  1. . ;
  1. . ;Quit if template isn't used in panel
  1. . S DIC="^BQICARE("_OWNR_",1,"_PLIEN_",4,",DIC(0)="X"
  1. . S X=TNAME D ^DIC I +Y=-1 Q
  1. . ;
  1. . S DA(1)=OWNR,DA=PLIEN,IENS=$$IENS^DILF(.DA)
  1. . S PNAME=$$GET1^DIQ(90505.01,IENS,.01,"E")
  1. . S PDESC=$$GET1^DIQ(90505.01,IENS,1,"E")
  1. . S II=$G(II)+1,@DATA@(II)=PLIEN_U_PNAME_U_PDESC_U_OWNR_$C(30)
  1. ;
  1. ;Loop through all panels shared to user and see if template is in use
  1. S OWNRIEN=""
  1. F S OWNRIEN=$O(^BQICARE("C",OWNR,OWNRIEN)) Q:'OWNRIEN D
  1. . S PLIEN=0 F S PLIEN=$O(^BQICARE("C",OWNR,OWNRIEN,PLIEN)) Q:'PLIEN D
  1. .. ;
  1. .. ;Quit if template isn't used in panel
  1. .. N DIC,X,Y
  1. .. S DIC="^BQICARE("_OWNRIEN_",1,"_PLIEN_",30,"_OWNR_",4,",DIC(0)="X"
  1. .. S X=TNAME D ^DIC I +Y=-1 Q
  1. .. ;
  1. .. S DA(1)=OWNRIEN,DA=PLIEN,IENS=$$IENS^DILF(.DA)
  1. .. S PNAME=$$GET1^DIQ(90505.01,IENS,.01,"E")
  1. .. S PDESC=$$GET1^DIQ(90505.01,IENS,1,"E")
  1. .. S II=$G(II)+1,@DATA@(II)=PLIEN_U_PNAME_U_PDESC_U_OWNRIEN_$C(30)
  1. ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. DELTMP(OWNR,TIEN,TNAME,ERROR) ;EP - Delete Template
  1. ;
  1. ;Input: TIEN - Template IEN
  1. ;Output: ERROR (if unsuccessful)
  1. ;
  1. NEW DA,IENS,OWNRIEN,PLIEN
  1. ;
  1. ;Check for template IEN
  1. I TIEN="" S ERROR="Template IEN is null" Q
  1. ;
  1. S DA(1)=OWNR,DA=TIEN,IENS=$$IENS^DILF(.DA)
  1. ;
  1. ;Check for default template
  1. I $$GET1^DIQ(90505.015,IENS,".05","I")'="Y" S ERROR="Cannot delete default templates" Q
  1. ;
  1. ;Get Template name
  1. I TNAME="" D Q:$G(ERROR)=1
  1. . S TNAME=$$GET1^DIQ(90505.015,IENS,".01","E") I TNAME="" S ERROR="Cannot find template name" Q
  1. ;
  1. ;Loop through all panels for user to see if template in use
  1. S PLIEN=0
  1. F S PLIEN=$O(^BQICARE(OWNR,1,PLIEN)) Q:'PLIEN D
  1. . NEW DA,DIK
  1. . ;
  1. . ;Quit if template isn't used in panel
  1. . S DIC="^BQICARE("_OWNR_",1,"_PLIEN_",4,",DIC(0)="X"
  1. . S X=TNAME D ^DIC I +Y=-1 Q
  1. . ;
  1. . S DA=+Y Q:DA=0
  1. . S DA(2)=OWNR,DA(1)=PLIEN,IENS=$$IENS^DILF(.DA)
  1. . S DIK="^BQICARE("_DA(2)_",1,"_DA(1)_",4,"
  1. . D ^DIK
  1. ;
  1. ;Loop through all panels shared to user and see if template is in use
  1. S OWNRIEN=""
  1. F S OWNRIEN=$O(^BQICARE("C",OWNR,OWNRIEN)) Q:'OWNRIEN D
  1. . S PLIEN=0 F S PLIEN=$O(^BQICARE("C",OWNR,OWNRIEN,PLIEN)) Q:'PLIEN D
  1. .. N DA,IENS,DIK
  1. .. ;
  1. .. ;Quit if template isn't used in panel
  1. .. N DIC,X,Y
  1. .. S DIC="^BQICARE("_OWNRIEN_",1,"_PLIEN_",30,"_OWNR_",4,",DIC(0)="X"
  1. .. S X=TNAME D ^DIC I +Y=-1 Q
  1. .. ;
  1. .. S DA=+Y Q:DA=0
  1. .. S DA(3)=OWNRIEN,DA(2)=PLIEN,DA(1)=OWNR,IENS=$$IENS^DILF(.DA)
  1. .. S DIK="^BQICARE("_DA(3)_",1,"_DA(2)_",30,"_DA(1)_",4,"
  1. .. D ^DIK
  1. ;
  1. ;Delete the template
  1. S DA(1)=OWNR,DA=TIEN
  1. S DIK="^BQICARE("_DA(1)_",15,"
  1. D ^DIK
  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