{
  "resourceType": "StructureDefinition",
  "url": "https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Practitioner",
  "name": "KBV_PR_FOR_Practitioner",
  "status": "draft",
  "fhirVersion": "4.0.0",
  "mapping": [
    {
      "identity": "v2",
      "uri": "http://hl7.org/v2",
      "name": "HL7 v2 Mapping"
    },
    {
      "identity": "rim",
      "uri": "http://hl7.org/v3",
      "name": "RIM Mapping"
    },
    {
      "identity": "servd",
      "uri": "http://www.omg.org/spec/ServD/1.0/",
      "name": "ServD"
    },
    {
      "identity": "w5",
      "uri": "http://hl7.org/fhir/fivews",
      "name": "FiveWs Pattern Mapping"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "Practitioner",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Practitioner",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Practitioner.meta",
        "path": "Practitioner.meta",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Practitioner.meta.versionId",
        "path": "Practitioner.meta.versionId",
        "max": "0"
      },
      {
        "id": "Practitioner.meta.lastUpdated",
        "path": "Practitioner.meta.lastUpdated",
        "max": "0"
      },
      {
        "id": "Practitioner.meta.source",
        "path": "Practitioner.meta.source",
        "max": "0"
      },
      {
        "id": "Practitioner.meta.profile",
        "path": "Practitioner.meta.profile",
        "min": 1,
        "max": "1",
        "fixedCanonical": "https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Practitioner",
        "mustSupport": true
      },
      {
        "id": "Practitioner.meta.security",
        "path": "Practitioner.meta.security",
        "max": "0"
      },
      {
        "id": "Practitioner.meta.tag",
        "path": "Practitioner.meta.tag",
        "max": "0"
      },
      {
        "id": "Practitioner.implicitRules",
        "path": "Practitioner.implicitRules",
        "max": "0"
      },
      {
        "id": "Practitioner.language",
        "path": "Practitioner.language",
        "max": "0"
      },
      {
        "id": "Practitioner.text",
        "path": "Practitioner.text",
        "max": "0"
      },
      {
        "id": "Practitioner.contained",
        "path": "Practitioner.contained",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier",
        "path": "Practitioner.identifier",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "type.coding.code"
            }
          ],
          "rules": "closed"
        },
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:ZANR",
        "path": "Practitioner.identifier",
        "sliceName": "ZANR",
        "max": "1",
        "type": [
          {
            "code": "Identifier",
            "profile": [
              "http://fhir.de/StructureDefinition/identifier-zanr"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:ZANR.use",
        "path": "Practitioner.identifier.use",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier:ZANR.type",
        "path": "Practitioner.identifier.type",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:ZANR.type.coding",
        "path": "Practitioner.identifier.type.coding",
        "max": "1"
      },
      {
        "id": "Practitioner.identifier:ZANR.type.coding.system",
        "path": "Practitioner.identifier.type.coding.system",
        "min": 1,
        "fixedUri": "http://fhir.de/CodeSystem/identifier-type-de-basis",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:ZANR.type.coding.version",
        "path": "Practitioner.identifier.type.coding.version",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier:ZANR.type.coding.code",
        "path": "Practitioner.identifier.type.coding.code",
        "min": 1,
        "fixedCode": "ZANR",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:ZANR.type.coding.display",
        "path": "Practitioner.identifier.type.coding.display",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier:ZANR.type.coding.userSelected",
        "path": "Practitioner.identifier.type.coding.userSelected",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier:ZANR.type.text",
        "path": "Practitioner.identifier.type.text",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier:ZANR.period",
        "path": "Practitioner.identifier.period",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier:ZANR.assigner",
        "path": "Practitioner.identifier.assigner",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier:LANR",
        "path": "Practitioner.identifier",
        "sliceName": "LANR",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:LANR.use",
        "path": "Practitioner.identifier.use",
        "max": "0",
        "fixedCode": "official"
      },
      {
        "id": "Practitioner.identifier:LANR.type",
        "path": "Practitioner.identifier.type",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:LANR.type.coding",
        "path": "Practitioner.identifier.type.coding",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:LANR.type.coding.system",
        "path": "Practitioner.identifier.type.coding.system",
        "min": 1,
        "fixedUri": "http://hl7.org/fhir/v2/0203",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:LANR.type.coding.version",
        "path": "Practitioner.identifier.type.coding.version",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier:LANR.type.coding.code",
        "path": "Practitioner.identifier.type.coding.code",
        "min": 1,
        "fixedCode": "DN",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:LANR.type.coding.display",
        "path": "Practitioner.identifier.type.coding.display",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier:LANR.type.coding.userSelected",
        "path": "Practitioner.identifier.type.coding.userSelected",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier:LANR.type.text",
        "path": "Practitioner.identifier.type.text",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier:LANR.system",
        "path": "Practitioner.identifier.system",
        "min": 1,
        "fixedUri": "https://fhir.kbv.de/NamingSystem/KBV_NS_Base_ANR",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:LANR.value",
        "path": "Practitioner.identifier.value",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:LANR.period",
        "path": "Practitioner.identifier.period",
        "max": "0"
      },
      {
        "id": "Practitioner.identifier:LANR.assigner",
        "path": "Practitioner.identifier.assigner",
        "max": "0"
      },
      {
        "id": "Practitioner.active",
        "path": "Practitioner.active",
        "max": "0"
      },
      {
        "id": "Practitioner.name",
        "path": "Practitioner.name",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "HumanName",
            "profile": [
              "http://fhir.de/StructureDefinition/humanname-de-basis"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Practitioner.name.use",
        "path": "Practitioner.name.use",
        "max": "0"
      },
      {
        "id": "Practitioner.name.text",
        "path": "Practitioner.name.text",
        "max": "0"
      },
      {
        "id": "Practitioner.name.family",
        "path": "Practitioner.name.family",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Practitioner.name.family.extension:namenszusatz",
        "path": "Practitioner.name.family.extension",
        "sliceName": "namenszusatz",
        "mustSupport": true
      },
      {
        "id": "Practitioner.name.family.extension:nachname",
        "path": "Practitioner.name.family.extension",
        "sliceName": "nachname",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Practitioner.name.family.extension:nachname.value[x]",
        "path": "Practitioner.name.family.extension.value[x]",
        "mustSupport": true
      },
      {
        "id": "Practitioner.name.family.extension:vorsatzwort",
        "path": "Practitioner.name.family.extension",
        "sliceName": "vorsatzwort",
        "mustSupport": true
      },
      {
        "id": "Practitioner.name.family.extension:vorsatzwort.value[x]",
        "path": "Practitioner.name.family.extension.value[x]",
        "mustSupport": true
      },
      {
        "id": "Practitioner.name.given",
        "path": "Practitioner.name.given",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Practitioner.name.prefix",
        "path": "Practitioner.name.prefix",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Practitioner.name.prefix.extension:prefix-qualifier",
        "path": "Practitioner.name.prefix.extension",
        "sliceName": "prefix-qualifier",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Practitioner.name.prefix.extension:prefix-qualifier.value[x]",
        "path": "Practitioner.name.prefix.extension.value[x]",
        "mustSupport": true
      },
      {
        "id": "Practitioner.name.prefix.extension:prefix-qualifier.value[x]:valueCode",
        "path": "Practitioner.name.prefix.extension.value[x]",
        "sliceName": "valueCode",
        "min": 1,
        "fixedCode": "AC"
      },
      {
        "id": "Practitioner.name.suffix",
        "path": "Practitioner.name.suffix",
        "max": "0"
      },
      {
        "id": "Practitioner.name.period",
        "path": "Practitioner.name.period",
        "max": "0"
      },
      {
        "id": "Practitioner.telecom",
        "path": "Practitioner.telecom",
        "max": "0"
      },
      {
        "id": "Practitioner.address",
        "path": "Practitioner.address",
        "max": "0"
      },
      {
        "id": "Practitioner.gender",
        "path": "Practitioner.gender",
        "max": "0"
      },
      {
        "id": "Practitioner.birthDate",
        "path": "Practitioner.birthDate",
        "max": "0"
      },
      {
        "id": "Practitioner.photo",
        "path": "Practitioner.photo",
        "max": "0"
      },
      {
        "id": "Practitioner.qualification",
        "path": "Practitioner.qualification",
        "slicing": {
          "discriminator": [
            {
              "type": "exists",
              "path": "code.text"
            }
          ],
          "rules": "closed"
        },
        "min": 2,
        "max": "2",
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification:Typ",
        "path": "Practitioner.qualification",
        "sliceName": "Typ",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification:Typ.identifier",
        "path": "Practitioner.qualification.identifier",
        "max": "0"
      },
      {
        "id": "Practitioner.qualification:Typ.code",
        "path": "Practitioner.qualification.code",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.kbv.de/ValueSet/KBV_VS_EAU_Qualification_Type"
        }
      },
      {
        "id": "Practitioner.qualification:Typ.code.coding",
        "path": "Practitioner.qualification.code.coding",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification:Typ.code.coding.system",
        "path": "Practitioner.qualification.code.coding.system",
        "min": 1,
        "constraint": [
          {
            "key": "OneSlice",
            "severity": "error",
            "human": "Es darf pro Slice nur einmal der Typ oder die Bezeichung angeben werden",
            "expression": "code.text.exist().count()=1",
            "source": "Practitioner"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification:Typ.code.coding.version",
        "path": "Practitioner.qualification.code.coding.version",
        "max": "0"
      },
      {
        "id": "Practitioner.qualification:Typ.code.coding.code",
        "path": "Practitioner.qualification.code.coding.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification:Typ.code.coding.display",
        "path": "Practitioner.qualification.code.coding.display",
        "max": "0"
      },
      {
        "id": "Practitioner.qualification:Typ.code.coding.userSelected",
        "path": "Practitioner.qualification.code.coding.userSelected",
        "max": "0"
      },
      {
        "id": "Practitioner.qualification:Typ.code.text",
        "path": "Practitioner.qualification.code.text",
        "max": "0"
      },
      {
        "id": "Practitioner.qualification:Typ.period",
        "path": "Practitioner.qualification.period",
        "max": "0"
      },
      {
        "id": "Practitioner.qualification:Typ.issuer",
        "path": "Practitioner.qualification.issuer",
        "max": "0"
      },
      {
        "id": "Practitioner.qualification:Berufsbezeichnung",
        "path": "Practitioner.qualification",
        "sliceName": "Berufsbezeichnung",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification:Berufsbezeichnung.identifier",
        "path": "Practitioner.qualification.identifier",
        "max": "0"
      },
      {
        "id": "Practitioner.qualification:Berufsbezeichnung.code",
        "path": "Practitioner.qualification.code",
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification:Berufsbezeichnung.code.coding",
        "path": "Practitioner.qualification.code.coding",
        "max": "0"
      },
      {
        "id": "Practitioner.qualification:Berufsbezeichnung.code.text",
        "path": "Practitioner.qualification.code.text",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification:Berufsbezeichnung.period",
        "path": "Practitioner.qualification.period",
        "max": "0"
      },
      {
        "id": "Practitioner.qualification:Berufsbezeichnung.issuer",
        "path": "Practitioner.qualification.issuer",
        "max": "0"
      },
      {
        "id": "Practitioner.communication",
        "path": "Practitioner.communication",
        "max": "0"
      }
    ]
  }
}