Academy
⌘K
Getting Started
  • Platform Overview
  • AWS Marketplace Setup
  • Quickstart Guide
Connections
  • Overview
Workflow Builder
  • Overview
  • Nodes Catalog
Helix AI Assistant
  • Overview
Mapping Engine
  • Overview
Workflow Library
  • Overview
  • HL7
  • FHIR
  • Insurance
  • Agentic
  • Mapping
Security & Infrastructure
  • Architecture
  • HIPAA Compliance
  • Performance & Scalability
← Back to ConnectHealth
Get Started
Back to Nodes
FHIR1 input → 1 output

FHIR Read

payload.access… (string)payload.resour… (string)payload.resour… (string)FHIRFHIR Readpayload (object)fhir.resourceT… (string)fhir.resourceId (string)Data flowProperty

Reads a specific FHIR resource by type and ID.

Inputs

payload.access_token string
Access token for FHIR server authentication (required)
payload.resourceType string
FHIR resource type (e.g., Patient, Observation). Overrides node configuration
payload.resourceId string
ID of the resource to read. Overrides node configuration

Outputs

payload object
The complete FHIR resource object
fhir object
Metadata about the FHIR operation:
  • resourceType - Type of resource read
  • resourceId - ID of resource read
  • url - Full FHIR URL used
  • integrationId - Integration used
  • operation - Always "read"

Details

This node performs a FHIR read operation to retrieve a specific resource by its type and ID.

The node requires an access token to be provided in msg.payload.access_token. This token should have appropriate permissions to read the requested resource type.

Resource type and ID can be configured in the node or provided dynamically via the message. Message values take precedence over node configuration.

The node validates the resource type against the integration's configured scopes and displays a warning if the resource may not be accessible. However, it will still attempt the request, allowing the FHIR server to make the final authorization decision.

Scope Validation

The node checks if the selected resource type is included in the integration's scopes. Scopes follow the format: [user|patient|system]/[ResourceType|*].[read|write|*]

For example:

  • patient/*.read - Can read all resource types in patient context
  • user/Patient.read - Can read Patient resources in user context
  • system/Observation.* - Can perform all operations on Observations

Examples

Basic Read Flow:

┌──────────┐   ┌─────────────┐   ┌───────────┐
│ Auth     │──▶│ FHIR Read   │──▶│ Process   │
│ Backend  │   │ (Patient)   │   │ Resource  │
└──────────┘   └─────────────┘   └───────────┘

Input Message:

msg.payload = {
    access_token: "eyJhbGciOiJSUzI1NiIs...",
    resourceType: "Patient",
    resourceId: "12345"
};

Output Example:

msg.payload = {
    "resourceType": "Patient",
    "id": "12345",
    "name": [{"family": "Smith", "given": ["John"]}],
    "birthDate": "1980-01-01"
};
msg.fhir = {
    "operation": "read",
    "resourceType": "Patient",
    "resourceId": "12345"
};

Best Practices

  • Always validate resource ID exists before calling read
  • Use error handling to catch 404 (not found) responses
  • Cache frequently accessed resources when appropriate
  • Check msg.fhir metadata for debugging
  • Consider using search instead of read for unknown IDs