Agents on FHIR




Agents on FHIR — April 2, 2026
Arjun Sanyal
Principal Antidote Solutions
Josh Mandel
Chief Architect for Microsoft Healthcare, Chief Architect for SMART Health IT
John Grimes
Principal Research Consultant CSIRO
Nikolai Ryzhikov
CTO at Health Samurai
Steve Munini
CEO and CTO, Helios Software
BR
Brian Kaney
Apr 2, 2026
Topics discussed:
- Alexander Kislitsyn demoed a skill that generates FHIR types without being told how — it detects the project language, installs the open source codegen package, writes the config and runs it. The config decides which IG packages and profiles to pull from, with tree-shaking, so you get US Core Patient and the types it actually touches rather than all of R4. The generated classes carry helpers for extensions, conversion between a profile and a plain resource in both directions, and the validation you can derive straight from a profile, such as required extensions.
- John Grimes built a skill on SQL Glot, a Python transpiler that knows 31 SQL dialects: it takes a query, transpiles it to every dialect, and reports where the meaning drifted. On a query he had written to populate an OMOP table from SQL on FHIR views it correctly guessed Postgres and flagged two things —
::datecasts, which other engines don't understand, and IFNULL, which is a MySQL/SQLite word where COALESCE works everywhere. The bulletproof check is still running against every engine you care about, and John wants to get there by spinning up real databases and SQL on FHIR runners; this is the cheap version until then. - Max Nussbaumer's BabelFire TS also generates types and validators from StructureDefinitions, but the interesting part was how he measures it — parity tests against the Firely .NET SDK, the HL7 validator and his own generated Zod schemas, on the theory that where three implementations disagree, someone has a bug worth finding. His warning about coding agents was concrete: the goals have to be worked in order (empty-resource parity, then random-data parity, then valid-resource parity), because an agent left alone will maximise whichever metric moves easiest. He also showed ProxySmart, an open source proxy that puts SMART auth in front of any FHIR server, with an MCP endpoint so an agent can register apps instead of a human filling in forms.
- The real argument was Nikolai Ryzhikov against Brian Kaney on validation. Nikolai's position is that validation is an algorithm, that only a couple of people in the world fully understand how it should work, and that FHIR schema exists to make the algorithm explicit enough for anyone to implement fully — running the spec's narrative through it surfaced five bugs in the spec itself. Brian's counter was that code generation is free now, so a machine-readable schema buys little; the layer worth agreeing on is a semi-structured narrative you can check for logical completeness and conflicts, and Josh Mandel pressed him to pin down that he meant constraints over what resources may look like. Neither moved.
- Arjun Sanyal's suggestion was to stop arguing and measure: a public matrix of validators against a shared test suite, the way SQL on FHIR has one for its implementations, so behaviour is comparable and transparent instead of living in a few people's heads. Steve Munini put the FHIR schema effort forward as a candidate single source of truth for what validation even means.