<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="MHAIEConsent" />
  <url value="https://vitalhub.com/fhir/StructureDefinition/MHAIEConsent" />
  <name value="MHAIEConsent" />
  <status value="draft" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Consent" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Consent" />
  <derivation value="constraint" />
  <differential>
    <element id="Consent.extension">
      <path value="Consent.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <definition value="Extensions used in MHAIE Consent." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Consent.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
    </element>
    <element id="Consent.extension:alert">
      <path value="Consent.extension" />
      <sliceName value="alert" />
      <short value="alert" />
      <definition value="The presence of a consent alert" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://vitalhub.com/fhir/StructureDefinition/ext-alert" />
      </type>
    </element>
    <element id="Consent.extension:voluntary">
      <path value="Consent.extension" />
      <sliceName value="voluntary" />
      <short value="Voluntary/Involuntary status" />
      <definition value="Voluntary/Involuntary consent status extension." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://vitalhub.com/fhir/StructureDefinition/ext-voluntary" />
      </type>
    </element>
    <element id="Consent.extension:FormalResearch">
      <path value="Consent.extension" />
      <sliceName value="FormalResearch" />
      <short value="Formal research" />
      <definition value="Extension capturing formal research details including type, period, REB, and linked document." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://vitalhub.com/fhir/StructureDefinition/ext-FormalResearch" />
      </type>
    </element>
    <element id="Consent.extension:SubstituteDecisionMakers">
      <path value="Consent.extension" />
      <sliceName value="SubstituteDecisionMakers" />
      <short value="SDM" />
      <definition value="Extension capturing SDM details including type, subtype, contact, period, legal status, and linked document." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://vitalhub.com/fhir/StructureDefinition/ext-SubstituteDecisionMakers" />
      </type>
    </element>
    <element id="Consent.extension:CTO">
      <path value="Consent.extension" />
      <sliceName value="CTO" />
      <short value="CTO" />
      <definition value="Extension capturing Community Treatment Order details including period, review date, clinician, assignment, and linked document." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://vitalhub.com/fhir/StructureDefinition/ext-CTO" />
      </type>
    </element>
    <element id="Consent.extension:Document">
      <path value="Consent.extension" />
      <sliceName value="Document" />
      <short value="Document" />
      <definition value="Extension capturing document metadata, contents, and GUID." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://vitalhub.com/fhir/StructureDefinition/ext-Document" />
      </type>
    </element>
    <element id="Consent.extension:InvoluntaryStatus">
      <path value="Consent.extension" />
      <sliceName value="InvoluntaryStatus" />
      <short value="Involuntary" />
      <definition value="Extension capturing involuntary status application assessment details including type, period, issuing authority, and linked document." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://vitalhub.com/fhir/StructureDefinition/ext-InvoluntaryStatusApplicationAssessment" />
      </type>
    </element>
    <element id="Consent.extension:consents">
      <path value="Consent.consents" />
      <sliceName value="consents" />
      <short value="consents" />
      <definition value="consents" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://vitalhub.com/fhir/StructureDefinition/ext-consents" />
      </type>
    </element>
    <element id="Consent.extension:capacity">
      <path value="Consent.extension" />
      <sliceName value="capacity" />
      <short value="capacity status" />
      <definition value="capacity consent status extension." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://vitalhub.com/fhir/StructureDefinition/ext-capacity" />
      </type>
    </element>
    <element id="Consent.extension:consentdescription">
      <path value="Consent.extension" />
      <sliceName value="ConsentDescription" />
      <short value="Description" />
      <definition value="Text Description of the Consent." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://vitalhub.com/fhir/StructureDefinition/ext-ConsentDescription" />
      </type>
    </element>
    <element id="Consent.organization">
      <path value="Consent.organization" />
      <short value="Responsible organization" />
      <definition value="The organization responsible for the consent." />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://vitalhub.com/fhir/ValueSet/vs-Organizations" />
      </binding>
    </element>
    <element id="Consent.source">
      <path value="Consent.source" />
      <comment value="Removed in MHAIEConsent profile" />
      <min value="0" />
      <max value="0" />
    </element>
    <element id="Consent.policy">
      <path value="Consent.policy" />
      <comment value="Removed in MHAIEConsent profile" />
      <min value="0" />
      <max value="0" />
    </element>
    <element id="Consent.policyRule">
      <path value="Consent.policyRule" />
      <comment value="Removed in MHAIEConsent profile" />
      <min value="0" />
      <max value="0" />
    </element>
    <element id="Consent.contained">
      <path value="Consent.contained" />
      <comment value="Removed in MHAIEConsent profile" />
      <min value="0" />
      <max value="0" />
    </element>
    <element id="Consent.verification">
      <path value="Consent.verification" />
      <comment value="Removed in MHAIEConsent profile" />
      <min value="0" />
      <max value="0" />
    </element>
    <element id="Consent.performer">
      <path value="Consent.performer" />
      <comment value="Removed in MHAIEConsent profile" />
      <min value="0" />
      <max value="0" />
    </element>
    <element id="Consent.verification">
      <path value="Consent.verification" />
      <comment value="Removed in MHAIEConsent profile" />
      <min value="0" />
      <max value="0" />
    </element>
    <element id="Consent.language">
      <path value="Consent.language" />
      <comment value="Removed in MHAIEConsent profile" />
      <min value="0" />
      <max value="0" />
    </element>
    <element id="Consent.identifier.system">
      <path value="Consent.identifier.system" />
      <min value="1" />
      <max value="1" />
      <fixedUri value="https://vitalhub.com/fhir/MHAIEConsent/ConsentID" />
    </element>
    <element id="Consent.organization.identifier.system">
      <path value="Consent.organization.identifier.system" />
      <min value="1" />
      <max value="1" />
      <fixedUri value="https://vitalhub.com/fhir/MHAIEConsent/OrganizationID" />
    </element>
    <element id="Consent.Patient.identifier.system">
      <path value="Consent.Patient.identifier.system" />
      <min value="1" />
      <max value="1" />
      <fixedUri value="https://vitalhub.com/fhir/MHAIEPatient/PatientID" />
    </element>
    <element id="Consent.status">
      <path value="Consent.status" />
      <short value="Consent status" />
      <definition value="Status of the consent, constrained to active or inactive." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="code" />
      </type>
      <constraint>
        <key value="consent-status-active-inactive" />
        <severity value="error" />
        <human value="Consent.status must be either 'active' or 'inactive'" />
        <expression value="status = 'active' or status = 'inactive'" />
      </constraint>
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/consent-state" />
      </binding>
    </element>
    <element id="Consent.scope">
      <path value="Consent.scope" />
      <short value="Scope of consent" />
      <definition value="Scope of the consent, constrained to patient-privacy only." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/consentscope" />
          <code value="patient-privacy" />
          <display value="Privacy consent" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Consent.category">
      <path value="Consent.category" />
      <short value="Category of consent" />
      <definition value="Category of the consent, constrained to Patient Consent (LOINC 59284-0)." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <patternCodeableConcept>
        <coding>
          <system value="http://loinc.org" />
          <code value="59284-0" />
          <display value="Patient Consent" />
        </coding>
      </patternCodeableConcept>
    </element>
  </differential>
</StructureDefinition>