〔第1の実施形態〕
以下、図面を参照して本発明の実施形態を詳細に説明する。
図1に示すように、本実施形態に帳票システム100は、情報処理装置101、およびサーバ102が、ネットワーク103により通信可能に接続された構成をとる。情報処理装置101は、カメラ等を用いて帳票の画像を取り込み、帳票の記入不備チェックを行う。サーバ102は、帳票の記入不備チェックに必要な記入内容の認識領域と認識条件を帳票フォーム識別情報ごとに管理している。情報処理装置101は、携帯電話、スマートフォン、タブレット端末、ノートPC、およびPDA端末などの持ち運び可能な端末であって、ブラウザまたは帳票システムのアプリケーションがインストールされており、無線通信によりネットワーク103を介して、サーバ102と通信可能である。
以下、図2を用いて、図1に示した情報処理装置101に適用可能なハードウエア構成の一例について説明する。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM203あるいは外部メモリ212には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な各種プログラム等が記憶されている。
202はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ212からRAM202にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、タッチセンサ210からの入力を制御する。206はビデオコントローラで、ディスプレイ211等の表示器への表示を制御する。なお、図2では、ディスプレイ211と記載しているが、表示器はCRTだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて情報処理装置101のユーザが使用するものである。
207はメモリコントローラで、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置(ハードディスク(HD))や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ212へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワーク103を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ211上での表示を可能としている。また、CPU201は、ディスプレイ211上のタッチセンサ210におけるユーザのタッチ操作指示を受付けることを可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ212に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイルや地図データ等も、外部メモリ212に格納されており、これらについての詳細な説明も後述する。
209は撮影画像入力コントローラで、撮影画像入力処理部214を介してカメラ215からの入力を制御する。カメラ215から入力された撮影画像を認識することが可能となっている。
図3は、情報処理装置101とサーバ102の機能構成の一例を示すブロック図である。
クライアント記憶部301は、帳票の帳票フォームごとに、帳票フォーム識別情報と記入内容の認識領域と認識条件とを含む帳票フォーム定義情報を記憶する機能部である。
クライアント記憶部301は、帳票の認識領域と認識条件とを含む帳票フォーム定義情報を記憶する機能部である。
帳票フォーム識別情報特定部302は、電子データの帳票フォーム識別情報を特定する機能部である。
取込部313は、帳票を撮像装置で撮像することにより電子データとして取込む機能部である。
取得部314は、取込部313により取込まれた電子データの帳票を識別する帳票フォーム識別情報を取得する機能部である。
クライアント記入不備チェック部303は、帳票フォーム識別情報特定部302により特定された帳票フォーム識別情報に対応づけられてクライアント記憶部301に記憶されている認識領域と認識条件を用いて、記入不備チェックを行う機能部である。
クライアント記入不備チェック部303は、取得部314により取得された帳票フォーム識別情報に対応づけられてクライアント記憶部301に記憶されている認識領域と認識条件を用いて、取込部313により取込まれた電子データに含まれる、認識領域に記入された内容が、認識条件に適合しているか否かをチェックする機能部である。
電子データ送信部304は、情報処理装置とサーバが記入不備チェックを並行して行うことで、記入不備チェックに係る処理を効率化すべく、電子データをサーバに送信する機能部である。
電子データ送信部304は、サーバで帳票への記入内容のチェックを行わせるべく、サーバに電子データを送信する機能部である。
サーバ結果受信部305は、サーバで行われた記入不備チェックの結果を受信する機能部である。
サーバ結果受信部305は、サーバで行われた帳票への記入内容のチェック結果を受信する機能部である。
記入不備チェック結果出力部306は、記入不備チェックの結果を出力する機能部である。
記入不備チェック結果出力部306は、帳票への記入内容のチェック結果を出力する機能部である。
電子データ受信部307は、電子データ送信部304により送信された電子データを受信する機能部である。
サーバ記憶部308は、帳票の帳票フォームごとに、帳票フォーム定義情報を記憶する機能部である。
サーバ記入不備チェック部309は、電子データ受信部307により受信した電子データの帳票フォーム識別情報に対応づけられてサーバ記憶部308に記憶されている認識領域と認識条件を用いて、記入不備チェックを行う機能部である。
サーバ記入不備チェック部309は、電子データ受信部307により受信した電子データの帳票フォーム識別情報に対応づけられてサーバ記憶部308に記憶されている認識領域と認識条件を用いて、電子データ受信部307により受信した電子データに含まれる、認識領域に記入された内容が、認識条件に適合しているか否かをチェックする機能部である。
サーバ結果送信部310は、サーバ記入不備チェック部309により行われた記入不備チェックの結果を送信する機能部である。
サーバ結果送信部310は、サーバ記入不備チェック部309により行われた帳票への記入内容のチェック結果を送信する機能部である。
記入不備チェック結果出力部306は、クライアント記入不備チェック部303により行われた記入不備チェックの結果と、サーバ結果受信部305により受信された記入不備チェックの結果とを用いて出力する機能部である。
記入不備チェック結果出力部306は、クライアント記入不備チェック部303により行われた帳票への記入内容のチェック結果と、サーバ結果受信部305により受信された帳票への記入内容のチェック結果とを用いて出力する機能部である。
記入不備チェック結果出力部306は、クライアント記入不備チェック部303により行われた記入不備チェックの結果と、サーバ記入不備チェック部309により行われた記入不備チェックの結果のうち、チェックが完了した結果から順次出力する機能部である。
記入不備チェック結果出力部306は、クライアント記入不備チェック部303により行われた帳票への記入内容のチェック結果と、サーバ記入不備チェック部309により行われた帳票への記入内容のチェック結果のうち、チェックが完了した結果から順次出力する機能部である。
クライアント記憶部301は、情報処理装置とサーバのどちらで認識領域の記入不備チェックを行うかを示す区分を更に記憶する機能部である。
クライアント記憶部301は、情報処理装置とサーバのどちらで認識領域の記入内容のチェックを行うかを示す区分を更に記憶する機能部である。
決定部311は、区分に従って、情報処理装置とサーバのどちらで認識領域の記入不備チェックを行うかを決定する機能部である。
クライアント記入不備チェック部303は、区分に従って、情報処理装置で帳票への記入内容のチェックを行う認識領域に対して、記入内容のチェックを行う機能部である。
サーバ記入不備チェック部309は、区分に従って、サーバで帳票への記入内容のチェックを行う認識領域に対して、記入内容のチェックを行う機能部である。
サーバ記入不備チェック停止要求部312は、クライアント記入不備チェック部303により行われた記入不備チェックにおいて記入不備があると判定された場合、サーバ記入不備チェック部309により行われる記入不備チェックの停止をサーバに要求する機能部である。
サーバ記入不備チェック停止要求部312は、クライアント記入不備チェック部303により行われた帳票への記入内容のチェックにおいて記入不備があると判定された場合、サーバ記入不備チェック部309により行われる帳票への記入内容のチェックの停止をサーバに要求する機能部である。
クライアント記憶部301は、クライアント記入不備チェック部303により行われた記入不備チェックにおいて記入不備があると判定された場合、サーバ記入不備チェック部309により行われる記入不備チェックの停止をサーバに要求するか否かのフラグを更に記憶する機能部である。
クライアント記憶部301は、クライアント記入不備チェック部303により行われた帳票への記入内容のチェックにおいて記入不備があると判定された場合、サーバ記入不備チェック部309により行われる帳票への記入内容のチェックの停止をサーバに要求するか否かのフラグを更に記憶する機能部である。
サーバ記入不備チェック停止要求部312は、フラグが停止を要求することを示す場合、サーバ記入不備チェック部309により行われる記入不備チェックの停止を要求する機能部である。
サーバ記入不備チェック停止要求部312は、フラグが停止を要求することを示す場合、サーバ記入不備チェック部309により行われる帳票への記入内容のチェックの停止を要求する機能部である。
サーバ記入不備チェック停止要求部312は、認識領域を示す識別情報を用いて、サーバ記入不備チェック部309により行われる記入不備チェックの識別情報に対応する認識領域の記入不備チェックの停止を要求する機能部である。
スキップ要求部315は、サーバに認識領域を示す識別情報を送信し、サーバ記入不備チェック部309により行われる帳票への記入内容のチェックの当該識別情報に対応する認識領域の記入内容のチェックのスキップを要求する機能部である。
メンテナンス画面出力部316は、情報処理装置とサーバのどちらで認識領域の記入不備チェックを行うかを示す区分をメンテナンスする画面を出力する機能部である。
メンテナンス画面出力部316は、クライアント記入不備チェック部303またはサーバ記入不備チェック部309により行われた帳票への記入内容のチェックにおいて記入不備があると判定された場合、区分を変更すべく、区分をメンテナンスする画面を出力する機能部である。
メンテナンス画面出力部316は、クライアント記入不備チェック部303またはサーバ記入不備チェック部309により行われた帳票への記入内容のチェックにおいて記入不備があると判定された場合、当該記入不備があると判定された認識領域の区分を変更して出力する機能部である。
確認部317は、メンテナンス画面出力部316によりメンテナンスした区分を用いて帳票への記入内容のチェックを行った場合、当該記入不備チェック以降も継続して、当該メンテナンスした区分を用いて帳票への記入内容のチェックを行うか否かを確認する機能部である。
図4は、帳票システム100において、帳票システム100において、記入不備チェックを行い、チェック結果を表示する手順の一例を示すフローチャートである。
ステップS401において、情報処理装置101は、帳票システムのユーザによって行われる帳票システムへのログインを受け付ける。なお、この記入不備チェック結果取得処理においてユーザインターフェースとなる記入不備チェックアプリケーションは、情報処理装置101にインストールされたアプリケーションであってもよいし、ブラウザに表示されるWebアプリケーションなどのアプリケーションであってもよい。
ステップS402において、情報処理装置101は、サーバ102に対して、ユーザによって入力されたユーザIDおよびパスワードを送信すると同時に、情報処理装置101における記入不備チェック処理(図5)にて必要になるフォーム定義情報と記入不備チェック情報の要求を送信する。
ステップS403において、サーバ102は、ユーザIDおよびパスワードを受信してログイン処理を行い、フォーム定義情報と記入不備チェック情報の要求を受信する。
ステップS404において、サーバ102は、外部メモリ212に記憶されているフォーム定義テーブル(サーバ)1420(図14)と記入不備チェックテーブル(サーバ)1520(図15)のそれぞれから、フォーム定義情報と記入不備チェック情報を取得する。なお、フォーム定義テーブル(サーバ)1420と記入不備チェックテーブル(サーバ)1520は、どちらも帳票システム100のシステム管理者によって、作成および管理されているとする。
なお、取得するフォーム定義情報と記入不備チェック情報は、外部メモリ212に記憶されているフォーム定義テーブルと記入不備チェックテーブルの全レコードでもよいし、フォーム定義テーブルにユーザ権限カラムを持たせ、ステップS403にて受信したユーザIDが属すユーザ権限を検索条件としてフォーム定義テーブルを検索することで、ログインしたユーザが使用できる帳票に係るフォーム定義情報と、その帳票フォームに対応する記入不備チェック情報のみを取得する等によって、フォーム定義テーブル(サーバ)1420と記入不備チェックテーブル(サーバ)1520の一部のレコードに限定してもよい。
なお、フォーム定義テーブル(クライアント)1410は、フォーム画像ファイルが記憶されているディレクトリパスが記憶されている「フォーム画像」カラムを持ち、そのファイルパスを用いて、フォーム画像ファイルを取得する。
すなわち、フォーム定義テーブル(クライアント)1410と記入不備チェックテーブル(クライアント)1510は、情報処理装置において、帳票の帳票フォームごとに、帳票フォーム識別情報と記入内容の認識領域と認識条件とを含む帳票フォーム定義情報を記憶するテーブルの一例である。また、フォーム定義テーブル(クライアント)1410と記入不備チェックテーブル(クライアント)1510は、情報処理装置において、帳票の認識領域と認識条件とを含む帳票フォーム定義情報を記憶するテーブルの一例である。
すなわち、フォーム定義テーブル(サーバ)1420と記入不備チェックテーブル(サーバ)1520は、サーバにおいて、帳票の帳票フォームごとに、帳票フォーム定義情報を記憶するテーブルの一例である。また、フォーム定義テーブル(サーバ)1420と記入不備チェックテーブル(サーバ)1520は、サーバにおいて、帳票の認識領域と認識条件とを含む帳票フォーム定義情報を記憶するテーブルの一例である。
ステップS405において、サーバ102は、外部メモリ212から取得したフォーム定義情報、フォーム画像ファイル、記入不備チェック情報を情報処理装置101に送信する。
ステップS406において、情報処理装置101は、サーバ102から送信されたフォーム定義情報、フォーム画像ファイル、記入不備チェック情報を受信し、外部メモリ212に記憶する。なお、情報処理装置101の外部メモリ212には、サーバ102の外部メモリ212に記憶するフォーム定義テーブル(サーバ)1420、記入不備チェックテーブル(サーバ)1520と同じ構造を持つテーブル、フォーム定義テーブル(クライアント)1410(図14)と記入不備チェックテーブル(クライアント)1510(図15)を作成しておき、ステップS406にて受信したフォーム定義情報をフォーム定義テーブル(クライアント)1410のレコードとして、ステップS406にて受信した記入不備チェック情報は記入不備チェックテーブル(クライアント)1510のレコードとして、情報処理装置101の外部メモリ212に記憶する。
つまり、フォーム定義テーブル、記入不備チェックテーブルは、情報処理装置101とサーバ102の両方に存在する。なお、受信したフォーム画像ファイルは、フォーム定義テーブルにおける「フォーム画像」カラムの値が示すディレクトリパスに記憶する。その際、情報処理装置101の外部メモリ212に記憶するために、受信した「フォーム画像」カラムの値を変更してもよい。
ステップS407において、情報処理装置101は、カメラ215を用いて記入不備チェックを行う帳票を撮影し、撮影された画像(以下、撮影画像)を外部メモリ212に記憶する。なお、この実施形態においては、情報処理装置101のカメラ215を用いて撮影画像を得るとしたが、デジタルカメラなどを用いて撮影された画像やスキャナーなどを用いてスキャンされた画像を情報処理装置101に取り込むとしてもよい。すなわち、ステップS407は、帳票を電子データとして取込む処理の一例を示すステップである。また、ステップS407は、帳票を撮像装置で撮像することにより電子データとして取込む処理の一例を示すステップである。
ステップS408において、情報処理装置101は、外部メモリ212に記憶されたフォーム定義テーブル(クライアント)1410の全レコードを検索し、「フォーム画像」のファイルパスを用いて外部メモリ212から取り出したフォーム画像を順番に撮影画像を比較することで、記入不備チェックを行う帳票フォームのフォームID(帳票フォーム識別情報)を特定する。
具体的には、外部メモリ212から取り出したフォーム画像と撮影画像を比較し、所定の値以上の割合で画像が一致した場合に、撮影画像は外部メモリ212から取り出したフォーム画像の帳票フォームであると判定し、撮影した帳票の帳票フォーム識別情報は、画像比較で一致したフォーム画像を持つフォーム定義情報のフォームIDであると特定する。
なお、この画像比較に用いる2つの画像は未加工のまま比較してよいし、画像比較の精度を上げるために、輪郭を抽出するなどの画像加工を施した後に画像比較を行うとしてもよい。すなわち、ステップS408は、電子データの帳票フォーム識別情報を特定する処理の一例を示すステップである。また、ステップS408は、取込まれた電子データの帳票を識別する帳票フォーム識別情報を取得する処理の一例を示すステップである。
なお、この実施形態においては、フォーム画像と撮影画像とを比較することで、記入不備チェックを行う帳票フォームの特定を行ったが、この方法に限定するものではなく、帳票にフォームIDを示すバーコードや番号を記しておき、撮影画像を解析して判明したバーコードや番号から撮影画像のフォームIDを特定する等の方法であってもよい。本実施形態においては、撮影画像からフォームID=1000の「ショッピングクレジット申込書」が特定されたとする。
ステップS409において、情報処理装置101は、サーバ102においても記入不備チェック処理を並行して行うために、撮影画像とステップS408にて特定したフォームIDをサーバに送信する。すなわち、ステップS409は、情報処理装置とサーバが記入不備チェックを並行処理させるべく、電子データをサーバに送信する処理の一例を示すステップである。また、すなわち、ステップS409は、サーバで帳票への記入内容のチェックを行わせるべく、サーバに前記電子データを送信する処理の一例を示すステップである。
ステップS410において、情報処理装置101は、外部メモリ212に記憶されている記入不備チェックテーブル(クライアント)1510からステップS408にて特定したフォームIDを持つ記入不備チェックレコードを取得し、取得した記入不備チェックレコードが持つ(起点X座標、起点Y座標)と(終点X座標、終点Y座標)の2点を対角とする矩形のチェック領域を点線枠で囲んで撮影画像上に重畳させてチェック中の領域であることを示し、「チェック中・・・・・」のメッセージが記された記入不備チェック実施中画面(図9)を表示する。
なお、この実施形態においては、チェック中の領域を点線枠で囲むとしたが、これに限定するものではなく、チェック中であることをユーザが認識できる方法であれば、他の色で塗りつぶす、点滅させる、拡大させる、チェック中のマークを表示する、音声によりチェック中箇所を読み上げるなど、他の方法であってもよい。
ステップS411において、情報処理装置101は、図5の記入不備チェック(クライアント)処理を実施する。すなわち、ステップS411は、特定された帳票フォーム識別情報に対応づけられて記憶されている認識領域と認識条件を用いて、記入不備チェックを行う処理の一例を示すステップである。また、ステップS411は、取得された帳票フォーム識別情報に対応づけられて記憶されている認識領域と認識条件を用いて、取込まれた電子データに含まれる、認識領域に記入された内容が、認識条件に適合しているか否かをチェックする処理の一例を示すステップである。
ここで、図5について説明しておく。図5は、情報処理装置101において、記入不備チェックを行う手順の一例を示すフローチャートである。
ステップS501において、情報処理装置101は、「フォームID」=ステップS408にて特定したフォームID、「C/S区分」=Cを検索条件として、記入不備チェックテーブル(クライアント)1510を検索し、クライアントで記入不備チェックを行う記入不備チェックレコードのリストを取得する。
すなわち、「C/S区分」カラムは、クライアントとサーバのどちらで認識領域の記入不備チェックを行うかを示す区分の一例である。また、すなわち、「C/S区分」カラムは、クライアントとサーバのどちらで認識領域の記入内容のチェックを行うかを示す区分の一例である。
すなわち、ステップS501は、区分に従って、クライアントとサーバのどちらで認識領域の記入不備チェックを行うかを決定する処理の一例を示すステップである。また、すなわち、ステップS501は、区分に従って、情報処理装置で帳票への記入内容のチェックを行う認識領域に対して、記入内容のチェックを行う処理の一例を示すステップである。
なお、この実施形態において、「C/S区分」は、記入不備チェックテーブル(サーバ)1520を作成および管理するシステム管理者によって決定されるとするが、これに限定するものではなく、情報処理装置101を利用するユーザがメンテナンス画面(不図示)を用いて、「C/S区分」を変更してもよい。また、「C/S区分」の値は、例えば、必須チェックなどの簡単なチェック処理をクライアントで行う「C」、条件分岐が含まれているチェック処理やデータベースの他のテーブルとの整合性チェックなど比較的複雑なチェック処理をサーバで行う「S」のように、負荷分散や並行処理によって、記入不備チェックを効率化することを目的として、システム管理者またはユーザが値を設定する。
また、「C/S区分」の値は、システム管理者またはユーザが値を設定する方法だけでなく、帳票システム100が、フォーム定義テーブル(クライアント)1410もしくはフォーム定義テーブル(サーバ)1420に存在するカラムの値から、または、記入不備チェックテーブル(クライアント)1510もしくは記入不備チェックテーブル(サーバ)1520に存在するカラムの値から、自動的に決定するとしてもよい。つまり、この方法の場合、記入不備チェックテーブル(クライアント)1510および記入不備チェックテーブル(サーバ)1520に「C/S区分」カラムを持たなくても良い。
また、記入不備チェックテーブル(クライアント)1510には、クライアントでチェックする認識領域のみを記憶し、記入不備チェックテーブル(サーバ)1520には、サーバでチェックする認識領域のみを記憶することで、記入不備チェックテーブル(クライアント)1510および記入不備チェックテーブル(サーバ)1520に「C/S区分」カラムを持たないとしても良い。
ステップS502において、情報処理装置101は、変数iに初期値1を代入し、RAM202に記憶する。また、記入不備チェックの結果を代入する配列変数resultに初期値NULLを代入し、RAM202に記憶する。
ステップS503において、情報処理装置101は、ステップS501にて取得したクライアントで記入不備チェックを行う記入不備チェックレコードリストから、「項目ID」=iの記入不備チェックレコードを取得する。
ステップS504において、情報処理装置101は、ステップS503にて取得した記入不備チェックレコードの「チェック種別」の値を判定し、「必須」「丸囲み」の場合はステップS505へ、「範囲」の場合はステップS510へ、「グループ」の場合はステップS516へ進む。
ステップS504にて「必須」「丸囲み」と判定された場合、ステップS505において、情報処理装置101は、ステップS503にて取得した記入不備チェックレコードの(起点X座標,起点Y座標)と(終点X座標,終点Y座標)の2点を対角とする矩形をチェック領域として、撮影画像上のチェック領域内において文字または丸囲みの有無を判定する。文字・丸印が有る場合、ステップS506に進み、文字・丸印が無い場合、ステップS507に進む。なお、この判定には、OMR(マーク認識)やOCR(文字認識)の技術を用いるが、これらの技術は既知であるため、ここでの説明は省略する。
なお、本実施形態のステップS505では丸印の存在有無を判定しているが、丸印に限定するものではなく、レ点やその他の図形の判定であってもよい。また、記入不備チェックテーブル(クライアント)1510に「桁数」カラムを設け、記入された文字が許可された桁数であれば「OK」、許可されていない桁数であれば「NG」と判定してもよい。また、記入不備チェックテーブル(クライアント)1510に「文字属性」カラムを設け、記入された文字の属性、例えば「数字」「ひらがな」「カタカナ」「英数字」などによって、OK・NGの判定をしてもよい。すなわち、ステップS505は、ダウンロードされた帳票フォーム定義情報を用いて、帳票に記入された内容が適切か否かを判定する処理の一例を示すステップである。
ステップS506において、情報処理装置101は、result[i]に文字列「OK」を代入する。
ステップS507において、情報処理装置101は、result[i]に文字列「NG」を代入する。
ステップS508において、情報処理装置101は、後続の不備チェックを継続するか否かを判定する。具体的には、ステップS503にて取得した記入不備チェックレコードの「不備継続」カラムの値が「する」の場合は、引き続き不備チェックを継続するとしてステップS523に進み、「不備継続」カラムの値が「しない」の場合は、後続の不備チェックを継続しない(=中断する)として、ステップS509にてサーバ102に不備チェックキャンセルのメッセージを送信し、ステップS525に進む。
すなわち、「不備継続」カラムは、情報処理装置により行われた記入不備チェックにおいて記入不備があると判定された場合、サーバにおいて行われる記入不備チェックの停止を要求するか否かのフラグの一例である。また、すなわち、「不備継続」カラムは、情報処理装置により行われた帳票への記入内容のチェックにおいて記入不備があると判定された場合、サーバにおいて行われる帳票への記入内容のチェックの停止を要求するか否かのフラグの一例である。
すなわち、ステップS509は、情報処理装置において行われた記入不備チェックにおいて記入不備があると判定された場合、サーバにおいて行われる記入不備チェックの停止をサーバに要求する処理の一例を示すステップである。また、すなわち、ステップS509は、情報処理装置において行われた帳票への記入内容のチェックにおいて記入不備があると判定された場合、サーバにおいて行われる帳票への記入内容のチェックの停止をサーバに要求する処理の一例を示すステップである。
ステップS504にて「範囲」と判定された場合、ステップS510において、情報処理装置101は、ステップS503にて取得した記入不備チェックレコードの(起点X座標,起点Y座標)と(終点X座標,終点Y座標)の2点を対角とする矩形をチェック領域として、撮影画像上のチェック領域内において文字の解析を行い、解析された文字列の値を取得する。なお、この処理には、OCR(文字認識)の技術を用いるが、この技術は既知であるため、ここでの説明は省略する。
ステップS511において、情報処理装置101は、ステップS510にて取得した値が、ステップS503にて取得した記入不備チェックレコードの「範囲」内にあるか否かを判定し、範囲内であればステップS512に進み、範囲外であればステップS513に進む。具体的には、記入不備チェックテーブル(クライアント)1510において、フォームID=1000、項目ID=5の記入不備チェックレコード(項目名:生年月日)の場合、「生年月日」欄に記入された文字から導出された年齢が「20歳以上」であれば範囲内、「20歳以上」でなければ範囲外であると判定する。なお、本実施形態のステップS505、ステップS511ではOMR・OCR等による解析で、記入された内容を認識できなかった場合、「NG」と判定するとしてもよい。また、result[i]の値は、「OK」「NG」の2つに限定するものではなく、「不明瞭」「認識不可」「矛盾」などの値を持つとしてもよい。
ステップS512において、情報処理装置101は、result[i]に文字列「OK」を代入する。
ステップS513において、情報処理装置101は、result[i]に文字列「NG」を代入する。
ステップS514において、情報処理装置101は、後続の不備チェックを継続して行うか否かを判定する。具体的には、ステップS503にて取得した記入不備チェックレコードの「不備継続」カラムの値が「する」の場合は、引き続き不備チェックを継続するとしてステップS523に進み、「不備継続」カラムの値が「しない」の場合は、後続の不備チェックを継続しない(=中断する)として、ステップS515にてサーバ102に不備チェックキャンセルのメッセージを送信し、ステップS525に進む。
すなわち、ステップS515は、情報処理装置により行われた記入不備チェックにおいて記入不備があると判定された場合、サーバにより行われる記入不備チェックの停止をサーバ102に要求する処理の一例を示すステップである。また、すなわち、ステップS515は、情報処理装置において行われた帳票への記入内容のチェックにおいて記入不備があると判定された場合、サーバにおいて行われる帳票への記入内容のチェックの停止をサーバに要求する処理の一例を示すステップである。
ステップS504にて「グループ」と判定された場合、この項目は択一項目であると捉え、ステップS516において、情報処理装置101は、ステップS503にて取得した記入不備チェックレコードの「グループ要素項目ID」の値をNとして、result[N]の値を取得する。具体的には、記入不備チェックテーブル(クライアント)1510において、フォームID=1000,項目ID=11の記入不備チェックレコード(項目名:職種グループ)の場合、このレコードの「グループ要素項目ID」の値は7,8,9,10であるため、項目ID=7,8,9,10のチェック結果であるresult[7,8,9,10]の値(OK,NG,NG,NG)を取得する。
ステップS517において、情報処理装置101は、ステップS516にて取得したresultのうち、OKの数をカウントする。OKの数が1の場合、このグループ要素項目において正しく択一されていると捉えてステップS518に進み、OKの数が1以外の場合、このグループ要素項目で正しく択一されていないと捉えてステップS520に進む。この実施形態において、result[7,8,9,10]の値は、(OK,NG,NG,NG)であるため、OKの数は1となり、正しく択一されていると捉える。なお、実施形態においては、OKの数が1であれば「OK」としたが、記入不備チェックテーブル(クライアント)1510に「上限値」や「チェック数」カラムを設け、OKの数が上限値を超えた場合「NG」、OKの数が「チェック数」以外の場合「NG」と判定する等としてもよい。
ステップS518において、情報処理装置101は、このグループ要素項目において正しく択一されていると捉えて、result[i]に文字列「OK」を代入する。
ステップS519において、情報処理装置101は、このグループ要素項目において択一された項目IDに紐付かない「項目ID」をチェック不要な「項目ID」としてサーバ102へ送信する。すなわち、ステップS519は、サーバ102に認識領域を示す識別情報を送信し、サーバ102において行われる記入不備チェックの当該識別情報に対応する認識領域の記入不備チェックのスキップを要求する処理の一例を示すステップである。また、すなわち、ステップS519は、サーバ102に認識領域を示す識別情報を送信し、サーバ102において行われる帳票への記入内容のチェックの当該識別情報に対応する認識領域の帳票への記入内容のチェックのスキップを要求する処理の一例を示すステップである。
具体的には、チェック不要な「項目ID」は、次のようにして導出する。記入不備チェックテーブル(クライアント)1510において、フォームID=1000,項目ID=11(項目名:職種グループ)のレコードを例にすると、このレコードのグループ要素項目ID=「7,8,9,10」であり、項目ID「7,8,9,10」のresultの値はそれぞれ「OK,NG,NG,NG」である。「親項目ID」の値がresult=NGの「項目ID」のみで構成されるレコードがチェック不要な項目となる。つまり、「親項目ID」が「8,9,10」のみで構成されるレコード(項目ID=「17,18,19,20,21,22,24,25,27」)がチェック不要な項目IDとなる。
言い換えると,択一されている項目ID=7に紐づく項目はチェックが必要であり、択一されていない項目ID=8,9,10に紐づく項目はチェックが不要である。更に、図8の情報処理装置101において撮影された記入済帳票の撮影画像を用いて、具体的に説明すると、グループ要素項目である「有職者,主婦,学生,年金」の職種グループのうち、項目「有職者(7)」が択一されている場合、項目「有職者(7)」に紐づく項目「勤務先名(12),勤務先TEL(13),勤務先住所(14),所属部課(15),税込年収(16)」についてはチェックが必要となり、択一されていない項目「主婦(8),学生(9),年金(10)」に紐づく項目「世帯主親権者(17),税込年収(18),国民年金(19),厚生年金(20),共済年金(21),他年金(22),年金以外有(24),年金以外無(25),税込年収(27)」についてはチェックが不要となる。
ステップS517にて、OKの数が1以外の場合、ステップS520において、情報処理装置101は、このグループ要素項目において正しく択一されていないと捉えて、result[i]に文字列「NG」を代入する。
ステップS521において、情報処理装置101は、後続の記入不備チェックを継続するか否かを判定する。具体的には、ステップS503にて取得した記入不備チェックレコードの「不備継続」カラムの値が「する」の場合は、引き続き不備チェックを継続するとしてステップS523に進み、「不備継続」カラムの値が「しない」の場合は、後続の不備チェックを継続しない(=中断する)として、ステップS522にてサーバ102に不備チェックキャンセルのメッセージを送信し、ステップS525に進む。
すなわち、ステップS522は、情報処理装置により行われた記入不備チェックにおいて記入不備があると判定された場合、サーバにより行われる記入不備チェックの停止をサーバ102に要求する処理の一例を示すステップである。また、すなわち、ステップS522は、情報処理装置において行われた帳票への記入内容のチェックにおいて記入不備があると判定された場合、サーバにおいて行われる帳票への記入内容のチェックの停止をサーバに要求する処理の一例を示すステップである。
ステップS523において、情報処理装置101は、変数iをインクリメントする。
ステップS524において、情報処理装置101は、クライアントで記入不備チェックを行う記入不備チェックレコードのうち、項目ID=iのレコードが存在するか否かを判定し、レコードが存在する場合はステップS503に戻り、レコードが存在しない場合はステップS525に進む。
ステップS525において、情報処理装置101は、記入不備チェックの結果である配列変数resultの値で記入不備チェックテーブル(クライアント)1510のresultカラムを更新する(図15の525)。具体的には、result[i]の値がNULLでない場合、記入不備チェックテーブル(クライアント)1510を「フォームID」=ステップS408にて特定したフォームID、「項目ID」=iの検索条件でヒットしたレコードのresultカラムの値をresult[i]の値で更新し、図5の記入不備チェック(クライアント)処理を終了する。
これにより、情報処理装置101においてチェックしたチェック結果を記入不備チェックテーブル(クライアント)1510に反映することができる。本実施形態においては、記入不備チェックの結果を配列変数resultに設定し、配列変数resultの値で記入不備チェックテーブル(クライアント)1510のresultカラムを更新するとしたが、これに限定するものではなく、配列変数resultを用いず、記入不備チェックテーブル(クライアント)1510のresultカラムをチェック結果の値で直接更新してもよい。
以上で、図5の情報処理装置101において、記入不備チェックを行う手順の一例を示すフローチャートの説明を終了する。
図4の説明に戻る。
ステップS412において、サーバ102は、情報処理装置101から送信された撮影画像と特定したフォームIDを受信する。すなわち、ステップS412は、送信された電子データを受信する処理の一例を示すステップである。
なお、この実施形態においては、ステップS408にて撮影画像のフォームIDを特定し、ステップS409にてサーバ102に撮影画像と特定したフォームIDを送信するとしたが、この手順に限定するものではなく、ステップS409にてサーバ102に撮影画像のみを送信し、サーバ102において撮影画像のフォームIDを特定するとしてもよい。
ステップS413において、サーバ102は、図6の記入不備チェック(サーバ)処理を実施する。すなわち、ステップS413は、サーバにおいて、受信した電子データの帳票フォーム識別情報に対応づけられて記憶されている認識領域と認識条件を用いて、記入不備チェックを行う処理の一例を示すステップである。また、すなわち、ステップS413は、受信した電子データの帳票フォーム識別情報に対応づけられて記憶されている認識領域と認識条件を用いて、電子データ受信手段により受信した電子データに含まれる、認識領域に記入された内容が、認識条件に適合しているか否かをチェックする処理の一例を示すステップである。以上により、記入不備チェックを情報処理装置とサーバとに分けて処理することで、記入不備チェックを効率化することができる。また、記入不備チェック処理をクライアントとサーバで行うことにより、システム負荷を分散できるため、記入不備チェック処理の応答に時間を短縮することができる。
なお、この記入不備チェック(サーバ)処理の実施中に、サーバ102は、情報処理装置101から送信された、不備チェックキャンセルのメッセージ(ステップS509,ステップS515,ステップS522)、または、チェック不要な項目ID(ステップS519)を受信する場合がある。
ここで、図6について説明しておく。図6は、サーバ102において、記入不備チェックを行う手順の一例を示すフローチャートである。
ステップS601において、サーバ102は、「フォームID」=ステップS412にて受信したフォームID、「C/S区分」=Sを検索条件として、記入不備チェックテーブル(サーバ)1520を検索し、サーバで記入不備チェックを行う記入不備チェックレコードのリストを取得する。すなわち、ステップS601は、区分に従って、クライアントとサーバのどちらで認識領域の記入不備チェックを行うかを決定する処理の一例を示すステップである。また、すなわち、ステップS601は、区分に従って、サーバで帳票への記入内容のチェックを行う認識領域に対して、記入内容のチェックを行う処理の一例を示すステップである。
ステップS602において、サーバ102は、変数iに初期値1を代入し、RAM202に記憶する。また、記入不備チェックの結果を代入する配列変数resultに初期値NULLを代入し、RAM202に記憶する。
ステップS603において、サーバ102は、情報処理装置101から不備チェックキャンセルのメッセージを受信したか否かを判定する。受信した場合はステップS623に進み、受信していない場合はステップS604に進む。
ステップS604において、サーバ102は、ステップS601にて取得したクライアントで記入不備チェックを行う記入不備チェックレコードリストから、「項目ID」=iの記入不備チェックレコードを取得する。
ステップS605において、サーバ102は、情報処理装置101からチェック不要な項目IDを受信した場合、「項目ID」=iがチェック不要な項目IDに含まれているか否かを判定する。含まれている場合はステップS621に進み、含まれていない場合はステップS606に進む。具体的には、図5のステップS519で挙げた例で説明すると、チェック不要な項目ID=「17,18,19,20,21,22,24,25,27」であり、サーバ102はこの値を受信しているため、現在チェック対象の項目ID=「17」である場合、チェック不要な項目IDに含まれるため、チェック処理は不要と捉えて、ステップS621に進む。一方、現在チェック対象の項目ID=「12」である場合、チェック不要な項目IDに含まれないため、チェック処理は必要と捉えて、ステップS606に進む。
ステップS606において、サーバ102は、ステップS604にて取得した記入不備チェックレコードの「チェック種別」の値を判定し、「必須」「丸囲み」の場合はステップS607へ、「範囲」の場合はステップS611へ、「グループ」の場合はステップS616へ進む。
ステップS606にて「必須」「丸囲み」と判定された場合、ステップS607において、サーバ102は、ステップS604にて取得した記入不備チェックレコードの(起点X座標,起点Y座標)と(終点X座標,終点Y座標)の2点を対角とする矩形をチェック領域として、撮影画像上のチェック領域内において文字または丸囲みの有無を判定する。文字・丸印が有る場合、ステップS608に進み、文字・丸印が無い場合、ステップS609に進む。なお、ステップS607の具体的な判定処理については、ステップS505と同様であるため説明を省略する。
ステップS608において、サーバ102は、result[i]に文字列「OK」を代入する。
ステップS609において、サーバ102は、result[i]に文字列「NG」を代入する。
ステップS610において、サーバ102は、後続の不備チェックを継続するか否かを判定する。具体的には、ステップS604にて取得した記入不備チェックレコードの「不備継続」カラムの値が「する」の場合は、引き続き不備チェックを継続するとしてステップS621に進み、「不備継続」カラムの値が「しない」の場合は、後続の不備チェックを継続しない(=中断する)として、ステップS623に進む。
ステップS606にて「範囲」と判定された場合、ステップS611において、サーバ102は、ステップS604にて取得した記入不備チェックレコードの(起点X座標,起点Y座標)と(終点X座標,終点Y座標)の2点を対角とする矩形をチェック領域として、撮影画像上のチェック領域内において文字の解析を行い、解析された文字列の値を取得する。なお、この処理には、OCR(文字認識)の技術を用いるが、この技術は既知であるため、ここでの説明は省略する。
ステップS612において、サーバ102は、ステップS611にて取得した値が、ステップS604にて取得した記入不備チェックレコードの「範囲」内にあるか否かを判定し、範囲内であればステップS612に進み、範囲外であればステップS613に進む。具体的には、ステップS511と同様であるため説明を省略する。
ステップS613において、サーバ102は、result[i]に文字列「OK」を代入する。
ステップS614において、サーバ102は、result[i]に文字列「NG」を代入する。
ステップS615において、サーバ102は、後続の不備チェックを継続して行うか否かを判定する。具体的には、ステップS604にて取得した記入不備チェックレコードの「不備継続」カラムの値が「する」の場合は、引き続き不備チェックを継続するとしてステップS621に進み、「不備継続」カラムの値が「しない」の場合は、後続の不備チェックを継続しない(=中断する)として、ステップS623に進む。
ステップS606にて「グループ」と判定された場合、この項目は択一項目であると捉え、ステップS616において、サーバ102は、ステップS604にて取得した記入不備チェックレコードの「グループ要素項目ID」の値をNとして、result[N]の値を取得する。具体的には、ステップS516と同様であるため説明を省略する。
ステップS617において、サーバ102は、ステップS616にて取得したresultのうち、OKの数をカウントする。OKの数が1の場合、このグループ要素項目において正しく択一されていると捉えてステップS618に進み、OKの数が1以外の場合、このグループ要素項目で正しく択一されていないと捉えてステップS620に進む。具体的には、ステップS517と同様であるため説明を省略する。
ステップS618において、サーバ102は、このグループ要素項目において正しく択一されていると捉えて、result[i]に文字列「OK」を代入する。
ステップS617にて、OKの数が1以外の場合、ステップS619において、サーバ102は、このグループ要素項目において正しく択一されていないと捉えて、result[i]に文字列「NG」を代入する。
ステップS620において、サーバ102は、後続の記入不備チェックを継続するか否かを判定する。具体的には、ステップS604にて取得した記入不備チェックレコードの「不備継続」カラムの値が「する」の場合は、引き続き不備チェックを継続するとしてステップS621に進み、「不備継続」カラムの値が「しない」の場合は、後続の不備チェックを継続しない(=中断する)として、ステップS623に進む。
ステップS621において、サーバ102は、変数iをインクリメントする。
ステップS622において、サーバ102は、クライアントで記入不備チェックを行う記入不備チェックレコードのうち、項目ID=iのレコードが存在するか否かを判定し、レコードが存在する場合はステップS603に戻り、レコードが存在しない場合は図6の記入不備チェック(サーバ)処理を終了する。
ステップS623において、サーバ102は、変数iをインクリメントする。
ステップS624において、サーバ102は、クライアントで記入不備チェックを行う記入不備チェックレコードのうち、項目ID=iのレコードが存在するか否かを判定し、レコードが存在する場合はステップS625に進み、レコードが存在しない場合は図6の記入不備チェック(サーバ)処理を終了する。
ステップS625において、サーバ102は、result[i]に文字列「中断」を代入する。
以上で、図6のサーバ102において、記入不備チェックを行う手順の一例を示すフローチャートの説明を終了する。
図4の説明に戻る。
ステップS414において、サーバ102は、図6の記入不備チェック(サーバ)処理の結果が代入された配列変数resultを情報処理装置101に送信する。すなわち、ステップS414は、サーバにおいて行われた記入不備チェックの結果を送信する処理の一例を示すステップである。また、すなわち、ステップS414は、サーバにおいて行われた帳票への記入内容のチェック結果を送信する処理の一例を示すステップである。
ステップS415において、情報処理装置101は、サーバ102から送信された配列変数resultを受信する。すなわち、ステップS415は、サーバで行われた記入不備チェックの結果を受信する処理の一例を示すステップである。また、すなわち、ステップS415は、サーバで行われた帳票への記入内容のチェック結果を受信する処理の一例を示すステップである。
ステップS416において、情報処理装置101は、受信した配列変数resultの値で記入不備チェックテーブル(クライアント)1510のresultカラムを更新する(図15の416)。具体的には、result[i]の値がNULLでない場合、記入不備チェックテーブル(クライアント)1510を「フォームID」=ステップS408にて特定したフォームID、「項目ID」=iの検索条件でヒットしたレコードのresultカラムの値をresult[i]の値で更新する。これにより、サーバ102にてチェックしたチェック結果を記入不備チェックテーブル(クライアント)1510に反映することができる。本実施形態においては記入不備チェックテーブル(クライアント)1510と記入不備チェックテーブル(サーバ)1520の両方にresultカラムが存在し、resultカラムに値が設定されるのは、記入不備チェックテーブル(クライアント)1510のみとしたが、これに限定するものではなく、ステップS413の記入不備チェック(サーバ)処理において、記入不備チェックテーブル(サーバ)1520のresultカラムに値を設定し、ステップS414において、その値を情報処理装置101に送信するとしてもよい。
ステップS418において、情報処理装置101は、記入不備チェック(クライアント)処理の結果が記入不備チェック結果画面に反映されているか判定する。具体的には、後述する図7の結果表示処理を行ったか否かを判定する結果表示(クライアント)フラグをRAM202に記憶しておき、そのフラグの値が「未表示」であればステップS419に進み、「表示済」であればステップS420に進む。
ステップS419において、情報処理装置101は、図7の結果表示(クライアント)処理を実行する。すなわち、ステップS419は、記入不備チェック(クライアント)の結果を出力する処理の一例を示すステップである。また、すなわち、ステップS419は、帳票への記入内容のチェック結果を出力する処理の一例を示すステップである。これにより、サーバからの記入不備チェック結果を受信するまで、クライアントで行った記入不備チェック結果を表示することができるため、不備チェックの結果が表示されるまでに時間が掛かってしまうことにより、利用者は待ち状態になってしまうという課題を解決することができる。
ここで、図7について説明しておく。図7は、情報処理装置101において、記入不備チェック結果を表示する手順の一例を示すフローチャートであり、ステップS419の結果表示(クライアント)処理とステップS421の結果表示(サーバ)処理のどちらも、図7のフローチャートの手順で処理を行う。なお、ステップS419の結果表示(クライアント)処理は、ステップS411にて行った記入不備チェック(クライアント)の結果を表示し、ステップS421の結果表示(サーバ)処理は、ステップS413にて行った記入不備チェック(サーバ)の結果を表示する。
ステップS701において、情報処理装置101は、記入不備チェックテーブル(クライアント)1510から表示する記入不備チェックレコードリストを取得する。具体的には、「フォームID」=ステップS408にて特定したフォームID、「C/S区分」=結果表示(クライアント)処理の場合はC、結果表示(サーバ)処理の場合はS、を検索条件として、記入不備チェックテーブル(クライアント)1510を検索し、ヒットした記入不備チェックレコードリストをRAM202に記憶する。
ステップS702において、情報処理装置101は、ステップS410で表示した記入不備チェック実施中を意味する領域枠を削除する。具体的には、ステップS701にて取得した記入不備チェックレコードリストの記入不備チェックレコードが持つ(起点X座標,起点Y座標)と(終点X座標,終点Y座標)の2点を対角とする矩形のチェック領域を囲む点線枠を削除する。これにより、ステップS419の結果表示(クライアント)処理から呼ばれた場合には、クライアントにて記入不備チェックを行った項目の領域枠が削除され、同様にステップS421の結果表示(サーバ)処理から呼ばれた場合は、サーバにて記入不備チェックを行った項目の領域枠が削除される。
なお、図10の記入不備チェック実施中(クライアント不備チェック完了、サーバ不備チェック実施中)画面は、ステップS419の結果表示(クライアント)が完了し、ステップS421の結果表示(サーバ)が完了していない時点での画面の例である。これにより、クライアントとサーバの記入不備チェックのうち、先に処理が完了した方からチェック結果が表示されるため、利用者の待ち時間を短縮することができる。
ステップS703において、情報処理装置101は、ステップS701にて取得した記入不備チェックレコードリストにresult=NGのレコードの有無を判定し、無い場合はステップS704に進み、有る場合はステップS707に進む。なお、「チェック種別」=グループの記入不備チェックレコード(例えば、「項目名」=職種グループ)の「グループ要素項目ID」で指定されている「項目ID」(例えば、「項目ID」=7,8,9,10)のレコードについては、択一項目であり、選択されていない項目については未記入を示すNGでも問題ではないため、この「項目ID」のNGは無視する。
ステップS704において、情報処理装置101は、クライアントまたはサーバで行った記入不備チェックの結果表示が済んだことをフラグに設定する。具体的には、ステップS419の結果表示(クライアント)処理の場合は、RAM202に記憶されている結果表示(クライアント)フラグ=表示済に設定し、ステップS421の結果表示(サーバ)処理の場合は、RAM202に記憶されている結果表示(サーバ)フラグ=表示済に設定する。
ステップS705において、情報処理装置101は、RAM202に記憶されている結果表示(クライアント)フラグと結果表示(サーバ)フラグの両方が表示済か否か判定し、両方が表示済の場合はステップS706に進み、そうでない場合は図7の結果表示処理を終了する。
ステップS706において、情報処理装置101は、全ての記入不備チェックが終了したと捉えて、「記入不備はありませんでした。」のメッセージが記された記入不備チェック結果画面(不備なし)1100(図11)を表示し、図7の結果表示処理を終了する。
ステップS703にてresult=NGのレコードが存在すると判定した場合、ステップS707において、情報処理装置101は、result=NGのチェック領域座標((起点X座標,起点Y座標)と(終点X座標,終点Y座標))を取得する。なお、ステップS703でも説明したとおり、「チェック種別」=グループの記入不備チェックレコードの「グループ要素項目ID」で指定されている「項目ID」のレコード(例えば、「項目ID」=7,8,9,10のレコード)については、result=NGであっても無視する。
ステップS708において、情報処理装置101は、ステップS707にて取得したresult=NGのチェック領域座標2点を対角とする矩形を赤く塗りつぶし、撮影画像上に重畳させる(図12の1201)。なお、この実施形態においては、不備があった箇所を赤く塗りつぶすとしたが、これに限定するものではなく、不備があることをユーザが認識できる方法であれば、他の色で塗りつぶす、点滅させる、拡大させる、不備を示すマークを表示する、音声により記入不備箇所を読み上げるなど、他の方法であってもよい。
ステップS709において、情報処理装置101は、ステップS701にて取得した記入不備チェックレコードリストにresult=中断のレコードの有無を判定し、有る場合はステップS713に進み、無い場合はステップS710に進む。
ステップS710は、ステップS704と同じ処理であるため、説明を省略する。また、ステップS711についても、ステップS705と同じ処理であるため、説明を省略する。
ステップS712において、情報処理装置101は、全ての記入不備チェックが終了したと捉えて、「記入不備があります。」のメッセージが記された記入不備チェック結果画面(不備あり)1200(図12)を表示し、図7の結果表示処理を終了する。
ステップS709にてresult=中断のレコードが有ると判定した場合、ステップS713において、情報処理装置101は、result=中断のチェック領域座標((起点X座標,起点Y座標)と(終点X座標,終点Y座標))を取得する。
ステップS714において、情報処理装置101は、ステップS713にて取得したresult=中断のチェック領域座標2点を対角とする矩形を青く塗りつぶし、撮影画像上に重畳させる(図13の1301)。なお、この実施形態においては、チェックを中断した箇所を青く塗りつぶすとしたが、これに限定するものではなく、中断したことをユーザが認識できる方法であれば、他の色で塗りつぶす、点滅させる、拡大させる、チェック中断のマークを表示する、音声によりチェック中断箇所を読み上げるなど、他の方法であってもよい。
ステップS715は、ステップS704と同じ処理であるため、説明を省略する。また、ステップS716ついても、ステップS705と同じ処理であるため、説明を省略する。
ステップS717において、情報処理装置101は、全ての記入不備チェックが終了したと捉えて、「記入不備により中断しました。」のメッセージが記された記入不備チェック結果画面(チェック中断)1300(図13)を表示し、図7の結果表示処理を終了する。
以上で、図7の情報処理装置101において、記入不備チェック結果を表示する手順の説明を終了する。
図4の説明に戻る。
ステップS420において、情報処理装置101は、記入不備チェック(サーバ)処理の結果を受信済、かつ、その結果が記入不備チェック結果画面に反映されているか判定する。具体的には、図7の結果表示(サーバ)処理を行ったか否かを判定する結果表示(サーバ)フラグの値が「未表示」であればステップS421に進み、「表示済」であればステップS422に進む。
ステップS421において、情報処理装置101は、図7の結果表示(サーバ)処理を実行する。すなわち、ステップS421は、記入不備チェック(サーバ)の結果を出力する処理の一例を示すステップである。また、すなわち、ステップS421は、帳票への記入内容のチェック結果を出力する処理の一例を示すステップである。この結果表示(サーバ)処理は、ステップS419にて説明した結果表示(クライアント)処理と同じフローであるため、説明を省略する。
ステップS422において、情報処理装置101は、ステップS419の結果表示(クライアント)処理とステップS420の結果表示(サーバ)処理の両方が完了したか否かを判定し、両方が完了した場合は図4の記入不備チェック処理を終了し、完了していない場合はステップS418に戻り、両方の結果表示処理が完了するまで、ステップS417〜ステップS422のループを繰り返す。
すなわち、ステップS417〜ステップS422は、クライアントにおいて行われた記入不備チェックの結果と、受信された記入不備チェックの結果とを用いて出力する処理の一例を示すステップである。また、すなわち、ステップS417〜ステップS422は、クライアントにおいて行われた帳票への記入内容のチェック結果と、受信された帳票への記入内容のチェック結果とを用いて出力する処理の一例を示すステップである。
すなわち、ステップS417〜ステップS422は、クライアントにおいて行われた記入不備チェックの結果と、サーバにおいて行われた記入不備チェックの結果のうち、チェックが完了した結果から順次出力する処理の一例を示すステップである。また、すなわち、ステップS417〜ステップS422は、クライアントにおいて行われた帳票への記入内容のチェック結果と、サーバにおいて行われた帳票への記入内容のチェック結果のうち、チェックが完了した結果から順次出力する処理の一例を示すステップである。
なお、ステップS411の記入不備チェック(クライアント)処理(図5)とステップS413の記入不備チェック(サーバ)処理(図6)は、同期せずに非同期で実施することを可能とする。これによりクライアントでのチェック結果を先に表示し、サーバのチェック結果が受信でき次第サーバのチェック結果を表示することが可能になる。これにより、サーバからの記入不備チェック結果を受信するまで、クライアントで行った記入不備チェック結果を表示することができるため、不備チェックの結果が表示されるまでに時間が掛かってしまうことにより、利用者は待ち状態になってしまうという課題を解決することができる。
以上で、図4の記入不備チェックを行い、チェック結果を表示する手順の説明を終了する。
以上により、記入不備チェックを情報処理装置とサーバとに分けて処理することで、記入不備チェックを効率化することができる。つまり、クライアントとサーバとにおいて記入不備チェックを並行して行うことにより、情報処理装置のみで記入不備チェックを行う場合、サーバのみで記入不備チェックを行う場合と比べて、効率良く記入不備チェックを行うことができる。
また、記入不備チェック処理をクライアントとサーバで行うことにより、システム負荷を分散できるため、記入不備チェック処理の応答に時間を短縮することができる。また、サーバからの記入不備チェック結果を受信するまで、クライアントで行った記入不備チェック結果を表示することができるため、不備チェックの結果が表示されるまでに時間が掛かってしまうことにより、利用者は待ち状態になってしまうという課題を解決することができる。
以上で、第1の実施形態の説明を終了する。
〔第2の実施形態〕
第1の実施形態は、記入不備チェックを情報処理装置とサーバとに分けて処理することで、記入不備チェックを効率化する仕組みであり、第2の実施形態は、第1の実施形態の仕組みに加え、クライアントとサーバとのどちらで記入不備チェックを行うかの区分を柔軟に変更する仕組みである。
図16〜図22を用いて、第2の実施形態について説明する。
図16は、第2の実施形態に係る帳票システム100において、記入不備チェックを行い、チェック結果を表示する手順の一例を示すフローチャートである。図16は、第1の実施形態における図4のフローチャートを第2の実施形態に置き換えたものであり、ステップS1601〜ステップS1609が追加されている。第1の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
ステップS1601において、サーバ102は、記入不備チェック情報メンテナンス(管理者)処理(図17)を行う。なお、ステップS1601は、この図16の記入不備チェック処理内のみで行うステップではなく、管理者が事前に記入不備チェック情報をメンテナンスしておく処理でもある。ここで、図17について説明しておく。
図17は、第2の実施形態に係る帳票システム100において、記入不備チェック情報をメンテナンスする手順の一例を示すフローチャートである。また、図20は、第2の実施形態に係る情報処理装置101において、記入不備チェック情報をメンテナンスする画面の一例である。ここでは、記入不備チェック情報に含まれる「C/S区分」のメンテナンスを行う。
ステップS1701において、情報処理装置101は、ユーザから記入不備チェック情報メンテナンスの要求を受け付け、要求したユーザが一般ユーザか管理者かを判定する。管理者の場合はステップS1701に進み、一般ユーザの場合はステップS1708に進む。
ステップS1702において、情報処理装置101は、記入不備チェック情報メンテナンスを行うことができる帳票のリストを表示し、管理者による帳票のフォームIDの選択を受け付ける。
ステップS1703において、情報処理装置101は、選択を受け付けた帳票のフォームIDをサーバ102に送信する。
ステップS1704において、サーバ102は、送信された帳票のフォームIDを受信する。
ステップS1705において、サーバ102は、受信した帳票のフォームIDを用いて、外部メモリ212に記憶されている記入不備チェックテーブル(サーバ)1520(図15)から記入不備チェック情報を取得する。
ステップS1706において、サーバ102は、取得した記入不備チェック情報を送信する。
ステップS1707において、情報処理装置101は、送信された記入不備チェック情報を受信する。
ステップS1708において、情報処理装置101は、撮影された帳票のフォームID(ステップS1602から来た場合)または再チェックを行う帳票のフォームID(ステップS1903から来た場合)を用いて、外部メモリ212に記憶されている記入不備チェックテーブル(クライアント)1510(図15)から記入不備チェック情報を取得する。
ステップS1709において、情報処理装置101は、既に記入不備チェック済か否かを判定する。具体的には、ステップS1708にて取得した記入不備チェックテーブル(クライアント)1510のresultカラムにチェック結果が記録されているか否か等で判定する。既に記入不備チェック済の場合はこれから再チェックを行うと捉えステップS1710に進み、まだ記入不備チェックされていない場合はステップS1711に進む。
ステップS1710において、情報処理装置101は、記入不備チェックの不備箇所を異なるノードで再チェックを行うべく、不備箇所のC/S区分を逆にする(CとSとを入れ替える)。すなわち、ステップS1710は、クライアントまたはサーバにて行われた帳票への記入内容のチェックにおいて記入不備があると判定された場合、当該記入不備があると判定された認識領域の区分を変更して出力するステップである。これにより、不備箇所について、異なるノードで容易に再チェックすることができるため、記入不備チェックの設定方法がわかりにくい、操作が面倒などの理由で、結局ユーザは設定しないという課題を解決することができる。
ステップS1711において、情報処理装置101は、ステップS1707にて受信またはステップS1708にて取得した記入不備チェック情報を用いて、記入不備チェック情報メンテナンス画面2000(図20)を表示する。すなわち、ステップS1711は、クライアントとサーバのどちらで認識領域の記入内容のチェックを行うかを示す区分をメンテナンスする画面を出力する処理の一例を示すステップである。記入不備チェック情報メンテナンス画面2000には、認識領域が点線で囲まれて表示され、クライアントとサーバのどちらで認識領域の記入不備チェックを行うかを示す区分「C/S区分」のCまたはSが記されている。
また、記入不備チェック情報メンテナンス画面2000では、「C/S区分」の切り替えだけでなく、認識領域の追加、認識領域の大きさの変更などを行うことができる。
ステップS1712において、情報処理装置101は、ユーザによる認識領域のタップを受け付ける。タップされた認識領域の「C/S区分」がCの場合はステップS1713に進み、Sの場合はステップS1714に進む。
ステップS1713において、情報処理装置101は、タップされた認識領域の「C/S区分」をSに変更して表示する。
ステップS1714において、情報処理装置101は、タップされた認識領域の「C/S区分」をCに変更して表示する。このように、各認識領域をタップするたびに、タップした認識領域の「C/S区分」がC→S→C→S…と順番に切り替わる。これにより、クライアントとサーバとのどちらで記入不備チェックを行うかの区分を柔軟に変更することができる。
ステップS1715において、情報処理装置101は、ユーザによる保存ボタン2001のタップを判定する。タップされた場合はステップS1716に進み、タップされなかった場合はステップS1712に戻る。
ステップS1716において、情報処理装置101は、現在操作中のユーザが一般ユーザか管理者かを判定する。管理者の場合はステップS1717に進み、一般ユーザの場合はステップS1720に進む。
ステップS1717において、情報処理装置101は、保存する記入不備チェック情報のフォームIDと、変更した記入不備チェック情報をサーバ102に送信する。
ステップS1718において、サーバ102は、送信されたフォームIDと記入不備チェック情報を受信する。
ステップS1719において、サーバ102は、受信したフォームIDと記入不備チェック情報を用いて、外部メモリ212に記憶されている記入不備チェックテーブル(サーバ)1520に記憶する。
ステップS1720において、情報処理装置101は、保存する記入不備チェック情報のフォームIDと、変更した記入不備チェック情報を用いて、外部メモリ212に記憶されている記入不備チェックテーブル(クライアント)1510に記憶する。
以上で、図17の記入不備チェック情報メンテナンス処理の説明を終了する。図16の説明に戻る。
ステップS1602において、情報処理装置101は、記入不備チェック情報メンテナンス(一般ユーザ)処理(図17)を行う。これにより、ユーザは撮影した帳票について、認識領域やC/S区分を確認することができ、必要に応じて、C/S区分を変更することができる。
ステップS1603において、情報処理装置101は、ユーザが撮影した帳票のフォームIDに対応する記入不備チェック情報に、ユーザによって変更されているか否かを判定する。変更がある場合はステップS1604に進み、変更がない場合はステップS409に進む。
具体的には、記入不備チェックテーブル(クライアント)1510の対象となる記入不備チェック情報の更新ユーザを確認し、更新ユーザが「管理者」の場合は変更されていないと判定し、「一般ユーザ」の場合は変更されていると判定する。なお、この実施形態においては、更新ユーザによって判定するとしたが、これに限定するものではなく、記入不備チェックテーブル(クライアント)1510に「更新フラグ」などのカラムを持ち、「一般ユーザ」によって更新された場合は「更新フラグ」を立て、「更新フラグ」を用いて判定してもよい。
ステップS1604において、情報処理装置101は、変更済の記入不備チェック情報を今回使用するか否かの確認メッセージ(不図示)を表示し、ユーザの操作を受け付ける。具体的には、「この帳票の記入不備チェック情報は、この端末で変更済です。変更済の記入不備チェック情報を使用しますか?」などの確認メッセージを表示する。使用する場合はステップS1605に進み、使用しない場合はステップS409に進む。
ステップS1605において、情報処理装置101は、サーバ102においても記入不備チェック処理を並行して行うために、撮影画像とステップS408にて特定したフォームIDと変更済の記入不備チェック情報をサーバに送信する。すなわち、S1605は、情報処理装置とサーバが記入不備チェックを並行して行うことで、記入不備チェックに係る処理を効率化すべく、電子データをサーバに送信する処理の一例を示すステップである。また、すなわち、ステップS1605は、サーバで帳票への記入内容のチェックを行わせるべく、サーバに前記電子データを送信する処理の一例を示すステップである。
ステップS1606において、サーバ102は、情報処理装置101から送信された撮影画像と特定したフォームIDと変更済の記入不備チェック情報を受信する。すなわち、ステップS1606は、送信された電子データを受信する処理の一例を示すステップである。
ステップS1607において、サーバ102は、図18の記入不備チェック(サーバ)処理を実施する。すなわち、ステップS1607は、サーバにおいて、受信した電子データの帳票フォーム識別情報に対応づけられて記憶されている認識領域と認識条件を用いて、記入不備チェックを行う処理の一例を示すステップである。また、すなわち、ステップS1607は、受信した電子データの帳票フォーム識別情報に対応づけられて記憶されている認識領域と認識条件を用いて、電子データ受信手段により受信した電子データに含まれる、認識領域に記入された内容が、認識条件に適合しているか否かをチェックする処理の一例を示すステップである。以上により、記入不備チェックを情報処理装置とサーバとに分けて処理することで、記入不備チェックを効率化することができる。また、記入不備チェック処理をクライアントとサーバで行うことにより、システム負荷を分散できるため、記入不備チェック処理の応答に時間を短縮することができる。
ここで、図18について説明しておく。図18は、第2の実施形態に係るサーバ102において、記入不備チェックを行う手順の一例を示すフローチャートである。図18は、第1の実施形態における図6のフローチャートを第2の実施形態に置き換えたものであり、ステップS1801〜ステップS1802が追加されている。第1の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
ステップS1801において、サーバ102は、情報処理装置101から記入不備チェック情報を受信したか否かの判定を行う。受信した場合はステップS1802に進み、受信していない場合はステップS601に進む。
ステップS1802において、サーバ102は、情報処理装置101から記入不備チェック情報を受信したため、受信した記入不備チェック情報を用いて記入不備チェックを行うべく、受信した記入不備チェック情報をC/S区分=「S」で検索し、記入不備チェックレコードリストを取得する。すなわち、ステップS1802は、区分に従って、クライアントとサーバのどちらで認識領域の記入不備チェックを行うかを決定する処理の一例を示すステップである。また、すなわち、ステップS1802は、区分に従って、サーバで帳票への記入内容のチェックを行う認識領域に対して、記入内容のチェックを行う処理の一例を示すステップである。
以上で、図18の記入不備チェック処理の説明を終了する。図16の説明に戻る。
ステップS1608において、情報処理装置101は、図19の結果表示(クライアント)処理を実行する。すなわち、ステップS1608は、記入不備チェックの結果を出力する処理の一例を示すステップである。これにより、サーバからの記入不備チェック結果を受信するまで、クライアントで行った記入不備チェック結果を表示することができるため、不備チェックの結果が表示されるまでに時間が掛かってしまうことにより、利用者は待ち状態になってしまうという課題を解決することができる。
ここで、図19について説明しておく。図19は、第2の実施形態に係る情報処理装置101において、記入不備チェック結果を表示する手順の一例を示すフローチャートであり、ステップS1608の結果表示(クライアント)処理とステップS1609の結果表示(サーバ)処理のどちらも、図19のフローチャートの手順で処理を行う。
なお、ステップS1608の結果表示(クライアント)処理は、ステップS411にて行った記入不備チェック(クライアント)の結果を表示し、ステップS1609の結果表示(サーバ)処理は、ステップS1607にて行った記入不備チェック(サーバ)の結果を表示する。図19は、第1の実施形態における図7のフローチャートを第2の実施形態に置き換えたものであり、ステップS1901〜ステップS1906が追加されている。第1の実施形態のステップと同じ処理については、同じステップ番号を付与し説明を省略する。
ステップS1901において、情報処理装置101は、クライアントとサーバのどちらで行った記入不備チェックの結果表示かを判定する。クライアントの場合はステップS1902に進み、サーバの場合は図19の結果表示処理を終了する。
ステップS1902において、情報処理装置101は、クライアントで行った記入不備チェックの不備箇所をサーバで再チェックするかを確認するメッセージ(図21)を表示し、ユーザの操作を判定する。サーバで再チェックする場合はステップS1902に進み、しない場合は図19の結果表示処理を終了する。
なお、この実施形態においては、クライアントで行った記入不備チェックの不備箇所をサーバで再チェックするとしたが、これに限定するものではなく、サーバで行った記入不備チェックの不備箇所をクライアントで再チェックするケースがあってもよい。そのケースを含める場合は、ステップS1901の判定は行わず、ステップS1902の確認メッセージ(図21)は、「サーバで記入不備を検出しました。記入不備箇所をクライアントでチェックしますか?」のようなメッセージに変更する。
ステップS1903において、情報処理装置101は、記入不備チェック情報メンテナンス(一般ユーザ)処理(図17)を行う。すなわち、ステップS1903は、クライアントまたはサーバにて行われた帳票への記入内容のチェックにおいて記入不備があると判定された場合、区分を変更すべく、区分をメンテナンスする画面を出力するステップである。これにより、ユーザは再チェックを行う帳票について、認識領域やC/S区分を確認することができ、必要に応じて、C/S区分を変更することができる。
ステップS1904において、情報処理装置101は、再チェックする帳票の記入不備チェック情報が変更されているか否かを判定する。変更がある場合はステップS1905に進み、変更がない場合は図19の結果表示処理を終了する。
ステップS1905において、情報処理装置101は、この帳票について次回以降の記入不備チェックでも変更したC/S区分でチェックするかを確認するメッセージ(図22)を表示し、ユーザの操作を判定する。次回以降も使用する場合はステップS1906に進み、しない場合は図16のステップS1605に進む。すなわち、ステップS1905は、メンテナンスした区分を用いて帳票への記入内容のチェックを行った場合、当該チェック以降も継続して、当該メンテナンスした区分を用いて帳票への記入内容のチェックを行うか否かを確認するステップである。
ステップS1906において、情報処理装置101は、変更した記入不備チェック情報を記入不備チェックテーブル(クライアント)1510に記憶し、図16のステップS1605に進む。
すなわち、ステップS1906は、クライアントまたはサーバにて行われた記入不備チェックにおいて記入不備があると判定され、クライアントまたはサーバのうち、記入不備があると判定したノードではないノードを用いて、記入不備があると判定された認識領域の記入内容のチェックを再度行った場合、当該記入不備チェック以降も継続して、当該記入不備があると判定したノードではないノードを用いて、当該記入不備があると判定された認識領域の記入内容のチェックを行う処理の一例を示すステップである。
また、ステップS1905またはステップS1906から遷移したステップS1605は、クライアントまたはサーバにて行われた帳票への記入内容のチェックにおいて記入不備があると判定された場合、クライアントまたはサーバのうち、当該記入不備があると判定したノードではないノードを用いて、記入不備があると判定された認識領域の帳票への記入内容のチェックを再度行う処理の一例を示すステップである。
以上により、不備箇所については、次回も異なるノードで容易にチェックすることができるため、記入不備チェックの設定方法がわかりにくい、操作が面倒などの理由で、結局ユーザは設定しないという課題を解決することができる。
以上で、図19の記入不備チェック結果表示処理の説明を終了する。図16の説明に戻る。
ステップS1609において、情報処理装置101は、図19の結果表示(サーバ)処理を実行する。すなわち、ステップS1609は、記入不備チェックの結果を出力する処理の一例を示すステップである。この結果表示(サーバ)処理は、ステップS1608にて説明した結果表示(クライアント)処理と同じフローであるため、説明を省略する。
以上で、図16の記入不備チェック処理の説明を終了する。
以上で、第2の実施形態の説明を終了する。
以上により、記入不備チェックを情報処理装置とサーバとに分けて処理することで、記入不備チェックを効率化することができる。つまり、クライアントとサーバとにおいて記入不備チェックを並行して行うことにより、情報処理装置のみで記入不備チェックを行う場合、サーバのみで記入不備チェックを行う場合と比べて、効率良く記入不備チェックを行うことができる。
また、記入不備チェック処理をクライアントとサーバで行うことにより、システム負荷を分散できるため、記入不備チェック処理の応答に時間を短縮することができる。また、サーバからの記入不備チェック結果を受信するまで、クライアントで行った記入不備チェック結果を表示することができるため、不備チェックの結果が表示されるまでに時間が掛かってしまうことにより、利用者は待ち状態になってしまうという課題を解決することができる。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ102、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。