<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="api-specification-er" />
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-implements">
    <valueUri value="http://hl7.org/fhir/StructureDefinition/CanonicalResource" />
  </extension>
  <url value="http://electronichealth.se/fhir/NDI/StructureDefinition/api-specification-er" />
  <version value="0.1.0" />
  <name value="APISpecificationEr" />
  <title value="API Specification (ER)" />
  <status value="active" />
  <description value="This profile holds information about a set of capabilities defined in an API specification." />
  <fhirVersion value="5.0.0" />
  <mapping>
    <identity value="APISpecificationToAPIspecifikationLogicalEr" />
    <uri value="APIspecifikationLogicalEr" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="ActorDefinition" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/ActorDefinition" />
  <derivation value="constraint" />
  <differential>
    <element id="ActorDefinition.url">
      <path value="ActorDefinition.url" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="APISpecificationToAPIspecifikationLogicalEr" />
        <map value="id" />
      </mapping>
    </element>
    <element id="ActorDefinition.version">
      <path value="ActorDefinition.version" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="APISpecificationToAPIspecifikationLogicalEr" />
        <map value="version" />
      </mapping>
    </element>
    <element id="ActorDefinition.name">
      <path value="ActorDefinition.name" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="APISpecificationToAPIspecifikationLogicalEr" />
        <map value="maskinlasbartNamn" />
      </mapping>
    </element>
    <element id="ActorDefinition.title">
      <path value="ActorDefinition.title" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="APISpecificationToAPIspecifikationLogicalEr" />
        <map value="titel" />
      </mapping>
    </element>
    <element id="ActorDefinition.status">
      <path value="ActorDefinition.status" />
      <short value="active" />
      <comment value="Only active API specifications should be persisted" />
      <fixedCode value="active" />
      <mustSupport value="true" />
      <mapping>
        <identity value="APISpecificationToAPIspecifikationLogicalEr" />
        <map value="status" />
      </mapping>
    </element>
    <element id="ActorDefinition.publisher">
      <path value="ActorDefinition.publisher" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="APISpecificationToAPIspecifikationLogicalEr" />
        <map value="ansvarigUtgivare" />
      </mapping>
    </element>
    <element id="ActorDefinition.description">
      <path value="ActorDefinition.description" />
      <mustSupport value="true" />
      <mapping>
        <identity value="APISpecificationToAPIspecifikationLogicalEr" />
        <map value="beskrivning" />
      </mapping>
    </element>
    <element id="ActorDefinition.useContext">
      <path value="ActorDefinition.useContext" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <description value="Slice useContext based on code" />
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ActorDefinition.useContext:domain">
      <path value="ActorDefinition.useContext" />
      <sliceName value="domain" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="APISpecificationToAPIspecifikationLogicalEr" />
        <map value="kategori" />
      </mapping>
    </element>
    <element id="ActorDefinition.useContext:domain.code">
      <path value="ActorDefinition.useContext.code" />
      <fixedCoding>
        <system value="http://terminology.hl7.org/CodeSystem/usage-context-type" />
        <code value="topic" />
      </fixedCoding>
      <mustSupport value="true" />
    </element>
    <element id="ActorDefinition.useContext:domain.code.system">
      <path value="ActorDefinition.useContext.code.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ActorDefinition.useContext:domain.code.code">
      <path value="ActorDefinition.useContext.code.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ActorDefinition.useContext:domain.value[x]">
      <path value="ActorDefinition.useContext.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://electronichealth.se/fhir/NDI/ValueSet/er-api-specification-categories" />
      </binding>
    </element>
    <element id="ActorDefinition.useContext:domain.value[x].coding">
      <path value="ActorDefinition.useContext.value[x].coding" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ActorDefinition.useContext:domain.value[x].coding.system">
      <path value="ActorDefinition.useContext.value[x].coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ActorDefinition.useContext:domain.value[x].coding.code">
      <path value="ActorDefinition.useContext.value[x].coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ActorDefinition.type">
      <path value="ActorDefinition.type" />
      <short value="system" />
      <definition value="Mandatory in FHIR to specify whether ActorDefinition defines a system or person" />
      <fixedCode value="system" />
      <mustSupport value="true" />
    </element>
    <element id="ActorDefinition.reference">
      <path value="ActorDefinition.reference" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="APISpecificationToAPIspecifikationLogicalEr" />
        <map value="referensTillKalla" />
      </mapping>
    </element>
  </differential>
</StructureDefinition>