Skip to main content
curl -X POST "https://api.omophub.com/v1/search/bulk?processing_mode=parallel&include_query_stats=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": [
      {
        "query_id": "q1",
        "query": "diabetes",
        "vocabulary_ids": "SNOMED,ICD10CM",
        "domains": "Condition",
        "max_results": 5
      },
      {
        "query_id": "q2", 
        "query": "hypertension",
        "vocabulary_ids": "SNOMED",
        "search_type": "fuzzy",
        "max_results": 10
      },
      {
        "query_id": "q3",
        "query": "cardiac catheterization",
        "domains": "Procedure",
        "include_synonyms": true,
        "max_results": 3
      }
    ]
  }'
{
  "success": true,
  "data": {
    "batch_id": "batch_search_123456",
    "processing_summary": {
      "total_queries": 3,
      "successful_queries": 3,
      "failed_queries": 0,
      "processing_time_ms": 2847,
      "average_query_time_ms": 949.0,
      "total_results_found": 28
    },
    "query_results": [
      {
        "query_id": "q1",
        "query": "diabetes",
        "status": "success",
        "results_count": 12,
        "processing_time_ms": 856,
        "concepts": [
          {
            "concept_id": 201826,
            "concept_name": "Type 2 diabetes mellitus",
            "concept_code": "44054006",
            "vocabulary_id": "SNOMED",
            "domain_id": "Condition",
            "concept_class_id": "Clinical Finding",
            "standard_concept": "S",
            "relevance_score": 0.95,
            "match_type": "exact",
            "matched_term": "diabetes mellitus"
          },
          {
            "concept_id": 4000678,
            "concept_name": "Diabetes mellitus",
            "concept_code": "73211009",
            "vocabulary_id": "SNOMED",
            "domain_id": "Condition",
            "concept_class_id": "Clinical Finding",
            "standard_concept": "S",
            "relevance_score": 0.92,
            "match_type": "partial",
            "matched_term": "diabetes"
          },
          {
            "concept_id": 435216,
            "concept_name": "Type 2 diabetes mellitus",
            "concept_code": "E11",
            "vocabulary_id": "ICD10CM",
            "domain_id": "Condition",
            "concept_class_id": "3-char billing code",
            "standard_concept": "S",
            "relevance_score": 0.89,
            "match_type": "exact",
            "matched_term": "diabetes mellitus"
          }
        ],
        "query_stats": {
          "index_lookup_time_ms": 234,
          "scoring_time_ms": 456,
          "total_candidates": 1247,
          "filtered_candidates": 87,
          "cache_hit": false
        }
      },
      {
        "query_id": "q2",
        "query": "hypertension",
        "status": "success",
        "results_count": 8,
        "processing_time_ms": 1034,
        "concepts": [
          {
            "concept_id": 320128,
            "concept_name": "Essential hypertension",
            "concept_code": "59621000",
            "vocabulary_id": "SNOMED",
            "domain_id": "Condition",
            "concept_class_id": "Clinical Finding",
            "standard_concept": "S",
            "relevance_score": 0.98,
            "match_type": "fuzzy",
            "matched_term": "hypertension"
          },
          {
            "concept_id": 316866,
            "concept_name": "Hypertensive disorder",
            "concept_code": "38341003",
            "vocabulary_id": "SNOMED",
            "domain_id": "Condition",
            "concept_class_id": "Clinical Finding",
            "standard_concept": "S",
            "relevance_score": 0.94,
            "match_type": "partial",
            "matched_term": "hypertensive"
          }
        ],
        "query_stats": {
          "index_lookup_time_ms": 345,
          "scoring_time_ms": 567,
          "total_candidates": 934,
          "filtered_candidates": 65,
          "cache_hit": false
        }
      },
      {
        "query_id": "q3",
        "query": "cardiac catheterization",
        "status": "success",
        "results_count": 8,
        "processing_time_ms": 957,
        "concepts": [
          {
            "concept_id": 4006969,
            "concept_name": "Cardiac catheterization",
            "concept_code": "41976001",
            "vocabulary_id": "SNOMED",
            "domain_id": "Procedure",
            "concept_class_id": "Procedure",
            "standard_concept": "S",
            "relevance_score": 1.0,
            "match_type": "exact",
            "matched_term": "cardiac catheterization"
          },
          {
            "concept_id": 4139525,
            "concept_name": "Left heart cardiac catheterization",
            "concept_code": "309814006",
            "vocabulary_id": "SNOMED",
            "domain_id": "Procedure",
            "concept_class_id": "Procedure",
            "standard_concept": "S",
            "relevance_score": 0.91,
            "match_type": "partial",
            "matched_term": "cardiac catheterization"
          },
          {
            "concept_id": 4273391,
            "concept_name": "Right heart cardiac catheterization",
            "concept_code": "609096002",
            "vocabulary_id": "SNOMED",
            "domain_id": "Procedure",
            "concept_class_id": "Procedure",
            "standard_concept": "S",
            "relevance_score": 0.89,
            "match_type": "partial",
            "matched_term": "cardiac catheterization"
          }
        ],
        "query_stats": {
          "index_lookup_time_ms": 123,
          "scoring_time_ms": 234,
          "total_candidates": 456,
          "filtered_candidates": 23,
          "cache_hit": true
        }
      }
    ],
    "consolidated_results": [
      {
        "concept_id": 201826,
        "concept_name": "Type 2 diabetes mellitus",
        "concept_code": "44054006",
        "vocabulary_id": "SNOMED",
        "domain_id": "Condition",
        "max_relevance_score": 0.95,
        "query_matches": ["q1"],
        "match_frequency": 1
      },
      {
        "concept_id": 320128,
        "concept_name": "Essential hypertension",
        "concept_code": "59621000",
        "vocabulary_id": "SNOMED",
        "domain_id": "Condition",
        "max_relevance_score": 0.98,
        "query_matches": ["q2"],
        "match_frequency": 1
      },
      {
        "concept_id": 4006969,
        "concept_name": "Cardiac catheterization",
        "concept_code": "41976001",
        "vocabulary_id": "SNOMED",
        "domain_id": "Procedure",
        "max_relevance_score": 1.0,
        "query_matches": ["q3"],
        "match_frequency": 1
      }
    ],
    "failed_queries": []
  },
  "meta": {
    "request_id": "req_bulk_search_123",
    "timestamp": "2024-01-15T10:30:00Z",
    "processing_mode": "parallel",
    "batch_size": 3,
    "success_rate": 100.0,
    "vocab_release": "2025.2"
  }
}

Overview

This endpoint allows you to submit multiple search queries in a single request, enabling efficient batch processing of search operations. It’s ideal for applications that need to search for many terms simultaneously, such as data processing pipelines, bulk concept mapping, or batch validation workflows.

Request Body

queries
array
required
Array of search query objects

Query Parameters

processing_mode
string
default:"parallel"
Processing mode for queries
Options: parallel, sequential, adaptive
consolidate_results
boolean
default:"false"
Merge similar results across queries
include_query_stats
boolean
default:"false"
Include performance statistics for each query
failure_handling
string
default:"continue"
How to handle individual query failures
Options: continue, stop_on_first, stop_on_threshold
failure_threshold
integer
default:"0"
Maximum number of failed queries before stopping batch processing. Only used when failure_handling is set to stop_on_threshold.
Valid range: Zero or greater
Behavior: Zero disables the threshold. Any positive value activates the threshold.
Represents the absolute count of failures allowed.
timeout_seconds
integer
default:"30"
Maximum processing time for the entire batch (max 300)
priority
string
default:"normal"
Processing priority
Options: low, normal, high, urgent
vocab_release
string
Specific vocabulary release version (defaults to latest)

Response

success
boolean
Indicates if the batch request was successful
data
object
meta
object
curl -X POST "https://api.omophub.com/v1/search/bulk?processing_mode=parallel&include_query_stats=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": [
      {
        "query_id": "q1",
        "query": "diabetes",
        "vocabulary_ids": "SNOMED,ICD10CM",
        "domains": "Condition",
        "max_results": 5
      },
      {
        "query_id": "q2", 
        "query": "hypertension",
        "vocabulary_ids": "SNOMED",
        "search_type": "fuzzy",
        "max_results": 10
      },
      {
        "query_id": "q3",
        "query": "cardiac catheterization",
        "domains": "Procedure",
        "include_synonyms": true,
        "max_results": 3
      }
    ]
  }'
{
  "success": true,
  "data": {
    "batch_id": "batch_search_123456",
    "processing_summary": {
      "total_queries": 3,
      "successful_queries": 3,
      "failed_queries": 0,
      "processing_time_ms": 2847,
      "average_query_time_ms": 949.0,
      "total_results_found": 28
    },
    "query_results": [
      {
        "query_id": "q1",
        "query": "diabetes",
        "status": "success",
        "results_count": 12,
        "processing_time_ms": 856,
        "concepts": [
          {
            "concept_id": 201826,
            "concept_name": "Type 2 diabetes mellitus",
            "concept_code": "44054006",
            "vocabulary_id": "SNOMED",
            "domain_id": "Condition",
            "concept_class_id": "Clinical Finding",
            "standard_concept": "S",
            "relevance_score": 0.95,
            "match_type": "exact",
            "matched_term": "diabetes mellitus"
          },
          {
            "concept_id": 4000678,
            "concept_name": "Diabetes mellitus",
            "concept_code": "73211009",
            "vocabulary_id": "SNOMED",
            "domain_id": "Condition",
            "concept_class_id": "Clinical Finding",
            "standard_concept": "S",
            "relevance_score": 0.92,
            "match_type": "partial",
            "matched_term": "diabetes"
          },
          {
            "concept_id": 435216,
            "concept_name": "Type 2 diabetes mellitus",
            "concept_code": "E11",
            "vocabulary_id": "ICD10CM",
            "domain_id": "Condition",
            "concept_class_id": "3-char billing code",
            "standard_concept": "S",
            "relevance_score": 0.89,
            "match_type": "exact",
            "matched_term": "diabetes mellitus"
          }
        ],
        "query_stats": {
          "index_lookup_time_ms": 234,
          "scoring_time_ms": 456,
          "total_candidates": 1247,
          "filtered_candidates": 87,
          "cache_hit": false
        }
      },
      {
        "query_id": "q2",
        "query": "hypertension",
        "status": "success",
        "results_count": 8,
        "processing_time_ms": 1034,
        "concepts": [
          {
            "concept_id": 320128,
            "concept_name": "Essential hypertension",
            "concept_code": "59621000",
            "vocabulary_id": "SNOMED",
            "domain_id": "Condition",
            "concept_class_id": "Clinical Finding",
            "standard_concept": "S",
            "relevance_score": 0.98,
            "match_type": "fuzzy",
            "matched_term": "hypertension"
          },
          {
            "concept_id": 316866,
            "concept_name": "Hypertensive disorder",
            "concept_code": "38341003",
            "vocabulary_id": "SNOMED",
            "domain_id": "Condition",
            "concept_class_id": "Clinical Finding",
            "standard_concept": "S",
            "relevance_score": 0.94,
            "match_type": "partial",
            "matched_term": "hypertensive"
          }
        ],
        "query_stats": {
          "index_lookup_time_ms": 345,
          "scoring_time_ms": 567,
          "total_candidates": 934,
          "filtered_candidates": 65,
          "cache_hit": false
        }
      },
      {
        "query_id": "q3",
        "query": "cardiac catheterization",
        "status": "success",
        "results_count": 8,
        "processing_time_ms": 957,
        "concepts": [
          {
            "concept_id": 4006969,
            "concept_name": "Cardiac catheterization",
            "concept_code": "41976001",
            "vocabulary_id": "SNOMED",
            "domain_id": "Procedure",
            "concept_class_id": "Procedure",
            "standard_concept": "S",
            "relevance_score": 1.0,
            "match_type": "exact",
            "matched_term": "cardiac catheterization"
          },
          {
            "concept_id": 4139525,
            "concept_name": "Left heart cardiac catheterization",
            "concept_code": "309814006",
            "vocabulary_id": "SNOMED",
            "domain_id": "Procedure",
            "concept_class_id": "Procedure",
            "standard_concept": "S",
            "relevance_score": 0.91,
            "match_type": "partial",
            "matched_term": "cardiac catheterization"
          },
          {
            "concept_id": 4273391,
            "concept_name": "Right heart cardiac catheterization",
            "concept_code": "609096002",
            "vocabulary_id": "SNOMED",
            "domain_id": "Procedure",
            "concept_class_id": "Procedure",
            "standard_concept": "S",
            "relevance_score": 0.89,
            "match_type": "partial",
            "matched_term": "cardiac catheterization"
          }
        ],
        "query_stats": {
          "index_lookup_time_ms": 123,
          "scoring_time_ms": 234,
          "total_candidates": 456,
          "filtered_candidates": 23,
          "cache_hit": true
        }
      }
    ],
    "consolidated_results": [
      {
        "concept_id": 201826,
        "concept_name": "Type 2 diabetes mellitus",
        "concept_code": "44054006",
        "vocabulary_id": "SNOMED",
        "domain_id": "Condition",
        "max_relevance_score": 0.95,
        "query_matches": ["q1"],
        "match_frequency": 1
      },
      {
        "concept_id": 320128,
        "concept_name": "Essential hypertension",
        "concept_code": "59621000",
        "vocabulary_id": "SNOMED",
        "domain_id": "Condition",
        "max_relevance_score": 0.98,
        "query_matches": ["q2"],
        "match_frequency": 1
      },
      {
        "concept_id": 4006969,
        "concept_name": "Cardiac catheterization",
        "concept_code": "41976001",
        "vocabulary_id": "SNOMED",
        "domain_id": "Procedure",
        "max_relevance_score": 1.0,
        "query_matches": ["q3"],
        "match_frequency": 1
      }
    ],
    "failed_queries": []
  },
  "meta": {
    "request_id": "req_bulk_search_123",
    "timestamp": "2024-01-15T10:30:00Z",
    "processing_mode": "parallel",
    "batch_size": 3,
    "success_rate": 100.0,
    "vocab_release": "2025.2"
  }
}

Usage Examples

Search multiple terms simultaneously:
curl -X POST "https://api.omophub.com/v1/search/bulk" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": [
      {"query_id": "q1", "query": "diabetes", "max_results": 5},
      {"query_id": "q2", "query": "hypertension", "max_results": 5},
      {"query_id": "q3", "query": "asthma", "max_results": 5}
    ]
  }'

Advanced Bulk Search with Different Parameters

Use different search parameters for each query:
curl -X POST "https://api.omophub.com/v1/search/bulk?include_query_stats=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": [
      {
        "query_id": "exact_diabetes",
        "query": "diabetes mellitus",
        "search_type": "exact",
        "vocabulary_ids": "SNOMED",
        "max_results": 10
      },
      {
        "query_id": "fuzzy_pneumonia",
        "query": "pnemonia",
        "search_type": "fuzzy",
        "domains": "Condition",
        "max_results": 5
      },
      {
        "query_id": "semantic_surgery",
        "query": "surgical procedure",
        "search_type": "semantic",
        "domains": "Procedure",
        "max_results": 8
      }
    ]
  }'

High-Volume Processing

Process large batches with optimized settings:
curl -X POST "https://api.omophub.com/v1/search/bulk?processing_mode=parallel&timeout_seconds=120&priority=high" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d @bulk_queries.json

Consolidated Results

Get merged results across all queries:
curl -X POST "https://api.omophub.com/v1/search/bulk?consolidate_results=true&processing_mode=adaptive" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": [
      {"query_id": "q1", "query": "heart attack", "max_results": 10},
      {"query_id": "q2", "query": "myocardial infarction", "max_results": 10},
      {"query_id": "q3", "query": "MI", "max_results": 10}
    ]
  }'

Error Handling

Configure how to handle query failures:
curl -X POST "https://api.omophub.com/v1/search/bulk?failure_handling=continue&include_query_stats=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": [
      {"query_id": "valid", "query": "diabetes", "max_results": 5},
      {"query_id": "invalid", "query": "", "max_results": 5},
      {"query_id": "complex", "query": "very complex medical condition", "search_type": "semantic", "max_results": 10}
    ]
  }'

Processing Modes

Parallel Processing

  • Description: Execute all queries simultaneously
  • Benefits: Fastest processing for independent queries
  • Best For: Small to medium batches (less than 100 queries)
  • Trade-offs: Higher resource usage

Sequential Processing

  • Description: Execute queries one at a time
  • Benefits: Lower resource usage, predictable performance
  • Best For: Large batches, resource-constrained environments
  • Trade-offs: Slower overall processing time

Adaptive Processing

  • Description: Automatically choose optimal processing strategy
  • Benefits: Balances speed and resource usage
  • Best For: Variable query complexity, mixed batch sizes
  • Trade-offs: Slight overhead for decision making

Search Types in Bulk Operations

  • Performance: Fastest processing
  • Accuracy: Highest precision
  • Use Case: Known terms, validation workflows
  • Performance: Moderate processing time
  • Accuracy: Handles typos and variations
  • Use Case: User input, OCR text processing
  • Performance: Slower processing
  • Accuracy: Contextual understanding
  • Use Case: Natural language queries, concept discovery
  • Performance: Moderate processing time
  • Accuracy: Handles pronunciation variations
  • Use Case: Voice input, international terms

Optimization Strategies

Query Grouping

  • Group Similar Vocabularies: Combine queries targeting same vocabularies
  • Domain Clustering: Group queries by medical domain
  • Search Type Batching: Batch similar search types together

Performance Tuning

  • Limit Results: Use appropriate max_results values
  • Score Thresholds: Set min_score to filter low-quality matches
  • Vocabulary Selection: Limit to relevant vocabularies only

Resource Management

  • Batch Size: Optimal batch size is 10-50 queries
  • Timeout Settings: Allow sufficient time for complex queries
  • Priority Levels: Use higher priority for time-sensitive requests

Error Handling Strategies

  • Continue on Error: Process all valid queries despite failures
  • Fail Fast: Stop processing on first error for validation workflows
  • Threshold-based: Stop when error rate exceeds acceptable level
I