{
  "resourceType": "StructureDefinition",
  "id": "mz-Procedure",
  "text": {
    "status": "empty",
    "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">No narrative is provided for definitional resources. A human-readable rendering can be found in the implementation guide(s) where this resource is used.</div>"
  },
  "url": "http://medmij.nl/fhir/StructureDefinition/mz-Procedure",
  "name": "MzProcedure",
  "title": "mz Procedure",
  "status": "draft",
  "publisher": "MedMij",
  "contact": [
    {
      "name": "MedMij",
      "telecom": [
        {
          "system": "email",
          "value": "info@medmij.nl",
          "use": "work"
        }
      ]
    }
  ],
  "description": "Therapeutic or diagnostic procedure undergone by the patient in dental care.",
  "purpose": "This Procedure resource represents the Procedure Clinical Information Model (CIM) for patient use cases in the context of Dental Care. This profile is largely based on the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) Procedure v5.2 (2020)](https://zibs.nl/wiki/Procedure-v5.2(2020EN)), but has no dependency on the corresponding nl-core-Procedure-event profile because it contains non-compatible changes with respect to ProcedureType. Where compatible, mappings to zib concepts are defined (next to the mappings to the Dental Care data set). Moreover, guidance and mappings corresponding to the MedicalDevice and Requester concepts, as well as the reversed reference for zib TextResult, which are present in the nl-core profile, have been omitted from this profile.",
  "copyright": "Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise.",
  "fhirVersion": "4.0.1",
  "mapping": [
    {
      "identity": "zib-procedure-v5.2-2020EN",
      "name": "zib Procedure-v5.2(2020EN)",
      "uri": "https://zibs.nl/wiki/Procedure-v5.2(2020EN)"
    },
    {
      "identity": "mz-dataset-100-beta2-20260401",
      "name": "Dataset Mondzorg MedMij 1.0.0-beta.2 20260401"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "Procedure",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Procedure",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Procedure",
        "path": "Procedure",
        "short": "Procedure",
        "alias": [
          "Verrichting"
        ],
        "mapping": [
          {
            "identity": "zib-procedure-v5.2-2020EN",
            "map": "NL-CM:14.1.1",
            "comment": "Procedure"
          },
          {
            "identity": "mz-dataset-100-beta2-20260401",
            "map": "mz-dataelement-26",
            "comment": "Procedure"
          }
        ]
      },
      {
        "id": "Procedure.extension",
        "path": "Procedure.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "ordered": false,
          "rules": "open"
        }
      },
      {
        "id": "Procedure.extension:procedureMethod",
        "path": "Procedure.extension",
        "sliceName": "procedureMethod",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://nictiz.nl/fhir/StructureDefinition/ext-Procedure.ProcedureMethod"
            ]
          }
        ]
      },
      {
        "id": "Procedure.status",
        "path": "Procedure.status",
        "definition": "This element is implictly mapped to the zib concepts ProcedureStartDate (NL-CM:14.1.2) and ProcedureEndDate (NL-CM:14.1.3). Unless the status is explicitly recorded, the following guidance applies:\n* When the ProcedureStartDate is in the future, `.status` will usually be set to _preparation_.\n* When ProcedureStartDate is in the past and ProcedureEndDate is in the future, `.status` will usually be set to _in-progress_.\n* When ProcedureEndDate is in the past, `.status` will usually be set to _completed_.\n* When ProcedureStartDate is in the past and ProcedureEndDate is missing, it may be assumed that the Procedure was recorded as a point in time and `.status` will usually be set to _completed_.\n* When a system is unable to infer the status from the ProcedureStartDate and ProcedureEndDate , `.status` will be set to _unknown_. The _unknown_ code is not to be used to convey other statuses. The _unknown_ code should be used when one of the statuses applies, but the authoring system doesn't know the current state of the Procedure.",
        "mapping": [
          {
            "identity": "zib-procedure-v5.2-2020EN",
            "map": "NL-CM:14.1.2",
            "comment": "ProcedureStartDate (implicit, main mapping is on Procedure.performedPeriod.start and Procedure.performedDateTime)"
          },
          {
            "identity": "zib-procedure-v5.2-2020EN",
            "map": "NL-CM:14.1.3",
            "comment": "ProcedureEndDate (implicit, main mapping is on Procedure.performedPeriod.end)"
          },
          {
            "identity": "mz-dataset-100-beta2-20260401",
            "map": "mz-dataelement-27",
            "comment": "ProcedureStartDate (implicit, main mapping is on Procedure.performedPeriod.start and Procedure.performedDateTime)"
          },
          {
            "identity": "mz-dataset-100-beta2-20260401",
            "map": "mz-dataelement-28",
            "comment": "ProcedureEndDate (implicit, main mapping is on Procedure.performedPeriod.end)"
          }
        ]
      },
      {
        "id": "Procedure.category",
        "path": "Procedure.category",
        "min": 1,
        "patternCodeableConcept": {
          "coding": [
            {
              "code": "225362009",
              "system": "http://snomed.info/sct"
            }
          ]
        }
      },
      {
        "id": "Procedure.code",
        "path": "Procedure.code",
        "short": "ProcedureType",
        "definition": "The name of the procedure based on the [Prestatiecodelijst Mondzorg (010)](https://tog.vektis.nl/Webinfo.aspx?ID=Prestatiecodelijsten) authored by Vektis.",
        "comment": "Since the _required_ binding of VerrichtingTypeCodelijsten in the nl-core profile does not contain the procedure types relevant for dental care, this profile is not derived from the nl-core profile.",
        "alias": [
          "VerrichtingType"
        ],
        "min": 1,
        "binding": {
          "strength": "extensible",
          "valueSet": "http://medmij.nl/fhir/ValueSet/ProcedureTypeVektisDentalCare"
        },
        "mapping": [
          {
            "identity": "mz-dataset-100-beta2-20260401",
            "map": "mz-dataelement-29",
            "comment": "ProcedureType"
          }
        ]
      },
      {
        "id": "Procedure.subject",
        "path": "Procedure.subject",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Patient",
              "http://hl7.org/fhir/StructureDefinition/Group",
              "http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient"
            ]
          }
        ]
      },
      {
        "id": "Procedure.performed[x]",
        "path": "Procedure.performed[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        }
      },
      {
        "id": "Procedure.performed[x]:performedPeriod",
        "path": "Procedure.performed[x]",
        "sliceName": "performedPeriod",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Period"
          }
        ]
      },
      {
        "id": "Procedure.performed[x]:performedPeriod.start",
        "path": "Procedure.performed[x].start",
        "short": "ProcedureStartDate",
        "definition": "The start date (and if possible start time) of the procedure. A 'vague' date, such as only the year, is permitted. The element offers the option to indicate the start of the period of a series of related procedures.",
        "comment": "If the zib Procedure concerns a procedure performed over a period, `Procedure.performedPeriod.start` and `Procedure.performedPeriod.end` are used to represent zib concepts ProcedureStartDate and ProcedureEndDate. For instantaneous or very short lasting procedures, `Procedure.performedDateTime` is used for ProcedureStartDate (ProcedureEndDate doesn't have a meaning in this case; ProcedureStartDate is the moment the procedure is performed).",
        "alias": [
          "VerrichtingStartDatum"
        ],
        "mapping": [
          {
            "identity": "zib-procedure-v5.2-2020EN",
            "map": "NL-CM:14.1.2",
            "comment": "ProcedureStartDate"
          },
          {
            "identity": "mz-dataset-100-beta2-20260401",
            "map": "mz-dataelement-27",
            "comment": "ProcedureStartDate"
          }
        ]
      },
      {
        "id": "Procedure.performed[x]:performedPeriod.end",
        "path": "Procedure.performed[x].end",
        "short": "ProcedureEndDate",
        "definition": "The end date (and if possible end time) of the procedure. A 'vague' date, such as only the year, is permitted. The element offers the option to indicate the end of the period of a series of related procedures. The end date element is only used for a procedure that takes some time and is then always applied. If the procedure still continues, the value is left empty.",
        "comment": "If the zib Procedure concerns a procedure performed over a period, `Procedure.performedPeriod.start` and `Procedure.performedPeriod.end` are used to represent zib concepts ProcedureStartDate and ProcedureEndDate. For instantaneous or very short lasting procedures, `Procedure.performedDateTime` is used for ProcedureStartDate (ProcedureEndDate doesn't have a meaning in this case; ProcedureStartDate is the moment the procedure is performed).",
        "alias": [
          "VerrichtingEindDatum"
        ],
        "mapping": [
          {
            "identity": "zib-procedure-v5.2-2020EN",
            "map": "NL-CM:14.1.3",
            "comment": "ProcedureEndDate"
          },
          {
            "identity": "mz-dataset-100-beta2-20260401",
            "map": "mz-dataelement-28",
            "comment": "ProcedureEndDate"
          }
        ]
      },
      {
        "id": "Procedure.performed[x]:performedDateTime",
        "path": "Procedure.performed[x]",
        "sliceName": "performedDateTime",
        "short": "ProcedureStartDate",
        "definition": "The start date (and if possible start time) of the procedure. A 'vague' date, such as only the year, is permitted. `Procedure.performedDateTime` is used for instantaneous or very short lasting procedures.",
        "comment": "If the zib Procedure concerns a procedure performed over a period, `Procedure.performedPeriod.start` and `Procedure.performedPeriod.end` are used to represent zib concepts ProcedureStartDate and ProcedureEndDate. For instantaneous or very short lasting procedures, `Procedure.performedDateTime` is used for ProcedureStartDate (ProcedureEndDate doesn't have a meaning in this case; ProcedureStartDate is the moment the procedure is performed).",
        "alias": [
          "VerrichtingStartDatum"
        ],
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "dateTime"
          }
        ],
        "mapping": [
          {
            "identity": "zib-procedure-v5.2-2020EN",
            "map": "NL-CM:14.1.2",
            "comment": "ProcedureStartDate"
          },
          {
            "identity": "mz-dataset-100-beta2-20260401",
            "map": "mz-dataelement-27",
            "comment": "ProcedureStartDate"
          }
        ]
      },
      {
        "id": "Procedure.performer.actor",
        "path": "Procedure.performer.actor",
        "short": "Performer",
        "definition": "The health professional who carried out the procedure. In most cases, only the medical specialty is entered, and not the name of the health professional.",
        "comment": "Each occurrence of the zib HealthProfessional is normally represented by _two_ FHIR resources: a PractitionerRole resource (instance of [nl-core-HealthProfessional-PractitionerRole](http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-PractitionerRole)) and a Practitioner resource (instance of [nl-core-HealthProfessional-Practitioner](http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-Practitioner)). The Practitioner resource is referenced from the PractitionerRole instance. For this reason, sending systems should fill the reference to the PractitionerRole instance here, and not the Practitioner resource. Receiving systems can then retrieve the reference to the Practitioner resource from that PractitionerRole instance.\n\nIn rare circumstances, there is only a Practitioner instance, in which case it is that instance which will be referenced here. However, since this should be the exception, the nl-core-HealthProfessional-Practitioner profile is not explicitly mentioned as a target profile.",
        "alias": [
          "Uitvoerder"
        ],
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Practitioner",
              "http://hl7.org/fhir/StructureDefinition/PractitionerRole",
              "http://hl7.org/fhir/StructureDefinition/Organization",
              "http://hl7.org/fhir/StructureDefinition/Patient",
              "http://hl7.org/fhir/StructureDefinition/RelatedPerson",
              "http://hl7.org/fhir/StructureDefinition/Device",
              "http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-PractitionerRole"
            ]
          }
        ],
        "mapping": [
          {
            "identity": "zib-procedure-v5.2-2020EN",
            "map": "NL-CM:14.1.6",
            "comment": "Performer"
          },
          {
            "identity": "mz-dataset-100-beta2-20260401",
            "map": "mz-dataelement-47",
            "comment": "Performer"
          }
        ]
      },
      {
        "id": "Procedure.location",
        "path": "Procedure.location",
        "short": "Location",
        "definition": "The healthcare center where the procedure was or is carried out.",
        "alias": [
          "Locatie"
        ],
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Location",
              "http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthcareProvider"
            ]
          }
        ],
        "mapping": [
          {
            "identity": "zib-procedure-v5.2-2020EN",
            "map": "NL-CM:14.1.5",
            "comment": "Location"
          },
          {
            "identity": "mz-dataset-100-beta2-20260401",
            "map": "mz-dataelement-46",
            "comment": "Location"
          }
        ]
      },
      {
        "id": "Procedure.reasonReference",
        "path": "Procedure.reasonReference",
        "short": "Indication",
        "definition": "The indication is the reason for the procedure.",
        "alias": [
          "Indicatie"
        ],
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Condition",
              "http://hl7.org/fhir/StructureDefinition/Observation",
              "http://hl7.org/fhir/StructureDefinition/Procedure",
              "http://hl7.org/fhir/StructureDefinition/DiagnosticReport",
              "http://hl7.org/fhir/StructureDefinition/DocumentReference",
              "http://nictiz.nl/fhir/StructureDefinition/nl-core-Problem"
            ]
          }
        ],
        "mapping": [
          {
            "identity": "zib-procedure-v5.2-2020EN",
            "map": "NL-CM:14.1.9",
            "comment": "Indication"
          },
          {
            "identity": "mz-dataset-100-beta2-20260401",
            "map": "mz-dataelement-34",
            "comment": "Indication"
          }
        ]
      },
      {
        "id": "Procedure.bodySite",
        "path": "Procedure.bodySite",
        "short": "Location / ProcedureAnatomicalLocation",
        "definition": "Anatomical location which is the focus of the procedure.",
        "alias": [
          "VerrichtingAnatomischeLocatie"
        ],
        "max": "1",
        "type": [
          {
            "code": "CodeableConcept",
            "profile": [
              "http://nictiz.nl/fhir/StructureDefinition/nl-core-AnatomicalLocation"
            ]
          }
        ],
        "binding": {
          "strength": "required",
          "valueSet": "http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20200901000000"
        },
        "mapping": [
          {
            "identity": "zib-procedure-v5.2-2020EN",
            "map": "NL-CM:14.1.13",
            "comment": "ProcedureAnatomicalLocation"
          },
          {
            "identity": "mz-dataset-100-beta2-20260401",
            "map": "mz-dataelement-31",
            "comment": "ProcedureAnatomicalLocation"
          }
        ]
      }
    ]
  }
}