<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="mz-Procedure" />
  <text>
    <status value="empty" />
    <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>
  </text>
  <url value="http://medmij.nl/fhir/StructureDefinition/mz-Procedure" />
  <name value="MzProcedure" />
  <title value="mz Procedure" />
  <status value="draft" />
  <publisher value="MedMij" />
  <contact>
    <name value="MedMij" />
    <telecom>
      <system value="email" />
      <value value="info@medmij.nl" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="Therapeutic or diagnostic procedure undergone by the patient in dental care." />
  <purpose value="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 value="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 value="4.0.1" />
  <mapping>
    <identity value="zib-procedure-v5.2-2020EN" />
    <uri value="https://zibs.nl/wiki/Procedure-v5.2(2020EN)" />
    <name value="zib Procedure-v5.2(2020EN)" />
  </mapping>
  <mapping>
    <identity value="mz-dataset-100-beta2-20260401" />
    <name value="Dataset Mondzorg MedMij 1.0.0-beta.2 20260401" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Procedure" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Procedure" />
  <derivation value="constraint" />
  <differential>
    <element id="Procedure">
      <path value="Procedure" />
      <short value="Procedure" />
      <alias value="Verrichting" />
      <mapping>
        <identity value="zib-procedure-v5.2-2020EN" />
        <map value="NL-CM:14.1.1" />
        <comment value="Procedure" />
      </mapping>
      <mapping>
        <identity value="mz-dataset-100-beta2-20260401" />
        <map value="mz-dataelement-26" />
        <comment value="Procedure" />
      </mapping>
    </element>
    <element id="Procedure.extension">
      <path value="Procedure.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Procedure.extension:procedureMethod">
      <path value="Procedure.extension" />
      <sliceName value="procedureMethod" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="http://nictiz.nl/fhir/StructureDefinition/ext-Procedure.ProcedureMethod" />
      </type>
    </element>
    <element id="Procedure.status">
      <path value="Procedure.status" />
      <definition value="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:&#xA;* When the ProcedureStartDate is in the future, `.status` will usually be set to _preparation_.&#xA;* When ProcedureStartDate is in the past and ProcedureEndDate is in the future, `.status` will usually be set to _in-progress_.&#xA;* When ProcedureEndDate is in the past, `.status` will usually be set to _completed_.&#xA;* 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_.&#xA;* 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 value="zib-procedure-v5.2-2020EN" />
        <map value="NL-CM:14.1.2" />
        <comment value="ProcedureStartDate (implicit, main mapping is on Procedure.performedPeriod.start and Procedure.performedDateTime)" />
      </mapping>
      <mapping>
        <identity value="zib-procedure-v5.2-2020EN" />
        <map value="NL-CM:14.1.3" />
        <comment value="ProcedureEndDate (implicit, main mapping is on Procedure.performedPeriod.end)" />
      </mapping>
      <mapping>
        <identity value="mz-dataset-100-beta2-20260401" />
        <map value="mz-dataelement-27" />
        <comment value="ProcedureStartDate (implicit, main mapping is on Procedure.performedPeriod.start and Procedure.performedDateTime)" />
      </mapping>
      <mapping>
        <identity value="mz-dataset-100-beta2-20260401" />
        <map value="mz-dataelement-28" />
        <comment value="ProcedureEndDate (implicit, main mapping is on Procedure.performedPeriod.end)" />
      </mapping>
    </element>
    <element id="Procedure.category">
      <path value="Procedure.category" />
      <min value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="http://snomed.info/sct" />
          <code value="225362009" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Procedure.code">
      <path value="Procedure.code" />
      <short value="ProcedureType" />
      <definition value="The name of the procedure based on the [Prestatiecodelijst Mondzorg (010)](https://tog.vektis.nl/Webinfo.aspx?ID=Prestatiecodelijsten) authored by Vektis." />
      <comment value="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 value="VerrichtingType" />
      <min value="1" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://medmij.nl/fhir/ValueSet/ProcedureTypeVektisDentalCare" />
      </binding>
      <mapping>
        <identity value="mz-dataset-100-beta2-20260401" />
        <map value="mz-dataelement-29" />
        <comment value="ProcedureType" />
      </mapping>
    </element>
    <element id="Procedure.subject">
      <path value="Procedure.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Group" />
        <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient" />
      </type>
    </element>
    <element id="Procedure.performed[x]">
      <path value="Procedure.performed[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Procedure.performed[x]:performedPeriod">
      <path value="Procedure.performed[x]" />
      <sliceName value="performedPeriod" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
    </element>
    <element id="Procedure.performed[x]:performedPeriod.start">
      <path value="Procedure.performed[x].start" />
      <short value="ProcedureStartDate" />
      <definition value="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 value="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 value="VerrichtingStartDatum" />
      <mapping>
        <identity value="zib-procedure-v5.2-2020EN" />
        <map value="NL-CM:14.1.2" />
        <comment value="ProcedureStartDate" />
      </mapping>
      <mapping>
        <identity value="mz-dataset-100-beta2-20260401" />
        <map value="mz-dataelement-27" />
        <comment value="ProcedureStartDate" />
      </mapping>
    </element>
    <element id="Procedure.performed[x]:performedPeriod.end">
      <path value="Procedure.performed[x].end" />
      <short value="ProcedureEndDate" />
      <definition value="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 value="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 value="VerrichtingEindDatum" />
      <mapping>
        <identity value="zib-procedure-v5.2-2020EN" />
        <map value="NL-CM:14.1.3" />
        <comment value="ProcedureEndDate" />
      </mapping>
      <mapping>
        <identity value="mz-dataset-100-beta2-20260401" />
        <map value="mz-dataelement-28" />
        <comment value="ProcedureEndDate" />
      </mapping>
    </element>
    <element id="Procedure.performed[x]:performedDateTime">
      <path value="Procedure.performed[x]" />
      <sliceName value="performedDateTime" />
      <short value="ProcedureStartDate" />
      <definition value="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 value="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 value="VerrichtingStartDatum" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <mapping>
        <identity value="zib-procedure-v5.2-2020EN" />
        <map value="NL-CM:14.1.2" />
        <comment value="ProcedureStartDate" />
      </mapping>
      <mapping>
        <identity value="mz-dataset-100-beta2-20260401" />
        <map value="mz-dataelement-27" />
        <comment value="ProcedureStartDate" />
      </mapping>
    </element>
    <element id="Procedure.performer.actor">
      <path value="Procedure.performer.actor" />
      <short value="Performer" />
      <definition value="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 value="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.&#xA;&#xA;In 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 value="Uitvoerder" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/PractitionerRole" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/RelatedPerson" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Device" />
        <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-PractitionerRole" />
      </type>
      <mapping>
        <identity value="zib-procedure-v5.2-2020EN" />
        <map value="NL-CM:14.1.6" />
        <comment value="Performer" />
      </mapping>
      <mapping>
        <identity value="mz-dataset-100-beta2-20260401" />
        <map value="mz-dataelement-47" />
        <comment value="Performer" />
      </mapping>
    </element>
    <element id="Procedure.location">
      <path value="Procedure.location" />
      <short value="Location" />
      <definition value="The healthcare center where the procedure was or is carried out." />
      <alias value="Locatie" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Location" />
        <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthcareProvider" />
      </type>
      <mapping>
        <identity value="zib-procedure-v5.2-2020EN" />
        <map value="NL-CM:14.1.5" />
        <comment value="Location" />
      </mapping>
      <mapping>
        <identity value="mz-dataset-100-beta2-20260401" />
        <map value="mz-dataelement-46" />
        <comment value="Location" />
      </mapping>
    </element>
    <element id="Procedure.reasonReference">
      <path value="Procedure.reasonReference" />
      <short value="Indication" />
      <definition value="The indication is the reason for the procedure." />
      <alias value="Indicatie" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Condition" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Observation" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Procedure" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/DiagnosticReport" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/DocumentReference" />
        <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-Problem" />
      </type>
      <mapping>
        <identity value="zib-procedure-v5.2-2020EN" />
        <map value="NL-CM:14.1.9" />
        <comment value="Indication" />
      </mapping>
      <mapping>
        <identity value="mz-dataset-100-beta2-20260401" />
        <map value="mz-dataelement-34" />
        <comment value="Indication" />
      </mapping>
    </element>
    <element id="Procedure.bodySite">
      <path value="Procedure.bodySite" />
      <short value="Location / ProcedureAnatomicalLocation" />
      <definition value="Anatomical location which is the focus of the procedure." />
      <alias value="VerrichtingAnatomischeLocatie" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-AnatomicalLocation" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20200901000000" />
      </binding>
      <mapping>
        <identity value="zib-procedure-v5.2-2020EN" />
        <map value="NL-CM:14.1.13" />
        <comment value="ProcedureAnatomicalLocation" />
      </mapping>
      <mapping>
        <identity value="mz-dataset-100-beta2-20260401" />
        <map value="mz-dataelement-31" />
        <comment value="ProcedureAnatomicalLocation" />
      </mapping>
    </element>
  </differential>
</StructureDefinition>