June 2026 Feature Updates
· 6 min read
June was dominated by two new engines landing side by side: HL7v2/MLLP message ingestion through a template-driven FHIR Converter, and a SQL on FHIR ViewDefinition runtime. Both picked up their own admin/analytics UI by month end, and FHIRPath grew new built-ins to support them.
Backend Changes
HL7v2 ingestion and the FHIR Converter engine
- The
hl7v2crate matured quickly: an explicit structure definition, sub-component and nested-field parsing fixes, primitiveFromimpls, FHIR model parsing, serialization back to wire format, and null-handling fixes found while running real messages through the pipeline. - A new
fhir-convertercrate became the conversion engine, experimenting with both minijinja and Liquid templating and settling on Jinja-style templates with partial support, plus dedicated FHIRPath and HL7v2 filters and reflection-drivenfhir_typegeneration to keep templates aligned with the generated FHIR model. - An MLLP agent and listener were stood up and plugged into a new
hl7v2CLI command, with a customhl7v2_parseoperation and HL7v2 StructureDefinition added to the FHIR server and frontend artifacts regenerated to match. - Deserialization in
fhir-modelwas hardened along the way to absorb the loosely structured data produced by conversion (empty strings, empty structs, vector edge cases). - PRs: #713, #714, #715, #716, #717, #718, #719, #720, #721, #722, #723, #724, #725, #726, #727, #728, #729, #730, #731, #732, #733, #734, #735, #736, #737, #738.
SQL on FHIR: a ViewDefinition execution engine
- ViewDefinition landed as a first-class resource with a run operation wired into the custom operations middleware, moved into its own standalone
sql-on-fhircrate. - The projection engine grew column/select/forEach/forEachOrNull handling, cartesian products for repeating elements, null propagation, type inference, where-clause filtering, constants, and support for views that repeat over nested ViewDefinitions.
- CSV output formatting and primitive conversion were built out, and task execution moved away from spawning a task per row for better throughput.
- The run operation now supports JSON and NDJSON output in addition to CSV, including dedicated output writers in
sql-on-fhirand format selection in the shared frontend components package. - PRs: #739, #740, #741, #744, #745, #746, #747, #748, #752, #753, #754, #755, #756, #757, #758, #759, #760, #761, #766.
Product and UX
Analytics: a ViewDefinition editor
- Shipped the first cut of a ViewDefinition editor in the admin app's Analytics views, backed by a new
sql-on-fhircomponent package (initially prototyped asfhir-on-sql), with a follow-up pass exploring alternate projection layouts. - Frontend FHIR types and generated ops were regenerated to pick up ViewDefinition and the HL7v2 additions.
- Late in the month, the editor and artifacts were aligned to migrated ViewDefinition typing so generated backend/frontend models and artifact loading stayed in sync.
- PRs: #749, #750, #751, #767.
Platform and Runtime
- FHIRPath gained
getReferenceKeyandgetResourceKeybuilt-ins so views can resolve and dedupe on references, plus a shared FHIRPath/rule-engine config builder used acrossfhirpath,sql-on-fhir, andx-fhir-query. - Type-choice serialization and deserialization were fixed up in
fhir-modelto correctly round-tripvalue[x]-style fields. - Parameter handling was simplified across the server: URL building in
fhir-client, the search parameter resolver, OIDC token routes, project selection, and artifact loading were all trimmed down. - Server and worker startup moved to typed config loading (TOML +
HASTE_environment overlays) using Figment, replacing ad-hoc environment variable reads and unifying configuration paths across commands. - Deployment and local runtime wiring were updated to match nested config keys (
HASTE_REPO.*,HASTE_SEARCH.*) in compose and CI paths. - PRs: #742, #762, #763, #764, #765, #768, #769.
Artifacts, Tooling, and Maintenance
- Dependency maintenance included bumping
multerin the frontend, a SonarQube workflow version bump, and a couple of version bumps for thefhir-convertercrate. - Auth docs got a round of URL corrections across the authorization code, client credentials, refresh token, and SMART on FHIR pages.
- PRs: #743.
