JP4471250B2 - アプリケーションフレームワーク用アーキテクチャ - Google Patents
アプリケーションフレームワーク用アーキテクチャ Download PDFInfo
- Publication number
- JP4471250B2 JP4471250B2 JP2000523618A JP2000523618A JP4471250B2 JP 4471250 B2 JP4471250 B2 JP 4471250B2 JP 2000523618 A JP2000523618 A JP 2000523618A JP 2000523618 A JP2000523618 A JP 2000523618A JP 4471250 B2 JP4471250 B2 JP 4471250B2
- Authority
- JP
- Japan
- Prior art keywords
- activities
- activity
- tool
- data
- framework
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Description
(技術分野)
本発明は、コンポーネントモデルに基づいて、いろいろなアプリケーションに適合できるアプリケーションフレームワークに関するものである。
【0002】
(発明の背景)
治療におけるような特定のアプリケーション領域において、例えば病院で実行される業務は、部門をまたがっており、各人が異なる役割を持っている数人を必要とする。これらの調整されたアクティビティは、一般的には"ワークフロー"と呼ばれ、例としては、患者が病院"システム"を通じて移動するときに生じる処理である。第1のステップは"入院"であり、その後に検査、それから詳細な検査およびイメージングが後に続くこともある。これには、他の試験、あるいは治療のための勧告を有する情報の精査が続く。この企業規模のワークフローにおいて処理をするいろいろなツールがある。例えば、この処理のイメージング部分において、イメージング(スキャナコンソール)、イメージ精査および治療システムに対して必要とされる特定のソフトウェアツールがある。したがって、この企業規模のワークフローにおいて処理をするソフトウェアツールを、簡単に統合できることが望ましい。
【0003】
したがって、単一アプリケーションフレームワークに対する要求がある。このフレームワークは、異なるソースからのコンポーネントをいろいろなコヒーレント"アプリケーション"を生成するように混合できる方法を規定すべきである。この方式は、フレームワークがこれらのコンポーネントの使用に欠くことができないことを意味していない。すなわち、個別のコンポーネントがフレームワークの範囲外で使用できることが望ましい(例えば、フレームワークのサービスを必要としない簡単なアプリケーションはあるが、このアプリケーションは、このアーキテクチャのために生成されるコンポーネントのいくつかをなお使用できるべきである)。
【0004】
アプリケーションが"複合アプリケーション"および複数のユーザに及ぶアプリケーション(すなわち、企業規模のワークフロー)の両方に関する場合、所与の"アプリケーション"は、このメインアプリケーション内にサブワークフローを有するメインワークフローによって規定されてもよいことに注目してもよい。ここでの目的は単一の"アプリケーション"だけを考察することにある。すなわち、有用な相違は、(フレームワークによってサポートされるべき)アプリケーション内の"ワークフロー"があることと、例えば、病院内に、より高いレベルの"ワークフロー"がさらにあることを考察することにある。
【0005】
特定のワークフローのユーザは、異なるインタフェースあるいはパラダイムを有する異なるベンダーからのコンポーネントを使用しなければならない。したがって、ユーザは、新しい手順を再学習しなけれならず、エラーの発生や非効率につながる。典型的なアプリケーションでは、ユーザには、データ、および同時にこのデータで実行される"プロトコル"あるいはタスクのセットのためのセレクタが提供される。企業規模のワークフローのより強い統合によって、このモデルを、データおよびプロトコルが外部で(例えば、ワークリストにおいて)指定できるように生成すべきである。
【0006】
(発明の概要)
したがって、本発明は、アプリケーションが、ユーザに可視又は不可視の複数のレベルの機能性の周りに形成されるように、アプリケーションのためのフレームワークを提供することを目的とする。機能性の3つのレベルが、下記のように提供される。
【0007】
フレームワークは、選択されたワークフローによってユーザをガイドする機能性も提供する。
【0008】
第1のレベルはプロセスである。これは、データのセットと適用される処理ステップの定義とを要約するので、"プロトコル"と呼ぶこともできる。プロセスインスタンスの例は、2Dプロトコルにおいて観察できる調査である。このレベルはフレームワークによって管理される。すなわち、同時にアクティブである複数の"プロセス"があり得る(例えば、ユーザは1つのプロセスに対して1つの調査を精査し、ある点で異なる患者からの調査の精査に切り換えることができる。すなわち、フレームワークは、アクティブと成り得る異なるプロセスインスタンスを管理する)。簡単なケースにおいて、システムは、このレベルの選択を隠し、単一のプロセスをユーザに提供する。プロセスは、"アクティビティ"のセットからなり、アクティビティのプロパティおよび外部ルールに基づいて1つのアクティビティから次のアクティビティへの自動制御フローの可能性を有する。
【0009】
第2のレベルはサブプロセスである。これは階層において次のレベルとしてリスト化されるが、実際はアクティビティのグルーピングそのものである。このアクティビティの集合体は、再使用に有用であり、ナビゲーションおよび共有ツールを有するアクティビティのグルーピングに対して好都合である。
【0010】
通常、プロセスは、予めプログラム化されたロジックに基づかずに、エンドユーザがアクティビティを見えるように、アクティビティの順序を切り換える柔軟性を有することを必要とする場合もある。したがって、サブプロセスレベルは、アクティビティ間をナビゲートし、プロセスにおける現在の位置を示すユーザインタフェースを提供する。
【0011】
第3のレベルはアクティビティである。これはフレームワークによって明確にサポートされる階層の最低レベルである(必要とされるならば、アクティビティはより深いモデルを内部で提供できる)。アクティビティは、任意の処理の結果として変更され、従ってプロセス内のアクティビティの順序付けを実行するために使用できる外部プロパティを有する。アクティビティをプロセスに(実行時間に)ダイナミックに加えるかあるいは取り除くことができるので、例えば、プロセスは、初期のアクティビティの結果に基づいて、異なる機能性を提供できる。各アクティビティは、別個のコンポーネントとして実行される。
【0012】
さらに、"プロセス定義"は、"プログラム"、すなわちプロセスを含む処理ステップである。これは、アクティビティ、ツールおよび制御ロジックを要求プロセスに対して具体化できるように、プロセスが開始される前に、固定記憶装置から引き出されねばならない。"プロセスインスタンス"は、プロセスの実行バージョン、すなわち、プロセス定義と実行中に使用されるデータおよび状態情報を示している。フレームワークは、複数のプロセスインスタンスをサポートでき、ユーザにとって、これは単に、異なるデータおよび処理を使用でき、フォーグラウンドタスクに切り換えることができる異なるコンテキストのように見える。
【0013】
フレームワークが異なるソースからのアクティビティの再使用をサポートするために、ユーザインタフェースモデルを規定することが望ましい。ここで、行われた方式は、"ツール"に対するサポートの追加によって、上記のレベルの各々のUIの領域への直接マッピングである。UIの最大部は現アクティビティに対して割り当てられる。すなわち、これはここでは"ワークエリア"と呼ばれる。階層における2つのレベル("プロセス選択"および"サブプロセスナビゲーション")およびツールサポートは、UIに割り当てられた3つの別個の制御エリアである。このモデルの詳細は下記の副節にある。
【0014】
このモデルは、アクティビティに関連した"ツール"のモデルを明確にサポートする。ツールに対するサポートは、どんなUI機構がツールに対してサポートされる必要があるかという問題を提起する。最も簡単なモデルとして、UIの単一領域が、任意の方法で自由にこれを使用できるツールとともにあることを仮定する。ビューイングワンド(ViewingWand)のようなアプリケーションは、付加的ツールエリア、(順に特定パラメータ設定に対するポップアップウインドウを有する)アイコンボタンを有する第2のツールエリアに対するサポートも必要とする。したがって、フレームワークは、複数のツールエリアが有り得るより一般的なモデルをサポートすべきである。しかしながら、第1のインプリメンテーションは単一のツールエリアに固守するが、複数のツールエリアに対する後のサポートを妨げないことが示唆される(本願はこれを含むように更新されることが予想される)。
【0015】
(好ましい実施例の詳細な説明)
図1を参照すると、このフレームワークを使用する"アプリケーション"に関連するデフォルトのユーザインタフェースの概略が示されている。このインタフェースは、4つのエリア、すなわちワークエリア、プロセスセレクタ、サブプロセスナビゲータおよびツールエリアを規定する。デフォルトの構成は、右側にワークエリアを有し、左側に他の3つの領域を単一列に積み重ねている。
【0016】
このワークエリアは、一般的には、画像のディスプレイ、あるいはアクティビティが必要とする任意の補助的なユーザインタフェースに使用される。現アクティビティはワークエリアを所有する。フレームワークはワークエリアの所有権を調停する。ワークエリアの内容はアクティビティ間で保持されてもよい。すなわち、エリアの内容の記述は、"共有データコンテキスト"に記憶されたプロパティを使用して共有できる。
【0017】
このエリアの内容は"任意"であるけれども、アクティビティは内容についての情報を共有する必要がある可能性がある。例えば、表示画像のある操作を可能にするアクティビティは、領域におけるウィンドウのレイアウト、このレイアウト内に表示するために使用されるパイプライン、表示されているデータのパラメータ等を決定できる必要がある。この情報は"共有データコンテキスト"の一部となる。
【0018】
共有ツールエリアでは、アクティビティはワークエリアを"所有する"だけであるけれども、アクティビティは、所定のツールの存在に興味があることをフレームワークに通知できる。各アクティビティはいくつかのツールセットを使用でき、これらのセットはオーバーラップしてもよい。ツールエリアはツールマネージャによって所有される。すなわち、これは、個別のツールに対するコンテナの役目を果たすコンポーネントそれ自体である。ツールマネージャは特有のUIを有する。すなわち、例えば、ツールマネージャは、タブカードモデルを使用して個別のツールを表示できる。ツールマネージャはコンポーネントそれ自体であるので、ツールマネージャは異なるマネージャと取り換えることができる。各ツールは、単に、コンテナ(例えばタブカード)によって各ツールに手渡された領域にUIを表示するユーザインタフェースである。ツールは、ユーザ動作に基づいてインタラクティブコンテキストにプロパティを設定することによって、アクティビティと対話する。その結果、現アクティビティはそれ自体のふるまいを更新するためにこれらのプロパティを使用できるようになる。
【0019】
図2は、現アクティビティがボリュームレンダリングタスクである場合、このエリアに提供されうるツールの例である。本例では、ツールマネージャはタブカードコンテナである。
【0020】
本モデルの最小エンティティは、"アクティビティ"である。各アクティビティは、アクティブである場合に、"ワークエリア"の所有権を有する。アクティビティは、共通ツールに興味を示すこともでき、そのとき、フレームワークがそれを"ツール"エリアに入れるように構成する。これらのツールは、フレームワークによって仲介されるユーザ入力を提供する。例えば、ツール出力はインタラクティブコンテキストにおけるプロパティに配置され、アクティビティはこれらのプロパティの変化を通知される。
【0021】
アクティビティの内容は任意であるが、1つの例はボリュームレンダリングコンポーネントであってもよい。このコンポーネントは、"レンダセレクタ"、"ライトコントロール"、および"クリッピングツール"のようなツールに興味を示し、そうすると、フレームワークが(上記に示すように)ツールエリアにインストールするように構成する。共通ツールに加えて、アクティビティは、ワークエリアからユーザ入力を受信できる(例えば、ウィンドウW/Lはマウスの移動を介して変更可能であってもよい)。ワークエリアを所有するアクティビティは、いかなる目的に対してもこのエリアからマウスイベントを使用する自由を有し、もちろんこのエリアの任意の種類のユーザインタフェースを表示できる。
【0022】
アクティビティはいかなる目的に対してもワークエリア内でマウスを自由に使用できるが、マウスイベントが(インタラクティブコンテキストのプロパティとして)レポートされるでことが好ましい。このように、現ツールがマウスイベントを使用することもできる(例えば、W/Lツールはマウスイベントを使用して現W/L値を更新し、現W/L値は、インタラクティブコンテキストのプロパティに折り返しレポートされる)。
【0023】
階層におけるサブプロセスは、実際はプロセスにおけるアクティビティによるナビゲーションを助けるためだけにある。このエリアは、コンポーネントによっても所有されるので、異なるUIモデルは適切なコンポーネントを供給することによって実行できる。このレベルに対するいくつかの可能な代替の表示がある。すなわち、
a)現アクティビティ、およびナビゲーションのための次/前/最終ボタンの名前のディスプレイ(対応する動作が許可されない場合、多分非アクティブである)。
b)アクティビティ名を有し、ネットワークダイアグラムで表されたフロービュー(非常に大きくウィンドウにはめ込むことができない場合、多分スクロールされる)。アクティビティボックスの選択は、現アクティビティをこのアクティビティに切り換える(さらに、いくつかの遷移は不許可にされてもよく、これはグレイ表示によって示すことができる)。図3は第1のUIの例を示す。
【0024】
図1に戻って参照すると、プロセスエリアはコンポーネントでもある。このエリアは適切なプロセスセレクタコンポーネントを供給することによってカスタマイズ可能である。このエリアは下記、すなわち、データセレクタを呼び出すボタン(マッチングプロセス定義の選択を含む);プロセスインスタンスを切り換える機構(1つ以上がアクティブである場合);および現データセットについての情報(例えば、患者名)を表示する。
【0025】
データセレクタは、データソースのブラウジング(例えば、1つ以上ある場合、ソースの中から選択)、次に患者/調査/シリーズ等の選択を可能にする。この時点で、ユーザには、このデータで呼び出すことができるプロセス定義(基本的にはプロトコル)の選択が示される。
【0026】
この例のセレクタが唯一取り得るわけではない。他のモデルは、"データセレクタ"が単にワークリスト(外部ワークフローエンジンから得られる)を表示し、それから、ユーザが処理する次の項目を選択できる。これは、使用するデータセットおよび使用するプロセス定義を含む。
【0027】
セレクタの他の例は反対のモデルを使用する例である。すなわち、ユーザは、プロセス定義(プロトコル)を選択し、それから、候補データセットが選択のために表示される。これの例は、ユーザが"心臓"プロトコルを選択し、それからこのプロトコルに適しているデータセットが示される場合である。
【0028】
所与のプロセスセレクタは、このエリアで表示される情報のレベルの制御も可能にしてもよい。例えば、
状態情報だけ‐ディスプレイは、現プロセス(例えば、その型式)および現データセット(例えば、患者名)についての情報を示すだけである。
データセットを(データベースから)選択するユーザインタフェース、及びそのデータを見るために使用できるプロセス定義のリスト。
編集可能プロセスリスト。これは、ユーザ(多分、上級エンドユーザあるいはアドミニストレータ)が、新しいあるいはカスタマイズされたプロセス定義を組み立てる必要がある場合である。この場合のUIは、予め規定されたプロセス定義のリスト;および各規定されたプロセスに対して、プロセスを構成するサブプロセス;および各サブプロセスに対して、プロセスが含むアクティビティを示してもよい。UIは、新しいプロセス定義のコピー、編集および形成を可能にする。プロセス(例えば、現在のサブセット)をフィルタリングする機構も必要である。アクティビティの順序付けに対するロジックをプログラム化できる、他のUIも必要である。
【0029】
インタフェースをカスタマイズできるようにしてもよい。前述されるように、特定のアプリケーションは、デフォルトのユーザインタフェースのある部分が表示されないよう要求するかもしれない可能性がある。したがって、フレームワークは、プロセスおよびサブプロセスビューア(ナビゲータ)に対して隠し、およびプログラム可能レベルの選択をサポートすべきある。デフォルトは、プロセス、サブプロセスおよび共通ツールエリアをスクリーンの左側で表示することである。これらのエリアの相対サイズは、構造化可能であるべきである。フレームワークによっても、これらのエリアはエッジ(最上部、最下部、左および右)のいずれかに配置できるべきである。これらのエリアを浮動させるよう考慮すべきである(マイクロソフトビジュアルスタジオのツールエリアのように"ドック可能"であるように)。
【0030】
前述のように、3つのエリア(プロセス、サブプロセスおよびツール)の内容はそれ自体のコンポーネントであるので、これらのエリアのルックおよび機能性はこれらの制御の代替のバージョンを提供することによっても詳細にカスタマイズできる。
【0031】
完全に柔軟であるために、プロセス、サブプロセスおよび共通ツールエリアは非表示にできるべきである。このモードで実行される場合、ユーザインタフェースは外部に提供されねばならない。すなわち等価入力は、フレームワークによって提供されるAPIと結合している実行時を通して提供されねばならない。このモードはフレームワークをなお使用する。フレームワークなしでアクティビティ(すなわち、これらのコンポーネント)を使用することもでき、その場合、プロセスインスタンスが全くなく(したがって、共有データが全然ない)、コンテナは適切な入力(ユーザからのデータセットおよび入力)を直接提供しなければならない。
【0032】
上記の検討は、ユーザインタフェースがデスクトップ環境にフィットする方法についての説明を全然行っていない。これを実行する2つ以上の可能な方法がある。すなわち、UIを、インターネットエクスプローラのようなウェブブラウザに埋め込むか、あるいはアクティブエックス(ActiveX)制御を処理するある他のコンテナによってホストすることができる。IE4.0および次のウィンドウズおよびNTのリリースの場合、この機能は、システムのデスクトップおよび他のツールの多くに拡張されるので、システム設計者にとって多数の選択がある。
【0033】
アーキテクチャはアクティブエックスモデルに基づいている。これは、アクティブエックスモデルがマイクロソフトオペレーティングシステムを実行するシステムに限定されることを意味していない。アクティブエックスはNTおよびウィンドウズ95でサポートされるが、マッキントッシュおよびいろいろのUNIXバージョンでも早めにサポートされる。もちろん、これらのアーキテクチャのいずれかのフレームワークの使用は、そこで必要とされる個別のコンポーネントがこのアーキテクチャに対しても形成される必要があることを意味する。
【0034】
アクティブエックスモデルの使用は、コンポーネントの実行のための言語も示していない。すなわち、アクティブエックス制御を生成できる任意の言語を使用できる(これは現在はVC++、VB5.0およびJAVAを含む)。
【0035】
前の節ではユーザインタフェースを論議したが、その内訳説明は、どのように基本的なコンポーネントが構造化されるべきであるかも示している。
【0036】
図4を参照すると、アーキテクチャの概略が示され、下記の論議はコンポーネントの各々をより詳細に説明している。
【0037】
フレームワークコンポーネントは、アーキテクチャの中心となる。フレームワークコンポーネントはアクティブエックスコンポーネントそのものであるが(そのため、他のコンテナにおいてホストにされる)、フレームワークコンポーネントは他のコンポーネントのためのコンテナとして機能する。このコンポーネントは、全UI、すなわちワークエリア及びプロセス/サブプロセス/共通ツールのエリアを包含する。このコンポーネントは、(上記UI節に関して説明したように)エリアのカスタム化を可能にする特性を有する。このコンポーネントは、プロセス定義、サブプロセス記述およびアクティビティについての情報のデータベース(ライブラリ)にインタフェースするモジュールを含んでいる。このモジュールは、プロセスセレクタ/エディタ(別個のコンポーネント)およびプロセス定義(アクティビティおよびアクティビティ間の順序付けのためのロジックのシーケンス)の記憶および検索をサポートしている。
【0038】
このモジュールは、アクティビティの順序付けを管理するモジュールを含んでいる。このモジュールはプロパティのセットを調べる。これらのプロパティの変化は、若干のロジックの評価を生じ、次に次の動作を決定する。例えば次のアクティビティに移るかあるいはプログラムされたアクティビティの変更さえも引き起こす。このアクティビティは、順序付けのためのモジュールとだけ相互作用するが、内部的には、例えば、外部ワークフローエンジンの使用など、外部インプリメンテーションに依存し得る。サブプロセスナビゲータは、この機能性を利用する。
【0039】
このサブプロセスナビゲータは、共通データコンテキストを管理するモジュールを含んでいる。これは、順序付けのために必要とされる情報から論理的に分離される(情報は異なって実行されてもよい)。現コンテキストの情報は、現データセットのようなものおよび一時的情報も含んでいる。一時的情報は、スクリーンレイアウト、使用中のPrSパイプライン等のようなものを含んでいる。フレームワークは、特定の情報を必要とするべきでないし、また特定の属性の存在に頼るべきでもない。しかしながら、共働するアクティビティは情報を共用できるので、データが現共通データコンテキストで見つけだされる方法についての規約があることは重要である。このアイディアは、DICOMオブジェクトモデルが取り入れらるので、アクティビティが、現共通データコンテキストの患者、調査、シリーズあるいは画像のオブジェクトを探すということにある。フレームワークはこれらのオブジェクトのプロパティを保持する。規約によって、1つのプロパティは、データベースの対応するレコードのポインタとなる(下記のOLE‐DB節参照)。他の候補プロパティはこれらのオブジェクトからのデータをロードした保存器オブジェクトの外部ハンドルである。現共通データコンテキストのこれらのオブジェクトは、(アクティビティがプロパティとして明確にそれを追加しない限り)それ自体でデータベースに記憶された情報を保持しない。すなわち、アクティビティがこの情報に対するデータソースに直接進むと予想される。
【0040】
プロセスセレクタは、アクティブエックス制御である。このアクティブエックス制御はUIのプロセス領域を所有する。この領域内で、(UI節で前述されたように)アクティブエックス制御は所定の情報を表示し、データセレクタを呼び出すこともできる。使用される特定のデータセレクタは構造化可能である。
【0041】
データセレクタは、ユーザがデータセットおよび使用されるプロセス定義を選択できるクラスのコンポーネントである。UI節は、このコンポーネントのために使用できるいくつかの異なるモデルを前述した。
【0042】
このクラスの1つの例は、ユーザが読み出すべき次のものを選択できるようにするワークリストを示すコンポーネントである。項目の選択によって、中央ワークフローエンジンは、この状態を反映するように更新される(それで、他のユーザは同時に同じ調査を読めない)。このクラスの他の例は、(例えばOLE‐DBエニュメレータからの)データソースの選択、次に、一致するプロセス定義の選択とともに患者、調査、シリーズの選択を可能にするより通常的なモデルである。
【0043】
一旦データセットおよびプロセスが選択されると、データセットは、新しい共有コンテキストの基礎を形成し、このプロセスは、具体化され、次にサブプロセスエリアでナビゲートされるアクティビティを規定する。
【0044】
サブプロセスナビゲータコンポーネントは、現プロセスのアクティビティをナビゲートするために使用できるUIを表示する役割を果たす。このコンポーネントはスクリーン上に領域を与えられる(構造化可能)。それはナビゲーションを実際に実行するフレームワークのサービスを使用する。
【0045】
ツールコンテナコンポーネントは、特定のアクティビティが"現"である間、アクティブであるツールのセットを管理する。ツールコンテナはこれらのツール間をナビゲートする手段を提供する。例えば、このコンテナはタブカードモデルを使用してもよい。
【0046】
アクティビティはツールのクラスのサービスを要求する。したがって、"ウィンドウ幅およびレベル調整"を提供するツールが有り得る。フレームワークはこのようなマッピングのレジストリを有し、特定のアクティビティが具体化される場合、フレームワークは、これらのクラスにその関与を登録し、それにより、フレームワークは、そのアクティビティが現行のものである場合に、表示するようにする。
【0047】
フレームワークはプロセスをサポートするが、任意の作業が、フレームワークが含むアクティビティによって実際に実行される。アクティビティとして発生し得るコンポーネントの型式のいくつかの例は、下記を含む。
現共有データコンテキストにおける調査の基本的な2Dビューイングを行うコンポーネント。この機能性は、レイアウト制御、ズームおよびパン、映画等を含み、これらの制御に対するUIはツールを介して提供される。
ユーザが、注釈された画像を含むであろうレポートを記録できるコンポーネント。レポートの完成はユーザによって指示され、次に、遠隔ワークフローエンジンに現作業項目が完成したことの信号を出す。これは、次のアクティビティもトリガし、この場合、次のアクティビティは、第1のアクティビティ、すなわち表示ワークリストからの新しい作業項目の選択に単に戻されてもよい。
【0048】
アクティビティであるコンポーネントの寿命時間はフレームワークによって制御される。フレームワークは、含んでいるプロセスが開始される場合、アクティビティを具体化し、プロセスが完了する場合、アクティビティを壊す。アクティビティが作成されると、アクティビティは共有データコンテキストへのアクセスを与えられる。フレームワークは"現"アクティビティの明確なモデルも有する。すなわち、アクティビティが"現"となる場合、アクティビティはワークエリアの所有権を得ることができる。アクティビティは、共有データコンテキストの属性(例えば、そこのオブジェクトのプロパティ)を設定し、得ることができる。このアクティビティは制御エリアの任意の属性も得て、設定できる。すなわち、この属性のセットはアクティビティの順序付けを制御する。
【0049】
現共有データコンテキストの変化を通知するために使用される機構は、OLE接続モデルに基づいてもよい。どんな場合でも、この機構はコンテキストの変化についてコンポーネントへの通知をサポートする。
【0050】
OLE‐DBを、全データソースにアクセスする共通標準として使用する。データモデルは、DICOMオブジェクトモデルに基づいている。フレームワークはこれらのアプリケーションを形成するために使用されるので、フレームワークはこれらと同じ規約を使用する。これは、データソースが、OLE‐DBを介して提供されるデータソースのインタフェースに対して、フレームワークの外部にあるままであることを意味する。
【0051】
このフレームワークは、プロセスによって現在使用されるデータを含む現共有データコンテキストのモデルを提供する。このデータは、フレームワーク内に実際には記憶されない。すなわち、むしろフレームワークは、任意のプロパティを有することができるオブジェクトのセットを保有する。これらのオブジェクトは、DICOMオブジェクトモデルを反映するある階層に結合される(これはデータ選択サービスを提供するコンポーネントによって作成される)。各オブジェクトのプロパティは、データソースのリファレンスを記憶するために使用される(多分、関連行識別子を有するOLE‐DB)。アクティビティは、アクティビティにわたって共有されるべきである情報を記憶するためにプロパティも使用する‐例えば、これらのオブジェクトに関連するピクセルデータのコピーを有する保存器におけるラスタの外部処理など。フレームワークは、プロパティの変化の通知をサポートする。
【0052】
共有データに関連した他のサービスは、OLE‐DBを介して提供される(例えば、データのキャッシイング、トランザクション、変更の通知等)。アクティビティはこれらのサービスを直接に利用できる。
【0053】
アクティビティは単一の共有データコンテキストだけを調べるが、フレームワークは、各々が異なるプロセスインスタンスの一部である(したがって異なるアクティビティおよびツールのセットを有する)複数のコンテキストを保持できる。このサポートは個別のアクティビティおよびツールから隠される。
【0054】
このモデルは、データフローモデルよりもむしろ現データセットを含む、共有データコンテキストに基づいている。しかしながら、これは、データが一方のアクティビティから次のアクティビティに流れるモデルにマッピングできる。これは、現データコンテキストに入れられる1つのアクティビティの結果を有する(このアクティビティへの入力を取り換えない)ことによって実行できる。例えば、アクティビティがデータセットをとり入れ、それをフィルタリングする場合、出力それ自体は、現共有データコンテキストに単に生じる新しいデータセットでもよい。もちろん、この結果はフレームワークに明確に記憶される必要もないし、またフレームワークに明確に属している必要もない。すなわち、共有データコンテキストに追加された情報は、単に(保存器において)生成ラスタの処理であってもよい。
【0055】
プロセスの目的は、1つのアクティビティから次のアクティビティに案内するロジックをシステムに埋め込むことにある。したがって、各アクティビティは、(通常ユーザ入力に基づいて)いくつかのタスクを実行し、それから共有データに対するいくつかの変更を行う。制御フローのために使用できる(これは共有データコンテキストとは別個である)1つあるいはそれ以上の属性も生成する。フレームワークは、これらの制御属性が変更されて他の属性が実行されるべきであることを示すかどうかを決定する場合は、常に、これらの制御属性を調べる。この決定は、これらの制御属性を調べる若干のプログラム可能なロジックによって行われる。前述のように、これはフレームワークであるいは多分(例えば、ワークフローエンジンで)さらに外部で実行できる。
【0056】
フローのユーザ制御が提供される。デフォルトのふるまいは、予めプログラム化ロジックによって順序付けされるアクティビティのためのものであるが、ある場合には、プロセスのアクティビティ間で前後にジャンプできることがユーザに役立つ。これはユーザインタフェースのサブプロセスエリアに提供されたナビゲーションUIを使用して実行される。しかしながら、プロセスの全てのアクティビティは、所与の時間で実行可能でなくてもよい(例えば、いくつかは、スキップされたアクティビティによって通常生成される付加的情報を必要とするかもしれない)。フレームワークは、このような遷移を排除することによって、あるいは選択アクティビティをアクティブにするが非作動状態にすることによって、これを処理しなければならない。
【0057】
図5(a)および(b)を参照すると、ビューイングおよびリーディングアプリケーションインプリメンテーションが示されている。この構成では、プロダクトはウェブブラウザによってホストされる。最も簡単なレベルで、機能性は単に2Dビューアであり、見るべきシリーズは別個に指定される(例えば、ウェブページに埋め込まれた形式あるいは他の制御を使用して)。したがって、この入力は、見るデータセットおよびそれからデータが得られるべきDICOMサーバの位置に対する仕様である。
【0058】
ページのイメージング部は単に矩形領域である。設計者は、フレームワークの残りなしで簡単な2Dビューイングコンポーネントを使用してこれを実現する。この場合、共有ツールエリアはなく、(共有データおよびナビゲーションのような)通常のフレームワークサービスは使用可能でない(このフレームワークサービスはこの場合必要ない)。重要な点は、この単一コンポーネント(2Dビューア)がフレームワークとともに作動できる同じコンポーネントであるということである。フレームワークがない場合、フレームワークは、これを検知するので、これらのサービスに頼らない。コンテナ(例えば、スクリプト)は、アクティビティのふるまいを制御するように適切な情報およびユーザ入力を供給しなければならない。
【0059】
したがって、このアプリケーションによって使用される1個のアーキテクチャは2Dビューイングコンポーネントである。この制御はワークエリアのレイアウトを表示する。この制御には適切なAPIによって入力データセットが明確に提供される。この制御は適切なPrSパイプラインを設定し、レイアウト、ズーム/par、W/L等の制御を可能にする。そのふるまいの任意の制御は、(例えば、ウェブページ上にそのふるまいを規定する属性を設定するラッパスクリプトで表示される他の制御から)外部から提供できる。図5(b)は、アクティビティ(2Dビューイングコンポーネント)が、このアプリケーションをサポートするためにシーンの裏でどのように動作するかを示している。
【0060】
仮想プロダクトのシナリオでは、フレームワークのユーザは、下記の動作シーケンスを実行したい場合もある。
シリーズを選択する
2Dビューアを呼び出す
ROIを規定し、セーブする
画像を配置する
ハードコピーする
必要とされるステップ
必要とされるステップおよび生じる動作は下記のとおりである。
ホスト/形式(例えば、VB、すなわちウェブブラウザ)からフレームワークが具体化される。最初の構成はローカルデータベースに記憶されたパラメータに基づいている。下記の情報は始動でデータベースから抽出される。
候補プロセス定義
ナビゲーションコンポーネント
選択コンポーネント
ツールコンポーネント
UI構成
プロセス定義
構成データベースは個別のコンポーネントのための構成問題についても識別する。
患者選択が現れる(空間を占める)
セレクタは、OLE‐DBを使用してDBに照会し、患者リストを得る。
患者を選択する
選択された患者は、共有データコンテキストからDB名/ハンドルを得る。
ユーザは選択を行う。これによりコンテキスト(1人の患者)を形成するセレクタが生じる。例えば、このオブジェクトのプロパティとして関連のOLE‐DBハンドルを記憶する患者オブジェクトが形成される。
ユーザはシリーズ/画像を選択する。しかしながら、この画像はコンテキストに列挙され、この画像はこの点で"空"画像オブジェクトである。
ともかくも、プロセスは選択される。これは明示的であってもよいしあるいは暗黙的であってもよい。
次にナビゲーションエリアは具体化される。
第1のアクティビティが開始される(例えば、2Dビューア)。アクティビティはUIエリアを占める。
アクティビティ(2Dビューア)は、アクティビティがどのツールを望むかを示す(例えば、右エッジのスライダ)。
2Dビューアはデフォルトレイアウトを形成し、画像を表示する。
2Dビューアはマウスハンドラをインストールする
2Dビューアはツールを要求する。例えば、W/Lクラスツール、パンおよびズームツール等。
フレームワークはクラスを探し、クラスをツールコンテナの中に具体化する(例えば、デフォルトによって、タブを使用する)
ユーザがズームツールをドラッグする‐>ツールはフレームワークに通信する‐>フレームワークはアクティビティを呼び戻す
ユーザはビューポートを選択し、マウスをドラッグする‐>アクティビティは情報をフレームワークに中継する‐>フレームワークは、情報(例えば、フレームワークのW/L)を更新するツールを呼び出し、フレームワークはアクティビティを呼び出す
あるコンテキストのROI(ツール?)を規定する‐>コンテキストのROIを記憶する(?)
他のツールを有する画像を配置する
HCツール;HC機能性(2Dビューアの一部、あるいは別個のHCコンポーネント?)
【0061】
図6および図7は、アクティブである2つのプロセスインスタンス(およびしたがって共有データコンテキスト)がある場合、アクティブであるオブジェクトを示す。これらのオブジェクトの大部分(ツールコンポーネントおよびアクティビティコンポーネントを除く)は、フレームワークコンポーネント内に存在するので、外部から直接に見ることができない(アクティビティは、アクティビティインタフェースによって見えるるので、これらのオブジェクトによって提供されるサービスを使用する。)図6は、最高レベル、すなわちフレームワークおよびフレームワークが管理するコンテキストを示し、一方で、図7は、単一プロセスインスタンス(コンテキスト)の拡大図である。
フレームコンポーネント‐内訳説明する
【0062】
(プログラムデータベースインタフェース)
データベースは命名されたプロトコルのリストを含む。
各プロトコルに関して、順序付けのための特定のロジックを有するアクティビティのリストがある。
各アクティビティは名前で識別され、各アクティビティを具体化できる情報を含む(例えば、クラスID、あるいはコードのためのURLを介して)。
各アクティビティは、プロセス専用プロパティのセットも有することができる(アクティビティクラスのプロパティは、例えば、レジストリを使用してこのコンポーネントによって直接処理されるようになる)。
【0063】
(プロセスインスタンスマネージャ)
フレームワークによって、ユーザは2つ以上の"タスク"で作業できる。したがって、2つ以上のプロセスインスタンスがあり得て、各プロセスインスタンスはマネージャオブジェクトを有する。このオブジェクトは、下記のものを管理する。
・プロセス(すなわち、アクティビティのシーケンス)
・制御フローマネージャ
・制御プロパティマネージャ
・共有データマネージャ
・インタラクティブプロパティマネージャ
・共有ツールマネージャ
【0064】
(制御フローマネージャ)
このオブジェクトはプロセスのアクティビティの寿命を管理する。このオブジェクトは、
・アクティビティを具体化し、壊す
・ナビゲーションに応じて各アクティビティをアクティブあるいは非アクティブにする
・シーケンス制御および制御プロパティに基づいてアクティビティ間の自動遷移をサポートする
【0065】
(制御プロパティマネージャ)
このオブジェクトは、自動順序付けを実行するためにフロー制御マネージャによって使用されるプロパティのセットを管理する。これらのプロパティは持続性である必要がなく、プロセスデータベースからの値に基づいてこれらのプロパティを初期化することが必要となり得る。したがって、このオブジェクトが実行する機能は下記のとおりである。
・任意のプロパティの値の設定
・プロパティの変更のフロー制御マネージャへの通知
【0066】
(インタラクティブプロパティマネージャ)
このオブジェクトは、ツールと各アクティビティとの間の通信のための手段であるプロパティのセットを管理する。フレームワークは、ツールインスタンスとアクティビティとの間のマッピングを保持するので、同じツールクラスはプロセスの2つ以上のアクティビティによって使用できる。
ツールおよびアクティビティの両方はこれらのプロパティを得て、設定でき、その変化を通知できる。
【0067】
(共有データマネージャ)
このオブジェクトは、
・(任意)オブジェクトのセットを管理する。これらのオブジェクトはアクティビティ間にデータをパスさせる機構である。
・これらのオブジェクトの任意のプロパティのセットを可能にし、これらのオブジェクトの任意のプロパティを得る。
・プロパティ値は、タイプ、すなわちストリング、int、フロート等を有する。
・プロパティは、"コールバック"修飾子も有し、それによって、オブジェクトは、ある値のプロバイダーとして登録でき、次に、この値が要求されるときは常に呼び出される。この機構は、高価となりえるタスクの繰り延べを可能にする。
・事象を、オブジェクトのこのプロパティへの関与を登録したコンポーネントに供給する。
・コールバック修飾子を有するオブジェクトのプロパティになされる場合に登録プロバイダーにリクエストを転送する。
【0068】
(ツールマネージャ)
"プログラムデータベース"と同様に、このモジュールは、これらのツールを実行するアクティブエックス制御に対するツール名のマッピングを含むデータベースへのインタフェースを有する。このオブジェクトはツールの寿命も管理する‐このオブジェクトは、現アクティビティの好みに基づいてツールを(構造化可能UIコンポーネントである)"ツールコンテナ"に挿入する。
【0069】
(UIマネージャ)
このオブジェクトは、4つの副領域、すなわちワークエリア、および3つの制御エリアに分割される全ユーザインタフェースエリアを管理する。このレベルでの構造化可能性、例えばこのエリアの相対サイズおよび位置決めがある必要がある。この設計は、ユーザ対話が領域(例えば、ビジュアルスタジオによって使用されるような"ドック可能"領域)を移動させることができることも考察すべきである。
【0070】
(1.1.1.1プロセスエリア)
登録プロセスナビゲータはこのエリア内で具体化される。
【0071】
(1.1.1.2アクティビティナビゲータ)
登録サブナビゲータはこのエリア内で具体化される。
【0072】
(1.1.1.3共通ツールエリア)
登録ツールコンテナはこのエリア内で具体化される。
【0073】
(1.1.1.4ワークエリア)
現アクティビティ(アクティブエックス制御)はここでインストールされる。
【0074】
(アクティビティサポートインタフェース)
これらのインタフェースはアクティビティのライターに供給される。ここで使用される表記は特定の設計を意味しない‐使用される名前は、必要な機能性を識別するためにタグとして解釈されるべきである。
【0075】
(構成)
この機能は、このプロトコル、すなわちこのプロセス定義のアクティビティのこのインスタンスと関連されるプロパティに専用である構成情報を提供する。クラスプロパティは、(例えば、レジストリを使用して)コンポーネントによって直接に処理されるように予想される。
【0076】
(共有データ)
この機能性は、"現共有データコンテキスト"にある共有データ、すなわち、アクティビティが実行するプロセスインスタンスに関連する共有データコンテキストを処理するために必要である。
【0077】
【0078】
【0079】
【0080】
(ツールサポートインタフェース)
これらのインタフェースはツールコンポーネントのライター向きである:
【0081】
(プロセスナビゲータがインタフェースをサポートする)
プロセスナビゲータは、プロセスインスタンス間の切り換え、プロセスインスタンスを作成、壊し、実行するデータおよびプロセスを選択するUIを提供する必要がある。プロセスナビゲータは、(現患者のような)ある状態情報を表示することも必要であるので、これらの目的のための"共有データ"インタフェースおよびOLE‐DBを使用する。
【0082】
【0083】
【0084】
【0085】
(プロセス制御コンポーネント)
このコンポーネントは、プロセスナビゲーション機能を示すデモで使用できる例である。このコンポーネントは下記であるべきである。
【0086】
(データセレクタコンポーネント)
このコンポーネントは、データソースのブラウジングのためにおよび患者/調査/シリーズの階層を横切るためにOLE‐DBを直接使用する。
このコンポーネントは"プロセス定義"(上記)のために規定されたインタフェースも使用する。
【0087】
(サブプロセスナビゲータコンポーネント)
このコンポーネントはサブプロセスナビゲーション機能を示すデモで使用できる。このコンポーネントは下記のことをするべきである。
【0088】
(ツールコンテナ)
このコンポーネントはツールのセットの簡単なコンテナである。このコンポーネントは、既存のアクティブエックスコンポーネントが直接に使用できることであることであってもよい(例えば、タブカードコントローラはデモに対して有用である)。
【0089】
(2Dビューア−アクティビティ)
このコンポーネントは"アクティビティ"である‐したがって、このコンポーネントは上記に列挙されたアクティビティサポートインタフェースを使用する。このコンポーネントがアクティブであるとき、このコンポーネントはワークエリアの所有権を有する。このコンポーネントが作成されるとき、このコンポーネントは下記のことをする。
アクティビティが最初にアクティブになる場合、アクティビティが下記のことをする。
このコンポーネントは新しい入力、すなわちワークエリアのユーザ対話あるいはツールからの入力に応答すべきである:
アクティビティが壊された場合、アクティビティが下記のことをするべきである。
【0090】
(ツール−2Dズーム/パン制御)
このコンポーネントは、簡単なUIを提供し、ユーザがズームおよびパンを設定できる。作成時、このコンポーネントは下記のことをするべきである。
ユーザがUI要素を変化する場合、UIが下記のことをするべきである。
アクティビティそのものはツールによって観察されるプロパティを変える場合、ツールが下記のことをするべきである。
そのUIを更新し、新しい設定に反映する。
【0091】
(ツール‐ウィンドウ幅およびレベル調整)
UI及びプロパティが異なることを除いて、これは基本的に上記の例と同じである。
【0092】
図8は、いくつかのあるシナリオ中に具体化されてもよいコンポーネントの概略の他の例である。上部レベルで、"フレームワーク"と呼ばれるアクティブエックス制御がある。この制御はコンテナでもあり、この制御は、含む制御の間でUIの分割を管理する。UIの分割に加えて、このコンテナは、いくつかの制御を形成し、管理する。制御のUI構成およびIDは、レジストリから、次にプロセスデータベースから得られる(プロセスの定義はここに含まれる)。
【0093】
"プロセスセレクタUI"とラベルを付けられたコンポーネントは、一旦フレームワークが開始すると、構成で識別され、UIで作成され、表示される。次に、コンポーネントは、データセットの選択を使用し、プロセステンプレートをデータセットに関連付けることができる構造化可能"データセレクタ"制御を表示できる。
【0094】
フレームワークは複数のプロセスインスタンス(あるいはコンテキスト)をサポートし、これは、"FProcess1"とラベルを付けられたあるコンポーネントおよび"FProcess2"とラベルを付けられた他のコンポーネントによって上記のダイヤグラムに示される。このオブジェクトは実際はフレームワークの一部である(オブジェクトは同じdll内に供給される)。しかしながら、たとえオブジェクトがフレームワークコンテナなしに使用されることが予想されないとしても、これを別々の制御として保持することはより便利であり得る。[これはなお決定されるべきである。すなわち、現プランはこれをフレームワーク内で内部的に使用されるクラスとして実行すべきであるが、別個のプロセスを別個のCOMオブジェクトとして管理することはより容易であるように見える場合、このオブジェクトはこの方法を実行される(しかしなお同じdllの一部として供給される)]
【0095】
FProcessはそれ自体コンテナである。それは単一プロセス定義に関し、関連データコンテキストを有する。FProcessの作成は、プロセステンプレートの装備ならびにデータ、例えば共有されるデータオブジェクトの定義を識別するのに必要な情報を必要とする(これは、FProcess内で処理されるので、ダイヤグラムに直接に表示されない)。
【0096】
FProcessインスタンスは、UIエリアの中の3つ(サブプロセスナビゲータ、ツールエリア、およびワークエリア)を管理する。サブプロセスエリアは、さらに構造化可能である制御によって占められる。このクラスのIDはフレームワークによって復元され、FProcessに利用される。
【0097】
同様に、"ツールマネージャ"コンポーネントは構造化可能であり、そのIDは、復元され、フレームワークによってFProcessに利用される。FProcessは、"ツール"を示す制御および"アクティビティ"である制御を管理する。これらの中のIDは、FProcessが開始される場合、FProcessコンポーネントに供給されるプロセステンプレートに含まれる。
【0098】
プロセス選択エリアは、(構成されるにつれて)この制御によって占められる。そのタスクは、アクティブタスクと作成プロセスあるいは新規プロセスとの間の選択を可能とすることにある。このプロセスは、図9に示されるように全く簡単なUIを有し、この場合"新規プロセス"プッシュボタンが他の制御、すなわち"データセレクタ"のクラスからの制御使用となる。この制御も構造化可能であり、その役割は、フレームワークのアクティビティによるその後の使用に対してプロセステンプレートおよびデータセットの選択に対してユーザインタフェースを提供することにある。"プロセス終了"ボタンは現アクティブプロセスを停止する(現プロセスはドロップダウンリストボックスに表示されたプロセスである)。
【0099】
下記のことは、データセレクタの一例を説明する。この構造化可能な制御は、"プロセスセレクタ"(上記)によって具体化され、この制御は使用するデータおよびプロセスを決定する役割を果たす。一般的に、これは、ユーザがデータセット(あるいは複数のデータセット)を選択し、次にプロセス(プロトコル)をこのデータと併用できることによって実行される。しかしながら、異なるモデルも使用できる。例えば、このプロセスは最初に選択する必要があるかもしれず、その結果、選択できる可能なデータセットのサブセットを決定する。他のモデルは、データセットがたとえ予め決定されたプロセス(プロトコル)で外部で(例えば、企画ワークフローエンジンで)決定されるモデルである。この場合、セレクタは可能なワーク項目のリストをユーザに示すことだけを必要とする(項目の選択は使用するデータセットおよびプロセスを意味する)。
【0100】
一般に、プロセス(プロトコル)に応じて、サポートされる必要があるかもしれない異なる選択機構がある。例えば、
・単一画像選択
・単一シリーズ(3D、MPR等に対して)
・2シリーズ(統合に対して)
・複数シリーズ、単一調査あるいは患者(精査、読み取り)
・任意の選択
【0101】
データセレクタの一例は、データが従来の患者‐調査‐シリーズ‐画像階層に記憶されているという仮定であり、このセレクタは、互いに無関係の画像およびプロセスの任意の選択を可能にする。さらに、セレクタは、デモ目的のために共有データコンテキストに現在示されているこれらの患者、調査、シリーズおよび画像のオブジェクトを示している。
【0102】
ユーザインタフェースは、3つの異なる画像を有するタブカードの形で構成される。
【0103】
タブ"データベース選択"上の第1の画像は、制御の左側にデータベース−患者‐調査‐シリーズ‐画像階層の階層画像および制御の右側のリストには現シリーズの画像のリストを表示する。2つのボタンによって、ユーザはリスト画像のサブセットあるいはリスト画像の全てのいずれかを選択できる。
【0104】
図11に示す第2の画像は、同様に、タブ"共有コンテキスト"上の画像であり、共有データコンテキストの現内容を示す。
【0105】
図12に示された第3の画像は、データベースの階層画像も繰り返す。第3の画像は所望のプロセス(プロトコル)の選択のための簡単なリストおよびボタンを提供する。例データセレクタはビジュアルベーシックで実行される。これには2つの利点がある。まず第一に、この制御の大部分はユーザインタフェースであり、ビジュアルベーシックはユーザインタフェースの非常に高速で、便利な形成を可能にする。第二に、顧客がビジュアルベーシックでアクティビティコンポーネントを作成したいことはないことではない。したがって、若干の経験を累積することは有用である。
【0106】
ユーザシナリオは全く簡単である。すなわち、1.最初にユーザにはデータベース選択タブが表示される。ユーザは、データベース階層の下方にナビゲートし、1つあるいはそれ以上のシリーズおよび患者から1つあるいはそれ以上の画像を選択する。2.それから、ユーザは、共有コンテキストタブを選択し、共有コンテキストが必要とされるデータを正確に含むことを検証する。3.ユーザは、プロセス選択タブを選択し、データのために実行されるプロトコルを選択する。
【0107】
あるロジックは、少なくとも1つの画像および少なくとも1つのプロセスの選択を強制するように実行されてもよい。
【0108】
システムの他のコンポーネントとの対話によって、データセレクタの一例は、下記のものとインタフェースする。
・データベース;使用可能なデータベースはシステムレジストリからロードされ、ADOによってアクセスされる
・共有コンテキスト;オブジェクトおよびプロパティは、共有コンテキストから引き出され、共有コンテキストに形成されなければならない
・プロセスデータベース;使用可能なプロセスは引き出されなければならない
選択エリア;これはデータセレクタのためのコンテナであり、選択プロセスを通知される必要がある。
【0109】
データセレクタは、若干の設計時間ふるまいを有するアクティブエックス制御である(タブセレクタはアクティブであり、いろいろなリストおよびボタンは、制御で移動及びサイズ化される)。
【0110】
本発明はある特定の実施例に関して説明されているけれども、添付された特許請求の範囲において概略される本発明の目的および範囲を逸脱せずに、多様な修正が当業者には明らかである。
【図面の簡単な説明】
本発明のより良い理解は下記の図面とともに詳細な説明を参照することによって得られる。
【図1】ユーザインタフェース(UI)の概略図である。
【図2】ツールマネージャの概略図である。
【図3】サブプロセスUIの概略図である。
【図4】システムアーキテクチャの概略図である。
【図5a】UIの他の実施例である。
【図5b】2Dビューイングコンポーネントのためのサポートプロセスを示す概略図である。
【図6】フレームワークおよびフレームワークが管理するコンテキストの概略図である。
【図7】単一プロセスインスタンスの拡大概略図である。
【図8】システムコンポーネントを示す他の概略図である。
【図9】プロセスナビゲータUIの概略図である。
【図10】データベース選択および関連ビューの概略図である。
【図11】データベース選択および関連ビューの概略図である。
【図12】データベース選択および関連ビューの概略図である。
Claims (19)
- コンピュータで実行されるフレームワークのアプリケーション内のワークフローをモニタするためにコンピュータで実行される方法であって、
前記ワークフローは、前記アプリケーションの外部からの一組のアクティビティのうちから少なくとも1つのアクティビティを調整することを含み、前記フレームワークは、複数レベルの機能性を有し、さらに、前記アプリケーションで用いるために、前記アプリケーションの外部の異なるソースからの複数の前記アクティビティを前記ワークフローに対して調整することができ、さらに、ユーザと前記アプリケーションとの間の対話を容易にするためのユーザインタフェースを有し、前記アプリケーションが、アクティビティレベルにて前記一組のアクティビティを有し、前記アクティビティは、複数の異なるソースから選択可能であり、
前記方法は、
a)プロセスレベルにて、データ記憶装置からプロセス定義を選択するステップであって、前記プロセス定義は、前記アクティビティの調整に従って、前記ワークフローの期間にデータセットを処理するためのプロセスステップのセットを定義し、それにより前記プロセスステップは前記一組のアクティビティに関連付けられるステップと;
b)前記データ記憶装置から前記データセットを選択するステップと;
c)前記プロセス定義に従って前記アプリケーションの外部の異なるソースからの複数の前記アクティビティを組み合わせるために、前記アプリケーションを開始するステップと;
d)サブプロセスレベルにて、前記ワークフローをモニタするために、前記プロセス定義に従って、前記一組のアクティビティから選択されたアクティビティ間をナビゲートするステップと;さらに、
e)前記少なくとも1つのアクティビティのそれぞれを、前記プロセスステップにおけるそれぞれのプロセスステップの間に前記データセットに適用するために前記プロセス定義を実行し、それによって、後に利用する出力データのセットを生成するための前記データセットに含まれる少なくとも1つのプロパティが修正されるステップと、
を含む、コンピュータで実行される方法。 - 請求項1に記載の方法において、前記複数レベルの機能性の少なくとも幾つかを、前記ユーザインタフェースの異なる領域に割り当てるステップをさらに含む方法。
- 請求項2に記載の方法において、前記ユーザインタフェースが、画像のディスプレイを提供するためのスクリーンを含む、方法。
- 請求項3に記載の方法において、前記一組のアクティビティから選択された現アクティビティを、前記スクリーンのワークエリアに割り当てるステップをさらに含み、前記ワークエリアは、前記スクリーンの表面エリアの補助的な部分を有する方法。
- 請求項4に記載の方法において、前記現アクティビティによる前記ワークエリアの所有をモニタするステップをさらに含む方法。
- 請求項2に記載の方法において、少なくとも2つのプロセス定義を同時に処理するステップを更に含む方法。
- 請求項6に記載の方法において、前記ユーザインタフェースのワークエリアへの割り当てのために、アクティブなアクティビティの間から選択するステップを更に含む方法。
- 請求項7に記載の方法において、前記アプリケーションが、現アクティビティにわたって前アクティビティの再利用をさらにサポートし、前記前アクティビティは、前記一組のアクティビティから選択される方法。
- 請求項2に記載の方法において、前記ユーザインタフェースの前記異なる領域に表示された情報のレベルをモニタするステップをさらに含む方法。
- 請求項2に記載の方法において、現アクティビティによって、前記ユーザインタフェースの前記異なる領域をマネージングするステップを含む方法。
- 請求項1に記載の方法において、前記アプリケーションのユーザによる、前記一組のアクティビティの実行順序をダイナミックにモニタするステップをさらに含む方法。
- 請求項11に記載の方法において、ルールのセット又はアクティビティのプロパティのセットに基づいて、前記一組のアクティビティにおける前記選択されたアクティビティ間の制御フローを自動化するステップをさらに含む方法。
- 請求項1に記載の方法において、前アクティビティから得られる前記出力データセットに基づいて、前記一組のアクティビティの演算機能性をモニタするステップをさらに含む方法。
- 請求項1に記載の方法において、ツールによって前記一組のアクティビティのパラメータを設定するステップをさらに含み、前記パラメータが、前記一組のアクティビティの演算動作を更新する方法。
- 請求項14に記載の方法において、前記ユーザインタフェースの異なる領域に、前記ツールを割り当てるステップをさらに含む方法。
- 請求項15に記載の方法において、前記ユーザインタフェースの前記ツール領域にツールをインストールするステップをさらに含み、前記ツールが、前記プロセス定義により要求される方法。
- 請求項1に記載の方法において、共有データコンテキストにおいて、前記ユーザインタフェースのワークエリアの内容のプロパティを共有するステップをさらに含む方法。
- 請求項17に記載の方法において、情報目的の共有のために、前記一組のアクティビティのうちの1つを調整することによって、前記共有データコンテキストにアクセスするステップをさらに含む方法。
- 請求項1〜18のいずれか一項に記載の方法を実行するための、コンピュータで実行可能な命令を含むコンピュータ読み取り可能な媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US98228097A | 1997-12-01 | 1997-12-01 | |
US08/982,280 | 1997-12-01 | ||
PCT/CA1998/001099 WO1999028841A2 (en) | 1997-12-01 | 1998-12-01 | Architecture for an application framework |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001525573A JP2001525573A (ja) | 2001-12-11 |
JP2001525573A5 JP2001525573A5 (ja) | 2009-01-22 |
JP4471250B2 true JP4471250B2 (ja) | 2010-06-02 |
Family
ID=25529000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000523618A Expired - Fee Related JP4471250B2 (ja) | 1997-12-01 | 1998-12-01 | アプリケーションフレームワーク用アーキテクチャ |
Country Status (7)
Country | Link |
---|---|
US (1) | US7237199B1 (ja) |
EP (1) | EP1038248A2 (ja) |
JP (1) | JP4471250B2 (ja) |
AU (1) | AU1329199A (ja) |
CA (1) | CA2311743A1 (ja) |
IL (1) | IL136465A0 (ja) |
WO (1) | WO1999028841A2 (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7657590B2 (en) * | 2001-02-07 | 2010-02-02 | Ubs Ag | Load balancing system and method |
AU2004257303B2 (en) * | 2003-07-17 | 2010-05-13 | Charles Sturt University | Bacillus strain isolate with fungal suppression activity |
US20080168402A1 (en) | 2007-01-07 | 2008-07-10 | Christopher Blumenberg | Application Programming Interfaces for Gesture Operations |
US20080168478A1 (en) | 2007-01-07 | 2008-07-10 | Andrew Platzer | Application Programming Interfaces for Scrolling |
JP5693227B2 (ja) * | 2007-10-12 | 2015-04-01 | ザ ジェネラル ホスピタル コーポレイション | 自動再構成およびデータ結合を有する医療情報システム |
US8717305B2 (en) | 2008-03-04 | 2014-05-06 | Apple Inc. | Touch event model for web pages |
US8645827B2 (en) | 2008-03-04 | 2014-02-04 | Apple Inc. | Touch event model |
US8566045B2 (en) | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US8285499B2 (en) | 2009-03-16 | 2012-10-09 | Apple Inc. | Event recognition |
US9684521B2 (en) | 2010-01-26 | 2017-06-20 | Apple Inc. | Systems having discrete and continuous gesture recognizers |
US20110055676A1 (en) * | 2009-08-28 | 2011-03-03 | Xingzhong Sun | Interactive user interface by embedding a document into a standardized object container |
US9223590B2 (en) * | 2010-01-06 | 2015-12-29 | Apple Inc. | System and method for issuing commands to applications based on contextual information |
US8945066B2 (en) | 2009-11-06 | 2015-02-03 | Crisi Medical Systems, Inc. | Medication injection site and data collection system |
US9101534B2 (en) | 2010-04-27 | 2015-08-11 | Crisi Medical Systems, Inc. | Medication and identification information transfer apparatus |
CA2797234A1 (en) * | 2010-05-01 | 2011-11-10 | Core Technology Limited | Process execution components |
US9514131B1 (en) | 2010-05-30 | 2016-12-06 | Crisi Medical Systems, Inc. | Medication container encoding, verification, and identification |
US10492991B2 (en) | 2010-05-30 | 2019-12-03 | Crisi Medical Systems, Inc. | Medication container encoding, verification, and identification |
US8552999B2 (en) | 2010-06-14 | 2013-10-08 | Apple Inc. | Control selection approximation |
JP5823259B2 (ja) * | 2010-11-22 | 2015-11-25 | 株式会社東芝 | 医用データ生成装置 |
US9078809B2 (en) | 2011-06-16 | 2015-07-14 | Crisi Medical Systems, Inc. | Medication dose preparation and transfer system |
US10293107B2 (en) | 2011-06-22 | 2019-05-21 | Crisi Medical Systems, Inc. | Selectively Controlling fluid flow through a fluid pathway |
US9744298B2 (en) | 2011-06-22 | 2017-08-29 | Crisi Medical Systems, Inc. | Selectively controlling fluid flow through a fluid pathway |
US10143830B2 (en) | 2013-03-13 | 2018-12-04 | Crisi Medical Systems, Inc. | Injection site information cap |
US9733716B2 (en) | 2013-06-09 | 2017-08-15 | Apple Inc. | Proxy gesture recognizer |
MX2017004528A (es) | 2014-10-10 | 2017-06-07 | Becton Dickinson Co | Dispositivo de control de tension. |
WO2016057751A1 (en) | 2014-10-10 | 2016-04-14 | Becton, Dickinson And Company | Syringe labeling device |
US11153259B2 (en) * | 2017-06-15 | 2021-10-19 | Jennifer Uhll | System and method for creation and scheduling of future communications and gifts |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4943932A (en) | 1986-11-25 | 1990-07-24 | Cimflex Teknowledge Corporation | Architecture for composing computational modules uniformly across diverse developmental frameworks |
US5212771A (en) * | 1990-04-27 | 1993-05-18 | Bachman Information Systems, Inc. | System for establishing concurrent high level and low level processes in a diagram window through process explosion and implosion subsystems |
US5301320A (en) * | 1991-06-28 | 1994-04-05 | Digital Equipment Corporation | Workflow management and control system |
WO1994015286A1 (en) * | 1992-12-23 | 1994-07-07 | Taligent, Inc. | Object oriented framework system |
US5446842A (en) * | 1993-02-26 | 1995-08-29 | Taligent, Inc. | Object-oriented collaboration system |
US5544302A (en) | 1993-06-03 | 1996-08-06 | Taligent, Inc. | Object-oriented framework for creating and using container objects with built-in properties |
US5668998A (en) | 1995-04-26 | 1997-09-16 | Eastman Kodak Company | Application framework of objects for the provision of DICOM services |
EP0888585A1 (en) * | 1996-03-19 | 1999-01-07 | Massachusetts Institute Of Technology | Computer system and computer implemented process for representing software system descriptions and for generating executable computer programs and computer system configurations from software system descriptions |
US5754830A (en) | 1996-04-01 | 1998-05-19 | Openconnect Systems, Incorporated | Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation |
US6220743B1 (en) * | 1996-04-05 | 2001-04-24 | The Dow Chemical Co. | Processes and materials selection knowledge-based system |
US6144962A (en) * | 1996-10-15 | 2000-11-07 | Mercury Interactive Corporation | Visualization of web sites and hierarchical data structures |
US5977972A (en) * | 1997-08-15 | 1999-11-02 | International Business Machines Corporation | User interface component and method of navigating across a boundary coupled to a scroll bar display element |
US6246783B1 (en) * | 1997-09-17 | 2001-06-12 | General Electric Company | Iterative filter framework for medical images |
WO2000004483A2 (en) * | 1998-07-15 | 2000-01-27 | Imation Corp. | Hierarchical data storage management |
US6606740B1 (en) * | 1998-10-05 | 2003-08-12 | American Management Systems, Inc. | Development framework for case and workflow systems |
-
1998
- 1998-12-01 EP EP98956741A patent/EP1038248A2/en not_active Ceased
- 1998-12-01 JP JP2000523618A patent/JP4471250B2/ja not_active Expired - Fee Related
- 1998-12-01 WO PCT/CA1998/001099 patent/WO1999028841A2/en active Application Filing
- 1998-12-01 AU AU13291/99A patent/AU1329199A/en not_active Abandoned
- 1998-12-01 IL IL13646598A patent/IL136465A0/xx not_active IP Right Cessation
- 1998-12-01 CA CA002311743A patent/CA2311743A1/en not_active Abandoned
-
2000
- 2000-05-30 US US09/580,163 patent/US7237199B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
AU1329199A (en) | 1999-06-16 |
WO1999028841A3 (en) | 1999-09-02 |
EP1038248A2 (en) | 2000-09-27 |
IL136465A0 (en) | 2001-06-14 |
CA2311743A1 (en) | 1999-06-10 |
JP2001525573A (ja) | 2001-12-11 |
US7237199B1 (en) | 2007-06-26 |
WO1999028841A2 (en) | 1999-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4471250B2 (ja) | アプリケーションフレームワーク用アーキテクチャ | |
US5414806A (en) | Palette and parts view of a composite object in an object oriented computer system | |
KR100475432B1 (ko) | 그래픽 사용자 인터페이스의 디자인 변경 방법 및 이를 위한 기록매체 | |
US7039875B2 (en) | Computer user interfaces that are generated as needed | |
US6263339B1 (en) | Dynamic object visualization and code generation | |
US6915301B2 (en) | Dynamic object properties | |
US8312382B2 (en) | Developing and executing applications with configurable patterns | |
US5905496A (en) | Workflow product navigation system | |
US6175364B1 (en) | Framework and method for interfacing a GUI, container with a GUI component | |
US6118451A (en) | Apparatus and method for controlling dialog box display and system interactivity in a computer-based system | |
US6031532A (en) | Method and apparatus for generating composite icons and composite masks | |
US5627960A (en) | Unified hierarchical and tear off menus in a graphical event-driven computer system | |
US7366723B2 (en) | Visual query modeling for configurable patterns | |
EP0982669A2 (en) | Property based context portals | |
US20080244517A1 (en) | Horizontal and vertical filtering of multi-domain business application models | |
EP1627376A1 (en) | System for hosting graphical layout/presentation objects | |
JPH07111675B2 (ja) | ウィンドウ表示装置および方法 | |
KR20000012137A (ko) | 디지털 이미지 처리 장치 | |
US20070143702A1 (en) | Method, Computer Program, and System Improving the Graphical User Interface of a Desktop | |
US6310632B1 (en) | System and method for a graphical user interface including buddy dialogs | |
US6456296B1 (en) | Color scheme for zooming graphical user interface | |
KR20000016992A (ko) | 데이터 처리 장치 | |
KR20000012136A (ko) | 비디오 특수 효과 장치 | |
US6275228B1 (en) | Interchangeable pick handler for zooming graphical user interface | |
US20230325045A1 (en) | Presenting entity activities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20050428 |
|
A625 | Written request for application examination (by other person) |
Free format text: JAPANESE INTERMEDIATE CODE: A625 Effective date: 20051201 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20060131 |
|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A073 Effective date: 20060217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080603 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080902 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20081003 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20081031 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20081205 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090106 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20090406 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090406 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090507 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090521 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20090608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090820 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090820 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091006 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100106 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100202 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100226 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130312 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130312 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140312 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |