Mappable Concept
Note
This data class is at a trial use maturity level and may change in future releases. Maturity levels are described in the maturity-model.
Computational Definition
A concept based on a primaryCoding and/or name that may be mapped to one or more other Codings.
Information Model
Some MappableConcept attributes are inherited from Element.
Field |
Flags |
Type |
Limits |
Description |
|---|---|---|---|---|
id |
string |
0..1 |
The ‘logical’ identifier of the data element in the system of record, e.g. a UUID. This ‘id’ is unique within a given system, but may or may not be globally unique outside the system. It is used within a system to reference an object from another. |
|
extensions |
⋮ | 0..m |
A list of extensions to the Entity, that allow for capture of information not directly supported by elements defined in the model. |
|
conceptType |
string |
0..1 |
A term indicating the type of concept being represented by the MappableConcept. |
|
name |
string |
0..1 |
A primary name for the concept. |
|
primaryCoding |
0..1 |
A primary coding for the concept. |
||
mappings |
⋮ | 0..m |
A list of mappings to concepts in terminologies or code systems. Each mapping should include a coding and a relation. |
Data Examples
Representation of the Condition ‘Lung Adenocarcinoma’ using a CIViC code in the
primaryCoding, with three mappings to exact matches in external terminologies.
conditionQualifier:
conceptType: Condition # optional. a term describing the high level category of concept the MappableConcept object represents
id: null # optional. id is optional. can be used if data provider wants / feels it is necessary to give the MappableConcept object itself a unique internal/local identifier for tracking the object in the message / system.
name: null # required (if no `primaryCoding`). used only in cases where there is no code for the concept. When there is a code, the name should be captured in the Coding that holds it.
primaryCoding: # required (if no `name`). Takes a Coding object that holds the code considered primary - i.e. the primary representation defined or used in the data provider's system.
code: civic.did:30 # required. symbol for the code in syntax defined the providing system indicated in the 'system' attribute. e.g. civic.did:30, MONDO:005061, C3512 are all possible codes for representing the concept of 'lung adenocarcinoma'.
name: Lung Adenocarcinoma # optional. preferred name for the concept in the source code system (MONDO in this case).
system: https://civicdb.org # required. takes a free text name or iri representing the code system (where an iri exists - could be a url for a homepage about it, or location for accessing content of the system)
systemVersion: 2 # optional. version of the code system in whatever format the system uses.
iris: # optional. iris for the concept represented by the code - typically resolvable urls for web pages where information about the concept and its code can be found. Can be iris from the source code system, or from other systems that provide an iri or url with info about the concept.
- https://civicdb.org/diseases/30
mappings: # optional (mappings are optional). other codes for the concept that the data provider wants to provide. Captured in ConceptMapping objects, which hold a Coding object and a relation term (explicit declarations of the mapping relation).
- coding: # required (must be provided in any ConceptMapping). A Coding for the concept, here the MONDO code as obtained from the OBO Foundry / Ontobee service
code: MONDO:0005061
name: lung adenocarcinoma
system: https://ontobee.org/ontology/MONDO
systemVersion: 2025-02-04
iris:
- http://purl.obolibrary.org/obo/MONDO_0005061
relation: exactMatch # required (must be provided in any ConceptMapping). Permissible values come from the 'mapping relation' branch of the skos ontology.
- coding: # Coding for the NCIT Code as obtained from the original source NCIT Browser at https://ncithesaurus.nci.nih.gov/ncitbrowser/ConceptReport.jsp?dictionary=NCI_Thesaurus&code=C3512
code: C3512 # The NCIT browser/source doesn't natively use a curie-like representation
name: Lung Adenocarcinoma
system: https://ncithesaurus.nci.nih.gov/ # NCI Thesaurus (NCIT)
iris:
- https://ncithesaurus.nci.nih.gov/ncitbrowser/ConceptReport.jsp?dictionary=NCI_Thesaurus&code=C3512
relation: exactMatch
- coding: # Coding for the MeSH code as obtained from MeSH Browser at https://id.nlm.nih.gov/mesh/C538231
code: C538231 # The MeSH system doesn't natively use a curie-like representation
name: Adenocarcinoma of Lung
system: https://id.nlm.nih.gov/mesh/ # Medical Subject Headings (MeSH)
iris:
- https://id.nlm.nih.gov/mesh/C538231
relation: exactMatch
Another example illustrating a MappableConcept representing a Gene can be found here.
Implementation Guidance
- Selecting a
primaryCodingvalue
The
primaryCodingis intended to hold a code that is considered the primary representation of the concept, as defined or used in the data provider’s system.This may be an internal/local code or identifier that is used to reference the concept, or a public code (e.g from a community ontology) that the system adopts for internal use.
For example, the following are all possible primary codes can could be used to represent ‘lung adenocarcinoma’ within a primary Coding.
civic.did:30: a local code defined by the data provider (CIViC)
MONDO:005061: a namespaced CURIE from a community ontology (MONDO)
C3512: a code without a namespace from the NCI Thesaurus.In all cases the source of the code should be reported in the
Coding.systemattribute.
- Populating the
nameattribute
Either a
nameor aprimaryCodingis required in everyMappableConceptobject.Use
MappableConcept.namein cases where there is no code used by the data provider’s system for the concept.When there is a code, the name associated with it should be captured within the Coding that holds this primary code, rather than in the
MappableConcept.nameattribute.