Stream: implementers
Topic: Structural conformance vs claims of conformance
Tim Blake (Dec 09 2019 at 01:02):
Hi,
I appreciate this probably (re)opens a whole can of worms, but I'm looking for some guidance. I'm wondering how FHIR "conformance" is currently defined. Is something conformant if it:
a) claims conformance to a particular profile and then can be successfully validated against that profile
OR
b) is structurally conformant / equivalent, regardless of claim
Looking for some guidance, as this could have some influence on how we choose to design various Australian IGs...
Thanks.
Grahame Grieve (Dec 09 2019 at 01:10):
you claim conformance against REST / messaging / Document, not to FHIR generally.
Grahame Grieve (Dec 09 2019 at 01:13):
if you claim conformance against FHIR RESTful API, then what that means is (for a server):
- you return a capability statement
- you implement any interactions / operations that you declare in the capability statement
- any conformance claims (profiles, etc) in the capability statement are true of the functionality declared in the capability statement
- any defined interactions that you server supports, either as defined in the specification or described in the capability statement, are correct against the specification
Jim Steel (Dec 09 2019 at 01:22):
Was the question more about conformance of a resource to a profile rather than a server to the spec?
Tim Blake (Dec 09 2019 at 01:23):
Yes
Grahame Grieve (Dec 09 2019 at 01:27):
you don't make that kind of claim in the abstract
Jim Steel (Dec 09 2019 at 01:29):
But it matters if you're validating a resource that refers to another resource. For example, if you validate a List resource against a profile of List, the profile might require that all entries in the List be conformant to some profile. So, do those entry resources just need to conform structurally, or do they also need to declare the profile?
Grahame Grieve (Dec 09 2019 at 01:34):
if you validate a List resource against a profile of List that requires targets conform to a profile, then it's an error (not conformant) if the targets do not conform to the profile
Grahame Grieve (Dec 09 2019 at 01:35):
they only need to declare they conform to the profile if the profile requires them to
Grahame Grieve (Dec 09 2019 at 01:35):
(which I always advise against)
Jim Steel (Dec 09 2019 at 01:35):
:+1:
Tim Blake (Dec 09 2019 at 01:36):
they only need to declare they conform to the profile if the profile requires them to
Forgive my ignorance - how does a profile require / not require conformance declaration?
Jim Steel (Dec 09 2019 at 01:36):
Presumably you constrain the meta.profile element to contain at least the required value (or if you're an even more evil monster, only the required value)
Lloyd McKenzie (Dec 09 2019 at 02:09):
More typically, systems will declare conformance against an implementation guide, or more specifically, against a particular CapabilityStatement within an implementation guide. Doing so means that the application is capable of performing the operations identified in the CapabilityStatement, including exposing and/or consuming data in a manner that complies with any indicated profiles
Last updated: Apr 12 2022 at 19:14 UTC