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

BTPWLTMP.m

Go to the documentation of this file.
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