Using a FHIR End-point for a Patient Summary

One of the requests that we have received is to put together a patient Summary sheet which aggregates data from multiple encounter types, plus some computations

I am wondering the most efficient approach to do this

  1. Custom Controller and Quert to put together the data (I feel the pain already)
  2. REST end-point to pull together the data, painful to as I need to make multiple requests to get the different data sets - like what is used for the Patient Widgets
  3. FHIR - can this be a patient bundle? What is the easiest way to pull this together

Patient_Summary_Sheet

Thanks in advance

2 Likes

@ssmusoke those are mainly Observations and a Patient Resource as well. By default, the current Implementation can offer bundles but not in a way you would have different resource types.

From what I see, two different resource types are defiantly needed. That is the Patient resource and the Bundle of Observation. These can be queried using the FHIR rest services of the FHIR2 Module.

Take a look at the documentation OpenMRS HL7 FHIR Solutions - Projects - OpenMRS Wiki

1 Like

@ssmusoke The patient summary is something that has been addressed with OpenMRS FHIR module following the FHIR profile of an IPS (international patient summary). @ibacher and @pmanko can give you all the details on that, including it being in production in an HIE and SHR in Haiti for continuity of care across facilities. It would be great to have you join the FHIR squad calls to make sure any gaps you see with that could be addressed for the global good.

@janflowers Thanks, where can I find this profile to evaluate?

https://build.fhir.org/ig/HL7/fhir-ips/index.html

@janflowers Thanks, where can I find the technical or implementation specific documentation on how it was built for Haiti as a starting point

Hi @ssmusoke we used the IPS as a basis for the work in Haiti to provide continuity of care between iSantePlus (OpenMRS platform 2.0.5-based distribution. See https://github.com/IsantePlus/openmrs-distro-isanteplus and https://github.com/IsantePlus/docker-isanteplus-server) instances.

We leverage the https://github.com/GoogleCloudPlatform/openmrs-fhir-analytics project - and specifically the bulk and debezium-based streaming pipeline - to load resources into a hapi-based Shared Health Record (https://github.com/I-TECH-UW/shared-health-record). We also use the OpenCR project for our client registry to manage patient identity. The SHR is then queried by iSantePlus to grab the data required to render a Continuity of Care Document to the user.

The SHR implementation has basic support for rendering an IPS bundle, and I need to look in to the support for IGs that Hapi provides, since you are now able to load IPS as part of the configuration:

Here’s the Haiti project setup: https://github.com/i-tech-uw/sedish-haiti.org

Sorry for the deluge of information - let me know if you’d like any more details or clarifications. Also, I’d be happy to chat in person!

@pmanko Thank you for the dump of information will look into it in more depth over the weekend

My current struggle is getting the data packaged within OpenMRS - as this will help me display it on a page

Any reason not to create it as an XLS report with the reporting module?

I am having trouble bringing multiple patient row records together in the same report thus I am looking for another option

Doesn’t it just use SQL? So you can join across the patient table?

@ssmusoke were you able to figure this out? I believe @pmanko and @ccwhite23 were able to parse the IPS in iSantePlus, but I’m not sure if that’s more custom or not.

There are parts with different row counts, hence hoping to be able to break it up into different pieces for efficiency