Skip to navigation

Introduction

What the IMO® Precision Normalize API does, and when to reach for it.

Clinical data arrives messy. The same condition shows up as chest pain, CP, R07.9, and Thoracic pain depending on which system produced it. Downstream analytics, quality measures, and risk models all need one canonical answer.

Precision Normalize resolves input terms or codes to IMO lexicals — common, clinically validated identifiers — and returns comprehensive mappings to the standard industry code systems your other systems already speak.

The two engines

Clinical domains

DomainTypical input
ProblemDiagnoses, conditions, symptoms
ProcedureSurgical and diagnostic procedures
MedicationDrug names, formulations
LabLab orders and results
AllergenAllergy substances and reactions
Anatomical SiteBody structures and locations
AutoLet IMO infer the domain from the input

How a request is shaped

Every call is a batch: one request carries up to 300 records, each with its own record_id so you can correlate results back to your rows.

{
"client_request_id": "batch-2026-08-31-001",
"preferences": { "threshold": 0.5, "size": 5 },
"requests": [
{ "record_id": "1", "domain": "Problem", "input_term": "chest pain" },
{ "record_id": "2", "domain": "Problem", "input_code": "R07.9",
"input_code_system": "ICD-10-CM" }
]
}
  • client_request_id — required. Your own identifier for the batch; echoed back in the response and useful when quoting a request to support.
  • preferences — optional matching controls. See Normalizing terms and codes.
  • requests[] — the records. Supply input_term for term-based matching or input_code + input_code_system for code-based matching.

Code-based matches always return a score of 1 and at most one lexical. Term-based matches return every lexical scoring at or above your threshold, ranked highest first.

Next steps