It's common in MEDITECH’s 6.x Data Repository (DR) to encounter fields in PCM or EMR where a single long text field contains a packed data structure. For example, when a multi-select item has been stored with a variety of delimiters and special formatting. If you haven’t run across these fields before, here’s an example from EMR where we’re looking at the Discharge Problem field, which is a standard field attached to a documentation section for Clinical Impression:
This tip works if you are using SQL Server 2012 or better (Compatibility Level 110 and up). So before we get into the tip, check your Data Repository to see if you can use this tool:
Wait, what is “time blocking”?
It’s generating a list of start and end dates/times in a result set, and then using that set of rows to do something else, like:
- Generate a set of extract files for a vendor, with one set of files per time block line.
- Count visits or patients seen in each time block line, even if there are no visits in the time period.
- Look for clinical documentation that wasn’t done when it was supposed to be done.
- And so on…
In the MEDITECH report writing world, an old, old “gotcha” for database programmers is to write a report query that selects by Discharge Date, and then when the end-users run the report, they eventually realize that they are only getting patients discharged on the last date of the report range at exactly midnight.
Teach a man to fish… One of my staff needed to create a custom lookup in a MEDITECH NPR report to show the "mapped from" and "mapped to" values for a particular BAR.CLAIM map, and he asked me, “Have you ever done that?”
One of many nice things about the MEDITECH system is the availability of date mnemonics that you can use, either when running reports interactively, or when scheduling them. But this functionality is not available in SQL Server Reporting Services (SSRS) or in SQL Server Integration Services (SSIS) by default.
This example is based on how discharge text data is formatted in the MEDITECH MAGIC Data Repository (DR).
In the continuing saga of trying to recreate patient discharge instructions from the DR, I discovered that among the complications is detecting where line breaks should actually go.
At International MUSE in May, our report writing educational sessions were a hit once again. We presented two sessions:
- NPR and Report Designer Tips n Tricks
- 6.1 Reports Migration
To address HIPAA, MEDITECH added logging of access to PHI via reports and all applications, and added that level of detail to MIS user activity logs. So, if you run an NPR, RD, or standard report and the report contains PHI, the run user and the set of patients in the output is logged. MEDITECH has a field in their “programmer” NPR Report Writer routine where they can defeat logging, and that makes sense for big exports where the run user just set up the scheduled report run, but otherwise MEDITECH has fairly comprehensive tracking of access to PHI via most reports.
But what about Data Repository (DR) reports?
What's in a name?
In teaching NPR, RD, and SQL from DR, a big chunk of my time is spent helping students figure out where data is kept (for example, which segment in NPR), and then what field names are called. MEDITECH segment structures and field names are built “by hand” by the application developer, which results in some unfortunate inconsistencies that make our Report Writing lives harder. This post examines MEDITECH field naming across applications, identifies some various “gotchas” to be aware of, and provides some tips for how to overcome those challenges.