ECL

ECL 2.2 specifies support for Alternate Identifiers see 6.1 Simple Expression Constraints eg LOINC#54486-6 (which would be expanded inline before any further processing is done). 

CodeSystem Property

See Zulip discussion on a name for this new property:  https://chat.fhir.org/#narrow/channel/179202-terminology/topic/Alternate.20Codes/with/510871290 

See "alternateCode" references in https://build.fhir.org/codesystem-concept-properties.html

Concept Map

Finding the LOINC code from a SNOMED SCTID will work easily via an implicit concept map and the $translate operation.  The suggestion is to use the alternate identifier file schema SCTID as we would normally pass a refset id.  This is not required.  The "identifierSchemeId" performs a similar function as a refset id.

peter@PGW-IHTSDO-4 tmp % head sct2_Identifier_Snapshot_LO1010000_20250321.txt
alternateIdentifier	effectiveTime	active	moduleId	identifierSchemeId	referencedComponentId
1-8	20250321	1	11010000107	30051010000102	480081010000105
10-9	20250321	1	11010000107	30051010000102	480091010000108
100-8	20250321	1	11010000107	30051010000102	480101010000104

<server>/fhir/ConceptMap/$translate?code=529881010000108&system=http://snomed.info/sct&version=http://snomed.info/module/11010000107&targetsystem=http://loinc.org&url=http://snomed.info/sct?fhir_cm=30051010000102

This would recover one specific schema, but what if we wanted to recover all alternate identifier maps (as opposed to all maps)?

<server>/fhir/ConceptMap/$translate?code=529881010000108&system=http://snomed.info/sct&version=http://snomed.info/module/11010000107&targetsystem=http://loinc.org&url=http://snomed.info/sct?fhir_cm=equivalentConcept

Since the targetSystem allows you to work out which schema is being referred to, using "equivalentConcept" removes the need for the schema identifier entirely.     And we can miss out the targetSystem if we'd like to recover all alternate identifiers for a given SNOMED concept.

See "LOINC Ontology" discussion (item 9) in 2025-04-06 - SNOMED on FHIR Meeting (TS & TB)

See also Zulip discussion: https://chat.fhir.org/#narrow/channel/179202-terminology/topic/Alternate.20Codes/near/517923587

Discussion

ML Suggests that alternate codes in a different CodeSystem  should not be surfaced as an alternate code via a CodeableConcept 

Shrimp exposes "Identifier" as a Coding type, so specifies both that it's the LOINC URI and the code (this was rejected as being already too heavily overloaded a word)

2025-04-15 "alternateCode" ← workshopped by group.

2025-04-29 further discussion on Zulip.  "equivalentConcept" now gaining traction.   The datatype would need to be Coding, as a code on it's own is meaningless.