HL7 use of the ^XTMP global ?

79 views
Skip to first unread message

David Whitten

unread,
Sep 20, 2019, 3:05:15 PM9/20/19
to Hard Hats Mailing List
Does anyone know about the ^XTMP global and the series of nodes apparently created by HL7 ?

ie: there are nodes in the ^XTMP() global with a first subscript of either: "HLEV CHK773AC "_<Timson Date+Time>  or
"HLEV STUB "_<Timson Date+Time>  

Apparently "HLEV" means Health Level Seven Event Monitoring.
The nodes seem to get SET in the HLEVX* routines. The dates on these routines are in February 2004 or so.
Notably the HLEV CHK773AC nodes are set in the routine ^HLEVX002

Soon after we copy our Production environment to make a test or training or development environment, there is something
that runs and fills up a LOT of journal files. This seems to be run as a background task since the Journal files have a
process id that has %ZTMS1 running if it finishes before we notice.

The sub-routine LIST^HLEVX lists these "monitors"

LIST N I,T W @IOF,$$CJ^XLFSTR("Official VistA HL7 Event Monitor Code",IOM),!,$$
 ;;
 ;;The "monitors" that are officially included in the VistA HL7 package are
 ;;listed below.
 ;;
 ;;Routine           Monitor-Name
 ;;============================================================================
 ;;SYSTEM^HLEVX001^EVENT MONITOR
 ;;CHK870^HLEVX000^STUB 870 SEARCH & MORE
 ;;CHKXREF^HLEVX002^XREF CHECK - FILE 772 & 773
 Q

I searched the OPTION File#19 for menus related to Monitoring and found these options:

Select OPTION: SEARCH FILE ENTRIES

OUTPUT FROM WHAT FILE: TASKS// 19  OPTION  (10367 entries)

  -A- SEARCH FOR OPTION FIELD: ROUTINE
  -A- CONDITION: [  CONTAINS
  -A- CONTAINS: HLEV

  -B- SEARCH FOR OPTION FIELD:

IF: A//     ROUTINE CONTAINS (case-insensitive) "HLEV"

STORE RESULTS OF SEARCH IN TEMPLATE:

SORT BY: NAME//
START WITH NAME: FIRST//
FIRST PRINT FIELD: [CAPTIONED

Include COMPUTED fields:  (N/Y/R/B): NO// BOTH Computed Fields and Record Number
 (IEN)
Heading (S/C): OPTION SEARCH//
DEVICE:   TELNET
OPTION SEARCH                                  SEP 20,2019  14:27    PAGE 1
--------------------------------------------------------------------------------

NUMBER: 9978                            NAME: HLEV EDIT MASTER
  MENU TEXT: Edit parameters            TYPE: run routine
  CREATOR: WVEHR,PATCH INSTALLER        ROUTINE: E7769^HLEVSTUP
  UPPERCASE MENU TEXT: EDIT PARAMETERS

NUMBER: 9979                            NAME: HLEV EDIT MASTER ON-OFF
  MENU TEXT: Turn on/off monitoring     TYPE: run routine
  CREATOR: WVEHR,PATCH INSTALLER        ROUTINE: ONOFFPAR^HLEVAPI0
  UPPERCASE MENU TEXT: TURN ON/OFF MONITORING

NUMBER: 9976                            NAME: HLEV EDIT MONITOR
  MENU TEXT: Enter/edit event monitors  TYPE: run routine
  CREATOR: WVEHR,PATCH INSTALLER        ROUTINE: E7761^HLEVSTUP
  UPPERCASE MENU TEXT: ENTER/EDIT EVENT MONITORS

NUMBER: 9977                            NAME: HLEV EDIT MONITOR ON-OFF
  MENU TEXT: Turn on/off event monitor  TYPE: run routine
  CREATOR: WVEHR,PATCH INSTALLER        ROUTINE: ONOFFEV^HLEVAPI0
  UPPERCASE MENU TEXT: TURN ON/OFF EVENT MONITOR

NUMBER: 9991                            NAME: HLEV GRANT REMOTE LICENSE
  MENU TEXT: Grant remote request license
  TYPE: run routine                     CREATOR: WVEHR,PATCH INSTALLER
  PACKAGE: HEALTH LEVEL SEVEN           ROUTINE: OPENMAIL^HLEVSRV3
  UPPERCASE MENU TEXT: GRANT REMOTE REQUEST LICENSE

NUMBER: 9986                            NAME: HLEV MASTER JOB NOW
  MENU TEXT: Run monitor master job now
  TYPE: run routine                     CREATOR: WVEHR,PATCH INSTALLER
  PACKAGE: HEALTH LEVEL SEVEN           ROUTINE: MSTNOW^HLEVMST0
  UPPERCASE MENU TEXT: RUN MONITOR MASTER JOB NOW

NUMBER: 9981                            NAME: HLEV MASTER JOB START
  MENU TEXT: Monitoring master job start
  TYPE: run routine                     CREATOR: WVEHR,PATCH INSTALLER
  PACKAGE: HEALTH LEVEL SEVEN           ROUTINE: STARTMST^HLEVMST0
  UPPERCASE MENU TEXT: MONITORING MASTER JOB START

NUMBER: 9982                            NAME: HLEV MASTER JOB STOP
  MENU TEXT: Stop monitoring master job
  TYPE: run routine                     CREATOR: WVEHR,PATCH INSTALLER
  PACKAGE: HEALTH LEVEL SEVEN           ROUTINE: UNQUEUE^HLEVMST0
  UPPERCASE MENU TEXT: STOP MONITORING MASTER JOB

NUMBER: 9984                            NAME: HLEV MONITOR DETAILS
  MENU TEXT: Results of a monitor run   TYPE: run routine
  CREATOR: WVEHR,PATCH INSTALLER        PACKAGE: HEALTH LEVEL SEVEN
  ROUTINE: CTRL^HLEVREP2
  UPPERCASE MENU TEXT: RESULTS OF A MONITOR RUN

NUMBER: 9983                            NAME: HLEV MONITOR MAP REPORT
  MENU TEXT: Map of monitoring activity
  TYPE: run routine                     CREATOR: WVEHR,PATCH INSTALLER
  PACKAGE: HEALTH LEVEL SEVEN           ROUTINE: CTRL^HLEVREP1
  UPPERCASE MENU TEXT: MAP OF MONITORING ACTIVITY

NUMBER: 9980                            NAME: HLEV ONE-TIME MONITOR RUN
  MENU TEXT: One-time monitor run       TYPE: run routine
  CREATOR: WVEHR,PATCH INSTALLER        PACKAGE: HEALTH LEVEL SEVEN
  ROUTINE: ONETIME^HLEVAPI1
  UPPERCASE MENU TEXT: ONE-TIME MONITOR RUN

NUMBER: 9973                            NAME: HLEV PRINT MASTER SETUP
  MENU TEXT: Settings of monitoring parameters
  TYPE: run routine                     CREATOR: WVEHR,PATCH INSTALLER
  ROUTINE: VIEW7769^HLEVREP(1)
  UPPERCASE MENU TEXT: SETTINGS OF MONITORING PARAMET

NUMBER: 9972                            NAME: HLEV PRINT MONITOR SETUP
  MENU TEXT: Monitor setup details      TYPE: run routine
  CREATOR: WVEHR,PATCH INSTALLER        ROUTINE: SHOW7761^HLEVREP
  UPPERCASE MENU TEXT: MONITOR SETUP DETAILS

NUMBER: 9989                            NAME: HLEV REPORT CONDENSED MONITOR
  MENU TEXT: Condensed monitor report   TYPE: run routine
  CREATOR: WVEHR,PATCH INSTALLER        ROUTINE: CONDMON^HLEVREP0
  UPPERCASE MENU TEXT: CONDENSED MONITOR REPORT

NUMBER: 9988                            NAME: HLEV REPORT MONITOR RECIPIENTS
  MENU TEXT: Message recipients         TYPE: run routine
  CREATOR: WVEHR,PATCH INSTALLER        ROUTINE: RECIP^HLEVREP0
  UPPERCASE MENU TEXT: MESSAGE RECIPIENTS

NUMBER: 9990                            NAME: HLEV REPORT REMOTE REQUESTABLE
  MENU TEXT: Remote requestable report  TYPE: run routine
  CREATOR: WVEHR,PATCH INSTALLER        ROUTINE: REMREQO^HLEVREP3
  UPPERCASE MENU TEXT: REMOTE REQUESTABLE REPORT

NUMBER: 9985                            NAME: HLEV-INFORMATION-SERVER
  MENU TEXT: Event monitoring server    TYPE: server
  CREATOR: DEWAYNE,ROBERT               PACKAGE: HEALTH LEVEL SEVEN
  ROUTINE: HLEVSRV                      SERVER BULLETIN: XQSERVER
  SERVER ACTION: RUN IMMEDIATELY        SERVER MAIL GROUP: HLEV SERVER
  SERVER AUDIT: NO                      SUPRESS BULLETIN: YES, SUPRESS IT
  SERVER REPLY: REPLY ON ERROR ONLY     SAVE REQUEST: Do not save request
  UPPERCASE MENU TEXT: EVENT MONITORING SERVER

                         17 MATCHES FOUND.

I ran the apparent top menu:

Select OPTION NAME: HLEV MENU MAIN     Event monitoring menu
Master job not started.  Not time yet...
                 -------- Master job status is ACTIVE --------
                  Last master job run was 9 min  51 sec ago...
        Next run [task# 4556391] is 1 hr  50 min  9 sec in the future...
              -------- Event monitoring status is ACTIVE --------

          Setup & maintenance options ... [HLEV MENU SETUP]
          Run-time options ... [HLEV MENU RUNTIME]

Select Event monitoring menu Option: Run-time options
          Settings of monitoring parameters [HLEV PRINT MASTER SETUP]
          Monitor setup details [HLEV PRINT MONITOR SETUP]
          One-time monitor run [HLEV ONE-TIME MONITOR RUN]
          Map of monitoring activity [HLEV MONITOR MAP REPORT]
          Results of a monitor run [HLEV MONITOR DETAILS]
          Run monitor master job now [HLEV MASTER JOB NOW]
Select Run-time options Option:

Select Event monitoring menu Option: SETup & maintenance options
          Monitor setup & maintenance ... [HLEV MENU SETUP-MONITOR]
          System setup & maintenance ... [HLEV MENU SETUP-MASTER]
          Reports ... [HLEV MENU REPORTS]

Select Setup & maintenance options Option: REPOrts
          Condensed monitor report [HLEV REPORT CONDENSED MONITOR]
          Message recipients [HLEV REPORT MONITOR RECIPIENTS]
          Remote requestable report [HLEV REPORT REMOTE REQUESTABLE]

Select Reports Option: CONDensed monitor report
                              Short Monitor Report

================================================================================

This option displays monitor information in brief format.  If you wish to see
more of the information for this monitor, please use the 'Expanded monitor
report' menu option.
* Previous selection: NAME from A to ZZZ
START WITH NAME: A//
GO TO NAME: ZZZ//
DEVICE: 0;P-OTHER;79;1000  TELNET
Monitor report                                SEP 20,2019  14:32    PAGE 1
                                             REQUE
NAME                            STATUS         MIN  M STARTUP
-------------------------------------------------------------------------------

CHECK 773 AC XREF               ACTIVE        1440  CHECKAC~HLEVX002
EVENT MONITOR                   ACTIVE         480  MOTHER~HLEVX001
FAST HL7 PURGE #1               ACTIVE          60  FAST1~HLUOPTF2
FAST HL7 PURGE #2               ACTIVE         180  FAST2~HLUOPTF2
LINK (870) CHECKS               ACTIVE         720  CHK870~HLEVX000
PURGE EVENT LOG                 ACTIVE        1440  PURGE~HLEMEP
SEND EVENTS                     ACTIVE          30  SENDALL~HLEMSND

It seems simple enough to turn off:
Select System setup & maintenance Option: TURN on/off monitoring
                               System Parameters

================================================================================
                                 Name:   SYSTEM

                                 Status Fields
                       ---------------------------------
                           Status - MASTER:   ACTIVE
                            Status - EVENT:   ACTIVE

                        Requeue Frequency for Master Job
              ----------------------------------------------------
                       Requeue minutes - MASTER:   120min

                       Purge Parameters ("Cutoff" hours)
             -----------------------------------------------------
                       Purge hours - RUNTIME DATA:   96hr

Change 'STATUS-MASTER JOB' to INACTIVE? No// YES     changed!
Change 'STATUS-EVENT MONITORING' to INACTIVE? No// YES     changed!
                               System Parameters

================================================================================
                                 Name:   SYSTEM

                                 Status Fields
                       ---------------------------------
                          Status - MASTER:   INACTIVE
                           Status - EVENT:   INACTIVE

                        Requeue Frequency for Master Job
              ----------------------------------------------------
                       Requeue minutes - MASTER:   120min

                       Purge Parameters ("Cutoff" hours)
             -----------------------------------------------------
                       Purge hours - RUNTIME DATA:   96hr

So this apparently these tools let us track possible problems with HL7 messaging.
The question I have to ask is why they seem to explode our journal space when
we first start up the non-production environment.

The burning question is, should we turn this monitor off or leave it on ?
Does it matter only in production environments or does it matter in non-production?

Does any know if we should be checking these reports regularly ?

Are problems with HL7 that these monitors find either common or uncommon ?

Thanks for your input.

Dave Whitten

PS: I put this e-mails data at

and did find a document from 2004 which may be relevant:

Adam Adam

unread,
Oct 16, 2019, 7:40:30 PM10/16/19
to Hardhats
I believe that most of the HL7 Event Monitoring is really only used within the VA (for instance, the CHECK LINKS monitor will email "H...@VA.GOV" or something like that on error). I honestly haven't found a use for it that the Message Log hasn't been able to provide.

I would just disable the HLEV until you've worked the rest of the kinks out.

How much space is filled? And it's all the ^XTMP global?

Kevin Toppenberg

unread,
Nov 10, 2019, 7:30:33 PM11/10/19
to Hardhats
Dave,

My HL7 interface works differently, so I can't directly answer you questions.  But I wonder, why are you keeping journals of ^XTMP?  I thought that was supposed to be a scratch global?

Best wishes,
Kevin

Sam Habiel

unread,
Nov 12, 2019, 2:38:01 PM11/12/19
to hardhats
XTMP is kind of in the middle of two worlds: Some applications
(mistakenly or not, I can't say) put data that cannot be regenerated
and if lost, is lost forever. (The example that comes to mind is cost
data for prescriptions.) Others put temporary data which can be
regenerated.

In the VA, as far as I know, it is not journaled.

--Sam
> --
> --
> http://groups.google.com/group/Hardhats
> To unsubscribe, send email to Hardhats+u...@googlegroups.com
>
> ---
> You received this message because you are subscribed to the Google Groups "Hardhats" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to hardhats+u...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/hardhats/9f3d7234-9097-402d-ba3c-5b94e1b4aacb%40googlegroups.com.

Ben Irwin

unread,
Nov 12, 2019, 7:22:58 PM11/12/19
to Hardhats
The ^XTMP global is designed to temporary store information for a specified amount of time as defined by the following document.  An example of usage would be a post-installation routine that loops through issues and stores them in the ^XTMP global and assigns a 90 day period that the data will exist for review.  After the 90 day period the data will be removed and no longer exist.
It is designed to self clean if used correctly.

https://www.va.gov/vdl/documents/Infrastructure/Kernel/xtmp_rules.pdf
 

Sam Habiel

unread,
Nov 13, 2019, 10:35:41 AM11/13/19
to hardhats
Ben, you are of course right, but the question is whether XTMP should
be journaled or not. I think different people will give you different
answers. ^TMP, when you lose power to the machine, will have valuable
data, yes, but at that point it is meaningless, since ^TMP is always
subscripted by process id, which is now gone. So we can't recover the
data in ^TMP, and there will be some data loss. ^XTMP will have some
valuable data, but the data can be recovered, arguing for possibly
journaling it. But on the other hand, you would have lost a lot more
data in the event (e.g. all of the data not entered in the system
because you are down).

--Sam
> --
> --
> http://groups.google.com/group/Hardhats
> To unsubscribe, send email to Hardhats+u...@googlegroups.com
>
> ---
> You received this message because you are subscribed to the Google Groups "Hardhats" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to hardhats+u...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/hardhats/b5a6a66e-c2b2-445f-bb46-6852aaef47fa%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages