Chuyển đến nội dung chính

第 11 課:FHIR 資料類型 - 原始、複雜和特殊

基本型別(布林、字串、uri、日期、日期時間、即時、小數、整數)、複雜型別(HumanName、Address、ContactPoint、Identifier、CodeableConcept、Coding、Quantity、Period、Reference、Narrative)、BackboneElement、Element。資料類型的擴充。

🏗️ 建築 — 第 11 課 第 11 課:FHIR 資料型態 - 原始、 複雜且特殊

HL7 FHIR - 基礎到進階醫療資料標準

第 4 部分:資料類型、術語和設定文件

亞洲開發網

1. 原始類型

原始類型是 FHIR 中簡單的“原子”值。

類型描述例如
布林值真/假真實
整數32 位元整數42
整數6464 位元整數(新 R5)9223372036854775807
字串.字串Unicode 字串(≤ 1MB)“阮文A”
小數實數(任意精度)3.14159
烏裡URI(RFC 3986)」http://loinc.org」
網址網址」https://fhir.example.com」
規範的一致性資源的 URL」http://hl7.org/fhir/StructureDefinition/Patient」
uuidUUID(RFC 4122)“甕:uuid:c757873d-ec9a-4326-a141-556f43239520”
編號資源 ID(1-64 個字符,[A-Za-z0-9\-.])“病人-001”
日期。日期日期(年、年-月、年-月-日)“2025-01-15”
日期時間帶時區的日期和時間“2025-01-15T10:30:00+07:00”
瞬間。即時確切時間 (xs:日期時間)“2025-01-15T10:30:00.000Z”
時間。時間一天中的幾個小時“10:30:00”
程式碼來自 ValueSet 的值“男”
奧德組織識別碼(ISO)“甕:oid:2.16.840.1.113883.6.1”
降價降價文本“**粗體**和*斜體*”
base64二進位Base64 編碼二進位數據
正整數整數 > 01
無符號整數整數≥00

原語的擴展

甚至原語也可以攜帶延伸(使用底線約定):

{
  "birthDate": "1990-05-15",
  "_birthDate": {
    "extension": [
      {
        "url": "http://hl7.org/fhir/StructureDefinition/patient-birthTime",
        "valueDateTime": "1990-05-15T14:30:00+07:00"
      }
    ]
  }
}

2. 複雜型別-通用

識別符

{
  "use": "official",
  "type": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
        "code": "NI",
        "display": "National unique individual identifier"
      }
    ],
    "text": "CCCD"
  },
  "system": "http://cccd.gov.vn",
  "value": "012345678901",
  "period": {
    "start": "2021-01-01",
    "end": "2036-01-01"
  },
  "assigner": {
    "display": "Bộ Công an"
  }
}

人名

{
  "use": "official",
  "text": "Nguyễn Văn A",
  "family": "Nguyễn",
  "given": ["Văn", "A"],
  "prefix": ["BS."],
  "suffix": ["ThS."],
  "period": {
    "start": "1990-05-15"
  }
}

地址

{
  "use": "home",
  "type": "physical",
  "text": "123 Đường Lê Lợi, Phường Bến Nghé, Quận 1, TP.HCM",
  "line": ["123 Đường Lê Lợi"],
  "city": "Hồ Chí Minh",
  "district": "Quận 1",
  "state": "TP.HCM",
  "postalCode": "700000",
  "country": "VN"
}

聯絡點

[
  {
    "system": "phone",
    "value": "+84901234567",
    "use": "mobile",
    "rank": 1
  },
  {
    "system": "email",
    "value": "[email protected]",
    "use": "home"
  }
]

編碼與可編碼概念

// Coding — một mã duy nhất
{
  "system": "http://loinc.org",
  "version": "2.77",
  "code": "8480-6",
  "display": "Systolic blood pressure"
}

// CodeableConcept — nhiều Codings + text
{
  "coding": [
    {
      "system": "http://hl7.org/fhir/sid/icd-10",
      "code": "I10",
      "display": "Essential (primary) hypertension"
    },
    {
      "system": "http://snomed.info/sct",
      "code": "38341003",
      "display": "Hypertensive disorder"
    }
  ],
  "text": "Tăng huyết áp nguyên phát"
}

可編碼概念 允許在不同的程式碼系統中表示相同的概念—支援互通性。

數量

{
  "value": 145,
  "comparator": ">=",
  "unit": "mmHg",
  "system": "http://unitsofmeasure.org",
  "code": "mm[Hg]"
}

期間和時間

// Period
{
  "start": "2025-01-15T08:00:00+07:00",
  "end": "2025-01-15T08:45:00+07:00"
}

// Timing (cho medication dosage)
{
  "repeat": {
    "frequency": 2,
    "period": 1,
    "periodUnit": "d",
    "when": ["ACM", "ACV"],
    "boundsPeriod": {
      "start": "2025-01-15",
      "end": "2025-02-15"
    }
  },
  "code": {
    "text": "Ngày 2 lần, sáng và tối sau ăn"
  }
}

參考

{
  "reference": "Patient/patient-001",
  "type": "Patient",
  "identifier": {
    "system": "http://hospital.vn/mrn",
    "value": "MRN12345"
  },
  "display": "Nguyễn Văn A"
}

參考資料可能包含 參考。參考 (文字 URL), 識別符 (邏輯參考),或兩者兼具。

3. 敘述(人類可讀)

{
  "text": {
    "status": "generated",
    "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p>Bệnh nhân: Nguyễn Văn A, Nam, sinh ngày 15/05/1990</p></div>"
  }
}
狀態描述
產生的根據結構化資料自動創建
擴充來自擴展的資訊不在結構化資料中
額外的。額外的還有一些未包含在結構化資料中的附加信息
空的沒有文字(空洞的敘述)

4. 骨幹元素

BackboneElement 是一個複雜類型 只存在於資源內部 父親,不能在其他地方重複使用。例如: 患者聯絡方式, 遭遇參與者, 遭遇診斷。

{
  "resourceType": "Patient",
  "contact": [
    {
      "relationship": [
        {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/v2-0131",
              "code": "N",
              "display": "Next-of-Kin"
            }
          ]
        }
      ],
      "name": {
        "text": "Nguyễn Thị B (vợ)"
      },
      "telecom": [
        {
          "system": "phone",
          "value": "+84907654321"
        }
      ]
    }
  ]
}

5. 選擇類型 [x]

有些元素允許多種資料類型—等於符號 [x]:

元素定義實際使用
值[x]valueQuantity、valueString、valueCodeableConcept、valueBoolean、...
開始[x]onsetDateTime、onsetAge、onsetPeriod、onsetRange、onsetString
有效[x]effectiveDateTime、 effectivePeriod、 effectiveInstant、 effectiveTiming
已故[x]已故布林值、已故日期時間
多胞胎[x]multipleBirth布林值,multipleBirth整數
// Observation value dạng Quantity
{"valueQuantity": {"value": 37.2, "unit": "°C"}}

// Observation value dạng CodeableConcept
{"valueCodeableConcept": {"coding": [{"code": "positive"}]}}

// Observation value dạng string
{"valueString": "Bình thường"}

六、總結

  • 原始型 — 20 多種基本類型(字串、日期、代碼、uri...),支援擴展

  • 複雜類型 — 人名、地址、識別碼、CodeableConcept、數量、參考...

  • 可編碼概念 — 最重要的是,允許多重編碼以實現互通性

  • 敘事 — 所有領域資源中人類可讀的 XHTML

  • 骨幹元素 — 複雜型內部資源

  • 選擇類型 [x] — 靈活選擇合適的資料類型