1 | HLEMSL ;ALB/CJM -List Manager Screen for Event List;12 JUN 1997 10:00 am
|
---|
2 | ;;1.6;HEALTH LEVEL SEVEN;**109**;Oct 13,1995
|
---|
3 | ;
|
---|
4 | EN ;Entry point to viewing the HL7 Monitor Event Log
|
---|
5 | ;
|
---|
6 | N IDX,SITE,PROFILE
|
---|
7 | S PROFILE=$$PROFILE
|
---|
8 | Q:'PROFILE
|
---|
9 | I PROFILE S PROFILE=$$GET^HLEMP(PROFILE,.PROFILE)
|
---|
10 | ;
|
---|
11 | S IDX="^TMP(""HLEM"",$J,""EVENTS"")"
|
---|
12 | D WAIT^DICD
|
---|
13 | D EN^VALM("HLEM DISPLAY EVENTS")
|
---|
14 | Q
|
---|
15 | ;
|
---|
16 | PROFILE() ;returns the profile to use in building the display.
|
---|
17 | ; 1)First checks if there is a default profile, if so,returns it
|
---|
18 | ; 2)If no default profile, but the user has exactly 1 profile, ruturs that
|
---|
19 | ; 3) If multiple profiles, asks the user to select one.
|
---|
20 | ; 4) If the user has no profile, he is asked to create one.
|
---|
21 | ;Input: DUZ must be defined
|
---|
22 | ;Output: function returns profile's ien, or "" if not successful
|
---|
23 | ;
|
---|
24 | N PROFILE
|
---|
25 | ;get the user's profile
|
---|
26 | I '$G(DUZ) W !,"** Your DUZ is not defined, please report this to your IRM!" Q ""
|
---|
27 | S PROFILE=$$FDEFAULT^HLEMP(DUZ)
|
---|
28 | I 'PROFILE D
|
---|
29 | .;there is no default profile, check for others
|
---|
30 | .S PROFILE=$$SELECT^HLEMP1($G(DUZ),10)
|
---|
31 | I 'PROFILE,$$ASKYESNO^HLEMU("You need a profile before viewing the HL7 Monitor Event Log,would you like to create a new profile now","YES") D
|
---|
32 | .N NAME,I
|
---|
33 | .F I=1:1:20 I '$D(^HLEV(776.5,"C",DUZ,"NEW PROFILE"_I)) S NAME="NEW PROFILE"_I Q
|
---|
34 | .S:$D(NAME) PROFILE=$$CREATE^HLEMP(DUZ,NAME)
|
---|
35 | .I PROFILE,'$$EDIT^HLEMP(PROFILE) D
|
---|
36 | ..I '$$DELETE^HLEMP(PROFILE) W !,"Incomplete profile couln't be deleted!"
|
---|
37 | ..S PROFILE=""
|
---|
38 | Q PROFILE
|
---|
39 | ;
|
---|
40 | HDR ;Header code
|
---|
41 | S VALMHDR(1)="# TYPE DT/TM APP MSG REVIEW CNT"
|
---|
42 | Q
|
---|
43 | ;
|
---|
44 | INIT ;Init variables and list array
|
---|
45 | D BLD
|
---|
46 | S VALMSG="USER PROFILE: "_PROFILE("NAME")
|
---|
47 | D HDR
|
---|
48 | S VALMBCK="R"
|
---|
49 | Q
|
---|
50 | ;
|
---|
51 | BLD ;Build event log screen
|
---|
52 | D CLEAN^VALM10
|
---|
53 | N SITE,TIME,TYPE,STATUS,COUNT
|
---|
54 | K @IDX,VALMHDR
|
---|
55 | S VALMBG=1,(COUNT,VALMCNT)=0
|
---|
56 | ;
|
---|
57 | ;Build header
|
---|
58 | D HDR
|
---|
59 | ;
|
---|
60 | ;Build list area
|
---|
61 | ;what sites to include? Put in alphabetical order
|
---|
62 | S SITE="" F S SITE=$O(^HLEV(776.4,"D",SITE)) Q:'SITE D
|
---|
63 | .I 'PROFILE("ALL SITES"),'$D(PROFILE("SITES",SITE)) Q
|
---|
64 | .N STATION
|
---|
65 | .S STATION=$$STATION^HLEMSU(SITE) S:$L($P(STATION,"^")) SITE($P(STATION,"^"))=SITE
|
---|
66 | ;
|
---|
67 | S SITE=""
|
---|
68 | F S SITE=$O(SITE(SITE)) Q:'$L(SITE) D
|
---|
69 | .N FIRST
|
---|
70 | .S FIRST=1
|
---|
71 | .S TYPE=0
|
---|
72 | .F S TYPE=$O(^HLEV(776.4,"D",SITE(SITE),TYPE)) Q:'TYPE D:(PROFILE("ALL TYPES"))!($D(PROFILE("TYPES",TYPE)))
|
---|
73 | ..;maintain an index for the event type
|
---|
74 | ..S @IDX@("SITE",SITE(SITE),"TYPE",TYPE)=VALMCNT
|
---|
75 | ..S TIME=PROFILE("START")
|
---|
76 | ..F S TIME=$O(^HLEV(776.4,"D",SITE(SITE),TYPE,TIME)) Q:'TIME D
|
---|
77 | ...S STATUS=""
|
---|
78 | ...S STATUS=$O(^HLEV(776.4,"D",SITE(SITE),TYPE,TIME,STATUS)) Q:'$L(STATUS) D
|
---|
79 | ....N EVENTIEN
|
---|
80 | ....S EVENTIEN=0
|
---|
81 | ....F S EVENTIEN=$O(^HLEV(776.4,"D",SITE(SITE),TYPE,TIME,STATUS,EVENTIEN)) Q:'EVENTIEN D
|
---|
82 | .....N EVENT
|
---|
83 | .....Q:'$$GET^HLEME(EVENTIEN,.EVENT)
|
---|
84 | .....I PROFILE("URGENT"),'EVENT("URGENT") Q
|
---|
85 | .....I 'PROFILE("ALL APPS") Q:'$L(EVENT("APPLICATION")) Q:'$D(PROFILE(EVENT("APPLICATION")))
|
---|
86 | .....;
|
---|
87 | .....;if this is the first event for this site,display a header
|
---|
88 | .....I FIRST D S FIRST=0
|
---|
89 | ......;S VALMCNT=$$SET^HLEMSU($$INC^HLEMU(.VALMCNT),$$CENTER^HLEMSU("SITE: "_SITE_" STATION #: "_$P($$STATION^HLEMSU(SITE(SITE)),"^",2)),1,"RUH")
|
---|
90 | ......I $$SET^HLEMSU(VALMCNT,$$LJ^XLFSTR($E($G(@IDX@(VALMCNT,0)),4,80),77),4,"U")
|
---|
91 | ......S VALMCNT=$$SET^HLEMSU($$INC^HLEMU(.VALMCNT),SITE_" STATION #: "_$P($$STATION^HLEMSU(SITE(SITE)),"^",2),1,"H")
|
---|
92 | ......;also, maintain an index for searching
|
---|
93 | ......S @IDX@("SITE",SITE(SITE))=VALMCNT
|
---|
94 | ......S @IDX@("SITE",SITE)=VALMCNT
|
---|
95 | .....;
|
---|
96 | .....;display the event
|
---|
97 | .....D DISPLAY(.EVENT,.VALMCNT,.COUNT)
|
---|
98 | Q
|
---|
99 | ;
|
---|
100 | DISPLAY(EVENT,VALMCNT,COUNT) ;
|
---|
101 | ;Adds one line for an event to the list, increments the counts of lines and events, and maintains the search index for events on the list
|
---|
102 | ;
|
---|
103 | N CODE,TIME
|
---|
104 | S @IDX@("EVENT",$$INC^HLEMU(.COUNT))=EVENT("IEN")
|
---|
105 | S VALMCNT=$$SET^HLEMSU($$INC^HLEMU(.VALMCNT),COUNT,1,"R")
|
---|
106 | S VALMCNT=$$SET^HLEMSU(VALMCNT,$$CODE^HLEMT(EVENT("TYPE")),6)
|
---|
107 | S VALMCNT=$$SET^HLEMSU(VALMCNT,$$FMTE^XLFDT($E(EVENT("DT/TM"),1,12),2),17)
|
---|
108 | S VALMCNT=$$SET^HLEMSU(VALMCNT,$E(EVENT("APPLICATION"),1,15),32)
|
---|
109 | I $L(EVENT("MSG TYPE")) S VALMCNT=$$SET^HLEMSU(VALMCNT,EVENT("MSG TYPE")_"~"_EVENT("MSG EVENT"),48)
|
---|
110 | S VALMCNT=$$SET^HLEMSU(VALMCNT,$E($$EXTERNAL^DILFD(776.4,.06,"F",EVENT("REVIEW STATUS")),1,15),57)
|
---|
111 | I EVENT("COUNT")>1 S VALNCNT=$$SET^HLEMSU(VALMCNT,EVENT("COUNT"),72)
|
---|
112 | I EVENT("URGENT") S VALMCNT=$$SET^HLEMSU(VALMCNT,"*",79,"BRH")
|
---|
113 | Q
|
---|
114 | ;
|
---|
115 | HELP ;Help code
|
---|
116 | S X="?" D DISP^XQORM1 W !!
|
---|
117 | Q
|
---|
118 | ;
|
---|
119 | EXIT ;Exit code
|
---|
120 | D CLEAN^VALM10
|
---|
121 | D CLEAR^VALM1
|
---|
122 | K @IDX
|
---|
123 | Q
|
---|
124 | ;
|
---|
125 | EXPND ;Expand code
|
---|
126 | Q
|
---|