データクレンジング・標準化・構造化
同じ薬を同じ用量で処方した。それでも、医療機関をまたぐとデータは一致しない。
コードも、名称も、用量も、単位も、施設ごとに違います。
医療データの分析は、言葉を揃えるところから始まります。
医療データは、現代のバベルの塔
人々が天までとどく高い塔を建てようとした。
神はその人間の傲慢さを憎んで人々の言語を混乱せしめた。
そのために協同で塔を作るということは不可能になり、お互に言葉の通ずる者同士が群になって、方方へ散っていった。
—— 旧約聖書 創世記11章1-9節
医療データも、同じ構造の中にある。
電子カルテは施設ごとに導入され、それぞれの中では一貫している。院内で言葉が通じている限り、困ることは何もない。ただし施設をまたいだ瞬間、同じ薬も、同じ検査も、同じ病名も、別の言葉で書かれている。
塔を建てるには、まず言葉を揃えなければならない。
SS-MIX標準化ストレージの標準化状況
| 医薬品コード(HOT7/HOT9) | 146/1,220施設(12.0%) |
| 臨床検査コード(JLAC10) | 298/1,193施設(25.0%) |
※2023年3月末時点。出典: 2023年度 SS-MIX普及調査(川崎医療福祉大学 木村通男)
標準フォーマットを入れても、中身のコードは標準化されない。
SS-MIX2 も HL7 FHIR も、「どこに何を置くか」は定める。しかし「何と書くか」までは縛らない。与薬コードの欄にローカルコードを入れても、用法の欄にフリーテキストを入れても、フォーマットとしては正しい。
器を揃えることと、言葉を揃えることは、別の仕事です。
一つの処方が、三通りに書かれている
医薬品・傷病・検査。この三つは、医療データ分析の三種の神器です。
どの分析も、最後はこの三領域のどれかを数えることに帰着する。だから標準化が最初に必要になるのも、この三領域です。
まず医薬品から見る。次の一件は、三つの医療機関でまったく同じ内容が処方された記録です。
ロキソプロフェンNa錠60mg「トーワ」 3錠/分3 毎食後 7日分
| 医療機関 | 医薬品コード | 医薬品名 | 1回量 | 1日量 | 調剤量 |
|---|---|---|---|---|---|
| A病院 | 1000234 | ロキソプロフェンNa60mg「トー | 1錠 | 3錠 | 21錠 |
| B病院 | D003134 | 【トーワ】ロキソプロフェンNa60mg | 1T | 3T | 21T |
| C医院 | 3100345 | ロキソプロフェンナトリウム錠60mg | 60mg | 180mg | 1260mg |
コードは三つとも別の体系。名称は桁数制限で途中で切れているものがある。単位は「錠」と「T」と「mg」。1回量は 1 と 60 が同じ意味になる。1日量も調剤量も、表記は三施設で揃っていない。
このまま件数を数えれば、三施設は三種類の薬を使っていることになる。
標準化とは、ここまで揃えること
標準化は、コードを付け替える作業ではない。用量と単位を揃えなければ、集計は合いません。
処方の例
| コード | 名称 | 1回量 | 1日量 | 調剤量 | |
|---|---|---|---|---|---|
| ローカル | D003134 | 【トーワ】ロキソプロフェンNa60mg | 60mg | 180mg | 1260mg |
| 標準化後 | 1149019F1625(YJコード) | ロキソプロフェンNa錠60mg「トーワ」 | 1錠 | 3錠 | 21錠 |
注射の例
| コード | 名称 | 投与量 | |
|---|---|---|---|
| ローカル | 5559321 | 【20mg】ラシックス | 2mL |
| 標準化後 | 2139401A2137(YJコード) | ラシックス注20mg | 1管 |
成分量で記録された 60 を 1錠へ、1260 を 21錠へ、mL を管へ。換算に必要なのは、コードの対応表ではなく、その薬剤が実際にどう指示されるかの知識です。
傷病は、入力の仕方でコードが変わる
傷病名には、標準のコード体系がある。傷病名コードとICD10です。
にもかかわらず、同じ病名が同じコードにならない。原因はコード体系ではなく、入力のされ方にあります。
-
01 合成傷病 — 同じ病名が、別の疾患に分類される。
「心因性疼痛」は、そのままの病名として入力することもできるし、「疼痛」に修飾語「心因性」を付けて入力することもできる。前者のICD10は F454、後者は「疼痛」の R529 のまま。同じ患者の同じ状態が、入力方法の違いだけで別の疾患に分類される。標準化では、傷病名と修飾語を合成して、意図された病名とコードへ寄せる。
合成傷病の例
病名管理番号 傷病名コード 傷病名 ICD10コード 修飾語コード 修飾語名 ローカル 20078399 8838060 疼痛 R529 3079 心因性 標準化後 20065450 8844881 心因性疼痛 F454 - - -
02 未コード化傷病 — そのままでは分析に使えない。
傷病名コードに 0000999 が入っている記録がある。病名は文字として書かれているが、コードとしては未設定という意味です。ICD10も修飾語も空。集計にかけると、この記録は「不明」に落ちる。文字列から病名を同定し、コードを与え直す必要がある。
未コード化傷病の例
病名管理番号 傷病名コード 傷病名 ICD10コード 修飾語コード 修飾語名 ローカル 99999999 0000999 心因性疼痛 - - - 標準化後 20065450 8844881 心因性疼痛 F454 - - -
03 複数傷病 — 1レコード1傷病が守られていない。
「急性胃腸炎、肝障害」「足、頭部湿疹」「胃前庭部胃体部癌」。一つの欄に複数の病名が入っている。分解しなければどちらの疾患としても数えられず、分解の仕方も自明ではない。「足、頭部湿疹」は「足湿疹」と「頭部湿疹」に、「胃前庭部胃体部癌」は「胃前庭部癌」と「胃体部癌」に分かれる。省略された語を補って初めて、それぞれにコードが付く。
複数傷病の分解
レコードID 傷病名 傷病分解 傷病名コード 1 急性胃腸炎、肝障害 急性胃腸炎 0091009 肝障害 5739014 2 足、頭部湿疹 足湿疹 6929222 頭部湿疹 6929246 3 胃前庭部胃体部癌 胃前庭部癌 8848024 胃体部癌 1514002
どれも、コードの対応表を引くだけでは片づかない。「足、頭部湿疹」を「足湿疹」と「頭部湿疹」に分けられるのは、その表記が何を意図しているかを読めるからです。
検査は、帳票に依存している
医薬品や傷病と同様の問題に加えて、検査には次の事情がある。
- 白血球像のアスタリスクのように、帳票のための区切りデータが混じっている。
- Ara h 2 (EIA)の直後に置かれた「判定」のように、前の行とセットでなければ意味を成さない行がある。
帳票としては読みやすいが、そのままでは分析できない。
検査結果の帳票(イメージ)
| ローカルコード | 項目名 | 基準範囲 | 結果値 |
|---|---|---|---|
| 1445 | 外科セット | 外科セット | |
| 1446 | 白血球数(WBC) | 3500〜9700 /μL | 5890 |
| 1447 | 赤血球数(RBC) | 女 376〜516 万/μL | 276(L) |
| 1448 | 血色素量(Hb) | 女 11.2〜15.2 g/dL | 8.8(L) |
| 1449 | 血小板数 | 14.0〜37.9 万/μL | 12.4(L) |
| 3012 | 白血球像 | ****** | |
| 3013 | 好塩基球:Baso | 0.0〜2.0 % | 0.2 |
| 3014 | 好酸球:Eosino | 0.0〜7.0 % | 3.2 |
| 3015 | リンパ球:Lymph | 18.0〜50.0 % | 31.1 |
| 3016 | 単球:Mono | 1.0〜8.0 % | 10.0(H) |
| 3017 | 好中球:Neutro | 42.0〜74.0 % | 55.5 |
| 7911 | Ara h 2 (EIA) | (−)0.34以下 | 0.06 |
| 7913 | 判定 | (−) | (−) |
| 8022 | インフルエンザ | 1.0未満 COI | 0.1 |
| 8025 | 判定 | (−) | (−) |
Ara h 2とインフルエンザで陽性になった患者人数を集計しようとしても、下記のようになって意味不明になる。
ローカルコードで集計した陽性患者数(イメージ)
| ローカルコード | 項目名 | 陽性患者数 |
|---|---|---|
| 7913 | 判定 | 32名 |
| 8025 | 判定 | 12名 |
前項の「判定」だけの行も、帳票構造を突き合わせれば同定できる。
検査の標準化例
| 項目コード | 項目名 | 結果値 | |
|---|---|---|---|
| ローカル | 7913 | 判定 | (−) |
| 標準化後 | 5A100250002302311 | アレルゲン特異IgE_Ara h2_血清_エンザイムイムノアッセイ(EIA)_判定 | 陰性 |
検査は項目数が多く、施設ごとの差も大きい。当社の検査クレンジング辞書は、10,000検査項目以上に対応しています。
所見を、分析できる形にする
医療データの多くは、はじめから表になっていない。所見、看護記録、退院サマリ。臨床の判断がいちばん濃く残っているのは、この自由記載欄です。
※ 以下は架空の所見例です。実在の患者とは関係ありません。
#1 アナフィラキシーについて
全身性の発疹および呼吸器症状を認め、皮膚・呼吸器の2臓器系にわたる症状を伴うアナフィラキシー反応と判断した。血圧低下および意識障害は認めず、ショックには至らなかった。
原因としては、症状発現と投与時期との時間的関連から、クラフォランまたはカロナールによる薬剤性アナフィラキシーを想定する。いずれも過去に反復して使用されていた薬剤であるが、既往の使用歴は本反応を否定する根拠とはならない。両剤の同時投与による影響も否定できず、現時点で被疑薬を単一に特定することは困難であるため、両剤ともに今後使用不可とした。
例:薬剤性アレルギーの発生状況を分析する場合
「どの系統の薬剤で、どのような反応が、どの程度起きているか」を把握するには、テキストをそのまま抽出するだけでは足りません。所見文には「想定する」「否定できない」「特定は困難」といった医師の判断の度合いが記述されており、確定と疑いを区別せずに抽出すれば、集計値は実態から乖離します。また、「クラフォランで何件」ではなく「セフェム系で何件」を見たいのであれば、商品名のままでは集計できません。
そこで、分析目的から逆算して構造を設計します。この設計判断が、後の集計精度を決めます。
構造を定義したうえで、AIとルールベースの処理を組み合わせて傷病名・被疑薬・確定/疑いの別を抽出し、アレルギー症状は傷病名マスタ、薬剤はWHO ATC分類へ標準化します。ここまで構造化・標準化して初めて、所見をICD10分類・WHO ATC分類のレベルで分析できるようになります。
アレルギー関連傷病名テーブル(イメージ)
| 所見ID | 記載傷病名 | 傷病名コード | 疑いフラグ |
|---|---|---|---|
| 112 | 薬剤性アナフィラキシー | 8830279 | 0 |
被疑薬テーブル(イメージ)
| 所見ID | 記載被疑薬名 | WHO ATCコード | 禁忌フラグ |
|---|---|---|---|
| 112 | クラフォラン | J01DD01 | 1 |
| 112 | カロナール | N02BE01 | 1 |
当社の自然言語処理技術は、株式会社ケアネット様と国立成育医療研究センター様による、電子カルテに記載された医師の所見を構造化データへ変換する共同研究に用いられました。詳細は国立成育医療研究センター様のプレスリリースをご覧ください。
医療データに本来の価値を
医療データには、臨床の判断が詰まっています。ただし、そのままでは分析できない。施設ごとにコードが違い、院内の運用に依存し、いちばん濃い情報は所見など自然言語データの中にある。
標準化・構造化は、そこに閉じ込められたままの価値を、取り出せる形にする仕事です。
H&H CONNECTの標準化・構造化体制
AIとロジックで可能な部分は自動化します。
しかし、結果を担保したり、AI・ロジックでは判定できない部分を判断するのは、臨床を10年以上経験し、医療データに精通した医療有資格者です。読むのは記載された文字だけではない。処方されている薬剤、付いている病名、検査値の推移。それらを重ねてその患者がどういう状態にあったのかを立体的に組み上げたうえで、この記録が何を指していたのかを判断します。臨床を経験した医療有資格者でなければ、そこまでは読み解けません。
それを支えるのが医療データに長年携わってきたシステムエンジニアです。突き合わせるべきデータを揃え、判断の結果を全件へ確実に反映し、機械的な整合チェックで漏れを潰す。医療有資格者が判断だけに集中できる体制を整えています。
400万人+ — 累計データ標準化実績
10,000検査項目+ — 累計データ標準化検査項目
5群45種 — 標準化・構造化にも用いる自社マスタ
この自社マスタ「H2MS」があるからこそ、データ標準化・構造化が実現可能となります。
こうした状態にあれば、ご相談ください
- 複数施設の電子カルテデータを集めたが、施設ごとにコードも単位も違って分析できない
- 検査データがローカルコードしかなく、標準化に手が付けられない
- 傷病名の標準化を実施できておらず、分析精度が問題になっている
- 所見や看護記録に価値があることは分かっているが、分析にできる状態になっていない
- クレンジング済みと聞いて受け取ったデータの、精度がどこまで担保されているのか読めない
- AIでの自動マッチングを試したが、結果を検証できる人が社内にいない
- GPSP等の規制要件に対応したクレンジングが必要だが、要件の落とし方が決まらない