見出し画像

電子カルテの設計とオブジェクト指向

昨日の続きです。
電子カルテの権威の要求が高度であり、電子カルテの開発は困難を極めた。SIerの社内的にはそのような要求は実現できないというのが大勢であったが、それもあってSIerに染まっていない若手ばかりのプロジェクトであった。最終的には、権威が自ら描いた設計図に基づいてシステムの実装がはじまった。オブジェクト指向に基づいて描かれたその設計図は、現実の診療行為がそのままの形でモデル化されていた。HL7標準、CDISC標準、この業界には様々なデータモデルの標準があるが、美しいと感じたモデルはその権威が描いたモデルだけだ。周囲から机上の空論とも言われていたその権威が提唱している電子カルテの理論をそのまま実装した。

上記の反射的な効果として、病院向け以外のシステムの仕事はできなくなってしまった。流儀が違いすぎる。

オブジェクト指向というのは、私の理解では「世界」の見方の1つで、その見方にしたがってシステムを設計して、その見方にしたがってモジュールを作る。データベースの設計のその見方にしたがってモデルを作る。
その見方というのは、時間の経過によって変化し続ける「この世の万物(オブジェクト)」と決して変化しない「情報(クラス)」を分ける見る。例えば、「医師」、「看護師」、「検査技師」などを「医療従事者」と抽象化する。「医療従事者」という概念がそのままプログラムのモジュールとなり、モジュールの責任(仕様)が明確となる。現実には「医師」の責任は診療で、オーダーを出すのは「医師」だ。「看護師」は、看護の専門家で実際に患者さんをケアするのは「看護師」の責任だ。処方や患者さんのバイタルの変化などを入力するのは「看護師」だ。上記のような概念がそのままモジュールとなり、データベースの構造(モデル)になる。院内の物流もきれいにモデル化できる。
ゴミ箱だって何種類かにモデル化される、人の臓器である血液製剤、注射針、捨てるものによって場所もプロセスも異なる。エンジニアは患者さんの寝具のクリーニングプロセスも廃棄プロセスも知り尽くしている。
抽象化という概念が要件定義をするエンジニアのスキルだ。単なる共通化ではなく、人のオーダーというものの本質をいまあるオーダーだけでなく、将来新しく登場するであろうオーダーにも妥当する本質を抽出することだと権威にいつも厳しく指導された。よい経験をしたと思っている。但し、厳しすぎたため、その病院のある駅を通ると、今でも足が重くなって、電車をおりたくないと体が悲鳴をあげる。
私は創薬のためのコンピュータシステムの開発をしているが、今でもオブジェクト指向に基づいて要件定義、設計、実装、テストをしている。「化合物」、「アミノ酸」、「ペプチド」、「分子」、「原子」などの概念を私よりうまくモデル化できたと思っても、あの日見た美しい仕様書(モデル)には程遠いと感じます。

この記事が気に入ったらサポートをしてみませんか?