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

BTIUSRVT.m

Go to the documentation of this file.
BTIUSRVT ; IHS/MSC/MGH - Server functions for group notes;30-Sep-2010 14:39;DU
 ;;1.0;TEXT INTEGRATION UTILITIES;**76,80,102,105,119,125,1007**;NOV 04, 2004;Build 5
 ;
 ; Nodes Returned by GETROOTS and GETITEMS
 ;
 ; Piece  Data
 ; -----  ---------------------
 ;   1    IEN
 ;   2    TYPE
 ;   3    STATUS
 ;   4    NAME
 ;   5    EXCLUDE FROM GROUP BOILERPLATE
 ;   6    BLANK LINES
 ;   7    PERSONAL OWNER
 ;   8    HAS CHILDREN FLAG (0=NONE, 1=ACTIVE, 2=INACTIVE, 3=BOTH)
 ;   9    DIALOG
 ;  10    DISPLAY ONLY
 ;  11    FIRST LINE
 ;  12    ONE ITEM ONLY
 ;  13    HIDE DIALOG ITEMS
 ;  14    HIDE TREE ITEMS
 ;  15    INDENT ITEMS
 ;  16    REMINDER DIALOG IEN
 ;  17    REMINDER DIALOG NAME
 ;  18    LOCKED
 ;  19    COM OBJECT POINTER
 ;  20    COM OBJECT PARAMETER
 ;  21    LINK POINTER
GETROOTS(TIUY,USER) ;Get template root info
 N IDX,TIUDA,TYPE,PARAM,ENT,ARY,ERR,LP
 S PARAM="BTIU GROUP NOTES TEMPLATES"
 S ENT=$$ENT^CIAVMRPC(PARAM,.ENT)
 D GETLST^XPAR(.ARY,ENT,PARAM,"N",.ERR)
 I $G(ERR) K ARY S DATA=ERR
 S LP=0 F  S LP=$O(ARY(LP)) Q:LP<1  D
 .S TIUDA=$P(ARY(LP),U,1)
 .D ADDNODE(.IDX,TIUDA,1)
 Q
 ;
 ;
GETITEMS(TIUY,TIUDA) ;Return the list of templates that can be used for group notes
 N IDX,ITEM,SEQ,ITEMNODE
 K ^TMP("TIU TEMPLATE",$J)
 S TIUY=$NA(^TMP("TIU TEMPLATE",$J))
 S PARAM="BTIU GROUP NOTES TEMPLATES"
 S ENT=$$ENT^CIAVMRPC(PARAM,.ENT)
 D GETLST^XPAR(.ARY,ENT,PARAM,"N",.ERR)
 I $G(ERR) K ARY S DATA=ERR
 S LP=0 F  S LP=$O(ARY(LP)) Q:LP<1  D
 .S TIUDA=$P(ARY(LP),U,1)
 .D ADDNODE(.IDX,TIUDA,1)
 Q
GETTEXT(TIUY,DFN,VSTR,TIUX) ; Expand Boilerplate
 D BLRPLT(.TIUY,"",DFN,VSTR,"TIUX")
 Q
 ; Internal Routines
 ;
ADDNODE(IDX,TIUDA,INTIUY) ;Adds template node info
 N DATA
 S DATA=$$NODEDATA^TIUSRVT(TIUDA)
 I DATA'="" D
 .S IDX=$G(IDX)+1
 .I $G(INTIUY) S TIUY(IDX)=DATA
 .E  S ^TMP("TIU TEMPLATE",$J,IDX)=DATA
 Q
 ;
BLRPLT(TIUY,TITLE,DFN,VSTR,ROOT) ; Load/Execute the Boilerplate for TITLE
 ;                                 or ROOT
 N TIU,TIUI,TIUJ,TIUK,TIUL,VADM,VAIN,VA,VAERR S TIUI=0
 ;
 ;IHS/ITSC/LJF 12/16/2003 per CIA
 ;S:'$D(TIUY) TIUY=$NA(^TMP("TIUBOIL",$J))
 S TIUY=$NA(^TMP("TIUBOIL",$J))
 ;
 S:'$D(ROOT) ROOT=$NA(^TIU(8925.1,+TITLE,"DFLT")) ; **47**
 I $L($G(VSTR)) D PATVADPT^TIULV(.TIU,DFN,"",$G(VSTR)) ; **47**
 S TIUJ=+$P($G(^TMP("TIUBOIL",$J,0)),U,3)+1
 ; --- Set component header ---
 I ROOT["^TIU(8925.1," D
 . S ^TMP("TIUBOIL",$J,TIUJ,0)=$S($P($G(^TIU(8925.1,+TITLE,0)),U,4)="CO":$P(^TIU(8925.1,+TITLE,0),U)_":   ",1:"")
 I +TIUJ=1,($G(^TMP("TIUBOIL",$J,TIUJ,0))']"") K ^TMP("TIUBOIL",$J,TIUJ,0) S TIUJ=0
 S ^TMP("TIUBOIL",$J,0)="^^"_TIUJ_U_TIUJ_U_DT_"^^"
 F  S TIUI=$O(@ROOT@(TIUI)) Q:+TIUI'>0  D
 . S TIUJ=TIUJ+1
 . S X=$G(@ROOT@(TIUI,0))
 . ;I $L($T(DOLMLINE^TIUSRVF1)),'$D(XWBOS),(X["{FLD:") S X=$$DOLMLINE^TIUSRVF1(X)
 . I X["|" S X=$$BOIL(X,TIUJ)
 . I X["~@" D INSMULT^TIUSRVD(X,"^TMP(""TIUBOIL"",$J)",.TIUJ) I 1
 . E  S ^TMP("TIUBOIL",$J,TIUJ,0)=X
 . S ^TMP("TIUBOIL",$J,0)="^^"_TIUJ_U_TIUJ_U_DT_"^^"
 I ROOT["^TIU(8925.1,",+$O(^TIU(8925.1,+TITLE,10,0)) D
 . N TIUFITEM,TIUI D ITEMS^TIUFLT(+TITLE)
 . S TIUI=0 F  S TIUI=$O(TIUFITEM(TIUI)) Q:+TIUI'>0  D
 . . S TIUL=+$G(TIUFITEM(+TIUI)) D BLRPLT(.TIUY,TIUL,DFN,$G(VSTR))
 Q
BOIL(LINE,COUNT) ; Execute Boilerplates
 N TIUI,DIC,X,Y,TIUFPRIV S TIUFPRIV=1
 S DIC=8925.1,DIC(0)="FMXZ"
 S DIC("S")="I $P($G(^TIU(8925.1,+Y,0)),U,4)=""O"""
 F TIUI=2:2:$L(LINE,"|") S X=$P(LINE,"|",TIUI) D
 . S X="""Objects invalid in group notes."""
 . S LINE=$$REPLACE(LINE,X,TIUI)
 Q $TR(LINE,"|","")
REPLACE(LINE,X,TIUI) ; Replace the TIUIth object in LINE w/X
 S $P(LINE,"|",TIUI)=X
 Q LINE