{
  "resourceType": "StructureDefinition",
  "id": "digidot-Procedure-no",
  "url": "https://novari.no/fhir/digidot/StructureDefinition/digidot-Procedure-no",
  "version": "0.1.3",
  "name": "digidot_Procedure_no",
  "title": "DigiDot Procedure (NO)",
  "status": "draft",
  "date": "2025-09-11",
  "publisher": "Novari AS – DigiDot",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Procedure",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Procedure",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Procedure",
        "path": "Procedure"
      },
      {
        "id": "Procedure.identifier",
        "path": "Procedure.identifier",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Procedure.status",
        "path": "Procedure.status",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Procedure.code",
        "path": "Procedure.code",
        "min": 1,
        "constraint": [
          {
            "key": "proc-sct-min1",
            "severity": "warning",
            "human": "Minst én SNOMED (pre eller post) bør være til stede.",
            "expression": "coding.where(system = 'http://snomed.info/sct').exists()"
          }
        ]
      },
      {
        "id": "Procedure.code.coding",
        "path": "Procedure.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        },
        "min": 1,
        "max": "2"
      },
      {
        "id": "Procedure.code.coding:SCTpre",
        "path": "Procedure.code.coding",
        "sliceName": "SCTpre",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Procedure.code.coding:SCTpre.system",
        "path": "Procedure.code.coding.system",
        "min": 1,
        "fixedUri": "http://snomed.info/sct"
      },
      {
        "id": "Procedure.code.coding:SCTpre.code",
        "path": "Procedure.code.coding.code",
        "min": 1
      },
      {
        "id": "Procedure.code.coding:SCTpre.display",
        "path": "Procedure.code.coding.display",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Procedure.code.coding:SCText",
        "path": "Procedure.code.coding",
        "sliceName": "SCText",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Procedure.code.coding:SCText.system",
        "path": "Procedure.code.coding.system",
        "min": 1,
        "fixedUri": "http://snomed.info/sct"
      },
      {
        "id": "Procedure.code.coding:SCText.code",
        "path": "Procedure.code.coding.code",
        "min": 1
      },
      {
        "id": "Procedure.code.coding:SCText.display",
        "path": "Procedure.code.coding.display",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Procedure.subject",
        "path": "Procedure.subject",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Patient"
            ]
          }
        ]
      },
      {
        "id": "Procedure.encounter",
        "path": "Procedure.encounter",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Encounter"
            ]
          }
        ]
      },
      {
        "id": "Procedure.performer",
        "path": "Procedure.performer"
      },
      {
        "id": "Procedure.performer.actor",
        "path": "Procedure.performer.actor",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Practitioner",
              "http://hl7.org/fhir/StructureDefinition/PractitionerRole"
            ]
          }
        ]
      },
      {
        "id": "Procedure.location",
        "path": "Procedure.location",
        "max": "1",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Location"
            ]
          }
        ]
      },
      {
        "id": "Procedure.reasonReference",
        "path": "Procedure.reasonReference",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Condition"
            ]
          }
        ]
      },
      {
        "id": "Procedure.bodySite",
        "path": "Procedure.bodySite",
        "min": 0,
        "max": "*"
      },
      {
        "id": "Procedure.bodySite.coding",
        "path": "Procedure.bodySite.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        },
        "min": 0,
        "max": "*"
      },
      {
        "id": "Procedure.bodySite.coding:sct",
        "path": "Procedure.bodySite.coding",
        "sliceName": "sct",
        "min": 0,
        "max": "*"
      },
      {
        "id": "Procedure.bodySite.coding:sct.system",
        "path": "Procedure.bodySite.coding.system",
        "min": 1,
        "fixedUri": "http://snomed.info/sct"
      },
      {
        "id": "Procedure.bodySite.coding:sct.code",
        "path": "Procedure.bodySite.coding.code",
        "min": 1
      },
      {
        "id": "Procedure.bodySite.coding:sct.display",
        "path": "Procedure.bodySite.coding.display",
        "min": 0,
        "max": "1"
      }
    ]
  }
}