山崎 俊司
千葉大学医学部附属病院医療情報部
2 チェック項目とは
チェック項目は テンプレートに配置される入出力項目で、一種の構造化データ入力(Structured Data Entry 以下SDE )法である。チェック項目ごとに部位、発症日時、程度、発症様式、性質などをその項目の属性としてどのように表現するかを定義する。
特に、チェック項目の程度については、5段階評価など、数値化できる表現形式を用いる。
テンプレートから入力データは原則として、チェック項目を通して入力する。
3 テンプレートの構築
診療の実態に即した使いやすいテンプレートの作成には、各分野の専門医の知識が必要である。しかし、必ずしも各施設に協力的な専門医がいるとは限らない。このため、テンプレート機能を実装した電子カルテを広く診療に利用するために、テンプレートを共有する必要性が生じるが、各施設の開発環境の違いにより、テンプレートの共有は、容易ではない。
テンプレート開発の効率を改善し、ユーザーがシステムのプラットフォームの違いを越えて、テンプレートの内容を共有できるようにするため、標準的にテンプレートを記述する手法が期待されている。
4 テンプレート共有のための方法 (Template Definition Language = TDL)
TDLとは、電子カルテにおけるテンプレートを記述する言語である。この言語は、各施設で開発され使用される電子カルテのテンプレートを構築するための知識を記述し、施設間のテンプレート共有を円滑にし、開発資源を節約するためものである。
TDLはユーザーインターフェースを規定するものではく、プラットフォームや、バックエンドのデータベースに依存しない。
5 TDL 試作例
千葉大学医学部附属病院で開発中のテンプレート機能をもった電子カルテシステムに対する議論を踏まえ、以下のようなTDLを試作した。
1)テンプレートクラス
TypeTemplate:
テンプレートのタイプ。用途によりサブクラスを設定する。
TypeTemplateには、初診時用、診断確認用、結果観察用、サマリー用
NameTemplate:
テンプレート名。いわゆる、プロブレム名、患者の状況名などに一致する。
NameCheckItem:
チェック項目名。個々のチェック項目名を定義する。
DefaultItemType:
デフォルトのデータタイプ。テンプレートに表示される各々のCheckItemの入力形式を定義する。省略時はBooleanとし項目内容の有無をラジオボタン等で表示する。
2)チェック項目クラス
NameCheckItem:チェック項目名
TypeCheckItem:
チェック項目の分類。チェック項目の分類は 自覚症状、他覚所見、検査データ処置、指導、オーダ内容などを分類する。
Location:
部位。チェック項目においてさらに詳細な部位が定義できるときに使用する。
DetailCheckItem:
詳細項目名。チェック項目の詳細な属性。基本、程度、発症様式、増悪因子、軽快因子など。
TypeData:
詳細項目のデータタイプ。TypeDataには、自由文、5段階評価、List, VAS(Visual Analog Scale)、有無(Boolean)などがある。5段階評価、Listの項目は、TypeDataの記載に続けて、[ ]内にカンマ区切りで記載する。
3) Service:(表の中ではSrvと略記)
Serviceは各属性の値により駆動される動作で、テンプレートクラス、チェック項目クラスとも同様で、各項目について定義できる。
ロジックの記載法未定であるが、Arden Syntax for Medical Logic Systemsの<knowledge_body>の応用を考えている。
表 1 電子カルテTDLのプロトタイプ
Class Template Class Check Item
TypeTemplate NameCheckItem
SrvTypeTemplate SrvNameCheckItem
NameTemplate TypeCheckItem
SrvNameTemplate SrvTypeCheckItem
NameCheckItem Location
SrvNameCheckItem SrvLocation
DefaultItemType DetailCheckItem
SrvDefaultItemType SrvDetailCheckItem
TypeData
SrvTypeData
項目名の後ろ1つ以上のスペースに続けて項目データを記載する。
/* */の間の記載はコメントと見なされる。
例1 Serviceの表記法
「一年に一度胸部レントゲン写真を撮る場合」はArden Syntaxの記法を用い以下のようになる。
Knowledge:
type: data-driven;;
data: open_template := event { open this template}
/*このテンプレートを利用した場合のイベント*/
ZENKAI := read last{date of Chest X ray examination}
KONKAI := today
;;
evoke: open_template;;
logic:
if KONKAI - ZENKAI > 1 year then conclude true;
end if;
;;
action: write "一年以上胸部X線写真を撮っていません。胸部X線写真をオーダーして下さい。";;
現在のところメッセージを電子カルテの画面に表示するWRITEというactionしかなく、動的なテンプレートを記述するには、拡張が必要である。
表 2 TDL プロトタイプによるテンプレート記載例
Class Template
TypeTemplate 経過観察用
NameTemplate SLE(全身性エリテマトーデス)
NameCheckItem 発熱
DefaultItemType Boolean
NameCheckItem 顔面紅斑
DefaultItemType Boolean
NameCheckItem 関節炎
DefaultItemType Boolean
NameCheckItem レイノー現象
DefaultItemType Boolean
NameCheckItem C3
DefaultItemType Data value
NameCheckItem C4
DefaultItemType Data value
NameCheckItem CRP
DefaultItemType Data value
NameCheckItem 抗DNA抗体
DefaultItemType Data value
NameCheckItem 蛋白尿(定性)
DefaultItemType Data value
NameCheckItem ステロイドの内服量
DefaultItemType Dose
Class Check Item
NameCheckItem 関節炎
TypeCheckItem 他覚所見
Location 右PIP(1-5),左PIP(1-5),右MP(1-5),左MP(1-5)右MTP(1-5),左MTP(1-5),右手首,左手首,右足,左足,右中足間,左中足間,右顎,左顎,右肩,左肩,右肘,左肘,右膝,左膝,右股,左股
DetailCheckItem 疼痛 (関節炎)
TypeData 5 段階評価 [なし,軽微,軽度,中等度,高度]
DetailCheckItem 関節腫脹
TypeData 5 段階評価 [なし,軽微,軽度,中等度,高度]
DetailCheckItem 関節液貯留
TypeData 5 段階評価 [なし,軽微,軽度,中等度,高度]
DetailCheckItem 関節発赤
TypeData 5 段階評価 [なし,軽微,軽度,中等度,高度]