臨床検査オンライン参照システム:

Javaによる開発事例

鶴岡地区医師会 三原一郎


はじめに

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

システムの概要

当地区医師会では、本年4月1日より検診、検査のコンピュータシステムをすべてパソコンLANによるクライアント-サーバ型へ一新した。これに伴い既存のイントラネットと検診、検査用パソコンが全てネットワークとして結ばれることとなり、会員が医師会の臨床検査データベースにアクセスする環境が整った。 これを受けて1年程前より各医療機関が既存のイントラネットを介して検査データを参照できるシステムの開発に着手した。システム開発は医師会で独自に行った。 開発言語はJava 1.1.7とし、クライアントとデータベースサーバとの連携には、分散オブジェクトであるHORB(Hirano Object Request Broker)をミドルウエアとして採用し、3層構造とした。ミドルウエアとデータベースとの接続はJDBC-ODBC経由として、JDBCドライバはJDK1.1.7に含まれるJDBC-ODBCブリッジを利用した(図)。開発にあたっては、文献1)を参考にコンセント&プラグ、デザインパターンなどの概念を踏襲し、将来、ミドルウエア、JDBCドライバ、データベースなどをコンポーネントの組み換えで簡単に変更できるように設計した。 完成したプログラムは、CD ROMで希望医療機関に配布し、各自でインストールしてもらった。インストールは、簡単な操作で行えるようにし、インストール後はWindowsのデスクトップ上に、起動のためのアイコンが表示されるようにした。このアイコンをクリックすることでシステムが起動する。 システムの操作手順を説明する。

1.ログオン
システムを起動すると、まずログオン画面(図1)が表示される。会員に医院コードとパスワードの入力を求め、正しいユーザであるかを認証する。ここで入力した医院コードに合致するデータのみが検索対象となる。
2.検索
ログオンに成功すると、検索画面(図2)が表示される。検索条件はログオン時に入力した医院コードに加えて、患者名、患者生年月日、依頼日を設定可能である。複数のデータが特定された場合には、患者名がリスト表示(図3)され、その中から希望の患者を選択することができる。条件入力の補助手段として、キーボードに触れなくとも操作できるようにソフトキーボード機能を、また日付入力の簡略化のためにカレンダー入力機能を装備し、キーボード操作に慣れない会員へ配慮した。
3.結果表示
結果は図のごとく各分野毎の検査結果表示テーブルが重なったかたちで表示される(図4)。各テーブルはタグをクリックすることで切りかえことができる。各テーブルには検査項目、基準値、検査結果などが時系列で表示され、異常値にはマークが付く。また、画面内に収まりきれないデータはスクロール表示できる。
4.グラフ表示
グラフ化したい検査項目を選択してダブルクリックすると、画面下に用意されたグラフ用テーブルにデータがコピーされる。必要なだけデータを移動後、メニューのグラフを選択するとグラフが表示される。グラフは、棒グラフと、折線グラフの2種を用意した(図5)。基準値の上、下限値も表示され、異常値が一目で分かるようにした。
5.印刷
テーブルおよびグラフは、画面のイメージで印刷することが可能である。
6.保存
検索した検査結果は、ローカルのデバイスにファイルとして保存することできる。この機能を利用することで、一度表示した検査結果は医師会に再度接続しなくとも参照することが可能となる。また、データファイルをメールに添付して、他の医療機関に転送することも可能である。
7.アップデート
プログラムの不具合の訂正や新しい機能が追加された場合、医師会のサーバから新しいファイルをダウンロードし、各医療機機関のプログラムを最新のバージョンに維持することができる。

アプレットかアプリケーションか(Java開発における問題点)

開発に際し、難しい選択を強いられたのは、システムをブラウザ上で動かすことを前提とした"アプレット"とするか、あるいはブラウザを捨ててJVM(Java Virtual Machine、Javaの実行環境)上で稼動する"アプリケーション"にするかであった。それらの長、短所は表にして示したが、現時点では、Javaを"アプレット"として実行するにはローカルのデバイスにアクセスできないなど制限が多く*1)、また起動時のダウンロードに時間がかかり過ぎるのは*2)、致命的な欠点であった。 そこで、われわれは、最終的には"アプリケーション"を選択したわけだが、"アプリケーション"での欠点はJVMを含めたシステムを各クライアントにインストールする必要があること、さらにはプログラムの更新などメインテナンスの困難さが挙げられた。これらは、インストール操作を簡略しCD ROMとして配布すること、簡単な操作でサーバから最新ファイルをダウンロードできるアップデート機能を追加することで対応した。とくに、ネットワーク上でJavaをアプリケーションとして機能させるためには、アップデート機能は必須と考えられた。


アプレット アプリケーション
長所 クライアントはブラウザがあればよい。
更新ファイルは、webサーバに置いておけばよいので、メインテナンスが楽である。
ユーザはブラウザの操作に慣れていることが多く、また印刷などブラウザの機能を享受できる。
従来のホームページからシームレスに利用できる。
アプレットに比べ起動が速い。
表示を一定にできる。
ローカルディスクやプリンターにアクセスできるので、データの保存、印刷が可能である。
短所 起動(ダウンロード)に時間がかかる。
表示がブラウザの種類やバージョンに依存する。
基本的にローカルのハードディスクやプリンターにアクセスできない。
各クライアントに、Java実行環境(VM)とシステムをインストールする必要がある。
ファイルの更新はクライアントすべてに行う必要があり、メンテナンスに手間がかかる。

 今回の開発をふりかってみると、Javaにはまだいくつかの欠点がみられるものの、分散オブジェクトよるネットワークプログラミングの容易さ、オブジェクト指向に基づく高拡張性、高再利用性など、Javaで開発することの優位性を十分に享受することができたと考えている。また、当初心配したパーフォマンスについても、十分なレスポンスが得られており満足している。

システム導入により得られる利便性

まだ稼動してからの期間が短いこと、データの蓄積が少ないことより、本システムの真価を発揮するまでには至っていないが、このシステムの導入でどのようなことが実現できるかを列記してみる。

  • 翌日回しになっていた結果をその日のうちに閲覧できるようになり、より迅速にデータが入手可能となる。
  • 今まで,「点」として入手していた検査結果が、過去の結果を含めた「線」として参照できるようになり、経過を把握しやすくなる。
  • さらに、データをグラフ化することで,経過をビジュアルに表現できるようになる。
  • 患者に検査結果を時系列であるいはグラフ化してみせたり、それらの印刷物を配布することで説得力のある説明が可能となり,医療サービスの向上に役立つとともに、情報開示の推進にもつながる。
  • 紹介状に検査結果をデータファイルとして添付し、メールで依頼先へ送ることができる。

将来の展望

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

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

  • IE(インタネットエクスプロラー)では、Javaのセキュリティー機能を解除することで、印刷やローカルディスクへのアクセスは可能。
  • この問題はクライアントにクラスファイルをインストールしておけば改善されるが、それではアプレットとしての魅力が半減する。

文献

1.最新オブジェクト指向技術応用実践:荻本順三ほか、エーアイ出版
[全国医療情報システム連絡協議会第16回定例会議(岡山)1999/7/24-25 抄録]