Skip to main content
Glama

DRGSystem — German medical coding catalogs

OPS-Kode abrufen

ops_get
Read-onlyIdempotent

Liefert in 'focus' alle Angaben zu einem OPS-Kode: Kodier-Kennzeichen, Alters- und Geschlechtsbezug, AOP-Angaben nach § 115b SGB V samt Kontextfaktoren, Einträge des Alphabetischen Verzeichnisses sowie DKR- und SEG-4-Verweise. Dazu in 'parents' die übergeordneten Kodes und in 'items' die direkt untergeordneten. Ohne Kode aufgerufen liefert die Funktion die oberste Ebene des Katalogs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeNoOPS-Kode, normalisiert oder in amtlicher Schreibweise (z. B. '5470' oder '5-470.0'). Leer lassen für die oberste Ebene des Katalogs.
yearNoKatalogjahr (z. B. 2026). Leer lassen für das aktuellste verfügbare Jahr.

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. Changed8 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 OPS-Kode.",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • 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 / 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 / ownTitle
      Removed value: -{
      -  "description": "Titel dieser Stelle allein, ohne die Titel der übergeordneten Stellen: bei 5-820.00 also 'Nicht zementiert' statt der zusammengesetzten Bezeichnung.",
      -  "type": [
      -    "string",
      -    "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 / ownTitle
      Removed value: -{
      -  "description": "Titel dieser Stelle allein, ohne die Titel der übergeordneten Stellen: bei 5-820.00 also 'Nicht zementiert' statt der zusammengesetzten Bezeichnung. Null bei Kapiteln und Bereichen.",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
  2. Changed5 schema fields changed
    • addedOutput schema / properties / focus / properties / statistics
      Added value: +{
      +  "description": "Wie oft der Kode in deutschen Krankenhäusern erbracht wird (Destatis, DRG-Statistik) — gezählt werden Operationen und Prozeduren, nicht Fälle, hier mit der Aufteilung nach Altersgruppen. Bereichsüberschriften und Kapitel tragen die Summe ihrer Viersteller, Fünf- und Sechssteller die Zahlen ihres Vierstellers; welcher Fall vorliegt, sagt 'scope'. Der Jahrgang ist das Datenjahr der Statistik und hinkt dem Katalog hinterher.",
      +  "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": "Aufteilung nach Altersgruppen, aufsteigend. Nur in der Detailansicht eines einzelnen Kodes; in Listen null.",
      +          "items": {
      +            "properties": {
      +              "female": {
      +                "description": "Davon bei weiblichen Patienten.",
      +                "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"
      +              },
      +              "male": {
      +                "description": "Davon bei männlichen Patienten.",
      +                "type": "integer"
      +              },
      +              "procedures": {
      +                "description": "Operationen und Prozeduren in dieser Altersgruppe.",
      +                "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"
      +          ]
      +        },
      +        "code": {
      +          "description": "Der Kode, für den die Zahlen gelten. Weicht er vom abgefragten Kode ab, stammen sie vom vierstelligen Obercode.",
      +          "type": "string"
      +        },
      +        "female": {
      +          "description": "Davon bei weiblichen Patienten.",
      +          "type": "integer"
      +        },
      +        "male": {
      +          "description": "Davon bei männlichen Patienten.",
      +          "type": "integer"
      +        },
      +        "procedures": {
      +          "description": "Anzahl der Operationen und Prozeduren im Datenjahr. Gezählt werden Prozeduren, nicht Fälle.",
      +          "type": "integer"
      +        },
      +        "rank": {
      +          "description": "Rang nach Anzahl unter allen Kodes derselben Katalogebene (1 = am häufigsten). 0, wenn kein Rang gebildet wird.",
      +          "type": "integer"
      +        },
      +        "rankTotal": {
      +          "description": "Anzahl der Kodes derselben Katalogebene, unter denen der Rang gebildet ist.",
      +          "type": "integer"
      +        },
      +        "scope": {
      +          "description": "Worauf sich die Zahlen beziehen: 'Code' = der vierstellige Kode selbst, 'Subtree' = zusammengezählt über alle Viersteller unter dieser Bereichsüberschrift oder diesem Kapitel, 'Parent' = der vierstellige Obercode, weil die Statistik feiner nicht aufteilt.",
      +          "enum": [
      +            "Code",
      +            "Subtree",
      +            "Parent"
      +          ],
      +          "type": "string"
      +        },
      +        "shareOfYear": {
      +          "description": "Anteil an allen Operationen und Prozeduren des Datenjahres, zwischen 0 und 1.",
      +          "type": "number"
      +        },
      +        "unknown": {
      +          "description": "Davon ohne Geschlechtsangabe — die Differenz zwischen Gesamtwert und den beiden Geschlechtern. Meist 0.",
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / zusatzentgeltCodes
      Added value: +{
      +  "description": "Zusatzentgelte, die dieser Kode auslöst — weil der Zusatzentgelte-Katalog ihn listet oder einen übergeordneten Kode mit '*)' für alle Subkodes. Nur die Kodes in amtlicher Schreibweise (z. B. 'ZE105.01'); Betrag, Kombinationspartner 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": {
      +      "description": "Der eigentliche Wert.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / zusatzentgelte
      Added value: +{
      +  "description": "Zusatzentgelte, die an diesem Kode hängen, mit Betrag, Art der Verbindung, Kombinationspartnern und den Fußnoten, die über die Abrechenbarkeit entscheiden. Bei Vierstellern und nicht endständigen Fünfstellern auch die Zusatzentgelte, die erst ihre Subkodes auslösen ('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 / statistics
      Added value: +{
      +  "description": "Wie oft der Kode in deutschen Krankenhäusern erbracht wird (Destatis, DRG-Statistik) — gezählt werden Operationen und Prozeduren, nicht Fälle. Bereichsüberschriften und Kapitel tragen die Summe ihrer Viersteller, Fünf- und Sechssteller die Zahlen ihres Vierstellers; welcher Fall vorliegt, sagt 'scope'. Der Jahrgang ist das Datenjahr der Statistik und hinkt dem Katalog hinterher.",
      +  "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"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / zusatzentgeltCodes
      Added value: +{
      +  "description": "Zusatzentgelte, die dieser Kode auslöst — weil der Zusatzentgelte-Katalog ihn listet oder einen übergeordneten Kode mit '*)' für alle Subkodes. Nur die Kodes in amtlicher Schreibweise (z. B. 'ZE105.01'); Betrag, Kombinationspartner 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/zusatzentgeltCodes/properties/value",
      +      "description": "Der eigentliche Wert.",
      +      "items": {}
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  3. Changed15 schema fields changed
    • addedOutput schema / properties / focus / properties / abbreviations
      Added value: +{
      +  "description": "Abkürzungen aus dem amtlichen Abkürzungsverzeichnis des OPS, die im Text dieses Kodes vorkommen, mit ihrer Auflösung.",
      +  "items": {
      +    "properties": {
      +      "abbreviation": {
      +        "description": "Abkürzung, wie im amtlichen Verzeichnis geschrieben.",
      +        "type": "string"
      +      },
      +      "meaning": {
      +        "description": "Auflösung der Abkürzung.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / appendices
      Added value: +{
      +  "description": "Anhänge des Systematischen Verzeichnisses, die zu diesem Kode gehören — die Tabellen, aus denen sich Aufwandspunkte bzw. anrechenbare Therapieeinheiten errechnen.",
      +  "items": {
      +    "properties": {
      +      "codePrefixes": {
      +        "description": "Kodes, zu denen dieser Anhang gehört, als Präfix (z. B. '8-980').",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "description": "Kennung des Anhangs, z. B. 'aufwandspunkte-erwachsene'.",
      +        "type": "string"
      +      },
      +      "intro": {
      +        "description": "Erläuternder Text vor den Tabellen.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "tables": {
      +        "description": "Die Tabellen des Anhangs.",
      +        "items": {
      +          "properties": {
      +            "caption": {
      +              "description": "Tabellenüberschrift.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "footnote": {
      +              "description": "Fußnoten unter der Tabelle.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "rows": {
      +              "description": "Zeilen der Tabelle; die erste ist in der Regel die Kopfzeile.",
      +              "items": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "type": "array"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "title": {
      +        "description": "Überschrift des Anhangs.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / branch
      Added value: +{
      +  "description": "Der Dreisteller, unter dem dieser Kode steht, samt der Hinweise, die für den ganzen Zweig gelten.",
      +  "properties": {
      +    "code": {
      +      "description": "Dreisteller in amtlicher Schreibweise, z. B. '5-82'.",
      +      "type": "string"
      +    },
      +    "description": {
      +      "description": "Titel des Dreistellers.",
      +      "type": "string"
      +    },
      +    "rubrics": {
      +      "description": "Hinweise und Exklusiva, die für den ganzen Zweig gelten und damit auch für diesen Kode.",
      +      "items": {
      +        "$ref": "#/properties/focus/properties/rubrics/items"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / edition
      Added value: +{
      +  "description": "Die Ausgabe, aus der dieser Kode stammt: Version, Stand, OID und Urheberrechtsvermerk des Herausgebers.",
      +  "properties": {
      +    "copyright": {
      +      "description": "Urheberrechtsvermerk des Herausgebers.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "date": {
      +      "description": "Stand der Klassifikationsdateien.",
      +      "format": "date",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "isPreliminary": {
      +      "description": "Vorabfassung (noch nicht endgültig).",
      +      "type": "boolean"
      +    },
      +    "oid": {
      +      "description": "OID der Klassifikation.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "title": {
      +      "description": "Kurztitel, z. B. 'OPS'.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "titleLong": {
      +      "description": "Langtitel, z. B. 'Operationen- und Prozedurenschlüssel'.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "version": {
      +      "description": "Version, z. B. '2026'.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / hasCodingGuidance
      Added value: +{
      +  "description": "True, wenn für diesen Jahrgang die amtliche ClaML-Fassung vorliegt — nur sie führt Inklusiva, Exklusiva und Hinweise. False bei einer Vorabfassung: dann sagt eine leere Kodieranleitung nichts über den Kode aus, sondern nur über den Stand der Veröffentlichung.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / focus / properties / khgValidity
      Added value: +{
      +  "description": "Geltungsbereich nach dem Krankenhausfinanzierungsgesetz: 'Drg' = nur § 17b (DRG-System), 'Pepp' = nur § 17d (PEPP-System), 'Both' = beide (Regelfall), 'Neither' = in keinem der beiden Systeme zu verwenden.",
      +  "enum": [
      +    "Drg",
      +    "Pepp",
      +    "Both",
      +    "Neither"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / focus / properties / modifiers
      Added value: +{
      +  "description": "Subklassifikationslisten, aus denen die nächste Stelle dieses Kodes gebildet wird. Leer, wenn der Kode seine Subkodes selbst ausschreibt.",
      +  "items": {
      +    "properties": {
      +      "isRestricted": {
      +        "description": "True, wenn die Liste für diesen Kode eingeschränkt ist — dann sind nicht alle ihre Werte kombinierbar.",
      +        "type": "boolean"
      +      },
      +      "note": {
      +        "description": "Einleitungssatz der Subklassifikationsliste; er nennt die belegte Stelle und was sie kodiert.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "values": {
      +        "description": "Die Werte der Liste in amtlicher Reihenfolge, beschränkt auf die für diesen Kode zulässigen.",
      +        "items": {
      +          "properties": {
      +            "code": {
      +              "description": "Zeichen an der belegten Stelle, z. B. '0' oder 'x'.",
      +              "type": "string"
      +            },
      +            "description": {
      +              "description": "Bedeutung des Zeichens, z. B. 'Offen chirurgisch abdominal'.",
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / ownTitle
      Added value: +{
      +  "description": "Titel dieser Stelle allein, ohne die Titel der übergeordneten Stellen: bei 5-820.00 also 'Nicht zementiert' statt der zusammengesetzten Bezeichnung.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / referencedBy
      Added value: +{
      +  "description": "Kodes, die auf diesen Kode verweisen — die Gegenrichtung der Verweise in den Rubriken. Wer sie nicht kennt, übersieht, dass ein anderer Kode die Angabe dieses Kodes verlangt.",
      +  "items": {
      +    "$ref": "#/properties/focus/properties/rubrics/items/properties/references/items"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / rubrics
      Added value: +{
      +  "description": "Was der Katalog zu diesem Kode sagt: Inklusiva, Exklusiva und Hinweise, mit aufgelösten Verweisen.",
      +  "items": {
      +    "properties": {
      +      "kind": {
      +        "description": "Art der Rubrik: 'Inclusion' = Inklusivum (gehört zu diesem Kode), 'Exclusion' = Exklusivum (anderswo zu kodieren), 'Note' = Hinweis, 'PreferredLong' = ausführlicher Titel.",
      +        "enum": [
      +          "None",
      +          "Inclusion",
      +          "Exclusion",
      +          "Note",
      +          "PreferredLong",
      +          "Text"
      +        ],
      +        "type": "string"
      +      },
      +      "references": {
      +        "description": "Kodes, auf die diese Rubrik verweist, mit ihrer Bezeichnung.",
      +        "items": {
      +          "properties": {
      +            "code": {
      +              "description": "Kode in der Schreibweise, mit der er im Katalog nachgeschlagen wird.",
      +              "type": "string"
      +            },
      +            "description": {
      +              "description": "Bezeichnung des verwiesenen Kodes. Null, wenn der Verweis auf einen Kode zeigt, den dieser Jahrgang nicht führt.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "fullCode": {
      +              "description": "Amtliche Schreibweise des Kodes, z. B. '5-829.1'.",
      +              "type": "string"
      +            },
      +            "isBranch": {
      +              "description": "True, wenn der Verweis auf einen Dreisteller zeigt, also auf einen ganzen Zweig statt auf einen einzelnen Kode. Ein Dreisteller hat keine eigene Kodeseite; er wird über den Kodezweig aufgeschlagen.",
      +              "type": "boolean"
      +            },
      +            "text": {
      +              "description": "Text der Verweisstelle, wenn er vom Kode abweicht — etwa '5-93b ff.' für eine ganze Gruppe.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "text": {
      +        "description": "Wortlaut der Rubrik.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / exclusionCount
      Added value: +{
      +  "description": "Anzahl der Exklusiva — Prozeduren, die ausdrücklich nicht hierher gehören, sondern an eine andere Stelle.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / items / items / properties / inclusionCount
      Added value: +{
      +  "description": "Anzahl der Inklusiva des Kodes — Formulierungen, die ausdrücklich mit ihm kodiert werden.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / items / items / properties / khgValidity
      Added value: +{
      +  "description": "Geltungsbereich nach dem Krankenhausfinanzierungsgesetz: 'Drg' = nur § 17b (DRG-System), 'Pepp' = nur § 17d (PEPP-System), 'Both' = beide (Regelfall), 'Neither' = in keinem der beiden Systeme zu verwenden.",
      +  "enum": [
      +    "Drg",
      +    "Pepp",
      +    "Both",
      +    "Neither"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / items / items / properties / noteCount
      Added value: +{
      +  "description": "Anzahl der Hinweise zur Verschlüsselung dieses Kodes.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / items / items / properties / ownTitle
      Added value: +{
      +  "description": "Titel dieser Stelle allein, ohne die Titel der übergeordneten Stellen: bei 5-820.00 also 'Nicht zementiert' statt der zusammengesetzten Bezeichnung. Null bei Kapiteln und Bereichen.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  4. Changed16 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 / 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."
  5. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds valuable behavioral context by specifying the return structure (focus, parents, items) and the no-code top-level behavior. No contradictions with annotations. It does not describe error handling, but that is minor given the read-only nature.

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 a single, dense sentence that efficiently packs the primary purpose and return structure without wasted words. It front-loads the key information (Liefert in 'focus'...) and then lists contents. It is slightly long but not redundant, making it well-structured for a tool with multiple return sections.

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

Completeness4/5

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

With an output schema present, the description does not need to detail the exact return values; it already names the three main sections (focus, parents, items) and covers the no-code top-level case. The two optional parameters are fully documented in the schema. The description is complete for an agent to decide when to call the tool and what to expect.

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

Parameters3/5

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

Schema coverage is 100% – both 'code' and 'year' have detailed descriptions including format examples and default behavior. The description adds no additional parameter semantics beyond what the schema provides, so the baseline of 3 is appropriate. The mention of 'Ohne Kode aufgerufen' is already captured by the default null.

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 states a specific verb (Liefert) and resource (OPS-Kode) and enumerates the exact information delivered (Kodier-Kennzeichen, Alters- und Geschlechtsbezug, AOP-Angaben, etc.). It also distinguishes the tool from search siblings by describing the return structure (focus, parents, items) and the top-level catalog behavior without a code. This clearly differentiates it from ops_search and opsalpha_get.

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 gives clear context: use this tool to fetch details for a specific OPS code, and without a code it returns the top catalog level. However, it does not explicitly mention alternatives like ops_search for finding codes or opsalpha_get for alphabetical lookups. The name and structure imply when to use it, but the guidance is not explicit about when not to use it.

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