1.0.0 - ci-build

JPCoreV1 - Local Development build (v1.0.0). See the Directory of published versions

Handlingofnon Existentdata Guide

1.3. 欠損値(データが存在しない場合)の扱い


FHIR®ではJSONおよびXMLいずれにおいてもオブジェクトは空ではならない。リソース内にエレメントが存在している場合、そのエレメントはそのタイプに応じた何らかのプロパティか1つ以上の拡張を持つ必要がある(2.6.2 JSON Representation of Resources, 2.6.1 XML Representation of Resources)。string型の値は空文字列であってはならず、そのプロパティが存在するのであれば、1字以上の文字を含む必要がある(2.24.0.1 Primitive Types)。

データがない場合に、Data Absent Reason拡張を用いて、データが欠損している理由を表すことができる。

JP Core の検索要求するクライアント(Requester)およびサーバ(Responder)は以下の要求を満たすこと (SHALL)

1.3.1. クライアント(Requster)


1.3.1.1. Must SupportおよびCardinalityが1以上が付与された要素を含むリソースを受信した場合、エラーを発生させたりアプリケーションを失敗させることなく、それらの値を処理することができなければならない (SHALL)

例) Readインタラクションの応答として、Must SupportおよびCardinalityが1以上の 要素であるPatient.maritalStatus を含むPatient リソースを受信した場合、 要求者はその値をエラーなく処理しなければならない。

 {
    "resourceType" : "Patient",
    ...
    "maritalStatus" : {
        "coding": [{
            "system": "http://terminology.hl7.org/CodeSystem/v3-MaritalStatus",
            "code": "M",
            "display": "Married"
        }]
    },
    ...
}, 

1.3.1.2. 実装ガイドに準拠する要求者は、欠損データであることを宣言した Must SupportおよびCardinalityが1以上の データ要素を含むリソースインスタンスを処理できなければならない (SHALL)

例) Patient.birthDateの値に欠損情報が付与されているリソースを、要求者は処理できなければならない。なお、birthDateはdate型というprimitive typeであり、そのextensionは”_“を先頭につけたプロパティに対して設定される(2.6.2.3 JSON representation of primitive elements)。

{
    "resourceType " : "Patient",
    ...
    "_birthDate ": {
        "extension" : [{
            "url " : "http://hl7.org/fhir/StructureDefinition/data-absent-reason",
            "valueCode" : "unknown"
        }]
    },
    ...
} 

1.3.2. サーバ(Responder)


1.3.2.1. Must SupportおよびCardinalityが1以上の 要素の値を保持している場合

JP Core 実装ガイドに準拠する応答者は、Must SupportおよびCardinalityが1以上のが付与された要素について、当該要素の値を保持している場合には、要求された検索結果のリソースのデータ要素として含めることができなければならない。 (SHALL)

1.3.2.2. Must SupportおよびCardinalityが1以上の 要素の値を保持していない場合

Must SupportおよびCardinalityが1以上の要素がオプショナルな要素の場合Responderは、そのデータ要素の項目を省略してもよい。 (MAY)

例)

Patient.telecomが欠損している場合…telecom要素は含まなくてよい
{
    "resourceType" : "Patient",
    ...
    "name" : [{"family" : "Yamada", "given" : [ "Taro" ] }],
    "gender" : "male",
    ...
}

1.3.2.2.1. Must SupportおよびCardinalityが1以上の 要素が必須要素の場合

JP Core実装ガイドの応答者は、リソースに含めるべき必須 MustSupport要素の値を保持していない場合は、次のように、データの欠損理由を指定しなければならない。 (SHALL) もし、そのデータの欠損理由を応答者が正確に把握していない状況では、その値を含めてはならない。 (SHALL NOT)

1.3.2.2.1.1. 非コード化要素の場合

非コード化値の場合: Data Absent Reason拡張を使用して、欠損理由を送 信できなければならない。 (SHALL)

例) 患者の生年月日が不明なため、Patient.birthDateに値を保持していない場合(Patient.birthDateが必須 MustSupport)、Data Absent Reason 拡張を使用して、欠損理由(=不明)を示す。なお、birthDateはdate型というprimitive typeであり、そのextensionは”_“を先頭につけたプロパティに対して設定される(2.6.2.3 JSON representation of primitive elements)。

{
    "resourceType " : "Patient",
    ...
    "_birthDate ": {
        "extension" : [{
            "url " : "http://hl7.org/fhir/StructureDefinition/data-absent-reason",
            "valueCode" : "unknown"
        }]
    },
    ...
} 
1.3.2.2.1.2. コード化データ要素の場合
1.3.2.2.1.2.1. そのコード化要素が、CodeableConceptデータ型で、バインディング強度が、example, preferred, extensible のいずれかの場合
1.3.2.2.1.2.2. コード化値の代替となる文字情報を持っている場合は、文字データのみを使用する

例) Patient.maritalStatus が必須要素の場合で、Patient.maritalStatus のコード値はわからないが、「既婚」という文字情報は持っている場合、CodeableConcept の text を使用する。

{
    "resourceType" : "Patient",
    ...
    "maritalStatus": {
        "text" : "既婚"
    },
    ...
}
1.3.2.2.1.2.3. コード化値の代替となる文字情報を持っていない場合はバリューセットの中に、例外値を表現するコードがある場合その値を使用する

例)バリューセットに含まれる例外値を表現するコードを使用(ValueSet marital-statusには、不明な状態を表すコード[UNK]を含んでいるため、UNKを使用する)

{
    "resourceType" : "Patient",
    ...
    "maritalStatus": {
        "coding": [{
            "system":"http://terminology.hl7.org/CodeSystem/v3-NullFlavor",
            "code": "UNK",
            "display": "unknown"
        }]
    },
    …
}
1.3.2.2.1.2.4. バリューセットの中に、例外値を表現するコードが無い場合[DataAbsentReason]コード体系から、適切な概念コードを使用する。

例) Patient.communication.language が必須MustSupport要素で、その値が、患者に確認していないため不明の場合、Data Absent Reason拡張より「not-asked」を使用する。※Patient.communication.language は現状のJP Core Patientプロファイル案では必須ではないため、例示のためのみに使用した。

{
    "resourceType" : "Patient",
    ...
    "communication": [{
        "language":{
            "extension": [{
                    "url " : "http://hl7.org/fhir/StructureDefinition/data-absent-reason",
                    "valueCode" : "not-asked",
                    "display": "Not asked"
            }]
        }
    }],
    ...
}
1.3.2.2.1.2.5. そのコード化要素が、CodeableConceptデータ型、または、code データ型で、バインディング強度が required の場合そのバリューセット内に含まれる例外値を表すコードを使用する。

例) Patient.gender が必須 MustSupport要素の場合で、その値が不明の場合、 バリューセットAdministrativeGender に含まれる例外値を表すコード「unknown」を使用する。※Patient.genderは現状のJP Core Patientプロファイル案では必須ではないため、例示のために使用した。

{
    "resourceType" : "Patient",
    ...
    "gender": "unknown",
    …
}