<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Application" />
  <url value="http://hl7.org/fhir/StructureDefinition/Application" />
  <version value="0.1" />
  <name value="Application" />
  <status value="draft" />
  <publisher value="Synapxe" />
  <copyright value="Copyright (C) 2024 Synapxe" />
  <fhirVersion value="5.0.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Application" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/DomainResource" />
  <derivation value="specialization" />
  <differential>
    <element id="Application">
      <path value="Application" />
      <constraint>
        <key value="dom-3" />
        <severity value="error" />
        <human value="If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource" />
        <expression value="contained.where(((id.exists() and ('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url)))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(uri) = '#').exists()).not()).trace('unmatched', id).empty()" />
      </constraint>
    </element>
    <element id="Application.identifier">
      <path value="Application.identifier" />
      <max value="1" />
      <type>
        <code value="Identifier" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Application.name">
      <path value="Application.name" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Application.version">
      <path value="Application.version" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Application.ownerCluster">
      <path value="Application.ownerCluster" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/CodeSystem/cluster" />
      </binding>
    </element>
    <element id="Application.domain">
      <path value="Application.domain" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/ApplicationDomain" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Application.subdomain">
      <path value="Application.subdomain" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Application.systemId">
      <path value="Application.systemId" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Application.criticality">
      <path value="Application.criticality" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/system-criticality" />
      </binding>
    </element>
    <element id="Application.internetFacing">
      <path value="Application.internetFacing" />
      <max value="1" />
      <type>
        <code value="boolean" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Application.functionalAnalyst">
      <path value="Application.functionalAnalyst" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Application.manager">
      <path value="Application.manager" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Application.assignedResource">
      <path value="Application.assignedResource" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Application.assignedResource.assignmentType">
      <path value="Application.assignedResource.assignmentType" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Application.assignedResource.userId">
      <path value="Application.assignedResource.userId" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
  </differential>
</StructureDefinition>