# GSoC 2024: Integrating OpenELIS with a FHIR-Based Open Client Registry - FInal Presentation

**URL:** <https://talk.openelis-global.org/t/gsoc-2024-integrating-openelis-with-a-fhir-based-open-client-registry-final-presentation/842>\
**Category:** Development\
**Tags:** gsoc2024\
**Created:** [August 23, 2024, 5:57pm UTC](https://talk.openelis-global.org/t/gsoc-2024-integrating-openelis-with-a-fhir-based-open-client-registry-final-presentation/842 "2024-08-23T17:57:44Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mherman22](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/mherman22/32/92_2.png) [@mherman22](https://talk.openelis-global.org/u/mherman22)\
**Post date:** [August 23, 2024, 5:57pm UTC](https://talk.openelis-global.org/t/gsoc-2024-integrating-openelis-with-a-fhir-based-open-client-registry-final-presentation/842/1 "2024-08-23T17:57:44Z")

</div>

## GSoC 2024: Integrating OpenELIS with a FHIR-Based Open Client Registry

- **Project Title** : Integrating OpenELIS with a FHIR-Based Open Client Registry
- **Primary Mentor** : @reagan
- **Backup Mentor** : @mozzymutesa
- **Project Report** : [GitHub - mherman22/GSOC-FinalReport at GSoC-2024](https://github.com/mherman22/GSOC-FinalReport/tree/GSoC-2024?tab=readme-ov-file#gsoc-2024-integrating-openelis-with-a-fhir-based-open-client-registry)
- **Medium blog post** : [https://medium.com/@hermanmuhereza22/gsoc-2024-integrating-openelis-with-a-fhir-based-open-client-registry-final-presentation-7413d9b995a3](https://medium.com/@hermanmuhereza22/gsoc-2024-integrating-openelis-with-a-fhir-based-open-client-registry-final-presentation-7413d9b995a3)

### Overview

This integration is designed to seamlessly connect **OpenELIS** , a laboratory information system, with a FHIR-Based Open Client Registry. The primary objective is to enhance patient data management by facilitating patient searches within the local OpenELIS system. When a user initiates a patient search within OpenELIS, the system will first attempt to locate the patient within its own database.

If the patient cannot be found locally, the integration will extend the search to the central Open Client Registry. This central registry serves as a repository of patient information, allowing OpenELIS to query and retrieve patient details from this broader database. Once the patient information is located in the client registry, it will be imported into OpenELIS, ensuring that the local system is updated with the most current and complete patient data.

In summary, this integration allows users to efficiently find patient records within their local OpenELIS system and, if necessary, access and import patient information from a central client registry, thus ensuring that patient data is both comprehensive and up-to-date across systems.

### Objectives

- Set up a repository on which I will use docker-compose to bring different pieces of  
the OpenCR like hapi fhir, elastic search together with OpenElis.

- Set up using docker-compose the OpenHim mediator to act as the interoperability  
layer between OpenCR and OpenElis, make all the configurations like channels,  
mediators, clients, etc.

- Set up using docker-compose the OpenCR client and all the different components it  
needs to function properly,i.e hapi-fhir, elastic search, etc and make all the necessary  
configurations.

- Set up using docker-compose the OpenElis client and all the different components it  
needs to function properly.

### What did i do? (Contributions)

During the project, I worked on various code repositories and pull requests to bring together the required functionality and meet the goals.

### Repositories

- [GitHub - mherman22/OpenELIS-OpenCR-HIE-Setup](https://github.com/mherman22/OpenELIS-OpenCR-HIE-Setup)
- [GitHub - intrahealth/client-registry: Open Client Registry Service](https://github.com/intrahealth/client-registry)
- [GitHub - DIGI-UW/OpenELIS-Global-2: This is the core repo for OpenELIS global v3](https://github.com/I-TECH-UW/OpenELIS-Global-2)

### Pull Requests

> <https://github.com/intrahealth/client-registry/pull/148>
>
> This intends to fix the targetId value pushed to parameters. Previously this was…n't doing anything but with this change, the \`ihe-pix\` request goes on as planned.
> 
> Fixes Issue: https://github.com/intrahealth/client-registry/issues/19 and https://github.com/intrahealth/client-registry/issues/65
> @ashaban

> <https://github.com/intrahealth/client-registry/pull/137>
>
> The following \[fhir bundle\](https://build.fhir.org/patient-operation-match.html)… is the target where the first entry is an auto match and the subsequent entries are potential matches:
> 
> \`\`\`
> {
> "resourceType": "Bundle",
> "id": "26419249-18b3-45de-b10e-dca0b2e72b",
> "meta": {
> "lastUpdated": "2016-03-18T03:28:49Z"
> },
> "type": "searchset",
> "total": 2,
> "entry": \[
> {
> "fullUrl": "http://server/path/Patient/example",
> "resource": {
> "resourceType": "Patient",
> "id": "example",
> "gender": "male",
> "name": \[
> {
> "family": "Jeannette",
> "given": \[
> "Ricky"
> \]
> }
> \],
> "telecom": \[
> {
> "system": "phone",
> "value": "+256788232241"
> }
> \],
> "birthDate": "1996-12-12",
> "search": {
> "extension": \[
> {
> "url": "http://hl7.org/fhir/StructureDefinition/match-grade",
> "valueCode": "certain"
> }
> \],
> "mode": "match",
> "score": 0.9
> }
> }
> },
> {
> "fullUrl": "http://server/path/Patient/292",
> "resource": {
> "resourceType": "Patient",
> "id": "292",
> "gender": "male",
> "name": \[
> {
> "family": "Jeannetti",
> "given": \[
> "Rickie"
> \]
> }
> \],
> "telecom": \[
> {
> "system": "phone",
> "value": "+256788232241"
> }
> \],
> "birthDate": "1996-12-12",
> "search": {
> "extension": \[
> {
> "url": "http://hl7.org/fhir/StructureDefinition/match-grade",
> "valueCode": "possible"
> }
> \],
> "mode": "match",
> "score": 0.2
> }
> }
> }
> \]
> }
> \`\`\`

> <https://github.com/DIGI-UW/OpenELIS-Global-2/pull/1219>
>
> \# Pull Requests Requirements
> 
> \- \[x\] The PR title includes a brief description …of the work done, including the
> Issue number if applicable.
> \- \[x\] The PR includes a video showing the changes for the work done.
> \- \[x\] The PR title follows conventional commit label standards.
> \- \[x\] The changes confirm to the OpenElis Global x3 Styleguide and design
> documentation.
> \- \[x\] The changes include tests or are validated by existing tests.
> \- \[x\] I have read and agree to the Contributing Guidelines of this project.
> 
> \## Summary
> 
> \## Screenshots
> 
> \[Add relevant screenshots here if applicable\]
> 
> \## Related Issue
> 
> \[Add a link to the related issue or mention it here if applicable\]
> 
> \## Other
> 
> \[Add any additional information or notes here\]

> <https://github.com/DIGI-UW/OpenELIS-Global-2/pull/1065>
>
> \# Pull Requests Requirements
> 
> \- \[x\] The PR title includes a brief description …of the work done, including the Issue number if applicable.
> \- \[x\] The PR includes a video showing the changes for the work done.
> \- \[x\] The PR title follows conventional commit label standards.
> \- \[x\] The changes confirm to the OpenElis Global x3 Styleguide and design documentation.
> \- \[x\] The changes include tests or are validated by existing tests.
> \- \[x\] I have read and agree to the Contributing Guidelines of this project.
> 
> \## Summary
> 
> \## Screenshots
> 
> \[Add relevant screenshots here if applicable\]
> 
> \## Related Issue
> 
> \[Add a link to the related issue or mention it here if applicable\]
> 
> \## Other
> 
> \[Add any additional information or notes here\]

> <https://github.com/DIGI-UW/OpenELIS-Global-2/pull/1065/commits/96605f8c8be0a77e05a22ea1aef7b75d1e94535c>

### What’s left to do?

- Polish up on the Querying of the client registry and get [this pull request](https://github.com/I-TECH-UW/OpenELIS-Global-2/pull/1219) merged.
- Thereafter, we can import the patient information from openclient registry into **OpenELIS**

### Any challenges or important things i learned during the project.

I will talk about the important things i have learned which include everything about docker, configurations of opencr, openhim, fhir, etc.

### Resources

- [https://www.openclientregistry.org/](https://www.openclientregistry.org/)
- [Server Installation - OpenCR Documentation](https://intrahealth.github.io/client-registry-docs/dev/installation_full/)
- [Welcome! - OpenCR Documentation](https://intrahealth.github.io/client-registry/)
- [http://openhim.org/](http://openhim.org/) - [https://hapifhir.io/](https://hapifhir.io/)

### Demo (video)

[![](https://canada1.discourse-cdn.com/flex030/uploads/openelisci/original/1X/d071d5d3d4c80540007d7dbaa892800e961e36e1.jpeg "Integration of OpenELIS with a FHIR-Based Open Client Registry (updated)") ](https://www.youtube.com/watch?v=_vVHZG12XwQ)

## Thoughts on GSoC:

Participating in GSoC 2024 on the OpenELIS platform has been an incredibly enlightening experience. The guidance of esteemed mentors like Reagan and Moses has been pivotal in my growth. I’ve gained valuable insights into healthcare informatics, API optimization, and collaborative open-source development. As I look ahead, GSoC has laid a strong foundation for my continued commitment to advancing healthcare technology, deepening my knowledge of FHIR standards, OpenCR, OpenHIM, and more.

A heartfelt thanks to GSoC, OpenELIS, my mentors, and the community for the lessons and opportunities. 🌟🌐

---

<div class="post-metadata">

**Author:** ![mherman22](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/mherman22/32/92_2.png) [@mherman22](https://talk.openelis-global.org/u/mherman22)\
**Post date:** [August 31, 2024, 10:35pm UTC](https://talk.openelis-global.org/t/gsoc-2024-integrating-openelis-with-a-fhir-based-open-client-registry-final-presentation/842/2 "2024-08-31T22:35:42Z")

</div>

[![](https://canada1.discourse-cdn.com/flex030/uploads/openelisci/original/1X/8f5f0e7993158ebcdf69308ffb64aeb648f47c90.jpeg "GSoC 2024: Integrating OpenELIS with a FHIR-Based Client Registry (final presentation)") ](https://www.youtube.com/watch?v=Sa9EJm0a8Ks)

---

<div class="post-metadata">

**Author:** ![Moses\_Mutesasira](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/moses_mutesasira/32/72_2.png) [@Moses\_Mutesasira](https://talk.openelis-global.org/u/Moses_Mutesasira)\
**Post date:** [September 3, 2024, 4:32am UTC](https://talk.openelis-global.org/t/gsoc-2024-integrating-openelis-with-a-fhir-based-open-client-registry-final-presentation/842/3 "2024-09-03T04:32:02Z")

</div>

Great work @mherman22
