Currently, when the Saver encounters a mapping that should create a concept reference term, the only information it has about the concept source is the name of the source. If this name does not match an existing source, then it creates a new source with the provided name. This leads to situations where there could be duplicate concept sources (if names don't exactly match), as well as situations where sources are created with incomplete or incorrect information.
For example, the PIH-Malawi source on OCL staging has the following information:
- identifier: PIH-Malawi
- short name: PIH Malawi
- full name: Partners In Health, Malawi
- description: SNOMED-CT Preferred mapping
- external id: 2b3c2778-768a-102f-83f4-12313b04a615
- hl7 code: null (but this is populated on the SNOMED-CT source as SCT)
Currently, this source gets created by the openconceptlab module, it creates a source with:
- name: "PIH-Malawi"
- description: "Imported from /orgs/PIH/sources/PIH-temp/mappings/4319798/"
- hl7_code: null (this is always null)
- uuid: a random uuid (i.e. e36d4d0c-3e8a-5540-b662-b8784d4098f7)
Thus, the following happens:
- If I am updating an existing system, after importing from OCL I end up with 2 sources, one (the original) named "PIH Malawi" and another (newly created) named "PIH-Malawi"
- When a new source is created, none of the metadata that exists for this source on OCL are used to populate it.
There is an open ticket in the OCL project to add more information about sources to an export json. That ticket is here:
If that ticket is completed, then this ticket should be solve by updating the openconceptlab module to read the additional provided Concept Source information and using it to create and update sources as appropriate.
If that ticket is not completed, alternative approaches (including additional rest queries of OCL to pull down the necessary information) may be considered.