InterSystems IRIS for Health™ helps you build your FHIR applications quickly and seamlessly. With FHIR® and InterSystems IRIS for Health, you can easily:
Watch the video above or try the exercise below.
In this exercise, you will load a sample integration solution that consumes healthcare data — both FHIR resources and HL7 v2 messages — and stores it to a FHIR repository within InterSystems IRIS for Health. You will then retrieve small, discrete FHIR resources such as a patient or a medication, allowing you to optimize your application to work with just the data you need.
FHIRSERVER
namespace and navigate to Health > FHIR Configuration > Server Configuration to create a FHIR R4 server endpoint that stores FHIR data as JSON in a FHIR resource repository. Click the plus sign (+) and enter the following settings:hl7.fhir.r4.core@4.0.1
hl7.fhir.us.core@3.1.0
Click Add.
/csp/healthshare/fhirserver/fhir/r4
endpoint you just created and set the Service Config Name to HS.FHIRServer.Interop.Service
. Select Allow Unauthenticated Access and click Update.FHIRServer
namespace and view the preloaded production by going to Interoperability > Configure > Production. Click Start to run the production.set $namespace = "FHIRSERVER" set sc = ##class(HS.FHIRServer.Tools.DataLoader).SubmitResourceFiles("/home/project/shared/samples-integration-FHIR/R4/data/fhir_json_data","FHIRServer", "/csp/healthshare/fhirserver/fhir/r4")
FHIR resources are especially useful for low-bandwidth situations, such as on mobile devices. Other healthcare standards often send more data than is needed. However, using FHIR with InterSystems IRIS for Health you can send a single resource, such as a patient, medication, or observation. InterSystems IRIS for Health includes a flexible base implementation of a FHIR server that conforms to the official FHIR specification. See an example in the next several steps.
GET http://YourIP:YourPort/csp/healthshare/fhirserver/fhir/r4/Patient?family=Herman&given=Kris
application/fhir+json
application/fhir+json
AllergyIntolerance
and Encounter
, using $everything
. Add this to the end of your URL:GET http://YourIP:YourPort/csp/healthshare/fhirserver/fhir/r4/Patient/1/$everything
In the previous section, you queried data that was already stored to the InterSystems IRIS for Health FHIR repository. Let’s see how easy it is to consume FHIR data, store it to the FHIR repository, and retrieve it again.
AllergyIntolerance
resource:POST http://YourIP:YourPort/csp/healthshare/fhirserver/fhir/r4/AllergyIntolerance
application/fhir+json
application/fhir+json
Body: Copy the example from the FHIR website.
If successful, you should get a 201 Created message.
GET http://YourIP:YourPort/csp/healthshare/fhirserver/fhir/r4/AllergyIntolerance?criticality=high
Need to expose your data as FHIR? Using InterSystems IRIS for Health, HL7 v2 data can be consumed, converted to FHIR, and stored in a FHIR repository or sent to other FHIR applications. In this step, you will consume an ADT_A01 HL7 v2 message, store it to the FHIR repository, and then use REST to query for the FHIR resource.
ADT_A01.txt
file, located in shared/samples-integration-FHIR/R4/SampleFiles
to the shared/samples-integration-FHIR/R4/In
folder. InterSystems IRIS for Health will consume this file, convert the contents to FHIR resources, and store the data to the FHIR repository.SampleFiles
folder, you will notice the message contains information about the patient Jane Carter. Using the REST client again, you can search for the resource for Jane:GET http://YourIP:YourPort/csp/healthshare/fhirserver/fhir/r4/Patient?family=Carter
EnsLib.HL7.Service.FileService
.EnsLib.HL7.Service.FileService
service consumed the file and is the starting point for this trace. It then sends the HL7 input message to the Demo.FHIRHL7ToFHIRRequestBPL
process, which uses a BPL to extract Patient MRN from the incoming message and to subsequently transform the HL7 message into a bundle of FHIR resources (via HS.FHIR.DTL.Util.HC.SDA3.FHIR.Process
), using the Patient MRN as the patient resource ID. Then, the transformed output is sent to HS.FHIR.Interop.Operations
, which internally stores the FHIR resources in the FHIR repository.HS.FHIRServer.Interop.Operation
and HS.Util.Trace.Operations
. The HS.Util.Trace.Operations
component allows you to display the actual contents of the FHIR message in the Contents pane on the right. Can you find the given name of the patient?HS.FHIRServer.Interop.Service
. This is because during initial setup, the FHIR server endpoint’s Service Config Name setting was set to HS.FHIRServer.Interop.Service
, and this optional setting allows all FHIR REST messages — such as FHIR search requests — to flow through an interoperability production before reaching the internal FHIR server core.Watch a demonstration of the exercise above.
To give you the best possible experience, this site uses cookies and by continuing to use the site you agree that we can save them on your device.