The ARRA changes to MAGIC and Client/Server introduce a “Patient Audit” feature for custom (and standard) NPR reports. This month we will describe how the auditing feature works and tell you how you can set a flag in a report to suppress the auditing feature. References to spooling apply to MAGIC sites only.
For more details on the Patient Audit, you should refer to KB article 39339 (MAGIC) or 39865 (Client/Server). These articles describe the default audit settings that log any CREATE, EDIT, EXPORT or VIEW activity, but suppress logging of PRINT activity. This article is based on testing at sites that used the MEDITECH default setting.
With the default settings, if you run an NPR report that contains protected health information (PHI) fields, MEDITECH saves the user, date, time, and report title in a Patient Audit Report if the report is printed to DOWNLOAD. It does not track activity if the report is spooled and transferred to a PC. It does not track activity if the report is spooled and exported to an FTP remote host. If your report was written pre-ARRA and not re-translated, no logging from the report will occur.
I assume that if you added tracking of “PRINT” activity, MEDITECH would log printing to paper or preview and viewing of spool file pages.
How does this work?
To support this feature, MEDITECH created a new PHI attribute and added PHI=Y flag to all PHI fields in the data definition. If you use such fields in your report (and sometimes even if you do not) a call to %Z.patient.activity is added to your report when you translate. This program creates entries in a temporary structure /..PTACT per page of output. The Z.rw.new.page program and the Z.download programs handle logging to the spool file and writing to a patient audit log as the MIS parameters indicate.
Here is an example of the new flags in the data definition:
Here is the call to the new %Z.patient.activity program in the report object code:
Since MEDITECH did not, as far as I can tell, do any mass translation of reports as part of delivery of the 5.64 ARRA updates, your hospital will have a mix of old reports that do not have the Z.patient.activity call inserted by the translator, and new or more recently translated reports that do have it.
Post ARRA, if you translate a report and it slows down when downloaded, suspect logging as the cause. Even if you are printing or are going to export via FTP (and therefore not logging), the report still builds a /..PTACT structure for each patient on the page and kills the structure after each page, and you’d expect this would slow down report compiles to some extent.
Setting Lines Per Page to 999 and Page Size to 999 might influence the impact of logging as you would increase the size of the /..PTACT structure, but reduce the frequency of the logging calls. If you built the report to do all output in a macro, but the translator includes a call to %Z.patient.activity (say in a detail region used to send just a CR/LF) you might have a report that sets off high buffer use alarms (magic) or effectively hangs a client machine (C/S).
Here is the section of the Patient Audit Log, showing an “EXPORT”
We can see proof that standard reports also include logging when exported:
Note that the log also stores activity by background jobs and midnight runs, which is rather a waste of space.
MEDITECH standard reports have two new fields to control logging “Contains PHI” and “Suppress Patient Auditing”. Customer NPR reports do not have such fields. What can we do if an NPR report that is printed or sent via FTP (and will not have any logging anyway) becomes too slow post-ARRA? Or what if we have a report that is downloaded and the hospital feels that ARRA logging per patient is not required and not worth the space and extra compile time?
Fortunately if you set the /MRM.JOB flag in your report, the Z.patient.activity job does not build a temp file in /..PTACT, and therefore no logging will occur. I do not recommend setting the flag routinely in reports, but it is useful to know that if you need to improve the performance of certain reports post-ARRA, having a method to defeat logging is useful.
To set the flag, add code to a start macro or use an AL START footnote like this:
If we look at the source code of Z.patient.activity, we can see that the program does nothing if this flag is set:
To subscribe for email notifications for new classes, please follow this link:
For more information or to reserve a seat, please contact Karen Roemer at 978-805-3142 or email