1 | TIUEDI1 ; SLC/MAM - Additional Edit Code ;March 25, 2004
|
---|
2 | ;;1.0;TEXT INTEGRATION UTILITIES;**7,22,66,61,100,166**;Jun 20, 1997
|
---|
3 | GETREC(DFN,TIU,TIUCREAT,TIUNEW,TIUDPRM,TIUINQ,TIUPERSN) ;Returns
|
---|
4 | ;new or existing document DA.
|
---|
5 | ; Receives TIUPERSN (optional) = person asking to edit/create docmt,
|
---|
6 | ; or for upload, = author of document.
|
---|
7 | ; If not received, assumed to be DUZ.
|
---|
8 | ; New **ID** parameter, backward compatible
|
---|
9 | ; Requires array TIUTYP where
|
---|
10 | ; TIUTYP = title DA
|
---|
11 | ; TIUTYP(1) = 1^title DA^Name
|
---|
12 | ; Receives TIUCREAT for backward compatibility place holder only
|
---|
13 | S TIUPERSN=$G(TIUPERSN,DUZ)
|
---|
14 | S DA=$$GETRECNW^TIUEDI3(DFN,.TIU,TIUTYP(1),.TIUNEW,.TIUDPRM,+$G(TIUINQ),TIUPERSN)
|
---|
15 | Q +$G(DA)
|
---|
16 | ;
|
---|
17 | INQUIRE() ; Ask user whether to create a new note anyway
|
---|
18 | N TIUY,TIUPRMT
|
---|
19 | S TIUY=0,TIUPRMT="Do you want to create a new record anyway"
|
---|
20 | S TIUY=+$$READ^TIUU("Y",TIUPRMT,"NO")
|
---|
21 | Q TIUY
|
---|
22 | SCANDAD(TIUTYP,TIUDA) ; Search "DAD" index for component record
|
---|
23 | N TIUC,TIUY
|
---|
24 | S (TIUY,TIUC)=0
|
---|
25 | F S TIUC=$O(^TIU(8925,"DAD",+TIUDA,TIUC)) Q:+TIUC'>0!(+TIUY>0) D
|
---|
26 | . I +TIUTYP=+$G(^TIU(8925,+TIUC,0)) S TIUY=TIUC Q
|
---|
27 | . I +$O(^TIU(8925,"DAD",+TIUC,0)) S TIUY=$$SCANDAD(TIUTYP,TIUC)
|
---|
28 | Q TIUY
|
---|
29 | GETCOMP(TIUTYP,TIUDA,TIU,DFN) ; Adds components to document
|
---|
30 | N DIC,DA,X,Y,DIE,DR,TIUC,TIUCMP,TIUMOM,TIUMTYP,TIUY,TIUFPRIV
|
---|
31 | N DLAYGO ;10/3/00
|
---|
32 | S TIUFPRIV=1,(TIUY,TIUC)=0
|
---|
33 | S TIUY=$$SCANDAD(TIUTYP,TIUDA)
|
---|
34 | I +TIUY G GETCX
|
---|
35 | S (DIC,DLAYGO)=8925,DIC(0)="FL"
|
---|
36 | S X="""`"_+TIUTYP_""""
|
---|
37 | D ^DIC
|
---|
38 | I +Y'>0 W !,X," component could not be created.",! G GETCX
|
---|
39 | S (TIUY,DA)=+Y,DIE=DIC
|
---|
40 | S TIUMOM=+$$RUMYMTHR(TIUDA,DA,+TIUTYP,+$G(^TIU(8925,+DA,0)))
|
---|
41 | S TIUMTYP=+$G(^TIU(8925,+TIUMOM,0))
|
---|
42 | S DR=".02////"_DFN_";.03////"_$P($G(TIU("VISIT")),U)_";.04////"_TIUMTYP_";.06////"_TIUMOM
|
---|
43 | D ^DIE W "."
|
---|
44 | GETCX Q TIUY
|
---|
45 | RUMYMTHR(MOM,BRAT,MOMTYP,BRATYP) ; Get appropriate parent for component
|
---|
46 | N TIUI,GOTMOM,CNDMOM,CNDTYP,TIUMOM S (GOTMOM,TIUI)=0
|
---|
47 | I +$O(^TIU(8925.1,"AD",+BRATYP,MOMTYP,0)) S GOTMOM=1 G RUMYX
|
---|
48 | S CNDMOM=0
|
---|
49 | F S CNDMOM=$O(^TIU(8925,"DAD",+MOM,+CNDMOM)) Q:+CNDMOM'>0 D
|
---|
50 | . S CNDTYP=+$G(^TIU(8925,+CNDMOM,0))
|
---|
51 | . S TIUMOM=$$RUMYMTHR(CNDMOM,BRAT,CNDTYP,BRATYP) I $P(TIUMOM,U,2)=1 S MOM=+TIUMOM,GOTMOM=1 Q
|
---|
52 | RUMYX Q MOM_U_GOTMOM
|
---|
53 | DELCOMP(TIUDA) ; Cleans up all components of a document
|
---|
54 | N DA,DIE,DR,TIUCDA S TIUCDA=0,DIE="^TIU(8925,"
|
---|
55 | F S TIUCDA=$O(^TIU(8925,"DAD",TIUDA,TIUCDA)) Q:+TIUCDA'>0 D
|
---|
56 | . W !,$P(^TIU(8925.1,+^TIU(8925,TIUCDA,0),0),U)_" Component Deleted"
|
---|
57 | . S DR=".01///@",DA=TIUCDA D ^DIE W "."
|
---|
58 | . I +$O(^TIU(8925,"DAD",TIUCDA,0))>0 D DELCOMP(TIUCDA)
|
---|
59 | Q
|
---|
60 | DELAUDIT(TIUDA) ; Cleans up all AUDIT TRAIL entries for a document
|
---|
61 | N DA,DIK,DR,TIUADA S TIUADA=0,DIK="^TIU(8925.5,"
|
---|
62 | F S TIUADA=$O(^TIU(8925.5,"B",TIUDA,TIUADA)) Q:+TIUADA'>0 D
|
---|
63 | . ; W !," Audit trail record #",TIUADA," Deleted"
|
---|
64 | . S DA=TIUADA D ^DIK ; W "."
|
---|
65 | I $L($T(DEL^PXRMGECU)) D DEL^PXRMGECU(+TIUDA)
|
---|
66 | Q
|
---|
67 | ISCOMP(TIUTYP,X) ; Is the text provided a component tag
|
---|
68 | N DIC,TIULEVEL,TIUY,Y,TIUFPRIV S TIULEVEL=0,TIUFPRIV=1
|
---|
69 | S DIC=8925.1,DIC(0)="FX"
|
---|
70 | S DIC("S")="I $P(^TIU(8925.1,+Y,0),U,4)=""CO"""
|
---|
71 | D ^DIC K DIC("S")
|
---|
72 | I +Y'>0 S TIUY=0 G ISCMPX
|
---|
73 | I +$O(^TIU(8925.1,+TIUTYP,10,"B",+Y,0))'>0 S TIUY=0 G ISCMPX
|
---|
74 | S TIUY=Y
|
---|
75 | ISCMPX Q TIUY
|
---|
76 | MERGTEMP(TIUDA) ; Merge text from components into TEMP node for edit
|
---|
77 | N TIUC,TIUI,TIUJ,TIULINE
|
---|
78 | S (TIUC,TIULINE)=0,TIUJ=+$P($G(^TIU(8925,+TIUDA,"TEMP",0)),U,3)
|
---|
79 | F S TIUC=$O(^TIU(8925,"DAD",TIUDA,TIUC)) Q:+TIUC'>0 D
|
---|
80 | . I +$$ISADDNDM^TIULC1(+TIUC) Q
|
---|
81 | . S TIUI=0 F S TIUI=$O(^TIU(8925,+TIUC,"TEXT",TIUI)) Q:+TIUI'>0 D
|
---|
82 | . . S TIUJ=+$G(TIUJ)+1
|
---|
83 | . . S ^TIU(8925,+TIUDA,"TEMP",TIUJ,0)=$G(^TIU(8925,+TIUC,"TEXT",TIUI,0))
|
---|
84 | . . K ^TIU(8925,+TIUC,"TEXT",TIUI,0) ; Clear the way for edits
|
---|
85 | . . S ^TIU(8925,+TIUC,"TEXT",0)="^^^^"_DT_"^^"
|
---|
86 | . . S ^TIU(8925,+TIUDA,"TEMP",0)="^^"_TIUJ_"^"_TIUJ_"^"_DT_"^^"
|
---|
87 | . I +$O(^TIU(8925,"DAD",+TIUC,0)) D MERGGRAN(TIUDA,+TIUC)
|
---|
88 | . S TIUJ=+$P($G(^TIU(8925,+TIUDA,"TEMP",0)),U,3)
|
---|
89 | I $D(^TIU(8925,+TIUDA,"TEMP",1))>9 M ^TIU(8925,+TIUDA,"TEXT")=^TIU(8925,+TIUDA,"TEMP")
|
---|
90 | Q
|
---|
91 | MERGGRAN(TIUDA,TIUC) ; Merge sub-components into TEMP node of original
|
---|
92 | N TIUC1,TIUI,TIUJ,TIULINE
|
---|
93 | S (TIUC1,TIULINE)=0,TIUJ=+$P($G(^TIU(8925,+TIUDA,"TEMP",0)),U,3)
|
---|
94 | F S TIUC1=$O(^TIU(8925,"DAD",TIUC,TIUC1)) Q:+TIUC1'>0 D
|
---|
95 | . S TIUI=0 F S TIUI=$O(^TIU(8925,+TIUC1,"TEXT",TIUI)) Q:+TIUI'>0 D
|
---|
96 | . . S TIUJ=+$G(TIUJ)+1
|
---|
97 | . . S ^TIU(8925,+TIUDA,"TEMP",TIUJ,0)=$G(^TIU(8925,+TIUC1,"TEXT",TIUI,0))
|
---|
98 | . . K ^TIU(8925,+TIUC1,"TEXT",TIUI,0) ; Clear the way for edits
|
---|
99 | . . S ^TIU(8925,+TIUC1,"TEXT",0)="^^^^"_DT_"^^"
|
---|
100 | . . S ^TIU(8925,+TIUDA,"TEMP",0)="^^"_TIUJ_"^"_TIUJ_"^"_DT_"^^"
|
---|
101 | . I +$O(^TIU(8925,"DAD",+TIUC1,0)) D MERGGRAN(TIUDA,+TIUC1)
|
---|
102 | . S TIUJ=+$P($G(^TIU(8925,+TIUDA,"TEMP",0)),U,3)
|
---|
103 | Q
|
---|
104 | MERGTEXT(TIUDA,TIU) ; Merge TEMP node from parent document into components
|
---|
105 | N TIUTYP
|
---|
106 | S TIUTYP=+$P(^TIU(8925,+TIUDA,0),U)
|
---|
107 | ; -- If document has components, add/update them
|
---|
108 | I +$O(^TIU(8925.1,+TIUTYP,10,0))>0 D
|
---|
109 | . N TIUC,TIUI,TIUJ,TIUX,TIUCMP S (TIUI,TIUJ,TIUCMP)=0
|
---|
110 | . F S TIUI=$O(^TIU(8925,+TIUDA,"TEMP",TIUI)) Q:+TIUI'>0 D
|
---|
111 | . . S TIUX=$G(^TIU(8925,+TIUDA,"TEMP",TIUI,0))
|
---|
112 | . . S TIUC=+$$ISCOMP(TIUTYP,$P(TIUX,":"))
|
---|
113 | . . I TIUX[":",+TIUC D
|
---|
114 | . . . S TIUJ=0 ; Reinitialize line count for new component
|
---|
115 | . . . S TIUCMP=$$GETCOMP(TIUC,TIUDA,.TIU,DFN)
|
---|
116 | . . S TIUJ=+$G(TIUJ)+1
|
---|
117 | . . I +TIUCMP>0 D
|
---|
118 | . . . S ^TIU(8925,+TIUCMP,"TEXT",TIUJ,0)=$G(^TIU(8925,+TIUDA,"TEMP",+TIUI,0))
|
---|
119 | . . . S ^TIU(8925,+TIUCMP,"TEXT",0)="^^"_TIUJ_"^"_TIUJ_"^"_DT_"^^"
|
---|
120 | . . E D
|
---|
121 | . . . S ^TIU(8925,+TIUDA,"TEXT",TIUJ,0)=$G(^TIU(8925,+TIUDA,"TEMP",TIUJ,0))
|
---|
122 | . . . S ^TIU(8925,+TIUDA,"TEXT",0)="^^"_TIUJ_"^"_TIUJ_"^"_DT_"^^"
|
---|
123 | ; -- If no components, merge "TEMP" into "TEXT" for current document
|
---|
124 | I +$O(^TIU(8925.1,+TIUTYP,10,0))'>0 M ^TIU(8925,+TIUDA,"TEXT")=^TIU(8925,+TIUDA,"TEMP")
|
---|
125 | Q
|
---|
126 | GETTMPL(TIUTYP) ; Get edit template, enforce inheritance
|
---|
127 | N TIUDAD,TIUY S TIUDAD=0
|
---|
128 | S TIUY=$G(^TIU(8925.1,+TIUTYP,5))
|
---|
129 | I TIUY']"",($P(^TIU(8925.1,+TIUTYP,0),U)["ADDENDUM") D
|
---|
130 | . S TIUDAD=+$P($G(^TIU(8925,+$P($G(^TIU(8925,+$G(TIUDA),0)),U,6),0)),U)
|
---|
131 | . I +TIUDAD S TIUY=$$GETTMPL(TIUDAD)
|
---|
132 | I TIUY']"" S TIUDAD=$O(^TIU(8925.1,"AD",+TIUTYP,0))
|
---|
133 | I +TIUDAD S TIUY=$$GETTMPL(TIUDAD)
|
---|
134 | Q TIUY
|
---|
135 | AUDIT(TIUDA,TIUCKSM0,TIUCKSM1) ; Update audit trail
|
---|
136 | N DIC,DIE,DA,DR,X,Y
|
---|
137 | S X=""""_"`"_TIUDA_"""",(DIC,DLAYGO)=8925.5,DIC(0)="FLX" D ^DIC Q:+Y'>0
|
---|
138 | S DIE=DIC,DR=".02////"_$$NOW^TIULC_";.03////"_DUZ_";.04////"_TIUCKSM0_";.05////"_TIUCKSM1
|
---|
139 | S DA=+Y D ^DIE
|
---|
140 | Q
|
---|
141 | GETLMETH(TIUTYP) ; Get Visit Linkage method, enforce inheritance
|
---|
142 | N TIUDAD,TIUY S TIUDAD=0
|
---|
143 | S TIUY=$G(^TIU(8925.1,+TIUTYP,7))
|
---|
144 | I TIUY']"" S TIUDAD=$O(^TIU(8925.1,"AD",+TIUTYP,0))
|
---|
145 | I +TIUDAD S TIUY=$$GETLMETH(TIUDAD)
|
---|
146 | Q TIUY
|
---|
147 | GETVMETH(TIUTYP) ; Get Validation method, enforce enheritance
|
---|
148 | N TIUDAD,TIUY S TIUDAD=0
|
---|
149 | S TIUY=$G(^TIU(8925.1,+TIUTYP,8))
|
---|
150 | I TIUY']"" S TIUDAD=$O(^TIU(8925.1,"AD",+TIUTYP,0))
|
---|
151 | I +TIUDAD S TIUY=$$GETVMETH(TIUDAD)
|
---|
152 | Q TIUY
|
---|
153 | ;
|
---|