(57)【特許請求の範囲】
【請求項１】
コンテナの特定手段、取得手段、算出手段、配置手段を備える情報処理装置の情報処理方法であって、
前記コンテナの特定手段が、ユーザに対応する文書テンプレートから、表示するコンテナを特定するステップと、
前記取得手段が、ユーザごとに、前記特定された複数のコンテナの未読・既読状態を取得するステップと、
前記算出手段が、前記ユーザごとに、前記複数のコンテナのうち未読状態のコンテナについて、前記未読状態になってからの経過時間を算出するステップと、
前記配置手段が、前記ユーザごとに、前記算出された経過時間が短い順に前記未読状態のコンテナを優先的に配置した電子文書を生成するステップとを有することを特徴とする情報処理方法。
【請求項２】
前記取得手段が取得するコンテナの未読・既読状態は、ユーザによる当該コンテナの最終閲覧日時と当該コンテナの最終更新日時に従い決定されることを特徴とする請求項1に記載された情報処理方法。
【請求項３】
前記情報処理装置は、さらに管理手段を備え、
前記コンテナに挿入されるコンテンツが任意のユーザによって変更された場合、前記管理手段が、前記変更を行ったユーザ以外のユーザの、前記コンテナに対する前記未読・既読状態を未読にすることを特徴とする請求項1または請求項2に記載された情報処理方法。
【請求項４】
ユーザによる前記電子文書の閲覧、または、ユーザによる前記未読状態のコンテナの既読状態への変更指示があった場合、前記管理手段が、当該コンテナの前記未読・既読状態を既読にすることを特徴とする請求項3に記載された情報処理方法。
【請求項５】
前記情報処理装置は、さらにユーザの特定手段および通知手段を備え、
任意のコンテナの前記未読・既読状態が既読に変化した場合、前記ユーザの特定手段が、当該コンテナを閲覧したユーザおよび当該コンテナを変更したユーザを特定するステップと、
前記通知手段が、前記特定された、コンテナの閲覧ユーザによって前記コンテナの前記未読・既読状態が既読に変化した旨を、前記特定された、コンテナの変更ユーザに通知するステップとを有することを特徴とする請求項3または請求項4に記載された情報処理方法。
【請求項６】
前記情報処理装置は、さらにユーザの特定手段、選択手段および通知手段を備え、
任意のコンテナの前記未読・既読状態が未読に変化した場合、前記ユーザの特定手段が、当該コンテナを変更したユーザを特定するステップと、
前記選択手段が、任意のコンテナの前記未読・既読状態が未読に変化した旨を通知するユーザの管理情報、並びに、前記特定された、コンテナの変更ユーザに基づき、通知を行うユーザを選択するステップと、
前記通知手段が、前記選択されたユーザに前記コンテナの変更を通知するステップとを有することを特徴とする請求項3または請求項4に記載された情報処理方法。
【請求項７】
前記通知は、前記変更されたコンテナおよび前記通知を特定する特定情報を含むことを特徴とする請求項6に記載された情報処理方法。
【請求項８】
前記情報処理装置は、さらに受信手段を備え、
前記受信手段が、前記特定情報を含む、前記通知に対する返信を受信するステップと、
前記管理手段が、前記返信が含む前記特定情報に応じたユーザおよびコンテナの前記未読・既読状態を既読にするステップとを有することを特徴とする請求項7に記載された情報処理方法。
【請求項９】
前記情報処理装置は、さらに生成手段を備え、
前記生成手段が、任意のユーザから電子文書の印刷要求を受け付け、前記未読・既読状態が未読のコンテナを配置した文書の印刷データを生成することを特徴とする請求項1から請求項8の何れか一項に記載された情報処理方法。
【請求項１０】
前記情報処理装置は、さらに生成手段を備え、
前記生成手段が、任意のユーザから電子文書の印刷要求を受け付け、前記未読・既読状態が未読のコンテナ、および、印刷が必須のコンテンツを配置した文書の印刷データを生成することを特徴とする請求項1から請求項8の何れか一項に記載された情報処理方法。
【請求項１１】
ユーザに対応する文書テンプレートから、表示するコンテナを特定する特定手段と、
ユーザごとに、前記特定された複数のコンテナの未読・既読状態を取得する取得手段と、
前記ユーザごとに、前記複数のコンテナのうち未読状態のコンテナについて、前記未読状態になってからの経過時間を算出する算出手段と、
前記ユーザごとに、前記算出された経過時間が短い順に前記未読状態のコンテナを優先的に配置した電子文書を生成する配置手段とを有することを特徴とする情報処理装置。
【請求項１２】
請求項1から請求項10の何れか一項に記載された情報処理方法をコンピュータに実行させるためのプログラム。
【請求項１３】
請求項12に記載されたプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書テンプレートの定義に従い、複数のコンテナにコンテンツを挿入した電子文書を生成する情報処理に関する。
【背景技術】
【０００２】
近年、アプリケーションは多様化、多機能化が進み、多くのコントロールや表示項目を有すようになった。アプリケーションの多様化、多機能化に伴い、表示しなければならない項目も必然的に増加する。従来は、マルチウィンドウやタブコントロールによる切り替えを利用して表示項目を増やしている（例えば特許文献1参照）。
【０００３】
サーバやデータベースが管理する情報を、複数のユーザがクライアントアプリケーションを利用して、閲覧・更新するシステム（例えば特許文献2）が普及している。このようなシステムの場合、サーバやデータベースが管理する情報が多いほど、クライアントアプリケーションの表示項目が増加し、表示内容が複雑化する。
【０００４】
多くの表示項目を有するアプリケーションを用いて、サーバやデータベースが管理する情報を閲覧・更新するシステムの場合、ユーザが、以前の閲覧・更新時から今回の閲覧・更新時までに変更された箇所を判別するのは困難である。これは、変更箇所の判別に、多くの表示項目すべてのチェックを必要とするためである。その上、マルチウィンドウやタブコントロールによる表示項目の切り替えがあり、複数回の操作を行わないと、すべての表示項目をチェックすることさえできない。その結果、情報に重要な変更があったとしても、ユーザは、その変更に気付かない可能性がある。
【０００５】
変更箇所の文字色の変更、変更箇所の指示表示などにより、変更箇所を提示する方法が提案されている（例えば特許文献3）。この方法は、サーバやデータベースが管理するデータに加えられた変更箇所の提示を想定したものであり、ユーザの以前の閲覧・更新時から今回の閲覧・更新時までに変更された箇所を当該ユーザに提示するわけではない。
【０００６】
また、限られた領域内に複数のコンテナを用意し、データベースからデータを挿入し、動的に配置する自動レイアウトシステムがある。自動レイアウトシステムは、挿入されたテキストおよび画像のコンテナサイズを可変に設定することが可能である。しかし、レイアウトシステムは、予め決められたデータを予め決められたコンテナに挿入し、表示する手段であって、ユーザが望むデータの変更箇所を、ユーザが理解できるようにレイアウトする手段ではない。
【０００７】
例えば、無数のデータを所有するデータベースがあり、サイズが可変のコンテナ（以下「可変コンテナ」と呼ぶ）A、Bを作成したとする。この状態で、可変コンテナA、Bにデータを挿入し表示する。可変コンテナA、Bに挿入するデータが双方とも大きく、頁内に収まらない場合は、可変コンテナA、Bに挿入するデータのサイズを平等に、または、予め決められた優先順位で収まるように表示する。
【０００８】
この優先順位とは、可変コンテナに予め決められたサイズ変化量の重み付けのことである。各可変コンテナに重み付けした場合、重み付けが高い可変コンテナは設定したサイズに限りなく近いサイズで表示し、重み付けが低いコンテナは設定したサイズに近付かなくてもよい。
【０００９】
このようなレイアウトシステムには、次の問題点がある。例えば、コンテナBに高い優先順位が設定されていて、ユーザの以前の閲覧時からコンテナAの内容（コンテンツ）が変更されたとする。この場合、コンテナAの内容の変更に関係なく優先順位によるレイアウトが行われる。その結果、優先順位が低いコンテナAの表示サイズは小さくて変更部分が表示されず、ユーザは変更に気付かない可能性がある。
【００１０】
【特許文献１】特開平11-282600号公報
【特許文献２】特開2002-358361号公報
【特許文献３】特開2002-259199号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、コンテナの内容の変更が分かり易い電子文書を生成することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１３】
本発明にかかる情報処理は、ユーザに対応する文書テンプレートから、表示するコンテナを特定し、ユーザごとに、前記特定された複数のコンテナの未読・既読状態を取得し、前記ユーザごとに、前記複数のコンテナのうち未読状態のコンテナについて、前記未読状態になってからの経過時間を算出し、前記ユーザごとに、前記算出された経過時間が短い順に前記未読状態のコンテナを優先的に配置した電子文書を生成することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、コンテナの内容の変更が分かり易い電子文書を生成することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明にかかる実施例の情報処理を図面を参照して詳細に説明する。
【実施例１】
【００１７】
［レイアウトシステム］
●システム構成
図1はレイアウトシステムを提供する情報処理システム100の構成例を示すブロック図である。
【００１８】
ホストコンピュータ101が実行するレイアウト編集アプリケーション121は、ソフトウェアコンポーネントであるユーザインタフェイス(UI) 103とレイアウトエンジン105を含む。UI 103は、ユーザに表示を提供し、データベース(DB)サーバ119が管理するデータベース(DB) 117内のデータとデータソースを関連付けるメカニズムを提供する。また、レイアウトエンジン105は、詳細は後述するが、矩形範囲として与えられる制限やサイズによって、矩形と線の位置を演算する。なお、UI 103とレイアウトエンジン105は、通信チャネル123を介して通信する。
【００１９】
ホストコンピュータ101は、ネットワーク107を介して、DBサーバ119、ファイルサーバ115、プリンタサーバ109などと通信する。
【００２０】
図2はエンジンサーバ227をネットワーク107上に配置した例を示すブロック図で、レイアウトエンジン225は、レイアウトエンジン105と同様の機能を有する。
【００２１】
エンジンサーバ227のレイアウトエンジン225は、ホストコンピュータ101のレイアウトエンジン105と通信して、レイアウトエンジン105から受信した情報に基づき、上記の演算を代行し、その演算結果をレイアウトエンジン105に返す。このような構成にすれば、ホストコンピュータ101の演算能力をエンジンサーバ227が補い、レイアウト編集処理を高速化することができる。
【００２２】
図3はホストコンピュータ101の構成例を示すブロック図である。
【００２３】
ホストコンピュータ101のCPU 135は、上記のレイアウト編集アプリケーション121のようなソフトウェアの全体または一部を実行する。とくに、レイアウト編集に伴い必然的に生じる表示処理は、CPU 135が、システムバス134を介して後述する構成を制御することで実現される。
【００２４】
ハードディスクドライブ(HDD) 139やメモリ136のROMは、オペレーティグシステム(OS)やレイアウト編集アプリケーション121のようなソフトウェアを格納する。
【００２５】
CPU 135は、I/O 143に接続されたキーボード132やポインティグデバイス133を介して入力されるユーザ指示に従い、HDD 139、CDROMドライブ142に挿入されたCDROMなどに格納されたプログラムやデータをメモリ136のRAMにロードする。また、NIC 138を介してネットワーク107に接続されたファイルサーバ115にアクセスし、ファイルサーバ115が提供するプログラムやデータをダウンロードする。そして、プログラムを実行し、データを処理して、その経過や結果をビデオインタフェイス(I/F) 137に接続されたモニタ144に表示する。そして、ユーザの指示に従い、プログラムの実行結果やデータの処理結果を出力する。
【００２６】
プログラムの実行結果やデータの処理結果の出力としては、HDD 139への格納、NIC 138を介してネットワーク107に接続されたDBサーバ119やファイルサーバ115へのアップロードなどがある。あるいは、USB (Universal Serial Bus)などの汎用I/F 140に接続されたローカルプリンタ145による印刷などでもよい。 勿論、NIC 138を介してネットワーク107に接続されたプリンタ113を印刷に利用することもできる。
【００２７】
●ユーザインタフェイス
図4はUI 103が提供するウィンドウ301を示す図である。なお、ウィンドウ301はモニタ144に表示される。
【００２８】
ウィンドウ301は、表示/非表示が切替可能なメニューバー302を備える。また、モニタ144のスクリーン上の任意位置に移動して配置可能なフローディングツールバー303と、同様にフローティング状態のワークエリア306を備える。
【００２９】
メニューバー302のメニューアイテム304の何れかをクリックすると、ドロップダウン表示により、メニューが階層表示される。ツールバー303は、例えばファイルメニューの環境設定メニューによって非表示/表示が設定可能な多くのツールボタン305やウィジット（widget、部品）を備える。
【００３０】
ワークエリア306内には、カーソルポインタ313が表示される。また、非表示/表示が設定可能なルーラ308は、ワークエリア306内のポインタ313、文書テンプレート309、ライン、マージンガイド310、コンテナまたはオブジェクトの位置を示すために使われる。また、ワークエリア306は、スクロールガイド307によりスクロール可能である。
【００３１】
図5はツールバー303に表示可能な代表的なボタンを示す図である。
【００３２】
選択ツールボタン403は、コンテナの辺を選択、移動、サイズ変更し、そしてロック、ロック解除するためのボタンである。コンテナの周りに選択ボックスをドラッグする、または、キーボード132の例えばCTRLキーをお押しながらコンテナを選択するなどにより、複数のコンテナが選択可能である。
【００３３】
イメージコンテナツールボタン405は、スタティックまたは可変イメージをもつコンテナを作成するために使う。テキストコンテナツールボタン404は、スタティックまたは可変テキストをもつコンテナを作成するために使う。リンクツールボタン406は、コンテナ間の距離をコントロールするリンクを作成するために使う。
【００３４】
これらのボタンは、操作状況に合わせて変化するアイコンのツールチップとして、UI 103に実装される。
【００３５】
●文書テンプレート
ワークエリア306は、文書テンプレートのデザインを表示、編集するために使う。ユーザは、準備段階において、文書の表示概観をデザインし、そしてマージされた文書が可変データの量やサイズに基づき、どのように変化するかを理解することができる。
【００３６】
もし、外部データソースがテンプレートにリンクされている場合、現在の文書をプレビューすることができるように、可変テキストとイメージがそれらのコンテナに表示される。
【００３７】
文書の構造と可変データのコンテナを描写する視覚的な手掛りは、カーソルポインタ313をコンテナ上に移動しときや、コンテナを選択したときにいつも表示される。
【００３８】
与えられた文書テンプレートの頁サイズはウィンドウサイズによって指定される。各文書の実際の頁数は、可変データによって変化する可能性がある。もし、一頁内にフィットできなかった場合は、追加頁が自動生成される。
【００３９】
各頁内の境界線（マージンガイド310）は、頁上の表示可能なオブジェクトの最大幅を示す。
【００４０】
また、図5には文書テンプレート309に設定したオブジェクトの例を示す。コンテナ407、408は、任意位置に設定可能なアンカ409により固定された辺414、非固定の辺410、辺410と辺411を結ぶリンク412、そしてスライダ413をもつ。
【００４１】
●コンテナ
コンテナは、文書テンプレート309内の固定または可変テキスト、イメージをもつスペースで、他のコンテナやオブジェクトとともにレイアウトされる。コンテナは、カーソルポインタ313によって、移動し、リサイズし、そして再作成することが可能である。より正確には、コンテナは、設定の集合、視覚的表現、そして相互作用(interaction)と編集動作をもつ。コンテナを定義すると次のようになる。
【００４２】
コンテナは、固定または可変のコンテンツをもつ。可変コンテンツは、データソースから取得し、異なる文書では異なるかもしれない、という意味で動的である。可変コンテンツは、短時間に変更されたり、アニメーションコンテンツを含むことを意図しない。同様に、固定コンテンツは、コンテナを使って生成するすべての文書において同様に表示される。しかし、可変コンテンツ（動的オブジェクト）の動作によって、固定コンテンツは、各文書において位置が異なるかもしれない。
【００４３】
コンテナは、コンテンツに適用される背景色、ボーダ、フォント、スタイルのような、テキスト設定のような装飾機能をもつ。
【００４４】
コンテナは、文書生成時にデータソースからのデータとマージされる。装飾機能は、どんな固定コンテンツでもそうであるように、表示および印刷物上で可視である。可変コンテンツは、データソースから特定のデータの表示をもたらす。コンテナのこの表現は、例えば印刷されるか、モニタ144に表示されるか、その両方が可能である。
【００４５】
コンテナは、ユーザインタフェイスをもつ。例えばコンテナの編集、そして表示設定のためのインタラクティブなグラフィカルユーザインタフェイス(GUI)をもつ。インタフェイスの要素は、コンテナの編集時はモニタ144に表示されるが、文書の表示時は表示されず、印刷時は印刷されない。UI 103は、背景色やフォントのようなコンテナの装飾機能の幾つかを表示し、コンテナ編集やの表示設定を許容するための機能を追加する。UI 103の特別な機能には、例えばボーダまたはコンテナのサイズや位置を対話的に変更し、表示するための角アイコンがある。さらに、コンテナがデータソースからデータをマージされた場合にコンテナの動作を示すために上書きされる数、線、アイコン、テキストがある。
【００４６】
●コンテナの制約
コンテナは、各文書によって表示されるコンテンツを、どのように結び付けるかを制御する制約がある。これらの制約は（固定、可変コンテンツをコンテナと結び付けるとともに）、ユーザが一つの文書テンプレートから、多数の文書の生成を制御する主要な方法である。制約の一例は『このコンテナのコンテンツの高さは、最大値4インチです』である。制約のもう一つの例は『コンテナのコンテンツの左端は、各文書で同じ水平位置に表示しなければならない』である。ここに記述される内容は、GUIを使って、このような制約を表示、編集するための様々な方法である。
【００４７】
ユーザは、コンテナにより、文書のコンテンツのサイズ、位置を指定することが可能である。幾つかの文書は、一つの文書テンプレートから生成される。従って、コンテナに多数の可能性と制約を指定し、表示するためのUIが必要になる。
【００４８】
一つのコンテナの辺は、関連付けられたコンテンツが文書内で表示される仮想の境界線を定義する。ここでコンテナの左辺を論じることは、関連付けられたコンテンツがどんな文書内でも表示可能な最左端の辺を論じることと同じである。同様に、コンテナの高さを論じることは、作成された文書に関連付けられたコンテンツの高さの制約を論じることである。以下で、UI 103を参照して、コンテナの辺または大きさを論じる際に、上記の区別を明らかにする。
【００４９】
以下では、コンテンツの表示を制限するために使う、幾つかの値を定義する用語『固定』は、すべての文書で同じである。
【００５０】
もし、コンテナの幅が固定ならば、関連付けられたコンテンツに割り当てられる幅は、すべての文書で同じになる。もし、コンテナの高さが固定ならば、関連付けられたコンテンツに割り当てられる高さは、すべての文書で同じになる。
【００５１】
もし、距離の制約が固定ならば、指定された距離は、すべての文書のための制約である。もし、コンテナの左右辺が固定ならば、辺の水平位置が、頁に関して、すべての文書で同じである。しかし、コンテナの高さまたは垂直方向の位置は可変である。例えば、もしコンテナの左辺が固定ならば、関連付けられたコンテンツは、一つの文書では頁の上部近くに表示され、他の文書では頁の下部近くに表示されるかもしれないが、左辺はすべてのケースで同じ水平位置にある。
【００５２】
もし、コンテナの上下辺が固定ならば、コンテナの高さおよび辺の垂直位置が、頁に関して、すべての文書で同じである。しかし、コンテナの幅または水平位置は可変である。
【００５３】
コンテナの垂直軸は、コンテナの左右辺が平行で、それらの中間に位置する想像上の垂直線である。もし、コンテナの垂直軸が固定ならば、コンテナの左右辺の水平位置の平均は、すべての文書で同じである。この制約でも、コンテナの幅は変化可能である。左右辺の両方が異なる文書では、左右辺は垂直軸に遠いかもしれないし近いかもしれないが、垂直軸はすべての文書で同じ水平位置にある。しかし、コンテナの高さと水平位置は、この制約に影響されない。
【００５４】
同様に、もし、水平軸が固定ならば、コンテナの上下辺の垂直位置を制約するが、コンテナの高さは、この制約に影響されない。
【００５５】
また、水平、垂直軸の両方が固定ならば、コンテナの中心位置が固定されることを意味する。しかし、コンテナの幅、高さは、この制約に影響されない。
【００５６】
もし、コンテナの角、コンテナの辺の中間位置、または、コンテナの中心位置が固定ならば、すべての文書の同じ場所、そしてコンテナに関連付けられた同じ場所に、コンテンツが表示される。例えば、コンテナの左上角が固定ならば、配置されたコンテナの左上位置がすべての文書で同じになる。
【００５７】
垂直辺または軸は、頁の左辺または右辺、左マージンまたは右マージン、あるいは、他の水平位置に関連して固定である。同様に、水平辺または軸は、頁の上辺または下辺、マージン、あるいは、他の垂直位置に関連して固定である。用語『固定』は、すべての文書が同じ頁サイズであれば文書間に相違はないから、文書間で頁サイズが変わる場合にのみ重要になる。
【００５８】
用語『固定』の反対語『可変』は、辺、軸、角、中間位置または文書の制約が、文書間で変化するかもしれないことを意味する。しかし、文書の特定な設定でそうする必要がないかもしれない。例えば、変更による辺の実際の好ましい位置のような、他の外部制約があるが、もし外部制約が適用されないならば、辺は非固定としてラベル付けされてるので、辺の位置を変更することができる。
【００５９】
●コンテナの表示、編集
新規コンテナの作成
コンテナには、テキストコンテナとイメージコンテナの二種類がある。テキストコンテナはテキストと、埋め込みイメージをもつ。イメージコンテナは、イメージだけをもつ。
【００６０】
新規コンテナは、図5に示すテキストコンテナツールボタン404またはイメージコンテナツールボタン405をクリックして、文書テンプレート309に矩形をドラッグして作成する。他の方法としては、テキストコンテナツールボタン404またはイメージコンテナツールボタン405をクリックしてアクティブにした後、文書テンプレート309の任意位置をクリックしても、新規のコンテナを作成可能である。
【００６１】
既定サイズのコンテナを挿入するか、新規のコンテナサイズを設定するためのダイアログボックスまたは他のプロンプトが表示される。幾つかのコンテナは自動的に、前もって定義されたか、計算されたスキーマによって作成され配置される。
コンテナの表示
【００６２】
設定されたコンテナの状態は、グラフィカルな表現で描画されるのが好ましい。幾つかの辺の状態は、幾つかの状況を分けて表現するために、グラフィック表示より少なくなるかもしれない。
【００６３】
図6はコンテナの模範的な辺ルールを例示する図である。
【００６４】
レイアウト編集アプリケーション121は、辺の状態を表現するために、実線503または破線504で辺を描き、アンカ506、507、509、ハンドル502、スライダ（図5に符号413で示す）、拡縮アイコン505、そして色を有す。なお、ハンドル502は、辺を移動、修正するためのコントロール点である。
【００６５】
図6におけるコンテナ表示ルールは次のとおりである。
(1)固定の辺は、実線で描画し、その中央付近にアンカ509を描画する
(2)幅が固定のコンテナは、左右の辺を実線で描画する
(3)高さが固定のコンテナは、上下の辺を実線で描画する
(4)軸は描画しない
(5)未描画の辺は、破線で描画し、その近傍に拡縮アイコン505を描画する
(6)交差する辺（または軸）が固定ならば、その交点にアンカ506（または507）を描画する
(7)固定の辺で、アンカ509が非描画であれば、その中央付近にスライダ413を描画する
(8)交差する辺（または軸）にアンカやスライダが非描画であれば、その交点にハンドル502を描画する
【００６６】
ルール1から3で保証する線は、もしそれらが固定または制限されているならば、破線で描画する。ルール5で保証する可変の辺は、破線で描画される。ルール6から8で保証する固定辺にはアンカ506（または507）を表示し、幾つかの固定辺にはスライダ413を表示し、他はハンドル502を表示する。
【００６７】
上記において、辺は一度だけ描画されることが必要である。そして、ルールが描画すべき辺に及べば、その後、ルールが再び描画すべき辺に及ぶことはない。例えばコンテナがとても小さくてアイコンが互いに重なる、または、他の表示機能を不明瞭にするならば、アイコンをより簡略化する、または、アイコンを省略してもよい。
【００６８】
可変の辺の描画位置は、コンテナのコンテンツに依存する。後述するように、文書テンプレートにコンテンツがマージされて、UI 103によって可視になることを意味する『動的な校正処理』が使われる。また、すべての文書で平均化されるコンテナのコンテンツエリア、あるいは、可変の辺を、UI 103上のどこにレイアウトすべきかを決定する代替手段を使用してもよい。
【００６９】
これらのコンテンツ表現は、コンテナの辺の状態を表示するグラフィカル手段を提供する。その表現の解釈は、次のとおりである。
・図5に示す破線410は、コンテナのコンテンツに依存し、文書内の辺の位置
を意味する
・実線は制限された辺を意味する。何故ならば、図5の辺414、あるいは、
コンテナの幅または高さが固定されている。なお、図5のコンテナ408は、
幅と高さが固定されている
・アンカは、辺または軸の交点が固定されていることを意味する。それ故、
アンカ点は、すべての文書の水平、垂直位置に現れる。当然、アンカは
固定される。図5に示すアンカ409は、交差する辺414が固定であることを
意味するアンカの例である
・スライダは、対応する辺が固定であることを意味するが、コンテナは
辺に沿う多くの位置『スライドの長さ』で位置が決定される。例えば
図5に示すスライダ413は、コンテナ408のコンテンツが、文書内の特定の
ダイアグラムで表される位置の、左または右に表示されるかもしれない
【００７０】
これらのアイコン、辺の幾つかまたはすべては、どのツール、どのコンテナを選択し、ハイライトまたはアクティブにするかによって、描画されたりされなかったりする。一般に、コンテナの辺、アイコンは文書テンプレートのデザインの手助けであるため、コンテンツが表示状態の場合は表示されない。
【００７１】
また、コンテナの幅、高さの最小、最大値の設定は、副次的なダイアログウィンドウに表示される。
【００７２】
図6(a)に示すコンテナ501は幅、高さとも可変であり、固定辺503は実線で、可変の辺504は破線で表現される。拡縮アイコン505は、隣接する辺504が可変であることを示す。
【００７３】
図6(b)に示すコンテナ501は幅、高さとも可変である。アンカ506により、辺503の交点が固定されていることが示される。
【００７４】
図6(c)に示すコンテナ501は幅、高さとも可変である。アンカ507と拡縮アイコン505により、コンテナ501の中心から任意にコンテナを拡大または縮小可能であることが示される。
【００７５】
図6(d)に示すコンテナ501は、上辺508が固定されていることを除けば、幅、高さとも可変である。上辺508の中央近傍に配置されたアンカ509により、上辺508が固定されていることが示される。そして、拡縮アイコン505により、下辺の移動により、コンテナを垂直方向に拡大または縮小可能であることが示される。
【００７６】
●リンク
リンクは、コンテナとコンテナの関連を示す。関連とは、コンテナ間の距離を示し、リンクによって関連付けられたコンテナ同士は、互いのレイアウト変更の影響を受けてレイアウトを計算する。図5に示すリンク412は、コンテナ407と408を関連付ける。リンクの設定方法、リンクで関連付けられたコンテナのレイアウトの計算方法は後述する。
リンクの設定
【００７７】
図7はリンクの設定方法を示すフローチャートで、レイアウト編集アプリケーション121がユーザに提供する処理である。また、図8はUI 103の表示例を示す。これらを用いて、コンテナにリンクを設定する方法を説明をする。
【００７８】
リンクを設定する場合、ユーザは、リンクを設定する最低二つのコンテナを作成する(S601)。図8は、二つのコンテナを作成してリンクを設定する例を示している。
【００７９】
次に、ユーザは、リンクツールボタン406をクリックして選択状態にする(S602)。図8は、コンテナを作成し、リンクツールボタン406を選択し、リンクを設定する動作を示す。
【００８０】
図8(a)に示す辺701と702はアンカ703、704によって固定された辺である。ユーザは、リンクを設定する片方のコンテナにカーソルポインタ705を移動してクリックし、当該コンテナを選択する(S603)。
【００８１】
次に、図8(b)に示すように、ユーザは、カーソルポインタ705を他方のコンテナに移動し、クリックする(S604)。図8(b)に示すライン706は、図8(a)におけるクリック位置とカーソルポインタ705の移動後の位置を結ぶ直線で、どの位置にリンクが設定されるかを示すユーザインタフェイスである。
【００８２】
ステップS604の後、図8(c)に示すように、リンク707が表示される(S605)。また、リンク707の設定により、コンテナの表示も自動的に変更される(S606)。
【００８３】
図8(c)の破線で示される辺708は、前述したように可変の辺である。このようにコンテナの辺の状態が変化するのは、リンク707の設定により、コンテナの辺を可変にする必要があるためである。リンクを設定したにもかかわらず、すべての辺が固定という矛盾を防ぐために、自動的に行われる処理である。
【００８４】
また、図8(c)に示す拡縮アイコン709は、リンクの設定により、コンテナを変化可能な方向をユーザに視覚的に示すマークである。図8(c)の例では、左のコンテナ701の右辺と、右のコンテナ702の左辺が可変になったが、これは一例で、右のコンテナ702が図5に示すスライダ413をもつ設定に変化しても構わない。
【００８５】
●レイアウト計算
レイアウト編集アプリケーション121は、コンテナを作成して、コンテナ間の関連付けを行い、レイアウトを作成するレイアウトモードを備える。また、作成したレイアウトにレコードのコンテンツを挿入し、実際にコンテンツが挿入された後のレイアウト結果をプレビューするプレビューモードを備える。ユーザがプレビューモードを選択すると、レイアウト編集アプリケーション121は、実際のレコードのコンテンツを挿入し、レイアウトを計算する。なお、プレビューモードは表示上でのレイアウト計算で、印刷時は、コンテンツを挿入して記録紙サイズに合わせたレイアウトを計算する。その計算方法は同じである。なお、レコードとは、図1に示すDB 117に記録された情報の単位である。
【００８６】
図9はレイアウト計算のフローチャートで、ユーザがプレビューモードを選択すると、レイアウト編集アプリケーション121が実行する処理である。
【００８７】
まず、プレビューするレコードのコンテンツを選択し、レイアウトに挿入して(S802)、レイアウトを計算する(S803)。続いて、計算したレイアウトを表示し(S804)、他のレコードをプレビューするか否かをユーザに問い合わせる(S805)。ユーザが他のレコードをプレビューする必要はないと判断した場合は、プレビューモードを終了する(S807)。
【００８８】
また、他のレコードをプレビューする場合は、他のレコードに移動して(S806)、そのコンテンツを選択し、レイアウトに挿入して(S802)、再びレイアウトを計算し(S803)、プレビューする(S804)。
【００８９】
なお、印刷時は、印刷するコンテンツすべてについて、順にレイアウトを計算する。従って、ステップS805、S807の処理は存在しない。そして、すべてのコンテンツについて印刷が終了した時点で印刷処理を終了する。
レイアウトの計算方法
【００９０】
図10はレイアウトの計算(S803)の詳細を示すフローチャートである。
【００９１】
まず、レイアウトを計算するコンテナの集合を求める(S901)。レイアウト計算は、関連付けられたコンテナを一つの集合として計算を行う。
【００９２】
図11は頁上に四つのコンテナがレイアウトされた例を示す図である。図11の各コンテナは関連付けが設定されていて、コンテナAとBが、そしてコンテナCとDがリンク1106によって関連付けされている。この場合、コンテナA、Bが集合1、コンテナC、Dが集合2になる。なお、前述したように、1101はアンカ、1102は固定辺、1103はハンドル、1104は拡縮アイコン、1105は可変の辺、1106はリンク、そして1107はスライダを示す。
【００９３】
次に、求めたコンテナの集合から、レイアウトを計算するために一つの集合を選択し、選択した集合についてレイアウトを計算する(S902)。続いて、レイアウトするコンテナのサイズと、実際のコンテンツのサイズの差ができるだけ小さくなるように、レイアウトを最適化する(S903)。レイアウトの最適化は、サイズの動的変化が可能なように関連付けられたコンテナそれぞれに挿入されるコンテンツのサイズと、レイアウトするコンテナのサイズの差が、それらコンテナ間でできるだけ同じになるようにする。そして、レイアウトの最適化後、ルール違反を判定し(S904)、ルール違反がある場合は再びルール違反しないように再計算する(S903)。このルールは、レイアウト作成時にユーザによって設定される制限で、コンテナのサイズと位置、リンクの長さなどである。ルール違反のないレイアウトを計算すると、その集合のレイアウトは完成する。そして、ステップS905の判定により、ステップS902〜S904の処理を頁上のすべての集合について実行し、頁全体のレイアウトを決定する。
【００９４】
図12はレイアウト計算時のUI 103の表示例を示す図である。
【００９５】
図12(a)は、あるコンテンツが挿入され、レイアウトが決定された状態を表す。1001、1002はアンカ、1003、1004は固定辺、1005は可変の辺、1006、1007は拡縮アイコン、1008はリンクである。この状態において、コンテンツを変更し、サイズが異なるコンテンツを挿入する。
【００９６】
図12(b)は、図12(a)のレイアウト状態に、別のコンテンツを重ねた状態を示す。1009はそれぞれのコンテナに挿入されるコンテンツのサイズを表す。
【００９７】
図12(c)は、レイアウトの計算結果を示す。計算後の各コンテナのサイズは、実際に挿入するコンテンツのサイズと同等の差をもつように計算され、かつ、前述したルール違反がないように計算される。図12(b)に示す挿入するコンテンツサイズ1009と、図12(c)に示す計算後のコンテンツサイズ1010は、各コンテナにおいて同等の差をもつ。
【００９８】
●可変リンクの設定
図13は一般的な可変リンクの状態を示す図である。
【００９９】
図5とほぼ同様に、ウィンドウ301にはツールバー303と文書テンプレート309が表示され、文書テンプレート309上にコンテナ1203、1204が存在する。各コンテナは、アンカ1201、1202によって固定された辺1205、1206からなる。各コンテナ1203と1204の間には、可変サイズのリンク1209があり、各コンテナを結んでいる。なお、このような状態のコンテナ1203、1204を「エッジコンテナ」と呼ぶ場合がある。リンク1209が設定されているので、各コンテナの右辺1207と左辺1208は破線で表現され、拡縮アイコン1210、1211が表示される。つまり、辺1207、1208が可変であることが示されている。
【０１００】
図14はリンク1209の情報を設定するダイアログ1401の例を示す図である。
【０１０１】
ダイアログ1401は、タイトルバー1402、ツールボタン1403、ダイアログの設定を適用したりダイアログを閉じたりするボタン1404、各種情報を設定する領域1409で構成される。リンクの種類領域1405のラジオボタン1406、1407により、可変長または固定長のリンクを設定することができる。また、可変長のリンクの場合は、リンクの距離領域1408のテキストボックス1410〜1412により、リンクの距離の最大値、最小値、現在の値を設定することができる。
【０１０２】
図15はリンクの設定方法を示すフローチャートで、図7に示したリンクの設定方法を踏まえ、例えば図16に示すコンテナ1501と1502の間に張られた固定長のリンク1503を、図13に示す可変長のリンク1209に変更する操作を示す。なお、図15に示す処理は、レイアウト編集アプリケーション121がユーザに提供する処理である。
【０１０３】
ユーザは、カーソルポインタを移動してリンク1503をクリックし選択し(S1302)、マウス133の操作またはキーボード132のキー操作により、図14に示すダイアログ1401を表示する(S1303)。この時点では、リンク1503は固定長であるから、ラジオボタン1406が選択されている。
【０１０４】
次に、ユーザは、ラジオボタン1407を選択してリンク1503を可変長に変更する(S1304)。この操作により、リンクの距離領域1408に配置されたテキストボックス1410〜1412が有効になり、数値設定が可能になる。ユーザは、リンク1503の距離を設定するために、テキストボックス1410〜1412に適切な値を設定する(S1305)。次に、ユーザがボタン1404を押して設定を適用すると、図13に示すリンク1209のような表示状態に変化する(S1306)。なお、このダイアログ1401の設定情報は、メモリ136の所定領域に格納される。
【０１０５】
図16は固定長のリンク1503を使用する場合のレイアウト結果を示している。このレイアウト計算は前述したように行われる。
【０１０６】
例えば、図16のコンテナ1501と1502にサイズが違うコンテンツが挿入される場合を想定する。各コンテンツのサイズを最適と考え、コンテナ1501は、挿入されるコンテンツのサイズになるように、符号1504で示すサイズ（最適コンテナサイズ）に近付こうと、右方向に拡大する。同様に、コンテナ1502も、挿入されるコンテンツのサイズになるように、符号1505で示す最適コンテナサイズに近付こうと、左方向に拡大する。
【０１０７】
しかし、コンテナ1501と1502の間には固定長のリンク1503が設定され、コンテナ1501の左辺とコンテナ1502の右辺はアンカによって固定されている。そのため、レイアウトの計算時に優先的に計算されるコンテナ1501と1502のサイズが変更される。その結果、コンテナ1501と1502は、コンテンツのサイズに合った最適なサイズを確保することはできず、最適コンテナサイズ1504、1505よりも小さいコンテナサイズになる。言い換えれば、リンク1503が固定長であるため、コンテナ1501と1502は最適コンテナサイズを達成できない。
【０１０８】
図17は可変長のリンク1603を使用する場合のレイアウト結果を示している。このレイアウト計算は前述したように行われる。
【０１０９】
コンテナ1501と1502の間に、可変長のリンク1603が設定されていると、コンテナ1501と1502のサイズを変更する際に、リンク1603の距離を縮めることができる。その結果、コンテナ1501と1502のサイズを、図16の例よりも拡大することが可能で、コンテンツのサイズに合った最適コンテナサイズを達成するか、あるいは、より最適コンテナサイズに近いサイズを得ることができる。
【０１１０】
［レイアウト処理］
●役割に設定された相関関係に基づくレイアウト
レイアウト編集アプリケーション121は、役割（アクタ）ごとに設定された相関関係と、コンテナに設定されたレコードのプロパティに基づき、コンテナを最適コンテナサイズにレイアウトする。
【０１１１】
図18は役割に設定された相関関係に基づくレイアウトを示すフローチャートで、レイアウト編集アプリケーション121が実行する処理である。
【０１１２】
まず、ユーザの役割指定を入力し(S1701)、指定された役割に登録されたコンテナの相関関係を参照する(S1702)。なお、役割の設定、コンテナの相関関係は後述する。
【０１１３】
次に、コンテナの総数をレジスタNに設定し(S1703)、変数nに1を設定する(S1704)。そして、参照した相関関係に基づきコンテナを抽出し(S1705)、コンテナを配置し(S1706)、変数nをインクリメントする(S1707)。そして、ステップS1708の判定により、n＞Nになるまで、ステップS1705〜S1707の処理を繰り返して、すべてのコンテナを配置する。
【０１１４】
次に、コンテナに対する優先度を参照し(S1709)、レイアウト計算を開始する(S1710)。
【０１１５】
次に、コンテナに設定されたコンテンツのプロパティを検出する(S1711)。コンテンツのプロパティからは、DB 117に格納されたコンテンツの実際のサイズが得られる。なお、コンテンツにスタティックなテキストや画像が挿入されている場合は、それも含むサイズを取得する。そして、コンテンツのプロパティとコンテナに設定された設定値に基づき、レイアウトを計算し(S1712)、レイアウト結果をUI 103が提供する画面に表示する(S1713)。
【０１１６】
なお、ステップS1709からS1712のレイアウト計算処理は、レイアウト編集アプリケーション121が行うことを想定するが、レイアウトエンジン225で行ってもよい。
役割の設定
【０１１７】
役割は、ユーザごとに登録してもよいし、複数のユーザからなるグループごとに登録してもよい。
【０１１８】
図19は相関テーブルの登録例を示す図である。図19に示すA〜Eはそれぞれコンテンツを示し、○は表示を、×は非表示を示す。また、左隅の列は主表示のコンテンツを示し、最上部の行は副表示のコンテンツを示す。例えば、コンテンツAを表示する場合は、二行目の例では、コンテンツAのほかにコンテンツCとEを表示する。このようなテーブルが、役割ごとに登録可能である。
コンテナの相関関係
【０１１９】
図20はコンテナの表示、非表示および相関関係を示す図である。図20に示すA〜Eはそれぞれコンテナを示し、各セルの数値は、左隅の列のコンテナの、他のコンテナに対する表示比率を示す。例えば、コンテナAを選択した場合、コンテナBは3、コンテナCは0、コンテナDは5、コンテナEは0の比率で表示することを示す。なお、コンテナA自体は、設定されたコンテナのサイズで表示する。このように、図20に示す相関関係テーブルは、コンテナの表示または非表示を示すフラグを有する。
【０１２０】
図21はコンテナの表示状態例と、その遷移例を示す図である。
【０１２１】
図21(a)はコンテナDが選択されている状態の表示例である。選択されたコンテナDと図20の相関関係テーブルに基づきコンテナのレイアウトが決定され、決定されたレイアウトが図21(a)に表示されている。図21(a)では、コンテナAは5、コンテナBは4、コンテナCは1の比率で表示されている。この表示状態でコンテナAを選択すると、図21(b)の表示状態に遷移し、コンテナBは3、コンテナDは5の比率で表示される。さらに、コンテナBを選択すると、図21(c)に示す表示状態に遷移し、コンテナAは3、コンテナCは2、コンテナDは4、コンテナEは1の比率で表示される。このように、選択したコンテナとコンテナの相関関係に従い、動的にレイアウトが変更される。なお、表示比率0のコンテナは表示されない。また、役割に応じた相関関係テーブルが登録されており、指定された役割に応じた相関関係テーブルに基づき、コンテナのレイアウトが決定される。
【０１２２】
●未読・既読管理に基づくレイアウト
図22は各コンテナに対するユーザごとの未読・既読状態を管理するテーブル（以下「未読・既読管理テーブル」と呼ぶ）の一例を示す図である。なお、未読・既読管理テーブルは、DB 117の各レコードごとに用意される。
【０１２３】
ユーザは、ユーザごとに、ユーザが属するグループごとに、または、ユーザの役割ごとに文書テンプレートが指定されている。そして、レイアウト編集アプリケーション121は、文書テンプレートで使用される各コンテナに対するユーザの未読・既読状態をDB 117に格納された未読・既読管理テーブルによって管理する。
【０１２４】
図23は未読・既読管理に基づくレイアウトを説明するフローチャートで、レイアウト編集アプリケーション121が実行する処理である。
【０１２５】
まず、ユーザは、ユーザ名やパスワードなどのユーザ情報を入力する。レイアウト編集アプリケーション121は、入力されたユーザ情報から情報の表示を要求するユーザを特定し(S2301)、特定したユーザに対応する文書テンプレートの情報から表示するコンテナを特定する(S2302)。
【０１２６】
次に、レイアウト編集アプリケーション121は、特定したコンテナの総数をレジスタNに設定し(S2303)、変数nに1を設定する(S2304)。そして、特定したコンテナの一つを抽出し(S2305)、変数nをインクリメントする(S2306)。そして、ステップS2307の判定により、n＞NになるまでステップS2305、S2306の処理を繰り返して、特定したすべてのコンテナを抽出する。
【０１２７】
次に、レイアウト編集アプリケーション121は、未読・既読管理テーブルを参照して、特定したユーザの未読・既読状態を示す情報を取得する(S2308)。そして、未読状態のコンテナが存在するか否かを判定し(S2309)、存在すれば未読状態のコンテナの表示の重み付けを変更する(S2310)。なお、重み付けの変更の詳細は後述する。
【０１２８】
次に、レイアウト編集アプリケーション121は、文書テンプレートと各コンテナの重み付けに従いコンテナを配置する(S2311)。なお、テンプレートと各コンテナの重み付けに従うコンテナの配置の詳細は後述する。そして、コンテナの重み付けに応じてレイアウトを計算し(S2312)、レイアウト結果をUI 103が提供する画面に表示する(S2313)。
【０１２９】
なお、ステップS2312、S2313のレイアウト計算処理は、レイアウト編集アプリケーション121が行うことを想定するが、レイアウトエンジン225で行ってもよい。
重み付けの変更
【０１３０】
通常、コンテナの重み付けは標準値（初期値）の「1」が設定されている。そして、ステップS2309で未読と判定されたコンテナの重み付けはステップS2310で例えば「2」に変更される。なお、すべてのコンテナが未読の場合は、すべてのコンテナの重み付けが「2」に変更される。
【０１３１】
図22の未読・既読管理テーブルに示すユーザYの場合、コンテナB、Eが未読であるから、コンテナB、Eの重み付けは「2」に変更され、残るコンテナA、C、Gの重み付けは「1」のままである。なお、ユーザYの文書テンプレートには、コンテナDとFが存在しないため、当該コンテナの重み付け、未読・既読状態を示す情報は存在しない。また、この重み付けの変更は、一時的なものであり、レイアウト計算が終了した時点で破棄され、重み付けは「1」に戻る。
コンテナの配置
【０１３２】
レイアウト編集アプリケーション121は、各コンテナの重み付けを調べ、重み付けが同一ではない場合、重み付けが大きいコンテナを優先して表示するようにコンテナを配置する。図24はコンテナの重み付けを考慮したコンテナの配置を示すフローチャート、図25は文書テンプレートの一例を示す図、図26はコンテナの配置結果の一例を示す図である。
【０１３３】
図22の未読・既読管理テーブルに示すユーザYの文書テンプレートは図25に示すような形態であるとする。図25(a)の第一の画面のテンプレートは、ユーザYに対して最初に提示する画面で、図25(b)の第二の画面のテンプレートは、第一の画面においてユーザ指示を受けた場合に遷移する画面である。
【０１３４】
まず、レイアウト編集アプリケーション121は、ユーザの文書テンプレートを特定し(S1901)、特定した文書テンプレートに存在するコンテナに設定されている重み付けがすべて等しいか否かを判定する(S1902)。ユーザYの未読・既読状態が図22に示す状態であれば、コンテナB、Eの重み付けが他のコンテナと異なるため、処理はステップS1903に進む。
【０１３５】
レイアウト編集アプリケーション121は、重み付けが大きいコンテナB、Eを優先表示するようにコンテナを配置する(S1903)。すなわち、重み付けが大きいコンテナB、Eに挿入されるコンテンツは、他のコンテナに挿入されるコンテンツよりも優先して配置される。図25(a)に示すように、第一の画面のテンプレートにはコンテナA、C、E、Gが存在するが、コンテナB、Eを優先配置するために、図26(a)に示す配置結果になる。第一の画面のテンプレートに存在するコンテナCは、コンテナB、Eの優先配置により配置されない。
【０１３６】
次に、レイアウト編集アプリケーション121は、ステップS1903で優先配置した以外のコンテナを文書テンプレートに基づき配置する(S1904)。ただし、ステップS1903の優先配置により配置できなかったコンテナを考慮した配置を行う。上記の例では、第一の画面にコンテナCに代わってコンテナBが配置された。そこで、図26(b)に示すように、第二の画面のテンプレートに存在するコンテナB（第一の画面に移動済み）に代わって、コンテナCは、第二の画面に配置される。
【０１３７】
［レイアウトシステムの適用例］
以下では、上述したレイアウトシステムを電子カルテに適用する例を詳細に説明する。電子カルテは、様々な入力コントロールとデータを有し、医師、看護士、医療技師、薬剤師、医療事務員などにより必要な表示、閲覧内容が異なる。従って、上述したレイアウトシステムにより、ユーザまたはグループ単位に役割を設定し、ユーザが望む電子カルテの表示、閲覧を提供する。
【０１３８】
●電子カルテのテンプレート
図27は医師（ユーザ）と看護士（ユーザ）の電子カルテテンプレートの一例を示す図である。図27(a)(b)は医師のメイン画面、サブ画面のテンプレートを示している。コンテナA、B、C、D、E、F、Gにそれぞれ「患者氏名」「所見」「連絡事項」「薬一覧」「処方」「備考」「医師サイン」の各内容が表示される。また、図27(c)(d)は看護士のメイン画面、サブ画面のテンプレートを示している。コンテナA、B、C、E、Gに、医師の場合と同様に、それぞれ「患者氏名」「所見」「連絡事項」「処方」「医師サイン」の各内容が表示される。図27(c)(d)のテンプレートにはコンテナD（薬一覧）とコンテナF（備考）の設定はない。
【０１３９】
なお、以下では、電子カルテテンプレートにおいて「コンテナ」と「項目」をほぼ同義の用語として使用する。また、画面表示と項目の関係を理解し易くするために、図27以降では、項目の表示領域の左上に□で囲った項目名（AやCなど）を表示する場合がある。しかし、この項目名の表示が実際に行われるわけではない。
【０１４０】
●電子カルテの作成
図28は医師Aが電子カルテに記入し、その後、当該電子カルテを看護士Bが閲覧する際のメイン画面およびサブ画面の一例を示す図である。また、図29は、その際の未読・既読管理テーブルを示す図である。
【０１４１】
最初に医師Aが電子カルテに記入する際は、図27に示す医師のテンプレートどおりにコンテナが配置され、レイアウトが計算された電子カルテが表示される。医師Aが電子カルテに記入し、当該電子カルテをレコードとしてDB 117に保存すると、DBサーバ119は、情報の更新を検知して、この電子カルテに対するユーザの未読・既読管理テーブルを作成する。つまり、医師Aの記入項目（AからG）について、医師Aの未読・既読状態を「既読」にし、医師A以外のユーザの未読・既読状態を「未読」にした未読・既読管理テーブルを作成する。
【０１４２】
この電子カルテが保存された後、当該電子カルテに看護士Bがアクセスすると、すべての項目が未読状態であるから、図27に示す看護士のテンプレートどおりにコンテナが配置され、レイアウトが計算された電子カルテが表示される。その際、レイアウト編集アプリケーション121は、当該表示を行った旨をDBサーバ119に通知する。従って、DBサーバ119は、当該電子カルテに対応する未読・既読管理テーブルの各項目について、看護士Bの未読・既読状態を「既読」に変更する。他方、当該電子カルテを未表示の看護士Cの未読・既読状態は「未読」のままである。
【０１４３】
●電子カルテの更新
次に、既存の電子カルテに変更を加えた場合を説明する。
【０１４４】
図30は医師Aが電子カルテを更新し、その後、当該電子カルテを看護士B、Cが閲覧する際のメイン画面およびサブ画面の一例を示す図である。また、図31は、その際の未読・既読管理テーブルを示す図である。
【０１４５】
図30に示すように、医師Aが既存の電子カルテに変更を加え、当該電子カルテをレコードとしてDB 117に保存すると、DBサーバ119は、情報の更新を検知して、この電子カルテに対するユーザの未読・既読管理テーブルを更新する。つまり、図31に示すように、未読・既読管理テーブルの医師Aが変更を加えた項目B、Eについて、医師Aの未読・既読状態を「既読」にし、医師A以外のユーザの未読・既読状態を「未読」にする。
【０１４６】
この電子カルテの更新後、当該電子カルテに看護士Bがアクセスすると、項目B、Eが未読状態であるから、更新された項目B、Eをメイン画面に表示するようにコンテナが配置され、レイアウトが計算された電子カルテが表示される。その結果、項目Cはサブ画面に移動される。勿論、レイアウト編集アプリケーション121は、当該表示を行った旨をDBサーバ119に通知するので、DBサーバ119は、当該電子カルテに対応する未読・既読管理テーブルの各項目について、看護士Bの未読・既読状態を「既読」に変更する。
【０１４７】
このように、看護士Bによる当該電子カルテの以前の閲覧時から今回の閲覧時までに、医師Aが変更を加えた項目がメイン画面にレイアウトされ表示される。従って、看護士Bは変更箇所を容易に探し出すことができ、その変更内容を短時間かつ正確に知ることができる。電子カルテのように複数の表示項目をもつ情報は、変更箇所を見落とす可能性が高い。そして、変更箇所の見落としは医療ミスへとつながる可能性がある。本実施例によれば、変更箇所をメイン画面に表示することで、変更箇所が分かり易い表示をユーザに提供する。従って、変更箇所の見落としを防ぐことができる。
【０１４８】
他方、電子カルテの更新後、当該電子カルテに看護士Cがアクセスすると、当該電子カルテを未閲覧の看護士Cの未読・既読状態はすべて「未読」である。従って、図30に示すように、看護士のテンプレート（図27）どおりにコンテナが配置され、レイアウトが計算された電子カルテが表示される。言い替えれば、看護士Cにとって、医師Aが加えた変更は、変更箇所とはならないから、通常どおりにレイアウトされた電子カルテが表示される。勿論、レイアウト編集アプリケーション121は、当該表示を行った旨をDBサーバ119に通知するので、DBサーバ119は、当該電子カルテに対応する未読・既読管理テーブルの各項目について、看護士Cの未読・既読状態を「既読」に変更する。
【０１４９】
図32は看護士Bが電子カルテを更新し、その後、当該電子カルテを看護士C、医師Aが閲覧する際のメイン画面およびサブ画面の一例を示す図である。また、図33は、その際の未読・既読管理テーブルを示す図である。
【０１５０】
図32に示すように、看護士Bが既存の電子カルテに変更を加え、当該電子カルテをレコードとしてDB 117に保存すると、DBサーバ119は、情報の更新を検知して、この電子カルテに対するユーザの未読・既読管理テーブルを更新する。つまり、図33に示すように、未読・既読管理テーブルの看護士Bが変更を加えた項目Cについて、看護士Bの未読・既読状態を「既読」にし、看護士B以外のユーザの未読・既読状態を「未読」にする。
【０１５１】
この電子カルテの更新後、当該電子カルテに看護士C、医師Aがアクセスすると、項目Cが未読状態であるから、更新された項目Cをメイン画面に表示するようにコンテナが配置され、レイアウトが計算された電子カルテが表示される。この場合は、通常のテンプレートどおり（図27）の表示になる。勿論、レイアウト編集アプリケーション121は、当該表示を行った旨をDBサーバ119に通知するので、DBサーバ119は、当該電子カルテに対応する未読・既読管理テーブルの各項目について、看護士B、医師Aの未読・既読状態を「既読」に変更する。
【０１５２】
このように、看護士Cや医師Aは、看護士Bによる電子カルテの更新を意識して確認しようと操作を行わなくても、更新後は、変更箇所がメイン画面に表示されるようにレイアウトされるため、容易、短時間かつ正確に変更箇所を確認することができる。
【０１５３】
上記においては、更新されたレコードの保存が指示された場合、変更者以外のすべてのユーザの未読・既読状態を「未読」に変更する例を示したが、これに限定されるものではない。例えば、変更者が任意のユーザの未読・既読状態を「未読」に変更するように、レイアウト編集アプリケーション121またはDBサーバ119に指示してもよい。
【０１５４】
また、更新されたレコードを閲覧すると、閲覧者の未読・既読状態を「既読」に変更する例を示したが、これに限定されるものではない。例えば、更新されたレコードの表示後、閲覧者が未読・既読状態を「既読」に変更するように、レイアウト編集アプリケーション121またはDBサーバ119に指示してもよい。また、閲覧時、項目がフォーカスされた後、当該項目からフォーカスが外れたタイミングをユーザの「既読」指示としてもよい。また、表示されてから所定時間が経過すると、未読・既読状態を「既読」に変更するようにしてもよい。また、閲覧後、電子カルテの印刷が指示され、印刷が実行された後、未読・既読状態を「既読」に変更してもよい。
【実施例２】
【０１５５】
以下、本発明にかかる実施例2の情報処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１５６】
実施例2は、実施例1と比べて、コンテナを配置する処理、未読・既読状態が変更された場合のレイアウトの再計算が異なる。
【０１５７】
［コンテナの配置］
実施例1の場合と同様に図22に示すユーザYを例に説明をする。ユーザYは、コンテナBとEが未読状態であるから、コンテナB、Eの重み付けが「2」になり、残りのコンテナA、C、Gの重み付けは「1」のままである。また、図34は役割ごとに各コンテナに対する重要度を管理するテーブル（以下「重要度管理テーブル」と呼ぶ）の一例を示す図である。ユーザYの役割は重要度管理テーブルの役割2に相当する。
【０１５８】
コンテナを配置する処理（図24のS1903）において、重み付けが大きいコンテナB、Eを配置する場合、実施例2では、重要度管理テーブルを参照してコンテナBとEの重要度を比較し、重要度が高いコンテナの順に優先配置する。役割2のユーザYの場合は、コンテナBの重要度6、コンテナEの重要度4であるから、まず、コンテナBを配置し、次にコンテナEを配置する。さらに、優先配置した以外のコンテナを配置する処理（図24のS1904）も同様である。つまり、残るスペースに配置するコンテナの順番は、役割2のユーザYの場合、コンテナA（重要度10）、コンテナG（同9）、コンテナC（同8）になる。
【０１５９】
このように、コンテナに重要度を設定し、重要度によってコンテナの配置処理を制御することで、未読状態のコンテナの中でも、ユーザの役割に応じて重要度が高いコンテナがより優先配置されてレイアウト計算されることになる。従って、変更内容の見落としをより効果的に防ぐことができる。
【０１６０】
［適用例］
実施例1と同様に、レイアウトシステムを電子カルテに適用する例を説明する。
【０１６１】
まず、医師Aにより電子カルテが作成され、看護士Bがその電子カルテを閲覧した後、医師Aが当該電子カルテの項目B、Eに変更を加えたとする（図30参照）。図35は重要度管理テーブルを示す図で、医師、看護士それぞれの各項目に対する重要度は図35に示すように設定されているとする。また、図36は医師Aが電子カルテを更新し、その後、当該電子カルテを看護士Bが閲覧する際のメイン画面およびサブ画面の一例を示す図である。
【０１６２】
看護士Bが再度電子カルテを閲覧する際、未読・既読状態が「未読」の項目はBとEである。項目B、Eの重要度はそれぞれ「6」と「4」であるから、図36に示すように、看護士Bが当該電子カルテを閲覧すると、項目Bが左側に、項目Eが右側に配置されて表示される。そして残りの既読項目もその重要度に応じて配置される。従って、看護士にとって重要、かつ、変更された内容、つまり、医師から看護士に正確に伝える必要がある情報を、最も見易い位置に配置した表示を行うことができる。
【０１６３】
次に、看護士Bが閲覧中に、未読項目を未読・既読状態を「既読」に変更する指示を出した場合を説明する。なお、実施例1においては、未読・既読状態を「既読」に変更する場合、未読項目の閲覧をトリガとする例を説明した。実施例2では、閲覧時に、マウスなどで未読項目をフォーカスし、その後、未読項目からフォーカスを外すことで「既読」への変更指示を出す例を説明する。
【０１６４】
看護士Bは、電子カルテの未読項目Bをフォーカスし、その後、別の項目にフォーカスを移すことで、「既読」への変更指示を出す。「既読」への変更指示が出されると、DBサーバ119は当該電子カルテの未読・既読管理テーブルを更新し、レイアウト編集アプリケーション121は図23のステップS2308から処理を再開する。図37は、この時点の未読・既読管理テーブルを示す図である。
【０１６５】
レイアウト編集アプリケーション121は、未読・既読管理テーブルの情報を取得し(S2308)、他に未読状態の項目が存在するか否かを判定する(S2309)。項目Bは既読状態に変更されたが、項目Eは未読状態であるから処理はステップS2310へ進み、未読状態の項目Eの重み付けを変更し(S2310)、重み付けおよび重要度に従い各項目を配置する(S2311)。そして、レイアウトを再計算し(S2312)、レイアウト結果をUI 103が提供する画面に再表示する(S2313)。
【０１６６】
図38はレイアウトの再計算により表示される画面を示す図である。未読項目Eが最も見易い位置に配置される。また、重み付けが「1」の既読項目は重要度に応じて配置されるため、項目Bよりも重要度が高い項目Cがメイン画面に移動し、項目Bはサブ画面へ移動する。
【０１６７】
このように、電子カルテを閲覧するユーザは項目から項目へとフォーカスを移すと、未読状態の項目は既読状態に変更され、最終的に、当該ユーザが電子カルテを閲覧する際のテンプレートの表示レイアウトへ近付いて行くことになる。つまり、ユーザは、未読項目をフォーカスし、フォーカスを他の項目へ移すことで「既読」への変更指示を出し、通常の表示レイアウトへ戻ることができる。言い替えれば、ユーザが見慣れた通常の表示レイアウトではない場合は、未読項目があることを示していることになり、変更が加えられた項目の見落としを防ぐことができる。
【実施例３】
【０１６８】
以下、本発明にかかる実施例3の情報処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１６９】
［メール通知］
DBサーバ119が管理するデータを、ホストコンピュータ101を用いて、何処からでも閲覧できるようなシステムは、どの項目が変更されたかを判断することは難しい。さらに、様々なユーザが何処でも閲覧可能なため、ユーザAは、自身が行った変更内容を、どのユーザが認識したのかを把握することも困難である。紙に記載された情報であれば、その紙を有するユーザは変更を認識したと推測することができる。しかし、上記のシステムでは、変更後のデータを閲覧したユーザを推測することも難しい。まして、電子カルテのように表示が複雑な情報の場合、閲覧したにしても、内容の変更に気付かない可能性がある。
【０１７０】
そこで、情報を閲覧したユーザにより、項目の未読・既読状態を「既読」に変更する指示が出された場合、その項目の既読状態への変更を、当該項目に変更を加えたユーザAに電子メールによって通知する。こうすれば、ユーザAは、自身が行った変更内容を認識したユーザを確認することができる。
【０１７１】
図39は未読・既読管理と合わせて、どのユーザの変更によって未読・既読状態が未読に変更されたかを管理するテーブル（以下「状態変更管理テーブル」と呼ぶ）の一例を示す図である。なお、DBサーバ119は、DB 117の各レコードごとに状態変更管理テーブルを用意し、DB 117に格納する。また、図40はDBサーバ119が管理するユーザ情報テーブルの一例を示す図である。
【０１７２】
図41はメール通知処理を示すフローチャートで、DBサーバ119が実行する処理である。
【０１７３】
DBサーバ119は、レイアウト編集アプリケーション121から要求を受信すると(S3401)、任意のレコードの項目に対する既読状態への変更指示か否かを判定する(S3402)。既読状態への変更指示ではない場合は処理をステップS3401に戻す。また、既読状態への変更指示であれば、当該レコードの未読・既読管理テーブルを更新して、状態変更を指示したユーザ（以下「指示ユーザ」と呼ぶ）の当該項目の未読・既読状態を「既読」に変更する(S3403)。
【０１７４】
次に、DBサーバ117は、状態変更管理テーブルを参照して、指示ユーザの当該項目の未読・既読状態を「未読」にした変更を、当該項目に加えたユーザ（以下「変更ユーザ」と呼ぶ）を特定する(S3404)。そして、状態変更管理テーブルの指示ユーザの当該項目の状態を「既読」にし、変更ユーザをクリアする(S3405)。
【０１７５】
次に、DBサーバ119は、ユーザ情報テーブルを参照して、指示ユーザのメールアドレスを発信元アドレス、変更ユーザのメールアドレスを宛先アドレスにした電子メールを生成する(S3406)。その際、例えば状態変更管理テーブルから取得した情報に基づき、電子メールの題名や本文に例えば「＜看護士B＞は、患者＜○△×□＞の＜処方＞内容変更を既読にしました」などのメッセージを加えてもよい。なお、＜...＞内は生成する電子メールによって変化する個所である。そして、生成した電子メールを図示しないメールサーバに送信し(S3407)、処理をステップS3401に戻す。
【０１７６】
当該電子メールは、メールサーバを介して、宛先の変更ユーザのホストコンピュータ101に受信される。従って、変更ユーザは、自身が項目に加えた変更内容を変更ユーザが認識したと判断することができる。
【０１７７】
［適用例］
実施例1と同様に、レイアウトシステムを電子カルテに適用する例を説明する。
【０１７８】
まず、医師Aにより電子カルテが作成され、看護士Bがその電子カルテを閲覧した後、医師Aが当該電子カルテの項目B、Eに変更を加えたとする（図30参照）。そして、実施例2と同様に、看護士Bが項目Bにフォーカスを合わせた後、フォーカスを他の項目へ移動することで、既読状態への変更指示を出したとする。
【０１７９】
この既読状態への変更指示は、レイアウト編集アプリケーション121からDBサーバ119に通知される。DBサーバ119は、状態変更管理テーブルから項目Bの変更ユーザは医師Aであるとを特定する。そして、指示ユーザ（看護士B）と変更ユーザ（医師A）のメールアドレスをユーザ情報テーブルから取得し、看護士Bを送信元、医師Aを宛先に設定した電子メールを送信して、看護士Bが項目Bを既読にした旨を医師Aに通知する。
【０１８０】
このように変更項目が既読状態にされた旨を電子メールで通知することにより、医師Aは、自分が項目に加えた変更内容を看護士Bが認識したことを知ることができる。もし、項目の内容を変更した後、当該電子メールを受信しない場合、医師Aは、直接または電話で話すなど他の方法を用いて、項目の変更内容を確認するように看護士に促すなどの処置をとることができる。
【実施例４】
【０１８１】
以下、本発明にかかる実施例4の情報処理を説明する。なお、実施例4において、実施例1-3と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１８２】
実施例4は、コンテナを配置する処理を、コンテナが未読状態になってからの経過時間を考慮して行う。
【０１８３】
図42は状態変更管理テーブルの一例を示す図である。DBサーバ119は、実施例3の状態変更管理テーブル（図39参照）によって管理する「変更ユーザ」の代わりに、実施例4の状態変更管理テーブルにより未読状態への「変更日時」をタイムスタンプとして管理する。
【０１８４】
実施例1の場合と同様に図22に示すユーザYを例に説明をする。ユーザYは、コンテナBとEが未読状態であるから、コンテナB、Eの重み付けが「2」になり、残りのコンテナA、C、Gの重み付けは「1」のままである。
【０１８５】
図43はコンテナの配置処理を示すフローチャートで、レイアウト編集アプリケーション121が実行する処理である。
【０１８６】
レイアウト編集アプリケーション121は、ユーザYに対応する文書テンプレートを特定し(S3801)、特定した文書テンプレートによって特定されるコンテナの重み付けを判定する(S3802)。もし、コンテナの重み付けがすべて同じならば処理をステップS3806へ進める。
【０１８７】
また、レイアウト編集アプリケーション121は、重み付けが異なるコンテナが存在する（つまり未読状態のコンテナが存在する）場合、状態変更管理テーブルから（重み付けが大きい）未読状態のコンテナの変更日時の情報を取得する(S3803)。そして、取得した変更日時と現在の時間差を計算する(S3804)。そして、未読状態のコンテナについて、時間差が小さいコンテナを優先して配置する(S3805)。図42の例では、コンテナE、コンテナBの順に配置される。
【０１８８】
そして、レイアウト編集アプリケーション121は、ステップS3805で配置した以外のコンテナを、文書テンプレートの情報に従い、第一の画面の残りスペースまたは第二の画面に配置する(S3806)。
【０１８９】
このように未読状態になってからの経過時間を考慮してコンテナを配置することで、最近未読状態になったコンテナを優先配置する。その結果、最近変更された情報がユーザにとって重要度が高い情報とみなして、コンテナを配置することになる。従って、ユーザにとって、最近変更された情報が見易く表示されることになる。
【実施例５】
【０１９０】
以下、本発明にかかる実施例5の情報処理を説明する。なお、実施例5において、実施例1-4と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１９１】
［メール通知］
実施例5は、予めユーザが指定したコンテナについて、その未読・既読状態が「未読」に変更された場合に電子メールでその旨を通知する。
【０１９２】
ユーザは、重要なコンテナが存在する場合、そのコンテナの情報が更新されると、直ちにその情報を閲覧することが望ましい。そこで、ユーザが予め指定するコンテナの未読・既読状態が「未読」に変更されると、どのユーザによる変更により未読状態に変更されたかを示す情報を電子メールとして送信する。
【０１９３】
図44は未読・既読状態が未読に変更された場合に通知（以下「変更通知」と呼ぶ）を発行するコンテナを管理するテーブル（以下「変更通知管理テーブル」と呼ぶ）の一例を示す図である。なお、DBサーバ119は、DB 117の各レコードごとに変更通知管理テーブルを用意し、DB 117に格納する。なお、ユーザは、変更通知管理テーブルの更新、つまり、通知をするしないの設定をレイアウト編集アプリケーション121を介して行う。また、コンテナの内容に変更を加えたユーザの情報は、図39に示すように、状態変更管理テーブルによって管理されている。
【０１９４】
図45はメール通知処理を示すフローチャートで、DBサーバ119が実行する処理である。
【０１９５】
実施例1の場合と同様に図22に示すユーザYを例に説明をする。ユーザYは、コンテナA、E、Gについて、その内容が変更された場合に通知を発行するように設定している（図44参照）。そして、ユーザX（変更ユーザ）によりコンテナB、Eの内容が変更され、図39に示す未読・既読状態になったとする。
【０１９６】
DBサーバ119は、コンテナの内容の変更を検出すると(S4001)、変更ユーザを特定し(S4002)、内容が変更されたコンテナを特定する(S4003)。そして、変更通知管理テーブルから、更新されたコンテナについて変更通知の発行を設定したユーザの情報を取得する(S4004)。図44の例では、コンテナBについてユーザX、コンテナEについてユーザYとZが存在する。
【０１９７】
次に、DBサーバ119は、コンテナの内容変更により、通知を行うべきユーザ（以下「通知ユーザ」と呼ぶ）が存在するか否かを判定する(S4005)。コンテナBについては、変更したユーザと通知を設定したユーザが同一であるから通知は不要と判定する。また、コンテナEについは、変更したユーザと通知を設定したユーザが異なるから、ユーザYとZが通知ユーザである。なお、通知ユーザが存在しない場合は、処理をステップS4001に戻す。
【０１９８】
次に、DBサーバ119は、変数Nに変更通知の数（この場合は「2」）を設定し(S4006)、変数nに「1」を設定する(S4007)。そして、ユーザ情報テーブルから変更ユーザの情報を取得して、変更ユーザのメールアドレスを特定する(S4008)。続いて、ユーザ情報テーブルから通知ユーザ（例えばユーザY）の情報を取得して、通知ユーザのメールアドレスを特定する(S4009)。そして、通知ユーザのメールアドレスを宛先、変更ユーザのメールアドレスを送信元に設定した電子メールを作成する(S4010)。その際、例えば状態変更管理テーブルから取得した情報に基づき、電子メールの題名や本文に例えば「＜医師A＞は、患者＜○△×□＞の＜処方＞内容変更を変更しました」などのメッセージを加えてもよい。なお、＜...＞内は生成する電子メールによって変化する個所である。
【０１９９】
次に、DBサーバ119は、変数nをインクリメントし(S4011)、変数nとNの関係を判定する(S4012)。n≦Nならば処理をステップS4009に戻し、次の通知ユーザ（例えばユーザZ）の情報を取得する。また、n＞Nならば電子メールの生成を終了して、生成した電子メールを図示しないメールサーバに送信し(S4013)、処理をステップS4001に戻す。
【０２００】
このようにユーザが希望するコンテナに対して変更が行われたときには、メールにて通知を行うことによって、更新されたことを確実に知りたいユーザが、サーバにアクセスして表示を行わなくても変更を知ることができるようになる。
【０２０１】
［メールによる既読への変更］
変更通知が設定されたコンテナの内容が変更された場合、電子メールで変更を通知するが、この電子メールに本文としてコンテナの変更後の内容を記載することができる。そうすれば、変更通知を受信したユーザは、例えば電子カルテを開かなくても、その時点で変更内容を知ることができる。そうすれば、ユーザが、変更通知により変更内容を知った後、例えば電子カルテを開いた際に未読状態のコンテナだとして大きく表示する必要性は低い。そこで、変更通知を受信したユーザが、当該メールを開封したことをDBサーバ119に通知する。DBサーバ119は、開封通知を受信すると、対応するユーザのコンテナの未読・既読状態を「既読」に変更する。
【０２０２】
図46は変更通知を特定するID情報テーブルの一例を示す図である。このID情報は、変更通知の電子メールの題名または本文に記載される。DBサーバ119は、DB 117に格納したID情報テーブルに基づき、送信した電子メール（変更通知）、送信先ユーザ、どのコンテナの変更の通知かを関連付けて管理する。
【０２０３】
図47はメールによる既読への変更を説明するフローチャートで、DBサーバ119が実行する処理である。
【０２０４】
例えば、ユーザYが変更通知を開封してコンテナEの変更内容を確認した後、当該電子メールをDBサーバ119に返信する。DBサーバ119は、電子メールを受信すると(S4701)、受信した電子メールからID情報を抽出する(S4702)。この場合、M0001が抽出される。
【０２０５】
次に、DBサーバ119は、ID情報が抽出できたか否かを判定し(S4703)、抽出できなかった場合は処理をステップS4701に戻す。また、抽出できた場合は、ID情報とID情報テーブルに基づき、変更通知の送信先メールアドレスと、返信メールの発信元メールアドレスを比較する(S4704)。そして、両メールアドレスが一致すると、ユーザYはコンテナEの内容変更を認識したと判定し、ユーザYの未読・既読管理テーブルのコンテナEの未読・既読状態を「既読」に変更する(S4705)。
【０２０６】
このように、DBサーバ119は、変更通知の開封を確認した場合、通知ユーザの、当該コンテナの未読・既読状態を「既読」に変更する。その結果、通知ユーザに対して、内容が変更されたコンテナの提示を過剰に行うことなく、適切にコンテナの内容変更を知らせることができる。もし、通知ユーザが変更通知を未開封の場合は、通常どおり未読状態のコンテナとして表示するので、変更通知による変更内容の閲覧が未了の場合は、コンテナの表示状態により内容変更を知らせることができる。
【０２０７】
また、ユーザが変更通知を開封する前に例えば電子カルテを表示して、未読・既読状態が「既読」に変更されることがある。この場合は、DBサーバ119は、当該コンテナの未読・既読状態が未読に変更された際に送信した変更通知のレコードをID情報管理テーブルから削除する。その結果、変更通知の開封前に例えば電子カルテが閲覧されたとしても、変更通知の開封後に受信される電子メールのID情報はID情報管理テーブルに存在しない。従って、DBサーバ119は当該メールを受信しても何ら処理を行われない。
【実施例６】
【０２０８】
以下、本発明にかかる実施例6の情報処理を説明する。なお、実施例6において、実施例1-5と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０２０９】
実施例6では、表示ではなく印刷を行う場合のレイアウト処理を説明する。
【０２１０】
DBサーバ119またはエンジンサーバ227は、表示用の文書テンプレートとは別に、印刷用の文書テンプレートを管理する。図48は印刷用の文書テンプレートの一例を示す図である。印刷用テンプレートには、印刷が必須のコンテナ（図48ではコンテナA、G）と、未読状態の場合にのみ印刷するコンテナ（図48ではコンテナB、C、E）が定義される。未読状態の場合にのみ印刷するコンテナは、コンテナ内部に斜線が表示される状態で管理される。
【０２１１】
実施例1と同様に、レイアウトシステムを電子カルテに適用する例を説明する。
【０２１２】
まず、医師Aにより電子カルテが作成され、看護士Bがその電子カルテを閲覧した後、医師Aが当該電子カルテの項目B、Eに変更を加えたとする（図30参照）。そして、看護士Bが電子カルテを印刷したとする。
【０２１３】
図49は印刷時の処理例を示すフローチャートで、レイアウト編集アプリケーション121が実行する処理である。
【０２１４】
レイアウト編集アプリケーション121は、看護士Bから電子カルテの印刷を要求された場合、印刷用テンプレートを特定し(S4301)、各項目の重み付けがすべて同一か否かを判定する(S4302)。看護士Bの項目B、Eの未読・既読状態は「未読」であるから、項目B、Eの重み付けが他の項目と異なる。従って、処理はステップS4303に進むが、もし、すべての項目が既読状態であれば、未読項目が存在しないため印刷を行う必要がない旨を印刷を要求したユーザに通知して(S4307)、処理は終了する。
【０２１５】
未読項目がある場合、レイアウト編集アプリケーション121は、印刷用テンプレートに従い、重み付けが「2」の項目B、Eのみを配置し(S4303)、印刷が必須の項目A、Gを配置する(S4304)。そして、印刷する情報をコンテナに入れ、レイアウトの計算を行い(S4305)、電子カルテを印刷して(S4306)、処理を終了する。
【０２１６】
このように、例えば電子カルテを印刷する場合、印刷が必須ではない項目は、未読状態ではなければ印刷しないように制御することで、必要な情報のみをレイアウトした印刷データを生成して印刷を行うことができる。その結果、無駄な印刷量を削減することができる。
【０２１７】
また、閲覧したか否かの未読・既読状態とは別に、印刷したか否かの未印刷・既印刷状態を未印刷・既印刷管理テーブルで管理する。そして、印刷の要求に対して、未印刷・既印刷管理テーブルを参照して、未印刷の項目を印刷対象のコンテナとみなし、印刷処理を行ってもよい。この場合、印刷が必須の項目以外は、過去に印刷した項目について、その内容が変更された項目のみを印刷することが可能になる。その結果、例えば電子カルテの全項目を毎回印刷すれば、過去の印刷した電子カルテを廃棄する必要があるが、内容が更新された項目のみを印刷するため、過去に印刷した電子カルテを不要とせずに無駄な印刷物の破棄を防ぐことができる。
【０２１８】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０２１９】
また、本発明の目的は、上記実施例の機能を実現するソフトウェアを記録した記憶媒体（記録媒体）をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記ソフトウェアを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのソフトウェアを記憶した記憶媒体は本発明を構成する。
【０２２０】
また、前記ソフトウェアの実行により上記機能が実現されるだけでなく、そのソフトウェアの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０２２１】
また、前記ソフトウェアがコンピュータに接続された機能拡張カードやユニットのメモリに書き込まれ、そのソフトウェアの指示により、前記カードやユニットのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０２２２】
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するソフトウェアが格納される。
【図面の簡単な説明】
【０２２３】
【図１】レイアウトシステムを提供する情報処理システムの構成例を示すブロック図、
【図２】エンジンサーバをネットワーク上に配置した例を示すブロック図、
【図３】ホストコンピュータの構成例を示すブロック図、
【図４】ユーザインタフェイスが提供するウィンドウを示す図、
【図５】ツールバーに表示可能な代表的なボタンを示す図、
【図６】コンテナの模範的な辺ルールを例示する図、
【図７】リンクの設定方法を示すフローチャート、
【図８】UIの表示例を示す図、
【図９】レイアウト計算のフローチャート、
【図１０】レイアウトの計算の詳細を示すフローチャート、
【図１１】頁上に四つのコンテナがレイアウトされた例を示す図、
【図１２】レイアウト計算時のUIの表示例を示す図、
【図１３】一般的な可変リンクの状態を示す図、
【図１４】リンクの情報を設定するダイアログの例を示す図、
【図１５】リンクの設定方法を示すフローチャート、
【図１６】固定長のリンクを使用する場合のレイアウト結果を示す図、
【図１７】可変長のリンクを使用する場合のレイアウト結果を示す図、
【図１８】役割に設定された相関関係に基づくレイアウトを示すフローチャート、
【図１９】相関テーブルの登録例を示す図、
【図２０】コンテナの表示、非表示および相関関係を示す図、
【図２１】コンテナの表示状態例と、その遷移例を示す図、
【図２２】各コンテナに対するユーザごとの未読・既読管理テーブルの一例を示す図、
【図２３】未読・既読管理に基づくレイアウトを説明するフローチャート、
【図２４】コンテナの重み付けを考慮したコンテナの配置を示すフローチャート、
【図２５】文書テンプレートの一例を示す図、
【図２６】コンテナの配置結果の一例を示す図、
【図２７】医師と看護士の電子カルテテンプレートの一例を示す図、
【図２８】医師が電子カルテに記入し、その後、当該電子カルテを看護士が閲覧する際のメイン画面およびサブ画面の一例を示す図、
【図２９】未読・既読管理テーブルを示す図、
【図３０】医師が電子カルテを更新し、その後、当該電子カルテを看護士が閲覧する際のメイン画面およびサブ画面の一例を示す図、
【図３１】未読・既読管理テーブルを示す図、
【図３２】看護士が電子カルテを更新し、その後、当該電子カルテを看護士、医師が閲覧する際のメイン画面およびサブ画面の一例を示す図、
【図３３】未読・既読管理テーブルを示す図、
【図３４】重要度管理テーブルを説明する図、
【図３５】重要度管理テーブルの一例を示す図、
【図３６】医師が電子カルテを更新し、その後、当該電子カルテを看護士が閲覧する際のメイン画面およびサブ画面の一例を示す図、
【図３７】未読・既読管理テーブルを示す図、
【図３８】レイアウトの再計算により表示される画面を示す図、
【図３９】状態変更管理テーブルの一例を示す図、
【図４０】ユーザ情報テーブルの一例を示す図、
【図４１】メール通知処理を示すフローチャート、
【図４２】状態変更管理テーブルの一例を示す図、
【図４３】コンテナの配置処理を示すフローチャート、
【図４４】変更通知管理テーブルの一例を示す図、
【図４５】メール通知処理を示すフローチャート、
【図４６】ID情報テーブルの一例を示す図、
【図４７】メールによる既読への変更を説明するフローチャート、
【図４８】印刷用の文書テンプレートの一例を示す図、
【図４９】印刷時の処理例を示すフローチャートである。
【図１】
0004789699.tif 000002
【図２】
0004789699.tif 000003
【図３】
0004789699.tif 000004
【図４】
0004789699.tif 000005
【図５】
0004789699.tif 000006
【図６】
0004789699.tif 000007
【図７】
0004789699.tif 000008
【図８】
0004789699.tif 000009
【図９】
0004789699.tif 000010
【図１０】
0004789699.tif 000011
【図１１】
0004789699.tif 000012
【図１２】
0004789699.tif 000013
【図１３】
0004789699.tif 000014
【図１４】
0004789699.tif 000015
【図１５】
0004789699.tif 000016
【図１６】
0004789699.tif 000017
【図１７】
0004789699.tif 000018
【図１８】
0004789699.tif 000019
【図１９】
0004789699.tif 000020
【図２０】
0004789699.tif 000021
【図２１】
0004789699.tif 000022
【図２２】
0004789699.tif 000023
【図２３】
0004789699.tif 000024
【図２４】
0004789699.tif 000025
【図２５】
0004789699.tif 000026
【図２６】
0004789699.tif 000027
【図２７】
0004789699.tif 000028
【図２８】
0004789699.tif 000029
【図２９】
0004789699.tif 000030
【図３０】
0004789699.tif 000031
【図３１】
0004789699.tif 000032
【図３２】
0004789699.tif 000033
【図３３】
0004789699.tif 000034
【図３４】
0004789699.tif 000035
【図３５】
0004789699.tif 000036
【図３６】
0004789699.tif 000037
【図３７】
0004789699.tif 000038
【図３８】
0004789699.tif 000039
【図３９】
0004789699.tif 000040
【図４０】
0004789699.tif 000041
【図４１】
0004789699.tif 000042
【図４２】
0004789699.tif 000043
【図４３】
0004789699.tif 000044
【図４４】
0004789699.tif 000045
【図４５】
0004789699.tif 000046
【図４６】
0004789699.tif 000047
【図４７】
0004789699.tif 000048
【図４８】
0004789699.tif 000049
【図４９】
0004789699.tif 000050