{
  "resourceType": "StructureDefinition",
  "id": "digitalservice-profile",
  "url": "http://fhir.xt.dev/StructureDefinition/DigitalService",
  "version": "1.2.1",
  "name": "DigitalService",
  "status": "active",
  "experimental": false,
  "date": "2026-06-26T15:14:11.9953165+00:00",
  "publisher": "x-tention Informationstechnologie GmbH",
  "contact": [
    {
      "telecom": [
        {
          "system": "email",
          "value": "fhir.profiling@x-tention.com",
          "use": "work"
        }
      ]
    }
  ],
  "description": "A DigitalService offered by the x-tention platform. It links to the current privacy policy URI for that service, to support modelling a consent lifecycle.",
  "copyright": "x-tention Informationstechnologie GmbH",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "HealthcareService",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/HealthcareService",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "HealthcareService.extension",
        "path": "HealthcareService.extension",
        "min": 1
      },
      {
        "id": "HealthcareService.extension:privacyPolicyTemplate",
        "path": "HealthcareService.extension",
        "sliceName": "privacyPolicyTemplate",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://fhir.xt.dev/StructureDefinition/PrivacyPolicyTemplate"
            ]
          }
        ],
        "isModifier": false
      },
      {
        "id": "HealthcareService.category",
        "path": "HealthcareService.category",
        "min": 1,
        "max": "1"
      },
      {
        "id": "HealthcareService.category.coding",
        "path": "HealthcareService.category.coding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "HealthcareService.category.coding.system",
        "path": "HealthcareService.category.coding.system",
        "min": 1,
        "fixedUri": "http://fhir.xt.dev/CodeSystem/ServiceCategory"
      },
      {
        "id": "HealthcareService.category.coding.version",
        "path": "HealthcareService.category.coding.version",
        "max": "0"
      },
      {
        "id": "HealthcareService.category.coding.code",
        "path": "HealthcareService.category.coding.code",
        "min": 1,
        "fixedCode": "digital"
      },
      {
        "id": "HealthcareService.category.coding.userSelected",
        "path": "HealthcareService.category.coding.userSelected",
        "max": "0"
      },
      {
        "id": "HealthcareService.category.text",
        "path": "HealthcareService.category.text",
        "max": "0"
      },
      {
        "id": "HealthcareService.type",
        "path": "HealthcareService.type",
        "min": 1,
        "max": "1"
      },
      {
        "id": "HealthcareService.type.coding",
        "path": "HealthcareService.type.coding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "HealthcareService.type.coding.system",
        "path": "HealthcareService.type.coding.system",
        "min": 1,
        "fixedUri": "http://fhir.xt.dev/CodeSystem/FeatureCode"
      },
      {
        "id": "HealthcareService.type.coding.version",
        "path": "HealthcareService.type.coding.version",
        "max": "0"
      },
      {
        "id": "HealthcareService.type.coding.code",
        "path": "HealthcareService.type.coding.code",
        "short": "Feature Code",
        "definition": "Must be one of the active feature codes",
        "min": 1
      },
      {
        "id": "HealthcareService.type.coding.userSelected",
        "path": "HealthcareService.type.coding.userSelected",
        "max": "0"
      },
      {
        "id": "HealthcareService.type.text",
        "path": "HealthcareService.type.text",
        "max": "0"
      },
      {
        "id": "HealthcareService.location",
        "path": "HealthcareService.location",
        "max": "0"
      },
      {
        "id": "HealthcareService.telecom",
        "path": "HealthcareService.telecom",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            },
            {
              "type": "value",
              "path": "use"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "HealthcareService.telecom:serviceWebsite",
        "path": "HealthcareService.telecom",
        "sliceName": "serviceWebsite",
        "max": "1"
      },
      {
        "id": "HealthcareService.telecom:serviceWebsite.system",
        "path": "HealthcareService.telecom.system",
        "min": 1,
        "fixedCode": "url"
      },
      {
        "id": "HealthcareService.telecom:serviceWebsite.value",
        "path": "HealthcareService.telecom.value",
        "short": "URL of the service website",
        "min": 1
      },
      {
        "id": "HealthcareService.telecom:serviceWebsite.use",
        "path": "HealthcareService.telecom.use",
        "min": 1,
        "fixedCode": "work"
      },
      {
        "id": "HealthcareService.telecom:appStoreLink",
        "path": "HealthcareService.telecom",
        "sliceName": "appStoreLink"
      },
      {
        "id": "HealthcareService.telecom:appStoreLink.system",
        "path": "HealthcareService.telecom.system",
        "min": 1,
        "fixedCode": "url"
      },
      {
        "id": "HealthcareService.telecom:appStoreLink.value",
        "path": "HealthcareService.telecom.value",
        "min": 1
      },
      {
        "id": "HealthcareService.telecom:appStoreLink.use",
        "path": "HealthcareService.telecom.use",
        "min": 1,
        "fixedCode": "mobile"
      },
      {
        "id": "HealthcareService.eligibility",
        "path": "HealthcareService.eligibility",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code.coding.system"
            },
            {
              "type": "value",
              "path": "code.coding.code"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByVerificationProcess",
        "path": "HealthcareService.eligibility",
        "sliceName": "usersVerifiedByVerificationProcess",
        "short": "Only for users verified by a verification process",
        "definition": "This slice describes how to limit eligibility to patient users verified by a verification process, e.g. via Verifier Portal",
        "max": "1"
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByVerificationProcess.code",
        "path": "HealthcareService.eligibility.code",
        "min": 1
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByVerificationProcess.code.coding",
        "path": "HealthcareService.eligibility.code.coding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByVerificationProcess.code.coding.system",
        "path": "HealthcareService.eligibility.code.coding.system",
        "min": 1,
        "fixedUri": "http://fhir.xt.dev/CodeSystem/UserProperties"
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByVerificationProcess.code.coding.version",
        "path": "HealthcareService.eligibility.code.coding.version",
        "max": "0"
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByVerificationProcess.code.coding.code",
        "path": "HealthcareService.eligibility.code.coding.code",
        "min": 1,
        "fixedCode": "verified-by-verification-process"
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByVerificationProcess.code.coding.userSelected",
        "path": "HealthcareService.eligibility.code.coding.userSelected",
        "max": "0"
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByPatientRecordLink",
        "path": "HealthcareService.eligibility",
        "sliceName": "usersVerifiedByPatientRecordLink",
        "short": "Only for users verified by a verification process",
        "definition": "This slice describes how to limit eligibility to patient users verified by a link to a patient record, e.g. via PIN",
        "max": "1"
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByPatientRecordLink.code",
        "path": "HealthcareService.eligibility.code",
        "min": 1
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByPatientRecordLink.code.coding",
        "path": "HealthcareService.eligibility.code.coding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByPatientRecordLink.code.coding.system",
        "path": "HealthcareService.eligibility.code.coding.system",
        "min": 1,
        "fixedUri": "http://fhir.xt.dev/CodeSystem/UserProperties"
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByPatientRecordLink.code.coding.version",
        "path": "HealthcareService.eligibility.code.coding.version",
        "max": "0"
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByPatientRecordLink.code.coding.code",
        "path": "HealthcareService.eligibility.code.coding.code",
        "min": 1,
        "fixedCode": "verified-by-patient-record-link"
      },
      {
        "id": "HealthcareService.eligibility:usersVerifiedByPatientRecordLink.code.coding.userSelected",
        "path": "HealthcareService.eligibility.code.coding.userSelected",
        "max": "0"
      },
      {
        "id": "HealthcareService.program",
        "path": "HealthcareService.program",
        "max": "0"
      },
      {
        "id": "HealthcareService.appointmentRequired",
        "path": "HealthcareService.appointmentRequired",
        "max": "0"
      },
      {
        "id": "HealthcareService.availableTime",
        "path": "HealthcareService.availableTime",
        "max": "0"
      },
      {
        "id": "HealthcareService.notAvailable",
        "path": "HealthcareService.notAvailable",
        "max": "0"
      },
      {
        "id": "HealthcareService.availabilityExceptions",
        "path": "HealthcareService.availabilityExceptions",
        "max": "0"
      }
    ]
  }
}