Wednesday, May 15, 2013

RESTful Health and the Internet of Things


In the Internet of Things everything has a URI, and everything that does something has a URI with RESTful services to invoke its functionality. It really is that simple. So what if we apply the same principle to health data? The Internet of Health? What if every element of the health record has a unique URI, standard RESTful interface and predicate ontology to make meaningful connections?

The RESTful Health Record

It isn't far off. The health record may be, and has been, implemented using a RESTful API where every patient, visit, report or event, every element of a medical history has a URI.

http://restfulhealth.com/Patient/123/Visit/456 http://restfulhealth.com/Patient/123/DiagnosticReport/789

The identifier can be any locally unique data, and often it is an internal database key for fast indexing. It may also be a contextual identifier, something referenced in the clinical payload. You could even asign a random UUID or a compound ID with your system's assigning authority. These identifiers will be used in semantic expressions and therefore must be permanent. An indelible audit trail is mandatory, just another fact of life in health care.

FHIR: Health Information as Resources

HL7 is working on a RESTful standard for health records. The HL7 FHIR project aims to provide a convention of URI plus a REST to the standard data structure. It's pretty simple, every entity or event has a base URI plus an identifier. Using the same high level structures as the CCD (better yet, the mercifully simple GreenCCD), you can create a set of services to view, add and update elements of a PHR.

http://restfulhealth.com/Patient/xx-xxx
http://restfulhealth.com/CarePlan/xx-xxx 
http://restfulhealth.com/Observation/xx-xxx
http://restfulhealth.com/DiagnosticReport/xx-xxx

The elements of a patient's health record are not nested inside the patient. Everything is done with references. For example, a care plan will contain references to the patient, all members of the care team, and relevant clinical data and events.

Ontology: Semantic Relationships and Queries

An ontology may be created to describe these connections. You're not bound by the standard data structure of CarePlan/Procedure/DiagnosticReport/Result. You can express your own grouping rules if you define the necessary relationships.

CarePlan hasMember Procedure
Procedure hasReport DiagnosticReport
DiagnosticReport hasResult Observation
hasReport isa hasMember
hasResult isa hasMember
hasMember is Transient

FHIR also includes the concept of resource bundles, so the care plan can include any number of events and they can be grouped in any way the care giver deems useful. The doctor may send you home with a monitoring device (or connect your existing device), and group your device's observations such that a diagnostic report can be run on the aggregate.

CarePlan hasMember Group
Group hasMember DeviceObservation


To help facilitate care coordination, you will need an ontology to describe the relationships between the  care provided and the health data elements with a corresponding set of semantic queries. What queries would be most useful? How would the data be linked? FHIR already has both internal document links and external resource links (attachments), which are essentially simple semantic connections. There's no reason why a more sophisticated model of care coordination can't be expressed in an OWL ontology.

I am now officially a big fan of FHIR.