TOP > 国内特許検索 > データ構造、データ生成装置、その方法及びプログラム > 明細書

明細書 :データ構造、データ生成装置、その方法及びプログラム

発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2015-094988 (P2015-094988A)
公開日 平成27年5月18日(2015.5.18)
発明の名称または考案の名称 データ構造、データ生成装置、その方法及びプログラム
国際特許分類 G06F  12/00        (2006.01)
G06F  17/30        (2006.01)
FI G06F 12/00 513A
G06F 17/30 340Z
G06F 12/00 505
請求項の数または発明の数 13
出願形態 OL
全頁数 22
出願番号 特願2013-232374 (P2013-232374)
出願日 平成25年11月8日(2013.11.8)
発明者または考案者 【氏名】藤井 進
出願人 【識別番号】504209655
【氏名又は名称】国立大学法人佐賀大学
個別代理人の代理人 【識別番号】100099634、【弁理士】、【氏名又は名称】平井 安雄
審査請求 未請求
要約 【課題】複数のシステムで管理されている関連性のないデータであっても、複雑なテーブル設計や管理を必要とせずに堅牢なデータ管理を行うと共に、効率的な運用を行うことができるデータ構造等を提供する。
【解決手段】異なる定義がなされている複数の一般システム41から収集したデータを項目名を定義せずに項目IDで管理する万能テーブル43と、前記項目IDの中からデータを識別するために最低限必要となる必要項目IDに対して、当該必要項目IDに格納されているデータのみを抽出可能とするためのマスク情報が各行単位で格納されたマスクテーブル45と、前記万能テーブル43の全データから前記マスクテーブル45の各行単位に格納されたマスク情報にしたがってデータを抽出し、当該抽出された抽出データのうち同一の抽出データが複数行抽出された場合には、当該抽出された複数の同一データを一つのデータとして管理するマスタテーブル46とを備える。
【選択図】図12
特許請求の範囲 【請求項1】
異なる定義がなされている複数のテーブルから収集したデータを項目名を定義せずに項目IDで管理する万能テーブルと、
前記項目IDの中からデータを識別するために最低限必要となる必要項目IDに対して、当該必要項目IDに格納されているデータのみを抽出可能とするためのマスク情報が各行単位で格納されたマスクテーブルと、
前記万能テーブルの全データから前記マスクテーブルの各行単位に格納されたマスク情報にしたがってデータを抽出し、当該抽出された抽出データのうち同一の抽出データが複数行抽出された場合には、当該抽出された複数の同一データを一つのデータとして管理するマスタテーブルとを備えることを特徴とするデータ構造。
【請求項2】
請求項1に記載のデータ構造において、
前記マスタテーブルのデータに付与されるパターンIDと、前記万能テーブルのデータに付与されるローカルIDと、前記パターンID及び前記ローカルIDを統合した統合IDを管理するID管理テーブルを備え、
共通の前記パターンIDを有するデータを共通の前記統合IDとして管理しつつ、共通の前記ローカルIDを有するデータを共通の前記統合IDとして管理することを特徴とするデータ構造。
【請求項3】
請求項1又は2に記載のデータ構造において、
前記マスクテーブルのマスク情報に対応する項目IDの項目名を管理する項目定義テーブルを備えることを特徴とするデータ構造。
【請求項4】
請求項1ないし3のいずれかに記載のデータ構造において、
前記万能テーブルが、前記異なる定義がなされている複数のテーブルにて格納されているデータ内容の実施に関連する情報を固定項目として各データごとに有することを特徴とするデータ構造。
【請求項5】
請求項1ないし4のいずれかに記載のデータ構造において、
前記マスタテーブルが、前記万能テーブルが有していない情報であって、前記抽出されたデータに関連する情報を付加的に格納することを特徴とするデータ構造。
【請求項6】
請求項1に記載のデータ構造を生成するデータ生成装置であって、
異なる定義がなされている複数のテーブルからのデータを入力し、入力された入力データを前記万能テーブルに展開する万能テーブル生成手段と、
前記マスクテーブルの前記マスク情報にしたがって、前記万能テーブルの全データから必要なデータを抽出する抽出手段と、
抽出された抽出データのうち同一の前記抽出データが複数行抽出された場合に、当該抽出された複数の同一データを一つのデータとして前記マスタテーブルに格納するマスタテーブル生成手段とを備えることを特徴とするデータ生成装置。
【請求項7】
請求項6に記載のデータ生成装置において
前記マスタテーブルのデータに付与されるパターンIDと、前記万能テーブルのデータに付与されるローカルIDと、前記パターンID及び前記ローカルIDを統合した統合IDを管理するID管理テーブルを生成するID管理テーブル生成手段と、
共通の前記パターンIDを有するデータに共通の前記統合IDを付与し、共通の前記ローカルIDを有するデータに共通の前記統合IDを付与して統合IDの管理を行う統合ID管理手段とを備えることを特徴とするデータ生成装置。
【請求項8】
請求項6又は7に記載のデータ生成装置において、
前記マスクテーブルのマスク情報に対応する項目IDの項目名を管理する項目定義テーブルに基づいて、前記万能テーブルから抽出されたデータの対応する項目名を出力する出力手段を備えることを特徴とするデータ生成装置。
【請求項9】
請求項6ないし8のいずれかに記載のデータ生成装置において、
前記万能テーブル生成手段が、前記異なる定義がなされている複数のテーブルにて格納されているデータ内容の実施に関連する情報を固定項目として各データごとに付加することを特徴とするデータ生成装置。
【請求項10】
請求項6ないし9のいずれかに記載のデータ生成装置において、
前記マスタテーブルに格納され、前記万能テーブルが有していない情報であって、前記抽出されたデータに関連する付加的な情報を出力する出力手段を備えることを特徴とするデータ生成装置。
【請求項11】
請求項1に記載のデータ構造を用いたデータ検索装置であって、
前記マスタテーブルに格納されたデータを検索条件データとして入力する入力手段と、
入力された前記検索条件データに基づいて、当該検索条件データと一致するデータを前記万能テーブルから抽出する抽出手段と、
抽出されたデータを出力する出力手段とを備えることを特徴とするデータ検索装置。
【請求項12】
請求項1に記載のデータ構造を生成するデータ生成方法であって、
コンピュータが、
異なる定義がなされている複数のテーブルからのデータを入力し、入力された入力データを前記万能テーブルに展開する万能テーブル生成ステップと、
前記マスクテーブルの前記マスク情報にしたがって、前記万能テーブルの全データから必要なデータを抽出する抽出ステップと、
抽出された抽出データのうち同一の前記抽出データが複数行抽出された場合に、当該抽出された複数の同一データを一つのデータとして前記マスタテーブルに格納するマスタテーブル生成ステップとを実行することを特徴とするデータ生成方法。
【請求項13】
請求項1に記載のデータ構造を生成するようにコンピュータを機能させるデータ生成プログラムであって、
異なる定義がなされている複数のテーブルからのデータを入力し、入力された入力データを前記万能テーブルに展開する万能テーブル生成手段、
前記マスクテーブルの前記マスク情報にしたがって、前記万能テーブルの全データから必要なデータを抽出する抽出手段、
抽出された抽出データのうち同一の前記抽出データが複数行抽出された場合に、当該抽出された複数の同一データを一つのデータとして前記マスタテーブルに格納するマスタテーブル生成手段としてコンピュータを機能させることを特徴とするデータ生成プログラム。
発明の詳細な説明 【技術分野】
【0001】
本発明は、大量で複雑なデータを簡単なテーブル設計で効率よく管理するデータ構造等に関する。
【背景技術】
【0002】
一般的に知られているデータベース技術として、RDB(Relational Data Base)やKVS(Key-Value Store)がある。RDBは関係データベースと訳され、現在最も多く利用されている。データは表形式のテーブルで管理され、テーブル間の関係を定義付ける。複数のテーブルからデータの取得、変更、削除などが行われる。一方、KVSは分散ファイルシステムやデータベースとして商品化されており、一意のKEYに対して値(Value)をセットで保存する。近年のビッグデータに対応した技術であり、データはKEYを指定することで取得することができる。
【0003】
RDBはテーブルが表形式であるため、エンジニアが直感的にテーブル内のデータ設計を行うという利点があるものの、システムごとにテーブル設計が異なり、テーブル間の連携情報もその都度設計する必要があり、理論上の設計が必要とされ複雑性が否めない。また、こうした特性からメンテナンス性、拡張性、柔軟性が弱く、関係性においてマスタによる項目の分類は1つのカテゴリで管理されることが多く、設計者の意図と利用者の感性が違う場合はそれを取り出すことに困難性が残る。
【0004】
一方でKVS技術は、データ自体にKEY(フィールド情報)を持つことで、RDBに対してテーブル設計の柔軟性を解決している。また、テーブル構造に縛られないことから拡張性も改善している。ただし、単一のフィールドに複数の異なる情報が格納されたり、テーブル内のデータ設計が直感的に行えず、俯瞰的に把握しづらくメンテナンス性も含めて弱い。
【0005】
このようなRDBやKVSを複合的に利用する技術として、例えば特許文献1に示す技術が開示されている。特許文献1に示す技術は、アクセスパターンが存在する場合に、アクセス対象データを第1のデータベース及び第2のデータベースに配置することを決定するデータ保存先決定部と、データ保存先決定部によりアクセス対象データを第1のデータベース及び第2のデータベースに配置する場合に、書込みアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間のアクセス対象データを第1のデータベースに配置するように移行スケジュールを決定すると共に、読出しアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間のアクセス対象データを第2のデータベースに配置するように移行スケジュールを決定する移行スケジュール決定部と、を備えるものである。
【先行技術文献】
【0006】

【特許文献1】特開2012-103847号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に示す技術は、更新に必要な時間に応じてRDBとKVSの使い分け等を行うことで、負荷を分散して運用効率を上げるものであるが、データ移行などの処理が発生するため、管理が複雑になってしまうと共に、メンテナンス性が悪いものになってしまう。
【0008】
本発明は、複数のシステムで管理されている関連性のないデータであっても、複雑なテーブル設計や管理を必要とせずに堅牢なデータ管理を行うと共に、効率的な運用を行うことができるデータ構造等を提供する。
【課題を解決するための手段】
【0009】
本発明に係るデータ構造は、異なる定義がなされている複数のテーブルから収集したデータを項目名を定義せずに項目IDで管理する万能テーブルと、前記項目IDの中からデータを識別するために最低限必要となる必要項目IDに対して、当該必要項目IDに格納されているデータのみを抽出可能とするためのマスク情報が各行単位で格納されたマスクテーブルと、前記万能テーブルの全データから前記マスクテーブルの各行単位に格納されたマスク情報にしたがってデータを抽出し、当該抽出された抽出データのうち同一の抽出データが複数行抽出された場合には、当該抽出された複数の同一データを一つのデータとして管理するマスタテーブルとを備えるものである。
【0010】
このように、本発明に係るデータ構造においては、様々に定義されているデータを項目名が定義されていない1つの万能テーブルで管理し、データを識別するために最低限必要となる項目に対して、当該項目に格納されているデータのみを抽出可能とするためのマスク情報(例えば、「0」又は「1」のマスク情報)が各行単位で格納されたマスクテーブルを用意し、万能テーブルの全データからマスクテーブルの各行単位に格納されたマスク情報にしたがってデータを抽出し、当該抽出された同一データを一つのデータとして管理するマスタテーブルを備えるため、マスタテーブルには万能テーブルで管理する全てのデータのマスタとなる情報のみが集約されて管理され、検索等の処理を非常に効率よく行うことが可能になるという効果を奏する。
【0011】
また、必要に応じてマスタテーブルのデータを検索条件として、万能テーブルを詳細に検索することが可能になり、極めて膨大なビッグデータであっても必要とするデータを効率よく抽出することができるという効果を奏する。
【0012】
本発明に係るデータ構造は、前記マスタテーブルのデータに付与されるパターンIDと、前記万能テーブルのデータに付与されるローカルIDと、前記パターンID及び前記ローカルIDを統合した統合IDを管理するID管理テーブルを備え、共通の前記パターンIDを有するデータを共通の前記統合IDとして管理しつつ、共通の前記ローカルIDを有するデータを共通の前記統合IDとして管理するものである。
【0013】
このように、本発明に係るデータ構造においては、共通の前記パターンIDを有するデータを共通の前記統合IDとして管理しつつ、共通の前記ローカルIDを有するデータを共通の前記統合IDとして管理することで、IDのみの管理で名寄せ処理を効率よく行うことができるという効果を奏する。
【0014】
本発明に係るデータ構造は、前記マスクテーブルのマスク情報に対応する項目IDの項目名を管理する項目定義テーブルを備えるものである。
【0015】
このように、本発明に係るデータ構造においては、マスクテーブルのマスク情報に対応する項目IDの項目名を管理する項目定義テーブルを備えるため、万能テーブルのようにあらゆるデータが項目IDのみで管理されて格納されているような場合であっても、管理者や利用者が項目定義テーブルの項目名を参照して、どのようなデータであるかを認識することが可能になるという効果を奏する。
【0016】
本発明に係るデータ構造は、前記万能テーブルが、前記異なる定義がなされている複数のテーブルにて格納されているデータ内容の実施に関連する情報を固定項目として各データごとに有するものである。
【0017】
このように、本発明に係るデータ構造においては、万能テーブルが、異なる定義がなされている複数のテーブルにて格納されているデータ内容の実施に関連する情報(例えば、5W1H情報のうち1又は複数の情報)を固定項目として各データごとに有することで、運用面で重要な情報として活用することができるという効果を奏する。
【0018】
本発明に係るデータ構造は、前記マスタテーブルが、前記万能テーブルが有していない情報であって、前記抽出されたデータに関連する情報を付加的に格納するものである。
【0019】
このように、本発明に係るデータ構造においては、マスタテーブルが、前記万能テーブルが有していない情報であって、前記抽出されたデータに関連する情報を付加的に格納するため、管理者側が付加的な要素を付けて情報を提供することができるという効果を奏する。
【0020】
本発明に係るデータ生成装置は、前記データ構造を生成するデータ生成装置であって、異なる定義がなされている複数のテーブルからのデータを入力し、入力された入力データを前記万能テーブルに展開する万能テーブル生成手段と、前記マスクテーブルの前記マスク情報にしたがって、前記万能テーブルの全データから必要なデータを抽出する抽出手段と、抽出された抽出データのうち同一の前記抽出データが複数行抽出された場合に、当該抽出された複数の同一データを一つのデータとして前記マスタテーブルに格納するマスタテーブル生成手段とを備えるものである。
【0021】
このように、本発明に係るデータ生成装置においては、万能テーブルを生成し、マスクテーブルのマスク情報にしたがって必要なデータを抽出し、抽出されたデータのうち複数の同一データを一つのデータとしてマスタテーブルに格納するため、万能テーブルで管理する全てのデータのマスタとなる情報のみをマスタテーブルに集約して管理することができ、検索等の処理を非常に効率よく行うことが可能になるという効果を奏する。
【0022】
また、必要に応じてマスタテーブルのデータを検索条件として、万能テーブルを詳細に検索することが可能になり、極めて膨大なビッグデータであっても必要とするデータを効率よく抽出することができるという効果を奏する。
【0023】
本発明に係るデータ生成装置は、前記マスタテーブルのデータに付与されるパターンIDと、前記万能テーブルのデータに付与されるローカルIDと、前記パターンID及び前記ローカルIDを統合した統合IDを管理するID管理テーブルを生成するID管理テーブル生成手段と、共通の前記パターンIDを有するデータに共通の前記統合IDを付与し、共通の前記ローカルIDを有するデータに共通の前記統合IDを付与して統合IDの管理を行う統合ID管理手段とを備えるものである。
【0024】
このように、本発明に係るデータ生成装置においては、共通の前記パターンIDを有するデータを共通の前記統合IDとして管理しつつ、共通の前記ローカルIDを有するデータを共通の前記統合IDとして管理することで、IDのみの管理で名寄せ処理を効率よく行うことができるという効果を奏する。
【0025】
本発明に係るデータ生成装置は、前記マスクテーブルのマスク情報に対応する項目IDの項目名を管理する項目定義テーブルに基づいて、前記万能テーブルから抽出されたデータの対応する項目名を出力する出力手段を備えるものである。
【0026】
このように、本発明に係るデータ生成装置においては、マスクテーブルのマスク情報に対応する項目IDの項目名を管理する項目定義テーブルに基づいて、万能テーブルから抽出されたデータの対応する項目名を出力するため、万能テーブルのようにあらゆるデータが項目IDのみで管理されて格納されているような場合であっても、管理者や利用者が項目定義テーブルの項目名を参照して、どのようなデータであるかを認識することが可能になるという効果を奏する。
【0027】
本発明に係るデータ生成装置は、前記万能テーブル生成手段が、前記異なる定義がなされている複数のテーブルにて格納されているデータ内容の実施に関連する情報を固定項目として各データごとに付加するものである。
【0028】
このように、本発明に係るデータ生成装置においては、万能テーブルが、異なる定義がなされている複数のテーブルにて格納されているデータ内容の実施に関連する情報(例えば、5W1H情報のうち1又は複数の情報)を固定項目として各データごとに有することで、運用面で重要な情報として活用することができるという効果を奏する。
【0029】
本発明に係るデータ生成装置は、前記マスタテーブルに格納され、前記万能テーブルが有していない情報であって、前記抽出されたデータに関連する付加的な情報を出力する出力手段を備えるものである。
【0030】
このように、本発明に係るデータ生成装置においては、マスタテーブルが、前記万能テーブルが有していない情報であって、前記抽出されたデータに関連する情報を付加的に格納するため、管理者側が付加的な要素を付けて情報を提供することができるという効果を奏する。
【0031】
本発明に係るデータ検索装置は、前記データ構造を用いたデータ検索装置であって、前記マスタテーブルに格納されたデータを検索条件データとして入力する入力手段と、入力された前記検索条件データに基づいて、当該検索条件データと一致するデータを前記万能テーブルから抽出する抽出手段と、抽出されたデータを出力する出力手段とを備えるものである。
【0032】
このように、本発明に係るデータ検索装置においては、マスタテーブルに格納されたデータを検索条件データとして入力し、入力された前記検索条件データに基づいて、当該検索条件データと一致するデータを前記万能テーブルから抽出し出力するため、膨大な量のビッグデータであっても、必ずヒットする検索条件が設定され効率的な検索を行うことができるという効果を奏する。
【図面の簡単な説明】
【0033】
【図1】第1の実施形態に係るデータ生成装置のハードウェア構成図である。
【図2】第1の実施形態に係るデータ生成装置の構成を示す機能ブロック図である。
【図3】第1の実施形態に係る万能テーブル、マスクテーブル及びマスタテーブルのデータ構造を示す図である。
【図4】第1の実施形態に係るパターンマップ及びID管理テーブルのデータ構造を示す図である。
【図5】万能テーブル及びマスクテーブルの一例を示す図である。
【図6】図5のデータを用いて生成されるマスタテーブルの一例を示す図である。
【図7】マスタデータを用いたデータの検索を示す図である。
【図8】名寄せにおける第1の処理を示す図である。
【図9】名寄せにおける第2の処理を示す図である。
【図10】名寄せにおける第3の処理を示す図である。
【図11】名寄せにおける第4の処理を示す図である。
【図12】第1の実施形態に係るテーブル構成を示す図である。
【図13】第1の実施形態に係るデータ生成装置の動作を示すフローチャートである。
【図14】第2の実施形態に係るデータ検索装置の構成を示す機能ブロック図である。
【図15】第2の実施形態に係るデータ検索装置に用いられるデータのテーブル構成を示す図である。
【図16】第3の実施形態に係るデータ生成装置の構成を示す機能ブロック図である。
【図17】第3の実施形態に係るテーブル構成を示す図である。
【図18】項目定義テーブル及びマスタテーブルを結合して項目名を表示する場合の処理を示す図である。
【図19】項目定義テーブルの利用方法を示す図である。
【図20】第4の実施形態に係るデータ生成装置の構成を示す機能ブロック図である。
【図21】第4の実施形態に係るテーブル構成を示す図である。
【図22】固定項目を含む万能テーブルの情報の一例を示す図である。
【図23】第5の実施形態に係るデータ生成装置の構成を示す機能ブロック図である。
【図24】第5の実施形態に係るテーブル構成を示す図である。
【図25】付加情報の具体例を示す図である。

【発明を実施するための最良の形態】
【0034】
以下、本発明の実施の形態を説明する。本実施形態の全体を通して同じ要素には同じ符号を付けている。
【0035】
(本発明の第1の実施形態)
本実施形態に係るデータ構造及びデータ生成装置について、図1ないし図13を用いて説明する。本実施形態に係るデータ構造は、異なるシステムにおいて個々に定義された複数のデータを一つのテーブルで一元管理すると共に、インデックスにより各データへのアクセスを制御することで、大量のビッグデータであっても小さい容量で効率よくデータ管理ができるものである。
【0036】
図1は、本実施形態に係るデータ生成装置のハードウェア構成図である。図1において、データ生成装置1は、CPU11、RAM12、ROM13、ハードディスク(HDとする)14、通信I/F15、及び入出力I/F16を備える。ROM13やHD14には、オペレーティングシステムや各種プログラムが格納されており、必要に応じてRAM12に読み出され、CPU11により各プログラムが実行される。生成されたデータやその大元のデータはHD14に格納され、必要に応じてプログラムによりアクセスすることができる。
【0037】
通信I/F15は、装置間の通信を行うためのインタフェースである。入出力I/F16は、タッチパネル、キーボード、マウス等の入力機器からの入力を受け付けたり、プリンタや画面等にデータを出力するためのインタフェースである。この入出力I/F16は、必要に応じて光磁気ディスク、フロッピーディスク、CD-R、DVD-R等のリムーバブルディスク等に対応したドライブを接続することができる。各処理部はバスを介して接続され、情報のやり取りを行う。なお、上記ハードウェアの構成はあくまで一例であり、必要に応じて変更可能である。
【0038】
図2は、本実施形態に係るデータ生成装置の構成を示す機能ブロック図である。データ生成装置1は、複数の異なるシステム(10a~10d)で管理されているデータを入力するデータ入力部21を備える。システム10a~10dは、例えば、医療管理システムであり、システム10aが医療機関Aのシステムデータ、システム10bが医療機関Bのシステムデータという言ったように、独立した異なるシステムで利用され、それぞれに異なる定義がなされているシステムデータである。
【0039】
また、データ生成装置1は、データ入力部21で入力されたデータを万能テーブル記憶部23に格納する万能テーブル生成部22と、当該万能テーブル記憶部23に記憶されたデータを、予め管理者により作成されたマスクテーブル記憶部24のマスク情報に基づいて抽出するデータ抽出部25と、抽出されたデータのうち同一のデータについては1つのデータとして纏めてマスタデータを生成し、マスタテーブル記憶部27に格納するマスタテーブル生成部26とを備える。ここで、万能テーブル、マスクテーブル、マスタテーブルについて説明する。
【0040】
図3は、本実施形態に係る万能テーブル、マスクテーブル及びマスタテーブルのデータ構造を示す図である。図3(A)は万能テーブル、図3(B)はマスクテーブル、図3(C)はマスタテーブルの構造を示す。通常フィールド名には、そのフィールドに入れるデータの種類(例えば、氏名、年齢、生年月日等)を示す名称が定義されるが、図3(A)の万能テーブルの場合、どのフィールドにどのデータを入れてもいいように、フィールド名がSLOT番号で管理される。つまり、例えば、システム10aで利用されていたデータの場合は、SLOT1に「ローカルID」、SLOT2に「性別」、SLOT3に「氏名」、SLOT4に「住所」が格納されるが、システム10bで利用されていたデータの場合は、SLOT1に「ローカルID」、SLOT2に「氏名」、SLOT3に「電話番号」、SLOT4に「郵便番号」が格納されるといった形で万能テーブルが形成される。
【0041】
図3(B)のマスクテーブルは、データとしては「0」又は「1」の情報のみを有しており、データを識別するために必要となるフィールドに「1」が設定され、万能テーブルの各レコードと掛け合わせることで、必要な情報のみを抽出することができる。例えば、図3(B)の2レコード目(PP-ID=2)は、SLOT1、5及び6に「1」が設定され他は「0」がマスクデータとして設定されている。つまり、万能テーブルのデータと図3(B)のPP-ID=2のマスクデータを掛け合わせることで、万能テーブルからSLOT1、5及び6の情報のみを抽出できる。ただし、このとき、万能テーブルにはあらゆるデータがランダムに格納されているため、図3(B)のPP-ID=2を掛け合わせて抽出されたデータが全て意味のあるデータとはならない。つまり、PP-ID=2のマスク情報によりデータを識別するために必要なデータが必ず含まれているものの、全く関係のないデータ(利用者が必要としていないデータ)も含まれている。
【0042】
図3(C)のマスタテーブルは、マスクテーブルのマスク情報により抽出されたデータのうち、同一のデータについては1つのデータに纏めてマスタデータとして情報を格納する。例えば、PP-ID=2のマスク情報により、SLOT1=11、SLOT5=患者太郎、SLOT6=1976/10/10というデータが複数抽出された場合には、それらのデータは1件のデータとし、1つのID(以下、PTN-IDという)が付与される。なお、万能テーブル、マスクテーブル及びマスタテーブルのより具体的なデータ構造については後述する。
【0043】
このように、万能テーブルに格納されたデータのうち、マスクテーブルのマスク情報で抽出された識別性のある情報を1つのデータに括ることで万能テーブルのマスタデータが生成される。つまり、何千万件に上るような膨大な量のデータを扱う際の検索においては、検索条件の設定が非常に重要となるが、本実施形態のようにマスタデータが作成されることにより、必ずヒットする検索条件としてマスタデータを提供することができ、作業効率を格段に向上させることができる。
【0044】
図2に戻って、マスタテーブル生成部26によりマスタテーブルが生成されると、元のシステム10a~10dで利用されていたユニーク性を持った識別コードであるLOCAL_ID(以下、L-IDとする)を万能テーブルから抽出し、マスタテーブル生成時に付与されたマスタデータごとのPTN_IDをマスタテーブルから抽出し、それらを付け合せたパターンマップをパターンマップ記憶部29に記憶するパターンマップ生成部28と、生成されたパターンマップからIDを管理するためのID管理テーブルを作成してID管理テーブル記憶部31に格納する統合ID管理部30とを備える。
【0045】
図4は、本実施形態に係るパターンマップ及びID管理テーブルのデータ構造を示す図である。図4(A)はパターンマップを示す図、図4(B)はID管理テーブルを示す図である。図4(A)に示すL-IDはLOCAL_IDのことであり、元々のシステムで利用されていたユニーク性を持つIDである。例えば、医療管理システムで言えば、医療機関コード(医療機関ごとのコード)と診察券コード(患者ごとのコード)を繋げた一意のIDである。PTN-IDは、マスタテーブルを生成する際に付与された一意のIDである。パターンマップでは、L-IDとPTN-IDの組み合わせが格納される。
【0046】
ここで、L-IDは、システムの上では一意性を持っているが、例えば、医療管理システムにおいて、実際にL-IDと患者の関係が1対1とは限らない。つまり、同じ患者が異なる医療機関で診察した場合には、2つのL-IDを持っていることとなる。一方、PTN-IDについても、システムの上では一意性を持っているが、例えば、医療管理システムにおいて、1つのマスタデータ(例えば、氏名、郵便番号、性別、生年月日)が1人の患者を示しているとは限らない。つまり、結婚して性が変わった人や引越しなどで郵便番号が変わった人は、同じ人物であっても複数の異なるマスタデータを有することとなる。
【0047】
このような、データを同一人物に統合する(以下、名寄せという)ために、図4(B)のID管理テーブルが生成される。図4(B)のID管理テーブルにおいては、同一のパターンIDを有するデータには共通の統合IDが付与され、同一のPTN-IDを有するデータには共通の統合IDが付与される。つまり、統合IDと、当該統合IDにより識別される人(システムの種類によっては物)は、必ず1対1の関係となる。したがって、同じ統合IDで抽出されたデータは、全て同じ人(又は物)に関連する情報として抽出することが可能となる。なお、統合IDを付与する際の具体的な処理については、詳細を後述する。
【0048】
次に、マスタテーブルを生成するまでの処理とその利用方法を具体例を挙げて説明する。図5は、万能テーブル及びマスクテーブルの一例を示す図である。図5(A)は万能テーブル、図5(B)はマスクテーブルの一例を示す。万能テーブルには、1~3行に患者情報、4~6行に薬剤情報、7~9行に検査情報が格納されている。マスクテーブルのPP-ID=1にはSLOT2~6まで「1」が設定されている。これは、患者情報のマスタデータを作成するために予め管理者により設定されたものであり、SLOT2~6の情報(具体的には、アカウント、氏名、生年月日、性別、郵便番号)があれば識別可能な患者情報のマスタデータを作成することができる。同様に、PP-ID=2にはSLOT2~5まで「1」が設定され、PP-ID=3にはSLOT2、3、5~7まで「1」が設定されている。
【0049】
図6は、図5のデータを用いて生成されるマスタテーブルの一例を示す図である。図5(A)の万能テーブルと図5(B)のマスクテーブルを掛け合わせ、複数の同一のデータは1つのデータ(1つのPTN-ID)として取り扱う。図6において、PP-ID=1のデータは、図5(B)におけるPP-ID=1のマスク情報により作成されたデータである。ここで、上から3行目の「患者花子」は上から2行目の「患者花子」と完全に一致しているので、マスタデータには含まれない。なお、このような場合は、図6に示すようにPTN-IDを付与しないようにしてもよいし、データ自体を削除してもよい。同様に、12行目の「患者花子」、15行目の「目薬B」、21行目の「患者花子」、27行目の「尿検査(タンパク)」は、同一のデータが存在するためPTN-IDが付与されずデータとしては存在しない。このように、マスタテーブルは、必要最小限のフィールドで抽出された最小のデータが集まったマスタデータとなる。
【0050】
上記のようなマスタデータが作成されることで、データの検索を効率よく行うことが可能となる。図7は、マスタデータを用いたデータの検索を示す図である。ここでは、例えば、利用者が万能テーブルから薬剤情報のデータを検索したいとする。薬剤情報に関するデータのマスク情報はPP-ID=2であるため(詳細は他の実施形態で後述するが、マスクテーブルに対応付けて項目名を定義している項目定義テーブルを用いることで、薬剤情報を取得するためのマスク情報がPP-ID=2であることを利用者が把握できる)、PP-ID=2のマスク情報で抽出された図7(A)のマスタデータが検索する際の選択肢の対象となる。利用者はこれらの選択肢から図7(B)に示すように検索条件を指定することで、図7(C)の行がヒットする。ヒットした行のPTN-IDから統合IDを特定し、その統合IDのデータを万能テーブルから検索することで、必要なデータを万能テーブルから得ることができる。なお、図7(B)のSLOTごとの括弧書きの項目名は、マスクテーブルに対応付けて項目名を定義している項目定義テーブルに定義されている項目名である。
【0051】
次に、名寄せの具体的な処理について4つの例を挙げて説明する。図8は、名寄せにおける第1の処理を示す図である。ここでは、万能テーブルの3件目に新たなデータが追加されたものとする(図8(A))。追加されたデータCは、他の患者情報と異なるため新規にPTN-ID(=300)が付与される(図8(B))。L-ID(ここでは、L-IDはHOSP_CDとLOCAL_CDを繋げたものとする)とPTN-IDを管理するために、パターンマップに新たにデータCが追加される(図8(C))。パターンマップへの追加に伴って、新たに統合IDが付与されてID管理テーブルにデータCが追加される(図8(D))。ID管理テーブルにおけるデータA、B及びCは、いずれも異なるPTN-IDと異なるL-IDであるため、それぞれが異なる人物の情報として管理される。
【0052】
図9は、名寄せにおける第2の処理を示す図である。ここでは、万能テーブルの4件目に新たなデータが追加されたものとする(図9(A))。追加されたデータDは、データAの患者情報と完全に一致しているため、新たなPTN-IDを採番しない(図9(B))。L-IDとPTN-IDを管理するために、パターンマップに新たにデータCが追加される(図9(C))。データAとデータDは、患者情報が同じであるため、同じPTN-ID=100としてパターンマップに追加し、それぞれを別管理とする。パターンマップへの追加に伴って、新たに統合IDが付与されてID管理テーブルにデータDが追加される(図9(D))。このとき、既に同一のPTN-ID(=100)であるデータAが存在しているため、データDの統合IDはデータAと同一のIDに取り直しされる(図9(E))。ID管理テーブルにおけるデータA、Dは、それぞれ異なるL-IDが付与されているものの、統合IDが同じであるため、それぞれが同一人物の情報として管理される。
【0053】
図10は、名寄せにおける第3の処理を示す図である。ここでは、万能テーブルの5件目に新たなデータが追加されたものとする(図10(A))。追加されたデータEは、他の患者情報と異なるため新規にPTN-ID(=400)が付与される(図10(B))。L-IDとPTN-IDを管理するために、パターンマップに新たにデータEが追加される(図10(C))。パターンマップへの追加に伴って、新たに統合IDが付与されてID管理テーブルにデータEが追加される(図10(D))。このとき、既に同一のP-ID(=4199-9990010)であるデータBが存在しているため、データEの統合IDはデータBと同一のIDに取り直しされる(図10(E))。ID管理テーブルにおけるデータB、Eは、それぞれ異なるPTN-IDが付与されているものの、統合IDが同じであるため、それぞれが同一人物の情報として管理される。
【0054】
図11は、名寄せにおける第4の処理を示す図である。ここでは、万能テーブルの3件目に新たなデータが追加されたものとする(図11(A))。追加されたデータCは、データBの患者情報と完全に一致しているため、新たなPTN-IDを採番しない(図11(B))。L-IDとPTN-IDを管理するために、パターンマップに新たにデータCが追加される(図11(C))。データBとデータCは、患者情報が同じであるため、同じPTN-ID=400となり、また、データAとデータCは、L-IDが同じであるため、同じL-IDとしてパターンマップに追加される。パターンマップへの追加に伴って、新たに統合IDが付与されてID管理テーブルにデータCが追加される(図11(D))。このとき、既に同一のPTN-ID(=400)であるデータBが存在しているため、データCの統合IDはデータBと同一のIDに取り直しされる(図11(E))。次に、L-IDの一致を見た場合に、データAとデータCは同じL-IDであるため(図11(F))、データCの統合IDをデータAの統合IDに取り直す(図11(G))。さらに、PTN-IDの一致を見た場合に、データBとデータCのPTN-IDが一致しているにも関わらず、統合IDが異なっているため(図11(H))、データBの統合IDをデータCの統合IDに合わせて取り直す(図11(I))。
【0055】
なお、ここでは、統合IDの取り直しする際に、若いコードを優先して行うこととしている。つまり、図11(I)においてデータBの統合IDをデータCの統合IDに合わせて取り直したのは、若いコードを優先したからである。ただし、必ずしも若いコードを優先する必要はなく、予め決められたルールに基づく任意の一のコードを優先するようにしてもよい。
【0056】
次に、本実施形態に係るデータ構造について説明する。図12は、本実施形態に係るテーブル構成を示す図である。本実施形態において、複数の一般システム41をCSV42に形式に変換し、万能テーブル43の各SLOTに展開する。このとき、一般システム41におけるどのフィールドがどのSLOTに対応するかを示した1STMAP44に基づいて展開処理が行われる。万能テーブル43を元に、予め管理者が作成したマスクテーブル45に基づいて、マスタテーブル46が自動生成される。万能テーブル43のL-IDとマスタテーブル46のPTN-IDとから、パターンマップ47が生成され、このパターンマップ47に基づいて、名寄せ処理を行った場合の統合IDを管理するID管理テーブル48が生成される。
【0057】
次に、本実施形態に係るデータ生成装置の動作について説明する。図13は、本実施形態に係るデータ生成装置の動作を示すフローチャートである。まず、データ入力部21が、複数のシステム10a~10dからシステムデータを入力し(S1)、万能テーブル生成部22が、入力されたシステムデータをCSVに変換し、1STMAP44に基づいて万能テーブル43を生成し、万能テーブル記憶部23に格納する(S2)。データ抽出部25が、予め作成されたマスクテーブル45をマスクテーブル記憶部24から読み出し、マスク情報にしたがって万能テーブル43の情報を抽出する(S3)。マスタテーブル生成部26は、抽出された情報のうち、同一のデータについては同一のPTN-CDで管理するようにマスタテーブル46を生成し、マスタテーブル記憶部27に格納する(S4)。
【0058】
パターンマップ生成部28が、万能テーブル記憶部24に記憶された万能テーブル43のL-IDとマスタテーブル記憶部27に記憶されたマスタテーブル46のPTN-IDとを組み合わせて対応付けたパターンマップ47を生成し、パターンマップ記憶部29に格納する(S5)。統合ID管理部30が、パターンマップ47に基づいて上記で説明した名寄せ処理を行い、統合IDを付与したID管理テーブル48を作成し、ID管理テーブル記憶部31に格納して(S6)、処理を終了する。
【0059】
このように、本実施形態に係るデータ生成装置及びデータ構造においては、様々に定義されているデータを項目名が定義されていない1つの万能テーブルで管理し、データを識別するために最低限必要となる項目に対して、当該項目に格納されているデータのみを抽出可能とするためのマスク情報が各行単位で格納されたマスクテーブルを用意し、万能テーブルの全データからマスクテーブルの各行単位に格納されたマスク情報にしたがってデータを抽出し、当該抽出された同一データを一つのデータとして管理するマスタテーブルを備えるため、マスタテーブルには万能テーブルで管理する全てのデータのマスタとなる情報のみが集約されて管理され、検索等の処理を非常に効率よく行うことが可能になる。
【0060】
また、必要に応じてマスタテーブルのデータを検索条件として、万能テーブルを詳細に検索することが可能になり、極めて膨大なビッグデータであっても必要とするデータを効率よく抽出することができる。
【0061】
さらに、共通のPTN-IDを有するデータを共通の統合IDとして管理しつつ、共通のL-IDを有するデータを共通の統合IDとして管理することで、IDのみの管理で名寄せ処理を効率よく行うことができる。
【0062】
(本発明の第2の実施形態)
本実施形態に係るデータ検索装置について、図14及び図15を用いて説明する。本実施形態に係るデータ検索装置は、上記第1の実施形態におけるデータ構造及び生成されたデータから所定のデータを検索するものである。
なお、本実施形態において、前記第1の実施形態と重複する説明は省略する。
【0063】
図14は、本実施形態に係るデータ検索装置の構成を示す機能ブロック図である。本実施形態に係るデータ検索装置50は、前記第1の実施形態に係るデータ生成装置1のマスタテーブル46に記憶されたマスタ情報に基づく検索条件情報51を入力する条件情報入力部52と、入力された検索条件に一致するデータの統合IDをID管理テーブル48から抽出し、抽出された統合IDのデータを万能テーブル43から抽出する検索部53と、検索部53が抽出した結果を例えばディスプレイに出力する出力部54とを備える。
【0064】
マスタテーブル46には、検索対象となる万能テーブル43のマスタ情報(必要最小限の情報)が記憶されているため、このマスタ情報を検索条件情報として利用することで、膨大なデータから必要な情報の絞り込みを行い易くなる。そして、マスタ情報に基づく検索条件から統合IDを割り出し、当該統合IDに該当するデータを万能テーブル43から抽出することで、絞り込んだデータからより詳細なデータを効率よく検索することができる。
【0065】
図15は、本実施形態に係るデータ検索装置に用いられるデータのテーブル構成を示す図である。設定された検索条件情報に基づいて、ID管理テーブル48から統合IDが抽出され、抽出された統合IDにより結合された万能テーブル43のデータが検索結果情報として出力される。
【0066】
このように、本実施形態に係るデータ検索装置においては、マスタテーブルに格納されたデータを検索条件データとして入力し、入力された前記検索条件データに基づいて、当該検索条件データと一致するデータを前記万能テーブルから抽出し出力するため、膨大な量のビッグデータであっても、必ずヒットする検索条件が設定され効率的な検索を行うことができる。
【0067】
(本発明の第3の実施形態)
本実施形態に係るデータ構造及びデータ生成装置について、図16ないし図19を用いて説明する。本実施形態に係るデータ生成装置は、マスクテーブル45のマスク情報に対応するSLOTのSLOT名を管理する項目定義テーブルを備えるものである。
なお、本実施形態において、前記各実施形態と重複する説明は省略する。
【0068】
図16は、本実施形態に係るデータ生成装置の構成を示す機能ブロック図、図17は、本実施形態に係るテーブル構成を示す図である。図16において、第2の実施形態における図14と異なるのは、マスクテーブル記憶部24に対応付けられた項目定義テーブルを記憶する項目定義テーブル記憶部32を備えることである。また、図17において、第2の実施形態における図15と異なるのは、マスクテーブル45に対応する項目定義テーブル49を備えることである。
【0069】
項目定義テーブル49は、万能テーブル43のSLOT番号に意味のある情報を対応付けるためのテーブルであり、マスクテーブル45のマスク情報により対応付けがなされている。以下に、項目定義テーブル49を用いた項目名の管理方法について具体的に説明する。図18は、項目定義テーブル及びマスタテーブルを結合して項目名を表示する場合の処理を示す図である。図18(A)は項目定義テーブルの一例を示し、図18(B)はマスタ情報を抽出する際の汎用画面の一例を示す。図18(A)に示すように、マスクテーブル45のPP-IDに応じて項目名が各SLOTごとに定義されている。ここでは、PP-ID=1は患者情報、PP-ID=2は薬剤情報、PP-ID=3は検査情報を示しており、患者情報について検索する場合には、図18(B)に示すように、PP-ID=1の情報を列名に表示することで、利用者は、マスタテーブルにおける患者情報のSLOTの中身の意味を認識することができ、使い勝手がよくなる。
【0070】
図19は、項目定義テーブルの利用方法を示す図である。図19(A)は項目定義テーブル49の項目名が列名として表示された汎用画面を示し、図19(B)は検索条件の設定及び検索結果を示している。図19に示すように、利用者は、項目定義テーブルに記憶されている項目名を意識した検索条件を設定することで、必要な情報を抽出することができる。すなわち、利用者が項目名を意識することができることで、様々な情報が混在する一元化されたテーブルから必要な情報を抽出するための適切な抽出条件を効率よく設定することができる。
【0071】
このように、本発明に実施形態に係るデータ生成装置においては、マスクテーブルのマスク情報に対応する項目IDの項目名を管理する項目定義テーブルを備えるため、万能テーブルのようにあらゆるデータが項目IDのみで管理されて格納されているような場合であっても、管理者や利用者が項目定義テーブルの項目名を参照して、どのようなデータであるかを認識することが可能になり、操作性や作業効率を上げることができる。
【0072】
(本発明の第4の実施形態)
本実施形態に係るデータ構造及びデータ生成装置について、図20ないし図22を用いて説明する。本実施形態に係るデータ構造は、万能テーブルが、固定項目として各データごとに、例えば5W1Hの情報を有するものである。
なお、本実施形態において、前記各実施形態と重複する説明は省略する。
【0073】
図20は、本実施形態に係るデータ生成装置の構成を示す機能ブロック図、図21は、本実施形態に係るテーブル構成を示す図である。図20において、第3の実施形態における図16と異なるのは、データ入力部21が、システム10a~10dにて格納されている情報内容の実施に関連する5W1H情報(いつ、何処で、誰が(誰に)、何を、なぜ、どのように)のうち1又は複数の情報を入力し、万能テーブルを生成する際に、万能テーブル生成部22が各データごとに5W1H情報のうち1又は複数の情報を固定項目として付加することである。また、図21において、第3の実施形態における図17と異なるのは、一般システム41からCSV42を生成する際に、CSV42に各データごとの5W1Hの情報を固定項目として追加されていることである。
【0074】
図22は、固定項目を含む万能テーブルの情報の一例を示す図である。図22(A)に示すように、一般システム40に格納されている「日時」~「パターン」の情報を5W1H情報として抽出し、図22(B)に示すように、固定項目として万能テーブル43に付加する。このような固定項目は、各SLOTの項目に関係なく、常に固定的に万能テーブルに付加される情報であり、このような情報を保持することで検索処理の幅を広げることができると共に、何か問題が起こった場合に、その原因の究明等に利用することができる。
【0075】
より具体的には、例えば、「実施日時」、「場所(排他的な要素のない場所)」、「対象者(万能テーブルに格納される情報の内容が実施される者)」、「実施者(万能テーブルに格納される情報の内容を実施する者)」、「管理者(万能テーブルに格納される情報の内容の実施を指示した者)」が固定項目として付加される。そして、情報の内容については、各SLOTに展開された情報であり、これは行為情報と言うことができる。つまり、5W1H情報のような固定項目が同じであれば(例えば、数日に亘って同じ実施行為を繰り返して行ったような場合)、実際の行為(例えば、具体的な日付)を指定することが可能となり、データの上書きや削除の検索対象とすることができる。
【0076】
このように、本実施形態に係るデータ構造においては、万能テーブルが、固定項目として各データごとに5W1Hのうち1又は複数の情報を有するため、運用面で重要な情報として活用することができる。
【0077】
(本発明の第5の実施形態)
本実施形態に係るデータ構造及びデータ生成装置について、図23ないし図25を用いて説明する。本実施形態に係るデータ構造は、マスタテーブルのマスタ情報に、必要に応じて付加情報を追加したものである。
なお、本実施形態において、前記各実施形態と重複する説明は省略する。
【0078】
図23は、本実施形態に係るデータ生成装置の構成を示す機能ブロック図、図24は、本実施形態に係るテーブル構成を示す図である。図23において、第1の実施形態における図2と異なるのは、マスタテーブル記憶部27に記憶されたマスタテーブル46に、マスタテーブル生成部26が生成したマスタ情報以外の付加情報を追加されていることである。また、図24において、第1の実施形態における図12と異なるのは、マスタテーブル46に付加情報が追加され、検索情報としてそれらの情報が活用可能となっていることである。
【0079】
図25は、付加情報の具体例を示す図である。図25(A)は、一般システム41から提供されたデータであり、万能テーブル43に格納される情報の一例を示し、図25(B)は図25(A)で提供されたデータについて既知の情報を格納したテーブルの一例を示し、図25(C)は最終的に提供される情報の項目を示している。図25(B)の既知の情報を格納したテーブルが付加情報に相当し、中身は1つのマスタ情報に特有の情報である。例えば、胃薬Aに関して既に一般的に知られていて容易に取得することができる情報として、「薬効」、「禁忌」、「販売元」といった情報があり、これらの情報は一般システム41において管理されていなくても、管理者が別途付加情報として追加することで、ユーザへの提供をより充実化することができる。
【0080】
付加情報を追加した場合の各テーブルにおける最終的な管理項目は、図25(C)に示す通りであり、万能テーブル43に格納される情報は、図25(A)に示すように「種別」、「薬剤名称」、「薬効1」、「薬効2」、「処方量1」、「処方量2」、「処方量3」である。マスタテーブル46に格納される情報は、一意性を示す最小のパターンであるため、「種別」、「薬剤名称」、「薬効1」、「薬効2」の4項目である。そして、最終的に検索情報として提供されるテーブルは、万能テーブル43に付加情報の項目が追加されたものであり、図25(C)の「種別」~「販売」までの全ての項目を有しているものとなる。このとき、各項目の項目名は、項目定義テーブル49による定義付けられるようにしてもよい。
【0081】
このように、本実施形態に係るデータ構造においては、マスタテーブルが、万能テーブルが有していない情報であって、抽出されたデータに関連する情報を付加的に格納するため、管理者側が付加的な要素を付けて情報を提供することができる。
【0082】
なお、上記各実施形態において、万能テーブル43に格納されるデータが完全に揃っていることを前提として、マスタテーブルが作成される処理を説明したが、元々の一般システム41において、必要なデータが不足していることが多々ある。その場合は、L-IDとPTN-IDとの関係を示すパターンマップ47を手動で生成するようにしてもよい。そうすることで、適正なマスタテーブル46を生成することができる。
【0083】
また、上記各実施形態における各構成要件は、任意に組み合わせることが可能であり、利用環境に応じたシステム構築が可能である。
【符号の説明】
【0084】
1 データ生成装置
10a~10d システム
11 CPU
12 RAM
13 ROM
14 HD
15 通信I/F
16 入出力I/F
21 データ入力部
22 万能テーブル生成部
23 万能テーブル記憶部
24 マスクテーブル記憶部
25 データ抽出部
26 マスタテーブル生成部
27 マスタテーブル記憶部
28 パターンマップ生成部
29 パターンマップ記憶部
30 統合ID管理部
31 ID管理テーブル記憶部
32 項目定義テーブル記憶部
41 一般システム
42 CSV
43 万能テーブル
44 1STMAP
45 マスクテーブル
46 マスタテーブル
47 パターンマップ
48 ID管理テーブル
49 項目定義テーブル
50 データ検索装置
51 検索条件情報
52 条件情報入力部
53 検索部
54 出力部
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7
【図9】
8
【図10】
9
【図11】
10
【図12】
11
【図13】
12
【図14】
13
【図15】
14
【図16】
15
【図17】
16
【図18】
17
【図19】
18
【図20】
19
【図21】
20
【図22】
21
【図23】
22
【図24】
23
【図25】
24