ひさびさにエンジニアっぽい話題を.... (ほとんど自分のための備忘録ですが)
某病院のシステム構築に携わっておりまして、その病院のシステムは医療情報業界では
珍しく、かなり成功している(←とくに性能面)例の1つだったりします。
そのシステムの老朽化がはじまっているので、なるべく危険のない形で
アップグレートしましょーというプロジェクトなのです。
まーあまり不満のないシステムであるからして、サーバーもクライアントも仮想化技術を使
ってかなりの程度塩漬けシステムにしてしまえるのですが、やはり改良すべきところは
改良しましょうねー、という方針でやってます。
さて改良したい点の1つに、オーダーや診療録に対するアクセス制御があります。
現システムでは医師、看護師、薬剤師といった大まかな職種によって何にアクセスできるかを
コントロールするようになっていますが、この仕組みにプラスして
「内科のAドクターグループ」
みたいなグループを定義して、そのグループに属する医師は同じグループに属する研修医
の診療録やオーダーを適宜更新する、その逆の操作はさせない。。
といった類の機能が欲しい、ということなんです。
複数のベンダーが開発したアプリケーションが現在病院システムのPC上で稼働しておりますが、
ほぼすべてのシステムがクライアントサーバーモデルで開発されたものです。
現行のクライアントサーバーモデルにうまくアクセス制御の仕組みを搭載しようとすると
やはり各アプリケーションにその制御ロジックを組み込まざるを得ないので、アクセス制御
に必要な情報を適宜提供するサービスプログラムを各PC上に常駐実行させる方向で検討して
います。
現状ではクライアント側のプログラムは
・VB6で開発したもの
・Native C++で開発したもの
・.NETで開発したもの
・Adobe AIRで開発したもの
が混在しています。
権限情報を提供するサービスプログラムはこれらすべてからアクセス可能にしたいので、
何らかのリモーティングによって実現しようと考えています。
現在AMF( Action Message Format)に.NETのオブジェクトをシリアライズ・逆シリアライズする
ライブラリーが存在するので、メッセージペイロードをAMFにしたリモーティングフレームワーク
を構築中です(ほぼ完成している)。
VB6やNative C++をサポートするために上記フレームワーク(CLR上で稼働します)をCOM経由で
アクセスできる仕組みをアドオンすれば、完成します。
同一マシン上で稼働する、さまざまなアプリケーションが比較的自由に連携できる
基盤ができあがります。
今日の午後はCOM IFの追加作業を行なっています。
あと、もう少しです。
明後日、このシステムの構想を病院に説明しにいきます。
某病院のシステム構築に携わっておりまして、その病院のシステムは医療情報業界では
珍しく、かなり成功している(←とくに性能面)例の1つだったりします。
そのシステムの老朽化がはじまっているので、なるべく危険のない形で
アップグレートしましょーというプロジェクトなのです。
まーあまり不満のないシステムであるからして、サーバーもクライアントも仮想化技術を使
ってかなりの程度塩漬けシステムにしてしまえるのですが、やはり改良すべきところは
改良しましょうねー、という方針でやってます。
さて改良したい点の1つに、オーダーや診療録に対するアクセス制御があります。
現システムでは医師、看護師、薬剤師といった大まかな職種によって何にアクセスできるかを
コントロールするようになっていますが、この仕組みにプラスして
「内科のAドクターグループ」
みたいなグループを定義して、そのグループに属する医師は同じグループに属する研修医
の診療録やオーダーを適宜更新する、その逆の操作はさせない。。
といった類の機能が欲しい、ということなんです。
複数のベンダーが開発したアプリケーションが現在病院システムのPC上で稼働しておりますが、
ほぼすべてのシステムがクライアントサーバーモデルで開発されたものです。
現行のクライアントサーバーモデルにうまくアクセス制御の仕組みを搭載しようとすると
やはり各アプリケーションにその制御ロジックを組み込まざるを得ないので、アクセス制御
に必要な情報を適宜提供するサービスプログラムを各PC上に常駐実行させる方向で検討して
います。
現状ではクライアント側のプログラムは
・VB6で開発したもの
・Native C++で開発したもの
・.NETで開発したもの
・Adobe AIRで開発したもの
が混在しています。
権限情報を提供するサービスプログラムはこれらすべてからアクセス可能にしたいので、
何らかのリモーティングによって実現しようと考えています。
現在AMF( Action Message Format)に.NETのオブジェクトをシリアライズ・逆シリアライズする
ライブラリーが存在するので、メッセージペイロードをAMFにしたリモーティングフレームワーク
を構築中です(ほぼ完成している)。
VB6やNative C++をサポートするために上記フレームワーク(CLR上で稼働します)をCOM経由で
アクセスできる仕組みをアドオンすれば、完成します。
同一マシン上で稼働する、さまざまなアプリケーションが比較的自由に連携できる
基盤ができあがります。
今日の午後はCOM IFの追加作業を行なっています。
あと、もう少しです。
明後日、このシステムの構想を病院に説明しにいきます。