Report Writing

Interoperability and EHR Optimization

Privacy and Security

SQL Tip: Checking for Duplicate Indexes

One of the few custom objects you want to add to your MEDITECH LIVE or TEST Data Repository (DR) databases are indexes. An index can speed up reporting by fetching records based on specific fields, like Service Date. MEDITECH themselves release only a few indexes, mostly focused on Meaningful Use reporting.

Read More

SQL Tip: Parsing Packed Fields in MEDITECH 6.x

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:

Read More

SQL + SSRS Tip: Get the Data Structure of a SQL Command


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:

Read More

SQL Tip: Using MEDITECH Date Mnemonics in SSIS

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.

Read More

SQL Tip: How to Remove MTDD-style Formatting from TextLines

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.

Read More

PHI and MEDITECH’s Data Repository

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? 

Read More

DR Tip: A Dynamic Extract Documentation Template

This blog post is designed for readers who use MEDITECH’s Data Repository.

As part and parcel of developing ETL extracts for vendors, it is often quite useful to build a technical specification first. In the case of vendor extract files that involve the hospital getting money back from the federal government (think 340B), I recommend that a proper file spec be mandatory.

Read More

SQL Tip: How to Strip Repeating Delimiters from String

This is a small tip, but could be quite useful on the days you need it.

Particularly when you work with MEDITECH 6.x PCS data, you will often encounter query response values that look like this:

{|||,30+3/40 Emergency|||||LSCS|Apgar 4/1 7/5}

Read More

SSRS Tip: Adding a Pipe-delimited option to SSRS Export Destinations

End users are very fond of running reports in SSRS and exporting the results to a variety of formats. Excel is probably the most popular, but invariably there will be other formats needed.

Unfortunately, in SSRS the list of other formats is limited. In particular, a pipe (|) delimited format is not available. But you can, if you are willing to update your SSRS configuration, add this yourself. The following approach has been tested through SSRS 2012. It may work in SSRS 2014+, but we have not yet confirmed it on that platform.

Read More

SQL Tip: The Good, the Bad, and the Ugly of TOP X

As you’re learning SQL, you will invariably come across the TOP X clause to a SELECT, which allows you to get – for example – the first 50 rows of a query:

SELECT TOP 50 ADV.VisitID FROM livedb.dbo.AdmVisits ADV ;

This can be quite handy for testing if tables are populated, or just grabbing some records to review when you’re looking for something. And if you’re an old, grizzled, MEDITECH NPR programmer (as many of our followers are), you’ll be happy to see something that acts like Z.record.limit.


Read More