Valueset binding for a CodeableConcept element


I am profiling a resource using a StructureDefinition and I have to define a valueset binding for a CodeableConcept element.
At which level do we have to define the valueset binding?
At the CodeableConcept level, at the Coding level, at the Code level or at the three of them?


It depends on exactly what you are trying to accomplish in your profile, but most commonly you would do it at the level of the resource element / CodeableConcept data type (as you see in the core specification). Only if you have specific requirements in regard to the individual Codings inside the CodeableConcept would you need to have a binding at the lower levels. That sometimes can be necessary, so if you have more details about what the profile needs to do that could be helpful.


CodeableConcept is the place to start - and the place to tighten down if there’s an HL7-defined binding. Putting bindings on codings is only needed if you need multiple parallel bindings (e.g. you want a local code + a SNOMED code + an ICD10 code). The only time you should bind ‘code’ is if it’s stand-alone. (e.g. Patient.gender). It should never have a binding if it’s inside a Coding because you need to bind the code + system together.

1 Like

Now it is clearer. Thanks!