Skip to content

Formalizing nl-core #336

@pieter-edelman-nictiz

Description

@pieter-edelman-nictiz

The nl-core layer is meant to enhance the zib layer with the things needed for implementation. One of the guiding principles is that nl-core forms a union of all known use cases; using nl-core guides subsequent implementations of the same concept in using a uniform approach. However, until now this is mostly a concept rather than a "formal" definition. At the moment of writing, the first use cases are added to nl-core, which allows us to reason this layer.

Practical considerations

  • Should mappings to use cases be added to nl-core? It makes sense to do this; this provides traceability to the use case, which will give users the considerations and backgrounds for the implementation choices. However, if the use case simply inherits the zib and the use case dataset concept is the same as a zib concept, should all mappings to the use case be added as well? Could this be automated?
  • The profiles in zib and nl-core are modeled according to the Open World principe, meaning that the data model will fit into the profile but the profile imposes as little restriction for use outside of the data model. However, this doesn't mean that there are no restrictions; all elements that map directly to zib concepts do get the restrictions that the zib imposes. When this is applied to restrictions that are imposed from specific use cases in the nl-core, this might limit the use of other use cases. Case in point: the Vaccination standard adds zib AnatomicalLocation to zib Vaccination, and as a result the ValueSets from zib AnatomicalLocation will be bound to Immunization.site in the nl-core profile. When a second use case also wants to add a anatomical location to zib Vaccination, but using another ValueSet, this is now impossible or at least requires a change.
    What should be the policy here? Should the nl-core profile simply be as wide as possible? Or should it guide the new use case in adopting the existing solution? And should this actually be handle at the profile level?

Management

  • Who is responsible for the nl-core layer? Or perhaps more broadly, should the nl-core layer be administered using the NEN7522 approach?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions