{
  "dictionary_format": "opjd-dictionary/1.0.0",
  "spec_version": "0.2.0",
  "schema_id": "opjd/schema/opjd-package/0.2.0",
  "license": "CC-BY-4.0",
  "entries": [
    {
      "id": "opjd://0.2.0/package",
      "kind": "object",
      "path": "package",
      "schema_pointer": "#",
      "instance_paths": [
        "/"
      ],
      "label": {
        "de": "oPJD-Paket",
        "en": "oPJD package"
      },
      "definition": {
        "de": "Formaler Kontrakt für ein oPJD-Datenpaket: die konsolidierte onkologische Patient Journey eines Patienten — Austauschhülle (delivery), Patient, Tumorentitäten, Ereignisse mit unveränderter oBDS-Nutzlast, Episoden (Klammern), typisierte Relationen (Bezüge) und optionaler Journey-Status. Transporteinheit ist die konsolidierte Journey, nicht der Meldungsstapel.",
        "en": "Formal contract for an oPJD data package: one patient’s consolidated oncological journey — exchange envelope (delivery), patient, tumor entities, events with unaltered oBDS payload, episodes (brackets), typed relations, and an optional journey status. The unit of transport is the consolidated journey, not a stack of registry reports."
      },
      "rationale": {
        "de": "Der oBDS transportiert Meldungsstapel — eine Meldung ist eine Transaktion eines Melders zu einem Anlass, und der Empfänger muss konsolidieren. Das oPJD-Paket dreht das um: Es transportiert die konsolidierte Journey; die Meldungs-Herkunft wandert in die Provenance der Ereignisse. Ein Paket mit leerer Episoden- und Relationsliste bleibt schema-konform — es degradiert würdevoll zum reinen Ereignis-Paket auf oBDS-Niveau."
      },
      "constraints_note": {
        "de": "SemVer: Breaking Changes erhöhen major, additive Felder minor; 0.x = Entwurfsphase im Rahmen von BZKF OncoFlow. Referenzielle Integrität (existieren alle referenzierten IDs?) und die klinische Grammatik sind bewusst Validator-Ebene, nicht JSON-Schema-Ebene."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Paket-Entsprechung: Der oBDS transportiert Meldungsstapel je Melder und Anlass, keine konsolidierte Patient Journey."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: neoadjuvante Therapie mit Studienphase und Primärfall-Klammer."
          },
          "ref": "opjd-example-nsclc"
        },
        {
          "description": {
            "de": "Prostata-Referenzjourney: Active Surveillance mit Strategiewechsel nach histologischem Upgrading."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery",
        "opjd://0.2.0/patient",
        "opjd://0.2.0/tumor",
        "opjd://0.2.0/event",
        "opjd://0.2.0/episode",
        "opjd://0.2.0/relation",
        "opjd://0.2.0/journey_status"
      ]
    },
    {
      "id": "opjd://0.2.0/package.schema_version",
      "kind": "field",
      "path": "package.schema_version",
      "schema_pointer": "#/properties/schema_version",
      "instance_paths": [
        "/schema_version"
      ],
      "label": {
        "de": "Schema-Version",
        "en": "Schema version"
      },
      "definition": {
        "de": "Version des oPJD-Schemas, gegen das dieses Paket validiert (SemVer; major = 0 während der Entwurfsphase). Jede Instanz trägt ihre Version explizit.",
        "en": "Version of the oPJD schema this package validates against (SemVer; major = 0 during the draft phase)."
      },
      "datatype": "string",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/package.delivery",
      "kind": "field",
      "path": "package.delivery",
      "schema_pointer": "#/properties/delivery",
      "instance_paths": [
        "/delivery"
      ],
      "label": {
        "de": "Austauschhülle (delivery)",
        "en": "Exchange envelope (delivery)"
      },
      "definition": {
        "de": "Die Austauschhülle des Pakets: Absender, Empfänger, Rechtsgrundlage, Verwendungszweck, Gültigkeit und Einschränkungen — siehe Objekt delivery.",
        "en": "The package’s exchange envelope: sender, receiver, legal basis, purpose, validity, restrictions — see the delivery object."
      },
      "datatype": "delivery",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery"
      ]
    },
    {
      "id": "opjd://0.2.0/package.patient",
      "kind": "field",
      "path": "package.patient",
      "schema_pointer": "#/properties/patient",
      "instance_paths": [
        "/patient"
      ],
      "label": {
        "de": "Patient",
        "en": "Patient"
      },
      "definition": {
        "de": "Die zentrale Bezugsperson des Pakets — pseudonymisiert oder identifiziert, je nach Einsatzkontext.",
        "en": "The package’s central subject — pseudonymized or identified depending on context."
      },
      "datatype": "patient",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/patient"
      ]
    },
    {
      "id": "opjd://0.2.0/package.tumors",
      "kind": "field",
      "path": "package.tumors",
      "schema_pointer": "#/properties/tumors",
      "instance_paths": [
        "/tumors"
      ],
      "label": {
        "de": "Tumorentitäten",
        "en": "Tumor entities"
      },
      "definition": {
        "de": "Alle Tumorentitäten des Patienten, auf die sich Ereignisse, Episoden und der Journey-Status per tumor_ref beziehen (mindestens eine).",
        "en": "All tumor entities of the patient that events, episodes and journey status reference via tumor_ref (at least one)."
      },
      "datatype": "array<tumor> (minItems 1)",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/tumor"
      ]
    },
    {
      "id": "opjd://0.2.0/package.events",
      "kind": "field",
      "path": "package.events",
      "schema_pointer": "#/properties/events",
      "instance_paths": [
        "/events"
      ],
      "label": {
        "de": "Ereignisse",
        "en": "Events"
      },
      "definition": {
        "de": "Die atomaren, dokumentierten Tatsachen der Journey (mindestens eine). Die oBDS-Nutzlast bleibt unverändert — Prinzip: Schicht, nicht Ersatz.",
        "en": "The atomic, documented facts of the journey (at least one). The oBDS payload stays unaltered — layer, not replacement."
      },
      "datatype": "array<event> (minItems 1)",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event"
      ]
    },
    {
      "id": "opjd://0.2.0/package.episodes",
      "kind": "field",
      "path": "package.episodes",
      "schema_pointer": "#/properties/episodes",
      "instance_paths": [
        "/episodes"
      ],
      "label": {
        "de": "Episoden",
        "en": "Episodes"
      },
      "definition": {
        "de": "Die klinischen Klammern über den Ereignissen. Ein leeres Array ist zulässig (reines Ereignis-Paket, würdevoll zu oBDS degradiert), mindert aber den Nutzwert des Pakets.",
        "en": "The clinical brackets over the events. An empty array is valid (a pure event package, gracefully degraded to oBDS level) but reduces the package’s value."
      },
      "datatype": "array<episode>",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode"
      ]
    },
    {
      "id": "opjd://0.2.0/package.relations",
      "kind": "field",
      "path": "package.relations",
      "schema_pointer": "#/properties/relations",
      "instance_paths": [
        "/relations"
      ],
      "label": {
        "de": "Relationen",
        "en": "Relations"
      },
      "definition": {
        "de": "Typisierte, gerichtete Bezüge zwischen Ereignissen bzw. von Ereignissen zu Episoden. Ein leeres Array ist zulässig.",
        "en": "Typed, directed references between events, or from events to episodes. An empty array is valid."
      },
      "datatype": "array<relation>",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/relation"
      ]
    },
    {
      "id": "opjd://0.2.0/package.journey_status",
      "kind": "field",
      "path": "package.journey_status",
      "schema_pointer": "#/properties/journey_status",
      "instance_paths": [
        "/journey_status"
      ],
      "label": {
        "de": "Journey-Status",
        "en": "Journey status"
      },
      "definition": {
        "de": "Optional: konsolidierter aktueller Zustand je Tumor — aktive Episode, letzte Gesamtbeurteilung, aktuelle Linie.",
        "en": "Optional: consolidated current state per tumor — active episode, last assessment, current line."
      },
      "datatype": "array<journeyStatus>",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/journey_status"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery",
      "kind": "object",
      "path": "delivery",
      "schema_pointer": "#/$defs/delivery",
      "instance_paths": [
        "/delivery"
      ],
      "label": {
        "de": "Austauschhülle (Delivery)",
        "en": "Exchange envelope (delivery)"
      },
      "definition": {
        "de": "Die Liefer- und Nutzungshülle des oPJD-Pakets: Wer liefert an wen, in welcher Rolle, auf welcher Rechtsgrundlage, zu welchem Zweck, mit welcher Gültigkeit und welchen Einschränkungen. Das Pflichtset entspricht dem Minimal-Set V1 der Spezifikation (zehn Pflichtfelder).",
        "en": "The delivery and usage envelope of an oPJD package: who delivers to whom, on which legal basis, for which purpose, with which validity and restrictions. The required set equals the specification’s V1 minimal set (ten fields)."
      },
      "rationale": {
        "de": "Ein Behandlungsverlauf existiert nicht im luftleeren Raum: Beim Austausch zwischen Institutionen — etwa vom Landeskrebsregister zurück an ein Behandlungszentrum — reicht der klinische Inhalt allein nicht aus. Nicht nur der Datensatz, auch seine Berechtigung und sein Nutzungskontext müssen interoperabel sein; die Hülle macht beides maschinenlesbar."
      },
      "obds_mapping": {
        "element": "Absender / Melder (oBDS-Meldungskopf)",
        "note": "Der oBDS kennt nur Absender- und Melder-Metadaten der Meldung. Empfänger, Übermittlungskontext, Rechtsgrundlage, Verwendungszweck und Gültigkeit haben dort keine Entsprechung — beim Datenrückfluss aus Registern ist die Hülle eine oPJD-Ergänzung."
      },
      "examples": [
        {
          "description": {
            "de": "Referenzjourneys: Forschungslieferung Erlangen → Würzburg auf Basis research_consent, permitted_use = [research, quality_assurance]."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_category",
        "opjd://0.2.0/delivery.permitted_use",
        "opjd://0.2.0/delivery.consent",
        "opjd://0.2.0/use_purpose"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.package_id",
      "kind": "field",
      "path": "delivery.package_id",
      "schema_pointer": "#/$defs/delivery/properties/package_id",
      "instance_paths": [
        "/delivery/package_id"
      ],
      "label": {
        "de": "Paket-ID",
        "en": "Package ID"
      },
      "definition": {
        "de": "Eindeutige Kennung des Datenpakets (Konvention: PKG-…) — Bezugspunkt für supersedes_package_id nachfolgender Lieferungen.",
        "en": "Unique identifier of the data package (convention: PKG-…) — referenced by supersedes_package_id of later deliveries."
      },
      "datatype": "id",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.supersedes_package_id"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.package_version",
      "kind": "field",
      "path": "delivery.package_version",
      "schema_pointer": "#/$defs/delivery/properties/package_version",
      "instance_paths": [
        "/delivery/package_version"
      ],
      "label": {
        "de": "Paketversion",
        "en": "Package version"
      },
      "definition": {
        "de": "Version dieser Lieferung (ganzzahlig, ≥ 1). Zählt Updates, Nachlieferungen und Korrekturen desselben Pakets.",
        "en": "Version of this delivery (integer, ≥ 1), counting updates, supplements and corrections of the same package."
      },
      "datatype": "integer",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.package_created_at",
      "kind": "field",
      "path": "delivery.package_created_at",
      "schema_pointer": "#/$defs/delivery/properties/package_created_at",
      "instance_paths": [
        "/delivery/package_created_at"
      ],
      "label": {
        "de": "Erstellungszeitpunkt",
        "en": "Created at"
      },
      "definition": {
        "de": "Erstellungszeitpunkt des Pakets als Zeitstempel (date-time, mit Zeitzone).",
        "en": "Creation timestamp of the package (date-time, with time zone)."
      },
      "datatype": "string",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.sending_organization",
      "kind": "field",
      "path": "delivery.sending_organization",
      "schema_pointer": "#/$defs/delivery/properties/sending_organization",
      "instance_paths": [
        "/delivery/sending_organization"
      ],
      "label": {
        "de": "Absendende Institution",
        "en": "Sending organization"
      },
      "definition": {
        "de": "Abgebende Institution der Lieferung, z. B. Landeskrebsregister oder Klinik.",
        "en": "Institution issuing the delivery, e.g. a state cancer registry or a hospital."
      },
      "datatype": "string",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.sending_unit",
      "kind": "field",
      "path": "delivery.sending_unit",
      "schema_pointer": "#/$defs/delivery/properties/sending_unit",
      "instance_paths": [
        "/delivery/sending_unit"
      ],
      "label": {
        "de": "Absendende Organisationseinheit",
        "en": "Sending unit"
      },
      "definition": {
        "de": "Konkrete Organisationseinheit des Absenders (Register, Zentrum, Abteilung).",
        "en": "Specific organizational unit of the sender (registry, center, department)."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.sending_system",
      "kind": "field",
      "path": "delivery.sending_system",
      "schema_pointer": "#/$defs/delivery/properties/sending_system",
      "instance_paths": [
        "/delivery/sending_system"
      ],
      "label": {
        "de": "Quellsystem",
        "en": "Sending system"
      },
      "definition": {
        "de": "Quellsystem der Lieferung, z. B. ONKOSTAR oder ein Registersystem.",
        "en": "Source system of the delivery, e.g. ONKOSTAR or a registry system."
      },
      "datatype": "string",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.receiving_organization",
      "kind": "field",
      "path": "delivery.receiving_organization",
      "schema_pointer": "#/$defs/delivery/properties/receiving_organization",
      "instance_paths": [
        "/delivery/receiving_organization"
      ],
      "label": {
        "de": "Empfängerinstitution",
        "en": "Receiving organization"
      },
      "definition": {
        "de": "Institution, die das Paket empfängt und an die Zweckbindung der Hülle gebunden ist.",
        "en": "Institution receiving the package, bound by the envelope’s purpose restrictions."
      },
      "datatype": "string",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.delivery_context",
      "kind": "field",
      "path": "delivery.delivery_context",
      "schema_pointer": "#/$defs/delivery/properties/delivery_context",
      "instance_paths": [
        "/delivery/delivery_context"
      ],
      "label": {
        "de": "Übermittlungsanlass",
        "en": "Delivery context"
      },
      "definition": {
        "de": "Anlass der Übermittlung, kodiert im use_purpose-Vokabular (z. B. treatment, research, registry_completion).",
        "en": "Occasion of the delivery, coded in the use_purpose vocabulary (e.g. treatment, research, registry_completion)."
      },
      "datatype": "use_purpose",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/use_purpose",
        "opjd://0.2.0/delivery.permitted_use"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.jurisdiction",
      "kind": "field",
      "path": "delivery.jurisdiction",
      "schema_pointer": "#/$defs/delivery/properties/jurisdiction",
      "instance_paths": [
        "/delivery/jurisdiction"
      ],
      "label": {
        "de": "Rechtsraum",
        "en": "Jurisdiction"
      },
      "definition": {
        "de": "Rechtsraum der Übermittlung (Land/Bundesland), z. B. DE-BY — Bezugsrahmen für legal_basis_category und jurisdiction_specific_rule.",
        "en": "Jurisdiction of the delivery (country/state), e.g. DE-BY — frame of reference for legal_basis_category and jurisdiction_specific_rule."
      },
      "datatype": "string",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_category",
        "opjd://0.2.0/delivery.jurisdiction_specific_rule"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.responsible_contact",
      "kind": "field",
      "path": "delivery.responsible_contact",
      "schema_pointer": "#/$defs/delivery/properties/responsible_contact",
      "instance_paths": [
        "/delivery/responsible_contact"
      ],
      "label": {
        "de": "Verantwortliche Stelle / Kontakt",
        "en": "Responsible contact"
      },
      "definition": {
        "de": "Verantwortliche Stelle bzw. Kontakt für Rückfragen zur Lieferung.",
        "en": "Responsible unit or contact for questions about the delivery."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.legal_basis_category",
      "kind": "field",
      "path": "delivery.legal_basis_category",
      "schema_pointer": "#/$defs/delivery/properties/legal_basis_category",
      "instance_paths": [
        "/delivery/legal_basis_category"
      ],
      "label": {
        "de": "Kategorie der Rechtsgrundlage",
        "en": "Legal basis category"
      },
      "definition": {
        "de": "Kategorie der Rechtsgrundlage, auf der dieses Paket übermittelt wird — abschließendes Vokabular mit sieben Werten. Keine juristische Vollanalyse, sondern eine pragmatische Deklaration, die den Empfänger in die Lage versetzt, die Daten korrekt einzuordnen und zu verwenden.",
        "en": "Category of the legal basis for this delivery — a closed vocabulary of seven values. A pragmatic declaration rather than a full legal analysis, enabling the receiver to classify and use the data correctly."
      },
      "rationale": {
        "de": "Die Berechtigung muss mit den Daten reisen: Ohne deklarierte Rechtsgrundlage kann der Empfänger die Nutzbarkeit einer Lieferung nicht beurteilen und muss außerhalb des Datensatzes recherchieren. Die Kategorie macht die Berechtigung maschinenlesbar und prüfbar."
      },
      "datatype": "enum (7 Werte)",
      "requirement": "required",
      "constraints_note": {
        "de": "Pflichtfeld der Austauschhülle. Details gehören in legal_basis_detail, länderspezifische Sonderregeln in jurisdiction_specific_rule."
      },
      "obds_mapping": {
        "element": null,
        "note": "Der oBDS transportiert keine Rechtsgrundlage der Übermittlung — die Meldepflicht ergibt sich implizit aus dem Landesrecht. Für Datenrückfluss und P2P-Austausch ist die explizite Deklaration eine oPJD-Ergänzung."
      },
      "examples": [
        {
          "description": {
            "de": "Referenzjourneys: research_consent für die standortübergreifende Forschungslieferung."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_detail",
        "opjd://0.2.0/delivery.jurisdiction_specific_rule",
        "opjd://0.2.0/delivery.permitted_use",
        "opjd://0.2.0/delivery.consent"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.legal_basis_category/clinical_care",
      "kind": "enum_value",
      "path": "delivery.legal_basis_category",
      "value": "clinical_care",
      "schema_pointer": "#/$defs/delivery/properties/legal_basis_category",
      "instance_paths": [
        "/delivery/legal_basis_category"
      ],
      "label": {
        "de": "Behandlungskontext",
        "en": "Clinical care"
      },
      "definition": {
        "de": "Behandlungsbezogener Datenaustausch: Die Übermittlung erfolgt im Rahmen der direkten Patientenversorgung, etwa bei Mit- oder Weiterbehandlung.",
        "en": "Care-related data exchange: the delivery happens within direct patient care, e.g. shared or continued treatment."
      },
      "rationale": {
        "de": "Der versorgungsnahe Austauschanlass braucht eine eigene Kategorie, weil hier andere Zweckbindungen und Identifikationsanforderungen gelten als bei Register- oder Forschungslieferungen."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine oBDS-Entsprechung: Der oBDS regelt die Meldung an Register, nicht den behandlungsbezogenen Austausch zwischen Einrichtungen."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/use_purpose/treatment"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.legal_basis_category/cancer_registry_law",
      "kind": "enum_value",
      "path": "delivery.legal_basis_category",
      "value": "cancer_registry_law",
      "schema_pointer": "#/$defs/delivery/properties/legal_basis_category",
      "instance_paths": [
        "/delivery/legal_basis_category"
      ],
      "label": {
        "de": "Krebsregistergesetz",
        "en": "Cancer registry law"
      },
      "definition": {
        "de": "Übermittlung auf Grundlage der Krebsregistergesetzgebung von Bund oder Land — der gesetzliche Meldeweg an das Landeskrebsregister sowie der gesetzlich geregelte Datenrückfluss an Melder.",
        "en": "Delivery based on federal or state cancer registry law — the statutory reporting route to the state cancer registry and the legally regulated data return to reporters."
      },
      "rationale": {
        "de": "Die häufigste gesetzliche Grundlage im onkologischen Datenfluss. Ihre explizite Deklaration erlaubt dem Empfänger, Registerlieferungen von einwilligungsbasierten Lieferungen zu unterscheiden — mit Folgen für consent.status (typisch not_required) und Zweckbindung."
      },
      "obds_mapping": {
        "element": null,
        "note": "Die Rechtsgrundlage ist im oBDS implizit (der Meldeweg selbst), wird aber nirgends als Datum transportiert."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.consent.status/not_required",
        "opjd://0.2.0/use_purpose/registry_completion"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.legal_basis_category/quality_assurance_regulation",
      "kind": "enum_value",
      "path": "delivery.legal_basis_category",
      "value": "quality_assurance_regulation",
      "schema_pointer": "#/$defs/delivery/properties/legal_basis_category",
      "instance_paths": [
        "/delivery/legal_basis_category"
      ],
      "label": {
        "de": "QS-Richtlinie/-Verordnung",
        "en": "Quality assurance regulation"
      },
      "definition": {
        "de": "Übermittlung auf Grundlage von Qualitätssicherungs-Richtlinien und -Verordnungen, z. B. gesetzlicher QS-Verfahren.",
        "en": "Delivery based on quality assurance directives and regulations, e.g. statutory QA procedures."
      },
      "rationale": {
        "de": "QS-Datenflüsse haben eigene Rechtsgrundlagen und enge Zweckbindungen; die eigene Kategorie hält sie von Behandlungs- und Forschungslieferungen unterscheidbar."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; Rechtsgrundlagen der Übermittlung werden im oBDS nicht transportiert."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/use_purpose/quality_assurance"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.legal_basis_category/research_consent",
      "kind": "enum_value",
      "path": "delivery.legal_basis_category",
      "value": "research_consent",
      "schema_pointer": "#/$defs/delivery/properties/legal_basis_category",
      "instance_paths": [
        "/delivery/legal_basis_category"
      ],
      "label": {
        "de": "Einwilligungsbasierte Forschung",
        "en": "Research consent"
      },
      "definition": {
        "de": "Übermittlung zu Forschungszwecken auf Grundlage einer informierten Einwilligung des Patienten (z. B. Broad Consent). Der Einwilligungsstatus selbst wird in delivery.consent geführt.",
        "en": "Delivery for research purposes based on the patient’s informed consent (e.g. broad consent). The consent status itself is carried in delivery.consent."
      },
      "rationale": {
        "de": "Einwilligungsbasierte Lieferungen stehen und fallen mit dem Consent — die Kategorie koppelt die Rechtsgrundlage explizit an den mitgeführten Einwilligungsstatus, sodass ein Widerruf maschinell Konsequenzen haben kann."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung als Rechtsgrundlage einer Lieferung; die Einwilligung selbst erscheint im oBDS nur als Meldebegründung der Registermeldung."
      },
      "examples": [
        {
          "description": {
            "de": "Beide Referenzjourneys: research_consent mit consent.status = present und Scope „standortübergreifende Forschung\"."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.consent",
        "opjd://0.2.0/delivery.consent.status",
        "opjd://0.2.0/use_purpose/research"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.legal_basis_category/other_research_basis",
      "kind": "enum_value",
      "path": "delivery.legal_basis_category",
      "value": "other_research_basis",
      "schema_pointer": "#/$defs/delivery/properties/legal_basis_category",
      "instance_paths": [
        "/delivery/legal_basis_category"
      ],
      "label": {
        "de": "Andere Forschungsgrundlage",
        "en": "Other research basis"
      },
      "definition": {
        "de": "Forschungsübermittlung ohne individuelle Einwilligung, z. B. auf Grundlage eines Ethikvotums oder einer gesetzlichen Forschungsklausel.",
        "en": "Research delivery without individual consent, e.g. based on an ethics vote or a statutory research clause."
      },
      "rationale": {
        "de": "Nicht jede legitime Forschung ist einwilligungsbasiert. Die eigene Kategorie verhindert, dass solche Lieferungen fälschlich als einwilligungslos-unzulässig gelesen werden — legal_basis_detail benennt die konkrete Grundlage."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; Rechtsgrundlagen der Übermittlung werden im oBDS nicht transportiert."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_detail",
        "opjd://0.2.0/use_purpose/research"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.legal_basis_category/contractual_data_transfer",
      "kind": "enum_value",
      "path": "delivery.legal_basis_category",
      "value": "contractual_data_transfer",
      "schema_pointer": "#/$defs/delivery/properties/legal_basis_category",
      "instance_paths": [
        "/delivery/legal_basis_category"
      ],
      "label": {
        "de": "Vertragliche Datenübertragung",
        "en": "Contractual data transfer"
      },
      "definition": {
        "de": "Übermittlung auf vertraglicher Grundlage, z. B. Kooperations- oder Auftragsverarbeitungsverträge zwischen Einrichtungen.",
        "en": "Delivery on a contractual basis, e.g. cooperation or data processing agreements between institutions."
      },
      "rationale": {
        "de": "Verbund- und Kooperationsszenarien stützen sich häufig auf Verträge statt auf Gesetz oder Einwilligung; der Vertrag als deklarierte Grundlage macht die Kette für den Empfänger nachvollziehbar."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; vertragliche Austauschbeziehungen liegen außerhalb des oBDS-Meldewegs."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_detail"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.legal_basis_category/jurisdiction_specific_exception",
      "kind": "enum_value",
      "path": "delivery.legal_basis_category",
      "value": "jurisdiction_specific_exception",
      "schema_pointer": "#/$defs/delivery/properties/legal_basis_category",
      "instance_paths": [
        "/delivery/legal_basis_category"
      ],
      "label": {
        "de": "Länderspezifische Ausnahme",
        "en": "Jurisdiction-specific exception"
      },
      "definition": {
        "de": "Übermittlung auf Grundlage einer länderspezifischen Sonderregel — etwa der Abruf behandlungsbezogener Daten über die 12 Monate seit dem letzten Kontakt hinaus für die Nachsorge nach Strahlentherapie. Die konkrete Regel wird in jurisdiction_specific_rule benannt.",
        "en": "Delivery based on a jurisdiction-specific exception — e.g. retrieving care-related data beyond the 12 months since last contact for follow-up after radiotherapy. The concrete rule is named in jurisdiction_specific_rule."
      },
      "rationale": {
        "de": "Landesrecht kennt Sonderfälle, die kein bundesweites Vokabular abdecken kann. Statt sie zu verschweigen, deklariert das Paket die Ausnahme samt Regel — der Empfänger kann die Berechtigung nachvollziehen."
      },
      "constraints_note": {
        "de": "jurisdiction_specific_rule sollte bei dieser Kategorie gefüllt sein; jurisdiction nennt den Rechtsraum, in dem die Ausnahme gilt."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; landesrechtliche Abrufregeln liegen außerhalb des oBDS."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.jurisdiction_specific_rule",
        "opjd://0.2.0/delivery.jurisdiction"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.legal_basis_detail",
      "kind": "field",
      "path": "delivery.legal_basis_detail",
      "schema_pointer": "#/$defs/delivery/properties/legal_basis_detail",
      "instance_paths": [
        "/delivery/legal_basis_detail"
      ],
      "label": {
        "de": "Rechtsgrundlage im Detail",
        "en": "Legal basis detail"
      },
      "definition": {
        "de": "Genauere Beschreibung der Rechtsgrundlage in Freitext, z. B. konkrete Landesrechtsnorm, Einwilligungsversion oder Vertrag.",
        "en": "Free-text detail of the legal basis, e.g. the specific state law, consent version or contract."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_category"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.jurisdiction_specific_rule",
      "kind": "field",
      "path": "delivery.jurisdiction_specific_rule",
      "schema_pointer": "#/$defs/delivery/properties/jurisdiction_specific_rule",
      "instance_paths": [
        "/delivery/jurisdiction_specific_rule"
      ],
      "label": {
        "de": "Länderspezifische Sonderregel",
        "en": "Jurisdiction-specific rule"
      },
      "definition": {
        "de": "Benennung der länderspezifischen Sonderregel, auf die sich die Lieferung stützt (z. B. erweiterter Nachsorge-Abruf nach Strahlentherapie), damit der Empfänger die Berechtigung nachvollziehen kann.",
        "en": "Names the jurisdiction-specific rule this delivery relies on (e.g. extended follow-up retrieval after radiotherapy) so the receiver can trace the entitlement."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_category/jurisdiction_specific_exception"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.permitted_use",
      "kind": "field",
      "path": "delivery.permitted_use",
      "schema_pointer": "#/$defs/delivery/properties/permitted_use",
      "instance_paths": [
        "/delivery/permitted_use"
      ],
      "label": {
        "de": "Erlaubte Verwendungszwecke",
        "en": "Permitted uses"
      },
      "definition": {
        "de": "Abschließende Liste der Verwendungszwecke, für die der Empfänger die Daten dieses Pakets nutzen darf (use_purpose-Vokabular, mindestens ein Eintrag). Zwecke außerhalb dieser Liste sind durch die Lieferung nicht gedeckt.",
        "en": "Closed list of purposes for which the receiver may use this package’s data (use_purpose vocabulary, at least one entry). Purposes outside this list are not covered by the delivery."
      },
      "rationale": {
        "de": "Zweckbindung wird maschinenlesbar: Statt die erlaubte Nutzung in Begleitschreiben zu verstecken, trägt das Paket sie selbst. Empfangende Systeme können Nutzungen gegen die Liste prüfen — die Voraussetzung dafür, dass Datenflüsse auditierbar werden."
      },
      "datatype": "array<use_purpose> (minItems 1)",
      "requirement": "required",
      "constraints_note": {
        "de": "Pflichtfeld, minItems 1. prohibited_use kann einzelne Zwecke zusätzlich explizit ausschließen; im Zweifel gilt die restriktivere Angabe."
      },
      "obds_mapping": {
        "element": null,
        "note": "Dokumentierte Lücke: Der oBDS kennt keine Zweckbindungs-Deklaration der Übermittlung."
      },
      "examples": [
        {
          "description": {
            "de": "Referenzjourneys: permitted_use = [research, quality_assurance]."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/use_purpose",
        "opjd://0.2.0/delivery.prohibited_use",
        "opjd://0.2.0/delivery.legal_basis_category"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.prohibited_use",
      "kind": "field",
      "path": "delivery.prohibited_use",
      "schema_pointer": "#/$defs/delivery/properties/prohibited_use",
      "instance_paths": [
        "/delivery/prohibited_use"
      ],
      "label": {
        "de": "Ausgeschlossene Verwendungszwecke",
        "en": "Prohibited uses"
      },
      "definition": {
        "de": "Explizit ausgeschlossene Verwendungszwecke (use_purpose-Vokabular). Ergänzt permitted_use um die Möglichkeit, einzelne Nutzungen positiv zu verbieten — etwa Forschung bei einer rein versorgungsbezogenen Lieferung.",
        "en": "Explicitly excluded purposes (use_purpose vocabulary). Complements permitted_use by positively forbidding specific uses — e.g. research on a purely care-related delivery."
      },
      "rationale": {
        "de": "Ein explizites Verbot ist stärker als das bloße Fehlen einer Erlaubnis: Es transportiert Einschränkungen — etwa aus Teileinwilligungen oder Widersprüchen — so, dass empfangende Systeme sie durchsetzen können, statt sie im Freitext von restriction_note zu verlieren."
      },
      "datatype": "array<use_purpose>",
      "requirement": "optional",
      "constraints_note": {
        "de": "Optional. Bei Überschneidung mit permitted_use gilt die restriktivere Angabe (Validator-Empfehlung)."
      },
      "obds_mapping": {
        "element": null,
        "note": "Dokumentierte Lücke: Der oBDS kennt keine Zweckbindungs-Deklaration der Übermittlung."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.permitted_use",
        "opjd://0.2.0/use_purpose",
        "opjd://0.2.0/delivery.restriction_note"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.redisclosure_allowed",
      "kind": "field",
      "path": "delivery.redisclosure_allowed",
      "schema_pointer": "#/$defs/delivery/properties/redisclosure_allowed",
      "instance_paths": [
        "/delivery/redisclosure_allowed"
      ],
      "label": {
        "de": "Weitergabe an Dritte erlaubt",
        "en": "Redisclosure allowed"
      },
      "definition": {
        "de": "Darf der Empfänger die Daten an Dritte weitergeben? Ohne Angabe ist keine Weitergabe zugesichert.",
        "en": "May the receiver pass the data on to third parties? If absent, no redisclosure is granted."
      },
      "datatype": "boolean",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.valid_from",
      "kind": "field",
      "path": "delivery.valid_from",
      "schema_pointer": "#/$defs/delivery/properties/valid_from",
      "instance_paths": [
        "/delivery/valid_from"
      ],
      "label": {
        "de": "Gültig ab",
        "en": "Valid from"
      },
      "definition": {
        "de": "Beginn der Gültigkeit der Berechtigung bzw. Freigabe, auf der diese Lieferung beruht.",
        "en": "Start of validity of the entitlement or release underlying this delivery."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.valid_until",
      "kind": "field",
      "path": "delivery.valid_until",
      "schema_pointer": "#/$defs/delivery/properties/valid_until",
      "instance_paths": [
        "/delivery/valid_until"
      ],
      "label": {
        "de": "Gültig bis",
        "en": "Valid until"
      },
      "definition": {
        "de": "Ende der Gültigkeit der Berechtigung (Verfallslogik): Nach diesem Datum ist die Nutzung nicht mehr gedeckt bzw. eine Auffrischung erforderlich.",
        "en": "End of validity of the entitlement (expiry logic): after this date, use is no longer covered or a refresh is required."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.refresh_required_after"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.last_verified_at",
      "kind": "field",
      "path": "delivery.last_verified_at",
      "schema_pointer": "#/$defs/delivery/properties/last_verified_at",
      "instance_paths": [
        "/delivery/last_verified_at"
      ],
      "label": {
        "de": "Berechtigung zuletzt geprüft am",
        "en": "Last verified at"
      },
      "definition": {
        "de": "Datum der letzten Prüfung der Berechtigung durch den Absender.",
        "en": "Date the sender last verified the entitlement."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.refresh_required_after",
      "kind": "field",
      "path": "delivery.refresh_required_after",
      "schema_pointer": "#/$defs/delivery/properties/refresh_required_after",
      "instance_paths": [
        "/delivery/refresh_required_after"
      ],
      "label": {
        "de": "Auffrischung erforderlich nach",
        "en": "Refresh required after"
      },
      "definition": {
        "de": "Zeitpunkt, nach dem eine Auffrischung der Lieferung bzw. der Berechtigungsprüfung erforderlich ist.",
        "en": "Date after which the delivery or its entitlement check must be refreshed."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.supersedes_package_id",
      "kind": "field",
      "path": "delivery.supersedes_package_id",
      "schema_pointer": "#/$defs/delivery/properties/supersedes_package_id",
      "instance_paths": [
        "/delivery/supersedes_package_id"
      ],
      "label": {
        "de": "Ersetzt Paket",
        "en": "Supersedes package"
      },
      "definition": {
        "de": "Referenz auf ein vorangegangenes Paket, das durch diese Lieferung ersetzt wird — macht Korrektur- und Nachlieferungsketten nachvollziehbar.",
        "en": "Reference to a preceding package replaced by this delivery — makes correction and update chains traceable."
      },
      "datatype": "id",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.package_id",
        "opjd://0.2.0/delivery.package_version"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.restriction_flag",
      "kind": "field",
      "path": "delivery.restriction_flag",
      "schema_pointer": "#/$defs/delivery/properties/restriction_flag",
      "instance_paths": [
        "/delivery/restriction_flag"
      ],
      "label": {
        "de": "Einschränkungsmarker",
        "en": "Restriction flag"
      },
      "definition": {
        "de": "Marker: Für dieses Paket besteht eine besondere Einschränkung. Details stehen in restriction_note.",
        "en": "Marker: a special restriction applies to this package. Details in restriction_note."
      },
      "datatype": "boolean",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.restriction_note"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.restriction_note",
      "kind": "field",
      "path": "delivery.restriction_note",
      "schema_pointer": "#/$defs/delivery/properties/restriction_note",
      "instance_paths": [
        "/delivery/restriction_note"
      ],
      "label": {
        "de": "Einschränkungsdetails",
        "en": "Restriction note"
      },
      "definition": {
        "de": "Freitext-Details einer besonderen Einschränkung, z. B. „nur QS, keine Forschung\".",
        "en": "Free-text details of a special restriction, e.g. “QA only, no research”."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.restriction_flag",
        "opjd://0.2.0/delivery.prohibited_use"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.local_reconciliation_allowed",
      "kind": "field",
      "path": "delivery.local_reconciliation_allowed",
      "schema_pointer": "#/$defs/delivery/properties/local_reconciliation_allowed",
      "instance_paths": [
        "/delivery/local_reconciliation_allowed"
      ],
      "label": {
        "de": "Lokaler Abgleich erlaubt",
        "en": "Local reconciliation allowed"
      },
      "definition": {
        "de": "Darf der Empfänger die Daten in den lokalen Bestand übernehmen und mit ihm abgleichen? Zentral für Register-Rückflüsse, die nur der Einsicht dienen sollen.",
        "en": "May the receiver merge the data into and reconcile it with the local records? Central for registry returns intended for viewing only."
      },
      "datatype": "boolean",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/use_purpose/data_reconciliation",
        "opjd://0.2.0/use_purpose/internal_reconciliation_only"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.consent",
      "kind": "object",
      "path": "delivery.consent",
      "schema_pointer": "#/$defs/consent",
      "instance_paths": [
        "/delivery/consent"
      ],
      "label": {
        "de": "Consent (Einwilligung/Freigabe)",
        "en": "Consent"
      },
      "definition": {
        "de": "Einwilligungs- und Freigabeinformation auf Patientenebene: Status, Umfang, Gültigkeit, Widerruf. Während Rechtsgrundlage und Verwendungszweck auf Paketebene gelten, kann der Consent davon abweichen — er wird deshalb eigenständig geführt.",
        "en": "Patient-level consent and release information: status, scope, validity, revocation. While legal basis and purpose apply at package level, consent may deviate and is therefore carried separately."
      },
      "rationale": {
        "de": "FHIR kennt eine eigene Consent-Ressource, die MII ein operationalisiertes Consent-Modul. Das oPJD orientiert sich an diesem Denken, setzt aber bewusst auf eine pragmatische, deklarative Transportebene — keine juristische Ontologie, sondern eine für den Empfänger handlungsleitende Information."
      },
      "constraints_note": {
        "de": "Optional, aber empfohlen (das Minimal-Set V1 empfiehlt consent.status). Innerhalb des Objekts ist nur status Pflicht."
      },
      "obds_mapping": {
        "element": "Meldung/Meldebegruendung",
        "note": "Der oBDS begründet nur den Meldeweg an das Register; eine differenzierte Consent-Deklaration (Status, Umfang, Gültigkeit, Widerruf) für den Austausch fehlt dort."
      },
      "examples": [
        {
          "description": {
            "de": "Referenzjourneys: status = present mit scope „standortübergreifende Forschung\"."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.consent.status",
        "opjd://0.2.0/delivery.legal_basis_category"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.consent.status",
      "kind": "field",
      "path": "delivery.consent.status",
      "schema_pointer": "#/$defs/consent/properties/status",
      "instance_paths": [
        "/delivery/consent/status"
      ],
      "label": {
        "de": "Einwilligungsstatus",
        "en": "Consent status"
      },
      "definition": {
        "de": "Status der Einwilligung bzw. Freigabe des Patienten für diese Lieferung: present, not_present, revoked, unknown oder not_required.",
        "en": "Status of the patient’s consent or release for this delivery: present, not_present, revoked, unknown or not_required."
      },
      "rationale": {
        "de": "Der Empfänger muss den Einwilligungsstand kennen, ohne rückfragen zu müssen — insbesondere revoked und not_required verändern die Handlungsoptionen grundlegend. Der eigene unknown-Wert macht fehlendes Wissen explizit, statt es hinter fehlenden Feldern zu verstecken."
      },
      "datatype": "enum (5 Werte)",
      "requirement": "required",
      "constraints_note": {
        "de": "Pflichtfeld innerhalb von consent. not_required verweist auf eine gesetzliche Grundlage — die legal_basis_category sollte dann keine Einwilligungsbasis sein."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.consent.status/revoked",
        "opjd://0.2.0/delivery.consent.status/not_required",
        "opjd://0.2.0/delivery.legal_basis_category"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.consent.status/present",
      "kind": "enum_value",
      "path": "delivery.consent.status",
      "value": "present",
      "schema_pointer": "#/$defs/consent/properties/status",
      "instance_paths": [
        "/delivery/consent/status"
      ],
      "label": {
        "de": "liegt vor",
        "en": "Present"
      },
      "definition": {
        "de": "Eine wirksame Einwilligung bzw. Freigabe des Patienten liegt vor; Umfang und Gültigkeit stehen in scope, valid_from und valid_until.",
        "en": "A valid patient consent or release exists; scope and validity are given in scope, valid_from and valid_until."
      },
      "rationale": {
        "de": "Die explizite Positivangabe erlaubt empfangenden Systemen, einwilligungsbasierte Nutzungen (z. B. research bei research_consent) automatisiert freizuschalten, statt die Lage aus fehlenden Warnsignalen zu erschließen."
      },
      "obds_mapping": {
        "element": "Meldung/Meldebegruendung",
        "note": "Nahestehend: die einwilligungsbasierte Meldebegründung; ein transportfähiger Consent-Status je Lieferung fehlt im oBDS."
      },
      "examples": [
        {
          "description": {
            "de": "Referenzjourneys: consent.status = present für die Forschungslieferung."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.consent.scope",
        "opjd://0.2.0/delivery.legal_basis_category/research_consent"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.consent.status/not_present",
      "kind": "enum_value",
      "path": "delivery.consent.status",
      "value": "not_present",
      "schema_pointer": "#/$defs/consent/properties/status",
      "instance_paths": [
        "/delivery/consent/status"
      ],
      "label": {
        "de": "liegt nicht vor",
        "en": "Not present"
      },
      "definition": {
        "de": "Es liegt keine Einwilligung vor. Die Lieferung stützt sich dann auf eine andere Rechtsgrundlage (z. B. Krebsregistergesetz) — oder ihre Nutzung ist entsprechend eingeschränkt.",
        "en": "No consent exists. The delivery then rests on another legal basis (e.g. cancer registry law), or its use is restricted accordingly."
      },
      "rationale": {
        "de": "Unterscheidet das dokumentierte Nicht-Vorliegen vom bloßen Nichtwissen (unknown) — zwei Lagen mit unterschiedlichen Konsequenzen für den Empfänger."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; das dokumentierte Fehlen einer Einwilligung ist im Meldeweg nicht vorgesehen."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.consent.status/unknown",
        "opjd://0.2.0/delivery.legal_basis_category/cancer_registry_law"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.consent.status/revoked",
      "kind": "enum_value",
      "path": "delivery.consent.status",
      "value": "revoked",
      "schema_pointer": "#/$defs/consent/properties/status",
      "instance_paths": [
        "/delivery/consent/status"
      ],
      "label": {
        "de": "widerrufen",
        "en": "Revoked"
      },
      "definition": {
        "de": "Eine zuvor erteilte Einwilligung wurde widerrufen. Das Widerrufsdatum steht in revocation_date; die weitere Nutzung richtet sich nach Rechtsgrundlage und Widerrufsumfang.",
        "en": "A previously granted consent was revoked. The revocation date is in revocation_date; further use depends on legal basis and revocation scope."
      },
      "rationale": {
        "de": "Der Widerruf ist ein aktives Ereignis mit Sperrwirkung — er muss den Empfänger maschinenlesbar erreichen, sonst nutzt dieser Daten weiter, deren Grundlage entfallen ist."
      },
      "obds_mapping": {
        "element": "Meldung/Meldebegruendung",
        "note": "Nahestehend: der Patientenwiderspruch als Meldebegründung; Widerrufsdatum und -umfang fehlen im oBDS."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.consent.revocation_date"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.consent.status/unknown",
      "kind": "enum_value",
      "path": "delivery.consent.status",
      "value": "unknown",
      "schema_pointer": "#/$defs/consent/properties/status",
      "instance_paths": [
        "/delivery/consent/status"
      ],
      "label": {
        "de": "unbekannt",
        "en": "Unknown"
      },
      "definition": {
        "de": "Der Einwilligungsstatus ist dem Absender nicht bekannt — eine ehrliche Lücke statt einer stillschweigenden Annahme.",
        "en": "The consent status is unknown to the sender — an honest gap instead of a silent assumption."
      },
      "rationale": {
        "de": "Zwingt zur expliziten Aussage: Ein System, das den Status nicht kennt, liefert unknown, statt present zu raten — der Empfänger kann dann konservativ handeln."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; eine unbekannte Einwilligungslage ist im Meldeweg nicht deklarierbar."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.consent.status/not_present"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.consent.status/not_required",
      "kind": "enum_value",
      "path": "delivery.consent.status",
      "value": "not_required",
      "schema_pointer": "#/$defs/consent/properties/status",
      "instance_paths": [
        "/delivery/consent/status"
      ],
      "label": {
        "de": "nicht erforderlich",
        "en": "Not required"
      },
      "definition": {
        "de": "Für diese Übermittlung ist keine Einwilligung erforderlich, weil eine gesetzliche Grundlage trägt — z. B. die Meldepflicht nach Krebsregistergesetz.",
        "en": "No consent is required for this delivery because a statutory basis applies — e.g. mandatory reporting under cancer registry law."
      },
      "rationale": {
        "de": "Verhindert, dass gesetzlich gedeckte Lieferungen fälschlich als einwilligungslos (not_present) erscheinen und unnötig blockiert werden."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; im Registerweg macht die gesetzliche Meldepflicht die Frage gegenstandslos — beim P2P-Austausch muss sie deklariert werden."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_category/cancer_registry_law"
      ]
    },
    {
      "id": "opjd://0.2.0/delivery.consent.scope",
      "kind": "field",
      "path": "delivery.consent.scope",
      "schema_pointer": "#/$defs/consent/properties/scope",
      "instance_paths": [
        "/delivery/consent/scope"
      ],
      "label": {
        "de": "Einwilligungsumfang",
        "en": "Consent scope"
      },
      "definition": {
        "de": "Umfang der Einwilligung in Freitext, z. B. Versorgung, Forschung, standortübergreifend.",
        "en": "Scope of the consent as free text, e.g. care, research, cross-site."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.consent.valid_from",
      "kind": "field",
      "path": "delivery.consent.valid_from",
      "schema_pointer": "#/$defs/consent/properties/valid_from",
      "instance_paths": [
        "/delivery/consent/valid_from"
      ],
      "label": {
        "de": "Einwilligung gültig ab",
        "en": "Consent valid from"
      },
      "definition": {
        "de": "Beginn der Gültigkeit der Einwilligung.",
        "en": "Start of the consent’s validity."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.consent.valid_until",
      "kind": "field",
      "path": "delivery.consent.valid_until",
      "schema_pointer": "#/$defs/consent/properties/valid_until",
      "instance_paths": [
        "/delivery/consent/valid_until"
      ],
      "label": {
        "de": "Einwilligung gültig bis",
        "en": "Consent valid until"
      },
      "definition": {
        "de": "Ende der Gültigkeit der Einwilligung.",
        "en": "End of the consent’s validity."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/delivery.consent.revocation_date",
      "kind": "field",
      "path": "delivery.consent.revocation_date",
      "schema_pointer": "#/$defs/consent/properties/revocation_date",
      "instance_paths": [
        "/delivery/consent/revocation_date"
      ],
      "label": {
        "de": "Widerrufsdatum",
        "en": "Revocation date"
      },
      "definition": {
        "de": "Datum des Widerrufs der Einwilligung — gehört zu status = revoked.",
        "en": "Date the consent was revoked — accompanies status = revoked."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.consent.status/revoked"
      ]
    },
    {
      "id": "opjd://0.2.0/patient",
      "kind": "object",
      "path": "patient",
      "schema_pointer": "#/$defs/patient",
      "instance_paths": [
        "/patient"
      ],
      "label": {
        "de": "Patient",
        "en": "Patient"
      },
      "definition": {
        "de": "Die zentrale Bezugsperson des Pakets. Bewusst schlank: stabile Kennung samt Kennungsart (pseudonym/identified), optional Geburtsdatum, Geschlecht und unveränderte oBDS-Stammdaten. Die klinische Information hängt an Tumoren, Ereignissen und Episoden — nicht am Patientenobjekt.",
        "en": "The package’s central subject. Deliberately lean: a stable identifier with its kind (pseudonym/identified), optionally birth date, sex and unaltered oBDS master data. Clinical information lives in tumors, events and episodes — not in the patient object."
      },
      "rationale": {
        "de": "Ein Paket transportiert genau einen Patienten mit seiner konsolidierten Journey — im Gegensatz zum oBDS-Meldungsstapel, in dem die Patientenidentität über Sender hinweg fragil ist. Ob pseudonymisiert oder identifiziert geliefert wird, entscheiden Einsatzkontext und Rechtsgrundlage; das Modell erzwingt keine Identifikationstiefe."
      },
      "obds_mapping": {
        "element": "Patient/Patienten_Stammdaten",
        "note": "Die Stammdaten können unverändert als obds-Nutzlast mitgeführt werden; das oPJD selbst hält die Identität bewusst minimal."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/patient.patient_id",
        "opjd://0.2.0/patient.id_kind",
        "opjd://0.2.0/delivery.consent"
      ]
    },
    {
      "id": "opjd://0.2.0/patient.patient_id",
      "kind": "field",
      "path": "patient.patient_id",
      "schema_pointer": "#/$defs/patient/properties/patient_id",
      "instance_paths": [
        "/patient/patient_id"
      ],
      "label": {
        "de": "Patienten-ID",
        "en": "Patient ID"
      },
      "definition": {
        "de": "Stabile Kennung des Patienten innerhalb des Pakets — Pseudonym oder identifizierende ID gemäß id_kind.",
        "en": "Stable patient identifier within the package — a pseudonym or an identifying ID according to id_kind."
      },
      "datatype": "id",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/patient.id_kind",
        "opjd://0.2.0/id"
      ]
    },
    {
      "id": "opjd://0.2.0/patient.id_kind",
      "kind": "field",
      "path": "patient.id_kind",
      "schema_pointer": "#/$defs/patient/properties/id_kind",
      "instance_paths": [
        "/patient/id_kind"
      ],
      "label": {
        "de": "Art der Patientenkennung",
        "en": "Identifier kind"
      },
      "definition": {
        "de": "Art der Patientenkennung: pseudonym (pseudonymisiert) oder identified (identifiziert) — je nach Einsatzkontext und Rechtsgrundlage der Lieferung.",
        "en": "Kind of patient identifier: pseudonym (pseudonymized) or identified — depending on the delivery’s context and legal basis."
      },
      "datatype": "enum (2 Werte)",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_category"
      ]
    },
    {
      "id": "opjd://0.2.0/patient.id_kind/pseudonym",
      "kind": "enum_value",
      "path": "patient.id_kind",
      "value": "pseudonym",
      "schema_pointer": "#/$defs/patient/properties/id_kind",
      "instance_paths": [
        "/patient/id_kind"
      ],
      "label": {
        "de": "pseudonymisiert",
        "en": "Pseudonymized"
      },
      "definition": {
        "de": "Die Patientenkennung ist ein Pseudonym; eine Re-Identifikation ist nur über die pseudonymisierende Stelle möglich. Typisch für Forschungs- und QS-Lieferungen.",
        "en": "The patient identifier is a pseudonym; re-identification is only possible via the pseudonymization service. Typical for research and QA deliveries."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/patient.id_kind/identified",
      "kind": "enum_value",
      "path": "patient.id_kind",
      "value": "identified",
      "schema_pointer": "#/$defs/patient/properties/id_kind",
      "instance_paths": [
        "/patient/id_kind"
      ],
      "label": {
        "de": "identifiziert",
        "en": "Identified"
      },
      "definition": {
        "de": "Die Patientenkennung identifiziert den Patienten direkt — nur in Versorgungskontexten mit entsprechender Rechtsgrundlage.",
        "en": "The identifier directly identifies the patient — only in care contexts with a matching legal basis."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/patient.birth_date",
      "kind": "field",
      "path": "patient.birth_date",
      "schema_pointer": "#/$defs/patient/properties/birth_date",
      "instance_paths": [
        "/patient/birth_date"
      ],
      "label": {
        "de": "Geburtsdatum",
        "en": "Birth date"
      },
      "definition": {
        "de": "Geburtsdatum des Patienten; bei pseudonymisierten Lieferungen ggf. bewusst weggelassen oder vergröbert.",
        "en": "The patient’s birth date; may be deliberately omitted or coarsened in pseudonymized deliveries."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/patient.sex",
      "kind": "field",
      "path": "patient.sex",
      "schema_pointer": "#/$defs/patient/properties/sex",
      "instance_paths": [
        "/patient/sex"
      ],
      "label": {
        "de": "Geschlecht",
        "en": "Sex"
      },
      "definition": {
        "de": "Geschlecht nach oBDS-Vokabular: M (männlich), W (weiblich), D (divers), U (unbekannt).",
        "en": "Sex per oBDS vocabulary: M (male), W (female), D (diverse), U (unknown)."
      },
      "datatype": "enum (4 Werte)",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/patient.sex/M",
      "kind": "enum_value",
      "path": "patient.sex",
      "value": "M",
      "schema_pointer": "#/$defs/patient/properties/sex",
      "instance_paths": [
        "/patient/sex"
      ],
      "label": {
        "de": "männlich",
        "en": "Male"
      },
      "definition": {
        "de": "Geschlecht männlich (oBDS-Vokabular).",
        "en": "Male (oBDS vocabulary)."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/patient.sex/W",
      "kind": "enum_value",
      "path": "patient.sex",
      "value": "W",
      "schema_pointer": "#/$defs/patient/properties/sex",
      "instance_paths": [
        "/patient/sex"
      ],
      "label": {
        "de": "weiblich",
        "en": "Female"
      },
      "definition": {
        "de": "Geschlecht weiblich (oBDS-Vokabular).",
        "en": "Female (oBDS vocabulary)."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/patient.sex/D",
      "kind": "enum_value",
      "path": "patient.sex",
      "value": "D",
      "schema_pointer": "#/$defs/patient/properties/sex",
      "instance_paths": [
        "/patient/sex"
      ],
      "label": {
        "de": "divers",
        "en": "Diverse"
      },
      "definition": {
        "de": "Geschlecht divers (oBDS-Vokabular).",
        "en": "Diverse (oBDS vocabulary)."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/patient.sex/U",
      "kind": "enum_value",
      "path": "patient.sex",
      "value": "U",
      "schema_pointer": "#/$defs/patient/properties/sex",
      "instance_paths": [
        "/patient/sex"
      ],
      "label": {
        "de": "unbekannt",
        "en": "Unknown"
      },
      "definition": {
        "de": "Geschlecht unbekannt (oBDS-Vokabular).",
        "en": "Unknown (oBDS vocabulary)."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/patient.obds",
      "kind": "field",
      "path": "patient.obds",
      "schema_pointer": "#/$defs/patient/properties/obds",
      "instance_paths": [
        "/patient/obds"
      ],
      "label": {
        "de": "oBDS-Stammdaten-Nutzlast",
        "en": "oBDS master data payload"
      },
      "definition": {
        "de": "Optionale unveränderte oBDS-Stammdaten-Nutzlast des Patienten.",
        "en": "Optional unaltered oBDS master data payload of the patient."
      },
      "datatype": "object",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.obds"
      ]
    },
    {
      "id": "opjd://0.2.0/tumor",
      "kind": "object",
      "path": "tumor",
      "schema_pointer": "#/$defs/tumor",
      "instance_paths": [
        "/tumors/*"
      ],
      "label": {
        "de": "Tumor / Entität",
        "en": "Tumor / entity"
      },
      "definition": {
        "de": "Eine konkrete Tumorerkrankung des Patienten — der Anker, auf den sich Ereignisse, Episoden und der Journey-Status per tumor_ref beziehen. Mehrere Tumoren pro Patient sind möglich. Kern ist die ICD-10-Diagnose mit Diagnosedatum, optional ICD-O-Morphologie und Seitenlokalisation.",
        "en": "One concrete tumor disease of the patient — the anchor that events, episodes and journey status reference via tumor_ref. Multiple tumors per patient are possible. Its core is the ICD-10 diagnosis with diagnosis date, optionally ICD-O morphology and laterality."
      },
      "rationale": {
        "de": "Bei Patienten mit mehreren Tumoren entscheidet erst die explizite Entität, welche Maßnahme zu welcher Erkrankung gehört — genau hier scheitert die oBDS-Behauptung Stellung_OP: Bei zwei Tumoren oder zwei Eingriffen ist sie unauflösbar. Die verpflichtende tumor_id ist Zutat 1 der Secret Sauce: Man kann nur auf das zeigen, was eine Adresse hat."
      },
      "obds_mapping": {
        "element": "Meldung/Tumorzuordnung",
        "note": "Die oBDS-Tumorzuordnung liefert Diagnose und Tumor-ID je Meldung; das oPJD konsolidiert daraus eine paketweite Entität mit stabiler Adresse."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: TU-2025-001 mit C34.1 und Morphologie 8140/3."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/tumor.tumor_id",
        "opjd://0.2.0/tumor.icd10",
        "opjd://0.2.0/event.tumor_ref",
        "opjd://0.2.0/episode.tumor_ref"
      ]
    },
    {
      "id": "opjd://0.2.0/tumor.tumor_id",
      "kind": "field",
      "path": "tumor.tumor_id",
      "schema_pointer": "#/$defs/tumor/properties/tumor_id",
      "instance_paths": [
        "/tumors/*/tumor_id"
      ],
      "label": {
        "de": "Tumor-ID",
        "en": "Tumor ID"
      },
      "definition": {
        "de": "Stabile Kennung der Tumorentität innerhalb des Pakets (Konvention: TU-…) — Ziel aller tumor_ref-Verweise.",
        "en": "Stable identifier of the tumor entity within the package (convention: TU-…) — target of all tumor_ref references."
      },
      "datatype": "id",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/id",
        "opjd://0.2.0/event.tumor_ref"
      ]
    },
    {
      "id": "opjd://0.2.0/tumor.icd_o_morphology",
      "kind": "field",
      "path": "tumor.icd_o_morphology",
      "schema_pointer": "#/$defs/tumor/properties/icd_o_morphology",
      "instance_paths": [
        "/tumors/*/icd_o_morphology"
      ],
      "label": {
        "de": "ICD-O-Morphologie",
        "en": "ICD-O morphology"
      },
      "definition": {
        "de": "ICD-O-3-Morphologie des Tumors, z. B. 8140/3.",
        "en": "ICD-O-3 morphology of the tumor, e.g. 8140/3."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/tumor.diagnosis_date",
      "kind": "field",
      "path": "tumor.diagnosis_date",
      "schema_pointer": "#/$defs/tumor/properties/diagnosis_date",
      "instance_paths": [
        "/tumors/*/diagnosis_date"
      ],
      "label": {
        "de": "Diagnosedatum",
        "en": "Diagnosis date"
      },
      "definition": {
        "de": "Datum der Diagnosestellung des Tumors; die Genauigkeit kann über diagnosis_date_precision angegeben werden.",
        "en": "Date of the tumor diagnosis; precision may be given via diagnosis_date_precision."
      },
      "datatype": "string",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/tumor.diagnosis_date_precision"
      ]
    },
    {
      "id": "opjd://0.2.0/tumor.diagnosis_date_precision",
      "kind": "field",
      "path": "tumor.diagnosis_date_precision",
      "schema_pointer": "#/$defs/tumor/properties/diagnosis_date_precision",
      "instance_paths": [
        "/tumors/*/diagnosis_date_precision"
      ],
      "label": {
        "de": "Genauigkeit des Diagnosedatums",
        "en": "Diagnosis date precision"
      },
      "definition": {
        "de": "Genauigkeit des Diagnosedatums nach oBDS-Konvention (E/T/M/J).",
        "en": "Precision of the diagnosis date per oBDS convention (E/T/M/J)."
      },
      "datatype": "date_precision",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/date_precision"
      ]
    },
    {
      "id": "opjd://0.2.0/tumor.laterality",
      "kind": "field",
      "path": "tumor.laterality",
      "schema_pointer": "#/$defs/tumor/properties/laterality",
      "instance_paths": [
        "/tumors/*/laterality"
      ],
      "label": {
        "de": "Seitenlokalisation",
        "en": "Laterality"
      },
      "definition": {
        "de": "Seitenlokalisation des Tumors nach oBDS-Vokabular (z. B. L, R, B, M, U).",
        "en": "Laterality of the tumor per oBDS vocabulary (e.g. L, R, B, M, U)."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/tumor.obds",
      "kind": "field",
      "path": "tumor.obds",
      "schema_pointer": "#/$defs/tumor/properties/obds",
      "instance_paths": [
        "/tumors/*/obds"
      ],
      "label": {
        "de": "oBDS-Nutzlast (Tumor)",
        "en": "oBDS payload (tumor)"
      },
      "definition": {
        "de": "Optionale unveränderte oBDS-Nutzlast der Tumorzuordnung bzw. Diagnosemeldung.",
        "en": "Optional unaltered oBDS payload of the tumor assignment or diagnosis report."
      },
      "datatype": "object",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.obds"
      ]
    },
    {
      "id": "opjd://0.2.0/tumor.icd10",
      "kind": "object",
      "path": "tumor.icd10",
      "schema_pointer": "#/$defs/tumor/properties/icd10",
      "instance_paths": [
        "/tumors/*/icd10"
      ],
      "label": {
        "de": "ICD-10-Diagnose",
        "en": "ICD-10 diagnosis"
      },
      "definition": {
        "de": "Die ICD-10-GM-Kodierung der Tumordiagnose: code (Pflicht, z. B. C34.1) und optional die Katalogversion. Die semantische Basis bleibt der oBDS — das oPJD führt keine eigenen Diagnosecodes ein.",
        "en": "The ICD-10-GM coding of the tumor diagnosis: code (required, e.g. C34.1) and optionally the catalog version. The semantic base stays oBDS — oPJD introduces no diagnosis codes of its own."
      },
      "rationale": {
        "de": "Konstruktionsprinzip „Schicht, nicht Ersatz\": Die Diagnose bleibt ICD-10-GM wie im oBDS; die mitgeführte Katalogversion hält Kodierungsstände über Jahre vergleichbar."
      },
      "obds_mapping": {
        "element": "Tumorzuordnung/Primaertumor_ICD",
        "note": "Direkte Übernahme aus der oBDS-Tumorzuordnung (Code samt Katalogversion)."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/tumor.icd10.code",
        "opjd://0.2.0/tumor.icd10.version"
      ]
    },
    {
      "id": "opjd://0.2.0/tumor.icd10.code",
      "kind": "field",
      "path": "tumor.icd10.code",
      "schema_pointer": "#/$defs/tumor/properties/icd10/properties/code",
      "instance_paths": [
        "/tumors/*/icd10/code"
      ],
      "label": {
        "de": "ICD-10-Code",
        "en": "ICD-10 code"
      },
      "definition": {
        "de": "ICD-10-GM-Code der Tumordiagnose, z. B. C34.1.",
        "en": "ICD-10-GM code of the tumor diagnosis, e.g. C34.1."
      },
      "datatype": "string",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/tumor.icd10.version",
      "kind": "field",
      "path": "tumor.icd10.version",
      "schema_pointer": "#/$defs/tumor/properties/icd10/properties/version",
      "instance_paths": [
        "/tumors/*/icd10/version"
      ],
      "label": {
        "de": "ICD-10-Katalogversion",
        "en": "ICD-10 catalog version"
      },
      "definition": {
        "de": "Version des ICD-10-GM-Katalogs, mit dem kodiert wurde, z. B. 2025.",
        "en": "Version of the ICD-10-GM catalog used for coding, e.g. 2025."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/event",
      "kind": "object",
      "path": "event",
      "schema_pointer": "#/$defs/event",
      "instance_paths": [
        "/events/*"
      ],
      "label": {
        "de": "Ereignis",
        "en": "Event"
      },
      "definition": {
        "de": "Die atomare Einheit der Journey: eine dokumentierte Tatsache mit Typ, Datum und Tumorbezug — Diagnose, Beschluss, Eingriff, Befund, Therapie, Verlaufsbewertung. Trägt optional die unveränderte oBDS-Nutzlast (obds) und verpflichtend den Metadaten-Layer (meta: provenance, currency, quality). Ereignisse tragen keinen Episoden-Verweis — die Zuordnung wohnt in der Episode.",
        "en": "The atomic unit of the journey: a documented fact with type, date and tumor reference — diagnosis, decision, procedure, finding, therapy, assessment. Optionally carries the unaltered oBDS payload (obds) and mandatorily the metadata layer (meta: provenance, currency, quality). Events carry no episode pointer — membership lives in the episode."
      },
      "rationale": {
        "de": "Ereignisse sind die unantastbare Faktenbasis: Die Interpretationsschicht (Episoden, Relationen) zeigt auf sie, verändert sie aber nie — ändert sich die Kuratierung, ändern sich die Klammern, nie die Ereignisse. Die verpflichtende event_id (Zutat 1) macht jedes Ereignis adressierbar; der oBDS kennt Ereignis-Anker (OP_ID, ST_ID, SYST_ID) nur optional, und die Praxis ignoriert sie."
      },
      "constraints_note": {
        "de": "Pflichtfelder: event_id, type, date, tumor_ref, meta."
      },
      "obds_mapping": {
        "element": "Meldung (Dokumentzweige Diagnose/Pathologie/OP/ST/SYST/Verlauf/Tumorkonferenz/Tod)",
        "note": "Ein Ereignis entspricht in der Regel einem oBDS-Dokumentzweig einer Meldung; die Nutzlast bleibt byte-genau erhalten, die Meldungs-Herkunft wandert in meta.provenance."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: Pathobefund EVT-2025-021 (ypT1b ypN0, R0) mit unveränderter Nutzlast und Meta-Layer."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type",
        "opjd://0.2.0/event.obds",
        "opjd://0.2.0/event.meta",
        "opjd://0.2.0/event.key_event",
        "opjd://0.2.0/episode.events"
      ]
    },
    {
      "id": "opjd://0.2.0/event.event_id",
      "kind": "field",
      "path": "event.event_id",
      "schema_pointer": "#/$defs/event/properties/event_id",
      "instance_paths": [
        "/events/*/event_id"
      ],
      "label": {
        "de": "Ereignis-ID",
        "en": "Event ID"
      },
      "definition": {
        "de": "Stabile Kennung des Ereignisses (Konvention: EVT-…) — Adresse für Episoden (events[], start_event/end_event) und Relationen (from/to).",
        "en": "Stable identifier of the event (convention: EVT-…) — the address used by episodes (events[], start_event/end_event) and relations (from/to)."
      },
      "datatype": "id",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/id"
      ]
    },
    {
      "id": "opjd://0.2.0/event.type",
      "kind": "field",
      "path": "event.type",
      "schema_pointer": "#/$defs/event/properties/type",
      "instance_paths": [
        "/events/*/type"
      ],
      "label": {
        "de": "Ereignistyp",
        "en": "Event type"
      },
      "definition": {
        "de": "Typ des Ereignisses. Die ersten acht Werte sind auf die oBDS-Dokumentzweige gemappt (Diagnose, Pathologie, OP, ST, SYST, Verlauf, Tumorkonferenz, Tod); study_enrollment ist der oPJD-Zusatztyp für den Studieneinschluss, other der Auffangwert.",
        "en": "Type of the event. The first eight values map to the oBDS document branches (diagnosis, pathology, surgery, radiation, systemic therapy, progress, tumor board, death); study_enrollment is the oPJD addition for study enrollment, other the fallback."
      },
      "datatype": "enum (10 Werte)",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type/study_enrollment",
        "opjd://0.2.0/event.obds"
      ]
    },
    {
      "id": "opjd://0.2.0/event.type/diagnosis",
      "kind": "event_type",
      "path": "event.type",
      "value": "diagnosis",
      "schema_pointer": "#/$defs/event/properties/type",
      "instance_paths": [
        "/events/*/type"
      ],
      "label": {
        "de": "Diagnose",
        "en": "Diagnosis"
      },
      "definition": {
        "de": "Diagnosestellung der Tumorerkrankung — typischerweise das Ereignis der histologischen Sicherung bzw. Erstdiagnose mit Staging-Information (cTNM). Häufig Schlüsselereignis und Kern der Erstdiagnose-Episode.",
        "en": "Diagnosis of the tumor disease — typically the event of histological confirmation or initial diagnosis with staging information (cTNM). Often a key event at the core of the first-diagnosis episode."
      },
      "rationale": {
        "de": "Die Diagnose ist der Ankerpunkt jeder Journey: Von ihr aus zählen Chronologie-Schranken („nichts vor der Diagnose\") und beginnt die Erstdiagnose-Episode."
      },
      "obds_mapping": {
        "element": "Meldung/Diagnose",
        "note": "Direkt auf den oBDS-Dokumentzweig Diagnose gemappt."
      },
      "examples": [
        {
          "description": {
            "de": "Prostata-Referenzjourney: EVT-P-003 (cT1c cN0 cM0) als Schlüsselereignis der Erstdiagnose-Episode."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/first_diagnosis",
        "opjd://0.2.0/event.key_event"
      ]
    },
    {
      "id": "opjd://0.2.0/event.type/pathology_report",
      "kind": "event_type",
      "path": "event.type",
      "value": "pathology_report",
      "schema_pointer": "#/$defs/event/properties/type",
      "instance_paths": [
        "/events/*/type"
      ],
      "label": {
        "de": "Pathologiebefund",
        "en": "Pathology report"
      },
      "definition": {
        "de": "Histologischer bzw. pathologischer Befund — von der Biopsie-Histologie bis zum postoperativen Staging (pTNM/ypTNM, Residualstatus). Spricht per result_of-Relation aus, aus welchem Eingriff das Material stammt.",
        "en": "Histological or pathological finding — from biopsy histology to postoperative staging (pTNM/ypTNM, residual status). States via a result_of relation which procedure the material came from."
      },
      "rationale": {
        "de": "Kernfall der dokumentierten oBDS-Lücke: Welche Pathologie sich auf welche Tumor-OP bezieht, ist aus der Meldung nicht ableitbar. Erst der als Ereignis adressierbare Befund kann per Relation auf seinen Eingriff zeigen — ausgesprochen statt geraten."
      },
      "clinical_notes": {
        "de": "Das y-Präfix im TNM beweist neoadjuvante Vorbehandlung; der Abgleich Befund ↔ vorausgehende neoadjuvante Episode wird im oPJD prüfbar. Befunde können auch von Biopsien stammen, die selbst nicht meldepflichtig sind."
      },
      "obds_mapping": {
        "element": "Meldung/Pathologie",
        "note": "Direkt auf den oBDS-Dokumentzweig Pathologie gemappt — dort jedoch ohne Verweis auf den liefernden Eingriff."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: EVT-2025-021 (ypT1b ypN0, R0), per result_of mit der Lobektomie verbunden."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/relation.type/result_of",
        "opjd://0.2.0/episode.type/surgical",
        "opjd://0.2.0/event.type/surgery"
      ]
    },
    {
      "id": "opjd://0.2.0/event.type/surgery",
      "kind": "event_type",
      "path": "event.type",
      "value": "surgery",
      "schema_pointer": "#/$defs/event/properties/type",
      "instance_paths": [
        "/events/*/type"
      ],
      "label": {
        "de": "Operation",
        "en": "Surgery"
      },
      "definition": {
        "de": "Operativer Eingriff am Tumor — von der diagnostischen Biopsie bis zur Resektion (OPS-kodiert in der Nutzlast). Der Zweck des Eingriffs (Diagnosesicherung vs. Therapie) steht als Intention in der oBDS-Nutzlast, nicht in einer Relation.",
        "en": "Surgical procedure on the tumor — from diagnostic biopsy to resection (OPS-coded in the payload). The purpose (diagnostic vs. therapeutic) is carried as intention in the oBDS payload, not as a relation."
      },
      "rationale": {
        "de": "Als adressierbares Ereignis wird der Eingriff zum Bezugsziel: Der Pathobefund zeigt per result_of auf ihn, die Operation selbst per implements auf den Beschluss, den sie umsetzt."
      },
      "obds_mapping": {
        "element": "Meldung/OP",
        "note": "Direkt auf den oBDS-Dokumentzweig OP gemappt; der optionale Anker OP_ID wird in der Praxis nicht genutzt."
      },
      "examples": [
        {
          "description": {
            "de": "Prostata-Referenzjourney: Stanzbiopsie (EVT-P-001), Re-Biopsie (EVT-P-007) und radikale Prostatektomie (EVT-P-010) — alle als surgery mit Intention in der Nutzlast."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/relation.type/result_of",
        "opjd://0.2.0/relation.type/implements",
        "opjd://0.2.0/episode.type/surgical"
      ]
    },
    {
      "id": "opjd://0.2.0/event.type/radiation_therapy",
      "kind": "event_type",
      "path": "event.type",
      "value": "radiation_therapy",
      "schema_pointer": "#/$defs/event/properties/type",
      "instance_paths": [
        "/events/*/type"
      ],
      "label": {
        "de": "Strahlentherapie",
        "en": "Radiation therapy"
      },
      "definition": {
        "de": "Strahlentherapeutische Behandlung (oBDS-Dokumentzweig ST). Stellung zur OP und Intention bleiben in der Nutzlast; die Verlaufseinordnung übernimmt die Episode.",
        "en": "Radiotherapy treatment (oBDS branch ST). Relation to surgery and intention stay in the payload; the episode provides the course context."
      },
      "rationale": {
        "de": "Aus der unverankerten Behauptung Stellung_OP=N/A (ohne Bezugs-OP) wird die prüfbare Zugehörigkeit zu einer neoadjuvanten oder adjuvanten Episode."
      },
      "obds_mapping": {
        "element": "Meldung/ST",
        "note": "Direkt auf den oBDS-Dokumentzweig ST gemappt."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/neoadjuvant",
        "opjd://0.2.0/episode.type/adjuvant",
        "opjd://0.2.0/relation.type/implements"
      ]
    },
    {
      "id": "opjd://0.2.0/event.type/systemic_therapy",
      "kind": "event_type",
      "path": "event.type",
      "value": "systemic_therapy",
      "schema_pointer": "#/$defs/event/properties/type",
      "instance_paths": [
        "/events/*/type"
      ],
      "label": {
        "de": "Systemtherapie",
        "en": "Systemic therapy"
      },
      "definition": {
        "de": "Systemische Therapie — Chemo-, Immun-, Hormon- oder zielgerichtete Therapie (oBDS-Dokumentzweig SYST). Einzelgaben oder Zyklen können als mehrere Ereignisse geführt werden, die die Episode bündelt.",
        "en": "Systemic therapy — chemo, immune, hormonal or targeted therapy (oBDS branch SYST). Individual administrations or cycles may appear as multiple events, bundled by the episode."
      },
      "rationale": {
        "de": "Die Verlaufsbedeutung einer Systemtherapie (neoadjuvant? Linie 2?) ist im oBDS nur lokale Behauptung (Stellung_OP, Intention). Erst die Episode macht daraus prüfbare Zugehörigkeit — und mit palliative_line samt line_number werden Therapielinien überhaupt zählbar."
      },
      "obds_mapping": {
        "element": "Meldung/SYST",
        "note": "Direkt auf den oBDS-Dokumentzweig SYST gemappt."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: drei neoadjuvante Gaben (EVT-2025-013 bis -015) in der neoadjuvanten Episode und zugleich in der Studienphase."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/palliative_line",
        "opjd://0.2.0/episode.type/neoadjuvant",
        "opjd://0.2.0/relation.type/implements"
      ]
    },
    {
      "id": "opjd://0.2.0/event.type/progress_report",
      "kind": "event_type",
      "path": "event.type",
      "value": "progress_report",
      "schema_pointer": "#/$defs/event/properties/type",
      "instance_paths": [
        "/events/*/type"
      ],
      "label": {
        "de": "Verlaufsbefund",
        "en": "Progress report"
      },
      "definition": {
        "de": "Verlaufs- bzw. Statusbeurteilung (oBDS-Dokumentzweig Verlauf) mit Gesamtbeurteilung — vom Nachsorgebefund bis zum Progressionsnachweis. Bezieht sich eine Bewertung erkennbar auf eine Behandlungsphase, spricht sie das per assesses aus; ein Progressionsnachweis kann per triggers die nächste Episode auslösen.",
        "en": "Progress or status assessment (oBDS branch Verlauf) with an overall assessment — from follow-up findings to evidence of progression. Where an assessment clearly refers to a treatment phase it states this via assesses; evidence of progression may trigger the next episode."
      },
      "rationale": {
        "de": "Im oBDS trägt der Verlauf Gesamtbeurteilungen ohne Bezugsobjekt — worauf sich die Bewertung bezieht, ist dort nicht ausdrückbar. Als typisiertes Ereignis mit Relationen bekommt die Verlaufsbewertung ihren Gegenstand."
      },
      "clinical_notes": {
        "de": "Nicht jeder Verlauf braucht eine assesses-Relation — ein allgemeiner Nachsorge-Verlauf bleibt ein einfaches Ereignis in der Nachsorge-Episode."
      },
      "obds_mapping": {
        "element": "Meldung/Verlauf",
        "note": "Direkt auf den oBDS-Dokumentzweig Verlauf gemappt."
      },
      "examples": [
        {
          "description": {
            "de": "Prostata-Referenzjourney: PSA-Kontrollen als Verlaufsbefunde der AS-Episode; der PSA-Anstieg (EVT-P-006) leitet den Strategiewechsel ein."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/relation.type/assesses",
        "opjd://0.2.0/relation.type/triggers",
        "opjd://0.2.0/journey_status.last_assessment"
      ]
    },
    {
      "id": "opjd://0.2.0/event.type/tumor_board",
      "kind": "event_type",
      "path": "event.type",
      "value": "tumor_board",
      "schema_pointer": "#/$defs/event/properties/type",
      "instance_paths": [
        "/events/*/type"
      ],
      "label": {
        "de": "Tumorkonferenz",
        "en": "Tumor board"
      },
      "definition": {
        "de": "Tumorkonferenz mit Therapieempfehlung — der dokumentierte Behandlungsplan. Typisches Schlüsselereignis; durchgeführte Maßnahmen zeigen per implements auf den Beschluss zurück.",
        "en": "Tumor board with a therapy recommendation — the documented treatment plan. A typical key event; executed measures point back to the decision via implements."
      },
      "rationale": {
        "de": "Leitlinienadhärenz wird messbar: Eine Empfehlung ohne implements-Relation binnen definierter Frist ist ein QS-Signal, die Zeit von Beschluss bis Therapiebeginn eine Kennzahl. Im oBDS existiert die typisierte Empfehlung, aber kein Rückverweis der ausgeführten Therapie — Plan und Umsetzung bleiben unverbunden."
      },
      "obds_mapping": {
        "element": "Meldung/Tumorkonferenz (Menge_Therapieempfehlung)",
        "note": "Direkt auf den oBDS-Dokumentzweig Tumorkonferenz gemappt; die Empfehlungstypen (z. B. AS/WW/WS, OP, CH) liefern zugleich Ableitungsindizien für Episoden."
      },
      "examples": [
        {
          "description": {
            "de": "Prostata-Referenzjourney: EVT-P-004 (Empfehlung Active Surveillance) eröffnet die AS-Episode; EVT-P-009 (Empfehlung OP) beendet sie."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/relation.type/implements",
        "opjd://0.2.0/event.key_event",
        "opjd://0.2.0/episode.type/active_surveillance"
      ]
    },
    {
      "id": "opjd://0.2.0/event.type/death",
      "kind": "event_type",
      "path": "event.type",
      "value": "death",
      "schema_pointer": "#/$defs/event/properties/type",
      "instance_paths": [
        "/events/*/type"
      ],
      "label": {
        "de": "Tod",
        "en": "Death"
      },
      "definition": {
        "de": "Tod des Patienten (oBDS-Dokumentzweig Tod) — das terminale Ereignis der Journey; Todesursache und Tumorbezug stehen in der Nutzlast.",
        "en": "Death of the patient (oBDS branch Tod) — the terminal event of the journey; cause of death and tumor relation are in the payload."
      },
      "rationale": {
        "de": "Das terminale Ereignis ist die harte Chronologie-Schranke („nichts nach dem Tod\") und der Endpunkt für Überlebenszeitauswertungen."
      },
      "obds_mapping": {
        "element": "Meldung/Tod",
        "note": "Direkt auf den oBDS-Dokumentzweig Tod gemappt."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.date"
      ]
    },
    {
      "id": "opjd://0.2.0/event.type/study_enrollment",
      "kind": "event_type",
      "path": "event.type",
      "value": "study_enrollment",
      "schema_pointer": "#/$defs/event/properties/type",
      "instance_paths": [
        "/events/*/type"
      ],
      "label": {
        "de": "Studieneinschluss",
        "en": "Study enrollment"
      },
      "definition": {
        "de": "Einschluss des Patienten in eine klinische Studie: Einwilligung, Registrierung, Randomisierung. Schlüsselereignis der Journey und typischer Startpunkt der Studienphase (study_participation); Herkunft typischerweise Studiendokumentation (meta.provenance = study).",
        "en": "Enrollment of the patient in a clinical study: consent, registration, randomization. A key event of the journey and the typical start of a study_participation episode; provenance is typically the study documentation (meta.provenance = study)."
      },
      "rationale": {
        "de": "Im oBDS nicht abbildbar — der Studieneinschluss liegt sonst nur in Studiensystemen. Als eigener Ereignistyp wird er Teil der austauschbaren Journey, und die Studienteilnahme wird als Kontextklammer prüfbar."
      },
      "obds_mapping": {
        "element": null,
        "note": "Dokumentierte oBDS-Lücke: Es existiert kein Dokumentzweig für den Studieneinschluss; das oPJD ergänzt die forschungsrelevante Information."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: EVT-2025-010 (Einwilligung und Randomisierung) eröffnet die Studienphase EP-2025-010."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/study_participation",
        "opjd://0.2.0/episode.study",
        "opjd://0.2.0/event.meta.provenance/study"
      ]
    },
    {
      "id": "opjd://0.2.0/event.type/other",
      "kind": "event_type",
      "path": "event.type",
      "value": "other",
      "schema_pointer": "#/$defs/event/properties/type",
      "instance_paths": [
        "/events/*/type"
      ],
      "label": {
        "de": "Sonstiges Ereignis",
        "en": "Other event"
      },
      "definition": {
        "de": "Auffangwert für Ereignisse ohne eigenen Typ. Sparsam verwenden — die Semantik gehört möglichst in die typisierten Werte; Näheres in note bzw. der Nutzlast.",
        "en": "Fallback for events without a dedicated type. Use sparingly — semantics belong in the typed values where possible; details go into note or the payload."
      },
      "rationale": {
        "de": "Ein expliziter Auffangwert hält das Vokabular abschließend, ohne reale Dokumentation auszusperren; neue Typen entstehen über den Governance-Prozess, nicht ad hoc."
      },
      "obds_mapping": {
        "element": null,
        "note": "Kein festes oBDS-Gegenstück; abhängig vom Inhalt."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.note"
      ]
    },
    {
      "id": "opjd://0.2.0/event.date",
      "kind": "field",
      "path": "event.date",
      "schema_pointer": "#/$defs/event/properties/date",
      "instance_paths": [
        "/events/*/date"
      ],
      "label": {
        "de": "Ereignisdatum",
        "en": "Event date"
      },
      "definition": {
        "de": "Datum des Ereignisses (ISO-8601-Datum); die Genauigkeit kann über date_precision angegeben werden.",
        "en": "Date of the event (ISO 8601 date); precision may be given via date_precision."
      },
      "datatype": "string",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.date_precision"
      ]
    },
    {
      "id": "opjd://0.2.0/event.date_precision",
      "kind": "field",
      "path": "event.date_precision",
      "schema_pointer": "#/$defs/event/properties/date_precision",
      "instance_paths": [
        "/events/*/date_precision"
      ],
      "label": {
        "de": "Genauigkeit des Ereignisdatums",
        "en": "Event date precision"
      },
      "definition": {
        "de": "Genauigkeit des Ereignisdatums nach oBDS-Konvention (E/T/M/J).",
        "en": "Precision of the event date per oBDS convention (E/T/M/J)."
      },
      "datatype": "date_precision",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/date_precision"
      ]
    },
    {
      "id": "opjd://0.2.0/event.tumor_ref",
      "kind": "field",
      "path": "event.tumor_ref",
      "schema_pointer": "#/$defs/event/properties/tumor_ref",
      "instance_paths": [
        "/events/*/tumor_ref"
      ],
      "label": {
        "de": "Tumorbezug",
        "en": "Tumor reference"
      },
      "definition": {
        "de": "Pflicht-Bezug auf die Tumorentität (tumor_id), zu der das Ereignis gehört — bei Mehrfachtumoren entscheidend. Bewusst kein Relationstyp: Der Tumorbezug ist Pflichtfeld jedes Ereignisses.",
        "en": "Mandatory reference to the tumor entity (tumor_id) the event belongs to — decisive for patients with multiple tumors. Deliberately not a relation type: the tumor reference is a required field of every event."
      },
      "datatype": "id",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/tumor",
        "opjd://0.2.0/tumor.tumor_id"
      ]
    },
    {
      "id": "opjd://0.2.0/event.key_event",
      "kind": "field",
      "path": "event.key_event",
      "schema_pointer": "#/$defs/event/properties/key_event",
      "instance_paths": [
        "/events/*/key_event"
      ],
      "label": {
        "de": "Schlüsselereignis",
        "en": "Key event"
      },
      "definition": {
        "de": "Markiert ein Ereignis mit strukturierender Funktion für den Verlauf: Wendepunkte, Strategieentscheidungen, Übergänge zwischen Behandlungsphasen — typisch Erstdiagnose, Tumorboard-Beschluss, Progressionsnachweis.",
        "en": "Marks an event with a structuring function for the course: turning points, strategy decisions, transitions between phases — typically initial diagnosis, tumor board decision, evidence of progression."
      },
      "rationale": {
        "de": "Schlüsselereignisse machen das Gerüst der Journey auf einen Blick filterbar — die Landkarte der Wendepunkte, ohne jede Einzelgabe lesen zu müssen. Sie sind zugleich die typischen Grenzereignisse von Episoden (start_event/end_event)."
      },
      "datatype": "boolean",
      "requirement": "optional",
      "constraints_note": {
        "de": "Optional. Die Markierung ist eine Interpretationshilfe; sie ist keine Voraussetzung für Episoden- oder Relationszugehörigkeit."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Der oBDS kennt keine Markierung strukturierender Schlüsselereignisse."
      },
      "examples": [
        {
          "description": {
            "de": "Prostata-Referenzjourney: Diagnose, AS-Empfehlung, Upgrading-Befund und OP-Empfehlung tragen key_event = true."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.start_event",
        "opjd://0.2.0/episode.end_event",
        "opjd://0.2.0/event.type/tumor_board"
      ]
    },
    {
      "id": "opjd://0.2.0/event.obds",
      "kind": "field",
      "path": "event.obds",
      "schema_pointer": "#/$defs/event/properties/obds",
      "instance_paths": [
        "/events/*/obds"
      ],
      "label": {
        "de": "oBDS-Nutzlast",
        "en": "oBDS payload"
      },
      "definition": {
        "de": "Die unveränderte oBDS-Nutzlast des zugrunde liegenden Dokuments — byte-genau, ohne Umkodierung. Semantische Basis bleibt der oBDS (ICD-10-GM, ICD-O-3, OPS, TNM); das oPJD fügt keine neuen medizinischen Codes ein.",
        "en": "The unaltered oBDS payload of the underlying document — byte-exact, no recoding. The semantic base stays oBDS (ICD-10-GM, ICD-O-3, OPS, TNM); oPJD adds no new medical codes."
      },
      "rationale": {
        "de": "Konstruktionsprinzip „Schicht, nicht Ersatz\": Ein Empfänger, der nur oBDS versteht, kann die Nutzlast weiterhin lesen — das oPJD degradiert würdevoll. Zugleich bleiben Interpretation (Episoden, Relationen) und Original sauber getrennt; die Faktenbasis bleibt auditierbar."
      },
      "datatype": "object",
      "requirement": "optional",
      "constraints_note": {
        "de": "Optional — nicht jedes Ereignis stammt aus einer oBDS-Meldung (z. B. study_enrollment). Inhaltlich unvalidiert: Das JSON Schema erzwingt nur ein Objekt."
      },
      "obds_mapping": {
        "element": "Meldung/* (jeweiliger Dokumentzweig)",
        "note": "Trägerfeld der Original-Nutzlast; die Zuordnung zum Dokumentzweig ergibt sich aus event.type."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: SYST-Nutzlast mit Intention = K und Stellung_OP = N — unverändert transportiert, als Episode interpretiert."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type",
        "opjd://0.2.0/event.meta.provenance",
        "opjd://0.2.0/interpretation_meta.derived_from"
      ]
    },
    {
      "id": "opjd://0.2.0/event.note",
      "kind": "field",
      "path": "event.note",
      "schema_pointer": "#/$defs/event/properties/note",
      "instance_paths": [
        "/events/*/note"
      ],
      "label": {
        "de": "Anmerkung",
        "en": "Note"
      },
      "definition": {
        "de": "Freitext-Anmerkung zum Ereignis, z. B. eine Kurzbeschreibung des Befunds.",
        "en": "Free-text note on the event, e.g. a short description of the finding."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/event.meta",
      "kind": "object",
      "path": "event.meta",
      "schema_pointer": "#/$defs/eventMeta",
      "instance_paths": [
        "/events/*/meta"
      ],
      "label": {
        "de": "Ereignis-Metadaten",
        "en": "Event metadata"
      },
      "definition": {
        "de": "Der Metadaten-Layer eines Ereignisses beantwortet drei Fragen: Woher stammt die Information (provenance)? Wie synchron ist sie mit dem Geschehen (currency)? Wie belastbar ist sie (quality)? Ergänzt um Quellsystem, Quellkategorie und Zeitstempel (recorded_at, last_confirmed_at).",
        "en": "The metadata layer of an event answers three questions: where does the information come from (provenance)? How synchronous is it (currency)? How reliable is it (quality)? Complemented by source system, source category and timestamps (recorded_at, last_confirmed_at)."
      },
      "rationale": {
        "de": "Konsolidierte Journeys mischen Quellen — Primärdokumentation, Tumordokumentation, Register, Studien. Ohne Herkunfts- und Frischeangabe je Ereignis wäre die Mischung nicht mehr auseinanderzuhalten; mit ihr kann der Empfänger jede Tatsache gewichten. Die Meldungs-Herkunft des oBDS-Stapels wandert genau hierhin."
      },
      "constraints_note": {
        "de": "Pflichtobjekt jedes Ereignisses; provenance, currency und quality sind Pflicht."
      },
      "obds_mapping": {
        "element": "Meldung (Melder, Meldeanlass)",
        "note": "Melder- und Anlassinformation der oBDS-Meldung gehen in provenance/source_system auf; eine Qualitäts- oder Frischeangabe kennt der oBDS nicht."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.provenance",
        "opjd://0.2.0/event.meta.currency",
        "opjd://0.2.0/event.meta.quality",
        "opjd://0.2.0/interpretation_meta"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.provenance",
      "kind": "field",
      "path": "event.meta.provenance",
      "schema_pointer": "#/$defs/eventMeta/properties/provenance",
      "instance_paths": [
        "/events/*/meta/provenance"
      ],
      "label": {
        "de": "Provenance (Herkunft)",
        "en": "Provenance"
      },
      "definition": {
        "de": "Woher stammt die Information? Sechs Herkunftsklassen — von der klinischen Primärdokumentation über Tumordokumentation, Register, Studien- und Zertifizierungskontext bis zur externen Meldung.",
        "en": "Where does the information come from? Six provenance classes — from primary clinical documentation via tumor documentation, registry, study and certification context to external sources."
      },
      "datatype": "enum (6 Werte)",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.provenance/primary_clinical",
        "opjd://0.2.0/event.meta.provenance/registry",
        "opjd://0.2.0/event.meta.source_category"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.provenance/primary_clinical",
      "kind": "enum_value",
      "path": "event.meta.provenance",
      "value": "primary_clinical",
      "schema_pointer": "#/$defs/eventMeta/properties/provenance",
      "instance_paths": [
        "/events/*/meta/provenance"
      ],
      "label": {
        "de": "Primärdokumentation Klinik",
        "en": "Primary clinical documentation"
      },
      "definition": {
        "de": "Die Information stammt aus der klinischen Primärdokumentation der behandelnden Einrichtung (KIS, Befundsysteme).",
        "en": "The information originates from the treating institution’s primary clinical documentation (HIS, reporting systems)."
      },
      "rationale": {
        "de": "Die Quelle mit der größten Nähe zum Geschehen — der Referenzpunkt, gegen den sekundäre Quellen abgeglichen werden."
      },
      "obds_mapping": {
        "element": "Meldung/Melder",
        "note": "Näherungsweise aus den Melder-Metadaten der Meldung ableitbar; eine explizite Herkunftsklasse kennt der oBDS nicht."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.source_category/primary"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.provenance/tumor_documentation",
      "kind": "enum_value",
      "path": "event.meta.provenance",
      "value": "tumor_documentation",
      "schema_pointer": "#/$defs/eventMeta/properties/provenance",
      "instance_paths": [
        "/events/*/meta/provenance"
      ],
      "label": {
        "de": "Tumordokumentation",
        "en": "Tumor documentation"
      },
      "definition": {
        "de": "Die Information stammt aus der spezialisierten Tumordokumentation (z. B. ONKOSTAR-Erfassung durch Dokumentarinnen und Dokumentare).",
        "en": "The information originates from specialized tumor documentation (e.g. ONKOSTAR records maintained by documentation specialists)."
      },
      "rationale": {
        "de": "Die kuratierte Fachdokumentation ist die typische Quelle des konsolidierten „Best-of\"-Stands — und der curated-Bestätigungen der Interpretationsschicht."
      },
      "obds_mapping": {
        "element": "Meldung/Melder",
        "note": "Näherungsweise aus den Melder-Metadaten ableitbar; die Rolle „Tumordokumentation\" ist im oBDS nicht ausgewiesen."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.annotated_by_role/tumor_documentation"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.provenance/registry",
      "kind": "enum_value",
      "path": "event.meta.provenance",
      "value": "registry",
      "schema_pointer": "#/$defs/eventMeta/properties/provenance",
      "instance_paths": [
        "/events/*/meta/provenance"
      ],
      "label": {
        "de": "Registerdaten",
        "en": "Registry data"
      },
      "definition": {
        "de": "Die Information stammt aus einem Krebsregister (z. B. Landeskrebsregister) — typisch beim Datenrückfluss an Melder.",
        "en": "The information originates from a cancer registry (e.g. a state cancer registry) — typical for data returned to reporters."
      },
      "rationale": {
        "de": "Rückflüsse mischen Registerwissen in die Journey; die Kennzeichnung hält es von der Primärdokumentation unterscheidbar — relevant für currency und den lokalen Abgleich."
      },
      "obds_mapping": {
        "element": null,
        "note": "Der Datenrückfluss aus dem Register liegt außerhalb des oBDS-Meldewegs; die Herkunftsklasse ist eine oPJD-Ergänzung."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.currency/delayed",
        "opjd://0.2.0/delivery.local_reconciliation_allowed"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.provenance/study",
      "kind": "enum_value",
      "path": "event.meta.provenance",
      "value": "study",
      "schema_pointer": "#/$defs/eventMeta/properties/provenance",
      "instance_paths": [
        "/events/*/meta/provenance"
      ],
      "label": {
        "de": "Studienkontext",
        "en": "Study context"
      },
      "definition": {
        "de": "Die Information stammt aus Studiendokumentation bzw. Studiensystemen — typisch für study_enrollment und studienbezogene Ereignisse.",
        "en": "The information originates from study documentation or study systems — typical for study_enrollment and study-related events."
      },
      "rationale": {
        "de": "Studienwissen liegt sonst nur in Studiensystemen; die Herkunftsklasse macht sichtbar, welche Teile der Journey aus dem Protokollkontext stammen."
      },
      "obds_mapping": {
        "element": null,
        "note": "Studiensysteme sind keine oBDS-Melder; die Herkunftsklasse ergänzt, was der Meldeweg nicht abbildet."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type/study_enrollment",
        "opjd://0.2.0/episode.type/study_participation"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.provenance/certification",
      "kind": "enum_value",
      "path": "event.meta.provenance",
      "value": "certification",
      "schema_pointer": "#/$defs/eventMeta/properties/provenance",
      "instance_paths": [
        "/events/*/meta/provenance"
      ],
      "label": {
        "de": "Zertifizierungsdokumentation",
        "en": "Certification documentation"
      },
      "definition": {
        "de": "Die Information stammt aus der Zertifizierungswelt (z. B. DKG/OnkoZert-Kennzahlenprozesse) — typisch für die Fallklassifikations-Klammern primary_case und center_case.",
        "en": "The information originates from the certification world (e.g. DKG/OnkoZert KPI processes) — typical for the case classification brackets primary_case and center_case."
      },
      "rationale": {
        "de": "Deklarationen der Zertifizierungswelt folgen eigenen, jährlich variierenden Definitionen; die Herkunftsklasse macht kenntlich, wessen Regelwerk hinter der Angabe steht."
      },
      "obds_mapping": {
        "element": null,
        "note": "Zertifizierungsprozesse (DKG/OnkoZert) laufen außerhalb des oBDS-Meldewegs."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/primary_case",
        "opjd://0.2.0/episode.type/center_case"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.provenance/external",
      "kind": "enum_value",
      "path": "event.meta.provenance",
      "value": "external",
      "schema_pointer": "#/$defs/eventMeta/properties/provenance",
      "instance_paths": [
        "/events/*/meta/provenance"
      ],
      "label": {
        "de": "Externe Meldung",
        "en": "External source"
      },
      "definition": {
        "de": "Die Information stammt von einer externen Stelle außerhalb der eigenen Dokumentationskette, z. B. einer auswärtigen Einrichtung.",
        "en": "The information originates from an external party outside the own documentation chain, e.g. another institution."
      },
      "rationale": {
        "de": "Fremdherkunft ist ein eigenes Vertrauenssignal: Extern Gemeldetes ist oft weder kuratierbar noch rückfragbar und wird darum getrennt geführt."
      },
      "obds_mapping": {
        "element": "Meldung/Melder",
        "note": "Näherung über fremde Melder-Kennungen; eine ausgewiesene Fremdherkunft kennt der oBDS nicht."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.quality/limited"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.currency",
      "kind": "field",
      "path": "event.meta.currency",
      "schema_pointer": "#/$defs/eventMeta/properties/currency",
      "instance_paths": [
        "/events/*/meta/currency"
      ],
      "label": {
        "de": "Aktualität",
        "en": "Currency"
      },
      "definition": {
        "de": "Wie synchron ist die Information mit dem klinischen Geschehen? Dreistufig: current, delayed, historical. Ergänzend dokumentiert last_confirmed_at die letzte Bestätigung.",
        "en": "How synchronous is the information with the clinical course? Three levels: current, delayed, historical. last_confirmed_at adds the date of last confirmation."
      },
      "datatype": "enum (3 Werte)",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.currency/current",
        "opjd://0.2.0/event.meta.last_confirmed_at"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.currency/current",
      "kind": "enum_value",
      "path": "event.meta.currency",
      "value": "current",
      "schema_pointer": "#/$defs/eventMeta/properties/currency",
      "instance_paths": [
        "/events/*/meta/currency"
      ],
      "label": {
        "de": "aktuell",
        "en": "Current"
      },
      "definition": {
        "de": "Zeitnah zum Geschehen dokumentiert; gilt als aktueller Stand.",
        "en": "Documented close in time to the clinical course; counts as the current state."
      },
      "rationale": {
        "de": "Erst die explizite Frischeangabe erlaubt dem Empfänger, konsolidierte Bestände zu gewichten — was „aktuell\" ist, darf nicht aus Liefer- oder Ereignisdaten geraten werden."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Der oBDS kennt Meldedaten, aber keine Aktualitätsklasse relativ zum Geschehen."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.currency/delayed"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.currency/delayed",
      "kind": "enum_value",
      "path": "event.meta.currency",
      "value": "delayed",
      "schema_pointer": "#/$defs/eventMeta/properties/currency",
      "instance_paths": [
        "/events/*/meta/currency"
      ],
      "label": {
        "de": "verzögert",
        "en": "Delayed"
      },
      "definition": {
        "de": "Mit relevantem Zeitversatz eingegangen oder dokumentiert — z. B. Registerrückfluss oder Nachmeldung. Der Inhalt kann korrekt, aber nicht mehr der neueste Stand sein.",
        "en": "Received or documented with a relevant time lag — e.g. registry return or late report. The content may be correct but no longer the latest state."
      },
      "rationale": {
        "de": "Meldeverzug ist auf Registerwegen systemisch; die Kennzeichnung verhindert, dass verspätetes Wissen als tagesaktuell gelesen wird."
      },
      "obds_mapping": {
        "element": null,
        "note": "Näherung über die Differenz von Ereignis- und Meldedatum möglich; als Klasse im oBDS nicht vorhanden."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.provenance/registry"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.currency/historical",
      "kind": "enum_value",
      "path": "event.meta.currency",
      "value": "historical",
      "schema_pointer": "#/$defs/eventMeta/properties/currency",
      "instance_paths": [
        "/events/*/meta/currency"
      ],
      "label": {
        "de": "historisch",
        "en": "Historical"
      },
      "definition": {
        "de": "Aus Altdatenübernahme oder Archivbeständen — dokumentiert den damaligen Stand, ohne Anspruch auf Aktualität.",
        "en": "From legacy migration or archive holdings — documents the state at that time, with no claim to currency."
      },
      "rationale": {
        "de": "Migrationen und Archivimporte sind Realität; der Wert hält Altbestände nutzbar, ohne sie mit aktueller Dokumentation zu verwechseln."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; Altdatenübernahmen sind im oBDS nicht als solche gekennzeichnet."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.quality/limited"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.quality",
      "kind": "field",
      "path": "event.meta.quality",
      "schema_pointer": "#/$defs/eventMeta/properties/quality",
      "instance_paths": [
        "/events/*/meta/quality"
      ],
      "label": {
        "de": "Qualitätsniveau",
        "en": "Quality level"
      },
      "definition": {
        "de": "Wie belastbar ist die Information? Vierstufig: curated, derived, limited, unconfirmed. Keine wissenschaftliche Evidenzbewertung, sondern eine praktikable, aus Quelle und Prozess ableitbare Einschätzung.",
        "en": "How reliable is the information? Four levels: curated, derived, limited, unconfirmed. Not a scientific evidence grading but a practicable rating derivable from source and process."
      },
      "datatype": "enum (4 Werte)",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.quality/curated",
        "opjd://0.2.0/interpretation_meta.quality"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.quality/curated",
      "kind": "enum_value",
      "path": "event.meta.quality",
      "value": "curated",
      "schema_pointer": "#/$defs/eventMeta/properties/quality",
      "instance_paths": [
        "/events/*/meta/quality"
      ],
      "label": {
        "de": "kuratiert",
        "en": "Curated"
      },
      "definition": {
        "de": "Direkt dokumentiert bzw. fachlich kuratiert — durch den behandelnden Arzt oder die Tumordokumentation.",
        "en": "Directly documented or professionally curated — by the treating physician or tumor documentation."
      },
      "rationale": {
        "de": "Oberste Stufe der praktikablen Skala: Der Empfänger darf die Tatsache ohne weitere Prüfung verwenden."
      },
      "clinical_notes": {
        "de": "Nicht verwechseln mit interpretation_meta.quality/curated: Hier ist die dokumentierte Tatsache kuratiert, dort die Interpretation (Klammer/Bezug) selbst."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Der oBDS transportiert Meldungsinhalte ohne Qualitätsstufe; die Einstufung entsteht beim Konsolidieren aus Quelle und Prozess."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.quality/curated"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.quality/derived",
      "kind": "enum_value",
      "path": "event.meta.quality",
      "value": "derived",
      "schema_pointer": "#/$defs/eventMeta/properties/quality",
      "instance_paths": [
        "/events/*/meta/quality"
      ],
      "label": {
        "de": "abgeleitet",
        "en": "Derived"
      },
      "definition": {
        "de": "Abgeleitet oder sekundär übernommen — die Information wurde nicht primär an der Quelle dokumentiert, sondern aus anderen Angaben gewonnen.",
        "en": "Derived or taken over secondarily — the information was not documented primarily at the source but obtained from other data."
      },
      "rationale": {
        "de": "Sekundäre Herkunft bleibt sichtbar, statt beim Konsolidieren zu verschwinden — der Empfänger kann abgeleitete Tatsachen gezielt niedriger gewichten."
      },
      "clinical_notes": {
        "de": "Nicht verwechseln mit interpretation_meta.quality/derived: Hier ist die Tatsache selbst abgeleitet, dort die algorithmisch vorgeschlagene Klammer bzw. Relation."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; sekundär übernommene Angaben sind im oBDS nicht als solche gekennzeichnet."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.quality/derived",
        "opjd://0.2.0/event.meta.source_category/secondary"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.quality/limited",
      "kind": "enum_value",
      "path": "event.meta.quality",
      "value": "limited",
      "schema_pointer": "#/$defs/eventMeta/properties/quality",
      "instance_paths": [
        "/events/*/meta/quality"
      ],
      "label": {
        "de": "eingeschränkt",
        "en": "Limited"
      },
      "definition": {
        "de": "Bekannte Einschränkungen in der Datenqualität — z. B. unvollständige oder widersprüchliche Quellangaben. Verwendbar, aber mit Vorsicht.",
        "en": "Known limitations in data quality — e.g. incomplete or contradictory source data. Usable, but with caution."
      },
      "rationale": {
        "de": "Bekannte Schwächen werden deklariert statt verschwiegen — der Datensatz weist seine eigene Belastbarkeit aus."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; bekannte Qualitätseinschränkungen sind im oBDS nicht deklarierbar."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.quality/unconfirmed"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.quality/unconfirmed",
      "kind": "enum_value",
      "path": "event.meta.quality",
      "value": "unconfirmed",
      "schema_pointer": "#/$defs/eventMeta/properties/quality",
      "instance_paths": [
        "/events/*/meta/quality"
      ],
      "label": {
        "de": "unbestätigt",
        "en": "Unconfirmed"
      },
      "definition": {
        "de": "Noch nicht validiert oder freigegeben — z. B. vor Abschluss der Dokumentations- oder Freigabeprozesse.",
        "en": "Not yet validated or released — e.g. before documentation or release processes have completed."
      },
      "rationale": {
        "de": "Erlaubt frühe Lieferung ohne falsche Sicherheit: Der Empfänger sieht, dass die Freigabe noch aussteht."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; ein Freigabestatus der Dokumentation ist im oBDS nicht abgebildet."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.quality/limited"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.source_system",
      "kind": "field",
      "path": "event.meta.source_system",
      "schema_pointer": "#/$defs/eventMeta/properties/source_system",
      "instance_paths": [
        "/events/*/meta/source_system"
      ],
      "label": {
        "de": "Quellsystem",
        "en": "Source system"
      },
      "definition": {
        "de": "Name des Quellsystems, aus dem das Ereignis stammt (z. B. ONKOSTAR, KIS, Registersystem).",
        "en": "Name of the source system the event originates from (e.g. ONKOSTAR, HIS, registry system)."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.sending_system"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.source_category",
      "kind": "field",
      "path": "event.meta.source_category",
      "schema_pointer": "#/$defs/eventMeta/properties/source_category",
      "instance_paths": [
        "/events/*/meta/source_category"
      ],
      "label": {
        "de": "Quellkategorie",
        "en": "Source category"
      },
      "definition": {
        "de": "Grobklassifikation der Quelle: primary (originär dokumentiert) oder secondary (aus zweiter Hand übernommen).",
        "en": "Coarse source classification: primary (originally documented) or secondary (taken over second-hand)."
      },
      "datatype": "enum (2 Werte)",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.provenance"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.source_category/primary",
      "kind": "enum_value",
      "path": "event.meta.source_category",
      "value": "primary",
      "schema_pointer": "#/$defs/eventMeta/properties/source_category",
      "instance_paths": [
        "/events/*/meta/source_category"
      ],
      "label": {
        "de": "Primärquelle",
        "en": "Primary source"
      },
      "definition": {
        "de": "Die Information wurde an dieser Quelle originär dokumentiert.",
        "en": "The information was originally documented at this source."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/event.meta.source_category/secondary",
      "kind": "enum_value",
      "path": "event.meta.source_category",
      "value": "secondary",
      "schema_pointer": "#/$defs/eventMeta/properties/source_category",
      "instance_paths": [
        "/events/*/meta/source_category"
      ],
      "label": {
        "de": "Sekundärquelle",
        "en": "Secondary source"
      },
      "definition": {
        "de": "Die Information wurde aus einer anderen Quelle übernommen oder abgeleitet.",
        "en": "The information was taken over or derived from another source."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/event.meta.recorded_at",
      "kind": "field",
      "path": "event.meta.recorded_at",
      "schema_pointer": "#/$defs/eventMeta/properties/recorded_at",
      "instance_paths": [
        "/events/*/meta/recorded_at"
      ],
      "label": {
        "de": "Erfasst am",
        "en": "Recorded at"
      },
      "definition": {
        "de": "Datum der Erfassung bzw. Dokumentation des Ereignisses — nicht zu verwechseln mit dem klinischen Ereignisdatum (event.date).",
        "en": "Date the event was recorded/documented — not to be confused with the clinical event date (event.date)."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.date"
      ]
    },
    {
      "id": "opjd://0.2.0/event.meta.last_confirmed_at",
      "kind": "field",
      "path": "event.meta.last_confirmed_at",
      "schema_pointer": "#/$defs/eventMeta/properties/last_confirmed_at",
      "instance_paths": [
        "/events/*/meta/last_confirmed_at"
      ],
      "label": {
        "de": "Zuletzt bestätigt am",
        "en": "Last confirmed at"
      },
      "definition": {
        "de": "Datum der letzten Bestätigung oder Aktualisierung der Information — ergänzt currency um einen prüfbaren Zeitpunkt.",
        "en": "Date the information was last confirmed or updated — complements currency with a verifiable point in time."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.currency"
      ]
    },
    {
      "id": "opjd://0.2.0/episode",
      "kind": "object",
      "path": "episode",
      "schema_pointer": "#/$defs/episode",
      "instance_paths": [
        "/episodes/*"
      ],
      "label": {
        "de": "Episode (klinische Klammer)",
        "en": "Episode (clinical bracket)"
      },
      "definition": {
        "de": "Die Klammer: ein klinisch definierter Sinnabschnitt, der Ereignisse zu einem zusammenhängenden Behandlungsabschnitt gruppiert — begrenzt durch klinische Ereignisse, nicht durch Kalenderfenster. Zwei Kategorien: Verlaufsphasen strukturieren den Behandlungsverlauf und sollen sich je Tumor nicht überlappen; Kontextklammern (Studienphase, Primär-/Zentrumsfall) laufen parallel dazu. Die Zuordnung wohnt in der Episode (events[]), nicht im Ereignis.",
        "en": "The bracket: a clinically defined segment grouping events into a coherent treatment phase — bounded by clinical events, not calendar windows. Two categories: journey phases structure the course and should not overlap per tumor; context brackets (study participation, primary/center case) run in parallel. Membership lives in the episode (events[]), not in the event."
      },
      "rationale": {
        "de": "Zutat 2 der Secret Sauce: Der oBDS kennt keine Episode — Kontext existiert dort nur als unverankerte lokale Behauptung (Stellung_OP, Intention je Einzeltherapie). Als eigenes Objekt mit Adresse, Grenzereignissen und eigener Qualitätsangabe macht die Klammer aus „Stellung_OP=N\" die prüfbare Aussage „gehört zur neoadjuvanten Episode vor der operativen Episode X\". Und die Episodengrammatik macht Lücken zu Daten: Jeder Typ definiert, was in ihm erwartbar ist."
      },
      "constraints_note": {
        "de": "Pflicht: episode_id, type, tumor_ref, events (minItems 1), meta. Bedingt verpflichtend: study bei study_participation, organization bei primary_case/center_case. Überlappungsregel (Validator, nicht Schema): Verlaufsphasen je Tumor überlappungsfrei; Kontextklammern dürfen sich mit Verlaufsphasen und untereinander beliebig überlappen."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Der oBDS modelliert keine Behandlungsepisoden. Indizien (Stellung_OP, y-TNM, Meldeanlass, Datumsfenster) erlauben nur die algorithmische Ableitung (meta.quality = derived)."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: neoadjuvante und operative Verlaufsphase plus Studienphase und Primärfall-Klammer parallel dazu."
          },
          "ref": "opjd-example-nsclc"
        },
        {
          "description": {
            "de": "Prostata-Referenzjourney: Erstdiagnose → Active Surveillance → operative Phase → Nachsorge."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type",
        "opjd://0.2.0/episode.events",
        "opjd://0.2.0/episode.meta",
        "opjd://0.2.0/episode.intent",
        "opjd://0.2.0/interpretation_meta"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.episode_id",
      "kind": "field",
      "path": "episode.episode_id",
      "schema_pointer": "#/$defs/episode/properties/episode_id",
      "instance_paths": [
        "/episodes/*/episode_id"
      ],
      "label": {
        "de": "Episoden-ID",
        "en": "Episode ID"
      },
      "definition": {
        "de": "Stabile Kennung der Episode (Konvention: EP-…) — Adresse für Relationen auf Episoden (assesses, triggers) und für journey_status.active_episode.",
        "en": "Stable identifier of the episode (convention: EP-…) — the address used by relations targeting episodes (assesses, triggers) and by journey_status.active_episode."
      },
      "datatype": "id",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/id"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type",
      "kind": "field",
      "path": "episode.type",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Episodentyp",
        "en": "Episode type"
      },
      "definition": {
        "de": "Typ der Klammer: neun Verlaufsphasen (first_diagnosis, neoadjuvant, surgical, adjuvant, follow_up, progression, palliative_line, active_surveillance, watchful_waiting), drei Kontextklammern (study_participation, primary_case, center_case) und other als Auffangwert. Verlaufsphasen strukturieren den Behandlungsverlauf, Kontextklammern den Versorgungs- bzw. Dokumentationskontext.",
        "en": "Type of the bracket: nine journey phases (first_diagnosis … watchful_waiting), three context brackets (study_participation, primary_case, center_case), and other as fallback. Journey phases structure the treatment course, context brackets the care or documentation context."
      },
      "datatype": "enum (13 Werte)",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/active_surveillance",
        "opjd://0.2.0/episode.type/study_participation",
        "opjd://0.2.0/episode.intent"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/first_diagnosis",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "first_diagnosis",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Erstdiagnose-Episode",
        "en": "First-diagnosis episode"
      },
      "definition": {
        "de": "Verlaufsphase: von der Verdachtsdiagnose über Staging und histologische Sicherung bis zum ersten Behandlungsbeschluss. Enthält typischerweise Erst-Biopsie, Diagnose, Ausbreitungsdiagnostik und das erste Tumorboard.",
        "en": "Journey phase: from suspected diagnosis through staging and histological confirmation to the first treatment decision. Typically contains initial biopsy, diagnosis, staging work-up and the first tumor board."
      },
      "rationale": {
        "de": "Die Episodengrammatik macht die Diagnostikphase prüfbar: Eine Erstdiagnose-Episode ohne Staging-Information ist eine sichtbare Lücke — Vollständigkeits- statt bloßer Schrankenprüfung."
      },
      "constraints_note": {
        "de": "Verlaufsphase — soll sich je Tumor nicht mit anderen Verlaufsphasen überlappen (Validator-Regel)."
      },
      "obds_mapping": {
        "element": "Meldung/Diagnose (Meldeanlass diagnose)",
        "note": "Nur Indiz für die Ableitung; die Phase als Klammer existiert im oBDS nicht."
      },
      "examples": [
        {
          "description": {
            "de": "Prostata-Referenzjourney: EP-P-1 von der Stanzbiopsie bis zur AS-Empfehlung des Tumorboards."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type/diagnosis",
        "opjd://0.2.0/event.type/tumor_board",
        "opjd://0.2.0/episode.type/neoadjuvant"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/neoadjuvant",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "neoadjuvant",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Neoadjuvante Episode",
        "en": "Neoadjuvant episode"
      },
      "definition": {
        "de": "Verlaufsphase: Systemtherapie oder Bestrahlung vor einem geplanten operativen Eingriff, einschließlich Responsebeurteilung. Beginnt typischerweise mit dem Therapiebeschluss und endet mit der Responsebeurteilung bzw. dem Übergang zur Operation.",
        "en": "Journey phase: systemic therapy or radiation before a planned surgical procedure, including response assessment. Typically starts with the treatment decision and ends with the response assessment or the transition to surgery."
      },
      "rationale": {
        "de": "Heilt die tote oBDS-Behauptung Stellung_OP=N, die nicht sagt, zu welcher OP sie gehört — bei zwei Tumoren oder Eingriffen unauflösbar. Als Episode wird die Aussage prüfbar, und die Grammatik greift: Eine neoadjuvante Episode ohne assesses-Response-Beurteilung ist eine sichtbare Lücke."
      },
      "constraints_note": {
        "de": "Verlaufsphase — überlappungsfrei je Tumor (Validator-Regel). Typisch: intent = curative, gefolgt von einer operativen Episode."
      },
      "clinical_notes": {
        "de": "Das ypTNM des postoperativen Befundes beweist die neoadjuvante Vorbehandlung — der oBDS trägt den Beweis (y-Präfix), erst die Episodenstruktur macht ihn prüfbar: ypTNM ohne vorausgehende neoadjuvante Episode am selben Tumor ist ein Widerspruch."
      },
      "obds_mapping": {
        "element": "ST/SYST: Stellung_OP=N (+ ycTNM)",
        "note": "Nur Ableitungsindizien (derived_from); eine Episodenentsprechung existiert im oBDS nicht."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: EP-2025-002 vom Tumorboard-Beschluss bis zur OP-Freigabe nach Restaging, mit derived_from = [Stellung_OP=N, ycTNM]."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/surgical",
        "opjd://0.2.0/relation.type/assesses",
        "opjd://0.2.0/episode.intent/curative",
        "opjd://0.2.0/interpretation_meta.derived_from"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/surgical",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "surgical",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Operative Episode",
        "en": "Surgical episode"
      },
      "definition": {
        "de": "Verlaufsphase: der operative Eingriff mit perioperativer Diagnostik, Pathologiebefund und Komplikationsmanagement.",
        "en": "Journey phase: the surgical procedure with perioperative diagnostics, pathology report and complication management."
      },
      "rationale": {
        "de": "Grammatik-Erwartung: Eine operative Episode ohne eingehenden result_of-Pathobefund ist eine sichtbare Lücke — genau die Zuordnung Befund ↔ Eingriff, die aus oBDS-Meldungen nachweislich nicht ableitbar ist."
      },
      "constraints_note": {
        "de": "Verlaufsphase — überlappungsfrei je Tumor (Validator-Regel)."
      },
      "obds_mapping": {
        "element": "Meldung/OP",
        "note": "Der Eingriff ist meldbar, die Phase als Klammer nicht."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: EP-2025-003 mit Lobektomie und ypT1b-Pathobefund."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type/surgery",
        "opjd://0.2.0/event.type/pathology_report",
        "opjd://0.2.0/relation.type/result_of"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/adjuvant",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "adjuvant",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Adjuvante Episode",
        "en": "Adjuvant episode"
      },
      "definition": {
        "de": "Verlaufsphase: postoperative Therapie zur Konsolidierung des Behandlungserfolgs — Systemtherapie oder Bestrahlung nach dem Eingriff.",
        "en": "Journey phase: postoperative therapy consolidating the treatment result — systemic therapy or radiation after surgery."
      },
      "rationale": {
        "de": "Analog zur Neoadjuvanz: Stellung_OP=A wird von der lokalen Behauptung zur prüfbaren Phasenzugehörigkeit nach der operativen Episode."
      },
      "constraints_note": {
        "de": "Verlaufsphase — überlappungsfrei je Tumor (Validator-Regel). Typisch: folgt der operativen Episode."
      },
      "obds_mapping": {
        "element": "ST/SYST: Stellung_OP=A",
        "note": "Nur Ableitungsindiz (derived_from); keine Episodenentsprechung im oBDS."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/surgical",
        "opjd://0.2.0/episode.type/neoadjuvant",
        "opjd://0.2.0/episode.type/follow_up"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/follow_up",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "follow_up",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Nachsorgephase",
        "en": "Follow-up episode"
      },
      "definition": {
        "de": "Verlaufsphase: strukturierte Nachsorge nach Abschluss der Primärbehandlung — regelmäßige Verlaufsbefunde ohne aktive Tumortherapie.",
        "en": "Journey phase: structured follow-up after completed primary treatment — regular progress reports without active tumor therapy."
      },
      "rationale": {
        "de": "Nachsorge wird prüfbar: Fehlende Kontrollen im erwarteten Intervall werden als Lücke sichtbar. Die zugehörige Nutzung hat mit use_purpose/follow_up ihr Gegenstück in der Austauschhülle — bis hin zu länderspezifischen Abrufregeln."
      },
      "constraints_note": {
        "de": "Verlaufsphase — überlappungsfrei je Tumor (Validator-Regel)."
      },
      "obds_mapping": {
        "element": "Meldung/Verlauf",
        "note": "Verlaufsmeldungen liefern die Ereignisse; die Nachsorge als Phase existiert im oBDS nicht."
      },
      "examples": [
        {
          "description": {
            "de": "Prostata-Referenzjourney: EP-P-4 mit PSA-Kontrolle nach Prostatektomie (status = active)."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type/progress_report",
        "opjd://0.2.0/use_purpose/follow_up"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/progression",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "progression",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Progressions-Episode",
        "en": "Progression episode"
      },
      "definition": {
        "de": "Verlaufsphase: Nachweis einer Krankheitsprogression als Trigger einer neuen Therapielinie oder Strategieentscheidung — vom Progressionsbefund bis zum neuen Beschluss.",
        "en": "Journey phase: evidence of disease progression triggering a new treatment line or strategy decision — from the progression finding to the new decision."
      },
      "rationale": {
        "de": "Der Strategiewechsel wird Datum statt Interpretation: Die Progression löst per triggers die Folge-Episode aus; eine Progression ohne dokumentierte Konsequenz wird als Lücke sichtbar."
      },
      "constraints_note": {
        "de": "Verlaufsphase — überlappungsfrei je Tumor (Validator-Regel)."
      },
      "clinical_notes": {
        "de": "Nicht verwechseln: progress_report ist das einzelne Verlaufs-Ereignis; die Progressions-Episode ist die Klammer um Nachweis und Strategieentscheidung."
      },
      "obds_mapping": {
        "element": "Verlauf/Gesamtbeurteilung (P)",
        "note": "Der Progressionsbefund ist meldbar; die Phase und ihre Konsequenz (triggers) sind oPJD-Struktur."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/relation.type/triggers",
        "opjd://0.2.0/event.type/progress_report",
        "opjd://0.2.0/episode.type/palliative_line"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/palliative_line",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "palliative_line",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Palliative Therapielinie",
        "en": "Palliative treatment line"
      },
      "definition": {
        "de": "Verlaufsphase: Systemtherapie im palliativen Kontext, als zählbare Therapielinie geführt (line_number, ESMO-Zählung anschlussfähig). Konvention: intent = palliative.",
        "en": "Journey phase: systemic therapy in a palliative context, kept as a countable treatment line (line_number, compatible with ESMO counting). Convention: intent = palliative."
      },
      "rationale": {
        "de": "Die Therapielinie existiert im oBDS schlicht nicht — Linien zählen ist dort Projektarbeit mit Heuristiken. Als Episode mit line_number werden Linien zählbar, Zeiten von Progression bis Strategiewechsel messbar und Kohorten ohne Heuristik selektierbar."
      },
      "constraints_note": {
        "de": "Verlaufsphase — überlappungsfrei je Tumor (Validator-Regel). line_number sollte gepflegt sein; der Linienwechsel wird typischerweise per triggers begründet."
      },
      "obds_mapping": {
        "element": null,
        "note": "Dokumentierte Lücke: keine Therapielinien-Nummer im oBDS; Ableitung nur aus der Sequenz von SYST-Meldungen mit Intention=P."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.line_number",
        "opjd://0.2.0/episode.intent/palliative",
        "opjd://0.2.0/relation.type/triggers",
        "opjd://0.2.0/event.type/systemic_therapy"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/active_surveillance",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "active_surveillance",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Active Surveillance (aktive Überwachung)",
        "en": "Active surveillance"
      },
      "definition": {
        "de": "Verlaufsphase: strukturierte Überwachung mit aufgeschobenem kurativem Therapieanspruch — klassisch beim Niedrigrisiko-Prostatakarzinom. Die Episode enthält die Kontrollereignisse (PSA, Bildgebung, Re-Biopsie) und endet typischerweise mit dem Ereignis, das den Strategiewechsel begründet und per triggers-Relation die aktive Therapie auslöst.",
        "en": "Journey phase: structured surveillance with deferred curative intent. The episode contains the scheduled monitoring events and typically ends with the event that justifies the strategy change, triggering active treatment."
      },
      "rationale": {
        "de": "„Keine Therapie ist auch eine Strategie\": Im oBDS ist AS nur als Empfehlungstyp einer einzelnen Tumorkonferenz sichtbar (AS/WW/WS), nie als gelebte Phase. Als Episode wird die Strategie prüfbar: Eine Überwachungsepisode ohne Kontrollereignisse im erwarteten Intervall ist eine sichtbare Lücke — Lost-to-follow-up wird zum Befund."
      },
      "constraints_note": {
        "de": "Verlaufsphase — soll sich je Tumor nicht mit anderen Verlaufsphasen überlappen (Validator-Regel). Konvention: intent = curative (aufgeschoben)."
      },
      "clinical_notes": {
        "de": "Nicht verwechseln mit watchful_waiting: AS = kurativer Anspruch aufgeschoben, regelmäßige Kontrollen erwartet; WW = symptomorientiertes Abwarten ohne kurativen Anspruch (intent = palliative)."
      },
      "obds_mapping": {
        "element": "Menge_Tumorkonferenz/Tumorkonferenz/Therapieempfehlung (Typ AS)",
        "note": "Nur Indiz für die Ableitung (derived_from), keine Episodenentsprechung im oBDS."
      },
      "examples": [
        {
          "description": {
            "de": "Prostata-Referenzjourney: AS-Episode mit PSA-Kontrollen, beendet durch Re-Biopsie mit Upgrading (triggers → operative Phase)."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/watchful_waiting",
        "opjd://0.2.0/relation.type/triggers",
        "opjd://0.2.0/episode.intent/curative"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/watchful_waiting",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "watchful_waiting",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Watchful Waiting (abwartendes Vorgehen)",
        "en": "Watchful waiting"
      },
      "definition": {
        "de": "Verlaufsphase: symptomorientiertes Abwarten ohne kurativen Anspruch — Intervention erst bei Beschwerden, typisch bei begrenzter Lebenserwartung oder relevanter Komorbidität. Konvention: intent = palliative.",
        "en": "Journey phase: symptom-oriented waiting without curative intent — intervention only when symptoms arise, typical with limited life expectancy or relevant comorbidity. Convention: intent = palliative."
      },
      "rationale": {
        "de": "„Keine Therapie ist auch eine Strategie\": Im oBDS nur als Empfehlungstyp (WW) einer einzelnen Tumorkonferenz sichtbar, nie als gelebte Phase. Als Episode wird das bewusste Abwarten von der bloßen Dokumentationslücke unterscheidbar."
      },
      "constraints_note": {
        "de": "Verlaufsphase — soll sich je Tumor nicht mit anderen Verlaufsphasen überlappen (Validator-Regel). Konvention: intent = palliative."
      },
      "clinical_notes": {
        "de": "Nicht verwechseln mit active_surveillance: WW = ohne kurativen Anspruch, symptomorientiert; AS = kurativer Anspruch aufgeschoben, mit festem Kontrollprogramm (intent = curative)."
      },
      "obds_mapping": {
        "element": "Menge_Tumorkonferenz/Tumorkonferenz/Therapieempfehlung (Typ WW)",
        "note": "Nur Indiz für die Ableitung (derived_from), keine Episodenentsprechung im oBDS."
      },
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/active_surveillance",
        "opjd://0.2.0/episode.intent/palliative"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/study_participation",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "study_participation",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Studienphase",
        "en": "Study participation"
      },
      "definition": {
        "de": "Kontextklammer: vom Studieneinschluss (Ereignistyp study_enrollment) bis zum Ende der Studienteilnahme (EOT/EOS). Trägt verpflichtend den Studienbezug (study: Register, Nummer, optional Name und Arm) und läuft parallel zu den Verlaufsphasen — die Protokoll-Chemotherapie bleibt Teil der neoadjuvanten Phase und der Studienphase.",
        "en": "Context bracket: from study enrollment (event type study_enrollment) to the end of study participation (EOT/EOS). Mandatorily carries the study reference (registry, number, optionally name and arm) and runs parallel to the journey phases — protocol chemotherapy stays part of both the neoadjuvant phase and the study phase."
      },
      "rationale": {
        "de": "Der oBDS kennt keinen Studieneinschluss; die Studienteilnahme liegt sonst nur in Studiensystemen. Als Kontextklammer wird sie Teil der austauschbaren Journey — und die Parallelität zeigt, welche Versorgung unter Protokoll stattfand (Provenance: study)."
      },
      "constraints_note": {
        "de": "Kontextklammer — darf sich mit Verlaufsphasen und anderen Kontextklammern beliebig überlappen; dasselbe Ereignis darf in mehreren Klammern referenziert sein. Das Schema erzwingt study bei diesem Typ."
      },
      "obds_mapping": {
        "element": null,
        "note": "Dokumentierte Lücke: kein Studieneinschluss und keine Studienteilnahme im oBDS."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: EP-2025-010 (NCT99999999) vom Einschluss bis zum Restaging — die Protokoll-Chemotherapien liegen parallel in der neoadjuvanten Phase."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type/study_enrollment",
        "opjd://0.2.0/episode.study",
        "opjd://0.2.0/event.meta.provenance/study"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/primary_case",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "primary_case",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Primärfall",
        "en": "Primary case"
      },
      "definition": {
        "de": "Kontextklammer: Fallklassifikation aus der Zertifizierungswelt (DKG/OnkoZert) — Ersterkrankung, deren Primärtherapie (bzw. wesentliche Teile) in der benannten Einrichtung erfolgt. Die Klammer nennt verpflichtend die deklarierende Einrichtung (organization).",
        "en": "Context bracket: case classification from the certification world (DKG/OnkoZert) — an initial disease whose primary therapy (or essential parts of it) takes place at the named institution. The bracket mandatorily names the declaring organization."
      },
      "rationale": {
        "de": "„Wessen Fall ist das, wer zählt ihn?\" — beim Austausch zwischen Zentren muss der Empfänger wissen, wessen Zählung er vor sich hat. Das oPJD transportiert die Deklaration der Einrichtung samt Herkunft und Qualität; es rechnet die Klassifikation nicht nach (deklariert, nicht berechnet)."
      },
      "constraints_note": {
        "de": "Kontextklammer — überlappt frei. Das Schema erzwingt organization. Die exakten Definitionen variieren je Zertifizierungssystem und Kennzahlenjahr."
      },
      "clinical_notes": {
        "de": "Nicht verwechseln mit center_case: Primärfall = Ersterkrankung mit Primärtherapie in der Einrichtung; Zentrumsfall = geführt/mitbehandelt ohne Erfüllung der Primärfall-Kriterien (z. B. Übernahme nach auswärtiger Ersttherapie)."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine oBDS-Entsprechung; Herkunft ist die Zertifizierungsdokumentation (provenance: certification)."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: EP-2025-001 deklariert das Universitätsklinikum Erlangen als primärfallführende Einrichtung."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/center_case",
        "opjd://0.2.0/episode.organization",
        "opjd://0.2.0/event.meta.provenance/certification"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/center_case",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "center_case",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Zentrumsfall",
        "en": "Center case"
      },
      "definition": {
        "de": "Kontextklammer: Der Fall wird vom Zentrum geführt oder mitbehandelt, ohne die Primärfall-Kriterien zu erfüllen — z. B. Übernahme nach auswärtiger Ersttherapie. Nennt verpflichtend die deklarierende Einrichtung (organization).",
        "en": "Context bracket: the case is managed or co-treated by the center without meeting the primary-case criteria — e.g. takeover after initial therapy elsewhere. Mandatorily names the declaring organization."
      },
      "rationale": {
        "de": "Dieselbe Journey kann bei zwei Zentren unterschiedlich zählen. Die transportierte Deklaration (statt einer Nachberechnung) macht beim Austausch transparent, wessen Fallzählung gilt."
      },
      "constraints_note": {
        "de": "Kontextklammer — überlappt frei. Das Schema erzwingt organization."
      },
      "clinical_notes": {
        "de": "Nicht verwechseln mit primary_case: Der Zentrumsfall erfüllt die Primärfall-Kriterien gerade nicht — etwa weil die Ersttherapie auswärts erfolgte."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine oBDS-Entsprechung; Herkunft ist die Zertifizierungsdokumentation (provenance: certification)."
      },
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/primary_case",
        "opjd://0.2.0/episode.organization",
        "opjd://0.2.0/event.meta.provenance/certification"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.type/other",
      "kind": "episode_type",
      "path": "episode.type",
      "value": "other",
      "schema_pointer": "#/$defs/episode/properties/type",
      "instance_paths": [
        "/episodes/*/type"
      ],
      "label": {
        "de": "Sonstige Episode",
        "en": "Other episode"
      },
      "definition": {
        "de": "Auffangwert für Klammern ohne eigenen Typ. Sparsam verwenden; neue Episodentypen entstehen über den Governance-Prozess, nicht ad hoc.",
        "en": "Fallback for brackets without a dedicated type. Use sparingly; new episode types emerge via the governance process, not ad hoc."
      },
      "rationale": {
        "de": "Hält das Vokabular abschließend, ohne reale Verläufe auszusperren."
      },
      "obds_mapping": {
        "element": null,
        "note": "Kein festes oBDS-Gegenstück; abhängig vom Inhalt."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.tumor_ref",
      "kind": "field",
      "path": "episode.tumor_ref",
      "schema_pointer": "#/$defs/episode/properties/tumor_ref",
      "instance_paths": [
        "/episodes/*/tumor_ref"
      ],
      "label": {
        "de": "Tumorbezug",
        "en": "Tumor reference"
      },
      "definition": {
        "de": "Pflicht-Bezug auf die Tumorentität (tumor_id), deren Verlauf die Episode strukturiert.",
        "en": "Mandatory reference to the tumor entity (tumor_id) whose course the episode structures."
      },
      "datatype": "id",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/tumor",
        "opjd://0.2.0/tumor.tumor_id"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.intent",
      "kind": "field",
      "path": "episode.intent",
      "schema_pointer": "#/$defs/episode/properties/intent",
      "instance_paths": [
        "/episodes/*/intent"
      ],
      "label": {
        "de": "Intention (Therapieziel)",
        "en": "Intent (treatment goal)"
      },
      "definition": {
        "de": "Intention bzw. Therapieziel auf Episodenebene: curative, palliative, mixed oder unknown. Die Klammer trägt die Strategie — nicht mehr nur die Einzeltherapie.",
        "en": "Intention or treatment goal at episode level: curative, palliative, mixed or unknown. The bracket carries the strategy — no longer just the individual therapy."
      },
      "rationale": {
        "de": "Im oBDS ist die Intention ein lokales Attribut je Einzeltherapie, gegen nichts prüfbar. Auf Episodenebene wird sie zur Strategieaussage — exakt die „zusammenfassende Klammer über einen Behandlungsabschnitt\" der gematik-Spezifikation „Therapieziel Onkologie\" — und gegen Ereignisse und Folgeepisoden abgleichbar."
      },
      "datatype": "enum (4 Werte)",
      "requirement": "optional",
      "constraints_note": {
        "de": "Optional. Konventionen: active_surveillance → curative (aufgeschoben), watchful_waiting → palliative."
      },
      "obds_mapping": {
        "element": "OP/ST/SYST: Intention",
        "note": "Indiz auf Einzeltherapie-Ebene (K/P/…); die Strategie-Intention der Episode hat im oBDS keine Entsprechung."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: neoadjuvante und operative Episode mit intent = curative."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.intent/curative",
        "opjd://0.2.0/episode.intent/palliative",
        "opjd://0.2.0/episode.type/active_surveillance",
        "opjd://0.2.0/episode.type/watchful_waiting"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.intent/curative",
      "kind": "enum_value",
      "path": "episode.intent",
      "value": "curative",
      "schema_pointer": "#/$defs/episode/properties/intent",
      "instance_paths": [
        "/episodes/*/intent"
      ],
      "label": {
        "de": "kurativ",
        "en": "Curative"
      },
      "definition": {
        "de": "Die Episode verfolgt Heilung als Ziel — einschließlich aufgeschoben-kurativer Strategien wie Active Surveillance.",
        "en": "The episode pursues cure — including deferred-curative strategies such as active surveillance."
      },
      "rationale": {
        "de": "Kurativ vs. palliativ ist die grundlegendste Strategieaussage einer Phase; auf Episodenebene wird sie gegen Verlauf und Folgeepisoden prüfbar."
      },
      "obds_mapping": {
        "element": "OP/ST/SYST: Intention (K)",
        "note": "Indiz auf Einzeltherapie-Ebene; die kurative Strategie der Episode ist eine oPJD-Aussage."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/active_surveillance",
        "opjd://0.2.0/episode.intent/palliative"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.intent/palliative",
      "kind": "enum_value",
      "path": "episode.intent",
      "value": "palliative",
      "schema_pointer": "#/$defs/episode/properties/intent",
      "instance_paths": [
        "/episodes/*/intent"
      ],
      "label": {
        "de": "palliativ",
        "en": "Palliative"
      },
      "definition": {
        "de": "Die Episode zielt auf Krankheitskontrolle, Symptomlinderung und Lebensqualität, nicht auf Heilung — typisch für palliative_line und watchful_waiting.",
        "en": "The episode aims at disease control, symptom relief and quality of life, not cure — typical for palliative_line and watchful_waiting."
      },
      "rationale": {
        "de": "Die explizite palliative Strategie macht Therapielinien und Abwarte-Strategien als solche auswertbar, statt sie aus Einzeltherapie-Attributen zu erraten."
      },
      "obds_mapping": {
        "element": "OP/ST/SYST: Intention (P)",
        "note": "Indiz auf Einzeltherapie-Ebene; die palliative Strategie der Episode ist eine oPJD-Aussage."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/palliative_line",
        "opjd://0.2.0/episode.type/watchful_waiting"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.intent/mixed",
      "kind": "enum_value",
      "path": "episode.intent",
      "value": "mixed",
      "schema_pointer": "#/$defs/episode/properties/intent",
      "instance_paths": [
        "/episodes/*/intent"
      ],
      "label": {
        "de": "gemischt",
        "en": "Mixed"
      },
      "definition": {
        "de": "Innerhalb der Episode wechselt oder mischt sich die Intention, ohne dass eine Aufteilung in getrennte Episoden klinisch sinnvoll wäre.",
        "en": "Within the episode the intention changes or mixes, without a split into separate episodes being clinically meaningful."
      },
      "rationale": {
        "de": "Ehrlicher Wert für reale Verläufe statt erzwungener Eindeutigkeit."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; die Intention je Einzeltherapie (K/P) kann innerhalb einer Phase divergieren — genau dann greift mixed."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.intent/unknown"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.intent/unknown",
      "kind": "enum_value",
      "path": "episode.intent",
      "value": "unknown",
      "schema_pointer": "#/$defs/episode/properties/intent",
      "instance_paths": [
        "/episodes/*/intent"
      ],
      "label": {
        "de": "unbekannt",
        "en": "Unknown"
      },
      "definition": {
        "de": "Die Intention ist nicht bekannt oder nicht ableitbar — eine ehrliche Lücke statt einer geratenen Strategie.",
        "en": "The intention is unknown or not derivable — an honest gap instead of a guessed strategy."
      },
      "rationale": {
        "de": "Bei algorithmisch abgeleiteten Episoden aus Altdaten oft der korrekte Wert; er hält die Ableitung ehrlich."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; fehlende Intentionsangaben der Einzeltherapien führen bei der Ableitung zu unknown."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.quality/derived"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.organization",
      "kind": "field",
      "path": "episode.organization",
      "schema_pointer": "#/$defs/episode/properties/organization",
      "instance_paths": [
        "/episodes/*/organization"
      ],
      "label": {
        "de": "Deklarierende Einrichtung",
        "en": "Declaring organization"
      },
      "definition": {
        "de": "Die deklarierende bzw. behandelnde Einrichtung einer Fallklassifikations-Klammer — beantwortet: Wessen Fallzählung gilt hier? Pflicht bei type = primary_case oder center_case.",
        "en": "The declaring or treating institution of a case classification bracket — answers: whose case count applies here? Required for type = primary_case or center_case."
      },
      "rationale": {
        "de": "Die Primärfall-/Zentrumsfall-Deklaration ist ohne die zählende Einrichtung wertlos: Die Definitionen variieren je Zertifizierungssystem und Kennzahlenjahr, dieselbe Journey kann bei zwei Zentren unterschiedlich zählen. Der Empfänger muss wissen, wessen Deklaration er übernimmt."
      },
      "datatype": "string",
      "requirement": "conditional",
      "constraints_note": {
        "de": "Bedingt verpflichtend: Das Schema erzwingt organization bei primary_case und center_case (allOf-Bedingungsregel)."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine oBDS-Entsprechung; die Fallklassifikation stammt aus der Zertifizierungswelt (DKG/OnkoZert)."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: Primärfall-Klammer mit organization = Universitätsklinikum Erlangen."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/primary_case",
        "opjd://0.2.0/episode.type/center_case"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.line_number",
      "kind": "field",
      "path": "episode.line_number",
      "schema_pointer": "#/$defs/episode/properties/line_number",
      "instance_paths": [
        "/episodes/*/line_number"
      ],
      "label": {
        "de": "Therapielinie",
        "en": "Line number"
      },
      "definition": {
        "de": "Nummer der Therapielinie (ganzzahlig, ≥ 1), vor allem für palliative_line — anschlussfähig an die ESMO-Zählung. Macht Linien zählbar und Linienwechsel abfragbar.",
        "en": "Number of the treatment line (integer, ≥ 1), primarily for palliative_line — compatible with ESMO counting. Makes lines countable and line changes queryable."
      },
      "rationale": {
        "de": "Die Therapielinie gibt es im oBDS schlicht nicht — Linien zählen ist dort Projektarbeit mit Heuristiken. Als explizites Episodenfeld werden Fragen wie „Zeit von Progression bis Strategiewechsel\" oder „Anzahl Linien je Patient\" zu einfachen Abfragen."
      },
      "datatype": "integer",
      "requirement": "optional",
      "constraints_note": {
        "de": "Optional; Konvention: vor allem bei palliative_line gepflegt. journey_status.current_line spiegelt die aktuelle Linie je Tumor."
      },
      "obds_mapping": {
        "element": null,
        "note": "Dokumentierte Lücke: keine Therapielinien-Nummer im oBDS."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/palliative_line",
        "opjd://0.2.0/journey_status.current_line",
        "opjd://0.2.0/relation.type/triggers"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.start_event",
      "kind": "field",
      "path": "episode.start_event",
      "schema_pointer": "#/$defs/episode/properties/start_event",
      "instance_paths": [
        "/episodes/*/start_event"
      ],
      "label": {
        "de": "Grenzereignis: Beginn",
        "en": "Start event"
      },
      "definition": {
        "de": "Das Ereignis, das die Episode klinisch eröffnet (event_id) — z. B. der Tumorboard-Beschluss für die neoadjuvante Phase oder der Strategiebeschluss für die Überwachung. Die Episode ist durch klinische Ereignisse begrenzt, nicht durch Kalenderdaten.",
        "en": "The event that clinically opens the episode (event_id) — e.g. the tumor board decision for the neoadjuvant phase or the strategy decision for surveillance. Episodes are bounded by clinical events, not calendar dates."
      },
      "rationale": {
        "de": "Klinische Klammern statt Zeitfenster: Der Beginn ist ein adressierbares Ereignis mit eigener Evidenz, kein gesetztes Datum — die Grenzziehung bleibt begründbar und kuratierbar."
      },
      "datatype": "id",
      "requirement": "optional",
      "constraints_note": {
        "de": "Optional; referenziert eine event_id (Existenz ist Validator-Ebene). Das Grenzereignis kann, muss aber nicht in events[] enthalten sein — typisch markiert der Beschluss den Beginn, ohne selbst Teil der Phase zu sein."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Ohne Episodenobjekt kennt der oBDS auch keine Grenzereignisse."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: Die neoadjuvante Episode beginnt mit dem Tumorboard-Beschluss (start_event = EVT-2025-012), der selbst nicht in events[] liegt."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.end_event",
        "opjd://0.2.0/event.key_event",
        "opjd://0.2.0/episode.events"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.end_event",
      "kind": "field",
      "path": "episode.end_event",
      "schema_pointer": "#/$defs/episode/properties/end_event",
      "instance_paths": [
        "/episodes/*/end_event"
      ],
      "label": {
        "de": "Grenzereignis: Ende",
        "en": "End event"
      },
      "definition": {
        "de": "Das Ereignis, das die Episode klinisch beendet (event_id) — z. B. die OP-Freigabe nach Restaging für die neoadjuvante Phase oder das Ereignis, das den Strategiewechsel begründet, für die Überwachung.",
        "en": "The event that clinically closes the episode (event_id) — e.g. the surgery clearance after restaging for the neoadjuvant phase, or the event justifying the strategy change for surveillance."
      },
      "rationale": {
        "de": "Das Ende einer Phase ist eine klinische Aussage („warum ist sie vorbei?\"), kein Datumsende. Zusammen mit triggers wird der Übergang erklärbar statt erratbar."
      },
      "datatype": "id",
      "requirement": "optional",
      "constraints_note": {
        "de": "Optional; bei laufenden Episoden (status = active) typischerweise nicht gesetzt."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Ohne Episodenobjekt kennt der oBDS auch keine Grenzereignisse."
      },
      "examples": [
        {
          "description": {
            "de": "Prostata-Referenzjourney: Die AS-Episode endet mit der OP-Empfehlung des Boards (end_event = EVT-P-009), nachdem das Upgrading den Strategiewechsel begründet hat."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.start_event",
        "opjd://0.2.0/relation.type/triggers",
        "opjd://0.2.0/episode.status"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.events",
      "kind": "field",
      "path": "episode.events",
      "schema_pointer": "#/$defs/episode/properties/events",
      "instance_paths": [
        "/episodes/*/events"
      ],
      "label": {
        "de": "Zugeordnete Ereignisse",
        "en": "Assigned events"
      },
      "definition": {
        "de": "Alle Ereignisse dieser Episode als Liste von event_ids (mindestens eines). Die Zuordnung wohnt in der Episode, nicht im Ereignis: Die Klammer ist die kuratierbare Interpretationsschicht, die Ereignisse bleiben unangetastet.",
        "en": "All events of this episode as a list of event_ids (at least one). Membership lives in the episode, not the event: the bracket is the curatable interpretation layer, the events stay untouched."
      },
      "rationale": {
        "de": "Richtungsentscheidung des Modells: Ereignisse tragen keinen Episoden-Verweis. Ändert sich die Kuratierung, ändern sich die Episoden — nie die Ereignisse. Dasselbe Ereignis darf in mehreren Klammern referenziert sein (Parallelität der Kontextklammern); die Klammer gruppiert, die Relation verbindet."
      },
      "datatype": "array<id> (minItems 1)",
      "requirement": "required",
      "constraints_note": {
        "de": "Pflichtfeld, minItems 1. Referenzielle Integrität der event_ids ist Validator-Ebene. Verlaufsphasen desselben Tumors sollen sich nicht überlappen; Kontextklammern dürfen."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Zusammenhang entsteht im oBDS nur durch Schachtelung innerhalb einer Meldung oder eine gemeinsame Tumor-ID — nie durch eine kuratierbare Zuordnungsliste."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: Die Protokoll-Chemotherapien liegen zugleich in events[] der neoadjuvanten Phase und der Studienphase."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event",
        "opjd://0.2.0/episode.start_event",
        "opjd://0.2.0/episode.end_event",
        "opjd://0.2.0/relation"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.status",
      "kind": "field",
      "path": "episode.status",
      "schema_pointer": "#/$defs/episode/properties/status",
      "instance_paths": [
        "/episodes/*/status"
      ],
      "label": {
        "de": "Episodenstatus",
        "en": "Episode status"
      },
      "definition": {
        "de": "Bearbeitungsstand der Episode: active (läuft), completed (abgeschlossen) oder unknown.",
        "en": "Processing state of the episode: active (ongoing), completed, or unknown."
      },
      "datatype": "enum (3 Werte)",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/journey_status.active_episode"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.status/active",
      "kind": "enum_value",
      "path": "episode.status",
      "value": "active",
      "schema_pointer": "#/$defs/episode/properties/status",
      "instance_paths": [
        "/episodes/*/status"
      ],
      "label": {
        "de": "laufend",
        "en": "Active"
      },
      "definition": {
        "de": "Die Episode ist zum Stand der Lieferung noch nicht abgeschlossen.",
        "en": "The episode is not yet completed as of the delivery."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/episode.status/completed",
      "kind": "enum_value",
      "path": "episode.status",
      "value": "completed",
      "schema_pointer": "#/$defs/episode/properties/status",
      "instance_paths": [
        "/episodes/*/status"
      ],
      "label": {
        "de": "abgeschlossen",
        "en": "Completed"
      },
      "definition": {
        "de": "Die Episode ist abgeschlossen; end_event bzw. das letzte zugeordnete Ereignis markiert das Ende.",
        "en": "The episode is completed; end_event or the last assigned event marks its end."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/episode.status/unknown",
      "kind": "enum_value",
      "path": "episode.status",
      "value": "unknown",
      "schema_pointer": "#/$defs/episode/properties/status",
      "instance_paths": [
        "/episodes/*/status"
      ],
      "label": {
        "de": "unbekannt",
        "en": "Unknown"
      },
      "definition": {
        "de": "Der Stand der Episode ist nicht bekannt — z. B. bei abgeleiteten Altdaten.",
        "en": "The state of the episode is unknown — e.g. for derived legacy data."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/episode.meta",
      "kind": "field",
      "path": "episode.meta",
      "schema_pointer": "#/$defs/episode/properties/meta",
      "instance_paths": [
        "/episodes/*/meta"
      ],
      "label": {
        "de": "Interpretations-Metadaten (Episode)",
        "en": "Interpretation metadata (episode)"
      },
      "definition": {
        "de": "Metadaten der Interpretationsschicht für diese Episode: Ist die Klammer algorithmisch vorgeschlagen (derived) oder fachlich bestätigt (curated) — samt Indizien (derived_from) und annotierender Rolle.",
        "en": "Interpretation-layer metadata for this episode: whether the bracket is algorithmically proposed (derived) or professionally confirmed (curated) — including evidence (derived_from) and the annotating role."
      },
      "datatype": "interpretation_meta",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.study",
      "kind": "object",
      "path": "episode.study",
      "schema_pointer": "#/$defs/episode/properties/study",
      "instance_paths": [
        "/episodes/*/study"
      ],
      "label": {
        "de": "Studienbezug",
        "en": "Study reference"
      },
      "definition": {
        "de": "Der Studienbezug einer Studienphase: Register (NCT/DRKS/EudraCT/ISRCTN/other), Registernummer (code), optional Studienname/Akronym und Arm. Pflicht bei type = study_participation.",
        "en": "The study reference of a study-participation episode: registry (NCT/DRKS/EudraCT/ISRCTN/other), registry number (code), optionally study name/acronym and arm. Required for type = study_participation."
      },
      "rationale": {
        "de": "Eine Studienphase ohne identifizierbare Studie wäre eine leere Behauptung. Der Registerbezug macht die Teilnahme extern auflösbar (z. B. über ClinicalTrials.gov) und standortübergreifend zusammenführbar."
      },
      "constraints_note": {
        "de": "Bedingt verpflichtend: Das Schema erzwingt study bei study_participation; innerhalb des Objekts sind registry und code Pflicht."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine oBDS-Entsprechung; Studieninformation liegt sonst nur in Studiensystemen."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: NCT99999999, „SYNTH-NEO-01\", Arm „Neoadjuvante Chemo-Immuntherapie\"."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/study_participation",
        "opjd://0.2.0/event.type/study_enrollment",
        "opjd://0.2.0/episode.study.registry"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.study.registry",
      "kind": "field",
      "path": "episode.study.registry",
      "schema_pointer": "#/$defs/episode/properties/study/properties/registry",
      "instance_paths": [
        "/episodes/*/study/registry"
      ],
      "label": {
        "de": "Studienregister",
        "en": "Study registry"
      },
      "definition": {
        "de": "Das Studienregister, in dem die Studie geführt wird: NCT, DRKS, EudraCT, ISRCTN oder other.",
        "en": "The registry in which the study is listed: NCT, DRKS, EudraCT, ISRCTN or other."
      },
      "datatype": "enum (5 Werte)",
      "requirement": "required",
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.study.code"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.study.registry/NCT",
      "kind": "enum_value",
      "path": "episode.study.registry",
      "value": "NCT",
      "schema_pointer": "#/$defs/episode/properties/study/properties/registry",
      "instance_paths": [
        "/episodes/*/study/registry"
      ],
      "label": {
        "de": "ClinicalTrials.gov (NCT)",
        "en": "ClinicalTrials.gov (NCT)"
      },
      "definition": {
        "de": "US-Register ClinicalTrials.gov; code trägt die NCT-Nummer (z. B. NCT99999999).",
        "en": "US registry ClinicalTrials.gov; code carries the NCT number (e.g. NCT99999999)."
      },
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/episode.study.registry/DRKS",
      "kind": "enum_value",
      "path": "episode.study.registry",
      "value": "DRKS",
      "schema_pointer": "#/$defs/episode/properties/study/properties/registry",
      "instance_paths": [
        "/episodes/*/study/registry"
      ],
      "label": {
        "de": "Deutsches Register Klinischer Studien (DRKS)",
        "en": "German Clinical Trials Register (DRKS)"
      },
      "definition": {
        "de": "Deutsches Register Klinischer Studien; code trägt die DRKS-ID.",
        "en": "German Clinical Trials Register; code carries the DRKS ID."
      },
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/episode.study.registry/EudraCT",
      "kind": "enum_value",
      "path": "episode.study.registry",
      "value": "EudraCT",
      "schema_pointer": "#/$defs/episode/properties/study/properties/registry",
      "instance_paths": [
        "/episodes/*/study/registry"
      ],
      "label": {
        "de": "EudraCT",
        "en": "EudraCT"
      },
      "definition": {
        "de": "EU-Register für klinische Arzneimittelprüfungen (EudraCT/CTIS); code trägt die EudraCT-Nummer.",
        "en": "EU registry for clinical drug trials (EudraCT/CTIS); code carries the EudraCT number."
      },
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/episode.study.registry/ISRCTN",
      "kind": "enum_value",
      "path": "episode.study.registry",
      "value": "ISRCTN",
      "schema_pointer": "#/$defs/episode/properties/study/properties/registry",
      "instance_paths": [
        "/episodes/*/study/registry"
      ],
      "label": {
        "de": "ISRCTN-Register",
        "en": "ISRCTN registry"
      },
      "definition": {
        "de": "Internationales ISRCTN-Register; code trägt die ISRCTN-Nummer.",
        "en": "International ISRCTN registry; code carries the ISRCTN number."
      },
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/episode.study.registry/other",
      "kind": "enum_value",
      "path": "episode.study.registry",
      "value": "other",
      "schema_pointer": "#/$defs/episode/properties/study/properties/registry",
      "instance_paths": [
        "/episodes/*/study/registry"
      ],
      "label": {
        "de": "anderes Register",
        "en": "Other registry"
      },
      "definition": {
        "de": "Ein nicht aufgeführtes Studienregister; das konkrete Register sollte aus name bzw. code hervorgehen.",
        "en": "A registry not listed here; the concrete registry should be evident from name or code."
      },
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/episode.study.code",
      "kind": "field",
      "path": "episode.study.code",
      "schema_pointer": "#/$defs/episode/properties/study/properties/code",
      "instance_paths": [
        "/episodes/*/study/code"
      ],
      "label": {
        "de": "Registernummer",
        "en": "Registry number"
      },
      "definition": {
        "de": "Registernummer der Studie im angegebenen Register, z. B. die NCT-Nummer.",
        "en": "Registry number of the study in the given registry, e.g. the NCT number."
      },
      "datatype": "string",
      "requirement": "required",
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.study.registry"
      ]
    },
    {
      "id": "opjd://0.2.0/episode.study.name",
      "kind": "field",
      "path": "episode.study.name",
      "schema_pointer": "#/$defs/episode/properties/study/properties/name",
      "instance_paths": [
        "/episodes/*/study/name"
      ],
      "label": {
        "de": "Studienname",
        "en": "Study name"
      },
      "definition": {
        "de": "Studienname bzw. Akronym, z. B. SYNTH-NEO-01.",
        "en": "Study name or acronym, e.g. SYNTH-NEO-01."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/episode.study.arm",
      "kind": "field",
      "path": "episode.study.arm",
      "schema_pointer": "#/$defs/episode/properties/study/properties/arm",
      "instance_paths": [
        "/episodes/*/study/arm"
      ],
      "label": {
        "de": "Studienarm",
        "en": "Study arm"
      },
      "definition": {
        "de": "Studienarm des Patienten, sofern bekannt und übermittelbar (z. B. bei Verblindung nicht verfügbar).",
        "en": "The patient’s study arm, where known and transmittable (e.g. unavailable under blinding)."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.2.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/relation",
      "kind": "object",
      "path": "relation",
      "schema_pointer": "#/$defs/relation",
      "instance_paths": [
        "/relations/*"
      ],
      "label": {
        "de": "Relation (Bezug)",
        "en": "Relation"
      },
      "definition": {
        "de": "Gerichteter, typisierter Bezug als eigenständiges Datenobjekt mit eigener ID und eigener Qualitätsangabe. Die Leserichtung folgt der Grammatik, nicht der Zeit: from [Subjekt] —type [Verb]→ to [Objekt]; from ist immer das Element, das den Bezug ausspricht. Vier abschließende Typen: result_of, implements, assesses, triggers.",
        "en": "A directed, typed reference as a data object of its own, with its own ID and quality rating. Reading direction follows grammar, not time: from [subject] —type [verb]→ to [object]; from is always the element stating the reference. Four closed types: result_of, implements, assesses, triggers."
      },
      "rationale": {
        "de": "Zutat 3 der Secret Sauce: die minimalen Kausalitäten. Bewusst keine umfassende Ontologie, sondern genau die vier Bezüge, die heute niemand aus oBDS-Meldungen ableiten kann — und die jeder braucht, der einen Verlauf verstehen, prüfen oder auswerten will. Als eigenes Objekt trägt die Relation ihre eigene Herkunft (curated/derived): Eine Kante kann Hypothese sein, ohne die Ereignisse anzutasten. Bewusst kein Relationstyp sind der Tumorbezug (Pflichtfeld tumor_ref), der OP-Zweck (Intention in der Nutzlast) und die Episodenzugehörigkeit (events[]) — die Klammer gruppiert, die Relation verbindet."
      },
      "constraints_note": {
        "de": "Pflicht: relation_id, type, from, to, meta. Erwartete Ziele je Typ: result_of → Ereignis, implements → Ereignis, assesses → Episode oder Ereignis, triggers → Episode. Neue Typen entstehen nur über den Governance-Prozess."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Der oBDS kennt keine expliziten Bezüge zwischen Dokumenten; die optionalen Anker OP_ID/ST_ID/SYST_ID werden in der Praxis nicht einmal eingelesen."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: implements (Chemo → Board-Beschluss), assesses (Restaging → Neoadjuvanz), result_of (Pathobefund → Lobektomie)."
          },
          "ref": "opjd-example-nsclc"
        },
        {
          "description": {
            "de": "Prostata-Referenzjourney: triggers (Upgrading-Befund → operative Episode) beendet die Überwachung begründet."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/relation.type/result_of",
        "opjd://0.2.0/relation.type/implements",
        "opjd://0.2.0/relation.type/assesses",
        "opjd://0.2.0/relation.type/triggers",
        "opjd://0.2.0/relation.meta"
      ]
    },
    {
      "id": "opjd://0.2.0/relation.relation_id",
      "kind": "field",
      "path": "relation.relation_id",
      "schema_pointer": "#/$defs/relation/properties/relation_id",
      "instance_paths": [
        "/relations/*/relation_id"
      ],
      "label": {
        "de": "Relations-ID",
        "en": "Relation ID"
      },
      "definition": {
        "de": "Stabile Kennung der Relation (Konvention: REL-…).",
        "en": "Stable identifier of the relation (convention: REL-…)."
      },
      "datatype": "id",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/id"
      ]
    },
    {
      "id": "opjd://0.2.0/relation.type",
      "kind": "field",
      "path": "relation.type",
      "schema_pointer": "#/$defs/relation/properties/type",
      "instance_paths": [
        "/relations/*/type"
      ],
      "label": {
        "de": "Relationstyp",
        "en": "Relation type"
      },
      "definition": {
        "de": "Art des Bezugs — abschließendes Vokabular: result_of („ist Ergebnis von\"), implements („setzt um\"), assesses („beurteilt\"), triggers („löst aus\"). Die Typbezeichner sind englische, maschinenlesbare Schlüssel; die deutsche Lesart ist normativer Bestandteil der Spezifikation, nicht bloße Übersetzung.",
        "en": "Kind of reference — closed vocabulary: result_of, implements, assesses, triggers. The identifiers are English machine-readable keys; the German reading is a normative part of the specification."
      },
      "datatype": "enum (4 Werte)",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/relation.type/result_of",
        "opjd://0.2.0/relation.type/implements",
        "opjd://0.2.0/relation.type/assesses",
        "opjd://0.2.0/relation.type/triggers"
      ]
    },
    {
      "id": "opjd://0.2.0/relation.type/result_of",
      "kind": "relation_type",
      "path": "relation.type",
      "value": "result_of",
      "schema_pointer": "#/$defs/relation/properties/type",
      "instance_paths": [
        "/relations/*/type"
      ],
      "label": {
        "de": "ist Ergebnis von",
        "en": "Is result of"
      },
      "definition": {
        "de": "Ein Befund verweist auf die Maßnahme, aus der er hervorgegangen ist: Der Pathologiebefund ist Ergebnis der Lobektomie, die Molekularpathologie Ergebnis der Biopsie. from = der Befund (spricht den Bezug aus), to = der Eingriff, der das Material oder Resultat geliefert hat. Beantwortet: „Woher stammt dieser Befund?\" — der Pfeil zeigt zeitlich rückwärts, die Leserichtung folgt der Grammatik, nicht der Zeit.",
        "en": "A finding points to the measure it originated from: the pathology report is the result of the lobectomy, molecular pathology the result of the biopsy. from = the finding (states the reference), to = the procedure that supplied the material or result. Answers: “Where does this finding come from?” — the arrow points backwards in time; reading follows grammar, not chronology."
      },
      "rationale": {
        "de": "Macht prüfbar: Eine operative Episode ohne eingehenden result_of-Pathobefund ist eine sichtbare Lücke; ein Befunddatum vor dem Eingriffsdatum ein Widerspruch. Genau diese Zuordnung ist aus oBDS-Meldungen nachweislich nicht ableitbar — im oPJD wird sie ausgesprochen statt geraten."
      },
      "clinical_notes": {
        "de": "Nicht verwechseln: result_of ist echte Herkunft (dieses Präparat, dieser Eingriff) — nicht bloße zeitliche Nähe. Befunde können auch von Biopsien stammen, die selbst nicht meldepflichtig sind."
      },
      "obds_mapping": {
        "element": null,
        "note": "Dokumentierte Kernlücke: kein Verweis vom Pathologiebefund auf den liefernden Eingriff; die optionalen Anker (OP_ID) sind praktisch bedeutungslos."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: REL-003 verbindet den ypT1b-Befund mit der Lobektomie — als derived mit Indizien „Datumsfenster\" und „einziger Eingriff am Tumor\"."
          },
          "ref": "opjd-example-nsclc"
        },
        {
          "description": {
            "de": "Prostata-Referenzjourney: Jeder Pathobefund hängt per result_of an seiner Biopsie bzw. der Prostatektomie (REL-P-01, REL-P-03, REL-P-06)."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type/pathology_report",
        "opjd://0.2.0/event.type/surgery",
        "opjd://0.2.0/episode.type/surgical",
        "opjd://0.2.0/interpretation_meta.derived_from"
      ]
    },
    {
      "id": "opjd://0.2.0/relation.type/implements",
      "kind": "relation_type",
      "path": "relation.type",
      "value": "implements",
      "schema_pointer": "#/$defs/relation/properties/type",
      "instance_paths": [
        "/relations/*/type"
      ],
      "label": {
        "de": "setzt um",
        "en": "Implements"
      },
      "definition": {
        "de": "Eine durchgeführte Maßnahme erklärt, auf welchen Beschluss oder welche Empfehlung sie antwortet: Die Chemotherapie setzt den Tumorboard-Beschluss um, die Operation die OP-Freigabe. from = die Maßnahme (OP, Systemtherapie, Bestrahlung), to = der Beschluss bzw. die Empfehlung (typisch: Tumorboard). Beantwortet: „Worauf reagiert diese Therapie?\"",
        "en": "An executed measure states which decision or recommendation it responds to: the chemotherapy implements the tumor board decision, the surgery implements the clearance. from = the measure (surgery, systemic therapy, radiation), to = the decision or recommendation (typically a tumor board). Answers: “What does this therapy respond to?”"
      },
      "rationale": {
        "de": "Macht prüfbar: Eine Tumorboard-Empfehlung ohne implements-Relation binnen definierter Frist wird zum messbaren Leitlinienadhärenz-Signal; die Zeit von Beschluss bis Therapiebeginn wird zur Kennzahl. Im oBDS existiert die typisierte Empfehlung, aber kein Rückverweis der ausgeführten Therapie — Plan und Umsetzung bleiben unverbunden."
      },
      "clinical_notes": {
        "de": "Nicht verwechseln: implements heißt nicht „eins zu eins wie empfohlen\". Abweichungen (Patientenwunsch, Toxizität) bleiben in der Nutzlast dokumentiert — die Relation sagt nur, worauf die Maßnahme antwortet."
      },
      "obds_mapping": {
        "element": "Tumorkonferenz/Therapieempfehlung",
        "note": "Die Empfehlung existiert im oBDS (typisiert CH/HO/IM/OP/…), aber ohne Rückverweis der ausgeführten Therapie; die Relation ergänzt die fehlende Kante."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: REL-001 — die neoadjuvante Chemotherapie setzt den Tumorboard-Beschluss EVT-2025-012 um."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type/tumor_board",
        "opjd://0.2.0/relation.type/triggers",
        "opjd://0.2.0/event.type/systemic_therapy"
      ]
    },
    {
      "id": "opjd://0.2.0/relation.type/assesses",
      "kind": "relation_type",
      "path": "relation.type",
      "value": "assesses",
      "schema_pointer": "#/$defs/relation/properties/type",
      "instance_paths": [
        "/relations/*/type"
      ],
      "label": {
        "de": "beurteilt",
        "en": "Assesses"
      },
      "definition": {
        "de": "Ein Bewertungsereignis benennt, was es bewertet: Das Restaging-CT beurteilt die neoadjuvante Episode (Response), die Verlaufsbeurteilung die palliative Erstlinie (Ansprechen). from = das Bewertungsereignis (Verlauf, Restaging), to = typischerweise eine Episode, ausnahmsweise eine einzelne Maßnahme. Beantwortet: „Was bewertet dieser Verlauf?\"",
        "en": "An assessment event names what it assesses: the restaging CT assesses the neoadjuvant episode (response), the progress assessment the first palliative line. from = the assessment event (progress report, restaging), to = typically an episode, exceptionally a single measure. Answers: “What does this assessment evaluate?”"
      },
      "rationale": {
        "de": "Macht prüfbar: Eine neoadjuvante Episode ohne assesses-Relation bedeutet: Response-Beurteilung fehlt. Und ein ypTNM ohne vorausgehende neoadjuvante Episode ist ein Widerspruch — der oBDS trägt den Beweis (y-Präfix), erst die Struktur macht ihn prüfbar. Die Response-Beurteilung bekommt ihren Gegenstand."
      },
      "clinical_notes": {
        "de": "Nicht verwechseln: Nicht jeder Verlauf braucht assesses — nur wo sich eine Bewertung erkennbar auf eine Behandlungsphase bezieht. Ein allgemeiner Nachsorge-Verlauf bleibt ein einfaches Ereignis in der Nachsorge-Episode."
      },
      "obds_mapping": {
        "element": null,
        "note": "Der oBDS-Verlauf trägt Gesamtbeurteilungen ohne Bezugsobjekt — worauf sich die Bewertung bezieht, ist dort nicht ausdrückbar."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: REL-002 — das Restaging (EVT-2025-018) beurteilt die neoadjuvante Episode EP-2025-002."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type/progress_report",
        "opjd://0.2.0/episode.type/neoadjuvant",
        "opjd://0.2.0/relation.to"
      ]
    },
    {
      "id": "opjd://0.2.0/relation.type/triggers",
      "kind": "relation_type",
      "path": "relation.type",
      "value": "triggers",
      "schema_pointer": "#/$defs/relation/properties/type",
      "instance_paths": [
        "/relations/*/type"
      ],
      "label": {
        "de": "löst aus",
        "en": "Triggers"
      },
      "definition": {
        "de": "Ein auslösendes Ereignis begründet den Beginn einer neuen Episode oder Therapielinie: Der Progressionsnachweis löst die Progressions-Episode bzw. die neue Linie aus. from = der Auslöser (Progression, Toxizität, Patientenentscheidung), to = die neu beginnende Episode. Als einziger Typ zeigt triggers in die Zukunft. Beantwortet: „Warum beginnt diese Episode?\"",
        "en": "A triggering event justifies the start of a new episode or treatment line: the evidence of progression triggers the progression episode or the new line. from = the trigger (progression, toxicity, patient decision), to = the newly starting episode. The only type pointing forward in time. Answers: “Why does this episode begin?”"
      },
      "rationale": {
        "de": "Macht prüfbar: Eine Progression ohne triggers-Relation ist ein Verlauf ohne dokumentierte Konsequenz; umgekehrt sollte jede Folge-Episode einen Auslöser haben — Übergänge werden erklärbar statt erratbar. Der Strategiewechsel wird Datum statt Interpretation."
      },
      "clinical_notes": {
        "de": "Nicht verwechseln: triggers begründet den Übergang („warum gibt es die neue Klammer\"), implements die Umsetzung („worauf antwortet die Maßnahme\"). Typische Kette: Die Progression triggers die neue Episode; deren Therapie implements den neuen Tumorboard-Beschluss."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Der oBDS kennt keine Begründungskante zwischen Befund und Folgephase."
      },
      "examples": [
        {
          "description": {
            "de": "Prostata-Referenzjourney: REL-P-04 — das histologische Upgrading beendet die Überwachung und löst die operative Episode aus."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/relation.type/implements",
        "opjd://0.2.0/episode.type/progression",
        "opjd://0.2.0/episode.type/active_surveillance"
      ]
    },
    {
      "id": "opjd://0.2.0/relation.from",
      "kind": "field",
      "path": "relation.from",
      "schema_pointer": "#/$defs/relation/properties/from",
      "instance_paths": [
        "/relations/*/from"
      ],
      "label": {
        "de": "Ausgangspunkt (from)",
        "en": "Source (from)"
      },
      "definition": {
        "de": "Die event_id des aussprechenden Ereignisses — des Elements, das den Bezug ausspricht: der Befund (result_of), die Maßnahme (implements), die Bewertung (assesses), der Auslöser (triggers). Grammatisches Subjekt der Relation.",
        "en": "The event_id of the stating event — the element that states the reference: the finding (result_of), the measure (implements), the assessment (assesses), the trigger (triggers). Grammatical subject of the relation."
      },
      "rationale": {
        "de": "Merkregel der Leserichtung: from ist immer das Element, das den Bezug ausspricht. Der Pfeil folgt der Grammatik, nicht der Zeit — bei result_of zeigt er zeitlich rückwärts, bei triggers vorwärts."
      },
      "datatype": "id",
      "requirement": "required",
      "constraints_note": {
        "de": "Pflichtfeld; stets eine event_id, nie eine Episode. Existenz der Referenz ist Validator-Ebene."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Der oBDS kennt keine Bezugskanten zwischen Dokumenten (siehe relation)."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/relation.to",
        "opjd://0.2.0/relation.type"
      ]
    },
    {
      "id": "opjd://0.2.0/relation.to",
      "kind": "field",
      "path": "relation.to",
      "schema_pointer": "#/$defs/relation/properties/to",
      "instance_paths": [
        "/relations/*/to"
      ],
      "label": {
        "de": "Bezugsziel (to)",
        "en": "Target (to)"
      },
      "definition": {
        "de": "Die Kennung des Bezugsziels — grammatisches Objekt der Relation. Typabhängig: event_id bei result_of (der Eingriff) und implements (der Beschluss); episode_id oder event_id bei assesses; episode_id bei triggers (die neu beginnende Klammer).",
        "en": "The identifier of the reference target — grammatical object of the relation. Type-dependent: an event_id for result_of (the procedure) and implements (the decision); an episode_id or event_id for assesses; an episode_id for triggers (the newly starting bracket)."
      },
      "rationale": {
        "de": "Dass Relationen auch auf Episoden zeigen können, macht die Klammer selbst zum Bezugsobjekt: Eine Response-Beurteilung bewertet die Phase, nicht eine Einzelgabe; ein Auslöser begründet die Klammer, nicht deren erstes Ereignis."
      },
      "datatype": "id",
      "requirement": "required",
      "constraints_note": {
        "de": "Pflichtfeld. Die erwarteten Zieltypen je Relationstyp sind normative Konvention und werden auf Validator-Ebene geprüft, nicht vom Schema erzwungen."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Der oBDS kennt keine Bezugskanten zwischen Dokumenten (siehe relation)."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/relation.from",
        "opjd://0.2.0/relation.type/assesses",
        "opjd://0.2.0/relation.type/triggers"
      ]
    },
    {
      "id": "opjd://0.2.0/relation.note",
      "kind": "field",
      "path": "relation.note",
      "schema_pointer": "#/$defs/relation/properties/note",
      "instance_paths": [
        "/relations/*/note"
      ],
      "label": {
        "de": "Anmerkung",
        "en": "Note"
      },
      "definition": {
        "de": "Freitext-Anmerkung zur Relation, z. B. die Begründung des Bezugs.",
        "en": "Free-text note on the relation, e.g. the reasoning behind the reference."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/relation.meta",
      "kind": "field",
      "path": "relation.meta",
      "schema_pointer": "#/$defs/relation/properties/meta",
      "instance_paths": [
        "/relations/*/meta"
      ],
      "label": {
        "de": "Interpretations-Metadaten (Relation)",
        "en": "Interpretation metadata (relation)"
      },
      "definition": {
        "de": "Metadaten der Interpretationsschicht für diese Relation: curated oder derived, samt Indizien. Eine Kante kann Maschinen-Hypothese sein, ohne dass die verbundenen Ereignisse davon berührt werden.",
        "en": "Interpretation-layer metadata for this relation: curated or derived, including evidence. An edge can be a machine hypothesis without touching the connected events."
      },
      "datatype": "interpretation_meta",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta"
      ]
    },
    {
      "id": "opjd://0.2.0/journey_status",
      "kind": "object",
      "path": "journey_status",
      "schema_pointer": "#/$defs/journeyStatus",
      "instance_paths": [
        "/journey_status/*"
      ],
      "label": {
        "de": "Journey-Status",
        "en": "Journey status"
      },
      "definition": {
        "de": "Optionaler konsolidierter aktueller Zustand je Tumor: aktive Episode, aktuelle Therapielinie und letzte Gesamtbeurteilung. Eine abgeleitete Momentaufnahme zum Lieferzeitpunkt — keine neue Faktenquelle.",
        "en": "Optional consolidated current state per tumor: active episode, current treatment line and last overall assessment. A derived snapshot at delivery time — not a new source of facts."
      },
      "rationale": {
        "de": "Beantwortet die häufigste klinische Frage — „Wo steht dieser Patient gerade?\" — ohne dass der Empfänger die gesamte Journey rekonstruieren muss (z. B. für die Tumorboard-Vorbereitung). Die Redundanz ist bewusst: Der Status muss aus Episoden und Ereignissen ableitbar sein; eine Abweichung ist ein Validator-Befund."
      },
      "constraints_note": {
        "de": "Optional; je Tumor ist höchstens ein Eintrag sinnvoll. tumor_ref ist Pflicht."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; im oBDS müsste der aktuelle Stand aus dem Meldungsstapel rekonstruiert werden."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: aktive Episode EP-2025-003, letzte Beurteilung T (Teilremission) aus dem Restaging."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/journey_status.active_episode",
        "opjd://0.2.0/journey_status.current_line",
        "opjd://0.2.0/journey_status.last_assessment",
        "opjd://0.2.0/episode.status"
      ]
    },
    {
      "id": "opjd://0.2.0/journey_status.tumor_ref",
      "kind": "field",
      "path": "journey_status.tumor_ref",
      "schema_pointer": "#/$defs/journeyStatus/properties/tumor_ref",
      "instance_paths": [
        "/journey_status/*/tumor_ref"
      ],
      "label": {
        "de": "Tumorbezug",
        "en": "Tumor reference"
      },
      "definition": {
        "de": "Die Tumorentität (tumor_id), deren aktueller Zustand beschrieben wird.",
        "en": "The tumor entity (tumor_id) whose current state is described."
      },
      "datatype": "id",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/tumor"
      ]
    },
    {
      "id": "opjd://0.2.0/journey_status.active_episode",
      "kind": "field",
      "path": "journey_status.active_episode",
      "schema_pointer": "#/$defs/journeyStatus/properties/active_episode",
      "instance_paths": [
        "/journey_status/*/active_episode"
      ],
      "label": {
        "de": "Aktive Episode",
        "en": "Active episode"
      },
      "definition": {
        "de": "episode_id der aktuell laufenden Episode dieses Tumors — Gegenstück zu episode.status = active.",
        "en": "episode_id of the currently ongoing episode of this tumor — counterpart of episode.status = active."
      },
      "datatype": "id",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.status/active"
      ]
    },
    {
      "id": "opjd://0.2.0/journey_status.current_line",
      "kind": "field",
      "path": "journey_status.current_line",
      "schema_pointer": "#/$defs/journeyStatus/properties/current_line",
      "instance_paths": [
        "/journey_status/*/current_line"
      ],
      "label": {
        "de": "Aktuelle Therapielinie",
        "en": "Current line"
      },
      "definition": {
        "de": "Aktuelle Therapielinie des Tumors (≥ 1) — Spiegel von episode.line_number der laufenden Linie.",
        "en": "Current treatment line of the tumor (≥ 1) — mirrors episode.line_number of the ongoing line."
      },
      "datatype": "integer",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.line_number"
      ]
    },
    {
      "id": "opjd://0.2.0/journey_status.last_assessment",
      "kind": "object",
      "path": "journey_status.last_assessment",
      "schema_pointer": "#/$defs/journeyStatus/properties/last_assessment",
      "instance_paths": [
        "/journey_status/*/last_assessment"
      ],
      "label": {
        "de": "Letzte Gesamtbeurteilung",
        "en": "Last assessment"
      },
      "definition": {
        "de": "Verweis auf das Ereignis der letzten Verlaufsbeurteilung (event_ref) samt Gesamtbeurteilung nach oBDS-Vokabular (z. B. V, T, K, P, U).",
        "en": "Reference to the event of the last progress assessment (event_ref) plus the overall assessment per oBDS vocabulary (e.g. V, T, K, P, U)."
      },
      "rationale": {
        "de": "Die letzte Bewertung ist der klinisch relevanteste Einzelwert der Momentaufnahme; als Verweis auf ein adressierbares Ereignis bleibt sie belegbar statt frei behauptet."
      },
      "obds_mapping": {
        "element": "Verlauf/Gesamtbeurteilung",
        "note": "Der Wert folgt dem oBDS-Verlaufsvokabular; der Verweis auf das tragende Ereignis ist oPJD-Struktur."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type/progress_report",
        "opjd://0.2.0/journey_status"
      ]
    },
    {
      "id": "opjd://0.2.0/journey_status.last_assessment.event_ref",
      "kind": "field",
      "path": "journey_status.last_assessment.event_ref",
      "schema_pointer": "#/$defs/journeyStatus/properties/last_assessment/properties/event_ref",
      "instance_paths": [
        "/journey_status/*/last_assessment/event_ref"
      ],
      "label": {
        "de": "Bewertendes Ereignis",
        "en": "Assessing event"
      },
      "definition": {
        "de": "event_id des Verlaufsereignisses, das die letzte Gesamtbeurteilung trägt.",
        "en": "event_id of the progress event carrying the last overall assessment."
      },
      "datatype": "id",
      "requirement": "required",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.type/progress_report"
      ]
    },
    {
      "id": "opjd://0.2.0/journey_status.last_assessment.overall_assessment",
      "kind": "field",
      "path": "journey_status.last_assessment.overall_assessment",
      "schema_pointer": "#/$defs/journeyStatus/properties/last_assessment/properties/overall_assessment",
      "instance_paths": [
        "/journey_status/*/last_assessment/overall_assessment"
      ],
      "label": {
        "de": "Gesamtbeurteilung",
        "en": "Overall assessment"
      },
      "definition": {
        "de": "Gesamtbeurteilung nach oBDS-Vokabular, z. B. V = Vollremission, T = Teilremission, K = keine Änderung, P = Progression, U = unbekannt.",
        "en": "Overall assessment per oBDS vocabulary, e.g. V = complete remission, T = partial remission, K = no change, P = progression, U = unknown."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/id",
      "kind": "type",
      "path": "id",
      "schema_pointer": "#/$defs/id",
      "instance_paths": [
        "(referenziert von allen ID- und Referenzfeldern)"
      ],
      "label": {
        "de": "ID (stabile Kennung)",
        "en": "ID (stable identifier)"
      },
      "definition": {
        "de": "Stabile, innerhalb des Pakets eindeutige Kennung (nicht-leerer String). Präfix-Konventionen — EVT- (Ereignis), EP- (Episode), REL- (Relation), TU- (Tumor), PKG- (Paket) — sind empfohlen, nicht erzwungen. Wird von allen ID- und Referenzfeldern referenziert.",
        "en": "Stable identifier, unique within the package (non-empty string). Prefix conventions — EVT- (event), EP- (episode), REL- (relation), TU- (tumor), PKG- (package) — are recommended, not enforced. Referenced by all ID and reference fields."
      },
      "rationale": {
        "de": "Zutat 1 der Secret Sauce: Man kann nur auf das zeigen, was eine Adresse hat. Der oBDS kennt Selbst-IDs (OP_ID, ST_ID, SYST_ID) nur optional — und die Praxis ignoriert sie so vollständig, dass reale Systeme sie nicht einmal einlesen; Zusammenhang entsteht dort allein durch Schachtelung innerhalb einer Meldung oder eine gemeinsame Tumor-ID. Verpflichtende Adressen sind die Voraussetzung für Klammern, Bezüge und Prüfbarkeit."
      },
      "constraints_note": {
        "de": "Das Schema erzwingt nur minLength 1; Eindeutigkeit und Auflösbarkeit der Referenzen werden auf Validator-Ebene geprüft."
      },
      "obds_mapping": {
        "element": "OP_ID / ST_ID / SYST_ID (optional)",
        "note": "Die einzigen expliziten Ereignis-Anker des oBDS sind optional und praktisch ungenutzt — im oPJD sind Adressen verpflichtend."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.event_id",
        "opjd://0.2.0/episode.episode_id",
        "opjd://0.2.0/tumor.tumor_id",
        "opjd://0.2.0/relation.relation_id"
      ]
    },
    {
      "id": "opjd://0.2.0/date_precision",
      "kind": "value_set",
      "path": "date_precision",
      "schema_pointer": "#/$defs/datePrecision",
      "instance_paths": [
        "/events/*/date_precision",
        "/tumors/*/diagnosis_date_precision"
      ],
      "label": {
        "de": "Datumsgenauigkeit",
        "en": "Date precision"
      },
      "definition": {
        "de": "Genauigkeit einer Datumsangabe nach oBDS-Konvention: E = exakt, T = Tag geschätzt, M = Monat geschätzt, J = Jahr geschätzt. Gilt für Ereignisdaten und das Diagnosedatum.",
        "en": "Precision of a date per oBDS convention: E = exact, T = day estimated, M = month estimated, J = year estimated. Applies to event dates and the diagnosis date."
      },
      "rationale": {
        "de": "Geschätzte Daten sind in der Tumordokumentation Alltag (Altdaten, externe Angaben). Die explizite Genauigkeit hält Chronologie-Prüfungen ehrlich: Ein auf den Monat geschätztes Datum darf keine Tagesdifferenz-Kennzahl füttern."
      },
      "obds_mapping": {
        "element": "Datumsgenauigkeit (Attribut der oBDS-Datumstypen)",
        "note": "Direkte Übernahme der oBDS-Konvention."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.date_precision",
        "opjd://0.2.0/tumor.diagnosis_date_precision"
      ]
    },
    {
      "id": "opjd://0.2.0/date_precision/E",
      "kind": "enum_value",
      "path": "date_precision",
      "value": "E",
      "schema_pointer": "#/$defs/datePrecision",
      "instance_paths": [
        "/events/*/date_precision",
        "/tumors/*/diagnosis_date_precision"
      ],
      "label": {
        "de": "exakt",
        "en": "Exact"
      },
      "definition": {
        "de": "Das Datum ist exakt dokumentiert.",
        "en": "The date is documented exactly."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/date_precision/T",
      "kind": "enum_value",
      "path": "date_precision",
      "value": "T",
      "schema_pointer": "#/$defs/datePrecision",
      "instance_paths": [
        "/events/*/date_precision",
        "/tumors/*/diagnosis_date_precision"
      ],
      "label": {
        "de": "Tag geschätzt",
        "en": "Day estimated"
      },
      "definition": {
        "de": "Der Tag ist geschätzt; Monat und Jahr sind belastbar.",
        "en": "The day is estimated; month and year are reliable."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/date_precision/M",
      "kind": "enum_value",
      "path": "date_precision",
      "value": "M",
      "schema_pointer": "#/$defs/datePrecision",
      "instance_paths": [
        "/events/*/date_precision",
        "/tumors/*/diagnosis_date_precision"
      ],
      "label": {
        "de": "Monat geschätzt",
        "en": "Month estimated"
      },
      "definition": {
        "de": "Monat (und Tag) sind geschätzt; das Jahr ist belastbar.",
        "en": "Month (and day) are estimated; the year is reliable."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/date_precision/J",
      "kind": "enum_value",
      "path": "date_precision",
      "value": "J",
      "schema_pointer": "#/$defs/datePrecision",
      "instance_paths": [
        "/events/*/date_precision",
        "/tumors/*/diagnosis_date_precision"
      ],
      "label": {
        "de": "Jahr geschätzt",
        "en": "Year estimated"
      },
      "definition": {
        "de": "Auch das Jahr ist geschätzt — die Angabe ist nur grob einzuordnen.",
        "en": "Even the year is estimated — the date is only a rough indication."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": []
    },
    {
      "id": "opjd://0.2.0/use_purpose",
      "kind": "value_set",
      "path": "use_purpose",
      "schema_pointer": "#/$defs/usePurpose",
      "instance_paths": [
        "/delivery/delivery_context",
        "/delivery/permitted_use/*",
        "/delivery/prohibited_use/*"
      ],
      "label": {
        "de": "Verwendungszweck",
        "en": "Use purpose"
      },
      "definition": {
        "de": "Abschließendes Vokabular der Verwendungszwecke — von der direkten Patientenversorgung bis zum rein internen Abgleich. Verwendet in delivery_context (Anlass der Übermittlung), permitted_use (erlaubt) und prohibited_use (ausgeschlossen).",
        "en": "Closed vocabulary of use purposes — from direct patient care to internal reconciliation only. Used in delivery_context (occasion), permitted_use (allowed) and prohibited_use (excluded)."
      },
      "rationale": {
        "de": "Ein gemeinsames Zweck-Vokabular für Anlass, Erlaubnis und Verbot macht Zweckbindung maschinell prüfbar: Der Anlass einer Lieferung und die erlaubte Nutzung sprechen dieselbe Sprache."
      },
      "obds_mapping": {
        "element": null,
        "note": "Dokumentierte Lücke: Der oBDS kennt keine Verwendungszweck-Deklaration; der Zweck des Meldewegs ist implizit."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.delivery_context",
        "opjd://0.2.0/delivery.permitted_use",
        "opjd://0.2.0/delivery.prohibited_use"
      ]
    },
    {
      "id": "opjd://0.2.0/use_purpose/treatment",
      "kind": "enum_value",
      "path": "use_purpose",
      "value": "treatment",
      "schema_pointer": "#/$defs/usePurpose",
      "instance_paths": [
        "/delivery/delivery_context",
        "/delivery/permitted_use/*",
        "/delivery/prohibited_use/*"
      ],
      "label": {
        "de": "Behandlung",
        "en": "Treatment"
      },
      "definition": {
        "de": "Direkte Patientenversorgung — die Daten dürfen für Behandlungsentscheidungen zum konkreten Patienten genutzt werden.",
        "en": "Direct patient care — the data may inform treatment decisions for this patient."
      },
      "rationale": {
        "de": "Der stärkste Zweck mit den höchsten Anforderungen an Aktualität und Identität; er setzt typischerweise identifizierte Daten und einen Behandlungskontext voraus."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; der oBDS-Meldeweg dient der Registermeldung, nicht der Versorgungsübermittlung."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_category/clinical_care",
        "opjd://0.2.0/patient.id_kind/identified"
      ]
    },
    {
      "id": "opjd://0.2.0/use_purpose/quality_assurance",
      "kind": "enum_value",
      "path": "use_purpose",
      "value": "quality_assurance",
      "schema_pointer": "#/$defs/usePurpose",
      "instance_paths": [
        "/delivery/delivery_context",
        "/delivery/permitted_use/*",
        "/delivery/prohibited_use/*"
      ],
      "label": {
        "de": "Qualitätssicherung",
        "en": "Quality assurance"
      },
      "definition": {
        "de": "Nutzung für die Qualitätssicherung — interne QS, Kennzahlen, Audits.",
        "en": "Use for quality assurance — internal QA, indicators, audits."
      },
      "rationale": {
        "de": "QS-Nutzung braucht keine Behandlungsberechtigung; der eigene Wert hält sie von treatment sauber getrennt."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; Zweckdeklarationen kennt der oBDS nicht."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_category/quality_assurance_regulation"
      ]
    },
    {
      "id": "opjd://0.2.0/use_purpose/follow_up",
      "kind": "enum_value",
      "path": "use_purpose",
      "value": "follow_up",
      "schema_pointer": "#/$defs/usePurpose",
      "instance_paths": [
        "/delivery/delivery_context",
        "/delivery/permitted_use/*",
        "/delivery/prohibited_use/*"
      ],
      "label": {
        "de": "Nachsorge",
        "en": "Follow-up"
      },
      "definition": {
        "de": "Nutzung für die Nachsorge — etwa der Registerabruf zur Unterstützung strukturierter Nachsorge, einschließlich länderspezifischer Sonderregeln wie der Nachsorge nach Strahlentherapie.",
        "en": "Use for follow-up — e.g. registry retrieval supporting structured follow-up, including jurisdiction-specific rules such as follow-up after radiotherapy."
      },
      "rationale": {
        "de": "Die Nachsorge ist ein eigener, oft landesrechtlich gesondert geregelter Nutzungsfall — mit jurisdiction_specific_rule als Gegenstück auf der Rechtsgrundlagen-Seite."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; Nachsorge existiert im oBDS als Meldeanlass, nicht als Verwendungszweck einer Lieferung."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/follow_up",
        "opjd://0.2.0/delivery.jurisdiction_specific_rule"
      ]
    },
    {
      "id": "opjd://0.2.0/use_purpose/registry_completion",
      "kind": "enum_value",
      "path": "use_purpose",
      "value": "registry_completion",
      "schema_pointer": "#/$defs/usePurpose",
      "instance_paths": [
        "/delivery/delivery_context",
        "/delivery/permitted_use/*",
        "/delivery/prohibited_use/*"
      ],
      "label": {
        "de": "Registervervollständigung",
        "en": "Registry completion"
      },
      "definition": {
        "de": "Registerabgleich und -vervollständigung: Die Daten dienen dazu, den Registerbestand zu ergänzen oder zu korrigieren.",
        "en": "Registry reconciliation and completion: the data serve to complete or correct the registry’s holdings."
      },
      "rationale": {
        "de": "Der klassische Zweck des Meldewegs — als expliziter Wert auch für Rückfragen und Nachlieferungen deklarierbar."
      },
      "obds_mapping": {
        "element": null,
        "note": "Der Zweck des klassischen Meldewegs — im oBDS implizit, nie als Datum deklariert."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_category/cancer_registry_law",
        "opjd://0.2.0/use_purpose/data_reconciliation"
      ]
    },
    {
      "id": "opjd://0.2.0/use_purpose/research",
      "kind": "enum_value",
      "path": "use_purpose",
      "value": "research",
      "schema_pointer": "#/$defs/usePurpose",
      "instance_paths": [
        "/delivery/delivery_context",
        "/delivery/permitted_use/*",
        "/delivery/prohibited_use/*"
      ],
      "label": {
        "de": "Forschung",
        "en": "Research"
      },
      "definition": {
        "de": "Forschungsnutzung; Rechtsgrundlage (z. B. research_consent) und gegebenenfalls der Consent-Umfang begrenzen sie näher.",
        "en": "Research use; the legal basis (e.g. research_consent) and the consent scope constrain it further."
      },
      "rationale": {
        "de": "Forschung ist der typische Zweck standortübergreifender Journey-Lieferungen — und der, bei dem Zweckbindung und Consent am engsten zusammenspielen."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; Forschungsnutzung liegt hinter dem Registerweg und wird im oBDS nicht deklariert."
      },
      "examples": [
        {
          "description": {
            "de": "Referenzjourneys: delivery_context = research, permitted_use enthält research."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.legal_basis_category/research_consent",
        "opjd://0.2.0/delivery.consent"
      ]
    },
    {
      "id": "opjd://0.2.0/use_purpose/certification",
      "kind": "enum_value",
      "path": "use_purpose",
      "value": "certification",
      "schema_pointer": "#/$defs/usePurpose",
      "instance_paths": [
        "/delivery/delivery_context",
        "/delivery/permitted_use/*",
        "/delivery/prohibited_use/*"
      ],
      "label": {
        "de": "Zertifizierung",
        "en": "Certification"
      },
      "definition": {
        "de": "Nutzung für Zertifizierungsverfahren, z. B. DKG/OnkoZert-Kennzahlen.",
        "en": "Use for certification procedures, e.g. DKG/OnkoZert indicators."
      },
      "rationale": {
        "de": "Zertifizierungs-Datenflüsse haben eigene Empfänger und Fristen; der Zweck korrespondiert mit den Fallklassifikations-Klammern der Journey."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; Kennzahlenprozesse laufen außerhalb des oBDS-Meldewegs."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/episode.type/primary_case",
        "opjd://0.2.0/event.meta.provenance/certification"
      ]
    },
    {
      "id": "opjd://0.2.0/use_purpose/tumor_board_preparation",
      "kind": "enum_value",
      "path": "use_purpose",
      "value": "tumor_board_preparation",
      "schema_pointer": "#/$defs/usePurpose",
      "instance_paths": [
        "/delivery/delivery_context",
        "/delivery/permitted_use/*",
        "/delivery/prohibited_use/*"
      ],
      "label": {
        "de": "Tumorboard-Vorbereitung",
        "en": "Tumor board preparation"
      },
      "definition": {
        "de": "Nutzung zur Vorbereitung einer Tumorkonferenz — die konsolidierte Journey als Fallgrundlage.",
        "en": "Use for preparing a tumor board — the consolidated journey as the case basis."
      },
      "rationale": {
        "de": "Der Anwendungsfall, für den der Journey-Status gebaut ist: Wo steht der Patient, was ist die letzte Bewertung, welche Linie läuft?"
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; die Tumorkonferenz ist im oBDS Meldeinhalt, nicht Verwendungszweck."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/journey_status",
        "opjd://0.2.0/event.type/tumor_board"
      ]
    },
    {
      "id": "opjd://0.2.0/use_purpose/data_reconciliation",
      "kind": "enum_value",
      "path": "use_purpose",
      "value": "data_reconciliation",
      "schema_pointer": "#/$defs/usePurpose",
      "instance_paths": [
        "/delivery/delivery_context",
        "/delivery/permitted_use/*",
        "/delivery/prohibited_use/*"
      ],
      "label": {
        "de": "Datenabgleich",
        "en": "Data reconciliation"
      },
      "definition": {
        "de": "Abgleich zwischen Datenbeständen (z. B. Klinik ↔ Register), einschließlich Übernahme in den lokalen Bestand, sofern local_reconciliation_allowed dies deckt.",
        "en": "Reconciliation between data holdings (e.g. hospital ↔ registry), including merging into the local records where local_reconciliation_allowed covers it."
      },
      "rationale": {
        "de": "Abgleich ist ein eigener Nutzungsfall zwischen Einsicht und Übernahme; das Zusammenspiel mit local_reconciliation_allowed präzisiert, wie weit er gehen darf."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; Abgleichprozesse zwischen Beständen sind im oBDS nicht modelliert."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.local_reconciliation_allowed",
        "opjd://0.2.0/use_purpose/internal_reconciliation_only"
      ]
    },
    {
      "id": "opjd://0.2.0/use_purpose/internal_reconciliation_only",
      "kind": "enum_value",
      "path": "use_purpose",
      "value": "internal_reconciliation_only",
      "schema_pointer": "#/$defs/usePurpose",
      "instance_paths": [
        "/delivery/delivery_context",
        "/delivery/permitted_use/*",
        "/delivery/prohibited_use/*"
      ],
      "label": {
        "de": "Nur interner Abgleich",
        "en": "Internal reconciliation only"
      },
      "definition": {
        "de": "Engster Zweck: nur interner Abgleich, keine Weiterverwendung — die Daten dürfen eingesehen und verglichen, aber nicht weiterverwendet oder in den Bestand übernommen werden.",
        "en": "Narrowest purpose: internal reconciliation only, no further use — the data may be viewed and compared but neither reused nor merged into local records."
      },
      "rationale": {
        "de": "Ermöglicht Rückflüsse auch in restriktiven Rechtslagen: Der Empfänger sieht, was das Register weiß, ohne es verwerten zu dürfen — besser als gar kein Rückfluss."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; abgestufte Nutzungsrechte kennt der oBDS nicht."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/delivery.local_reconciliation_allowed",
        "opjd://0.2.0/delivery.prohibited_use"
      ]
    },
    {
      "id": "opjd://0.2.0/interpretation_meta",
      "kind": "object",
      "path": "interpretation_meta",
      "schema_pointer": "#/$defs/interpretationMeta",
      "instance_paths": [
        "/episodes/*/meta",
        "/relations/*/meta"
      ],
      "label": {
        "de": "Interpretations-Metadaten",
        "en": "Interpretation metadata"
      },
      "definition": {
        "de": "Metadaten der Interpretationsschicht (Episoden, Relationen): Die Klammer selbst hat eine Herkunft. quality unterscheidet zweistufig derived (algorithmisch aus oBDS-Indizien vorgeschlagen) und curated (fachlich bestätigt); derived_from nennt die Indizien, annotated_at und annotated_by_role Zeitpunkt und Rolle der Annotation.",
        "en": "Metadata of the interpretation layer (episodes, relations): the bracket itself has a provenance. quality distinguishes two levels — derived (algorithmically proposed from oBDS evidence) and curated (professionally confirmed); derived_from lists the evidence, annotated_at and annotated_by_role the time and role of annotation."
      },
      "rationale": {
        "de": "Zutat 4 und der entscheidende Dreh für die Machbarkeit: Ohne eigene Qualitätsangabe müsste die Klammer-Schicht von Tag eins an perfekt sein — das wäre ihr Tod. Mit ihr kann der Datensatz unvollkommen starten und transparent besser werden; der Empfänger weiß jederzeit, ob er einer Maschinen-Hypothese oder einem kuratierten Fakt vertraut."
      },
      "constraints_note": {
        "de": "Pflichtobjekt an Episoden und Relationen; nur quality ist Pflicht. Bewusst zweistufig — die vierstufige Skala von event.meta.quality gilt für Tatsachen, nicht für Interpretationen."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Der oBDS kennt keine Interpretationsschicht — und folglich keine Metadaten über sie."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: neoadjuvante Episode curated mit derived_from = [Stellung_OP=N, ycTNM]; result_of-Relation derived mit Datumsfenster-Indiz."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.quality",
        "opjd://0.2.0/interpretation_meta.derived_from",
        "opjd://0.2.0/interpretation_meta.annotated_by_role",
        "opjd://0.2.0/event.meta"
      ]
    },
    {
      "id": "opjd://0.2.0/interpretation_meta.quality",
      "kind": "field",
      "path": "interpretation_meta.quality",
      "schema_pointer": "#/$defs/interpretationMeta/properties/quality",
      "instance_paths": [
        "/episodes/*/meta/quality",
        "/relations/*/meta/quality"
      ],
      "label": {
        "de": "Qualität der Interpretation",
        "en": "Interpretation quality"
      },
      "definition": {
        "de": "Belastbarkeit der Klammer bzw. Relation selbst: derived (algorithmisch vorgeschlagen) oder curated (fachlich bestätigt). Bewertet die Interpretation, nicht die zugrunde liegenden Ereignisse.",
        "en": "Reliability of the bracket or relation itself: derived (algorithmically proposed) or curated (professionally confirmed). Rates the interpretation, not the underlying events."
      },
      "rationale": {
        "de": "Die Zweistufigkeit ist Programm: Sie beschreibt den realen Weg der Daten — automatische Ausleitung aus Bestandssystemen zuerst (derived), fachliche Bestätigung danach (curated). Mehr Stufen würden Scheingenauigkeit erzeugen."
      },
      "datatype": "enum (2 Werte)",
      "requirement": "required",
      "constraints_note": {
        "de": "Pflichtfeld. Der Übergang derived → curated ist der vorgesehene Kuratierungspfad; die Indizien bleiben in derived_from erhalten."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.quality/curated",
        "opjd://0.2.0/interpretation_meta.quality/derived",
        "opjd://0.2.0/event.meta.quality"
      ]
    },
    {
      "id": "opjd://0.2.0/interpretation_meta.quality/curated",
      "kind": "enum_value",
      "path": "interpretation_meta.quality",
      "value": "curated",
      "schema_pointer": "#/$defs/interpretationMeta/properties/quality",
      "instance_paths": [
        "/episodes/*/meta/quality",
        "/relations/*/meta/quality"
      ],
      "label": {
        "de": "kuratiert (fachlich bestätigt)",
        "en": "Curated"
      },
      "definition": {
        "de": "Die Episode bzw. Relation wurde fachlich geprüft und bestätigt — typischerweise durch die Tumordokumentation oder ärztlich (annotated_by_role).",
        "en": "The episode or relation was professionally reviewed and confirmed — typically by tumor documentation or a physician (annotated_by_role)."
      },
      "rationale": {
        "de": "Das „Best-of\"-Versprechen der kuratierten Journey: Der Empfänger darf die Einordnung als geprüften Fakt behandeln."
      },
      "clinical_notes": {
        "de": "Nicht verwechseln mit event.meta.quality/curated: Dort ist die dokumentierte Tatsache kuratiert, hier die Interpretation (Klammer bzw. Bezug) selbst."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Der oBDS kennt keine Interpretationsschicht — also auch keinen Bestätigungsstatus für sie."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.quality/derived",
        "opjd://0.2.0/interpretation_meta.annotated_by_role"
      ]
    },
    {
      "id": "opjd://0.2.0/interpretation_meta.quality/derived",
      "kind": "enum_value",
      "path": "interpretation_meta.quality",
      "value": "derived",
      "schema_pointer": "#/$defs/interpretationMeta/properties/quality",
      "instance_paths": [
        "/episodes/*/meta/quality",
        "/relations/*/meta/quality"
      ],
      "label": {
        "de": "abgeleitet (algorithmisch vorgeschlagen)",
        "en": "Derived"
      },
      "definition": {
        "de": "Die Episode bzw. Relation wurde algorithmisch aus oBDS-Indizien vorgeschlagen — z. B. Stellung_OP, y-TNM, Datumsfenster, Meldeanlass — und ist noch nicht fachlich bestätigt. Die Indizien stehen in derived_from.",
        "en": "The episode or relation was algorithmically proposed from oBDS evidence — e.g. Stellung_OP, y-TNM, date windows, report occasion — and is not yet professionally confirmed. The evidence is listed in derived_from."
      },
      "rationale": {
        "de": "Macht die automatische Ausleitung aus Bestandssystemen (z. B. ONKOSTAR-Extraktion) zum legitimen ersten Schritt: Eine Maschinen-Hypothese ist als solche gekennzeichnet und kann später zu curated befördert werden."
      },
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung; die Indizien der Ableitung sind oBDS-Elemente (siehe derived_from), die Einstufung selbst ist oPJD-Struktur."
      },
      "examples": [
        {
          "description": {
            "de": "NSCLC-Referenzjourney: Die result_of-Relation REL-003 ist derived — Indizien: Datumsfenster, einziger Eingriff am Tumor."
          },
          "ref": "opjd-example-nsclc"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.derived_from",
        "opjd://0.2.0/interpretation_meta.quality/curated"
      ]
    },
    {
      "id": "opjd://0.2.0/interpretation_meta.derived_from",
      "kind": "field",
      "path": "interpretation_meta.derived_from",
      "schema_pointer": "#/$defs/interpretationMeta/properties/derived_from",
      "instance_paths": [
        "/episodes/*/meta/derived_from",
        "/relations/*/meta/derived_from"
      ],
      "label": {
        "de": "Ableitungsindizien",
        "en": "Derivation evidence"
      },
      "definition": {
        "de": "Die Indizien, aus denen die Interpretation abgeleitet wurde — als Liste kurzer Kennzeichen, z. B. „Stellung_OP=N\", „ycTNM\", „Datumsfenster\", „Tumorkonferenz-Empfehlung AS\".",
        "en": "The evidence the interpretation was derived from — a list of short markers, e.g. “Stellung_OP=N”, “ycTNM”, “date window”, “tumor board recommendation AS”."
      },
      "rationale": {
        "de": "Die Ableitung bleibt nachvollziehbar und revidierbar: Wer einer derived-Klammer widersprechen will, sieht, worauf sie sich stützt. Genau hier bekommen die semantisch toten oBDS-Kontextfelder ihre Rolle zurück — als Indizien statt als unverankerte Behauptungen."
      },
      "datatype": "array<string>",
      "requirement": "optional",
      "constraints_note": {
        "de": "Optional; typisch bei quality = derived. Auch bei curated sinnvoll, um die ursprünglichen Indizien zu dokumentieren."
      },
      "obds_mapping": {
        "element": "Stellung_OP / TNM (y-Präfix) / Meldeanlass",
        "note": "Die Indizien benennen typischerweise oBDS-Elemente; das Feld selbst hat keine oBDS-Entsprechung."
      },
      "examples": [
        {
          "description": {
            "de": "Prostata-Referenzjourney: AS-Episode mit derived_from = [Tumorkonferenz-Empfehlung AS] — trotz quality = curated bleiben die Indizien dokumentiert."
          },
          "ref": "opjd-example-prostate-as"
        }
      ],
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.quality/derived",
        "opjd://0.2.0/event.obds"
      ]
    },
    {
      "id": "opjd://0.2.0/interpretation_meta.annotated_at",
      "kind": "field",
      "path": "interpretation_meta.annotated_at",
      "schema_pointer": "#/$defs/interpretationMeta/properties/annotated_at",
      "instance_paths": [
        "/episodes/*/meta/annotated_at",
        "/relations/*/meta/annotated_at"
      ],
      "label": {
        "de": "Annotiert am",
        "en": "Annotated at"
      },
      "definition": {
        "de": "Datum der Annotation bzw. der letzten Bestätigung der Interpretation.",
        "en": "Date of the annotation or the last confirmation of the interpretation."
      },
      "datatype": "string",
      "requirement": "optional",
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.annotated_by_role"
      ]
    },
    {
      "id": "opjd://0.2.0/interpretation_meta.annotated_by_role",
      "kind": "field",
      "path": "interpretation_meta.annotated_by_role",
      "schema_pointer": "#/$defs/interpretationMeta/properties/annotated_by_role",
      "instance_paths": [
        "/episodes/*/meta/annotated_by_role",
        "/relations/*/meta/annotated_by_role"
      ],
      "label": {
        "de": "Annotierende Rolle",
        "en": "Annotating role"
      },
      "definition": {
        "de": "Die Rolle, die die Interpretation annotiert bzw. bestätigt hat: algorithm, tumor_documentation oder physician. Bewusst eine Rolle, keine Person.",
        "en": "The role that annotated or confirmed the interpretation: algorithm, tumor_documentation or physician. Deliberately a role, not a person."
      },
      "rationale": {
        "de": "Regelbasiert statt personenabhängig: Die Qualitätsbewertung soll aus Quelle und Prozess ableitbar sein — nicht der einzelnen dokumentierenden Person aufgebürdet werden. Zugleich reist so kein unnötiger Personenbezug mit dem Paket."
      },
      "datatype": "enum (3 Werte)",
      "requirement": "optional",
      "obds_mapping": {
        "element": null,
        "note": "Keine Entsprechung: Der oBDS kennt den Melder der Meldung, aber keine Annotationsrolle einer Interpretationsschicht."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.annotated_by_role/algorithm",
        "opjd://0.2.0/interpretation_meta.annotated_by_role/tumor_documentation",
        "opjd://0.2.0/interpretation_meta.annotated_by_role/physician",
        "opjd://0.2.0/interpretation_meta.quality"
      ]
    },
    {
      "id": "opjd://0.2.0/interpretation_meta.annotated_by_role/algorithm",
      "kind": "enum_value",
      "path": "interpretation_meta.annotated_by_role",
      "value": "algorithm",
      "schema_pointer": "#/$defs/interpretationMeta/properties/annotated_by_role",
      "instance_paths": [
        "/episodes/*/meta/annotated_by_role",
        "/relations/*/meta/annotated_by_role"
      ],
      "label": {
        "de": "Algorithmus",
        "en": "Algorithm"
      },
      "definition": {
        "de": "Die Interpretation wurde maschinell erzeugt — typisch bei quality = derived aus der automatischen Ausleitung.",
        "en": "The interpretation was produced by a machine — typical with quality = derived from automated extraction."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.quality/derived"
      ]
    },
    {
      "id": "opjd://0.2.0/interpretation_meta.annotated_by_role/tumor_documentation",
      "kind": "enum_value",
      "path": "interpretation_meta.annotated_by_role",
      "value": "tumor_documentation",
      "schema_pointer": "#/$defs/interpretationMeta/properties/annotated_by_role",
      "instance_paths": [
        "/episodes/*/meta/annotated_by_role",
        "/relations/*/meta/annotated_by_role"
      ],
      "label": {
        "de": "Tumordokumentation",
        "en": "Tumor documentation"
      },
      "definition": {
        "de": "Die Interpretation wurde durch die spezialisierte Tumordokumentation annotiert bzw. bestätigt.",
        "en": "The interpretation was annotated or confirmed by specialized tumor documentation."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/event.meta.provenance/tumor_documentation"
      ]
    },
    {
      "id": "opjd://0.2.0/interpretation_meta.annotated_by_role/physician",
      "kind": "enum_value",
      "path": "interpretation_meta.annotated_by_role",
      "value": "physician",
      "schema_pointer": "#/$defs/interpretationMeta/properties/annotated_by_role",
      "instance_paths": [
        "/episodes/*/meta/annotated_by_role",
        "/relations/*/meta/annotated_by_role"
      ],
      "label": {
        "de": "Ärztin/Arzt",
        "en": "Physician"
      },
      "definition": {
        "de": "Die Interpretation wurde ärztlich annotiert bzw. bestätigt.",
        "en": "The interpretation was annotated or confirmed by a physician."
      },
      "since_version": "0.1.0",
      "deprecated_in": null,
      "superseded_by": null,
      "related": [
        "opjd://0.2.0/interpretation_meta.quality/curated"
      ]
    }
  ]
}
