1.概要
今日の医療現場におけるコンピュータシステムでは、利用者の機能要求に対してシステム開発コスト並びに開発期間が不十分な状態が生じてきており、多様なデータや複雑な医療プロジェクトを低コストで管理できる新たなソフトウェアのパラダイムが要請されている[1]。
オブジェクト指向プログラミングのカプセル化や継承性は、医療情報システムの開発性、保守性の著しい向上を約束しており、またEOF[2]技術は将来の増大する情報量に対して既存のデータベースをそのまま利用できる可能性を示している。しかしながら、オブジェクト指向を含むこれまでのソフトウェア技術では、コーディングレベルの専門的な言語知識やデータアクセスのための特殊な言語を駆使しなければ、新しいパラダイムに浴することはできない[3]。最近話題のJAVAといえどもその領域からは出ていない。
本研究では、オブジェクト指向技術をさらに発展させた新たな医療情報フレームワーク技術によって、医療情報システム開発そのものを利用者に開放することが可能になることを示すと共に、医療現場に側したシステムの実現とシステムコスト、開発期間双方の劇的な低減が実現できることを示す。
2.フレームワークの定義
フレームワークとは、オブジェクト間の結合方式およびデータの受け渡し方法、オブジェクトの状態遷移の通知・管理方法等をライブラリの共通規約として埋め込むことによって、自立的な機能をオブジェクト群に与える仕組みを示す。すなわち個々のオブジェクトにエージェント的な振る舞いを期待するものであり、基本的にはフレームワークのスーパークラスにこれらの規約を記述する。従って、単に機能別ライブラリやシステムの階層構造の呼び名を変えたものではない。
3.医療情報フレームワーク・コンセプト
(1)ユーザ開放型電子カルテ
電子カルテを利用するユーザがソフトウェア部品を積み木細工のように自在に組み合わせて好みの電子カルテを作成できるユーザ開放型電子カルテの開発環境と、それを実現するソフトウェア部品フレームワーク。
(2)時間軸での柔軟なリソース管理機構
手術室の予約、医師の予約、治療計画、治癒状況の把握、スタッフの稼動状況管理など、医療機関における全てのリソース、及びプロジェクトを管理できるデータ構造、およびデータ構造とユーザインターフェイスを繋ぐアソシエーションフレームワーク。
(3)医療の質の向上を支える分析システム
膨大な医療情報データベースを、縦横無尽に分析できる強力な医学情報分析フレームワークと他ソフトウェアベンダーが提供するソフトウェアとの強調動作を実現するワークフロー・フレームワーク。
4.基本フレームワーク
(1)フレームワークの概要
全体のフレームワーク構成をFig.1に示す。基本フレームワークは、EOF[2]をもとに開発しており、これに医療情報フレームワークとしてソフトウェア部品レベルでのフレームワーク(Cyber Agent)とワークフロー・フレームワーク(Workflow Builder)を拡張している。
(2)データアクセス層の設計
データアクセス層はデータベースの独立性を確保するものであり、安価に流通するリレーショナルデータベースを自在にアクセスするためのものである。データベースエンジンの差異は、主にクライアントとのコネクションコントロール部分に集中するため、この部分をダイナミックロード可能なデータベースアダプタモジュールとして実現している。また共通するトランザクションの管理およびデータの参照、変更などは、それぞれデータベースコンテキストモジュール、データベースチャネルモジュールが担当する形で構築する。その結果、アプリケーションの動作中でもデータベースの切り替えがリアルタイムで可能になり、アプリケーションとデータベースの独立性を確保することが可能になっている。
(3) データソース層の設計
データベースの中にどのような形式のデータが格納されていてもデータオブジクトとして統一的に扱えるような仕組みをここでは提供する。まずデータベーステーブルのカラム名をKeyとし、KeyとValueからなるレコードを最小単位とするディクショナリオブジェクトをつくり、データベーステーブルの参照レコード数に相当するディクショナリオブジェクトの集合体をデータソースオブジェクトとして記述する。またネットワークワイドにデータソースオブジェクトを扱えるように、オブジェクト自身にエンコーディング機能を付加し可搬性のあるデータソースを実現している。現段階では、医療分野特有の意味やロジックを表現するメソッドの記述は行っていない。必要となれば、静的、動的を問わずこれらのメソッドの追加が可能となるような設計としている。
(4)フレームワークコントロール層の設計
フレームワークコントロール層はデータオブジェクトの更新等を監視し高い次元での一貫性制御を実現するデータオブジェクトのコントロールセンタであり、フレームワーク内で起こる全てのイベントの記録とデバックが可能となるように設計を試みている。リレーショナルデータベースの構造に関しては、画像データの更新を想定した強力な一貫性制御クラスを標準装備している。将来的には、用途に応じて様々なコントロールクラスをライブラリとして有し、データオブジェクト自身が最適なクラスをダイナミックに選択して動作する形態が理想と思われる。
(5)データアソシエーション層の設計
アプリケーションとデータベースの独立性の確保と同様に、アプリケーションの使い易さや柔軟性はアプリケーション中のオブジェクト間の独立性の確保によって実現される。一方オブジェクト間の疎な結合は、ロジック記述性の障害となるため、相反する問題を解決しなければならない。そのためにオブジェクト間の連結と連結の意味を保ちつつ疎な結合を実現するデータアソシエーション・オブジェクトを新たに導入し、これをディクショナリオブジェクトとして記述する。
データアソシエーション層はデータオブジェクトがアプリケーションの中でどのように使われるかを記述するものでイベントの流れや関係するユーザインターフェイス・オブジェクトとの接続状況等を管理する。また医療分野ならびにユーザが必要とする全てのロジック、表現方法の記述をこのデータアソシエーション・オブジェクト群として記述する。データアソシエーション層の実現によって、アプリケーションの使い易さおよび柔軟性が飛躍的に向上することが本研究によって明らかになっている。
5.拡張フレームワーク
(1)ソフトウェア部品コントロールフレームワーク
基本フレームワークを視覚的に構築するための環境をここでは提供する。それぞれデータアクセス層側からDBAccess BuilderおよびEOModel Builderによって構成される。DBAccess Builderは、アソシエーション・オブジェクトが作られる時にEODataSource以下を自動生成するものであり、バックグラウンドで動作するためにユーザによって意識されることは無い。EOModel Builderはデータベースディクショナリを生成すると共に後述のカクタムクラスを新たなデータベーステーブルやデータベース項目として視覚化する。
(2)カクタムクラス・フレームワーク
医療分野特有の意味やロジックを表現したり、高機能なソフトウェア部品を組み込むための機構であり、CustomEO Builderが担当する。クラスの記述およびダイナミックなローディングとインクリメンタルな編集機能を実現する。
(3)拡張アソシエーション・フレームワーク
アプリケーションの使い易さおよび柔軟性を視覚的に捕らえることのできる部分であり、アプリケーション開発において最も変更の激しい部分の一つである。ここでは、Association BuilderとAssociation Editing Contextによって視覚的にこれらの機能をサポートしている。
(4)ワークフロー・フレームワーク
アプリケーションの巨視的なカプセル化とデータフロー制御、他アプリケーションとの強調動作を実現するもので、Workflow Connection ContextとWorkflow Interfaceによって構成される。
6.データ構造
医療情報フレームワークでは、全ての内部データはディクショナリとして記述する。すなわち、ファイルシステムとの入出力やアプリケーション間、オブジェクト間、分散オブジェクト間、データベースとの入出力等である。その他、SGML,HTML, MML等も内部ではディクショナリとして統一的に扱う。
7.インプリメンテーション
(1)データベース・スキーマに依存しないユーザインターフェイス構造
Fig.2は、データベース・スキーマに依存しないユーザインターフェイス構造を示した例である。図中のDatabase Model Browserには、リレーショナルデータベースのスキーマが示されており、目的のデータが格納されているデータベース・テーブル(図ではAuPix)を示すアイコンをUNTITLEDと表示されたウィンドウのテーブルビューに投げ込むだけで、データベースを参照することが可能である。またテーブルビューのデータを書き換えれば、データを更新することができる。データベースに定義されている全てのデータ構造に対して、テーブルビューのカラムが自動的に追従するかのように見えるが、実際にはテーブルビューは、単なるスクロール機能を持つ汎用的なビューであり、データベースの型に応じて必要なセルを生成しているのは、両者を結ぶデータアソシエーション・オブジェクトである。このようにアソシエーション・オブジェクトによって極めて柔軟な構造を作り上げることが可能である。
(2)時間軸での柔軟なリソース管理機構の例
Fig.3は、ある患者の治療計画を示した例である。図中下段のテーブルビューには、前述の方法で患者マスタテーブルが示されており、患者マスタの特定の患者がテーブル上で選択されると、選択された患者の治療計画が遅延ジョインで上段のビューに表示されるというものである。上段のビューは、汎用的なリソース管理ビューとして作られたものであり、開始時期、終了時期の2つの時間データがデータベーステーブル上にあれば、自動的にグラフ化する機能を持つ。このビューへのアソシエーションの指定も図に示すように、データベース・テーブル(図ではクリティカルパス)を示すアイコンを投げ込むだけである。リソース管理ビューでは、2段階のアソシエーション生成が行われる。第1段では、ターゲットテーブルのスキーマに対するデフォルトのマッピングが行われ、第2段では、個々のデータベースによって付加されたアトリビュートへの個別のマッピングが行われる。個別のマッピングが必要なときは、マッピング・インスペクタでDrag&Dropによって行う。
(3)電子カルテの構築例
Fig.4に電子カルテの構築例を示す。2号カルテや病歴、治療計画、検査データ等がホルダービューとして表示され、全てのデータが患者マスタテーブルをルートテーブルとしたリレーショナル・データベースに直結されている。このカルテでの変更は、瞬時にデータベースに反映される仕組みである。このアプリケーションの第1の特徴は、1行のコーディングも無く、汎用的なソフトウェア部品とマウス操作によるDrag&Dropだけで作られていることである。第2の特徴は、このアプリケーション構築に要する時間が40分弱ということである。この2つの特徴は、システムの構築コスト、柔軟性、時間的制約などからユーザを劇的に解放できるものと思われる。
8.まとめ
医療情報フレームワークによって、データベースエンジンに依存しないアプリケーション構造、データベース・スキーマに依存しないユーザインターフェイス構造、ユーザが必要とするロジックの独立性と可搬性、高度な一貫性制御等どれを取っても従来ソフトウェアには無い機能を実現することが可能であることを示した。今回の評価では、汎用のリレーショナル・データベースのデータ、すなわちスカラー情報を対象としたものであり、今後3次元情報等ベクトルデータについて、同様のフレームワークの応用が可能かどうか本格的なユーザインターフェイス層の設計・構築を通じて、引き続き行う予定である。
9.参考文献
[1]. 高橋、大橋、「WINE project(OPENSTEP baseの電子カルテ)」、SG'98、[2]. Enterprise Objects Framework Release 2.1. Apple Computer, Inc.
[3]. Y.Kato, Y.Kataoka, Y.Nakamura, Y.Mitsunaga, "Data object creation and display techniques for the huge database of subscriber cable networks", ACM COOCS'93, pp184-189, 1993.