As a Terminology Manager using the OCL Module, I want the subscription/import process to recognize when specific names of a concept are retired (voided) and to preserve the reason for that retirement, so my OpenMRS dictionary remains synchronized with CIEL’s data model and no editorial context is lost.
A user subscribes to a source (e.g., CIEL) where a concept has multiple names. In a new version, one of these names is marked as retired: true. OCL propagates the reason for this retirement via the update_comment at the concept version level. The OCL Module must parse this information during import to update the OpenMRS concept_name table, setting voided = 1 and populating void_reason.
{
"type": "Concept",
"uuid": "19380208",
"id": "1482",
"external_id": "1482AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"concept_class": "Anatomy",
"datatype": "N/A",
"display_name": "Cardiovascular system",
"display_locale": "en",
"names": [
{
"uuid": "259770133",
"name": "Cardiovascular system",
"external_id": "1705BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"type": "ConceptName",
"locale": "en",
"locale_preferred": true,
"name_type": "FULLY_SPECIFIED",
"checksum": "b7a4699102829a2ddcd394e1730978d3",
"retired": false
},
{
"uuid": "259770134",
"name": "Système cardio-vasculaire",
"external_id": "1706BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"type": "ConceptName",
"locale": "fr",
"locale_preferred": true,
"name_type": "FULLY_SPECIFIED",
"checksum": "104df2980c35da0c7333d015dc78e86c",
"retired": false
},
{
"uuid": "259770135",
"name": "Sistema circulatorio",
"external_id": "b5777f44-0685-4602-8e17-73143b81b1fc",
"type": "ConceptName",
"locale": "es",
"locale_preferred": false,
"name_type": null,
"checksum": "163a3aba94c6496b86ddf56f0b524e7d",
"retired": false
},
{
"uuid": "259770136",
"name": "Estructura del sistema cardiovascular",
"external_id": "82622700-fa57-4431-99c3-b54343c22635",
"type": "ConceptName",
"locale": "es",
"locale_preferred": false,
"name_type": null,
"checksum": "12fbb3b03354112f3bbedf16f7406afa",
"retired": true
},
{
"uuid": "259770137",
"name": "Estructura del aparato cardiovascular",
"external_id": "5b585fea-fd26-4207-bfd0-1ab91dce4cdb",
"type": "ConceptName",
"locale": "es",
"locale_preferred": false,
"name_type": null,
"checksum": "1b8ad49c99e2c77b6500475c03a84d73",
"retired": false
},
{
"uuid": "259770138",
"name": "Mfumo wa damu mwilini",
"external_id": "1707BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"type": "ConceptName",
"locale": "sw",
"locale_preferred": true,
"name_type": "FULLY_SPECIFIED",
"checksum": "69cfac6b133262dbc78f1c8000b5e98a",
"retired": false
},
{
"uuid": "259770140",
"name": "Sistema cardiovascular",
"external_id": "244ce535-9ac1-4799-8a78-200fb96f7826",
"type": "ConceptName",
"locale": "es",
"locale_preferred": false,
"name_type": null,
"checksum": "a19f38e4fe3f7813f9a3ab1d3ac7536d",
"retired": false
},
{
"uuid": "259770141",
"name": "Aparato cardiovascular",
"external_id": "6330ba4b-e4f0-4a75-8a2a-5906fb8d03bb",
"type": "ConceptName",
"locale": "es",
"locale_preferred": false,
"name_type": null,
"checksum": "93ab423844eab9c7b11f5e276c58120a",
"retired": false
},
{
"uuid": "259770139",
"name": "Estructura cardiovascular",
"external_id": "a1811490-03fd-4c74-b700-735cf262f64d",
"type": "ConceptName",
"locale": "es",
"locale_preferred": false,
"name_type": "FULLY_SPECIFIED",
"checksum": "892c9f51a00df17b8e4e559a95aab5cc",
"retired": false
}
],
"descriptions": [],
"extras": {},
"retired": false,
"source": "CIEL",
"source_url": "/orgs/CIEL/sources/CIEL/",
"owner": "CIEL",
"owner_name": "CIEL",
"owner_url": "/orgs/CIEL/",
"version": "19380208",
"created_on": "2026-05-14T13:29:51.970865Z",
"updated_on": "2026-05-14T13:29:52.008412Z",
"version_created_on": "2026-05-14T13:29:51.970865Z",
"version_created_by": "contato@filipelopes.med.br",
"update_comment": "Retired name reason (82622700-fa57-4431-99c3-b54343c22635): [Insert the reason here]",
"is_latest_version": true,
"locale": null,
"url": "/orgs/CIEL/sources/CIEL/concepts/1482/",
"owner_type": "Organization",
"version_url": "/orgs/CIEL/sources/CIEL/concepts/1482/19380208/",
"mappings": [],
"previous_version_url": "/orgs/CIEL/sources/CIEL/concepts/1482/19380206/",
"source_versions": [],
"collection_versions": [],
"versioned_object_id": 310484,
"checksums": {
"smart": "24a2612b89bf88a79f41418d97aa0bcc",
"standard": "a58795bb57c4ef41c1cbcae83821208a"
},
"version_updated_on": "2026-05-14T13:29:52.008412Z",
"version_updated_by": "contato@filipelopes.med.br",
"latest_source_version": null
}
User story
As a Terminology Manager using the OCL Module, I want the subscription/import process to recognize when specific names of a concept are retired (voided) and to preserve the reason for that retirement, so my OpenMRS dictionary remains synchronized with CIEL’s data model and no editorial context is lost.
Use case
A user subscribes to a source (e.g., CIEL) where a concept has multiple names. In a new version, one of these names is marked as retired: true. OCL propagates the reason for this retirement via the update_comment at the concept version level. The OCL Module must parse this information during import to update the OpenMRS concept_name table, setting voided = 1 and populating void_reason.
Requirements
Acceptance criteria
More details (collapsible)
Reference JSON (OCL API v2)
{ "id": "1482", "retired": false, "names": [ { "uuid": "259770136", "name": "Estructura del sistema cardiovascular", "external_id": "82622700-fa57-4431-99c3-b54343c22635", "retired": true } ], "update_comment": "Retired name reason (82622700-fa57-4431-99c3-b54343c22635): Este termo é obsoleto" }Expected OpenMRS result for the matching concept_name:
Example requests
{ "type": "Concept", "uuid": "19380208", "id": "1482", "external_id": "1482AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "concept_class": "Anatomy", "datatype": "N/A", "display_name": "Cardiovascular system", "display_locale": "en", "names": [ { "uuid": "259770133", "name": "Cardiovascular system", "external_id": "1705BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB", "type": "ConceptName", "locale": "en", "locale_preferred": true, "name_type": "FULLY_SPECIFIED", "checksum": "b7a4699102829a2ddcd394e1730978d3", "retired": false }, { "uuid": "259770134", "name": "Système cardio-vasculaire", "external_id": "1706BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB", "type": "ConceptName", "locale": "fr", "locale_preferred": true, "name_type": "FULLY_SPECIFIED", "checksum": "104df2980c35da0c7333d015dc78e86c", "retired": false }, { "uuid": "259770135", "name": "Sistema circulatorio", "external_id": "b5777f44-0685-4602-8e17-73143b81b1fc", "type": "ConceptName", "locale": "es", "locale_preferred": false, "name_type": null, "checksum": "163a3aba94c6496b86ddf56f0b524e7d", "retired": false }, { "uuid": "259770136", "name": "Estructura del sistema cardiovascular", "external_id": "82622700-fa57-4431-99c3-b54343c22635", "type": "ConceptName", "locale": "es", "locale_preferred": false, "name_type": null, "checksum": "12fbb3b03354112f3bbedf16f7406afa", "retired": true }, { "uuid": "259770137", "name": "Estructura del aparato cardiovascular", "external_id": "5b585fea-fd26-4207-bfd0-1ab91dce4cdb", "type": "ConceptName", "locale": "es", "locale_preferred": false, "name_type": null, "checksum": "1b8ad49c99e2c77b6500475c03a84d73", "retired": false }, { "uuid": "259770138", "name": "Mfumo wa damu mwilini", "external_id": "1707BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB", "type": "ConceptName", "locale": "sw", "locale_preferred": true, "name_type": "FULLY_SPECIFIED", "checksum": "69cfac6b133262dbc78f1c8000b5e98a", "retired": false }, { "uuid": "259770140", "name": "Sistema cardiovascular", "external_id": "244ce535-9ac1-4799-8a78-200fb96f7826", "type": "ConceptName", "locale": "es", "locale_preferred": false, "name_type": null, "checksum": "a19f38e4fe3f7813f9a3ab1d3ac7536d", "retired": false }, { "uuid": "259770141", "name": "Aparato cardiovascular", "external_id": "6330ba4b-e4f0-4a75-8a2a-5906fb8d03bb", "type": "ConceptName", "locale": "es", "locale_preferred": false, "name_type": null, "checksum": "93ab423844eab9c7b11f5e276c58120a", "retired": false }, { "uuid": "259770139", "name": "Estructura cardiovascular", "external_id": "a1811490-03fd-4c74-b700-735cf262f64d", "type": "ConceptName", "locale": "es", "locale_preferred": false, "name_type": "FULLY_SPECIFIED", "checksum": "892c9f51a00df17b8e4e559a95aab5cc", "retired": false } ], "descriptions": [], "extras": {}, "retired": false, "source": "CIEL", "source_url": "/orgs/CIEL/sources/CIEL/", "owner": "CIEL", "owner_name": "CIEL", "owner_url": "/orgs/CIEL/", "version": "19380208", "created_on": "2026-05-14T13:29:51.970865Z", "updated_on": "2026-05-14T13:29:52.008412Z", "version_created_on": "2026-05-14T13:29:51.970865Z", "version_created_by": "contato@filipelopes.med.br", "update_comment": "Retired name reason (82622700-fa57-4431-99c3-b54343c22635): [Insert the reason here]", "is_latest_version": true, "locale": null, "url": "/orgs/CIEL/sources/CIEL/concepts/1482/", "owner_type": "Organization", "version_url": "/orgs/CIEL/sources/CIEL/concepts/1482/19380208/", "mappings": [], "previous_version_url": "/orgs/CIEL/sources/CIEL/concepts/1482/19380206/", "source_versions": [], "collection_versions": [], "versioned_object_id": 310484, "checksums": { "smart": "24a2612b89bf88a79f41418d97aa0bcc", "standard": "a58795bb57c4ef41c1cbcae83821208a" }, "version_updated_on": "2026-05-14T13:29:52.008412Z", "version_updated_by": "contato@filipelopes.med.br", "latest_source_version": null }Notes from review (PR context)