{
  "resourceType": "StructureDefinition",
  "url": "http://apiframework.dedalus.eu/fhir/StructureDefinition/Practitioner",
  "name": "Practitioner",
  "title": "API Framework Practitioner",
  "status": "active",
  "experimental": false,
  "fhirVersion": "3.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Practitioner",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Practitioner",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Practitioner.id",
        "path": "Practitioner.id",
        "mustSupport": true
      },
      {
        "id": "Practitioner.meta",
        "path": "Practitioner.meta",
        "type": [
          {
            "code": "Meta",
            "profile": "http://apiframework.dedalus.eu/fhir/StructureDefinition/Meta-ForCommonConformance"
          }
        ]
      },
      {
        "id": "Practitioner.text",
        "path": "Practitioner.text",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier",
        "path": "Practitioner.identifier",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "type.coding.code"
            }
          ],
          "rules": "open"
        },
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier.type",
        "path": "Practitioner.identifier.type",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier.system",
        "path": "Practitioner.identifier.system",
        "min": 1,
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSetUri": "http://apiframework.dedalus.eu/fhir/ValueSet/PractitionerIdentifierSystems"
        }
      },
      {
        "id": "Practitioner.identifier.value",
        "path": "Practitioner.identifier.value",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier.period",
        "path": "Practitioner.identifier.period",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier.assigner",
        "path": "Practitioner.identifier.assigner",
        "mustSupport": true
      },
      {
        "id": "Practitioner.identifier:userLoginName",
        "path": "Practitioner.identifier",
        "sliceName": "userLoginName"
      },
      {
        "id": "Practitioner.identifier:userLoginName.type",
        "path": "Practitioner.identifier.type",
        "min": 1,
        "mustSupport": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "IdentifierType"
            },
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
              "valueBoolean": true
            }
          ],
          "strength": "extensible",
          "valueSetReference": {
            "reference": "http://hl7.org/fhir/identifier-type"
          }
        }
      },
      {
        "id": "Practitioner.identifier:userLoginName.type.coding",
        "path": "Practitioner.identifier.type.coding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Practitioner.identifier:userLoginName.type.coding.system",
        "path": "Practitioner.identifier.type.coding.system",
        "min": 1,
        "fixedUri": "http://hl7.org/fhir/identifier-type"
      },
      {
        "id": "Practitioner.identifier:userLoginName.type.coding.code",
        "path": "Practitioner.identifier.type.coding.code",
        "min": 1,
        "fixedCode": "ACSN"
      },
      {
        "id": "Practitioner.identifier:userLoginName.system",
        "path": "Practitioner.identifier.system",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSetUri": "http://apiframework.dedalus.eu/fhir/ValueSet/PractitionerUserNameIdentifierSystems"
        }
      },
      {
        "id": "Practitioner.identifier:userLoginName.value",
        "path": "Practitioner.identifier.value",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Practitioner.active",
        "path": "Practitioner.active",
        "mustSupport": true
      },
      {
        "id": "Practitioner.name",
        "path": "Practitioner.name",
        "type": [
          {
            "code": "HumanName",
            "profile": "http://apiframework.dedalus.eu/fhir/StructureDefinition/HumanName"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Practitioner.name.use",
        "path": "Practitioner.name.use",
        "min": 1
      },
      {
        "id": "Practitioner.telecom",
        "path": "Practitioner.telecom",
        "mustSupport": true
      },
      {
        "id": "Practitioner.telecom.system",
        "path": "Practitioner.telecom.system",
        "mustSupport": true
      },
      {
        "id": "Practitioner.telecom.value",
        "path": "Practitioner.telecom.value",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Practitioner.telecom.use",
        "path": "Practitioner.telecom.use",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Practitioner.address",
        "path": "Practitioner.address",
        "type": [
          {
            "code": "Address",
            "profile": "http://apiframework.dedalus.eu/fhir/StructureDefinition/Address"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Practitioner.gender",
        "path": "Practitioner.gender",
        "mustSupport": true
      },
      {
        "id": "Practitioner.birthDate",
        "path": "Practitioner.birthDate",
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification",
        "path": "Practitioner.qualification",
        "requirements": "Practitioner Qualification - This data might be coded or not, depending on the kind of qualification",
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification.code",
        "path": "Practitioner.qualification.code",
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification.code.coding",
        "path": "Practitioner.qualification.code.coding",
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification.code.coding.system",
        "path": "Practitioner.qualification.code.coding.system",
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification.code.coding.code",
        "path": "Practitioner.qualification.code.coding.code",
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification.code.text",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Practitioner.qualification.code.text",
        "mustSupport": true
      },
      {
        "id": "Practitioner.qualification.period",
        "path": "Practitioner.qualification.period",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Practitioner.communication",
        "path": "Practitioner.communication",
        "mustSupport": true
      }
    ]
  }
}