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