第1日目
ケースレポート(時事発表)(1)


4) 臨床検査オンライン参照システム -Javaによる開発事例-
    
  鶴岡地区医師会医療情報システム委員会 委員長 三原一郎

 鶴岡地区医師会では2年前より、医師会内にサーバを置いたイントラネットによるパソコンネットワークシステムを構築し、医療機関(約70施設)、医師会、訪問看護ステーション間での情報伝達や提供、在宅医療24時間連携における患者データベースの共有化、医師間、医師看護婦間での医療相談などに活用している。さらに、この度、各医療機関のパソコンから既存のイントラネットを介して、医師会の臨床検査センターのデータを閲覧できるシステムを独自に開発し、本年5月より本稼働させたので報告する。

 当地区医師会では、本年4月1日より健診、検査のコンピュータシステムをすべてパソコンLANによるクライアント-サーバ型へ一新した。これに伴い既存のイントラネットと健診、検査用パソコンが全てネットワークとして結ばれることとなり、会員が医師会の臨床検査データベースにアクセスする環境が整った。 これを受けて1年ほど前より各医療機関が既存のイントラネットを介して検査データを参照できるシステムの開発に着手した。システム開発は医師会で独自に行った。
 システムの操作手順を説明する。
 1.ログオン
 

 システムを起動すると、まずログオン画面が表示される。会員に医院コードとパスワードの入力を求め、正しいユーザであるかを認証する。ここで入力した医院コードに合致するデータのみが検索対象となる。
 

2.検索

ログオンに成功すると、検索画面が表示される。検索条件はログオン時に入力した医院コードに加えて、患者名、患者生年月日、依頼日を設定可能である。 条件入力の補助手段として、キーボードに触れなくとも操作できるようにソフトキーボード機能を、また日付入力の簡略化のためにカレンダー入力機能を装備し、キーボード操作に慣れない会員へ配慮した。 複数のデータが特定された場合には、患者名がリスト表示され、その中から希望の患者を選択することができる。
 
3.結果表示
結果は各分野ごとの検査結果表示テーブルが重なった形で表示される。各テーブルはタグをクリックすることで切り替えることができる。各テーブルには検査項目、基準値、検査結果などが時系列で表示され、異常値にはマークが付く。また、画面内に収まりきれないデータはスクロール表示できる。
 
4.グラフ表示
グラフ化したい検査項目を選択してダブルクリックすると、画面下に用意されたグラフ用テーブルにデータがコピーされる。必要なだけデータを移動後、メニューのグラフを選択するとグラフが表示される。グラフは、棒グラフと、折れ線グラフの2種を用意した。基準値の上、下限値も表示され、異常値が一目で分かるようにした。
 
5.印刷
 テーブルおよびグラフは、画面のイメージで印刷することが可能である。フレームはサイズが自由に変更することができるので、様々な用紙に対応できる。
 
6.保存
 検索した検査結果は、ローカルのデバイスにファイルとして保存することができる。この機能を利用することで、一度表示した検索結果は医師会に再度接続しなくとも参照することが可能となる。また、データファイルをメールに添付して、他の医療機関に転送することも可能である。
 
7.アップデート
 プログラムの不具合の訂正や新しい機能が追加された場合、医師会のサーバから新しいファイルをダウンロードし、各医療機関のプログラムを最新のバージョンに維持することができる。
 
さて、システムは全てJavaで開発した。アプリケーション開発言語として、プログラマーがJavaを使うメリットには、大きく分けて3点ある。
 (1) オブジェクト指向に基づく開発を行うことができる。これは完成したアプリケーションを再利用しやすく、保守しやすくなることに繋がる。
 (2) ネットワークに対応したアプリケーションを実現しやすいことである。特に分散オブジェクトを利用すると、ネットワーク上のファイルをあたかもローカルにあるかのように、扱うことができる。
 (3) エラーが起こりにくいプログラムを作りやいことである。これはJava言語の使用が厳密に規定されているためである。
 開発言語はJava 1.1.7とし、クライアントとデータベースサーバとの連携には、分散オブジェクトであるHORB(Hirano Object Request Broker)をミドルウエアとして採用し、3層構造とした。ミドルウエアとデータベースとの接続はJDBC-ODBC経由として、JDBCドライバはJDK 1.1.7に含まれるJDBC-ODBCブリッジを利用した。開発にあたっては、コンセント&プラグ、デザインパターンなどの概念を踏襲し、将来、ミドルウエア、JDBCドライバ、データベースなどをコンポーネントの組み換えで簡単に変更できるように設計した。 HORBアダプタ、DBアダプタを差し替えることでミドルウエアの変更、データベースの変更が容易に行える。
 完成したプログラムは、CD-ROMで希望医療機関に配布し、各自でインストールしてもらった。インストールは、簡単な操作で行えるようにし、インストール後はWindowsのデスクトップ上に、起動のためのアイコンをクリックすることでシステムが起動する。
 アプレットかアプリケーションか、Java開発における問題点を述べる。
 Javaプログラムを実行させるには、2つの方法がある。
 (1) ブラウザーで動かす方法、これをアプレットという。
 (2) Java実行環境(以後はJVM(Java Virtual Machine、Javaの実行環境)と略す。)から直接動かす方法、これをアプリケーションという。
 開発に際し、難しい選択を強いられたのは、システムをブラウザ上で動かすことを前提とした"アップレット"とするか、あるいはブラウザを捨ててJVM上で稼働する"アプリケーション"にするかであった。それらの長、短所は、それぞれあるが、現時点では、Javaを"アプレット"として実行するにはローカルのデバイスにアクセスできないなど制限が多く、また起動時のダウンロードに時間がかかりすぎるのは、致命的な欠点であった。
 そこで、われわれは、最終的には"アプリケーション"を選択したわけだが、"アプリケーション"での欠点はJVMを含めたシステムを各クライアントにインストールする必要があること、さらにはプラグラムの更新などメインテナンスの困難さが挙げられた。これらは、インストール操作を簡略にし、CD-ROMとして配布すること、簡単な操作でサーバから最新ファイルをダウンロードできるアップデート機能を追加することで対応した。とくに、ネットワーク上でJavaをアプリケーションとして機能させるためには、アップデート機能は必須と考えられた。
 今回の開発を振り返ってみると、Javaには、まだ幾つかの欠点が見られるものの、分散オブジェクトによるネットワークプログラミングの容易さ、オブジェクト指向に基づく、高拡張性、高再利用性など、Javaで開発することの優位性を十分に享受することができたと考えている。また、当初心配したパフォーマンスについても、十分なレスポンスが得られており満足している。
 システム導入により得られる利便性について述べる。 まだ稼働してからの期間が短いこと、データの蓄積が少ないことにより、本システムの真価を発揮するまでには至っていないが、このシステムの導入でどのようなことが実現できるかを列記してみる。
 1. 翌日回しになっていた結果をその日のうちに閲覧できるようになり、より迅速にデータが入手可能となる。
 2. 今まで、「点」として入手していた検査結果が、過去の結果を含めた「線」として参照できるようになり、経過を把握しやすくなる。
 3. さらに、データをグラフ化することで、経過をビジュアルに表現できるようになる。
 4. 患者に検査結果を時系列で、あるいはグラフ化してみせたり、それらの印刷物を配布することで説得力のある説明が可能となり、医療サービスの向上に役立つと共に、情報開示の推進にも繋がる。
 5. 紹介状に検査結果をデータファイルとして添付し、メールで依頼先へ送ることができる。

 将来の展望を述べる。
 現在は検査を依頼した医療機関に限って結果を参照できるという制限を設けてあるが、将来的には、患者の了解を得た上で、地域の全ての医療機関が検査結果を共有できるようにシステムを発展させていきたいと考えている。そうすることで、無駄な検査を省くことができるばかりでなく、医療機関間で迅速に検査情報をやりとりすることが可能となるなど、患者サイドにとって有益なばかりでなく、地域医療における診診、病診連携を促進する有力なツールになるのではと期待している。

 最後に、このような実用になるシステムが、素人でもなんとか開発することができた、ということを強調しておきたい。システム開発は演者(開業医)と医師会事務員の2人で分担して行ったのだが、演者はJavaを始めて1年少し、未だにサンデープログラマーの域をでない実力であり、事務員に至っては入社3年目で入社以前パソコンの実績は皆無である。

質疑応答

東京都医師会 秋山 第4席山形県、鶴岡地区医師会の三原先生にお尋ねする。私のところでも、2年前からJavaを使ったプログラムを開発しており、選択肢として、三原先生のところと同じようにJVMでやっていたのだが、結果的に、いろいろな先生に普及させる段階で、やはりアプレットを使ったブラウザーベースのものの方が使い勝手がいいという結論になり、そのためJVMで作ったものをアプレットに変えている最中である。山形県鶴岡地区で使ったとき、そういったご意見はなかったのかお聞かせ願いたい。

山形 三原 両方使わせてはいないので、その比較でユーザーからいわれたことはないが、開発する段階で、最後の最後まで実際にはアプレットでやっていた。つまりアプレットにファイルを一つくっつけるだけでアプリケーションできるように最初は設計していたので移行は簡単であった。一番ネックになったのは起動時間の遅さで、それがなければ多分アプレットでいけたであろうと思う。

秋山 起動時間のことに関しては、ネットワークでなくて、CPUに可成り依存するということが分かった。私のところで最終的にブラウザーになった最大のポイントは、新しいPentiumII 450MHzのマシーンで試したら、こちらの方がいいといわれた。因みに鶴岡地区医師会では、どういった端末のCPUを使っているのか。

三原 殆どのユーザーは、3年前ぐらいに医師会から配布したので、あの当時だと150MHzのPentiumである。メモリも16Mという可成り貧弱なマシーンを使っているので、アプレットではうまく動かない。