A silent killer
Sepsis is the body’s extreme response to an infection. It is a life-threatening medical emergency. Sepsis happens when an infection you already have —in your skin, lungs, urinary tract, or somewhere else—triggers a chain reaction throughout your body. Without timely treatment, sepsis can rapidly lead to tissue damage, organ failure, and death. 1
More than 1.5 million people get sepsis each year in the U.S. At least 250,000 Americans die from sepsis each year 2. Sepsis kills more people than breast cancer, prostate cancer, and AIDS...Combined3.
Yet, not many people know about it. We've all heard so much about Ebola and H1N1, but not many of us have heard about Sepsis. Who is at risk to get Ebola or H1N1? A few...Who is at risk to get Sepsis? We are all! Sepsis does not discriminate. It kills the young or the old, the rich or the poor, and it kills quickly.
Do not believe it? Just take a few minutes and read a few stories, published by CDC (Centers for Disease Control and Prevention):
I was especially touched by all the comments, left by sepsis survivors and everyone who lost their loved ones to sepsis.
The scariest part is that many patients did not receive proper sepsis treatment or their sepsis was not recognized early and caused a lot of harm or loss of life. Many times sepsis was caused in the hospital and could be prevented (something called in the industry as a hospital-acquired infection or condition).
Spend a few minutes, educate yourself about sepsis and spread the word.
Sepsis Dashboard inception
I work for a very large healthcare hospital system, which made a priority to fight with sepsis. The most efficient (proven by medical evidence) tool in that fight was to ensure 3-hour bundle compliance for sepsis.
3 hour bundle is one of the guidelines, developed by a large international collaboration, called the "Surviving Sepsis Campaign", and contains the following elements, to be completed within 3 hours of the time of presentation with severe sepsis (also called time zero):
- Measure Lactate Level
- Obtain Blood Cultures Prior to Administration of Antibiotics
- Administer Broad Spectrum Antibiotics
- Administer 30 mL/kg Crystalloid for Hypotension or Lactate ≥4 mmol/L
Why 3 hours? Sepsis is deadly when it’s not quickly recognized and treated. The chances of surviving sepsis are dropping very fast with every hour passed.
This presents a huge challenge in itself. Providers and caregivers need to optimize their workflows to detect sepsis early, communicate effectively and have mature processes in place.
Modern EHR (Electronic Health Records) systems help to streamline these processes. Our EHR vendor (Cerner) went even further and developed Sepsis Surveillance Agent (known as St. John Sepsis Alerts). This solution was successfully deployed by my organization across all 46 hospitals. One of my teammates played a key role, implementing Sepsis Alerts (hi, Judi Reed!) and educating staff.
The next step was to ensure that 3 hour bundle would be enforced in Emergency Department Units and in the hospitals.
This how this project was born and when I was asked if I wanted to work on it, I screamed "YES!!!!"
One of the big challenges was simply the amount of data, needed to measure 3 hour bundle compliance. Dealing with billions of rows and filtering billions of vital events, lab results and orders is not for the faint of heart. As a matter of fact, this was one of the reasons why I urged our leadership to start our new Big Data initiative. But this is another story.
After 2 frustrating months, applying all my ETL and SQL tuning skills, I finally came up with an incremental process, that would ingest and process data for Sepsis dashboard in a reasonable time (1 hour). We wanted to update the dashboard at least every night, and while the dashboard would show data for the discharged patients only, it was still crucial to deliver data to caregivers as frequently as we could at the time. My initial process took 22 hours to run, so I was pretty happy with a 1 hour run time. Now, that I have the power of Big Data engines, such as Apache Hive, Apache Impala and Apache Kudu, and could do the same thing in mere minutes, it was a huge win. Big Data ecosystem also allows to do things in near real-time with distributed streaming and processing engines (such as Apache Kafka, Apache NiFi and Apache Spark). In fact, Cerner used Apache HBase and Apache Kafka to build Sepsis alerts and readmission assessment solutions4.
Another challenge was to identify "time zero", meaning the time when sepsis was detected. Our Clinical Analytics Director (hi, Kathy Butler!) and our Office of Clinical Effectiveness came up with a very good idea, and we were able to measure time zero for ED patients and also patients, who developed Sepsis in the hospitals.
The timeline was pretty aggressive as well. I did not have time to design a proper traditional data warehouse and ETL and we had to go agile route. I am a big fan of QlikView, which is a really awesome business intelligence tool, developed by Qlik. QlikView has an extremely powerful in-memory engine, tons of features (embedded ETL capabilities, advanced on-the-fly aggregation functions, and a very flexible UI), and provides a very special user experience (associative engine). Honestly, I do not think I could build this dashboard so quickly if I did not have QlikView.
I cannot stress enough how important it was to get support from Kathy and Judi. They are nurses and care about people is in their blood. It helped tremendously they spoke a clinical language I would never understand. Oh, and I got to hear a lot of nursing jokes along the way (I did understand a few).
Sepsis Dashboard Implementation
I started actively working on the dashboard back in February 2016. By April, I had the first version of the Sepsis Dashboard out. We let our SMEs (subject matter experts) test and validate it. There was also a campaign to train users in the field. I think we put it in production around June.
On a very high level, this is how architecture looks like:
- Data is ingested from 3 remote Cerner domains into our EDW staging area. The process is incremental and has been created and supported by EDW team. Essentially, this is an exact replica of Cerner database tables but merged for all 3 domains. This data is used for various projects, not just Sepsis dashboad.
- Sepsis dashboard specific data is extracted, processed and stored in Qlik proprietary files (QVDs). Each QVD represents prepped data such as Patient Encounter Details, ICD codes, Order Details, Vitals, Physicians, Locations etc.
- QVDs are then further processed and loaded into QlikView data model (QVW file). This model is designed as a star schema and contains data on patient encounter level. Also, some fine grain data are available for drilldowns, including some vital signs. This is where data for timeline view pre-calculated as well (more on this later).
- Finally, Sepsis Data Model is loaded from QVW (this is a really fast process in Qlik, called binary load) into a dashboard.
Roughly, I spent 0% of my time on step 1 (thanks to our EDW team), 60% on step 2 (to figure out how to source data I need and tweak the performance of Oracle SQL queries), 30% on step 3 and 10% on step 4. I always like to spend more time on data modeling as it will make things much easier downstream.
Here is how the final dashboard looks like (data is fake obviously):
Our users especially liked 24 Hour Timeline on a Patient View tab. I wanted to visualize the key events on one chart and after a few experiments and feedback from users, came up this a timeline view.
This patient received very good care and all the measures were done proactively even before Sepsis Alert fired! The patient was discharged home:
Another very popular feature is a Self-query tab. I always liked the self-service experience of traditional enterprise BI tools (SAP BusinessObjects) and wanted to provide something similar to our users. They can pick dimensions and measures, filter data and aggregate on the fly, and finally export results to their favorite Excel:
Value of Clinical Analytics
Sepsis dashboard is used by 200+ users. Some of them use it every single day. Our quality measures keep improving, the length of stay is getting shorter, and more patients surviving severe sepsis. Goals are set for hospital leadership, who is now accustomed to checking data frequently for their patients and physicians and get insights on how their peers are doing. We had amazing examples, when care managers from one hospital, which struggled to enforce sepsis bundle compliance, reached another hospital, who had the best scores, and started implementing similar processes. The result was a drop in mortality by 15%!
Do we still have a room for improvement? Of course. Do we need to educate our leaders and to continue building a data-driven culture in the organization? Definitely. But one thing is very clear - modern business intelligence tools, data warehousing, and data engineering are crucial for any healthcare organization. Better decisions will be made, based on the ever-increasing volumes of data and evidence of successful treatment plans. More lives will be saved.
Check my post on Healthcare Analytics with Cerner: Part 1 - Data Acquisition and QlikView Readmission Tracking App.