Medical Terminologies MCP
One line summary: This MCP server gives you unified, provenance-carrying access to six major medical terminologies — search, lookup, crosswalk, validation and version reporting — plus a Deep Research search/fetch pair.
ICD-11 (WHO): search by term, look up entity details by code/URI, browse parents/children hierarchy, list all 28 chapters, and inspect postcoordination axes; supports WHO's official translations (e.g.
pt).CID-10 (Brazilian, bundled V2008): Portuguese-text search (diacritic-insensitive, everyday words resolved to CID-10 wording), code lookup, list of 22 chapters, and chapter detail with groups; answered locally, no network call.
LOINC: search lab tests/observations, get full code details, retrieve questionnaire answer lists (LA codes, order, scores), and read panel/form structure.
RxNorm: search drugs, get concept details, list active ingredients, retrieve therapeutic classes, and map between RxCUI and NDC.
MeSH: search descriptors (with
language: "pt"for official translations), get descriptor details/scope notes, find tree-number hierarchy locations, and list allowable qualifiers.ATC (via NLM RxClass): classify a drug name to ATC codes, resolve an ATC code (levels 1–4) to its name/level, and list member drugs of a class.
Cross-terminology work: authoritative ICD-10 → ICD-11 mapping from bundled WHO transition tables, ranked
find_equivalentsearch across ICD-11/LOINC/RxNorm/MeSH with cross-terminology groups, and batchharmonize_termsto map up to 50 free-text terms (diagnosis/drug/lab) to standard codes.Batch validation:
validate_codeschecks up to 50 mixed codes across ICD-11, ICD-10, LOINC, RxNorm, MeSH, ATC and CID-10, returning validity, activity, title and any ICD-10 → ICD-11 replacement.Versioning/reproducibility:
terminology_versionslists each terminology's current release, publisher and cadence;terminology_diffreports available diff data (real cross-revision stats for ICD-10 ↔ ICD-11).ChatGPT Deep Research:
searchranks a query across the catalog returning{ id, title, url }, andfetchrenders the full document as Markdown with a citable canonical URL.Every response includes provenance (source, URL, data vintage, real retrieval instant, citation, license), with per-source blocks for multi-source answers, plus built-in caching and upstream rate limiting.
Two transports: stdio (Claude Desktop, IDE clients) and Streamable HTTP via the hosted Cloudflare Worker endpoint at
https://medical.sidneybissoli.com/mcp.
Provides access to MeSH (Medical Subject Headings), the controlled vocabulary used by PubMed for indexing medical literature, enabling search and retrieval of MeSH descriptors, tree hierarchies, and qualifiers.
Medical Terminologies MCP Server
A Model Context Protocol (MCP) server providing unified access to major global medical terminologies:
ICD-11 - International Classification of Diseases (WHO)
LOINC - Logical Observation Identifiers Names and Codes
RxNorm - Normalized names for clinical drugs (NIH)
MeSH - Medical Subject Headings (NLM)
ATC - Anatomical Therapeutic Chemical classification (WHO Collaborating Centre, served via NLM RxClass)
CID-10 - Brazilian Portuguese translation of ICD-10 (DataSUS V2008, bundled)
See it in action
Ask your assistant:
"What's the ICD-11 code for type 2 diabetes?" →
icd11_search"Map ICD-10 code E11 to ICD-11." →
map_icd10_to_icd11"What does LOINC 2339-0 measure?" →
loinc_details"Qual o código CID-10 para infarto agudo do miocárdio?" →
cid10_search
The answers come from authoritative sources (WHO, NLM, NIH, DataSUS) — real codes and mappings, not guesses from training data.
Related MCP server: medical-mcp
Features
33 tools: 31 terminology tools plus
search/fetchfor ChatGPT Deep Research3 MCP Prompts that orchestrate tool calls into named workflows (
find-medical-code,drug-info,cid10-portuguese-lookup) — clients render these as one-click user actions4 MCP Resources for in-process reference content (
info://server,info://cid10/chapters,info://licenses,info://stats) — sub-millisecond reads (exceptinfo://statswhich round-trips to the StatsCounter Durable Object on the hosted endpoint)Multi-terminology support in a single server
Cross-terminology mapping and search
Provenance on every response (since v1.8.0): each successful tool result carries a machine-readable provenance block — source, canonical URL, data vintage, real extraction instant (cache hits keep the original fetch instant), ready-to-use citation, and license — in
structuredContent.provenance+attribution, mirrored in_metaundercom.sidneybissoli.medical/*, with a compact text footer for text-only clients. Multi-source responses (find_equivalent,validate_codes) carry one block per source; server-computed ranking fields are flagged as derivedBuilt-in caching for improved performance
Rate limiting to respect API limits
Detailed responses with rich formatting
Two transports: stdio (default; for Claude Desktop, IDE clients) and Streamable HTTP (the hosted Cloudflare Worker at
https://medical.sidneybissoli.com/mcp, or your own instance ofworker/)
📖 Article (in Portuguese): CID-10, CID-11 e o que muda para quem trabalha com dados do SUS — the V2008 structure in numbers, what the WHO transition tables are and are not, and the licences that differ between sources. Also published on the site, in Portuguese and English: sidneybissoli.com.
Who is this for?
This server is not a clinical-care decision tool — practicing clinicians have specialized assistants (UpToDate AI, OpenEvidence, EHR-integrated tools) for that. The actual audience is researchers, public-health analysts, clinical informatics developers, and educators who need programmatic access to authoritative terminology data.
If you're a... | Start with | Why |
Biomedical researcher / bibliographer |
| MeSH is PubMed's indexing vocabulary; tree numbers let you traverse the controlled hierarchy programmatically |
Public-health analyst (Brazil / SUS) |
| CID-10 V2008 is the Brazilian operational standard; ATC pairs cleanly with DataSUS prescription data |
Public-health analyst (international) |
| WHO ICD-11 is the current international revision; chapters and hierarchy support pipeline classification |
Clinical-informatics developer |
| LOINC for lab/observation interoperability; cross-terminology search to scaffold new mappings |
Educator / curriculum author |
| Authoritative definitions, tree numbers, and drug term-types you can drop into self-checked exercises |
What this server is not intended for — and what leaves your machine
It is not intended for clinical decision support. It retrieves what the official sources publish. It does not diagnose, recommend treatment or dose.
It is not designed to run offline. ICD-11, LOINC, RxNorm, MeSH and ATC are answered live by the public WHO and NLM APIs. Every query string you send is forwarded to those services. De-identify term lists before running them: no patient names, free-text notes or record identifiers. Two datasets are bundled and answered in-process, with no network call: CID-10 (DataSUS V2008) and the WHO ICD-10 → ICD-11 transition tables (
map_icd10_to_icd11).Credentials are not required on the hosted endpoint.
https://medical.sidneybissoli.com/mcphas WHO credentials configured.WHO_CLIENT_ID/WHO_CLIENT_SECRETare needed only when you run the server yourself, and only for the 5 ICD-11 tools.SNOMED CT is not served. It was retired in 2.0.0: no public Snowstorm host remains, SNOMED content needs a per-country license, and the off-by-default tools confused every catalog that listed this server. See SNOMED CT (retired in 2.0.0).
It is not OMOP-shaped. Results carry the source's own codes, not OMOP
concept_ids, and there is noconcept_ancestortraversal. If your output has to join against an OMOP CDM, use an OMOP vocabulary service; use this server for general terminology work.Search is lexical, not semantic.
find_equivalentand the*_searchtools match words, not meanings (no embeddings).Large batches are paced by the upstream rate limits (see API Rate Limits). Thousands of distinct terms take minutes to tens of minutes.
Reproducibility: which version answered
A crosswalk or a coded dataset is only meaningful against a stated vocabulary version. Two things record it:
terminology_versionslists the release each terminology is queried against. Call it at the start of a batch run and keep the output with your results. The ICD-11 release is pinned (default2026-01, override withWHO_ICD11_RELEASE_ID), so a self-hosted run is repeatable until you change it.The provenance block on every response (
structuredContent.provenance) carriesretrieved_at(the real extraction instant; a cache hit keeps the original fetch time), the source URL, the citation and the license. Itsdata_vintagefield carries the version when the source exposes one:Source
data_vintagein each responseICD-11
the pinned WHO release (e.g.
2026-01)ICD-10 → ICD-11 tables
the bundled WHO release (e.g.
2025-01)CID-10
V2008LOINC, RxNorm, MeSH, ATC
null, because these APIs do not state a release per response. Recordterminology_versions+retrieved_atinstead
Minimal batch log: one terminology_versions call at the start, plus the provenance of each result (source, data_vintage, retrieved_at).
Try the hosted instance (no install)
A public Cloudflare Workers deployment runs at:
https://medical.sidneybissoli.com/mcpConnect via the MCP Inspector or any Streamable HTTP MCP client:
npx @modelcontextprotocol/inspector --transport streamable-http \
--server-url https://medical.sidneybissoli.com/mcpOr install via Smithery, which proxies the same endpoint through their gateway:
npx -y smithery mcp add sidneybissoli/medical-terminologies-mcpThe hosted instance has WHO credentials configured, so all 33 tools work without any setup on your side. For your own deployment (e.g. corporate network, different region, custom WHO credentials), see the Installation and Hosted on Cloudflare Workers sections below.
Installation
Global Installation (Recommended)
npm install -g medical-terminologies-mcpLocal Installation
npm install medical-terminologies-mcpConfiguration
Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"medical-terminologies": {
"command": "npx",
"args": ["-y", "medical-terminologies-mcp"],
"env": {
"WHO_CLIENT_ID": "your-who-client-id",
"WHO_CLIENT_SECRET": "your-who-client-secret"
}
}
}
}Environment Variables
Variable | Required | Description |
| Yes¹ | WHO ICD API Client ID |
| Yes¹ | WHO ICD API Client Secret |
| No | ICD-11 release to query (e.g. |
| No | pino log level ( |
¹ Required for ICD-11 tools. Get credentials at: https://icd.who.int/icdapi.
LOINC, RxNorm, MeSH, ATC and CID-10 need no configuration.
HTTP transport (hosted)
The server runs over stdio by default — that's what Claude Desktop and IDE clients expect. The Streamable HTTP transport is served by the Cloudflare Worker in worker/ (an instance of the maintainer's Fase 0 hosting template). The --http flag of the Node entry was removed in v1.6.0 — if you need a local HTTP endpoint, run the Worker locally:
npm ci && cd worker && npm ci
npm run dev # wrangler dev on http://localhost:8787
# Inspector via HTTP
npx @modelcontextprotocol/inspector --transport streamable-http --server-url http://localhost:8787/mcpHosted endpoints (production and local alike):
POST /mcp— JSON-RPC over Streamable HTTP (the MCP protocol). Stateless mode: each request is independent.GET /health— liveness probe returning{ status, name, version, tool_count, uptime_s }.GET /status— version + deploy metadata.GET /metrics— aggregated per-tool usage.GET /statsandGET /stats/badge— public tool-call counter (since 2026-05-13) and its shields.io badge.GET /.well-known/mcp/server-card.json— static server card for registry scanners.CORS is permissive (
*) so browser clients (e.g. the MCP Inspector web UI) can connect directly.
ChatGPT (Deep Research)
ChatGPT deep research (and company knowledge, and research workflows over the Responses API) only uses an MCP server that exposes exactly search and fetch — this server does, on top of the terminology tools. Point the connector at the hosted endpoint, no key required:
https://medical.sidneybissoli.com/mcpsearch ranks the query across the bundled CID-10 (categories, subcategories, chapters), the terminology version records and a live fan-out to ICD-11, LOINC, RxNorm and MeSH (the same fan-out find_equivalent does; a source that fails is skipped) and returns { id, title, url }; fetch renders the document through the terminology's own lookup tool (cid10_lookup, icd11_lookup, loinc_details, rxnorm_concept, mesh_descriptor, terminology_versions) as readable Markdown with the canonical public page (WHO ICD browsers, loinc.org, RxNav, MeSH Browser), which is what ChatGPT cites. Both carry the same provenance block as every other tool — search one block per source that answered, like find_equivalent. In ChatGPT's developer mode (Settings → Security and login → Developer mode) any tool is callable — the terminology tools remain the ones to use for data.
Hosted on Cloudflare Workers (primary)
The production deployment is the Cloudflare Worker in worker/, config in worker/wrangler.jsonc, CI deploy in .github/workflows/deploy-worker.yml (auto-runs on every push to main).
To deploy your own instance:
npm ci && npm run build:worker-lib
cd worker && npm ci
npx wrangler login # one-time, browser flow
npx wrangler deploy # publishes to <name>.<account>.workers.dev
# Set ICD-11 secrets so those 5 tools work:
npx wrangler secret put WHO_CLIENT_ID
npx wrangler secret put WHO_CLIENT_SECRETNote: worker/wrangler.jsonc pins the maintainer's account_id and custom domain route — remove/replace both for your own deployment.
Why Workers: zero cold start at the edge, $5/mo flat for 10M requests (free tier covers up to 100k req/day), and no VMs to size or restart. The template ships per-IP rate limiting and a usage-stats Durable Object; the upstream-facing cache/rate-limiter are per-isolate (PROGRESS.md Phase 11.9 Stage 2 tracks the KV/DO upgrade).
Listing on Smithery
After your Worker is live, register the URL on Smithery:
Visit https://smithery.ai → Publish → MCP (or
https://smithery.ai/new).Pick the URL submission path (Smithery deprecated container hosting in 2024 — URL is the supported flow now).
Paste
https://<your-worker>.workers.dev/mcp. Smithery's gateway scans for compliance and proxies traffic.
Available Tools (33)
Official Portuguese (pt-BR) content
The server never machine-translates terminology content — but several sources publish official translations, and the tools expose them:
CID-10 is natively Portuguese:
cid10_search/cid10_lookup/cid10_chapter(s)serve the DataSUS V2008 dataset (the CID-10 the Brazilian SUS uses operationally).ICD-11 in official Portuguese: pass
language: "pt"toicd11_search/icd11_lookupto search and read WHO's official pt-BR linearization labels.MeSH: pass
language: "pt"tomesh_search/mesh_descriptorto request NLM's official translations where they exist.
If a source has no official translation for an entry, you get the source language back — never a machine translation.
ICD-11 Tools (5)
Tool | Description | Example |
| Search ICD-11 by term |
|
| Get entity details by code/URI |
|
| Navigate parent/child relationships |
|
| List all ICD-11 chapters | - |
| Get postcoordination axes |
|
LOINC Tools (4)
Tool | Description | Example |
| Search lab tests and observations |
|
| Get full LOINC code details |
|
| Answer list of a questionnaire item: LA code, text, order and score (PHQ-9 items: 0-3); empty for codes without a list, "not found" for unknown codes |
|
| Panel/form structure: member items in form order |
|
RxNorm Tools (5)
Tool | Description | Example |
| Search drugs by name |
|
| Get drug concept details |
|
| Get active ingredients |
|
| Get therapeutic classes |
|
| Map between RxCUI and NDC |
|
MeSH Tools (4)
Tool | Description | Example |
| Search MeSH descriptors |
|
| Get descriptor details |
|
| Get tree hierarchy location |
|
| Get allowed qualifiers |
|
Crosswalk Tools (4)
Tool | Description | Example |
| Authoritative ICD-10 → ICD-11 mapping via bundled WHO transition tables; returns primary code + chapter + URIs and any WHO-documented alternatives |
|
| Batch-validate up to 50 codes across ICD-11, LOINC, RxNorm, MeSH, ATC, CID-10; returns per-code valid/invalid + display name |
|
| Ranked unified search across terminologies: server-computed |
|
| Batch-map up to 50 free-text terms to standard codes: diagnosis → ICD-11, drug → RxNorm (+ ATC classes), lab → LOINC. Per term: ranked candidates with |
|
ATC Tools (3)
WHO Anatomical Therapeutic Chemical classification, served through NLM RxClass (free, no auth). The WHOCC base itself requires a paid subscription, but RxClass envelopes the same code/name pairs.
Tool | Description | Example |
| Drug name → ATC code(s) |
|
| ATC code (level 1-4) → name + level type |
|
| ATC class → member drugs |
|
CID-10 Tools (4)
Brazilian Portuguese translation of ICD-10 (DataSUS V2008). Bundled as a static dataset — no HTTP calls. The Brazilian SUS uses CID-10 V2008 operationally; for the international ICD-11 (current WHO revision), use the ICD-11 tools above.
Tool | Description | Example |
| Portuguese text search (diacritic-insensitive, AND between words; everyday words resolved to CID-10 wording, and the response says so) |
|
| Code → official Portuguese name |
|
| List the 22 CID-10 chapters | - |
| Chapter detail with constituent groups |
|
Ask in your words, not the CID-10's. The CID-10 is worded in clinical Portuguese, and cid10_search matched your words against the code title as one verbatim phrase — so the everyday word returned nothing at all. Measured over the 14,496 categories and subcategories of the bundled V2008 dataset (2026-09-16), fixed since 1.12.0: every word must match (AND), and the everyday word is expanded to the CID-10's own (src/clients/cid10-vocabulary.ts, measured pairs only) — the response says so in vocabulary_notes, and zero results come with a way out.
you ask | hits before | the CID-10 writes | hits |
| 0 | neoplasia maligna (da mama) | 497, 12 |
| 0 | infarto | 42 |
| 0 | acidente vascular cerebral | 11 |
| 0 | hipertensão | 44 |
| 0 | cefaleia | 10 |
| 0 | lesão autoprovocada | 167 |
| 0 | pedestre traumatizado | 97 |
| 0 | doença pelo HIV | 45 |
| 0 | calculose, convulsões, fumo, canabinóides, cocaína, obesidade, provocado por cão | 19, 41, 17, 12, 13, 6, 11 |
What the V2008 dataset does not carry stays out and still returns zero — covid (U07.1 is from 2020), zika — because an alias for a code that does not exist promises what the source does not have. The same table feeds the Deep Research search index.
Versioning Tools (2)
Surface what version of each terminology this server queries against today — useful when running batch validation against a pinned release or when investigating an unexpected lookup miss after an upstream update.
Tool | Description | Example |
| List all 8 supported terminologies with current version, release date, publisher, source URL, and update cadence | - |
| Report what diff data is available between two versions of a terminology (real cross-revision stats for ICD-10 → ICD-11; guidance otherwise) |
|
ChatGPT Deep Research (2)
The OpenAI Deep Research contract — the only two tools without a terminology prefix (names fixed by OpenAI). See ChatGPT (Deep Research) above.
Tool | Description | Example |
| Searches the catalog (CID-10, ICD-11, LOINC, RxNorm, MeSH, terminology versions) and returns |
|
| Returns the full document of an id from |
|
Example Outputs
The samples below are the actual formatted output the tools produce — the text body of the CallToolResult. Tools also return a structuredContent object matching each tool's outputSchema for programmatic consumers.
loinc_search — query: "glucose", max_results: 3
## LOINC Search Results for "glucose"
Found 1024 total results (showing 3):
1. **74790-7** - Glucose challenge (hydrogen breath test) panel - Exhaled gas
Component: Glucose challenge panel | Method: -
2. **104708-3** - Deprecated Estimated average glucose [Moles/volume] in Blood
Component: Estimated average glucose | Property: SCnc
3. **97510-2** - Glucose measurements in range out of Total glucose measurements during reporting period
Component: Glucose measurements in range/Total glucose measurements | Property: NFr | Method: Calculatedtotal_count (1024) reflects every match in the NLM Clinical Tables index, not just the page returned. Bump max_results (max 50) to see canonical codes like 2339-0 (Glucose [Mass/volume] in Blood); the API's relevance ranking puts panels and derived measurements above plain blood-glucose at small page sizes.
rxnorm_ingredients — rxcui: "6809" (metformin)
# Ingredients for RxCUI 6809
Found 18 ingredient(s):
| RxCUI | Name | Type |
|-------|------|------|
| 6809 | metformin | Single Ingredient |
| 1007411 | chlorpropamide / metformin | Multiple Ingredient |
| 1043562 | metformin / saxagliptin | Multiple Ingredient |
| 1243019 | linagliptin / metformin | Multiple Ingredient |
| 1486436 | dapagliflozin / metformin | Multiple Ingredient |
| 1545149 | canagliflozin / metformin | Multiple Ingredient |
| 1664314 | empagliflozin / metformin | Multiple Ingredient |
| 729717 | metformin / sitagliptin | Multiple Ingredient |
| ... | (10 more combinations) | Multiple Ingredient |For an RxCUI that is itself an ingredient (TTY=IN), the tool returns that ingredient plus every multi-ingredient (TTY=MIN) concept that includes it. Use this to enumerate combination products built around a substance.
mesh_descriptor — mesh_id: "D006973" (Hypertension)
# Hypertension
MeSH ID: D006973
## Scope Note
Persistently high systemic arterial BLOOD PRESSURE. Based on multiple readings (BLOOD PRESSURE DETERMINATION), hypertension is currently defined as when SYSTOLIC PRESSURE is consistently greater than 140 mm Hg or when DIASTOLIC PRESSURE is consistently 90 mm Hg or more.
## Tree Numbers
- C14.907.489
## Concepts
- Hypertension *(preferred)*
## Allowed Qualifiers
35 qualifier(s) allowed. Use mesh_qualifiers for details.The scope note comes from the descriptor's preferred concept, not its annotation field (which is an indexer-facing note). Tree numbers are the navigable path into MeSH's controlled hierarchy — C14.907.489 places Hypertension under Cardiovascular Diseases → Vascular Diseases.
Common Workflows
ICD-11 lookup:
icd11_searchwith a clinical term → pick the result →icd11_lookupwith the code for full details, oricd11_hierarchyto walk parents/children.Drug pipeline:
rxnorm_searchfor a brand or generic name →rxnorm_conceptfor the canonical record →rxnorm_ingredientsandrxnorm_classesfor downstream analysis.Harmonize a column of free-text terms:
terminology_versionsonce at the start →harmonize_termsin batches of up to 50 (each term with its domain) → acceptexact, spot-checkstrong, sendneeds_reviewto a person → keep each row'sprovenancewith the crosswalk. Write lab terms with specimen and property ("glucose serum"): a bare "glucose" matches over a thousand LOINC codes.Cross-terminology scaffolding:
find_equivalentwith a clinical term searches ICD-11, LOINC, RxNorm and MeSH in one call. Use it to bootstrap mappings; the pairwisemap_*tools refine them.ICD-10 → ICD-11 (authoritative):
map_icd10_to_icd11reads the bundled WHO transition tables. It returns the primary ICD-11 code plus any WHO-documented alternatives, andnull(never a guess) when the ICD-10 category is not in the table.
SNOMED CT (retired in 2.0.0)
Until 1.18.x this server shipped five SNOMED CT tools (snomed_search, snomed_concept, snomed_hierarchy, snomed_descriptions, snomed_ecl) plus map_snomed_to_icd10, all off by default behind ENABLE_SNOMED_TOOLS, and map_loinc_to_snomed (guidance only). Version 2.0.0 removed all seven, the Snowstorm client and the flag, and snomed is no longer an accepted value of find_equivalent, validate_codes, terminology_versions or terminology_diff (a request naming it gets a validation error listing the accepted values).
Why: the public IHTSDO Snowstorm host behind the tools has returned HTTP 410 since 2026-05; SNOMED CT content needs a license that depends on the user's country; usage was zero; and the half-present terminology misled every third-party catalog that described this server.
If you need SNOMED CT: pacharanero/sct serves it locally from your own licensed release, and FHIR terminology servers (e.g. tx.fhir.org, a public HL7 test server; CSIRO Ontoserver) expose $lookup/$expand — under your own SNOMED license.
Terminology Licenses
The MIT license covers the server code and server-maintained metadata
only — not the terminology content served through it, and not
the two bundled datasets (cid10.json, icd10-to-icd11.json), which
remain under their own terms. The consolidated notice ships with the
package as NOTICE.md; every tool response carries a
per-source provenance block with the applicable license.
ICD-11 (WHO)
ICD-11 content is provided under the Creative Commons Attribution-NoDerivatives 3.0 IGO license (CC BY-ND 3.0 IGO), per the ICD-11 Terms of Use and License Agreement.
Required citation: "International Classification of Diseases, Eleventh Revision (ICD-11), World Health Organization (WHO) 2019 https://icd.who.int/browse11. Licensed under the Creative Commons Attribution-NoDerivatives 3.0 IGO licence (CC BY-ND 3.0 IGO)."
This server always serves ICD-11 codes and titles together with their URIs, verbatim; non-English labels are WHO's own official translations (never machine-translated)
WHO may terminate the license at any time by notice (§4.7)
API access requires registration at https://icd.who.int/icdapi
WHO ICD-10 → ICD-11 transition tables (bundled)
Format conversion (TSV → JSON, content unaltered) of the tables WHO publishes within the ICD-11 release. © World Health Organization, under the ICD-11 Terms of Use — not under this project's MIT license. WHO's guidance: the tables show correspondence between revisions and "are not intended for directly converting data from one revision to the other."
CID-10 V2008 (DataSUS / CBCD, bundled)
© World Health Organization; Brazilian Portuguese translation © CBCD / Faculdade de Saúde Pública da USP; electronic files published by DataSUS (Ministério da Saúde do Brasil). DataSUS/CBCD permission: developers may use the files with due credit and at no charge — this server serves them free with credit in every response. Not under this project's MIT license.
LOINC
This material contains content from LOINC (http://loinc.org). LOINC is copyright © Regenstrief Institute, Inc. and the Logical Observation Identifiers Names and Codes (LOINC) Committee and is available at no cost under the license at http://loinc.org/license. LOINC® is a registered United States trademark of Regenstrief Institute, Inc.
Served via the free NLM Clinical Tables API; every code comes with its official display name
Terms with third-party copyright are served with their notice passed through verbatim
RxNorm
RxNorm is produced by the U.S. National Library of Medicine; the RxNav APIs serve non-proprietary, public-domain RxNorm content free of charge.
This product uses publicly available data from the U.S. National Library of Medicine (NLM), National Institutes of Health, Department of Health and Human Services; NLM is not responsible for the product and does not endorse or recommend this or any other product.
ATC (via NLM RxClass)
ATC classification © WHO Collaborating Centre for Drug Statistics Methodology (https://atcddd.fhi.no/), retrieved via NLM RxClass and served verbatim. This server never redistributes the WHOCC ATC/DDD index.
MeSH
MeSH is a U.S. government work served free of charge under the NLM Terms and Conditions. The NLM statement above (RxNorm) applies to this channel as well.
Surface fingerprint, checkable from the registry
Every release publishes, in its MCP Registry entry,
the sha256 of the surface this version serves (initialize, tools, resources, prompts) and which
methods answer without a credential. A surface change without a version bump fails the build;
the fingerprint in the registry lets a client check the same thing on its own side. Canonical
form and procedure: SPEC.md of @sbissoli/mcp-surface.
To check it yourself (Node 18+, no dependencies):
curl -sO https://raw.githubusercontent.com/SidneyBissoli/mcp-br-commons/main/packages/mcp-surface/exemplos/verify.mjs
node verify.mjs io.github.SidneyBissoli/medical-terminologies-mcpAPI Rate Limits
This server implements rate limiting to respect API providers:
API | Rate Limit |
WHO ICD-11 | 5 requests/second |
NLM (LOINC, MeSH) | 10 requests/second |
RxNorm | 20 requests/second |
Development
Building from source
git clone https://github.com/SidneyBissoli/medical-terminologies-mcp.git
cd medical-terminologies-mcp
npm install
npm run buildRunning locally
npm startTesting with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.jsContributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
Author
Sidney da Silva Pereira Bissoli
GitHub: @SidneyBissoli
License
This project is licensed under the MIT License - see the LICENSE file for details.
Note: While this software is MIT licensed, the medical terminologies accessed through it have their own licenses (see Terminology Licenses above).
Acknowledgments
WHO for the ICD-11 API
Regenstrief Institute for LOINC
U.S. National Library of Medicine for RxNorm and MeSH
Anthropic for the Model Context Protocol
Support
If you encounter any issues or have questions:
Open an issue on GitHub
Check existing issues for solutions
Made with love for the medical informatics community
Available Tools
33 toolsatc_classifyATC Classification for a DrugARead-onlyIdempotentInspect
Look up the WHO ATC (Anatomical Therapeutic Chemical) classification(s) for a drug by name.
Use this tool to:
Find the ATC code for a medication (e.g., "metformin" → A10BA02)
Identify the therapeutic and pharmacological class hierarchy
Cross-reference drugs with their international ATC codes
Returns one entry per ATC code the drug belongs to. A single-ingredient drug typically maps to one substance-level code; combination products map to multiple. ATC codes are international (WHO Collaborating Centre); this tool retrieves them via NLM RxClass.
Input is a drug NAME (brand or generic, English/US naming as in RxNorm). A name RxNorm does not recognize, or a drug without an ATC mapping, returns an empty matches list with an explanatory note — not an error; try the generic name, or resolve the name first with rxnorm_search.
Which ATC tool: start here when you have a drug name; use atc_lookup when you already have a class code (level 1-4, e.g. "A10BA") and want its name; use atc_members to list the drugs inside a class.
| Name | Required | Description | Default |
|---|---|---|---|
| drug_name | Yes | Drug name to classify (brand or generic, e.g., "metformin") |
Output Schema
| Name | Required | Description |
|---|---|---|
| matches | Yes | ATC classes NLM RxClass assigns to the drug, one entry per RxNorm concept and ATC class pair; empty when the drug is unknown or has no ATC mapping. |
| drug_name | Yes | The drug name as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), and the description goes well beyond them: cardinality of results (one entry per ATC code, single-ingredient vs combination), the fact that an unresolved name or unmapped drug returns an empty `matches` list rather than an error, and the retrieval source (NLM RxClass, WHO codes). That empty-vs-error distinction is exactly the behavioral detail an agent cannot get from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then scannable bullets for use cases, then return semantics, then input caveats, then sibling routing. Length is justified by the routing decision it resolves; no sentence merely restates the title or the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Single-parameter, read-only lookup with an output schema present — the description need not explain return structure, yet it still characterizes result cardinality and the empty-result case. Nothing an agent needs to invoke it correctly or interpret a null result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description earns more by adding naming semantics the schema lacks: brand or generic, English/US naming as in RxNorm, and what happens on a miss. It also warns against resolving outcomes as errors, which shapes how the parameter value should be constructed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource ("Look up WHO ATC classification(s) for a drug by name") with a concrete worked example ("metformin" → A10BA02). The closing "Which ATC tool" paragraph explicitly separates it from atc_lookup and atc_members, so an agent can disambiguate without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States exactly when to start here ("when you have a drug name") and names the two alternatives with the precise condition that selects each (class code level 1-4 → atc_lookup; list drugs in a class → atc_members). It even prescribes a fallback path ("resolve the name first with rxnorm_search") for the empty-result case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atc_lookupATC Code DetailsARead-onlyIdempotentInspect
Look up an ATC code at level 1-4 to get its name and hierarchy level.
Use this tool to:
Resolve an ATC code (e.g., "A10BA") to its class name ("Biguanides")
Confirm a code exists in the current ATC index
Identify the level (anatomical / therapeutic / pharmacological / chemical)
Accepts codes 1-5 characters long: "A" (anatomical), "A10" (therapeutic), "A10B" (pharmacological), "A10BA" (chemical). Substance-level codes (7 chars, e.g., "A10BA02") are not exposed by this endpoint — use atc_classify with the drug name to retrieve the substance code.
| Name | Required | Description | Default |
|---|---|---|---|
| atc_code | Yes | ATC code at level 1-4 (1-5 chars). Substance-level codes (7 chars, e.g., A10BA02) are not exposed by this endpoint — use atc_classify with the drug name instead. |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | Whether RxClass knows the code at level 1-4; false for unknown and for 7-character substance codes. |
| details | Yes | The ATC class (code, name, level type); null when found=false. |
| atc_code | Yes | The ATC code as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so safety is covered; the description adds real behavioral context by disclosing the endpoint's ceiling (only levels 1-4 exposed) and that lookups double as existence checks. It does not discuss error behavior for codes valid in format but absent from the index, which is the only notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Opens with a one-line purpose statement, then scannable bullets, then the key constraint — well front-loaded. The substance-level caveat appears both as a general statement and inside the code-length enumeration, a minor redundancy for a single-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
One parameter, 100% schema coverage, a rich output schema, and full annotations mean the description needn't explain return values. It covers purpose, valid input space, exclusion of substance codes, and the sibling alternative — everything needed to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline is 3, but the description goes beyond the schema by mapping each code length to its level name (A = anatomical, A10 = therapeutic, A10B = pharmacological, A10BA = chemical), which helps an agent construct valid input. The 7-char restriction is restated from the schema rather than added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (look up) plus resource and scope (ATC code at level 1-4), and says what is returned (name and hierarchy level). The closing sentence explicitly names atc_classify as the sibling handling a different case, so the boundary is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Three bullets give concrete when-to-use cases (resolve a code, confirm existence, identify level), and the final sentence states an explicit exclusion plus the alternative to use instead (atc_classify for 7-char substance codes). No inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atc_membersATC Class MembersARead-onlyIdempotentInspect
List the drugs (substances) that belong to an ATC class.
Use this tool to:
Enumerate all members of a therapeutic class (e.g., "A10BA" → metformin, phenformin)
Build a list of drugs sharing a pharmacological mechanism
Explore an ATC subtree at any level
Each member includes its substance-level (7-char) ATC code via source_atc_code, useful for disambiguation when the queried class is at level 1-4. RxNorm's catalog is US-centric; the ATC class names and codes themselves are international.
| Name | Required | Description | Default |
|---|---|---|---|
| atc_code | Yes | ATC code at any level. Higher levels (1-4) return all member substances; level 5 returns the single substance. |
Output Schema
| Name | Required | Description |
|---|---|---|
| members | Yes | RxNorm drug concepts in the ATC class (all member substances for levels 1-4); empty when the code is unknown or has no RxNorm-mapped members. |
| atc_code | Yes | The ATC code as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety bar is low; the description adds real context beyond them — that each member carries a substance-level 7-char source_atc_code for disambiguation, and that RxNorm's catalog is US-centric while ATC names/codes are international. It stops short of discussing rate limits or result-size behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core statement is front-loaded in the first line, with bullets doing scannable work afterwards; the closing caveat about US-centricity is the only part an agent might skip. Efficient, with minor redundancy against the schema wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need no explanation, yet the description still names a key returned field (source_atc_code) and its disambiguation use. Combined with the level/subtree guidance and the catalog-bias note, an agent has what it needs; only explicit sibling routing is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema's own property description already explains that levels 1-4 return all member substances and level 5 returns the single substance. The description's 'at any level' and subtree bullets restate that rather than adding format or validation guidance, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('List the drugs (substances) that belong to an ATC class') and immediately grounds it with a concrete example ('A10BA' → metformin, phenformin). An agent can distinguish this from atc_classify/atc_lookup without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Three explicit 'Use this tool to' bullets give concrete scenarios (enumerate class members, build mechanism-shared drug lists, explore a subtree). It lacks an explicit 'when not to use' or a named alternative among the ATC siblings, which keeps it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cid10_chapterCapítulo da CID-10ARead-onlyIdempotentInspect
Get one CID-10 chapter and its constituent groups (e.g., "Chapter IX → I00-I02 Febre reumática aguda, I05-I09 Doenças reumáticas crônicas do coração, ...").
Use this tool to:
Drill from a chapter into its groups (code ranges with Portuguese titles)
Build hierarchical browsers
Find which group contains a code range
Provide the chapter number num as an integer 1-22 (chapter I = 1, IX = 9). Numbers outside 1-22 are rejected with a validation error. Returns the chapter (title and code range) plus ALL its groups in one response — no pagination; the 22 chapters hold 275 groups in total. Answered locally from the bundled CID-10 V2008; no network call.
Which CID-10 tool: use cid10_chapters first if you do not know the chapter number (it lists all 22 with code ranges); use cid10_lookup for one specific code and cid10_search to find codes by Portuguese text. For the international ICD-11, use icd11_chapters.
| Name | Required | Description | Default |
|---|---|---|---|
| num | Yes | Chapter number (1-22). CID-10 V2008 has 22 chapters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| num | Yes | The chapter number as submitted. |
| found | Yes | Whether the chapter exists in CID-10 V2008. |
| groups | Yes | Groups (code-range blocks) of the chapter, each with its range and Portuguese title; empty when found=false. |
| chapter | Yes | The chapter (number, code range, Portuguese title); null when found=false. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, it discloses the out-of-range rejection behavior, that all groups come back in one response with no pagination (275 groups across 22 chapters, so response size is bounded), and that results come from the bundled CID-10 V2008 with no network call. The 'no network call' statement sits in mild tension with openWorldHint=true, but that hint describes the domain of entities rather than transport, so it reads as added context rather than a contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a one-line purpose plus example, then a compact bulleted use list, a parameter note, and a sibling-routing line. Every sentence carries distinct information (validation behavior, response size, data source, alternatives) with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still gives enough about the return payload (chapter title + code range + ALL groups, unpaginated) for an agent to plan around volume and shape. Combined with the validation rule and offline-data note, nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3; the description earns more by supplying the roman-numeral-to-integer mapping ('chapter I = 1, IX = 9') that the schema does not express, plus the explicit rejection of values outside 1-22. The remaining repetition of the 1-22 integer type is redundant with the schema, capping it below 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get one CID-10 chapter and its constituent groups') and immediately illustrates the return shape with a concrete example (Chapter IX → I00-I02, I05-I09). It also distinguishes itself from the sibling navigation tools cid10_chapters, cid10_lookup and cid10_search, so an agent can select it without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly enumerates the three intended uses (drill into groups, build hierarchical browsers, resolve a code range to a group) and gives an ordered fallback: 'use cid10_chapters first if you do not know the chapter number'. It also names cid10_lookup for single codes, cid10_search for text search, and icd11_chapters for the international edition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cid10_chaptersCapítulos da CID-10ARead-onlyIdempotentInspect
List the 22 chapters of CID-10 with their code ranges and Portuguese titles.
Use this tool to:
See the top-level structure of CID-10 (chapters I-XXII, e.g., "I. Algumas doenças infecciosas e parasitárias", "IX. Doenças do aparelho circulatório")
Map a code to its chapter by code range (e.g., I00-I99 → chapter IX)
Build a navigable table of contents for downstream tooling
Returns 22 entries — CID-10 V2008 has not been updated since 2008.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| chapters | Yes | The 22 chapters of CID-10 V2008, each with its number, code range and Portuguese title. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds useful context: exactly 22 entries and the CID-10 V2008 version limitation. It does not need to explain safety further, though it could mention output shape or ordering more explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, followed by three scannable use cases and a short return note. Each sentence adds practical value without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter list tool with an output schema and rich annotations, the description supplies enough context: scope, examples, intended uses, entry count, and version limitation. An agent has what it needs to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to explain. Baseline 4 is appropriate because the schema is empty and no parameter-level description is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: "List the 22 chapters of CID-10" with code ranges and Portuguese titles. It clearly describes the top-level chapter listing, which is distinguishable from singular chapter lookup and code-search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases: viewing top-level structure, mapping a code to a chapter by range, and building a table of contents. It does not explicitly name alternatives such as cid10_chapter or cid10_lookup, so it falls short of full when-not/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cid10_lookupConsultar Código CID-10ARead-onlyIdempotentInspect
Look up a specific CID-10 code and return its Portuguese name.
Use this tool to:
Resolve a code to its Brazilian description ("I21" → "Infarto agudo do miocárdio")
Confirm a 3-char category or 4-char subcategory exists in CID-10
Retrieve gender / cause-of-death restriction flags when applicable
Accepts both dotted ("A00.1") and undotted ("A001") forms; returns the canonical display.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | CID-10 code (e.g., "A00", "A00.1", "A001", "I21"). Dotted and undotted forms both accepted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hit | Yes | The CID-10 entry (Portuguese title, chapter, group, restrictions); null when found=false. |
| code | Yes | The CID-10 code as submitted. |
| found | Yes | Whether the code exists in CID-10 V2008. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnly/idempotent/non-destructive declared by annotations, the description adds real behavioral context: it normalizes input formats and returns a canonical display form, and it discloses that gender/cause-of-death restriction flags may come back. It does not mention behavior when a code does not exist (error vs. empty result), which matters for exact-match lookups.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence purpose followed by three scannable intent bullets; nothing is padded. Minor waste in the closing sentence, which restates the dotted/undotted acceptance already given in the schema and duplicates the first bullet's resolution concept.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, idempotent read with an output schema, the description covers intent, input forms, and the kinds of values returned. The remaining gap is failure behavior on unknown or invalid codes, which an agent would want before relying on this for validation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema description already states that dotted and undotted forms are accepted, so the description's duplicate claim adds little. The only extra signal is that normalization produces a canonical display, which is a return-shape note rather than parameter meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('look up a specific CID-10 code') plus the concrete return artifact ('its Portuguese name'), and the example 'I21' → 'Infarto agudo do miocárdio' makes the operation unmistakable. Against siblings like cid10_search or cid10_chapter, 'a specific code' clearly implies exact-code resolution rather than text search or hierarchy browsing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this tool to:' enumerates three concrete intents (resolve to description, confirm existence, retrieve restriction flags), which gives the agent clear selection criteria. It lacks an explicit exclusion pointing at cid10_search for when the agent has a name rather than a code, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cid10_searchBuscar na CID-10ARead-onlyIdempotentInspect
Search the Brazilian CID-10 (Classificação Estatística Internacional de Doenças, 10ª Revisão) by Portuguese text.
Use this tool to:
Find CID-10 codes for Brazilian SUS / ANVISA contexts ("infarto", "diabetes", "tuberculose")
Look up the official Portuguese (CBCD/USP) translation of a clinical term
Locate codes for billing, epidemiology, and clinical documentation in Brazil
Returns matches from CID-10 categories (3-char) and/or subcategories (4-char). Search is diacritic-insensitive: typing "infeccoes" matches "infecções". Every word must match (AND), and everyday Portuguese is resolved to the CID-10's own wording (câncer→neoplasia maligna, AVC→acidente vascular cerebral, pressão alta→hipertensão, suicídio→lesão autoprovocada, aids→HIV); when that happens the response says so in vocabulary_notes. This tool searches the Brazilian Portuguese CID-10 V2008 — for the international ICD-11 (current WHO revision, in English by default), use icd11_search.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Restrict search to 3-char categories, 4-char subcategories, or both. Default: all | all |
| query | Yes | Search terms in Portuguese, AND between words (e.g., "diabetes", "infarto", "câncer de mama"); accents ignored, everyday words resolved to CID-10 wording | |
| max_results | No | Maximum number of results (1-100). Default: 25 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hits | Yes | Matching CID-10 V2008 codes with their Portuguese titles, chapter and group. |
| level | Yes | Code level searched: 3-char categories, 4-char subcategories, or all. |
| query | Yes | The search terms as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| shown_count | Yes | Number of codes returned in hits (at most max_results). |
| total_count | Yes | Number of CID-10 codes matching the query, before the max_results cap. |
| vocabulary_notes | No | Present only when a query word was translated to the CID-10's own wording (e.g. "câncer" → "neoplasia maligna"); says which. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, open-world, so the description rightly spends its budget on non-obvious search behavior instead: diacritic insensitivity, AND-across-words semantics, everyday-Portuguese vocabulary resolution with concrete mappings (câncer→neoplasia maligna, AVC→acidente vascular cerebral), the vocabulary_notes signal in the response, and the exact terminology version searched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then structured into use cases, behavior, and sibling disambiguation in a logical order. It runs somewhat long and the use-case bullets partially echo the opening sentence, but no sentence is genuinely expendable given the vocabulary-resolution detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description correctly avoids explaining return shapes while still flagging the one response field an agent must interpret (vocabulary_notes). Query construction, level semantics, version scope, and sibling routing are all covered, leaving nothing an agent needs missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents query, level, and max_results including the accent-insensitive and vocabulary-resolution behavior. The description's query guidance largely restates the schema, and level/max_results are only indirectly illuminated by the '3-char categories and/or 4-char subcategories' line, so it meets but does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (search the Brazilian CID-10 by Portuguese text) with explicit scope: V2008, Portuguese, categories and subcategories. It explicitly names the sibling it is not (icd11_search) and the boundary between them (international/English ICD-11).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a dedicated 'Use this tool to' block with three concrete scenarios (SUS/ANVISA coding, official CBCD/USP translation lookup, billing/epidemiology/clinical documentation) and closes with an explicit alternative for the ICD-11 case. Both when-to-use and when-to-use-something-else are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchDeep Research DocumentARead-onlyIdempotentInspect
Returns the full document for an id obtained from search, as { id, title, text, url, metadata }: text is the readable content (Markdown) and url the canonical public page to cite.
Companion of search in the OpenAI Deep Research contract, over the medical terminologies (CID-10 categories and chapters, ICD-11, LOINC, RxNorm, MeSH, terminology version records) catalog. Only ids returned by search are valid; an unknown id returns an error.
The terminology tools (icd11_*, cid10_*, loinc_*, rxnorm_*, mesh_*, atc_*, map_*, find_equivalent, validate_codes) remain the tools for data queries.
Behavior: read-only and idempotent — a live GET against the public source when the document needs it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identifier of a document returned by `search` |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Unique identifier of the document on this server; what `fetch` takes |
| url | Yes | Canonical public URL of the document — ChatGPT's citation depends on it |
| text | Yes | Full readable content of the document (Markdown) |
| title | Yes | Human-readable title of the document |
| metadata | No | Additional key/value pairs about the document (kind, source, period…) |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world. The description adds real context beyond them: only ids from `search` are valid, an unknown id returns an error, and a live GET hits the public source. The error behavior is the most valuable disclosure. Minor gap: no mention of rate limits or failure modes on the live fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Return shape and the search dependency come first, which is the right front-loading. Three compact paragraphs with no filler. The listing of individual terminology tool prefixes is slightly noisy but functional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still clarifies the two fields an agent must reason about (Markdown `text`, canonical `url`), covers the id contract, error behavior and the read-only live-fetch model. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter documented at 100% schema coverage, so the baseline is satisfied. The description goes further by constraining provenance of the id ('only ids returned by `search`'), which the schema's terse 'Identifier of a document returned by `search`' only partially captures.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Returns) and resource (the full document for an id), with the exact return shape ({id, title, text, url, metadata}) spelled out. It names its only companion, `search`, and states the id must come from it, so the agent can distinguish it from every sibling at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('id obtained from `search`') and when-not: it tells the agent that unknown ids error out and that data queries belong to the terminology tools (`icd11_*`, `loinc_*`, etc.). This routing guidance is exactly what separates it from the ~30 siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_equivalentFind Equivalents Across TerminologiesARead-onlyIdempotentInspect
Ranked unified search for equivalent terms across multiple medical terminologies.
Use this tool to:
Find the same concept in different coding systems
Compare how terminologies represent a concept
Support terminology mapping and data integration
Searches across: ICD-11, LOINC, RxNorm, and MeSH. Set target_terminologies to limit which are searched, or set source_terminology to exclude one (e.g. when you already have a code from that terminology and want equivalents elsewhere). The two combine: source is subtracted from targets. limit caps candidates per terminology (default 5, max 10).
Every candidate carries match_score (lexical similarity to the search term, 0-1) and rank (global position across all searched terminologies) — both computed by this server, since upstreams don't expose comparable relevance scores. Candidates from different terminologies whose titles are lexically identical are clustered in groups — a strong same-concept signal (absence of a group is NOT evidence of non-equivalence).
Searches upstreams in English. For official pt-BR content, use the dedicated tools: icd11_search/mesh_search accept language: "pt", and cid10_search is natively Portuguese.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Medical term to search (e.g., "diabetes", "aspirin") | |
| limit | No | Maximum candidates returned PER terminology (1-10, default 5). This is a cap, not a page: the live fan-out has no stable cursor across five upstreams, so raise the limit instead of paging. | |
| source_terminology | No | If set, this terminology is excluded from the search. Use this when the term came from this terminology and you want equivalents in the others. Combines with target_terminologies by subtraction (source is removed from the target list). | |
| target_terminologies | No | Limit the search to these terminologies. If omitted, all five are searched. |
Output Schema
| Name | Required | Description |
|---|---|---|
| term | Yes | The medical term as submitted. |
| groups | Yes | Candidates from different terminologies whose normalized titles are identical, grouped as likely the same concept; best match_score first. Empty when nothing groups (not evidence of non-equivalence). |
| ranking | Yes | Self-description of the ranking: match_score, rank and groups are computed by this server, not upstream relevance. |
| results | Yes | Per-terminology results, keyed by terminology. A key is absent when that terminology was not searched; found=false with empty items and error null means searched, no hits. |
| provenance | Yes | One provenance block per upstream source that contributed to this response (licenses are never merged; each block carries the origin diagnostics of ITS source) |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| source_terminology | Yes | Terminology excluded from the search; null when none was given. |
| searched_terminologies | Yes | Terminologies actually searched: the targets minus source_terminology. Empty when nothing was left to search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent/openWorld annotations by disclosing derived fields the server computes itself ('match_score', 'rank') because upstreams lack comparable relevance scores, and by explaining the 'groups' clustering signal plus the caveat that absence of a group is not evidence of non-equivalence. It also discloses the English-only upstream behavior, which materially affects result interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose first, then three short usage bullets, then the mechanics (systems, source/target interaction, limit, scoring, grouping), then the language caveat — a deliberately ordered funnel. Every sentence adds either routing information or result-interpretation guidance; nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-param, five-upstream fan-out tool with an output schema present, the description covers exactly what the schema cannot: cross-terminology semantics, score provenance, grouping interpretation, and language limitations. No gap remains that would cause an agent to mis-call or mis-read the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameters are already well documented in-schema, but the description adds the non-obvious interaction rule that source is subtracted from targets, and reinforces that limit is a per-terminology cap rather than a page. Much of the remaining parameter text restates what the schema already says, so it sits just above the baseline rather than transforming understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'ranked unified search for equivalent terms across multiple medical terminologies' — and immediately enumerates the covered systems (ICD-11, LOINC, RxNorm, MeSH). An agent can distinguish this cross-terminology mapper from single-vocabulary siblings like icd11_search or rxnorm_search without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'use this tool to' cases (find the same concept in other systems, compare representations, support mapping/integration) and explains the source_terminology exclusion pattern with a concrete scenario. It also routes away to alternatives by name when official pt-BR content is needed (icd11_search, mesh_search, cid10_search).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
harmonize_termsHarmonize Free-Text Terms to Standard CodesARead-onlyIdempotentInspect
Map a LIST of free-text clinical terms to standard codes in one call, with ranked candidates and a confidence label for each — the building block of a reviewable crosswalk.
Use this tool to:
Harmonize a column of diagnoses, drugs or lab names from a dataset to ICD-11 / RxNorm (+ ATC) / LOINC
Triage which terms map cleanly (exact / strong) and which need a person (needs_review)
Build a crosswalk you can audit: every row keeps its candidates, scores and sources
Give each term its domain: diagnosis → ICD-11; drug → RxNorm concepts (ingredients first) plus the ATC classes of the term; lab → LOINC. Up to 50 terms per call — a longer list is refused with a validation error: split it into batches of 50. Repeated term+domain pairs are looked up once. max_candidates keeps 1-5 per term (default 3).
Every candidate carries match_score (lexical, 0-1, the find_equivalent formula) and match_type: exact = same words after normalization; strong = every term word is in the title (or the matched synonym) and score ≥ 0.85; needs_review = anything else. A one-word term is exact or needs_review, never strong ("Tylenol" vs "Tylenol PM" is a different product). Synonyms, abbreviations ("MI", "HbA1c") and misspellings land in needs_review or no_candidates — the label errs toward asking a person. Candidates sharing no word with the term are dropped, as are LOINC codes named "Deprecated". For diagnoses, a candidate is also scored against the synonyms WHO matched (e.g. "hypertension NOS" for Essential hypertension), reported in matched_label; postcoordinated clusters (codes with "/" or "&") are left out — build those with icd11_postcoordination. Lab names are ambiguous without specimen and property: "glucose" matches over a thousand LOINC codes, so write "glucose serum" or expect needs_review. One failed lookup does not fail the batch: that row comes back with status "error".
Terms are searched in English and sent to the WHO and NLM APIs — de-identify the list first. For Brazilian Portuguese diagnoses use cid10_search; to check codes you already have, use validate_codes; for one term across every terminology, use find_equivalent. Record the vocabulary versions with the provenance blocks (one per source) and terminology_versions.
| Name | Required | Description | Default |
|---|---|---|---|
| terms | Yes | Terms to harmonize, each with its domain. Up to 50 per call; repeated term+domain pairs are looked up once. | |
| max_candidates | No | Candidates kept per term, best first (1-5, default 3). |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | Terms submitted. |
| counts | Yes | Submitted terms tallied by outcome (best-candidate match_type, no candidates, or error); the five counts add up to total. |
| ranking | Yes | Self-description of the ranking: match_score and match_type are computed by this server, not upstream relevance. |
| results | Yes | One entry per submitted term, in request order. |
| provenance | Yes | One provenance block per upstream source that contributed to this response (licenses are never merged; each block carries the origin diagnostics of ITS source) |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| unique_lookups | Yes | Distinct term+domain pairs actually looked up. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare safety/idempotency; the description goes far past them with the 50-term hard limit and its validation error, per-row error isolation ('one failed lookup does not fail the batch'), dedup of repeated term+domain pairs, dropped-candidate rules (no shared word, 'Deprecated' LOINC, postcoordinated clusters), English-only searching, and a de-identification warning because terms go to WHO/NLM APIs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then a scannable bullet block, then limits, label semantics, and alternatives in that order — the structure is easy to navigate. Some content duplicates the schema (domain routing) and the match_type rules run long, but every sentence carries operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batched, open-world, partially-failing lookup tool this covers everything an agent needs: batching limits, per-row error handling, label semantics for triage, data-sensitivity caveat, and a pointer to terminology_versions plus per-source provenance for reproducibility. Output schema exists, so return-shape detail is correctly omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description still adds value by re-framing domain as a vocabulary route (RxNorm ingredients first, plus ATC classes of the term) and by spelling out that max_candidates keeps 1-5 per term with default 3, and that repeats are looked up once. It doesn't add syntax beyond the schema, so not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Map a LIST of free-text clinical terms to standard codes') and names the output shape (ranked candidates with confidence labels). It also explicitly differentiates itself from siblings: find_equivalent for single terms across terminologies, cid10_search for pt-BR diagnoses, validate_codes for checking existing codes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'Use this tool to' block enumerates the three concrete scenarios (dataset columns, triage by label, auditable crosswalk), and the closing paragraph names each alternative with the condition that selects it. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icd11_chaptersList ICD-11 ChaptersARead-onlyIdempotentInspect
List all ICD-11 chapters (top-level categories) of the pinned WHO release.
Use this tool to:
Get an overview of ICD-11 structure
Find which chapter covers a body system or condition type
Get chapter URIs to drill down with icd11_hierarchy (direction 'children')
Returns 28 entries in one response, no pagination — chapters 01-26 plus the supplementary sections V (functioning) and X (extension codes) — each with number, code, title and URI. Each chapter is fetched separately from WHO; if one fetch fails, that entry keeps its URI and carries an error instead of a title, and the rest still come back. Set language for WHO's official translations (e.g. language: "pt"); the result is cached, so repeated calls are cheap.
When NOT to use: to find a specific disease, use icd11_search; for the Brazilian CID-10 (ICD-10) chapters, use cid10_chapters.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated. | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| chapters | Yes | Top-level ICD-11 MMS chapters in WHO order; a chapter the WHO failed to return keeps its number and URI, with error set and the other fields null. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations: it discloses the exact result size (28 entries, no pagination), the composition of the list (01-26 plus V and X), and the partial-failure contract where an individual chapter keeps its URI and carries an `error` instead of a title. It also notes WHO-side per-chapter fetching and result caching, which materially affects retry and cost decisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then scenarios, then return/failure behavior, then exclusions — a logical order. The field enumeration ('number, code, title and URI') is redundant given the output schema, but the rest of the prose earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only listing tool with an output schema and full annotations, everything an agent needs is present: scope, result size, failure semantics, caching, language behavior, and sibling routing. No gap remains that would cause a misinvocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with an enum, so the baseline is 3; the description still adds practical value by showing a concrete invocation (`language: "pt"`) and tying the parameter to a caching consequence. It slightly repeats the schema's 'official translation' wording rather than extending it, keeping it out of 5 territory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ('List all ICD-11 chapters (top-level categories) of the pinned WHO release'), plus a parenthetical that defines what a chapter is. It is unambiguous against icd11_search and cid10_chapters, which are named explicitly later.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides three explicit 'use this tool to' scenarios (structure overview, body-system routing, obtaining URIs to drill down) and a 'When NOT to use' block that names the correct alternatives (icd11_search for diseases, cid10_chapters for CID-10). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icd11_hierarchyBrowse ICD-11 HierarchyARead-onlyIdempotentInspect
Navigate the ICD-11 hierarchy to find parent or child entities.
Use this tool to:
Find broader categories (parents) of a condition
Find specific subtypes (children) of a condition
Understand the classification structure
Name the entity by code (a leaf code like "5A11", or a block range like "5A10-5A2Y" — blocks come back from 'parents' with an empty code and a code_range) or by uri (the URI any previous answer returned). Direction 'parents' returns ancestor categories, 'children' returns subcategories. ICD-10 codes (like "E11") are not ICD-11 codes: convert them first with map_icd10_to_icd11.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | Entity URI as returned by icd11_lookup, icd11_search or a previous icd11_hierarchy call | |
| code | No | ICD-11 code (e.g., "BA00", "5A11") or block range (e.g., "5A10-5A2Y") | |
| language | No | Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated. | en |
| direction | Yes | Direction: "parents" for ancestors, "children" for subtypes |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | The code, block range or URI the walk started from, as submitted. |
| entities | Yes | Direct parents or children of the entity; empty when it has none. Entries the WHO failed to return are left out. |
| direction | Yes | Direction walked: parents (ancestors) or children (subtypes). |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds non-obvious behavioral context, especially that blocks may come back from 'parents' with an empty code and a code_range. It does not discuss authentication, rate limits, or failure behavior, but those are less critical for a read-only hierarchy browse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose and bulleted use cases, then gives the key invocation details. It is somewhat longer than necessary and repeats the parents/children distinction in both the bullets and the direction sentence, but the redundancy is mild and the content remains useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and annotations, the description covers what an agent needs to invoke the tool correctly: when to use hierarchy navigation, how to specify the entity by code or URI, what direction means, and the special block-range caveat. Return-value details are appropriately left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema by clarifying that 'code' can be a leaf code or block range, that block ranges are returned by 'parents' with an empty code and code_range, and that 'uri' is any URI from a previous answer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: navigate the ICD-11 hierarchy to find parent or child entities. It immediately distinguishes the tool's two core operations (parents vs. children) and frames the classification structure use case, so an agent can tell this apart from lookup/search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit use cases for finding broader categories, subtypes, and understanding classification structure. It also gives an important alternative: ICD-10 codes must be converted first with map_icd10_to_icd11. However, it does not explicitly state when to prefer icd11_lookup or icd11_search over hierarchy navigation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icd11_lookupICD-11 Entity DetailsARead-onlyIdempotentInspect
Get detailed information about ONE ICD-11 entity you already have a code or URI for.
Use this tool to:
Get the full definition of a disease
Retrieve coding notes, inclusions and exclusions
Get the official title and index terms (synonyms)
Provide code (e.g., "BA00") or uri (any URI a previous answer returned) — at least one is required; calling with neither returns a validation error naming both. Set language for WHO's official translations (e.g. language: "pt" for official Portuguese).
Returns a single entity (no pagination). A code WHO does not know comes back as a "not found" error, never an empty record.
When NOT to use: to find a code from a disease name, use icd11_search first; to walk parents/children, use icd11_hierarchy; for an ICD-10 code (like "E11"), convert it with map_icd10_to_icd11 — ICD-10 codes are not ICD-11 codes.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | Full ICD-11 foundation URI | |
| code | No | ICD-11 code (e.g., "BA00", "1A00") | |
| language | No | Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated. | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| uri | Yes | WHO ICD-11 entity URI. |
| code | Yes | ICD-11 MMS code (e.g. "BA00"); null for blocks and chapters, which have a code_range instead. |
| title | Yes | Official title in the requested language ("Unknown" when the WHO returns none). |
| block_id | Yes | WHO block identifier for blocks; null otherwise. |
| class_kind | Yes | WHO class kind (e.g. "chapter", "block", "category"); null when the WHO does not state it. |
| code_range | Yes | Code range of a block or chapter (e.g. "BA00-BA0Z"); null for coded categories. |
| definition | Yes | Official short definition; null when the WHO publishes none. |
| exclusions | Yes | Exclusion entries (conditions coded elsewhere), each with its URI and label. |
| inclusions | Yes | Inclusion entries (synonyms and terms included under this entity), each with its URI and label. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| browser_url | Yes | Link to the entity in the WHO ICD-11 browser; null when the WHO returns none. |
| coding_note | Yes | Official coding note; null when the WHO publishes none. |
| index_terms | Yes | Index terms that lead to this entity, each with its URI and label. |
| long_definition | Yes | Official detailed description; null when the WHO publishes none. |
| diagnostic_criteria | Yes | Official diagnostic criteria text; null when the WHO publishes none. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, not destructive), but the description adds real behavioral context: at-least-one-of code/uri requirement with a validation error naming both, single-entity return with no pagination, unknown code returns a "not found" error rather than an empty record, and no machine translation. These are error/edge behaviors the annotations do not express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and precondition, then structured bullets for capabilities, then a params paragraph, then exclusions. No redundant restatement of the name or title; every sentence adds usable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return shape need not be described, and the description still covers error semantics, single-record behavior, and language handling. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds value the schema cannot: it states that at least one of `code` or `uri` is required even though the schema lists zero required parameters, and it clarifies that `language` selects WHO's official translation rather than translating content.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get detailed information about ONE ICD-11 entity") and immediately scopes it to entities the caller already has a code or URI for. This cleanly separates it from icd11_search, icd11_hierarchy and map_icd10_to_icd11, which are all named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists the use cases (full definition, coding notes, inclusions/exclusions, title and synonyms) and then an explicit "When NOT to use" block routing to icd11_search, icd11_hierarchy and map_icd10_to_icd11, including the caveat that ICD-10 codes like "E11" are not valid here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icd11_postcoordinationICD-11 Postcoordination OptionsARead-onlyIdempotentInspect
List the postcoordination axes WHO allows for one ICD-11 stem code (MMS linearization, pinned release).
Postcoordination means attaching extra detail to a stem code — severity, laterality, anatomy, causing agent, etc. — to build a composite (cluster) code.
Use this tool to:
See which axes a stem code accepts before building a composite code
Check which axes are REQUIRED vs optional
See whether an axis takes one or several values, and how many values it offers
Provide an ICD-11 code (e.g., "BA00"). Returns one entry per axis with axis_name, required, allow_multiple and value_count — the count of allowed values, not the values themselves. A code with no postcoordination, or one WHO does not know, returns an empty axes list (not an error), so check the code with icd11_lookup if the list is unexpectedly empty.
When NOT to use: this does not build or validate a composite code, and it does not list the allowed values; to get a code from a disease name, use icd11_search.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ICD-11 code to get postcoordination info for |
Output Schema
| Name | Required | Description |
|---|---|---|
| axes | Yes | Postcoordination axes the WHO allows for this code; empty when it has none or the WHO has no postcoordination info for it. |
| code | Yes | The ICD-11 code as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/openWorld annotations, the description discloses non-obvious behavior: it covers only MMS linearization at the pinned release, unknown or non-postcoordinated codes return an empty axes list rather than an error, and value_count is a count rather than the values. These are exactly the surprises that would otherwise cause an agent to mis-handle a response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the definition, then usage bullets, then return behavior, then exclusions. The middle paragraph explaining postcoordination is functional domain context rather than padding, and each subsequent sentence introduces a distinct fact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still summarizes the returned fields and their meaning, plus the empty-list edge case. For a single-parameter read tool with full annotations, there is no gap an agent would need to guess at before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is documented there, so the baseline is 3. The description adds a concrete code format example ('BA00') and ties the parameter to a validation path (check the code with icd11_lookup if the result is unexpectedly empty), which is modest but real added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific verb+resource ('List the postcoordination axes') scoped to one ICD-11 stem code, and the following paragraph defines what postcoordination actually is. An agent can distinguish this from icd11_lookup, icd11_hierarchy and icd11_search without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Three explicit 'Use this tool to' bullets give positive triggers (check axes before building a composite, check required vs optional, check cardinality). The 'When NOT to use' block names concrete alternatives — icd11_lookup for code verification, icd11_search for name-to-code — leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icd11_searchSearch ICD-11ARead-onlyIdempotentInspect
Search for medical conditions, diseases, and health problems in ICD-11 (International Classification of Diseases, 11th Revision).
Use this tool to:
Find ICD-11 codes for diagnoses
Search for diseases by name or keyword
Look up conditions in multiple languages
Set language for WHO's official translations — e.g. language: "pt" searches and returns the official Portuguese (pt-BR) ICD-11 labels. Never machine-translated.
Returns matching entities with codes, titles, and relevance scores.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search text (disease name, symptom, or keyword) | |
| language | No | Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated. | en |
| max_results | No | Maximum number of results (1-100). Default: 25 |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | The search text as submitted. |
| entities | Yes | Matching ICD-11 MMS entities in WHO relevance order, at most max_results. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| total_count | Yes | Number of entities the WHO search returned, before the max_results cap. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, non-destructive behavior, so the safety bar is met. The description adds genuinely non-obvious behavior: the language parameter selects WHO official translations only ('Never machine-translated') and that 'pt' maps to pt-BR. It does not mention result ranking/pagination behavior beyond 'relevance scores'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a one-line purpose, then a scannable use-case list and a note on language semantics. Some redundancy with the input schema descriptions (the official-translation point appears twice) keeps it short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter, read-only search tool with an output schema and full annotation coverage, the description supplies everything needed to invoke it correctly: what it searches, what the language flag guarantees, and what comes back. Only sibling routing (search vs. lookup) is left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents all three parameters, including the official-translation nuance and the pt-BR example — the description largely repeats this. It adds no new syntax or constraint detail (no max_results guidance, no query-matching semantics), so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search for medical conditions... in ICD-11') plus concrete outcomes (find codes, search by name/keyword). It does not explicitly differentiate from close siblings such as icd11_lookup or cid10_search, and 'Find ICD-11 codes for diagnoses' partially overlaps with what a lookup tool would do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bullet list gives clear usage contexts (find codes, keyword search, multilingual lookup), which is stronger than implied usage. However, it offers no exclusions — nothing says when to prefer icd11_lookup (exact code) or cid10_search / map_icd10_to_icd11 instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loinc_answersLOINC Answer ListsARead-onlyIdempotentInspect
Get the list of valid answers for a LOINC questionnaire item.
Use this tool to:
Find valid response options for survey questions
Get answer codes (LA…) for data entry validation
Get the item scores of scored instruments (e.g. PHQ-9: "Not at all" = 0 … "Nearly every day" = 3)
Returns each answer with its LOINC answer code (LA…), text, display order and score (null when the list has none). A valid LOINC code without a defined answer list (e.g. a numeric lab such as 2339-0) returns an empty list; a code LOINC does not know returns a "not found" error.
Only applicable to LOINC codes that represent questions with defined answer sets. For the questions of a whole questionnaire, use loinc_panels; to find a code by name, use loinc_search.
| Name | Required | Description | Default |
|---|---|---|---|
| loinc_num | Yes | LOINC number (e.g., "2339-0") |
Output Schema
| Name | Required | Description |
|---|---|---|
| answers | Yes | Answer list of the question in display order; empty when the code exists but has no answer list. |
| loinc_num | Yes | The LOINC number as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by describing the return fields, including LA answer codes, text, display order, and score. It also discloses edge-case behavior: a valid LOINC code without an answer list returns an empty list, while an unknown code returns a not-found error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, then uses a tight bullet list for use cases and a compact paragraph for return/error behavior. No sentence feels redundant or misplaced.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a one-parameter read-only lookup tool: purpose, applicability, alternatives, return shape, and error cases are all covered. The output schema exists, and the description still adds useful behavioral context without over-explaining.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is fully documented in the schema with a pattern and example, so the baseline is 3. The description reinforces that the input is a LOINC code and gives contextual examples, but does not add syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: getting valid LOINC answers for a questionnaire item. It clearly distinguishes itself from loinc_panels and loinc_search by naming what each sibling is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases and applicability constraints, including that it only applies to LOINC codes representing questions with defined answer sets. It names alternatives for whole questionnaires (loinc_panels) and code lookup by name (loinc_search).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loinc_detailsLOINC Code DetailsARead-onlyIdempotentInspect
Get detailed information about a specific LOINC code.
Use this tool to:
Get the full name and description of a LOINC code
Find the component, property, timing, and system
Check the scale type and method
Provide a LOINC number in format "XXXXX-X" (e.g., "2339-0" for Glucose).
| Name | Required | Description | Default |
|---|---|---|---|
| loinc_num | Yes | LOINC number (e.g., "2339-0") |
Output Schema
| Name | Required | Description |
|---|---|---|
| class | Yes | LOINC class the term is grouped under (e.g. "CHEM"). |
| status | Yes | LOINC term status (e.g. "ACTIVE", "DEPRECATED"); empty when the source omits it. |
| system | Yes | LOINC axis 4, System: the specimen or thing observed (e.g. "Bld", "Ser/Plas"). |
| property | Yes | LOINC axis 2, Property: the kind of quantity (e.g. "MCnc" = mass concentration). |
| component | Yes | LOINC axis 1, Component: what is measured or observed (e.g. "Glucose"). |
| loinc_num | Yes | LOINC number (e.g. "2339-0"). |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| scale_type | Yes | LOINC axis 5, Scale: Qn (quantitative), Ord, Nom, Nar, etc. |
| short_name | Yes | LOINC short name; empty when the source has none. |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| method_type | Yes | LOINC axis 6, Method; empty when the term specifies none. |
| time_aspect | Yes | LOINC axis 3, Time: point in time or interval of the observation (e.g. "Pt", "24H"). |
| long_common_name | Yes | LOINC Long Common Name, the full human-readable name of the term. |
| external_copyright_notice | Yes | Third-party copyright notice the term carries, served verbatim (LOINC License §10); null when it carries none. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world, and non-destructive, so the safety profile is fully covered. The description adds the shape of the returned record (component, property, timing, system, scale, method), but since an output schema exists this largely restates structured data; nothing is said about behavior for unknown or malformed codes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short, front-loaded, and scannable with a bulleted capability list followed by the input format note. The only slack is the format sentence, which repeats the schema's example.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, a fully documented single parameter, and an output schema, the definition covers what an agent needs to call it correctly. Missing only the relationship to loinc_search and any error behavior for invalid codes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already provides the pattern and the '2339-0' example. The description's format note ('XXXXX-X', Glucose example) duplicates that, so it adds no semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get detailed information about a specific LOINC code'), which is unambiguous. However, it never distinguishes itself from siblings like loinc_search, loinc_answers, or loinc_panels, so the agent must infer that this is the lookup-by-identifier path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bulleted 'Use this tool to' list implies usage when you already hold a LOINC number, but it names no alternatives and gives no exclusion criteria. The sibling loinc_search is the obvious companion (find a code, then detail it) and is never mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loinc_panelsLOINC Panel StructureARead-onlyIdempotentInspect
Get the structure of a LOINC panel or form.
Use this tool to:
See all tests included in a panel (e.g., CBC, metabolic panel)
Get the structure of assessment forms
Find related observations grouped together
Returns the list of LOINC codes that make up the panel.
| Name | Required | Description | Default |
|---|---|---|---|
| loinc_num | Yes | LOINC number (e.g., "2339-0") |
Output Schema
| Name | Required | Description |
|---|---|---|
| panel | Yes | Panel/form definition with its member items; null when no panel structure is found for the code (not a panel, or no definition available). |
| loinc_num | Yes | The LOINC number as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is fully covered without prose. The description adds only that the result is a list of LOINC codes making up the panel — which the output schema already conveys — and says nothing about panel-vs-form differences, missing/empty panels, or hierarchy depth. Adequate but thin beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded, the bullets are short and scannable, and there is no filler. The final 'Returns the list of LOINC codes...' sentence partially duplicates the output schema, which is the only waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, full schema coverage, four annotations, and an output schema, the description covers everything needed to invoke correctly: what it does, when to reach for it, and what shape the answer takes. Nothing essential is missing for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a documented pattern and example ('2339-0'), so the schema fully carries the parameter burden. The description adds only the implication that loinc_num must identify a panel or form rather than an arbitrary LOINC code, which is a small semantic gain. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get the structure of a LOINC panel or form') and the bullet list clarifies the resource types (panels, assessment forms, grouped observations). It does not explicitly name how it differs from close siblings like loinc_details or loinc_answers, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use this tool to:' list gives three concrete triggering scenarios (CBC/metabolic panel contents, assessment form structure, related grouped observations), which is clear context for selection. However, it names no exclusions or alternatives — e.g. it never says to use loinc_answers for answer lists or loinc_details for a single test — leaving the agent to disambiguate against 30+ siblings on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loinc_searchSearch LOINCARead-onlyIdempotentInspect
Search for laboratory tests, clinical observations, and measurements in LOINC (Logical Observation Identifiers Names and Codes).
Use this tool to:
Find LOINC codes for lab tests (e.g., "glucose", "hemoglobin")
Search for clinical measurements and vital signs
Look up diagnostic observations
Returns matching LOINC codes with names, components, and properties.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term (test name, keyword, or partial LOINC code) | |
| max_results | No | Maximum number of results (1-100). Default: 25 |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | Matching LOINC terms in source relevance order. |
| query | Yes | The search term as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| shown_count | Yes | Number of terms returned in items (at most max_results). |
| total_count | Yes | Total number of LOINC terms matching the query at the source, which may exceed the items returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that results include names, components, and properties, but because an output schema exists this return-value detail is largely redundant and no further behavioral context such as ranking or pagination is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and then uses a compact use-case list. It is slightly repetitive with the opening sentence and examples, but still efficient and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with full schema description coverage, annotations covering safety and open-world behavior, and an output schema, the description provides enough purpose, use cases, and return context for correct invocation. No critical information appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both query and max_results, including defaults and bounds. The description adds examples of query terms but no additional parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: search LOINC for laboratory tests, clinical observations, and measurements. It clearly distinguishes the domain from non-LOINC siblings, but does not explicitly distinguish it from LOINC siblings such as loinc_details, loinc_answers, or loinc_panels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context with examples like finding LOINC codes for glucose or hemoglobin and looking up diagnostic observations. It does not name alternatives or state when not to use this tool versus sibling LOINC tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_icd10_to_icd11Map ICD-10 to ICD-11ARead-onlyIdempotentInspect
Authoritative ICD-10 → ICD-11 mapping using WHO transition tables (release 2025-01, bundled with the server).
Returns the primary 1:1 ICD-11 category for the ICD-10 code plus any alternative ICD-11 candidates that WHO documents (some ICD-10 concepts split into multiple ICD-11 entities). For each mapping, includes the ICD-11 code, title, chapter, and the Foundation URI / Linearization URI for navigating to the full entity definition.
Use this for clinical coding, billing migration, retrospective analysis, and any workflow that needs authoritative mapping rather than text-search candidates. Coverage: 11,243 ICD-10 categories (excludes chapters and blocks like "A00-A09" which aren't used in clinical coding).
Provide a code like "E11" (Type 2 diabetes), "I21" (Acute MI), or "A07.8" (4 alternatives in WHO's table). Both dotted ("A07.8") and undotted ("A078") forms are accepted.
Returns "no mapping" when the code isn't in the WHO category-level table — that's the honest answer rather than a fuzzy search fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| icd10_code | Yes | ICD-10 code to query in the ICD-11 search index (e.g., E11, I21.0, J18.9) |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | Whether the code is in the WHO ICD-10 → ICD-11 transition table. |
| icd10 | Yes | Source ICD-10 entry from the WHO table. Null when found=false. |
| query | Yes | The ICD-10 code as submitted (raw, before normalization). |
| source | Yes | The bundled WHO ICD-10 → ICD-11 transition table release this answer comes from. |
| primary | Yes | Primary 1:1 ICD-11 mapping. Null when found=false. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| alternatives | Yes | Additional ICD-11 candidates WHO documents for this ICD-10 code. Empty when the primary is the only documented mapping (or when found=false). 1,461 of the 11,243 indexed codes have non-empty alternatives. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive), so the bar is lower, yet the description still adds substantial context: data provenance and release version, 11,243-category coverage envelope, split-mapping behavior, and the explicit "no mapping" outcome instead of a fuzzy fallback. That last point is particularly valuable for an agent deciding how to interpret an empty result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core mapping statement and organized into provenance, return contents, usage, and input format. Slightly long for a single-parameter tool, and the return-value paragraph overlaps with the output schema, but no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description needn't explain returns, yet it adds the one thing the schema can't convey: what a negative result means ("honest answer rather than a fuzzy search fallback") and what the mapping's domain boundaries are. Nothing an agent needs to call and interpret this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning the schema lacks: both dotted ("A07.8") and undotted ("A078") forms are accepted, and it gives worked examples including one with known multiple alternatives. This directly changes how an agent formats input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (ICD-10 → ICD-11 mapping) and names the authoritative source (WHO transition tables). It explicitly contrasts itself with text-search siblings ("rather than text-search candidates"), so an agent can distinguish it from icd11_search or find_equivalent without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names concrete use cases (clinical coding, billing migration, retrospective analysis) and explicitly routes agents away from fuzzy/text-search alternatives. The coverage note (excludes chapter/block codes like "A00-A09") is an implicit when-not-to-use rule that prevents a common mis-call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_descriptorMeSH Descriptor DetailsARead-onlyIdempotentInspect
Get detailed information about a MeSH descriptor by ID.
Use this tool to:
Get the full definition (scope note) of a MeSH term
View tree numbers showing hierarchy location
See related concepts and synonyms
Provide a MeSH Descriptor ID like "D015242" (Ofloxacin). Set language to request NLM's official translations where they exist (e.g. language: "pt").
| Name | Required | Description | Default |
|---|---|---|---|
| mesh_id | Yes | MeSH Descriptor ID (e.g., D015242, D003920) | |
| language | No | Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated. | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | MeSH descriptor ID (e.g. "D003920"). |
| uri | Yes | NLM MeSH RDF URI of the descriptor. |
| label | Yes | Descriptor heading, in the requested language when NLM publishes that translation. |
| concepts | Yes | The preferred concept with its entry terms (synonyms); non-preferred concepts are not retrieved. Empty when the descriptor names no preferred concept. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| qualifiers | Yes | Allowable qualifiers (subheadings) for the descriptor. |
| scope_note | Yes | Scope note (definition) of the descriptor's preferred concept; empty when it has none. |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| tree_numbers | Yes | Tree numbers placing the descriptor in the MeSH hierarchy (e.g. "C18.452.394.750"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered. The description adds that translations are NLM-official and never machine-translated, but that same fact is already stated verbatim in the schema's language property description, so net new behavioral disclosure is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence is front-loaded and the bullet list is tight, with no filler or repetition across sentences. The example parentheticals are slightly redundant with the schema but do not bloat the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A two-parameter read-only lookup with full schema coverage and an output schema needs little more; the description covers input format, the nature of the returned content, and language behavior. Nothing an agent needs in order to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the regex pattern plus enum already constrain both parameters, so baseline 3 applies. The description's ID example ('D015242' Ofloxacin) and language example duplicate material already present in the schema rather than adding new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get detailed information about a MeSH descriptor by ID') and enumerates what is returned (scope note, tree numbers, related concepts, synonyms). However, it never names the sibling lookup tools (mesh_search, mesh_tree, mesh_qualifiers) to draw a boundary, so differentiation is left implicit through the 'by ID' framing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use this tool to:' bullets give clear positive contexts (full definition, hierarchy location, synonyms) and the ID example shows the expected input form. It stops short of stating when NOT to use it or naming the alternative (e.g. use mesh_search when you only have a term string).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_qualifiersMeSH Allowable QualifiersARead-onlyIdempotentInspect
Get allowed qualifiers (subheadings) for a MeSH descriptor.
Use this tool to:
Find which qualifiers can be combined with a descriptor
Build precise MeSH search queries
Understand aspects that can be specified
Qualifiers refine descriptors (e.g., "Diabetes Mellitus/drug therapy").
| Name | Required | Description | Default |
|---|---|---|---|
| mesh_id | Yes | MeSH Descriptor ID (e.g., D015242, D003920) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mesh_id | Yes | The MeSH descriptor ID as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| qualifiers | Yes | Allowable qualifiers (subheadings) for the descriptor, each with its ID, URI and label. |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior, so the bar is lower. The description adds domain meaning (qualifiers are subheadings that refine descriptors) and an example, but it does not disclose any further behavioral traits such as error conditions or constraints beyond what the schema and annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: the core action appears in the first sentence, followed by a compact usage bullet list and a one-line clarifying example. Every sentence contributes without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple one-parameter lookup, rich schema, and presence of an output schema, the description covers what the tool does and when to use it. The only notable omission is sibling differentiation, which would help an agent choose between this and mesh_descriptor or mesh_search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the mesh_id parameter has a pattern and examples in the schema. The description adds no parameter-specific information beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get allowed qualifiers (subheadings) for a MeSH descriptor.' The purpose is unmistakable, but the description never names or distinguishes it from related siblings like mesh_descriptor or mesh_tree.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A 'Use this tool to' bullet list gives clear usage contexts (finding combinable qualifiers, building queries, understanding specified aspects). It lacks explicit when-not-to-use guidance or alternative-tool routing, but the positive guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_searchSearch MeSHARead-onlyIdempotentInspect
Search for MeSH (Medical Subject Headings) descriptors.
Use this tool to:
Find MeSH terms for indexing medical literature
Look up subject headings for PubMed searches
Find controlled vocabulary terms
Set language to request NLM's official translations where they exist (e.g. language: "pt" for Portuguese labels); content is never machine-translated.
Returns matching descriptors with MeSH IDs and labels.
| Name | Required | Description | Default |
|---|---|---|---|
| match | No | Match type: exact, contains, or startswith. Default: contains | contains |
| query | Yes | Search term (e.g., "diabetes", "heart failure") | |
| language | No | Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated. | en |
| max_results | No | Maximum number of results (1-100). Default: 25 |
Output Schema
| Name | Required | Description |
|---|---|---|
| match | Yes | Match type applied to descriptor labels. |
| query | Yes | The search term as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| descriptors | Yes | Matching MeSH descriptors, each with its ID (e.g. "D003920"), URI and label. |
| total_count | Yes | Number of descriptors returned (the NLM lookup is capped at max_results, so this is not a total count of all matches). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description only needs added context — and it supplies a real behavioral fact: translations are official NLM translations and content is never machine-translated. It also notes results carry MeSH IDs and labels, which helps the agent know the output is usable for downstream indexing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first line, followed by a scannable use-case list and a tightly scoped language note. The language paragraph duplicates the schema field description, which is the one piece of text that does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% schema coverage plus full annotations, the description covers what an agent needs: what it searches, why, and the translation caveat. Minor remaining gap is ranking/ordering expectations for results, but that is not essential to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (including both enums) are already fully documented in the schema. The description's language sentence restates the schema's language description almost verbatim and adds nothing about `match` semantics or ordering/truncation behavior for `max_results`. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search for MeSH ... descriptors') and the bullet list pins down the intent (indexing terms, PubMed subject headings, controlled vocabulary). It does not, however, distinguish itself from the nearby siblings mesh_descriptor, mesh_tree and mesh_qualifiers, so an agent must infer that this is the keyword-search entry point rather than the lookup/traversal one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use this tool to' block gives three concrete situations where this tool is the right choice (finding indexing terms, PubMed heading lookup, controlled vocabulary lookup). There are no exclusions or named alternatives telling the agent when to switch to mesh_descriptor or mesh_tree instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_treeMeSH Tree LocationsARead-onlyIdempotentInspect
Get the tree hierarchy location(s) for a MeSH descriptor.
Use this tool to:
See where a term fits in the MeSH hierarchy
Understand broader/narrower relationships
Find related terms in the same branch
MeSH tree numbers show the hierarchical path (e.g., C14.280.647 for Myocardial Infarction).
| Name | Required | Description | Default |
|---|---|---|---|
| mesh_id | Yes | MeSH Descriptor ID (e.g., D015242, D003920) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mesh_id | Yes | The MeSH descriptor ID as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| tree_numbers | Yes | Tree numbers placing the descriptor in the MeSH hierarchy; a descriptor can sit in several branches. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds real value beyond them by explaining what tree numbers represent and giving a concrete example format (C14.280.647), which tells the agent how to interpret the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then a scannable bullet list of use cases and a clarifying example. Slightly more verbose than strictly necessary since the bullets partly restate the hierarchy idea, but every line is relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup with an output schema, the description covers purpose, use cases, and output interpretation. Nothing about return shape needs explaining because the output schema handles it; only sibling disambiguation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single mesh_id parameter is fully documented with pattern and examples in the schema. The description only restates that the input is a MeSH descriptor, adding no format or constraint detail beyond the structured field, so the baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource ('Get the tree hierarchy location(s) for a MeSH descriptor'), which is unambiguous. It does not explicitly distinguish itself from the close sibling mesh_descriptor, so the agent must infer the boundary rather than being told.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bullet list gives clear positive triggers (see hierarchy placement, understand broader/narrower relationships, find related terms in a branch). It stops short of stating when not to use it or naming mesh_descriptor/mesh_search as alternatives for those cases, which is why this is not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rxnorm_classesRxNorm Drug ClassesBRead-onlyIdempotentInspect
Get therapeutic and pharmacologic classes for a drug.
Use this tool to:
Find the drug class (e.g., "Beta-blockers", "NSAIDs")
Identify therapeutic categories
Look up mechanism of action classifications
Returns class IDs, names, and classification sources.
| Name | Required | Description | Default |
|---|---|---|---|
| rxcui | Yes | RxCUI of the drug |
Output Schema
| Name | Required | Description |
|---|---|---|
| rxcui | Yes | The RxCUI as submitted. |
| classes | Yes | Drug classes NLM RxClass links to the RxCUI (one entry per class and relationship); empty when none. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds only that it returns class IDs, names and classification sources – information that duplicates the output schema. Nothing is said about data source (RxClass), coverage, or latency, so it adds modest value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a one-line purpose, then a short bulleted usage list and a return summary. Structurally clean and short, though the bullets largely echo the opening sentence rather than adding new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup tool with one parameter, full schema coverage and an output schema, the description is adequate but leaves gaps that matter in this family of tools: no differentiation from the ATC classification siblings and no note on what RxCUI granularity is expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter, rxcui, and schema description coverage is 100%, so the schema already documents it. The description's 'for a drug' adds no format or constraint detail (e.g., whether an ingredient or clinical-drug RxCUI is acceptable). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get therapeutic and pharmacologic classes for a drug.' An agent can tell it returns RxNorm/RxClass classification data. It does not explicitly distinguish itself from the similarly-purposed sibling atc_classify, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use this tool to' bullets give implied usage contexts (find drug class, therapeutic categories, mechanism of action), but they restate the purpose rather than discriminate. There is no guidance on when to prefer this over atc_classify or atc_lookup, which are plausible alternatives for the same classification question.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rxnorm_conceptRxNorm Concept DetailsARead-onlyIdempotentInspect
Get detailed information about a specific RxNorm concept by RxCUI.
Use this tool to:
Get the full name and synonyms for a drug
Check the concept status (active, remapped, etc.)
View related concepts (ingredients, brands, forms)
Provide an RxCUI (RxNorm Concept Unique Identifier) like "161" — as a string of digits or as an integer.
| Name | Required | Description | Default |
|---|---|---|---|
| rxcui | Yes | RxNorm Concept Unique Identifier (string of digits or integer, e.g. "161" or 161) | |
| include_related | No | Include related concepts (ingredients, brands, dose forms). Default false; true/false, also accepted as the strings "true"/"false" |
Output Schema
| Name | Required | Description |
|---|---|---|
| tty | Yes | RxNorm term type (e.g. "IN" ingredient, "SCD" clinical drug, "SBD" branded drug); null when found=false. |
| name | Yes | RxNorm normalized name of the concept; null when found=false. |
| found | Yes | false when RxNorm has no concept with this RxCUI (the lookup answered; the fields below are null) |
| rxcui | Yes | The RxCUI looked up. |
| status | Yes | RxNorm history status (e.g. "Active", "Remapped", "Obsolete"); "Active" when RxNav does not report one; null when found=false. |
| synonym | Yes | RxNorm synonym (may be empty); null when found=false. |
| umlscui | Yes | UMLS Concept Unique Identifier linked to the concept (empty when none); null when found=false. |
| language | Yes | Language of the concept name as RxNav reports it (e.g. "ENG"); null when found=false. |
| suppress | Yes | RxNorm suppress flag ("N" = not suppressed, the default when RxNav omits it); null when found=false. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| remapped_to | Yes | RxCUIs a remapped concept was replaced by; empty otherwise. |
| related_groups | Yes | Related concepts (ingredients, brands, dose forms) grouped by term type; null unless include_related=true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world, so the safety profile is handled. The description adds what the payload contains (full name, synonyms, concept status values like active/remapped, related concept types), which is useful beyond structured fields, though it says nothing about behavior for an unknown or invalid RxCUI.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence purpose followed by scannable bullets adds structure. The final sentence re-encodes the RxCUI format already given in the schema, which is mild duplication but not enough to hurt usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and fully covered annotations, the description needn't explain return shapes, and it correctly focuses on input and scope. The only gap is unstated error behavior for invalid RxCUIs, minor for a simple read-only lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented; the description mostly restates the rxcui format ("161", digits or integer) that the schema pattern/anyOf already conveys. It does link 'related concepts (ingredients, brands, forms)' to include_related, a small value-add, but doesn't note the default-false behavior beyond what the schema says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get details), resource (RxNorm concept), and identifier (RxCUI), plus an enumerated list of what the details include (name/synonyms, status, related concepts). This clearly separates it from rxnorm_search (querying) and rxnorm_ingredients/rxnorm_classes (targeted sub-views).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use this tool to:' bullets give clear conditions for invoking it, and the closing line makes the input requirement explicit. It never states when not to use it or names alternatives such as rxnorm_search for callers who don't yet have an RxCUI, so no exclusions are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rxnorm_ingredientsRxNorm Drug IngredientsARead-onlyIdempotentInspect
Get active ingredients for a drug by RxCUI.
Use this tool to:
Find the active ingredients in a medication
Check for single vs. multiple ingredient products
Identify the generic components of brand drugs
Returns ingredient RxCUIs and names.
| Name | Required | Description | Default |
|---|---|---|---|
| rxcui | Yes | RxCUI of the drug |
Output Schema
| Name | Required | Description |
|---|---|---|
| rxcui | Yes | The RxCUI as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| ingredients | Yes | Ingredient concepts (term types IN and MIN) RxNav relates to the RxCUI; empty when none. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the main behavioral profile. The description adds that it returns ingredient RxCUIs and names, but does not describe error behavior for unknown RxCUIs or other edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and well structured, with the core action in the first sentence and use cases in bullets. The bullets partially restate the first sentence, but the overall text is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter tool with an output schema and rich annotations, so the description covers the essential purpose and usage. A minor gap remains around unknown-RxCUI behavior, but nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the single rxcui parameter is already documented in the schema. The description only says 'by RxCUI' and does not add format, validation, or lookup semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get active ingredients for a drug by RxCUI. It is clear what the tool does, but it does not explicitly distinguish itself from nearby RxNorm siblings such as rxnorm_concept or rxnorm_classes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use this tool to' bullets give clear usage contexts, including finding active ingredients and distinguishing single- vs. multiple-ingredient products. However, it does not state when not to use it or name alternative tools for related lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rxnorm_ndcRxNorm / NDC MappingARead-onlyIdempotentInspect
Map between RxNorm concepts and National Drug Codes (NDC).
Use this tool to:
Get all NDC codes for a drug (by RxCUI)
Find the RxCUI for an NDC code
Cross-reference between coding systems
Provide either an RxCUI to get NDCs, or an NDC to get the RxCUI.
| Name | Required | Description | Default |
|---|---|---|---|
| ndc | No | NDC code to look up RxCUI (alternative to rxcui) | |
| rxcui | No | RxCUI to get NDC codes for |
Output Schema
| Name | Required | Description |
|---|---|---|
| ndc | Yes | rxcui_for_ndc: the NDC as submitted; null in ndcs_for_rxcui mode. |
| ndcs | Yes | ndcs_for_rxcui: NDC codes RxNorm lists for the RxCUI (empty when none); always empty in rxcui_for_ndc mode. |
| rxcui | Yes | ndcs_for_rxcui: the RxCUI as submitted. rxcui_for_ndc: the RxCUI the NDC belongs to, or null when RxNorm has none for it. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| query_mode | Yes | Which lookup ran: ndcs_for_rxcui (rxcui given, list its NDCs) or rxcui_for_ndc (ndc given, find its RxCUI). |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds that the tool is bidirectional and takes exactly one identifier, but says nothing about cardinality of results (one NDC vs many), unmatched-code behavior, or partial-match handling — the openWorldHint suggests external lookups, yet no failure mode is described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by scannable bullets and a closing input rule; nothing is buried. The 'Cross-reference between coding systems' bullet is somewhat redundant with the opening sentence, a minor bit of waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and rich annotations, the description need not explain return values, and it correctly covers the input contract. What a caller would still want — what happens when neither parameter is supplied (both are optional) or when a code has no mapping — is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each property already documents its direction ('NDC code to look up RxCUI', 'RxCUI to get NDC codes for'). The description restates the either/or contract, which is useful for signaling mutual exclusivity but adds little beyond the schema wording — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific operation and both resource types (RxNorm concepts and NDC codes), and the bullets spell out the two directions of the mapping. It is clearly distinguishable from rxnorm_search or rxnorm_concept by virtue of being a cross-terminology mapping, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use this tool to' bullets give concrete tasks and the closing line states the input contract ('Provide either an RxCUI ... or an NDC ...'). It lacks any when-not guidance or named alternative (e.g., use rxnorm_search to find an RxCUI first), which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rxnorm_searchSearch RxNorm DrugsARead-onlyIdempotentInspect
Search for drugs in RxNorm (Normalized names for clinical drugs).
Use this tool to:
Find drug concepts by brand or generic name
Look up medications for prescribing
Search for drug formulations
Returns matching drugs with RxCUI identifiers, names, and term types.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Drug name to search (brand or generic) | |
| max_results | No | Maximum number of results (1-100). Default: 25 |
Output Schema
| Name | Required | Description |
|---|---|---|
| drugs | Yes | Matching RxNorm concepts, at most max_results. tty "APPROX" marks results of the approximate-match fallback, used when the name matched nothing exactly. |
| query | Yes | The drug name as submitted. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| total_count | Yes | Number of concepts RxNav returned for the name, before the max_results cap. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety and mutation behavior are covered. The description adds modest context by naming returned fields (RxCUI, names, term types), but it omits search behavior such as matching strategy, ranking, pagination, or rate limits. With annotations carrying the safety profile, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and uses a short bullet list for use cases, making it easy to scan. There is mild redundancy between 'Find drug concepts' and 'Look up medications for prescribing,' but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter schema, full schema coverage, annotations covering safety, and an output schema that handles return values, the description is largely complete. The main gap is lack of sibling differentiation, which keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are fully documented in the schema. The description reinforces that 'query' accepts brand or generic names but adds no syntax, format, or filtering nuance beyond that. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: searching drugs in RxNorm, with brand/generic names and formulation lookups. However, it does not distinguish this tool from closely related siblings such as rxnorm_concept, rxnorm_ingredients, or rxnorm_ndc, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives implied usage through bullet points ('Find drug concepts', 'Look up medications for prescribing', 'Search for drug formulations'), which helps an agent understand context. But it never states when to prefer alternatives like rxnorm_concept for details or rxnorm_ingredients for ingredient-level queries, and provides no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchDeep Research SearchARead-onlyIdempotentInspect
Searches the medical terminologies (CID-10 categories and chapters, ICD-11, LOINC, RxNorm, MeSH, terminology version records) catalog and returns up to 10 matching documents as { id, title, url }, ordered by relevance (an empty list means nothing matched).
This tool exists for the OpenAI Deep Research contract: ChatGPT deep research, company knowledge and research workflows over the Responses API require exactly the tools search and fetch. Pass one of the returned ids to fetch to read the document.
For direct questions and for data (values, series, rankings) prefer the terminology tools (icd11_*, cid10_*, loinc_*, rxnorm_*, mesh_*, atc_*, map_*, find_equivalent, validate_codes), which return the actual data with provenance — this is a catalog index, not a data query.
Query: natural language or keywords, Portuguese or English; accents and case are ignored.
Behavior: read-only and idempotent — the catalog comes from the public source and is cached in memory.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search terms, natural language or keywords (accents and case are ignored) |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | Matching documents, in relevance order |
| provenance | Yes | One provenance block per upstream source that contributed to this response (licenses are never merged; each block carries the origin diagnostics of ITS source) |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/idempotent/non-destructive, and the description adds genuine context beyond them: result limit (up to 10), relevance ordering, empty-list semantics, and in-memory caching from the public source. This discloses what the agent needs to interpret results correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core behavior in the first sentence, then layers on contract context and routing guidance in clearly separated paragraphs. Slightly long, but each block earns its place and nothing is redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a search tool: it covers input interpretation, output shape, ordering, limits, and the required pairing with `fetch`. With an output schema present, the return-value detail is a bonus rather than a necessity, and nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds that queries may be natural language or keywords in Portuguese or English—information the schema does not carry. Minor additional value over the single well-documented parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (searches) and resource (medical terminologies catalog), and explicitly frames itself as a catalog index rather than a data query. It clearly distinguishes itself from the many sibling search/data tools by noting it returns catalog documents ({id,title,url}), not values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it (the OpenAI Deep Research contract requiring exactly `search` and `fetch`), how to chain it (pass returned ids to `fetch`), and when not to use it (prefer `icd11_*`, `loinc_*`, etc. for direct data questions). Names the alternatives directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terminology_diffTerminology Version DiffARead-onlyIdempotentInspect
Report what diff data is available between two versions of a terminology.
For most terminologies this is guidance only — the server doesn't ship historical snapshots, so the tool points at the publisher's official changelog and explains the cadence. bundled_versions lists the version(s) this server actually has on hand.
For ICD-10 vs ICD-11 specifically, the tool surfaces a real cross-revision summary from the bundled WHO transition tables (the ICD-10 → ICD-11 case is a structural diff between two WHO revisions). Use terminology: "icd10" with no to_version to get the cross-revision summary: total mapped ICD-10 categories, how many are 1:1 vs split into multiple ICD-11 codes, and the average number of alternatives when split.
Inputs:
terminology(required): which terminology to report on.from_version(optional): the version you have data from. If omitted, the tool reports against the currently-bundled version.to_version(optional): the version you want to compare to. If omitted, the tool reports against the publisher's latest known release.
This tool is intentionally a metadata + guidance layer, not a diff engine — for terminologies that change frequently (LOINC, RxNorm, MeSH), the publisher's official changelog is the authoritative source.
| Name | Required | Description | Default |
|---|---|---|---|
| to_version | No | Version you want to compare to. Optional. | |
| terminology | Yes | Which terminology to report on. | |
| from_version | No | Version you have data from. Optional; behavior depends on terminology. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | Explanation of the answer: what was computed, or why no diff is available and where to look instead. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| to_version | Yes | The to_version requested; null when not given. |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| terminology | Yes | The terminology reported on, as submitted. |
| from_version | Yes | The from_version requested (for icd10, the bundled ICD-10 release when not given); null when not given. |
| changelog_url | Yes | Publisher's official changelog for the terminology; null when none is known. |
| diff_available | Yes | True when this server has the data to compute a real diff for the requested terminology. False = guidance-only response. |
| bundled_versions | Yes | Versions of this terminology bundled in the server; empty when the server queries the live upstream. |
| cross_revision_summary | Yes | Populated only for terminology="icd10" today — the bundled WHO ICD-10 → ICD-11 transition tables let us surface a real structural diff between the two WHO revisions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations by disclosing the crucial behavioral caveat that the server ships no historical snapshots, that bundled_versions reveals what is actually on hand, and what the ICD-10 path returns (total mapped categories, 1:1 vs split counts, average alternatives). This prevents an agent from expecting a real diff.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the key caveat and organized with an Inputs list plus a closing summary. Slightly verbose — the final paragraph largely restates the opening "guidance only" framing — but the redundancy is mild and each block carries useful routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter, read-only metadata tool with annotations and an output schema, the description covers scope, defaults, expected return shape for the non-trivial case, and explicit fallback guidance. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds default semantics the schema only hints at: omitting from_version reports against the bundled version, omitting to_version reports against the publisher's latest known release, and terminology: "icd10" with no to_version triggers the cross-revision path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb + resource: reports what diff data is available between two versions of a terminology. It explicitly disclaims being a diff engine and frames itself as a metadata/guidance layer, which separates it functionally from map_icd10_to_icd11 and terminology_versions, though it never names those siblings directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states exactly when this tool is useful (ICD-10 vs ICD-11 cross-revision summary) and when it is not (LOINC, RxNorm, MeSH — go to the publisher's official changelog instead). It also gives the concrete invocation recipe: terminology "icd10" with no to_version.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terminology_versionsTerminology VersionsARead-onlyIdempotentInspect
List the current version, release date, publisher, source URL, and update cadence of every terminology this server queries against.
Useful for pipeline maintainers who need to:
Confirm which release of ICD-11 / LOINC / RxNorm / MeSH / ATC the server is querying before a batch run.
Verify the bundled CID-10 (frozen at V2008) and ICD-10 → ICD-11 transition tables (currently 2025-01) match expectations.
Cite the data version in research artifacts.
Pass terminology to filter to a single entry; otherwise the full set of 7 is returned. The ICD-10 → ICD-11 version reads live from the bundled dataset; everything else is metadata maintained alongside the project release.
| Name | Required | Description | Default |
|---|---|---|---|
| terminology | No | Filter to a single terminology. Omit to return all 7. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | Number of terminologies listed. |
| generated | Yes | Date this snapshot was generated. |
| provenance | Yes | Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| terminologies | Yes | Release this server queries for each terminology (all 7, or the one requested): publisher, current version, release date, update cadence, source and changelog links, and whether the data is bundled in the server. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnly/idempotent annotations already covering the safety profile, the description adds genuinely new behavioral facts: the default result set is 7 entries, and the ICD-10 → ICD-11 version is read live from the bundled dataset while the rest is release-maintained metadata. That provenance distinction is real value; it just doesn't discuss ordering or freshness caveats for the metadata entries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core statement, then a scannable bullet list, then the filtering and data-provenance notes. Slightly long for a one-parameter read tool, and a stray 'CID-10' spelling versus the 'cid10' enum value could momentarily confuse the mapping, but nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no prose explanation; the description still covers what is returned, the default cardinality, filtering behavior, and where each entry's data comes from. For a simple read-only metadata tool, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100% and the enum is self-documenting, yet the description still adds meaning beyond the schema by stating the exact set size returned when the filter is omitted ('otherwise the full set of 7 is returned'). This makes the omit-vs-filter tradeoff concrete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List') and resource (terminology versions), and enumerates the returned fields (version, release date, publisher, source URL, update cadence). It is unmistakably distinct from siblings like terminology_diff or validate_codes, which operate on codes rather than server metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Three concrete use cases are given (pre-batch-run version check, verifying bundled ICD-10/transition tables, citation in research artifacts), which establishes clear context for invocation. It stops short of explicitly naming alternatives or when-not-to-use cases, so it is a strong 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_codesValidate Medical CodesARead-onlyIdempotentInspect
Validate a mixed batch of medical codes against their source terminologies. Useful for retrospective analysis of legacy databases — flag codes that no longer exist, surface ICD-10 → ICD-11 replacements, and grade activity status where the terminology exposes it.
For each input { code, terminology }, returns:
valid: whether the code exists in the source terminology.
active: whether the code is currently active. Null when the source doesn't expose an explicit active/inactive distinction at category level (CID-10, ATC, ICD-11, RxNorm, MeSH all return null today; LOINC returns a real boolean).
title: the official label/name when available.
replaced_by: a successor code, populated today only for ICD-10 codes that have a primary ICD-11 mapping in the bundled WHO transition tables.
source: human-readable provenance of the validation (terminology + release/version).
error: non-null only when validation couldn't be performed (network error, upstream outage, etc.).
valid: false+error: nullmeans "code not found";valid: false+error: setmeans "couldn't validate".
Terminology is required per code — auto-detection isn't supported because category codes like "A00" exist in both ICD-10 and CID-10. Accepted values: icd11, icd10, loinc, rxnorm, mesh, atc, cid10.
Hard cap of 50 codes per call; codes are validated in parallel through their respective clients, so total wall time scales with the slowest upstream + its rate limit (worst case ~10 s for a full batch hitting ICD-11).
| Name | Required | Description | Default |
|---|---|---|---|
| codes | Yes | List of code+terminology pairs to validate. Hard cap of 50 per call to keep total latency under ~10 s given upstream rate limits. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | Number of codes submitted. |
| results | Yes | One entry per submitted code, in request order. |
| provenance | Yes | One provenance block per upstream source that contributed to this response (licenses are never merged; each block carries the origin diagnostics of ITS source) |
| attribution | Yes | Canonical source URLs of this response (attribution list) |
| error_count | Yes | How many couldn't be validated due to upstream/network errors. |
| valid_count | Yes | How many were confirmed valid. |
| invalid_count | Yes | How many were not found. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile, yet the description adds substantial beyond structured fields: 50-code cap with latency rationale, parallel execution, rate-limit dependency, and precise null/error semantics distinguishing 'not found' from 'couldn't validate'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose then a clean bullet enumeration of return fields, with the terminology-requirement and cap explained last. Dense but each section is justified; the return-field bullets edge toward restating the output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A complex batch tool with an output schema, yet the description still clarifies the non-obvious null semantics of active/replaced_by and the valid+error truth table that the schema alone wouldn't convey. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3; the description adds the rationale for why terminology is mandatory per code (A00 ambiguity) and enumerates the accepted values, plus the cap's performance justification. Minor redundancy with the schema, hence 4 not 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (validate) and resource (mixed batch of medical codes against source terminologies). The 'mixed batch' framing plus per-code terminology requirement distinguishes it from the single-code lookup siblings like icd10_lookup and rxnorm_concept.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Frames the use case clearly ('retrospective analysis of legacy databases') with the three outcomes it produces. It doesn't explicitly route away from sibling lookup tools for single-code cases, but the batch/fleet context is clear enough to imply the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
31 tool updates
v2.4.0- Changed
atc_classify2 fields changed- added
Output schema / properties / drug_name / descriptionAdded value: +"The drug name as submitted." - added
Output schema / properties / matches / descriptionAdded value: +"ATC classes NLM RxClass assigns to the drug, one entry per RxNorm concept and ATC class pair; empty when the drug is unknown or has no ATC mapping."
- Changed
atc_lookup3 fields changed- added
Output schema / properties / atc_code / descriptionAdded value: +"The ATC code as submitted." - added
Output schema / properties / details / descriptionAdded value: +"The ATC class (code, name, level type); null when found=false." - added
Output schema / properties / found / descriptionAdded value: +"Whether RxClass knows the code at level 1-4; false for unknown and for 7-character substance codes."
- Changed
atc_members2 fields changed- added
Output schema / properties / atc_code / descriptionAdded value: +"The ATC code as submitted." - added
Output schema / properties / members / descriptionAdded value: +"RxNorm drug concepts in the ATC class (all member substances for levels 1-4); empty when the code is unknown or has no RxNorm-mapped members."
- Changed
cid10_chapter4 fields changed- added
Output schema / properties / chapter / descriptionAdded value: +"The chapter (number, code range, Portuguese title); null when found=false." - added
Output schema / properties / found / descriptionAdded value: +"Whether the chapter exists in CID-10 V2008." - added
Output schema / properties / groups / descriptionAdded value: +"Groups (code-range blocks) of the chapter, each with its range and Portuguese title; empty when found=false." - added
Output schema / properties / num / descriptionAdded value: +"The chapter number as submitted."
- Changed
cid10_chapters1 field changed- added
Output schema / properties / chapters / descriptionAdded value: +"The 22 chapters of CID-10 V2008, each with its number, code range and Portuguese title."
- Changed
cid10_lookup3 fields changed- added
Output schema / properties / code / descriptionAdded value: +"The CID-10 code as submitted." - added
Output schema / properties / found / descriptionAdded value: +"Whether the code exists in CID-10 V2008." - added
Output schema / properties / hit / descriptionAdded value: +"The CID-10 entry (Portuguese title, chapter, group, restrictions); null when found=false."
- Changed
cid10_search6 fields changed- added
Output schema / properties / hits / descriptionAdded value: +"Matching CID-10 V2008 codes with their Portuguese titles, chapter and group." - added
Output schema / properties / level / descriptionAdded value: +"Code level searched: 3-char categories, 4-char subcategories, or all." - added
Output schema / properties / query / descriptionAdded value: +"The search terms as submitted." - added
Output schema / properties / shown_count / descriptionAdded value: +"Number of codes returned in hits (at most max_results)." - added
Output schema / properties / total_count / descriptionAdded value: +"Number of CID-10 codes matching the query, before the max_results cap." - added
Output schema / properties / vocabulary_notes / descriptionAdded value: +"Present only when a query word was translated to the CID-10's own wording (e.g. \"câncer\" → \"neoplasia maligna\"); says which."
- Changed
find_equivalent24 fields changed- added
Output schema / properties / groups / descriptionAdded value: +"Candidates from different terminologies whose normalized titles are identical, grouped as likely the same concept; best match_score first. Empty when nothing groups (not evidence of non-equivalence)." - added
Output schema / properties / ranking / descriptionAdded value: +"Self-description of the ranking: match_score, rank and groups are computed by this server, not upstream relevance." - added
Output schema / properties / ranking / properties / method / descriptionAdded value: +"Ranking method: lexical similarity computed by this server." - added
Output schema / properties / ranking / properties / note / descriptionAdded value: +"How match_score and rank are computed." - added
Output schema / properties / results / descriptionAdded value: +"Per-terminology results, keyed by terminology. A key is absent when that terminology was not searched; found=false with empty items and error null means searched, no hits." - added
Output schema / properties / results / properties / icd11 / descriptionAdded value: +"ICD-11 (WHO) candidates; present only when ICD-11 was searched." - added
Output schema / properties / results / properties / icd11 / properties / error / descriptionAdded value: +"Failure message when the search in this terminology failed (timeout, server error); null when it answered." - added
Output schema / properties / results / properties / icd11 / properties / found / descriptionAdded value: +"True when this terminology returned at least one candidate." - added
Output schema / properties / results / properties / icd11 / properties / items / descriptionAdded value: +"Candidates from this terminology, best first (by global rank), at most limit." - added
Output schema / properties / results / properties / loinc / descriptionAdded value: +"LOINC candidates; present only when LOINC was searched." - added
Output schema / properties / results / properties / loinc / properties / error / descriptionAdded value: +"Failure message when the search in this terminology failed (timeout, server error); null when it answered." - added
Output schema / properties / results / properties / loinc / properties / found / descriptionAdded value: +"True when this terminology returned at least one candidate." - added
Output schema / properties / results / properties / loinc / properties / items / descriptionAdded value: +"Candidates from this terminology, best first (by global rank), at most limit." - added
Output schema / properties / results / properties / mesh / descriptionAdded value: +"MeSH candidates; present only when MeSH was searched." - added
Output schema / properties / results / properties / mesh / properties / error / descriptionAdded value: +"Failure message when the search in this terminology failed (timeout, server error); null when it answered." - added
Output schema / properties / results / properties / mesh / properties / found / descriptionAdded value: +"True when this terminology returned at least one candidate." - added
Output schema / properties / results / properties / mesh / properties / items / descriptionAdded value: +"Candidates from this terminology, best first (by global rank), at most limit." - added
Output schema / properties / results / properties / rxnorm / descriptionAdded value: +"RxNorm candidates; present only when RxNorm was searched." - added
Output schema / properties / results / properties / rxnorm / properties / error / descriptionAdded value: +"Failure message when the search in this terminology failed (timeout, server error); null when it answered." - added
Output schema / properties / results / properties / rxnorm / properties / found / descriptionAdded value: +"True when this terminology returned at least one candidate." - added
Output schema / properties / results / properties / rxnorm / properties / items / descriptionAdded value: +"Candidates from this terminology, best first (by global rank), at most limit." - added
Output schema / properties / searched_terminologies / descriptionAdded value: +"Terminologies actually searched: the targets minus source_terminology. Empty when nothing was left to search." - added
Output schema / properties / source_terminology / descriptionAdded value: +"Terminology excluded from the search; null when none was given." - added
Output schema / properties / term / descriptionAdded value: +"The medical term as submitted."
- Changed
harmonize_terms9 fields changed- added
Output schema / properties / counts / descriptionAdded value: +"Submitted terms tallied by outcome (best-candidate match_type, no candidates, or error); the five counts add up to total." - added
Output schema / properties / counts / properties / error / descriptionAdded value: +"Terms whose lookup failed." - added
Output schema / properties / counts / properties / exact / descriptionAdded value: +"Terms whose best candidate is an exact match." - added
Output schema / properties / counts / properties / needs_review / descriptionAdded value: +"Terms whose best candidate needs review." - added
Output schema / properties / counts / properties / no_candidates / descriptionAdded value: +"Terms the source answered with no candidates." - added
Output schema / properties / counts / properties / strong / descriptionAdded value: +"Terms whose best candidate is a strong match." - added
Output schema / properties / ranking / descriptionAdded value: +"Self-description of the ranking: match_score and match_type are computed by this server, not upstream relevance." - added
Output schema / properties / ranking / properties / method / descriptionAdded value: +"Ranking method: lexical similarity computed by this server." - added
Output schema / properties / ranking / properties / note / descriptionAdded value: +"How match_score and match_type are computed."
- Changed
icd11_chapters1 field changed- added
Output schema / properties / chapters / descriptionAdded value: +"Top-level ICD-11 MMS chapters in WHO order; a chapter the WHO failed to return keeps its number and URI, with error set and the other fields null."
- Changed
icd11_hierarchy3 fields changed- added
Output schema / properties / code / descriptionAdded value: +"The code, block range or URI the walk started from, as submitted." - added
Output schema / properties / direction / descriptionAdded value: +"Direction walked: parents (ancestors) or children (subtypes)." - added
Output schema / properties / entities / descriptionAdded value: +"Direct parents or children of the entity; empty when it has none. Entries the WHO failed to return are left out."
- Changed
icd11_lookup14 fields changed- added
Output schema / properties / block_id / descriptionAdded value: +"WHO block identifier for blocks; null otherwise." - added
Output schema / properties / browser_url / descriptionAdded value: +"Link to the entity in the WHO ICD-11 browser; null when the WHO returns none." - added
Output schema / properties / class_kind / descriptionAdded value: +"WHO class kind (e.g. \"chapter\", \"block\", \"category\"); null when the WHO does not state it." - added
Output schema / properties / code / descriptionAdded value: +"ICD-11 MMS code (e.g. \"BA00\"); null for blocks and chapters, which have a code_range instead." - added
Output schema / properties / code_range / descriptionAdded value: +"Code range of a block or chapter (e.g. \"BA00-BA0Z\"); null for coded categories." - added
Output schema / properties / coding_note / descriptionAdded value: +"Official coding note; null when the WHO publishes none." - added
Output schema / properties / definition / descriptionAdded value: +"Official short definition; null when the WHO publishes none." - added
Output schema / properties / diagnostic_criteria / descriptionAdded value: +"Official diagnostic criteria text; null when the WHO publishes none." - added
Output schema / properties / exclusions / descriptionAdded value: +"Exclusion entries (conditions coded elsewhere), each with its URI and label." - added
Output schema / properties / inclusions / descriptionAdded value: +"Inclusion entries (synonyms and terms included under this entity), each with its URI and label." - added
Output schema / properties / index_terms / descriptionAdded value: +"Index terms that lead to this entity, each with its URI and label." - added
Output schema / properties / long_definition / descriptionAdded value: +"Official detailed description; null when the WHO publishes none." - added
Output schema / properties / title / descriptionAdded value: +"Official title in the requested language (\"Unknown\" when the WHO returns none)." - added
Output schema / properties / uri / descriptionAdded value: +"WHO ICD-11 entity URI."
- Changed
icd11_postcoordination2 fields changed- added
Output schema / properties / axes / descriptionAdded value: +"Postcoordination axes the WHO allows for this code; empty when it has none or the WHO has no postcoordination info for it." - added
Output schema / properties / code / descriptionAdded value: +"The ICD-11 code as submitted."
- Changed
icd11_search3 fields changed- added
Output schema / properties / entities / descriptionAdded value: +"Matching ICD-11 MMS entities in WHO relevance order, at most max_results." - added
Output schema / properties / query / descriptionAdded value: +"The search text as submitted." - added
Output schema / properties / total_count / descriptionAdded value: +"Number of entities the WHO search returned, before the max_results cap."
- Changed
loinc_answers2 fields changed- added
Output schema / properties / answers / descriptionAdded value: +"Answer list of the question in display order; empty when the code exists but has no answer list." - added
Output schema / properties / loinc_num / descriptionAdded value: +"The LOINC number as submitted."
- Changed
loinc_details12 fields changed- added
Output schema / properties / class / descriptionAdded value: +"LOINC class the term is grouped under (e.g. \"CHEM\")." - added
Output schema / properties / component / descriptionAdded value: +"LOINC axis 1, Component: what is measured or observed (e.g. \"Glucose\")." - added
Output schema / properties / external_copyright_notice / descriptionAdded value: +"Third-party copyright notice the term carries, served verbatim (LOINC License §10); null when it carries none." - added
Output schema / properties / loinc_num / descriptionAdded value: +"LOINC number (e.g. \"2339-0\")." - added
Output schema / properties / long_common_name / descriptionAdded value: +"LOINC Long Common Name, the full human-readable name of the term." - added
Output schema / properties / method_type / descriptionAdded value: +"LOINC axis 6, Method; empty when the term specifies none." - added
Output schema / properties / property / descriptionAdded value: +"LOINC axis 2, Property: the kind of quantity (e.g. \"MCnc\" = mass concentration)." - added
Output schema / properties / scale_type / descriptionAdded value: +"LOINC axis 5, Scale: Qn (quantitative), Ord, Nom, Nar, etc." - added
Output schema / properties / short_name / descriptionAdded value: +"LOINC short name; empty when the source has none." - added
Output schema / properties / status / descriptionAdded value: +"LOINC term status (e.g. \"ACTIVE\", \"DEPRECATED\"); empty when the source omits it." - added
Output schema / properties / system / descriptionAdded value: +"LOINC axis 4, System: the specimen or thing observed (e.g. \"Bld\", \"Ser/Plas\")." - added
Output schema / properties / time_aspect / descriptionAdded value: +"LOINC axis 3, Time: point in time or interval of the observation (e.g. \"Pt\", \"24H\")."
- Changed
loinc_panels2 fields changed- added
Output schema / properties / loinc_num / descriptionAdded value: +"The LOINC number as submitted." - added
Output schema / properties / panel / descriptionAdded value: +"Panel/form definition with its member items; null when no panel structure is found for the code (not a panel, or no definition available)."
- Changed
loinc_search16 fields changed- added
Output schema / properties / items / descriptionAdded value: +"Matching LOINC terms in source relevance order." - added
Output schema / properties / items / items / properties / class / descriptionAdded value: +"LOINC class the term is grouped under (e.g. \"CHEM\")." - added
Output schema / properties / items / items / properties / component / descriptionAdded value: +"LOINC axis 1, Component: what is measured or observed (e.g. \"Glucose\")." - added
Output schema / properties / items / items / properties / external_copyright_notice / descriptionAdded value: +"Third-party copyright notice the term carries, served verbatim (LOINC License §10); null when it carries none." - added
Output schema / properties / items / items / properties / loinc_num / descriptionAdded value: +"LOINC number (e.g. \"2339-0\")." - added
Output schema / properties / items / items / properties / long_common_name / descriptionAdded value: +"LOINC Long Common Name, the full human-readable name of the term." - added
Output schema / properties / items / items / properties / method_type / descriptionAdded value: +"LOINC axis 6, Method; empty when the term specifies none." - added
Output schema / properties / items / items / properties / property / descriptionAdded value: +"LOINC axis 2, Property: the kind of quantity (e.g. \"MCnc\" = mass concentration)." - added
Output schema / properties / items / items / properties / scale_type / descriptionAdded value: +"LOINC axis 5, Scale: Qn (quantitative), Ord, Nom, Nar, etc." - added
Output schema / properties / items / items / properties / short_name / descriptionAdded value: +"LOINC short name; empty when the source has none." - added
Output schema / properties / items / items / properties / status / descriptionAdded value: +"LOINC term status (e.g. \"ACTIVE\", \"DEPRECATED\"); empty when the source omits it." - added
Output schema / properties / items / items / properties / system / descriptionAdded value: +"LOINC axis 4, System: the specimen or thing observed (e.g. \"Bld\", \"Ser/Plas\")." - added
Output schema / properties / items / items / properties / time_aspect / descriptionAdded value: +"LOINC axis 3, Time: point in time or interval of the observation (e.g. \"Pt\", \"24H\")." - added
Output schema / properties / query / descriptionAdded value: +"The search term as submitted." - added
Output schema / properties / shown_count / descriptionAdded value: +"Number of terms returned in items (at most max_results)." - added
Output schema / properties / total_count / descriptionAdded value: +"Total number of LOINC terms matching the query at the source, which may exceed the items returned."
- Changed
map_icd10_to_icd111 field changed- added
Output schema / properties / source / descriptionAdded value: +"The bundled WHO ICD-10 → ICD-11 transition table release this answer comes from."
- Changed
mesh_descriptor7 fields changed- added
Output schema / properties / concepts / descriptionAdded value: +"The preferred concept with its entry terms (synonyms); non-preferred concepts are not retrieved. Empty when the descriptor names no preferred concept." - added
Output schema / properties / id / descriptionAdded value: +"MeSH descriptor ID (e.g. \"D003920\")." - added
Output schema / properties / label / descriptionAdded value: +"Descriptor heading, in the requested language when NLM publishes that translation." - added
Output schema / properties / qualifiers / descriptionAdded value: +"Allowable qualifiers (subheadings) for the descriptor." - added
Output schema / properties / scope_note / descriptionAdded value: +"Scope note (definition) of the descriptor's preferred concept; empty when it has none." - added
Output schema / properties / tree_numbers / descriptionAdded value: +"Tree numbers placing the descriptor in the MeSH hierarchy (e.g. \"C18.452.394.750\")." - added
Output schema / properties / uri / descriptionAdded value: +"NLM MeSH RDF URI of the descriptor."
- Changed
mesh_qualifiers2 fields changed- added
Output schema / properties / mesh_id / descriptionAdded value: +"The MeSH descriptor ID as submitted." - added
Output schema / properties / qualifiers / descriptionAdded value: +"Allowable qualifiers (subheadings) for the descriptor, each with its ID, URI and label."
- Changed
mesh_search4 fields changed- added
Output schema / properties / descriptors / descriptionAdded value: +"Matching MeSH descriptors, each with its ID (e.g. \"D003920\"), URI and label." - added
Output schema / properties / match / descriptionAdded value: +"Match type applied to descriptor labels." - added
Output schema / properties / query / descriptionAdded value: +"The search term as submitted." - added
Output schema / properties / total_count / descriptionAdded value: +"Number of descriptors returned (the NLM lookup is capped at max_results, so this is not a total count of all matches)."
- Changed
mesh_tree2 fields changed- added
Output schema / properties / mesh_id / descriptionAdded value: +"The MeSH descriptor ID as submitted." - added
Output schema / properties / tree_numbers / descriptionAdded value: +"Tree numbers placing the descriptor in the MeSH hierarchy; a descriptor can sit in several branches."
- Changed
rxnorm_classes2 fields changed- added
Output schema / properties / classes / descriptionAdded value: +"Drug classes NLM RxClass links to the RxCUI (one entry per class and relationship); empty when none." - added
Output schema / properties / rxcui / descriptionAdded value: +"The RxCUI as submitted."
- Changed
rxnorm_concept10 fields changed- added
Output schema / properties / language / descriptionAdded value: +"Language of the concept name as RxNav reports it (e.g. \"ENG\"); null when found=false." - added
Output schema / properties / name / descriptionAdded value: +"RxNorm normalized name of the concept; null when found=false." - added
Output schema / properties / related_groups / descriptionAdded value: +"Related concepts (ingredients, brands, dose forms) grouped by term type; null unless include_related=true." - added
Output schema / properties / remapped_to / descriptionAdded value: +"RxCUIs a remapped concept was replaced by; empty otherwise." - added
Output schema / properties / rxcui / descriptionAdded value: +"The RxCUI looked up." - added
Output schema / properties / status / descriptionAdded value: +"RxNorm history status (e.g. \"Active\", \"Remapped\", \"Obsolete\"); \"Active\" when RxNav does not report one; null when found=false." - added
Output schema / properties / suppress / descriptionAdded value: +"RxNorm suppress flag (\"N\" = not suppressed, the default when RxNav omits it); null when found=false." - added
Output schema / properties / synonym / descriptionAdded value: +"RxNorm synonym (may be empty); null when found=false." - added
Output schema / properties / tty / descriptionAdded value: +"RxNorm term type (e.g. \"IN\" ingredient, \"SCD\" clinical drug, \"SBD\" branded drug); null when found=false." - added
Output schema / properties / umlscui / descriptionAdded value: +"UMLS Concept Unique Identifier linked to the concept (empty when none); null when found=false."
- Changed
rxnorm_ingredients2 fields changed- added
Output schema / properties / ingredients / descriptionAdded value: +"Ingredient concepts (term types IN and MIN) RxNav relates to the RxCUI; empty when none." - added
Output schema / properties / rxcui / descriptionAdded value: +"The RxCUI as submitted."
- Changed
rxnorm_ndc4 fields changed- added
Output schema / properties / ndc / descriptionAdded value: +"rxcui_for_ndc: the NDC as submitted; null in ndcs_for_rxcui mode." - added
Output schema / properties / ndcs / descriptionAdded value: +"ndcs_for_rxcui: NDC codes RxNorm lists for the RxCUI (empty when none); always empty in rxcui_for_ndc mode." - added
Output schema / properties / query_mode / descriptionAdded value: +"Which lookup ran: ndcs_for_rxcui (rxcui given, list its NDCs) or rxcui_for_ndc (ndc given, find its RxCUI)." - added
Output schema / properties / rxcui / descriptionAdded value: +"ndcs_for_rxcui: the RxCUI as submitted. rxcui_for_ndc: the RxCUI the NDC belongs to, or null when RxNorm has none for it."
- Changed
rxnorm_search3 fields changed- added
Output schema / properties / drugs / descriptionAdded value: +"Matching RxNorm concepts, at most max_results. tty \"APPROX\" marks results of the approximate-match fallback, used when the name matched nothing exactly." - added
Output schema / properties / query / descriptionAdded value: +"The drug name as submitted." - added
Output schema / properties / total_count / descriptionAdded value: +"Number of concepts RxNav returned for the name, before the max_results cap."
- Changed
terminology_diff6 fields changed- added
Output schema / properties / bundled_versions / descriptionAdded value: +"Versions of this terminology bundled in the server; empty when the server queries the live upstream." - added
Output schema / properties / changelog_url / descriptionAdded value: +"Publisher's official changelog for the terminology; null when none is known." - added
Output schema / properties / from_version / descriptionAdded value: +"The from_version requested (for icd10, the bundled ICD-10 release when not given); null when not given." - added
Output schema / properties / message / descriptionAdded value: +"Explanation of the answer: what was computed, or why no diff is available and where to look instead." - added
Output schema / properties / terminology / descriptionAdded value: +"The terminology reported on, as submitted." - added
Output schema / properties / to_version / descriptionAdded value: +"The to_version requested; null when not given."
- Changed
terminology_versions2 fields changed- added
Output schema / properties / terminologies / descriptionAdded value: +"Release this server queries for each terminology (all 7, or the one requested): publisher, current version, release date, update cadence, source and changelog links, and whether the data is bundled in the server." - added
Output schema / properties / total / descriptionAdded value: +"Number of terminologies listed."
- Changed
validate_codes1 field changed- added
Output schema / properties / results / descriptionAdded value: +"One entry per submitted code, in request order."
33 tool updates
v2.3.0- Changed
atc_classify7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
atc_lookup7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
atc_members7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
cid10_chapter7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
cid10_chapters7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
cid10_lookup7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
cid10_search7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
fetch7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
find_equivalent8 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"One provenance block per upstream source that contributed to this response (contract v1.1; licenses are never merged; each block carries the origin diagnostics of ITS source)"New value: +"One provenance block per upstream source that contributed to this response (licenses are never merged; each block carries the origin diagnostics of ITS source)" - changed
Output schema / properties / provenance / items / descriptionPrevious value: -"Bloco de proveniência (contrato v1.2): fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando a resposta junta partes de origens ou momentos distintos, de onde veio cada parte"New value: +"Bloco de proveniência: fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando há o que dizer, de onde veio cada parte, avisos da fonte, o que o servidor calculou e se o dado ainda pode mudar" - added
Output schema / properties / provenance / items / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / items / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / items / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / items / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / items / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / items / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
harmonize_terms8 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"One provenance block per upstream source that contributed to this response (contract v1.1; licenses are never merged; each block carries the origin diagnostics of ITS source)"New value: +"One provenance block per upstream source that contributed to this response (licenses are never merged; each block carries the origin diagnostics of ITS source)" - changed
Output schema / properties / provenance / items / descriptionPrevious value: -"Bloco de proveniência (contrato v1.2): fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando a resposta junta partes de origens ou momentos distintos, de onde veio cada parte"New value: +"Bloco de proveniência: fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando há o que dizer, de onde veio cada parte, avisos da fonte, o que o servidor calculou e se o dado ainda pode mudar" - added
Output schema / properties / provenance / items / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / items / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / items / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / items / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / items / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / items / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
icd11_chapters7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
icd11_hierarchy7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
icd11_lookup7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
icd11_postcoordination7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
icd11_search7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
loinc_answers7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
loinc_details7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
loinc_panels7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
loinc_search7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
map_icd10_to_icd117 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
mesh_descriptor7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
mesh_qualifiers7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
mesh_search7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
mesh_tree7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
rxnorm_classes7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
rxnorm_concept7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
rxnorm_ingredients7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
rxnorm_ndc7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
rxnorm_search7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
search8 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"One provenance block per upstream source that contributed to this response (contract v1.1; licenses are never merged; each block carries the origin diagnostics of ITS source)"New value: +"One provenance block per upstream source that contributed to this response (licenses are never merged; each block carries the origin diagnostics of ITS source)" - changed
Output schema / properties / provenance / items / descriptionPrevious value: -"Bloco de proveniência (contrato v1.2): fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando a resposta junta partes de origens ou momentos distintos, de onde veio cada parte"New value: +"Bloco de proveniência: fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando há o que dizer, de onde veio cada parte, avisos da fonte, o que o servidor calculou e se o dado ainda pode mudar" - added
Output schema / properties / provenance / items / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / items / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / items / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / items / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / items / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / items / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
terminology_diff7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
terminology_versions7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
validate_codes8 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"One provenance block per upstream source that contributed to this response (contract v1.1; licenses are never merged; each block carries the origin diagnostics of ITS source)"New value: +"One provenance block per upstream source that contributed to this response (licenses are never merged; each block carries the origin diagnostics of ITS source)" - changed
Output schema / properties / provenance / items / descriptionPrevious value: -"Bloco de proveniência (contrato v1.2): fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando a resposta junta partes de origens ou momentos distintos, de onde veio cada parte"New value: +"Bloco de proveniência: fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando há o que dizer, de onde veio cada parte, avisos da fonte, o que o servidor calculou e se o dado ainda pode mudar" - added
Output schema / properties / provenance / items / properties / derivation_noteAdded value: +{ + "description": "What this server computed; present together with derived", + "type": "string" +} - added
Output schema / properties / provenance / items / properties / derivedAdded value: +{ + "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned", + "type": "boolean" +} - changed
Output schema / properties / provenance / items / properties / field_sources / descriptionPrevious value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses" - added
Output schema / properties / provenance / items / properties / noticesAdded value: +{ + "description": "Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / items / properties / retrieval / descriptionPrevious value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" - added
Output schema / properties / provenance / items / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
33 tool updates
v2.1.1- Changed
atc_classify1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
atc_lookup1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
atc_members1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
cid10_chapter1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
cid10_chapters1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
cid10_lookup1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
cid10_search1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
fetch1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
find_equivalent2 fields changed- changed
Output schema / properties / provenance / items / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença"New value: +"Bloco de proveniência (contrato v1.2): fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando a resposta junta partes de origens ou momentos distintos, de onde veio cada parte" - added
Output schema / properties / provenance / items / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
harmonize_terms2 fields changed- changed
Output schema / properties / provenance / items / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença"New value: +"Bloco de proveniência (contrato v1.2): fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando a resposta junta partes de origens ou momentos distintos, de onde veio cada parte" - added
Output schema / properties / provenance / items / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
icd11_chapters1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
icd11_hierarchy1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
icd11_lookup1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
icd11_postcoordination1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
icd11_search1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
loinc_answers1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
loinc_details1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
loinc_panels1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
loinc_search1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
map_icd10_to_icd111 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
mesh_descriptor1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
mesh_qualifiers1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
mesh_search1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
mesh_tree1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
rxnorm_classes1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
rxnorm_concept1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
rxnorm_ingredients1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
rxnorm_ndc1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
rxnorm_search1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
search2 fields changed- changed
Output schema / properties / provenance / items / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença"New value: +"Bloco de proveniência (contrato v1.2): fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando a resposta junta partes de origens ou momentos distintos, de onde veio cada parte" - added
Output schema / properties / provenance / items / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
terminology_diff1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
terminology_versions1 field changed- added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
- Changed
validate_codes2 fields changed- changed
Output schema / properties / provenance / items / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença"New value: +"Bloco de proveniência (contrato v1.2): fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando a resposta junta partes de origens ou momentos distintos, de onde veio cada parte" - added
Output schema / properties / provenance / items / properties / field_sourcesAdded value: +{ + "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +}
8 tool updates
v2.0.0- Changed
find_equivalent7 fields changed- changed
Input schema / properties / source_terminology / enumPrevious value: -[ - "icd11", - "snomed", - "loinc", - "rxnorm", - "mesh" -]New value: +[ + "icd11", + "loinc", + "rxnorm", + "mesh" +] - changed
Input schema / properties / target_terminologies / items / enumPrevious value: -[ - "icd11", - "snomed", - "loinc", - "rxnorm", - "mesh" -]New value: +[ + "icd11", + "loinc", + "rxnorm", + "mesh" +] - changed
Output schema / properties / groups / items / properties / members / items / properties / terminology / enumPrevious value: -[ - "icd11", - "snomed", - "loinc", - "rxnorm", - "mesh" -]New value: +[ + "icd11", + "loinc", + "rxnorm", + "mesh" +] - changed
Output schema / properties / groups / items / properties / terminologies / items / enumPrevious value: -[ - "icd11", - "snomed", - "loinc", - "rxnorm", - "mesh" -]New value: +[ + "icd11", + "loinc", + "rxnorm", + "mesh" +] - removed
Output schema / properties / results / properties / snomedRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "type": [ - "string", - "null" - ] - }, - "found": { - "type": "boolean" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "match_score": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "rank": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "title": { - "type": "string" - }, - "uri": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "code", - "title", - "uri", - "match_score", - "rank" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "found", - "error", - "items" - ], - "type": "object" -} - changed
Output schema / properties / searched_terminologies / items / enumPrevious value: -[ - "icd11", - "snomed", - "loinc", - "rxnorm", - "mesh" -]New value: +[ + "icd11", + "loinc", + "rxnorm", + "mesh" +] - changed
Output schema / properties / source_terminology / anyOfPrevious value: -[ - { - "enum": [ - "icd11", - "snomed", - "loinc", - "rxnorm", - "mesh" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "icd11", + "loinc", + "rxnorm", + "mesh" + ], + "type": "string" + }, + { + "type": "null" + } +]
- Added
harmonize_terms - Changed
loinc_answers4 fields changed- added
Output schema / properties / answers / items / properties / answer_code / descriptionAdded value: +"LOINC answer code (LA…), e.g. \"LA18976-3\"." - added
Output schema / properties / answers / items / properties / scoreAdded value: +{ + "description": "Numeric score for scored instruments (PHQ-9 items: 0-3); null when the answer list carries none.", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / answers / items / properties / sequence / descriptionAdded value: +"Display order in the answer list (1-based)." - changed
Output schema / properties / answers / items / requiredPrevious value: -[ - "sequence", - "answer_code", - "answer_string" -]New value: +[ + "sequence", + "answer_code", + "answer_string", + "score" +]
- Changed
loinc_panels1 field changed- changed
Output schema / properties / panel / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "loinc_num": { - "type": "string" - }, - "name": { - "type": "string" - }, - "required": { - "type": "boolean" - }, - "sequence": { - "maximum": 9007199254740991, - "minimum": -9007199254740991, - "type": "integer" - } - }, - "required": [ - "sequence", - "loinc_num", - "name", - "required" - ], - "type": "object" - }, - "type": "array" - }, - "loinc_num": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "loinc_num", - "name", - "items" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "items": { + "items": { + "additionalProperties": false, + "properties": { + "loinc_num": { + "type": "string" + }, + "name": { + "type": "string" + }, + "required": { + "description": "Whether the item is required; null when the source form definition does not state it (the case for every panel the API serves today).", + "type": [ + "boolean", + "null" + ] + }, + "sequence": { + "description": "Position in the form (1-based), i.e. display order.", + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "sequence", + "loinc_num", + "name", + "required" + ], + "type": "object" + }, + "type": "array" + }, + "loinc_num": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "loinc_num", + "name", + "items" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Removed
map_loinc_to_snomed - Changed
terminology_diff2 fields changed- changed
Input schema / properties / terminology / enumPrevious value: -[ - "icd11", - "icd10", - "snomed", - "loinc", - "rxnorm", - "mesh", - "atc", - "cid10" -]New value: +[ + "icd11", + "icd10", + "loinc", + "rxnorm", + "mesh", + "atc", + "cid10" +] - changed
Output schema / properties / terminology / enumPrevious value: -[ - "icd11", - "icd10", - "snomed", - "loinc", - "rxnorm", - "mesh", - "atc", - "cid10" -]New value: +[ + "icd11", + "icd10", + "loinc", + "rxnorm", + "mesh", + "atc", + "cid10" +]
- Changed
terminology_versions3 fields changed- changed
Input schema / properties / terminology / descriptionPrevious value: -"Filter to a single terminology. Omit to return all 8."New value: +"Filter to a single terminology. Omit to return all 7." - changed
Input schema / properties / terminology / enumPrevious value: -[ - "icd11", - "icd10", - "snomed", - "loinc", - "rxnorm", - "mesh", - "atc", - "cid10" -]New value: +[ + "icd11", + "icd10", + "loinc", + "rxnorm", + "mesh", + "atc", + "cid10" +] - changed
Output schema / properties / terminologies / items / properties / code / enumPrevious value: -[ - "icd11", - "icd10", - "snomed", - "loinc", - "rxnorm", - "mesh", - "atc", - "cid10" -]New value: +[ + "icd11", + "icd10", + "loinc", + "rxnorm", + "mesh", + "atc", + "cid10" +]
- Changed
validate_codes2 fields changed- changed
Input schema / properties / codes / items / properties / terminology / enumPrevious value: -[ - "icd11", - "icd10", - "snomed", - "loinc", - "rxnorm", - "mesh", - "atc", - "cid10" -]New value: +[ + "icd11", + "icd10", + "loinc", + "rxnorm", + "mesh", + "atc", + "cid10" +] - changed
Output schema / properties / results / items / properties / terminology / enumPrevious value: -[ - "icd11", - "icd10", - "snomed", - "loinc", - "rxnorm", - "mesh", - "atc", - "cid10" -]New value: +[ + "icd11", + "icd10", + "loinc", + "rxnorm", + "mesh", + "atc", + "cid10" +]
2 tool updates
v1.17.1- Changed
fetch1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
search1 field changed- added
Input schema / additionalPropertiesAdded value: +false
4 tool updates
v1.16.0- Changed
rxnorm_classes3 fields changed- added
Input schema / properties / rxcui / anyOfAdded value: +[ + { + "pattern": "^\\d+$", + "type": "string" + }, + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } +] - removed
Input schema / properties / rxcui / patternRemoved value: -"^\\d+$" - removed
Input schema / properties / rxcui / typeRemoved value: -"string"
- Changed
rxnorm_concept17 fields changed- added
Input schema / properties / include_related / anyOfAdded value: +[ + { + "type": "boolean" + }, + { + "enum": [ + "true", + "false" + ], + "type": "string" + } +] - removed
Input schema / properties / include_related / defaultRemoved value: -false - changed
Input schema / properties / include_related / descriptionPrevious value: -"Include related concepts (ingredients, brands, dose forms)"New value: +"Include related concepts (ingredients, brands, dose forms). Default false; true/false, also accepted as the strings \"true\"/\"false\"" - removed
Input schema / properties / include_related / typeRemoved value: -"boolean" - added
Input schema / properties / rxcui / anyOfAdded value: +[ + { + "pattern": "^\\d+$", + "type": "string" + }, + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } +] - changed
Input schema / properties / rxcui / descriptionPrevious value: -"RxNorm Concept Unique Identifier"New value: +"RxNorm Concept Unique Identifier (string of digits or integer, e.g. \"161\" or 161)" - removed
Input schema / properties / rxcui / patternRemoved value: -"^\\d+$" - removed
Input schema / properties / rxcui / typeRemoved value: -"string" - added
Output schema / properties / foundAdded value: +{ + "description": "false when RxNorm has no concept with this RxCUI (the lookup answered; the fields below are null)", + "type": "boolean" +} - changed
Output schema / properties / language / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / suppress / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / synonym / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / tty / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / umlscui / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / requiredPrevious value: -[ - "rxcui", - "name", - "synonym", - "tty", - "language", - "suppress", - "umlscui", - "status", - "remapped_to", - "related_groups", - "provenance", - "attribution" -]New value: +[ + "rxcui", + "found", + "name", + "synonym", + "tty", + "language", + "suppress", + "umlscui", + "status", + "remapped_to", + "related_groups", + "provenance", + "attribution" +]
- Changed
rxnorm_ingredients3 fields changed- added
Input schema / properties / rxcui / anyOfAdded value: +[ + { + "pattern": "^\\d+$", + "type": "string" + }, + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } +] - removed
Input schema / properties / rxcui / patternRemoved value: -"^\\d+$" - removed
Input schema / properties / rxcui / typeRemoved value: -"string"
- Changed
rxnorm_ndc3 fields changed- added
Input schema / properties / rxcui / anyOfAdded value: +[ + { + "pattern": "^\\d+$", + "type": "string" + }, + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } +] - removed
Input schema / properties / rxcui / patternRemoved value: -"^\\d+$" - removed
Input schema / properties / rxcui / typeRemoved value: -"string"
33 tool updates
v1.15.0- Changed
atc_classify3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
atc_lookup3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
atc_members3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
cid10_chapter3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
cid10_chapters3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
cid10_lookup3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
cid10_search3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
fetch3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
find_equivalent4 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"One provenance block per upstream source that contributed to this response (contract v1.0; licenses are never merged)"New value: +"One provenance block per upstream source that contributed to this response (contract v1.1; licenses are never merged; each block carries the origin diagnostics of ITS source)" - added
Output schema / properties / provenance / items / descriptionAdded value: +"Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença" - added
Output schema / properties / provenance / items / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / items / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
icd11_chapters3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
icd11_hierarchy3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
icd11_lookup3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
icd11_postcoordination3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
icd11_search3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
loinc_answers3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
loinc_details3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
loinc_panels3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
loinc_search3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
map_icd10_to_icd113 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
map_loinc_to_snomed3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
mesh_descriptor3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
mesh_qualifiers3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
mesh_search3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
mesh_tree3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
rxnorm_classes3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
rxnorm_concept3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
rxnorm_ingredients3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
rxnorm_ndc3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
rxnorm_search3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
search4 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"One provenance block per upstream source that contributed to this response (contract v1.0; licenses are never merged)"New value: +"One provenance block per upstream source that contributed to this response (contract v1.1; licenses are never merged; each block carries the origin diagnostics of ITS source)" - added
Output schema / properties / provenance / items / descriptionAdded value: +"Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença" - added
Output schema / properties / provenance / items / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / items / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
terminology_diff3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
terminology_versions3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
validate_codes4 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"One provenance block per upstream source that contributed to this response (contract v1.0; licenses are never merged)"New value: +"One provenance block per upstream source that contributed to this response (contract v1.1; licenses are never merged; each block carries the origin diagnostics of ITS source)" - added
Output schema / properties / provenance / items / descriptionAdded value: +"Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença" - added
Output schema / properties / provenance / items / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)" +} - changed
Output schema / properties / provenance / items / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
1 tool update
v1.12.1- Changed
cid10_search2 fields changed- changed
Input schema / properties / query / descriptionPrevious value: -"Search term in Portuguese (e.g., \"diabetes\", \"infarto\", \"tuberculose\")"New value: +"Search terms in Portuguese, AND between words (e.g., \"diabetes\", \"infarto\", \"câncer de mama\"); accents ignored, everyday words resolved to CID-10 wording" - added
Output schema / properties / vocabulary_notesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +}
33 tool updates
v1.11.0- Changed
atc_classify1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
atc_lookup1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
atc_members1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
cid10_chapter1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
cid10_chapters1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
cid10_lookup1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
cid10_search1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Added
fetch - Changed
find_equivalent1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
icd11_chapters1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
icd11_hierarchy5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / code / descriptionPrevious value: -"ICD-11 code to get hierarchy for"New value: +"ICD-11 code (e.g., \"BA00\", \"5A11\") or block range (e.g., \"5A10-5A2Y\")" - added
Input schema / properties / languageAdded value: +{ + "default": "en", + "description": "Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated.", + "enum": [ + "en", + "es", + "pt", + "fr", + "de", + "it", + "zh", + "ja", + "ar", + "ru" + ], + "type": "string" +} - added
Input schema / properties / uriAdded value: +{ + "description": "Entity URI as returned by icd11_lookup, icd11_search or a previous icd11_hierarchy call", + "format": "uri", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "code", - "direction" -]New value: +[ + "direction" +]
- Changed
icd11_lookup1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
icd11_postcoordination1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
icd11_search1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
loinc_answers1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
loinc_details1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
loinc_panels1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
loinc_search1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
map_icd10_to_icd111 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
map_loinc_to_snomed1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
mesh_descriptor1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
mesh_qualifiers1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
mesh_search1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
mesh_tree1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
rxnorm_classes1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
rxnorm_concept1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
rxnorm_ingredients1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
rxnorm_ndc1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
rxnorm_search1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Added
search - Changed
terminology_diff1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
terminology_versions1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
validate_codes1 field changed- added
Input schema / additionalPropertiesAdded value: +false
31 tool updates
v1.9.1- Changed
atc_classify4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
atc_lookup4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
atc_members4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
cid10_chapter4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
cid10_chapters4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
cid10_lookup5 fields changed- changed
Output schema / properties / hit / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "causa_obito": { - "type": "string" - }, - "chapter_num": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": -9007199254740991, - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "classif": { - "type": "string" - }, - "code": { - "type": "string" - }, - "display": { - "type": "string" - }, - "excluidos": { - "type": "string" - }, - "group_range": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "level": { - "enum": [ - "category", - "subcategory" - ], - "type": "string" - }, - "refer": { - "type": "string" - }, - "restr_sexo": { - "type": "string" - }, - "title": { - "type": "string" - }, - "title_short": { - "type": "string" - } - }, - "required": [ - "level", - "code", - "display", - "classif", - "title", - "title_short", - "refer", - "excluidos", - "restr_sexo", - "causa_obito", - "chapter_num", - "group_range" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "causa_obito": { + "type": "string" + }, + "chapter_num": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "classif": { + "type": "string" + }, + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "excluidos": { + "type": "string" + }, + "group_range": { + "type": [ + "string", + "null" + ] + }, + "level": { + "enum": [ + "category", + "subcategory" + ], + "type": "string" + }, + "refer": { + "type": "string" + }, + "restr_sexo": { + "type": "string" + }, + "title": { + "type": "string" + }, + "title_short": { + "type": "string" + } + }, + "required": [ + "level", + "code", + "display", + "classif", + "title", + "title_short", + "refer", + "excluidos", + "restr_sexo", + "causa_obito", + "chapter_num", + "group_range" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
cid10_search6 fields changed- removed
Output schema / properties / hits / items / properties / group_range / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / hits / items / properties / group_range / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
find_equivalent24 fields changed- removed
Output schema / properties / provenance / items / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / items / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / items / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / items / properties / license / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / properties / icd11 / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / properties / icd11 / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / properties / icd11 / properties / items / items / properties / uri / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / properties / icd11 / properties / items / items / properties / uri / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / properties / loinc / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / properties / loinc / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / properties / loinc / properties / items / items / properties / uri / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / properties / loinc / properties / items / items / properties / uri / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / properties / mesh / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / properties / mesh / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / properties / mesh / properties / items / items / properties / uri / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / properties / mesh / properties / items / items / properties / uri / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / properties / rxnorm / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / properties / rxnorm / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / properties / rxnorm / properties / items / items / properties / uri / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / properties / rxnorm / properties / items / items / properties / uri / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / properties / snomed / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / properties / snomed / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / properties / snomed / properties / items / items / properties / uri / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / properties / snomed / properties / items / items / properties / uri / typeAdded value: +[ + "string", + "null" +]
- Changed
icd11_chapters12 fields changed- removed
Output schema / properties / chapters / items / properties / code / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / chapters / items / properties / code / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / chapters / items / properties / code_range / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / chapters / items / properties / code_range / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / chapters / items / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / chapters / items / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / chapters / items / properties / title / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / chapters / items / properties / title / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
icd11_hierarchy8 fields changed- removed
Output schema / properties / entities / items / properties / code / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entities / items / properties / code / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / entities / items / properties / code_range / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entities / items / properties / code_range / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
icd11_lookup22 fields changed- removed
Output schema / properties / block_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / block_id / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / browser_url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / browser_url / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / class_kind / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / class_kind / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / code / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / code / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / code_range / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / code_range / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / coding_note / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / coding_note / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / definition / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / definition / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / diagnostic_criteria / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / diagnostic_criteria / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / long_definition / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / long_definition / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
icd11_postcoordination4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
icd11_search6 fields changed- removed
Output schema / properties / entities / items / properties / code / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entities / items / properties / code / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
loinc_answers4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
loinc_details6 fields changed- removed
Output schema / properties / external_copyright_notice / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / external_copyright_notice / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
loinc_panels4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
loinc_search6 fields changed- removed
Output schema / properties / items / items / properties / external_copyright_notice / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / items / items / properties / external_copyright_notice / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
map_icd10_to_icd114 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
map_loinc_to_snomed7 fields changed- changed
Output schema / properties / loinc_details / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "component": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "long_common_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "property": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "system": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "code", - "long_common_name", - "component", - "system", - "property" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "component": { + "type": [ + "string", + "null" + ] + }, + "long_common_name": { + "type": [ + "string", + "null" + ] + }, + "property": { + "type": [ + "string", + "null" + ] + }, + "system": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "code", + "long_common_name", + "component", + "system", + "property" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / mapping_sources / items / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / mapping_sources / items / properties / url / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
mesh_descriptor4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
mesh_qualifiers4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
mesh_search4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
mesh_tree4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
rxnorm_classes4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
rxnorm_concept4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
rxnorm_ingredients4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
rxnorm_ndc8 fields changed- removed
Output schema / properties / ndc / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / ndc / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / rxcui / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / rxcui / typeAdded value: +[ + "string", + "null" +]
- Changed
rxnorm_search4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
terminology_diff10 fields changed- removed
Output schema / properties / changelog_url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / changelog_url / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / from_version / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / from_version / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / to_version / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / to_version / typeAdded value: +[ + "string", + "null" +]
- Changed
terminology_versions8 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / terminologies / items / properties / changelog_url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / terminologies / items / properties / changelog_url / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / terminologies / items / properties / notes / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / terminologies / items / properties / notes / typeAdded value: +[ + "string", + "null" +]
- Changed
validate_codes12 fields changed- removed
Output schema / properties / provenance / items / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / items / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / items / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / items / properties / license / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / properties / active / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / items / properties / active / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / results / items / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / items / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / properties / replaced_by / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / items / properties / replaced_by / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / properties / title / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / items / properties / title / typeAdded value: +[ + "string", + "null" +]
31 tool updates
v1.8.0- Changed
atc_classify3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "drug_name", - "matches" -]New value: +[ + "drug_name", + "matches", + "provenance", + "attribution" +]
- Changed
atc_lookup3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "atc_code", - "found", - "details" -]New value: +[ + "atc_code", + "found", + "details", + "provenance", + "attribution" +]
- Changed
atc_members3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "atc_code", - "members" -]New value: +[ + "atc_code", + "members", + "provenance", + "attribution" +]
- Changed
cid10_chapter3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "num", - "found", - "chapter", - "groups" -]New value: +[ + "num", + "found", + "chapter", + "groups", + "provenance", + "attribution" +]
- Changed
cid10_chapters3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "chapters" -]New value: +[ + "chapters", + "provenance", + "attribution" +]
- Changed
cid10_lookup3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "code", - "found", - "hit" -]New value: +[ + "code", + "found", + "hit", + "provenance", + "attribution" +]
- Changed
cid10_search3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "query", - "level", - "total_count", - "shown_count", - "hits" -]New value: +[ + "query", + "level", + "total_count", + "shown_count", + "hits", + "provenance", + "attribution" +]
- Changed
find_equivalent26 fields changed- added
Input schema / properties / limitAdded value: +{ + "description": "Maximum candidates returned PER terminology (1-10, default 5). This is a cap, not a page: the live fan-out has no stable cursor across five upstreams, so raise the limit instead of paging.", + "maximum": 10, + "minimum": 1, + "type": "integer" +} - added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / groupsAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "members": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "match_score": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "terminology": { + "enum": [ + "icd11", + "snomed", + "loinc", + "rxnorm", + "mesh" + ], + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "terminology", + "code", + "title", + "match_score" + ], + "type": "object" + }, + "type": "array" + }, + "normalized_title": { + "type": "string" + }, + "terminologies": { + "items": { + "enum": [ + "icd11", + "snomed", + "loinc", + "rxnorm", + "mesh" + ], + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "normalized_title", + "terminologies", + "members" + ], + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "description": "One provenance block per upstream source that contributed to this response (contract v1.0; licenses are never merged)", + "items": { + "additionalProperties": false, + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / rankingAdded value: +{ + "additionalProperties": false, + "properties": { + "method": { + "const": "lexical", + "type": "string" + }, + "note": { + "type": "string" + } + }, + "required": [ + "method", + "note" + ], + "type": "object" +} - added
Output schema / properties / results / properties / icd11 / properties / items / items / properties / match_scoreAdded value: +{ + "maximum": 1, + "minimum": 0, + "type": "number" +} - added
Output schema / properties / results / properties / icd11 / properties / items / items / properties / rankAdded value: +{ + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" +} - added
Output schema / properties / results / properties / icd11 / properties / items / items / properties / uriAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / results / properties / icd11 / properties / items / items / requiredPrevious value: -[ - "code", - "title" -]New value: +[ + "code", + "title", + "uri", + "match_score", + "rank" +] - added
Output schema / properties / results / properties / loinc / properties / items / items / properties / match_scoreAdded value: +{ + "maximum": 1, + "minimum": 0, + "type": "number" +} - added
Output schema / properties / results / properties / loinc / properties / items / items / properties / rankAdded value: +{ + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" +} - added
Output schema / properties / results / properties / loinc / properties / items / items / properties / uriAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / results / properties / loinc / properties / items / items / requiredPrevious value: -[ - "code", - "title" -]New value: +[ + "code", + "title", + "uri", + "match_score", + "rank" +] - added
Output schema / properties / results / properties / mesh / properties / items / items / properties / match_scoreAdded value: +{ + "maximum": 1, + "minimum": 0, + "type": "number" +} - added
Output schema / properties / results / properties / mesh / properties / items / items / properties / rankAdded value: +{ + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" +} - added
Output schema / properties / results / properties / mesh / properties / items / items / properties / uriAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / results / properties / mesh / properties / items / items / requiredPrevious value: -[ - "code", - "title" -]New value: +[ + "code", + "title", + "uri", + "match_score", + "rank" +] - added
Output schema / properties / results / properties / rxnorm / properties / items / items / properties / match_scoreAdded value: +{ + "maximum": 1, + "minimum": 0, + "type": "number" +} - added
Output schema / properties / results / properties / rxnorm / properties / items / items / properties / rankAdded value: +{ + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" +} - added
Output schema / properties / results / properties / rxnorm / properties / items / items / properties / uriAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / results / properties / rxnorm / properties / items / items / requiredPrevious value: -[ - "code", - "title" -]New value: +[ + "code", + "title", + "uri", + "match_score", + "rank" +] - added
Output schema / properties / results / properties / snomed / properties / items / items / properties / match_scoreAdded value: +{ + "maximum": 1, + "minimum": 0, + "type": "number" +} - added
Output schema / properties / results / properties / snomed / properties / items / items / properties / rankAdded value: +{ + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" +} - added
Output schema / properties / results / properties / snomed / properties / items / items / properties / uriAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / results / properties / snomed / properties / items / items / requiredPrevious value: -[ - "code", - "title" -]New value: +[ + "code", + "title", + "uri", + "match_score", + "rank" +] - changed
Output schema / requiredPrevious value: -[ - "term", - "source_terminology", - "searched_terminologies", - "results" -]New value: +[ + "term", + "source_terminology", + "searched_terminologies", + "results", + "groups", + "ranking", + "provenance", + "attribution" +]
- Changed
icd11_chapters4 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"Language code (default: en)"New value: +"Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated." - added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "chapters" -]New value: +[ + "chapters", + "provenance", + "attribution" +]
- Changed
icd11_hierarchy3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "code", - "direction", - "entities" -]New value: +[ + "code", + "direction", + "entities", + "provenance", + "attribution" +]
- Changed
icd11_lookup4 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"Language code (default: en)"New value: +"Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated." - added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "code", - "code_range", - "uri", - "title", - "class_kind", - "block_id", - "definition", - "long_definition", - "diagnostic_criteria", - "coding_note", - "exclusions", - "inclusions", - "index_terms", - "browser_url" -]New value: +[ + "code", + "code_range", + "uri", + "title", + "class_kind", + "block_id", + "definition", + "long_definition", + "diagnostic_criteria", + "coding_note", + "exclusions", + "inclusions", + "index_terms", + "browser_url", + "provenance", + "attribution" +]
- Changed
icd11_postcoordination3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "code", - "axes" -]New value: +[ + "code", + "axes", + "provenance", + "attribution" +]
- Changed
icd11_search4 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"Language code (default: en)"New value: +"Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated." - added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "query", - "total_count", - "entities" -]New value: +[ + "query", + "total_count", + "entities", + "provenance", + "attribution" +]
- Changed
loinc_answers3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "loinc_num", - "answers" -]New value: +[ + "loinc_num", + "answers", + "provenance", + "attribution" +]
- Changed
loinc_details4 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / external_copyright_noticeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "loinc_num", - "long_common_name", - "short_name", - "component", - "property", - "time_aspect", - "system", - "scale_type", - "method_type", - "class", - "status" -]New value: +[ + "loinc_num", + "long_common_name", + "short_name", + "component", + "property", + "time_aspect", + "system", + "scale_type", + "method_type", + "class", + "status", + "external_copyright_notice", + "provenance", + "attribution" +]
- Changed
loinc_panels3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "loinc_num", - "panel" -]New value: +[ + "loinc_num", + "panel", + "provenance", + "attribution" +]
- Changed
loinc_search5 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / items / items / properties / external_copyright_noticeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / items / items / requiredPrevious value: -[ - "loinc_num", - "long_common_name", - "short_name", - "component", - "property", - "time_aspect", - "system", - "scale_type", - "method_type", - "class", - "status" -]New value: +[ + "loinc_num", + "long_common_name", + "short_name", + "component", + "property", + "time_aspect", + "system", + "scale_type", + "method_type", + "class", + "status", + "external_copyright_notice" +] - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "query", - "total_count", - "shown_count", - "items" -]New value: +[ + "query", + "total_count", + "shown_count", + "items", + "provenance", + "attribution" +]
- Changed
map_icd10_to_icd113 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "query", - "found", - "icd10", - "primary", - "alternatives", - "source" -]New value: +[ + "query", + "found", + "icd10", + "primary", + "alternatives", + "source", + "provenance", + "attribution" +]
- Changed
map_loinc_to_snomed3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "loinc_code", - "loinc_details", - "status", - "guidance", - "mapping_sources" -]New value: +[ + "loinc_code", + "loinc_details", + "status", + "guidance", + "mapping_sources", + "provenance", + "attribution" +]
- Changed
mesh_descriptor4 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"Language code (default: en)"New value: +"Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated." - added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "id", - "uri", - "label", - "scope_note", - "tree_numbers", - "concepts", - "qualifiers" -]New value: +[ + "id", + "uri", + "label", + "scope_note", + "tree_numbers", + "concepts", + "qualifiers", + "provenance", + "attribution" +]
- Changed
mesh_qualifiers3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "mesh_id", - "qualifiers" -]New value: +[ + "mesh_id", + "qualifiers", + "provenance", + "attribution" +]
- Changed
mesh_search4 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"Language code (default: en)"New value: +"Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated." - added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "query", - "match", - "total_count", - "descriptors" -]New value: +[ + "query", + "match", + "total_count", + "descriptors", + "provenance", + "attribution" +]
- Changed
mesh_tree3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "mesh_id", - "tree_numbers" -]New value: +[ + "mesh_id", + "tree_numbers", + "provenance", + "attribution" +]
- Changed
rxnorm_classes3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "rxcui", - "classes" -]New value: +[ + "rxcui", + "classes", + "provenance", + "attribution" +]
- Changed
rxnorm_concept3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "rxcui", - "name", - "synonym", - "tty", - "language", - "suppress", - "umlscui", - "status", - "remapped_to", - "related_groups" -]New value: +[ + "rxcui", + "name", + "synonym", + "tty", + "language", + "suppress", + "umlscui", + "status", + "remapped_to", + "related_groups", + "provenance", + "attribution" +]
- Changed
rxnorm_ingredients3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "rxcui", - "ingredients" -]New value: +[ + "rxcui", + "ingredients", + "provenance", + "attribution" +]
- Changed
rxnorm_ndc3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "query_mode", - "rxcui", - "ndc", - "ndcs" -]New value: +[ + "query_mode", + "rxcui", + "ndc", + "ndcs", + "provenance", + "attribution" +]
- Changed
rxnorm_search3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "query", - "total_count", - "drugs" -]New value: +[ + "query", + "total_count", + "drugs", + "provenance", + "attribution" +]
- Changed
terminology_diff3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "terminology", - "from_version", - "to_version", - "diff_available", - "message", - "changelog_url", - "bundled_versions", - "cross_revision_summary" -]New value: +[ + "terminology", + "from_version", + "to_version", + "diff_available", + "message", + "changelog_url", + "bundled_versions", + "cross_revision_summary", + "provenance", + "attribution" +]
- Changed
terminology_versions3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license", + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "generated", - "total", - "terminologies" -]New value: +[ + "generated", + "total", + "terminologies", + "provenance", + "attribution" +]
- Changed
validate_codes3 fields changed- added
Output schema / properties / attributionAdded value: +{ + "description": "Canonical source URLs of this response (attribution list)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "description": "One provenance block per upstream source that contributed to this response (contract v1.0; licenses are never merged)", + "items": { + "additionalProperties": false, + "properties": { + "citation": { + "description": "Ready-to-use citation/attribution string", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Version/release of the data as exposed by the source; null when not exposed" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "License / legal regime of the data" + }, + "retrieved_at": { + "description": "Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.", + "type": "string" + }, + "source": { + "description": "Official upstream source of this data", + "type": "string" + }, + "source_url": { + "description": "Canonical URL of the source (API base or dataset release)", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / requiredPrevious value: -[ - "total", - "valid_count", - "invalid_count", - "error_count", - "results" -]New value: +[ + "total", + "valid_count", + "invalid_count", + "error_count", + "results", + "provenance", + "attribution" +]
31 tool updates
v1.5.7- Changed
atc_classify1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
atc_lookup1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
atc_members1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
cid10_chapter4 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / properties / chapter / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "code_end": { - "type": "string" - }, - "code_start": { - "type": "string" - }, - "num": { - "type": "integer" - }, - "title": { - "type": "string" - }, - "title_short": { - "type": "string" - } - }, - "required": [ - "num", - "code_start", - "code_end", - "title", - "title_short" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "code_end": { + "type": "string" + }, + "code_start": { + "type": "string" + }, + "num": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "title": { + "type": "string" + }, + "title_short": { + "type": "string" + } + }, + "required": [ + "num", + "code_start", + "code_end", + "title", + "title_short" + ], + "type": "object" + }, + { + "type": "null" + } +] - added
Output schema / properties / num / maximumAdded value: +9007199254740991 - added
Output schema / properties / num / minimumAdded value: +-9007199254740991
- Changed
cid10_chapters3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / chapters / items / properties / num / maximumAdded value: +9007199254740991 - added
Output schema / properties / chapters / items / properties / num / minimumAdded value: +-9007199254740991
- Changed
cid10_lookup2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / properties / hit / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "causa_obito": { - "type": "string" - }, - "chapter_num": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "classif": { - "type": "string" - }, - "code": { - "type": "string" - }, - "display": { - "type": "string" - }, - "excluidos": { - "type": "string" - }, - "group_range": { - "type": [ - "string", - "null" - ] - }, - "level": { - "enum": [ - "category", - "subcategory" - ], - "type": "string" - }, - "refer": { - "type": "string" - }, - "restr_sexo": { - "type": "string" - }, - "title": { - "type": "string" - }, - "title_short": { - "type": "string" - } - }, - "required": [ - "level", - "code", - "display", - "classif", - "title", - "title_short", - "refer", - "excluidos", - "restr_sexo", - "causa_obito", - "chapter_num", - "group_range" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "causa_obito": { + "type": "string" + }, + "chapter_num": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "classif": { + "type": "string" + }, + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "excluidos": { + "type": "string" + }, + "group_range": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "level": { + "enum": [ + "category", + "subcategory" + ], + "type": "string" + }, + "refer": { + "type": "string" + }, + "restr_sexo": { + "type": "string" + }, + "title": { + "type": "string" + }, + "title_short": { + "type": "string" + } + }, + "required": [ + "level", + "code", + "display", + "classif", + "title", + "title_short", + "refer", + "excluidos", + "restr_sexo", + "causa_obito", + "chapter_num", + "group_range" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
cid10_search8 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / properties / hits / items / properties / chapter_num / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } +] - added
Output schema / properties / hits / items / properties / group_range / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / hits / items / properties / group_range / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / shown_count / maximumAdded value: +9007199254740991 - added
Output schema / properties / shown_count / minimumAdded value: +-9007199254740991 - added
Output schema / properties / total_count / maximumAdded value: +9007199254740991 - added
Output schema / properties / total_count / minimumAdded value: +-9007199254740991
- Changed
find_equivalent11 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / results / properties / icd11 / properties / error / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / results / properties / icd11 / properties / error / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / results / properties / loinc / properties / error / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / results / properties / loinc / properties / error / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / results / properties / mesh / properties / error / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / results / properties / mesh / properties / error / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / results / properties / rxnorm / properties / error / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / results / properties / rxnorm / properties / error / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / results / properties / snomed / properties / error / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / results / properties / snomed / properties / error / typeRemoved value: -[ - "string", - "null" -]
- Changed
icd11_chapters11 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / chapters / items / properties / code / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / chapters / items / properties / code / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / chapters / items / properties / code_range / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / chapters / items / properties / code_range / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / chapters / items / properties / error / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / chapters / items / properties / error / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / chapters / items / properties / number / maximumAdded value: +9007199254740991 - added
Output schema / properties / chapters / items / properties / number / minimumAdded value: +-9007199254740991 - added
Output schema / properties / chapters / items / properties / title / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / chapters / items / properties / title / typeRemoved value: -[ - "string", - "null" -]
- Changed
icd11_hierarchy5 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / entities / items / properties / code / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entities / items / properties / code / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / entities / items / properties / code_range / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entities / items / properties / code_range / typeRemoved value: -[ - "string", - "null" -]
- Changed
icd11_lookup19 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / block_id / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / block_id / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / browser_url / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / browser_url / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / class_kind / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / class_kind / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / code / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / code / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / code_range / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / code_range / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / coding_note / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / coding_note / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / definition / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / definition / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / diagnostic_criteria / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / diagnostic_criteria / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / long_definition / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / long_definition / typeRemoved value: -[ - "string", - "null" -]
- Changed
icd11_postcoordination2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / properties / axes / items / properties / value_count / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } +]
- Changed
icd11_search5 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / entities / items / properties / code / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entities / items / properties / code / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / total_count / maximumAdded value: +9007199254740991 - added
Output schema / properties / total_count / minimumAdded value: +-9007199254740991
- Changed
loinc_answers3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / answers / items / properties / sequence / maximumAdded value: +9007199254740991 - added
Output schema / properties / answers / items / properties / sequence / minimumAdded value: +-9007199254740991
- Changed
loinc_details1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
loinc_panels2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / properties / panel / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "loinc_num": { - "type": "string" - }, - "name": { - "type": "string" - }, - "required": { - "type": "boolean" - }, - "sequence": { - "type": "integer" - } - }, - "required": [ - "sequence", - "loinc_num", - "name", - "required" - ], - "type": "object" - }, - "type": "array" - }, - "loinc_num": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "loinc_num", - "name", - "items" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "items": { + "items": { + "additionalProperties": false, + "properties": { + "loinc_num": { + "type": "string" + }, + "name": { + "type": "string" + }, + "required": { + "type": "boolean" + }, + "sequence": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "sequence", + "loinc_num", + "name", + "required" + ], + "type": "object" + }, + "type": "array" + }, + "loinc_num": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "loinc_num", + "name", + "items" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
loinc_search5 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / shown_count / maximumAdded value: +9007199254740991 - added
Output schema / properties / shown_count / minimumAdded value: +-9007199254740991 - added
Output schema / properties / total_count / maximumAdded value: +9007199254740991 - added
Output schema / properties / total_count / minimumAdded value: +-9007199254740991
- Changed
map_icd10_to_icd115 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / alternatives / items / properties / depth / maximumAdded value: +9007199254740991 - added
Output schema / properties / alternatives / items / properties / depth / minimumAdded value: +-9007199254740991 - changed
Output schema / properties / icd10 / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "chapter": { - "type": "string" - }, - "code": { - "type": "string" - }, - "depth": { - "type": "integer" - }, - "title": { - "type": "string" - } - }, - "required": [ - "code", - "title", - "chapter", - "depth" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "chapter": { + "type": "string" + }, + "code": { + "type": "string" + }, + "depth": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "title", + "chapter", + "depth" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / primary / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "chapter": { - "type": "string" - }, - "classKind": { - "type": "string" - }, - "code": { - "type": "string" - }, - "depth": { - "type": "integer" - }, - "foundationUri": { - "type": "string" - }, - "linearizationUri": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "code", - "title", - "chapter", - "foundationUri", - "linearizationUri", - "classKind", - "depth" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "chapter": { + "type": "string" + }, + "classKind": { + "type": "string" + }, + "code": { + "type": "string" + }, + "depth": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "foundationUri": { + "type": "string" + }, + "linearizationUri": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "title", + "chapter", + "foundationUri", + "linearizationUri", + "classKind", + "depth" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
map_loinc_to_snomed4 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / properties / loinc_details / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "component": { - "type": [ - "string", - "null" - ] - }, - "long_common_name": { - "type": [ - "string", - "null" - ] - }, - "property": { - "type": [ - "string", - "null" - ] - }, - "system": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "code", - "long_common_name", - "component", - "system", - "property" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "component": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "long_common_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "property": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "system": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "code", + "long_common_name", + "component", + "system", + "property" + ], + "type": "object" + }, + { + "type": "null" + } +] - added
Output schema / properties / mapping_sources / items / properties / url / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / mapping_sources / items / properties / url / typeRemoved value: -[ - "string", - "null" -]
- Changed
mesh_descriptor1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
mesh_qualifiers1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
mesh_search3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / total_count / maximumAdded value: +9007199254740991 - added
Output schema / properties / total_count / minimumAdded value: +-9007199254740991
- Changed
mesh_tree1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
rxnorm_classes1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
rxnorm_concept1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
rxnorm_ingredients1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
rxnorm_ndc5 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / ndc / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / ndc / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / rxcui / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / rxcui / typeRemoved value: -[ - "string", - "null" -]
- Changed
rxnorm_search3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / total_count / maximumAdded value: +9007199254740991 - added
Output schema / properties / total_count / minimumAdded value: +-9007199254740991
- Changed
terminology_diff8 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / changelog_url / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / changelog_url / typeRemoved value: -[ - "string", - "null" -] - changed
Output schema / properties / cross_revision_summary / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "avg_alternatives_when_split": { - "type": "number" - }, - "icd10_categories_total": { - "type": "integer" - }, - "one_to_many_splits": { - "type": "integer" - }, - "one_to_one_mappings": { - "type": "integer" - } - }, - "required": [ - "icd10_categories_total", - "one_to_one_mappings", - "one_to_many_splits", - "avg_alternatives_when_split" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "avg_alternatives_when_split": { + "type": "number" + }, + "icd10_categories_total": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "one_to_many_splits": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "one_to_one_mappings": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "icd10_categories_total", + "one_to_one_mappings", + "one_to_many_splits", + "avg_alternatives_when_split" + ], + "type": "object" + }, + { + "type": "null" + } +] - added
Output schema / properties / from_version / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / from_version / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / to_version / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / to_version / typeRemoved value: -[ - "string", - "null" -]
- Changed
terminology_versions7 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / terminologies / items / properties / changelog_url / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / terminologies / items / properties / changelog_url / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / terminologies / items / properties / notes / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / terminologies / items / properties / notes / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / total / maximumAdded value: +9007199254740991 - added
Output schema / properties / total / minimumAdded value: +-9007199254740991
- Changed
validate_codes18 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / codes / items / additionalPropertiesRemoved value: -false - added
Output schema / properties / error_count / maximumAdded value: +9007199254740991 - added
Output schema / properties / error_count / minimumAdded value: +-9007199254740991 - added
Output schema / properties / invalid_count / maximumAdded value: +9007199254740991 - added
Output schema / properties / invalid_count / minimumAdded value: +-9007199254740991 - added
Output schema / properties / results / items / properties / active / anyOfAdded value: +[ + { + "type": "boolean" + }, + { + "type": "null" + } +] - removed
Output schema / properties / results / items / properties / active / typeRemoved value: -[ - "boolean", - "null" -] - added
Output schema / properties / results / items / properties / error / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / results / items / properties / error / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / results / items / properties / replaced_by / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / results / items / properties / replaced_by / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / results / items / properties / title / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / results / items / properties / title / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / total / maximumAdded value: +9007199254740991 - added
Output schema / properties / total / minimumAdded value: +-9007199254740991 - added
Output schema / properties / valid_count / maximumAdded value: +9007199254740991 - added
Output schema / properties / valid_count / minimumAdded value: +-9007199254740991
2 tool updates
v1.5.0- Changed
map_icd10_to_icd111 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "alternatives": { + "description": "Additional ICD-11 candidates WHO documents for this ICD-10 code. Empty when the primary is the only documented mapping (or when found=false). 1,461 of the 11,243 indexed codes have non-empty alternatives.", + "items": { + "additionalProperties": false, + "properties": { + "chapter": { + "type": "string" + }, + "classKind": { + "type": "string" + }, + "code": { + "type": "string" + }, + "depth": { + "type": "integer" + }, + "foundationUri": { + "type": "string" + }, + "linearizationUri": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "title", + "chapter", + "foundationUri", + "linearizationUri", + "classKind", + "depth" + ], + "type": "object" + }, + "type": "array" + }, + "found": { + "description": "Whether the code is in the WHO ICD-10 → ICD-11 transition table.", + "type": "boolean" + }, + "icd10": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "chapter": { + "type": "string" + }, + "code": { + "type": "string" + }, + "depth": { + "type": "integer" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "title", + "chapter", + "depth" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Source ICD-10 entry from the WHO table. Null when found=false." + }, + "primary": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "chapter": { + "type": "string" + }, + "classKind": { + "type": "string" + }, + "code": { + "type": "string" + }, + "depth": { + "type": "integer" + }, + "foundationUri": { + "type": "string" + }, + "linearizationUri": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "title", + "chapter", + "foundationUri", + "linearizationUri", + "classKind", + "depth" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Primary 1:1 ICD-11 mapping. Null when found=false." + }, + "query": { + "description": "The ICD-10 code as submitted (raw, before normalization).", + "type": "string" + }, + "source": { + "additionalProperties": false, + "properties": { + "publisher": { + "description": "Authoritative publisher (e.g. \"WHO\").", + "type": "string" + }, + "release_date": { + "description": "ISO date string for the release.", + "type": "string" + }, + "version": { + "description": "Transition table release identifier (e.g. \"2025-01\").", + "type": "string" + } + }, + "required": [ + "publisher", + "version", + "release_date" + ], + "type": "object" + } + }, + "required": [ + "query", + "found", + "icd10", + "primary", + "alternatives", + "source" + ], + "type": "object" +}
- Changed
map_loinc_to_snomed1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "guidance": { + "description": "Short human-readable explanation of why this tool returns guidance instead of a mapping.", + "type": "string" + }, + "loinc_code": { + "description": "The LOINC code as submitted.", + "type": "string" + }, + "loinc_details": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "component": { + "type": [ + "string", + "null" + ] + }, + "long_common_name": { + "type": [ + "string", + "null" + ] + }, + "property": { + "type": [ + "string", + "null" + ] + }, + "system": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "code", + "long_common_name", + "component", + "system", + "property" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "NLM Clinical Tables details for the LOINC code (component, system, property, etc.). Null when the code was not found upstream." + }, + "mapping_sources": { + "description": "Structured list of authoritative LOINC → SNOMED CT mapping sources (UMLS Metathesaurus, LOINC SNOMED CT Expression Association, Regenstrief RELMA).", + "items": { + "additionalProperties": false, + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name", + "description", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "description": "Always \"guidance-only\" — direct LOINC → SNOMED CT mappings require licensed sources (UMLS Metathesaurus or LOINC SNOMED CT Expression Association). This tool returns pointers, not the mapping itself.", + "enum": [ + "guidance-only" + ], + "type": "string" + } + }, + "required": [ + "loinc_code", + "loinc_details", + "status", + "guidance", + "mapping_sources" + ], + "type": "object" +}
5 tool updates
v1.4.0- Changed
mesh_descriptor1 field changed- added
Input schema / properties / languageAdded value: +{ + "default": "en", + "description": "Language code (default: en)", + "enum": [ + "en", + "es", + "pt", + "fr", + "de", + "it", + "zh", + "ja", + "ar", + "ru" + ], + "type": "string" +}
- Changed
mesh_search1 field changed- added
Input schema / properties / languageAdded value: +{ + "default": "en", + "description": "Language code (default: en)", + "enum": [ + "en", + "es", + "pt", + "fr", + "de", + "it", + "zh", + "ja", + "ar", + "ru" + ], + "type": "string" +}
- Added
terminology_diff - Added
terminology_versions - Added
validate_codes
TDQS
Scored across 33 tools
Most tools are clearly distinguished by both terminology prefix and operation (search vs lookup vs hierarchy vs validation). The main ambiguity is between the generic catalog `search`/`fetch` tools and the terminology-specific search tools, though descriptions explicitly warn that the former is a catalog index, not a data query.
Almost all tools follow a predictable snake_case `terminology_action` pattern (loinc_search, rxnorm_concept, icd11_hierarchy, cid10_lookup, mesh_tree, atc_members). The generic `search`, `fetch`, `find_equivalent`, and `harmonize_terms` names break the prefix pattern but remain readable and descriptive.
At 33 tools the surface is heavy for an agent, even accounting for the server covering seven terminologies plus cross-cutting mapping and validation. Most tools earn their place, but the total is well above the typical well-scoped range and invites cognitive overload.
Coverage is strong: search/lookup/hierarchy/details for LOINC, RxNorm, MeSH, CID-10, ICD-11, and ATC, plus mapping, batch validation, harmonization, version metadata, and generic catalog access. The main gap is the lack of a direct international ICD-10 search tool, despite ICD-10 being used in mapping and validation.
Maintenance
Related MCP Connectors
Citepath public MCP server for LLM readiness audits and public scan results.
Hosted MCP server exposing US hospital procedure cost data to AI assistants
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA FastAPI backend service that connects to Azure's Managed Chat Project using GPT-4o to provide medical chatbot functionality through a simple HTML interface.-
- AlicenseBqualityCmaintenanceAn MCP server that provides comprehensive medical information by querying multiple authoritative medical APIs including FDA, WHO, PubMed, Google Scholar, and RxNorm.1182 npm119MIT
- AlicenseNot gradedqualityFmaintenanceProvides comprehensive medical information by querying authoritative sources including FDA drug database, WHO health statistics, PubMed literature, RxNorm nomenclature, Google Scholar, and Australia's PBS API through 22+ specialized tools.82 npm3MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI-powered medical information retrieval through FHIR clinical document search and GraphRAG-based exploration of medical entities and relationships. Combines vector search with knowledge graph queries for comprehensive healthcare data analysis.MIT