Skip to main content
Glama

DRGSystem — German medical coding catalogs

ICD-10-GM durchsuchen

icd10_search
Read-onlyIdempotent

Durchsucht den ICD-10-GM (amtlicher Diagnoseschlüssel) — der erste Griff für jede Diagnosesuche, gleich ob Kode, Fachbegriff, Umgangssprache, Abkürzung, Tippfehler oder eine Umschreibung der Beschwerden ('Wasser in der Lunge', 'Z.n. Hüft-TEP', 'herzinfakt'). Die Treffer stehen in 'items' und sind vollständige Katalogzeilen mit allen Kodier-Kennzeichen (Alters- und Geschlechtsbezug, CCL, Chroniker-Kennzeichen, IfSG-Meldepflicht, DKR- und SEG-4-Verweise) sowie in 'statistics' der bundesweiten Fallzahl als Hauptdiagnose — ein Maßstab dafür, ob ein Kode gebräuchlich oder eine Ausnahme ist. Die Liste ist flach, aber geordnet: eine Zeile mit 'isGroupHeader' ist eine Rubrik, die folgenden Zeilen mit gleichem 'groupCode' sind ihre Kodes — kodiert wird einer der Kodes, nicht die Rubrik. 'matchedTerm' nennt die Formulierung, unter der der Kode nachgewiesen ist, wenn die amtliche Bezeichnung den Treffer nicht selbst erklärt; 'interpretation' sagt, wie die Anfrage gelesen wurde. Für Inklusiva, Exklusiva, Kodierhinweise, Morbi-RSA-Gruppen und ATC-Wirkstoffe eines einzelnen Kodes anschließend icd10_get aufrufen. [EN] The first tool for any diagnosis search — codes, clinical terms, everyday wording, abbreviations, misspellings and descriptions of symptoms all go here. Returns full catalog rows with every coding flag. The list is flat but ordered: a row flagged 'isGroupHeader' is a rubric and the rows after it sharing its 'groupCode' are its codes; only a code can be coded, never the rubric. 'matchedTerm' gives the wording the code is listed under when the official title does not explain the hit.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNoKatalogjahr (z. B. 2026). Leer lassen für das aktuellste verfügbare Jahr.
limitNoMaximale Anzahl Treffer, 1 bis 100. Standard 25.
queryYesSuchbegriff: ICD-Kode (z. B. 'E11', 'E11.0') oder Diagnosetext (z. B. 'Diabetes mellitus Typ 2').

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNoKatalogjahr, aus dem alle Daten dieser Antwort stammen.
focusNoDer abgefragte Kode mit allen Detaildaten. Null bei einer Suche und beim Katalog-Einstieg (leerer Kode).
itemsNoDie Kodeliste der Antwort: bei einer Abfrage die direkt untergeordneten Kodes von 'focus' (bzw. die oberste Ebene bei leerem Kode), bei einer Suche die Treffer.
parentsNoÜbergeordnete Kodes von 'focus' als Pfad von der obersten Ebene abwärts (Brotkrumen). Leer bei einer Suche und beim Katalog-Einstieg.
interpretationNoNur bei einer Suche: wie die Suche die Anfrage gelesen hat. Null außerhalb der Suche.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changed
    • removedOutput schema / properties / focus / properties / alphaEntries / properties / value / items / properties / code
      Removed value: -{
      -  "description": "Fortlaufende Satznummer des BfArM innerhalb des Alphabetischen Verzeichnisses. Kein ICD-Kode.",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / focus / properties / alphaEntries / properties / value / items / properties / printFlag
      Removed value: -{
      -  "description": "Druckkennzeichen des BfArM: true, wenn der Eintrag in der gedruckten Fassung erscheint.",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / focus / properties / alphaEntries / properties / value / items / properties / textHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'text' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null außerhalb einer Textsuche. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / focus / properties / atcDetails / properties / value / items / properties / descriptionHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null, wenn die Anfrage diesen Text nicht berührt hat. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / focus / properties / atcDetails / properties / value / items / properties / matchedTermHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'matchedTerm', gleiche Skala wie 'descriptionHighlight'. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / focus / properties / codeType
      Removed value: -{
      -  "description": "Art des Kodes im amtlichen Datensatz: 'X' = expliziter Kode mit eigenständiger Bezeichnung, 'S' = Subklassifikation, deren Bezeichnung nur zusammen mit der des übergeordneten Kodes zu lesen ist. Rein technische Angabe — die hier gelieferte Bezeichnung enthält den übergeordneten Text bereits.",
      -  "enum": [
      -    "X",
      -    "S",
      -    null
      -  ],
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / focus / properties / descriptionHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null, wenn die Anfrage diesen Text nicht berührt hat. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / focus / properties / matchedTermHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'matchedTerm', gleiche Skala wie 'descriptionHighlight'. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / focus / properties / rareDiseases / properties / value / items / properties / descriptionHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null, wenn die Anfrage diesen Text nicht berührt hat. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / focus / properties / rareDiseases / properties / value / items / properties / matchedTermHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'matchedTerm', gleiche Skala wie 'descriptionHighlight'. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / items / items / properties / atcCodes
      Removed value: -{
      -  "description": "ATC-Kodes der Arzneimittel, die dieser Diagnose zugeordnet sind — nur die Schlüssel. Die vollständigen Datensätze liefert die Detailabfrage des Kodes.",
      -  "properties": {
      -    "sourceYear": {
      -      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      -      "type": "integer"
      -    },
      -    "value": {
      -      "$ref": "#/properties/focus/properties/rareDiseases/properties/value/items/properties/icdCodes/properties/value",
      -      "description": "Der eigentliche Wert.",
      -      "items": {}
      -    }
      -  },
      -  "type": [
      -    "object",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / items / items / properties / descriptionHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null, wenn die Anfrage diesen Text nicht berührt hat. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / items / items / properties / matchedTermHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'matchedTerm', gleiche Skala wie 'descriptionHighlight'. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / items / items / properties / morbiRsa
      Removed value: -{
      -  "description": "Zuordnung im Morbi-RSA (Morbiditätsorientierter Risikostrukturausgleich): DxG- und HmG-Gruppe. Null, wenn der Kode dort nicht geführt wird.",
      -  "properties": {
      -    "sourceYear": {
      -      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      -      "type": "integer"
      -    },
      -    "value": {
      -      "$ref": "#/properties/focus/properties/morbiRsa/properties/value",
      -      "description": "Der eigentliche Wert."
      -    }
      -  },
      -  "type": [
      -    "object",
      -    "null"
      -  ]
      -}
  2. Changed4 schema fields changed
    • addedOutput schema / properties / focus / properties / departments
      Added value: +{
      +  "description": "In welchen Fachabteilungen die Diagnose behandelt wird — gezählt wird die Abteilung mit der längsten Verweildauer des Falls. Trägt einen eigenen Jahrgang: der Bericht druckte diese Tabelle zuletzt für das Datenjahr 2023, und nur auf Dreistellern — ein feinerer Kode bekommt die Verteilung seines Dreistellers, Gruppen und Kapitel die Summe ihrer Dreisteller — was 'scope' ausweist.",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "description": "Der eigentliche Wert.",
      +      "properties": {
      +        "cases": {
      +          "description": "Fälle, über die die Verteilung geht — die Summe über alle Fachabteilungen im Datenjahr dieser Tabelle. Nicht zu verwechseln mit den Fallzahlen, die aus einem neueren Datenjahr stammen können.",
      +          "type": "integer"
      +        },
      +        "code": {
      +          "description": "Die Schlüsselnummer, für die die Verteilung gilt. Weicht sie vom abgefragten Kode ab, stammt sie vom übergeordneten Dreisteller.",
      +          "type": "string"
      +        },
      +        "departments": {
      +          "description": "Die Fachabteilungen, absteigend nach Fallzahl.",
      +          "items": {
      +            "properties": {
      +              "cases": {
      +                "description": "Fälle, die in dieser Fachabteilung die längste Verweildauer hatten.",
      +                "type": "integer"
      +              },
      +              "label": {
      +                "description": "Bezeichnung der Fachabteilung, wie der Bericht sie führt.",
      +                "type": "string"
      +              },
      +              "share": {
      +                "description": "Anteil an allen Fällen der Schlüsselnummer, zwischen 0 und 1.",
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "scope": {
      +          "description": "Worauf sich die Zahlen beziehen: 'Code' = auf diese Schlüsselnummer selbst, 'Subtree' = zusammengezählt über alle Dreisteller unter dieser Gruppe oder diesem Kapitel, 'Parent' = auf den übergeordneten Dreisteller, weil der Bericht feiner nicht aufteilt.",
      +          "enum": [
      +            "Code",
      +            "Subtree",
      +            "Parent"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / zusatzentgeltCodes
      Added value: +{
      +  "description": "Zusatzentgelte, denen diese Diagnose in Anlage 7 des Fallpauschalenkatalogs zugeordnet ist (Blutgerinnungsstörungen), als Kodes in amtlicher Schreibweise. Betrag, auslösende OPS-Kodes und Fußnoten liefert die Detailabfrage.",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "$ref": "#/properties/focus/properties/rareDiseases/properties/value/items/properties/icdCodes/properties/value",
      +      "description": "Der eigentliche Wert.",
      +      "items": {}
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / zusatzentgelte
      Added value: +{
      +  "description": "Zusatzentgelte, denen diese Diagnose zugeordnet ist (Anlage 7), mit Betrag, den OPS-Kodes, die hinzukommen müssen, und den Fußnoten — dort stehen etwa die Schwellenwerte. Bei Dreistellern und nicht endständigen Vierstellern auch die Zuordnungen ihrer Subkodes ('match' = 'Subcode').",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "description": "Der eigentliche Wert.",
      +      "items": {
      +        "properties": {
      +          "allowedDrgCount": {
      +            "description": "Anzahl der Fallpauschalen, neben denen das Zusatzentgelt allein abrechenbar ist (Anlage 8). 0, wenn es keine solche Beschränkung gibt.",
      +            "type": "integer"
      +          },
      +          "combinedWith": {
      +            "description": "Kombinationspartner nach der Fußnote 'Nur abrechenbar in Kombination mit einem der grau hinterlegten OPS-Kodes': für einen grau hinterlegten Kode die Hauptprozeduren, für eine Hauptprozedur die grau hinterlegten Kodes. Null, wenn das Zusatzentgelt keine solche Kombination verlangt.",
      +            "items": {
      +              "$ref": "#/properties/focus/properties/zusatzentgelte/properties/value/items/properties/matchedOps/items"
      +            },
      +            "type": [
      +              "array",
      +              "null"
      +            ]
      +          },
      +          "footnotes": {
      +            "description": "Fußnoten des Katalogs zu diesem Zusatzentgelt und seinem übergeordneten Zusatzentgelt im Volltext — Altersgrenzen, Mindestverweildauer, Schwellenwerte, Kombinationspflichten.",
      +            "items": {
      +              "properties": {
      +                "marker": {
      +                  "description": "Fußnotenzeichen, wie es im Katalog abgedruckt ist, ohne schließende Klammer (z. B. '6', '*').",
      +                  "type": "string"
      +                },
      +                "scope": {
      +                  "description": "Katalogblatt, zu dem der Fußnotenblock gehört (z. B. 'Deckblatt', 'Anlage 5'). Fußnotenzeichen sind nur innerhalb ihres Blocks eindeutig.",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "text": {
      +                  "description": "Text der Fußnote.",
      +                  "type": "string"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "groupDescription": {
      +            "description": "Titel des übergeordneten Zusatzentgelts.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "groupFullCode": {
      +            "description": "Kode des übergeordneten Zusatzentgelts, wenn 'zusatzentgelt' eine Unterposition ist (z. B. 'ZE105' zu ZE105.01). Der Titel einer Unterposition ('1 Metallspirale') ist ohne ihn nicht verständlich.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "icd": {
      +            "description": "Alle dem Zusatzentgelt zugeordneten ICD-Kodes (Anlage 7). Leer bei den meisten Zusatzentgelten.",
      +            "items": {
      +              "$ref": "#/properties/focus/properties/zusatzentgelte/properties/value/items/properties/matchedIcd/items"
      +            },
      +            "type": "array"
      +          },
      +          "isBillable": {
      +            "description": "True, wenn 'zusatzentgelt' selbst abgerechnet wird; false bei einer Überschrift, unter der die abrechenbare Unterposition nach Menge oder Dosis zu wählen ist.",
      +            "type": "boolean"
      +          },
      +          "match": {
      +            "description": "Wie der abgefragte Kode mit dem Zusatzentgelt verbunden ist: 'Code' = genau dieser Kode ist gelistet, 'Pattern' = der Katalog druckt ein Muster mit '*' (je Stern eine beliebige Stelle), auf das dieser Kode passt, 'Subcode' = Subkodes dieses Kodes sind gelistet.",
      +            "enum": [
      +              "Code",
      +              "Pattern",
      +              "Subcode"
      +            ],
      +            "type": "string"
      +          },
      +          "matchedIcd": {
      +            "description": "Die in Anlage 7 gelisteten ICD-Kodes, über die die Verbindung zustande kommt — bei einer OPS-Abfrage leer.",
      +            "items": {
      +              "properties": {
      +                "code": {
      +                  "description": "Normalisierter Schlüssel des ICD-Kodes, wie er an die ICD-Funktionen zurückzugeben ist (z. B. 'D6800').",
      +                  "type": "string"
      +                },
      +                "fullCode": {
      +                  "description": "Der ICD-Kode in amtlicher Schreibweise (z. B. 'D68.00').",
      +                  "type": "string"
      +                },
      +                "text": {
      +                  "description": "Der Text, wie ihn der Zusatzentgelte-Katalog abdruckt.",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "matchedOps": {
      +            "description": "Die im Zusatzentgelte-Katalog gelisteten OPS-Kodes, über die die Verbindung zustande kommt — bei einer ICD-Abfrage leer.",
      +            "items": {
      +              "properties": {
      +                "appliesToAllSubcodes": {
      +                  "description": "True, wenn der Katalog ein Muster mit '*' druckt, das mehrere fünf- oder sechsstellige Kodes erfasst — siehe 'pattern'.",
      +                  "type": "boolean"
      +                },
      +                "code": {
      +                  "description": "Normalisierter Schlüssel des OPS-Kodes, wie er an die OPS-Funktionen zurückzugeben ist (z. B. '8836n1'). Bei einem Muster mit '*' der feste Teil davor — der Kode, unter dem alle erfassten Kodes liegen (bei 8-826.*2 also '8826').",
      +                  "type": "string"
      +                },
      +                "fullCode": {
      +                  "description": "Der OPS-Kode in amtlicher Schreibweise, bei einem Muster mit '*' wie gedruckt (z. B. '8-836.n1', '8-826.*2').",
      +                  "type": "string"
      +                },
      +                "highlighted": {
      +                  "description": "True, wenn der Kode im Katalog grau hinterlegt ist. Graue Kodes sind die Kombinationspartner der Anlage-5-Fußnote 'Nur abrechenbar in Kombination mit einem der grau hinterlegten OPS-Kodes'.",
      +                  "type": "boolean"
      +                },
      +                "pattern": {
      +                  "description": "Normalisiertes Muster, wenn der Katalog statt eines Kodes ein Muster druckt: jedes '*' steht für genau eine beliebige Stelle (z. B. '8826*2' für 8-826.*2 = 8-826.02, 8-826.12). Erfasst sind alle Kodes, deren Anfang auf das Muster passt. Null bei einem einzelnen Kode.",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "text": {
      +                  "description": "Der Text, wie ihn der Zusatzentgelte-Katalog abdruckt — vom InEK gekürzt, nicht der vollständige OPS-Titel.",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "ops": {
      +            "description": "Alle OPS-Kodes, die das Zusatzentgelt auslösen. Bei einer ICD-Abfrage die Prozeduren, die zur Diagnose hinzukommen müssen.",
      +            "items": {
      +              "$ref": "#/properties/focus/properties/zusatzentgelte/properties/value/items/properties/matchedOps/items"
      +            },
      +            "type": "array"
      +          },
      +          "priceMax": {
      +            "description": "Größter Betrag der Unterpositionen in Euro, siehe 'priceMin'.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "priceMin": {
      +            "description": "Kleinster Betrag der Unterpositionen in Euro, wenn das Zusatzentgelt selbst keinen Betrag trägt (gestaffelt nach Menge oder Dosis). Bei 'match' = 'Subcode' nur über die Unterpositionen, die dieser Kode auslöst.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "subpositionCount": {
      +            "description": "Anzahl der Unterpositionen, die hier zusammengefasst sind (nur bei 'match' = 'Subcode'); sonst 0.",
      +            "type": "integer"
      +          },
      +          "zusatzentgelt": {
      +            "description": "Das Zusatzentgelt mit Betrag. Bei 'match' = 'Subcode' mit mehreren Unterpositionen ist es das übergeordnete Zusatzentgelt (z. B. ZE105 statt ZE105.01).",
      +            "properties": {
      +              "code": {
      +                "description": "Normalisierter Schlüssel ohne Trennzeichen, wie er für Abfragen und URLs verwendet wird (z. B. 'A010' für den ICD-Kode A01.0). Dieser Wert ist als 'code' an alle Katalog-Funktionen zurückzugeben.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "description": {
      +                "description": "Amtlicher Titel des Kodes (Diagnose-, Prozedur- bzw. Entgeltbezeichnung).",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "fullCode": {
      +                "description": "Der Kode in der amtlichen Schreibweise, wie er dem Anwender angezeigt und in Dokumenten kodiert wird (z. B. 'A01.0', '5-470.0').",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "price": {
      +                "description": "Bundeseinheitlicher Betrag des Zusatzentgelts in Euro. Null bei unbewerteten Zusatzentgelten oder wenn der Katalog einen Verweis abdruckt.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "priceNote": {
      +                "description": "Wortlaut der Betragsspalte, wenn dort statt einer Zahl ein Verweis steht (z. B. 'siehe Anlage 5').",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "description": "Herkunft des Zusatzentgelts: 'Bewertet' = mit bundeseinheitlichem Betrag, 'Unbewertet' = krankenhausindividuell zu vereinbaren.",
      +                "enum": [
      +                  "Undefined",
      +                  "Bewertet",
      +                  "Unbewertet"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / zusatzentgeltCodes
      Added value: +{
      +  "description": "Zusatzentgelte, denen diese Diagnose in Anlage 7 des Fallpauschalenkatalogs zugeordnet ist (Blutgerinnungsstörungen), als Kodes in amtlicher Schreibweise. Betrag, auslösende OPS-Kodes und Fußnoten liefert die Detailabfrage.",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "$ref": "#/properties/focus/properties/rareDiseases/properties/value/items/properties/icdCodes/properties/value",
      +      "description": "Der eigentliche Wert.",
      +      "items": {}
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  3. Changed8 schema fields changed
    • addedOutput schema / properties / focus / properties / alphaEntries / properties / value / items / properties / alphaId
      Added value: +{
      +  "description": "Stabile Alpha-Identifikationsnummer der Datei Alpha-ID-SE (z. B. 'I19094') — ein nicht klassifizierender Diagnosenkode für die elektronische Weiterverarbeitung. Null, wenn der Jahrgang keine Alpha-ID-SE führt.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / alphaEntries / properties / value / items / properties / isRetired
      Added value: +{
      +  "description": "True, wenn der Eintrag aus dem Alphabetischen Verzeichnis gestrichen wurde und nur noch geführt wird, damit alte Alpha-IDs auflösbar bleiben. Er darf nicht mehr zur Kodierung gewählt werden.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / focus / properties / alphaEntries / properties / value / items / properties / orphaCode
      Added value: +{
      +  "description": "Orpha-Kennnummer der Seltenen Erkrankung. Wo sie steht, ist die Kodierung damit im stationären Bereich seit dem 1.4.2023 verpflichtend (Bekanntmachung des BMG vom 17.11.2022, BAnz AT 07.12.2022 B1).",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / atcDetails / properties / value / items / properties / icdCodes / properties / value / $ref
      Added value: +"#/properties/focus/properties/rareDiseases/properties/value/items/properties/icdCodes/properties/value"
    • removedOutput schema / properties / focus / properties / atcDetails / properties / value / items / properties / icdCodes / properties / value / items / type
      Removed value: -"string"
    • removedOutput schema / properties / focus / properties / atcDetails / properties / value / items / properties / icdCodes / properties / value / type
      Removed value: -"array"
    • addedOutput schema / properties / focus / properties / rareDiseases
      Added value: +{
      +  "description": "Seltene Erkrankungen, die unter dieser Schlüsselnummer eine eigene Orpha-Kennnummer haben. Liegt eine von ihnen vor, ist die Kennnummer seit dem 1.4.2023 im Krankenhaus zusätzlich zur Schlüsselnummer zu übermitteln. Quelle der Zuordnung ist die amtliche Datei Alpha-ID-SE des BfArM.",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "description": "Der eigentliche Wert.",
      +      "items": {
      +        "properties": {
      +          "classificationLevel": {
      +            "description": "Tiefe des Kodes in der Katalog-Hierarchie (0 = oberste Ebene).",
      +            "type": "integer"
      +          },
      +          "code": {
      +            "description": "Normalisierter Schlüssel ohne Trennzeichen, wie er für Abfragen und URLs verwendet wird (z. B. 'A010' für den ICD-Kode A01.0). Dieser Wert ist als 'code' an alle Katalog-Funktionen zurückzugeben.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "description": {
      +            "description": "Amtlicher Titel des Kodes (Diagnose-, Prozedur- bzw. Entgeltbezeichnung).",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "descriptionHighlight": {
      +            "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null, wenn die Anfrage diesen Text nicht berührt hat. Über MCP immer null.",
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": [
      +              "array",
      +              "null"
      +            ]
      +          },
      +          "fullCode": {
      +            "description": "Der Kode in der amtlichen Schreibweise, wie er dem Anwender angezeigt und in Dokumenten kodiert wird (z. B. 'A01.0', '5-470.0').",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "group": {
      +            "description": "Gröbere Einordnung: eine Störung, eine Gruppe von Störungen oder ein Subtyp.",
      +            "enum": [
      +              "Unknown",
      +              "Disorder",
      +              "Group",
      +              "Subtype"
      +            ],
      +            "type": "string"
      +          },
      +          "groupCode": {
      +            "description": "Nur bei einer Suche: die Rubrik, unter der die Suche diesen Treffer einordnet — beim ICD die dreistellige Kategorie, beim OPS der vierstellige Kode. Die Liste bleibt flach; wer mag, gruppiert danach. Null außerhalb der Suche.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "icdCodes": {
      +            "description": "Schlüsselnummern der ICD-10-GM, mit denen die Krankheit in Deutschland zu kodieren ist — die amtliche Zuordnung der Datei Alpha-ID-SE des BfArM. Leer, wenn die Datei die Kennnummer nicht führt.",
      +            "properties": {
      +              "sourceYear": {
      +                "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +                "type": "integer"
      +              },
      +              "value": {
      +                "description": "Der eigentliche Wert.",
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "type": [
      +              "object",
      +              "null"
      +            ]
      +          },
      +          "isGroupHeader": {
      +            "description": "Nur bei einer Suche: True, wenn diese Zeile die Rubrik selbst ist und die folgenden Zeilen mit gleichem 'groupCode' ihre Kodes sind.",
      +            "type": "boolean"
      +          },
      +          "isSemanticMatch": {
      +            "description": "Nur bei einer Suche: True, wenn kein Wort der Anfrage diesen Kode erreicht hat und er über die Bedeutung gefunden wurde. Dann gibt es nichts hervorzuheben.",
      +            "type": "boolean"
      +          },
      +          "isTerminal": {
      +            "description": "True, wenn der Kode ein Blatt der Hierarchie ist und damit selbst kodiert werden kann; false, wenn er nur eine Gruppe untergeordneter Kodes ist.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "matchedTerm": {
      +            "description": "Nur bei einer Suche: die Formulierung, über die der Treffer gefunden wurde, wenn sie etwas sagt, was 'description' nicht sagt — etwa der Eintrag des Alphabetischen Verzeichnisses, unter dem der Kode nachgewiesen ist. Null, wenn der Treffer sich aus der Bezeichnung selbst erklärt.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "matchedTermHighlight": {
      +            "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'matchedTerm', gleiche Skala wie 'descriptionHighlight'. Über MCP immer null.",
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": [
      +              "array",
      +              "null"
      +            ]
      +          },
      +          "nonRareInEurope": {
      +            "description": "True, wenn Orphanet die Krankheit in Europa nicht (mehr) als selten führt.",
      +            "type": "boolean"
      +          },
      +          "status": {
      +            "description": "Stand des Eintrags bei Orphanet. Nur 'Active' und 'HeadOfClassification' sind aktuell; alles andere wurde zurückgezogen, ersetzt oder nicht weiter gepflegt.",
      +            "enum": [
      +              "Active",
      +              "HeadOfClassification",
      +              "Inactive",
      +              "Obsolete",
      +              "Deprecated",
      +              "Historical"
      +            ],
      +            "type": "string"
      +          },
      +          "synonyms": {
      +            "description": "Deutsche Synonyme der Bezeichnung — die Namen, unter denen dieselbe Krankheit sonst noch geführt wird.",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": [
      +              "array",
      +              "null"
      +            ]
      +          },
      +          "treeDepth": {
      +            "description": "Nur wenn die Liste ein aufgeklapptes Teilbaum-Listing ist: Tiefe dieser Zeile innerhalb der Liste (0 = direkt unter dem abgefragten Kode, 1 = dessen Kind usw.). Bei einer Suche null — dort sagt 'groupCode', wohin eine Zeile gehört, und die Gliederung entsteht durch Blöcke statt durch Einrückung.",
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "type": {
      +            "description": "Art des Eintrags nach Orphanet, z. B. 'Krankheit', 'Fehlbildungs-Syndrom', 'Klinischer Subtyp'.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / items / items / properties / atcCodes / properties / value / $ref
      Previous value: -"#/properties/focus/properties/atcDetails/properties/value/items/properties/icdCodes/properties/value"New value: +"#/properties/focus/properties/rareDiseases/properties/value/items/properties/icdCodes/properties/value"
  4. Changed3 schema fields changed
    • addedOutput schema / properties / focus / properties / statistics
      Added value: +{
      +  "description": "Wie oft der Kode in deutschen Krankenhäusern als Hauptdiagnose kodiert wird, samt Geschlechts- und Altersaufteilung. Kapitel, Gruppen und Dreisteller tragen die Summe ihrer Unterkodes, Fünfsteller die Zahlen ihres Obercodes — welcher Fall vorliegt, sagt 'scope'.",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "description": "Der eigentliche Wert.",
      +      "properties": {
      +        "ageGroups": {
      +          "description": "Verteilung über die Altersgruppen. Nur an der Detailabfrage eines Kodes gesetzt; in Listen bleibt sie leer, weil sie dort nur Last wäre.",
      +          "items": {
      +            "properties": {
      +              "cases": {
      +                "description": "Fälle dieser Altersgruppe.",
      +                "type": "integer"
      +              },
      +              "female": {
      +                "description": "Davon weiblich. Männer und Frauen ergeben zusammen nicht zwingend 'cases' — Fälle ohne Geschlechtsangabe fehlen in beiden.",
      +                "type": "integer"
      +              },
      +              "fromYears": {
      +                "description": "Untergrenze der Altersgruppe in Jahren, einschließlich.",
      +                "type": "integer"
      +              },
      +              "label": {
      +                "description": "Beschriftung der Altersgruppe, wie sie der Bericht führt (z. B. '70-75').",
      +                "type": "string"
      +              },
      +              "male": {
      +                "description": "Davon männlich.",
      +                "type": "integer"
      +              },
      +              "toYears": {
      +                "description": "Obergrenze der Altersgruppe in Jahren, ausschließlich. Null bei der offenen obersten Gruppe.",
      +                "type": [
      +                  "integer",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": [
      +            "array",
      +            "null"
      +          ]
      +        },
      +        "cases": {
      +          "description": "Fälle mit dieser Hauptdiagnose — aus dem Krankenhaus entlassene Patientinnen und Patienten.",
      +          "type": "integer"
      +        },
      +        "code": {
      +          "description": "Der Kode, dem die Zahlen gehören. Bei 'scope' = 'Parent' ist das der Obercode, nicht der abgefragte Kode.",
      +          "type": "string"
      +        },
      +        "female": {
      +          "description": "Davon weiblich.",
      +          "type": "integer"
      +        },
      +        "male": {
      +          "description": "Davon männlich.",
      +          "type": "integer"
      +        },
      +        "rank": {
      +          "description": "Rang nach Fallzahl unter den Kodes derselben Katalogebene, die überhaupt Fälle ausweisen. 1 ist der häufigste.",
      +          "type": "integer"
      +        },
      +        "rankTotal": {
      +          "description": "Wie viele Kodes derselben Katalogebene in den Rang eingehen — der Nenner zu 'rank'.",
      +          "type": "integer"
      +        },
      +        "scope": {
      +          "description": "Ob die Zahlen diesem Kode selbst gehören ('Code'), die Summe seiner Unterkodes sind ('Subtree') oder einem Obercode gehören ('Parent').",
      +          "enum": [
      +            "Code",
      +            "Subtree",
      +            "Parent"
      +          ],
      +          "type": "string"
      +        },
      +        "shareOfYear": {
      +          "description": "Anteil an allen Krankenhausfällen des Datenjahres, als Bruchteil von 1 (0,0189 = 1,89 %).",
      +          "type": "number"
      +        },
      +        "unknown": {
      +          "description": "Davon ohne Geschlechtsangabe.",
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / stay
      Added value: +{
      +  "description": "Mittlere Verweildauer der Fälle mit dieser Hauptdiagnose. Trägt einen eigenen Jahrgang: Belegungstage druckte der Statistische Bericht zuletzt für das Datenjahr 2023, Fallzahlen gibt es neuer.",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "description": "Der eigentliche Wert.",
      +      "properties": {
      +        "ageGroups": {
      +          "description": "Mittlere Verweildauer je Altersgruppe. Nur an der Detailabfrage eines Kodes gesetzt. Null, wenn der Jahrgang der Verweildauer andere Altersgruppen führt als der der Fallzahlen.",
      +          "items": {
      +            "properties": {
      +              "averageDays": {
      +                "description": "Mittlere Verweildauer dieser Altersgruppe in Tagen.",
      +                "type": "number"
      +              },
      +              "cases": {
      +                "description": "Fälle dieser Altersgruppe im Datenjahr der Verweildauer.",
      +                "type": "integer"
      +              },
      +              "days": {
      +                "description": "Berechnungs- und Belegungstage dieser Altersgruppe.",
      +                "type": "integer"
      +              },
      +              "fromYears": {
      +                "description": "Untergrenze der Altersgruppe in Jahren, einschließlich.",
      +                "type": "integer"
      +              },
      +              "label": {
      +                "description": "Beschriftung der Altersgruppe, wie sie der Bericht führt.",
      +                "type": "string"
      +              },
      +              "toYears": {
      +                "description": "Obergrenze der Altersgruppe in Jahren, ausschließlich. Null bei der offenen obersten Gruppe.",
      +                "type": [
      +                  "integer",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": [
      +            "array",
      +            "null"
      +          ]
      +        },
      +        "averageDays": {
      +          "description": "Mittlere Verweildauer in Tagen: Belegungstage geteilt durch Fälle.",
      +          "type": "number"
      +        },
      +        "cases": {
      +          "description": "Fälle des Datenjahres, über die gemittelt wird. Nicht zwingend die Fallzahl aus 'statistics' — die stammt meist aus einem neueren Jahrgang.",
      +          "type": "integer"
      +        },
      +        "code": {
      +          "description": "Der Kode, dem die Zahlen gehören. Bei 'scope' = 'Parent' ist das der Obercode.",
      +          "type": "string"
      +        },
      +        "days": {
      +          "description": "Berechnungs- und Belegungstage dieser Fälle zusammengenommen.",
      +          "type": "integer"
      +        },
      +        "scope": {
      +          "description": "Ob die Zahlen diesem Kode selbst gehören, die Summe seiner Unterkodes sind oder einem Obercode gehören.",
      +          "enum": [
      +            "Code",
      +            "Subtree",
      +            "Parent"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / statistics
      Added value: +{
      +  "description": "Wie oft der Kode in deutschen Krankenhäusern als Hauptdiagnose kodiert wird. Kapitel, Gruppen und Dreisteller tragen die Summe ihrer Unterkodes, Fünfsteller die Zahlen ihres Obercodes — welcher Fall vorliegt, sagt 'scope'. Die Altersaufteilung liefert nur die Detailabfrage.",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "$ref": "#/properties/focus/properties/statistics/properties/value",
      +      "description": "Der eigentliche Wert."
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  5. Changed23 schema fields changed
    • addedOutput schema / properties / focus / properties / alphaEntries / properties / value / items / properties / textHighlight
      Added value: +{
      +  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'text' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null außerhalb einer Textsuche. Über MCP immer null.",
      +  "items": {
      +    "type": "number"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / focus / properties / atcDetails / properties / value / items / properties / descriptionHighlight / description
      Previous value: -"Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description'. Über MCP immer null."New value: +"Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null, wenn die Anfrage diesen Text nicht berührt hat. Über MCP immer null."
    • addedOutput schema / properties / focus / properties / atcDetails / properties / value / items / properties / groupCode
      Added value: +{
      +  "description": "Nur bei einer Suche: die Rubrik, unter der die Suche diesen Treffer einordnet — beim ICD die dreistellige Kategorie, beim OPS der vierstellige Kode. Die Liste bleibt flach; wer mag, gruppiert danach. Null außerhalb der Suche.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / atcDetails / properties / value / items / properties / isGroupHeader
      Added value: +{
      +  "description": "Nur bei einer Suche: True, wenn diese Zeile die Rubrik selbst ist und die folgenden Zeilen mit gleichem 'groupCode' ihre Kodes sind.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / focus / properties / atcDetails / properties / value / items / properties / isSemanticMatch
      Added value: +{
      +  "description": "Nur bei einer Suche: True, wenn kein Wort der Anfrage diesen Kode erreicht hat und er über die Bedeutung gefunden wurde. Dann gibt es nichts hervorzuheben.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / focus / properties / atcDetails / properties / value / items / properties / matchedTerm
      Added value: +{
      +  "description": "Nur bei einer Suche: die Formulierung, über die der Treffer gefunden wurde, wenn sie etwas sagt, was 'description' nicht sagt — etwa der Eintrag des Alphabetischen Verzeichnisses, unter dem der Kode nachgewiesen ist. Null, wenn der Treffer sich aus der Bezeichnung selbst erklärt.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / atcDetails / properties / value / items / properties / matchedTermHighlight
      Added value: +{
      +  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'matchedTerm', gleiche Skala wie 'descriptionHighlight'. Über MCP immer null.",
      +  "items": {
      +    "type": "number"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / focus / properties / atcDetails / properties / value / items / properties / treeDepth / description
      Previous value: -"Nur wenn die Liste ein aufgeklapptes Teilbaum-Listing ist: Tiefe dieser Zeile innerhalb der Liste (0 = direkt unter dem abgefragten Kode, 1 = dessen Kind usw.). Null bedeutet, dass die Zeilen der Liste in keinem Über-/Unterordnungsverhältnis zueinander stehen — etwa bei einer Suche."New value: +"Nur wenn die Liste ein aufgeklapptes Teilbaum-Listing ist: Tiefe dieser Zeile innerhalb der Liste (0 = direkt unter dem abgefragten Kode, 1 = dessen Kind usw.). Bei einer Suche null — dort sagt 'groupCode', wohin eine Zeile gehört, und die Gliederung entsteht durch Blöcke statt durch Einrückung."
    • changedOutput schema / properties / focus / properties / descriptionHighlight / description
      Previous value: -"Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description'. Über MCP immer null."New value: +"Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null, wenn die Anfrage diesen Text nicht berührt hat. Über MCP immer null."
    • addedOutput schema / properties / focus / properties / groupCode
      Added value: +{
      +  "description": "Nur bei einer Suche: die Rubrik, unter der die Suche diesen Treffer einordnet — beim ICD die dreistellige Kategorie, beim OPS der vierstellige Kode. Die Liste bleibt flach; wer mag, gruppiert danach. Null außerhalb der Suche.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / isGroupHeader
      Added value: +{
      +  "description": "Nur bei einer Suche: True, wenn diese Zeile die Rubrik selbst ist und die folgenden Zeilen mit gleichem 'groupCode' ihre Kodes sind.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / focus / properties / isSemanticMatch
      Added value: +{
      +  "description": "Nur bei einer Suche: True, wenn kein Wort der Anfrage diesen Kode erreicht hat und er über die Bedeutung gefunden wurde. Dann gibt es nichts hervorzuheben.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / focus / properties / matchedTerm
      Added value: +{
      +  "description": "Nur bei einer Suche: die Formulierung, über die der Treffer gefunden wurde, wenn sie etwas sagt, was 'description' nicht sagt — etwa der Eintrag des Alphabetischen Verzeichnisses, unter dem der Kode nachgewiesen ist. Null, wenn der Treffer sich aus der Bezeichnung selbst erklärt.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / matchedTermHighlight
      Added value: +{
      +  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'matchedTerm', gleiche Skala wie 'descriptionHighlight'. Über MCP immer null.",
      +  "items": {
      +    "type": "number"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / focus / properties / treeDepth / description
      Previous value: -"Nur wenn die Liste ein aufgeklapptes Teilbaum-Listing ist: Tiefe dieser Zeile innerhalb der Liste (0 = direkt unter dem abgefragten Kode, 1 = dessen Kind usw.). Null bedeutet, dass die Zeilen der Liste in keinem Über-/Unterordnungsverhältnis zueinander stehen — etwa bei einer Suche."New value: +"Nur wenn die Liste ein aufgeklapptes Teilbaum-Listing ist: Tiefe dieser Zeile innerhalb der Liste (0 = direkt unter dem abgefragten Kode, 1 = dessen Kind usw.). Bei einer Suche null — dort sagt 'groupCode', wohin eine Zeile gehört, und die Gliederung entsteht durch Blöcke statt durch Einrückung."
    • addedOutput schema / properties / interpretation
      Added value: +{
      +  "description": "Nur bei einer Suche: wie die Suche die Anfrage gelesen hat. Null außerhalb der Suche.",
      +  "properties": {
      +    "detectedCode": {
      +      "description": "Im Suchtext erkannte Schlüsselnummer, normalisiert (z. B. 'I219', '5820'). Null, wenn die Anfrage nur Text war.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "expandedTerms": {
      +      "description": "Aufgelöste Abkürzungen, mit denen zusätzlich gesucht wurde — etwa 'KHK' auch als 'Koronare Herzkrankheit'.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "usedSemanticSearch": {
      +      "description": "True, wenn die Wortsuche keinen sicheren Treffer hatte und zusätzlich nach Bedeutung gesucht wurde.",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / items / items / properties / descriptionHighlight / description
      Previous value: -"Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description'. Über MCP immer null."New value: +"Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null, wenn die Anfrage diesen Text nicht berührt hat. Über MCP immer null."
    • addedOutput schema / properties / items / items / properties / groupCode
      Added value: +{
      +  "description": "Nur bei einer Suche: die Rubrik, unter der die Suche diesen Treffer einordnet — beim ICD die dreistellige Kategorie, beim OPS der vierstellige Kode. Die Liste bleibt flach; wer mag, gruppiert danach. Null außerhalb der Suche.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / isGroupHeader
      Added value: +{
      +  "description": "Nur bei einer Suche: True, wenn diese Zeile die Rubrik selbst ist und die folgenden Zeilen mit gleichem 'groupCode' ihre Kodes sind.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / items / items / properties / isSemanticMatch
      Added value: +{
      +  "description": "Nur bei einer Suche: True, wenn kein Wort der Anfrage diesen Kode erreicht hat und er über die Bedeutung gefunden wurde. Dann gibt es nichts hervorzuheben.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / items / items / properties / matchedTerm
      Added value: +{
      +  "description": "Nur bei einer Suche: die Formulierung, über die der Treffer gefunden wurde, wenn sie etwas sagt, was 'description' nicht sagt — etwa der Eintrag des Alphabetischen Verzeichnisses, unter dem der Kode nachgewiesen ist. Null, wenn der Treffer sich aus der Bezeichnung selbst erklärt.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / matchedTermHighlight
      Added value: +{
      +  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'matchedTerm', gleiche Skala wie 'descriptionHighlight'. Über MCP immer null.",
      +  "items": {
      +    "type": "number"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / items / items / properties / treeDepth / description
      Previous value: -"Nur wenn die Liste ein aufgeklapptes Teilbaum-Listing ist: Tiefe dieser Zeile innerhalb der Liste (0 = direkt unter dem abgefragten Kode, 1 = dessen Kind usw.). Null bedeutet, dass die Zeilen der Liste in keinem Über-/Unterordnungsverhältnis zueinander stehen — etwa bei einer Suche."New value: +"Nur wenn die Liste ein aufgeklapptes Teilbaum-Listing ist: Tiefe dieser Zeile innerhalb der Liste (0 = direkt unter dem abgefragten Kode, 1 = dessen Kind usw.). Bei einer Suche null — dort sagt 'groupCode', wohin eine Zeile gehört, und die Gliederung entsteht durch Blöcke statt durch Einrückung."
  6. Changed7 schema fields changed
    • addedOutput schema / properties / focus / properties / codeType
      Added value: +{
      +  "description": "Art des Kodes im amtlichen Datensatz: 'X' = expliziter Kode mit eigenständiger Bezeichnung, 'S' = Subklassifikation, deren Bezeichnung nur zusammen mit der des übergeordneten Kodes zu lesen ist. Rein technische Angabe — die hier gelieferte Bezeichnung enthält den übergeordneten Text bereits.",
      +  "enum": [
      +    "X",
      +    "S",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / isNotAssigned
      Added value: +{
      +  "description": "True, wenn die Schlüsselnummer im Katalog geführt, aber nicht belegt ist — eine für spätere Verwendung reservierte Position, die nicht kodiert werden darf. Die Angaben zu § 301 und § 295 sind bei diesen Kodes ohne Bedeutung.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / focus / properties / paragraph295Usage
      Added value: +{
      +  "description": "Verwendbarkeit des Kodes in der ambulanten Versorgung nach § 295 SGB V, mit denselben Werten wie bei § 301. Weicht der Wert von 'Paragraph301Usage' ab, gilt ambulant und stationär Unterschiedliches — der häufigste Fall sind vierstellige Kodes, die stationär endständig (fünfstellig) anzugeben sind, ambulant aber vierstellig kodiert werden dürfen.",
      +  "enum": [
      +    "P",
      +    "O",
      +    "Z",
      +    "V",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / paragraph301Usage
      Added value: +{
      +  "description": "Verwendbarkeit des Kodes in der stationären Versorgung nach § 301 SGB V: 'P' = als Primärkode zugelassen, 'O' = nur als Sternschlüsselnummer (Manifestationskode) zusammen mit einem Primärkode, 'Z' = nur als Ausrufezeichenschlüsselnummer zusätzlich zu einem Primärkode, 'V' = nicht zur Verschlüsselung zugelassen, weil der Kode nicht endständig ist — dann ist einer seiner Subkodes zu wählen.",
      +  "enum": [
      +    "P",
      +    "O",
      +    "Z",
      +    "V",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / isNotAssigned
      Added value: +{
      +  "description": "True, wenn die Schlüsselnummer im Katalog geführt, aber nicht belegt ist — eine für spätere Verwendung reservierte Position, die nicht kodiert werden darf. Die Angaben zu § 301 und § 295 sind bei diesen Kodes ohne Bedeutung.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / items / items / properties / paragraph295Usage
      Added value: +{
      +  "description": "Verwendbarkeit des Kodes in der ambulanten Versorgung nach § 295 SGB V, mit denselben Werten wie bei § 301. Weicht der Wert von 'Paragraph301Usage' ab, gilt ambulant und stationär Unterschiedliches — der häufigste Fall sind vierstellige Kodes, die stationär endständig (fünfstellig) anzugeben sind, ambulant aber vierstellig kodiert werden dürfen.",
      +  "enum": [
      +    "P",
      +    "O",
      +    "Z",
      +    "V",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / paragraph301Usage
      Added value: +{
      +  "description": "Verwendbarkeit des Kodes in der stationären Versorgung nach § 301 SGB V: 'P' = als Primärkode zugelassen, 'O' = nur als Sternschlüsselnummer (Manifestationskode) zusammen mit einem Primärkode, 'Z' = nur als Ausrufezeichenschlüsselnummer zusätzlich zu einem Primärkode, 'V' = nicht zur Verschlüsselung zugelassen, weil der Kode nicht endständig ist — dann ist einer seiner Subkodes zu wählen.",
      +  "enum": [
      +    "P",
      +    "O",
      +    "Z",
      +    "V",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  7. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare `readOnlyHint: true` and `idempotentHint: true`, but the description adds substantial behavioral context beyond that: complete catalog rows with coding flags, nationwide case statistics, flat-but-ordered result layout, `isGroupHeader`/`groupCode` semantics, `matchedTerm`, and `interpretation`. No contradiction with the annotations is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then systematically explains result structure, ordering, and follow-up tooling. It is longer than average, and the English section largely duplicates the German content, which adds bulk. However, the material is dense, informative, and logically organized, so the length is mostly justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich annotations and full output schema, the description covers everything an agent needs: query flexibility, result semantics, group-header behavior, interpreting `matchedTerm`, statistics meaning, and the appropriate follow-up call. Nothing essential for correct invocation appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful value to `query` semantics beyond the schema by explicitly covering misspellings, abbreviations, colloquial expressions, and symptom paraphrases. It does not add new details for `year` or `limit`, but those are already well explained in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's function: searching the ICD-10-GM diagnostic catalog, whether by code, clinical term, colloquial phrasing, abbreviation, or misspelling. It distinguishes itself from sibling tools by naming the resource and the broad query scope, and it emphasizes being the 'first tool for any diagnosis search.' Examples like 'herzinfakt' and 'Wasser in der Lunge' make the purpose concrete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says this is the first tool for any diagnosis search and routes follow-up detail work (`icd10_get`) for inclusions/exclusions, coding hints, Morbi-RSA groups, and ATC substances. It does not explicitly list exclusions versus other sibling search tools (e.g., `ops_search`, `atc_search`), but the ICD-10-GM scope and diagnosis focus make the primary usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources