ひさびさにエンジニアっぽい話題を.... (ほとんど自分のための備忘録ですが)

某病院のシステム構築に携わっておりまして、その病院のシステムは医療情報業界では

珍しく、かなり成功している(←とくに性能面)例の1つだったりします。

そのシステムの老朽化がはじまっているので、なるべく危険のない形で

アップグレートしましょーというプロジェクトなのです。

まーあまり不満のないシステムであるからして、サーバーもクライアントも仮想化技術を使

ってかなりの程度塩漬けシステムにしてしまえるのですが、やはり改良すべきところは

改良しましょうねー、という方針でやってます。

さて改良したい点の1つに、オーダーや診療録に対するアクセス制御があります。

現システムでは医師、看護師、薬剤師といった大まかな職種によって何にアクセスできるかを

コントロールするようになっていますが、この仕組みにプラスして


「内科のAドクターグループ」

みたいなグループを定義して、そのグループに属する医師は同じグループに属する研修医

の診療録やオーダーを適宜更新する、その逆の操作はさせない。。

といった類の機能が欲しい、ということなんです。

複数のベンダーが開発したアプリケーションが現在病院システムのPC上で稼働しておりますが、

ほぼすべてのシステムがクライアントサーバーモデルで開発されたものです。

現行のクライアントサーバーモデルにうまくアクセス制御の仕組みを搭載しようとすると

やはり各アプリケーションにその制御ロジックを組み込まざるを得ないので、アクセス制御

に必要な情報を適宜提供するサービスプログラムを各PC上に常駐実行させる方向で検討して

います。

現状ではクライアント側のプログラムは

・VB6で開発したもの
・Native C++で開発したもの
・.NETで開発したもの
・Adobe AIRで開発したもの

が混在しています。

権限情報を提供するサービスプログラムはこれらすべてからアクセス可能にしたいので、

何らかのリモーティングによって実現しようと考えています。

現在AMF( Action Message Format)に.NETのオブジェクトをシリアライズ・逆シリアライズする

ライブラリーが存在するので、メッセージペイロードをAMFにしたリモーティングフレームワーク

を構築中です(ほぼ完成している)。

VB6やNative C++をサポートするために上記フレームワーク(CLR上で稼働します)をCOM経由で

アクセスできる仕組みをアドオンすれば、完成します。

同一マシン上で稼働する、さまざまなアプリケーションが比較的自由に連携できる

基盤ができあがります。

今日の午後はCOM IFの追加作業を行なっています。

あと、もう少しです。

明後日、このシステムの構想を病院に説明しにいきます。