1 | TIUPEVN1 ; SLC/JER - Event logger Cont'd ;21-OCT-1999 10:47:05
|
---|
2 | ;;1.0;TEXT INTEGRATION UTILITIES;**81**;Jun 20, 1997
|
---|
3 | ;
|
---|
4 | FIELDS(EVNTDA,MSG) ; ---- Log missing/incorrect field errors for
|
---|
5 | ; specific fields in UPLOAD LOG file (#8925.4),
|
---|
6 | ; in multiple fl. TIU*1*81 moved from TIUPEVNT
|
---|
7 | N TIUI S TIUI=0
|
---|
8 | F S TIUI=$O(MSG("DIERR",TIUI)) Q:+TIUI'>0 D
|
---|
9 | . N DA,DR,DIC,DIE,DLAYGO S DIC="^TIU(8925.4,"_EVNTDA_",1,",DIC(0)="L"
|
---|
10 | . I '$D(MSG("DIERR",TIUI,"PARAM","FILE")) Q
|
---|
11 | . S ^TIU(8925.4,EVNTDA,1,0)="^8925.42^^",DA(1)=EVNTDA
|
---|
12 | . S DLAYGO=8925.42,X=""""_MSG("DIERR",TIUI,"PARAM","FILE")_""""
|
---|
13 | . D ^DIC Q:+Y'>0
|
---|
14 | . S DIE=DIC,DA(1)=EVNTDA,DA=+Y
|
---|
15 | . S DR=".02///"_+$G(MSG("DIERR",TIUI,"PARAM","IENS"))_";.03///"_$G(MSG("DIERR",TIUI,"PARAM","FIELD"))_";.04///"_$G(MSG("DIERR",TIUI,"PARAM",3))
|
---|
16 | . D ^DIE,FLDALRT(EVNTDA,DA,$P($G(^TIU(8925.4,+EVNTDA,0)),U,4))
|
---|
17 | Q
|
---|
18 | FLDALRT(EVNTDA,EVNTDA1,ERRMSG) ; ---- Send alerts for missing field errors
|
---|
19 | ; TIU*1*81 moved from TIUPEVNT
|
---|
20 | N XQA,XQAID,XQADATA,XQAMSG,XQAKILL,XQAROU,TIUI,TIUSUB,TYPE,EVNTDA10
|
---|
21 | N NOTEDA
|
---|
22 | ; ---- TIU*1*81 If this is a TIU docmt, get its title for TYPE
|
---|
23 | S EVNTDA10=$G(^TIU(8925.4,EVNTDA,1,EVNTDA1,0))
|
---|
24 | I $P(EVNTDA10,U)=8925 D
|
---|
25 | . S NOTEDA=$P(EVNTDA10,U,2),NOTE0=$G(^TIU(8925,NOTEDA,0)),TYPE=+NOTE0
|
---|
26 | . ; ---- TIU*1*81 If note is addendum, get type of parent note instead
|
---|
27 | . I +$$ISADDNDM^TIULC1(NOTEDA) S TYPE=+$$DADTYPE^TIUPUTC(NOTEDA)
|
---|
28 | ; ---- else get TYPE from $HDR line, e.g. Progress Notes (3)
|
---|
29 | I $G(TYPE)'>0 S TYPE=+$G(TIUREC("TYPE"))
|
---|
30 | I TYPE D WHOGETS^TIUPEVN1(.XQA,TYPE)
|
---|
31 | ; ---- If no docmt def param recipients found, try site recipients
|
---|
32 | I $D(XQA)'>9 D
|
---|
33 | . S TIUI=$O(^TIU(8925.99,"B",+$G(DUZ(2)),0)) S:+TIUI'>0 TIUI=+$O(^TIU(8925.99,0))
|
---|
34 | . S TIUSUB=0 F S TIUSUB=$O(^TIU(8925.99,+TIUI,2,TIUSUB)) Q:TIUSUB'>0 D
|
---|
35 | . . S XQA($G(^TIU(8925.99,+TIUI,2,TIUSUB,0)))=""
|
---|
36 | Q:$D(XQA)'>9
|
---|
37 | S XQAID="TIUERR"_","_EVNTDA_","_EVNTDA1
|
---|
38 | S XQAMSG=ERRMSG
|
---|
39 | W:'$D(ZTQUEUED) !!,XQAMSG
|
---|
40 | S XQADATA=ERRMSG_";"_EVNTDA_";"_EVNTDA1
|
---|
41 | S XQAROU="FLDISP^TIUPEVN1" ; TIU*1*81 moved from TIUPEVNT
|
---|
42 | D SETUP^XQALERT
|
---|
43 | Q
|
---|
44 | FLDISP ; ---- Alert follow-up action for missing field errors
|
---|
45 | ; TIU*1*81 moved from TIUPEVNT
|
---|
46 | N DIE,DA,DR,EVNTDA,EVNTDA1,EVNTREC,TIUFIX,TIULINK S TIUFIX=0
|
---|
47 | S EVNTDA=+$P(XQADATA,";",2),EVNTDA1=+$P(XQADATA,";",3)
|
---|
48 | S EVNTREC=$G(^TIU(8925.4,EVNTDA,1,EVNTDA1,0)) Q:+EVNTREC'>0
|
---|
49 | S DIE=$P(EVNTREC,U),DA=$P(EVNTREC,U,2)
|
---|
50 | S DR=$P(EVNTREC,U,3)_"//"_$P(EVNTREC,U,4)
|
---|
51 | S TIUFIX=$$FIXED(DIE,+DA,+DR)
|
---|
52 | I +TIUFIX>0 D Q
|
---|
53 | . W:TIUFIX=1 !!,"Missing field already filled in by another method..."
|
---|
54 | . W:TIUFIX=2 !!,"Record #",DA," has been deleted by an authorized user..."
|
---|
55 | . W !," Nothing left to resolve." H 3
|
---|
56 | . S XQAKILL=0 D FLDRSLV(EVNTDA)
|
---|
57 | W !!,"You may now enter the correct information:",!
|
---|
58 | W !,$P(XQADATA,";"),!
|
---|
59 | D RECDISP(DIE,DA)
|
---|
60 | I DIE=8925,(+DR=1405) D
|
---|
61 | . N TIUREASX,TIUDA
|
---|
62 | . S TIUDA=+DA
|
---|
63 | . S TIUREASX=$$REASSIGN^TIULC1(+$G(^TIU(8925,+TIUDA,0)))
|
---|
64 | . I TIUREASX]"" X TIUREASX S TIULINK=1
|
---|
65 | I '+$G(TIULINK) D ^DIE
|
---|
66 | ; ---- If TIU Document, do post-filing action send signature alerts
|
---|
67 | I DIE="^TIU(8925," D
|
---|
68 | . N TIUREC,TIUPOST,DR,DIE,TYPE
|
---|
69 | . S TYPE=$S(+$$ISADDNDM^TIULC1(DA):+$G(^TIU(8925,+$P(^TIU(8925,DA,0),U,6),0)),1:+$G(^TIU(8925,DA,0)))
|
---|
70 | . S TIUPOST=$$POSTFILE^TIULC1(TYPE)
|
---|
71 | . S TIUREC("#")=DA
|
---|
72 | . I TIUPOST]"" X TIUPOST I 1
|
---|
73 | . D SEND^TIUALRT(DA)
|
---|
74 | S TIUFIX=$$FIXED(DIE,+DA,+DR)
|
---|
75 | I +$G(TIUFIX)'>0 K XQAKILL Q
|
---|
76 | S XQAKILL=0
|
---|
77 | ; ---- If field is fixed, evaluate whether whole event is resolved
|
---|
78 | D FLDRSLV(EVNTDA)
|
---|
79 | Q
|
---|
80 | RECDISP(DIC,DA) ; ---- Call DIQ to display the existing record
|
---|
81 | ; TIU*1*81 moved from TIUPEVNT
|
---|
82 | N X,Y,DIQ,DR
|
---|
83 | I '+$$READ^TIUU("Y","Display ENTIRE existing record","NO") Q
|
---|
84 | W ! S DIC=$G(^DIC(DIC,0,"GL"))
|
---|
85 | D EN^DIQ
|
---|
86 | Q
|
---|
87 | FIXED(DIC,DA,DR) ; ---- Evaluate whether the field has been filled in
|
---|
88 | ; TIU*1*81 moved from TIUPEVNT
|
---|
89 | N DIQ,X,Y,TIUY,TIUFIX S TIUY=0,DIQ="TIUFIX",DIQ(0)="IN"
|
---|
90 | I '$D(^TIU(8925,DA,0)) S TIUY=2 G FIXX
|
---|
91 | D EN^DIQ1 I $D(TIUFIX) S TIUY=1
|
---|
92 | FIXX Q TIUY
|
---|
93 | FLDRSLV(ERRDA) ; ---- Evaluate missing field errors; mark resolved
|
---|
94 | ; TIU*1*81 moved from TIUPEVNT
|
---|
95 | N TIUK,TIUFLD,RSLVED
|
---|
96 | S TIUK=0,RSLVED=1
|
---|
97 | ; ---- TIU*1*81 Mark resolved only if ALL missing fields are fixed
|
---|
98 | F S TIUK=$O(^TIU(8925.4,+ERRDA,1,TIUK)) Q:+TIUK'>0 Q:'RSLVED D
|
---|
99 | . N DIC,DIQ,DA,DR S DA=TIUK,DIC="^TIU(8925.4,"_+ERRDA_",1,"
|
---|
100 | . S DR=".01:.04",DIQ="TIUFLD(" D EN^DIQ1 Q:$D(TIUFLD)'>9
|
---|
101 | . I '$$FIXED(8925,+$G(TIUFLD(8925.42,DA,.02)),+$G(TIUFLD(8925.42,DA,.03)))=1 S RSLVED=0
|
---|
102 | Q:'RSLVED
|
---|
103 | N DIE,DR
|
---|
104 | S DA=+ERRDA,DIE=8925.4,DR=".06////1;.07////"_$$NOW^TIULC D ^DIE
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | WHOGETS(TIUY,TIUTYP) ; ---- Who gets filing error/missing field alerts;
|
---|
108 | ; Get 8925.95 (document parameter) recipients.
|
---|
109 | ; ---- TIUTYP is title IFN in 8925.1 if valid title was uploaded, else
|
---|
110 | ; is IFN of entry from $HDR line: e.g. PROGRESS NOTES
|
---|
111 | ; Starts at initial TIUTYP; goes up hierarchy til it finds entry.
|
---|
112 | ; ---- TIU*1*81 Don't new TIUDAD HERE!
|
---|
113 | N TIUI,TIUJ
|
---|
114 | ; ---- TIU*1*81 TIUTITLE is killed before missing fld alerts are sent,
|
---|
115 | ; so don't use it here
|
---|
116 | Q:+$G(TIUTYP)'>0
|
---|
117 | S TIUI=$O(^TIU(8925.95,"B",+TIUTYP,0))
|
---|
118 | ; ---- If TIUTYP has docmt parameter, get recipients and don't look
|
---|
119 | ; further up:
|
---|
120 | I +TIUI D Q
|
---|
121 | . S TIUJ=0
|
---|
122 | . F S TIUJ=$O(^TIU(8925.95,+TIUI,4,+TIUJ)) Q:+TIUJ'>0 D
|
---|
123 | . . N TIUDUZ
|
---|
124 | . . S TIUDUZ=+$G(^TIU(8925.95,+TIUI,4,+TIUJ,0)) Q:+TIUDUZ'>0
|
---|
125 | . . S TIUY(TIUDUZ)=""
|
---|
126 | ; ---- If none found, try further up
|
---|
127 | S TIUDAD=$O(^TIU(8925.1,"AD",+TIUTYP,0))
|
---|
128 | I +TIUDAD D WHOGETS(.TIUY,TIUDAD)
|
---|
129 | Q
|
---|