<?xml version="1.0" encoding="UTF-8"?>

<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Material"/>
  <text>
    <status value="generated"/><div xmlns="http://www.w3.org/1999/xhtml">
      <p>A subtype of Entity that is inanimate and locationally independent.</p>
      <p>Materials are entities that are neither Living Subjects nor places. Manufactured or processed products are considered material, even if they originate as living matter. Materials come in a wide variety of physical forms and can pass through different states (ie. Gas, liquid, solid) while still retaining their physical composition and material characteristics.</p>
      <p>Clarify the meaning of &quot;locationally independent&quot;; suggest removing it and supplanting with first Usage Note sentence.</p>
      <p>Pharmaceutical substances (including active vaccines containing retarded virus), disposable supplies, durable equipment, implantable devices, food items (including meat or plant products), waste, traded goods.</p>
    </div>
  </text>
  <extension url="http://hl7.org/fhir/tools/StructureDefinition/logical-target">
    <valueBoolean>
      <extension url="http://hl7.org/fhir/StructureDefinition/data-absent-reason">
        <valueCode value="not-applicable"/>
      </extension>
    </valueBoolean>
  </extension>
  <extension url="http://hl7.org/fhir/tools/StructureDefinition/logical-container">
    <valueUri value="http://hl7.org/cda/stds/core/StructureDefinition/ClinicalDocument"/>
  </extension>
  <extension url="http://hl7.org/fhir/tools/StructureDefinition/xml-namespace">
    <valueUri value="urn:hl7-org:v3"/>
  </extension>
  <extension url="http://hl7.org/fhir/tools/StructureDefinition/xml-name">
    <valueString value="material"/>
  </extension>
  <extension url="http://hl7.org/fhir/tools/StructureDefinition/type-profile-style">
    <valueCode value="cda"/>
  </extension>
  <url value="http://hl7.org/cda/stds/core/StructureDefinition/Material"/>
  <version value="2.0.2-sd"/>
  <name value="Material"/>
  <title value="Material (CDA Class)"/>
  <status value="active"/>
  <experimental value="false"/>
  <date value="2025-12-12T15:29:54+11:00"/>
  <publisher value="Health Level 7"/>
  <contact>
    <name value="HL7 International - Structured Documents"/>
    <telecom>
      <system value="url"/>
      <value value="http://www.hl7.org/Special/committees/structure"/>
    </telecom>
    <telecom>
      <system value="email"/>
      <value value="structdog@lists.HL7.org"/>
    </telecom>
  </contact>
  <description value="A subtype of Entity that is inanimate and locationally independent.&#xA;&#xA;Materials are entities that are neither Living Subjects nor places. Manufactured or processed products are considered material, even if they originate as living matter. Materials come in a wide variety of physical forms and can pass through different states (ie. Gas, liquid, solid) while still retaining their physical composition and material characteristics.&#xA;&#xA;Clarify the meaning of &quot;locationally independent&quot;; suggest removing it and supplanting with first Usage Note sentence.&#xA;&#xA;Pharmaceutical substances (including active vaccines containing retarded virus), disposable supplies, durable equipment, implantable devices, food items (including meat or plant products), waste, traded goods."/>
  <fhirVersion value="5.0.0"/>
  <mapping>
    <identity value="rim"/>
    <uri value="http://hl7.org/v3"/>
    <name value="RIM Mapping"/>
  </mapping>
  <kind value="logical"/>
  <abstract value="false"/>
  <type value="http://hl7.org/cda/stds/core/StructureDefinition/Material"/>
  <baseDefinition value="http://hl7.org/cda/stds/core/StructureDefinition/InfrastructureRoot"/>
  <derivation value="specialization"/>
  <snapshot>
    <extension url="http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version">
      <valueString value="2.0.2-sd"/>
    </extension>
    <element id="Material">
      <path value="Material"/>
      <short value="Base for all types and resources"/>
      <definition value="Defines the basic properties of every data value. This is an abstract type, meaning that no value can be just a data value without belonging to any concrete type. Every concrete type is a specialization of this general abstract DataValue type."/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="Base"/>
        <min value="0"/>
        <max value="*"/>
      </base>
      <isModifier value="false"/>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element id="Material.nullFlavor">
      <path value="Material.nullFlavor"/>
      <representation value="xmlAttr"/>
      <label value="Exceptional Value Detail"/>
      <definition value="If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing."/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="ANY.nullFlavor"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="code"/>
        <profile value="http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"/>
      </type>
      <binding>
        <strength value="required"/>
        <valueSet value="http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor"/>
      </binding>
    </element>
    <element id="Material.realmCode">
      <path value="Material.realmCode"/>
      <definition value="When valued in an instance, this attribute signals the imposition of realm-specific constraints. The value of this attribute identifies the realm in question"/>
      <min value="0"/>
      <max value="*"/>
      <base>
        <path value="InfrastructureRoot.realmCode"/>
        <min value="0"/>
        <max value="*"/>
      </base>
      <type>
        <code value="http://hl7.org/cda/stds/core/StructureDefinition/CS"/>
      </type>
    </element>
    <element id="Material.typeId">
      <path value="Material.typeId"/>
      <definition value="When valued in an instance, this attribute signals the imposition of constraints defined in an HL7-specified message type. This might be a common type (also known as CMET in the messaging communication environment), or content included within a wrapper. The value of this attribute provides a unique identifier for the type in question."/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="InfrastructureRoot.typeId"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="http://hl7.org/cda/stds/core/StructureDefinition/II"/>
      </type>
      <constraint>
        <key value="II-1"/>
        <severity value="error"/>
        <human value="An II instance must have either a root or an nullFlavor."/>
        <expression value="root.exists() or nullFlavor.exists()"/>
        <source value="http://hl7.org/cda/stds/core/StructureDefinition/InfrastructureRoot"/>
      </constraint>
    </element>
    <element id="Material.typeId.nullFlavor">
      <path value="Material.typeId.nullFlavor"/>
      <representation value="xmlAttr"/>
      <label value="Exceptional Value Detail"/>
      <definition value="If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing."/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="ANY.nullFlavor"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="code"/>
        <profile value="http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"/>
      </type>
      <binding>
        <strength value="required"/>
        <valueSet value="http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor"/>
      </binding>
    </element>
    <element id="Material.typeId.assigningAuthorityName">
      <path value="Material.typeId.assigningAuthorityName"/>
      <representation value="xmlAttr"/>
      <label value="Assigning Authority Name"/>
      <definition value="A human readable name or mnemonic for the assigning authority. The Assigning Authority Name has no computational value. The purpose of a Assigning Authority Name is to assist an unaided human interpreter of an II value to interpret the authority. Note: no automated processing must depend on the assigning authority name to be present in any form."/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="II.assigningAuthorityName"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
        <profile value="http://hl7.org/cda/stds/core/StructureDefinition/st-simple"/>
      </type>
    </element>
    <element id="Material.typeId.displayable">
      <path value="Material.typeId.displayable"/>
      <representation value="xmlAttr"/>
      <label value="Displayable"/>
      <definition value="Specifies if the identifier is intended for human display and data entry (displayable = true) as opposed to pure machine interoperation (displayable = false)."/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="II.displayable"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="boolean"/>
        <profile value="http://hl7.org/cda/stds/core/StructureDefinition/bl-simple"/>
      </type>
    </element>
    <element id="Material.typeId.root">
      <path value="Material.typeId.root"/>
      <representation value="xmlAttr"/>
      <label value="Root"/>
      <definition value="Identifies the type as an HL7 Registered model"/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="II.root"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
        <profile value="http://hl7.org/cda/stds/core/StructureDefinition/oid"/>
        <profile value="http://hl7.org/cda/stds/core/StructureDefinition/uuid"/>
        <profile value="http://hl7.org/cda/stds/core/StructureDefinition/ruid"/>
      </type>
      <fixedString value="2.16.840.1.113883.1.3"/>
    </element>
    <element id="Material.typeId.extension">
      <path value="Material.typeId.extension"/>
      <representation value="xmlAttr"/>
      <label value="Extension"/>
      <definition value="A character string as a unique identifier within the scope of the identifier root."/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="II.extension"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
        <profile value="http://hl7.org/cda/stds/core/StructureDefinition/st-simple"/>
      </type>
    </element>
    <element id="Material.templateId">
      <path value="Material.templateId"/>
      <definition value="When valued in an instance, this attribute signals the imposition of a set of template-defined constraints. The value of this attribute provides a unique identifier for the templates in question"/>
      <min value="0"/>
      <max value="*"/>
      <base>
        <path value="InfrastructureRoot.templateId"/>
        <min value="0"/>
        <max value="*"/>
      </base>
      <type>
        <code value="http://hl7.org/cda/stds/core/StructureDefinition/II"/>
      </type>
    </element>
    <element id="Material.classCode">
      <path value="Material.classCode"/>
      <representation value="xmlAttr"/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="Material.classCode"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="code"/>
        <profile value="http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"/>
      </type>
      <fixedCode value="MMAT"/>
      <binding>
        <strength value="required"/>
        <valueSet value="http://terminology.hl7.org/ValueSet/v3-EntityClassManufacturedMaterial"/>
      </binding>
    </element>
    <element id="Material.determinerCode">
      <path value="Material.determinerCode"/>
      <representation value="xmlAttr"/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="Material.determinerCode"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="code"/>
        <profile value="http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"/>
      </type>
      <fixedCode value="KIND"/>
      <binding>
        <strength value="required"/>
        <valueSet value="http://terminology.hl7.org/ValueSet/v3-EntityDeterminerDetermined"/>
      </binding>
    </element>
    <element id="Material.code">
      <path value="Material.code"/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="Material.code"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="http://hl7.org/cda/stds/core/StructureDefinition/CE"/>
      </type>
      <binding>
        <strength value="example"/>
        <valueSet value="http://hl7.org/cda/stds/core/ValueSet/CDAMaterialEntityClassType"/>
      </binding>
    </element>
    <element id="Material.name">
      <path value="Material.name"/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="Material.name"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="http://hl7.org/cda/stds/core/StructureDefinition/EN"/>
      </type>
    </element>
    <element id="Material.lotNumberText">
      <path value="Material.lotNumberText"/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="Material.lotNumberText"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="http://hl7.org/cda/stds/core/StructureDefinition/ST"/>
      </type>
    </element>
    <element id="Material.sdtcExpirationTime">
      <extension url="http://hl7.org/fhir/tools/StructureDefinition/xml-namespace">
        <valueUri value="urn:hl7-org:sdtc"/>
      </extension>
      <extension url="http://hl7.org/fhir/tools/StructureDefinition/xml-name">
        <valueString value="expirationTime"/>
      </extension>
      <path value="Material.sdtcExpirationTime"/>
      <definition value="The date and time the manufacturer no longer ensures the safety, quality, and/or proper functioning of the material."/>
      <requirements value="There is a need in many situations that the materials used are of a specific quality or potency or functional status. The ending date for this guarantee is specified by the manufacturer. After that date, while the material may still provide the same characteristics, the manufacturer no longer takes responsibility that the product will perform as specified and denies responsibility for failure of the material after that date."/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="Material.sdtcExpirationTime"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="http://hl7.org/cda/stds/core/StructureDefinition/IVL_TS"/>
      </type>
    </element>
  </snapshot>
  <differential>
    <element id="Material">
      <path value="Material"/>
      <min value="1"/>
      <max value="1"/>
    </element>
    <element id="Material.classCode">
      <path value="Material.classCode"/>
      <representation value="xmlAttr"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
        <profile value="http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"/>
      </type>
      <fixedCode value="MMAT"/>
      <binding>
        <strength value="required"/>
        <valueSet value="http://terminology.hl7.org/ValueSet/v3-EntityClassManufacturedMaterial"/>
      </binding>
    </element>
    <element id="Material.determinerCode">
      <path value="Material.determinerCode"/>
      <representation value="xmlAttr"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
        <profile value="http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"/>
      </type>
      <fixedCode value="KIND"/>
      <binding>
        <strength value="required"/>
        <valueSet value="http://terminology.hl7.org/ValueSet/v3-EntityDeterminerDetermined"/>
      </binding>
    </element>
    <element id="Material.code">
      <path value="Material.code"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="http://hl7.org/cda/stds/core/StructureDefinition/CE"/>
      </type>
      <binding>
        <strength value="example"/>
        <valueSet value="http://hl7.org/cda/stds/core/ValueSet/CDAMaterialEntityClassType"/>
      </binding>
    </element>
    <element id="Material.name">
      <path value="Material.name"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="http://hl7.org/cda/stds/core/StructureDefinition/EN"/>
      </type>
    </element>
    <element id="Material.lotNumberText">
      <path value="Material.lotNumberText"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="http://hl7.org/cda/stds/core/StructureDefinition/ST"/>
      </type>
    </element>
    <element id="Material.sdtcExpirationTime">
      <extension url="http://hl7.org/fhir/tools/StructureDefinition/xml-namespace">
        <valueUri value="urn:hl7-org:sdtc"/>
      </extension>
      <extension url="http://hl7.org/fhir/tools/StructureDefinition/xml-name">
        <valueString value="expirationTime"/>
      </extension>
      <path value="Material.sdtcExpirationTime"/>
      <definition value="The date and time the manufacturer no longer ensures the safety, quality, and/or proper functioning of the material."/>
      <requirements value="There is a need in many situations that the materials used are of a specific quality or potency or functional status. The ending date for this guarantee is specified by the manufacturer. After that date, while the material may still provide the same characteristics, the manufacturer no longer takes responsibility that the product will perform as specified and denies responsibility for failure of the material after that date."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="http://hl7.org/cda/stds/core/StructureDefinition/IVL_TS"/>
      </type>
    </element>
  </differential>
</StructureDefinition>