IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ハッシュピーク株式会社の特許一覧

特開2024-93993情報処理方法、プログラム及び情報処理装置
<>
  • 特開-情報処理方法、プログラム及び情報処理装置 図1
  • 特開-情報処理方法、プログラム及び情報処理装置 図2
  • 特開-情報処理方法、プログラム及び情報処理装置 図3
  • 特開-情報処理方法、プログラム及び情報処理装置 図4
  • 特開-情報処理方法、プログラム及び情報処理装置 図5
  • 特開-情報処理方法、プログラム及び情報処理装置 図6
  • 特開-情報処理方法、プログラム及び情報処理装置 図7
  • 特開-情報処理方法、プログラム及び情報処理装置 図8
  • 特開-情報処理方法、プログラム及び情報処理装置 図9
  • 特開-情報処理方法、プログラム及び情報処理装置 図10
  • 特開-情報処理方法、プログラム及び情報処理装置 図11
  • 特開-情報処理方法、プログラム及び情報処理装置 図12
  • 特開-情報処理方法、プログラム及び情報処理装置 図13
  • 特開-情報処理方法、プログラム及び情報処理装置 図14
  • 特開-情報処理方法、プログラム及び情報処理装置 図15
  • 特開-情報処理方法、プログラム及び情報処理装置 図16
  • 特開-情報処理方法、プログラム及び情報処理装置 図17
  • 特開-情報処理方法、プログラム及び情報処理装置 図18
  • 特開-情報処理方法、プログラム及び情報処理装置 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024093993
(43)【公開日】2024-07-09
(54)【発明の名称】情報処理方法、プログラム及び情報処理装置
(51)【国際特許分類】
   G16H 20/10 20180101AFI20240702BHJP
【FI】
G16H20/10
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022210680
(22)【出願日】2022-12-27
(71)【出願人】
【識別番号】521003276
【氏名又は名称】ハッシュピーク株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】前田 琢磨
【テーマコード(参考)】
5L099
【Fターム(参考)】
5L099AA25
(57)【要約】
【課題】ブロックチェーンシステムを通じて、処方箋の医薬品とお薬手帳に記録された医薬品とのインテグリティを判定することが可能な情報処理方法等を提供すること。
【解決手段】一つの側面に係る情報処理方法は、患者に処方された処方箋の医薬品に関する第1情報をブロックチェーンシステム2に記録し、前記処方箋に対応して前記患者のお薬手帳に記録された前記医薬品に関する第2情報をブロックチェーンシステム2に記録し、記録した前記第1情報と前記第2情報とが一致するか否か判定することを特徴とする。
【選択図】図1
【特許請求の範囲】
【請求項1】
患者に処方された処方箋の医薬品に関する第1情報をブロックチェーンシステムに記録し、
前記処方箋に対応して前記患者のお薬手帳に記録された前記医薬品に関する第2情報をブロックチェーンシステムに記録し、
記録した前記第1情報と前記第2情報とが一致するか否か判定する
情報処理方法。
【請求項2】
前記第1情報は、前記処方箋の医薬品に関する情報に基づいて算出されたハッシュ値であり、
前記第2情報は、前記お薬手帳に記録された前記医薬品に関する情報に基づいて算出されたハッシュ値であり、
判定した判定結果に基づき、処方通りに調剤されたか否かを示す情報を出力する
請求項1に記載の情報処理方法。
【請求項3】
前記処方通りに調剤されたか否かを示す情報、データベースに記憶された前記処方箋の医薬品及び用法、並びに、前記データベースに記憶された前記お薬手帳の医薬品及び用法を出力する
請求項2に記載の情報処理方法。
【請求項4】
前記第1情報と前記第2情報とが一致すると判定した場合に、処方通りに調剤されたことを示す情報を第1態様で出力し、
前記第1情報と前記第2情報とが一致していないと判定した場合に、処方通りに調剤されていないことを示す情報を第2態様で出力する
請求項1又は2に記載の情報処理方法。
【請求項5】
前記第1情報と前記第2情報とが一致すると判定した場合に、処方通りに調剤されたことを示す情報を第1態様で出力し、
前記第1情報と前記第2情報とが一致していないと判定した場合に、前記医薬品の一般名に基づき、該医薬品が後発品であるか否かを判定し、
該医薬品が後発品でないと判定した場合に、処方通りに調剤されていないことを示す情報を第2態様で出力し、
該医薬品が後発品であると判定した場合に、処方通りに調剤されたことを示す情報を第3態様で出力する
請求項1又は2に記載の情報処理方法。
【請求項6】
前記患者の端末装置を通じて、前記処方箋を取得し、
取得した前記処方箋の医薬品及び用法をデータベースに記憶する
請求項1又は2に記載の情報処理方法。
【請求項7】
前記患者の端末装置を通じて、前記処方箋と、前記処方箋に対応するお薬手帳との開示に関する承諾情報を受け付け、
前記処方箋と前記お薬手帳との開示承諾が得られた場合に、前記承諾情報を前記ブロックチェーンシステムに記録する
請求項1又は2に記載の情報処理方法。
【請求項8】
前記処方箋と前記お薬手帳との開示承諾が得られた場合に、前記患者の患者情報と、前記お薬手帳に記録された前記医薬品及び用法とをデータベースに記憶し、
前記お薬手帳に記録された前記医薬品に関する前記第2情報を前記ブロックチェーンシステムに記録する
請求項7に記載の情報処理方法。
【請求項9】
患者に処方された処方箋の医薬品に関する第1情報をブロックチェーンシステムに記録し、
前記処方箋に対応して前記患者のお薬手帳に記録された前記医薬品に関する第2情報をブロックチェーンシステムに記録し、
記録した前記第1情報と前記第2情報とが一致するか否か判定する
処理をコンピュータに実行させるプログラム。
【請求項10】
患者に処方された処方箋の医薬品に関する第1情報をブロックチェーンシステムに記録する第1記録部と、
前記処方箋に対応して前記患者のお薬手帳に記録された前記医薬品に関する第2情報をブロックチェーンシステムに記録する第2記録部と、
記録した前記第1情報と前記第2情報とが一致するか否か判定する判定部と
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理方法、プログラム及び情報処理装置に関する。
【背景技術】
【0002】
近年、処方箋に関する技術の開発が進められている。例えば特許文献1には、処方箋情報に基づいて準備した調剤材料を用いた調剤を行い、処方箋情報に基づく薬剤の重量と調剤された薬剤の重量とから、調剤された薬剤の正確性を検証し、調剤された薬剤の発送の準備を行う調剤システムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-124444号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に係る発明は、ブロックチェーンシステムを通じて、患者に処方された処方箋の医薬品と、処方箋に対応して当該患者のお薬手帳に記録された医薬品とのインテグリティ(一致性;誠実さ)を判定(検証)することができないという問題がある。お薬手帳は、すでに服用している薬と新規に処方された薬の飲み合わせによる副作用のリスク、または薬の重複投与を防ぐために導入された個人健康情報管理制度に従って、患者が服用している薬の服用履歴もしくは既往症、またはアレルギー等の医療従事者に必要な情報を記載する手帳の名称である。
【0005】
一つの側面では、ブロックチェーンシステムを通じて、処方箋の医薬品とお薬手帳に記録された医薬品とのインテグリティを判定することが可能な情報処理方法等を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの側面に係る情報処理方法は、患者に処方された処方箋の医薬品に関する第1情報をブロックチェーンシステムに記録し、前記処方箋に対応して前記患者のお薬手帳に記録された前記医薬品に関する第2情報をブロックチェーンシステムに記録し、記録した前記第1情報と前記第2情報とが一致するか否か判定することを特徴とする。
【発明の効果】
【0007】
一つの側面では、ブロックチェーンシステムを通じて、処方箋の医薬品とお薬手帳に記録された医薬品とのインテグリティを判定することが可能となる。
【図面の簡単な説明】
【0008】
図1】医薬品インテグリティ判定システムの概要を示す説明図である。
図2】サーバの構成例を示すブロック図である。
図3】患者DB及び医薬品DBのレコードレイアウトの一例を示す説明図である。
図4】処方箋DB及びお薬手帳DBのレコードレイアウトの一例を示す説明図である。
図5】ブロックチェーンのノードの構成例を示すブロック図である。
図6】患者端末の構成例を示すブロック図である。
図7】薬局端末及び情報処理端末の構成例を示すブロック図である。
図8】医薬品インテグリティ判定システムの動作を説明する説明図である。
図9】判定結果の表示画面の一例を示す説明図である。
図10】処方箋データを登録する際の処理手順を示すフローチャートである。
図11】お薬手帳データを登録する際の処理手順を示すフローチャートである。
図12】お薬手帳データを登録する際の処理手順を示すフローチャートである。
図13】医薬品のインテグリティを判定する際の処理手順を示すフローチャートである。
図14】単数判定処理のサブルーチンの処理手順を示すフローチャートである。
図15】複数判定処理のサブルーチンの処理手順を示すフローチャートである。
図16】実施形態2における判定結果の表示画面の一例を示す説明図である。
図17】実施形態2における単数判定処理のサブルーチンの処理手順を示すフローチャートである。
図18】実施形態2における複数判定処理のサブルーチンの処理手順を示すフローチャートである。
図19】実施形態2における複数判定処理のサブルーチンの処理手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
【0010】
(実施形態1)
実施形態1は、患者に処方された医薬品のインテグリティを判定する形態に関する。図1は、医薬品インテグリティ判定システムの概要を示す説明図である。本実施形態のシステムは、情報処理装置1、ブロックチェーンシステム2、情報処理端末3、情報処理端末4及び情報処理端末5を含み、各装置はインターネット等のネットワークNを介して情報の送受信を行う。
【0011】
情報処理装置1は、種々の情報に対する処理、記憶及び送受信を行う情報処理装置である。情報処理装置1は、例えばサーバ装置、パーソナルコンピュータまたは汎用のタブレットPC(パソコン)等である。本実施形態において情報処理装置1はサーバ装置であるものとし、以下では簡潔のためサーバ1と読み替える。
【0012】
ブロックチェーンシステム2は、分散型台帳技術又は分散型ネットワークである。ブロックチェーンシステム2は、コンセンサス処理を実行する複数のノード21により構成される。ノード21の各々は、当該コンセンサス処理の実行を通じて、ブロックチェーンデータのコピーを保持する。ブロックチェーンシステム2は、ブロックと呼ばれるデータの単位を一定時間ごとに生成し、鎖のように連結していくことによりデータを保管する。
【0013】
ブロックチェーンシステム2は、ピアツーピア(Peer to Peer)ネットワークと分散型タイムスタンプサーバの使用により自律的に管理される。鎖状にデータを保存しているため、ブロック内のデータを一度記憶した場合、該データを遡及的に変更することが難しい。なお、ブロックチェーンシステム2は、パブリック型、プライベート型、コンソーシアム型のいずれであっても良い。データの単位はブロックではなく個々のトランザクションであっても良い。また、データの保存は鎖状以外にも有向非巡回グラフ等の保存形式であっても良い。以下では簡潔のため、ブロックチェーンシステム2をブロックチェーン2と読み替える。
【0014】
情報処理端末3は、患者に処方された処方箋の取得及び送信、並びに、処方箋と当該処方箋に対応する患者のお薬手帳との開示に関する承諾情報の受付及び送信等を行う端末装置である。情報処理端末3は、例えばスマートフォン、携帯電話、アップルウォッチ(Apple Watch:登録商標)等のウェアラブルデバイス、タブレット、またはパーソナルコンピュータ端末等の情報処理機器である。以下では簡潔のため、情報処理端末3を患者端末3と読み替える。
【0015】
情報処理端末4は、処方箋とお薬手帳との開示に関する承諾情報の取得、並びに、お薬手帳に記録された医薬品に関する情報の取得及び送信等を行う端末装置である。情報処理端末4は、例えばスマートフォン、携帯電話、アップルウォッチ等のウェアラブルデバイス、タブレット、またはパーソナルコンピュータ端末等の情報処理機器である。以下では簡潔のため、情報処理端末4を薬局端末4と読み替える。
【0016】
情報処理端末5は、医薬品のインテグリティ判定要求の送信、判定結果の受信及び表示等を行う端末装置である。情報処理端末5は、例えばスマートフォン、携帯電話、アップルウォッチ等のウェアラブルデバイス、タブレット、またはパーソナルコンピュータ端末等の情報処理機器である。
【0017】
本実施形態に係るサーバ1は、患者に処方された処方箋の医薬品に関する第1情報を患者端末3から取得し、取得した第1情報をブロックチェーン2に記録する。サーバ1は、当該処方箋に対応して当該患者のお薬手帳に記録された医薬品に関する第2情報を薬局端末4から取得し、取得した第2情報をブロックチェーン2に記録する。サーバ1は、ブロックチェーン2に記録された第1情報と第2情報とが一致するか否かを判定する。サーバ1は、判定した判定結果に基づき、処方通りに調剤されたか否かを示す情報を出力する。
【0018】
図2は、サーバ1の構成例を示すブロック図である。サーバ1は、制御部11、記憶部12、通信部13、入力部14、表示部15、読取部16及び大容量記憶部17を含む。各構成はバスBで接続されている。
【0019】
制御部11は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、DSP(Digital Signal Processor)、または量子プロセッサ等の演算処理装置を含む。制御部11は、記憶部12に記憶された制御プログラム1P(プログラム製品)を読み出して実行することにより、サーバ1に係る種々の情報処理及び制御処理等を行う。
【0020】
なお、制御プログラム1Pは、単一のコンピュータ上で、または1つのサイトにおいて配置されるか、もしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。なお、図2では制御部11を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
【0021】
また、制御プログラム1Pには、例えばイーサリアムのGeth(Go-Ethereum)等のスマートコントラクトの生成・実行、仮想通貨の送金、アカウントの作成、またはマイニング等の処理を実行するプログラムが含まれる。制御部11は、ハッシュ値算出部11a及び電子署名作成部11bを含む。ハッシュ値算出部11aは、暗号学的ハッシュ関数を用いて各種情報のハッシュ値を算出する処理を行う。電子署名作成部11bは、偽造又は改ざんを防止するため、公開鍵暗号方式に基づくデジタル認証用の署名を生成する。
【0022】
記憶部12はRAM(Random Access Memory)、またはROM(Read Only Memory)等のメモリ素子を含み、制御部11が処理を実行するために必要な制御プログラム1P又はデータ等を記憶している。また、記憶部12は、制御部11が演算処理を実行するために必要なデータ等を一時的に記憶する。
【0023】
通信部13は通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、ブロックチェーン2のノード21、患者端末3、薬局端末4または情報処理端末5等との間で情報の送受信を行う。
【0024】
入力部14は、マウス、キーボード、タッチパネルまたはボタン等の入力デバイスであり、受け付けた操作情報を制御部11へ出力する。表示部15は、液晶ディスプレイ又は有機EL(electroluminescence)ディスプレイ等であり、制御部11の指示に従い各種情報を表示する。
【0025】
読取部16は、CD(Compact Disc)-ROM、またはDVD(Digital Versatile Disc)-ROMを含む可搬型記憶媒体1aを読み取る。制御部11が読取部16を介して、制御プログラム1Pを可搬型記憶媒体1aより読み取り、大容量記憶部17に記憶しても良い。また、ネットワークN等を介して他のコンピュータから制御部11が制御プログラム1Pをダウンロードし、大容量記憶部17に記憶しても良い。さらにまた、半導体メモリ1bから、制御部11が制御プログラム1Pを読み込んでも良い。
【0026】
大容量記憶部17は、例えばHDD(Hard disk drive:ハードディスク)、またはSSD(Solid State Drive:ソリッドステートドライブ)等の記録媒体を備える。大容量記憶部17は、患者DB(database)171、医薬品DB172、処方箋DB173及びお薬手帳DB174を含む。
【0027】
患者DB171は、患者に関する情報を記憶している。医薬品DB172は、医薬品に関する情報(薬剤コード及び名称等)を記憶している。処方箋DB173は、患者に処方された処方箋の医薬品に関する情報を記憶している。お薬手帳DB174は、患者のお薬手帳に記録された医薬品に関する情報を記憶している。
【0028】
なお、本実施形態において記憶部12及び大容量記憶部17は一体の記憶装置として構成されていても良い。また、大容量記憶部17は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部17はサーバ1に接続された外部記憶装置であっても良い。
【0029】
サーバ1は、種々の情報処理及び制御処理等をコンピュータ単体で実行しても良いし、複数のコンピュータで分散して実行しても良い。また、サーバ1は、1台のサーバ内に設けられた複数の仮想マシンによって実現されても良いし、クラウドサーバを用いて実現されても良い。
【0030】
図3は、患者DB171及び医薬品DB172のレコードレイアウトの一例を示す説明図である。
患者DB171は、患者DID(Decentralized Identifier)列、氏名列、性別列及び年齢列を含む。患者DID列は、各患者を識別するために、一意に特定される患者のDIDを記憶している。
【0031】
DIDは、ユーザが自身の属性情報に関するコントロール権を確保した上で、各データ保有者が保有するユーザの属性情報のうち必要な情報を、ユーザの許可した範囲で連携し合う分散型アイデンティティ(非中央集権型ID)である。DIDは、ブロックチェーン2により構築された分散型システムを用いて、重複しない一意な識別子を実現することにより、不変性、または外部からの閲覧・改ざんに対する高い信頼性を維持することができる。なお、本実施形態では、患者DIDの例を説明したが、これに限らず、患者を特定するための従来(既存)の患者ID、顔または指紋による生体認証情報等を利用しても良い。
【0032】
氏名列は、患者の氏名を記憶している。性別列は、患者の性別を記憶している。年齢列は、患者の年齢を記憶している。
【0033】
医薬品DB172は、薬剤コード列、一般名列及び商品名列を含む。薬剤コード列は、医薬品を一元的に管理するため、化学物質としての医薬品コードを記憶している。例えば、薬剤コード列には、厚生労働省により管理されており、薬価ごとに設定されている薬価基準収載医薬品コードが記憶されても良い。
【0034】
一般名列は、医薬品の一般名を記憶している。一般名は、医薬品の有効成分となる化学物質の名前である。商品名列は、医薬品の商品名を記憶している。商品名は、製薬会社等が付けた医薬品の名前である。
【0035】
図4は、処方箋DB173及びお薬手帳DB174のレコードレイアウトの一例を示す説明図である。
処方箋DB173は、処方箋ID列、患者DID列、薬剤コード列、用法列、用量列及び処方箋日付列を含む。処方箋ID列は、各処方箋データを識別するために、一意に特定される処方箋データのIDを記憶している。患者DID列は、患者を特定する患者DIDを記憶している。薬剤コード列は、医薬品の薬剤コードを記憶している。用法列は、医薬品の用法(例えば、「食後 朝昼夜 1日3回」)を記憶している。用量列は、医薬品に含まれている化学成分の量(例えば、「5mg 錠剤」)を記憶している。処方箋日付列は、患者に処方箋を処方した日付を記憶している。
【0036】
お薬手帳DB174は、お薬手帳ID列、患者DID列、処方箋ID列、薬剤コード列、用法列、用量列、お薬手帳日付列及び薬局名称列を含む。お薬手帳ID列は、各お薬手帳データを識別するために、一意に特定されるお薬手帳データのIDを記憶している。患者DID列は、患者を特定する患者DIDを記憶している。
【0037】
処方箋ID列は、処方箋を特定する処方箋IDを記憶している。薬剤コード列は、医薬品の薬剤コードを記憶している。用法列は、医薬品の用法を記憶している。用量列は、医薬品に含まれている化学成分の量を記憶している。お薬手帳日付列は、お薬手帳に医薬品の名称、用法及び用量等を記録した日付を記憶している。薬局名称列は、医薬品の調剤を実施した薬局の名称を記憶している。
【0038】
なお、上述した各DBの記憶形態は一例であり、データ間の関係が維持されていれば、他の記憶形態であっても良い。
【0039】
図5は、ブロックチェーン2のノード21の構成例を示すブロック図である。ブロックチェーン2のノード21は、制御部211、記録部212、通信部213、受付部214、出力部215、ブロック生成部216、ブロック検証部217及びブロック共有部218を含む。各構成はバスBで接続されている。
【0040】
制御部211は、他ノード21(端末)の制御部と自律分散的に協調して、最新のブロックチェーン(台帳:ブロックチェーンデータのコピー)を記録部212に保持する。記録部212には、分散型のネットワークへブロードキャストされたトランザクションが含まれたブロックチェーン(台帳)、及びブロック内の情報の検証処理に必要となる情報等が記憶される。
【0041】
通信部213は、通信に関する処理を行うための通信モジュールである。受付部214は、外部ノードから、ブロックチェーン2が管理するブロックチェーンである分散型のネットワークに記録する情報を受け付ける。出力部215は、外部ノードからの要求に応じて、自身が保持するブロックチェーンの情報を出力する。
【0042】
ブロック生成部216は、受付部214が受け付けた情報を基に、ブロックチェーンに追加するブロックを生成する。ブロック生成部216は、前ブロックに基づく情報と受付部214が受け付けた情報とを含むブロックを生成する。
【0043】
また、ブロック生成部216は、自身が生成したブロックまたは後述するブロック共有部218を介してブロックチェーン2の他のノード21が生成したブロックに対して、所定のコンセンサス処理として、例えば、ノンスを探索する処理または署名を付与する処理を行った上で、自身が管理するブロックチェーン(台帳)にブロックを追加する。
【0044】
なお、ブロック生成部216が生成したブロックに対して、複数のノード21が所定のコンセンサス処理を行って得られたものが、最終的にブロックチェーン2に追加されるブロックとなる。
【0045】
ブロック検証部217は、自身が保持するブロックチェーン2にブロックを追加する際に、該ブロック内の情報の検証を行う。通常、追加対象とされるブロックは、自ノードを含むノード21群において最も早く規則が満たされたブロックであるが、悪意のあるノード21が含まれていた場合等を考慮して、実際に規則が満たされているか等を検証しても良い。
【0046】
ブロック共有部218は、ブロックチェーン2に属するノード21間で情報交換を行う。ブロック共有部218は、より具体的には、受付部214が受け付けた情報、ブロック生成部216が生成したブロック、及び他のノード21から受け付けたブロック等を、適宜他のノード21に送信する。これにより、可能な限り全てのノード21でこれらの情報および最新のブロックチェーン2を共有する。
【0047】
なお、図5の構成はあくまで一例であって、ブロックチェーン2のノード21は、改ざんが困難なブロックチェーン2を複数のノードが共有して管理するための所定のコンセンサス処理を実行可能であり、外部ノードからの要求に応じて分散型のネットワークへの情報追加、及び分散型のネットワークに記録された情報の参照が可能なノードであれば、具体的な構成は問わない。
【0048】
なお、サーバ1は、ブロックチェーン2のノード21であっても良い。
【0049】
図6は、患者端末3の構成例を示すブロック図である。患者端末3は、制御部31、記憶部32、通信部33、入力部34、表示部35及び撮影部36を含む。各構成はバスBで接続されている。
【0050】
制御部31は、CPUまたはMPU等の演算処理装置を含み、記憶部32に記憶された制御プログラム3P(プログラム製品)を読み出して実行することにより、患者端末3に係る種々の情報処理及び制御処理等を行う。また、制御プログラム3Pには、例えばイーサリアムのGeth等のスマートコントラクトの生成・実行、仮想通貨の送金、アカウントの作成、またはマイニング等の処理を実行するプログラムが含まれる。なお、図6では制御部31を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
【0051】
記憶部32は、RAM、ROM等のメモリ素子を含み、制御部31が処理を実行するために必要な制御プログラム3P又はデータ等を記憶している。また、記憶部32は、制御部31が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部33は、通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、サーバ1等と情報の送受信を行う。
【0052】
入力部34は、キーボード、マウスまたは表示部35と一体化したタッチパネルでも良い。表示部35は、液晶ディスプレイ又は有機ELディスプレイ等であり、制御部31の指示に従い各種情報を表示する。撮影部36は、例えばCCD(Charge Coupled Device)カメラ、またはCMOS(Complementary Metal Oxide Semiconductor)カメラ等の撮影装置である。
【0053】
図7は、薬局端末4及び情報処理端末5の構成例を示すブロック図である。
薬局端末4は、制御部41、記憶部42、通信部43、入力部44及び表示部45を含む。各構成はバスBで接続されている。
【0054】
制御部41は、CPUまたはMPU等の演算処理装置を含み、記憶部42に記憶された制御プログラム4P(プログラム製品)を読み出して実行することにより、薬局端末4に係る種々の情報処理及び制御処理等を行う。なお、図7では制御部41を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
【0055】
なお、薬局端末4の記憶部42、通信部43、入力部44及び表示部45に関しては、患者端末3の記憶部32、通信部33、入力部34及び表示部35と同様であるため、説明を省略する。
【0056】
情報処理端末5は、制御部51、記憶部52、通信部53、入力部54及び表示部55を含む。各構成はバスBで接続されている。なお、情報処理端末5の構成に関しては、薬局端末4の構成と同様であるため、説明を省略する。
【0057】
図8は、医薬品インテグリティ判定システムの動作を説明する説明図である。
まず、処方箋データの登録処理を説明する。患者端末3は、患者の患者DIDを取得する。例えば、患者DIDが予め患者DB171に記憶された場合、患者端末3は、サーバ1の患者DB171から患者DIDを取得する。
【0058】
なお、患者DIDが患者に発行されていない場合、患者DIDの発行処理が行われる。具体的には、患者端末3は、患者情報(患者の氏名、性別または年齢等)の入力を受け付ける。患者端末3は、患者に対して患者DIDを発行する。例えば患者端末3は、Ethereum(登録商標)のERC725/735、またはSovrin Network等のプラットフォームを利用することにより、患者を特定する患者DIDを発行する。患者端末3は、発行した患者DIDに対応付けて、受け付けた患者情報をサーバ1に送信する。サーバ1は、患者端末3から送信された患者DID及び患者情報を受信する。サーバ1は、受信した患者DIDに対応付けて、患者情報を患者DB171に記憶する。
【0059】
なお、患者端末3の代わりに、サーバ1は、患者に対して患者DIDを発行しても良い。具体的には。患者端末3は、患者情報の入力を受け付け、受け付けた患者情報をサーバ1に送信する。サーバ1は、患者端末3から送信された患者情報に対し、例えばERC725/735を利用することにより、患者を特定する患者DIDを発行する。
【0060】
患者の患者端末3は、撮影部36を介して、当該患者に処方された処方箋を撮影する。患者端末3は、撮影した処方箋の画像を患者DIDに対応付けてサーバ1に送信する。サーバ1は、患者端末3から送信された患者DID及び処方箋の画像を受信する。なお、患者による処方箋の撮影に限るものではない。例えば、サーバ1は、医師または医療機関等の端末装置から、患者に処方された処方箋の撮影画像、または電子処方箋等を取得しても良い。
【0061】
サーバ1は、受信した処方箋の画像から処方箋データを抽出(取得)する。処方箋データは、患者に処方された医薬品の薬剤コード、薬剤名称、用法、用量または処方箋日付等を含む。例えば、サーバ1は、処方箋の画像を入力した場合に、当該処方箋の画像中の処方箋データを認識した認識結果を出力するよう学習済みの学習モデルに、受信した処方箋の画像を入力し、当該処方箋の画像に対応する処方箋データを認識した認識結果を出力する。
【0062】
学習モデルは、例えば、DNN(Deep Neural Network(s))、CNN(Convolution Neural Network)、RCNN(Regions with Convolutional Neural Network)、Fast RCNN、Faster RCNN、SSD(Single Shot Multibook Detector)、YOLO(You Only Look Once)、SVM(Support Vector Machine)、ベイジアンネットワーク、トランスフォーマー(Transformer)ネットワーク、または回帰木等の任意の物体検出アルゴリズムを利用して構築されても良い。なお、学習モデルとしては、例えば、Google Cloud Platform(登録商標)のVision APIが提供する学習済みモデル等を用いることができる。
【0063】
なお、処方箋データの認識処理については、機械学習又は深層学習等により学習された文字認識を行う学習モデルに限定されない。例えば、既存の技術であるOCR(Optical Character Recognition)を用いて、処方箋の画像中の処方箋データを抽出しても良い。
【0064】
なお、処方箋データの認識処理は患者端末3側で行われても良い。
【0065】
なお、上述した処方箋データの取得処理に限るものではない。例えば、患者端末3は、患者による処方箋データの入力を受け付け、受け付けた処方箋データをサーバ1に送信しても良い。または、サーバ1は、医師または医療機関等の端末装置から、患者に処方された処方箋データを直接取得しても良い。
【0066】
サーバ1は、取得した処方箋データに対し、処方箋IDを割り振る。サーバ1は、割り振った処方箋IDに対応付けて、患者DID、処方箋データに含まれる医薬品の薬剤コード、用法、用量及び処方箋日付を一つのレコードとして処方箋DB173に記憶する。なお、医薬品が複数である場合、サーバ1は、当該処方箋ID及び処方箋日付に対応付けて、それぞれの医薬品の薬剤コード、用法及び用量を処方箋DB173に記憶する。
【0067】
サーバ1は、患者DID及び医薬品の薬剤コードを含む処方箋の医薬品に関する第1情報をブロックチェーン2に記録する。なお、処方箋の医薬品に関する情報(患者DID及び薬剤コード等)そのものはブロックチェーン2に記録されても良い。または、処方箋の医薬品に関する情報(患者DID及び薬剤コード等)に基づいて算出されたハッシュ値はブロックチェーン2に記録されても良い。以下では、第1情報が、処方箋の医薬品に関する情報に基づいて算出されたハッシュ値(以下、処方箋ハッシュ値と読み替える)である例を説明する。
【0068】
サーバ1は、暗号学的ハッシュ関数を用いて、処方箋の医薬品に関する情報に基づいて処方箋ハッシュ値を算出する。具体的には、サーバ1は、例えばSHA2-256アルゴリズムを用いたハッシュ関数を採用し、患者DIDと、医薬品の薬剤コードとを含む処方箋ハッシュ値を算出する。なお、ハッシュ関数に限らず、他の暗号化方式であっても良い。
【0069】
サーバ1は、処方箋IDに対応付けて、患者DID及び薬剤コードを含む処方箋ハッシュ値をブロックチェーン2のいずれかのノード21に送信する。ブロックチェーン2のノード21は、サーバ1から送信された処方箋ID及び処方箋ハッシュ値を受信して記録する。
【0070】
なお、医薬品が複数である場合、サーバ1は、処方箋データに含まれるそれぞれの医薬品の薬剤コードを取得する。サーバ1は、取得したそれぞれの医薬品の薬剤コードを患者DIDに対応付けて、それぞれの医薬品に対応する処方箋ハッシュ値を算出する。
【0071】
例えば、患者に処方された処方箋には、医薬品A及び医薬品Bが含まれる。医薬品Aの薬剤コードが「114901932」であり、且つ、医薬品Bの薬剤コードが「114901933」である。サーバ1は、患者DIDと、医薬品Aの薬剤コード(114901932)とを含む第1処方箋ハッシュ値を算出する。サーバ1は、患者DIDと、医薬品Bの薬剤コード(114901933)とを含む第2処方箋ハッシュ値を算出する。
【0072】
サーバ1は、処方箋IDに対応付けて、患者DID及び薬剤コードを含む複数の処方箋ハッシュ値(例えば、第1処方箋ハッシュ値及び第2処方箋ハッシュ値)をブロックチェーン2のいずれかのノード21に送信する。ブロックチェーン2のノード21は、サーバ1から送信された処方箋ID及び複数の処方箋ハッシュ値を受信する。ノード21は、受信した処方箋IDに対応付けて、複数の処方箋ハッシュ値を記録する。
【0073】
次に、お薬手帳データの登録処理を説明する。患者端末3は、患者に処方された処方箋と、当該処方箋に対応するお薬手帳との開示に関する承諾情報を受け付ける。承諾情報は、処方箋とお薬手帳とを開示可能であるか否かを示す情報である。例えば、患者端末3は、患者による承諾情報の入力を受け付けても良い。または、患者端末3は、撮影部36を介して、承諾情報の入力ページ(画面)のURL等が埋め込まれた2次元コードを通じて、承諾情報を受け付けても良い。
【0074】
2次元コードは、例えばQRコード(登録商標)、DataMatrix(登録商標)又はVeriCode(登録商標)である。具体的には、患者端末3は、2次元コードを読み取り、読み取った2次元コードから承諾情報の入力ページのURLを取得する。患者端末3は、取得した入力ページのURLで指定されるサイトに掲載されている入力ページを通じて、承諾情報を取得する。
【0075】
患者端末3は、受け付けた承諾情報を患者DIDに対応付けてサーバ1に送信する。サーバ1は、患者端末3から送信された患者DID及び承諾情報を受信する。サーバ1は、受信した承諾情報に基づき、処方箋とお薬手帳との開示承諾が得られたか否かを判定する。
【0076】
サーバ1は、処方箋とお薬手帳との開示承諾が得られたと判定した場合、患者DIDに対応付けて承諾情報をブロックチェーン2のいずれかのノード21に送信する。ブロックチェーン2のノード21は、サーバ1から送信された患者DID及び承諾情報を受信して記録する。
【0077】
なお、承諾情報は、患者DIDと、処方箋とお薬手帳とを開示する相手先のDIDとに対応付けて、ブロックチェーン2のノード21に記録されても良い。処方箋とお薬手帳とを開示する相手先は、例えば、医師または薬剤師等を含む。具体的には、サーバ1は、処方箋とお薬手帳とを開示する相手先のDIDを取得する。サーバ1は、患者DID及び相手先のDIDに対応付けて、承諾情報をブロックチェーン2のいずれかのノード21に送信する。ブロックチェーン2のノード21は、サーバ1から送信された患者DID、相手先のDID及び承諾情報を受信して記録する。
【0078】
サーバ1は、患者DID及び承諾情報を薬局端末4に送信する。薬局端末4は、サーバ1から送信された患者DID及び承諾情報を受信する。薬局端末4は、受信した承諾情報に応じて、担当者によるお薬手帳データの入力を受け付け、受け付けたお薬手帳データを患者DIDに対応付けてサーバ1に送信する。お薬手帳データは、処方箋に対応して患者のお薬手帳に記録された医薬品の薬剤コード、薬剤名称、用法、用量、お薬手帳日付または薬局名称等を含む調剤データである。
【0079】
サーバ1は、薬局端末4から送信された患者DID及びお薬手帳データを受信する。サーバ1は、受信した患者DIDに基づき、処方箋DB173から処方箋IDを取得する。サーバ1は、受信したお薬手帳データに対し、お薬手帳IDを割り振る。サーバ1は、割り振ったお薬手帳IDに対応付けて、患者DID、処方箋ID、お薬手帳データに含まれる医薬品の薬剤コード、用法、用量、お薬手帳日付及び薬局名称を一つのレコードとしてお薬手帳DB174に記憶する。
【0080】
なお、医薬品が複数である場合、サーバ1は、お薬手帳ID、お薬手帳日付及び薬局名称に対応付けて、それぞれの医薬品の薬剤コード、用法及び用量をお薬手帳DB174に記憶する。
【0081】
サーバ1は、患者DID及び医薬品の薬剤コードを含むお薬手帳に記録された医薬品に関する第2情報をブロックチェーン2に記録する。なお、お薬手帳に記録された医薬品に関する情報(患者DID及び薬剤コード等)そのものはブロックチェーン2に記録されても良い。または、お薬手帳に記録された医薬品に関する情報(患者DID及び薬剤コード等)に基づいて算出されたハッシュ値はブロックチェーン2に記録されても良い。以下では、第2情報が、お薬手帳に記録された医薬品に関する情報に基づいて算出されたハッシュ値(以下、お薬手帳ハッシュ値と読み替える)である例を説明する。
【0082】
サーバ1は、暗号学的ハッシュ関数を用いて、お薬手帳に記録された医薬品に関する情報に基づいてお薬手帳ハッシュ値を算出する。例えばサーバ1は、SHA2-256アルゴリズムを用いたハッシュ関数を採用し、お薬手帳ハッシュ値を算出する。
【0083】
サーバ1は、お薬手帳IDに対応付けて、患者DID及び薬剤コードを含むお薬手帳ハッシュ値をブロックチェーン2のいずれかのノード21に送信する。ブロックチェーン2のノード21は、サーバ1から送信されたお薬手帳ID及びお薬手帳ハッシュ値を受信して記録する。
【0084】
なお、医薬品が複数である場合、サーバ1は、お薬手帳データに含まれるそれぞれの医薬品の薬剤コードを取得する。サーバ1は、取得したそれぞれの医薬品の薬剤コードを患者DIDに対応付けて、それぞれの医薬品に対応するお薬手帳ハッシュ値を算出する。
【0085】
例えば、お薬手帳に記録された医薬品は、医薬品A及び医薬品Bが含まれる。医薬品Aの薬剤コードが「114901932」であり、且つ、医薬品Bの薬剤コードが「114901933」である。サーバ1は、患者DIDと、医薬品Aの薬剤コード(114901932)とを含む第1お薬手帳ハッシュ値を算出する。サーバ1は、患者DIDと、医薬品Bの薬剤コード(114901933)とを含む第2お薬手帳ハッシュ値を算出する。
【0086】
サーバ1は、お薬手帳IDに対応付けて、患者DID及び薬剤コードを含む複数のお薬手帳ハッシュ値(例えば、第1お薬手帳ハッシュ値及び第2お薬手帳ハッシュ値)をブロックチェーン2のいずれかのノード21に送信する。ブロックチェーン2のノード21は、サーバ1から送信されたお薬手帳ID及び複数のお薬手帳ハッシュ値を受信する。ノード21は、受信したお薬手帳IDに対応付けて、複数のお薬手帳ハッシュ値を記録する。
【0087】
続けて、医薬品のインテグリティを判定する処理を説明する。情報処理端末5は、医薬品に対するインテグリティ判定要求を受け付けた場合、受け付けたインテグリティ判定要求をサーバ1に送信する。インテグリティ判定要求には、処方箋ID及びお薬手帳ID等が含まれる。
【0088】
なお、インテグリティ判定要求は、処方箋IDまたはお薬手帳IDのいずれかのみを含んでも良い。この場合、お薬手帳DB174に記憶された処方箋IDとお薬手帳IDとの関係に基づき、インテグリティ判定要求に含まれない処方箋IDまたはお薬手帳IDを取得することができる。
【0089】
サーバ1は、情報処理端末5から送信されたインテグリティ判定要求を受信する。サーバ1は、受信したインテグリティ判定要求に含まれる処方箋IDに基づき、患者DID及び医薬品の薬剤コードを含む処方箋ハッシュ値をブロックチェーン2から取得する。サーバ1は、受信したインテグリティ判定要求に含まれるお薬手帳IDに基づき、患者DID及び医薬品の薬剤コードを含むお薬手帳ハッシュ値をブロックチェーン2から取得する。
【0090】
医薬品が単数である場合、サーバ1は、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致するか否かを判定する。サーバ1は、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致する場合、処方通りに調剤されたと判定する。サーバ1は、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致していない場合、処方通りに調剤されていないと判定する。
【0091】
医薬品が複数である場合、サーバ1は、全体インテグリティ判定処理(以下、レベル1判定処理と読み替える)、及び、医薬品毎のインテグリティ判定処理(以下、レベル2判定処理と読み替える)を行う。
【0092】
具体的には、サーバ1は、処方箋ハッシュ値の数とお薬手帳ハッシュ値の数とが一致するか否かを判定する。サーバ1は、処方箋ハッシュ値の数とお薬手帳ハッシュ値の数とが一致していない場合、お薬手帳IDに対し、処方通りに調剤されていないと判定する。サーバ1は、処方箋ハッシュ値の数とお薬手帳ハッシュ値の数とが一致する場合、レベル2判定処理を行う。
【0093】
レベル2判定処理について、サーバ1は、複数の医薬品のうち、1つの医薬品を取得する。サーバ1は、取得した医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在するか否かを判定する。サーバ1は、当該医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在する場合、当該医薬品に対し、処方通りに調剤されたと判定する。
【0094】
サーバ1は、当該医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在していない場合、当該医薬品に対し、処方通りに調剤されていないと判定する。サーバ1は、複数の医薬品のうち、次の医薬品を取得する。サーバ1は、上述した判定処理と同様に、取得した医薬品に対し、処方通りに調剤されたか否かを判定する。
【0095】
レベル1判定処理について、サーバ1は、各医薬品におけるレベル2判定処理を実行した後に、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致した数を算出する。サーバ1は、一致した数が医薬品の総数と同じである場合、お薬手帳IDに対し、処方通りに調剤されたと判定する。サーバ1は、一致した数が医薬品の総数とは異なる場合、お薬手帳IDに対し、処方通りに調剤されていないと判定する。
【0096】
サーバ1は、判定した判定結果に基づき、処方通りに調剤されたか否かを示す情報を情報処理端末5に送信する。情報処理端末5は、サーバ1から送信された処方通りに調剤されたか否かを示す情報を受信して表示する。
【0097】
図9は、判定結果の表示画面の一例を示す説明図である。なお、図9は、医薬品が複数である例を説明したが、医薬品が単数である場合にも同様に適用することができる。当該画面は、患者番号表示欄11f、お薬手帳表示欄11g、処方箋表示欄11c、レベル1判定結果表示欄11d及びレベル2判定結果表示欄11eを含む。
【0098】
患者番号表示欄11fは、患者を特定する患者DIDを表示する表示欄である。なお、患者番号表示欄11fには、患者の診察券番号が表示されても良い。お薬手帳表示欄11gは、薬局名称、お薬手帳ID(調剤実施ID)、お薬手帳に記録された医薬品及び容量等を含むお薬手帳データ(調剤実施情報)を表示する表示欄である。
【0099】
処方箋表示欄11cは、処方箋の医薬品、用法、用量及び処方箋日付等を含む処方箋データを表示する表示欄である。レベル1判定結果表示欄11dは、レベル1判定処理により得られた判定結果を表示する表示欄である。レベル2判定結果表示欄11eは、レベル2判定処理により得られた判定結果を表示する表示欄である。
【0100】
サーバ1は、複数の医薬品に対し、レベル1判定処理及びレベル2判定処理を行う。例えば、患者に処方された医薬品は、「医薬品A」、「医薬品B」及び「医薬品C」を含む。
【0101】
まず、サーバ1は、それぞれの医薬品に対してレベル2判定処理を行う。サーバ1は、各医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在する場合、各医薬品に対し、処方通りに調剤されたことを示す情報を第1態様(例えば、「◎」)で出力する。サーバ1は、各医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在していない場合、各医薬品に対し、処方通りに調剤されていないことを示す情報を第2態様(例えば、「×」)で出力する。
【0102】
表示(出力)態様は、例えば、テキスト、色、形状、サイズ、模様、または、アイコン等に描かれている図もしくは絵柄等であっても良い。例えば、第1態様が緑丸で示され、第2態様が赤丸で示される。
【0103】
例えば、サーバ1は、「医薬品A」及び「医薬品B」のそれぞれに対し、処方通りに調剤されたと判定した場合、処方通りに調剤されたことを示す情報を「◎」で出力する。または、サーバ1は、「医薬品C」に対し、処方通りに調剤されていないと判定した場合、処方通りに調剤されていないことを示す情報を「×」で出力する。
【0104】
サーバ1は、各医薬品におけるレベル2判定処理を実行した後に、医薬品の全体におけるレベル1判定処理を行う。具体的には、サーバ1は、「医薬品A」、「医薬品B」及び「医薬品C」のそれぞれに対し、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致した数を算出する。
【0105】
サーバ1は、一致した数が医薬品の総数(例えば、3)と同じである場合、お薬手帳IDに対し、処方通りに調剤されたことを示す情報を第1態様(例えば、「◎」)で出力する。サーバ1は、一致した数が医薬品の総数とは異なる場合、お薬手帳IDに対し、処方通りに調剤されていないことを示す情報を第2態様(例えば、「×」)で出力する。
【0106】
サーバ1は、処方箋IDに基づき、薬剤コード、用法、用量及び処方箋日付を処方箋DB173から取得する。サーバ1は、取得した薬剤コードに基づき、医薬品の商品名を医薬品DB172から取得する。サーバ1は、お薬手帳IDに基づき、薬局名称をお薬手帳DB174から取得する。サーバ1は、患者DID、レベル1判定処理の判定結果、レベル2判定処理の判定結果、お薬手帳ID、薬局名称、医薬品の商品名、用法、用量及び処方箋日付を情報処理端末5に送信する。
【0107】
情報処理端末5は、サーバ1から送信された患者DID、レベル1判定処理の判定結果、レベル2判定処理の判定結果、お薬手帳ID、薬局名称、医薬品の商品名、用法、用量及び処方箋日付を受信して表示する。
【0108】
図示のように、患者DIDは患者番号表示欄11fに表示され、薬局名称及びお薬手帳ID(調剤実施ID)はお薬手帳表示欄11gに表示される。医薬品の商品名、用法、用量及び処方箋日付(処方日)は処方箋表示欄11cに表示される。レベル1判定処理の判定結果はレベル1判定結果表示欄11dに表示され、レベル2判定処理の判定結果はレベル2判定結果表示欄11eに表示される。
【0109】
図示のように、患者に処方された医薬品は、「医薬品A」、「医薬品B」及び「医薬品C」を含む。レベル1判定結果表示欄11dに、医薬品の全体に対し、処方通りに調剤されていないことを示す情報が「×」で表示される。
【0110】
処方された「医薬品A」に対応するレベル2判定結果表示欄11eに、処方通りに調剤されたことを示す情報が「◎」で表示される。また、処方された「医薬品B」に対応するレベル2判定結果表示欄11eに、処方通りに調剤されたことを示す情報が「◎」で表示される。また、処方された「医薬品C」に対応するレベル2判定結果表示欄11eに、処方通りに調剤されていないことを示す情報が「×」で表示される。
【0111】
図10は、処方箋データを登録する際の処理手順を示すフローチャートである。患者端末3の制御部31は、通信部33を介して、患者の患者DIDをサーバ1の大容量記憶部17の患者DB171から取得する(ステップS301)。なお、取得された患者DIDは患者端末3の記憶部32に記憶されても良い。これにより、一度取得された患者DIDを再利用することができる。
【0112】
制御部31は、撮影部36を介して、当該患者に処方された処方箋を撮影する(ステップS302)。制御部31は、通信部33を介して、撮影した処方箋の画像を患者DIDに対応付けてサーバ1に送信する(ステップS303)。
【0113】
サーバ1の制御部11は、患者端末3から送信された患者DID及び処方箋の画像を通信部13により受信する(ステップS101)。制御部11は、例えば、処方箋の画像を入力した場合に、当該処方箋の画像中の処方箋データを認識した認識結果を出力するよう学習済みの学習モデルを用いて、受信した処方箋の画像から処方箋データを抽出する(ステップS102)。処方箋データは、医薬品の薬剤コード、薬剤名称、用法、用量または処方箋日付等を含む。
【0114】
制御部11は、抽出した処方箋データを大容量記憶部17の処方箋DB173に記憶する(ステップS103)。具体的には、制御部11は、取得した処方箋データに対し、処方箋IDを割り振る。制御部11は、割り振った処方箋IDに対応付けて、患者DID、医薬品の薬剤コード、用法、用量及び処方箋日付を一つのレコードとして処方箋DB173に記憶する。
【0115】
制御部11は、例えばSHA2-256アルゴリズムを用いたハッシュ関数を採用し、患者DIDと、医薬品の薬剤コードとを含む処方箋ハッシュ値を算出する(ステップS104)。制御部11は、処方箋IDと、算出した処方箋ハッシュ値とを含むトランザクションを作成する(ステップS105)。制御部11は、作成したトランザクションを通信部13によりブロックチェーン2のいずれかのノード21に送信する(ステップS106)。
【0116】
ブロックチェーン2のノード21の制御部211は、サーバ1から送信されたトランザクションを通信部213により受信する(ステップS201)。ノード21の制御部211は、受信したトランザクションに基づいて、記録部212に処方箋ハッシュ値を処方箋IDに関連付けて記録する(ステップS202)。
【0117】
具体的には、トランザクションを受信したノード21の制御部211は、ブロック生成部216を介して、受信したトランザクションに含まれた処方箋ID及び処方箋ハッシュ値と、自身が管理しているブロックチェーン(台帳)2の情報とを基に作成した前ブロック管理情報とを少なくとも含むブロックを生成する。そして、ブロックチェーン2のノード21各々の制御部211は、所定のコンセンサス処理をブロック生成部216により実行する。
【0118】
ブロックチェーン2は、ブロックとよばれる所定のデータ構造を有するデータ群を時系列に並べたものであり、取引内容を記した台帳としての役割を有する。各ブロックは、取引内容等の当該ブロックに記録したいデータの他に、一つ以上前のブロック(以下、前ブロックという)の情報と、改ざんの有無を検知するための情報(ノンスまたは署名等)とを含む。ノンスは、あるデータ領域に対して、その領域内のデータを一方向性関数により処理したときに得られる値が予め決められた規則を満たすように設定される、当該データ領域内の値である。
【0119】
ブロックチェーン2には、2台以上のノードが参加する所定のコンセンサスアルゴリズムに従った処理を経て新たなブロックが追加される。例えば、コンセンサスアルゴリズムの一つであるPoW(Proof of Work)では、前ブロックの情報とノンスとを含む各ブロック(データ群)に対して、「ブロックのHash値が閾値以下であること」といった規則が予め決められており、ブロックを追加する際に、そのような規則を満たすようなノンスを複数のノードが同時並列的に探索する処理がブロック検証部217により行われる。
【0120】
なお、PoW以外にもBFT(Byzantine fault tolerance)、PoS(Proof of Stake)、またはDPoS(Delegated Proof of Stake)等のコンセンサスアルゴリズムがある。ブロックチェーン2のノード21各々の制御部211は、所定のコンセンサス処理を実行した後に、ブロック共有部218を介して、ブロック生成部216が生成したブロックを記録部212に記録(追加)する。
【0121】
図11及び図12は、お薬手帳データを登録する際の処理手順を示すフローチャートである。患者端末3の制御部31は、患者に処方された処方箋と、当該処方箋に対応するお薬手帳との開示に関する承諾情報を受け付ける(ステップS311)。例えば制御部31は、患者による承諾情報の入力を入力部34により受け付けても良い。または、制御部31は、撮影部36を介して、承諾情報の入力ページのURL等が埋め込まれた2次元コードを通じて、承諾情報を受け付けても良い。
【0122】
制御部31は、通信部33を介して、受け付けた承諾情報を患者DIDに対応付けてサーバ1に送信する(ステップS312)。サーバ1の制御部11は、患者端末3から送信された患者DID及び承諾情報を通信部13により受信する(ステップS111)。制御部11は、受信した承諾情報に基づき、処方箋とお薬手帳との開示承諾が得られたか否かを判定する(ステップS112)。
【0123】
制御部11は、処方箋とお薬手帳との開示承諾が得られていないと判定した場合(ステップS112でNO)、通信部13を介して、開示不可の旨を含むメッセージを薬局端末4に送信する(ステップS122)。制御部11は、処理を終了する。
【0124】
制御部11は、処方箋とお薬手帳との開示承諾が得られたと判定した場合(ステップS112でYES)、患者DIDと承諾情報とを含むトランザクションを作成する(ステップS113)。制御部11は、作成したトランザクションを通信部13によりブロックチェーン2のいずれかのノード21に送信する(ステップS114)。
【0125】
ブロックチェーン2のノード21の制御部211は、サーバ1から送信されたトランザクションを通信部213により受信する(ステップS211)。ノード21の制御部211は、受信したトランザクションに基づいて、承諾情報を患者DIDに関連付けて記録する(ステップS212)。サーバ1の制御部11は、患者DID及び承諾情報を通信部13により薬局端末4に送信する(ステップS115)。
【0126】
薬局端末4の制御部41は、サーバ1から送信された患者DID及び承諾情報を通信部43により受信する(ステップS411)。制御部41は、受信した承諾情報に応じて、担当者によるお薬手帳データの入力を入力部44により受け付ける(ステップS412)。お薬手帳データは、お薬手帳に記録された医薬品の薬剤コード、薬剤名称、用法、用量、お薬手帳日付または薬局名称等を含む。
【0127】
制御部41は、通信部43を介して、受け付けたお薬手帳データを患者DIDに対応付けてサーバ1に送信する(ステップS413)。サーバ1の制御部11は、薬局端末4から送信された患者DID及びお薬手帳データを通信部13により受信する(ステップS116)。制御部11は、受信した患者DIDに基づき、大容量記憶部17の処方箋DB173から処方箋IDを取得する(ステップS117)。
【0128】
制御部11は、受信したお薬手帳データを大容量記憶部17のお薬手帳DB174に記憶する(ステップS118)。具体的には、制御部11は、受信したお薬手帳データに対し、お薬手帳IDを割り振る。制御部11は、割り振ったお薬手帳IDに対応付けて、患者DID、処方箋ID、医薬品の薬剤コード、用法、用量、お薬手帳日付及び薬局名称を一つのレコードとしてお薬手帳DB174に記憶する。
【0129】
制御部11は、例えばSHA2-256アルゴリズムを用いたハッシュ関数を採用し、患者DIDと、医薬品の薬剤コードとを含むお薬手帳ハッシュ値を算出する(ステップS119)。制御部11は、お薬手帳IDと、作成したお薬手帳ハッシュ値とを含むトランザクションを作成する(ステップS120)。制御部11は、作成したトランザクションを通信部13によりブロックチェーン2のいずれかのノード21に送信する(ステップS121)。
【0130】
ブロックチェーン2のノード21の制御部211は、サーバ1から送信されたトランザクションを通信部213により受信する(ステップS213)。ノード21の制御部211は、受信したトランザクションに基づいて、記録部212にお薬手帳ハッシュ値をお薬手帳IDに関連付けて記録する(ステップS214)。なお、記録部212へのお薬手帳ハッシュ値の記録処理に関しては、処方箋ハッシュ値の記録処理と同様であるため、説明を省略する。
【0131】
図13は、医薬品のインテグリティを判定する際の処理手順を示すフローチャートである。情報処理端末5の制御部51は、医薬品に対するインテグリティ判定要求を入力部54により受け付ける(ステップS531)。インテグリティ判定要求には、処方箋ID及びお薬手帳ID等が含まれる。制御部51は、受け付けたインテグリティ判定要求を通信部53によりサーバ1に送信する(ステップS532)。
【0132】
サーバ1の制御部11は、情報処理端末5から送信されたインテグリティ判定要求を通信部13により受信する(ステップS131)。制御部11は、受信したインテグリティ判定要求に含まれる処方箋IDを通信部13によりブロックチェーン2のいずれかのノード21に送信する(ステップS132)。ブロックチェーン2のノード21の制御部211は、サーバ1から送信された処方箋IDを通信部213により受信する(ステップS231)。
【0133】
ノード21の制御部211は、受信した処方箋IDに基づいて、患者DID及び医薬品の薬剤コードを含む処方箋ハッシュ値を記録部212から取得する(ステップS232)。ノード21の制御部211は、取得した処方箋ハッシュ値を通信部213によりサーバ1に送信する(ステップS233)。
【0134】
サーバ1の制御部11は、ブロックチェーン2から送信された処方箋ハッシュ値を通信部13により受信する(ステップS133)。制御部11は、インテグリティ判定要求に含まれるお薬手帳IDを通信部13によりブロックチェーン2のいずれかのノード21に送信する(ステップS134)。ブロックチェーン2のノード21の制御部211は、サーバ1から送信されたお薬手帳IDを通信部213により受信する(ステップS234)。
【0135】
ノード21の制御部211は、受信したお薬手帳IDに基づいて、患者DID及び医薬品の薬剤コードを含むお薬手帳ハッシュ値を記録部212から取得する(ステップS235)。ノード21の制御部211は、取得したお薬手帳ハッシュ値を通信部213によりサーバ1に送信する(ステップS236)。
【0136】
サーバ1の制御部11は、ブロックチェーン2から送信されたお薬手帳ハッシュ値を通信部13により受信する(ステップS135)。なお、処方箋ハッシュ値及びお薬手帳ハッシュ値の取得順序は限定されるものでなく、例えば、お薬手帳ハッシュ値を取得した後に、処方箋ハッシュ値を取得しても良い。
【0137】
制御部11は、患者に処方された医薬品が単数であるか否かを判定する(ステップS136)。制御部11は、医薬品が単数でない場合(ステップS136でNO)、複数判定処理のサブルーチンを実行する(ステップS138)。制御部11は、後述するステップS139の処理に遷移する。制御部11は、医薬品が単数である場合(ステップS136でYES)、単数判定処理のサブルーチンを実行する(ステップS137)。なお、単数判定処理及び複数判定処理のサブルーチンに関しては後述する。
【0138】
制御部11は、単数判定処理または複数判定処理により得られた判定結果を通信部13により情報処理端末5に送信する(ステップS139)。情報処理端末5の制御部51は、サーバ1から送信された判定結果を通信部53により受信する(ステップS533)。制御部51は、受信した判定結果を表示部55により表示し(ステップS534)、処理を終了する。
【0139】
判定結果には、処方通りに調剤されたか否かを示す情報が含まれる。また、判定結果には、医薬品の薬剤名称、用法及び用量等が含まれても良い。例えば、サーバ1は、患者に処方された医薬品に対し、処方通りに調剤されたと判定した場合、当該医薬品の処方箋IDに基づき、処方箋の医薬品の薬剤名称(例えば、商品名)、用法、用量及び処方箋日付を医薬品DB172及び処方箋DB173から取得する。サーバ1は、処方箋IDに対応するお薬手帳IDに基づき、当該医薬品のお薬手帳日付をお薬手帳DB174から取得する。
【0140】
サーバ1は、処方通りに調剤されたことを示す情報と、取得した当該医薬品の薬剤名称、用法、用量、処方箋日付及びお薬手帳日付とを含む判定結果を情報処理端末5に送信する。
【0141】
または、サーバ1は、患者に処方された医薬品に対し、処方通りに調剤されていないと判定した場合、当該医薬品の処方箋IDに基づき、処方箋の医薬品の薬剤名称、用法、用量及び処方箋日付を医薬品DB172及び処方箋DB173から取得する。サーバ1は、処方箋IDに対応するお薬手帳IDに基づき、お薬手帳に記録された医薬品の薬剤名称、用法、用量及びお薬手帳日付を医薬品DB172及びお薬手帳DB174から取得する。
【0142】
サーバ1は、処方通りに調剤されていないことを示す情報と、取得した処方箋の医薬品の薬剤名称、用法、用量及び処方箋日付と、取得したお薬手帳に記録された医薬品の薬剤名称、用法、用量及びお薬手帳日付とを含む判定結果を情報処理端末5に送信する。
【0143】
図14は、単数判定処理のサブルーチンの処理手順を示すフローチャートである。サーバ1の制御部11は、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致するか否かを判定する(ステップS01)。制御部11は、処方箋ハッシュ値とお薬手帳ハッシュ値が一致する場合(ステップS01でYES)、処方通りに調剤されたと判定する(ステップS02)。制御部11は、単数判定処理のサブルーチンを終了してリターンする。
【0144】
制御部11は、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致していない場合(ステップS01でNO)、処方通りに調剤されていないと判定する(ステップS03)。制御部11は、単数判定処理のサブルーチンを終了してリターンする。
【0145】
図15は、複数判定処理のサブルーチンの処理手順を示すフローチャートである。サーバ1の制御部11は、処方箋ハッシュ値の数とお薬手帳ハッシュ値の数とが一致するか否かを判定する(ステップS11)。制御部11は、処方箋ハッシュ値の数とお薬手帳ハッシュ値の数とが一致していない場合(ステップS11でNO)、レベル1判定処理における処方通りに調剤されていないと判定する(ステップS20)。制御部11は、複数判定処理のサブルーチンを終了してリターンする。
【0146】
制御部11は、処方箋ハッシュ値の数とお薬手帳ハッシュ値の数とが一致する場合(ステップS11でYES)、複数の医薬品のうち、1つの医薬品を取得する(ステップS12)。制御部11は、取得した医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在するか否かを判定する(ステップS13)。
【0147】
制御部11は、当該医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在していない場合(ステップS13でNO)、当該医薬品に対し、レベル2判定処理における処方通りに調剤されていないと判定する(ステップS15)。制御部11は、後述するステップS16の処理に遷移する。制御部11は、当該医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在する場合(ステップS13でYES)、当該医薬品に対し、レベル2判定処理における処方通りに調剤されたと判定する(ステップS14)。
【0148】
制御部11は、複数の医薬品のうち、当該医薬品が最後の医薬品であるか否かを判定する(ステップS16)。制御部11は、当該医薬品が最後の医薬品でない場合(ステップS16でNO)、ステップS12の処理に戻る。制御部11は、当該医薬品が最後の医薬品である場合(ステップS16でYES)、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致した数を算出する(ステップS17)。
【0149】
制御部11は、一致した数が医薬品の総数と同じであるか否かを判定する(ステップS18)。制御部11は、一致した数が医薬品の総数と同じである場合(ステップS18でYES)、レベル1判定処理における処方通りに調剤されたと判定する(ステップS19)。制御部11は、複数判定処理のサブルーチンを終了してリターンする。制御部11は、一致した数が医薬品の総数とは異なる場合(ステップS18でNO)、ステップS20の処理に遷移する。
【0150】
本実施形態によると、患者に処方された処方箋の医薬品に関する第1情報、及び、当該処方箋に対応して当該患者のお薬手帳に記録された医薬品に関する第2情報をブロックチェーンシステムに記録することが可能となる。
【0151】
本実施形態によると、第1情報と第2情報とが一致するか否か判定した判定結果に基づき、処方通りに調剤されたか否かを示す情報を出力することが可能となる。
【0152】
本実施形態によると、処方通りに調剤されたことを示す情報を第1態様で出力し、または、処方通りに調剤されていないことを示す情報を第2態様で出力することが可能となる。
【0153】
(実施形態2)
実施形態2は、薬局により調剤された医薬品が、患者に処方された医薬品の先発品または後発品である場合、当該医薬品のインテグリティを判定する形態に関する。なお、実施形態1と重複する内容については説明を省略する。
【0154】
患者に処方された医薬品が先発品であり、且つ、薬局により調剤された医薬品が後発品である場合がある。または、患者に処方された医薬品が後発品であり、且つ、薬局により調剤された医薬品が先発品である場合がある。調剤された医薬品が、処方された医薬品の先発品または後発品である場合、医薬品の薬剤コードに対応する医薬品の一般名に基づき、当該医薬品のインテグリティを判定することができる。
【0155】
具体的には、サーバ1は、患者に処方された処方箋の医薬品の一般名と、処方箋に対応して患者のお薬手帳に記録された医薬品の一般名とが一致するか否かを判定する。サーバ1は、両者が一致する場合、調剤された医薬品が、処方された医薬品の先発品または後発品であると判定する。サーバ1は、両者が一致していない場合、調剤された医薬品が、処方された医薬品の先発品及び後発品のいずれかでないと判定する。
【0156】
以下では、患者に処方された医薬品が先発品であり、且つ、薬局により調剤された医薬品が後発品である場合、当該医薬品のインテグリティを判定する処理を説明するが、患者に処方された医薬品が後発品であり、且つ、薬局により調剤された医薬品が先発品である場合にも同様に適用することができる。
【0157】
サーバ1は、情報処理端末5から送信されたインテグリティ判定要求を受信する。インテグリティ判定要求には、処方箋ID及びお薬手帳ID等が含まれる。サーバ1は、処方箋IDに基づき、患者DID及び医薬品の薬剤コードを含む処方箋ハッシュ値をブロックチェーン2から取得する。サーバ1は、お薬手帳IDに基づき、患者DID及び医薬品の薬剤コードを含むお薬手帳ハッシュ値をブロックチェーン2から取得する。
【0158】
医薬品が単数である場合、サーバ1は、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致するか否かを判定する。サーバ1は、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致する場合、処方通りに調剤されたと判定する。サーバ1は、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致していない場合、当該医薬品が後発品であるか否かを判定する。
【0159】
具体的には、サーバ1は、処方箋IDに基づき、処方箋の医薬品の薬剤コードを処方箋DB173から取得する。サーバ1は、取得した処方箋の医薬品の薬剤コードに基づき、当該医薬品の一般名を医薬品DB172から取得する。
【0160】
サーバ1は、お薬手帳IDに基づき、処方箋に対応して患者のお薬手帳に記録された医薬品の薬剤コードをお薬手帳DB174から取得する。サーバ1は、取得したお薬手帳に記録された医薬品の薬剤コードに基づき、当該医薬品の一般名を医薬品DB172から取得する。
【0161】
サーバ1は、取得した処方箋の医薬品の一般名と、お薬手帳に記録された医薬品の一般名とが一致するか否かを判定する。サーバ1は、両者が一致する場合、当該医薬品が後発品であると判定する。サーバ1は、両者が一致していない場合、当該医薬品が後発品でないと判定する。サーバ1は、当該医薬品が後発品である場合、処方通りに調剤されたと判定する。サーバ1は、当該医薬品が後発品でない場合、処方通りに調剤されていないと判定する。
【0162】
医薬品が複数である場合、サーバ1は、レベル1判定処理及びレベル2判定処理を行う。具体的には、サーバ1は、処方箋ハッシュ値の数とお薬手帳ハッシュ値の数とが一致するか否かを判定する。サーバ1は、処方箋ハッシュ値の数とお薬手帳ハッシュ値の数とが一致していない場合、お薬手帳IDに対し、処方通りに調剤されていないと判定する。サーバ1は、処方箋ハッシュ値の数とお薬手帳ハッシュ値の数とが一致する場合、レベル2判定処理を行う。
【0163】
レベル2判定処理について、サーバ1は、複数の医薬品のうち、1つの医薬品を取得する。サーバ1は、取得した医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在するか否かを判定する。サーバ1は、当該医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在する場合、当該医薬品に対し、処方通りに調剤されたと判定する。
【0164】
サーバ1は、当該医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在していない場合、上述した後発品の判定処理と同様に、当該医薬品が後発品であるか否かを判定する。サーバ1は、当該医薬品が後発品でないと判定した場合、当該医薬品に対し、処方通りに調剤されていないと判定する。サーバ1は、当該医薬品が後発品であると判定した場合、当該医薬品に対し、処方通りに調剤されたと判定する。
【0165】
サーバ1は、複数の医薬品のうち、次の医薬品を取得する。サーバ1は、上述した判定処理と同様に、取得した医薬品に対し、処方通りに調剤されたか否かを判定する。
【0166】
レベル1判定処理について、サーバ1は、各医薬品におけるレベル2判定処理を実行した後に、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致した数を算出する。サーバ1は、一致した数が医薬品の総数と同じである場合、お薬手帳IDに対し、処方通りに調剤されたと判定する。
【0167】
サーバ1は、一致した数が医薬品の総数とは異なる場合、後発品である医薬品の数を集計する。サーバ1は、一致した数と、後発品である医薬品の数との合計が、医薬品の総数と同じである場合、お薬手帳IDに対し、処方通りに調剤されたと判定する。サーバ1は、一致した数と、後発品である医薬品の数との合計が、医薬品の総数とは異なる場合、お薬手帳IDに対し、処方通りに調剤されていないと判定する。
【0168】
サーバ1は、判定した判定結果に基づき、処方通りに調剤されたか否かを示す情報を情報処理端末5に送信する。情報処理端末5は、サーバ1から送信された処方通りに調剤されたか否かを示す情報を受信して表示する。
【0169】
図16は、実施形態2における判定結果の表示画面の一例を示す説明図である。なお、図9と重複する内容については同一の符号を付して説明を省略する。
【0170】
サーバ1は、複数の医薬品に対し、レベル1判定処理及びレベル2判定処理を行う。例えば、患者に処方された医薬品は、「医薬品A」、「医薬品B」及び「医薬品C」を含む。
【0171】
まず、サーバ1は、それぞれの医薬品に対してレベル2判定処理を行う。サーバ1は、各医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在する場合、各医薬品に対し、処方通りに調剤されたことを示す情報を第1態様(例えば、「◎」)で出力する。サーバ1は、各医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在していない場合、各医薬品が後発品であるか否かを判定する。
【0172】
サーバ1は、各医薬品が後発品でない場合、各医薬品に対し、処方通りに調剤されていないことを示す情報を第2態様(例えば、「×」)で出力する。サーバ1は、各医薬品が後発品である場合、各医薬品に対し、処方通りに調剤されたことを示す情報を第3態様(例えば、「〇」)で出力する。
【0173】
表示態様は、例えば、テキスト、色、形状、サイズ、模様、または、アイコン等に描かれている図もしくは絵柄等であっても良い。例えば、第1態様が深緑丸で示され、第2態様が赤丸で示され、第3態様が浅緑丸で示される。
【0174】
例えば、サーバ1は、「医薬品A」に対し、処方通りに調剤されたと判定した場合、処方通りに調剤されたことを示す情報を「◎」で出力する。または、サーバ1は、お薬手帳に記録された「医薬品D」が、患者に処方された「医薬品B」の後発品であると判定した場合、処方通りに調剤されたことを示す情報を「〇」で出力する。または、サーバ1は、お薬手帳に記録された「医薬品E」が、患者に処方された「医薬品C」とは異なる場合、処方通りに調剤されていないことを示す情報を「×」で出力する。
【0175】
サーバ1は、各医薬品におけるレベル2判定処理を実行した後に、医薬品の全体におけるレベル1判定処理を行う。具体的には、サーバ1は、「医薬品A」、「医薬品B」及び「医薬品C」のそれぞれに対し、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致した数を算出する。
【0176】
サーバ1は、一致した数が医薬品の総数(例えば、3)と同じである場合、お薬手帳IDに対し、処方通りに調剤されたことを示す情報を第1態様(例えば、「◎」)で出力する。サーバ1は、一致した数が医薬品の総数とは異なる場合、一致した数と、後発品である医薬品の数との合計が医薬品の総数と同じであるか否かを判定する。
【0177】
サーバ1は、一致した数と、後発品である医薬品の数との合計が医薬品の総数とは異なる場合、お薬手帳IDに対し、処方通りに調剤されていないことを示す情報を第2態様(例えば、「×」)で出力する。サーバ1は、一致した数と、後発品である医薬品の数との合計が医薬品の総数と同じである場合、お薬手帳IDに対し、処方通りに調剤されたことを示す情報を第3態様(例えば、「〇」)で出力する。
【0178】
サーバ1は、処方箋IDに基づき、薬剤コード、用法、用量及び処方箋日付(処方日)を処方箋DB173から取得する。サーバ1は、取得した処方箋の医薬品の薬剤コードに基づき、当該医薬品の商品名を医薬品DB172から取得する。サーバ1は、お薬手帳IDに基づき、薬剤コード、用法、用量、お薬手帳日付(調剤日)及び薬局名称をお薬手帳DB174から取得する。サーバ1は、取得したお薬手帳に記録された医薬品の薬剤コードに基づき、当該医薬品の商品名を医薬品DB172から取得する。
【0179】
サーバ1は、患者DID、レベル1判定処理の判定結果、レベル2判定処理の判定結果、処方箋データ(医薬品の商品名、用法、用量及び処方箋日付)、及び、お薬手帳データ(お薬手帳ID、薬局名称、医薬品の商品名、用法、用量及びお薬手帳日付)を情報処理端末5に送信する。情報処理端末5は、サーバ1から送信された患者DID、レベル1判定処理の判定結果、レベル2判定処理の判定結果、処方箋データ及びお薬手帳データを受信して表示する。
【0180】
図示のように、患者DIDは患者番号表示欄11fに表示され、お薬手帳データはお薬手帳表示欄11gに表示され、処方箋データは処方箋表示欄11cに表示される。レベル1判定処理の判定結果はレベル1判定結果表示欄11dに表示され、レベル2判定処理の判定結果はレベル2判定結果表示欄11eに表示される。
【0181】
図示のように、患者に処方された医薬品は、「医薬品A」、「医薬品B」及び「医薬品C」を含む。レベル1判定結果表示欄11dに、医薬品の全体に対し、処方通りに調剤されていないことを示す情報が「×」で表示される。処方された「医薬品A」に対応するレベル2判定結果表示欄11eに、処方通りに調剤されたことを示す情報が「◎」で表示される。
【0182】
また、処方された「医薬品B」(後発品:「医薬品D」)に対応するレベル2判定結果表示欄11eに、処方通りに調剤されたことを示す情報が「〇」で表示される。また、処方された「医薬品C」(調剤された医薬品:「医薬品E」)に対応するレベル2判定結果表示欄11eに、処方通りに調剤されていないことを示す情報が「×」で表示される。
【0183】
図17は、実施形態2における単数判定処理のサブルーチンの処理手順を示すフローチャートである。なお、図14と重複する内容については同一の符号を付して説明を省略する。
【0184】
サーバ1の制御部11は、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致していない場合(ステップS01でNO)、処方箋の医薬品の薬剤コード、及び、処方箋に対応して患者のお薬手帳に記録された医薬品の薬剤コードを取得する(ステップS04)。具体的には、制御部11は、処方箋IDに基づき、処方箋の医薬品の薬剤コードを大容量記憶部17の処方箋DB173から取得する。制御部11は、お薬手帳IDに基づき、お薬手帳に記録された医薬品の薬剤コードを大容量記憶部17のお薬手帳DB174から取得する。
【0185】
制御部11は、取得した薬剤コードに基づき、医薬品の一般名を取得する(ステップS05)。具体的には、制御部11は、取得した処方箋の医薬品の薬剤コードに基づき、当該医薬品の一般名を大容量記憶部17の医薬品DB172から取得する。制御部11は、取得したお薬手帳に記録された医薬品の薬剤コードに基づき、当該医薬品の一般名を医薬品DB172から取得する。
【0186】
制御部11は、当該医薬品が後発品であるか否かを判定する(ステップS06)。具体的には、制御部11は、取得した処方箋の医薬品の一般名と、お薬手帳に記録された医薬品の一般名とが一致するか否かを判定する。制御部11は、両者が一致する場合、当該医薬品が後発品であると判定する。制御部11は、両者が一致していない場合、当該医薬品が後発品でないと判定する。
【0187】
制御部11は、当該医薬品が後発品である場合(ステップS06でYES)、後発品として処方通りに調剤されたと判定する(ステップS07)。制御部11は、単数判定処理のサブルーチンを終了してリターンする。制御部11は、当該医薬品が後発品でない場合(ステップS06でNO)、ステップS03の処理を実行する。
【0188】
図18及び図19は、実施形態2における複数判定処理のサブルーチンの処理手順を示すフローチャートである。なお、図15と重複する内容については同一の符号を付して説明を省略する。
【0189】
サーバ1の制御部11は、医薬品の処方箋ハッシュ値と一致するお薬手帳ハッシュ値が存在していない場合(ステップS13でNO)、ステップS31~S33の処理を実行する。なお、ステップS31~S33の処理に関しては、図17のステップS04~S06の処理と同様であるため、説明を省略する。
【0190】
制御部11は、当該医薬品が後発品でない場合(ステップS33でNO)、ステップS15の処理を実行する。制御部11は、当該医薬品が後発品である場合(ステップS33でYES)、レベル2判定処理に対し、後発品として処方通りに調剤されたと判定する(ステップS34)。制御部11は、ステップS16~S18の処理を実行する。
【0191】
制御部11は、処方箋ハッシュ値とお薬手帳ハッシュ値とが一致した数が医薬品の総数とは異なる場合(ステップS18でNO)、一致した数と、後発品である医薬品の数との合計を算出する(ステップS35)。制御部11は、算出した合計が医薬品の総数と同じであるか否かを判定する(ステップS36)。制御部11は、合計が医薬品の総数とは異なる場合(ステップS36でNO)、ステップS20の処理を実行する。
【0192】
制御部11は、合計が医薬品の総数と同じである場合(ステップS36でYES)、レベル1判定処理に対し、後発品として処方通りに調剤されたと判定する(ステップS37)。制御部11は、複数判定処理のサブルーチンを終了してリターンする。
【0193】
本実施形態によると、薬局により調剤された医薬品が、患者に処方された医薬品の先発品または後発品である場合、当該医薬品のインテグリティを判定することが可能となる。
【0194】
本実施形態によると、医薬品が後発品である場合、処方通りに調剤されたことを示す情報を異なる態様で出力することが可能となる。
【0195】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【0196】
各実施形態に記載した事項は相互に組み合わせることが可能である。また、特許請求の範囲に記載した独立請求項及び従属請求項は、引用形式に関わらず全てのあらゆる組み合わせにおいて、相互に組み合わせることが可能である。さらに、特許請求の範囲には他の2以上のクレームを引用するクレームを記載する形式(マルチクレーム形式)を用いているが、これに限るものではない。マルチクレームを少なくとも一つ引用するマルチクレーム(マルチマルチクレーム)を記載する形式を用いて記載しても良い。
【符号の説明】
【0197】
1 情報処理装置(サーバ)
11 制御部
11a ハッシュ値算出部
11b 電子署名作成部
12 記憶部
13 通信部
14 入力部
15 表示部
16 読取部
17 大容量記憶部
171 患者DB
172 医薬品DB
173 処方箋DB
174 お薬手帳DB
1a 可搬型記憶媒体
1b 半導体メモリ
1P 制御プログラム
2 ブロックチェーンシステム(ブロックチェーン;台帳)
21 ノード
211 制御部
212 記録部
213 通信部
214 受付部
215 出力部
216 ブロック生成部
217 ブロック検証部
218 ブロック共有部
3 情報処理端末(患者端末)
31 制御部
32 記憶部
33 通信部
34 入力部
35 表示部
36 撮影部
3P 制御プログラム
4 情報処理端末(薬局端末)
41 制御部
42 記憶部
43 通信部
44 入力部
45 表示部
4P 制御プログラム
5 情報処理端末
51 制御部
52 記憶部
53 通信部
54 入力部
55 表示部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19