Reference table
FHIR
Lists the FHIR resources Pensieve exposes, the operations supported on each, and the version the interface conforms to.
Pensieve exposes a FHIR R4 interface for the systems that speak it, and this page lists the FHIR resources the platform exposes, the operations supported on each, and the version the interface conforms to. The interface conforms to FHIR R4, version 4.0.1, and exchanges resources as application/fhir+json, so a partner reads and writes the same patients, encounters, orders and results the record already holds.
The version
The interface pins FHIR R4 at version 4.0.1 and states that version on the content type, so a partner that serves several releases answers in R4. Pinning the version on every exchange keeps a multi-version server from replying in a release the platform reads differently.
Resources exposed
The interface exposes the resources below, each mapped to the part of the record it stands for. A coded field on a resource carries the partner's own coding, which the platform maps to the hospital's vocabulary on the way in.
| Resource | Clinical meaning | Direction |
|---|---|---|
| Patient | Patient identity and demographics | Received and sent |
| Encounter | A visit and the period it covers | Received and sent |
| ServiceRequest | An order placed for a patient | Sent and received |
| DiagnosticReport | A completed laboratory or radiology report | Received |
| Observation | One result value within a report | Received |
| Specimen | The sample a report was drawn from | Received and sent |
Operations
The interface supports a defined set of interactions on those resources. Which resource carries which interaction follows the partner's declared capability, which the platform reads when a connection is set up and checks before a request leaves the boundary.
| Operation | What it does |
|---|---|
| Read | Fetch one resource by its identifier |
| Version read | Fetch one earlier version of a resource |
| Search | Find resources by their parameters |
| Create | Add a new resource |
| Update | Replace a resource, checked against the version held |
| Transaction | Apply several linked resources together, all or none |
Capability governs the call
The platform reads a partner's declared capability at connection setup and refuses an operation the partner leaves out of that declaration before any request crosses the boundary. A search runs only on the parameters the partner declares.
Conditional operations and concurrency
The interface carries the guards that keep an exchange exact across an at-least-once network. Each guard resolves at the boundary, so a duplicate send or a stale write settles cleanly rather than reaching the partner twice.
conditional create guard | Keyed on the order's accession, so a resource re-sent after a dropped reply lands once. |
version-aware update guard | The platform carries the version tag it read and re-reads, then retries, rather than overwriting a resource that changed underneath it. |
transaction guard | Linked resources such as an order with its sample apply together or roll back together. |
Seeding the conditional create on the order's accession, rather than on the patient identifier, ties the guard to the one order the message stands for, so a re-send of that order settles to a single resource.
How a connection authenticates
A FHIR connection authenticates as a system rather than a person. The platform presents a signed assertion, receives a short-lived token in return, and carries that token on each call, scoped to the least privilege the work needs.
Authenticating machine to machine keeps a person's browser session out of the interface, so an exchange runs on the connection's own identity and the scope an administrator granted it. Read how a connection's identity and credentials are held in connections and credentials.
What the interface preserves
A decimal result keeps its precision across the boundary, so a value carried as 2.00 stays 2.00 rather than collapsing to 2. Carrying the number as written preserves the significant figures a laboratory reported.
Every coded value keeps the sender's original code and free text beside the mapped code, so the partner's own wording is held alongside the hospital vocabulary. Keeping both lets a reviewer trace a mapped result back to exactly what the partner sent.
Common confusions
Which FHIR version does the interface speak?
The interface conforms to FHIR R4 at version 4.0.1 and pins that version on the content type, so a partner that serves several releases answers in R4.
How does a duplicate send settle?
A conditional create keyed on the order's accession lets a re-sent resource land once, and a version-aware update re-reads before it writes, so a stale update retries rather than overwriting.
Does a person sign in to the FHIR interface?
A FHIR connection authenticates as a system, with a signed assertion and a short-lived token scoped to least privilege, so the exchange runs machine to machine.
See the coding systems a mapped resource resolves against in clinical vocabulary, and the interfaces that carry files in file drops.