1 | HLEMDD ;ALB/CJM-HL7 - M CODE FOUND IN THE DD'S ;02/04/2004
|
---|
2 | ;;1.6;HEALTH LEVEL SEVEN;**109**;Oct 13, 1995
|
---|
3 | ;
|
---|
4 | ;
|
---|
5 | KILLAH(IEN) ;kills the AH x~ref on file 776.4 or a particular event=ien
|
---|
6 | Q:'$G(IEN)
|
---|
7 | N NEXT,LOCATION
|
---|
8 | S NEXT=""
|
---|
9 | F S NEXT=$O(^HLEV(776.4,"AH KILL",IEN,NEXT)) Q:'$L(NEXT) D
|
---|
10 | .S LOCATION="^HLEV(776.4,""AH"","_NEXT
|
---|
11 | .K @LOCATION
|
---|
12 | K ^HLEV(776.4,"AH KILL",IEN)
|
---|
13 | Q
|
---|
14 | ;
|
---|
15 | SETID(IEN) ;sets the value of the ID field in the EVENT
|
---|
16 | ;Input: IEN is the ien of the Monitor Event
|
---|
17 | ;Output: none
|
---|
18 | ;
|
---|
19 | Q:'$G(IEN)
|
---|
20 | Q:'$D(^HLEV(776.4,IEN,0))
|
---|
21 | S $P(^HLEV(776.4,IEN,0),"^",4)=$$STATNUM^HLEMU_"-"_IEN
|
---|
22 | Q
|
---|
23 | ;
|
---|
24 | STATUS(IEN,STATUS) ;
|
---|
25 | ;if the REVIEW STATUS is REQUIRED ONLY IF ACTION FAILS then when the ACTION STATUS field changes the REVIEW STATUS is updated appropriately
|
---|
26 | ;
|
---|
27 | ;
|
---|
28 | Q:'$G(IEN)
|
---|
29 | Q:($G(STATUS)<3)
|
---|
30 | N NODE,REVIEW
|
---|
31 | S NODE=$G(^HLEV(776.4,IEN,0))
|
---|
32 | S REVIEW=$P(NODE,"^",6)
|
---|
33 | I REVIEW=2 D
|
---|
34 | .I STATUS=3 S $P(^HLEV(776.4,IEN,0),"^",6)=0
|
---|
35 | .I STATUS=4 S $P(^HLEV(776.4,IEN,0),"^",6)=1
|
---|
36 | Q
|
---|
37 | ;
|
---|
38 | ADDSTAT(NEWTIME,OLDSITE,SITE,TYPE,STATUS,COUNT) ;
|
---|
39 | ;Description - add logic for the AF x~ref on the Monitor Event file.
|
---|
40 | ;Maintains statistics for events.
|
---|
41 | ;Input:
|
---|
42 | ; NEWTIME - new value of the .01 field (DT/TM)
|
---|
43 | ; OLDSITE - old value of the SITE field
|
---|
44 | ; SITE - new value of the SITE field
|
---|
45 | ; TYPE - new value of the TYPE field
|
---|
46 | ; STATUS - new value of the REVIEW STATUS field
|
---|
47 | ; COUNT - the new value of the COUNT field
|
---|
48 | ;Output: see DD for description of the AF x~ref
|
---|
49 | ;
|
---|
50 | Q:'($G(NEWTIME)&$G(SITE)&$G(TYPE)&$L($G(STATUS)))
|
---|
51 | ;
|
---|
52 | N INDEX
|
---|
53 | S INDEX="^HLEV(776.4,""AF"",SITE,TYPE)"
|
---|
54 | ;
|
---|
55 | ;COUNT must be ast least 1
|
---|
56 | S COUNT=$G(COUNT,1)
|
---|
57 | ;
|
---|
58 | I '$G(OLDSITE) D
|
---|
59 | .N YEAR,MONTH,DAY,HOUR
|
---|
60 | .S YEAR=$$YEAR(NEWTIME),MONTH=$$MONTH(NEWTIME),DAY=$$DAY(NEWTIME),HOUR=$$HOUR(NEWTIME)
|
---|
61 | .I YEAR,$$I^HLEMU($NA(@INDEX@("RECEIVED","YEAR",YEAR)),COUNT) D
|
---|
62 | ..I MONTH,$$I^HLEMU($NA(@INDEX@("RECEIVED","YEAR",YEAR,"MONTH",MONTH)),COUNT) D
|
---|
63 | ...I DAY,$$I^HLEMU($NA(@INDEX@("RECEIVED","YEAR",YEAR,"MONTH",MONTH,"DAY",DAY)),COUNT) D
|
---|
64 | ....I HOUR,$$I^HLEMU($NA(@INDEX@("RECEIVED","YEAR",YEAR,"MONTH",MONTH,"DAY",DAY,"HOUR",HOUR)),COUNT)
|
---|
65 | I $$I^HLEMU($NA(@INDEX@(STATUS)),COUNT)
|
---|
66 | Q
|
---|
67 | ;
|
---|
68 | DELSTAT(SITE,TYPE,STATUS,COUNT) ;
|
---|
69 | ;Description - delete logic for the AF x~ref on the Monitor Event file.
|
---|
70 | ;Maintains statistics for events.
|
---|
71 | ;Input:
|
---|
72 | ; SITE - old value of the SITE field
|
---|
73 | ; TYPE - old value of the TYPE field
|
---|
74 | ; STATUS - old value of the REVIEW STATUS field
|
---|
75 | ; COUNT - old value fo the COUNT field
|
---|
76 | ;Output: see DD for description of the AF x~ref
|
---|
77 | ;
|
---|
78 | Q:'($G(SITE)&$G(TYPE)&$L($G(STATUS)))
|
---|
79 | ;
|
---|
80 | ;COUNT must be at least 1
|
---|
81 | S COUNT=$G(COUNT,1)
|
---|
82 | ;
|
---|
83 | N INDEX
|
---|
84 | S INDEX="^HLEV(776.4,""AF"",SITE,TYPE,STATUS)"
|
---|
85 | I $$I^HLEMU($NA(@INDEX),-COUNT)
|
---|
86 | Q
|
---|
87 | ;
|
---|
88 | YEAR(FMDATE) ;returns the year (i.e., "2003", not in FM format)
|
---|
89 | Q $S($G(FMDATE):1700+$E(FMDATE,1,3),1:"")
|
---|
90 | MONTH(FMDATE) ;returns the month (1-12)
|
---|
91 | Q $S($G(FMDATE):+$E(FMDATE,4,5),1:"")
|
---|
92 | DAY(FMDATE) ;returns the day (1 - 31)
|
---|
93 | Q $S($G(FMDATE):+$E(FMDATE,6,7),1:"")
|
---|
94 | HOUR(FMDATE) ;returns the hour (1-24
|
---|
95 | Q $S($G(FMDATE):+$E($P(FMDATE,".",2),1,2),1:"")
|
---|
96 | ;
|
---|
97 | URGENCY(EVENT,URGENT,ACTION,REVIEW) ;
|
---|
98 | ;Description- changes the urgency as the action status and review status change.
|
---|
99 | ;
|
---|
100 | Q:'$G(EVENT)
|
---|
101 | I $G(URGENT)=2,$G(ACTION)=4 S $P(^HLEV(776.4,EVENT,0),"^",12)=1
|
---|
102 | I $G(URGENT)=2,$G(ACTION)=3 S $P(^HLEV(776.4,EVENT,0),"^",12)=0
|
---|
103 | I $G(REVIEW)=4 S $P(^HLEV(776.4,EVENT,0),"^",12)=0
|
---|
104 | Q
|
---|
105 | ;
|
---|
106 | DEFAULT(PROFILE,DUZ,DEFAULT) ;
|
---|
107 | ;Description - maintains the "AC" x~ref on file 776.5, Event Log Prfofiles, insuring that each use has only one profile marked his default
|
---|
108 | ;
|
---|
109 | Q:'$G(PROFILE)
|
---|
110 | Q:'$G(DUZ)
|
---|
111 | Q:'$D(DEFAULT)
|
---|
112 | I $G(DEFAULT) D
|
---|
113 | .N PROF
|
---|
114 | .S PROF=""
|
---|
115 | .F S PROF=$O(^HLEV(776.5,"AC",DUZ,PROF)) Q:'PROF D
|
---|
116 | ..S $P(^HLEV(776.5,PROF,0),"^",3)=0
|
---|
117 | ..K ^HLEV(776.5,"AC",DUZ,PROF)
|
---|
118 | .S ^HLEV(776.5,"AC",DUZ,PROFILE)=""
|
---|
119 | E D
|
---|
120 | .K ^HLEV(776.5,"AC",DUZ,PROFILE)
|
---|
121 | Q
|
---|
122 | ;
|
---|
123 | CSTATUS(EVENT,STATUS) ;
|
---|
124 | ;This is the trigger logic of the AI index for file 776.4. If the event
|
---|
125 | ;status changes to COMPLETED, the DT/TM REVIEWED field is set to NOW
|
---|
126 | ;and the REVIEWER field is set to DUZ, if defined.
|
---|
127 | ;
|
---|
128 | Q:'$G(EVENT)
|
---|
129 | Q:$G(STATUS)'=4
|
---|
130 | S $P(^HLEV(776.4,EVENT,0),"^",7)=$$NOW^XLFDT
|
---|
131 | S $P(^HLEV(776.4,EVENT,0),"^",8)=$G(DUZ)
|
---|
132 | Q
|
---|
133 | ;
|
---|
134 | SETPURGE(EVENT,WHEN,TYPE) ;
|
---|
135 | ;Sets the earliest purge date into the AJ index on file 776.4
|
---|
136 | ;Input:
|
---|
137 | ; EVENT - IEN of the event
|
---|
138 | ; WHEN - .01 FIELD (DT/TM)
|
---|
139 | ; TYPE - .02 field - event type
|
---|
140 | ;
|
---|
141 | Q:'$G(EVENT)
|
---|
142 | Q:'$G(WHEN)
|
---|
143 | Q:'$G(TYPE)
|
---|
144 | ;
|
---|
145 | N WAIT,PWHEN
|
---|
146 | S WAIT=$P($G(^HLEV(776.3,TYPE,0)),"^",9)
|
---|
147 | Q:'WAIT
|
---|
148 | S PDATE=$$FMADD^XLFDT(WHEN,WAIT\1)
|
---|
149 | S ^HLEV(776.4,"AJ",PDATE,EVENT)=""
|
---|
150 | Q
|
---|
151 | ;
|
---|
152 | DELPURGE(EVENT,WHEN,TYPE) ;
|
---|
153 | ;kill logic fo the AJ index of file 776.4
|
---|
154 | ;Input:
|
---|
155 | ; EVENT - IEN of the event
|
---|
156 | ; WHEN - .01 FIELD (DT/TM)
|
---|
157 | ; TYPE - .02 field - event type
|
---|
158 | ;
|
---|
159 | Q:'$G(EVENT)
|
---|
160 | Q:'$G(WHEN)
|
---|
161 | Q:'$G(TYPE)
|
---|
162 | ;
|
---|
163 | N WAIT,PWHEN
|
---|
164 | S WAIT=$P($G(^HLEV(776.3,TYPE,0)),"^",9)
|
---|
165 | Q:'WAIT
|
---|
166 | S PDATE=$$FMADD^XLFDT(WHEN,WAIT\1)
|
---|
167 | K ^HLEV(776.4,"AJ",PDATE,EVENT)
|
---|
168 | Q
|
---|
169 | ;
|
---|
170 | SETPKG(ETYPE,PACKAGE,OLDNAME) ;
|
---|
171 | ;Given a ptr to the event type and package, it sets the PACKAGE NAME
|
---|
172 | ;field to the name of the package. Also maintains the index that
|
---|
173 | ;PACKAGE NAME is part of
|
---|
174 | ;
|
---|
175 | Q:'$G(ETYPE)
|
---|
176 | Q:'$G(PACKAGE)
|
---|
177 | N NAME,NODE
|
---|
178 | S NAME=$P($G(^DIC(9.4,PACKAGE,0)),"^")
|
---|
179 | S $P(^HLEV(776.3,ETYPE,0),"^",8)=NAME
|
---|
180 | S NODE=$G(^HLEV(776.3,ETYPE,0))
|
---|
181 | I $L($G(OLDNAME)),$L($P(NODE,"^")) K ^HLEV("AC",$P(NODE,"^"),OLDNAME)
|
---|
182 | I $L(NAME),$L($P(NODE,"^")) S ^HLEV("AC",$P(NODE,"^"),NAME)=ETYPE
|
---|
183 | Q
|
---|