| 1 | TIUPS76 ; SLC/JER - Post-install for TIU*1*76 ; 7/27/1999
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**76**;Jun 20, 1997
 | 
|---|
| 3 | MAIN ; Do it!
 | 
|---|
| 4 |  N ROOTDA,TITLDA,OBJDA,ITMLST,TREE
 | 
|---|
| 5 |  S TIUPOP=$$RUNCHECK
 | 
|---|
| 6 |  I +TIUPOP D  Q
 | 
|---|
| 7 |  . D BMES^XPDUTL("This routine has already been run...")
 | 
|---|
| 8 |  D SETROOT(.ROOTDA) ; Create Primary Shared Templates Root
 | 
|---|
| 9 |  D SETITLE(.TITLDA) ; Create Inactive Folder for Boilerplated TITLES
 | 
|---|
| 10 |  D WRAPTTLS(TITLDA)
 | 
|---|
| 11 |  D SETOBJ(.OBJDA)   ; Create Active Folder for all ACTIVE TIU OBJECTS
 | 
|---|
| 12 |  D WRAPOBJS(OBJDA)
 | 
|---|
| 13 |  ; Add Boilerplated Titles and Patient Data Objects as items to ROOT
 | 
|---|
| 14 |  D BMES^XPDUTL("Adding Boilerplated Titles and Patient Data Objects to Shared Templates...")
 | 
|---|
| 15 |  S ITMLST(1)=TITLDA,ITMLST(2)=OBJDA
 | 
|---|
| 16 |  D BLDTREE(.TREE,ROOTDA,.ITMLST)
 | 
|---|
| 17 |  S ^TIU(8927,"PS76")=""
 | 
|---|
| 18 |  Q
 | 
|---|
| 19 | RUNCHECK() ; Check whether this code has already run
 | 
|---|
| 20 |  I $D(^TIU(8927,"PS76")) Q 1
 | 
|---|
| 21 |  I +$O(^TIU(8927,"B","Shared Templates",0)) Q 1
 | 
|---|
| 22 |  I +$O(^TIU(8927,"B","Boilerplated Titles",0)) Q 1
 | 
|---|
| 23 |  I +$O(^TIU(8927,"B","Patient Data Objects",0)) Q 1
 | 
|---|
| 24 |  I +$O(^TIU(8927,"B","TIU Objects",0)) Q 1
 | 
|---|
| 25 |  I +$O(^TIU(8927,"B","Boilerplate Titles",0)) Q 1
 | 
|---|
| 26 |  Q 0
 | 
|---|
| 27 | SETROOT(SUCCESS) ; Create the primary Root called Shared Templates
 | 
|---|
| 28 |  N TIUDA,TIUX S TIUDA=+$O(^TIU(8927,"B","Shared Templates",0))
 | 
|---|
| 29 |  S TIUX(.01)="Shared Templates"
 | 
|---|
| 30 |  S TIUX(.03)="R"
 | 
|---|
| 31 |  S TIUX(.04)="A"
 | 
|---|
| 32 |  S TIUX(.07)=+$$CLPAC^TIUSRVT1
 | 
|---|
| 33 |  D SETTMPLT^TIUSRVT(.SUCCESS,TIUDA,.TIUX)
 | 
|---|
| 34 |  I '+SUCCESS D BMES^XPDUTL($P(SUCCESS,U,2)) Q
 | 
|---|
| 35 |  D BMES^XPDUTL("Shared Templates Root Created.")
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 | SETITLE(SUCCESS) ; Create Inactive Folder for Boilerplated Titles
 | 
|---|
| 38 |  N TIUDA,TIUX S TIUDA=+$O(^TIU(8927,"B","Boilerplated Titles",0))
 | 
|---|
| 39 |  S TIUX(.01)="Boilerplated Titles"
 | 
|---|
| 40 |  S TIUX(.03)="C"
 | 
|---|
| 41 |  S TIUX(.04)="I"
 | 
|---|
| 42 |  D SETTMPLT^TIUSRVT(.SUCCESS,TIUDA,.TIUX)
 | 
|---|
| 43 |  I '+SUCCESS D BMES^XPDUTL($P(SUCCESS,U,2)) Q
 | 
|---|
| 44 |  D BMES^XPDUTL("Boilerplated Titles Folder Created.")
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 | WRAPTTLS(TTLGRP) ; Create Template "wrappers" for Titles w/BP text
 | 
|---|
| 47 |  N TIUDA,DCTREE,DCINDX,ITMSEQ S (TTLSEQ,TIUDA)=0
 | 
|---|
| 48 |  F  S TIUDA=$O(^TIU(8925.1,TIUDA)) Q:+TIUDA'>0  D
 | 
|---|
| 49 |  . N TIUX,TIUTNM,TIUD0,TTLTMP,CNTNR
 | 
|---|
| 50 |  . S TIUD0=$G(^TIU(8925.1,TIUDA,0))
 | 
|---|
| 51 |  . Q:+$P(TIUD0,U,7)'=11  ; Exclude INACTIVE DDEFS
 | 
|---|
| 52 |  . ; Only allow TITLES or COMPONENTS
 | 
|---|
| 53 |  . I $S($P(TIUD0,U,4)="DOC":0,$P(TIUD0,U,4)="CO":0,1:1) Q
 | 
|---|
| 54 |  . ; Quit if no Boilerplate Text is present
 | 
|---|
| 55 |  . I '+$O(^TIU(8925.1,TIUDA,"DFLT",0)) Q
 | 
|---|
| 56 |  . I $P(TIUD0,U,4)="CO" D MAKECONT(.CNTNR,TIUDA,$P(TIUD0,U,4))
 | 
|---|
| 57 |  . S TIUTNM=$P(TIUD0,U)
 | 
|---|
| 58 |  . M TIUX(2)=^TIU(8925.1,TIUDA,"DFLT")
 | 
|---|
| 59 |  . D MAKEWRAP(.TTLTMP,$$MIXED^TIULS(TIUTNM),.TIUX)
 | 
|---|
| 60 |  . I +TTLTMP>0 D
 | 
|---|
| 61 |  . . I +$G(CNTNR)'>0 D ADDITEM(TTLGRP,TTLTMP) Q
 | 
|---|
| 62 |  . . D ADDITEM(CNTNR,TTLTMP),ADDITEM(TTLGRP,CNTNR)
 | 
|---|
| 63 |  Q
 | 
|---|
| 64 | MAKECONT(CNTNR,TIUDA,TYPE) ; Find/Create folder
 | 
|---|
| 65 |  N MOMDA,MOMD0,MOMNM,MOMTTYPE
 | 
|---|
| 66 |  S MOMDA=+$O(^TIU(8925.1,"AD",TIUDA,0)) Q:'MOMDA
 | 
|---|
| 67 |  S MOMD0=$G(^TIU(8925.1,MOMDA,0)) Q:(MOMD0="")
 | 
|---|
| 68 |  S MOMNM=$$MIXED^TIULS($P(MOMD0,U)),MOMTTYPE=$S(TYPE="CO":"G",1:"C")
 | 
|---|
| 69 |  S MOMTDA=$O(^TIU(8927,"B",MOMNM,0))
 | 
|---|
| 70 |  ; If the appropriate folder exists, use it
 | 
|---|
| 71 |  I +MOMTDA,($P(^TIU(8927,MOMTDA,0),U,3)=MOMTTYPE) S CNTNR=MOMTDA Q
 | 
|---|
| 72 |  ; Otherwise, create it
 | 
|---|
| 73 |  S TIUX(.01)=MOMNM
 | 
|---|
| 74 |  S TIUX(.03)=MOMTTYPE
 | 
|---|
| 75 |  S TIUX(.04)="A"
 | 
|---|
| 76 |  D SETTMPLT^TIUSRVT(.CNTNR,MOMTDA,.TIUX)
 | 
|---|
| 77 |  I +CNTNR D BMES^XPDUTL("  "_MOMNM_" Folder added.")
 | 
|---|
| 78 |  Q
 | 
|---|
| 79 | ADDITEM(PARENT,ITEM) ; Add Item to Parent
 | 
|---|
| 80 |  N TIUSUCC,TIUI,TIUITEM
 | 
|---|
| 81 |  Q:+$O(^TIU(8927,"AD",ITEM,PARENT,0))
 | 
|---|
| 82 |  S TIUI=+$P($G(^TIU(8927,+PARENT,10,0)),U,3)+1
 | 
|---|
| 83 |  S TIUITEM(.01)=TIUI,TIUITEM(.02)=ITEM
 | 
|---|
| 84 |  D UPDATE^TIUSRVT1(.TIUSUCC,"""+"_TIUI_","_PARENT_",""",.TIUITEM)
 | 
|---|
| 85 |  Q
 | 
|---|
| 86 | SETOBJ(SUCCESS) ; Create Active Folder for all ACTIVE TIU OBJECTS
 | 
|---|
| 87 |  N TIUDA,TIUX S TIUDA=+$O(^TIU(8927,"B","Patient Data Objects",0))
 | 
|---|
| 88 |  S TIUX(.01)="Patient Data Objects"
 | 
|---|
| 89 |  S TIUX(.03)="C"
 | 
|---|
| 90 |  S TIUX(.04)="A"
 | 
|---|
| 91 |  D SETTMPLT^TIUSRVT(.SUCCESS,TIUDA,.TIUX)
 | 
|---|
| 92 |  I '+SUCCESS D BMES^XPDUTL($P(SUCCESS,U,2)) Q
 | 
|---|
| 93 |  D BMES^XPDUTL("Patient Data Objects Folder Created.")
 | 
|---|
| 94 |  Q
 | 
|---|
| 95 | WRAPOBJS(OBJGRP) ; Create Template "wrappers" for ACTIVE Objects
 | 
|---|
| 96 |  N TIUDA,ITMLST,ITMSEQ,OBJECTS,TIUONM S (ITMSEQ,TIUDA)=0
 | 
|---|
| 97 |  F  S TIUDA=$O(^TIU(8925.1,"AT","O",TIUDA)) Q:+TIUDA'>0  D
 | 
|---|
| 98 |  . N TIUX,TIUTNM,TIUOD0,OBJTMP
 | 
|---|
| 99 |  . S TIUOD0=$G(^TIU(8925.1,TIUDA,0))
 | 
|---|
| 100 |  . Q:+$P(TIUOD0,U,7)'=11  ; Exclude INACTIVE OBJECTS
 | 
|---|
| 101 |  . S TIUTNM=$P(TIUOD0,U)
 | 
|---|
| 102 |  . S TIUX(2,1,0)="|"_TIUTNM_"|"
 | 
|---|
| 103 |  . D MAKEWRAP(.OBJTMP,$$MIXED^TIULS(TIUTNM),.TIUX)
 | 
|---|
| 104 |  . I +OBJTMP>0 D
 | 
|---|
| 105 |  . . S ITMLST($$UP^XLFSTR(TIUTNM))=OBJTMP
 | 
|---|
| 106 |  S TIUONM=""
 | 
|---|
| 107 |  F  S TIUONM=$O(ITMLST(TIUONM)) Q:TIUONM=""  D
 | 
|---|
| 108 |  . S ITMSEQ=ITMSEQ+1
 | 
|---|
| 109 |  . S ITMLST(ITMSEQ)=ITMLST(TIUONM)
 | 
|---|
| 110 |  . K ITMLST(TIUONM)
 | 
|---|
| 111 |  I +$O(ITMLST(0)) D SETITEMS^TIUSRVT(.OBJECTS,OBJGRP,.ITMLST)
 | 
|---|
| 112 |  Q
 | 
|---|
| 113 | MAKEWRAP(WRAPTEMP,TIUTNM,TIUX) ; Create a single wrapper
 | 
|---|
| 114 |  N TIUDA S TIUDA=+$O(^TIU(8927,"B",TIUTNM,0))
 | 
|---|
| 115 |  S TIUX(.01)=TIUTNM
 | 
|---|
| 116 |  S TIUX(.03)="T"
 | 
|---|
| 117 |  S TIUX(.04)="A"
 | 
|---|
| 118 |  D SETTMPLT^TIUSRVT(.WRAPTEMP,TIUDA,.TIUX)
 | 
|---|
| 119 |  I +WRAPTEMP D BMES^XPDUTL("  "_TIUTNM_" Template ""wrapper"" added.")
 | 
|---|
| 120 |  Q
 | 
|---|
| 121 | BLDTREE(TREE,ROOTDA,ITMLST) ; Add Boilerplated Titles and
 | 
|---|
| 122 |  ;                         Patient Data Objects as items to ROOT
 | 
|---|
| 123 |  D SETITEMS^TIUSRVT(.TREE,ROOTDA,.ITMLST)
 | 
|---|
| 124 |  Q
 | 
|---|