Search for active problems: GET [base]/Condition?patient=[id]&clinical-status=active; clinical-status is a token parameter using system http://terminology.hl7.org/CodeSystem/condition-clinical.
Filter to confirmed diagnoses with verification-status=confirmed to exclude unconfirmed or refuted entries.
Use category=problem-list-item to distinguish the problem list from encounter diagnoses (which use category=encounter-diagnosis); both may be present.
Extract code.coding for diagnosis codes; ICD-10-CM codes use system http://hl7.org/fhir/sid/icd-10-cm and SNOMED CT uses http://snomed.info/sct.
Check onsetDateTime or onsetPeriod for when the condition began and abatementDateTime for resolved conditions.
Review note[] for clinician free-text annotations associated with the problem.
Known gotchas
clinical-status is a CodeableConcept, not a plain string; the search token must match the coding system and code exactly or use just the code with the default system.
Some EHRs populate category inconsistently; querying without a category filter may be necessary to catch all conditions, then filter in application logic.
Conditions entered as encounter diagnoses (e.g., at a visit) are separate from the standing problem list; downstream aggregation must account for both categories.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp