curl -X POST "https://api.omophub.com/v1/concepts/map" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_codes": [
{"vocabulary_id": "ICD10CM", "concept_code": "E11.9"},
{"vocabulary_id": "ICD10CM", "concept_code": "I21.9"}
],
"target_vocabulary": "SNOMED",
"mapping_type": "direct"
}'
curl -X POST "https://api.omophub.com/v1/concepts/map" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_concepts": [45576876, 45591524],
"target_vocabulary": "SNOMED",
"mapping_type": "direct",
"include_invalid": false
}'
import { OMOPHub } from '@omophub/omophub-node';
const client = new OMOPHub();
// Map ICD-10 codes to SNOMED. `sourceCodes` and `sourceConcepts` are XOR
// (use one or the other, never both).
const { data } = await client.mappings.map({
sourceCodes: [
{ vocabulary_id: 'ICD10CM', concept_code: 'E11.9' },
{ vocabulary_id: 'ICD10CM', concept_code: 'I21.9' },
],
targetVocabulary: 'SNOMED',
mappingType: 'direct',
});
import requests
url = "https://api.omophub.com/v1/concepts/map"
# Map ICD-10 codes to SNOMED standard concepts
payload = {
"source_codes": [
{"vocabulary_id": "ICD10CM", "concept_code": "E11.9"},
{"vocabulary_id": "ICD10CM", "concept_code": "I21.9"}
],
"target_vocabulary": "SNOMED",
"mapping_type": "direct"
}
response = requests.post(
url,
json=payload,
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
data = response.json()
{
"success": true,
"data": {
"mappings": [
{
"source_concept_id": 45576876,
"source_concept_name": "Type 2 diabetes mellitus without complications",
"source_concept_code": "E11.9",
"source_vocabulary_id": "ICD10CM",
"target_concept_id": 201826,
"target_concept_name": "Type 2 diabetes mellitus",
"target_concept_code": "44054006",
"target_vocabulary_id": "SNOMED",
"relationship_id": "Maps to",
"relationship_name": "Maps to",
"valid_start_date": "2023-01-01",
"valid_end_date": "2099-12-31",
"invalid_reason": null,
"mapping_confidence": 1.0,
"mapping_type": "direct"
},
{
"source_concept_id": 45591524,
"source_concept_name": "Acute myocardial infarction, unspecified",
"source_concept_code": "I21.9",
"source_vocabulary_id": "ICD10CM",
"target_concept_id": 4329847,
"target_concept_name": "Myocardial infarction",
"target_concept_code": "22298006",
"target_vocabulary_id": "SNOMED",
"relationship_id": "Maps to",
"relationship_name": "Maps to",
"valid_start_date": "2023-01-01",
"valid_end_date": "2099-12-31",
"invalid_reason": null,
"mapping_confidence": 1.0,
"mapping_type": "direct"
}
]
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2025-01-05T12:00:00.000Z",
"vocab_release": "2025.1"
}
}
Map Concepts
Map medical concepts between OMOP vocabularies to find equivalent or related concepts across SNOMED, ICD-10, LOINC, RxNorm, and other terminologies.
curl -X POST "https://api.omophub.com/v1/concepts/map" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_codes": [
{"vocabulary_id": "ICD10CM", "concept_code": "E11.9"},
{"vocabulary_id": "ICD10CM", "concept_code": "I21.9"}
],
"target_vocabulary": "SNOMED",
"mapping_type": "direct"
}'
curl -X POST "https://api.omophub.com/v1/concepts/map" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_concepts": [45576876, 45591524],
"target_vocabulary": "SNOMED",
"mapping_type": "direct",
"include_invalid": false
}'
import { OMOPHub } from '@omophub/omophub-node';
const client = new OMOPHub();
// Map ICD-10 codes to SNOMED. `sourceCodes` and `sourceConcepts` are XOR
// (use one or the other, never both).
const { data } = await client.mappings.map({
sourceCodes: [
{ vocabulary_id: 'ICD10CM', concept_code: 'E11.9' },
{ vocabulary_id: 'ICD10CM', concept_code: 'I21.9' },
],
targetVocabulary: 'SNOMED',
mappingType: 'direct',
});
import requests
url = "https://api.omophub.com/v1/concepts/map"
# Map ICD-10 codes to SNOMED standard concepts
payload = {
"source_codes": [
{"vocabulary_id": "ICD10CM", "concept_code": "E11.9"},
{"vocabulary_id": "ICD10CM", "concept_code": "I21.9"}
],
"target_vocabulary": "SNOMED",
"mapping_type": "direct"
}
response = requests.post(
url,
json=payload,
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
data = response.json()
{
"success": true,
"data": {
"mappings": [
{
"source_concept_id": 45576876,
"source_concept_name": "Type 2 diabetes mellitus without complications",
"source_concept_code": "E11.9",
"source_vocabulary_id": "ICD10CM",
"target_concept_id": 201826,
"target_concept_name": "Type 2 diabetes mellitus",
"target_concept_code": "44054006",
"target_vocabulary_id": "SNOMED",
"relationship_id": "Maps to",
"relationship_name": "Maps to",
"valid_start_date": "2023-01-01",
"valid_end_date": "2099-12-31",
"invalid_reason": null,
"mapping_confidence": 1.0,
"mapping_type": "direct"
},
{
"source_concept_id": 45591524,
"source_concept_name": "Acute myocardial infarction, unspecified",
"source_concept_code": "I21.9",
"source_vocabulary_id": "ICD10CM",
"target_concept_id": 4329847,
"target_concept_name": "Myocardial infarction",
"target_concept_code": "22298006",
"target_vocabulary_id": "SNOMED",
"relationship_id": "Maps to",
"relationship_name": "Maps to",
"valid_start_date": "2023-01-01",
"valid_end_date": "2099-12-31",
"invalid_reason": null,
"mapping_confidence": 1.0,
"mapping_type": "direct"
}
]
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2025-01-05T12:00:00.000Z",
"vocab_release": "2025.1"
}
}
Overview
This endpoint maps medical concepts from source vocabularies to target vocabularies, finding equivalent or related concepts across different medical terminology systems. It’s essential for healthcare data integration, cross-system interoperability, and clinical data standardization.Request Body
Query Parameters
Specific vocabulary release version to use for mapping (e.g., “2025.1”, “2024.2”).
When not specified, uses the default/latest vocabulary version.
Response
Indicates if the request was successful
Error information (present only on error responses)
Show error
Show error
Error code identifier (e.g., “INVALID_VOCABULARY”, “RATE_LIMIT_EXCEEDED”)
Human-readable error message
Contains the concept mapping results
Show data
Show data
Array of concept mappings found
Show mappings
Show mappings
OMOP concept ID of the source concept
Name of the source concept
Vocabulary of the source concept
OMOP concept ID of the mapped target concept
Name of the target concept
Vocabulary of the target concept
Original source code in the target vocabulary
Type of relationship between concepts
Human-readable relationship description
Confidence score for the mapping (0.0 to 1.0)
Start date when the mapping became valid
End date when the mapping expires
Original source code in the source vocabulary
Reason if the mapping is invalid, null otherwise
Classification of the mapping: direct, equivalent, broader, narrower, or related
curl -X POST "https://api.omophub.com/v1/concepts/map" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_codes": [
{"vocabulary_id": "ICD10CM", "concept_code": "E11.9"},
{"vocabulary_id": "ICD10CM", "concept_code": "I21.9"}
],
"target_vocabulary": "SNOMED",
"mapping_type": "direct"
}'
curl -X POST "https://api.omophub.com/v1/concepts/map" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_concepts": [45576876, 45591524],
"target_vocabulary": "SNOMED",
"mapping_type": "direct",
"include_invalid": false
}'
import { OMOPHub } from '@omophub/omophub-node';
const client = new OMOPHub();
// Map ICD-10 codes to SNOMED. `sourceCodes` and `sourceConcepts` are XOR
// (use one or the other, never both).
const { data } = await client.mappings.map({
sourceCodes: [
{ vocabulary_id: 'ICD10CM', concept_code: 'E11.9' },
{ vocabulary_id: 'ICD10CM', concept_code: 'I21.9' },
],
targetVocabulary: 'SNOMED',
mappingType: 'direct',
});
import requests
url = "https://api.omophub.com/v1/concepts/map"
# Map ICD-10 codes to SNOMED standard concepts
payload = {
"source_codes": [
{"vocabulary_id": "ICD10CM", "concept_code": "E11.9"},
{"vocabulary_id": "ICD10CM", "concept_code": "I21.9"}
],
"target_vocabulary": "SNOMED",
"mapping_type": "direct"
}
response = requests.post(
url,
json=payload,
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
data = response.json()
{
"success": true,
"data": {
"mappings": [
{
"source_concept_id": 45576876,
"source_concept_name": "Type 2 diabetes mellitus without complications",
"source_concept_code": "E11.9",
"source_vocabulary_id": "ICD10CM",
"target_concept_id": 201826,
"target_concept_name": "Type 2 diabetes mellitus",
"target_concept_code": "44054006",
"target_vocabulary_id": "SNOMED",
"relationship_id": "Maps to",
"relationship_name": "Maps to",
"valid_start_date": "2023-01-01",
"valid_end_date": "2099-12-31",
"invalid_reason": null,
"mapping_confidence": 1.0,
"mapping_type": "direct"
},
{
"source_concept_id": 45591524,
"source_concept_name": "Acute myocardial infarction, unspecified",
"source_concept_code": "I21.9",
"source_vocabulary_id": "ICD10CM",
"target_concept_id": 4329847,
"target_concept_name": "Myocardial infarction",
"target_concept_code": "22298006",
"target_vocabulary_id": "SNOMED",
"relationship_id": "Maps to",
"relationship_name": "Maps to",
"valid_start_date": "2023-01-01",
"valid_end_date": "2099-12-31",
"invalid_reason": null,
"mapping_confidence": 1.0,
"mapping_type": "direct"
}
]
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2025-01-05T12:00:00.000Z",
"vocab_release": "2025.1"
}
}
Understanding OMOP Mapping Direction
In OMOP, mappings go from non-standard concepts TO standard concepts. This means:
- ICD-10-CM → SNOMED works (ICD-10 is non-standard, SNOMED is standard)
- SNOMED → ICD-10-CM often returns empty (SNOMED concepts are already standard - they are mapping targets, not sources)
GET /v1/concepts/{id} to check the standard_concept field - if it’s "S", try mapping in the opposite direction.Usage Examples
ICD-10 to SNOMED (most common use case)
Map ICD-10-CM diagnosis codes to SNOMED standard concepts:{
"source_codes": [
{"vocabulary_id": "ICD10CM", "concept_code": "E11.9"},
{"vocabulary_id": "ICD10CM", "concept_code": "I21.9"}
],
"target_vocabulary": "SNOMED",
"mapping_type": "direct"
}
Cross-System Integration
Map multiple ICD-10 codes for EHR standardization:{
"source_codes": [
{"vocabulary_id": "ICD10CM", "concept_code": "E11.9"},
{"vocabulary_id": "ICD10CM", "concept_code": "I21.9"},
{"vocabulary_id": "ICD10CM", "concept_code": "J44.1"}
],
"target_vocabulary": "SNOMED",
"mapping_type": "direct",
"include_invalid": false
}
Drug Mapping
Map drug codes from NDC to RxNorm:{
"source_codes": [
{"vocabulary_id": "NDC", "concept_code": "00002-4462-30"},
{"vocabulary_id": "NDC", "concept_code": "00093-3147-01"}
],
"target_vocabulary": "RxNorm",
"mapping_type": "equivalent"
}
Using OMOP Concept IDs
If you already have OMOP concept IDs (e.g., from a search result), usesource_concepts instead of source_codes:
{
"source_concepts": [45576876, 45591524],
"target_vocabulary": "SNOMED",
"mapping_type": "direct"
}
The
source_concepts parameter expects OMOP concept IDs (internal database IDs), NOT vocabulary-specific codes.
If you have vocabulary codes (e.g., ICD-10 code “E11.9”), use the source_codes parameter instead,
or first look up the OMOP concept ID using /v1/concepts/by-code/{vocabulary}/{code}.Related Endpoints
- Batch Map Concepts - Batch mapping operations
- Get Concept Mappings - Get mappings for a specific concept
- Validate Mappings - Validate mapping accuracy
Was this page helpful?
⌘I