電子カルテ情報共有サービスFHIR実装ガイド JP-CLINS(CLinical Information Sharing ImplementationGuide) ドラフト版
0.9.13 - draft
Japan
電子カルテ情報共有サービスFHIR実装ガイド JP-CLINS(CLinical Information Sharing ImplementationGuide) ドラフト版 - Local Development build (v0.9.13) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
本ページは、国が進めている医療DXのなかでのサービスが検討されている「電子カルテ情報共有サービス」において扱われる、いわゆる「3文書6情報」に含まれる「6情報」を医療機関から送信する際のFHIR仕様に関係する部分を記述したものである。3文書に含まれる6情報に相当する情報については、本仕様の該当部分が適用されるが、3文書のBundle仕様はそれぞれの文書の仕様で規定されており、ここで取り扱わない。
電子カルテ情報共有サービスに医療機関から送信する場合、1回に送信するリソースデータは、複数のリソースデータから構成されるのが普通である。FHIRではこのような送受信のまとめに、複数リソースデータをひとまりにしたひとつのリソースとしてBundleリソースタイプが用意されている。
電子カルテ情報共有サービスに医療機関から送信する場合には、このBundleリソースタイプのひとつのリソースデータを作成し、複数のリソースデータを1回の送信で送信する。電子カルテ情報共有サービスで処理対象となっていないリソースタイプのデータが含まれている場合には、受信側では処理されず破棄される(エラーとはならない)。
Bundleリソースのタイプ(type要素)は”collection”を使用する。
なお、電子カルテ情報共有サービスに6情報を送信する場合には、ひとつのBundlleに格納されるリソースデータ同士を相互に参照する(一方のリソースデータから同じBundle内の他のリソースを参照する)ことについては、Patientリソースを6情報のリソースから参照することだけ許容している。
一方、3文書を送信する場合には、文書はそれぞれひとつの”document”タイプのBundleとして作成され、ひとつのBundlleに格納されるリソースデータ同士が特に制限なく相互参照できる。
Bundleリソースの概要図は下図のようになる。
[v0.9.8追記] Bundleリソースのプロファイルは以下を参照すること。
1回で送信するひとつのBundleリソースには、
① アレルギー情報および薬剤禁忌情報 AllergyIntoleranceリソース
② 傷病名情報 Conditionリソース
③ 検査結果情報および感染症情報 Observationリソース
④ 処方依頼情報 MedicationRequestリソース
のいずれかひとつのリソースタイプのデータと、患者を識別するためのPatientリソース1個だけを格納する。
リソースの格納順序として、患者を識別するためのPatientリソース1個をまずBundleの最初のentryに格納し、以後は上記①から④のいずれかひとつのリソースタイプのデータを原則として1個以上格納する。
「原則として」と記述している理由は、例外的に、過去に送信済みのBundleリソースの内容をすべて削除したい場合にBundleリソースを送信するケースにおいては、患者を識別するためのPatientリソース1個をだけを格納する形をとる。
複数のリソースタイプのデータをひとつのBundleリソースに混在させて送信することはできない(エラーとなる)。
[v0.9.8変更のため追記]①から④のどのリソースタイプを格納しているかの情報を明示的に設定するため、Bundleリソースの meta.tag.system要素に”http://jpfhir.jp/fhir/clins/BundleResourceType”を, meta.tag.code要素に①から④に対応して、それぞれ以下のいずれかの値を設定する。
また、1回で送信するひとつのBundleリソースには、ひとりの患者の、同時に1回で報告される一連のデータ(1報告単位のデータ)だけを、すべて漏れなく格納する。異なる報告単位のデータや、異なる患者のデータをひとつのBundleリソースに含めてはならない。 送信側または受信側でデータ検証後に送受信がなされる場合、1報告単位のデータはそのデータ全体がOKとなるか、全体が拒絶されるかどちらかとなる。1報告単位のデータのうち一部だけが検証にパスすることはない。
1報告単位のデータとは、情報種別により次のとおりとする。1報告単位のデータを別々のBundleリソースに分けて作成、送信したり、一部分だけ送信することはできない(検出できないためエラーにはならない)。もし、同じidentifier識別情報を持つBundleリソースが複数回送信された場合、最後に送信されたものだけが有効となり、それより過去に送信されたデータは削除される。
以下の説明では、終了日等とは、削除日、転帰日、完了日など、その患者に登録されていた当該情報がなくなったとされた日を指す。ひとつの当該情報に終了日等が複数種類登録されている場合には、そのうち最も新しい日付の情報とする。
①アレルギー情報および薬剤禁忌情報(アレルギー情報等という)
1患者にその時点で登録されているか過去に登録されていたすべてのアレルギー情報等のうち、終了日等が5年以内のもの、および終了日等が存在しないアレルギー情報のすべてが、1報告単位となる。
アレルギー情報と薬剤禁忌情報とは区別しない。
②傷病名情報
1患者にその時点で登録されているか過去に登録されていたすべての傷病名情報のうち、終了日等が5年以内のもの、および終了日等が存在しない傷病名情報のすべてが、1報告単位となる。
③ 検査結果情報および感染症情報
1患者の1回の検査結果報告で報告された一連の検査の結果が1報告単位となる。1回の検査結果報告で感染症情報とそれ以外の検査結果情報とが混在している場合には、それらを区別せずに1報告単位のデータとみなしてよいが、別々の検査結果報告として異なる報告単位のデータとみなしてもよい。ただし、異なる報告単位のデータとするときは、異なるBundle.identifier識別情報とする必要がある。
④ 処方情報
1患者の1回の処方オーダで作成された処方情報が1報告単位となる。通常、ひとつの処方箋に記載される処方情報となる。
Bundleリソースのidentifier要素は、電子カルテ情報共有サービス側で保存される。送信側は、後続の送信においてこのidentifierを指定することで、過去に送信したBundleリソースを指定してそれに含まれていた全データについて削除、更新などの処理を行うことができる。
Bundleリソースのidentifier要素は以下の通りとする。
この仕様を満たすidentifierに加えて、これとは異なるsystem値をもつidentifierは複数存在しても構わない。
Bundle.identifier.system : system値として、”http://jpfhir.jp/fhir/clins/bundle-identifier” を設定する。
Bundle.identifier.value : 以下に記載する[報告単位識別ID] を設定する。
[報告単位識別ID]: 次の3つの文字列を半角ハット記号(^)で連携した文字列。
{
"resourceType": "Bundle",
"id": "Bundle-for-Example01",
"meta":
{
:
<省略>
:
},
"identifier": [
{
"system": "http://jpfhir.jp/fhir/clins/bundle-identifier"
"value": "1311234567^87654321:あいう:333444:05^ORDLAB-20230301O102930492039"
},
:
<省略>
:
],
"type": "collection",
"timestamp": "2020-08-21T12:12:21+09:00",
"entry": [
{
"fullUrl": "urn:uuid:6050a046-8f36-5064-c231-3aeacbc0c883",
"resource": {
"resourceType": "Patient",
"id": "JP-Patient-10293894",
:
<患者基本情報を格納するPatientリソース内容>
:
}
},
{
"fullUrl": "urn:uuid:6050a046-8f36-5064-c231-3aeacbc0c886",
"resource": {
"resourceType": "Observation",
"id": "JP-Observation-Example001",
:
<1個目の検査結果><省略>
:
}
},
{
"fullUrl": "urn:uuid:0c83b8af-ba92-5c73-e84e-c719f232cc61",
"resource": {
"resourceType": "Observation",
"id": "JP-Observation-Example001",
:
<2個目の検査結果><省略>
:
}
},
{
"fullUrl": "0dc2fb4c-baf1-4a30-0df4-58de94f34d2f",
"resource": {
"resourceType": "Observation",
"id": "JP-Observation-Example001",
:
<3個目の検査結果><省略>
:
}
}
]
}
Bundle.entry[] に繰り返しで格納される個々のリソース・インスタンスは、必ずBundle.entry[].fullUrl要素に、uuidをその都度毎回生成して設定しなければならない。同じリソースインスタンスを別のBundleリソースにより再送する場合でも、前回使用したuuidを使用してはならない(エラーにはならない)。 1回で送信するひとつのBundleインスタンスの中に同一のuuidが存在してはならない(エラーとなる)。
このuuidによるBundle内のentryの識別子を、前回送信時の特定のentryの内容を受信側に指し示すための識別子として利用することはできない(受信側で保存しない)。
6情報として送信した1報告単位のデータ(ひとつのBundleリソースで送信されたデータ)は、この単位で全体を削除するか、更新(削除+新規登録)するかいずれかのみ行うことができる。1報告単位のデータのなかの特定のリソースだけを指定した削除や更新はできない。 対象となる送信済みのBundleリソース・インスタンスの指定は、前述したBundleリソースを識別するIdentifier要素により行う。
本節では、電子カルテ情報共有サービスを単に「共有サービス」と記載する。
なお、共有サービスでは、削除処理、更新処理のどの過程でも途中で失敗、エラーとなった場合には、全ての処理をロールバックし、処理前の状態に戻す。
以上の共有サービス側の処理要件を満たせるよう、Bundleリソースインスタンス、Patientリソースインスタンスには、仕様に従って①②③を設定しなければならない。
【本項は特に暫定的な記載である】
Bundleリソースの電子カルテ情報サービスへの送信タイミングについては、電子カルテ情報サービスの運用ルールに従うため、本IGの範囲外であるが、おおよそ以下の方針を前提として本IGは作成されている。
① アレルギー情報および薬剤禁忌情報 AllergyIntoleranceリソース、および ② 傷病名情報 Conditionリソース
送信タイミングは、外来受診(複数診療科同日受診は1回とみなす)、入院、退院のイベントのあった日、およびこれらの情報が「新規登録または一部が更新、削除」(以下、「更新等」という)された時点ごととする。
③ 検査結果情報および感染症情報 Observationリソース、および ④ 処方依頼情報 MedicationRequestリソース
送信タイミングは、これらの情報が更新等された時点ごととする。
また、上記における各日、各時点について、何時間以内とするかの取り決めは、本IGでは規定していないが、各日、各時点についてはそれぞれのイベント日時から24時間以内を想定している。
6情報のうち、検体検査結果情報と感染症情報はObservationリソースタイプを使用し、「eCS 診療情報・サマリー汎用 Observationリソース(検体検査結果/感染症検体検査結果)プロファイル」に準拠してデータを作成する必要がある。
以降では次の用語を使用する。
display要素、text要素には、半角カタカナ文字、全角空白、制御文字(タブ、改行など)を含んではいけない。カタカナは必ず全角文字とすること。英数字記号および空白は半角文字とすること。全角ギリシャ文字、全角ローマ数字は可。機種やOS依存文字は含まないこと。
いずれのパターンの場合にも、code.textには、(4)施設固有コード設定パターンでdisplayに設定する名称を設定する。
すべての検体検査結果(感染症情報を含む)で、常に(1)施設固有コード設定パターンを適用したcode.coding[m]を記述する。(必須)
その上で、さらに追加として
臨床検査項目基本コードセット、または感染症検査項目リストの検査項目の場合:
(2)共有項目JLACコード設定パターン で記述する。(必須)
これに加えて、 (3)一般項目JLACコード設定パターン も記述して差し支えない。
1以外の検査項目の場合:
(3)一般項目JLACコード設定パターン を適用したcode.coding[n]を記述することを強く推奨する。しかし、これができない場合には、標準コード化できなかったことを明示的に記述するために、(4)未標準化コード設定パターン を適用したcode.coding[n]を記述することが必須である。すなわち、(3)か(4)のどちらかの設定パターン を適用したcode.coding[n]を記述することになる。
1: "code": {
2: "coding": [
3: {
4: "system": "http://jpfhir.jp/fhir/clins/CodeSystem/JP_CLINS_ObsLabResult_LocalCode_CS",
5: "code": "0198394_082",
6: "display": "血清K"
7: },
8: {
9: "code": "3H015000001826101",
10: "system": "http://jpfhir.jp/fhir/clins/CodeSystem/JP_CLINS_ObsLabResult_CoreLabo_CS",
11: "display": "K"
12: },
13: {
14: "code": "3H015000002326101",
15: "system": "urn:oid:1.2.392.200119.4.504",
16: "display": "カリウム_血清_電位差測定_定量値"
17: }
18: ],
19: "text": "血清カリウム"
20: },
1: "code": {
2: "coding": [
3: {
4: "system": "http://jpfhir.jp/fhir/clins/CodeSystem/JP_CLINS_ObsLabResult_LocalCode_CS",
5: "code": "0180500_023",
6: "display": "ケトン体_尿"
7: },
8: {
9: "system": "http://jpfhir.jp/fhir/local/h.u-tokyo.ac.jp/laboratory/CodeSystem/loboratory-items",
10: "code": "0180500",
11: "display": "尿ケトン体"
12: },
13: {
14: "code": "99999999999999999",
15: "system": "http://jpfhir.jp/fhir/clins/CodeSystem/JP_CLINS_ObsLabResult_Uncoded_CS",
16: "display": ”未標準化コード項目(JLAC)"
17: }
18: ],
19: "text": "尿ケトン体"
20: },
6情報のうち、感染症情報とそれ以外の検体検査結果情報とは、同じObservationリソースタイプを使用し、同じProfile「Observationリソース(検体検査結果/感染症検体検査結果)プロファイル」に準拠してデータを作成する。
両者の区別はcode.coding.system要素に設定される値で識別される。
6情報のうち、アレルギー情報と薬剤禁忌情報とは同じAllergyIntoleranceリソースタイプを使用し、同じProfile「AllergyIntoleranceリソース(アレルギー情報/薬剤禁忌)プロファイル」に準拠してデータを作成する。
両者の区別はAllergyIntoleranceリソースデータのcategory要素とcriticality要素に設定される値の組み合わせの違いにより以下の表に従い処理される。
薬剤禁忌情報においてはcategory要素にmedication、criticality要素にhighを必ず設定することによる。利用側(電子カルテ情報共有サービス)はこの両方の条件が満たされた場合にのみ「薬剤禁忌情報」として扱、どちらかまたは両方が満たされない場合には薬剤禁忌情報ではなくアレルギー情報として取り扱う。
category要素 | criticality要素 | 取り扱われる 6情報での種別 |
---|---|---|
medication | high以外、または値なし(要素なし) | 薬剤に対するアレルギー情報。 薬剤禁忌情報としては扱われない。 |
medication | high | 薬剤禁忌情報 |
medication以外、または値なし(要素なし | いずれかの値、または値なし(要素なし) | 薬剤薬剤以外の原因物質に対するアレルギー情報。 薬剤禁忌としては扱われない。禁忌情報 |
電子カルテ情報共有サービスに医療機関から送信する場合には、個人識別子として、保険者情報と被保険者情報を送信することが必須である。このためFHIRリソースの患者情報であるPatientリソースのidentifier要素にこの識別子情報を設定しなければならない。
以下にその仕様を示す。
なお、Patientリソースは、6情報のいずれでもBundleリソース内の先頭のentryに記述しなければならない。またそのPatientリソースのidentifier要素にこの被保険者個人識別子を設定しなければならない。
個人識別子として、保険者情報と被保険者情報とを以下の仕様で連結したひとつの文字列を使用する。
本仕様では、以下、これを「被保険者個人識別子」と称する。また英数字は1バイト系文字の英数字を指す。
被保険者個人識別子: 以下の各情報(要素)を半角コロン(文字コード16進数 5A)で結合する。
要素を省略する、とある場合には、長さ0の文字列とする。
被保険者個人識別子は、Patientリソースのidentifier要素のvalueに記述する。この場合、system値には、「被保険者個人識別子」であることを示す「http://jpfhir.jp/fhir/clins/Idsystem/JP_Insurance_memberID」を設定する。
{
"resourceType": "Patient",
"id": "Patient1",
<省略>
"identifier": [
{
"system": "urn:oid:1.2.392.100495.20.3.51.11234567890",
"value": "12345"
},
{http://jpfhir.jp/fhir/clins/Idsystem/JP_Insurance_memberID
"system": "http://jpfhir.jp/fhir/clins/Idsystem/JP_Insurance_member",
"value": "00012345:あいう:187:05"
}
],
"name": [
<省略>
電子カルテ情報共有サービスに医療機関から送信する場合、送信するFHIRリソースが長期保存対象の情報である場合には、そのことを明示的に示すため、>それぞれのリソース識別子情報を設定しなければならない。
以下にその仕様を示す。
リソースのデータを長期保存対象とする場合には、そのリソースのデータにおけるmeta要素のtag要素に以下の形式で記述しなければならない。
meta.tag.system = “http://jpfhir.jp/fhir/clins/CodeSystem/JP_ehrshrs_indication” (この固定値とする)
meta.tag.code = “LTS” (この固定値とする)
{
"resourceType": "AllergyIntolerance",
"id": "Example-allergy",
"meta": {
:
<省略>
:
"tag": {[
{
"system": "http://jpfhir.jp/fhir/clins/CodeSystem/JP_ehrshrs_indication",
"code": "LTS"
}
]
}
},
【未告知病名】とは、電子カルテ病名の登録済みの病名であるが、医療者がその病気の説明をまだ患者本人に対して病名やその病状を十分に説明していない段階であり、この病名情報を患者に提供する際には特別の配慮を必要とするものとして、電子カルテの病名登録画面上で、「未告知病名」として登録してある(または同様の意味あいのフラグを付与してある)病名情報のことである。
電子カルテ情報共有サービスに医療機関からこの病名情報を送信する場合、送信する病名FHIRリソースにそのことを明示的に示すため、特別なリソース識別子情報を設定しなければならない。
以下にその仕様を示す。
病名リソース(Conditionリソース)におけるmeta要素のtag要素に以下の形式で記述しなければならない。
meta.tag.system = “http://jpfhir.jp/fhir/clins/CodeSystem/JP_ehrshrs_indication” (この固定値とする)
meta.tag.code = “UNINFORMED” (この固定値とする)
{
"resourceType": "Condition",
"id": "Example-condition",
"meta": {
:
<省略>
:
"tag": {[
{
"system": "http://jpfhir.jp/fhir/clins/CodeSystem/JP_ehrshrs_indication",
"code": "UNINFORMED"
}
]
}
},
病名を未提供(他の医療機関にも患者さんにも提供しない病名)とする場合には、病名リソース(Conditionリソース)におけるmeta要素のtag要素に以下の形式で未提供フラグを記述しなければならない。
meta.tag.system = “http://jpfhir.jp/fhir/clins/CodeSystem/JP_ehrshrs_indication” (この固定値とする)
meta.tag.code = “UNDELIVERED” (この固定値とする)
以下の例のように他のフラグと併用できる。
{
"resourceType": "Condition",
"id": "Example-condition",
"meta": {
:
<省略>
:
"tag": {[
{
"system": "http://jpfhir.jp/fhir/clins/CodeSystem/JP_ehrshrs_indication",
"code": "UNINFORMED"
},
{
"system": "http://jpfhir.jp/fhir/clins/CodeSystem/JP_ehrshrs_indication",
"code": "UNDELIVERED"
}
]
}
},