<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="NotificationDevice" />
  <url value="http://fhir.synapxe.sg/StructureDefinition/NotificationDevice" />
  <version value="1.0.0" />
  <name value="NotificationDevice" />
  <status value="draft" />
  <experimental value="true" />
  <date value="2024-12-19" />
  <publisher value="Your Organization" />
  <description value="A custom FHIR resource to represent a notification device." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="NotificationDevice" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/DomainResource" />
  <derivation value="specialization" />
  <snapshot>
    <element id="NotificationDevice">
      <path value="NotificationDevice" />
      <short value="A resource for representing notification devices" />
      <definition value="A resource used to represent notification devices in the system." />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="DomainResource" />
      </type>
    </element>
    <element id="NotificationDevice.platform">
      <path value="NotificationDevice.platform" />
      <short value="Platform of the device" />
      <definition value="The platform of the device (e.g., iOS, Android)." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.deviceId">
      <path value="NotificationDevice.deviceId" />
      <short value="Unique identifier for the device" />
      <definition value="A unique identifier for the device." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.deviceManufacturer">
      <path value="NotificationDevice.deviceManufacturer" />
      <short value="Manufacturer of the device" />
      <definition value="The name of the device manufacturer." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.deviceModel">
      <path value="NotificationDevice.deviceModel" />
      <short value="Model of the device" />
      <definition value="The model of the device." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.deviceOsVersion">
      <path value="NotificationDevice.deviceOsVersion" />
      <short value="Operating system version of the device" />
      <definition value="The version of the operating system on the device." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.deviceToken">
      <path value="NotificationDevice.deviceToken" />
      <short value="Token for notification services" />
      <definition value="The device token used for notification services." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.userIdentifier">
      <path value="NotificationDevice.userIdentifier" />
      <short value="User identifier for the device" />
      <definition value="An identifier for the user associated with the device." />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="Identifier" />
      </type>
    </element>
    <element id="NotificationDevice.userIdentifier.system">
      <path value="NotificationDevice.userIdentifier.system" />
      <short value="System for user identifier" />
      <definition value="The system of the user identifier (e.g., PRN system)." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="uri" />
      </type>
    </element>
    <element id="NotificationDevice.userIdentifier.value">
      <path value="NotificationDevice.userIdentifier.value" />
      <short value="Value of user identifier" />
      <definition value="The value of the user identifier." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.registrationType">
      <path value="NotificationDevice.registrationType" />
      <short value="Registration type for the device" />
      <definition value="Specifies the registration type (e.g., allow-single-user or allow-multiple-users)." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
  </snapshot>
  <differential>
    <element id="NotificationDevice">
      <path value="NotificationDevice" />
      <short value="Notification Device Resource" />
      <definition value="A resource representing the notification device with associated details." />
    </element>
    <element id="NotificationDevice.platform">
      <path value="NotificationDevice.platform" />
      <short value="Platform of the device" />
      <definition value="The platform of the notification device (e.g., iOS, Android)." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.deviceId">
      <path value="NotificationDevice.deviceId" />
      <short value="Device ID" />
      <definition value="Unique identifier for the device." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.deviceManufacturer">
      <path value="NotificationDevice.deviceManufacturer" />
      <short value="Device Manufacturer" />
      <definition value="The manufacturer of the device (e.g., Asus, Samsung)." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.deviceModel">
      <path value="NotificationDevice.deviceModel" />
      <short value="Device Model" />
      <definition value="The model of the device (e.g., Zenfone, Galaxy)." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.deviceOsVersion">
      <path value="NotificationDevice.deviceOsVersion" />
      <short value="Device OS Version" />
      <definition value="The OS version running on the device." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.deviceToken">
      <path value="NotificationDevice.deviceToken" />
      <short value="Device Token" />
      <definition value="Token associated with the device for push notifications." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.userIdentifier">
      <path value="NotificationDevice.userIdentifier" />
      <short value="User identifier for the device" />
      <definition value="An identifier for the user associated with the device." />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="Identifier" />
      </type>
    </element>
    <element id="NotificationDevice.userIdentifier.system">
      <path value="NotificationDevice.userIdentifier.system" />
      <short value="System for user identifier" />
      <definition value="The system of the user identifier (e.g., PRN system)." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="uri" />
      </type>
    </element>
    <element id="NotificationDevice.userIdentifier.value">
      <path value="NotificationDevice.userIdentifier.value" />
      <short value="Value of user identifier" />
      <definition value="The value of the user identifier." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="NotificationDevice.registrationType">
      <path value="NotificationDevice.registrationType" />
      <short value="Registration Type" />
      <definition value="Type of registration for the device (e.g., allow-multiple-users)." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
  </differential>
</StructureDefinition>