ch-core-gln-identifier
type: StructureDefinition
node role: treeRoot
id:
  v: ch-core-gln-identifier
text:
  status:
    v: extensions
  div: Generated Narrative: StructureDefinition ch-core-gln-identifier Name Flags Card. Type Description & Constraints Identifier Identifier system 1..1 uri The namespace for the identifier value Fixed Value: urn:oid:2.51.1.3 value C 1..1 string The value that is unique gln-length: GLN must be exactly 13 characters long gln-modulus-10: GLN must pass the modulus 10 check - https://www.gs1.org/services/how-calculate-check-digit-manually gln-startswith76: GLN must start with 76 for Swiss HCP Documentation for this format
url:
  v: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier
version:
  v: 6.0.0-ballot
name:
  v: GLNIdentifier
title:
  v: GLN Identifier
status:
  v: active
date:
  v: 2025-05-22T05:56:20+00:00
publisher:
  v: HL7 Switzerland
contact:
  name:
    v: HL7 Switzerland
  telecom:
    system:
      v: url
    value:
      v: https://www.hl7.ch/
contact:
  name:
    v: HL7 Switzerland
  telecom:
    system:
      v: url
    value:
      v: https://www.hl7.ch/
    use:
      v: work
description:
  v: Identifier holding a 13 digit GLN
jurisdiction:
  coding:
    system:
      v: urn:iso:std:iso:3166
    code:
      v: CH
copyright:
  v: CC0-1.0
fhir version:
  v: 4.0.1
mapping:
  identity:
    v: v2
  uri:
    v: http://hl7.org/v2
  name:
    v: HL7 v2 Mapping
mapping:
  identity:
    v: rim
  uri:
    v: http://hl7.org/v3
  name:
    v: RIM Mapping
mapping:
  identity:
    v: servd
  uri:
    v: http://www.omg.org/spec/ServD/1.0/
  name:
    v: ServD
kind:
  v: complex-type
abstract:
  v: false
type:
  v: Identifier
base definition:
  v: http://hl7.org/fhir/StructureDefinition/Identifier
  link: http://hl7.org/fhir/StructureDefinition/Identifier
derivation:
  v: constraint
snapshot:
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version
    value: string
      v: 4.0.1
  element:
    id:
      v: Identifier
    path:
      v: Identifier
    short:
      v: An identifier intended for computation
    definition:
      v: An identifier - identifies some entity uniquely and unambiguously. Typically this is used for business identifiers.
    min:
      v: 0
    max:
      v: *
    base:
      path:
        v: Identifier
      min:
        v: 0
      max:
        v: *
    condition:
      v: ele-1
    constraint:
      key:
        v: ele-1
      severity:
        v: error
      human:
        v: All FHIR elements must have a @value or children
      expression:
        v: hasValue() or (children().count() > id.count())
      xpath:
        v: @value|f:*|h:div
      source:
        v: http://hl7.org/fhir/StructureDefinition/Element
        link: http://hl7.org/fhir/StructureDefinition/Element
    is modifier:
      v: false
    mapping:
      identity:
        v: rim
      map:
        v: n/a
    mapping:
      identity:
        v: v2
      map:
        v: CX / EI (occasionally, more often EI maps to a resource id or a URL)
    mapping:
      identity:
        v: rim
      map:
        v: II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
    mapping:
      identity:
        v: servd
      map:
        v: Identifier
  element:
    id:
      v: Identifier.id
    path:
      v: Identifier.id
    representation:
      v: xmlAttr
    short:
      v: Unique id for inter-element referencing
    definition:
      v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
    min:
      v: 0
    max:
      v: 1
    base:
      path:
        v: Element.id
      min:
        v: 0
      max:
        v: 1
    type:
      extension:
        value: url
      code:
        v: http://hl7.org/fhirpath/System.String
    is modifier:
      v: false
    is summary:
      v: false
    mapping:
      identity:
        v: rim
      map:
        v: n/a
  element:
    id:
      v: Identifier.extension
    path:
      v: Identifier.extension
    slicing:
      description:
        v: Extensions are always sliced by (at least) url
      rules:
        v: open
    short:
      v: Additional content defined by implementations
    definition:
      v: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
    comment:
      v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
    alias:
      v: extensions

url
v: string

v: value

v: url

v: user content

v: 0

v: *

path:
  v: Element.extension
min:
  v: 0
max:
  v: *

code:
  v: Extension

key:
  v: ele-1
severity:
  v: error
human:
  v: All FHIR elements must have a @value or children
expression:
  v: hasValue() or (children().count() > id.count())
xpath:
  v: @value|f:*|h:div
source:
  v: http://hl7.org/fhir/StructureDefinition/Element
  link: http://hl7.org/fhir/StructureDefinition/Element

key:
  v: ext-1
severity:
  v: error
human:
  v: Must have either extensions or value[x], not both
expression:
  v: extension.exists() != value.exists()
xpath:
  v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
source:
  v: http://hl7.org/fhir/StructureDefinition/Extension
  link: http://hl7.org/fhir/StructureDefinition/Extension

v: false

v: false

identity:
  v: rim
map:
  v: n/a

id:
  v: Identifier.use
path:
  v: Identifier.use
short:
  v: usual | official | temp | secondary | old (If known)
definition:
  v: The purpose of this identifier.
comment:
  v: Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.
requirements:
  v: Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Identifier.use
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
is modifier:
  v: true
is modifier reason:
  v: This is labeled as "Is Modifier" because applications should not mistake a temporary id for a permanent one.
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
    value: string
      v: IdentifierUse
  strength:
    v: required
  description:
    v: Identifies the purpose for this identifier, if known .
  value set:
    v: http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
    link: 4.0
    link: .1
mapping:
  identity:
    v: v2
  map:
    v: N/A
mapping:
  identity:
    v: rim
  map:
    v: Role.code or implied by context

id:
  v: Identifier.type
path:
  v: Identifier.type
short:
  v: Description of identifier
definition:
  v: A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
comment:
  v: This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.
requirements:
  v: Allows users to make use of identifiers when the identifier system is not known.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Identifier.type
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: CodeableConcept
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
    value: string
      v: IdentifierType
  strength:
    v: extensible
  description:
    v: A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
  value set:
    v: http://hl7.org/fhir/ValueSet/identifier-type
    link: http://hl7.org/fhir/ValueSet/identifier-type
mapping:
  identity:
    v: v2
  map:
    v: CX.5
mapping:
  identity:
    v: rim
  map:
    v: Role.code or implied by context

id:
  v: Identifier.system
path:
  v: Identifier.system
short:
  v: The namespace for the identifier value
definition:
  v: Establishes the namespace for the value - that is, a URL that describes a set values that are unique.
comment:
  v: Identifier.system is always case sensitive.
requirements:
  v: There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Identifier.system
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: uri
fixed: uri
  v: urn:oid:2.51.1.3
example:
  label:
    v: General
  value: uri
    v: http://www.acme.com/identifiers/patient
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: CX.4 / EI-2-4
mapping:
  identity:
    v: rim
  map:
    v: II.root or Role.id.root
mapping:
  identity:
    v: servd
  map:
    v: ./IdentifierType

id:
  v: Identifier.value
path:
  v: Identifier.value
short:
  v: The value that is unique
definition:
  v: The portion of the identifier typically relevant to the user and which is unique within the context of the system.
comment:
  v: If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](http://hl7.org/fhir/R4/extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Identifier.value
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
example:
  label:
    v: General
  value: string
    v: 123456
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: gln-length
  severity:
    v: warning
  human:
    v: GLN must be exactly 13 characters long
  expression:
    v: matches('^[0-9]{13}$')
  source:
    v: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier
    link: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier
constraint:
  key:
    v: gln-modulus-10
  severity:
    v: warning
  human:
    v: GLN must pass the modulus 10 check - https://www.gs1.org/services/how-calculate-check-digit-manually
  source:
    v: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier
    link: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier
constraint:
  key:
    v: gln-startswith76
  severity:
    v: warning
  human:
    v: GLN must start with 76 for Swiss HCP
  expression:
    v: startsWith('76')
  source:
    v: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier
    link: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: CX.1 / EI.1
mapping:
  identity:
    v: rim
  map:
    v: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
mapping:
  identity:
    v: servd
  map:
    v: ./Value

id:
  v: Identifier.period
path:
  v: Identifier.period
short:
  v: Time period when id is/was valid for use
definition:
  v: Time period during which identifier is/was valid for use.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Identifier.period
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Period
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: CX.7 + CX.8
mapping:
  identity:
    v: rim
  map:
    v: Role.effectiveTime or implied by context
mapping:
  identity:
    v: servd
  map:
    v: ./StartDate and ./EndDate

id:
  v: Identifier.assigner
path:
  v: Identifier.assigner
short:
  v: Organization that issued id (may be just text)
definition:
  v: Organization that issued/manages the identifier.
comment:
  v: The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Identifier.assigner
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Reference
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/Organization
    link: http://hl7.org/fhir/StructureDefinition/Organization
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: CX.4 / (CX.4,CX.9,CX.10)
mapping:
  identity:
    v: rim
  map:
    v: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
mapping:
  identity:
    v: servd
  map:
    v: ./IdentifierIssuingAuthority

element:
  id:
    v: Identifier.system
  path:
    v: Identifier.system
  min:
    v: 1
  fixed: uri
    v: urn:oid:2.51.1.3
element:
  id:
    v: Identifier.value
  path:
    v: Identifier.value
  min:
    v: 1
  constraint:
    key:
      v: gln-length
    severity:
      v: warning
    human:
      v: GLN must be exactly 13 characters long
    expression:
      v: matches('^[0-9]{13}$')
    source:
      v: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier
      link: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier
  constraint:
    key:
      v: gln-modulus-10
    severity:
      v: warning
    human:
      v: GLN must pass the modulus 10 check - https://www.gs1.org/services/how-calculate-check-digit-manually
    source:
      v: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier
      link: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier
  constraint:
    key:
      v: gln-startswith76
    severity:
      v: warning
    human:
      v: GLN must start with 76 for Swiss HCP
    expression:
      v: startsWith('76')
    source:
      v: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier
      link: http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-gln-identifier