{
  "resourceType": "StructureDefinition",
  "url": "https://fhir.synapxe.sg/StructureDefinition/profile-device",
  "name": "Device",
  "status": "active",
  "fhirVersion": "5.0.0",
  "kind": "resource",
  "abstract": false,
  "type": "Device",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Device",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Device.identifier",
        "path": "Device.identifier",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        },
        "type": [
          {
            "code": "Identifier",
            "profile": [
              "https://fhir.synapxe.sg/StructureDefinition/profile-identifier"
            ]
          }
        ]
      },
      {
        "id": "Device.identifier:deviceIdentifier",
        "path": "Device.identifier",
        "sliceName": "deviceIdentifier",
        "short": "Instance identifier",
        "definition": "Unique instance identifiers assigned to a device by manufacturers other organizations or owners.",
        "comment": "Certain attributes, like serial number and UDI Carrier (the HRF or AIDC barcode string) are not device instance identifiers as they are not consistently able to uniquely identify the instance of a device, thus are not appropriate to be used to value Device.identifier. The barcode string from a barcode present on a device label or package may identify the instance, include names given to the device in local usage, or may identify the type of device. If the identifier identifies the type of device, Device.type element should be used. The identifier is typically valued if the serialNumber or lotNumber is not valued and represents a different type of identifier.  However, it is permissible to still include those identifiers in DeviceDefinition.identifier with the appropriate identifier.type.",
        "max": "1",
        "type": [
          {
            "code": "Identifier",
            "profile": [
              "https://fhir.synapxe.sg/StructureDefinition/profile-identifier"
            ]
          }
        ]
      },
      {
        "id": "Device.identifier:deviceIdentifier.system",
        "path": "Device.identifier.system",
        "fixedUri": "https://fhir.synapxe.sg/NamingSystem/device-id"
      },
      {
        "id": "Device.identifier:sequenceNo",
        "path": "Device.identifier",
        "sliceName": "sequenceNo",
        "short": "Instance identifier",
        "definition": "Unique instance identifiers assigned to a device by manufacturers other organizations or owners.",
        "comment": "Certain attributes, like serial number and UDI Carrier (the HRF or AIDC barcode string) are not device instance identifiers as they are not consistently able to uniquely identify the instance of a device, thus are not appropriate to be used to value Device.identifier. The barcode string from a barcode present on a device label or package may identify the instance, include names given to the device in local usage, or may identify the type of device. If the identifier identifies the type of device, Device.type element should be used. The identifier is typically valued if the serialNumber or lotNumber is not valued and represents a different type of identifier.  However, it is permissible to still include those identifiers in DeviceDefinition.identifier with the appropriate identifier.type.",
        "max": "1",
        "type": [
          {
            "code": "Identifier",
            "profile": [
              "https://fhir.synapxe.sg/StructureDefinition/profile-identifier"
            ]
          }
        ]
      },
      {
        "id": "Device.identifier:sequenceNo.system",
        "path": "Device.identifier.system",
        "fixedUri": "https://fhir.synapxe.sg/NamingSystem/sequence-no"
      },
      {
        "id": "Device.displayName",
        "path": "Device.displayName",
        "max": "0"
      },
      {
        "id": "Device.definition",
        "path": "Device.definition",
        "max": "0"
      },
      {
        "id": "Device.udiCarrier",
        "path": "Device.udiCarrier",
        "max": "1"
      },
      {
        "id": "Device.udiCarrier.id",
        "path": "Device.udiCarrier.id",
        "max": "0"
      },
      {
        "id": "Device.udiCarrier.extension",
        "path": "Device.udiCarrier.extension",
        "max": "0"
      },
      {
        "id": "Device.udiCarrier.modifierExtension",
        "path": "Device.udiCarrier.modifierExtension",
        "max": "0"
      },
      {
        "id": "Device.availabilityStatus",
        "path": "Device.availabilityStatus",
        "max": "0"
      },
      {
        "id": "Device.biologicalSourceEvent",
        "path": "Device.biologicalSourceEvent",
        "max": "0"
      },
      {
        "id": "Device.name",
        "path": "Device.name",
        "max": "0"
      },
      {
        "id": "Device.partNumber",
        "path": "Device.partNumber",
        "max": "0"
      },
      {
        "id": "Device.category",
        "path": "Device.category",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "CodeableConcept",
            "profile": [
              "https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept"
            ]
          }
        ],
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/ValueSet/device-category"
        }
      },
      {
        "id": "Device.category.coding.system",
        "path": "Device.category.coding.system",
        "fixedUri": "http://hl7.org/fhir/device-category"
      },
      {
        "id": "Device.type",
        "path": "Device.type",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "CodeableConcept",
            "profile": [
              "https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept"
            ]
          }
        ]
      },
      {
        "id": "Device.version",
        "path": "Device.version",
        "max": "1"
      },
      {
        "id": "Device.version.id",
        "path": "Device.version.id",
        "max": "0"
      },
      {
        "id": "Device.version.extension",
        "path": "Device.version.extension",
        "max": "0"
      },
      {
        "id": "Device.version.modifierExtension",
        "path": "Device.version.modifierExtension",
        "max": "0"
      },
      {
        "id": "Device.version.type",
        "path": "Device.version.type",
        "max": "0"
      },
      {
        "id": "Device.version.component",
        "path": "Device.version.component",
        "max": "0"
      },
      {
        "id": "Device.version.installDate",
        "path": "Device.version.installDate",
        "max": "0"
      },
      {
        "id": "Device.conformsTo",
        "path": "Device.conformsTo",
        "max": "0"
      },
      {
        "id": "Device.property",
        "path": "Device.property",
        "max": "0"
      },
      {
        "id": "Device.mode",
        "path": "Device.mode",
        "max": "0"
      },
      {
        "id": "Device.cycle",
        "path": "Device.cycle",
        "max": "0"
      },
      {
        "id": "Device.duration",
        "path": "Device.duration",
        "max": "0"
      },
      {
        "id": "Device.owner",
        "path": "Device.owner",
        "max": "0"
      },
      {
        "id": "Device.contact",
        "path": "Device.contact",
        "max": "0"
      },
      {
        "id": "Device.location",
        "path": "Device.location",
        "max": "0"
      },
      {
        "id": "Device.url",
        "path": "Device.url",
        "max": "0"
      },
      {
        "id": "Device.endpoint",
        "path": "Device.endpoint",
        "max": "0"
      },
      {
        "id": "Device.gateway",
        "path": "Device.gateway",
        "max": "0"
      },
      {
        "id": "Device.note",
        "path": "Device.note",
        "max": "1",
        "type": [
          {
            "code": "Annotation",
            "profile": [
              "https://fhir.synapxe.sg/StructureDefinition/profile-annotation"
            ]
          }
        ]
      },
      {
        "id": "Device.safety",
        "path": "Device.safety",
        "max": "0"
      },
      {
        "id": "Device.parent",
        "path": "Device.parent",
        "max": "0"
      }
    ]
  }
}