This page provides a high-level, PoC-developer-oriented overview of the HALO specification. It is intended as a starting point to help you navigate the most relevant sections, understand how PoC systems interact with SMART Apps in both base SMART on FHIR and SoFA-enabled environments, and quickly identify the requirements, workflows, and conformance expectations for your role. It is not a substitute for the detailed implementation pages in the specification, but rather a directional guide to point you toward them.
By conforming to HALO, PoC systems (typically EMRs or clinical portals) gain:
Whether your system offers full SMART on FHIR capabilities or requires external support, HALO ensures you're interoperable and future-proof.
| Component | Base SMART on FHIR (SoF) | SMART on FHIR Accelerator (SoFA) |
|---|---|---|
| FHIR Server | Local to PoC | Jurisdictional, operated by SoFA |
| IdP / Auth Server | Local or delegated | Jurisdictional, integrated with SoFA |
| Context Management | Internally managed by the PoC | Uploaded via $set-context and bound to a unique identifier (launchID) |
| App Launch | Direct with local iss and launch values |
Direct with jurisdictional iss and launch parameters |
| Data Write-back | Direct to PoC FHIR server | Written to the SoFA and propagated back to the PoC via FHIR Subscriptions |
| Cleanup | Local policies | Triggered via $clear-context, and/or automated based on internal policies |
$set-context operation.$set-context operation is constructed.transaction-response Bundle returned by the SoFA in response to the $set-context operation.$set-context.HALO conformance is comprised of several technical actors and transactions across several HALO Profiles. These responsibilities are grouped and tested leveraging the four core business use cases.
From a PoC perspective, the following use cases apply:
Within these use cases PoC systems are responsible for fulfilling roles such as App Catalog Consumer, Launch Initiator, Resource Server, Authorization Server, Context Source, Subscription Producer, and Notification Consumer with some variance based on whether they are implementing the base SMART on FHIR (SoF) flow or the SMART on FHIR Accelerator (SoFA) flow.
For more details regarding testing and conformance expectations for PoC systems, see the see the Interoperability Recommendations and Technical Use Case Sequence Diagrams pages.
In addition to the HALO-specific testing, PoC vendors should ensure compliance with the following external specifications:
Application.scopes field from the catalog entry to determine required contextAll Flows (SoF & SoFA):
iss and launch parameters.Base SMART on FHIR (SoF) Launch Flow:
.well-known/smart-configuration endpoint.SMART on FHIR Accelerator (SoFA) Launch Flow:
$set-context operation.$set-context operation.$set-context response bundle.All Subscription Implementations (REST Hook & WebSocket)
websocket or rest-hook channels based on your system's needs.SoFA Content Update topic.eventNumber element between notifications to process events in the correct order and detect gaps.$status and $events operations as needed to detect Subscription error states and recover missed notifications.WebSocket-based Subscription Implementations
$get-ws-binding-token operationbind-with-token message