<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Artifact" />
  <url value="http://hl7.org/fhir/StructureDefinition/Artifact" />
  <version value="0.1" />
  <name value="Artifact" />
  <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="Artifact" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/DomainResource" />
  <derivation value="specialization" />
  <differential>
    <element id="Artifact">
      <path value="Artifact" />
      <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="Artifact.activity">
      <path value="Artifact.activity" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Activity" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail">
      <path value="Artifact.artifactDetail" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.version">
      <path value="Artifact.artifactDetail.version" />
      <max value="1" />
      <type>
        <code value="integer" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.attachment">
      <path value="Artifact.artifactDetail.attachment" />
      <type>
        <code value="Attachment" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.managerReview">
      <path value="Artifact.artifactDetail.managerReview" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.managerReview.rating">
      <path value="Artifact.artifactDetail.managerReview.rating" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.managerReview.reviewMonth">
      <path value="Artifact.artifactDetail.managerReview.reviewMonth" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.managerReview.reviewedBy">
      <path value="Artifact.artifactDetail.managerReview.reviewedBy" />
      <max value="1" />
      <type>
        <code value="Reference" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.serviceLeadReview">
      <path value="Artifact.artifactDetail.serviceLeadReview" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.serviceLeadReview.rating">
      <path value="Artifact.artifactDetail.serviceLeadReview.rating" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.serviceLeadReview.reviewMonth">
      <path value="Artifact.artifactDetail.serviceLeadReview.reviewMonth" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.serviceLeadReview.reviewedBy">
      <path value="Artifact.artifactDetail.serviceLeadReview.reviewedBy" />
      <max value="1" />
      <type>
        <code value="Reference" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.agcReviewRating">
      <path value="Artifact.artifactDetail.agcReviewRating" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/CodeSystem/agc-rating" />
      </binding>
    </element>
    <element id="Artifact.artifactDetail.qualityReview">
      <path value="Artifact.artifactDetail.qualityReview" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.qualityReview.comment">
      <path value="Artifact.artifactDetail.qualityReview.comment" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.qualityReview.creationDateTime">
      <path value="Artifact.artifactDetail.qualityReview.creationDateTime" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.qualityReview.createdBy">
      <path value="Artifact.artifactDetail.qualityReview.createdBy" />
      <max value="1" />
      <type>
        <code value="Reference" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.qualityReview.modifiedOn">
      <path value="Artifact.artifactDetail.qualityReview.modifiedOn" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Artifact.artifactDetail.qualityReview.modifiedBy">
      <path value="Artifact.artifactDetail.qualityReview.modifiedBy" />
      <max value="1" />
      <type>
        <code value="Reference" />
      </type>
      <isModifier value="false" />
    </element>
  </differential>
</StructureDefinition>