<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="HiisManufacturer" />
  <url value="https://fhir.bfarm.de/StructureDefinition/HiisManufacturer" />
  <version value="3.1.0-TEST" />
  <name value="HiisManufacturer" />
  <title value="HiisManufacturer" />
  <status value="draft" />
  <description value="Definition of a manufacturer in the HIIS catalog." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Organization" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Organization" />
  <derivation value="constraint" />
  <differential>
    <element id="Organization">
      <path value="Organization" />
      <short value="HIIS Manufacturer" />
      <definition value="Represents a manufacturer in the HIIS context." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.type">
      <path value="Organization.type" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="coding.system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <short value="Manufacturer Type" />
      <definition value="Indicates whether it is a legal entity or a natural person." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.type:personenTyp">
      <path value="Organization.type" />
      <sliceName value="personenTyp" />
      <short value="Person Type" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Organization.type:personenTyp.coding">
      <path value="Organization.type.coding" />
      <type>
        <code value="Coding" />
        <profile value="https://fhir.bfarm.de/StructureDefinition/CodingHiisManufacturerType" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Organization.name">
      <path value="Organization.name" />
      <short value="Manufacturer Name" />
      <definition value="The full name of the manufacturer (organization or private person) that provides the medical aids or medical aid interfaces." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.telecom">
      <path value="Organization.telecom" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <short value="Contact Information" />
      <definition value="The contact information of the manufacturer." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.telecom:email">
      <path value="Organization.telecom" />
      <sliceName value="email" />
      <short value="Email Address" />
      <definition value="The email address of the manufacturer." />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Organization.telecom:email.system">
      <path value="Organization.telecom.system" />
      <min value="1" />
      <fixedCode value="email" />
      <mustSupport value="true" />
    </element>
    <element id="Organization.telecom:email.value">
      <path value="Organization.telecom.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Organization.address">
      <path value="Organization.address" />
      <short value="Address" />
      <definition value="Contains the postal address of the manufacturer." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.address.line">
      <path value="Organization.address.line" />
      <short value="Address Information" />
      <definition value="The house number, apartment number, street name, street direction, PO box number, delivery instructions and similar address information of the manufacturer's address." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.address.city">
      <path value="Organization.address.city" />
      <short value="City" />
      <definition value="The name of the city, town, suburb, village or municipality that belongs to the manufacturer's address." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.address.postalCode">
      <path value="Organization.address.postalCode" />
      <short value="Postal Code" />
      <definition value="The postal code that belongs to the manufacturer's address." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.address.country">
      <path value="Organization.address.country" />
      <short value="Country" />
      <definition value="The country where the manufacturer is located, as an ISO-3166 code." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact">
      <path value="Organization.contact" />
      <short value="Contact Person" />
      <definition value="Contains contact information of the manufacturer's contact person." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact.name">
      <path value="Organization.contact.name" />
      <short value="Name" />
      <definition value="The name of the contact person." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact.name.family">
      <path value="Organization.contact.name.family" />
      <short value="Family Name" />
      <definition value="The family name of the contact person." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact.name.given">
      <path value="Organization.contact.name.given" />
      <short value="Given Name" />
      <definition value="The given name of the contact person." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact.telecom">
      <path value="Organization.contact.telecom" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <short value="Contact Information" />
      <definition value="The contact information of the contact person." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact.telecom:email">
      <path value="Organization.contact.telecom" />
      <sliceName value="email" />
      <short value="Email Address" />
      <definition value="The email address of the contact person." />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact.telecom:email.system">
      <path value="Organization.contact.telecom.system" />
      <min value="1" />
      <fixedCode value="email" />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact.telecom:email.value">
      <path value="Organization.contact.telecom.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact.telecom:phone">
      <path value="Organization.contact.telecom" />
      <sliceName value="phone" />
      <short value="Phone Number" />
      <definition value="The phone number of the contact person." />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact.telecom:phone.system">
      <path value="Organization.contact.telecom.system" />
      <min value="1" />
      <fixedCode value="phone" />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact.telecom:phone.value">
      <path value="Organization.contact.telecom.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact.address">
      <path value="Organization.contact.address" />
      <short value="Address Information" />
      <definition value="Contains additional address information of the contact person." />
      <mustSupport value="true" />
    </element>
    <element id="Organization.contact.address.line">
      <path value="Organization.contact.address.line" />
      <short value="Department" />
      <definition value="The department of the contact person." />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>