BTPWLTMP ;VNGT/HS/ALA-TIU Templates for CMET Letters ; 18 Mar 2009 11:16 AM
;;1.1;CARE MANAGEMENT EVENT TRACKING;**3**;Apr 01, 2015;Build 14
;
;
EN(DATA,FAKE) ; EP -- BTPW GET TIU LIST
NEW UID,II,HDR,RN,RTIEN,LIST1,LIST,DOC,DIEN,TIUDA,ARRAY,CT,TMCHILD,TOP,CHILD,DOCA
NEW L1,L2,L3,L4,L5,L6,LVL1,LVL2,LVL3,LVL4,LVL5,LVL6,ROOT,TIUDA1,TIUDA2,TIUDA3,TIUDA4,TIUDA5
NEW LSNM
S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
S DATA=$NA(^TMP("BTPWLTMP",UID))
K @DATA
S II=0
NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWLTMP D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
S HDR="T00060TOP^T00001CHILDREN^T00060LEVEL1^T00060LEVEL2^T00060LEVEL3^T00060LEVEL4^T00060LEVEL5^T00060LEVEL6"_$C(30)
S @DATA@(II)=HDR
D GETROOTS^TIUSRVT(.LIST,.DUZ)
S RN=0
F S RN=$O(LIST(RN)) Q:RN="" D
. S RTIEN=$P(LIST(RN),U,1)
. D TACCESS^TIUSRVT2(.LIST1,RTIEN,.DUZ)
. ; 0 = FULL ACCESS, 1 = READ ONLY, 2 = NO ACCESS,
. ; 3 = SHARED TEMPLATES EDITOR - ACCESS PARAMETERS DO NOT APPLY
. ;I $G(LIST1)=1!($G(LIST1)=2) K LIST(RN) Q
. I $G(LIST1)=2 K LIST(RN) Q
. S LSNM=$$UP^XLFSTR($P(LIST(RN),U,4))
. I LSNM'="SHARED TEMPLATES"&(LSNM'="MY TEMPLATES") K LIST(RN) Q
. ;I $P(LIST(RN),U,4)'="Shared Templates"&($P(LIST(RN),U,4)'="My Templates") K LIST(RN) Q
. K DOC
. ; one
. D GETITEMS^TIUSRVT(.DOC,RTIEN)
. S DIEN=0
. F S DIEN=$O(@DOC@(DIEN)) Q:'DIEN D
.. I $P(@DOC@(DIEN),U,3)'="A" Q
.. S TIUDA=$P(@DOC@(DIEN),U,1)
.. S ARRAY(RTIEN,TIUDA)=@DOC@(DIEN) Q
. S TIUDA=""
. F S TIUDA=$O(ARRAY(RTIEN,TIUDA)) Q:TIUDA="" D
.. ; Has Children flag (0=NONE,1=ACTIVE,2=INACTIVE,3=BOTH
.. S TMCHILD=$P(ARRAY(RTIEN,TIUDA),U,8) I TMCHILD=2 Q
.. K @DOC
.. ; two
.. D GETITEMS^TIUSRVT(.DOCA,TIUDA)
.. S DIEN=0,CT=0
.. F S DIEN=$O(@DOC@(DIEN)) Q:'DIEN D
... I $P(@DOC@(DIEN),U,3)'="A" Q
... I $P(@DOC@(DIEN),U,8)=2 Q
... S CT=CT+$P(@DOC@(DIEN),U,8)
... S TIUDA1=$P(@DOC@(DIEN),U,1)
... S ARRAY(RTIEN,TIUDA,TIUDA1)=@DOC@(DIEN)
.. I CT=0 Q
.. S TIUDA1=""
.. F S TIUDA1=$O(ARRAY(RTIEN,TIUDA,TIUDA1)) Q:TIUDA1="" D
... S TMCHILD=$P(ARRAY(RTIEN,TIUDA,TIUDA1),U,8) I TMCHILD=2 Q
... K @DOC
... ; three
... D GETITEMS^TIUSRVT(.DOCA,TIUDA1)
... S DIEN=0,CT=0
... F S DIEN=$O(@DOC@(DIEN)) Q:'DIEN D
.... I $P(@DOC@(DIEN),U,3)'="A" Q
.... I $P(@DOC@(DIEN),U,8)=2 Q
.... S CT=CT+$P(@DOC@(DIEN),U,8)
.... S TIUDA2=$P(@DOC@(DIEN),U,1)
.... S ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2)=@DOC@(DIEN)
... I CT=0 Q
... S TIUDA2=""
... F S TIUDA2=$O(ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2)) Q:TIUDA2="" D
.... S TMCHILD=$P(ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2),U,8) I TMCHILD=2 Q
.... K @DOC
.... ; four
.... D GETITEMS^TIUSRVT(.DOCA,TIUDA2)
.... S DIEN=0,CT=0
.... F S DIEN=$O(@DOC@(DIEN)) Q:'DIEN D
..... I $P(@DOC@(DIEN),U,3)'="A" Q
..... I $P(@DOC@(DIEN),U,8)=2 Q
..... S CT=CT+$P(@DOC@(DIEN),U,8)
..... S TIUDA3=$P(@DOC@(DIEN),U,1)
..... S ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3)=@DOC@(DIEN)
.... I CT=0 Q
.... S TIUDA3=""
.... F S TIUDA3=$O(ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3)) Q:TIUDA3="" D
..... S TMCHILD=$P(ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3),U,8) I TMCHILD=2 Q
..... K @DOC
..... ; five
..... D GETITEMS^TIUSRVT(.DOCA,TIUDA3)
..... S DIEN=0,CT=0
..... F S DIEN=$O(@DOC@(DIEN)) Q:'DIEN D
...... I $P(@DOC@(DIEN),U,3)'="A" Q
...... I $P(@DOC@(DIEN),U,8)=2 Q
...... S CT=CT+$P(@DOC@(DIEN),U,8)
...... S TIUDA4=$P(@DOC@(DIEN),U,1)
...... S ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3,TIUDA4)=@DOC@(DIEN)
..... I CT=0 Q
..... S TIUDA4=""
..... F S TIUDA4=$O(ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3,TIUDA4)) Q:TIUDA4="" D
...... S TMCHILD=$P(ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3,TIUDA4),U,8) I TMCHILD=2 Q
...... K @DOC
...... ; six
...... D GETITEMS^TIUSRVT(.DOCA,TIUDA4)
...... S DIEN=0,CT=0
...... F S DIEN=$O(@DOC@(DIEN)) Q:'DIEN D
....... I $P(@DOC@(DIEN),U,3)'="A" Q
....... I $P(@DOC@(DIEN),U,8)=2 Q
....... S CT=CT+$P(@DOC@(DIEN),U,8)
....... S TIUDA5=$P(@DOC@(DIEN),U,1)
....... S ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3,TIUDA4,TIUDA5)=@DOC@(DIEN)
. ;
. S TOP=$P(LIST(RN),U,4),CHILD=$S($D(ARRAY(RTIEN))>1:"Y",1:"N")
. S (LVL1,LVL2,LVL3,LVL4,LVL5,LVL6)="",TOP=RTIEN_$C(28)_TOP
. S ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
. S II=II+1,@DATA@(II)=ROOT_$C(30)
. S L1=""
. F S L1=$O(ARRAY(RTIEN,L1)) Q:L1="" D
.. S CHILD=$S($D(ARRAY(RTIEN,L1))>1:"Y",1:"N")
.. S LVL1=$P(ARRAY(RTIEN,L1),U,1)_$C(28)_$P(ARRAY(RTIEN,L1),U,4)
.. S ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
.. S II=II+1,@DATA@(II)=ROOT_$C(30)
.. S L2=""
.. F S L2=$O(ARRAY(RTIEN,L1,L2)) Q:L2="" D
... S CHILD=$S($D(ARRAY(RTIEN,L1,L2))>1:"Y",1:"N")
... S LVL2=$P(ARRAY(RTIEN,L1,L2),U,1)_$C(28)_$P(ARRAY(RTIEN,L1,L2),U,4)
... S ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
... S II=II+1,@DATA@(II)=ROOT_$C(30)
... S L3=""
... F S L3=$O(ARRAY(RTIEN,L1,L2,L3)) Q:L3="" D
.... S CHILD=$S($D(ARRAY(RTIEN,L1,L2,L3))>1:"Y",1:"N")
.... S LVL3=$P(ARRAY(RTIEN,L1,L2,L3),U,1)_$C(28)_$P(ARRAY(RTIEN,L1,L2,L3),U,4)
.... S ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
.... S II=II+1,@DATA@(II)=ROOT_$C(30)
.... S L4=""
.... F S L4=$O(ARRAY(RTIEN,L1,L2,L3,L4)) Q:L4="" D
..... S CHILD=$S($D(ARRAY(RTIEN,L1,L2,L3,L4))>1:"Y",1:"N")
..... S LVL4=$P(ARRAY(RTIEN,L1,L2,L3,L4),U,1)_$C(28)_$P(ARRAY(RTIEN,L1,L2,L3,L4),U,4)
..... S ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
..... S II=II+1,@DATA@(II)=ROOT_$C(30)
..... S L5=""
..... F S L5=$O(ARRAY(RTIEN,L1,L2,L3,L4,L5)) Q:L5="" D
...... S CHILD=$S($D(ARRAY(RTIEN,L1,L2,L3,L4,L5))>1:"Y",1:"N")
...... S LVL5=$P(ARRAY(RTIEN,L1,L2,L3,L4,L5),U,1)_$C(28)_$P(ARRAY(RTIEN,L1,L2,L3,L4,L5),U,4)
...... S ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
...... S II=II+1,@DATA@(II)=ROOT_$C(30)
...... S L6=""
...... F S L6=$O(ARRAY(RTIEN,L1,L2,L3,L4,L5,L6)) Q:L6="" D
....... S CHILD=$S($D(ARRAY(RTIEN,L1,L2,L3,L4,L5,L6))>1:"Y",1:"N")
....... S LVL6=$P(ARRAY(RTIEN,L1,L2,L3,L4,L5,L6),U,1)_$C(28)_$P(ARRAY(RTIEN,L1,L2,L3,L4,L5,L6),U,4)
....... S ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
....... S II=II+1,@DATA@(II)=ROOT_$C(30)
...... S LVL6=""
..... S LVL5=""
.... S LVL4=""
... S LVL3=""
.. S LVL2=""
. S LVL1=""
K ARRAY
S II=II+1,@DATA@(II)=$C(31)
Q
;
TOP(DATA,FAKE) ; EP -- BTPW GET TIU TEMP TOP
NEW UID,II,HDR
S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
S DATA=$NA(^TMP("BTPWTMPL",UID))
K @DATA
S II=0
NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWLTMP D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
NEW TDATA,BQII,NDATA,RN,RTIEN,LIST1,LIST,DIEN,DOC,TMCHILD,NN,BWI,QFL,NTO,BTII,BTW
NEW LSNM
;
S HDR="I00010ROOT_IEN^T00035ROOT_NAME^T00001CHILDREN"
S @DATA@(II)=HDR_$C(30)
;
D GETROOTS^TIUSRVT(.LIST,.DUZ)
S RN=0
F S RN=$O(LIST(RN)) Q:RN="" D
. S RTIEN=$P(LIST(RN),U,1)
. D TACCESS^TIUSRVT2(.LIST1,RTIEN,.DUZ)
. ; 0 = FULL ACCESS, 1 = READ ONLY, 2 = NO ACCESS,
. ; 3 = SHARED TEMPLATES EDITOR - ACCESS PARAMETERS DO NOT APPLY
. ;I $G(LIST1)=1!($G(LIST1)=2) K LIST(RN) Q
. I $G(LIST1)=2 K LIST(RN) Q
. S LSNM=$$UP^XLFSTR($P(LIST(RN),U,4))
. I LSNM'="SHARED TEMPLATES"&(LSNM'="MY TEMPLATES") K LIST(RN) Q
. ;I $P(LIST(RN),U,4)'="Shared Templates"&($P(LIST(RN),U,4)'="My Templates") K LIST(RN) Q
. ; Has Children flag (0=NONE,1=ACTIVE,2=INACTIVE,3=BOTH
. S CHILD=$P(LIST(RN),U,8) I CHILD=2 Q
. S CHILD="Y"
. S II=II+1,@DATA@(II)=RTIEN_U_$P(LIST(RN),U,4)_U_CHILD_$C(30)
S II=II+1,@DATA@(II)=$C(31)
Q
;
CHLD(DATA,TMPLIEN) ; EP -- BTPW GET TIU TEMP CHILD
;
NEW UID,II,HDR,TMCHILD,RTIEN,XDATA
S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
S DATA=$NA(^TMP("BTPWTMPLC",UID)),XDATA=$NA(^XTMP("BTPWTEMPL"))
K @DATA
S II=0
NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWLTMP D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
;
S HDR="I00010ROOT_IEN^T00001ROOT_TYPE^T00035ROOT_NAME^T00001CHILDREN"
S @DATA@(II)=HDR_$C(30)
K DOC
D GETITEMS^TIUSRVT(.DOC,TMPLIEN)
S DIEN=0
F S DIEN=$O(@DOC@(DIEN)) Q:'DIEN D
. I $P(@DOC@(DIEN),U,3)'="A" Q
. ; Has Children flag (0=NONE,1=ACTIVE,2=INACTIVE,3=BOTH
. S TMCHILD=$P(@DOC@(DIEN),U,8)
. I TMCHILD=2 Q
. S TMCHILD=$S(TMCHILD=0:"N",1:"Y")
. S RTIEN=$P(@DOC@(DIEN),U,1)
. I $D(@XDATA@(RTIEN)) Q
. S II=II+1,@DATA@(II)=$P(@DOC@(DIEN),U,1)_U_$P(@DOC@(DIEN),U,2)_U_$P(@DOC@(DIEN),U,4)_U_TMCHILD_$C(30)
K @DOC
Q
;
ERR ;
D ^%ZTER
NEW Y,ERRDTM
S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
S BMXSEC="Recording that an error occurred at "_ERRDTM
I $D(II),$D(DATA) S II=II+1,@DATA@(II)=$C(31)
Q
;
UPD ;EP - Update templates with objects
; Set list for templates with |V | data objects
NEW XDATA
S XDATA=$NA(^XTMP("BTPWTEMPL"))
K @XDATA
S @XDATA@(0)=$$FMADD^XLFDT(DT,7)_U_DT_U_"Templates containing |V | data objects"
NEW TMPN,BLN
S TMPN=0
F S TMPN=$O(^TIU(8927,TMPN)) Q:'TMPN D
. S BLN=0
. F S BLN=$O(^TIU(8927,TMPN,2,BLN)) Q:'BLN D
.. I ^TIU(8927,TMPN,2,BLN,0)["|V " S @XDATA@(TMPN)=""
Q
BTPWLTMP ;VNGT/HS/ALA-TIU Templates for CMET Letters ; 18 Mar 2009 11:16 AM
+1 ;;1.1;CARE MANAGEMENT EVENT TRACKING;**3**;Apr 01, 2015;Build 14
+2 ;
+3 ;
EN(DATA,FAKE) ; EP -- BTPW GET TIU LIST
+1 NEW UID,II,HDR,RN,RTIEN,LIST1,LIST,DOC,DIEN,TIUDA,ARRAY,CT,TMCHILD,TOP,CHILD,DOCA
+2 NEW L1,L2,L3,L4,L5,L6,LVL1,LVL2,LVL3,LVL4,LVL5,LVL6,ROOT,TIUDA1,TIUDA2,TIUDA3,TIUDA4,TIUDA5
+3 NEW LSNM
+4 SET UID=$SELECT($GET(ZTSK):"Z"_ZTSK,1:$JOB)
+5 SET DATA=$NAME(^TMP("BTPWLTMP",UID))
+6 KILL @DATA
+7 SET II=0
+8 ; SAC 2006 2.2.3.3.2
NEW $ESTACK,$ETRAP
SET $ETRAP="D ERR^BTPWLTMP D UNWIND^%ZTER"
+9 SET HDR="T00060TOP^T00001CHILDREN^T00060LEVEL1^T00060LEVEL2^T00060LEVEL3^T00060LEVEL4^T00060LEVEL5^T00060LEVEL6"_$CHAR(30)
+10 SET @DATA@(II)=HDR
+11 DO GETROOTS^TIUSRVT(.LIST,.DUZ)
+12 SET RN=0
+13 FOR
SET RN=$ORDER(LIST(RN))
IF RN=""
QUIT
Begin DoDot:1
+14 SET RTIEN=$PIECE(LIST(RN),U,1)
+15 DO TACCESS^TIUSRVT2(.LIST1,RTIEN,.DUZ)
+16 ; 0 = FULL ACCESS, 1 = READ ONLY, 2 = NO ACCESS,
+17 ; 3 = SHARED TEMPLATES EDITOR - ACCESS PARAMETERS DO NOT APPLY
+18 ;I $G(LIST1)=1!($G(LIST1)=2) K LIST(RN) Q
+19 IF $GET(LIST1)=2
KILL LIST(RN)
QUIT
+20 SET LSNM=$$UP^XLFSTR($PIECE(LIST(RN),U,4))
+21 IF LSNM'="SHARED TEMPLATES"&(LSNM'="MY TEMPLATES")
KILL LIST(RN)
QUIT
+22 ;I $P(LIST(RN),U,4)'="Shared Templates"&($P(LIST(RN),U,4)'="My Templates") K LIST(RN) Q
+23 KILL DOC
+24 ; one
+25 DO GETITEMS^TIUSRVT(.DOC,RTIEN)
+26 SET DIEN=0
+27 FOR
SET DIEN=$ORDER(@DOC@(DIEN))
IF 'DIEN
QUIT
Begin DoDot:2
+28 IF $PIECE(@DOC@(DIEN),U,3)'="A"
QUIT
+29 SET TIUDA=$PIECE(@DOC@(DIEN),U,1)
+30 SET ARRAY(RTIEN,TIUDA)=@DOC@(DIEN)
QUIT
End DoDot:2
+31 SET TIUDA=""
+32 FOR
SET TIUDA=$ORDER(ARRAY(RTIEN,TIUDA))
IF TIUDA=""
QUIT
Begin DoDot:2
+33 ; Has Children flag (0=NONE,1=ACTIVE,2=INACTIVE,3=BOTH
+34 SET TMCHILD=$PIECE(ARRAY(RTIEN,TIUDA),U,8)
IF TMCHILD=2
QUIT
+35 KILL @DOC
+36 ; two
+37 DO GETITEMS^TIUSRVT(.DOCA,TIUDA)
+38 SET DIEN=0
SET CT=0
+39 FOR
SET DIEN=$ORDER(@DOC@(DIEN))
IF 'DIEN
QUIT
Begin DoDot:3
+40 IF $PIECE(@DOC@(DIEN),U,3)'="A"
QUIT
+41 IF $PIECE(@DOC@(DIEN),U,8)=2
QUIT
+42 SET CT=CT+$PIECE(@DOC@(DIEN),U,8)
+43 SET TIUDA1=$PIECE(@DOC@(DIEN),U,1)
+44 SET ARRAY(RTIEN,TIUDA,TIUDA1)=@DOC@(DIEN)
End DoDot:3
+45 IF CT=0
QUIT
+46 SET TIUDA1=""
+47 FOR
SET TIUDA1=$ORDER(ARRAY(RTIEN,TIUDA,TIUDA1))
IF TIUDA1=""
QUIT
Begin DoDot:3
+48 SET TMCHILD=$PIECE(ARRAY(RTIEN,TIUDA,TIUDA1),U,8)
IF TMCHILD=2
QUIT
+49 KILL @DOC
+50 ; three
+51 DO GETITEMS^TIUSRVT(.DOCA,TIUDA1)
+52 SET DIEN=0
SET CT=0
+53 FOR
SET DIEN=$ORDER(@DOC@(DIEN))
IF 'DIEN
QUIT
Begin DoDot:4
+54 IF $PIECE(@DOC@(DIEN),U,3)'="A"
QUIT
+55 IF $PIECE(@DOC@(DIEN),U,8)=2
QUIT
+56 SET CT=CT+$PIECE(@DOC@(DIEN),U,8)
+57 SET TIUDA2=$PIECE(@DOC@(DIEN),U,1)
+58 SET ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2)=@DOC@(DIEN)
End DoDot:4
+59 IF CT=0
QUIT
+60 SET TIUDA2=""
+61 FOR
SET TIUDA2=$ORDER(ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2))
IF TIUDA2=""
QUIT
Begin DoDot:4
+62 SET TMCHILD=$PIECE(ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2),U,8)
IF TMCHILD=2
QUIT
+63 KILL @DOC
+64 ; four
+65 DO GETITEMS^TIUSRVT(.DOCA,TIUDA2)
+66 SET DIEN=0
SET CT=0
+67 FOR
SET DIEN=$ORDER(@DOC@(DIEN))
IF 'DIEN
QUIT
Begin DoDot:5
+68 IF $PIECE(@DOC@(DIEN),U,3)'="A"
QUIT
+69 IF $PIECE(@DOC@(DIEN),U,8)=2
QUIT
+70 SET CT=CT+$PIECE(@DOC@(DIEN),U,8)
+71 SET TIUDA3=$PIECE(@DOC@(DIEN),U,1)
+72 SET ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3)=@DOC@(DIEN)
End DoDot:5
+73 IF CT=0
QUIT
+74 SET TIUDA3=""
+75 FOR
SET TIUDA3=$ORDER(ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3))
IF TIUDA3=""
QUIT
Begin DoDot:5
+76 SET TMCHILD=$PIECE(ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3),U,8)
IF TMCHILD=2
QUIT
+77 KILL @DOC
+78 ; five
+79 DO GETITEMS^TIUSRVT(.DOCA,TIUDA3)
+80 SET DIEN=0
SET CT=0
+81 FOR
SET DIEN=$ORDER(@DOC@(DIEN))
IF 'DIEN
QUIT
Begin DoDot:6
+82 IF $PIECE(@DOC@(DIEN),U,3)'="A"
QUIT
+83 IF $PIECE(@DOC@(DIEN),U,8)=2
QUIT
+84 SET CT=CT+$PIECE(@DOC@(DIEN),U,8)
+85 SET TIUDA4=$PIECE(@DOC@(DIEN),U,1)
+86 SET ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3,TIUDA4)=@DOC@(DIEN)
End DoDot:6
+87 IF CT=0
QUIT
+88 SET TIUDA4=""
+89 FOR
SET TIUDA4=$ORDER(ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3,TIUDA4))
IF TIUDA4=""
QUIT
Begin DoDot:6
+90 SET TMCHILD=$PIECE(ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3,TIUDA4),U,8)
IF TMCHILD=2
QUIT
+91 KILL @DOC
+92 ; six
+93 DO GETITEMS^TIUSRVT(.DOCA,TIUDA4)
+94 SET DIEN=0
SET CT=0
+95 FOR
SET DIEN=$ORDER(@DOC@(DIEN))
IF 'DIEN
QUIT
Begin DoDot:7
+96 IF $PIECE(@DOC@(DIEN),U,3)'="A"
QUIT
+97 IF $PIECE(@DOC@(DIEN),U,8)=2
QUIT
+98 SET CT=CT+$PIECE(@DOC@(DIEN),U,8)
+99 SET TIUDA5=$PIECE(@DOC@(DIEN),U,1)
+100 SET ARRAY(RTIEN,TIUDA,TIUDA1,TIUDA2,TIUDA3,TIUDA4,TIUDA5)=@DOC@(DIEN)
End DoDot:7
End DoDot:6
End DoDot:5
End DoDot:4
End DoDot:3
End DoDot:2
+101 ;
+102 SET TOP=$PIECE(LIST(RN),U,4)
SET CHILD=$SELECT($DATA(ARRAY(RTIEN))>1:"Y",1:"N")
+103 SET (LVL1,LVL2,LVL3,LVL4,LVL5,LVL6)=""
SET TOP=RTIEN_$CHAR(28)_TOP
+104 SET ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
+105 SET II=II+1
SET @DATA@(II)=ROOT_$CHAR(30)
+106 SET L1=""
+107 FOR
SET L1=$ORDER(ARRAY(RTIEN,L1))
IF L1=""
QUIT
Begin DoDot:2
+108 SET CHILD=$SELECT($DATA(ARRAY(RTIEN,L1))>1:"Y",1:"N")
+109 SET LVL1=$PIECE(ARRAY(RTIEN,L1),U,1)_$CHAR(28)_$PIECE(ARRAY(RTIEN,L1),U,4)
+110 SET ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
+111 SET II=II+1
SET @DATA@(II)=ROOT_$CHAR(30)
+112 SET L2=""
+113 FOR
SET L2=$ORDER(ARRAY(RTIEN,L1,L2))
IF L2=""
QUIT
Begin DoDot:3
+114 SET CHILD=$SELECT($DATA(ARRAY(RTIEN,L1,L2))>1:"Y",1:"N")
+115 SET LVL2=$PIECE(ARRAY(RTIEN,L1,L2),U,1)_$CHAR(28)_$PIECE(ARRAY(RTIEN,L1,L2),U,4)
+116 SET ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
+117 SET II=II+1
SET @DATA@(II)=ROOT_$CHAR(30)
+118 SET L3=""
+119 FOR
SET L3=$ORDER(ARRAY(RTIEN,L1,L2,L3))
IF L3=""
QUIT
Begin DoDot:4
+120 SET CHILD=$SELECT($DATA(ARRAY(RTIEN,L1,L2,L3))>1:"Y",1:"N")
+121 SET LVL3=$PIECE(ARRAY(RTIEN,L1,L2,L3),U,1)_$CHAR(28)_$PIECE(ARRAY(RTIEN,L1,L2,L3),U,4)
+122 SET ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
+123 SET II=II+1
SET @DATA@(II)=ROOT_$CHAR(30)
+124 SET L4=""
+125 FOR
SET L4=$ORDER(ARRAY(RTIEN,L1,L2,L3,L4))
IF L4=""
QUIT
Begin DoDot:5
+126 SET CHILD=$SELECT($DATA(ARRAY(RTIEN,L1,L2,L3,L4))>1:"Y",1:"N")
+127 SET LVL4=$PIECE(ARRAY(RTIEN,L1,L2,L3,L4),U,1)_$CHAR(28)_$PIECE(ARRAY(RTIEN,L1,L2,L3,L4),U,4)
+128 SET ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
+129 SET II=II+1
SET @DATA@(II)=ROOT_$CHAR(30)
+130 SET L5=""
+131 FOR
SET L5=$ORDER(ARRAY(RTIEN,L1,L2,L3,L4,L5))
IF L5=""
QUIT
Begin DoDot:6
+132 SET CHILD=$SELECT($DATA(ARRAY(RTIEN,L1,L2,L3,L4,L5))>1:"Y",1:"N")
+133 SET LVL5=$PIECE(ARRAY(RTIEN,L1,L2,L3,L4,L5),U,1)_$CHAR(28)_$PIECE(ARRAY(RTIEN,L1,L2,L3,L4,L5),U,4)
+134 SET ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
+135 SET II=II+1
SET @DATA@(II)=ROOT_$CHAR(30)
+136 SET L6=""
+137 FOR
SET L6=$ORDER(ARRAY(RTIEN,L1,L2,L3,L4,L5,L6))
IF L6=""
QUIT
Begin DoDot:7
+138 SET CHILD=$SELECT($DATA(ARRAY(RTIEN,L1,L2,L3,L4,L5,L6))>1:"Y",1:"N")
+139 SET LVL6=$PIECE(ARRAY(RTIEN,L1,L2,L3,L4,L5,L6),U,1)_$CHAR(28)_$PIECE(ARRAY(RTIEN,L1,L2,L3,L4,L5,L6),U,4)
+140 SET ROOT=TOP_U_CHILD_U_LVL1_U_LVL2_U_LVL3_U_LVL4_U_LVL5_U_LVL6
+141 SET II=II+1
SET @DATA@(II)=ROOT_$CHAR(30)
End DoDot:7
+142 SET LVL6=""
End DoDot:6
+143 SET LVL5=""
End DoDot:5
+144 SET LVL4=""
End DoDot:4
+145 SET LVL3=""
End DoDot:3
+146 SET LVL2=""
End DoDot:2
+147 SET LVL1=""
End DoDot:1
+148 KILL ARRAY
+149 SET II=II+1
SET @DATA@(II)=$CHAR(31)
+150 QUIT
+151 ;
TOP(DATA,FAKE) ; EP -- BTPW GET TIU TEMP TOP
+1 NEW UID,II,HDR
+2 SET UID=$SELECT($GET(ZTSK):"Z"_ZTSK,1:$JOB)
+3 SET DATA=$NAME(^TMP("BTPWTMPL",UID))
+4 KILL @DATA
+5 SET II=0
+6 ; SAC 2006 2.2.3.3.2
NEW $ESTACK,$ETRAP
SET $ETRAP="D ERR^BTPWLTMP D UNWIND^%ZTER"
+7 NEW TDATA,BQII,NDATA,RN,RTIEN,LIST1,LIST,DIEN,DOC,TMCHILD,NN,BWI,QFL,NTO,BTII,BTW
+8 NEW LSNM
+9 ;
+10 SET HDR="I00010ROOT_IEN^T00035ROOT_NAME^T00001CHILDREN"
+11 SET @DATA@(II)=HDR_$CHAR(30)
+12 ;
+13 DO GETROOTS^TIUSRVT(.LIST,.DUZ)
+14 SET RN=0
+15 FOR
SET RN=$ORDER(LIST(RN))
IF RN=""
QUIT
Begin DoDot:1
+16 SET RTIEN=$PIECE(LIST(RN),U,1)
+17 DO TACCESS^TIUSRVT2(.LIST1,RTIEN,.DUZ)
+18 ; 0 = FULL ACCESS, 1 = READ ONLY, 2 = NO ACCESS,
+19 ; 3 = SHARED TEMPLATES EDITOR - ACCESS PARAMETERS DO NOT APPLY
+20 ;I $G(LIST1)=1!($G(LIST1)=2) K LIST(RN) Q
+21 IF $GET(LIST1)=2
KILL LIST(RN)
QUIT
+22 SET LSNM=$$UP^XLFSTR($PIECE(LIST(RN),U,4))
+23 IF LSNM'="SHARED TEMPLATES"&(LSNM'="MY TEMPLATES")
KILL LIST(RN)
QUIT
+24 ;I $P(LIST(RN),U,4)'="Shared Templates"&($P(LIST(RN),U,4)'="My Templates") K LIST(RN) Q
+25 ; Has Children flag (0=NONE,1=ACTIVE,2=INACTIVE,3=BOTH
+26 SET CHILD=$PIECE(LIST(RN),U,8)
IF CHILD=2
QUIT
+27 SET CHILD="Y"
+28 SET II=II+1
SET @DATA@(II)=RTIEN_U_$PIECE(LIST(RN),U,4)_U_CHILD_$CHAR(30)
End DoDot:1
+29 SET II=II+1
SET @DATA@(II)=$CHAR(31)
+30 QUIT
+31 ;
CHLD(DATA,TMPLIEN) ; EP -- BTPW GET TIU TEMP CHILD
+1 ;
+2 NEW UID,II,HDR,TMCHILD,RTIEN,XDATA
+3 SET UID=$SELECT($GET(ZTSK):"Z"_ZTSK,1:$JOB)
+4 SET DATA=$NAME(^TMP("BTPWTMPLC",UID))
SET XDATA=$NAME(^XTMP("BTPWTEMPL"))
+5 KILL @DATA
+6 SET II=0
+7 ; SAC 2006 2.2.3.3.2
NEW $ESTACK,$ETRAP
SET $ETRAP="D ERR^BTPWLTMP D UNWIND^%ZTER"
+8 ;
+9 SET HDR="I00010ROOT_IEN^T00001ROOT_TYPE^T00035ROOT_NAME^T00001CHILDREN"
+10 SET @DATA@(II)=HDR_$CHAR(30)
+11 KILL DOC
+12 DO GETITEMS^TIUSRVT(.DOC,TMPLIEN)
+13 SET DIEN=0
+14 FOR
SET DIEN=$ORDER(@DOC@(DIEN))
IF 'DIEN
QUIT
Begin DoDot:1
+15 IF $PIECE(@DOC@(DIEN),U,3)'="A"
QUIT
+16 ; Has Children flag (0=NONE,1=ACTIVE,2=INACTIVE,3=BOTH
+17 SET TMCHILD=$PIECE(@DOC@(DIEN),U,8)
+18 IF TMCHILD=2
QUIT
+19 SET TMCHILD=$SELECT(TMCHILD=0:"N",1:"Y")
+20 SET RTIEN=$PIECE(@DOC@(DIEN),U,1)
+21 IF $DATA(@XDATA@(RTIEN))
QUIT
+22 SET II=II+1
SET @DATA@(II)=$PIECE(@DOC@(DIEN),U,1)_U_$PIECE(@DOC@(DIEN),U,2)_U_$PIECE(@DOC@(DIEN),U,4)_U_TMCHILD_$CHAR(30)
End DoDot:1
+23 KILL @DOC
+24 QUIT
+25 ;
ERR ;
+1 DO ^%ZTER
+2 NEW Y,ERRDTM
+3 SET Y=$$NOW^XLFDT()
XECUTE ^DD("DD")
SET ERRDTM=Y
+4 SET BMXSEC="Recording that an error occurred at "_ERRDTM
+5 IF $DATA(II)
IF $DATA(DATA)
SET II=II+1
SET @DATA@(II)=$CHAR(31)
+6 QUIT
+7 ;
UPD ;EP - Update templates with objects
+1 ; Set list for templates with |V | data objects
+2 NEW XDATA
+3 SET XDATA=$NAME(^XTMP("BTPWTEMPL"))
+4 KILL @XDATA
+5 SET @XDATA@(0)=$$FMADD^XLFDT(DT,7)_U_DT_U_"Templates containing |V | data objects"
+6 NEW TMPN,BLN
+7 SET TMPN=0
+8 FOR
SET TMPN=$ORDER(^TIU(8927,TMPN))
IF 'TMPN
QUIT
Begin DoDot:1
+9 SET BLN=0
+10 FOR
SET BLN=$ORDER(^TIU(8927,TMPN,2,BLN))
IF 'BLN
QUIT
Begin DoDot:2
+11 IF ^TIU(8927,TMPN,2,BLN,0)["|V "
SET @XDATA@(TMPN)=""
End DoDot:2
End DoDot:1
+12 QUIT