PackagesCanonicalsLogsProblems
    Packages
    nictiz.fhir.nl.stu3.zib2017@1.3.12
    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: 2
    extensions:
      AD_use:
        url: h
        type: Extension
        short: Further define the address use with the exact HCIM code.
        index: 4
        elements:
          valueCode:
            index: 5
            slicing:
              slices:
                valueCode:
                  match: {}
                  schema: {index: 5}
    elements:
      extension:
        index: 3
        slicing:
          rules: open
          discriminator:
          - {path: url, type: value}
          min: null
          slices:
            AD_use:
              match: {url: null}
              schema:
                type: Extension
                short: Further define the address use with the exact HCIM code.
                url: h
                index: 4
                elements:
                  valueCode:
                    index: 5
                    slicing:
                      slices:
                        valueCode:
                          match: {}
                          schema: {index: 5}
  city: {index: 18}
  type: {index: 6}
  state: {short: Sub-unit of country (abbreviations ok)., index: 20}
  extension:
    index: 0
    slicing:
      rules: open
      discriminator:
      - {path: url, type: value}
      min: null
      slices:
        official:
          match: {url: null}
          schema: {short: Mark an address as an 'officially registered' address., type: Extension, url: h, index: 1}
          max: 1
  line:
    extensions:
      streetName:
        url: h
        type: Extension
        index: 8
        elements:
          valueString:
            index: 9
            slicing:
              slices:
                valueString:
                  match: {}
                  schema: {index: 9}
      houseNumber:
        url: h
        type: Extension
        index: 10
        elements:
          valueString:
            index: 11
            slicing:
              slices:
                valueString:
                  match: {}
                  schema: {index: 11}
      buildingNumbersuffix:
        url: h
        type: Extension
        index: 12
        elements:
          valueString:
            index: 13
            slicing:
              slices:
                valueString:
                  match: {}
                  schema: {index: 13}
      unitID:
        url: h
        type: Extension
        index: 14
        elements:
          valueString:
            index: 15
            slicing:
              slices:
                valueString:
                  match: {}
                  schema: {index: 15}
      additionalLocator:
        url: h
        type: Extension
        index: 16
        elements:
          valueString:
            index: 17
            slicing:
              slices:
                valueString:
                  match: {}
                  schema: {index: 17}
    elements:
      extension:
        index: 7
        slicing:
          rules: open
          discriminator:
          - {path: url, type: value}
          min: null
          slices:
            streetName:
              match: {url: null}
              schema:
                type: Extension
                url: h
                index: 8
                elements:
                  valueString:
                    index: 9
                    slicing:
                      slices:
                        valueString:
                          match: {}
                          schema: {index: 9}
            houseNumber:
              match: {url: null}
              schema:
                type: Extension
                url: h
                index: 10
                elements:
                  valueString:
                    index: 11
                    slicing:
                      slices:
                        valueString:
                          match: {}
                          schema: {index: 11}
            buildingNumbersuffix:
              match: {url: null}
              schema:
                type: Extension
                url: h
                index: 12
                elements:
                  valueString:
                    index: 13
                    slicing:
                      slices:
                        valueString:
                          match: {}
                          schema: {index: 13}
            unitID:
              match: {url: null}
              schema:
                type: Extension
                url: h
                index: 14
                elements:
                  valueString:
                    index: 15
                    slicing:
                      slices:
                        valueString:
                          match: {}
                          schema: {index: 15}
            additionalLocator:
              match: {url: null}
              schema:
                type: Extension
                url: h
                index: 16
                elements:
                  valueString:
                    index: 17
                    slicing:
                      slices:
                        valueString:
                          match: {}
                          schema: {index: 17}
  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: 21
  country:
    short: Country (can be ISO 3166 3 letter code)
    index: 22
    extensions:
      countryCode:
        url: h
        type: Extension
        short: CountryGBACode | CountryISOCode
        index: 24
        elements:
          valueCodeableConcept:
            short: CountryGBACode | CountryISOCode
            index: 25
            slicing:
              slices:
                valueCodeableConcept:
                  match: {}
                  schema:
                    short: CountryGBACode | CountryISOCode
                    index: 25
                    elements:
                      coding:
                        index: 26
                        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: 27
                            countryISOCodelist:
                              match: {system: 'urn:iso:std:iso:3166'}
                              schema:
                                pattern:
                                  type: Coding
                                  value: {system: 'urn:iso:std:iso:3166'}
                                index: 28
                    required: [coding]
    elements:
      extension:
        index: 23
        slicing:
          rules: open
          discriminator:
          - {path: url, type: value}
          min: null
          slices:
            countryCode:
              match: {url: null}
              schema:
                type: Extension
                short: CountryGBACode | CountryISOCode
                url: h
                index: 24
                elements:
                  valueCodeableConcept:
                    short: CountryGBACode | CountryISOCode
                    index: 25
                    slicing:
                      slices:
                        valueCodeableConcept:
                          match: {}
                          schema:
                            short: CountryGBACode | CountryISOCode
                            index: 25
                            elements:
                              coding:
                                index: 26
                                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: 27
                                    countryISOCodelist:
                                      match: {system: 'urn:iso:std:iso:3166'}
                                      schema:
                                        pattern:
                                          type: Coding
                                          value: {system: 'urn:iso:std:iso:3166'}
                                        index: 28
                            required: [coding]
  district: {index: 19}
package_version: 1.3.12
extensions:
  official: {url: h, max: 1, short: Mark an address as an 'officially registered' address., type: Extension, index: 1}
class: complex-type
kind: complex-type
url: http://fhir.nl/fhir/StructureDefinition/nl-core-address
base: http://hl7.org/fhir/StructureDefinition/Address
version: 2.0.4