Report Writing

Interoperability and EHR Optimization

Privacy and Security

Thomas Harlan, Data Repository Technical Team Lead for Reporting Services, Iatric Systems

Thomas Harlan has been a report writing consultant with Iatric Systems since 2012. Before joining Iatric Systems, his hospital IT positions ranged from programmer to manager to Chief Technology Officer. He has more than 20 years of SQL experience (including Microsoft, Oracle, Informix, and MySQL), as well as 15 years of clinical and business reporting experience, extracting data from a variety of HIS systems including Epic, Lawson, MEDITECH, PeopleSoft, and Siemens Invision.

SQL Tip: To ISNULL() or not to ISNULL()

When we’re working on other people’s code – for troubleshooting or optimization purposes – we see a fair amount of usage of the ISNULL() function. Generally speaking we replace those ISNULL() references with COALESCE().

But why?

Read More

SSIS Tip: Managing SQL Server Reporting Services Versions

Once you start working with Microsoft’s reporting solution, you will find there are multiple versions of SSRS, and some of the versions have different specifications for the RDL files which hold your report definitions.

In addition, there are different versions of Report Manager (and the rendering engine) which have different capabilities. And you can also publish RDL’s through SharePoint.

Read More

SSIS Tip: Using #Temp Tables with Integration Services Packages

SQL Server Integration Services is a powerful tool for building a single DTSX package, which can generate a single output file — or dozens of them — and let that set of work be scheduled to run automatically. And it’s included in your MEDITECH Data Repository server license for SQL Server! Instead of a dozen NPR reports, each with its own schedule (or the same setup using SQL and bcp’ing out files), you can have one .DTSX package that calls a stored procedure per file you need.

Which is all fantastic, until you find that you need a #temp table for some kind of multi-step processing inside your stored procedure…  

Read More

SQL Tip: Using a Date Dimension Table to Calculate Patient Days by Location

A very useful tool to have in your Data Repository toolbox is a Date Dimension table — which is a physical database table with one row per date from, say, 1900 through the end of 2499, and key elements pre-calculated about that date.

Read More

SQL Tip: Wrangling the SurCase_DocQuestions Table in MEDITECH 6.1


If you’ve been working with clinical documentation in the new SUR module in MEDITECH 6.1, you may have found that surgical interventions, assessments, query responses, and some standard fields are captured in this table:

Read More

SSRS Tip: Control the Execution Order of SSRS Datasets

It may not be obvious when working in SQL Server Data Tools or Business Intelligence Development Studio, but when you add datasets to a SQL Server Reporting Services (SSRS) Report, they get an implied order of execution. Say you have a MEDITECH EDM dashboard, and it has some datasets that control parameter lists, and then two datasets that call stored procedures to get patient data and calculate median timings:

Read More

SQL Tip: Checking for Invalid Provider NPI Numbers


Most, if not all of us involved in US healthcare are familiar with the National Provider Identifier (NPI), which is a 10-digit number starting with a 1 or a 2. Each NPI uniquely identifies a specific provider. The provider can be a person or organization. NPIs are used and embedded in billing and claims workflows.

Read More

SQL Tip: Finding Lab Test LOINC Code Values

Like ICD-10 diagnosis and procedure codes, LOINC codes offer a platform-independent way to identify medical laboratory observations. Within MEDITECH’s LAB module, LOINC codes are set up as a “nomenclature” — a code describing another code — or in this case, a LOINC standard code is mapped to each LAB test in the appropriate dictionary.

Read More

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