<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://karolinskafhirserver.org/fhir/StructureDefinition/KarolinskaLaboratoryProcess" />
  <version value="1.0.0-alpha.1" />
  <name value="KarolinskaGenomicLaboratoryProcess" />
  <title value="Karolinska Genomic Laboratory Process" />
  <status value="draft" />
  <description value="Used to represent and hold together the laboratory process, including library preperation and the gene sequencing. Each GenomicStudy can include several laboratory processes, one for each sample connected to the genomic study.." />
  <purpose value="The purpose of this profile is to be part of the MVP-GDR project with the goal to evaluate FHIR as a standard to meet our needs for genomic data.&#xD;&#xA;It should therefore be known that the information model itself has been created for the purpose of performing this evaluation. The information model is therefore NOT ready for implementation in a production environment to store resource data." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Procedure" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Procedure" />
  <derivation value="constraint" />
  <differential>
    <element id="Procedure.extension">
      <path value="Procedure.extension" />
      <min value="3" />
    </element>
    <element id="Procedure.extension:genomic-library-preperation">
      <path value="Procedure.extension" />
      <sliceName value="genomic-library-preperation" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://karolinskafhirserver.org/fhir/StructureDefinition/KarolinskaGenomicLibraryPreperationExtension" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Procedure.extension:gene-sequencing">
      <path value="Procedure.extension" />
      <sliceName value="gene-sequencing" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://karolinskafhirserver.org/fhir/StructureDefinition/KarolinskaGeneSequencingExtension" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Procedure.extension:focus">
      <path value="Procedure.extension" />
      <sliceName value="focus" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://karolinskafhirserver/fhir/StructureDefinition/KarolinskaFocusExtension" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Procedure.identifier">
      <path value="Procedure.identifier" />
      <max value="0" />
    </element>
    <element id="Procedure.instantiatesCanonical">
      <path value="Procedure.instantiatesCanonical" />
      <max value="0" />
    </element>
    <element id="Procedure.instantiatesUri">
      <path value="Procedure.instantiatesUri" />
      <max value="0" />
    </element>
    <element id="Procedure.basedOn">
      <path value="Procedure.basedOn" />
      <max value="0" />
    </element>
    <element id="Procedure.partOf">
      <path value="Procedure.partOf" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://karolinskafhirserver.org/fhir/StructureDefinition/KarolinskaGenomicStudy" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Procedure" />
      </type>
    </element>
    <element id="Procedure.status">
      <path value="Procedure.status" />
      <comment value="The following statuses can be used to represent the status of the procedure: &#xD;&#xA;preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown" />
      <fixedCode value="completed" />
    </element>
    <element id="Procedure.statusReason">
      <path value="Procedure.statusReason" />
      <max value="0" />
    </element>
    <element id="Procedure.category.coding.system">
      <path value="Procedure.category.coding.system" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
    </element>
    <element id="Procedure.category.coding.code">
      <path value="Procedure.category.coding.code" />
      <min value="1" />
      <fixedCode value="108252007" />
    </element>
    <element id="Procedure.category.coding.display">
      <path value="Procedure.category.coding.display" />
      <min value="1" />
      <fixedString value="Laboratory procedure (procedure)" />
    </element>
    <element id="Procedure.code">
      <path value="Procedure.code" />
      <max value="0" />
    </element>
    <element id="Procedure.subject">
      <path value="Procedure.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://karolinskafhirserver.org/fhir/StructureDefinition/KarolinskaPatientGenomics" />
      </type>
    </element>
    <element id="Procedure.encounter">
      <path value="Procedure.encounter" />
      <max value="0" />
    </element>
    <element id="Procedure.recorder">
      <path value="Procedure.recorder" />
      <max value="0" />
    </element>
    <element id="Procedure.asserter">
      <path value="Procedure.asserter" />
      <max value="0" />
    </element>
    <element id="Procedure.performer.actor">
      <path value="Procedure.performer.actor" />
      <definition value="The practitioner who was involved in the procedure. Note that if this element is empty, the perfomer Genomic Study profile is used." />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
      </type>
    </element>
    <element id="Procedure.performer.actor.identifier.system">
      <path value="Procedure.performer.actor.identifier.system" />
      <min value="1" />
      <fixedUri value="http://gmck.se/clarity-lims" />
    </element>
    <element id="Procedure.performer.actor.identifier.value">
      <path value="Procedure.performer.actor.identifier.value" />
      <min value="1" />
    </element>
    <element id="Procedure.performer.actor.display">
      <path value="Procedure.performer.actor.display" />
      <min value="1" />
      <fixedString value="GMCK" />
    </element>
    <element id="Procedure.performer.onBehalfOf">
      <path value="Procedure.performer.onBehalfOf" />
      <definition value="The organization the device or practitioner was acting on behalf of. Note that if this element is empty, the perfomer Genomic Study profile is used." />
    </element>
    <element id="Procedure.performer.onBehalfOf.identifier.system">
      <path value="Procedure.performer.onBehalfOf.identifier.system" />
      <min value="1" />
    </element>
    <element id="Procedure.performer.onBehalfOf.identifier.value">
      <path value="Procedure.performer.onBehalfOf.identifier.value" />
      <min value="1" />
    </element>
    <element id="Procedure.location">
      <path value="Procedure.location" />
      <max value="0" />
    </element>
    <element id="Procedure.reasonCode">
      <path value="Procedure.reasonCode" />
      <max value="0" />
    </element>
    <element id="Procedure.reasonReference">
      <path value="Procedure.reasonReference" />
      <max value="0" />
    </element>
    <element id="Procedure.bodySite">
      <path value="Procedure.bodySite" />
      <max value="0" />
    </element>
    <element id="Procedure.outcome">
      <path value="Procedure.outcome" />
      <max value="0" />
    </element>
    <element id="Procedure.report">
      <path value="Procedure.report" />
      <max value="0" />
    </element>
    <element id="Procedure.complication">
      <path value="Procedure.complication" />
      <max value="0" />
    </element>
    <element id="Procedure.complicationDetail">
      <path value="Procedure.complicationDetail" />
      <max value="0" />
    </element>
    <element id="Procedure.followUp">
      <path value="Procedure.followUp" />
      <max value="0" />
    </element>
    <element id="Procedure.focalDevice">
      <path value="Procedure.focalDevice" />
      <max value="0" />
    </element>
    <element id="Procedure.usedReference">
      <path value="Procedure.usedReference" />
      <max value="0" />
    </element>
    <element id="Procedure.usedCode">
      <path value="Procedure.usedCode" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>