Implementation Guide
TIFlow - Grenzüberschreitender Datenaustausch
Version 2.0.0-ballot.2 - ballot

## Data Type Profile: Identifier Profile for EU AccessCode

Official URL: https://gematik.de/fhir/tiflow-xborder/StructureDefinition/GEM-ERPEU-PR-AccessCode | Version: 2.0.0-ballot.2
Draft as of 2026-06-30 | Computable Name: GEM_ERPEU_PR_Access_Code

The AccessCode that is generated by the FdV in order to access the ePrescription in an EU country.

Usages:

- Use this DataType Profile: GEM ERPEU PR PAR Access Authorization Request, GEM ERPEU PR PAR Access Authorization Response, GEM ERP PR EU CloseOperation Input and GEM ERPEU PR PAR GET Prescription Input

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier |  | 0..* | Identifier | An identifier intended for computation
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . Fixed Value: official
system | S Σ | 1..1 | uri | The namespace for the identifier value Required Pattern: https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_EU_AccessCode
value | S Σ C | 1..1 | string | The AccessCode for redeeming the ePrescription in an EU country. Constraints: workflow-eu-access-code-1 Example General: 123456
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
workflow-eu-access-code-1 | error | Identifier.value | Format of the AccessCode must be a 6-digit code in the Form [a-z, A-Z, 0-9]. | `$this.matches('^[a-zA-Z0-9]{6}$')`

This structure is derived from Identifier

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier |  | 0..* | Identifier | An identifier intended for computation
use |  | 0..1 | code | usual | official | temp | secondary | old (If known) Fixed Value: official
system | S | 1..1 | uri | The namespace for the identifier value Required Pattern: https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_EU_AccessCode
value | S C | 1..1 | string | The AccessCode for redeeming the ePrescription in an EU country. Constraints: workflow-eu-access-code-1
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
workflow-eu-access-code-1 | error | Identifier.value | Format of the AccessCode must be a 6-digit code in the Form [a-z, A-Z, 0-9]. | `$this.matches('^[a-zA-Z0-9]{6}$')`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier |  | 0..* | Identifier | An identifier intended for computation
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . Fixed Value: official
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
system | S Σ | 1..1 | uri | The namespace for the identifier value Required Pattern: https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_EU_AccessCode
value | S Σ C | 1..1 | string | The AccessCode for redeeming the ePrescription in an EU country. Constraints: workflow-eu-access-code-1 Example General: 123456
period | Σ C | 0..1 | Period | Time period when id is/was valid for use Constraints: per-1
assigner | Σ C | 0..1 | Reference(Organization) | Organization that issued id (may be just text) Constraints: ref-1
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
per-1 | error | Identifier.period | If present, start SHALL have a lower value than end | `start.hasValue().not() or end.hasValue().not() or (start <= end)`
ref-1 | error | Identifier.assigner | SHALL have a contained resource if a local reference is provided | `reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))`
workflow-eu-access-code-1 | error | Identifier.value | Format of the AccessCode must be a 6-digit code in the Form [a-z, A-Z, 0-9]. | `$this.matches('^[a-zA-Z0-9]{6}$')`

This structure is derived from Identifier

Summary

Mandatory: 2 elements
Must-Support: 2 elements
Fixed: 1 element

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier |  | 0..* | Identifier | An identifier intended for computation
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . Fixed Value: official
system | S Σ | 1..1 | uri | The namespace for the identifier value Required Pattern: https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_EU_AccessCode
value | S Σ C | 1..1 | string | The AccessCode for redeeming the ePrescription in an EU country. Constraints: workflow-eu-access-code-1 Example General: 123456
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
workflow-eu-access-code-1 | error | Identifier.value | Format of the AccessCode must be a 6-digit code in the Form [a-z, A-Z, 0-9]. | `$this.matches('^[a-zA-Z0-9]{6}$')`

Differential View

This structure is derived from Identifier

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier |  | 0..* | Identifier | An identifier intended for computation
use |  | 0..1 | code | usual | official | temp | secondary | old (If known) Fixed Value: official
system | S | 1..1 | uri | The namespace for the identifier value Required Pattern: https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_EU_AccessCode
value | S C | 1..1 | string | The AccessCode for redeeming the ePrescription in an EU country. Constraints: workflow-eu-access-code-1
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
workflow-eu-access-code-1 | error | Identifier.value | Format of the AccessCode must be a 6-digit code in the Form [a-z, A-Z, 0-9]. | `$this.matches('^[a-zA-Z0-9]{6}$')`

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier |  | 0..* | Identifier | An identifier intended for computation
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . Fixed Value: official
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
system | S Σ | 1..1 | uri | The namespace for the identifier value Required Pattern: https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_EU_AccessCode
value | S Σ C | 1..1 | string | The AccessCode for redeeming the ePrescription in an EU country. Constraints: workflow-eu-access-code-1 Example General: 123456
period | Σ C | 0..1 | Period | Time period when id is/was valid for use Constraints: per-1
assigner | Σ C | 0..1 | Reference(Organization) | Organization that issued id (may be just text) Constraints: ref-1
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
per-1 | error | Identifier.period | If present, start SHALL have a lower value than end | `start.hasValue().not() or end.hasValue().not() or (start <= end)`
ref-1 | error | Identifier.assigner | SHALL have a contained resource if a local reference is provided | `reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))`
workflow-eu-access-code-1 | error | Identifier.value | Format of the AccessCode must be a 6-digit code in the Form [a-z, A-Z, 0-9]. | `$this.matches('^[a-zA-Z0-9]{6}$')`

This structure is derived from Identifier

Summary

Mandatory: 2 elements
Must-Support: 2 elements
Fixed: 1 element

Other representations of profile: CSV, Excel, Schematron