I’m working on building a FHIR validator , and now I’m focusing on validating code system values. I’ve got several different questions on this topic. I’m a bit new in the field , and the questions may seem to be obvious for many FHIR experts , so I would appreciate your help and understanding .
First I’m trying to understand some basic level concepts , where is CodeSystems / ValueSets supposed to be stored ? Let’s say I need to expose a list of hospitals in my country to be accessible for FHIR users all over the world. What is the right place to store it? Should I always go to https://terminology.hl7.org ? Or maybe other servers, like https://simplifier.net are also acceptable ?
I got this patient example with reference to Identifier Type codes.
Due to some current software limitations it most likely I can’t validate this code using
Instead my validation will first get full list of codes ( i.e. Identifier Types) and then
check if specific code (SS) exists in the downloaded list. In the patient example
below I can send a request to http://terminology.hl7.org/CodeSystem/v2-0203 and
get the list of Identifier Types . Is it the right assumption that the list of values in
question is always available at that address
(http://terminology.hl7.org/CodeSystem/v2-0203 in our example) ?
<identifier> <type> <coding> <system value="http://terminology.hl7.org/CodeSystem/v2-0203"/> <code value="SS"/> </coding> </type> <system value="https://github.com/projectcypress/cypress/patient"/> <value value="577390"/> </identifier>
I realized that I can get a list of codes also via https://hapi.fhir.org/baseR4/CodeSystem/v2-0203. It returns it in a different format but basically it’s the same list that I can use for the validation. Does it make any difference which server I use for validation , terminology.hl7.org or hapi.fhir.org? And something to understand on a more high level: what is the role of each one of them?
Does terminology.hl7.org serve as the main source of system codes and
hapi server just provides access to this source?
The last question is about the approach I’ve mentioned above :
the validation will first get full list of codes ( i.e. Identifier Types) and then check if specific code (SS) exists in the downloaded list.
I’m aware it’s not the best approach but can you see some showstopper disadvantages ? For example , some code lists can be just huge and the approach will turn out to be unacceptable in terms of performance