(57)【要約】      （修正有）【課題】バーコード読み取りによるデータ取得漏れを防ぐ。【解決手段】バーコード読取方法は、撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得し、複数の所定項目の各々について、当該所定項目に関するコード列が取得されたか否かを判定し、いずれかの所定項目に関するコード列が取得されていない場合に、警告を通知する処理を含む。また、いずれかの所定項目に該当するコード列が取得されていない場合に、次の撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得する処理を繰り返し、すべての所定項目に関するコード列が取得された場合に、取得完了を通知するようにしてもよい。【選択図】図７
2018156311.tif 000002
【特許請求の範囲】
【請求項１】
撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得し、
複数の所定項目の各々について、当該所定項目に関するコード列が取得されたか否かを判定し、
いずれかの前記所定項目に関する前記コード列が取得されていない場合に、警告を通知する
処理をプロセッサに実行させるバーコード読取プログラム。
【請求項２】
更に、
いずれかの前記所定項目に該当するコード列が取得されていない場合に、次の撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得する処理を繰り返し、
すべての前記所定項目に関する前記コード列が取得された場合に、取得完了を通知する
処理を含む請求項１記載のバーコード読取プログラム。
【請求項３】
撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得し、
複数の所定項目の各々について、当該所定項目に関するコード列が取得されたか否かを判定し、
いずれかの前記所定項目に関する前記コード列が取得されていない場合に、警告を通知する
を含み、プロセッサにより実行されるバーコード読取方法。
【請求項４】
撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得する取得部と、
複数の所定項目の各々について、当該所定項目に関するコード列が取得されたか否かを判定する判定部と、
いずれかの前記所定項目に関する前記コード列が取得されていない場合に、警告を通知する通知部
を有するバーコード読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコードを読み取る技術に関する。
【背景技術】
【０００２】
１つの撮像画面に含まれる複数のバーコード部分を抽出して、これらのバーコードを夫々コード列に変換するプログラムが知られている。このプログラムは、例えばカメラ付き携帯電話で動作する。
【０００３】
血液製剤の容器に貼り付けられるラベルには、血液型、製剤種別及び製造番号に関するバーコードが印刷されている。上述したプログラムを用いれば、一回の撮影で３つの項目に係るデータを取得することができる。
【０００４】
但し、例えば撮像画面においていずれかのバーコードの一部が欠けていると、そのバーコードからデータを得ることはできない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−７２７６４号公報
【特許文献２】特開平９−１２０４８４号公報
【特許文献３】特開２００４−５６６９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、一側面では、バーコード読み取りによるデータ取得漏れを防ぐことである。
【課題を解決するための手段】
【０００７】
一態様に係るバーコード読取方法は、（Ａ）撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得し、（Ｂ）複数の所定項目の各々について、当該所定項目に関するコード列が取得されたか否かを判定し、（Ｃ）いずれかの所定項目に関するコード列が取得されていない場合に、警告を通知する処理を含む。
【発明の効果】
【０００８】
一側面としては、バーコード読み取りによるデータ取得漏れを防ぐことができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、ユーザ端末のハードウエア構成例を示す図である。
【図２】図２は、血液製剤の容器に貼り付けられたラベルの例を示す図である。
【図３Ａ】図３Ａは、ユーザ端末のモジュール構成例を示す図である。
【図３Ｂ】図３Ｂは、読取制御部のモジュール構成例を示す図である。
【図４】図４は、項目テーブルの構成例を示す図である。
【図５】図５は、血液型テーブルの構成例を示す図である。
【図６】図６は、製剤種別テーブルの構成例を示す図である。
【図７】図７は、メイン処理（Ａ）フローを示す図である。
【図８】図８は、第１項目処理フローを示す図である。
【図９】図９は、第２項目処理フローを示す図である。
【図１０】図１０は、第３項目処理フローを示す図である。
【図１１】図１１は、取得完了のポップアップウィンドウの例を示す図である。
【図１２】図１２は、メイン処理（Ａ）フローを示す図である。
【図１３】図１３は、第１警告ポップアップウィンドウの例を示す図である。
【図１４】図１４は、メイン処理（Ａ）フローを示す図である。
【図１５】図１５は、メイン処理（Ａ）フローを示す図である。
【図１６】図１６は、メイン処理（Ｂ）フローを示す図である。
【図１７】図１７は、メイン処理（Ｂ）フローを示す図である。
【図１８】図１８は、メイン処理（Ｂ）フローを示す図である。
【図１９】図１９は、メイン処理（Ｂ）フローを示す図である。
【図２０】図２０は、メイン処理（Ｂ）フローを示す図である。
【図２１】図２１は、読取結果ウィンドウの例を示す図である。
【発明を実施するための形態】
【００１０】
本実施の形態におけるユーザ端末１００は、デジタルカメラであってもよいし、カメラを備えた携帯電話端末（例えば、スマートフォン）であってもよいし、或いはタブレット端末であってもよい。図１に、ユーザ端末１００のハードウエア構成例を示す。この例におけるユーザ端末１００は、スマートフォンである。ユーザ端末１００は、プロセッサ１０１、記憶部１０３、アンテナ１１１、無線制御部１１３、オーディオ制御部１１５、スピーカ１１７、マイク１１９、ディスプレイ１２１、タッチセンサ１２３、カメラ１２５及びＧＰＳ（Global Positioning System）装置１２７を有している。
【００１１】
プロセッサ１０１は、モデムＣＰＵ（Central Processing Unit）とアプリケーションＣＰＵからなることもある。記憶部１０３は、例えば、ＲＯＭ（Read Only Memory）１０５とＲＡＭ（Random Access Memory）１０７とフラッシュメモリ１０９を有している。ＲＯＭ１０５は、例えば、予め設定されているデータやプログラムを格納している。ＲＡＭ１０７は、揮発性メモリの例である。ＲＡＭ１０７は、例えば、アプリケーションなどのプログラムやデータを展開する領域を含んでいる。ＲＡＭ１０７は、スルー画像や撮影した写真画像などの一時的なデータを格納する領域も含んでいる。フラッシュメモリ１０９は、例えば、オペレーティングシステムやアプリケーションなどのプログラムを格納しており、更に随時データを格納する。
【００１２】
タッチセンサ１２３は、例えば、ディスプレイ１２１の表示画面上に配置されたパネル状のセンサであり、タッチ操作（例えば、シャッター操作やボタンタッチ操作）を受け付ける。ディスプレイ１２１は、例えば、アプリケーションが表示させる各種画面（例えば、スルー画像を含む画面）を表示する。具体的には、ディスプレイ１２１とタッチセンサ１２３とを一体としたタッチパネルとして用いられる。タッチセンサ１２３へのタッチ操作によって、タッチイベントが発生する。タッチセンサ１２３の他に、キーを設けるようにしてもよい。
【００１３】
アンテナ１１１は、例えば、セルラー方式の無線データを受信する。無線制御部１１３は、無線通信の制御を行う。無線通信の制御により、電話の音声通信やデータ通信が行われる。
【００１４】
オーディオ制御部１１５は、音データに関するアナログ／デジタル変換とデジタル／アナログ変換を行う。スピーカ１１７は、アナログデータを音として出力する。マイク１１９は、音をアナログデータに変換する。
【００１５】
カメラ１２５は、スルー画像及び保存画像の撮影に用いられる。カメラ１２５は、静止画を撮影するものであってもよいし、静止画と動画との両方を撮影するものであってもよい。
【００１６】
図２に、血液製剤の容器に貼り付けられたラベルの例を示す。ラベルには、血液型に関するバーコード２０１と、製剤種別に関するバーコード２０３と、製造番号に関するバーコード２０５とが印刷されている。ユーザは、ユーザ端末１００のカメラ１２５を使って、これらのバーコード２０１乃至２０５が一枚の画像内に収まるように撮影する。
【００１７】
図３Ａに、ユーザ端末１００のモジュール構成例を示す。ユーザ端末１００は、バーコード読取部３０１、検証部３０９及びオーダーデータベース３１１を有する。バーコード読取部３０１は、バーコードを読み取る。バーコード読取部３０１は、撮影部３０３、変換部３０５及び読取制御部３０７を有する。撮影部３０３は、カメラ１２５を用いて撮影を行う。撮影部３０３は、ＲＡＭ１０７にロードされた撮影プログラム（例えば、カメラアプリケーション）をプロセッサ１０１が実行することによって実現される。変換部３０５は、撮影画像からバーコード部分を抽出し、バーコード部分をコード列に変換する。この例におけるコード列は、数字列である。但し、コード列に含まれるコードは、記号列であってもよいし、文字であってもよい。撮影画像からバーコード部分を抽出した場合に、変換部３０５は、夫々のバーコード部分をコード列に変換する。変換部３０５は、ＲＡＭ１０７にロードされた変換プログラムをプロセッサ１０１が実行することによって実現される。この例で、撮影プログラムは変換部３０５によって起動されるものとする。また、変換プログラムは、読取制御部３０７によって起動されるものとする。
【００１８】
読取制御部３０７は、バーコードの読み取り処理を制御する。読取制御部３０７は、変換部３０５を起動し、変換部３０５からコード列を取得する。そして、読取制御部３０７は、所定の項目に係るコード列が得られた時点でデータ取得が完了したと判断する。尚、読取制御部３０７のモジュール構成については、図３Ｂを用いて後述する。
【００１９】
バーコード読み取りの結果を用いるアプリケーションの種別は、任意である。この例では、検証部３０９が、読取制御部３０７で取得したデータを検証する。具体的には、検証部３０９は、読取制御部３０７で取得したデータがオーダーデータベース３１１に記憶されているオーダーと一致するか否かを判定する。
【００２０】
上述したバーコード読取部３０１、撮影部３０３、変換部３０５、読取制御部３０７、検証部３０９及びオーダーデータベース３１１は、ハードウエア資源（例えば、図１）と、以下で述べる処理をプロセッサ１０１に実行させるプログラムとを用いて実現される。
【００２１】
図３Ｂに、読取制御部３０７のモジュール構成例を示す。読取制御部３０７は、取得部３２１、判定部３２３、表示処理部３２５、受付部３２７、出力部３２９、抽出部３３１、項目テーブル記憶部３４１、血液型テーブル記憶部３４３及び製剤種別テーブル記憶部３４５を有する。
【００２２】
取得部３２１は、変換プログラムを起動して、変換部３０５から１又は複数のコード列を取得する。判定部３２３は、例えば所定項目に係るデータが得られたか否かを判定する。表示処理部３２５は、各種ウィンドウを表示する。表示処理部３２５は、警告を通知する通知部の一例である。受付部３２７は、ユーザからの指示操作を受け付ける。受付部３２７は、例えばボタンのタッチ操作を受け付ける。出力部３２９は、得られたデータを出力する。出力されたデータは、他のソフトウエアモジュール（この例では、検証部３０９）へ渡される。抽出部３３１は、コード列に含まれる一部のコードを抽出する。
【００２３】
項目テーブル記憶部３４１は、項目テーブルを記憶する。項目テーブルについては、図４を用いて後述する。血液型テーブル記憶部３４３は、血液型テーブルを記憶する。血液型テーブルについては、図５を用いて後述する。製剤種別テーブル記憶部３４５は、製剤種別テーブルを記憶する。製剤種別テーブルについては、図６を用いて後述する。
【００２４】
上述した取得部３２１、判定部３２３、表示処理部３２５、受付部３２７、出力部３２９及び抽出部３３１は、ハードウエア資源（例えば、図１）と、以下で述べる処理をプロセッサ１０１に実行させるプログラムとを用いて実現される。
【００２５】
上述した項目テーブル記憶部３４１、血液型テーブル記憶部３４３及び製剤種別テーブル記憶部３４５は、ハードウエア資源（例えば、図１）を用いて実現される。
【００２６】
図４に、項目テーブルの構成例を示す。この例における項目テーブルは、項目に対応するレコードを有している。項目テーブルのレコードは、項目ＩＤが設定されているフィールドと、項目名が設定されているフィールドと、項目コードが設定されているフィールドと、読取結果のフィールドと、内容コードが設定されるフィールドとを有している。
【００２７】
項目ＩＤは、項目を識別する。項目名は、項目の内容を特定する。項目コードは、コード列に含まれ、当該項目に係るコード列であることを特定する。項目ＩＤ、項目名及び項目コードは、予め設定されているものとする。
【００２８】
読取結果は、当該項目に係るバーコードからコード列が得られているか否かを示す。具体的には、読取結果のフィールドには、「成功」の旨のコード或いは「失敗」の旨のコードが設定される。「成功」の旨のコードが設定されている場合には、既に当該項目に係るバーコードからコード列が得られていることを意味する。「失敗」の旨のコードが設定されている場合には、未だ当該項目に係るバーコードからコード列が得られていないことを意味する。
【００２９】
内容コードは、当該項目に関する内容を特定する。血液型の項目に関する内容コードは、血液型コードである。血液型コードについては、後述する。製剤種別の項目に関する内容コードは、製剤種別コードである。製剤種別コードについては、後述する。製造番号の項目に関する内容コードは、製造番号である。尚、この例における項目コードは、２桁の数字であるものとする。同じく血液型コードも、２桁の数字であるものとする。同じく製剤種別コードも、２桁の数字であるものとする。製造番号は、１０桁の数字であるものとする。
【００３０】
尚、血液製剤以外の製品についても、本実施の形態を適用するようにしてもよい。その場合には、製品毎に所定項目のセット（図４相当）を設けるようにしてもよい。
【００３１】
図５に、血液型テーブルの構成例を示す。この例における血液型テーブルは、血液型に対応するレコードを有している。血液型テーブルのレコードは、血液型コードが設定されているフィールドと、血液型名が設定されているフィールドとを有している。血液型コードは、血液型を識別する。血液型名は、血液型の名前である。血液型テーブルは、予め設けられているものとする。
【００３２】
図６に、製剤種別テーブルの構成例を示す。この例における製剤種別テーブルは、製剤種別に対応するレコードを有している。製剤種別テーブルのレコードは、製剤種別コードが設定されているフィールドと、製剤名が設定されているフィールドとを有している。製剤種別コードは、製剤種別を識別する。製剤名は、製剤種別に係る製剤の名前である。製剤種別テーブルは、予め設けられているものとする。
【００３３】
続いて、読取制御部３０７の処理について説明する。図７に、メイン処理（Ａ）フローを示す。取得部３２１は、変換プログラムを起動する（Ｓ７０１）。プロセッサ１０１が、ＲＡＭ１０７にロードされた変換プログラムの処理を実行することによって、変換部３０５が実現される。
【００３４】
尚、変換部３０５は、撮影プログラムを起動する。プロセッサ１０１が、ＲＡＭ１０７にロードされた撮影プログラムの処理を実行することによって、撮影部３０３が実現される。変換部３０５は、撮影部３０３によって撮影された画像に含まれるバーコード部分を抽出し、バーコード部分の画像をコード列に変換する。撮影画像に１つのバーコード部分が含まれると判定した場合に、変換部３０５は、コード列を１つ特定する。撮影画像に２つのバーコード部分が含まれると判定した場合に、変換部３０５は、コード列を２つ特定する。また、撮影画像に３つのバーコード部分が含まれると判定した場合に、変換部３０５は、コード列を３つ特定する。
【００３５】
血液型に関するバーコードから変換されたコード列には、血液型の項目であることを示す項目コード及び血液型における内容コードである血液型コードが含まれる。製剤種別に関するバーコードから変換されたコード列には、製剤種別の項目であることを示す項目コード及び製剤種別における内容コードである製剤種別コードが含まれる。製造番号に関するバーコードから変換されたコード列には、製造番号の項目であることを示す項目コード及び製造番号における内容コードである製造番号が含まれる。
【００３６】
変換部３０５は、１つ又は複数のコード列を特定すると撮影プログラムを停止させる。そして、コード列を読取制御部３０７に引き渡して、変換部３０５は処理を終える。
【００３７】
取得部３２１は、変換プログラムの終了を待つ（Ｓ７０３）。このとき、取得部３２１は、変換部３０５から１又は複数のコード列を取得する（Ｓ７０５）。
【００３８】
判定部３２３は、第１項目処理を実行する（Ｓ７０７）。図８に、第１項目処理フローを示す。判定部３２３は、Ｓ７０５で取得したコード列を１つ特定する（Ｓ８０１）。判定部３２３は、当該コード列が血液型の項目コードを含むか否かを判定する（Ｓ８０３）。
【００３９】
Ｓ８０１で特定されたコード列が血液型の項目コードを含むと判定した場合には、判定部３２３は、項目テーブルにおける血液型のレコードに含まれる読取結果のフィールドに「成功」の旨のコードを設定する（Ｓ８０５）。更に、抽出部３３１は、当該コード列から血液型コードを抽出する（Ｓ８０７）。抽出部３３１は、項目テーブルにおける血液型のレコードに含まれる内容コードのフィールドに血液型コードを設定する（Ｓ８０９）。そして、判定部３２３は第１項目処理を終え、呼び出し元のメイン処理（Ａ）に復帰する。
【００４０】
一方、Ｓ８０１で特定されたコード列が血液型の項目コードを含まないと判定した場合には、判定部３２３は、未特定のコード列があるか否かを判定する（Ｓ８１１）。未特定のコード列があると判定した場合には、Ｓ８０１に示した処理に戻って、上述した処理を繰り返す。
【００４１】
一方、未特定のコード列がないと判定した場合には、判定部３２３は、項目テーブルにおける血液型のレコードに含まれる読取結果のフィールドに「失敗」の旨のコードを設定する（Ｓ８１３）。そして、判定部３２３は第１項目処理を終え、呼び出し元のメイン処理（Ａ）に復帰する。
【００４２】
図７の説明に戻る。判定部３２３は、第２項目処理を実行する（Ｓ７０９）。図９に、第２項目処理フローを示す。判定部３２３は、Ｓ７０５で取得したコード列を１つ特定する（Ｓ９０１）。判定部３２３は、当該コード列が製剤種別の項目コードを含むか否かを判定する（Ｓ９０３）。
【００４３】
Ｓ９０１で特定されたコード列が製剤種別の項目コードを含むと判定した場合には、判定部３２３は、項目テーブルにおける製剤種別のレコードに含まれる読取結果のフィールドに「成功」の旨のコードを設定する（Ｓ９０５）。更に、抽出部３３１は、当該コード列から製剤種別コードを抽出する（Ｓ９０７）。抽出部３３１は、項目テーブルにおける製剤種別のレコードに含まれる内容コードのフィールドに製剤種別コードを設定する（Ｓ９０９）。そして、判定部３２３は第２項目処理を終え、呼び出し元のメイン処理（Ａ）に復帰する。
【００４４】
一方、Ｓ９０１で特定されたコード列が製剤種別の項目コードを含まないと判定した場合には、判定部３２３は、未特定のコード列があるか否かを判定する（Ｓ９１１）。未特定のコード列があると判定した場合には、Ｓ９０１に示した処理に戻って、上述した処理を繰り返す。
【００４５】
一方、未特定のコード列がないと判定した場合には、判定部３２３は、項目テーブルにおける製剤種別のレコードに含まれる読取結果のフィールドに「失敗」の旨のコードを設定する（Ｓ９１３）。そして、判定部３２３は第２項目処理を終え、呼び出し元のメイン処理（Ａ）に復帰する。
【００４６】
図７の説明に戻る。判定部３２３は、第３項目処理を実行する（Ｓ７１１）。図１０に、第３項目処理フローを示す。判定部３２３は、Ｓ７０５で取得したコード列を１つ特定する（Ｓ１００１）。判定部３２３は、当該コード列が製造番号の項目コードを含むか否かを判定する（Ｓ１００３）。
【００４７】
Ｓ１００１で特定されたコード列が製造番号の項目コードを含むと判定した場合には、判定部３２３は、項目テーブルにおける製造番号のレコードに含まれる読取結果のフィールドに「成功」の旨のコードを設定する（Ｓ１００５）。更に、抽出部３３１は、当該コード列から製造番号を抽出する（Ｓ１００７）。抽出部３３１は、項目テーブルにおける製造番号のレコードに含まれる内容コードのフィールドに製造番号を設定する（Ｓ１００９）。そして、判定部３２３は第３項目処理を終え、呼び出し元のメイン処理（Ａ）に復帰する。
【００４８】
一方、Ｓ１００１で特定されたコード列が製造番号の項目コードを含まないと判定した場合には、判定部３２３は、未特定のコード列があるか否かを判定する（Ｓ１０１１）。未特定のコード列があると判定した場合には、Ｓ１００１に示した処理に戻って、上述した処理を繰り返す。
【００４９】
一方、未特定のコード列がないと判定した場合には、判定部３２３は、項目テーブルにおける製造番号のレコードに含まれる読取結果のフィールドに「失敗」の旨のコードを設定する（Ｓ１０１３）。そして、判定部３２３は第３項目処理を終え、呼び出し元のメイン処理（Ａ）に復帰する。
【００５０】
図７の説明に戻る。判定部３２３は、すべての項目についてデータ取得が成功したか否かを判定する（Ｓ７１３）。具体的には、判定部３２３は、項目テーブルにおける血液型のレコードに含まれる読取結果のフィールド、同じく製剤種別のレコードに含まれる読取結果のフィールド及び同じく製造番号のレコードに含まれる読取結果のフィールドに「成功」の旨のコードが設定されているか否かを判定する。すべての項目についてデータ取得が成功したと判定した場合には、変換部３０５は、取得完了のポップアップウィンドウを表示する（Ｓ７１５）。
【００５１】
図１１に、取得完了のポップアップウィンドウの例を示す。取得完了のポップアップウィンドウには、データの読取が完了した旨のメッセージが表示される。また、読み取った血液型コードに対応する血液型名、読み取った製剤種別コードに対応する製剤名及び読み取った製造番号も取得完了のポップアップウィンドウに表示される。更に、取得完了のポップアップウィンドウは、確認ボタンを含む。確認ボタンがタッチされると、取得完了のポップアップウィンドウは消える。
【００５２】
尚、取得完了のポップアップウィンドウの表示は、所定項目に係るデータの取得完了を通知する形態の例である。例えば、ユーザ端末１００に音声出力部を設けて、当該音声出力部が所定項目に係るデータの取得完了を伝える音声を出力するようにしてもよい。或いは、ユーザ端末１００に送信部を設けて、当該送信部が所定項目に係るデータの取得完了を伝えるメッセージを送信するようにしてもよい。
【００５３】
図７の説明に戻る。読取制御部３０７が、確認ボタンのタッチを受け付けると（Ｓ７１７）、変換部３０５は、取得完了のポップアップウィンドウの表示を終える。そして、検証部３０９は、読取結果を出力する（Ｓ７１９）。読取結果には、読み取った血液型コード、読み取った製剤種別コード及び読み取った製造番号が含まれる。そして、読取制御部３０７はメイン処理（Ａ）を終える。
【００５４】
Ｓ７１３において、すべての項目についてデータ取得が成功したと判定しない場合、つまり一部の項目についてデータ取得が失敗した場合には、端子Ａを介して、図１２に示したＳ１２０１の処理に移る。
【００５５】
図１２の説明に移る。判定部３２３は、第１項目（血液型）及び第２項目（製剤種別）についてデータ取得が失敗したか否かを判定する（Ｓ１２０１）。具体的には、判定部３２３は、項目テーブルにおける血液型のレコードに含まれる読取結果のフィールド及び同じく製剤種別のレコードに含まれる読取結果のフィールドに「失敗」の旨のコードが設定されているか否かを判定する。
【００５６】
第１項目（血液型）及び第２項目（製剤種別）についてデータ取得が失敗したと判定した場合には、表示処理部３２５は、第１警告ポップアップウィンドウを表示する（Ｓ１２０３）。
【００５７】
図１３に、第１警告ポップアップウィンドウの例を示す。第１警告ポップアップウィンドウには、血液型のバーコードの読み取り及び製剤種別のバーコードの読み取りが失敗した旨のメッセージが表示される。更に、第１警告ポップアップウィンドウは、継続ボタン及び取消ボタンも含まれる。継続ボタンがタッチされると、再びバーコードの読取動作が開始する。取消ボタンがタッチされると、メイン処理（Ａ）が終了する。
【００５８】
図１２の説明に戻る。受付部３２７は、ボタンタッチを受け付ける（Ｓ１２０５）。判定部３２３は、タッチされたボタンが継続ボタンであるか否かを判定する（Ｓ１２０７）。タッチされたボタンが継続ボタンでないと判定した場合、つまりタッチされたボタンが取消ボタンである場合には、出力部３２９は、読取失敗のコードを出力する（Ｓ１２０９）。そして、読取制御部３０７は、メイン処理（Ａ）を終える。この例で、読取失敗のコードは、検証部３０９に渡される。
【００５９】
一方、Ｓ１２０７において、タッチされたボタンが継続ボタンであると判定した場合には、判定部３２３は、項目テーブルの各レコードにおける読取結果のフィールドに設定されているコードをクリアする（Ｓ１２１１）。そして、端子Ｂを介して、図７に示したＳ７０１の処理に戻る。
【００６０】
Ｓ１２０１において、第１項目（血液型）及び第２項目（製剤種別）についてデータ取得が失敗したと判定しなかった場合には、判定部３２３は、第１項目（血液型）及び第３項目（製造番号）についてデータ取得が失敗したか否かを判定する（Ｓ１２１３）。具体的には、判定部３２３は、項目テーブルにおける血液型のレコードに含まれる読取結果のフィールド及び同じく製剤種別のレコードに含まれる読取結果のフィールドに「失敗」の旨のコードが設定されているか否かを判定する。
【００６１】
第１項目（血液型）及び第３項目（製造番号）についてデータ取得が失敗したと判定した場合には、表示処理部３２５は、第２警告ポップアップウィンドウを表示する（Ｓ１２１５）。
【００６２】
第２警告ポップアップウィンドウには、血液型のバーコードの読み取り及び製造番号のバーコードの読み取りが失敗した旨のメッセージが表示される。更に、第２警告ポップアップウィンドウは、第１警告ポップアップウィンドウの場合と同様の継続ボタン及び取消ボタンを含む。
【００６３】
受付部３２７は、ボタンタッチを受け付ける（Ｓ１２１７）。判定部３２３は、タッチされたボタンが継続ボタンであるか否かを判定する（Ｓ１２１９）。タッチされたボタンが継続ボタンでないと判定した場合、つまりタッチされたボタンが取消ボタンである場合には、出力部３２９は、読取失敗のコードを出力する（Ｓ１２２１）。そして、読取制御部３０７は、メイン処理（Ａ）を終える。この例で、読取失敗のコードは、検証部３０９に渡される。
【００６４】
一方、Ｓ１２１９において、タッチされたボタンが継続ボタンであると判定した場合には、判定部３２３は、項目テーブルの各レコードにおける読取結果のフィールドに設定されているコードをクリアする（Ｓ１２２３）。そして、端子Ｂを介して、図７に示したＳ７０１の処理に戻る。
【００６５】
Ｓ１２１３において、第１項目（血液型）及び第３項目（製造番号）についてデータ取得が失敗したと判定しなかった場合には、端子Ｃを介して、図１４に示したＳ１４０１の処理に移る。
【００６６】
図１４の説明に移る。判定部３２３は、第２項目（製剤種別）及び第３項目（製造番号）についてデータ取得が失敗したか否かを判定する（Ｓ１４０１）。具体的には、判定部３２３は、項目テーブルにおける製剤種別のレコードに含まれる読取結果のフィールド及び同じく製造番号のレコードに含まれる読取結果のフィールドに「失敗」の旨のコードが設定されているか否かを判定する。
【００６７】
第２項目（製剤種別）及び第３項目（製造番号）についてデータ取得が失敗したと判定した場合には、表示処理部３２５は、第３警告ポップアップウィンドウを表示する（Ｓ１４０３）。
【００６８】
第３警告ポップアップウィンドウには、製剤種別のバーコードの読み取り及び製造番号のバーコードの読み取りが失敗した旨のメッセージが表示される。更に、第３警告ポップアップウィンドウは、第１警告ポップアップウィンドウの場合と同様の継続ボタン及び取消ボタンを含む。
【００６９】
受付部３２７は、ボタンタッチを受け付ける（Ｓ１４０５）。判定部３２３は、タッチされたボタンが継続ボタンであるか否かを判定する（Ｓ１４０７）。タッチされたボタンが継続ボタンでないと判定した場合、つまりタッチされたボタンが取消ボタンである場合には、出力部３２９は、読取失敗のコードを出力する（Ｓ１４０９）。そして、読取制御部３０７は、メイン処理（Ａ）を終える。この例で、読取失敗のコードは、検証部３０９に渡される。
【００７０】
一方、Ｓ１４０７において、タッチされたボタンが継続ボタンであると判定した場合には、判定部３２３は、項目テーブルの各レコードにおける読取結果のフィールドに設定されているコードをクリアする（Ｓ１４１１）。そして、端子Ｂを介して、図７に示したＳ７０１の処理に戻る。
【００７１】
Ｓ１４０１において、第２項目（製剤種別）及び第３項目（製造番号）についてデータ取得が失敗したと判定しなかった場合には、判定部３２３は、第１項目（血液型）についてデータ取得が失敗したか否かを判定する（Ｓ１４１３）。具体的には、判定部３２３は、項目テーブルにおける血液型のレコードに含まれる読取結果のフィールドに「失敗」の旨のコードが設定されているか否かを判定する。
【００７２】
第１項目（血液型）についてデータ取得が失敗したと判定した場合には、表示処理部３２５は、第４警告ポップアップウィンドウを表示する（Ｓ１４１５）。
【００７３】
第４警告ポップアップウィンドウには、血液型のバーコードの読み取りが失敗した旨のメッセージが表示される。更に、第４警告ポップアップウィンドウは、第１警告ポップアップウィンドウの場合と同様の継続ボタン及び取消ボタンを含む。
【００７４】
受付部３２７は、ボタンタッチを受け付ける（Ｓ１４１７）。判定部３２３は、タッチされたボタンが継続ボタンであるか否かを判定する（Ｓ１４１９）。タッチされたボタンが継続ボタンでないと判定した場合、つまりタッチされたボタンが取消ボタンである場合には、出力部３２９は、読取失敗のコードを出力する（Ｓ１４２１）。そして、読取制御部３０７は、メイン処理（Ａ）を終える。この例で、読取失敗のコードは、検証部３０９に渡される。
【００７５】
一方、Ｓ１４１９において、タッチされたボタンが継続ボタンであると判定した場合には、判定部３２３は、項目テーブルの各レコードにおける読取結果のフィールドに設定されているコードをクリアする（Ｓ１４２３）。そして、端子Ｂを介して、図７に示したＳ７０１の処理に戻る。
【００７６】
Ｓ１４１３において、第１項目（血液型）についてデータ取得が失敗したと判定しなかった場合には、端子Ｄを介して、図１５に示したＳ１５０１の処理に移る。
【００７７】
図１５の説明に移る。判定部３２３は、第２項目（製剤種別）についてデータ取得が失敗したか否かを判定する（Ｓ１５０１）。具体的には、判定部３２３は、項目テーブルにおける製剤種別のレコードに含まれる読取結果のフィールドに「失敗」の旨のコードが設定されているか否かを判定する。
【００７８】
第２項目（製剤種別）についてデータ取得が失敗したと判定した場合には、表示処理部３２５は、第５警告ポップアップウィンドウを表示する（Ｓ１５０３）。
【００７９】
第５警告ポップアップウィンドウには、製剤種別のバーコードの読み取りが失敗した旨のメッセージが表示される。更に、第５警告ポップアップウィンドウは、第１警告ポップアップウィンドウの場合と同様の継続ボタン及び取消ボタンを含む。
【００８０】
受付部３２７は、ボタンタッチを受け付ける（Ｓ１５０５）。判定部３２３は、タッチされたボタンが継続ボタンであるか否かを判定する（Ｓ１５０７）。タッチされたボタンが継続ボタンでないと判定した場合、つまりタッチされたボタンが取消ボタンである場合には、出力部３２９は、読取失敗のコードを出力する（Ｓ１５０９）。そして、読取制御部３０７は、メイン処理（Ａ）を終える。この例で、読取失敗のコードは、検証部３０９に渡される。
【００８１】
一方、Ｓ１５０７において、タッチされたボタンが継続ボタンであると判定した場合には、判定部３２３は、項目テーブルの各レコードにおける読取結果のフィールドに設定されているコードをクリアする（Ｓ１５１１）。そして、端子Ｂを介して、図７に示したＳ７０１の処理に戻る。
【００８２】
Ｓ１５０１において、第２項目（製剤種別）についてデータ取得が失敗したと判定しなかった場合、つまり第３項目（製造番号）についてデータ取得が失敗した場合には、表示処理部３２５は、第６警告ポップアップウィンドウを表示する（Ｓ１５１３）。
【００８３】
第６警告ポップアップウィンドウには、製造番号のバーコードの読み取りが失敗した旨のメッセージが表示される。更に、第６警告ポップアップウィンドウは、第１警告ポップアップウィンドウの場合と同様の継続ボタン及び取消ボタンを含む。
【００８４】
受付部３２７は、ボタンタッチを受け付ける（Ｓ１５１５）。判定部３２３は、タッチされたボタンが継続ボタンであるか否かを判定する（Ｓ１５１７）。タッチされたボタンが継続ボタンでないと判定した場合、つまりタッチされたボタンが取消ボタンである場合には、出力部３２９は、読取失敗のコードを出力する（Ｓ１５１９）。そして、読取制御部３０７は、メイン処理（Ａ）を終える。この例で、読取失敗のコードは、検証部３０９に渡される。
【００８５】
一方、Ｓ１５１７において、タッチされたボタンが継続ボタンであると判定した場合には、判定部３２３は、項目テーブルの各レコードにおける読取結果のフィールドに設定されているコードをクリアする（Ｓ１５２１）。そして、端子Ｂを介して、図７に示したＳ７０１の処理に戻る。
【００８６】
本実施の形態によれば、いずれかの項目に関するバーコードが読み取られていない場合に、警告ポップアップウィンドウを表示するので、バーコード読み取りによるデータ取得漏れを防ぐことができる。
【００８７】
［実施の形態２］
上述した実施の形態では、いずれかの項目に関するコード列が取得されていない場合に、改めてすべての項目に関するコード列を取得する例について説明した。本実施の形態では、いずれかの項目に関するコード列が取得されていない場合に、残りの項目に関するコード列を補足的に取得する例について説明する。
【００８８】
図１６に、メイン処理（Ｂ）フローを示す。Ｓ１６０１乃至Ｓ１６０５に示した処理は、図７に示したＳ７０１乃至Ｓ７０５の処理の場合と同様である。
【００８９】
判定部３２３は、第１項目（血液型）についてデータ取得が成功しているか否かを判定する（Ｓ１６０７）。具体的には、判定部３２３は、項目テーブルにおける血液型のレコードに含まれる読取結果のフィールドに「成功」の旨のコードが設定されているか否かを判定する。
【００９０】
第１項目（血液型）についてデータ取得が成功していると判定した場合には、そのままＳ１６１１の処理に移る。一方、第１項目（血液型）についてデータ取得が成功していないと判定した場合、つまり第１項目（血液型）についてデータ取得が失敗している場合には、判定部３２３は、第１項目処理を実行する（Ｓ１６０９）。第１項目処理は、実施の形態１の場合と同様である。第１項目処理を終えると、Ｓ１６１１の処理に移る。
【００９１】
判定部３２３は、第２項目（製剤種別）についてデータ取得が成功しているか否かを判定する（Ｓ１６１１）。具体的には、判定部３２３は、項目テーブルにおける製剤種別のレコードに含まれる読取結果のフィールドに「成功」の旨のコードが設定されているか否かを判定する。
【００９２】
第２項目（製剤種別）についてデータ取得が成功していると判定した場合には、そのままＳ１６１５の処理に移る。一方、第２項目（製剤種別）についてデータ取得が成功していないと判定した場合、つまり第２項目（製剤種別）についてデータ取得が失敗している場合には、判定部３２３は、第２項目処理を実行する（Ｓ１６１３）。第２項目処理は、実施の形態１の場合と同様である。第２項目処理を終えると、Ｓ１６１５の処理に移る。
【００９３】
判定部３２３は、第３項目（製造番号）についてデータ取得が成功しているか否かを判定する（Ｓ１６１５）。具体的には、判定部３２３は、項目テーブルにおける製造番号のレコードに含まれる読取結果のフィールドに「成功」の旨のコードが設定されているか否かを判定する。
【００９４】
第３項目（製造番号）についてデータ取得が成功していると判定した場合には、そのまま端子Ｅを介して図１７に示したＳ１７０１の処理に移る。一方、第３項目（製造番号）についてデータ取得が成功していないと判定した場合、つまり第３項目（製造番号）についてデータ取得が失敗している場合には、判定部３２３は、第３項目処理を実行する（Ｓ１６１７）。第３項目処理は、実施の形態１の場合と同様である。第３項目処理を終えると、端子Ｅを介して図１７に示したＳ１７０１の処理に移る。
【００９５】
図１７の説明に移る。Ｓ１７０１乃至Ｓ１７０７に示した処理は、図７に示したＳ７１３乃至Ｓ７１９の処理の場合と同様である。
【００９６】
Ｓ１７０１において、すべての項目についてデータ取得が成功したと判定しない場合、つまり一部の項目についてデータ取得が失敗した場合には、端子Ｇを介して、図１８に示したＳ１８０１の処理に移る。
【００９７】
図１８の説明に移る。Ｓ１８０１乃至Ｓ１８０９に示した処理は、図１２に示したＳ１２０１乃至Ｓ１２０９の処理の場合と同様である。Ｓ１８０７において、タッチされたボタンが継続ボタンであると判定した場合には、判定部３２３は、項目テーブルの各レコードにおける読取結果のフィールドに設定されているコードをクリアせずに、端子Ｆを介して、図１６に示したＳ１６０１の処理に戻る。
【００９８】
Ｓ１８１１乃至Ｓ１８１９に示した処理は、図１２に示したＳ１２１３乃至Ｓ１２２１の処理の場合と同様である。Ｓ１８１７において、タッチされたボタンが継続ボタンであると判定した場合には、判定部３２３は、項目テーブルの各レコードにおける読取結果のフィールドに設定されているコードをクリアせずに、端子Ｆを介して、図１６に示したＳ１６０１の処理に戻る。
【００９９】
Ｓ１８１１において、第１項目（血液型）及び第３項目（製造番号）についてデータ取得が失敗したと判定しなかった場合には、端子Ｈを介して、図１９に示したＳ１９０１の処理に移る。
【０１００】
図１９の説明に移る。Ｓ１９０１乃至Ｓ１９０９に示した処理は、図１４に示したＳ１４０１乃至Ｓ１４０９の処理の場合と同様である。Ｓ１９０７において、タッチされたボタンが継続ボタンであると判定した場合には、判定部３２３は、項目テーブルの各レコードにおける読取結果のフィールドに設定されているコードをクリアせずに、端子Ｆを介して、図１６に示したＳ１６０１の処理に戻る。
【０１０１】
Ｓ１９１１乃至Ｓ１９１９に示した処理は、図１４に示したＳ１４１３乃至Ｓ１４２１の処理の場合と同様である。Ｓ１９１７において、タッチされたボタンが継続ボタンであると判定した場合には、判定部３２３は、項目テーブルの各レコードにおける読取結果のフィールドに設定されているコードをクリアせずに、端子Ｆを介して、図１６に示したＳ１６０１の処理に戻る。
【０１０２】
Ｓ１９１１において、第１項目（血液型）についてデータ取得が失敗したと判定しなかった場合には、端子Ｉを介して、図２０に示したＳ２００１の処理に移る。
【０１０３】
図２０の説明に移る。Ｓ２００１乃至Ｓ２００９に示した処理は、図１５に示したＳ１５０１乃至Ｓ１５０９の処理の場合と同様である。Ｓ２００７において、タッチされたボタンが継続ボタンであると判定した場合には、判定部３２３は、項目テーブルの各レコードにおける読取結果のフィールドに設定されているコードをクリアせずに、端子Ｆを介して、図１６に示したＳ１６０１の処理に戻る。
【０１０４】
Ｓ２０１１乃至Ｓ２０１７に示した処理は、図１５に示したＳ１５１３乃至Ｓ１５１９の処理の場合と同様である。Ｓ２０１５において、タッチされたボタンが継続ボタンであると判定した場合には、判定部３２３は、項目テーブルの各レコードにおける読取結果のフィールドに設定されているコードをクリアせずに、端子Ｆを介して、図１６に示したＳ１６０１の処理に戻る。
【０１０５】
尚、撮影プログラムの処理によってスルー画像を表示している間に、例えば図２１に示した読取結果ウィンドウを表示するようにしてもよい。読取結果ウィンドウには、各項目に関するバーコード読み取りの完了又は未完了の別が表示される。例えば図１６に示したＳ１６０１の前或いは後において、表示処理部３２５が読取結果ウィンドウを表示する。そして、例えば図１６に示したＳ１６０５の前或いは後において、表示処理部３２５が読取結果ウィンドウを消す。
【０１０６】
本実施の形態によれば、コード列を取得する処理を繰り返し、すべての項目に関するコード列が取得された場合に、取得完了を通知するので、バーコード読み取りによるデータ取得完了を確認できる。
【０１０７】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
【０１０８】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
【０１０９】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１１０】
本実施の形態に係るバーコード読取方法は、（Ａ）撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得し、（Ｂ）複数の所定項目の各々について、当該所定項目に関するコード列が取得されたか否かを判定し、（Ｃ）いずれかの所定項目に関するコード列が取得されていない場合に、警告を通知する処理を含む。
【０１１１】
このようにすれば、バーコード読み取りによるデータ取得漏れを防ぐことができる。
【０１１２】
更に、いずれかの所定項目に該当するコード列が取得されていない場合に、次の撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得する処理を繰り返し、すべての所定項目に関するコード列が取得された場合に、取得完了を通知するようにしてもよい。
【０１１３】
このようにすれば、バーコード読み取りによるデータ取得完了を確認できる。
【０１１４】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【０１１５】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１６】
（付記１）
撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得し、
複数の所定項目の各々について、当該所定項目に関するコード列が取得されたか否かを判定し、
いずれかの前記所定項目に関する前記コード列が取得されていない場合に、警告を通知する
処理をプロセッサに実行させるバーコード読取プログラム。
【０１１７】
（付記２）
更に、
いずれかの前記所定項目に該当するコード列が取得されていない場合に、次の撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得する処理を繰り返し、
すべての前記所定項目に関する前記コード列が取得された場合に、取得完了を通知する
処理を含む付記１記載のバーコード読取プログラム。
【０１１８】
（付記３）
撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得し、
複数の所定項目の各々について、当該所定項目に関するコード列が取得されたか否かを判定し、
いずれかの前記所定項目に関する前記コード列が取得されていない場合に、警告を通知する
を含み、プロセッサにより実行されるバーコード読取方法。
【０１１９】
（付記４）
撮影画像に含まれるバーコード部分から変換されたコード列を１又は複数取得する取得部と、
複数の所定項目の各々について、当該所定項目に関するコード列が取得されたか否かを判定する判定部と、
いずれかの前記所定項目に関する前記コード列が取得されていない場合に、警告を通知する通知部
を有するバーコード読取装置。
【符号の説明】
【０１２０】
１００  ユーザ端末    ３０１  バーコード読取部
３０３  撮影部    ３０５  変換部
３０７  読取制御部    ３０９  検証部
３１１  オーダーデータベース    ３２１  取得部
３２３  判定部    ３２５  表示処理部
３２７  受付部    ３２９  出力部
３３１  抽出部    ３４１  項目テーブル記憶部
３４３  血液型テーブル記憶部    ３４５  製剤種別テーブル記憶部
【図１】
2018156311.tif 000003
【図２】
2018156311.tif 000004
【図３Ａ】
2018156311.tif 000005
【図３Ｂ】
2018156311.tif 000006
【図４】
2018156311.tif 000007
【図５】
2018156311.tif 000008
【図６】
2018156311.tif 000009
【図７】
2018156311.tif 000010
【図８】
2018156311.tif 000011
【図９】
2018156311.tif 000012
【図１０】
2018156311.tif 000013
【図１１】
2018156311.tif 000014
【図１２】
2018156311.tif 000015
【図１３】
2018156311.tif 000016
【図１４】
2018156311.tif 000017
【図１５】
2018156311.tif 000018
【図１６】
2018156311.tif 000019
【図１７】
2018156311.tif 000020
【図１８】
2018156311.tif 000021
【図１９】
2018156311.tif 000022
【図２０】
2018156311.tif 000023
【図２１】
2018156311.tif 000024