Posts for the month of January 2013

HERON Council Grove update includes histories, encounter vitals and expanded smart notes

The Council Grove release introduces family and social histories within the HERON tool. Family history can be searched by all or by a particular family member type (e.g., Maternal Grandmother). Additionally, a new modifier allows searching by medical history within the clinical diagnosis folders. Other data changes within HERON include encounter vitals, which are searchable under the Visit Detail folder, and smart data notes, which are expanded to include ambulatory in addition to the previously released inpatient notes.

HERON Council Grove Contents Summary

This month, our tour of rivers and lakes in Kansas honors Council Grove Lake.

The HERON repository contains approximately 1 billion real observations from the hospital, clinics, and research systems:

Observation Patients Source Go-Live Snapshot Issues
Demographics 18.5M 1.95M
KUH Billing (O2 via SMS) 1980s Dec 2012 various*
UKP Billing 2000 Dec 2012
15K 15K Frontiers participant registry Jun 2009 Dec 2012
187K 187K Social Security Death Index 1962 Dec 2012
Diagnoses (IDC9) 42.4M 657K
KUH/O2/Epic Nov 2007 Dec 2012 various*
UKP Billing 2000 Dec 2012
University HealthSystem Consortium (UHC) Q4 2008 Sept 2012
History 10.9M
KUH/O2/Epic Nov 2007 Dec 2012
Medications 78.7M 302K
KUH/O2/Epic (Organized by VA Class) Nov 2007 Dec 2012 various*
Nursing Observations 563M ?
KUH/O2/Epic Nov 2007 Dec 2012 various*
Lab Results 83M 289K
KUH/O2/Epic 2003 Dec 2012 various*
Procedure Orders 113M 441K
KUH/O2/Epic 2003 (?) Dec 2012 various*
Procedures (CPT) 10.6M 578K
UKP Billing 2000 Dec 2012
Reports/Notes 35.7M 278K
KUH/O2/Epic ? Dec 2012
Specimens 44.3K 3.79K
KUMC Biospecimen Repository ? Dec 2012
Visit Details 27M 527K
KUH/O2/Epic Nov 2007 Dec 2012
Cancer Cases 9.8M 66.4K
KUH Cancer Registry 1950s Dec 2012 labels*
Hospital Quality Metrics 4.43M 65.2K
University HealthSystem Consortium (UHC) Q4 2008 Sept 2012
Triple Negative Breast Cancer Registry (BRCA) 20.9K 122
REDCap July 2011 Dec 2012 #1741
All 1B


Some material in the UMLS Metathesaurus is from copyrighted sources of the respective copyright holders. Users of the UMLS Metathesaurus are solely responsible for compliance with any copyright, patent or trademark restrictions and are referred to the copyright, patent or trademark notices appearing in the original sources, all of which are hereby incorporated by reference.

Beta Disclaimer

We are providing this early access to obtain feedback from you, the research community. While we are actively working on validating the data loaded into the system with hospital and clinic technical staff, there may be problems with our translation of data from our source systems (HospitalEpicSource and ClinicIdxSource) into HERON.

Please email us at if you discover information you believe may be erroneous.

We are actively working on enhancing the types of data included. Stay tuned to our roadmap to track progress toward upcoming releases.

Various Issues Still Apply

Keep in mind the issues noted in the original HERON beta notice, including:

Enhancements and Problems/Defects/Issues Addressed in this Release

Query for encounter vitals in HERON
Query for social history (e.g. tobacco use) in HERON
some flowsheet observations are not connected to the relevant encounter
Query past medical and family history from Epic for ambulatory and inpatient
query smart data note concepts from the ambulatory environment
realistic date-of-death exposed details about ages > 90

Outstanding Problems/Defects/Issues

Quick-and-dirty usage documentation for python integration tests

In addition to my addiction to python's doctest for WritingQualityCode, I'm developing a habit of letting my modules serve as their own integration tests when run as scripts. Python comes batteries-included with argparse, and Aargh is pretty cool, but for quick-and-dirty stuff like this, I tend not to bother at all. I just let python's stack traces serve as documentation.

For example, if it's been a while since I used source:raven-j/heron_wsgi/admin_lib/, I just run it, and I get:

(haenv):admin_lib$ python
Traceback (most recent call last):
  File "", line 319, in <module>
  File "", line 289, in _test_main
    user_id, full_name = sys.argv[1:3]
ValueError: need more than 0 values to unpack

The user_id, full_name = sys.argv[1:3] line is typically enough of a clue to remind me what arguments are needed:

(haenv):admin_lib$ python dconnolly 'Dan Connolly'
DEBUG:__main__:generate authorization for: ('dconnolly', 'Dan Connolly')
INFO:sqlalchemy.engine.base.Engine:SELECT USER FROM DUAL
INFO:sqlalchemy.engine.base.Engine:{'param_1': u'dconnolly'}
('1f8c885f-43e3-4ace-8512-88e65494d59a', <User(dconnolly, Dan Connolly)>)