はじめに
前回の続きです
機械学習を搭載している電子カルテを作成していくにあたって調べています
chocolate22554.hatenablog.com
内容
いくつか参考記事があったのだが 先にGitでリポジトリ公開されており、チュートリアルもあり、わかりやすい記事があった MedCATから
towardsdatascience.com
この方は大規模なサーバーやインフラなしでMedCATというGitで公開されている電子カルテ MedCATを元に進めていく模様
GitHub - CogStack/MedCAT: Medical Concept Annotation Tool
いろんな病院のEHR(Electronic Health Record 電子カルテの略)のデータ
Google Health unveils EHR data aggregation tool for clinicians
Amazon Comprehend Medical | AWS
(下記からは自分なりに英語を意訳したもの 和訳すると違う意味だがなんとなくで訳してまとめている)
- Introduction —
GitHub - CogStack/MedCATtutorials: General tutorials for the setup and use of MedCAT.
- Dataset Analysis and Preparation — データ分析と準備
ML projectについて、 データセットについて, 事前処理テキスト、モデリングを始める前にするすべてのこと
- Extracting Diseases from Electronic Health Records — 電子カルテから疾患の抽出
MedCAT のライブラリ(python)、固有表現認識(テキストから人名、日付等の固有表表現を抽出するタスク
アノテートされたデータがないドメインで固有表現認識!?https://ai-scholar.tech › ner-weak-supervision )
,医学概念(medical concepts)とつなげる。
<MEDCATをどのように使いたいを知るなら この3番で十分ということ
- Analysing the Results —
中級・上級レベルのMedCAT ライブラリの部分
NER+L & MetaAnnotations のための完璧なパイプラインを構築する方法
<Meta 使っていくんですね
- Analysing the Results — 分析の結果
電子カルテから該当部分を抽出できたかどうかみていく
- Other Tools and Functions of the MedCAT library-----MedCATライブラリの 他のツールと機能
(ICD10 codes
International Classification of Diseases (ICD)
, SNOMED CT) & What to expect in the Future
SNOMED CT - Wikipedia
https://www.jstage.jst.go.jp/article/johokanri/51/4/51_4_243/_pdf
記事内で電子カルテの記録はフリーテキストというのを何回か伝えているのですが、
電子カルテ記録の例で英語バージョンですが ぐしゃぐしゃしてますね
電子カルテはまだ形式化されているのでいいですが、紙カルテは筆跡等違うので読解が困難をきたします
自然言語処理(該当文書をどのように分けるか等色々な方法がある)
Natural Language Processing (NLP) as Named Entity Detection and Linking (NER+L)
NERは医療用語の該当箇所を分ける
NER means detecting the entity in the text
バイオメディカル(生物医療)のデータベースと照合させる
おそらく日本で言う 区分番号と NERで区分した 医療用語やテキスト自体を照合させ 本当に正しいか 漏れがないかを確認する
UMLSがデータが一番多いようでここではそれを使うようです
L means linking the recognised entity to a concept in a biomedical database
医療単語とデータベースを照合させる作業の部分はとても大事で、なぜかというと同じ様な意味を持っている単語をまとめることができるからということ。この作業がなければ例えば何人の患者さんが心臓病を持っているか 正確に数えることが難しくなるということ
The linking part is essential because it allows us to standardise and organize the detected entities, as multiple recognised entities can link to the same medical concept in a biomedical database. For example, in an EHR we can have:
例でいうと下記 太字の単語はすべて心臓病を指す
- The patient was diagnosed with malignant neoplasm of breast…
- Previous medical history includes breast cancer…
- Reason for admission: breast CA…
-
The dataset — MIMIC-III
It includes clinical notes, demographics, vital signs, laboratory tests and more
使うには申請が必要なよう、何日かで承諾されるらしい
The dataset can not be downloaded directly, but one needs tosubmit a request first
Environment setup (if running locally)
ローカル環境で使う場合↑
主にpythonを扱う Rを使うかもしれないし 少し補助的にJavascriptを使うと助かるかもしれないということ。
pythonは3.5以上のverであれば使えるということ
下記を行っているがvenvでなくて、Anaconda のcondaを仮想環境として使うで良さそう
$ python3 -m venv medcat
chocolate22554.hatenablog.com
まとめ
先に触れたチュートリアル 1〜5の中身が内容が充実してそうなのでもっと紐解きたいが、一旦ここまでにして次に移ります
データセットの部分等 日本でいうとどれが当てはまるか調べる必要がありそうです
必要あれば 更に記事内容を追加していく予定