(第1実施形態)
(処理情報処理システムの構成)
以下、適宜図面を参照して本発明の第1実施形態について説明する。なお、以下に説明する実施形態は、本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更できる。
図1は、本実施形態に係る処理情報処理システム1のブロック図である。図1に示す処理情報処理システム1は、PC10(本発明の処理装置の一例)、スキャナ50、DB(データベースの略)サーバ51、第1サーバ53、第2サーバ54、ルータ56を備える。PC10は、CPU12(本発明のコンピュータの一例)、メモリ14、バーコードリーダー15、LCD16、入力I/F(インタフェースの略)18、ネットワークI/F20を主に備えている。これらの構成要素は、バス22を介して互いに通信可能とされている。
CPU12は、メモリ14内のスキャナドライバ26(本発明のプログラムの一例)、オペレーティングシステム(以下、「OS」と略す)27に従って処理を実行する。スキャナドライバ26は、スキャナ50のデバイスドライバであり、スキャナ50の作動を制御するプログラムである。また、本実施形態のスキャナドライバ26は、第1処理情報26A及び第2処理情報26Bを有する。CPU12は、後述するように、スキャナドライバ26を実行することで、第1処理情報26Aや第2処理情報26Bに従った処理を実行する。第1処理情報26A及び第2処理情報26Bは、例えば、ワークフローであり、PC10に対して実行させたい処理を予め定義したプログラムなどの情報である。なお、本願における処理情報としては、ワークフローの概念に限定されることなく、コンピュータに対して予め定義した処理を実行させることが可能な様々な情報を採用できる。
メモリ14としては、例えば、RAM、ROM、フラッシュメモリ、ハードディスクなどを採用することができる。メモリ14は、コンピュータが読み取り可能なストレージ媒体であってもよい。ここでいうコンピュータが読み取り可能なストレージ媒体とは、non−transitoryな媒体である。non−transitoryな媒体には、上記の例の他に、CD−ROM、DVD−ROM等の記録媒体も含まれる。また、non−transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータで実行可能な媒体の一種であるが、non−transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。また、後述するスキャナ50のメモリ34についても同様である。
OS27は、スキャナドライバ26に利用される基本的な機能を提供するプログラムである。OS27は、例えば、Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、Android(登録商標)、iOS(登録商標)等のオペレーティングシステムである。なお、以下の説明では、CPU12でスキャナドライバ26等を実行するPC10のことを、単に装置名で記載する場合がある。例えば、「PC10が入力I/F18に対する操作入力を受け付ける」という記載は、「PC10がCPU12でスキャナドライバ26を実行し入力I/F18を制御することで、入力I/F18に対する操作入力を受け付ける」ということを意味する場合がある。
バーコードリーダー15は、バーコードや二次元コードを読み込み可能な読み取り装置である。LCD16は、PC10の各種情報を表示する。入力I/F18は、キーボード,マウス等を含み、ユーザ操作を入力するためのインタフェースである。ネットワークI/F20は、ルータ56を介してスキャナ50等に接続されている。これにより、PC10はスキャナ50等との間で情報の送受信を行うことができる。
スキャナ50は、対象原稿に印刷された画像などを読み取ってスキャンデータを生成する装置であり、ネットワークI/F31、CPU33、メモリ34、読取I/F35、入力I/F36、LCD37等を備えている。これらの構成要素は、バス39を介して互いに通信可能とされている。
PC10のネットワークI/F20は、ルータ56を通じてスキャナ50のネットワークI/F31と有線により通信可能となっている。また、ネットワークI/F20は、ルータ56を通じてDBサーバ51と有線により通信可能となっている。有線としては、例えば、LANケーブルを採用することができる。なお、有線は、LANケーブルに限らず、USBケーブル等でもよい。また、PC10、スキャナ50、DBサーバ51及びルータ56は、無線通信が可能な構成でも良い。無線通信の方式としては、例えば、Wi−Fi(登録商標)やBluetooth(登録商標)の規格を採用できる。また、ネットワークI/F20は、ルータ56及びネットワーク55を通じて第1及び第2サーバ53,54と通信可能となっている。ネットワーク55としては、例えば、WAN(インターネットを含む)を採用できる。なお、DBサーバ51、第1及び第2サーバ53,54の使用方法については、後述する。
スキャナ50のCPU33は、メモリ34内のプログラム41に従って処理を実行する。メモリ34としては、例えば、RAM、ROM、フラッシュメモリ、ハードディスクなどを採用できる。プログラム41は、スキャナ50を統括的に制御するプログラムである。スキャナ50は、例えば、PC10によって制御され、読取I/F35で原稿の画像を読み取り、読み取った画像から生成したスキャンデータをPC10へ送信する。CPU33は、プログラム41を実行してスキャンデータの生成処理やスキャンデータの送信処理を実行する。読取I/F35は、例えば、CCDやCISなどの画像を読み取るデバイスである。入力I/F36は、液晶ディスプレイや各種スイッチ等を含み、ユーザ操作を入力するためのインタフェースである。LCD37は、スキャナ50の各種情報を表示する。
(処理情報に従った処理について)
次に、上記した処理情報処理システム1の作動の一例として、処理情報に従って処方箋を処理する場合について説明する。この場合、処方箋の書類は、本発明の対象原稿の一例となる。まず、後述する処理情報に従った処理の1つであるフィルタ処理の登録処理について説明する。
なお、本明細書のシーケンス図やフローチャートは、基本的に、プログラム(スキャナドライバ26など)に処理情報として記述された命令に従ったCPU12の処理を示す。即ち、以下の説明における「判定」、「取得」、「受け付け」、「制御」、「設定」等の処理は、CPU12の処理を表している。CPU12による処理は、OS27を介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。即ち、CPU12が要求することなくデータを受信するという処理も、「PC10がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
(フィルタ処理の登録)
図2は、フィルタ処理を登録する登録処理のフローチャートを示している。後述するように、フィルタ処理は、第1処理情報26Aに従った処理(図6のS43)と第2処理情報26Bに従った処理(図9のS63)との各々で実行される。第1処理情報26Aのフィルタ処理(S43)、及び第2処理情報26Bのフィルタ処理(S63)では、処方箋の共通のエリアから識別情報(バーコードの画像など)を検出する処理を実行する。そこで、図2に示す登録処理では、第1処理情報26Aのフィルタ処理(S43)、及び第2処理情報26Bのフィルタ処理(S63)の各々において識別情報を検出するために使用する共通のエリアを登録する。これにより、第1処理情報26Aと第2処理情報26Bとを関連付けて登録する。
まず、例えば、PC10は、入力I/F18に対する操作入力に従って、メモリ14に記憶されたスキャナドライバ26を実行する。PC10は、スキャナドライバ26を実行すると、図3に示す表示ウィンドウ61をLCD16に表示する。図3に示すように、PC10は、登録ボタン62と、2つの開始ボタン64,65と、完了ボタン66を有する表示ウィンドウ61を表示する。なお、図3に示す表示ウィンドウ61の構成は一例である。
登録者は、例えば、登録を行いたい処方箋のひな型をスキャナ50の読取I/F35にセットする。登録者は、入力I/F18のマウスを操作し、表示ウィンドウ61に表示された登録ボタン62をアイコン67で選択する。PC10は、登録ボタン62を選択する操作入力に応じて、図2に示す処理を開始する。なお、PC10を操作してフィルタ処理を登録する登録者は、特に限定されず、例えば、処方箋を取り扱う薬局の薬剤師、PC10を設置する設置業者、薬局のシステム管理者、薬局の責任者などである。
PC10は、図2に示す処理を開始すると、まず、ステップ(以下、単に「S」と記載する)11において、スキャナ50を制御して処方箋のひな型のスキャンを実行する。PC10は、スキャナ50で処方箋をスキャンして生成したスキャンデータを取得する(S11)。なお、以下の説明では、各処理で生成されるスキャンデータを区別するため、図2に示す登録処理で生成されるスキャンデータを、第3スキャンデータD3(図1参照)と称して説明する。また、図6に示す第1処理情報26Aに従った処理で生成されるスキャンデータを、第1スキャンデータD1と称して説明する。また、図9に示す第2処理情報26Bに従った処理で生成されるスキャンデータを、第2スキャンデータD2と称して説明する。PC10は、例えば、スキャナ50から取得したスキャンデータ(第1スキャンデータD1など)をメモリ14に一時的に保存し、スキャンデータを用いた処理を実行する。
PC10は、S11を実行すると、S13を実行する。S13において、PC10は、処方箋の原稿内において識別情報を検出するためのエリアの情報を受け付ける。PC10は、例えば、第3スキャンデータD3をLCD16に表示し、入力I/F18の操作入力に従ってエリアの情報を受け付ける。
図4は、処方箋及びエリアの設定位置を示している。なお、図4に示す処方箋の様式、及び設定したエリアの形や位置等は一例である。図4に示すように、本実施形態の処方箋71には、処方箋ID73、患者ID74、地域ID75、シール貼付欄76、氏名欄77が設けられている。処方箋ID73は、複数の処方箋71を識別するための情報である。患者ID74は、各患者を識別するための情報である。地域ID75は、処方箋71を利用する地域を識別するための情報である。処方箋ID73、患者ID74、及び地域ID75は、例えば、バーコードである。なお、処方箋ID73等は、バーコードに限らず、二次元コード、患者等の名前を示す文字列、IDを示す数字などでも良い。従って、本発明の識別情報としては、バーコードのコード画像など、スキャンによって検出可能な様々な情報を採用できる。以下の説明では、処方箋ID73等としてバーコードを用いる場合について説明する。
シール貼付欄76は、後述するように、薬に貼り付けられたシール93(図8参照)を貼り付けるための枠である。氏名欄77には、処方箋71に対応する患者の氏名等の個人情報が記載されている。本実施形態の処方箋71では、例えば、図4に示す第1検出エリア81と、第2検出エリア82が設定される。第1検出エリア81は、処方箋ID73、患者ID74、地域ID75を含むエリアである。第2検出エリア82は、シール貼付欄76を含むエリアである。
例えば、第1検出エリア81を設定する場合、登録者は、LCD16に処方箋71の第3スキャンデータD3が表示された状態で、入力I/F18のマウスを操作してアイコン67(図3参照)によって第1検出エリア81を選択し、キーボードを操作してエリアを決定する。PC10は、入力I/F18に対する操作入力に従って第1検出エリア81の位置や大きさなどの情報を受け付ける(S13)。PC10は、受け付けた第1検出エリア81の情報を、スキャナドライバ26の第1処理情報26A及び第2処理情報26Bに関連付けて登録する(S15)。これにより、登録者は、処方箋71の原稿内において、どこの部分から識別情報を検出してほしいのかを設定できる。また、PC10は、共通の第1検出エリア81を使用する処理情報として、第1処理情報26A及び第2処理情報26Bを関連付けて登録することができる。また、PC10は、第2検出エリア82についても同様の受付処理(S13)及び登録処理(S15)を実行する。PC10は、第1及び第2検出エリア81,82の登録を完了させると、図2に示す登録処理を終了する。
なお、PC10は、第1及び第2検出エリア81,82の受け付けに合わせて、エリアに関する情報(例えば、コードの種類、エリア内の文字の種類など)を受け付けても良い。PC10は、これらの情報を、第1及び第2検出エリア81,82の情報と関連付けて第1及び第2処理情報26A,26Bに保存しても良い。
(処方箋を用いた処理)
次に、処方箋71を用いた処理の流れについて説明する。図5は、処方箋71を用いた処理の流れの一例を示している。以下の説明では、一例として、薬局の薬剤師87がPC10を操作する場合について説明する。また、以下の説明では、図5を用いて全体の流れを説明しながら、S23、S27において第1処理情報26Aに従った処理(図6参照)を、S33において第2処理情報26Bに従った処理(図9参照)をそれぞれ説明する。
まず、図5に示すS17において、例えば、病院の医者86は、患者85の病状を診察した後、処方箋71を患者85へ発行する。この段階では、処方箋71には、図4に示す処方箋ID73、患者ID74、地域ID75、及び氏名欄77の情報が印刷等されている。また、処方箋71のシール貼付欄76は、何も貼られていない状態となっている。
次に、医者86は、発行した処方箋71に係わる情報を、第1サーバ53に登録する(S19)。本発明の対象原稿が処方箋71である場合、第1サーバ53は、例えば、地方ごとに設置された地域サーバであり、管轄する地域に住んでいる住人の薬に関する情報を保存するサーバである。医者86は、処方箋71に係わる情報として、例えば、処方箋ID73、患者ID74、地域ID75の情報に加え、今回の診察結果で処方する薬の種類を示す薬IDの番号、処方すべき薬の個数などの情報を第1サーバ53に登録する(S19)。
一方で、患者85は、S17で処方箋71を取得すると、薬剤師87の働く薬局まで移動し、薬剤師87に処方箋71を渡す(S21)。薬剤師87は、処方箋71を受け取ると、PC10及びスキャナ50を用いて処方箋71を処理する。この際、PC10は、第1処理情報26Aに従った処理を実行する(S23)。
図6は、第1処理情報26Aに従った処理の内容を示している。薬剤師87は、例えば、PC10の入力I/F18を操作してスキャナドライバ26を実行し、LCD16に図3に示す表示ウィンドウ61を表示させる。図3に示すように、表示ウィンドウ61には、第1処理情報26Aに対応する開始ボタン64と、第2処理情報26Bに対応する開始ボタン65とが表示されている。薬剤師87は、患者85から受け取った処方箋71をスキャナ50にセットした後、表示ウィンドウ61の開始ボタン64をアイコン67で選択する。PC10は、開始ボタン64を選択する操作入力に応じて、図6に示す第1処理情報26Aに従った処理を開始する。
(第1処理情報に従った処理)
まず、図6のS41において、PC10は、スキャナ50を制御して処方箋71のスキャンを実行する。PC10は、スキャナ50で生成した第1スキャンデータD1を、スキャナ50から取得する(S41)。
次に、PC10は、図2に示す登録処理で第1処理情報26Aに登録したフィルタ処理を実行する(S43)。図4に示すように、本実施形態の第1検出エリア81は、処方箋ID73、患者ID74、地域ID75を含むエリアである。また、第2検出エリア82は、シール貼付欄76を含むエリアである。PC10は、処方箋71の第1スキャンデータD1内において、第1検出エリア81及び第2検出エリア82のそれぞれのエリアから、例えば、バーコードの画像であるコード画像(本発明の第1識別情報の一例)を検出する処理を実行する。PC10は、検出したコード画像からバーコードの情報を検出する。バーコードの情報とは、バーコードが示す数字の情報など、より具体的には、処方箋ID73の番号などである。
バーコードのコード画像を検出する方法は、特に限定されない。例えば、第1検出エリア81内の予め設定された位置に、バーコードの所定規格に準拠したバーの集合(配列)や、スタートキャラクタなどが含まれているか否かについて、パターンマッチング技術等を用いて判定することでコード画像を検出しもよい。なお、識別情報として、バーコードの画像以外に、二次元コード、文字、数字などの画像を検出する場合にも、第1検出エリア81内に特定の図形や文字列が含まれているか否かを判定することで検出することができる。例えば、文字列が含まれている場合には、OCR処理を実行しても良い。
PC10は、S43を実行すると、第1検出エリア81内からコード画像を検出できたか否かを判定する(S45)。PC10は、例えば、処方箋ID73、患者ID74、及び地域ID75の3つのコード画像の全てを第1検出エリア81から検出できたことに応じて(S45:YES)、S47を実行する。PC10は、例えば、第1検出エリア81内の予め設定された3つの位置のそれぞれからバーコードを検出できた場合、3つのコード画像の全てを第1検出エリア81から検出できたと判定する(S45:YES)。あるいは、PC10は、検出した3つのコード画像の各々のバーコードが示す数字が処方箋ID73等の番号の表現形式に一致する場合に、3つのコード画像の全てを第1検出エリア81から検出できたと判定しても良い。
一方、PC10は、例えば、処方箋ID73、患者ID74、及び地域ID75の3つのコード画像のうち、少なくとも一つでも検出できないことに応じて(S45:NO)、S49を実行する。なお、上記したS45における判定条件は、一例である。例えば、PC10は、3つのコード画像のうち、少なくとも一つで検出できたことに応じて(S45:YES)、S47を実行しても良い。
S49において、PC10は、第1スキャンデータD1の天地が逆で第1検出エリア81にコード画像があるか否かを判定する。例えば、薬剤師87は、スキャナ50に処方箋71を逆向きにセットする可能性がある。この場合、第1スキャンデータD1は、処方箋71の上下を逆にしたスキャンデータとして生成される。そこで、PC10は、S49において、例えば、第1スキャンデータD1の上下を反転させ、反転させた第1スキャンデータD1の第1検出エリア81に処方箋ID73等の3つのコード画像があるか否かを判定する。
PC10は、例えば、反転した第1スキャンデータD1において、処方箋ID73等の3つのコード画像の全てを第1検出エリア81から検出できたことに応じて(S49:YES)、S47を実行する。この場合、PC10は、スキャナ50に処方箋71が逆向きにセットされたことを示す情報をLCD16に表示しても良い。一方、PC10は、例えば、反転した第1スキャンデータD1において、処方箋ID73等の3つのコード画像のうち、少なくとも一つでも検出できないことに応じて(S49:NO)、S51を実行する。
S51において、PC10は、第1スキャンデータD1を不正なデータとして処理する。この場合、例えば、第1スキャンデータD1は、処方箋ID73等を有しない処方箋71のデータ、処方箋71の読み込みに失敗したデータ、そもそも処方箋71とは違う原稿のデータなどの可能性がある。PC10は、不正なデータを検出したことをLCD16に表示する。これにより、第1スキャンデータD1から処方箋ID73等の検出に失敗したことを薬剤師87に通知し、対応の実行を促すことができる。PC10は、S51を実行した後、図6に示す処理を終了する。
一方、S47において、PC10は、第2検出エリア82内からコード画像を検出できたか否かを判定する。上記したように、医者86から患者85へ処方箋71を発行した段階では、処方箋71のシール貼付欄76には、何も貼られていない。シール貼付欄76に貼り付けられるシール93(図8参照)には、後述するように、薬の種類を示す情報(図8の薬ID95)や薬のシリアル番号を示す情報(図8のシリアルID96)が印刷されている。換言すれば、シール貼付欄76にシール93が貼られていない状態では、第2検出エリア82からコード画像が検出されない。従って、S47では、第2検出エリア82からコード画像を検出できない状態が正常な状態となる。
PC10は、S47において、第2検出エリア82内からコード画像を検出できたことに応じて(S47:NO)、S52を実行する。第2検出エリア82内から薬の種類を示すコード画像が検出された場合、第1スキャンデータD1は不正なデータであり、例えば、既に薬を渡した後の処理済みの処方箋71の可能性がある。このため、PC10は、例えば、シール貼付欄76から薬ID95等のコード画像を検出したことに応じて、シール93の貼り付け状況を確認してほしい旨をLCD16に表示する(S52)。また、シール貼付欄76にシール93が貼り付けられた処方箋71は、後述するように第2処理情報26Bに従った処理の対象原稿となる。このため、PC10は、例えば、第2処理情報26B用の処方箋71をスキャンした可能性があることをLCD16に表示しても良い。PC10は、S52を実行すると、図6に示す処理を終了する。
一方、PC10は、S47において、第2検出エリア82内からコード画像が検出できないことに応じて(S47:YES)、S53を実行する。S53において、PC10は、第1検出エリア81から検出したコード画像の情報(本発明の第1関係情報の一例)をDBサーバ51(本発明の記憶部の一例)のデータベースに記憶する。コード画像の情報とは、例えば、処方箋ID73が示す数字などである。
図7は、DBサーバ51のデータベースに記憶されるデータの形式の一例を示している。図7の各行に示すように、データベースには、例えば、処方箋ID73、患者ID74、地域ID75が互いに関連付けられ1つのレコードとして登録されている。各レコードには、通し番号が付されている。また、各レコードには、処理を完了したか否かを示す完了フラグが処方箋ID73等に関連付けられ登録されている。この完了フラグは、1つのレコード、即ち、1つの処方箋71に対して第1処理情報26Aに従った処理、及び第2処理情報26Bに従った処理の両方を完了したか否かを示す情報である。
図6のS53において、PC10は、第1検出エリア81から検出した処方箋ID73、患者ID74、地域ID75の情報をDBサーバ51へ通知する。DBサーバ51は、PC10から取得した情報を、データベースの新たなレコードとして追加する。また、PC10は、DBサーバ51へ通知した情報に対応する完了フラグ、即ち、新たに追加するレコードに対応する完了フラグの値として未完了を示す値を設定するようにDBサーバ51へ通知する。
PC10は、S53を実行した後、S55を実行する。PC10は、S55において、第1検出エリア81から検出した処方箋ID73、患者ID74、地域ID75の情報を、第1サーバ53へ送信する(S55、本発明の第1通知処理の一例)。図5に戻り、PC10から処方箋ID73等が第1サーバ53へ送信されると(S55)、第1サーバ53は、薬の情報を応答する(S27)。上記したように、S19において、医者86は、発行した処方箋71に係わる情報として、処方箋ID73、患者ID74、地域ID75の情報と関連付けて、処方する薬の種類を示す薬ID、処方すべき薬の個数などの情報を第1サーバ53に登録している。第1サーバ53は、S55においてPC10から処方箋ID73等の情報を取得すると、取得した処方箋ID73等に関連付けられた薬IDや薬の個数などの情報、即ち、患者85に渡すべき薬の情報を登録情報から検索する。第1サーバ53は、検索結果の薬IDなどの情報(本発明のサーバ情報の一例)をPC10へ送信する(S27、本発明のサーバ情報取得処理の一例)。PC10は、薬IDなどの情報を取得すると(S27)、第1処理情報26Aに従った処理を終了する。
PC10は、S27において薬ID等の情報を取得すると、取得した情報に基づいて、例えば、薬の名前、薬ID95の番号、処方すべき薬の個数などをLCD16に表示する。薬剤師87は、LCD16に表示された情報を確認しながら、患者85に渡す薬を準備する(S29)。
S29では、PC10は、第1サーバ53から薬IDを受信する。薬剤師87は、薬局の在庫の中から、薬のIDで示される薬の箱(即ち、既にシール93が貼り付けられている箱)を取得する。そして、薬剤師87は、薬の箱に貼り付けられたシール93を処方箋71のシール貼付欄76に貼り付けた後、患者に薬を提供する。
図8は、シール93を貼り付けた後の処方箋71示している。図8に示すように、処方箋71のシール貼付欄76には、準備した薬、即ち、患者85に渡す薬の数に応じたシール93が貼り付けられている。シール93には、薬の種類を示す薬ID95と、個々の薬を識別するためのシリアルID96とが印刷されている。薬ID95及びシリアルID96は、例えば、バーコードや二次元コードである。
PC10は、例えば、表示した全ての薬に対応する薬ID95及びシリアルID96をバーコードリーダー15で読み込まれると、受け渡す薬の準備が完了した旨をLCD16に表示する。PC10は、例えば、一定時間の経過後、図3に示す表示状態に戻す。薬剤師87は、LCD16の表示を見て全ての薬の準備ができたことを確認すると、準備した薬を患者85に渡す(S31)。このようにして、医者86によって患者85に処方された薬が、薬剤師87から患者85に受け渡される。
(第2処理情報に従った処理)
次に、第2処理情報26Bに従った処理について説明する。なお、以下の説明では、上記した第1処理情報26Aに従った処理と同様の内容については、その説明を適宜省略する。第2処理情報26Bに従った処理は、上記したシール93を貼り付けた後の処方箋71に対する処理である。薬剤師87は、例えば、1日の作業を終了すると、1日で取り扱った全ての処方箋71にいて第2処理情報26Bに従った処理を開始するため、PC10を操作する。なお、1日の作業で発生した処方箋71についてまとめて第2処理情報26Bに従った処理を実行せずに、上記したS31で薬を渡すごと、即ち、1枚の処方箋71ごとに第2処理情報26Bに従った処理を実行しても良い。
図3に示すように、表示ウィンドウ61には、第2処理情報26Bに対応した開始ボタン65が表示されている。薬剤師87は、シール93を貼り付けた処方箋71をスキャナ50にセットした後、表示ウィンドウ61の開始ボタン65をアイコン67で選択する(図5のS33)。PC10は、開始ボタン65を選択する操作入力に応じて、図9に示す第2処理情報26Bに従った処理を開始する。
まず、図9のS61において、PC10は、スキャナ50を制御して処方箋71のスキャンを実行する。PC10は、スキャナ50で生成した第2スキャンデータD2を、スキャナ50から取得する(S61)。
次に、PC10は、図2に示す登録処理で第2処理情報26Bに登録したフィルタ処理を実行する(S63)。図8に示すように、シール93を貼り付けた後の処方箋71の第1検出エリア81には、図4に示す貼付前の処方箋71と同様に、処方箋ID73、患者ID74、地域ID75が印刷されている。また、処方箋71のシール貼付欄76には、患者85に渡した薬に応じたシール93が貼り付けられている。PC10は、第2スキャンデータD2の第1検出エリア81及び第2検出エリア82のそれぞれから、コード画像(本発明の第2識別情報の一例)を検出する。PC10は、検出したコード画像から処方箋ID73の番号などを検出する。
PC10は、S63を実行すると、第1検出エリア81内から処方箋ID73等のコード画像を検出できたか否かを判定する(S65)。PC10は、例えば、処方箋ID73、患者ID74、及び地域ID75の3つのコード画像の全てを第1検出エリア81から検出できたことに応じて(S65:YES)、S67を実行する。一方、PC10は、例えば、処方箋ID73、患者ID74、及び地域ID75の3つのコード画像のうち、少なくとも一つでも検出できないことに応じて(S65:NO)、S69を実行する。
S69において、PC10は、第2スキャンデータD2の天地が逆で第1検出エリア81にコード画像があるか否かを判定する。PC10は、第2スキャンデータD2の上下を反転させ、反転させた第2スキャンデータD2の第1検出エリア81に処方箋ID73等の3つのコード画像があるか否かを判定する(S69)。
PC10は、例えば、反転した第2スキャンデータD2において、処方箋ID73等の3つのコード画像の全てを第1検出エリア81から検出できたことに応じて(S69:YES)、S67を実行する。一方、PC10は、例えば、反転した第2スキャンデータD2において、処方箋ID73等の3つのコード画像のうち、少なくとも一つでも検出できないことに応じて(S69:NO)、不正データ処理を実行する(S71)。
S71を実行する場合、第2スキャンデータD2は、図6のS51と同様に、処方箋ID73等を有しない処方箋71のデータなどの可能性がある。PC10は、不正なデータを検出したことをLCD16に表示する。PC10は、S71を実行した後、図9に示す処理を終了する。
一方、S67において、PC10は、第2検出エリア82内から薬ID95及びシリアルID96のコード画像を検出できたか否かを判定する。上記したように、薬の受け渡しを終了した処方箋71のシール貼付欄76には、患者85に渡した薬から剥がしたシール93が貼り付けられている(図8参照)。従って、S67では、第2検出エリア82からコード画像を検出できる状態が正常な状態となる。
PC10は、S67において、第2検出エリア82内からコード画像を検出できないことに応じて(S67:YES)、S72を実行する。第2検出エリア82内から薬ID95等のコード画像を検出できない場合、第2スキャンデータD2は、不正なデータであり、例えば、薬を渡していない未処理の処方箋71の可能性がある。このため、PC10は、例えば、シール貼付欄76からコード画像を検出できないことに応じて、シール93の貼り付け状況を確認してほしい旨をLCD16に表示する(S72)。また、PC10は、例えば、第1処理情報26A用の処方箋71をスキャンした可能性があることをLCD16に表示しても良い。PC10は、S72を実行すると、図9に示す処理を終了する。
一方、PC10は、S67において、第2検出エリア82内から薬ID95等のコード画像が検出できたことに応じて(S67:NO)、S73を実行する。S73において、PC10は、DBサーバ51と通信を実行し、DBサーバ51のデータのうち、S63で検出した処方箋ID73等に対応するデータに完了済を示す完了フラグが設定されているか否かを判定する。図7に示すように、データベースには、処方箋ID73等と完了フラグとが記憶されている。PC10は、S73において、DBサーバ51のデータベースにアクセスし、S63で検出した処方箋ID73等に対応するデータを特定する(本発明の特定処理の一例)。PC10は、例えば、処方箋ID73をキー情報として、処方箋ID73の一致するレコードを検索する。PC10は、一致するレコードの完了フラグを取得する。PC10は、取得した完了フラグが完了済を示す値でない、即ち、未完了を示す値であることに応じて(S73:YES)、DBサーバ51のデータベースにアクセスし、完了済の値を完了フラグに設定する(S75)。
図6のS53を実行した段階では、追加したレコードの完了フラグは、未完了を示す値が設定されている。従って、シール93を貼り付けた処方箋71に対し、初めて図9の処理を実行すると、S75で完了フラグが設定される。一方で、図9の処理を実行した後の処方箋71が再度スキャンされると、S73において、PC10は、完了済を示す完了フラグが設定されていると判定する(S73:NO)。この場合、PC10は、図9に示す処理を終了する。従って、仮に、図9の処理を、処理済みの処方箋71に再度実行したとしても、PC10は、S75の処理や後述するS77の処理を実行しない。
PC10は、S75を実行した後、処方箋71の情報を第2サーバ54に送信する(S77)。本発明の対象原稿が処方箋71である場合、第2サーバ54は、例えば、政府等が管理する行政サーバであり、全国の処方箋71の情報を保存するサーバである。PC10は、S77において、例えば、処方箋71の情報として、第2スキャンデータD2、患者ID74の情報、処方した全ての薬ID95の情報などを第2サーバ54に送信する。PC10は、S77を実行すると、図9に示す処理を終了する。
図5に戻り、第2サーバ54は、S77でPC10から第2スキャンデータD2等を取得すると、取得を完了した旨をPC10へ通知する(S35)。これにより、第2サーバ54への処方箋71の情報の登録が完了する。
PC10は、完了の通知を第2サーバ54から取得すると(S35)、例えば、第2サーバ54への保存が完了したことをLCD16に表示する。薬剤師87は、LCD16の表示を確認した後、次の処方箋71をスキャナ50にセットする。薬剤師87は、1日で取り扱った全ての処方箋71にいて、同様の作業を行う。
また、図5に示す行政担当者88は、例えば、政府の医療費の処理を担当する者である。行政担当者88は、例えば、月末に第2サーバ54のデータを確認して医療費の確認作業を行う(S37)。上記したように、第2サーバ54には、薬局のPC10から処理済みの処方箋71の情報が保存される。行政担当者88は、処方箋71の情報を確認し、医療費の返金処理を行う(S39)。行政担当者88は、例えば、自己負担の比率に基づいて、返金する金額を決定する。この場合、上記したS77で第2サーバ54へ送信する情報としては、S39の医療費の返金処理で用いる情報が必要であり、例えば、個人を特定する患者ID74などが必要である。従って、S77で第2サーバ54へ送信する情報は、その後の処理で必要とする情報に応じて適宜変更される。このようにして、図5に示す処方箋71を用いた処理が実行される。
(処理情報に従った処理の完了処理)
次に、図10に示す完了処理について説明する。例えば、薬剤師87は、1日で取り扱った全ての処方箋71にいて第2処理情報26Bに従った処理を終了させると、図10の完了処理を開始するため、PC10を操作する。図3に示すように、表示ウィンドウ61には、完了ボタン66が表示されている。薬剤師87は、表示ウィンドウ61の完了ボタン66をアイコン67で選択する。PC10は、完了ボタン66を選択する操作入力に応じて(図10のS81)、完了処理を開始し、DBサーバ51のデータベースに未完了のデータが残っているか否かを判定する(S83)。
図9のS75において、データベースのデータのうち、第2処理情報26Bに従った処理を実行されたデータには、完了済の値を示す完了フラグが設定される。このため、PC10は、データベースの完了フラグの値を判定することで、未完了のデータが残っているか否かを判定できる。なお、未完了のデータが残っているか否かの判定方法は、完了フラグを用いた方法に限らない。例えば、PC10は、図9のS73及びS75の処理に代えて、S63で検出した処方箋ID73等に対応するデータをDBサーバ51から削除しても良い。即ち、第2処理情報26Bに従った処理が完了したデータを、データベースから削除しても良い。そして、PC10は、図10のS83において、データベースにデータが保存されているか否かを判定することで、第2処理情報26Bに従った処理を実行していない未完了のデータが残っているか判定しても良い。この場合、DBサーバ51のデータベースの情報として、完了フラグの情報を保存しなくとも良い。
S83において、PC10は、未完了の値を示す完了フラグを設定されたレコードがデータベースに保存されていない場合(S83:YES)、終了処理を実行する(S85)。PC10は、例えば、すべての処方箋71について第1及び第2処理情報26A,26Bに従った処理を正常に終了した旨をLCD16に表示し、表示ウィンドウ61の表示を消す。PC10は、図10に示す完了処理を終了させる。
一方、PC10は、未完了の値を示す完了フラグを設定されたレコードをデータベースから検出した場合(S83:NO)、S87を実行する。PC10は、S87において、未完了のデータを通知する(S87)。図11は、未完了のデータを表示した表示ウィンドウ61の一例を示している。図11の開始ボタン64の下には、例えば、一日の作業で第1処理情報26Aに従った処理を実行した処方箋71の枚数を示す第1情報101が表示されている。また、開始ボタン65の下には、例えば、一日の作業で第2処理情報26Bに従った処理を実行した処方箋71の枚数を示す第2情報103が表示されている。
図11に示す例では、第1情報101として20枚が処理済みであることが表示され、第2情報103として18枚が処理済みであることが表示されている。この場合、第1処理情報26Aに従った処理を実行した処方箋71のうち、第2処理情報26Bに従った処理を実行していないものが2枚存在することとなる。PC10は、データベースの完了フラグを検索することで、この2枚の未完了のレコードを検出することができる。そこで、PC10は、図11に示すように、2枚の未完了の処方箋71の処方箋ID73を第3情報105として表示する。第3情報105は、例えば、第2情報103の下方に順番に表示される。これにより、薬剤師87は、第3情報105を確認することで、第2処理情報26Bが未実施の処方箋71が2枚存在することを把握できる。薬剤師87は、未処理の処方箋71を薬局内で探すなどの対応を実行できる。PC10は、図11に示す表示ウィンドウ61を表示し、図10に示す完了処理を終了する。この場合、PC10は、例えば、再度、完了ボタン66等が押下されるまで、図11に示す表示ウィンドウ61の表示を維持しても良い。あるいは、PC10は、第2処理情報26Bが未実施の処方箋ID73がDBサーバ51に記憶されている間、図11に示す表示ウィンドウ61の表示を維持しても良い。この場合、PC10は、表示ウィンドウ61にウィンドウの表示を消すキャンセルボタンを表示しても良い。そして、PC10は、キャンセルボタンによって表示ウィンドウ61の表示を消去された場合、次にスキャナドライバ26を実行して表示ウィンドウ61を表示した際に、前の未処理の情報を表示ウィンドウ61に表示しても良い。
なお、第1及び第2処理情報26A,26Bに従った処理の両方が完了したか否かの報知方法は、上記した方法に限らない。例えば、PC10は、第2処理情報26Bの処理が未完了のレコードがDBサーバ51に存在する間、完了ボタン66を薄いグレーにして所謂グレーアウトで表示し、完了ボタン66に対する操作を無効にしても良い。この場合、PC10は、例えば、第1処理情報26Aに従った処理が完了するごとに、第1処理情報26Aの処理のみが完了した処方箋ID73を第3情報105に表示する。PC10は、第2処理情報26Bに従った処理が完了すると、第3情報105の処方箋ID73のうち、第2処理情報26Bの処理が完了した処方箋ID73を非表示にする。そして、PC10は、第3情報105に処方箋ID73が表示されない、即ち、第2処理情報26Bの処理が未完了のレコードがDBサーバ51に存在しなくなると、完了ボタン66を有効にしても良い。これにより、薬剤師87は、完了ボタン66の表示を確認することで、未完了のデータがDBサーバ51に存在することを確認できる。
因みに、PC10は、処理装置の一例である。CPU12は、コンピュータ及び制御装置の一例である。スキャナドライバ26は、プログラムの一例である。DBサーバ51は、記憶部の一例である。処方箋71は、対象原稿の一例である。処方箋ID73等のコード画像は、第1識別情報及び第2処理情報の一例である。処方箋ID73等は、第1関係情報の一例である。薬剤師87は、操作者の一例である。シール93は、特定情報の一例である。
上記した第1実施形態によれば、以下の効果を奏する。
(1)本実施形態のPC10は、第1処理情報26Aに従った処理と、第2処理情報26Bに従った処理と、を実行可能なCPU12を備える。PC10は、第1処理情報26Aに従って、処方箋71をスキャンすることによって得られる第1スキャンデータD1を取得する第1取得処理(S41)と、第1処理情報26Aに従って、第1取得処理で取得された第1スキャンデータD1に含まれる処方箋ID73等のコード画像を検出する第1検出処理(S43)と、第1処理情報26Aに従って、検出されたコード画像に基づいて第1スキャンデータD1に関する処方箋ID73等をDBサーバ51に記憶する記憶処理(S53)と、第2処理情報26Bに従って、処方箋71をスキャンすることによって得られる第2スキャンデータD2を取得する第2取得処理(S61)と、第2処理情報26Bに従って、第2取得処理で取得した第2スキャンデータD2に含まれるコード画像を検出する第2検出処理(S63)と、第2処理情報26Bに従って、DBサーバ51に記憶された1以上の処方箋ID73等の中から、第2スキャンデータD2に対応する処方箋ID73等を、S63で検出した処方箋ID73等に基づいて特定する特定処理(S73)と、特定処理において処方箋ID73等を特定したことに応じて、第1スキャンデータD1と第2スキャンデータD2とを対応付けるための処理を実行する対応付け処理(S75)と、を実行する。
これによれば、PC10は、第2処理情報26Bに従った処理によって、第2スキャンデータD2から検出された処方箋ID73等に基づいて、DBサーバ51に記憶されたレコード(処方箋ID73等)のうち、第2スキャンデータD2に対応するデータを特定できる。これにより、第1処理情報26Aと第2処理情報26Bとの2つの処理情報に従った別々の処理のスキャンデータ(第1スキャンデータD1及び第2スキャンデータD2)を対応付けるための処理を実行できる(S75)。
(2)また、第1スキャンデータD1は、所定の特徴を示す情報であるシール93を含まない(図4参照)。また、第2スキャンデータD2は、シール93を含む(図8参照)。PC10は、取得されるスキャンデータにシール93が含まれるか否かを判定する特定情報判定処理(S47、S67)を実行する。PC10は、特定情報判定処理(S47)において第1スキャンデータD1に処方箋ID73が含まれないと判定したことに応じて(S47:YES)、シール93を含まない第1スキャンデータD1に対する記憶処理(S53)を実行する。また、PC10は、特定情報判定処理(S67)において第2スキャンデータD2にシール93が含まれると判定したことに応じて(S67:NO)、シール93を含む第2スキャンデータD2に対する特定処理(S73)を実行する。
これによれば、第1処理情報26Aに従った処理と、第2処理情報26Bに従った処理とのそれぞれにおいて、取得されるスキャンデータ(第1スキャンデータD1や第2スキャンデータD2)にシール93が含まれているか否かによって、実行する処理内容を変更することができる。
(3)また、PC10は、薬剤師87の操作に応じて、第1処理情報26Aと第2処理情報26Bとを関連付けて登録する登録処理(S15)を実行する。これによれば、予め登録処理を実行することで、第1処理情報26Aと第2処理情報26Bとの2つの処理情報を関連付けて登録することができる。
(4)また、PC10は、特定処理(S75)においてDBサーバ51に記憶された全ての処方箋ID73等が特定されたことに応じて(S83:YES)、全ての処方箋ID73等の特定処理を完了したことを報知する完了報知処理(S85)を実行する。これによれば、第2スキャンデータD2に基づいた特定処理(S85)を、DBサーバ51に記憶された全ての処方箋ID73等のレコードに対して完了したことを報知できる。
(5)また、PC10は、DBサーバ51に記憶された処方箋ID73等のうち、特定処理(S75)が完了していない処方箋ID73等が存在することを特定する未処理特定処理(S83)と、特定処理が完了していない処方箋ID73等が存在することが特定されたことに応じて(S83:NO)、未処理の処方箋ID73等が存在することを報知する未処理報知処理(S87)と、を実行する。
これによれば、特定処理が完了していない、即ち、対応付けるための処理が完了していない未処理の処方箋ID73等がDBサーバ51に残っている場合、その未処理の処方箋ID73等の存在を報知することで、未処理の処方箋ID73等に対する確認作業を薬剤師87に促すことができる。
(6)また、PC10は、未処理報知処理(S87)において、未処理の処方箋ID73等に対応する処方箋ID73を報知する。これによれば、未処理の処方箋ID73を数字で示すことで、未処理の処方箋ID73に対する確認作業の負担を軽減できる。
(7)また、PC10は、第1処理情報26Aに従って、処方箋ID73等を第1サーバ53へ通知する第1通知処理(S55)と、第1処理情報26Aに従って、第1サーバ53から処方箋ID73等のコード画像に対応する情報である薬IDなどの情報(本発明のサーバ情報の一例)を取得するサーバ情報取得処理(S27)と、第2処理情報26Bに従って、処方箋ID73等と、サーバ情報取得処理によって取得される薬IDなどの情報と、を第2サーバ54へ通知する第2通知処理(S77)と、を実行する。これによれば、第1サーバ53から処方箋ID73等に応じた薬IDの情報を取得できる。また、処方箋ID73や薬ID等を第2サーバ54へ保存等できる。
(8)また、DBサーバ51は、PC10とは別に設けられたサーバである。これによれば、処方箋ID73等を記憶するサーバを、PC10とは別に設けることで、PC10で記憶容量の不足が発生すること抑制できる。
(9)また、第1識別情報及び第2識別情報は、バーコード等の識別情報の画像であるコード画像である。これによれば、コード画像に含まれる識別情報に基づいて、処方箋71等を記憶する記憶処理や、処方箋71等を特定する特定処理を実行できる。
(第2実施形態)
次に、本発明の第2実施形態について説明する。なお、以下の説明では、上記した第1実施形態と同様の内容については同一符号を付し、その説明を適宜省略する。第1実施形態では、対象原稿として図4に示す処方箋71を用いた。これに対し、第2実施形態では、対象原稿として、図12に示す答案用紙111を用いる。答案用紙111は、例えば、学校等の試験に用いられるものである。
図12に示すように、本実施形態の答案用紙111には、教科ID113、用紙ID115、生徒ID117、回答欄119が設けられている。教科ID113は、答案用紙111を用いる試験の教科を識別するための情報であり、例えば、数学、英語などの科目を識別するための情報である。用紙ID115は、答案用紙111を個別に識別するための情報である。生徒ID117は、試験を受ける生徒を識別するための情報であり、例えば、生徒番号である。教科ID113及び用紙ID115は、例えば、バーコードである。教科ID113及び用紙ID115は、例えば、試験前に答案用紙111を作成する際に、試験科目などに応じて答案用紙111に印刷される。生徒ID117は、複数桁の数字である。生徒ID117は、例えば、試験時に生徒によって記入される。このため、試験前の生徒ID117は、空欄となっている。
また、本実施形態の答案用紙111では、例えば、図12に示す第1検出エリア81と、第2検出エリア82が設定される。第1検出エリア81は、教科ID113及び用紙ID115を含むエリアである。第2検出エリア82は、生徒ID117を含むエリアである。
(答案用紙を用いた処理)
次に、答案用紙111を用いた処理の流れについて説明する。図13は、答案用紙111を用いた処理の流れの一例を示している。なお、第2実施形態では、図13に示すように、第2サーバ54を用いない処理を実行する。また、以下の説明では、一例として、試験監督者121がPC10を操作する場合について説明する。まず、図13に示すS81において、試験監督者121は、試験前に、PC10及びスキャナ50を用いて試験に用いる複数の答案用紙111を処理する。この際、PC10は、第1処理情報26Aに従った処理を実行する(S81)。
図14は、第2実施形態の第1処理情報26Aに従った処理の内容を示している。なお、図14のフローチャートは、図6に示すフローチャートと比べてS55の処理をなくした点を除いて同様の手順となっている。試験監督者121は、例えば、PC10を操作してスキャナドライバ26を実行し、答案用紙111をスキャナ50にセットした後、表示ウィンドウ61(図3参照)の開始ボタン64をアイコン67で選択する。PC10は、開始ボタン64を選択する操作入力に応じて、図14に示す第1処理情報26Aに従った処理を開始する。
(第1処理情報に従った処理)
まず、図14のS41において、PC10は、スキャナ50により答案用紙111のスキャンを実行し、第1スキャンデータD1をスキャナ50から取得する(S41)。PC10は、事前に登録処理(図2参照)で第1処理情報26Aに登録したフィルタ処理を実行する(S43)。PC10は、第1スキャンデータD1内において、第1検出エリア81及び第2検出エリア82のそれぞれのエリアから、教科ID113等のコード画像や生徒ID117の数字の画像であるコード画像(本発明の第1識別情報の一例)を検出する。PC10は、検出したコード画像からバーコードや数字の情報を検出する。
PC10は、S43を実行すると、第1検出エリア81内からコード画像を検出できたか否かを判定する(S45)。PC10は、例えば、教科ID113及び用紙ID115の2つのコード画像を第1検出エリア81から検出できたことに応じて(S45:YES)、S47を実行する。一方、PC10は、教科ID113及び用紙ID115のコード画像のうち、少なくとも一つでも検出できないことに応じて(S45:NO)、S49を実行する。
S49において、PC10は、第1スキャンデータD1の天地が逆で第1検出エリア81にコード画像があるか否かを判定する。PC10は、例えば、反転した第1スキャンデータD1において、教科ID113及び用紙ID115のコード画像を第1検出エリア81から検出できたことに応じて(S49:YES)、S47を実行する。一方、PC10は、反転した第1スキャンデータD1において、教科ID113及び用紙ID115のコード画像のうち、少なくとも一つでも検出できないことに応じて(S49:NO)、S51を実行する。この場合、第1スキャンデータD1は、答案用紙111とは違う原稿のデータの可能性がある。このため、S51において、PC10は、第1スキャンデータD1を不正なデータとして処理する。
一方、S47において、PC10は、第2検出エリア82内からコード画像を検出できたか否かを判定する。上記したように、試験前の生徒ID117は、空欄となっている。このため、S47では、第2検出エリア82からコード画像を検出できない状態が正常な状態となる。PC10は、S47において、第2検出エリア82内からコード画像を検出できたことに応じて(S47:NO)、S52を実行する。第2検出エリア82内から生徒ID117を示すコード画像が検出された場合、第1スキャンデータD1は不正なデータであり、例えば、既に回答済みの答案用紙111の可能性がある。このため、PC10は、第2検出エリア82から生徒ID117のコード画像を検出したことに応じて、例えば、答案用紙111を確認してほしい旨をLCD16に表示する(S52)。
また、PC10は、S47において、第2検出エリア82内からコード画像が検出できないことに応じて(S47:YES)、S53を実行する。S53において、PC10は、第1検出エリア81から検出した教科ID113や用紙ID115の情報(本発明の第1関係情報の一例)をDBサーバ51(本発明の記憶部の一例)のデータベースに記憶する(図7参照)。新たに追加された教科ID113等のレコードには、未完了の値を設定された完了フラグが登録される。PC10は、S53を実行すると、図14に示す第1処理情報26Aに従った処理を終了する。PC10は、例えば、データベースへの登録を完了した旨の通知を、DBサーバ51から受信すると、登録が完了したことをLCD16に表示する。試験監督者121は、LCD16の表示を確認した後、次の答案用紙111をスキャナ50にセットして、同様の作業を行う。試験監督者121は、試験に用いる全ての答案用紙111について、上記したS81の処理を実行する。これにより、試験に用いられる答案用紙111が、DBサーバ51に登録される。
図13に戻り、試験監督者121は、PC10及びスキャナ50を用いた処理(S81)を行った後、試験会場で生徒123に答案用紙111を配布する(S83)。この答案用紙111は、上記したDBサーバ51に登録された答案用紙111である。各生徒123は、配布された答案用紙111に生徒ID117を記入し、回答欄に回答を記入する(S85)。試験監督者121は、試験が終了すると、生徒123から答案用紙を回収する(S87)。
(第2処理情報に従った処理)
次に、第2処理情報26Bに従った処理について説明する。第2処理情報26Bに従った処理は、試験後の答案用紙111に対する処理である。試験監督者121は、PC10を操作し、生徒123から回収した答案用紙111について第2処理情報26Bに従った処理を開始する。試験監督者121は、回収した答案用紙111をスキャナ50にセットした後、表示ウィンドウ61(図3参照)の開始ボタン65をアイコン67で選択する(図13のS89)。PC10は、第2処理情報26Bに従った処理を開始する。なお、第2実施形態の第2処理情報26Bに従った処理の手順は、図9に示す第1実施形態の第2処理情報26Bに従った処理と同様である。このため、以下の説明では、図9を用いて、第2実施形態の第2処理情報26Bに従った処理を説明する。
まず、図9のS61において、PC10は、スキャナ50により答案用紙111をスキャンし、第2スキャンデータD2をスキャナ50から取得する(S61)。次に、PC10は、事前の登録処理(図2参照)で第2処理情報26Bに登録したフィルタ処理を実行する(S63)。PC10は、第2スキャンデータD2の第1検出エリア81及び第2検出エリア82のそれぞれから、教科ID113等のコード画像を検出し、教科ID113の番号などを検出する。
PC10は、教科ID113及び用紙ID115のコード画像を第1検出エリア81から検出できたことに応じて(S65:YES)、S67し、教科ID113及び用紙ID115のコード画像のうち、少なくとも一つでも検出できないことに応じて(S65:NO)、S69を実行する。
S69において、PC10は、第2スキャンデータD2の天地が逆で第1検出エリア81にコード画像があるか否かを判定する。PC10は、反転した第2スキャンデータD2において、教科ID113等のコード画像を第1検出エリア81から検出できたことに応じて(S69:YES)、S67を実行し、教科ID113等のコード画像のうち、少なくとも一つでも検出できないことに応じて(S69:NO)、不正データ処理を実行する(S71)。
S67において、PC10は、第2検出エリア82内から生徒ID117のコード画像を検出できたか否かを判定する。上記したように、試験後に生徒123から回収した答案用紙111の生徒ID117には、生徒番号が記入されている。従って、S67では、第2検出エリア82から生徒ID117のコード画像を検出できる状態が正常な状態となる。
PC10は、第2検出エリア82内から生徒ID117のコード画像を検出できないことに応じて(S67:YES)、S72を実行する。第2検出エリア82内から生徒ID117のコード画像を検出できない場合、第2スキャンデータD2は、例えば、生徒番号を記載し忘れた答案用紙111の可能性がある。このため、PC10は、例えば、生徒ID117のコード画像を検出できないことに応じて、生徒ID117の記載を確認してほしい旨をLCD16に表示する(S72)。
一方、PC10は、S67において、生徒ID117のコード画像が検出できたことに応じて(S67:NO)、DBサーバ51のデータのうち、S63で検出した用紙ID115等に対応するデータに完了済を示す完了フラグ(図7参照)が設定されているか否かを判定する(S73)。PC10は、未完了を示す値が設定されていたことに応じて(S73:YES)、完了済の値を、DBサーバ51のデータベースの完了フラグに設定する(S75)。
PC10は、S75を実行した後、答案用紙111の情報を第1サーバ53に送信する(S77)。本発明の対象原稿が答案用紙111である場合、第1サーバ53は、例えば、試験を実施する学校等が管理する校内サーバであり、各試験の答案用紙111の情報を保存するサーバである。PC10は、S77において、例えば、答案用紙111の情報として、第2スキャンデータD2、教科ID113、用紙ID115、生徒ID117の情報を第1サーバ53に送信する。
また、第2実施形態のPC10は、答案用紙111の情報に応じて、第1サーバ53の記憶先を変更する(S77)。例えば、第1サーバ53には、各教科に対応する記憶領域が設けられている。PC10は、教科ID113に基づいて記憶先の記憶領域を判定する。PC10は、例えば、検出した教科ID113に基づいて、記憶先を第1サーバ53に問い合わせてもよい。PC10は、教科に対応する記憶領域へ第2スキャンデータD2等を保存する。これにより、第1サーバ53には、教科ごとの記憶領域に、対応する教科の第2スキャンデータD2等が記憶される。例えば、答案用紙111を採点する採点者は、自身が担当する教科の記憶領域を確認することで、採点すべき第2スキャンデータD2等を容易に確認することができる。
図13に戻り、第1サーバ53は、PC10から第2スキャンデータD2等のデータを取得すると(S91)、取得を完了した旨をPC10へ通知する(S93)。PC10は、完了の通知を第1サーバ53から取得すると、例えば、第1サーバ53への保存が完了したことをLCD16に表示する。試験監督者121は、LCD16の表示を確認した後、次の答案用紙111をスキャナ50にセットする。試験監督者121は、回収した全ての答案用紙111について、同様の作業を行う。このようにして、図13に示す答案用紙111を用いた処理が実行される。
(処理情報に従った処理の完了処理)
なお、第2実施形態においても、図10に示す第1実施形態の完了処理を同様に実施することができる。PC10は、例えば、DBサーバ51の完了フラグの値を判定することで、未完了の答案用紙111のデータが残っているか否かを判定できる。PC10は、例えば、未完了の値を示す完了フラグを設定されたレコードをデータベースから検出した場合、第2処理情報26Bに従った処理を実行していない答案用紙111の教科ID113や用紙ID115を表示しても良い(図10のS87、図11参照)。これにより、試験監督者121は、第2処理情報26Bが未実施の答案用紙111の用紙ID115を把握でき、答案用紙111を探すなどの対応を実行できる。
上記した第2実施形態によれば、第1実施形態と同様の効果を奏する。また、第2実施形態によれば、以下の効果を奏する。
(1)第2実施形態のPC10は、対応付け処理として、DBサーバ51における記憶領域のうち、教科ID113のコード画像(本発明の第2識別情報の一例)に対応する記憶領域へ第2スキャンデータD2を記憶する(S77)。これによれば、第2スキャンデータD2の記憶先を、教科ID113に対応した別々の記憶領域に分けることができる。なお、第2実施形態に限らず、上記した第1実施形態においても、S77で第2スキャンデータD2を保存する第1サーバ53の記憶先を振り分けても良い。例えば、PC10は、地域ID75に応じて、記憶先を変更しても良い。
(変形例)
また、本発明は、上記各実施形態に限定されるものではなく、当業者の知識に基づいて種々の変更、改良を施した種々の態様で実施することが可能である。
例えば、上記各実施形態では、図2に示す登録処理、図6に示す第1処理情報26Aに従った処理、図9に示す第2処理情報26Bに従った処理、図10に示す完了処理を同一のPC10で実行したが、これに限らない。例えば、各処理を、別々のPCで実行しても良い。
また、第1処理情報26Aにおける検出エリア(第1検出エリア81及び第2検出エリア82)と、第2処理情報26Bにおける検出エリアとは、同一のエリアであったが、異なるエリアでも良い。
また、第1処理情報26Aに従った処理の対象原稿(処方箋71や答案用紙111)と、第2処理情報26Bに従った処理の対象原稿とは、同一の原稿であったが、異なる原稿でも良い。
また、PC10は、図9のS73において、処方箋ID73を用いて、DBサーバ51のデータベースの中から該当するレコードを検索したが、検索方法はこれに限らない。例えば、PC10は、画像データのマッチングを実施することで、該当するレコードを検索しても良い。PC10は、図6のS53において、第1検出エリア81の画像データをDBサーバ51に保存する。そして、PC10は、図9のS73において、S63で検出した第1検出エリア81の画像データと、DBサーバ51に保存された各レコードの第1検出エリア81の画像データとが一致するか否かを判定しても良い。これにより、PC10は、第1検出エリア81の画像データの一致を判定することで、S63で検出した処方箋ID73等に対応するレコードを検出できる。
また、PC10は、本願の対応付け処理として、完了済の値を完了フラグに設定する処理(S75)を実行したが、これに限らない。例えば、PC10は、対応付け処理として、S63で検出した処方箋ID73と一致するレコードをLCD16に表示しても良い。また、PC10は、対応付け処理として、S63で検出した処方箋ID73と一致するレコードのデータを他の装置に送信しても良い。また、PC10は、対応付け処理として、S63で検出した処方箋ID73と、一致するレコードとを関連付けるだけでも良い。従って、本願の対応付け処理の内容は、第1処理情報26Aや第2処理情報26Bで実行したい内容に応じて適宜変更できる。
また、本願の第1関係情報は、処方箋ID73等の数字に限らず、第1スキャンデータD1や、第1検出エリア81の画像データでも良い。
また、スキャナドライバ26は、図2に示す登録処理や図10に示す完了処理を実行しないプログラムでも良い。
また、上記各実施形態では、本願の記憶部として、PC10と別の装置であるDBサーバ51を設けたがこれに限らない。本願の記憶部は、PC10のメモリ14でも良い。この場合、PC10は、メモリ14に処方箋ID73等のデータベースを構築しても良い。
また、本願のプログラムは、PC10で実行されるスキャナドライバ26に限らない。例えば、本願のプログラムは、スキャナ50で実行されるプログラム41でも良い。また、本願のプログラムは、PC10やスキャナ50とは別の装置、例えば、携帯端末で実行されるアプリケーションプログラムでも良い。
また、上記各実施形態では、登録者の操作に応じて処理情報(第1処理情報26Aなど)が登録されたが、これに限らず、例えば、スキャナドライバ26に予め処理情報が格納されていても良い。この場合、図2に示す登録処理によって、予め登録済みの処理情報の内容が変更されても良い。
また、上記実施形態では、スキャナドライバ26の処理がCPU12によって実行される例を説明したが、これに限らない。PC10は、スキャナドライバ26による処理を、CPU12に限らず、ASICや他の論理集積回路により実行しても良いし、CPU等やASIC、他の論理集積回路を協働させて実行しても良い。