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