Integrating with Norsk helsenetts Document Repository
Note ℹ️
For any questions related to document sharing, or integrating as a document source, feel free to contact us in our slack-channel #ext-nhn-pasientens-journaldokumenter
Below are the common integration steps for becoming a document source using NHN Document Repository, developed by Norsk helsenett. Usual integration follow a "gradual transition" from storing everything in their existing Storage Solution, to uploading both in the Storage Solution, but also uploading an increasingly larger amount of the documents to NHN Document Repository, allowing for a smooth transition.
NHN Document Repository is a IHE XDS/XCA-compliant XCA responding gateway with integrated registry and repository developed by Norsk helsenett.
Steps when integrating with Norsk helsenetts Storage Solution
As an integrator, you will mainly interact with two services: NHN Dokumentlager API and NHN Document Repository.
- NHN Dokumentlager API (Audience:
nhn:repo) is the entrance-portal to storing documents, and contain endpoints for uploading a FHIR-bundle - NHN Document Repository is the Storage Solution used in Norsk helsenett. There are several instances of NHN Document Repository running in our environments, and one will be delegated to you upon initial integration.
In your existing Storage System, you need to create a propagation mechanism that functions as follows:
- The document and metadata must be transformed to a FHIR-bundle, complying with the ITI-65 transaction of the MHD Profile.
- Before uploading the FHIR bundle - any custom codes and coding systems must be mapped according to the norwegian IHE XDS-metadata specification and the coding systems used in healthcare in Norway.
- When a document is uploaded to your Storage Solution, the document and metadata is also sent to the NHN Dokumentlager API, which will forward it to your assigned instance of NHN Document Repository.
- The response will contain a FHIR OperationOutcome, signaling whether the operation completed with any errors. This should be handled either by the integration engine or the front-end, depending on the mechanism for forwarding documents.
When integrating with Norsk helsenetts Storage Solution, you will get an Object Identifier (OID) identifying your instance of NHN Document Repository.
When uploading documents, this identifier must be included in the relevant properties of the FHIR-bundle.
Integration documentation for ITI-65
Slack-channel for integration questions
To get an instance of NHN Document Repository, and for any questions regarding integrations, feel free to contact us in our Slack-channel:
#ext-nhn-pasientens-journaldokumenter
Examples
Example 1: Existing Storage Solution (0% of documents stored in NHN infrastructure)
This might represent the current architecture of a EPR-system who wants to connect to NHN Document Repository, and their documents are stored in the systems local Storage Solution.
See Vendor Document Repository for more info.
flowchart LR
act[Healthcare <br>personell]
subgraph "EPR system"
eepr[EPR system]
epdb[(Storage Solution)]
end
act--Uploads documents-->eepr
eepr --Uploads to<br>internal storage--> epdb
Example 2: Parallel-Storage Solution using NHN Document Repository (25-75% of documents stored in NHN infrastructure)
This is usually what a transition phase looks like, where you store documents in both registry/repositories at once, allowing NHN Document Repository to be queried by Norsk helsenetts XCA Initiating Gateway, exposing the shared documents through NHN Document Repository as a Target Community. Some migration might need to be done to sync all of the documents between the existing system and NHN Document Repository.
This is a simple approach which allows fetching of documents from the existing storage as normal, while also making them available to the broader XCA community.
For some actors, this parallel/hybrid is a sufficient Storage Solution. Storing all the documents in both the existing Storage Solution aswell as NHN Document Repository There may be limitations in the vendors system or organization which prevents a more thorough integration. Thus this is a low-cost-low-risk solution.
This solution applies to:
- actors who are vendor-locked in to existing storage infrastructure who want to share documents, but are unable to get vendors to support interoperability or integration
- actors who wants to pilot an interoperable storage solution
- actors who are planning development of FHIR/XDS-compliant interfaces for direct communication with Norsk helsenett
- actors who want to share only certain document types (ie. only share documents under Kjernejournalforskriften or with citizens of Norway)
flowchart LR
act[Healthcare <br>personell]
subgraph "Norsk helsenett"
xcads[(NHN Document Repository)]
phr[[PJD REST API]]
xcagw[NHN<br>XCA Gateway]
end
subgraph "EPR system"
eepr[EPR system]
epdb[(Storage Solution)]
intngn[[FHIR Integration<br>layer]]
fwd(( ))
end
act --Uploads documents--> eepr
eepr --Forwards to both<br>internal storage<br>and NHN--> fwd
fwd --> intngn
fwd --> epdb
intngn --ITI-65 HL7 FHIR ProvideBundle-request--> phr
phr --Forwards to<br>correct<br>XcaDS--> xcads
xcads <--Queries for<br>documents--> xcagw
Example 3: NHN-governed Storage Solution using NHN Document Repository (100% of documents stored in NHN infrastructure)
This is applicable if you are migrating from a parallel Storage Solution, or if you do not have a Storage Solution in the first place.
This solution applies to:
- actors who do not have existing infrastructure for storing documents
- actors who does not have the funding to establish infrastructure
- actors who want full outsourcing of document persistence
flowchart LR
act[Healthcare <br>personell]
subgraph "Norsk helsenett"
xcads[(NHN Document Repository)]
xcagw[NHN<br>XCA Gateway]
phr[[PJD REST API]]
end
subgraph "EPR system"
eepr[EPR system]
intngn[[FHIR Integration<br>layer]]
end
act--Uploads documents-->eepr
eepr --> intngn
intngn --> phr
phr-->xcads
xcads <--Queries for<br>documents--> xcagw