1995.08 「電子カルテ」開発の歴史

わーくすてーしょんのあるくらし (2.5)

1995-08 大橋克洋

< 1995.07 ネットワークにつながらないコンピュータなんて | 1995.10 携帯型 NEXTSTEP マシーン >

「電子カルテ」の開発は私の Life Work です。これについては医療情報学 会の論文その他にたびたび書いてきましたが、フォーマルな原稿では紙面が限 られたりしていて、開発における私の思考過程や細かいエピソードなどは省略 されています。どうして私が、かなり早い時期に電子カルテを開発するように なったのか、どんな経過を経て現在に至っているのか、もう少しざっくばらん に自由な立場で書いて見たいと思います。

○ 「電子カルテ」のネーミング

今から約10年ほど前のことになります。当時、給与計算からワープロまでお よそ机の上で紙とペンを使う仕事の殆どをコンピュータ化してしまったのです が、気がつくと手書きのまま残っているのは肝心の診療録だけでした。

そこで、診療録をコンピュータ化しようと考えたわけです。当時はいわゆる 「簡易言語」という言葉が流行っており、同時に「電子...」というネーミン グもよく見られました。そこで、コンピュータの上で扱う診療録を「電子カル テ」と呼ぶことにし、1985年5月付けで発表した医療情報学会誌への論文で Electronic chart という名称を使いました。別に私の論文が発端ということ ではなく、その後自然発生的に「電子カルテ」という呼称が一般に使われるよ うになり、現在に至っています。

○ 「電子カルテ」は宇宙船のコックピット ?

私の知る限り、当時まだ「電子カルテ」というものは存在せず、参考にする ものもない状態で、まずどのようなものを創ればよいのか随分頭を悩ませまし た。 当時のコンピュータは普通はキャラクターだけで、80桁 * 40行位しか表示 できませんから、その狭い画面の中をどのように使って多岐にわたる情報を表 示し、能率的に処理するかが最初の課題でした。

「グラフィックを駆使した宇宙船のコックピットのようなものが必要かな」 と思ったりしたものです。しかし、グラフィックを駆使したアプリを書くには かなりの労力を要すること、互換性の問題、インタフェースが複雑になりすぎ るなどの問題から考えなおしました。

○ ウインドーシステムから自作

その頃 Sun を使い始めていたので、この上でアプリを書くことにしました。 Sun には SunView というすぐれたウインドーシステムが載っていましたが 「電子カルテを読み書きする端末としてはパソコンでも何でも使えるべき」と いうのが当時の私の考えでしたので、システムに依存しないウインドーシステ ムを自分で作ることにしました。当面はキャラクター・ベースでマルチウイン ドー的使い方のできるものをめざしました。当時このようなアプリは既にいく つか見られたのです。

カルテ内のデータはリレーショナル・データベースとリンクし、必要に応じ て DB の方から検索したりできるものを考えていました。Sun の上で C言語で 書きはじめたのですが、アプリを書き進めるとかなり複雑な要素がからんでき て遅々として進まず、やがて投げ出してしまうことになりました。

○ ワープロでカルテを書く

それから半年以上経てからだったでしょうか、「そうだ、要するにワープロ でカルテを書けば良いんだ」と発想の転換をすることになりました。 丁度その頃使い始めた Emacs という素晴らしいエデイターに Lisp 言語が 内蔵されていて、Lisp で自由に拡張できることがわかりました。Emacs の Lisp はプロトタイプを作るにはとても優れていて、Lisp 言語の学習をはじめ てから1か月目には電子カルテのプロトタイプが動き始めました。1989年5月の ことです。

Emacs 自身が Lisp によって書かれた多くの機能を内蔵しており、そのソー ス全てが Emacs に付属しています。大抵のルーチンには自然なネーミングがさ れているので、文字を検索するルーチンが必要なら Emacs のソースの中から search とか find などの文字を検索するとそれらしきルーチンが見つかります。 ソースの中からその部分をコピーしてきて、Emacs の中で動かして見るとどん な挙動をするのかがわかります。それを必要に応じて少し手直しし、自分のプ ログラム・コードの中に取り込めば良いのです。

直接 I/O などにアクセスする部分は知る必要はなく、単に「あーせい、こー せい」と大まかな命令を書いてゆくだけで、どんどんアプリが拡張されて行き ます。現在使っている InterfaceBuilder と Objective-C もアプリを書くのは 楽ですが、Lisp に勝るほど楽ではありません。まだ私の書き方が良くないせい かも知れませんが。

○ 日常診療に使いながら日々機能拡張を行う

Emacs と Lisp の組み合わせは、このように極めて拡張が楽なので、それか ら4年間は使いながら少しずつ改良を続けました。Emacs というのはエデイター というよりも環境のようなもので、その中で電子メールをはじめ色々なアプリ を動かすことができます。

私自身が使うにはこのシステムはほとんど不満がないほど実用的なものにな りましたが、エデイターがベースですので、キーボードに熟練しなければなり ません。いろいろな機能を全てキーに割り当ててありますので、どの機能がど のキーに割り当ててあるかも頭に入れておかねばなりません。

4年間の実用運転で大体の仕様がかたまったこと、コンピュータ技術の発達 に伴い使い易いウインドー環境も出て来たことなどから、今度は誰でも簡単に 使える実用システムへの移行を考える時がきました。

○ 迷わず NeXT を選ぶ

その頃世の中には X-window が広まり始めていましたが、迷うことなく NeXT をターゲット・マシーンに選びました。Mac の使い勝手を継承してい ること、UNIX ベースの強力なネットワーク機能、マルチメデイア機能、 そして何よりも決定的なのはオブジェクト指向開発環境を装備する唯一の システムだったことです。

Mac も検討したのですが、私が要求する仕様を満たすにはネットワークが 非力でした。どうしても UNIX なみのパワフルなネットワーク機能が必須だ ったのです。また X-window のデザインは NeXT のウインドーに比べるべく もありませんでした(私はデザインにはこだわる方で、その点は Jobs と共 通するところがあります)。後で知ったのですが、X での開発は NEXTSTEP とは比較にならないほど大変なこともわかりました。

NeXT で開発を始めた頃は志を同じくする相棒がいて、私が仕様をふくめた デザイン関係を担当し、彼がコーデイングを一手に引き受けていました。 しかし、NeXT 社がハードウエアから撤退するに至って、彼は NeXT に将来は ないと言って去ってしまいました(実際には NeXT 社はハードウエアを捨てる ことによって、完全なマルチプラットフォームとなり、ますます可能性を延 ばしました)。

そこで急遽 Objective-C を勉強し、私ひとりで NeXT 版電子カルテの開発 に取り組むことになったわけです。Emacs + Lisp とは違って NEXTSTEP の開 発をのみ込むための最初の垣根はかなり高いものでした(Emacs のように参考 にする例文や参考書がほとんどなかったことに起因します)。それでも独学で 勉強を始めて4か月位で NeXT 版電子カルテが日常診療で使えるようになった のです。

○ NEXTSTEP 版電子カルテ

Emacs上の電子カルテで不自由を感じていなかったとは言え、やはり NeXT 上に移植した電子カルテはずっと快適なものになりました。NEXTSTEP はマ ルチメデイアを標準でサポートしますので、絵でも何でも簡単に貼りつけら れますし、まったくの素人でもマウスを使って簡単に扱うことができます。 医療というものは大変複雑な要素をもっていますので、電子カルテに使う 機能は実に多彩です。私はその他にもいくつかのアプリケーションを組み、 中には free ware として配布したものもいくつかありますが、電子カルテ のソースはありとあらゆるルーチンの宝庫のようなもので、何かアプリを書 く時は大抵その中を捜して再利用しています。

NEXTSTEP 版電子カルテを使うようになって2年を経ましたが、将来の電子 カルテのあるべき姿に対して幾つか構想を持つようになりました。これにつ いてはまたの機会に書くことにしましょう。

< 1995.07 ネットワークにつながらないコンピュータなんて | 1995.10 携帯型 NEXTSTEP マシーン >