vn-core-address
type: StructureDefinition
node role: treeRoot
id:
  v: vn-core-address
text:
  status:
    v: extensions
  div:
    v: Generated Narrative: StructureDefinition vn-core-address Name Flags Card. Type Description & Constraints<img src="[binary]" alt="doco" style="background-color: inherit"/> Address <a style="padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold; color: #301212; background-color: #fdf4f4;; padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold; color: #301212; background-color: #fdf4f4;" href="http://hl7.org/fhir/R4/conformance-rules.html#constraints" title="This element has or is affected by constraints ( vn-addr-province )">C 0..* Address An address expressed using postal conventions (as opposed to GPS or other location definition formats) Constraints: vn-addr-province #xD; Slices for extension Content/Rules for all slices #xD; extension:province S 0..1 Coding Mã tỉnh/thành phố (QĐ 19/2025) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-province Binding: Danh mục Tỉnh/Thành phố Việt Nam (active) — Vietnam Province ValueSet (extensible) #xD; extension:ward S 0..1 Coding Mã xã/phường (QĐ 19/2025) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-ward Binding: Danh mục Xã/Phường Việt Nam — Vietnam Ward/Commune ValueSet (extensible) #xD; text S 0..1 string Địa chỉ đầy đủ dạng text #xD; line S 0..* string Số nhà, đường, thôn/ấp #xD; district 0..1 string Quận/Huyện (legacy — không còn chính thức sau NQ 202/2025) #xD; state S 0..1 string Tên tỉnh/thành phố (text) #xD; postalCode 0..1 string Mã bưu chính #xD; country 0..1 string Quốc gia (mặc định VN) #xD; <img src="[binary]" alt="doco" style="background-color: inherit"/> Documentation for this format
url:
  v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-address
  l: vn-core-address
version:
  v: 0.1.0
name:
  v: VNCoreAddress
title:
  v: Địa chỉ VN Core — VN Core Address Profile
status:
  v: draft
date:
  v: 2026-03-21
publisher:
  v: HL7 Vietnam
contact:
  name:
    v: HL7 Vietnam
  telecom:
    system:
      v: url
    value:
      v: https://hl7.org.vn
  telecom:
    system:
      v: email
contact:
  name:
    v: Omi HealthTech (OmiGroup)
  telecom:
    system:
      v: url
    value:
      v: https://omihealthtech.vn
  telecom:
    system:
      v: url
    value:
      v: https://omigroup.vn
  telecom:
    system:
      v: email
description:
  v: Profile Address cho Việt Nam, hỗ trợ ĐVHC mới theo NQ 202/2025 (34 tỉnh, 3.321 xã). Bổ sung extension mã hóa tỉnh/TP và xã/phường. Cấp huyện (district) giữ lại cho backward-compatible nhưng KHÔNG Must Support — khuyến khích dùng extension:province + extension:ward. Căn cứ: NQ 202/2025/QH15, QĐ 19/2025/QĐ-TTg.
jurisdiction:
  coding:
    system:
      v: urn:iso:std:iso:3166
      l: 3166
    code:
      v: VN
    display:
      v: Viet Nam
fhir version:
  v: 4.0.1
mapping:
  identity:
    v: v2
  uri:
    v: http://hl7.org/v2
    l: v2
  name:
    v: HL7 v2 Mapping
mapping:
  identity:
    v: rim
  uri:
    v: http://hl7.org/v3
    l: v3
  name:
    v: RIM Mapping
mapping:
  identity:
    v: servd
  uri:
    v: http://www.omg.org/spec/ServD/1.0/
    l: http://www.omg.org/spec/ServD/1.0/
  name:
    v: ServD
mapping:
  identity:
    v: vcard
  uri:
    v: http://w3.org/vcard
    l: vcard
  name:
    v: vCard Mapping
kind:
  v: complex-type
abstract:
  v: false
type:
  v: Address
  l: Address
base definition:
  v: http://hl7.org/fhir/StructureDefinition/Address
  l: Address
derivation:
  v: constraint
snapshot:
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version
      l: snapshot-base-version
    value: String
      v: 4.0.1
  element:
    id:
      v: Address
    path:
      v: Address
    short:
      v: An address expressed using postal conventions (as opposed to GPS or other location definition formats)
    definition:
      v: An address expressed using postal conventions (as opposed to GPS or other location definition formats). This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery. There are a variety of postal address formats defined around the world.
    comment:
      v: Note: address is intended to describe postal addresses for administrative purposes, not to describe absolute geographical coordinates. Postal addresses are often used as proxies for physical locations (also see the [Location](http://hl7.org/fhir/R4/location.html#) resource).
    min:
      v: 0
    max:
      v: *
    base:
      path:
        v: Address
      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
        l: Element
    constraint:
      key:
        v: vn-addr-province
      severity:
        v: warning
      human:
        v: Địa chỉ Việt Nam (country = 'VN') phải có extension:province (mã tỉnh/TP) — theo mẫu CH Core ch-addr-2
      expression:
        v: country.empty() or country != 'VN' or extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-province').exists()
      source:
        v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-address
        l: vn-core-address
    is modifier:
      v: false
    mapping:
      identity:
        v: rim
      map:
        v: n/a
    mapping:
      identity:
        v: v2
      map:
        v: XAD
    mapping:
      identity:
        v: rim
      map:
        v: AD
    mapping:
      identity:
        v: servd
      map:
        v: Address
  element:
    id:
      v: Address.id
    path:
      v: Address.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

path:
  v: Element.id
min:
  v: 0
max:
  v: 1

extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
    l: structuredefinition-fhir-type
  value: Url
    v: string
    l: string
code:
  v: http://hl7.org/fhirpath/System.String
  l: System.String

v: false

v: false

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

id:
  v: Address.extension
path:
  v: Address.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  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
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
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
    l: Element
constraint:
  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
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Address.extension:province
path:
  v: Address.extension
slice name:
  v: province
short:
  v: Mã tỉnh/thành phố (QĐ 19/2025)
definition:
  v: Mã tỉnh/thành phố theo QĐ 19/2025/QĐ-TTg (34 đơn vị)
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
  profile:
    v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-province
    l: vn-ext-province
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
    l: Element
constraint:
  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
    l: Extension
must support:
  v: true
is modifier:
  v: false
is summary:
  v: false

id:
  v: Address.extension:ward
path:
  v: Address.extension
slice name:
  v: ward
short:
  v: Mã xã/phường (QĐ 19/2025)
definition:
  v: Mã xã/phường/thị trấn theo QĐ 19/2025/QĐ-TTg Phụ lục II (mã 5 chữ số, 00001–99999)
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
  profile:
    v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-ward
    l: vn-ext-ward
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
    l: Element
constraint:
  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
    l: Extension
must support:
  v: true
is modifier:
  v: false
is summary:
  v: false

id:
  v: Address.use
path:
  v: Address.use
short:
  v: home | work | temp | old | billing - purpose of this address
definition:
  v: The purpose of this address.
comment:
  v: Applications can assume that an address is current unless it explicitly says that it is temporary or old.
requirements:
  v: Allows an appropriate address to be chosen from a list of many.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Address.use
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
example:
  label:
    v: General
  value: Code
    v: home
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
    l: Element
is modifier:
  v: true
is modifier reason:
  v: This is labeled as "Is Modifier" because applications should not mistake a temporary or old address etc.for a current/permanent one
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: AddressUse
  strength:
    v: required
  description:
    v: The use of an address.
  value set:
    v: http://hl7.org/fhir/ValueSet/address-use|4.0.1
    l: http://hl7.org/fhir/ValueSet/address-use
mapping:
  identity:
    v: v2
  map:
    v: XAD.7
mapping:
  identity:
    v: rim
  map:
    v: unique(./use)
mapping:
  identity:
    v: servd
  map:
    v: ./AddressPurpose

id:
  v: Address.type
path:
  v: Address.type
short:
  v: postal | physical | both
definition:
  v: Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.
comment:
  v: The definition of Address states that "address is intended to describe postal addresses, not physical locations". However, many applications track whether an address has a dual purpose of being a location that can be visited as well as being a valid delivery destination, and Postal addresses are often used as proxies for physical locations (also see the [Location](http://hl7.org/fhir/R4/location.html#) resource).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Address.type
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
example:
  label:
    v: General
  value: Code
    v: both
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
    l: Element
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: AddressType
  strength:
    v: required
  description:
    v: The type of an address (physical / postal).
  value set:
    v: http://hl7.org/fhir/ValueSet/address-type|4.0.1
    l: http://hl7.org/fhir/ValueSet/address-type
mapping:
  identity:
    v: v2
  map:
    v: XAD.18
mapping:
  identity:
    v: rim
  map:
    v: unique(./use)
mapping:
  identity:
    v: vcard
  map:
    v: address type parameter

id:
  v: Address.text
path:
  v: Address.text
short:
  v: Địa chỉ đầy đủ dạng text
definition:
  v: Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.
comment:
  v: Can provide both a text representation and parts. Applications updating an address SHALL ensure that when both text and parts are present, no content is included in the text that isn't found in a part.
requirements:
  v: A renderable, unencoded form.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Address.text
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
example:
  label:
    v: General
  value: String
    v: 137 Nowhere Street, Erewhon 9132
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
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6
mapping:
  identity:
    v: rim
  map:
    v: ./formatted
mapping:
  identity:
    v: vcard
  map:
    v: address label parameter

id:
  v: Address.line
path:
  v: Address.line
short:
  v: Số nhà, đường, thôn/ấp
definition:
  v: This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Address.line
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: string
    l: string
order meaning:
  v: The order in which lines should appear in an address label
example:
  label:
    v: General
  value: String
    v: 137 Nowhere Street
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
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: XAD.1 + XAD.2 (note: XAD.1 and XAD.2 have different meanings for a company address than for a person address)
mapping:
  identity:
    v: rim
  map:
    v: AD.part[parttype = AL]
mapping:
  identity:
    v: vcard
  map:
    v: street
mapping:
  identity:
    v: servd
  map:
    v: ./StreetAddress (newline delimitted)

id:
  v: Address.city
path:
  v: Address.city
short:
  v: Name of city, town etc.
definition:
  v: The name of the city, town, suburb, village or other community or delivery center.
alias:
  v: Municpality
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Address.city
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
example:
  label:
    v: General
  value: String
    v: Erewhon
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
    l: Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: XAD.3
mapping:
  identity:
    v: rim
  map:
    v: AD.part[parttype = CTY]
mapping:
  identity:
    v: vcard
  map:
    v: locality
mapping:
  identity:
    v: servd
  map:
    v: ./Jurisdiction

id:
  v: Address.district
path:
  v: Address.district
short:
  v: Quận/Huyện (legacy — không còn chính thức sau NQ 202/2025)
definition:
  v: Tên quận/huyện cũ. Giữ lại cho tương thích ngược với dữ liệu HIS cũ. KHÔNG Must Support — khuyến khích chỉ dùng state (tỉnh) + extension:ward (xã).
comment:
  v: District is sometimes known as county, but in some regions 'county' is used in place of city (municipality), so county name should be conveyed in city instead.
alias:
  v: County
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Address.district
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
example:
  label:
    v: General
  value: String
    v: Madison
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
    l: Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: XAD.9
mapping:
  identity:
    v: rim
  map:
    v: AD.part[parttype = CNT | CPA]

id:
  v: Address.state
path:
  v: Address.state
short:
  v: Tên tỉnh/thành phố (text)
definition:
  v: Tên tỉnh/thành phố dạng text — bổ sung cho extension:province (mã hóa)
alias:
  v: Province
alias:
  v: Territory
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Address.state
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
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
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: XAD.4
mapping:
  identity:
    v: rim
  map:
    v: AD.part[parttype = STA]
mapping:
  identity:
    v: vcard
  map:
    v: region
mapping:
  identity:
    v: servd
  map:
    v: ./Region

id:
  v: Address.postalCode
path:
  v: Address.postalCode
short:
  v: Mã bưu chính
definition:
  v: A postal code designating a region defined by the postal service.
alias:
  v: Zip
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Address.postalCode
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
example:
  label:
    v: General
  value: String
    v: 9132
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
    l: Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: XAD.5
mapping:
  identity:
    v: rim
  map:
    v: AD.part[parttype = ZIP]
mapping:
  identity:
    v: vcard
  map:
    v: code
mapping:
  identity:
    v: servd
  map:
    v: ./PostalIdentificationCode

id:
  v: Address.country
path:
  v: Address.country
short:
  v: Quốc gia (mặc định VN)
definition:
  v: Country - a nation as commonly understood or generally accepted.
comment:
  v: ISO 3166 3 letter codes can be used in place of a human readable country name.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Address.country
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
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
    l: Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: XAD.6
mapping:
  identity:
    v: rim
  map:
    v: AD.part[parttype = CNT]
mapping:
  identity:
    v: vcard
  map:
    v: country
mapping:
  identity:
    v: servd
  map:
    v: ./Country

id:
  v: Address.period
path:
  v: Address.period
short:
  v: Time period when address was/is in use
definition:
  v: Time period when address was/is in use.
requirements:
  v: Allows addresses to be placed in historical context.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Address.period
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Period
    l: Period
example:
  label:
    v: General
  value: Period
    start:
      v: 2010-03-23
    end:
      v: 2010-07-01
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
    l: Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: XAD.12 / XAD.13 + XAD.14
mapping:
  identity:
    v: rim
  map:
    v: ./usablePeriod[type="IVL<TS>"]
mapping:
  identity:
    v: servd
  map:
    v: ./StartDate and ./EndDate

element:
  id:
    v: Address
  path:
    v: Address
  constraint:
    key:
      v: vn-addr-province
    severity:
      v: warning
    human:
      v: Địa chỉ Việt Nam (country = 'VN') phải có extension:province (mã tỉnh/TP) — theo mẫu CH Core ch-addr-2
    expression:
      v: country.empty() or country != 'VN' or extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-province').exists()
    source:
      v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-address
      l: vn-core-address
element:
  id:
    v: Address.extension:province
  path:
    v: Address.extension
  slice name:
    v: province
  short:
    v: Mã tỉnh/thành phố (QĐ 19/2025)
  definition:
    v: Mã tỉnh/thành phố theo QĐ 19/2025/QĐ-TTg (34 đơn vị)
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: Extension
      l: Extension
    profile:
      v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-province
      l: vn-ext-province
  must support:
    v: true
element:
  id:
    v: Address.extension:ward
  path:
    v: Address.extension
  slice name:
    v: ward
  short:
    v: Mã xã/phường (QĐ 19/2025)
  definition:
    v: Mã xã/phường/thị trấn theo QĐ 19/2025/QĐ-TTg Phụ lục II (mã 5 chữ số, 00001–99999)
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: Extension
      l: Extension
    profile:
      v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-ward
      l: vn-ext-ward
  must support:
    v: true
element:
  id:
    v: Address.text
  path:
    v: Address.text
  short:
    v: Địa chỉ đầy đủ dạng text
  must support:
    v: true
element:
  id:
    v: Address.line
  path:
    v: Address.line
  short:
    v: Số nhà, đường, thôn/ấp
  must support:
    v: true
element:
  id:
    v: Address.district
  path:
    v: Address.district
  short:
    v: Quận/Huyện (legacy — không còn chính thức sau NQ 202/2025)
  definition:
    v: Tên quận/huyện cũ. Giữ lại cho tương thích ngược với dữ liệu HIS cũ. KHÔNG Must Support — khuyến khích chỉ dùng state (tỉnh) + extension:ward (xã).
element:
  id:
    v: Address.state
  path:
    v: Address.state
  short:
    v: Tên tỉnh/thành phố (text)
  definition:
    v: Tên tỉnh/thành phố dạng text — bổ sung cho extension:province (mã hóa)
  must support:
    v: true
element:
  id:
    v: Address.postalCode
  path:
    v: Address.postalCode
  short:
    v: Mã bưu chính
element:
  id:
    v: Address.country
  path:
    v: Address.country
  short:
    v: Quốc gia (mặc định VN)