curl -X POST "https://api.omophub.com/v1/concepts/map/batch" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mapping_requests": [
{
"request_id": "diabetes_icd10",
"source_concepts": [201826, 443735],
"target_vocabulary": "ICD10CM"
},
{
"request_id": "hypertension_snomed",
"source_concepts": [4182210],
"target_vocabulary": "SNOMED"
}
]
}'
import { OMOPHub } from '@omophub/omophub-node';
// Not yet exposed as a dedicated SDK method - use the typed low-level helper.
// (For single-batch mapping, `client.mappings.map({ sourceConcepts, targetVocabulary })`
// is the dedicated method.)
const client = new OMOPHub();
interface BatchMapResult {
request_id: string;
success: boolean;
target_vocabulary: string;
mappings: unknown[];
error?: string;
}
const { data } = await client.post<BatchMapResult[]>('/concepts/map/batch', {
mapping_requests: [
{ request_id: 'diabetes_icd10', source_concepts: [201826, 443735], target_vocabulary: 'ICD10CM' },
{ request_id: 'hypertension_snomed', source_concepts: [4182210], target_vocabulary: 'SNOMED' },
],
});
for (const item of data ?? []) {
console.log(`Request ${item.request_id}: ${item.success ? 'Success' : 'Failed'}`);
if (item.success) {
console.log(` Found ${item.mappings.length} mappings to ${item.target_vocabulary}`);
} else {
console.log(` Error: ${item.error}`);
}
}
import requests
response = requests.post(
"https://api.omophub.com/v1/concepts/map/batch",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"mapping_requests": [
{
"request_id": "diabetes_icd10",
"source_concepts": [201826, 443735],
"target_vocabulary": "ICD10CM"
},
{
"request_id": "hypertension_snomed",
"source_concepts": [4182210],
"target_vocabulary": "SNOMED"
}
]
}
)
result = response.json()
for item in result["data"]:
status = "Success" if item["success"] else "Failed"
print(f"Request {item['request_id']}: {status}")
if item["success"]:
print(f" Found {len(item['mappings'])} mappings to {item['target_vocabulary']}")
else:
print(f" Error: {item['error']}")
{
"success": true,
"data": [
{
"request_id": "diabetes_icd10",
"source_concepts": [201826, 443735],
"target_vocabulary": "ICD10CM",
"mappings": [
{
"source_concept_id": 201826,
"target_concept_id": 443735,
"target_concept_name": "Type 2 diabetes mellitus without complications",
"target_concept_code": "E11.9",
"relationship_id": "Maps to"
}
],
"success": true,
"error": null,
"request_index": 0
},
{
"request_id": "hypertension_snomed",
"source_concepts": [4182210],
"target_vocabulary": "SNOMED",
"mappings": [
{
"source_concept_id": 4182210,
"target_concept_id": 316866,
"target_concept_name": "Hypertensive disorder",
"target_concept_code": "38341003",
"relationship_id": "Maps to"
}
],
"success": true,
"error": null,
"request_index": 1
}
],
"meta": {
"request_id": "req_batch_abc123",
"timestamp": "2024-12-22T10:00:00Z",
"vocab_release": "2025.2"
}
}
Batch Map Concepts
Perform multiple OMOP concept mapping operations in a single batched request - high-throughput cross-vocabulary translation for ETL pipelines.
curl -X POST "https://api.omophub.com/v1/concepts/map/batch" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mapping_requests": [
{
"request_id": "diabetes_icd10",
"source_concepts": [201826, 443735],
"target_vocabulary": "ICD10CM"
},
{
"request_id": "hypertension_snomed",
"source_concepts": [4182210],
"target_vocabulary": "SNOMED"
}
]
}'
import { OMOPHub } from '@omophub/omophub-node';
// Not yet exposed as a dedicated SDK method - use the typed low-level helper.
// (For single-batch mapping, `client.mappings.map({ sourceConcepts, targetVocabulary })`
// is the dedicated method.)
const client = new OMOPHub();
interface BatchMapResult {
request_id: string;
success: boolean;
target_vocabulary: string;
mappings: unknown[];
error?: string;
}
const { data } = await client.post<BatchMapResult[]>('/concepts/map/batch', {
mapping_requests: [
{ request_id: 'diabetes_icd10', source_concepts: [201826, 443735], target_vocabulary: 'ICD10CM' },
{ request_id: 'hypertension_snomed', source_concepts: [4182210], target_vocabulary: 'SNOMED' },
],
});
for (const item of data ?? []) {
console.log(`Request ${item.request_id}: ${item.success ? 'Success' : 'Failed'}`);
if (item.success) {
console.log(` Found ${item.mappings.length} mappings to ${item.target_vocabulary}`);
} else {
console.log(` Error: ${item.error}`);
}
}
import requests
response = requests.post(
"https://api.omophub.com/v1/concepts/map/batch",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"mapping_requests": [
{
"request_id": "diabetes_icd10",
"source_concepts": [201826, 443735],
"target_vocabulary": "ICD10CM"
},
{
"request_id": "hypertension_snomed",
"source_concepts": [4182210],
"target_vocabulary": "SNOMED"
}
]
}
)
result = response.json()
for item in result["data"]:
status = "Success" if item["success"] else "Failed"
print(f"Request {item['request_id']}: {status}")
if item["success"]:
print(f" Found {len(item['mappings'])} mappings to {item['target_vocabulary']}")
else:
print(f" Error: {item['error']}")
{
"success": true,
"data": [
{
"request_id": "diabetes_icd10",
"source_concepts": [201826, 443735],
"target_vocabulary": "ICD10CM",
"mappings": [
{
"source_concept_id": 201826,
"target_concept_id": 443735,
"target_concept_name": "Type 2 diabetes mellitus without complications",
"target_concept_code": "E11.9",
"relationship_id": "Maps to"
}
],
"success": true,
"error": null,
"request_index": 0
},
{
"request_id": "hypertension_snomed",
"source_concepts": [4182210],
"target_vocabulary": "SNOMED",
"mappings": [
{
"source_concept_id": 4182210,
"target_concept_id": 316866,
"target_concept_name": "Hypertensive disorder",
"target_concept_code": "38341003",
"relationship_id": "Maps to"
}
],
"success": true,
"error": null,
"request_index": 1
}
],
"meta": {
"request_id": "req_batch_abc123",
"timestamp": "2024-12-22T10:00:00Z",
"vocab_release": "2025.2"
}
}
Overview
This endpoint allows you to perform multiple concept mapping operations in a single API call. Each mapping request maps a set of source concepts to a target vocabulary, enabling efficient bulk processing.Request Body
array
required
Mapping batches are capped at 50 requests because each request can contain
multiple
source_concepts and performs mapping work for every source concept.
Hierarchy and relationship batches allow 100 entries because each entry
addresses one concept.Query Parameters
string
Specific vocabulary release version (e.g., “2025.1”)
Response
boolean
required
Indicates if the batch request was processed successfully
array
required
Array of mapping results matching the input order
Show data
Show data
string
The request ID provided in the input
array
Array of source concept IDs that were mapped
string
The target vocabulary for this mapping request
array
Array of concept mappings found
boolean
Whether this individual mapping request succeeded
string
Error message if the mapping request failed (null if successful)
integer
Index of this request in the original input array
object
required
curl -X POST "https://api.omophub.com/v1/concepts/map/batch" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mapping_requests": [
{
"request_id": "diabetes_icd10",
"source_concepts": [201826, 443735],
"target_vocabulary": "ICD10CM"
},
{
"request_id": "hypertension_snomed",
"source_concepts": [4182210],
"target_vocabulary": "SNOMED"
}
]
}'
import { OMOPHub } from '@omophub/omophub-node';
// Not yet exposed as a dedicated SDK method - use the typed low-level helper.
// (For single-batch mapping, `client.mappings.map({ sourceConcepts, targetVocabulary })`
// is the dedicated method.)
const client = new OMOPHub();
interface BatchMapResult {
request_id: string;
success: boolean;
target_vocabulary: string;
mappings: unknown[];
error?: string;
}
const { data } = await client.post<BatchMapResult[]>('/concepts/map/batch', {
mapping_requests: [
{ request_id: 'diabetes_icd10', source_concepts: [201826, 443735], target_vocabulary: 'ICD10CM' },
{ request_id: 'hypertension_snomed', source_concepts: [4182210], target_vocabulary: 'SNOMED' },
],
});
for (const item of data ?? []) {
console.log(`Request ${item.request_id}: ${item.success ? 'Success' : 'Failed'}`);
if (item.success) {
console.log(` Found ${item.mappings.length} mappings to ${item.target_vocabulary}`);
} else {
console.log(` Error: ${item.error}`);
}
}
import requests
response = requests.post(
"https://api.omophub.com/v1/concepts/map/batch",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"mapping_requests": [
{
"request_id": "diabetes_icd10",
"source_concepts": [201826, 443735],
"target_vocabulary": "ICD10CM"
},
{
"request_id": "hypertension_snomed",
"source_concepts": [4182210],
"target_vocabulary": "SNOMED"
}
]
}
)
result = response.json()
for item in result["data"]:
status = "Success" if item["success"] else "Failed"
print(f"Request {item['request_id']}: {status}")
if item["success"]:
print(f" Found {len(item['mappings'])} mappings to {item['target_vocabulary']}")
else:
print(f" Error: {item['error']}")
{
"success": true,
"data": [
{
"request_id": "diabetes_icd10",
"source_concepts": [201826, 443735],
"target_vocabulary": "ICD10CM",
"mappings": [
{
"source_concept_id": 201826,
"target_concept_id": 443735,
"target_concept_name": "Type 2 diabetes mellitus without complications",
"target_concept_code": "E11.9",
"relationship_id": "Maps to"
}
],
"success": true,
"error": null,
"request_index": 0
},
{
"request_id": "hypertension_snomed",
"source_concepts": [4182210],
"target_vocabulary": "SNOMED",
"mappings": [
{
"source_concept_id": 4182210,
"target_concept_id": 316866,
"target_concept_name": "Hypertensive disorder",
"target_concept_code": "38341003",
"relationship_id": "Maps to"
}
],
"success": true,
"error": null,
"request_index": 1
}
],
"meta": {
"request_id": "req_batch_abc123",
"timestamp": "2024-12-22T10:00:00Z",
"vocab_release": "2025.2"
}
}
Important Notes
- Batch size limit: Maximum 50 mapping requests per batch
- Error isolation: Individual mapping failures don’t affect other mappings in the batch
- Result ordering: Results are returned in the same order as input requests
- Request IDs: Use unique
request_idvalues to correlate results with your input
Related Endpoints
- Get Concept Mappings - Get mappings for a single concept
- Validate Mappings - Validate existing mappings
Was this page helpful?