(57)【要約】  【課題】  紙文書に記載された内容を、データベース入力する際、データベースへの入力項目追加が生じる場合に、データベースを再構築した後に、入力作業を再開せざるを得ないため、データベース構築の作業効率が低下する。  【解決手段】  以下の手段により、DB入力時に、一旦定義したDBを再定義することなく入力項目の追加が行え、同時にDBに入力したデータを他アプリケーションでも活用できる形式でデータを抽出する。  （１）入力部品の個数を変化させ、これに伴い症例DBの持つ構造情報を変更することにより、症例DBのテーブル構造を再定義することなく、入力時に新たに追加された項目に対するデータ格納領域を症例DBに確保する手段。  （２）入力時に入力項目の追加が可能である症例DBと他DBとの対応づけ情報を生成し、生成した対応づけ情報を用いて、症例DBから他DBへのデータ抽出・挿入を行う手段。【選択図】  図１
2004199710.tif 000002
【特許請求の範囲】
【請求項１】
２次元配列の表形式データに関するデータベースの作成システムにおいて、
前記２次元配列の表形式データを保持する記憶部と、
前記２次元配列の表形式データの各要素である部品毎に、２次元配列表示させた場合の当該部品の部品位置情報と、当該部品の属するブロックについてのブロック管理情報とを１レコードのリンク情報として保持するリンク情報データベース部と、
前記２次元配列の表形式データにおけるブロック単位の追加要求が入力された場合、前記追加ブロックに係るブロック管理情報、及び当該ブロックに属する複数の部品に係る部品位置情報を含むリンク情報を生成し、追加要求に係る各部品と対応付けて当該部品に係る入力データを前記記憶部に記憶させる処理部と、
を有することを特徴とするデータベース作成システム。
【請求項２】
請求項１に記載のデータベース作成システムにおいて、
前記ブロックは、前記２次元配列の表形式データの行又は列であることを特徴とするデータベース作成システム。
【請求項３】
請求項１に記載のデータベース作成システムにおいて、
前記ブロック管理情報が、ブロックIDと配列番号を有することを特徴とするデータベース作成システム。
【請求項４】
請求項１に記載のデータベース作成システムにおいて、
前記ブロックの少なくとも１について、ユーザによるブロック領域指定入力を受けて、当該ブロックのブロックID及び配列番号を割り当てる処理を行うブロック化処理部を有することを特徴とするデータベース作成システム。
【請求項５】
請求項４に記載のデータベース作成システムにおいて、
前記ブロック化処理部は、前記ブロック化処理のされたブロックを単位として、当該ブロックとブロックIDを同じくし、配列番号の異なるブロックを生成することを特徴とするデータベース作成システム。
【請求項６】
２次元配列の表形式データに関するデータベースの作成方法において、
記憶部に前記２次元配列の表形式データを保持するステップと、
リンク情報データベース部に、前記２次元配列の表形式データの各要素である部品毎に、２次元配列表示させた場合の当該部品の部品位置情報と、当該部品の属するブロックについてのブロック管理情報とを１レコードのリンク情報として保持するステップと、
前記２次元配列の表形式データにおけるブロック単位の追加要求が入力された場合、演算処理部により、前記追加ブロックに係るブロック管理情報、及び当該ブロックに属する複数の部品に係る部品位置情報を含むリンク情報を生成し、追加要求に係る各部品と対応付けて当該部品に係る入力データを前記記憶部に記憶させるステップと、
を有することを特徴とするデータベース作成方法。
【請求項７】
請求項６に記載のデータベース作成方法において、
前記ブロックは、前記２次元配列の表形式データの行又は列であることを特徴とするデータベース作成方法。
【請求項８】
請求項６に記載のデータベース作成方法において、
前記ブロック管理情報が、ブロックIDと配列番号を有することを特徴とするデータベース作成方法。
【請求項９】
請求項６に記載のデータベース作成方法において、
ブロック化処理部により、前記ブロックの少なくとも１について、ユーザによるブロック領域指定入力を受けた場合、当該ブロックのブロックID及び配列番号を割り当てる処理を行うことを特徴とするデータベース作成方法。
【請求項１０】
請求項９に記載のデータベース作成方法において、
前記ブロック化処理部により、前記ブロック化処理のされたブロックを単位として、当該ブロックとブロックIDを同じくし、配列番号の異なるブロックを生成することを特徴とするデータベース作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
帳票などの紙ベースの記入用紙に記載されている内容を電子化し、管理するためのデータベースを作成する方法および、その作成したデータベースへ集計データを入力する方法及びデータベースに入力された内容を出力する方法に関する。
【背景技術】
【０００２】
数値や文字、記号で表される大量の情報を管理する情報システムとして、データベースシステムと呼ばれるものが有る。非特許文献１によれば、データベースシステムは、次の手順で構築され、利用される。なお以下では、データベースのことをDBと略すことにする。
（１）データ構造の定義。すなわち、関係DBでいうテーブルの定義。
（２）テーブルを構成する個々のデータフィールドに対するデータの入力。
（３）データ入力されたテーブルの活用。
【０００３】
非特許文献２に記載されている、マイクロソフト社のアクセスに代表される関係DBでは、上記（１）で定義したデータフィールドに対してのみデータ入力を行うことができる。入力作業時に新たな入力フィールドが生じた場合には、（１）のテーブル定義を再度行い、新たなテーブルを作成し、新たに作成したテーブルに対してデータを入力することで対応しなければならない。また、近年のDBにおいては、グラフィカルユーザインタフェース（以下GUIと略する）を用いた画面をもちいて、データ構造を定義したり、データを入力したりする方法が提供されている。例えば、コントロールと呼ばれる入出力部品を画面上で配置することによって、予めデータ構造を定義したDBへ、データを入力するための画面を作成する方法を提供している。なお、コントロールとは、非特許文献３によれば、GUIで用いられる、なんらかの動作を実行させるためにユーザーが操作する画面上の物体であると定義されたものである。このコントロールの一つに、キーボードを用いて入力された文字を表示できるような入出力領域を表すような部品がある。
【０００４】
【非特許文献１】データベース・システムの原理（Jeffrey D. Ullman, 日本コンピュータ協会, 1985）
【０００５】
【非特許文献２】Access Ver.2.0 Part1（エーアイ出版、1995）
【非特許文献３】マイクロソフトコンピュータ用語辞典（アスキー出版局、1993）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
医薬品会社は、新しく開発し、販売しようとする試験薬品（以下試薬と略する
）の人間に対する試験を医療機関の医師へ依頼している。依頼を受けた医師は、被験者に試験薬品を投与し、試験項目に従って各被験者のデータを測定する。これが、臨床試験と呼ばれ、この臨床試験の結果は、症例報告書（以下CRFと略す
る）と呼ばれる記録用紙に記録される。これらの試験項目は、試験の対象となる薬品ごとに予め定められる。定められた試験項目に関する情報は、CRFに記入さ
れる。CRFは、印刷された紙又は電子的な記録様式である。以下では特に紙に印
刷されたCRFをCRF用紙と呼ぶ。一般に、CRF用紙は、一つの試薬に対して、複数
枚で構成されている。
医薬品会社は、未記入のCRF用紙を医師に渡し、医師は依頼された試薬試験の結果をCRF用紙に記入する。医薬品会社は、記入済みのCRF用紙を回収し、この記入済みCRF用紙を元に臨床試験の結果をDBに入力する。 DBに入力されたデータに対し、集計や統計解析を行う。こうして得た集計データや統計処理結果などを用いて、試験薬品の有効性を判定する。以下では、臨床試験データを蓄積するDBのことを、症例DBと呼ぶことにする。症例DBは、以下の手順で構築される。
（１）試薬ごとに、試験項目が規定される。試験項目は、試薬の種別によって標準的な項目が予め定められている。ただし、各試薬毎に、評価する項目の内容や組み合わせが、異なる。
（２）試験項目に基づき、CRFが作成される。
（３）CRF用紙に記載されたデータを入力するためのテーブルが、症例DBに対して定義される。すなわち、一種類のCRFに対して、症例DBには、一つのテーブル(CRFテーブル)が定義される。
（４）作成されたCRFテーブルに基づき、症例DBへCRF用紙に記載されたデータを入力するための画面を作成する。
（５）上記（２）で作成されたCRF用紙が臨床試験医に配布され、臨床試験の結果がCRF用紙に記入される。CRF用紙には、被験者単位のデータ（氏名、体温、血圧など）が記入される。CRF用紙は、医者本人が記入し、承認印をおすことが法的に定められている。
（６）医薬品会社によって回収された、記入済みのCRF用紙の記載データが、（４）で作成された画面を用いて、症例DBに入力される。
（７）上記（６）で臨床試験結果が入力された症例DBは、試験薬品の有効性などを判定するために、被験者の個々のデータを検索・参照され、利用される。特に症例DBから必要な項目を別DBに抽出し、抽出したDBに対して、統計解析などデータ加工処理を行う。
【０００７】
従来技術では、DBの定義を行った後、定義したDBに対してデータ入力を行う。入力作業時において入力項目の追加を行うことができない。しかしCRF用紙における投薬名などの項目については、記入欄が３つしかない場合でも、医師４種類の薬品を投薬する場合がある。予め設けた記入欄に記入できない投薬名は、医師が適当に欄の余白部分に記入することがある。すなわち、未記入CRF用紙には投薬名の記入欄が３つしかない場合でも、記入済みCRF用紙に４つの投薬名が医師によって記入されている場合がある。こうした場合では、記入済みCRF用紙の入力時に、投薬名の欄をDBにあらかじめ設けた個数よりも増やして入力したり、 DBに予め用意した測定日数よりも多くの日数分のデータがCRF用紙に記入されているため、測定日数を入力時に増加させる必要が生じる。
【０００８】
しかし、従来技術では、入力作業時にDBの入力項目の増加や追加を行い、DB定義を再度行うことなく、あらたに追加された入力項目のデータ入力領域をDBに確保する手段については述べられていない。記入済みCRF用紙の入力作業においては、手書き情報を入力するにあたり、新たな項目を設ける必要が生じる場合があり、従来技術では、症例DB全体を再構築しなおす必要が生じる。また手書き文字を入力するにあたっては、欄外への記入に対する入力手段が必要であるが、こうした入力手段についても従来技術はふれていない。
【０００９】
また、記入済みCRF用紙を入力することで作成されたDBに対しては、統計処理を行う際に必要なデータを取り出して加工する手段が必要とされている。しかし、入力作業時にデータベースの入力項目の増加や追加を行えるDBにおいて、従来からあるDBや統計処理などのアプリケーションにおいて扱える構造で、 DBから必要な情報を抽出する一連の処理については、述べられていない。 CRFのDBを作成するにあたっては、入力時に項目の追加が行える機能をDBが持つとともに、統計処理や帳票作成を行うにあたり必要な情報のみを取り扱いやすい形式で抽出することが必要であるが、これらを同時に支援する手段については、従来技術では述べられていない。
【００１０】
すなわち、従来技術のDBは、 DB入力時に、一旦定義したDBを再定義することなく入力項目の追加が行え、同時にDBに入力したデータを、他アプリケーションでも活用できる形式でデータを抽出する手段を持たない。このため、CRF入力作業においては、DBの再定義作業が頻繁に生じたり、他アプリケーションで入力データが活用できない、などの課題が生じている。
【課題を解決するための手段】
【００１１】
本発明では、上記課題を以下の手段を用いて解決する。
（１）症例DBを定義する手段において、ユーザがデータ入力を行う入力領域と、入力データを格納するDBとを対応づけるリンク情報に、 DBの項目間の構造を制御する構造情報を生成し格納する手段。
（２）イメージ情報上に、リンク情報を用いてコントロール部品を制御し、コントロール部品にたいする入力データをリンク情報に含まれる構造情報と共に、症例DBに格納する手段。
（３）入力部品の個数を変化させ、これに伴い症例DBの持つ構造情報を変更することにより、症例DBのテーブル構造を再定義することなく、入力時に新たに追加された項目に対するデータ格納領域を症例DBに確保する手段。
（４）症例DBの項目情報を参照することで、症例DBのテーブル構造とは異なる形で、症例DBの構造をE-R図とよばれる図式に基づく形式で画面に表示する手段。なお、E-R図については、「Object Oriented Methods」（I.Gtaham, Addison Wesley,1994）に記載されている。
（５）（４）でのE-R図に基づく表示画面に対するユーザーのマウス操作通じて、入力時に入力項目の追加が可能である症例DBと他DBとの対応づけ情報を生成し、生成した対応づけ情報を用いて、症例DBから他DBへのデータ抽出・挿入を行う手段。
【００１２】
以上の手段により、DB入力時に、一旦定義したDBを再定義することなく入力項目の追加が行え、同時にDBに入力したデータを、他アプリケーションでも活用できる形式でデータを抽出することを実現する。これによりDB構築作業の効率化を図る。
【発明の効果】
【００１３】
本発明によれば、入力作業時に、DB定義時には設けなかった入力領域を表示し、この入力領域に入力されたデータを症例DBに格納することができる。これにより、記入済みのCRF用紙に、DB定義時に定義した入力領域の個数よりも多くのデータが記載されていても、DBを再構築することなく、記入済みCRF用紙のデータ入力作業が行えるようになる。ブロック化機能と呼ぶ項目間に構造を与える機能設けることで、症例DBに柔軟な構造を与えることができる。本発明によれば、症例DBが汎用シングルテーブルと呼ばれる構造をもっているため、データ入力時に入力項目を増やし、入力することを可能とした。また、症例DBから必要な情報を、汎用シングルテーブルの構造を理解することなく、抽出・挿入する手段を設けた。
上記で述べたことにより、入力時のDB構造変更に対応でき、症例DBの変更に対し、柔軟に対応でき、メンテナンス性の向上が図れる。さらに他アプリケーションとのデータのやりとりが柔軟に行えるようになった。これらにより、症例DBを作成する作業の作業効率が向上し、症例DBを作成するための時間が短縮される。
【発明を実施するための最良の形態】
【００１４】
１．本実施例の概略
本実施例では、CRF用紙に記入された臨床試験の結果が格納されたDB(症例DB)を作成する場合を例に説明する。１章では、本実施例の全体構成について述べる。２章では、図１におけるデータベース（以下DBと略す）定義処理110、DB入力処理120について述べる。３章では、テーブル情報抽出・挿入処理130について述べる。
【実施例１】
【００１５】
１．１システムの全体構成
図１を用いて本実施例で述べるDB（以下DBと略す）構築システム100の概略を説明する。本システムにおいては、ユーザからの入力に応じて、以下の５つの処理を行う。
（１）辞書情報の保守・作成処理101
（２）イメージ情報入力処理102
（３）DB定義処理110
（４）DB入力処理120
（５）テーブル情報抽出・挿入処理130
（４）においては、（３）のDB定義時には設けなかった入力領域を表示し、この入力領域に入力されたデータを症例DBに格納することができる。これにより、記入済みのCRF用紙に、DB定義時に定義した入力領域の個数よりも多くのデータが記載されていても、DBを再構築することなく、記入済みCRF用紙のデータ入力作業が行えるようになる（図16）。特に（３）においてブロック化機能と呼ぶ項目間に構造を与える機能設けることにより、症例DBに柔軟な構造を与えることができ、データ入力時に入力項目を増やし、入力することが可能になった。よって、症例DBの再構築作業が不要となり、症例DBを作成する作業の作業効率が向上し、症例DBを作成するための時間が短縮される。
そして（５）においては、症例DBから必要な情報を、汎用シングルテーブルの構造を理解することなく、抽出・挿入する手段を設けることにより、他アプリケーションとのデータのやりとりが柔軟に行えるようになる（図22）。
以下では図１を用いて、上記（１）−（５）の各処理と、（１）−（５）の各処理内で行われる主な処理について説明する。詳細については、２章以降でフロー図を用いて説明する。なお、図１中の処理には、各処理を説明するためのフロー図番号が示されている。
（１）では、辞書情報140を生成・更新する。辞書情報140は、予め、辞書情報作成・保守処理101によって作成され、図２の記憶装置203に格納されている。辞書情報140は、CRFの試験項目になりうる項目の一覧を管理する辞書データである。各CRFの試験項目として必要な項目はこの辞書情報に含まれている。すなわち、各CRFの試験項目は辞書情報の部分集合として与えられる。詳細については、図４を用いて後述する。また、辞書情報は、CD-ROMなどの記憶媒体に格納し、必要に応じて、 CD-ROM読み書き装置208を用いて参照されても良い。
（２）では、未記入CRF用紙から、フォーマットフォルダ情報141とフォーマットイメージ情報142を生成し、記入済みのCRF用紙からデータフォルダ情報144とデータイメージ情報145を生成する。
ここで、図３にイメージ情報324と、イメージ情報を管理するフォルダ情報310を示す。未記入CRF用紙に対するイメージ情報が、フォーマットイメージ情報142であり、記入済みCRF用紙に対するイメージ情報が、データイメージ情報145である。未記入CRF用紙に対するフォルダ情報が、フォーマットフォルダ情報141と呼び、記入済みCRF用紙に対するフォルダ情報が、データフォルダ情報144である。
なお、イメージ情報324は、臨床試験の結果が未記入もしくは記入されたCRF用紙をスキャナなどで読み取ることで得た画像データである。イメージ情報324は、記憶装置203に格納されている。なお、CRF用紙は、試薬毎に作られ、一種類の試薬に対して複数枚数のＣＲＦ用紙で構成される。
一方、フォルダ情報310は、上記で述べたイメージ情報324を束で管理するものである。フォルダ情報310により、一枚のCRF用紙を一つの画像ファイルとして取り込んだ時も、試薬の名前を指定すれば、所望のCRFの画像ファイルを束として取り出すことができるようになる。フォルダ情報310の詳細は図３のテーブル構成図を用いて後述する。
（３）DB定義処理110では、リンク情報143を作成する。ここでいうリンク情報143は、各CRFで決められている試験項目（表示項目名）、CRF画像上に配置する入出力領域(以下では、このような入出力可能な領域を部品と呼ぶ)の位置や、作成するDBのテーブルを定義・検索するのに必要な情報(テーブルのフィールド名や、データ型など)などからなるものである。特にリンク情報143はブロック管理情報とよぶ項目間を階層化して管理する情報を含んでいる。このリンク情報により、DBへデータを入力するための入力画面を作成する。そして、入力画面に入力された入力データを、症例DB146に格納する方法が、リンク情報によって定められる。リンク情報143は、ユーザからの位置入力および、フォーマットフォルダ情報141とフォーマットイメージ情報142と辞書情報140を参照することで作成される。リンク情報143の詳細は図３を用いて後述する。
【００１６】
本処理の画面例を図７に示す。フォーマットイメージ処理111により、画面にはフォーマットイメージが表示される（図7（a））。
【００１７】
リンク情報入力（図10）により、ユーザが、画面に表示された辞書項目と、画面上のフォーマットイメージ上の矩形情報とを対応づけることで、リンク情報が生成されていく。
【００１８】
入力領域生成処理（図11）により、リンク情報143を参照して、フォーマットイメージ上に入力部品が生成される。部品の表示例としては、文字の入力を受け付けるテキスト部品(図7(b)711)や、複数の選択項目を表示しその中からデータを選ばせるコンボ部品(図7(b)712)とがある。
【００１９】
入力領域ブロック化（図12）は、作画ツールなどがもつ図形のグループ化と同様な入力インタフェースにより、複数の入力領域をグループ化することである。ブロック化機能が、作画ツールのグループ化機能と異なる点は、入力領域のグループ化することによりデータベースに入力項目間に構造を定義していることである。また、後述するように、グループ化された複数の入力領域を、一つのブロック単位として、入力領域を増やすことができるようになる。
ブロック領域のコピー（図13）により、ブロック化された複数領域は、ブロックを一つの単位として複製を行うことができる。これらの処理は常にデータベースの構造と連動して行われる。ブロック化およびブロック領域コピーの例を図14と15に示す。詳細は後述する。
【００２０】
（４）DB入力処理120では、データフォルダ情報144とデータイメージ情報145、（３）で作成したリンク情報143とを参照し、データ入力画面を表示する（図16（a））。そして入力画面に入力されたデータを、症例DB146に格納しする。なお、症例DB146の実体は、一つの大きなテーブルからなり、汎用のデータが入力できるようになっている（図5）。特にブロック管理情報を含むことにより、入力時に入力項目を追加し、追加項目に対するデータを格納できる（図16（b））。本実施例ではこのテーブルのことを、汎用シングルテーブルと呼ぶことにする。汎用シングルテーブルの構造については、図5を用いて後述する。
データイメージ表示処理（図18）では、記入済みCRFのイメージであるデータイメージ145を画面上に表示する。
入力領域表示処理（図19）では、リンク情報143を用いて、入力領域をデータイメージ上に表示する。図１６に入力時の画面例を示す。画面を見ながら入力処理を行えるよう、入力領域1630が定義時で指定した位置より下にずれて表示される。
入力領域追加（図20）では、リンク情報を定義する際に設けなかった入力領域を、リンク情報を参照することで、入力作業時に生成することができる（図16（b））。これにより、定義時に予め用意していなかった項目に対し、入力領域を与えることが可能になる。
データ入力（図21）では、リンク情報143もしく入力領域追加によって作成された入力領域に対する入力データを、リンク情報143を参照することで、症例DB146に格納する。
（５）テーブル情報抽出・挿入処理130では、飛び先情報147を用いて、症例DB146からデータを抽出・挿入テーブル148に抽出する。また逆に抽出・挿入テーブル148から症例DB146に挿入することも行う。飛び先情報147は、汎用シングルテーブルからなる症例DB146と抽出・挿入テーブル148との対応関係を保持するものである（図23）。
【００２１】
症例DB表示（図25）では、一つのテーブルからなる症例DBの構造を、データベースでいうテーブル項目間の対応を図式化したE-R図に類似した複数テーブル間の対応関係として、症例DB146のテーブル構造とは異なる形式で表示する（図22）。
抽出・挿入項目設定（図26）では、ユーザがグラフィカルな操作インタフェースを用いて、データ入力124でデータ入力された症例DB146からの抽出・挿入項目を指定する（図22）。そしてユーザの操作に応じて飛び先情報147が更新される。
項目条件設定（図27）では、項目条件画面（図22の2250）を操作することで、図22の抽出・挿入項目2233に対し、抽出・挿入の際の条件を設定する。設定した項目条件は飛び先情報147に格納される。
テーブル情報抽出・挿入（図28）は飛び先情報147を参照し、症例DB146のデータを抽出・挿入テーブル148に、抽出もしくは挿入する。
【００２２】
１．２システム装置の構成
本実施例における、システム装置の構成を図2を用いて説明する。本システムは、少なくとも一台のDB定義端末200と少なくとも一台のDB入力端末210とからなり、ＬＡＮ221や公衆回線222を介して接続されている。
【００２３】
また、CRF用紙をイメージ画像として取り込む入力装置としてスキャナに限らず、ファクシミリ装置220を使用する場合もある。ファクシミリ装置をイメージ画像の入力装置とすることによって、入力端末や定義端末のない場所からも、DBへ格納するデータが記入された用紙に関する画像を得ることができるので、より多くの場所から記入済みのＣＲＦ用紙を入手することができる。
定義端末と200と入力端末210は、中央処理装置201、211に、表示装置202、212、記憶装置203、213、キーボード204、214、マウス205、215、画像入力装置206、216、記憶媒体読み書き装置207、217、及びCD-ROM読み取り装置208、218が接続されている。キーボードやマウスの代りに手書き入力装置を用いてもよい。定義端末200と入力端末210とを別々に設ける場合、DB作成プログラムは、図1に示したような一つのプログラムとせずに、DB定義処理と入力処理とを別々のプログラムとしてもよい。別々のプログラムとすることで、記憶装置の記憶容量やメモリのメモリ占有量が削減できるので、プログラムの実行速度の向上が望める。また、本処理のプログラムを記憶媒体などに格納することができる。本処理のプログラムは例えば201などに格納される。
【００２４】
２．DB定義処理およびDB入力処理
２．１データ構造
以下では、本実施例のDB定義処理およびDB入力処理で用いるテーブルなどのデータ構造について説明する。
【００２５】
図3は、フォルダ情報142、イメージ情報141、リンク情報143及び症例DBとの関係を表わした図である。図4は辞書情報の説明図である。図5は症例DB144の詳細を示す説明図である。
【００２６】
２．１．１フォルダ情報
フォルダ情報310は、ＣＲＦと試薬との対応関係を表わす情報で構成される。
フォルダ情報310は、フォルダID311、フォルダ名312、頁リスト名313、リンク情報名314、症例DBテーブル名315及びメモ情報316の各欄で構成される。フォルダID311は、フォルダ名を一意に区別するための番号である。フォルダ名312、試薬の名前を表わしており、CRFを利用者が区別する際に用いる。頁リスト名313は、頁リスト320のテーブル名を格納している。頁リストはCRFの頁ごとのイメージ情報ファイル名を管理するものである。リンク情報名314は、リンク情報テーブル330のテーブル名を格納する。CRFの各イメージ情報上に入出力部品を配置したり、DB定義を行うのに必要な情報が格納されている。症例DBテーブル名315は、症例DB146を示すテーブル360を示すテーブル名が格納される。本実施例では、汎用シングルテーブル335の固定名が格納される。メモ情報316は、フォルダ名だけでは区別しにくい試薬に関する、補助的な情報を格納するための欄である。なお、頁リスト320、リンク情報330、症例DBテーブル360については後述する。なお、既に述べたように未記入CRFと記入済みCRFのフォルダ情報を格納したものが、図1に示すフォーマットフォルダ情報141、データフォルダ情報144である。
【００２７】
２．１．２イメージ情報
イメージ情報は、画像のイメージデータと、CRFのイメージデータを頁単位で管理する頁リスト320から構成されている。以下では、イメージ情報をCRFの頁単位で管理する頁リスト320について説明する。一枚のCRF用紙を一つの画像ファイルとして格納し、頁リストのテーブル320を用いてこれらの複数枚の画像ファイルを管理している。頁ID321は、各頁をユニークに区別する。頁数322は、各画像ファイルの順序を表わし、画像ファイル名323は、イメージ画像のファイル名を格納する。
【００２８】
２．１．３リンク情報
リンク情報143について説明する。リンク情報143は、リンク情報テーブル330と詳細テーブルテーブル335からなる。これらは、一つのテーブルとしても構わない。テーブルテーブル330は、リンクID4331、頁ID332、部品位置333、ブロック管理情報351、定義項目ID334の各欄からなる。
【００２９】
リンクID331は、以下で述べる「部品」をユニークに管理するための番号である。部品とは、DBへデータを入力するための画面における、キーボードやマウスなどの入力装置からの入力を受付け、入力された内容を表示する入出力領域のことを表わす。頁ID332は、前述のテーブル320の頁ID321の値を示している。この頁ID321と部品位置333の各欄に格納された値の組合せにより、イメージ情報の特定の位置を一意に決めることができる。
【００３０】
ブロック管理情報は、後述するブロック化処理を管理するための情報を格納する。本項目の詳細項目は、図5の症例DBにおけるブロック管理情報540と同じものからなる。ブロック管理情報の詳細については図5を用いて後述する。定義項目ID334は、詳細テーブル335の定義項目ID336を示している。
詳細テーブル335は、部品に関する詳細な情報が格納されており定義項目ID336、表示項目情報337、部品制御情報338とDB言語情報339とからなる。これらの情報は、前述した辞書情報140を参照して格納される。表示項目情報337は、表示項目名340と語句変換辞書ID341の各欄からなる。
【００３１】
部品制御情報338は、部品種別342、入力下限値343、入力上限値344、及びコンボ項目ID345の各欄からなる。DB言語情報339は、項目名346及びデータ型347の各欄からなる。コンボ項目ID345は、辞書情報140のテーブル470の内容を参照する際に用いる値を格納している。
【００３２】
２．１．４辞書情報
図4は、辞書情報140のテーブル構成図である。辞書情報はテーブル460、470、480より構成される。テーブル460の各欄は、前述したリンク情報143の詳細テーブル335と同様の欄で構成されているため、各欄の名称についてはここでは説明を省略する。表示項目名465とは、試験項目がCRF用紙に表示される際に、どのような名前で表示されているのかを表わした内容である。さらにその表示項目名を他の項目名で表わす場合、語句変換辞書480を参照して項目名を変換する。
テーブル470は、コンボと呼ぶ部品に関する詳細な情報を格納するテーブルである。コンボ部品とは、入力する値を選択肢としてもっている部品であり、コンボ項目とは、その選択肢である。テーブル470は、コンボ項目ID474、項目名475、語句変換辞書ID476、及び次コンボ項目ID477の各欄で構成される。テーブル460のコントロール部品種別467にCOMBが格納されている場合、コンボ項目ID471のIDに基づき、テーブル470の欄474が参照される。そこで、一つめの選択肢が「男」であることが、決定される。
【００３３】
さらに、次コンボ項目ID477に格納されたID「3」に基づき、コンボ項目ID474が参照され、二つ目の選択肢が「女」であることが決定される。そして、このコンボIDの値が3の次コンボ項目IDの値が「END」であることから、さらに次の選択肢がないことがわかる。なお、語句変換辞書ID466及び476で関連付けられているテーブル480は、項目名を異なる表現で表記するための変換辞書を表わしたものであり、その構成の一例を示している。
【００３４】
２．１．５症例DB
症例DBテーブル146について図5を用いて説明する。症例DB146を構成するテーブル500は、ID510、CRF管理情報520、ブロック管理情報530、データ属性情報540、データ格納領域550よりなる。なお、図では便宜上３つに分割して図示している。CRF管理情報520は、各CRFごとや、患者単位でデータを管理することを目的にした情報が格納される。CRF管理情報520は、患者ID521、フォーマットフォルダ名522、フォーマット頁数523、実データフォルダ名524、実データ頁数525、定義項目ID526よりなる。患者ID521には、各患者ごとにユニークなID番号が格納される。フォーマットフォルダ名522、フォーマット頁数523には、未記入CRF用紙のフォルダ名と頁数がそれぞれ格納される。実データフォルダ名524、実データ頁数525には、記入済みCRF用紙のフォルダ名、頁数がそれぞれ格納される。
【００３５】
ブロック管理情報530は、後述するブロック化機能に必要な情報を管理するものである。ブロック化機能とは、DB定義処理において入出力部品をイメージ上に配置する際、複数部品を一つの単位にまとめるものである。ブロック化された複数部品は、ブロックを単位として、部品のコピーなどを行うことができるようになる。詳細については図14、図15を用いて後述する。ブロック管理情報530は、レベルA531,レベルB532よりなる。さらに各レベルは、ブロックID、配列番号の項目からなる。このようにブロックを管理する２つのレベルをもつことで、ブロック化した入力領域を、入れ子状に管理することを実現している（図15）。これについては２．２．４で説明する。
データ属性情報540には、データ入力124で入力されたデータ種別を管理する情報が格納されている。データ属性情報540は、データ型541、入力日時542よりなる。データ型541には、入力されたデータ型を示す。ここには、データ型347と同様なものが格納される。ここに格納されるデータ型としては、整数値、浮動小数点、文字列型、日付型の何れかが格納されることになる。データ型541で指定されたデータ型に応じて実データ格納領域550の整数値551、浮動小数点552、文字列型553、日付554の対応する箇所に実際の入力データが格納される。入力日時542には、データ入力が行われた日時が格納される。
【００３６】
２．２DB定義処理
DB定義処理110では、表示装置202に、図6で示すDB定義画面600を表示し、ユーザからの入力を待つ。DB定義画面600は、メニュー領域610と、イメージ領域620とがある。メニュー領域610は、メニュー項目611〜616を含んでいる。これら領域を、ポインタ(マウスなどの入力装置で制御され、画面上の位置あるいは選択項目を示し、選択する手段)を用いて指定することをもって、メニュー領域に対して入力があったとする。なお、ユーザからボタン「終了」616の入力があれば、DB定義処理110を終了し、DB入力処理120を行う。
DB定義処理110を図8のフロー図に基づいて説明する。
ステップ801では、DB定義画面600を表示する。
ステップ802では、フォーマットイメージ表示を行う。すなわち、ユーザの入力に応じて、フォーマットフォルダー情報に基づくフォーマットイメージをDB定義時画面に表示する。
【００３７】
ステップ803では、リンク情報入力を行う。すなわち、リスト領域の選択項目と画面に表示されたフォーマットイメージとを対応づけて、リンク情報の入力を行う。
【００３８】
ステップ804では、入力領域生成を行う。すなわち、前ステップで入力されたリンク情報に基づき、入力領域を画面上に生成する。
【００３９】
ステップ804では画面上に生成された複数の入力領域が選択されたかを判定する。もし選択されていれば、ステップ805を行う。選択されていなければ、ステップ807を行う。
【００４０】
ステップ805では、前ステップで選択した入力領域に対して入力領域ブロック化を行う。
【００４１】
ステップ807では、ステップ806でブロック化された部品群が、マウスによる矩形指定などで、選択されたか否かを判定する。もし選択されていれば、ステップ808を行う。選択されていなければ、ステップ809を行う。
【００４２】
ステップ808では、ブロック化された入力領域をコピーし、ブロック化された入力領域を単位とした、入力領域の配列を作成する。
【００４３】
ステップ809では、DB定義時画面のメニューから「終了」616が選択されたか否かを判定する。「終了」616が選択されていれば、本処理を終了する。
【００４４】
２．２．１フォーマットイメージ表示
「フォーマットイメージ表示」 802を図9のフロー図に基づいて説明する。
ステップ901では、図6に示すファイル指定用ウインドウ630が表示される。ウインドウ630は、フォルダ名表示領域631、フォルダ画像表示領域633、「OK」ボタン634、「Cancel」ボタン635よりなる。以下に述べるステップにより、フォルダ名表示領域631には、フォルダ情報310のフォルダ名312の試薬名が表示される。フォルダ画像表示領域633に、ユーザが選択したフォルダ名に対応するCRF用紙の一枚目が縮小表示される。
【００４５】
ステップ902では、フォーマットフォルダ情報を参照し、フォルダ名表示領域631に、フォルダー情報310のフォルダ名312の欄に格納される試薬名を表示する。
ステップ903では、ユーザがフォルダ名表示領域631から選択したフォーマットフォルダ名に対応するフォーマットイメージを、フォルダ画像表示領域633に縮小表示する。フォーマットフォルダ情報の内、ユーザにより選択されたもののIDをメモリ上に保持する。そして、保持したIDに対応するフォーマットフォルダ情報レコードの頁リストファイル名を参照し、頁リスト320のファイル名を得る。
得た頁リスト320の画像ファイル名323を参照することにより、１頁目の画像ファイル名が得られる。この画像ファイル名の画像をフォルダ画像表示領域633に縮小表示する。同様にフォーマットフォルダ情報のメモ情報316を参照し、メモ情報欄332に表示する。
ステップ904では、ユーザが押したボタンに応じて処理を分岐する。「OK」634が選択された場合には、ステップ905を行う。「Cancel」635が押された場合には、ステップ908を行い、フォルダ指定用ウインドウを非表示にする。
ステップ905では、図7（a）に示すリスト表示領域700を表示する。リスト表示領域700の表示項目名領域701には、辞書情報140のテーブル460に格納されている表示項目465の欄の値が、表示される。
ステップ906では、ユーザが選択したフォルダの一ページ目の画像ファイルをイメージ表示領域620に表示する。ステップ903と同様に、メモリ上に保持したフォーマットフォルダ情報のIDと、フォルダー情報310と頁リスト320を参照して、ユーザが選択したフォルダの一ページ目の画像ファイルを表示する。
ステップ907において、ファイル指定用ウィンドウ630を非表示にし、本ルーチンを終了する。
以上の処理によりファイルが開かれた際の表示画面例が、図7(ａ)である。
【００４６】
２．２．２リンク情報入力
「リンク情報入力」 803を図10のフロー図に基づいて説明する。
【００４７】
ステップ1001では、リスト領域700において、試験項目がユーザによって選択されたかどうかを判定する。項目が選択されていればステップ1002を行い、選択されていなければ本処理を終了する。図7（b）では、項目として投薬名が701より選択されている。
ステップ1002では、ユーザが選択した表示項目名に対応する辞書IDをメモリに保持する。
ステップ1003では、フォーマットイメージが表示されているイメージ領域に対し、マウスなどを用て矩形領域が入力された否かを判定する。マウスで矩形領域を指定する方法としては、マウスのカーソルで二つの点を指定し、それらの点を対角線上にもつ矩形を指定する方法があり、こうした操作で矩形領域が入力されていれば、入力された矩形領域をメモリに保持し、ステップ1004を行う。
ステップ1004では、辞書情報140を参照し、リンク情報143に情報を格納する。ステップ1002で保持した辞書IDに対応する辞書情報140を参照し、辞書情報のテーブル460における表示項目情報462、部品制御情報463、データベース言語情報464を、リンク情報の詳細情報テーブル335に格納する。リンク情報テーブル330の定義項目ID334には、詳細情報テーブル335の定義項目ID336の値を格納する。
ステップ1005では、前ステップで情報格納の対象となったリンク情報のテーブル440の部品位置333に、ステップ1003で入力された矩形情報を格納する。
【００４８】
２．２．３入力領域生成
「入力領域生成」 804を図11のフロー図に基づいて説明する。本処理により、フォーマットイメージ上に、入力部品を入力領域として生成し、イメージ領域上に入力部品を表示する。なおここでいう入力部品とはDBへデータを入力する際に使用する部品のことである。部品の表示例としては、文字の入力を受け付けるテキスト部品(図7(b)711)や、複数の選択項目を表示しその中からデータを選ばせるコンボ部品(図7(b)712)とがある。
ステップ1101では、リンク情報生成で生成されたリンク情報のテーブル330、335を参照し、部品位置333、部品種別342をメモリ上に保持する。ブロック管理情報351については、初期設定値として全ての項目について０の値が格納される。
ステップ1102では、前ステップで保持した情報をもとに、図7のイメージ領域6
20に表示されているフォーマットイメージ上に、コントロール部品を表示する。コントロールの表示処理は、前ステップで保持した部品位置や部品種別の値を参照し、ウインドウシステムの関数を呼び出すことで実現している。
【００４９】
２．２．４入力領域ブロック化
「入力領域ブロック化」 806を図12のフロー図に基づいて説明する。
【００５０】
本処理では、ステップ805でユーザが選択した複数の入力領域に対応するリン
ク情報のブロック管理情報を更新することで、複数の入力領域のブロック化を行う。なおここでブロック化した単位を用いて、テーブル抽出・挿入処理では、症例DBの構造を画面に表示する（図22）。
ステップ1201では、DB定義時画面のメニューから「ブロック化」614が選択されたか否かを判定する。「ブロック化」614が選択されていれば、ステップ1202を行う。
ステップ1202では、ステップ805でユーザが選択した複数の入力領域にそれぞれに対応する、リンク情報テーブル430のリンクID431をメモリに保持する。
ステップ1203では、前ステップでメモリに保持したリンクIDに対応するリンク情報のブロック管理情報を、以下に述べるルールで更新する。なお、以下の説明では、ブロック化のルールと、ブロックコピーのルールをまとめて説明する。ブロックコピーの際のフロー図説明は後に行う。
ブロック化のルールを説明するための画面例と、内部情報の変化を図14、15に示す。この図では、イメージ領域に表示される画面のみを1401示し、本来外にあるメニューや、表示枠などは省略してある。さらに本来複数あるリンク情報のテーブルをテーブル間の対応関係を用いて、便宜上、あたかも一つのテーブルであるかのように1402として表記している。
【００５１】
図14（a）では、ブロック化する前の入力部品1403、1404を示している。この時ブロック管理情報351における、レベルA、レベルBのブロックID、配列番号には、全て0が設定されている。入力部品1403、1404に対してブロック化を行うと、各入力部品のブロックIDに0以外の値が設定され格納される。なお、ブロックIDは、ブロック化された入力部品の集合に対して一つの値が割り振られる。図14（b）に示すように、入力部品1403、1404の対応するブロック管理情報においては、レベルAのブロックIDに1が格納されている。そして配列番号にも１が格納される。
ブロック領域のコピーでは、上記のようにブロック化された入力領域に対し、同等な入力部品を生成し、イメージ領域上に表示するる。図14（b）の例では、入力部品1403、1404の部品位置をずらし、同等な入力部品1405、1406をイメージ領域上に表示する。なお、図14（b）では、ブロック化の単位を示す点線の矩形が表示されている。このブロック化にあたっては、新たなリンク情報が生成される。生成されたリンク情報には、コピー元のブロックIDがそのままコピー先のブロックIDに格納する。そして、コピー元の配列番号を１増やした値が、コピー先の配列番号に格納される。そしてリンク情報の部品位置には、コピー元の部品位置を一定のベクトル分移動した値が格納される。リンク情報の他の項目については、コピー元と同じ値が格納される。図15ではリンクID0-1がコピー元に当たり、リンクID2-3がコピー先に当たる。
なお、ブロック化処理は、入れ子状態で行うことができる。すなわち、既にブロック化したものを、複数あわせてさらにブロック化を行うことができる。入れ子状態でのブロック化処理を、図15を用いて説明する。図15（a）では入力部品1501が単独でブロック化されており、1501をコピーして得た入力部品1502が表示されている。この時すでに説明したルールに従い、ブロック管理情報351が更新されている。
図15（b）では、ブロック化されている入力部品1501、1502に加え、入力部品1503を含む３入力部品がブロック化されコピーされた状態を示している。この時ブロック化されている入力部品1501、1502については、ブロック管理情報451のレベルAに格納されている情報（ブロックID、配列番号）が、レベルBの（ブロックID、配列番号）に格納する。そしてレベルAの（ブロックID、配列番号）については、非ブロック化の入力部品に適用したルールに従い、（ブロックID、配列番号）を再度決定し格納する。
【００５２】
入れ子状態のブロック領域をコピー時には、以下のルールでブロック管理情報を定める。レベルAについては、コピー元と同じブロックIDを格納し、配列番号を既に使用されている配列番号に1を加えたものに変更する。レベルBについては、コピー先とコピー元の入力部品で同じブロックIDと配列番号とを格納する（図15（b））。図15ではリンクID0-2がコピー元に当たり、リンクID3-5がコピー先に当たる。
【００５３】
２．２．３ブロック領域のコピー
既に述べたように、ブロック化機能とは、DB定義処理において入出力部品をイメージ上に配置する際、複数部品を一つの単位にまとめるものである。ブロック化された複数部品は、ブロックを単位として、部品のコピーなどを行うことができるようになる。本節では、ステップ807で選択した入力部品に対する、コピー機能について説明する。「ブロック領域のコピー」808を図13のフロー図に基づいて説明する。
ステップ1301では、DB定義時画面のメニューから「コピー」615（図6）が選択されたか否かを判定する。「コピー」615が選択されていれば、ステップ1302を行う。選択されていなければ、本処理を終了する。
ステップ1302では、ステップ807で選択した入力部品の集まりが全て、同じブロック単位のものかどうかを判定する。ここでいう「同じブロック単位」とは、入力部品のブロック管理情報のレベルAの項目が、選択されている全ての入力部品において同じ値をもち、かつ非選択入力部品に同じ値をもつものが存在しないことを意味する。すなわち、図15の例では、入力部品1501-1503が同時に選択された場合は、同じブロック単位と判定される。しかし、入力部品1501-1502が選択された場合には、1501-1502と同じブロックIDを持ちながら、選択されていない入力部品1501が存在することにより、選択入力部品は同じブロック単位のものではない、と判定される。同じブロック単位であれば、ステップ1303を行う。同じブロック単位でなければ、本処理を終了する。
ステップ1303では、選択されている入力部品のリンク情報を参照し、部品位置333と部品制御情報338を、メモリ上に保持する。
ステップ1304では、前ステップで保持したリンク情報をもとに、新たなリンク情報を生成する。この際、新たなリンクIDを割り当て、メモリに格納されている部品位置333をずらした値を、生成したリンク情報に格納する。ブロック管理情報351については、既に述べたルールに従い、ブロックIDについてはメモリ上に保持されているものをそのまま格納し、ブロック管理情報の配列番号が変更される。他のリンク情報の項目については、メモリに保持したリンク情報と同じ値を格納する。図15（b）では、新たなリンク情報（リンクID3-5）が生成された状態を示している。
ステップ1305では、前ステップで生成したリンク情報にもとづき、新たに入力領域を入力部品としてフォーマットイメージ上に生成する（図15（b））。
【００５４】
２．３DB入力処理
ユーザがDB定義処理110を行った後、ユーザはDB入力処理120を行う（図1）。
以下では、DB入力処理120について説明を行う。なお、本処理は、DB定義処理110と類似する処理を含んでおり、適宜省略して述べる。
【００５５】
DB入力処理の画面としては、DB定義処理の画面におけるイメージ表示ウィンドウのみが表示される（図16）。ただしリスト領域は存在せず、メニュー項目も異なる。「DB入力処理」130を図17のフロー図に基づいて説明する。
ステップ1701において、図16（a）に示すDB入力時画面1600を表示する。 DB入力時画面1600は、DB定義画面と同様に、メニュー領域1610と、イメージ領域1620とをもつ。メニュー領域1610は、メニュー項目1611〜1614を含んでいる。これら領域をマウスなどの入力装置で指定することにより、メニュー領域に対して入力があったと判定する。
ステップ1702では、データイメージ表示の処理を行う。DB定義時には、フォーマットイメージが表示したたが、DB入力時には医師による記入済みCRF用紙のイメージであるデータイメージを表示する。
ステップ1703では、前ステップで表示したデータイメージ上に、 DB定義処理で生成したリンク情報143を用いて、入力領域を表示する。この入力領域は、入力部品を増やすための追加ボタンを備えている。 DB定義処理の時とことなり、入力領域は移動したり、ボタン選択のみで入力部品を増やすことが可能な形態で表示される。本処理では、図16（a）に示すように、記入済みCRF用紙に記入されている情報を参照できるように、入力部品をリンク情報に格納された部品位置情報をずらした位置に、入力部品配置領域1630を表示し、この上に入力部品1631と入力部品増設用のボタン1632を配置する（図16（b））。
【００５６】
ステップ1704では、ユーザが入力領域の追加ボタンを押したか否かを判定する。押されていればステップ1705を行う。押されていなければ、ステップ1706を行う。
【００５７】
ステップ1705では、入力領域追加を行う。入力領域上に新たな入力部品を増やし、症例DBに入力する項目を入力作業時に増やす処理を行う。図16（b）に入力領域を増やした状態の例を示す。
ステップ1706では、データ入力を行う。ユーザがキーボードなどで入力部品に入力したデータを、症例DB146に格納する。
ステップ1707では、リンク情報に格納されている最後の入力領域に対して、前ステップでデータ入力が行われたか否かを判定する。もし最後の入力領域であったならば、ステップ1708を行う。最後の入力領域でなければ、ステップ1703により次の入力領域をデータイメージ上に表示する。
ステップ1708では、メニュー「終了」1614が押されたか否かを判定する。押されていれば、本処理を終了する。押されていなければ、ステップ1802により次のデータイメージを表示し、前述したデータ入力処理などを行うことになる。
【００５８】
２．３．１データイメージ表示
「データイメージ表示」1702を図18のフロー図に示す。本処理は、フォーマットイメージ処理と同様な処理を行う。異なる点は、フォーマットフォルダ情報とフォーマットイメージを用いるのではなく、データフォルダ情報とデータイメージを用いることである。また、各データフォルダに対し、ユニークな患者IDを内部で割り当て、メモリ上に保持する（ステップ1806）。本処理の詳細はフォーマットイメージ処理と重複するため省略する。
【００５９】
２．３．２入力領域表示
「入力領域表示」1703を図19のフロー図に基づいて説明する。
ステップ1901において、DB定義処理で生成したリンク情報をメモリ上に保持しているか否かを判定する。保持していなければステップ1902を行う。保持していれば、ステップ1905を行う。
ステップ1902では、メモリ上にリンク情報を読み込み、最初のリンクIDをメモリ上に保持する。
ステップ1903では、保持したリンクIDに該当するリンク情報の部品詳細情報335（図3）を参照し、イメージ領域に表示されているデータイメージ上に、入力領域を表示する。この時入力領域には、部品位置333に格納されている矩形情報の高さ分をずらした位置に入力領域が表示される。
【００６０】
図16（a）に入力領域の表示例を示す。記入済みCRF用紙に記入されている情報を参照できるように、入力部品をリンク情報に格納された部品位置情報をずらした位置に、入力部品配置領域1630を表示し、この上に入力部品1631と入力部品増設用のボタン1632を配置している。
ステップ1904では、リンクIDと入力部品との対応関係を、メモリ上のリンクID・入力部品対応テーブル1920に格納する。リンクID・入力部品対応テーブルは、リンクID1921、入力部品のポインタ1922、モード1923よりなる。リンクID1921、入力部品のポインタ1922には、メモリ上に保持したリンクIDと前ステップで生成した入力部品1631のポインタを格納する。本実施例では、入力部品のウインドウのハンドルを格納する。モード1923は、後述するようにリンク情報とは別にテンポラリ用のリンク情報と区別するためのものであり、「オリジナル」「テンポラリ」のいずれかの値が格納される。本ステップでは「オリジナル」が格納される。
ステップ1905では、既に表示されている入力領域を消去する。
ステップ1906では、メモリに保持するリンクIDを次のリンクIDに設定しなおす。
【００６１】
２．３．３入力領域追加
「入力領域追加」1705を図20のフロー図に基づいて説明する。本処理は図17のステップ1704において入力領域の追加ボタン1632が押された時に行われる。
ステップ2001では、「入力領域表示」1703においてメモリ上に保持したリンクIDに対応するリンク情報143を参照し、テンポラリーのリンク情報TI2をメモリ上に生成する。なお、既にテンポラリーのリンク情報がメモリ上に生成されている場合には、このメモリ上に存在するテンポラリのリンク情報をもとに、入力領域追加のリンク情報を生成する。
【００６２】
リンク情報を生成する際には、ブロックコピー処理でのリンク情報生成ルールに従う。すなわち、もし既にブロック化されている入力部品を増設するのであれば、ブロックIDには増設の元になったブロックIDが格納される。配列番号としては、既に使用されている配列番号に1を加えたものが格納される。もしブロック化されていない入力部品に対して、入力部品の増設が行われた場合には、新たにブロック化を行った時のルールに基づいて、ブロック管理情報が更新される（図14、15）。なお、部品位置については、「部品位置情報の高さ分＋余白定数分」を縦方向にずらした部品位置情報が格納される。なお、部品位置は、入力部品配置領域1630の座標系に変換し、変換した部品位置をもとに入力部品を生成される。
【００６３】
ステップ2002では、生成したリンク情報に対応した入力領域を、イメージ領域上に生成する。この時の入力部品領域の表示例を図16（a）に示す。
ステップ2003では、リンク情報・入力部品対応テーブルTI1に、生成したリンク情報のIDと入力部品のポインタを格納する。モードについては「テンポラリ」を格納する。
【００６４】
２．３．３データ入力
「データ入力」1706を図21のフロー図に基づいて説明する。
ステップ2101において入力部品配置領域1630に対し、マウスドラッグなどの入力が行われたか否かを判定する。行われていれば、ステップ2102を行う。
ステップ 2102では、マウスドラッグによるマウス移動量に基づき、入力部品配置領域1630を移動する。
【００６５】
ステップ2103では、入力領域1631に入力されたデータを取得し、メモリ上に保持する。
ステップ2104では、入力領域に対応するリンク情報を得る。まずリンク情報・入力部品対応テーブルTI1を参照することで、データ入力された入力領域に対応するリンク情報が、リンク情報143に属するかテンポラリリンク情報TI2（図20）に属するかを判定する。そして、リンクID1921とモード1923の値によりリンク情報143もしくはテンポラリリンク情報TI2のいずれかから、入力領域に対応したリンク情報をメモリ上に得ることができる。
ステップ2105では、ステップ2103で得られた入力データと、ステップ2104で得られたリンク情報に基づき、症例DB146を更新する。リンク情報の定義項目ID334を、症例DB146の定義項目ID526に格納する。リンク情報のブロック管理情報351を、症例DB146のブロック管理情報530に格納する。リンク情報のデータ型347を症例DB146のデータ型541に格納する。
【００６６】
そして、ステップ2103で得た入力データを、データ格納領域550に格納する。
症例DB146のCRF管理情報520には、システム内部で保持しているCRF管理情報520の各項目に対応するものを格納する。例えばフォーマットフォルダ名は、DB定義処理で用いたフォーマットフォルダ情報のファイル名を格納する。患者IDについても、データイメージ表示1702においてメモリに保持した値を格納する（ステップ1606）。
【００６７】
３．テーブル情報抽出・挿入処理
本節では、症例DB146に入力したデータをテーブル情報に抽出したり、この逆を行う処理について述べる。症例DBは、汎用シングルテーブルとよぶ入力データに柔軟な構成になっているため、症例DBに対して直接必要な情報を得るためのSQL文などを書くことが難しい。そこで本章でのべる処理により、症例DBからのデータ抽出などを簡単に行うことを実現する。
【００６８】
３．１データ構造
本処理においては、症例DB146から飛び先情報147を用いて抽出・挿入テーブル148を抽出したり、この逆を行う。図23に症例DB146、飛び先情報147、抽出・挿入テーブル148の詳細な関連を示す。飛び先情報145はテーブル2300よりからなる。テーブル2300は、ID2301、症例DB側アンカ情報2310、抽出・挿入テーブル側アンカ情報2320よりなる。なお図23では症例DB146はテーブル500、抽出・挿入テーブル148はテーブル2340として示されている。
症例DB側アンカ情報2310により、症例DB側のどの項目が抽出・挿入に対象になっているかを示す。フォーマットフォルダー名2311には、未記入CRFに関するフォルダー名が格納される。定義項目ID2312には、リンク情報の詳細テーブルの定義項目ID336の内、抽出・挿入の対象になっているものが格納される。ブロック管理情報は、ユーザの選択作業と症例DBのブロック管理情報により得られたものがブロック管理情報2313に格納される。
抽出・挿入テーブル側アンカ情報2320より、抽出・挿入テーブル側のどの項目が抽出・挿入に対象になっているかを示す。抽出・挿入テーブル148は、予め存在している場合や、飛び先情報や症例DBにより生成される場合がある。テーブル名2321には、抽出・挿入のテーブル名が格納される。項目名2322はテーブルの項目名が格納され、条件式2323には項目名2322に対する条件式が格納される。項目名2322は、リンク情報における項目名346や、テーブル480により、日英変換が行われた項目名が格納される。さらにあるルールによって生成した項目名を格納することもある。
【００６９】
３．２テーブル情報抽出・挿入処理のフロー説明
テーブル情報抽出・挿入処理を図24のフロー図に基づいて説明する。
ステップ2401では、図22に示す症例DB領域2210とテーブル項目領域2230を表示する。なお、本ステップでは図に示す2215や2216の文字列などは表示されていない状態である。
ステップ2402では、 CRFフォーマット名入力領域2215に、 CRFのフォーマットフォルダ名が入力されたか否かを判定する。入力されていれば、ステップ2403を行う。
ステップ2403では、ユーザが入力したフォーマットフォルダ名と症例DBの情報に基づいて、症例DBの項目をデータベースにおけるE-R図に近い形で、項目間の構造を表示する。例えば図22の症例DB領域2210では、非ブロック化の項目と、ブロック化した項目とが、1対3の関係であることを示している。この図では、患者一人に対して、ブロック項目の集合｛日時、最高血圧、最低血圧、血中蛋白質｝を配列として最大3個まで対応していることを示している。
ステップ2404では、抽出・挿入する項目の設定を行う。本ステップでは、ユーザは症例DBの項目リスト2216からマウスで項目を選択し、次にテーブル項目領域2230の抽出・挿入項目リスト2233をマウスでクリックする。すると抽出・挿入項目リスト2233に項目名が追加される。そして、飛び先情報にこの項目名に関連する情報が格納される。
ステップ2405では、抽出・挿入項目リスト2233の内、ユーザが選択した項目に対し条件設定を行う。各項目に対する条件設定は、項目条件設定領域2250において設定される。設定された条件は飛び先情報に格納される。
【００７０】
ステップ2406ではメニュー「抽出」2211かメニュー「挿入」2212が選択されたかどうかを判定する。押されていれば、ステップ2407のテーブル情報抽出・挿入処理を行うステップ2407では、抽出・挿入項目設定や項目条件設定で生成された飛び先情報を参照し、症例DBと抽出・挿入テーブル間でデータの抽出や挿入を行う。
【００７１】
ステップ2408では、メニュー「終了」2214が押されたかどうかを判定する。押されていれば、テーブル情報抽出・挿入処理を終了する。
【００７２】
３．２．１症例DB表示
症例DB表示2403を図25のフロー図に基づいて説明する。
【００７３】
ステップ2501では、症例DB146のフォーマットフォルダ名522が、CRFフォーマット名入力領域2215に入力されたものと一致するものをテンポラリ症例DBテーブルTT1（図25）としてメモリ上に保持する。テンポラリテーブルTT1のデータ構造は、症例DBと同一のものである。
ステップ2502では、前ステップで保持したテンポラリ症例DBテーブルTT1をブロック管理情報に基づいて分類し、分類結果を分類テーブルに格納する。なお図では、分類テーブルは２つ示しているが、作成される分類テーブルの個数は、場合に応じて変動する。分類テーブルは、ID、表示項目名、定義項目ID、ブロック管理情報よりなる。分類テーブルは、異なるブロックID値ごとに作成する。例では、（レベルAのブロックID、レベルBのブロックID）が、（0,0）と（1,0）であるものに対してそれぞれ分類テーブルが作成される。例におけるテンポラリ症例DBテーブルTT1を参照し、このテーブルから、ブロックIDの値の組み合わせが（0,0）もしくは（1,0）である表示項目名が、分類テーブルTT2、TT3にそれぞれ格納される。この際、同じ表示項目名をもち、ブロック管理情報の配列番号が異なるものは、別レコードとして分類テーブルに格納されている。一方、テンポラリ症例DBテーブルTT1においてブロックIDとブロックの配列番号が同じで、患者IDが異なるものは、区別されず、分類テープルにおいては同じレコードとして扱われる。
ステップ2503では、前ステップで作成した分類テープルごとにリスト領域を生成する。各分類テープルに格納表示項目名を参照し、この表示項目名をリスト領域に表示する。この際重複する表示項目名はひとつしか表示されない。
ステップ2504では、各分類テープル間の関係を矢印記号と数値を用いて画面に表示する。各分類テンポラリテーブルのブロックIDの値の組み合わせをもとにブロック管理情報の入れ子関係を判定し、リスト領域間の表示制御を行う。（レベ
ルAのブロックID、レベルBのブロックID）に対し、以下の表示ルールを用いて表示制御を行う。
（１）（0,0）と（n,0）（ただしｎ＞＝１）の場合、リスト領域間に矢印が表示される。
（２）（n,0）と（n,m）（ただしｎ,m ＞＝１）の場合、リスト領域間に矢印が表示される。
例えば（レベルAのブロックID、レベルBのブロックID）が（0,0）と（1,0）であるリスト領域間には、矢印が表示される。そして、各分類テンポラリテーブルからブロック管理情報番号の最大値を求め、各矢印の上に対応関係の個数を示す数字を表示する。図26に表示例を示す。
【００７４】
３．２．２抽出・挿入項目設定
抽出・挿入項目設定を図26のフロー図に基づいて説明する。
ステップ2601では、ユーザが図22のリスト領域2216から項目を選択したかどうかを判定する。選択されていれば、ステップ2602を行う。選択されていなければ抽出・挿入項目設定の処理を終了する。
【００７５】
ステップ2602では、前ステップで選択された項目が、テーブル項目領域2230の抽出・挿入項目リストにマウスドラッグされたか否かを判定する。マウスドラッグされていればステップ2603を行う。マウスドラッグされていなければ抽出・挿入項目設定の処理を終了する。
【００７６】
ステップ2603では、飛び先情報の症例DB側アンカ情報に情報を格納する。分類テーブルを参照し、ステップ2601で選択された表示項目に対応する定義項目ID、ブロック管理情報を得る。症例DB画面のCRFフォーマット名入力領域2215よりフォーマットフォルダ名を得る（図25）。こうして得た定義項目ID、ブロック管理情報、フォーマットフォルダ名を、飛び先情報テーブル2300の症例DB側アンカ情報2310に格納する（図23）。
ステップ2604では、分類テーブルの定義項目IDとブロック管理情報を用いて、飛び先情報に格納する項目名を生成し、飛び先情報に格納する。テーブル項目名は定義項目IDとブロック管理情報、さらに日英変換の580を考慮して生成される。ブロック化されている項目が複数登録されている時には、項目名にブロック管理情報にもとづく適当な添え字番号を加え、項目名の重複を防止する。本実施例においては、定義項目IDをもとにリンク情報の項目名を参照し、この項目名にブロックIDと区切り文字と配列番号とを加えたものを項目名としたものを、抽出・挿入テーブル側アンカ情報の項目名として格納する。図では、例えばリンク情報から得られた項目名hBloodに対しブロックIDと区切り文字と配列番号を加えたhBlood1-1を項目名として飛び先情報に格納している。さらに場合によっては、項目名346を用いるのみならず、340を用いて日本語項目名を、抽出・挿入テーブルの項目として設定できる。また、語句変換ID341とテーブル480とを用いて語句変換を行うこともできる。これらの処理を切り替えるモードをアプリケーション内部に組み込むことで、同じ症例DBから日本語項目名のテーブルや英語項目名のテーブル作成が行うことも、この飛び先情報を活用することで実現できる。
ステップ2605では、テーブル項目領域2230の抽出・挿入テーブル名2235に入力されているテーブル名を、飛び先情報のテーブル名2321に格納する。以上のステップ2603から2605により、飛び先情報145が生成される。ステップ2606では、飛び先情報に格納した項目名2322を、テーブル項目領域2230の抽出・挿入項目名2233に表示する。
【００７７】
３．２．３項目条件設定
項目条件設定2405を図27のフロー図に基づいて説明する。
ステップ2701では、ユーザがテーブル項目領域2230の抽出・挿入項目名2233から項目を選択したかどうかを判定する。選択されていれば、ステップ2702を行い、選択されていなければ、項目条件設定を終了する。
ステップ2702では、ユーザが「条件」ボタン2231を押したか否かを判定する。押されていれば、抽出・挿入項目名2233上で選択されている項目を、条件設定の対象にして、ステップ2703を行う。押されていなければ、項目条件設定を終了する。図22では「年齢」が選択状態にある。
ステップ2703では、前ステップで条件設定の対象にした項目に対し、項目条件設定領域2250が表示される。評価式2252には、年齢などの数値に対する条件が入力され、基準値2253には、性別などの離散値の条件が入力される。
ステップ2704では、ユーザの選択ボタンを判定する。ボタン「ok」2254を押した場合、ステップ2705を行う。ボタン「cancel」2255を押した場合、ステップ2706を行う。
ステップ2705では、項目条件設定領域2250で設定された条件を、飛び先情報145の条件式2323に設定する。
ステップ2706では、項目条件設定領域2250を非表示にする。
【００７８】
３．２．４テーブル情報抽出・挿入
テーブル情報抽出・挿入2407を図28のフロー図に基づいて説明する。
ステップ2801では、ユーザがメニュー「抽出」2211を選択したか、「挿入」2212を選択したかを判定する。「抽出」が押された場合、ステップ2802を行う。「挿入」が押された場合、ステップ2806を行う。
ステップ2802では、飛び先情報を元に、抽出テーブルを生成する。生成するテーブル名は画面入力より与えられている。生成する抽出・挿入テーブルの項目は飛び先情報に格納されている項目名に、患者IDを加えたものである。図23の2340に抽出・挿入テーブルの例を示す。
【００７９】
ステップ2803では、患者IDを最初のものに設定する。
【００８０】
ステップ2804では、患者IDと飛び先情報2330をもとに症例DBから抽出・挿入テーブル2340に、入力データを格納する。患者IDと、飛び先情報の定義項目ID2312とブロック管理情報2313とに一致するものを症例DB146から検索する。検索の結果得られた症例DBレコードのデータ格納領域に格納されているデータを、飛び先情報の抽出・挿入テーブル側アンカ情報のテーブル名2321と項目名2322にもとづいて、抽出・挿入テーブル2340に格納する。
ステップ2805では、前ステップの処理対象になっていない患者IDが、症例DBに含まれているかどうかを判定する。含まれていれば、次の未処理の患者IDを、データ抽出の対象として、ステップ2804を行う。含まれていなければ、テーブル情報抽出・挿入を終了する。
なお、ステップ2806-2809は、上記で述べた一連の処理を、抽出・挿入テーブルと症例DBとの立場を変えて行うことで、抽出・挿入テーブルから症例DBにデータを挿入することも実現できる。詳細については略す。
【産業上の利用可能性】
【００８１】
本発明は、紙ベースの記入用紙に記載されている内容を電子化したうえで管理するデータベースシステムとして利用可能である。
【図面の簡単な説明】
【００８２】
【図１】本発明の各処理の概念図である。
【図２】本発明のシステム構成図である。
【図３】テーブル構成図のその１である。
【図４】テーブル構成図のその２である。
【図５】テーブル構成図のその３である。
【図６】DB定義処理画面図のその１である。
【図７】DB定義処理画面図のその２である。
【図８】DB定義時処理のフロー図である。
【図９】フォーマットイメージ表示のフロー図である。
【図１０】リンク情報入力のフロー図である。
【図１１】入力領域生成のフロー図である。
【図１２】入力領域ブロック化のフロー図である。
【図１３】ブロック領域コピーのフロー図である。
【図１４】ブロック化機能説明図のその１である。
【図１５】ブロック化機能説明図のその２である。
【図１６】DB入力処理画面図である。
【図１７】DB入力処理のフロー図である。
【図１８】データイメージ表示のフロー図である。
【図１９】入力領域表示のフロー図である。
【図２０】入力領域追加のフロー図である。
【図２１】データ入力のフロー図である。
【図２２】データ抽出・挿入処理画面図である。
【図２３】飛び先テーブル図である。
【図２４】データ抽出・挿入処理のフロー図である。
【図２５】症例DB表示の図である。
【図２６】抽出・挿入項目設定のフロー図である。
【図２７】項目条件設定のフロー図である。
【図２８】テーブル情報抽出・挿入のフロー図である。
【符号の説明】
【００８３】
１０１...辞書情報の保守・作成処理
１０２...イメージ情報入力処理
１１０...データベース定義処理
１２０...データベース入力処理
１３０...テーブル情報抽出・挿入処理
１４０...辞書情報
１４１...フォーマットフォルダ情報
１４２... フォーマットイメージ情報
１４３...リンク情報
１４４...データフォルダ情報
１４５...データイメージ情報
１４６...症例DB
１４７...飛び先情報
１４８...抽出・挿入テーブル情報
【図１】
2004199710.tif 000003
【図２】
2004199710.tif 000004
【図３】
2004199710.tif 000005
【図４】
2004199710.tif 000006
【図５】
2004199710.tif 000007
【図６】
2004199710.tif 000008
【図７】
2004199710.tif 000009
【図８】
2004199710.tif 000010
【図９】
2004199710.tif 000011
【図１０】
2004199710.tif 000012
【図１１】
2004199710.tif 000013
【図１２】
2004199710.tif 000014
【図１３】
2004199710.tif 000015
【図１４】
2004199710.tif 000016
【図１５】
2004199710.tif 000017
【図１６】
2004199710.tif 000018
【図１７】
2004199710.tif 000019
【図１８】
2004199710.tif 000020
【図１９】
2004199710.tif 000021
【図２０】
2004199710.tif 000022
【図２１】
2004199710.tif 000023
【図２２】
2004199710.tif 000024
【図２３】
2004199710.tif 000025
【図２４】
2004199710.tif 000026
【図２５】
2004199710.tif 000027
【図２６】
2004199710.tif 000028
【図２７】
2004199710.tif 000029
【図２８】
2004199710.tif 000030