I'm quite new to FHIR and have a basic question about extensions. I worked through the FHIR standard definition but couldn't find a clear answer:
Can I submit any registered extension to any FHIR server? So for example, I define and register a new extension called "StructureDefinition/patient-eyecolor" at the simplifier.net registry. Can I then send a JSON message patient with the given extension (referenced in URL) to any existing FHIR server? Is it possible for a server to only allow a certain set of extensions?
As far as I understand an extension does not have to be included in a profile. So in the capabilityStatement of a server, the supported profiles do not necessarily list the supported extensions. So I don't see how a server can only allow a smaller set of extensions (instead of all registered ones), or is that not possible/wanted?
It's totally fine for a server to not support all extensions. In fact, it's fine for a server to not support some of the core elements. (For example an aggricultural veterinary system might not bother tracking patient name.)
In most cases, servers should simply ignore data elements they don't support. There are two exceptions:
Modifier elements (and modifier extensions) can't be safely ignored if the server doesn't recognize what they mean and what impact they have on other elements
A small number of systems may be in a legal situation where they are deemed to have "custody" of non-rejected data and may therefore enforce tight business rules about what elements are allowed to be present.
Systems should declare what extensions they'll actually pay attention to in their CapabilityStatement