Connectors

Protocols & Custom Connectors

FHIR

Healthcare records over the FHIR standard: read, search, and write resources, and run bulk exports
Signs in with
OAuth 2.0 sign-in
Runs on
Cloud or On-Prem Worker
Operations
56
Ready-made triggers
0

Connect FHIR

  1. In Neblex open Connect › Connections and click New Connection.
  2. Search for FHIR and give the connection a clear name.
  3. Fill in the fields. Secret values are encrypted and never shown again.
  4. Click Test, then Create Connection.
For services offered under Connect a Service you only sign in and approve access. Otherwise use Connect with OAuth2 with your own OAuth app. See Authorize with OAuth.
FieldWhat to enter
FHIR base URL (host and path, without https://)RequiredThe server's FHIR base, for example fhir.example.org/r4. Every request is sent below it.Example: fhir.example.org/r4
FHIR versionRequiredSent as the fhirVersion parameter of the FHIR media type, so a server that serves several versions answers in this one.
AuthenticationRequiredHow the connection signs in to the server.
Access tokenOptionalSecretA token you already hold, sent as Authorization: Bearer.
Token endpointOptionalThe authorization server's token endpoint. Leave it empty to read it from the server's .well-known/smart-configuration.Example: https://auth.example.org/token
Client IDOptionalThe client id the authorization server registered.
Client secretOptionalSecretThe client secret the authorization server issued.
Client authenticationOptionalWhether the client id and secret go in the Authorization header or in the request body.
Private key (PEM)OptionalSecretThe PKCS#8 private key whose public key the server holds in your JWK Set (RSA for RS384, P-384 for ES384).
Signing algorithmOptionalThe algorithm that signs the client assertion; SMART servers support both.
Key ID (kid)OptionalThe kid of the key in your registered JWK Set.
JWK Set URL (jku)OptionalThe JWK Set URL registered for the client, when the server asks for it in the assertion header.
ScopeOptionalThe scopes to request, separated by spaces, for example system/*.rs or system/Patient.rs system/Observation.rs.Example: system/*.rs

Use it in a flow

  1. Open a flow, open the node library and search for FHIR.
  2. Drag it onto the canvas and choose an Operation and your connection.
  3. Map the operation's fields from earlier steps, or click Map with Matt.
  4. Use Test this step to see what it returns, then save.

To start a flow from FHIR without a ready-made trigger: a Poll for changes trigger can check one of its list operations on a schedule and pass on only what is new; if FHIR can send webhooks, a Webhook trigger receives them at its own URL.

Operations

56 operations in 10 groups. Each one is a step you can add to a flow.

Batch2
Run a batchbatchPOSTSend a batch Bundle: each entry is processed on its own and the response Bundle reports each outcome.
Run a transactiontransactionPOSTSend a transaction Bundle: all entries succeed or fail together.
Bulk Data9
Cancel an exportbulkExportCancelDELETECancel an export, or tell the server it may delete a completed export's files.
Check an exportbulkExportStatusGETPoll an export's status location: while it runs the result carries progress and retryAfter (HTTP 202); when done it is the manifest listing the output files.
Download an export filebulkExportDownloadGETDownload one output file of a completed export (a manifest output url on this server) as an NDJSON file.
Start a group exportbulkExportGroupGETStart exporting data for the members of a Group ($export on a Group).
Start a group export (POST)bulkExportGroupPostPOSTStart exporting data for the members of a Group ($export on a Group).
Start a patient exportbulkExportPatientGETStart exporting data for all patients ($export on Patient).
Start a patient export (POST)bulkExportPatientPostPOSTStart exporting data for all patients ($export on Patient).
Start a system exportbulkExportSystemGETStart exporting data from the whole server ($export).
Start a system export (POST)bulkExportSystemPostPOSTStart exporting data from the whole server ($export).
Capabilities2
Get the CapabilityStatementcapabilitiesGETRead the server's CapabilityStatement: its FHIR version, resource types, interactions, search parameters and operations.
Get the SMART configurationsmartConfigurationGETRead the server's SMART on FHIR configuration (.well-known/smart-configuration): token endpoint, supported scopes and client authentication methods.
Everything3
Get everything for a patientpatientEverythingGETReturn the patient's whole record ($everything); every page is followed.
Get everything for all patientspatientEverythingAllGETReturn every patient's record ($everything at type level, where the server allows it); every page is followed.
Get everything for an encounterencounterEverythingGETReturn the encounter's whole record ($everything); every page is followed.
History3
Get a resource type's historyhistoryTypeGETList every version of every resource of one type; every page is followed.
Get a resource's historyhistoryInstanceGETList every version of one resource, newest first; every page is followed.
Get the server's historyhistorySystemGETList every version of every resource on the server; every page is followed.
Operations6
Run an operation on a resource (GET)invokeInstanceOperationGETRun a named operation on a resource with simple parameters in the URL (operations that change nothing).
Run an operation on a resource (POST)invokeInstanceOperationPostPOSTRun a named operation on a resource with a Parameters resource.
Run an operation on a resource type (GET)invokeTypeOperationGETRun a named operation on a resource type with simple parameters in the URL (operations that change nothing).
Run an operation on a resource type (POST)invokeTypeOperationPostPOSTRun a named operation on a resource type with a Parameters resource.
Run an operation on the server (GET)invokeSystemOperationGETRun a named operation on the server with simple parameters in the URL (operations that change nothing).
Run an operation on the server (POST)invokeSystemOperationPostPOSTRun a named operation on the server with a Parameters resource.
Resources12
Create a resourcecreatePOSTCreate a resource.
Delete a resourcedeleteDELETEDelete a resource by id.
Delete a resource version (R5)deleteHistoryVersionDELETEDelete one past version of a resource (R5).
Delete a resource's history (R5)deleteHistoryDELETEDelete every past version of a resource, keeping the current one (R5).
Delete resources by criteriaconditionalDeleteDELETEDelete the resource that matches the search criteria, or every match when the server supports multiple conditional delete (CapabilityStatement conditionalDelete = multiple).
Patch a resourcepatchPATCHChange part of a resource with a JSON Patch document or a FHIRPath Patch Parameters resource.
Patch a resource by criteriaconditionalPatchPATCHPatch the one resource that matches the search criteria.
Read a resourcereadGETRead the current version of a resource by type and id.
Read a resource versionvreadGETRead one specific version of a resource.
Read by full URLreadByUrlGETRead a resource by an absolute or relative URL the server returned (a Bundle entry fullUrl or a reference).
Update a resourceupdatePUTReplace a resource by id (or create it with that id when the server allows update as create).
Update a resource by criteriaconditionalUpdatePUTReplace the one resource that matches the search criteria; the server creates it when none matches and refuses when several do.
Search5
Search a compartmentsearchCompartmentGETSearch one resource type inside a compartment, for example a patient's Observations; every page is followed.
Search all resource typessearchSystemGETSearch across resource types (system-level search); every page is followed.
Search all resource types (form post)searchSystemPostPOSTSearch across resource types by POSTing the criteria to search as a form; every page is followed.
Search resourcessearchGETSearch one resource type with the server's search parameters; every page is followed.
Search resources (form post)searchPostPOSTSearch one resource type by POSTing the criteria to search as a form, which keeps them out of URLs and logs; every page is followed.
Terminology7
Check a code against a value setvalueSetValidateCodeGETCheck that a code is in a value set ($validate-code).
Check a code in a code systemcodeSystemValidateCodeGETCheck that a code is valid in a code system ($validate-code).
Expand a stored value setvalueSetExpandInstanceGETExpand a value set stored on the server ($expand on an instance).
Expand a value setvalueSetExpandGETExpand a value set into its codes ($expand).
Look up a codecodeSystemLookupGETLook up a code's display and properties in a code system ($lookup).
Test subsumptioncodeSystemSubsumesGETTest whether one code subsumes another ($subsumes).
Translate a codeconceptMapTranslateGETTranslate a code with a concept map ($translate).
Validation7
Add tags to a resourcemetaAddPOSTAdd profiles, tags and security labels to a resource without changing its version ($meta-add).
Get a resource type's tagsmetaTypeGETList the profiles, tags and security labels used by one resource type ($meta).
Get a resource's tagsmetaGETRead the profiles, tags and security labels of a resource ($meta).
Get the server's tagsmetaSystemGETList the profiles, tags and security labels used on the server ($meta).
Remove tags from a resourcemetaDeletePOSTRemove profiles, tags and security labels from a resource ($meta-delete).
Validate a change to a resourcevalidateInstancePOSTCheck that a resource may be updated or deleted ($validate on an existing resource).
Validate a resourcevalidatePOSTCheck a resource against the base specification and profiles ($validate); the result is an OperationOutcome.