PackagesCanonicalsLogsProblems
    Packages
    nictiz.fhir.nl.stu3.zib2017@2.2.5
    http://fhir.nl/fhir/StructureDefinition/nl-core-address
description: Base StructureDefinition for Address Type with additions for Dutch realm addresses. Dutch addresses break down Address.line in several parts and it is important to mark an address as being 'officially registered'.
package_name: nictiz.fhir.nl.stu3.zib2017
derivation: constraint
name: nl-core-address
type: Address
elements:
  use: {index: 4}
  city: {index: 17}
  type: {index: 5}
  state: {short: Sub-unit of country (abbreviations ok)., index: 19}
  extension:
    index: 0
    slicing:
      rules: open
      discriminator:
      - {path: url, type: value}
      min: 0
      slices:
        AddressType:
          match: {url: null}
          schema:
            type: Extension
            url: h
            index: 1
            elements:
              valueCodeableConcept:
                short: AddressType
                index: 2
                slicing:
                  slices:
                    valueCodeableConcept:
                      match: {}
                      schema: {short: AddressType, index: 2}
        official:
          match: {url: null}
          schema: {short: Mark an address as an 'officially registered' address., type: Extension, url: h, index: 3}
          min: 0
          max: 1
  line:
    extensions:
      streetName:
        url: h
        type: Extension
        index: 7
        elements:
          valueString:
            index: 8
            slicing:
              slices:
                valueString:
                  match: {}
                  schema: {index: 8}
      houseNumber:
        url: h
        type: Extension
        index: 9
        elements:
          valueString:
            index: 10
            slicing:
              slices:
                valueString:
                  match: {}
                  schema: {index: 10}
      buildingNumbersuffix:
        url: h
        type: Extension
        index: 11
        elements:
          valueString:
            index: 12
            slicing:
              slices:
                valueString:
                  match: {}
                  schema: {index: 12}
      unitID:
        url: h
        type: Extension
        index: 13
        elements:
          valueString:
            index: 14
            slicing:
              slices:
                valueString:
                  match: {}
                  schema: {index: 14}
      additionalLocator:
        url: h
        type: Extension
        index: 15
        elements:
          valueString:
            index: 16
            slicing:
              slices:
                valueString:
                  match: {}
                  schema: {index: 16}
    elements:
      extension:
        index: 6
        slicing:
          rules: open
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            streetName:
              match: {url: null}
              schema:
                type: Extension
                url: h
                index: 7
                elements:
                  valueString:
                    index: 8
                    slicing:
                      slices:
                        valueString:
                          match: {}
                          schema: {index: 8}
            houseNumber:
              match: {url: null}
              schema:
                type: Extension
                url: h
                index: 9
                elements:
                  valueString:
                    index: 10
                    slicing:
                      slices:
                        valueString:
                          match: {}
                          schema: {index: 10}
            buildingNumbersuffix:
              match: {url: null}
              schema:
                type: Extension
                url: h
                index: 11
                elements:
                  valueString:
                    index: 12
                    slicing:
                      slices:
                        valueString:
                          match: {}
                          schema: {index: 12}
            unitID:
              match: {url: null}
              schema:
                type: Extension
                url: h
                index: 13
                elements:
                  valueString:
                    index: 14
                    slicing:
                      slices:
                        valueString:
                          match: {}
                          schema: {index: 14}
            additionalLocator:
              match: {url: null}
              schema:
                type: Extension
                url: h
                index: 15
                elements:
                  valueString:
                    index: 16
                    slicing:
                      slices:
                        valueString:
                          match: {}
                          schema: {index: 16}
  postalCode:
    constraint:
      nl-postal-code-pattern: {human: Dutch postal code pattern 'nnnnAA', severity: error, expression: '(country in ''nl'' | ''nld'' | ''nederland'').not() or matches(''^\\d{4}[A-Z]{2}$'')'}
    index: 20
  country:
    short: Country
    index: 21
    extensions:
      countryCode:
        url: h
        type: Extension
        short: CountryGBACode | CountryISOCode
        index: 23
        elements:
          valueCodeableConcept:
            short: CountryGBACode | CountryISOCode
            index: 24
            slicing:
              slices:
                valueCodeableConcept:
                  match: {}
                  schema:
                    short: CountryGBACode | CountryISOCode
                    index: 24
                    elements:
                      coding:
                        index: 25
                        slicing:
                          rules: open
                          discriminator:
                          - {path: $this, type: pattern}
                          min: 1
                          slices:
                            countryGBACodelist:
                              match: {system: 'urn:oid:2.16.840.1.113883.2.4.4.16.34'}
                              schema:
                                pattern:
                                  type: Coding
                                  value: {system: 'urn:oid:2.16.840.1.113883.2.4.4.16.34'}
                                index: 26
                            countryISOCodelist:
                              match: {system: 'urn:iso:std:iso:3166'}
                              schema:
                                pattern:
                                  type: Coding
                                  value: {system: 'urn:iso:std:iso:3166'}
                                index: 27
                    required: [coding]
    elements:
      extension:
        index: 22
        slicing:
          rules: open
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            countryCode:
              match: {url: null}
              schema:
                type: Extension
                short: CountryGBACode | CountryISOCode
                url: h
                index: 23
                elements:
                  valueCodeableConcept:
                    short: CountryGBACode | CountryISOCode
                    index: 24
                    slicing:
                      slices:
                        valueCodeableConcept:
                          match: {}
                          schema:
                            short: CountryGBACode | CountryISOCode
                            index: 24
                            elements:
                              coding:
                                index: 25
                                slicing:
                                  rules: open
                                  discriminator:
                                  - {path: $this, type: pattern}
                                  min: 1
                                  slices:
                                    countryGBACodelist:
                                      match: {system: 'urn:oid:2.16.840.1.113883.2.4.4.16.34'}
                                      schema:
                                        pattern:
                                          type: Coding
                                          value: {system: 'urn:oid:2.16.840.1.113883.2.4.4.16.34'}
                                        index: 26
                                    countryISOCodelist:
                                      match: {system: 'urn:iso:std:iso:3166'}
                                      schema:
                                        pattern:
                                          type: Coding
                                          value: {system: 'urn:iso:std:iso:3166'}
                                        index: 27
                            required: [coding]
  district: {index: 18}
package_version: 2.2.5
extensions:
  AddressType:
    url: h
    type: Extension
    index: 1
    elements:
      valueCodeableConcept:
        short: AddressType
        index: 2
        slicing:
          slices:
            valueCodeableConcept:
              match: {}
              schema: {short: AddressType, index: 2}
  official: {url: h, min: 0, max: 1, short: Mark an address as an 'officially registered' address., type: Extension, index: 3}
class: complex-type
kind: complex-type
url: http://fhir.nl/fhir/StructureDefinition/nl-core-address
base: http://hl7.org/fhir/StructureDefinition/Address
version: 3.0.5