{
  "resourceType": "StructureDefinition",
  "id": "TipluObservationLaboruntersuchung",
  "url": "https://tiplu.de/fhir/StructureDefinition/TipluObservationLaboruntersuchung",
  "version": "2.0.2",
  "name": "TipluObservationLaboruntersuchung",
  "title": "Tiplu Observation im Use Case Laboruntersuchung",
  "status": "active",
  "date": "2026-04-02",
  "publisher": "Tiplu GmbH",
  "contact": [
    {
      "name": "Tiplu GmbH",
      "telecom": [
        {
          "system": "email",
          "value": "fhir@tiplu.de"
        }
      ]
    }
  ],
  "description": "Dieses Profil basiert auf dem '[ObservationLab](https://www.medizininformatik-initiative.de/fhir/core/modul-labor/StructureDefinition/ObservationLab)' Profil der Medizininformatik Initiative und erweitert dieses um verschiedene Bereiche. Zum einen wird das Coding um einen Tiplu- und Kundencode erweitert, sowie die valueQuantity um die jeweils genutzen Einheiten.",
  "copyright": "Tiplu GmbH",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Observation",
  "baseDefinition": "https://www.medizininformatik-initiative.de/fhir/core/modul-labor/StructureDefinition/ObservationLab",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Observation.meta.source",
        "path": "Observation.meta.source",
        "comment": "Hier soll zukünftig angegeben werden, aus welchem System die Information kommt. Zum aktuellen Zeitpunkt ist die Information nicht befüllt."
      },
      {
        "id": "Observation.category.coding:subCategory",
        "path": "Observation.category.coding",
        "sliceName": "subCategory",
        "min": 0,
        "max": "1",
        "patternCoding": {
          "userSelected": true
        },
        "example": [
          {
            "label": "Beispiel für Kundenkategorie-Url und -Code",
            "valueCoding": {
              "code": "example",
              "system": "http://tiplu.de/fhir/CodeSystem/custom/subcategory"
            }
          }
        ]
      },
      {
        "id": "Observation.category.coding:subCategory.code",
        "path": "Observation.category.coding.code",
        "min": 1
      },
      {
        "id": "Observation.code.coding",
        "path": "Observation.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "pattern",
              "path": "$this"
            }
          ],
          "rules": "open"
        },
        "mustSupport": true
      },
      {
        "id": "Observation.code.coding:LOINC",
        "path": "Observation.code.coding",
        "sliceName": "LOINC",
        "min": 0,
        "max": "1",
        "patternCoding": {
          "system": "http://loinc.org"
        },
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/uv/ips/ValueSet/results-laboratory-observations-uv-ips"
        }
      },
      {
        "id": "Observation.code.coding:LOINC.system",
        "path": "Observation.code.coding.system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.code.coding:LOINC.code",
        "path": "Observation.code.coding.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.code.coding:TipluCode",
        "path": "Observation.code.coding",
        "sliceName": "TipluCode",
        "min": 0,
        "max": "1",
        "patternCoding": {
          "system": "https://tiplu.de/fhir/CodeSystem/TipluLaborCodes"
        },
        "binding": {
          "strength": "required",
          "valueSet": "https://tiplu.de/fhir/ValueSet/TipluLaborCodes"
        }
      },
      {
        "id": "Observation.code.coding:TipluCode.system",
        "path": "Observation.code.coding.system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.code.coding:TipluCode.code",
        "path": "Observation.code.coding.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.code.coding:KundenCode",
        "path": "Observation.code.coding",
        "sliceName": "KundenCode",
        "min": 0,
        "max": "1",
        "patternCoding": {
          "userSelected": true
        },
        "example": [
          {
            "label": "Beispiel für Kunden-Url und -Code",
            "valueCoding": {
              "code": "example",
              "system": "http://tiplu.de/fhir/CodeSystem/kundencodes-lab"
            }
          }
        ]
      },
      {
        "id": "Observation.code.coding:KundenCode.system",
        "path": "Observation.code.coding.system",
        "comment": "Das System des KundenCode wird vom Krankenhaus herausgegeben. Es ist in den meisten Fällen nicht gesondert publiziert.",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.code.coding:KundenCode.code",
        "path": "Observation.code.coding.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.code.coding:KundenCode.userSelected",
        "path": "Observation.code.coding.userSelected",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.value[x]",
        "path": "Observation.value[x]",
        "type": [
          {
            "code": "Quantity"
          },
          {
            "code": "CodeableConcept"
          }
        ]
      },
      {
        "id": "Observation.value[x]:valueQuantity",
        "path": "Observation.value[x]",
        "sliceName": "valueQuantity",
        "type": [
          {
            "code": "Quantity"
          }
        ]
      },
      {
        "id": "Observation.value[x]:valueQuantity.extension:pqTranslation",
        "path": "Observation.value[x].extension",
        "sliceName": "pqTranslation",
        "short": "KundenEinheit"
      },
      {
        "id": "Observation.value[x]:valueQuantity.extension:TipluEinheit",
        "path": "Observation.value[x].extension",
        "sliceName": "TipluEinheit",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "https://tiplu.de/fhir/StructureDefinition/TipluEinheitExtension"
            ]
          }
        ],
        "mustSupport": true
      }
    ]
  }
}