<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="nfdi4health-pr-mds-composition" />
  <url value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-composition" />
  <version value="0.9" />
  <name value="NFDI4Health_PR_MDS_Composition" />
  <title value="NFDI4Health PR MDS Composition" />
  <status value="draft" />
  <publisher value="NFDI4Health" />
  <contact>
    <telecom>
      <system value="url" />
      <value value="https://www.nfdi4health.de" />
    </telecom>
  </contact>
  <description value="Profile intended to capture information on the core information of resources." />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="workflow" />
    <uri value="http://hl7.org/fhir/workflow" />
    <name value="Workflow Pattern" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="cda" />
    <uri value="http://hl7.org/v3/cda" />
    <name value="CDA (R2)" />
  </mapping>
  <mapping>
    <identity value="fhirdocumentreference" />
    <uri value="http://hl7.org/fhir/documentreference" />
    <name value="FHIR DocumentReference" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/fivews" />
    <name value="FiveWs Pattern Mapping" />
  </mapping>
  <mapping>
    <identity value="NFDI4Health" />
    <name value="NFDI4Health to FHIR Mapping" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Composition" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Composition" />
  <derivation value="constraint" />
  <differential>
    <element id="Composition">
      <path value="Composition" />
      <constraint>
        <key value="core-2a" />
        <severity value="error" />
        <human value="When author.extension[nameType] = '125676002' then author only Reference (NFDI4Health_PR_MDS_Practitioner_Role)" />
        <expression value="author.where(extension('https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-ex-mds-name-type').value as Coding).where(code = '125676002').exists() implies $this.reference.contains('PractitionerRole')" />
        <source value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-composition" />
      </constraint>
      <constraint>
        <key value="core-2b" />
        <severity value="error" />
        <human value="When author.extension[nameType] = '385437003' then author only Reference (NFDI4Health_PR_MDS_Organization)" />
        <expression value="author.where(extension('https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-ex-mds-name-type').value as Coding).where(code = '385437003').exists() implies $this.reference.contains('Organization')" />
        <source value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-composition" />
      </constraint>
      <constraint>
        <key value="core-1a" />
        <severity value="error" />
        <human value="When Composition.type = 'C63536' OR 'C198230' OR 'C47824' OR 'C61393' OR '178' then Composition.category must be empty." />
        <expression value="type.coding.where(code = 'C63536' or code = 'C198230' or code = 'C47824' or code = 'C61393' or code = '178').exists() implies category.exists().not()" />
        <source value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-composition" />
      </constraint>
      <constraint>
        <key value="core-1b" />
        <severity value="error" />
        <human value="When Composition.type != 'C63536' OR 'C198230' OR 'C47824' OR 'C61393' OR '178' then Composition.category must exist." />
        <expression value="type.coding.where(code = 'C93381' or code = 'C16468' or code = 'C15518' or code = 'C115779' or code = 'C115761' or code = 'C115756' or code = 'C40988' or code = 'C17048' or code = 'C17649' or code = 'C48800' or code = '021' or code = '020' or code = '019' or code = '018' or code = '017' or code = '016' or code = '011' or code = '009').exists() implies category.exists()" />
        <source value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-composition" />
      </constraint>
      <constraint>
        <key value="core-3a" />
        <severity value="error" />
        <human value="When Composition.type = 'C63536' or 'C198230' or '178' then subject only Reference (NFDI4Health_PR_MDS_Study)" />
        <expression value="type.coding.where(code = 'C63536' or code = 'C198230' or code = '178').exists() implies subject.reference.contains('ResearchStudy')" />
        <source value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-composition" />
      </constraint>
      <constraint>
        <key value="core-3b" />
        <severity value="error" />
        <human value="When Composition.type = 009, C16468 , C15518, C115779, C115761, C115756, 011, 016, '017', '018', '021' then subject only Reference (NFDI4Health_PR_MDS_Document)" />
        <expression value="type.coding.where(code = '009' or code = 'C16468' or code = 'C15518' or code = 'C115779' or code = 'C115761' or code = 'C115756' or code = '011' or code = '016' or code = '017' or code = '018' or code = '021').exists() implies subject.reference.contains('Document')" />
        <source value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-composition" />
      </constraint>
      <constraint>
        <key value="core-3c" />
        <severity value="error" />
        <human value="When Composition.type = 'C17048' or 'C40988' then subject only Reference (Profile: NFDI4Health_PR_MDS_Questionnaire)" />
        <expression value="type.coding.where(code = 'C17048' or code = 'C40988').exists() implies subject.reference.contains('Questionnaire')" />
        <source value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-composition" />
      </constraint>
      <constraint>
        <key value="core-4a" />
        <severity value="error" />
        <human value="1..*, if Resource.chronicDiseases == 'True' AND Resource.classification.type == ('C93381' OR 'C16468' OR 'C15518' OR 'C115779' OR 'C115761' OR 'C115756' OR 'C40988' OR  '016' OR '017' OR '018' OR '019' OR '021' OR 'C17649'); otherwise 0.. 0" />
        <expression value="extension.where(url ='https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-ex-mds-chronic-diseases').where(value = true).exists() implies section.code.coding.where(code = 'C165593').exists()" />
        <source value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-composition" />
      </constraint>
      <constraint>
        <key value="core-4b" />
        <severity value="error" />
        <human value="1..*, if Resource.chronicDiseases == 'True' AND Resource.classification.type == ('C93381' OR 'C16468' OR 'C15518' OR 'C115779' OR 'C115761' OR 'C115756' OR 'C40988' OR  '016' OR '017' OR '018' OR '019' OR '021' OR 'C17649'); otherwise 0.. 0" />
        <expression value="type.coding.where(code = 'C93381' or code = 'C16468' or code = 'C15518' or code = 'C115779' or code = 'C115761' or code = 'C115756' or code = 'C40988' or code =  '016' or code = '017' or code = '018' or code = '019' or code = '021' or code = 'C17649').exists()  implies section.code.coding.where(code = 'C165593').exists()" />
        <source value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-composition" />
      </constraint>
      <constraint>
        <key value="core-5" />
        <severity value="error" />
        <human value="1..*, if Resource.nutritionalData == 'True'; otherwise 0.. 0" />
        <expression value="extension.where(url ='https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-ex-mds-nutritional-data').where(value = true).exists() implies section.code.coding.where(code = 'C16927').exists()" />
        <source value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-composition" />
      </constraint>
    </element>
    <element id="Composition.extension">
      <path value="Composition.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Composition.extension:provenanceDataSource">
      <path value="Composition.extension" />
      <sliceName value="provenanceDataSource" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-ex-mds-provenance-data-source" />
      </type>
      <mapping>
        <identity value="NFDI4Health" />
        <map value="Resource.provenance.dataSource" />
      </mapping>
    </element>
    <element id="Composition.extension:chronicDiseases">
      <path value="Composition.extension" />
      <sliceName value="chronicDiseases" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-ex-mds-chronic-diseases" />
      </type>
      <mapping>
        <identity value="NFDI4Health" />
        <map value="Resource.chronicDiseases" />
      </mapping>
    </element>
    <element id="Composition.extension:executionLanguage">
      <path value="Composition.extension" />
      <sliceName value="executionLanguage" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-ex-mds-execution-language" />
      </type>
      <mapping>
        <identity value="NFDI4Health" />
        <map value="Resource.languages" />
      </mapping>
    </element>
    <element id="Composition.extension:nutritionalData">
      <path value="Composition.extension" />
      <sliceName value="nutritionalData" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-ex-mds-nutritional-data" />
      </type>
      <mapping>
        <identity value="NFDI4Health" />
        <map value="Resource.nutritionalData" />
      </mapping>
    </element>
    <element id="Composition.identifier">
      <path value="Composition.identifier" />
      <short value="Identifier" />
      <definition value="Unique identifier of the resource used for identification within the NFDI4Health." />
      <comment value="Additional information: The identifier is assigned automatically." />
    </element>
    <element id="Composition.identifier.value">
      <path value="Composition.identifier.value" />
      <min value="1" />
      <mapping>
        <identity value="NFDI4Health" />
        <map value="Resource.identifier" />
      </mapping>
    </element>
    <element id="Composition.status">
      <path value="Composition.status" />
      <fixedCode value="final" />
    </element>
    <element id="Composition.type">
      <path value="Composition.type" />
      <short value="type of the resource" />
      <definition value="A term describing the resource." />
      <binding>
        <strength value="required" />
        <valueSet value="https://www.nfdi4health.de/fhir/metadataschema/ValueSet/nfdi4health-vs-mds-resource-type-nci-local" />
      </binding>
      <mapping>
        <identity value="NFDI4Health" />
        <map value="Resource.classification.type" />
      </mapping>
    </element>
    <element id="Composition.category">
      <path value="Composition.category" />
      <short value="In what form is the [RESOURCE] available?" />
      <definition value="Specific information about the form in which the [RESOURCE] is available." />
      <comment value="Cardinality: 1..1, if Resource.classification.type != ('Study' OR 'Substudy' OR 'Dataset' OR 'Registry' OR 'Secondary data source'); otherwise 0..0" />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="https://www.nfdi4health.de/fhir/metadataschema/ValueSet/nfdi4health-vs-mds-resource-type-general-nci-msh-local" />
      </binding>
      <mapping>
        <identity value="NFDI4Health" />
        <map value="Resource.classification.typeGeneral" />
      </mapping>
    </element>
    <element id="Composition.subject">
      <path value="Composition.subject" />
      <comment value="1..1, if Resource.classification.type == ('Study' OR 'Substudy' OR 'Registry' OR 'Secondary data source'); otherwise 0..0" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-document" />
        <targetProfile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-questionnaire" />
        <targetProfile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-study" />
        <targetProfile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-registry" />
      </type>
    </element>
    <element id="Composition.author">
      <path value="Composition.author" />
      <short value="Individual or organisation associated with the [RESOURCE]" />
      <definition value="Individual or organisation associated with the [RESOURCE] (use practitionerRole to specify their organisation)." />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-practitioner-role" />
        <targetProfile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-organization" />
      </type>
      <mapping>
        <identity value="NFDI4Health" />
        <map value="Resource.contributors" />
      </mapping>
      <mapping>
        <identity value="NFDI4Health" />
        <map value="Resource.contributors" />
      </mapping>
    </element>
    <element id="Composition.author.extension">
      <path value="Composition.author.extension" />
      <min value="1" />
    </element>
    <element id="Composition.author.extension:nameType">
      <path value="Composition.author.extension" />
      <sliceName value="nameType" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-ex-mds-name-type" />
      </type>
      <mapping>
        <identity value="NFDI4Health" />
        <map value="Resource.contributors.nameType" />
      </mapping>
    </element>
    <element id="Composition.title">
      <path value="Composition.title" />
      <short value="Title(s)/name(s) or acronym(s) of the [RESOURCE]" />
      <definition value="Group of items providing information about title(s)/name(s) or acronym(s) of the resource." />
      <comment value="Based on ResearchStudy.label (R5), with an extension for language." />
      <mapping>
        <identity value="NFDI4Health" />
        <map value="Resource.titles" />
      </mapping>
      <mapping>
        <identity value="NFDI4Health" />
        <map value="Resource.acronyms" />
      </mapping>
    </element>
    <element id="Composition.title.extension">
      <path value="Composition.title.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Composition.title.extension:label">
      <path value="Composition.title.extension" />
      <sliceName value="label" />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-ex-mds-label" />
      </type>
    </element>
    <element id="Composition.section">
      <path value="Composition.section" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Composition.section:nutritionalData">
      <path value="Composition.section" />
      <sliceName value="nutritionalData" />
      <short value="Nutritional data collected?" />
      <definition value="Indication whether the [RESOURCE] collects nutritional data." />
      <comment value="1..*, if Resource.nutritionalData == 'Yes'; otherwise 0.. 0" />
      <min value="0" />
      <max value="*" />
      <mapping>
        <identity value="NFDI4Health" />
        <map value="DietAssessment" />
      </mapping>
    </element>
    <element id="Composition.section:nutritionalData.code">
      <path value="Composition.section.code" />
      <min value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl" />
          <code value="C16927" />
          <display value="Nutritional Science" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Composition.section:nutritionalData.entry">
      <path value="Composition.section.entry" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-observation-nutritional-epidemiology" />
      </type>
    </element>
    <element id="Composition.section:chronicDiseases">
      <path value="Composition.section" />
      <sliceName value="chronicDiseases" />
      <short value="Chronic diseases included?" />
      <definition value="Indication whether the [RESOURCE] addresses chronic diseases." />
      <comment value="Cardinality: 1..*, if Resource.chronicDiseases == 'Yes' AND Resource.classification.type == ('Study protocol' OR 'Informed consent form' OR 'Patient information sheet' OR 'Manual of operations (SOPs)' OR 'Statistical analysis plan' OR 'Data management plan' OR 'Case report form' OR 'Interview scheme and themes' OR 'Observation guide' OR 'Discussion guide' OR 'Participant tasks' OR 'Other study document' OR 'Other'); otherwise 0..0 / Source of the property and/or allowed values: NFDI4Health UC 5.2 requirements" />
      <min value="0" />
      <max value="*" />
      <mapping>
        <identity value="NFDI4Health" />
        <map value="ChronicDiseasesEpidemiology" />
      </mapping>
    </element>
    <element id="Composition.section:chronicDiseases.code">
      <path value="Composition.section.code" />
      <min value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl" />
          <code value="C165593" />
          <display value="Chronic Disease" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Composition.section:chronicDiseases.entry">
      <path value="Composition.section.entry" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.nfdi4health.de/fhir/metadataschema/StructureDefinition/nfdi4health-pr-mds-chronic-diseases" />
      </type>
    </element>
  </differential>
</StructureDefinition>