Skip to content

Trigger updates to downstream domains for related data #233

Description

@mseaton

As Initializer has evolved, various domains have emerged that have overlapping responsibilities. For example, the metadatasharing, ocl and concepts domains are all commonly used to load Concepts into a system, and some implementations choose to make use of more than one of these at at time. Similarly, the location and locationtagmaps domain both take responsibilities over assigning location tags to locations.

In these scenarios, unexpected results can arise when an upstream domain has new changes but a downstream domain does not. As an example, a distribution may bring in most of it's Concepts via ocl or metadatasharing, but also allows for some concepts to be managed via the concepts domain (eg. diagnosis lists, drug lists, etc). In the typical way this is set up, the ocl or metadatasharing domain is expected to be installed first, and then the concepts domain is expected to be installed second, and this knowledge may be leveraged in order for the concepts domain to make some country-specific tweaks to a shared, global concept package (eg. some custom mappings, or custom name translations).

However, in this scenario, if an update is later made to the ocl or metadatasharing domain but not in the concepts domain, then the upstream concept definitions will be applied to the server, and the downstream customizations will not re-run, leaving metadata in an unexpected and likely problematic state.

It would be helpful if Initializer could provide a solution to this problem. This could potentially be something in the runtime configuration, where an implementation could define a list of domains that should reload if a given domain changes. For example:

initializer.domain.metadatasharing.dependencies=concepts,conceptsets
initializer.domain.ocl.dependencies=concepts,conceptsets

The result is that any time the metadatasharing or ocl domains change, Initializer will also force an update (eg. delete existing checksums) of the specified domains in the list, even if there are no changes to the files in those domains.

@mogoodrich / @mks-d / @ibacher / @Ruhanga interested in feedback.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions