本実施例では、CRF(症例報告書)用紙に記入された臨床試験の結果が格納されたデータベースである症例データベースを作成する場合を例に、図面を用いて本発明を詳細に説明する。
図1は、本実施例の各処理とデータとの関係を表す概念図である。図2は、システム構成図である。図3は、後述するフォルダ情報1、イメージ情報2、リンク情報3の各種データのテーブル構成図及び、症例データベース5に定義されたテーブルのテーブル構成図の一例である。図4は、症例データベース5を定義するために予め作成された辞書情報4のテーブル構成図である。図5は、本実施例を利用者が使用した場合の作業の流れを表わした図である。図6は、データベースを作成する本実施例のメインフローチャートである。図7は、後述するメニュー領域に対して入力があった場合の処理のフローチャートである。図8は、ファイルを開く処理のフローチャートである。図9は、後述するリスト領域に対して入力があった場合の処理のフローチャートである。図10から図12は、後述するイメージ領域に対して入力があった場合の処理のフローチャートである。図13から図15は、画面表示例である。
本実施例で述べるデータベースを作成する処理は、データベースを定義する処理とデータベースにデータを入力する処理とに大きくわけられる。本実施例では、これらの処理に共通する処理が多いためこれらの処理を、データベースを作成するモジュールとしてまとめている。しかし、これらの二つの処理は、別々の独立したモジュールとして利用できる。以下では、症例データベースを構築する手順に従い、データベースを作成するモジュールを説明する。
図1を用いてデータベース作成の概略を説明する。
データベースを作成する処理200では、まず初期化処理を実行した後、ユーザからの入力に応じて、データベースを定義する処理8もしくはデータベースを入力する処理9を実行する。但し、データベース入力処理9は、データベース定義処理8で作成されたリンク情報3と症例データベース5とを用いるため、まずデータベース定義処理8から説明する。
データベース定義処理8では、イメージ情報2と辞書情報4とを参照して、データベースへデータを入力するための入力画面を作成するとともに、データを格納するための症例データベース5を定義する。入力画面を作成した結果得られる情報がリンク情報3である。
イメージ情報2は、予めイメージ情報を入力する処理6によって、臨床試験の結果が記入されていないCRF用紙から得られた画像データであり、図2に示す記憶装置103に格納されている。このCRF用紙は、試薬毎に作られ、一種類の試薬に対して複数枚のCRF用紙で構成される。本実施例では、どの試薬に対するCRFであるかを管理するための情報として、フォルダ情報1を用意する。フォルダ情報1の詳細については図3のテーブル構成図を用いて後述する。
このようにフォルダ情報1を設けることによって、一枚のCRF用紙を一つの画像ファイルとして取り込んだ時も、試薬の名前を指定すれば、所望のCRFの画像ファイルを取り出せる。
辞書情報4は、予め辞書情報を作成・保守する処理7によって作成され、図2に示す記憶装置103に格納されている。辞書情報4は、CRFの試験項目になりうる項目の一覧を管理する辞書データである。各CRFの試験項目として必要な項目はこの辞書情報に含まれている。すなわち、各CRFの試験項目は辞書情報の部分集合として与えられる。詳細については、図4を用いて後述する。また、辞書情報は、CD−ROMなどの記憶媒体に格納され必要に応じて、読み書き装置108を用いて参照される。
リンク情報3には、各CRFで決められている試験項目(表示項目名)、CRF画像上に配置する入出力領域(以下では、このような入出力可能な領域を部品と呼ぶ)の位置や、作成するデータベースのテーブルを定義・検索するのに必要な情報(テーブルのフィールド名や、データ型など)が含まれている。これらの情報は、辞書情報4から参照された値もしくは、ユーザによって入力された値からなる。
データベース5は、リンク情報3に含まれるテーブルのフィールド名やデータ型に基づいて、データベース定義処理8で定義される。ゆえに、処理8で定義されたデータベースは、データベースの枠組みだけであり、臨床試験で得られた試験結果はまだ格納されていない。
次に、データベース入力処理9について説明する。データベース入力処理9では、イメージ情報2とリンク情報3とに基づいてデータ入力画面を表示する。表示された画面を用いて、ユーザが入力した臨床試験の試験結果を、データベース定義処理8で作成されたデータベース5へ格納する。この時参照されるイメージ情報は、未記入のCRF用紙でもよいが、試験結果が記入されたCRF用紙を用いる場合もある。こうしてデータベース入力処理9によって、試験結果を格納した症例データベース5が作成される。
本実施例のシステム構成を図2を用いて説明する。本システムは、少なくとも一台のデータベース定義端末100と少なくとも一台のデータベース入力端末110とからなり、LAN121や公衆回線122を介して接続されている。また、CRF用紙をイメージ画像として取り込む入力装置としてファクシミリ装置120を使用する場合もある。定義端末100と入力端末110のそれぞれは、中央処理装置101、111に、表示装置102、112、記憶装置103、113、キーボード104、114、マウス105、115、画像入力装置106、116、記憶媒体読み書き装置107、117、及びCD−ROM読み取り装置108、118が接続されている。キーボードやマウスの代りに手書き入力装置を用いてもよい。
このように定義端末100と入力端末110とを別々に設ける場合、データベース作成プログラムは、図1に示したような一つのプログラムとせずに、データベース定義処理8と入力処理9とを別々のプログラムとしてもよい。別々のプログラムとすることで、記憶装置の記憶容量やメモリのメモリ占有量が削減できるので、プログラムの実行速度の向上が望める。
また、このように、ファクシミリ装置をイメージ画像の入力装置として用いることによって、入力端末や定義端末のない場所からも、データベースへ格納すべきデータが記入された用紙の画像が得られるので、より多くの場所から記入済みのCRF用紙を入手できる。
図3は、フォルダ情報1、イメージ情報2、リンク情報3、及び症例データベース5に定義されたテーブルのテーブル構成図と各テーブルの関係を表わした図である。
テーブル10は、フォルダ情報1の構成を示す。フォルダ情報1は、CRFと試薬との対応関係を表わす情報で構成される。テーブル10は、フォルダID11、フォルダ名12、頁リスト名13、リンク情報名14、症例DBテーブル名15、及びメモ情報16の各欄で構成される。フォルダID11は、フォルダ名を一意に区別するための番号である。フォルダ名12は、試薬の名前を表わしており、利用者がCRFを区別する際に用いる。このフォルダ名は、後述するファイルを開く処理350で表示される。頁リスト名13は、各試薬に関するCRF用紙のイメージ情報が格納されているファイル名を参照するためのテーブル20のテーブル名を格納している。テーブル20については後述する。リンク情報名14は、リンク情報を格納したテーブル30のテーブル名を格納し、症例DBテーブル名15は、症例データベース5に定義されるテーブルをユニークに管理するテーブル名が格納される。メモ情報16は、フォルダ名だけでは区別しにくい試薬に関する補助的な情報を格納するための欄である。
次に、イメージ情報2について説明する。一枚のCRF用紙を一つの画像ファイルとして格納し、テーブル20を用いてこれら複数の画像ファイルを管理している。頁ID21は各頁をユニークに区別し、頁数22は各画像ファイルの順序を表わし、画像ファイル名23はイメージ画像のファイル名を格納している。イメージ画像は大きさが一定でないため、図3のように別のファイルとして格納する方が管理する際に便利である。
次に、リンク情報3について説明する。リンク情報3は、CRF画像を構成する部品の一覧を格納したリンク情報テーブル30と各部品の定義項目に関する詳細情報を格納した詳細テーブル35からなる。これらは、一つのテーブルとしても構わない。テーブル30は、リンクID31、頁ID32、部品位置33、及び定義項目ID34の各欄からなる。リンクID31は、以下で述べる「部品」をユニークに管理するための番号である。部品とは、データベースへデータを入力するための画面上の入出力領域であり、キーボードやマウスなどの入力装置からの入力を受付け、入力された内容を表示する入出力領域である。頁ID32は、上記のテーブル20の頁ID21の値を示している。この頁ID32と部品位置33の各欄に格納された値の組合せにより、イメージ情報の特定の位置を一意に決めることができる。定義項目ID34は、詳細テーブル35の定義項目ID36を示している。詳細テーブル35は、部品に関する詳細な情報が格納されており定義項目ID36、表示項目情報37、部品制御情報38、及びデータベース言語情報39からなる。これらの情報は、デ−タベ−ス定義処理8において、辞書情報4に基づいて格納される。
表示項目情報37は、表示項目名40と語句変換辞書ID41の各欄からなる。部品制御情報38は、部品種別42、入力下限値43、入力上限値44、及びコンボ項目ID45の各欄からなる。データベース言語情報39は、フィールド名46及びデータ型47の各欄からなる。コンボ項目IDは、辞書情報4のテーブル70の内容を参照する際に用いる値を格納している。これらの各欄の内容は、後ほどフローチャートにおいて説明する。
最後に症例DBテーブル5について説明する。一つのCRFに対し、一つの症例DBテーブルが作成される。作成されたテーブルの一例をテーブル90に示す。テ−ブル90の各フィールド名とデータ型は、リンク情報3のデータベース言語情報39をもとに定義される。
これらの各テーブルのうち、テーブル10及びテーブル20は、イメージ情報を入力する処理6によって作成され、テーブル30、35は、データベース定義処理8によって作成される。テーブル90は、データベース定義処理8によって枠組みが定義され、枠組みに対応するデータはデータベース入力処理9によって格納される。
図4は、辞書情報4を構成する各テーブルのテーブル構成図である。テーブル60の各欄は、前述したリンク情報3の詳細テーブル35と同様の欄で構成されているため、各欄の名称についてはここでは説明を省略する。表示項目名65は、試験項目がCRF用紙に表示される際に、どのような名前で表示されているのかを表わす。さらにその表示項目名を他の項目名で表わす場合、語句変換辞書を参照して項目名を変換する。
テーブル70は、コンボと呼ぶ部品に関する詳細な情報を格納するテーブルである。コンボ部品とは、入力する値を選択肢の一つとしてもっている部品であり、コンボ項目とは、その選択肢の内容である。テーブル70は、コンボ項目ID74、項目名75、語句変換辞書ID76、及び次コンボ項目ID77の各欄で構成される。テーブル60の欄67で部品の種別としてCOMBが格納されている場合、コンボ項目ID71のIDに基づき、テーブル70の欄74が参照される。そこで、一つめの選択肢が「男」であることが、決定される。さらに次コンボ項目ID77に格納されたID「3」に基づき、コンボ項目ID74が参照され、二つ目の選択肢が「女」であることが決定される。そして、このコンボIDの値が3である項目の次コンボ項目IDの値が「END」であることから、それ以降の選択肢がないことがわかる。
語句変換辞書ID66及び76で関連付けられているテーブル80は、項目名を異なる表現で表記するための変換辞書を表わしたものであり、その構成の一例を示している。
本実施例では、ユーザからの入力に応じた処理をシステムが実行している。そこで、図5にユーザの作業の流れを示し、その場合システムがどのような処理を実行するのかを図6〜図11のフローチャートを用いて説明する。
ユーザの作業には、データベースを定義する作業とデータベースを入力する作業がある。データベースを定義する作業では、データベースへデータを入力するための画面を作成するとともに、データを格納するデータベースのテーブルを定義する。すなわちデータの入れ物を作成する。一方、データベースにデ−タを入力する作業では、デ−タベ−スを定義する作業で作成した入力用の画面を用いて、同じくデ−タベ−スを定義する作業で作成したデータベースのテーブルへデータを入力する。
これらの作業の共通する部分として、まずプログラムの起動150とモードの設定155、及びファイルを閉じる処理190とプログラムの終了195がある。そこで、プログラムの起動、終了(ファイルを閉じる処理を含む)、及びモードの設定について、図6を用いて説明する。
プログラムが起動されると、初期化処理(ステップ202)では、後述する各種フラグの初期値が設定される。設定される初期値は、モード=None、ファイルオープンフラグ=NG、保存フラグ=OK、部品フラグ=0、カーソルフラグ=Not_Selectである。
本システムは、初期化処理を終了すると、表示装置に、図13(a)で示すアプリケーションプログラム画面1000(以下、APP画面と略す)を表示し、ユーザからの入力を待つ。(ステップ204)。ここまでが、図5のプログラムの起動処理150にあたる。
ここで、APP画面を図13(a)を用いて説明する。APP画面1000は、メニュー領域1100と、イメージ領域1200とがある。メニュー領域1100は、領域1101〜1106を含んでいる。これら領域を、ポインタ(マウスなどの入力装置で制御され、画面上の位置あるいは選択項目を指示して、選択する手段)を用いて指定することで、メニュー領域に対して入力がなされたとする。尚、ステップ204以降でシステムが受け付ける入力は、ModeフラグがNone以外の値に設定されるまでは、APPの終了処理もしくは、モードの選択処理のいずれかである。
ゆえに、ユーザからの入力があれば、入力がアプリケーションプログラム(以下APPと略す)を終了させる指示かどうかを判定し(ステップ206)、終了ならば、APP画面を非表示とし(ステップ208)、APPを終了する。
一方、ステップ206において、APPが終了でなければモードを判定し(ステップ210)、Mode=Noneならばステップ212に進む。ステップ212では、入力がモードを設定する入力か否かを判定する。例えば、図13(a)の領域1106(モ−ド)に対する入力でなければステップ204に戻る。一方、モードメニュー1106が選択されたならば(ステップ212)、さらに、ユ−ザにより選択されたメニュー(図13では表示せず)が「定義」か「入力」かを判定し、選択されたメニューに応じて、モードをMode=定義又はMode=入力に設定し(ステップ214)、さらにファイルを開く処理350を実行する。ファイルを開く処理を実行した後は、ステップ204に戻る。ファイルを開く処理については、図8を用いて後述する。
さて、モードが設定された後は、ステップ210においてMode=Noneが成り立たないので、システムは、入力がある度に、その入力がメニュー領域、リスト領域、イメージ領域の何れの領域に対する入力であるかをステップ216、218、220で判定し、それぞれの処理を実行する。これらメニュー領域処理300、リスト領域処理400、及びイメージ領域処理500は、モード、フラグ、及びユーザによる入力の組み合わせに応じて、個々のステップを実行する。
そこでまず、データベース定義処理8が実行される場合を、図5を用いてユーザからの入力に従って説明する。ユーザによって、プログラムが起動される(150)と、図6のステップ202が実行されることは、これまで述べてきた。そこで、次にユーザによってモードが選択される(155)と、図6のステップ212が実行され、ユーザは、図8のファイルを開く処理350の実行中に、ファイル名を指定してファイルを開く(160)。
このファイルを開く処理350を図8(a)を用いて説明する。
まず、図3のテーブル10に基づいて、図13(a)に示すファイル指定用のウィンドウ1300が表示される(ステップ352)。このとき、フォルダ名表示領域1301には、テーブル10のフォルダ名12の欄に格納された試薬名が表示される。フォルダ名表示領域1301に表示されたフォルダ名が選択されたか否かを判定し(ステップ354)、選択されていればステップ356へ進み、選択されていなければステップ358へ進む。
ステップ356では、選択されたフォルダに関するテーブル10のエントリから得たメモ情報欄16、ページリスト名欄14、さらに対応するテーブル20を介して抽出したフォルダの第一ページ目のイメージファイルに基づいて、メモ情報は領域1302へ、イメージファイルを縮小した画像を領域1303にそれぞれ表示する。
ステップ358では、「OK」ボタン1304が押下されたか否かを判定し、押下されていなければステップ360へ進み、押下されていればステップ366へ進む。
ステップ360では、「Cancel」ボタン1305が押下されたか否かを判定し、押下されていなければ、ステップ354へ戻り、押下されていればステップ362へ進む。
ステップ362では、ファイル指定用ウィンドウ1300を非表示にし、Mode=Noneに設定し(ステップ364)、本ルーチンを終了する。一方、ステップ358で、「OK」ボタン1014が押下された場合は、図14(a)に示すようなリスト表示領域1400を表示し(ステップ366)、イメージ表示領域1200に、図3のテーブル10とテーブル20を参照して、選択されたフォルダの一ページ目の画像ファイルを表示する(ステップ368)。また、それと同時に、図3で説明したリンク情報3に関するテーブルと同様な構成のテンポラリテーブルをメモリ上に設ける。そしてファイル指定用ウィンドウ1010を非表示にし(ステップ370)、ファイルオープンフラグをOKに設定し(ステップ372)、本ルーチンを終了する。
このようにして、ファイルが開かれた際の表示画面例が、図14(a)である。イメージ表示領域1200には、選択された画像データが表示される。リスト表示領域1400の表示項目名領域1402には、図4の辞書情報4のテーブル60に格納されている表示項目65の欄の値が表示されている。
ユーザは、この画像ファイルが表示されたイメージ領域若しくはリスト領域に対して、主に「試験項目を指定する処理(図5のステップ162)」と「試験項目の結果を入力するための部品を配置する場所を指定する処理(図5のステップ164)」の二種類の処理を繰り返す。これらの処理を繰り返すことよってテンポラリテーブルにデータが格納される。部品の配置位置を入力後、テンポラリテーブルに格納されたデータを保存する(ステップ166)。ステップ166の保存の処理は、リンク情報を保存する処理(ステップ168)とDBのデ−タ構造を定義する処理(ステップ169)とがある。
さて、ファイルを開く処理350が実行された後は、リスト領域もしくはイメージ領域に対する入力に基づき、ユーザによって部品が配置され、データ入力用画面が作られる。そこで、図10のイメージ領域処理500と図9のリスト領域処理400のフローチャートと図14の画面表示例を用いて。データベース定義処理8を説明する。
まず、イメージ画像上に部品を配置するためのイメージ領域処理500を説明する。Modeは「定義」であるため、Modeを判定した結果(ステップ502)、ステップ504へ進む。このときの画面は図14(a)である。
ステップ504では、ユ−ザのマウス操作によって領域が指定される。例えば、領域を指定する方法としては、マウスのカーソルで二つの点を指定し、それらの点を対角線上にもつ矩形を指定する方法がある。以下では、矩形の領域のみを指定する。例えば、図14(b)の破線1203で示した矩形のような領域が指定される。
入力された領域座標値と図3のテ−ブル30の部品位置33を比較して、入力した矩形の中に、データベースへデータを入力する際に使用する部品が含まれているか否かを判定する(ステップ506)。部品の表示例としては、文字の入力を受け付けるテキスト部品(図14(b)の領域1201)と選択肢を表示し、その中からデータを選ばせるコンボ部品(図14(b)の領域1202)とがある。
ステップ506で判定した結果、入力した矩形の中に部品が含まれていればステップ520へ進み、含まれていなければステップ508へ進む。
最初の部品を配置する場合、ステップ506の判定結果はNoであるため、まずステップ508へ進む場合を説明する。ステップ508、ステップ510、ステップ512では、カーソルフラグに応じて、入力された矩形の座標を参照ながら処理550、560、又は570のいずれかを実行する。カーソルフラグは、処理を分岐させるためのフラグだけでなく、フラグに応じてカーソルの表示形態を変えるものである。カーソルフラグがNot_Selectならば、図14(a)に示すように、非選択状態を示す矢印のカーソル1001が表示され、カーソルフラグが文字カーソルならば、図13(b)に示すような矢印のカーソルのそばに試験項目が表示されたものが表示され、カーソルフラグが部品カーソルならば、図13(c)に示すような文字カーソルに似た矢印のカーソルが表示される。部品カーソルは、文字カーソルの特別な種類であり、画面上に既に表示された部品と同じ試験項目名を持つ文字カーソルである。つまり、文字カーソルに表示されている試験項目は、部品として表示されていないが、部品カーソルに表示されている試験項目は、既に部品として表示されている。
初期化処理で、カーソルフラグはNot_Selectに設定されているため、カーソルは非選択状態のカーソルであり、このカ−ソルがイメージ領域に入力されるとステップ508の判定の結果、ステップ550が実行され、試験項目が選択される。試験項目を選択する方法にはリスト項目へ入力する方法もあるが、これは後述する。
処理550を図11(a)を用いて説明する。ステップ551では、ステップ504で得た領域の中のイメージ画像を文字認識する。ここでは、詳細を省略するが、イメージ画像の文字認識に関する手法については、「TURBO Pascal 画像処理の実際」(303−320ページ、1989年、工学社)に記載されている。
ステップ552では、ステップ551で認識した結果と辞書情報4の表示項目情報62の表示項目名65とを比較する。比較した結果、一致度の高い表示項目名を選び(ステップ553)、カーソルフラグを文字カーソルに設定する(ステップ554)。ステップ555では、ステップ553で一致度が一番高い表示項目の文字をカーソル付近に表示するとともに、図14(b)に示したリスト領域の候補項目エリア1401に、一位以下のものを順に表示する。尚、文字カーソルに表示している項目1404を他の項目と異なる態様で表示している。図14(b)では、文字の周りに枠を付けているが、反転表示したり、文字の色を変えて表示しても良い。
このようにして、試験項目が選択された場合、カーソルは文字カーソルとして表示され、カーソルフラグは文字カーソルとなる。このときのカーソルは、図14(b)の矢印1002で示すような文字カーソルとして表示されている。
次に、イメージ領域に対して、矩形が入力されると(図14(b)に示す破線の領域1204)、ステップ510から処理560へ進む。処理560では、ステップ504で入力された矩形から矩形の位置に関する情報を得る。これをテンポラリテーブルへ格納し(ステップ561)、文字カーソルに表示されている表示項目に基づき、辞書情報4から抽出した表示項目情報62、コントロール部品制御情報63、及びデータベース言語情報64をテンポラリテーブルへ格納する(ステップ562)。このときコントロール部品によっては、図4のテーブル70を参照してコンボ項目名をテンポラリテ−ブルへ格納する。
次にテンポラリテーブルへ各種情報を格納するとともに、カーソルフラグをNot_Selectに設定し(ステップ563)、図14(a)に示すような非選択状態のカーソル1001を表示し(ステップ564)、さらにコントロール部品詳細情報63を参照してテンポラリテーブルに格納した値と位置情報に基づき、コントロール部品を表示する(ステップ565)。図14(b)では、二つ目の矩形1204まで表示している。この矩形を入力した後、1201や1205で示したような部品が1204の領域に表示される。部品の内部には、表示項目名が表示されている。そしてステップ566で、保存フラグをNGに設定する。
このようにして、コントロール部品を配置するが、試験項目を選ぶ方法として、リスト領域に表示された試験項目を非選択状態のカーソルによって選ぶ方法がある。リスト領域へ入力があった場合、図6のステップ218における判定の結果、リスト領域処理400が実行される。処理400では、図9に示すように、ステップ402の判定の結果、選択された項目が試験項目であればステップ404へ進む。ステップ404では、カーソルフラグを文字カーソルに設定し、ステップ406では、選択した試験項目の表示項目名をカーソル付近へ表示する。
一方、リスト領域上の取り消しボタン(図14の1403)が選択された場合は、ステップ408からステップ410へ進み、カーソルフラグをNot_Selectに設定し(ステップ410)、表示されている文字カーソルもしくは部品カーソルを非選択状態のカーソルとして再表示し(ステップ412)、部品フラグに0を設定する(ステップ414)。
以上のように新たに部品を配置する方法の他に、既に配置してある部品と同様のものを複製する場合がある。部品を複製する方法には、二通りある。第一の方法は、部品カーソルが表示された状態で、イメージ画像上の他の部品を含まない場所に矩形を指定する方法である。第二の方法は、まず部品カーソルを表示させ、次に図13(a)のメニュー領域にあるコピーボタン1105を選択する方法である。
そこでまず、部品カーソルが表示される場合について、図10を用いてイメ−ジ領域処理500を説明する。尚、部品カーソルは、既にイメージ画像上に配置された部品を複写する場合に表示されるカーソルであるため、既に画像上に少なくとも一つの部品が配置されていることが前提である。
まず、イメージ画像上に矩形を入力し(ステップ504)、この矩形の中に部品があるか否かを判定し(ステップ506)、矩形の中に部品がある場合、ステップ520へ進む。ステップ520では、矩形内にあった部品の部品IDと部品フラグが同じか否かを判定する。部品IDと部品フラグが一致するならばステップ528へ進み、一致しなければステップ521へ進む。ステップ528では、矩形を入力した際の入力座標に基づき、部品を移動し、再描画し(ステップ528)、保存フラグをNGに設定する(ステップ530)。
一方、ステップ521では、カーソルフラグを部品カーソルに設定する。次にステップ522でカーソルフラグに、ステップ520で比較した部品IDを設定する。ステップ523では、矩形内に含まれる部品が選択されていることを示す態様で再表示する。ステップ524では、カーソルを部品カーソルとして表示する。
矩形内に部品がない場合、部品カーソルが表示された後にイメージ領域へ矩形が入力される(ステップ504)と、カーソルフラグが部品フラグであれば処理570が実行される。入力された矩形の表示例を図14(b)の1206に示す。処理570を、図11(c)を用いて説明する。ステップ571では、ステップ504で入力された矩形の位置情報をテンポラリテーブルに格納する。部品フラグの部品IDに関するテンポラリテーブルの表示項目情報、部品制御情報、及びデータベース言語情報を参照し、フィールド名の項目以外の項目の内容を複写する。但し、フィールド名に添字を足すなどして、参照元のフィールド名とは異なり、かつ参照元のフィールド名と関連があることを示すフィールド名を付与し、そのフィールド名をテンポラリテーブルに格納する。また、このとき参照元のフィールド名も、参照されたことを示すフィールド名に変更する。例えば、辞書情報におけるフィールド名が「tmp」であった場合、一つ目の部品のフィールド名をtmp1、二つ目の部品のフィールド名をtmp2とする。ステップ573では、カーソルフラグをNot_Selectに設定し、カーソルを部品カーソルから非選択状態のカーソルに変更して再表示する(ステップ574)。ステップ575では、部品詳細情報を参照し、画面に部品を表示する。ステップ575では、保存フラグをNGに設定し、処理570を終了する。
以上のようにしてユーザは、図5の処理162、164によって、CRF用紙に記載された試験項目と、それに対応する症例DBのフィールド名との対応関係を表すデータを入力できる。入力されたデータはテンポラリテーブルに格納されており、これらを保存する処理168とDBを作成する処理169について、図7を用いて説明する。図13(a)に示すメニュー領域1100の「保存」メニュー1103が選択された場合は(図7のステップ306)、リンク情報を保存する処理(図7のステップ326)によって、テンポラリテーブルに格納されたデータがファイルに格納される。また、DBのテーブルは、「DB登録」メニュー(図13のメニュ−1104)が選択された場合は(ステップ308)、テーブル35のデータベース言語情報39の各欄に格納されているフィールド名やデータ型を参照して生成される(図7のステップ332)。
本実施例では、ステップ326とステップ332とは、異なるメニューが選択された場合に、各々実行されるが、いずれか一つのメニューが選択された場合に、続けて実行しても良い。しかし、複数枚のイメージ画像に対して部品を配置する場合などでは、このように各ステップが独立して実行できる方がよい。なぜならば、一つのイメージ画像に対してリンク情報を作成する度に、それをファイルに格納すれば、複数枚分のイメージ画像に対するデ−タベ−スのテーブル定義が一括して行なえるので、検索効率よくテーブル定義が行なえる。さらに、いったん作成したテーブルにフィールドを追加できないようなデータベース言語を用いている場合は、上記の手法は特に有効となる。
さて、リンク情報の格納とデータベースの定義を実行した後、ファイルを閉じることによって、引き続きデータベース定義処理もしくはデータベース入力処理を実行することができる。ファイルを閉じる処理(図5のステップ190)は、図13(a)のメニュー領域1101の「閉じる」ボタンを選択することによって実行される。図7に示すメニュー領域に対する入力があった場合の処理では、ステップ302で「閉じる」ボタン(図13のメニュ−1101)が選択された場合、ステップ312に進み、保存フラグがOKかNGかを判定し(ステップ312)、OKならば表示しているファイルを非表示に変更し(ステップ314)、Mode=Noneを設定し(ステップ316)、本ルーチンを終了する。一方、保存フラグがNGならば、未保存の情報を破棄する事をユーザに確認させた後、ファイルを非表示に変更し(ステップ318)、Mode=Noneを設定し(ステップ320)、本ルーチンを終了する。ユーザが未保存の情報の破棄を承認しなかった場合は、ステップ318、320を実行せずに本ルーチンを終了する。
このようにして、データベース定義処理8により、リンク情報3と症例データベース5とが作成された後に、データベース入力処理9が実行される。データベース入力処理9では、イメージ情報2とリンク情報3とに基づき、データベース入力画面を表示し、表示した画面に対してユーザから入力されたデータを症例データベース5へ格納する。
具体的に、図5に示すように、ユーザが、入力する試験項目を選ぶ作業(ステップ172)と、CRFに記載されたデータを選んだ部品に入力する作業(ステップ174)とを繰り返してすべてのデータを入力した後、これらを保存する(ステップ176)。ステップ176の保存の処理は、入力したデータをファイルへ保存する処理(ステップ178)とDBに登録する処理(ステップ179)とからなる。
プログラムの起動(図5のステップ150)とモードの選択(図5のステップ155)は、データベース定義と同様であるので説明を省略する。図6におけるステップ214でMode=入力が設定されるとモードの設定に引き続き、ファイルを開く処理が実行される(図8(b))。入力モードにおけるファイルを開く処理では、ステップ366とステップ368のみが、定義モードにおけるファイルを開く処理(図8(a))と異なるため、以下ではこれらのステップのみを説明する。
ステップ366は、入力モードでは実行されない。すなわち、リスト領域は表示されない。ステップ368は、テーブル10とテーブル20を参照して、選択されたフォルダの一ページ目の画像ファイルをイメージ表示領域1200に表示し、さらにリンク情報を参照して、入力用の部品を表示する。このとき、表示した部品のうちの一つを、キーボードやマウスからの入力が可能となるように設定し、データが入力可能である部品を入力を受け付けていない部品とは異なる態様で表示する。また、症例データベースに定義したテーブルと同様なデータ構造のテンポラリテーブルをメモリ上に設ける。
次に、図5に示した、入力すべき試験項目を選ぶ作業(ステップ172)と選んだ部品にCRFに記載されたデータを入力する作業(ステップ174)とを、図10と図12のフローチャートと図15の画面表示例とを用いて説明する。
CRFに記載されたデータを入力する場合は、イメージ領域にデ−タが入力されるため、図6のステップ220では、イメージ領域処理500に進む。Modeは「定義」ではないため、図10のステップ502からステップ540へ進む。ステップ540の詳細を図12に示す。
図12のステップ541では、キーボードによる入力か、マウスによる入力かを判定する。マウスによる入力ならばステップ542へ進み、キーボードによる入力ならばステップ545へ進む。ステップ542では、マウスによって入力された位置が、入力可能な部品を表示している範囲内に含まれるか否かを判定する。範囲外ならばステップ543へ進み、範囲内ならばステップ545へ進む。
ステップ543では、マウスによって入力された位置を含む部品を検出し、検出した部品を入力可能な部品として設定してステップ544へ進む。このとき該当する部品が検出されなければ、図には示していないが、この処理540を終了する。ステップ544では、データを入力できる部品を他の部品とは異なる態様で表示し、処理540を終了する。
一方、ステップ541とステップ542から分岐した場合、入力装置からの入力デ−タをテンポラリテーブルへ格納する(ステップ545)とともに、部品に入力された内容を部品内に表示する(ステップ546)。データの入力が完了したことを示す入力(例えば、キーボードから「Enter」キーが押下されることや、マウスのボタンが離されることなど)を受け付けた後、テンポラリテーブルの中からデータが入力されていないフィールドを探し、そのフィールドに対応する部品を入力可能な部品として設定し(ステップ547)、入力可能な部品として設定された部品を他の部品とは異なる態様で表示する(ステップ548)。そして、ステップ549において、保存フラグをNGに設定して処理540を終了する。
この処理540が繰り返されることで、CRF用紙に記入されたデータがテンポラリテーブルに順次格納される。
入力可能な部品であることを示す態様として、図15(a)に示すように文字の入力が受付可能なことを示すカーソル1212を表示したり、部品の枠を他の部品とは異なる色や形で表示する方法がある。
また、表示するイメージ情報として、記入済みのCRFをイメージ画像として取り込んだ画像ファイルを用いる場合、図15(a)で表示する場所とは異なり、データを入力する部品は、例えば、図15(b)で示すように画面の下方向へシフトした位置1210へ表示される。こうすることで、イメージ画像に表示されている文字を見ながら部品へデータを入力することが可能となる。この場合は、入力されたデータを部品内に表示する際は、データを表示した部品を、図15(a)で示した位置に表示する。また、図15(b)に示すように画面上には、入力可能な部品とデータが入力されたフィールドに対応する部品とが表示されている。
こうして、図5の処理172、174で、CRF用紙に記載されたデータが、テンポラリテーブルに格納される。このテンポラリテーブルに格納されたデータをファイルに保存する処理178とDBに登録する処理179を、図7を用いて説明する。テンポラリテーブルに格納されたデータは、Modeが入力であるため、メニュー領域1100の「保存」メニュー1103が選択された場合(図7のステップ306)、「入力レコードを保存する処理」(図7のステップ328)が実行され、入力レコ−ドがファイルに格納される。また、このファイルの内容は、「DB登録」メニュー1104が選択された場合(ステップ308)、「レコードをDBに更新する処理」(図7のステップ334)が実行されて、症例データベース5に格納される。
これらのステップ178とステップ179とを続けて実行しても良いが、複数の端末を用いて入力する場合、入力したデータを保存する毎に、DBへのアクセスを行なうと、DBへの他のアクセスができないために、入力したデータを保存できないことがありうる。よって、このように端末から入力したデータを保存する処理とDBへ登録する処理とを分けることによって、入力したデータがハードウエア障害や人為的なミスによって失われる恐れを軽減できる。
こうして、CRF用紙に記載されたデータが症例データベースに格納される。
ファイルを閉じる方法は、データベース定義処理と同様であるので、説明を省略する。また、本システムの終了方法については、システムの起動とともに説明したので、ここで改めて説明しない。
上記の本発明によるデ−タベ−ス作成方法を実行するためのプログラムは、ハ−ドディスク装置、フロッピディスク、あるいは光ディスクなどの記録媒体に格納され、CPUの主記憶に読み込まれて実行される。
1…フォルダ情報、2…イメージ情報、3…リンク情報、4…辞書情報、5…データベース、6…イメージ情報入力処理、7…辞書作成処理、8…データベース定義処理、9…データベース入力処理、10…フォルダ情報テーブル、20…イメージ情報テーブル、25…イメージ情報ファイル、30、35…リンク情報テーブル、60、70、80…辞書情報テーブル、90…症例テーブル、100…データベース定義用端末、110…データベース入力用端末、101、111…中央処理装置、102、112…表示装置、103、113…記憶装置、104、114…文字入力装置(キーボード)、105、115…位置入力装置(マウス)、106、116…画像入力装置、107、117…記憶媒体ドライブ装置、108、118…CD-ROMドライブ装置、120…ファクシミリ装置、121…ネットワーク、122…公衆回線、200…データベース作成処理、300…メニュー領域処理、400…リスト領域処理、500…イメージ領域処理、350…ファイルを開く処理