証明書のモデル
FHIRで検証可能な医療情報¶
このドキュメントでは、FHIRでモデル化された医療情報をW3C Verifiable Credentials(VC)基づいてどのように表現するのかを説明します。
コンテンツの定義¶
検証可能な医療情報を提示したい場合には、まずはじめにユースケース特有の決定を行う必要があります。
- 合わせてパッケージ化されて維持されなければならない、一連の必須およびオプションのFHIR content resources(例:
Immunization
やObservation
など)を決める - これらのFHIR content resourcesを、FHIR identity resources(例:
Patient
)を経由して、個人の外部のIDと紐付ける方法を決める
これらを決定すれば、VCは、credential subjectを使用して次のように構成できます。
credentialSubject
に以下のトップレベル要素を持たせるfhirVersion
: a string representation of the semantic FHIR version the content is represented in (e.g.1.0.*
for DSTU2,4.0.*
for R4, where*
is a number, not a literal asterisk)fhirBundle
: a FHIRBundle
resource of type "collection" that includes all required FHIR resources (content + identity resources)
"credentialSubject"
のpayloadは次のような結果になります。
{
"...",
"fhirVersion": "4.0.1",
"fhirBundle": {
"resourceType": "Bundle",
"type": "collection",
"entry": [
"..."
]
}
以下ではHealth Cardのユースケースにフォーカスしていますが、FHIRからVCを構築する同様のアプローチは他のユースケースにも適用できます。
「Health Card」をモデル化する¶
「Health Card」は、1つの独立したトピックに関する結果を伝達するVCです。この例では、ワクチン接種の詳細が記録されたCOVID-19の免疫カードです。他のカードとしては、たとえば、COVID-19のRT-PCRテストの詳細、COVID-19の診断結果、TDAPワクチンなどが考えられます。
上記のプロシージャにしたがって、まずはじめに、FHIR content resourcesとIDリソースについて決定を行います。
-
どのFHIR content resourcesをパッケージに含める必要があるか? 免疫(immunization)の例としては、次のことを考慮する必要があります。
- 1回目の接種に関する詳細情報(製品情報、接種日、接種の実施者)を持った
Immunization
- 2回目の接種に関する詳細情報(製品情報、接種日、接種の実施者)を持った
Immunization
- 1回目の接種に関する詳細情報(製品情報、接種日、接種の実施者)を持った
-
What FHIR identity resources do we need to bind the FHIR content resources to an external identity system? We might eventually define use-case-specific requirements, but we want to start with a recommended set of data elements for inclusion using the FHIR
Patient
resource. Resources MAY include an overall "level of assurance" indicating whether these demographic elements have been verified.- ベストプラクティス
- 検証者(Verifiers)はIDデータを保存するべきではありません。そして、検証目的で必要なくなったらデータは直ちに削除するべきです。
- 検証者(Verifiers)はVC内のすべての要素が検証車の持つレコードに完全に一致することを期待するべきではありませんが、VC内に含まれる要素を使用することはできます。
- ベストプラクティス
W3C VC Data Modelにマッピングする¶
SMART Health Card JWSからW3C Verifiable Credential JSON-LD構文に一致する構造を作るために、次のことを行います。
-
JWS payloadの圧縮を解除する
-
.vc
オブジェクトに追加する。
"@context": [
"https://www.w3.org/2018/credentials/v1",
{
"@vocab": "https://smarthealth.cards#",
"fhirBundle": {
"@id": "https://smarthealth.cards#fhirBundle",
"@type": "@json"
}
}
]
-
.vc.type
配列の最後に追加する:"VerifiableCredential"
-
JWTのデコードルールに従ってpayloadを処理する