MCPサーバー

Medical Terminologies MCP

io.github.SidneyBissoli/medical-terminologies-mcp
ヘルスケア ナレッジ・ドキュメント 公開・接続可能 MCP 2025-11-25

このMCPでできること

Provides searchable and hierarchical reference data for medical diagnoses, drugs, laboratory tests, and controlled vocabularies across ICD, SNOMED, LOINC, RxNorm, MeSH, and related systems.

atc_classify
ATC Classification for a Drug
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['drug_name'], 'properties': {'drug_name': {'type': 'string', 'minLength': 1, 'description': 'Drug name to classify (brand or generic, e.g., "metformin")'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['drug_name', 'matches', 'provenance', 'attribution'], 'properties': {'matches': {'type': 'array', 'items': {'type': 'object', 'required': ['rxcui', 'drug_name', 'tty', 'atc_code', 'atc_name', 'atc_level_type'], 'properties': {'tty': {'type': 'string'}, 'rxcui': {'type': 'string'}, 'atc_code': {'type': 'string'}, 'atc_name': {'type': 'string'}, 'drug_name': {'type': 'string'}, 'atc_level_type': {'type': 'string'}}, 'additionalProperties': False}}, 'drug_name': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
atc_lookup
ATC Code Details
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['atc_code'], 'properties': {'atc_code': {'type': 'string', 'pattern': '^[A-V](\\d{2}([A-Z]([A-Z](\\d{2})?)?)?)?$', 'description': 'ATC code at level 1-4 (1-5 chars). Substance-level codes (7 chars, e.g., A10BA02) are not exposed by this endpoint â\x80\x94 use atc_classify with the drug name instead.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['atc_code', 'found', 'details', 'provenance', 'attribution'], 'properties': {'found': {'type': 'boolean'}, 'details': {'anyOf': [{'type': 'object', 'required': ['atc_code', 'atc_name', 'atc_level_type'], 'properties': {'atc_code': {'type': 'string'}, 'atc_name': {'type': 'string'}, 'atc_level_type': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'atc_code': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
atc_members
ATC Class Members
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['atc_code'], 'properties': {'atc_code': {'type': 'string', 'pattern': '^[A-V](\\d{2}([A-Z]([A-Z](\\d{2})?)?)?)?$', 'description': 'ATC code at any level. Higher levels (1-4) return all member substances; level 5 returns the single substance.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['atc_code', 'members', 'provenance', 'attribution'], 'properties': {'members': {'type': 'array', 'items': {'type': 'object', 'required': ['rxcui', 'name', 'tty', 'source_atc_code'], 'properties': {'tty': {'type': 'string'}, 'name': {'type': 'string'}, 'rxcui': {'type': 'string'}, 'source_atc_code': {'type': 'string'}}, 'additionalProperties': False}}, 'atc_code': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
cid10_chapter
Capítulo da CID-10
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 - Build hierarchical browsers - Find which group contains a code range Provide a chapter number (1-22).
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['num'], 'properties': {'num': {'type': 'integer', 'maximum': 22, 'minimum': 1, 'description': 'Chapter number (1-22). CID-10 V2008 has 22 chapters.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['num', 'found', 'chapter', 'groups', 'provenance', 'attribution'], 'properties': {'num': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'found': {'type': 'boolean'}, 'groups': {'type': 'array', 'items': {'type': 'object', 'required': ['code_start', 'code_end', 'title', 'title_short'], 'properties': {'title': {'type': 'string'}, 'code_end': {'type': 'string'}, 'code_start': {'type': 'string'}, 'title_short': {'type': 'string'}}, 'additionalProperties': False}}, 'chapter': {'anyOf': [{'type': 'object', 'required': ['num', 'code_start', 'code_end', 'title', 'title_short'], 'properties': {'num': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'title': {'type': 'string'}, 'code_end': {'type': 'string'}, 'code_start': {'type': 'string'}, 'title_short': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
cid10_chapters
Capítulos da CID-10
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'properties': {}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['chapters', 'provenance', 'attribution'], 'properties': {'chapters': {'type': 'array', 'items': {'type': 'object', 'required': ['num', 'code_start', 'code_end', 'title', 'title_short'], 'properties': {'num': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'title': {'type': 'string'}, 'code_end': {'type': 'string'}, 'code_start': {'type': 'string'}, 'title_short': {'type': 'string'}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
cid10_lookup
Consultar Código CID-10
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'pattern': '^[A-Z]\\d{2}(\\.?\\d)?$', 'description': 'CID-10 code (e.g., "A00", "A00.1", "A001", "I21"). Dotted and undotted forms both accepted.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['code', 'found', 'hit', 'provenance', 'attribution'], 'properties': {'hit': {'anyOf': [{'type': 'object', 'required': ['level', 'code', 'display', 'classif', 'title', 'title_short', 'refer', 'excluidos', 'restr_sexo', 'causa_obito', 'chapter_num', 'group_range'], 'properties': {'code': {'type': 'string'}, 'level': {'enum': ['category', 'subcategory'], 'type': 'string'}, 'refer': {'type': 'string'}, 'title': {'type': 'string'}, 'classif': {'type': 'string'}, 'display': {'type': 'string'}, 'excluidos': {'type': 'string'}, 'restr_sexo': {'type': 'string'}, 'causa_obito': {'type': 'string'}, 'chapter_num': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'group_range': {'type': ['string', 'null']}, 'title_short': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'code': {'type': 'string'}, 'found': {'type': 'boolean'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
cid10_search
Buscar na CID-10
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'level': {'enum': ['categories', 'subcategories', 'all'], 'type': 'string', 'default': 'all', 'description': 'Restrict search to 3-char categories, 4-char subcategories, or both. Default: all'}, 'query': {'type': 'string', 'minLength': 2, 'description': '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': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of results (1-100). Default: 25'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['query', 'level', 'total_count', 'shown_count', 'hits', 'provenance', 'attribution'], 'properties': {'hits': {'type': 'array', 'items': {'type': 'object', 'required': ['level', 'code', 'display', 'classif', 'title', 'title_short', 'refer', 'excluidos', 'restr_sexo', 'causa_obito', 'chapter_num', 'group_range'], 'properties': {'code': {'type': 'string'}, 'level': {'enum': ['category', 'subcategory'], 'type': 'string'}, 'refer': {'type': 'string'}, 'title': {'type': 'string'}, 'classif': {'type': 'string'}, 'display': {'type': 'string'}, 'excluidos': {'type': 'string'}, 'restr_sexo': {'type': 'string'}, 'causa_obito': {'type': 'string'}, 'chapter_num': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'group_range': {'type': ['string', 'null']}, 'title_short': {'type': 'string'}}, 'additionalProperties': False}}, 'level': {'enum': ['categories', 'subcategories', 'all'], 'type': 'string'}, 'query': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'shown_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'total_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'vocabulary_notes': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
fetch
Deep Research Document
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Identifier of a document returned by `search`'}}}
出力スキーマ
{'type': 'object', 'required': ['id', 'title', 'text', 'url', 'provenance', 'attribution'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Unique identifier of the document on this server; what `fetch` takes'}, 'url': {'type': 'string', 'description': "Canonical public URL of the document â\x80\x94 ChatGPT's citation depends on it"}, 'text': {'type': 'string', 'description': 'Full readable content of the document (Markdown)'}, 'title': {'type': 'string', 'description': 'Human-readable title of the document'}, 'metadata': {'type': 'object', 'description': 'Additional key/value pairs about the document (kind, source, periodâ\x80¦)', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
find_equivalent
Find Equivalents Across Terminologies
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, SNOMED CT, 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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['term'], 'properties': {'term': {'type': 'string', 'minLength': 1, 'description': 'Medical term to search (e.g., "diabetes", "aspirin")'}, 'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1, '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.'}, 'source_terminology': {'enum': ['icd11', 'snomed', 'loinc', 'rxnorm', 'mesh'], 'type': 'string', 'description': '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': {'type': 'array', 'items': {'enum': ['icd11', 'snomed', 'loinc', 'rxnorm', 'mesh'], 'type': 'string'}, 'description': 'Limit the search to these terminologies. If omitted, all five are searched.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['term', 'source_terminology', 'searched_terminologies', 'results', 'groups', 'ranking', 'provenance', 'attribution'], 'properties': {'term': {'type': 'string'}, 'groups': {'type': 'array', 'items': {'type': 'object', 'required': ['normalized_title', 'terminologies', 'members'], 'properties': {'members': {'type': 'array', 'items': {'type': 'object', 'required': ['terminology', 'code', 'title', 'match_score'], 'properties': {'code': {'type': 'string'}, 'title': {'type': 'string'}, 'match_score': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'terminology': {'enum': ['icd11', 'snomed', 'loinc', 'rxnorm', 'mesh'], 'type': 'string'}}, 'additionalProperties': False}}, 'terminologies': {'type': 'array', 'items': {'enum': ['icd11', 'snomed', 'loinc', 'rxnorm', 'mesh'], 'type': 'string'}}, 'normalized_title': {'type': 'string'}}, 'additionalProperties': False}}, 'ranking': {'type': 'object', 'required': ['method', 'note'], 'properties': {'note': {'type': 'string'}, 'method': {'type': 'string', 'const': 'lexical'}}, 'additionalProperties': False}, 'results': {'type': 'object', 'properties': {'mesh': {'type': 'object', 'required': ['found', 'error', 'items'], 'properties': {'error': {'type': ['string', 'null']}, 'found': {'type': 'boolean'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'title', 'uri', 'match_score', 'rank'], 'properties': {'uri': {'type': ['string', 'null']}, 'code': {'type': 'string'}, 'rank': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'title': {'type': 'string'}, 'match_score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'icd11': {'type': 'object', 'required': ['found', 'error', 'items'], 'properties': {'error': {'type': ['string', 'null']}, 'found': {'type': 'boolean'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'title', 'uri', 'match_score', 'rank'], 'properties': {'uri': {'type': ['string', 'null']}, 'code': {'type': 'string'}, 'rank': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'title': {'type': 'string'}, 'match_score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'loinc': {'type': 'object', 'required': ['found', 'error', 'items'], 'properties': {'error': {'type': ['string', 'null']}, 'found': {'type': 'boolean'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'title', 'uri', 'match_score', 'rank'], 'properties': {'uri': {'type': ['string', 'null']}, 'code': {'type': 'string'}, 'rank': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'title': {'type': 'string'}, 'match_score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'rxnorm': {'type': 'object', 'required': ['found', 'error', 'items'], 'properties': {'error': {'type': ['string', 'null']}, 'found': {'type': 'boolean'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'title', 'uri', 'match_score', 'rank'], 'properties': {'uri': {'type': ['string', 'null']}, 'code': {'type': 'string'}, 'rank': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'title': {'type': 'string'}, 'match_score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'snomed': {'type': 'object', 'required': ['found', 'error', 'items'], 'properties': {'error': {'type': ['string', 'null']}, 'found': {'type': 'boolean'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'title', 'uri', 'match_score', 'rank'], 'properties': {'uri': {'type': ['string', 'null']}, 'code': {'type': 'string'}, 'rank': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'title': {'type': 'string'}, 'match_score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'provenance': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'description': '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)'}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'source_terminology': {'anyOf': [{'enum': ['icd11', 'snomed', 'loinc', 'rxnorm', 'mesh'], 'type': 'string'}, {'type': 'null'}]}, 'searched_terminologies': {'type': 'array', 'items': {'enum': ['icd11', 'snomed', 'loinc', 'rxnorm', 'mesh'], 'type': 'string'}}}, 'additionalProperties': False}
icd11_chapters
List ICD-11 Chapters
List all ICD-11 chapters (top-level categories). Use this tool to: - Get an overview of ICD-11 structure - Find which chapter covers a body system or condition type - Navigate to specific disease categories ICD-11 has 28 chapters covering all areas of medicine.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'properties': {'language': {'enum': ['en', 'es', 'pt', 'fr', 'de', 'it', 'zh', 'ja', 'ar', 'ru'], 'type': 'string', '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."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['chapters', 'provenance', 'attribution'], 'properties': {'chapters': {'type': 'array', 'items': {'type': 'object', 'required': ['number', 'uri', 'code', 'code_range', 'title', 'error'], 'properties': {'uri': {'type': 'string'}, 'code': {'type': ['string', 'null']}, 'error': {'type': ['string', 'null']}, 'title': {'type': ['string', 'null']}, 'number': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'code_range': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
icd11_hierarchy
Browse ICD-11 Hierarchy
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['direction'], 'properties': {'uri': {'type': 'string', 'format': 'uri', 'description': 'Entity URI as returned by icd11_lookup, icd11_search or a previous icd11_hierarchy call'}, 'code': {'type': 'string', 'minLength': 1, 'description': 'ICD-11 code (e.g., "BA00", "5A11") or block range (e.g., "5A10-5A2Y")'}, 'language': {'enum': ['en', 'es', 'pt', 'fr', 'de', 'it', 'zh', 'ja', 'ar', 'ru'], 'type': 'string', '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."}, 'direction': {'enum': ['parents', 'children'], 'type': 'string', 'description': 'Direction: "parents" for ancestors, "children" for subtypes'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['code', 'direction', 'entities', 'provenance', 'attribution'], 'properties': {'code': {'type': 'string'}, 'entities': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'code_range', 'title', 'uri'], 'properties': {'uri': {'type': 'string'}, 'code': {'type': ['string', 'null']}, 'title': {'type': 'string'}, 'code_range': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'direction': {'enum': ['parents', 'children'], 'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
icd11_lookup
ICD-11 Entity Details
Get detailed information about a specific ICD-11 entity by code or URI. Use this tool to: - Get the full definition of a disease - Retrieve coding notes and exclusions - Get the official title and synonyms Provide either an ICD-11 code (e.g., "BA00") or a full foundation URI. Set `language` for WHO's official translations (e.g. `language: "pt"` for official Portuguese).
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'properties': {'uri': {'type': 'string', 'format': 'uri', 'description': 'Full ICD-11 foundation URI'}, 'code': {'type': 'string', 'minLength': 1, 'description': 'ICD-11 code (e.g., "BA00", "1A00")'}, 'language': {'enum': ['en', 'es', 'pt', 'fr', 'de', 'it', 'zh', 'ja', 'ar', 'ru'], 'type': 'string', '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."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['code', 'code_range', 'uri', 'title', 'class_kind', 'block_id', 'definition', 'long_definition', 'diagnostic_criteria', 'coding_note', 'exclusions', 'inclusions', 'index_terms', 'browser_url', 'provenance', 'attribution'], 'properties': {'uri': {'type': 'string'}, 'code': {'type': ['string', 'null']}, 'title': {'type': 'string'}, 'block_id': {'type': ['string', 'null']}, 'class_kind': {'type': ['string', 'null']}, 'code_range': {'type': ['string', 'null']}, 'definition': {'type': ['string', 'null']}, 'exclusions': {'type': 'array', 'items': {'type': 'object', 'required': ['uri', 'label'], 'properties': {'uri': {'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'inclusions': {'type': 'array', 'items': {'type': 'object', 'required': ['uri', 'label'], 'properties': {'uri': {'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'browser_url': {'type': ['string', 'null']}, 'coding_note': {'type': ['string', 'null']}, 'index_terms': {'type': 'array', 'items': {'type': 'object', 'required': ['uri', 'label'], 'properties': {'uri': {'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'long_definition': {'type': ['string', 'null']}, 'diagnostic_criteria': {'type': ['string', 'null']}}, 'additionalProperties': False}
icd11_postcoordination
ICD-11 Postcoordination Options
Get postcoordination information for an ICD-11 code. Use this tool to: - Find available axes for building composite codes - Check required vs optional postcoordination - Understand code extension possibilities Postcoordination allows adding severity, laterality, anatomy, etc.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'minLength': 1, 'description': 'ICD-11 code to get postcoordination info for'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['code', 'axes', 'provenance', 'attribution'], 'properties': {'axes': {'type': 'array', 'items': {'type': 'object', 'required': ['axis_name', 'required', 'allow_multiple', 'value_count'], 'properties': {'required': {'type': 'boolean'}, 'axis_name': {'type': 'string'}, 'value_count': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'allow_multiple': {'type': 'boolean'}}, 'additionalProperties': False}}, 'code': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
icd11_search
Search ICD-11
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': 'Search text (disease name, symptom, or keyword)'}, 'language': {'enum': ['en', 'es', 'pt', 'fr', 'de', 'it', 'zh', 'ja', 'ar', 'ru'], 'type': 'string', '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."}, 'max_results': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of results (1-100). Default: 25'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['query', 'total_count', 'entities', 'provenance', 'attribution'], 'properties': {'query': {'type': 'string'}, 'entities': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'title', 'score', 'uri', 'is_leaf', 'matching_pvs'], 'properties': {'uri': {'type': 'string'}, 'code': {'type': ['string', 'null']}, 'score': {'type': 'number'}, 'title': {'type': 'string'}, 'is_leaf': {'type': 'boolean'}, 'matching_pvs': {'type': 'array', 'items': {'type': 'object', 'required': ['property_id', 'label', 'score'], 'properties': {'label': {'type': 'string'}, 'score': {'type': 'number'}, 'important': {'type': 'boolean'}, 'property_id': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'total_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}
loinc_answers
LOINC Answer Lists
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 for data entry validation - Look up standardized answer lists Only applicable to LOINC codes that represent questions with defined answer sets.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['loinc_num'], 'properties': {'loinc_num': {'type': 'string', 'pattern': '^\\d{1,5}-\\d$', 'description': 'LOINC number (e.g., "2339-0")'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['loinc_num', 'answers', 'provenance', 'attribution'], 'properties': {'answers': {'type': 'array', 'items': {'type': 'object', 'required': ['sequence', 'answer_code', 'answer_string'], 'properties': {'sequence': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'answer_code': {'type': 'string'}, 'answer_string': {'type': 'string'}}, 'additionalProperties': False}}, 'loinc_num': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
loinc_details
LOINC Code Details
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).
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['loinc_num'], 'properties': {'loinc_num': {'type': 'string', 'pattern': '^\\d{1,5}-\\d$', 'description': 'LOINC number (e.g., "2339-0")'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['loinc_num', 'long_common_name', 'short_name', 'component', 'property', 'time_aspect', 'system', 'scale_type', 'method_type', 'class', 'status', 'external_copyright_notice', 'provenance', 'attribution'], 'properties': {'class': {'type': 'string'}, 'status': {'type': 'string'}, 'system': {'type': 'string'}, 'property': {'type': 'string'}, 'component': {'type': 'string'}, 'loinc_num': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'scale_type': {'type': 'string'}, 'short_name': {'type': 'string'}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'method_type': {'type': 'string'}, 'time_aspect': {'type': 'string'}, 'long_common_name': {'type': 'string'}, 'external_copyright_notice': {'type': ['string', 'null']}}, 'additionalProperties': False}
loinc_panels
LOINC Panel Structure
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['loinc_num'], 'properties': {'loinc_num': {'type': 'string', 'pattern': '^\\d{1,5}-\\d$', 'description': 'LOINC number (e.g., "2339-0")'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['loinc_num', 'panel', 'provenance', 'attribution'], 'properties': {'panel': {'anyOf': [{'type': 'object', 'required': ['loinc_num', 'name', 'items'], 'properties': {'name': {'type': 'string'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['sequence', 'loinc_num', 'name', 'required'], 'properties': {'name': {'type': 'string'}, 'required': {'type': 'boolean'}, 'sequence': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'loinc_num': {'type': 'string'}}, 'additionalProperties': False}}, 'loinc_num': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'loinc_num': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
loinc_search
Search LOINC
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': 'Search term (test name, keyword, or partial LOINC code)'}, 'max_results': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of results (1-100). Default: 25'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['query', 'total_count', 'shown_count', 'items', 'provenance', 'attribution'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['loinc_num', 'long_common_name', 'short_name', 'component', 'property', 'time_aspect', 'system', 'scale_type', 'method_type', 'class', 'status', 'external_copyright_notice'], 'properties': {'class': {'type': 'string'}, 'status': {'type': 'string'}, 'system': {'type': 'string'}, 'property': {'type': 'string'}, 'component': {'type': 'string'}, 'loinc_num': {'type': 'string'}, 'scale_type': {'type': 'string'}, 'short_name': {'type': 'string'}, 'method_type': {'type': 'string'}, 'time_aspect': {'type': 'string'}, 'long_common_name': {'type': 'string'}, 'external_copyright_notice': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'query': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'shown_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'total_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}
map_icd10_to_icd11
Map ICD-10 to ICD-11
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['icd10_code'], 'properties': {'icd10_code': {'type': 'string', 'minLength': 1, 'description': 'ICD-10 code to query in the ICD-11 search index (e.g., E11, I21.0, J18.9)'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['query', 'found', 'icd10', 'primary', 'alternatives', 'source', 'provenance', 'attribution'], 'properties': {'found': {'type': 'boolean', 'description': 'Whether the code is in the WHO ICD-10 â\x86\x92 ICD-11 transition table.'}, 'icd10': {'anyOf': [{'type': 'object', 'required': ['code', 'title', 'chapter', 'depth'], 'properties': {'code': {'type': 'string'}, 'depth': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'title': {'type': 'string'}, 'chapter': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Source ICD-10 entry from the WHO table. Null when found=false.'}, 'query': {'type': 'string', 'description': 'The ICD-10 code as submitted (raw, before normalization).'}, 'source': {'type': 'object', 'required': ['publisher', 'version', 'release_date'], 'properties': {'version': {'type': 'string', 'description': 'Transition table release identifier (e.g. "2025-01").'}, 'publisher': {'type': 'string', 'description': 'Authoritative publisher (e.g. "WHO").'}, 'release_date': {'type': 'string', 'description': 'ISO date string for the release.'}}, 'additionalProperties': False}, 'primary': {'anyOf': [{'type': 'object', 'required': ['code', 'title', 'chapter', 'foundationUri', 'linearizationUri', 'classKind', 'depth'], 'properties': {'code': {'type': 'string'}, 'depth': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'title': {'type': 'string'}, 'chapter': {'type': 'string'}, 'classKind': {'type': 'string'}, 'foundationUri': {'type': 'string'}, 'linearizationUri': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Primary 1:1 ICD-11 mapping. Null when found=false.'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'alternatives': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'title', 'chapter', 'foundationUri', 'linearizationUri', 'classKind', 'depth'], 'properties': {'code': {'type': 'string'}, 'depth': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'title': {'type': 'string'}, 'chapter': {'type': 'string'}, 'classKind': {'type': 'string'}, 'foundationUri': {'type': 'string'}, 'linearizationUri': {'type': 'string'}}, 'additionalProperties': False}, '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.'}}, 'additionalProperties': False}
map_loinc_to_snomed
Map LOINC to SNOMED CT (Guidance)
This tool looks up a LOINC code in NLM Clinical Tables and returns guidance on where to obtain a LOINC → SNOMED CT mapping. It does not perform the mapping. Direct LOINC → SNOMED CT mappings are not freely available via API. UMLS Metathesaurus contains the relationships but requires an individual UMLS Terminology Services license; the LOINC SNOMED CT Expression Association is published by Regenstrief Institute as part of the LOINC release and requires authenticated download from loinc.org under the LOINC license. For programmatic LOINC → SNOMED mapping, use UMLS or the LOINC Expression Association files. For interactive lookup, use the SNOMED CT browser available to your organization or the Regenstrief RELMA desktop tool. Provide a LOINC code like "2339-0" (Glucose) or "718-7" (Hemoglobin).
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['loinc_code'], 'properties': {'loinc_code': {'type': 'string', 'pattern': '^\\d{1,5}-\\d$', 'description': 'LOINC code (e.g., 2339-0 for Glucose)'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['loinc_code', 'loinc_details', 'status', 'guidance', 'mapping_sources', 'provenance', 'attribution'], 'properties': {'status': {'enum': ['guidance-only'], 'type': 'string', 'description': 'Always "guidance-only" â\x80\x94 direct LOINC â\x86\x92 SNOMED CT mappings require licensed sources (UMLS Metathesaurus or LOINC SNOMED CT Expression Association). This tool returns pointers, not the mapping itself.'}, 'guidance': {'type': 'string', 'description': 'Short human-readable explanation of why this tool returns guidance instead of a mapping.'}, 'loinc_code': {'type': 'string', 'description': 'The LOINC code as submitted.'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'loinc_details': {'anyOf': [{'type': 'object', 'required': ['code', 'long_common_name', 'component', 'system', 'property'], 'properties': {'code': {'type': 'string'}, 'system': {'type': ['string', 'null']}, 'property': {'type': ['string', 'null']}, 'component': {'type': ['string', 'null']}, 'long_common_name': {'type': ['string', 'null']}}, 'additionalProperties': False}, {'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': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'description', 'url'], 'properties': {'url': {'type': ['string', 'null']}, 'name': {'type': 'string'}, 'description': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Structured list of authoritative LOINC â\x86\x92 SNOMED CT mapping sources (UMLS Metathesaurus, LOINC SNOMED CT Expression Association, Regenstrief RELMA).'}}, 'additionalProperties': False}
mesh_descriptor
MeSH Descriptor Details
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"`).
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['mesh_id'], 'properties': {'mesh_id': {'type': 'string', 'pattern': '^D\\d+$', 'description': 'MeSH Descriptor ID (e.g., D015242, D003920)'}, 'language': {'enum': ['en', 'es', 'pt', 'fr', 'de', 'it', 'zh', 'ja', 'ar', 'ru'], 'type': 'string', '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."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['id', 'uri', 'label', 'scope_note', 'tree_numbers', 'concepts', 'qualifiers', 'provenance', 'attribution'], 'properties': {'id': {'type': 'string'}, 'uri': {'type': 'string'}, 'label': {'type': 'string'}, 'concepts': {'type': 'array', 'items': {'type': 'object', 'required': ['uri', 'label', 'is_preferred', 'terms'], 'properties': {'uri': {'type': 'string'}, 'label': {'type': 'string'}, 'terms': {'type': 'array', 'items': {'type': 'string'}}, 'is_preferred': {'type': 'boolean'}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'qualifiers': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'uri', 'label'], 'properties': {'id': {'type': 'string'}, 'uri': {'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'scope_note': {'type': 'string'}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'tree_numbers': {'type': 'array', 'items': {'type': 'object', 'required': ['tree_number', 'uri'], 'properties': {'uri': {'type': 'string'}, 'tree_number': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
mesh_qualifiers
MeSH Allowable Qualifiers
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").
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['mesh_id'], 'properties': {'mesh_id': {'type': 'string', 'pattern': '^D\\d+$', 'description': 'MeSH Descriptor ID (e.g., D015242, D003920)'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['mesh_id', 'qualifiers', 'provenance', 'attribution'], 'properties': {'mesh_id': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'qualifiers': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'uri', 'label'], 'properties': {'id': {'type': 'string'}, 'uri': {'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
mesh_search
Search MeSH
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'match': {'enum': ['exact', 'contains', 'startswith'], 'type': 'string', 'default': 'contains', 'description': 'Match type: exact, contains, or startswith. Default: contains'}, 'query': {'type': 'string', 'minLength': 1, 'description': 'Search term (e.g., "diabetes", "heart failure")'}, 'language': {'enum': ['en', 'es', 'pt', 'fr', 'de', 'it', 'zh', 'ja', 'ar', 'ru'], 'type': 'string', '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."}, 'max_results': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of results (1-100). Default: 25'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['query', 'match', 'total_count', 'descriptors', 'provenance', 'attribution'], 'properties': {'match': {'enum': ['exact', 'contains', 'startswith'], 'type': 'string'}, 'query': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'descriptors': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'uri', 'label'], 'properties': {'id': {'type': 'string'}, 'uri': {'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'total_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}
mesh_tree
MeSH Tree Locations
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).
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['mesh_id'], 'properties': {'mesh_id': {'type': 'string', 'pattern': '^D\\d+$', 'description': 'MeSH Descriptor ID (e.g., D015242, D003920)'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['mesh_id', 'tree_numbers', 'provenance', 'attribution'], 'properties': {'mesh_id': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'tree_numbers': {'type': 'array', 'items': {'type': 'object', 'required': ['tree_number', 'uri'], 'properties': {'uri': {'type': 'string'}, 'tree_number': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
rxnorm_classes
RxNorm Drug Classes
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['rxcui'], 'properties': {'rxcui': {'anyOf': [{'type': 'string', 'pattern': '^\\d+$'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}], 'description': 'RxCUI of the drug'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['rxcui', 'classes', 'provenance', 'attribution'], 'properties': {'rxcui': {'type': 'string'}, 'classes': {'type': 'array', 'items': {'type': 'object', 'required': ['class_id', 'class_name', 'class_type', 'source'], 'properties': {'source': {'type': 'string'}, 'class_id': {'type': 'string'}, 'class_name': {'type': 'string'}, 'class_type': {'type': 'string'}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
rxnorm_concept
RxNorm Concept Details
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['rxcui'], 'properties': {'rxcui': {'anyOf': [{'type': 'string', 'pattern': '^\\d+$'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}], 'description': 'RxNorm Concept Unique Identifier (string of digits or integer, e.g. "161" or 161)'}, 'include_related': {'anyOf': [{'type': 'boolean'}, {'enum': ['true', 'false'], 'type': 'string'}], 'description': 'Include related concepts (ingredients, brands, dose forms). Default false; true/false, also accepted as the strings "true"/"false"'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['rxcui', 'found', 'name', 'synonym', 'tty', 'language', 'suppress', 'umlscui', 'status', 'remapped_to', 'related_groups', 'provenance', 'attribution'], 'properties': {'tty': {'type': ['string', 'null']}, 'name': {'type': ['string', 'null']}, 'found': {'type': 'boolean', 'description': 'false when RxNorm has no concept with this RxCUI (the lookup answered; the fields below are null)'}, 'rxcui': {'type': 'string'}, 'status': {'type': ['string', 'null']}, 'synonym': {'type': ['string', 'null']}, 'umlscui': {'type': ['string', 'null']}, 'language': {'type': ['string', 'null']}, 'suppress': {'type': ['string', 'null']}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'remapped_to': {'type': 'array', 'items': {'type': 'string'}}, 'related_groups': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['tty', 'concepts'], 'properties': {'tty': {'type': 'string'}, 'concepts': {'type': 'array', 'items': {'type': 'object', 'required': ['rxcui', 'name', 'synonym', 'tty', 'language'], 'properties': {'tty': {'type': 'string'}, 'name': {'type': 'string'}, 'rxcui': {'type': 'string'}, 'synonym': {'type': 'string'}, 'language': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}}, {'type': 'null'}]}}, 'additionalProperties': False}
rxnorm_ingredients
RxNorm Drug Ingredients
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['rxcui'], 'properties': {'rxcui': {'anyOf': [{'type': 'string', 'pattern': '^\\d+$'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}], 'description': 'RxCUI of the drug'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['rxcui', 'ingredients', 'provenance', 'attribution'], 'properties': {'rxcui': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'ingredients': {'type': 'array', 'items': {'type': 'object', 'required': ['rxcui', 'name', 'tty', 'is_multiple'], 'properties': {'tty': {'type': 'string'}, 'name': {'type': 'string'}, 'rxcui': {'type': 'string'}, 'is_multiple': {'type': 'boolean'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
rxnorm_ndc
RxNorm / NDC Mapping
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'properties': {'ndc': {'type': 'string', 'minLength': 1, 'description': 'NDC code to look up RxCUI (alternative to rxcui)'}, 'rxcui': {'anyOf': [{'type': 'string', 'pattern': '^\\d+$'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}], 'description': 'RxCUI to get NDC codes for'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['query_mode', 'rxcui', 'ndc', 'ndcs', 'provenance', 'attribution'], 'properties': {'ndc': {'type': ['string', 'null']}, 'ndcs': {'type': 'array', 'items': {'type': 'object', 'required': ['ndc'], 'properties': {'ndc': {'type': 'string'}}, 'additionalProperties': False}}, 'rxcui': {'type': ['string', 'null']}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'query_mode': {'enum': ['ndcs_for_rxcui', 'rxcui_for_ndc'], 'type': 'string'}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
rxnorm_search
Search RxNorm Drugs
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': 'Drug name to search (brand or generic)'}, 'max_results': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of results (1-100). Default: 25'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['query', 'total_count', 'drugs', 'provenance', 'attribution'], 'properties': {'drugs': {'type': 'array', 'items': {'type': 'object', 'required': ['rxcui', 'name', 'synonym', 'tty', 'language'], 'properties': {'tty': {'type': 'string'}, 'name': {'type': 'string'}, 'rxcui': {'type': 'string'}, 'synonym': {'type': 'string'}, 'language': {'type': 'string'}}, 'additionalProperties': False}}, 'query': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'total_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}
search
Deep Research Search
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Search terms, natural language or keywords (accents and case are ignored)'}}}
出力スキーマ
{'type': 'object', 'required': ['results', 'provenance', 'attribution'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Unique identifier of the document on this server; what `fetch` takes'}, 'url': {'type': 'string', 'description': "Canonical public URL of the document â\x80\x94 ChatGPT's citation depends on it"}, 'title': {'type': 'string', 'description': 'Human-readable title of the document'}}, 'additionalProperties': False}, 'description': 'Matching documents, in relevance order'}, 'provenance': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'description': '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)'}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}}, 'additionalProperties': False}
terminology_diff
Terminology Version Diff
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 (SNOMED, LOINC, RxNorm, MeSH), the publisher's official changelog is the authoritative source.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['terminology'], 'properties': {'to_version': {'type': 'string', 'description': 'Version you want to compare to. Optional.'}, 'terminology': {'enum': ['icd11', 'icd10', 'snomed', 'loinc', 'rxnorm', 'mesh', 'atc', 'cid10'], 'type': 'string', 'description': 'Which terminology to report on.'}, 'from_version': {'type': 'string', 'description': 'Version you have data from. Optional; behavior depends on terminology.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['terminology', 'from_version', 'to_version', 'diff_available', 'message', 'changelog_url', 'bundled_versions', 'cross_revision_summary', 'provenance', 'attribution'], 'properties': {'message': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'to_version': {'type': ['string', 'null']}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'terminology': {'enum': ['icd11', 'icd10', 'snomed', 'loinc', 'rxnorm', 'mesh', 'atc', 'cid10'], 'type': 'string'}, 'from_version': {'type': ['string', 'null']}, 'changelog_url': {'type': ['string', 'null']}, 'diff_available': {'type': 'boolean', 'description': 'True when this server has the data to compute a real diff for the requested terminology. False = guidance-only response.'}, 'bundled_versions': {'type': 'array', 'items': {'type': 'string'}}, 'cross_revision_summary': {'anyOf': [{'type': 'object', 'required': ['icd10_categories_total', 'one_to_one_mappings', 'one_to_many_splits', 'avg_alternatives_when_split'], 'properties': {'one_to_many_splits': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'one_to_one_mappings': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'icd10_categories_total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'avg_alternatives_when_split': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Populated only for terminology="icd10" today â\x80\x94 the bundled WHO ICD-10 â\x86\x92 ICD-11 transition tables let us surface a real structural diff between the two WHO revisions.'}}, 'additionalProperties': False}
terminology_versions
Terminology Versions
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 / SNOMED / 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 8 is returned. The ICD-10 → ICD-11 version reads live from the bundled dataset; everything else is metadata maintained alongside the project release.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'properties': {'terminology': {'enum': ['icd11', 'icd10', 'snomed', 'loinc', 'rxnorm', 'mesh', 'atc', 'cid10'], 'type': 'string', 'description': 'Filter to a single terminology. Omit to return all 8.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['generated', 'total', 'terminologies', 'provenance', 'attribution'], 'properties': {'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'generated': {'type': 'string', 'description': 'Date this snapshot was generated.'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'terminologies': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'name', 'full_name', 'publisher', 'current_version', 'release_date', 'source_url', 'changelog_url', 'update_cadence', 'bundled_in_server', 'notes'], 'properties': {'code': {'enum': ['icd11', 'icd10', 'snomed', 'loinc', 'rxnorm', 'mesh', 'atc', 'cid10'], 'type': 'string'}, 'name': {'type': 'string'}, 'notes': {'type': ['string', 'null']}, 'full_name': {'type': 'string'}, 'publisher': {'type': 'string'}, 'source_url': {'type': 'string'}, 'release_date': {'type': 'string'}, 'changelog_url': {'type': ['string', 'null']}, 'update_cadence': {'type': 'string'}, 'current_version': {'type': 'string'}, 'bundled_in_server': {'type': 'boolean'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
validate_codes
Validate Medical Codes
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; SNOMED and LOINC return 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, SNOMED feature flag off, etc.). `valid: false` + `error: null` means "code not found"; `valid: false` + `error: set` means "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`, `snomed`, `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).
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['codes'], 'properties': {'codes': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'terminology'], 'properties': {'code': {'type': 'string', 'minLength': 1, 'description': 'The code to validate (raw, as it appears in your data).'}, 'terminology': {'enum': ['icd11', 'icd10', 'snomed', 'loinc', 'rxnorm', 'mesh', 'atc', 'cid10'], 'type': 'string', 'description': 'Which terminology this code belongs to. Required â\x80\x94 auto-detection isn\'t supported because category-level codes like "A00" exist in both ICD-10 and CID-10.'}}}, 'maxItems': 50, 'minItems': 1, 'description': 'List of code+terminology pairs to validate. Hard cap of 50 per call to keep total latency under ~10 s given upstream rate limits.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['total', 'valid_count', 'invalid_count', 'error_count', 'results', 'provenance', 'attribution'], 'properties': {'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of codes submitted.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'terminology', 'valid', 'active', 'title', 'replaced_by', 'source', 'error'], 'properties': {'code': {'type': 'string', 'description': 'The code as submitted.'}, 'error': {'type': ['string', 'null'], 'description': 'When the upstream call failed (timeout, server error, feature flag off), this holds the failure message. Distinct from valid=false: valid=false + error=null means "code not found"; valid=false + error set means "couldn\'t validate".'}, 'title': {'type': ['string', 'null'], 'description': 'Official label/title for the code, when available.'}, 'valid': {'type': 'boolean', 'description': 'True when the upstream API or bundled dataset confirms the code exists.'}, 'active': {'type': ['boolean', 'null'], 'description': "Whether the code is currently active. Null when the source terminology doesn't expose an explicit active/inactive distinction at the category level (e.g. CID-10, ATC)."}, 'source': {'type': 'string', 'description': 'Human-readable identifier of the data source used for validation (terminology + release/version where applicable).'}, 'replaced_by': {'type': ['string', 'null'], 'description': 'When the code has been superseded by another code, this holds the replacement. Populated today only for ICD-10 codes that have a primary ICD-11 mapping in the bundled WHO transition tables; null otherwise.'}, 'terminology': {'enum': ['icd11', 'icd10', 'snomed', 'loinc', 'rxnorm', 'mesh', 'atc', 'cid10'], 'type': 'string'}}, 'additionalProperties': False}}, 'provenance': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Official upstream source of this data'}, 'license': {'type': ['string', 'null'], 'description': 'License / legal regime of the data'}, 'citation': {'type': 'string', 'description': 'Ready-to-use citation/attribution string'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'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)'}, 'source_url': {'type': 'string', 'description': 'Canonical URL of the source (API base or dataset release)'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'Version/release of the data as exposed by the source; null when not exposed'}, 'retrieved_at': {'type': 'string', 'description': 'Real instant of the upstream extraction (ISO-8601, UTC). Responses served from cache keep the ORIGINAL fetch instant.'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença', 'additionalProperties': False}, 'description': '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)'}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical source URLs of this response (attribution list)'}, 'error_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "How many couldn't be validated due to upstream/network errors."}, 'valid_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'How many were confirmed valid.'}, 'invalid_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'How many were not found.'}}, 'additionalProperties': False}
変更
rxnorm_ndc
2026年10月1日2:50
変更
rxnorm_classes
2026年10月1日2:50
変更
rxnorm_ingredients
2026年10月1日2:50
変更
rxnorm_concept
2026年10月1日2:50
変更
fetch
2026年9月29日2:58
変更
search
2026年9月29日2:58
変更
terminology_diff
2026年9月29日2:58
変更
terminology_versions
2026年9月29日2:58
変更
cid10_chapter
2026年9月29日2:58
変更
cid10_chapters
2026年9月29日2:58
変更
cid10_lookup
2026年9月29日2:58
変更
cid10_search
2026年9月29日2:58
変更
atc_members
2026年9月29日2:58
変更
atc_lookup
2026年9月29日2:58
変更
atc_classify
2026年9月29日2:58
変更
find_equivalent
2026年9月29日2:58
変更
validate_codes
2026年9月29日2:58
変更
map_loinc_to_snomed
2026年9月29日2:58
変更
map_icd10_to_icd11
2026年9月29日2:58
変更
mesh_qualifiers
2026年9月29日2:58
変更
mesh_tree
2026年9月29日2:58
変更
mesh_descriptor
2026年9月29日2:58
変更
mesh_search
2026年9月29日2:58
変更
rxnorm_ndc
2026年9月29日2:58
変更
rxnorm_classes
2026年9月29日2:58
変更
rxnorm_ingredients
2026年9月29日2:58
変更
rxnorm_concept
2026年9月29日2:58
変更
rxnorm_search
2026年9月29日2:58
変更
loinc_panels
2026年9月29日2:58
変更
loinc_answers
2026年9月29日2:58