Wednesday, December 25, 2013

Healthcare IT: Medical Record or Getting Paid?

So what takes information priority at a hospital, integrity of the medical record, or accuracy of a patient encounter for billing insurance? One keeps the customer coming back, the other keeps the money flowing. It's interesting that many information quality issues are push backs from insurance: the coding is incorrect, the patient's name is wrong, there is no signature, the medical record number is one digit off.

A false assumption is made that hospitals of the future are all online and fully automated. This assumption pervades the big data quants. Big data indexing is not as easy as plugging into an EMR and indexing everything in a cloud. First of all, even with a link from the search hits to the original EMR source, all of the data is not present, it may reside in an ECM system used for scanning and workflow. It may still be 20% on paper. OCR fails at 99% accuracy, Big Data fails at 99.99% accuracy. It has to be flawless to work, that's the issue.

Back to the quality issue: the information motivation is split between data integrity within tables and integration, and with applications, many of which serve the requirements of ICD-9 not the patient's continuity of care. The way access services creates a medical record number and metadata is fine. The problem is that with multiple visits new records are added, some are incorrect. If the procedure is correct and that account number is correct, send it to revenue, let's get paid. Hospitals have deadlines for submitting bills. This forces them to be constantly one step behind the curve for automating their processes and cleaning up their data. They don't have the time.

Thursday, November 7, 2013

ECM pushes quality up the stack

ECM, being a sea bottom dweller, has many opportunities to detect and fix issues with information architecture. This depends on the breadth of implementation and integration of the system, however, in most cases, applications which rely on metadata accuracy for processing and presentation will route out issue.

Many times an implementation will bump into a information quality issue by chance, for example, in a healthcare setting, billing information is used as the basis of coding patient tests. The source of this information comes from a registration system and if the hospital is large enough, it comes from multiple registration systems. The patient account number needs to be correct for insurance billing. For auditing purposes, the downstream/bottom dweller ECM system needs to be accurate. If it is not, then the exception is sent back up the stack for fixing. This fix more often than not exposes glitches/bugs in the way the integration engine functions. Sometimes it exposes issues from years ago, but a patient's chart information could have many years of visits and discharges associated with it, as well as non hospital related tests add to it. The bottom line is that an ECM system may only be used for scanning and indexing images, but it most likely is driving quality up to the surface of the more mission critical applications.

Sunday, November 3, 2013

Recommendations vs. Requirements

I read an email from an IT director a few weeks ago that was explaining how we should proceed with a particularly troublesome issue. The email explained that the User's of the system can "recommend" changes to the website, and that IT will "review" them. It's old school to say "recommend", like really old school, before the concept of documenting requirements to solve a business problem old school.

How does this happen? How can IT management still think that they have the innate ability to understand the intricacies of what business User's want without documenting requirements? It can't and that's the point.

With most information technology, the people who know how the software is designed to solve issues are the first ones to evangelize the usefulness of it. They are usually very familiar with the business processes and at the time know a lot about what the Users need. However, over time these same folks will inevitably lose that edge. That is when they need to start asking their User's what they need. The problem is that pride and prejudice enter into the behaviors and thoughts of the original designers of the system. They are the architects. They feel entitled to dictate what should and should not be included in future designs.

Thus, please be sure there is ample documentation of requirements and functional specifications which solve the issues, and that these docs are updated or superseded. The worse thing that can happen to a system in the long run is to rely on one architect for all design questions and answers because the one person is surrounded by many who have unique perspectives and could potential have more innovated ideas on how to solve problems.

Thursday, October 24, 2013

Healthcare ECM is a safety net

Let's face it, the implementation of ECM systems in healthcare is done as a cheap safety net. What I mean by this is that a Director or VP looked at their EMR for example and realized 20% of the results and clinical notes were still in paper form. The price of a scanning solution offered from the EMR software company was prohibitive. In comes a less expensive player, like Hyland OnBase, and fill the gap, creates the safety net.



Smart software companies like Hyland know that their base product is the low bidder, however they have modules that add up in price as more functionality is required. The key is to have the best niche product along with the ECM software. In Hyland's case it's their scanning solution.

ECM as the safety net is not a bad position to be in. Being a "blank slate" so to speak starting out, this allows motivated individuals to build point solutions internally, which, assuming that the company has a good methodology in terms of solution development, can help solve many issues. The expensive alternatives may never even get considered if the financial benefits are not good enough given the cost.

ECM development is flexible, it is up to the IT group to solution architect to the level of competing point solutions. We know that projects of today will be usurp as off the shelf products of tomorrow. This is a one of the ways the ECM pushes innovation in the industry. A trend in a solution across an industry is bound to result in a software product that kills the ECM solution of a 5 years ago.

Tuesday, October 22, 2013

Fax to directory to ECM capture disk sweep

If you have a multi functional device, you might have the capability of saving incoming faxes to an attached PC or storage device. The fax can usually be saved as a PDF or TIF. The folder where you save the fax image is based on your ECM's scanning configuration. This configuration is scheduled to "sweep" the folder location periodically to import the images. The processing of these images is preset, meaning that the images might have barcodes to be read for indexes, or be routed to a workflow. This type of processing is common in companies that have MFDs that are dispersed. It can save on licensing fees and scales.

Back to pathways.

Saturday, September 21, 2013

Email with attachments to ECM

Some vendors will want to create invoices or patient information in electronic form, such as PDF. They will want a email address to send it to as an attachment. There are many aspects to consider when automating the processing of email with attachments:

  • Setting up the email account (who has access, gets notifications, what listener to set up)
  • Rules for routing the email based on subject content, from address, body of the email
  • Whether or not to store the email body
  • Determining the attachment's contents: one page per attachment, all together? Different PO's in one batch?
  • Whether to split up the attachment
  • Classification of the attachment: who is it from?
  • OCR of email body and attachment(s)
  • Advanced capture on the attachment to automatically index the page based on PO# for example
For each of the above aspects there are many finer details, but it is clear that this type of interchange of information is not ideal. For one, it would be better to setup a formatted xml file which describes all of the attachments, their PO# or Account#, the basic metadata of each file such as invoice number, total amount, vendor name, or for healthcare MRN, Patient Name, date of birth, etc. There's room for improvement and eventually this type of communication will be much accurate. 

Sunday, September 8, 2013

OnBase Unity Script to Export an Image

Link to other Onbase Scripts

Writing a script in VB or C# for OnBase is not hard once you take API course or you get you hands on the SDK for OnBase. I had neither the first time I wrote a VBScript to export a file from OnBase. I read through some samples and fumbled my way through only to realize that the script I wrote could only export the first page of an image which multiple pages appended to it. So here's a basic Unity script written in C# which will export the whole file from a workflow action to a local drive. Enjoy!

namespace SaveToFile
{
    using System;
    using System.Text;
    using Hyland.Unity;
    using Hyland.Unity.Workflow;
    
    
    ///





    /// Save a file to disk
    ///
    public class SaveToFile : Hyland.Unity.IWorkflowScript
    {
        
        #region IWorkflowScript
        ///





        /// Implementation of .
        ///
        ///
        ///
        ///
        public void OnWorkflowScriptExecute(Hyland.Unity.Application app, Hyland.Unity.WorkflowEventArgs args)
        {
            // Add Code Here
try{
string dirPath = @"c:\Temp\" + args.Document.ID + ".";

//create doc
Document wfdoc = args.Document;


//Redition
Rendition wfrend = wfdoc.DefaultRenditionOfLatestRevision;

//PageData
//using for the disposal
//PDF for the format

using (PageData wfPageData = app.Core.Retrieval.PDF.GetDocument(wfrend))
{
//Utility to write data page stream
Utility.WriteStreamToFile(wfPageData.Stream, dirPath + wfPageData.Extension);
}
}
catch(UnityAPIException Uex)
{
app.Diagnostics.Write(Uex.Message);
}
catch(Exception ex)
{
app.Diagnostics.Write(ex.Message);
}

        }
        #endregion
    }
}