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

レッスン 11: FHIR データ型 - プリミティブ、複雑、特殊

プリミティブ型 (ブール、文字列、uri、日付、dateTime、インスタント、十進数、整数)、複合型 (HumanName、住所、連絡先、識別子、CodeableConcept、コーディング、数量、期間、参照、物語)、BackboneElement、Element。データ型の拡張。

🏗️ アーキテクチャ — レッスン 11 レッスン 11: FHIR データ型 - プリミティブ、 複雑かつ特殊

HL7 FHIR - 基本から高度な医療データ標準

パート 4: データ型、用語、プロファイル

xdev.asia

1. プリミティブ型

プリミティブ型は、FHIR における単純な「アトミック」値です。

種類説明たとえば
ブール値真/偽本当の
整数32ビット整数42
整数6464 ビット整数 (新しい R5)9223372036854775807
文字列.文字列Unicode 文字列 (≤ 1MB)「グエン・ヴァン・A」
10進数実数(任意精度)3.14159
ウリURI (RFC 3986)」http://loinc.org」
URLURL」https://fhir.example.com」
正規の適合リソースへの URL」http://hl7.org/fhir/StructureDefinition/Patient」
uuidUUID (RFC 4122)「urn:uuid:c757873d-ec9a-4326-a141-556f43239520」
IDリソース ID (1 ~ 64 文字、[A-Za-z0-9\-.])「患者-001」
日付。日付日付 (YYYY、YYYY-MM、YYYY-MM-DD)「2025-01-15」
日付時刻タイムゾーン付きの日付と時刻「2025-01-15T10:30:00+07:00」
インスタント。インスタント正確な時刻 (xs:dateTime)「2025-01-15T10:30:00.000Z」
時間。時間時間帯「10時30分00秒」
コードValueSet からの値「男性」
オイドOID (ISO)「urn:oid:2.16.840.1.113883.6.1」
値下げマークダウンテキスト「**太字**と*斜体*」
Base64バイナリBase64エンコードバイナリデータ
正の整数整数 > 01
unsignedInt整数 ≥ 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]valueQuantity、valueString、valueCodeableConcept、valueBoolean、...
発症[x]onsetDateTime、onsetAge、onsetPeriod、onsetRange、onsetString
有効[x]有効な日付時刻、有効な期間、有効なインスタント、有効なタイミング
故人[x]死亡ブール値、死亡日時
複数の誕生[x]multipleBirthBoolean、multipleBirthInteger
// 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"}

6. まとめ

  • プリミティブ型 — 20 以上の基本タイプ (文字列、日付、コード、URI など)、拡張機能をサポート

  • 複合型 — HumanName、住所、識別子、CodeableConcept、数量、参照など

  • コード可能なコンセプト — 最も重要なのは、相互運用性のためにマルチコーディングを許可することです

  • 物語 — すべての DomainResources 内の人間が判読できる XHTML

  • バックボーン要素 — 複合型内部リソース

  • 選択肢の種類 [x] — 適切なデータ型を柔軟に選択