feat(xds-sender): pull consolidated IPS for continuity of care#112
Merged
Merged
Conversation
Adds a read-side retrieval path so a site can fetch a patient's cross-facility summary (IPS) from SEDISH: - ShrRetriever.fetchIps(patient): resolves the patient's golden-record id (CRUID) from the MPI by iSantePlus ID, then GETs the consolidated IPS from the SHR IPS mediator (/SHR/ips/Patient/cruid/<cruid>) over the existing HAPI client + OpenHIM Basic auth. - ShrImportServiceImpl.retrieveIps + CcdService.downloadAndSaveIps: wrap and persist the returned bundle (mirrors the existing CCD path). - IpsRetrievalController: GET module/xdssender/retrieveIps.form?patientId=<uuid> fetches and renders the summary (reuses XdsUtil.parseCcdToHtml). Read-only; no discretization into local clinical data. - Config: xdssender.ipsEndpoint global property + getIpsEndpoint(). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a read-side retrieval path so a site can fetch a patient's cross-facility summary (International Patient Summary) from SEDISH — the roaming / continuum-of-care flow. OpenCR resolves the patient to the golden record, OpenHIM aggregates the SHR clinical data, and the site displays it. Read-only — it does not discretize data into the local record.
How
ShrRetriever.fetchIps(patient)— resolves the patient's golden-record id (CRUID) from the MPI by iSantePlus ID, then GETs the consolidated IPS from the SHR IPS mediator (/SHR/ips/Patient/cruid/<cruid>) using the existing HAPI client + OpenHIM Basic auth.ShrImportServiceImpl.retrieveIps+CcdService.downloadAndSaveIps— wrap/persist the returned bundle (mirrors the existing CCD path).IpsRetrievalController—GET module/xdssender/retrieveIps.form?patientId=<uuid>fetches and renders the summary as HTML (reusesXdsUtil.parseCcdToHtml).xdssender.ipsEndpointglobal property +getIpsEndpoint()(defaulthttps://openhimcore.sedishtest.live/SHR/ips).Reuses the module's existing FHIR client, auth, config, and HTML renderer; the only net-new code is the IPS fetch + wiring (164 insertions, 0 deletions).
Server side
Pairs with the SHR mediator's consolidated-IPS retrieval by CRUID / source-key / fpnid: DIGI-UW/shared-health-record#147.
Follow-up (out of scope)
Discretize + import (writing IPS clinical resources as local Encounters/Observations/Conditions) is intentionally deferred — it's a larger, higher-risk mapper for a separate PR.
🤖 Generated with Claude Code