A data governance layer over SQL on FHIR — every column traced back to its FHIRPath — Apr 28, 2026
Ilya — pointing a data catalogue at SQL on FHIR
The pipeline is unremarkable and that's rather the point: write a ViewDefinition, materialise it, then run a script that crawls the resulting table, parses the ViewDefinition, and pushes the metadata into an open source catalogue — lineage, profiling and data quality tests included.
Because the FHIRPath is right there in the ViewDefinition, the lineage goes all the way down: click a column and it tells you the FHIR element it came from.
SQL on FHIR solved flattening but says nothing about whether the resulting dataset is trustworthy, auditable or documented, which is the first question any regulated environment asks.
Does any of this belong in the spec?
Ilya's open question: whether it belongs in the standard or whether every implementation writes its own adapter.
Nikolai's instinct — shrink the problem: is a data quality test just a type of query?
Ilya thought basically yes — the difference is when it runs, which is every time you rematerialise the view.
That points at a family of SQL query flavours rather than a new resource: plain queries, quality rules, and whatever else turns up.
PHI labelling — the bit that caught everyone
Ilya hadn't extended anything — he used the existing tag on the ViewDefinition columns as a semantic convention his tool knew how to read.
John: thought that was a strong candidate for a tag the spec actually defines, with the caveat that these concepts mean different things to different people.
Arjun's worry — exactly that: HIPAA safe harbor and EHDS's sensitivity levels don't agree, so a generic mechanism plus examples may be as far as the spec should go. Tags are optional, so the cost of starting small is low.
Multiple attachments on a SQL library — what does it mean?
A contributor pointed out that the invariant on the SQL library breaks if there are multiple content attachments — which forced the question of what multiple SQL queries in one library even means.
The intended answer: dialects — ship the same query for Postgres and BigQuery.
But then which one does a runner pick, and what's the default?
- Standard SQL doesn't mean anything
- Arjun: ANSI SQL is nebulous and changes between versions
- John: the actual ISO standard is closed — you can't read it without paying thousands, and large parts of it nobody supports
The outcome is modest: fix the invariant, add implementation guidance, and accept that portability is proven by testing rather than declared.
Licence change — MIT to CC0
Gino explained why it isn't a judgement call: MIT isn't on HL7's approved list for specs, because a spec is documentation rather than software, and switching to the default avoids a legal review nobody wants.
Craig spotted the oddity: MIT requires you preserve the copyright and CC0 doesn't, yet FHIR requires you preserve it anyway.
John's question: whether twenty-odd historical contributors need to sign something. Gino: no, the current team asserts it, and this is small enough that nobody's worried about something hidden from five years ago.