特許第6064195号(P6064195)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ヒューレット パッカード エンタープライズ デベロップメント エル ピーの特許一覧

特許6064195メタデータ完全性バリデータを用いたメタデータツリーの検証
<>
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000004
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000005
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000006
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000007
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000008
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000009
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000010
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000011
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000012
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000013
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000014
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000015
  • 特許6064195-メタデータ完全性バリデータを用いたメタデータツリーの検証 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6064195
(24)【登録日】2017年1月6日
(45)【発行日】2017年1月25日
(54)【発明の名称】メタデータ完全性バリデータを用いたメタデータツリーの検証
(51)【国際特許分類】
   H04L 9/14 20060101AFI20170116BHJP
   H04L 9/08 20060101ALI20170116BHJP
   G06F 21/64 20130101ALI20170116BHJP
   G06Q 50/24 20120101ALI20170116BHJP
【FI】
   H04L9/00 641
   H04L9/00 601B
   G06F21/64
   G06Q50/24
【請求項の数】14
【全頁数】22
(21)【出願番号】特願2015-527435(P2015-527435)
(86)(22)【出願日】2012年9月12日
(65)【公表番号】特表2015-527006(P2015-527006A)
(43)【公表日】2015年9月10日
(86)【国際出願番号】US2012054881
(87)【国際公開番号】WO2014028038
(87)【国際公開日】20140220
【審査請求日】2015年4月2日
(31)【優先権主張番号】61/683,702
(32)【優先日】2012年8月15日
(33)【優先権主張国】US
(31)【優先権主張番号】61/683,705
(32)【優先日】2012年8月15日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】515153738
【氏名又は名称】ヒューレット パッカード エンタープライズ デベロップメント エル ピー
【氏名又は名称原語表記】Hewlett Packard Enterprise Development LP
(74)【代理人】
【識別番号】100087642
【弁理士】
【氏名又は名称】古谷 聡
(74)【代理人】
【識別番号】100082946
【弁理士】
【氏名又は名称】大西 昭広
(74)【代理人】
【識別番号】100121061
【弁理士】
【氏名又は名称】西山 清春
(74)【代理人】
【識別番号】100195693
【弁理士】
【氏名又は名称】細井 玲
(72)【発明者】
【氏名】リ,ジュン
(72)【発明者】
【氏名】スワミナサン,ラム
(72)【発明者】
【氏名】シンガル,シャラド
【審査官】 青木 重徳
(56)【参考文献】
【文献】 特開平08−163488(JP,A)
【文献】 特開2004−192639(JP,A)
【文献】 特開2011−198020(JP,A)
【文献】 特表2005−539423(JP,A)
【文献】 国際公開第2010/149333(WO,A1)
【文献】 米国特許第08176018(US,B1)
【文献】 米国特許出願公開第2011/0119089(US,A1)
【文献】 北野 拓哉 他,半構造化データモデルを利用したXML文書管理システムの試作,第57回(平成10年後期)全国大会講演論文集(3),日本,社団法人情報処理学会,1998年10月 5日,5V−5,p.3−283〜3−284
【文献】 安田 匡祐 他,分散環境における木構造ハッシュ制御の設計と実現,電子情報通信学会 第19回データ工学ワークショップ論文集,日本,電子情報通信学会データ工学研究専門委員会,2008年 4月 7日,DEW2008 D2−2
【文献】 Sujoy Basu, et al.,Fusion: Managing Healthcare Records at Cloud Scale,COMPUTER,米国,IEEE,2012年 8月22日,Volume 45, Issue 11,pp.42-49
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/14
G06F 21/64
G06Q 50/24
H04L 9/08
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
処理システムによって実行される方法であって、
メタデータ完全性バリデータから受け取ったサマリツリーを用いて、メタデータ格納部のメタデータツリージャーナルから患者の第1のメタデータツリーを再構成するステップであって、該第1のメタデータツリーは複数の参照を含み、該複数の参照は、暗号化データ格納部内の該患者の対応する複数の暗号化電子健康記録への参照であり、前記第1のメタデータツリー中のそれぞれのノードは、該第1のメタデータツリーにおける該ノードの順番を表すカウント値とヘルスケア参加者を識別する参加者識別子とを含み、前記サマリツリーは、前記第1のメタデータツリー中のそれぞれのノードに対応するノードを含む、ステップと、
前記第1のメタデータツリーの第1の完全性情報と、前記メタデータ完全性バリデータによって提供される前記メタデータツリージャーナルに対応する第2の完全性情報を比較することによって、前記第1のメタデータツリーを検証するステップ
を含み、
前記再構成するステップは、前記サマリツリー中の対応するノードのカウント値及び参加者識別子にそれぞれ合致しないカウント値及び参加者識別子を有する前記第1のメタデータツリー中のノードを識別して、前記第1のメタデータツリー中の該識別されたノードを除去するステップをさらに含むことからなる、方法。
【請求項2】
前記メタデータ格納部の前記メタデータツリージャーナルにアクセスするステップと、
前記メタデータ完全性バリデータの前記第2の完全性情報にアクセスするステップ
をさらに含む、請求項1の方法。
【請求項3】
前記第1のメタデータツリーを再構成した後で、前記第1のメタデータツリーに対応する前記第1の完全性情報を生成するステップをさらに含む、請求項1または2の方法。
【請求項4】
前記第1の完全性情報を、前記第1のメタデータツリーの第1のハッシュとして生成するステップをさらに含み、
前記第2の完全性情報は、第2のメタデータツリーの第2のハッシュである、請求項3の方法。
【請求項5】
前記第1のメタデータツリーが有効ではないことに応答して、前記メタデータ格納部の前記メタデータツリージャーナルにアクセスするステップと、
前記メタデータ完全性バリデータの第3の完全性情報にアクセスするステップであって、該第3の完全性情報は、前記メタデータツリージャーナルに対応する、ステップと、
前記メタデータツリージャーナルから前記患者の第2のメタデータツリーを再構成するステップと、
前記第2のメタデータツリーの第4の完全性情報と前記第3の完全性情報を比較することによって、前記第2のメタデータツリーを検証するステップ
をさらに含む、請求項1の方法。
【請求項6】
前記複数の暗号化電子健康記録のうちの第1の暗号化電子健康記録は第1の提供者によって生成され、
前記複数の暗号化電子健康記録のうちの第2の暗号化電子健康記録は第2の提供者によって生成され、
前記第2の提供者は、前記第1の提供者とは無関係である、請求項1〜5のいずれかの方法。
【請求項7】
1以上のプロセッサからなる一組のプロセッサと、
一組の命令を格納しているメモリ
を備える処理システムであって、
前記一組の命令は、前記一組のプロセッサによって実行されると、該一組のプロセッサに、
メタデータ完全性バリデータから受け取ったサマリツリーを用いて、メタデータ格納部よって提供されたメタデータツリージャーナルから患者の第1のメタデータツリーを再構成するステップであって、前記第1のメタデータツリー中のそれぞれのノードは、該第1のメタデータツリーにおける該ノードの順番を表すカウント値とヘルスケア参加者を識別する参加者識別子とを含み、前記サマリツリーは、前記第1のメタデータツリー中のそれぞれのノードに対応するノードを含む、ステップと、
前記メタデータ完全性バリデータを用いて前記第1のメタデータツリーを検証するステップと
暗号化データ格納部内の暗号化電子健康記録に対応する前記第1のメタデータツリー中のノードを決定するステップと、
前記ノードからの参照を用いて、前記暗号化データ格納部の前記暗号化電子健康記録にアクセスするステップと、
レコードキーを用いて前記暗号化電子健康記録を解読するステップ
を実行させ
前記再構成するステップは、前記サマリツリー中の対応するノードのカウント値及び参加者識別子にそれぞれ合致しないカウント値及び参加者識別子を有する前記第1のメタデータツリー中のノードを識別して、前記第1のメタデータツリー中の該識別されたノードを除去するステップをさらに含むことからなる、処理システム。
【請求項8】
前記一組の命令は、前記一組のプロセッサによって実行されると、該一組のプロセッサに、
前記メタデータ格納部の前記メタデータツリージャーナルにアクセスするステップと、
前記第1のメタデータツリーから第1の完全性情報を生成するステップと、
前記メタデータ完全性バリデータの第2の完全性情報にアクセスするステップと、
前記第1の完全性情報と前記第2の完全性情報を比較することによって、前記第1のメタデータツリーを検証するステップ
を実行させることからなる、請求項の処理システム。
【請求項9】
前記一組の命令は、前記一組のプロセッサによって実行されると、該一組のプロセッサに、
前記第1のメタデータツリーの第1のハッシュを生成するステップと、
前記第1のハッシュと、前記メタデータ完全性バリデータによって提供される第2のメタデータツリーの第2のハッシュとを用いて、前記第1のメタデータツリーを検証するステップ
を実行させることからなる、請求項の処理システム。
【請求項10】
命令を格納している機械可読記憶媒体であって、
前記命令は、処理システムによって実行されると、該処理システムに、
メタデータ完全性バリデータから受け取ったサマリツリーを用いて、メタデータ格納部よって提供されたメタデータツリージャーナルから患者の第1のメタデータツリーを再構成するステップであって、前記第1のメタデータツリー中のそれぞれのノードは、該第1のメタデータツリーにおける該ノードの順番を表すカウント値とヘルスケア参加者を識別する参加者識別子とを含み、前記サマリツリーは、前記第1のメタデータツリー中のそれぞれのノードに対応するノードを含む、ステップと、
前記メタデータ完全性バリデータを用いて前記第1のメタデータツリーを検証するステップと
暗号化データ格納部に暗号化電子健康記録を提供するステップと、
前記暗号化電子健康記録に対応する第1のメタデータレコードを含むように、前記メタデータ格納部内の前記第1のメタデータツリーを更新するステップと、
前記メタデータ完全性バリデータを用いて前記第1のメタデータツリーをコミットするステップ
を実行させ
前記再構成するステップは、前記サマリツリー中の対応するノードのカウント値及び参加者識別子にそれぞれ合致しないカウント値及び参加者識別子を有する前記第1のメタデータツリー中のノードを識別して、前記第1のメタデータツリー中の該識別されたノードを除去するステップをさらに含むことからなる、機械可読記憶媒体
【請求項11】
前記命令は、前記処理システムによって実行されると、該処理システムに、
前記第1のメタデータツリーから第1の完全性情報を生成するステップと、
前記メタデータ完全性バリデータの第2の完全性情報にアクセスするステップと、
前記第1及び第2の完全性情報を前記メタデータ完全性バリデータに提供することによって、前記第1のメタデータツリーをコミットするステップ
を実行させることからなる、請求項10機械可読記憶媒体
【請求項12】
前記命令は、前記処理システムによって実行されると、該処理システムに、
前記第1のメタデータツリーが前記メタデータ完全性バリデータによって不合格とされたことに応答して、前記メタデータ完全性バリデータを用いて前記患者の第2のメタデータツリーを検証するステップであって、該第2のメタデータツリーは、前記第1のメタデータツリーが前記メタデータ完全性バリデータによって不合格とされた後に、前記メタデータ格納部によって提供されたメタデータツリージャーナルから再構成されたものである、ステップと、
前記暗号化電子健康記録を前記暗号化データ格納部に提供するステップと、
前記暗号化電子健康記録に対応する第2のメタデータレコードを含むように、前記メタデータ格納部内の前記第2のメタデータツリーを更新するステップと、
前記メタデータ完全性バリデータを用いて前記第2のメタデータツリーをコミットするステップ
を実行させることからなる、請求項10機械可読記憶媒体
【請求項13】
前記命令は、前記処理システムによって実行されると、該処理システムに、
前記暗号化電子健康記録に対応する、前記第1のメタデータツリー内の場所を決定するステップと、
前記場所に関するメタデータレコードを生成するステップ
を実行させることからなる、請求項10または11機械可読記憶媒体
【請求項14】
前記命令は、前記処理システムによって実行されると、該処理システムに、
レコードキーを用いて電子健康記録を暗号化して、前記暗号化電子健康記録を生成するステップ
を実行させることからなる、請求項10〜13のいずれか機械可読記憶媒体
【発明の詳細な説明】
【背景技術】
【0001】
関連出願の相互参照
本願は、2012年8月15日に提出された「Protocols forReading and Writing Electronic Medical Data Asynchronously in an Untrusted Cloud Storage」と題する米国仮特許出願第61/683,702号、及び、2012年8月15日に提出された「Metadata Tree Journaling with Access Right Revocation in anElectronic Medical Cloud Data Store」と題する米国仮特許出願第61/683,705号に基づいて優先権を主張するものである。これらの特許出願の開示内容は、参照により本明細書に組み込まれるものとする。
【0002】
電子健康記録(EHR:Electronic Health Record。電子カルテなど。電子医療記録ともいう)は、ヘルスケア参加者(たとえば、患者、医療サービス提供者、医療費支払者、医療研究者)が、医療と健康情報へのアクセスとの連係を改善できるようにすることができる。EHRは、健康管理情報(ヘルスケア情報)へのアクセスを容易にしうるが、健康管理情報の共有は、多くの複雑な技術的な問題及び法的な問題を伴う場合がある。技術的な問題には、それぞれの異なる参加者に対して同時アクセスを提供する方法、及び、必要に応じて参加者のアクセスを無効にする方法が含まれうる。これらの問題は、健康管理情報の一貫性(ないし整合性)、プライバシー(秘密性)及びセキュリティを確保すると同時にそのような共有を可能にするための資金及び専門的知識がないヘルスケア参加者には大きな負担でありうる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】(補充可能性あり)
【図面の簡単な説明】
【0004】
図1A】電子健康記録格納処理環境の1例を示すブロック図である。
図1B】電子健康記録格納処理環境の1例を示すブロック図である。
図1C】電子健康記録格納処理環境の1例を示すブロック図である。
図2】メタデータツリージャーナル、及び暗号化データ格納部内の暗号化された電子健康記録の1例を示すブロック図である。
図3】メタデータツリーノードの1例を示すブロック図である。
図4A】メタデータツリージャーナルの1例を示すブロック図である。
図4B】メタデータツリージャーナルの1例を示すブロック図である。
図5】メタデータサマリツリーの1例を示すブロック図である。
図6】ヘルスケア参加者システムの1例を示すブロック図である。
図7】メタデータ完全性バリデータシステムの1例を示すブロック図である。
図8】同時処理環境においてメタデータツリーを用いて暗号化された電子健康記録にアクセスする処理の1例を示す略図である。
図9】同時処理環境においてメタデータツリーを用いる暗号化された電子健康記録を格納する処理の1例を示す略図である。
図10】埋め込まれたキー無効化情報を有するメタデータツリーの一部の1例を示すブロック図である。
【発明を実施するための形態】
【0005】
以下の詳細な説明では、本願の一部を構成する添付の図面を参照する。それらの図面には、開示されている主題を実施することができる特定の実施形態が例示されている。本開示の範囲から逸脱することなく、その他の実施形態を利用できること、及び、構造的ないし論理的な変更を行うことができることが理解されよう。したがって、以下の詳細な説明は、限定的な意味に解釈されるべきではなく、本開示の範囲は、特許請求の範囲によって画定されるものである。
【0006】
本明細書及び/または図面に開示されている実施形態は、ヘルスケア参加者(たとえば、患者、医療サービス提供者、医療費支払者、医療研究者などの健康管理に関係する主体)間でEHRを安全かつシームレスに共有できるようにする電子健康記録(EHR)格納処理環境を提供する。該環境は、患者の暗号化されたEHR(以下、暗号化されたEHRを暗号化EHRともいう)を格納する暗号化データ格納部、及び、各患者のメタデータツリージャーナルを格納するメタデータツリー格納部を備えている。それぞれのメタデータツリージャーナルを用いて、暗号化データ格納部内の患者のEHRに対するマッピングを提供する、対応する患者のメタデータツリーを再構成することができる。医療サービス提供者などの認可されたヘルスケア参加者は、各患者のメタデータツリージャーナルにアクセスすることができ、これによって、患者のEHRにアクセスしたり、該EHRを格納したりすることができる。
【0007】
該環境はまた、患者のメタデータツリージャーナルに対する同時読み出し及び書き込みアクセスをサポートするためのメタデータ完全性バリデータ(メタデータ完全性検証部)を備えている。メタデータ完全性バリデータは、メタデータツリーのコミットされた状態を表す該メタデータツリーの完全性情報を格納する。ヘルスケア参加者システムは、この完全性情報を用いて、一貫性(ないし整合性)があり、かつ最新のバージョンのメタデータツリーがメタデータツリージャーナルから再構成されるのを確実にする。
【0008】
メタデータ格納部は、追加のみ可能で変更できないストレージフレームワークを提供するジャーナリングメカニズム(journaling mechanism:ジャーナル処理メカニズムともいう)を用いてそれぞれのメタデータツリージャーナルを格納する。ヘルスケア参加者システムは、メタデータ格納部中の患者のメタデータツリージャーナルにアクセスし(たとえば、メタデータ格納部から患者のメタデータツリージャーナルを取得し)、該ジャーナル、及び、該バリデータからの完全性情報を用いてメタデータツリーを再構成し、及び、該完全性情報を用いて、再構成されたメタデータツリー(のたとえば有効性を)検証する。ヘルスケア参加者システムは、(有効性が)検証されたメタデータツリーを用いて、暗号化データ格納部の暗号化EHRにアクセスし、及び/または、暗号化データ格納部にEHRを格納する。ヘルスケア参加者システムはまた、暗号化EHRを格納するときに、ジャーナリングメカニズムを用いてメタデータ格納部のメタデータツリージャーナルを更新し、並びに、バリデータの完全性情報を更新する。
【0009】
該環境は、暗号化EHR用のレコードキー、メタデータツリーのノード用のノードキー、及び、メタデータツリーの構造用のメタデータツリーキーを使ってEHRに対するアクセスを制御する。暗号化EHRを暗号化データ格納部に格納するヘルスケア参加者は、レコードキーを使ってEHRを暗号化する。これらの参加者はまた、対応する暗号化EHRに関するノードをメタデータツリーに付加する。それらのノードは、対応するノードキーで暗号化されている対応する暗号化EHRへの参照を含んでいる。メタデータツリーの構造もメタデータツリーキーを用いて暗号化されており、これによって、メタデータツリーへのアクセスが、該メタデータツリーキーを有する認可(すなわち許可)された(患者の)ヘルスケア参加者だけに制限されるようにしている。
【0010】
1以上のヘルスケア参加者は、患者のメタデータツリーの異なるサブツリーを管理することができる。参加者は、サブツリーを管理するために、該サブツリー内の対応するノードのノードキーを管理ないし用いて、他の認可された(患者の)ヘルスケア参加者のアクセスを許可したり無効にしたりする。参加者は、他の参加者に選択されたノード及びレコードキーを提供することによってアクセスを許可する。参加者は、ノードキーをローテーション(交換)し、無効化情報をメタデータツリーの対応するノードに埋め込むことによってアクセスを無効にする。キーが無効にされると、アクセスが無効にされた参加者は、該無効化後に格納された暗号化EHRにアクセスすることも、新たな暗号化EHRを暗号化データ格納部に格納することもできなくなる。しかしながら、(アクセスが)無効にされた参加者は、該無効化の前に格納されていた暗号化EHRには引き続きアクセスすることができる。
【0011】
本明細書で使用されている「ヘルスケア参加者」(参加者ともいう)という用語は、患者や、患者に対応する健康管理情報(ヘルスケア情報)を作成及び/または使用する患者の健康管理プロセスに関与する医療サービス提供者(医療機関など)、支払者、研究者、もしくは、その他の適切な者ないし主体を意味する(ヘルスケア参加者はヘルスケア関係者ともいう)。「患者」という用語は、医療サービス提供者から少なくとも1つの健康管理サービス(医療サービスなど)を受ける者を意味する。「医療サービス提供者」(提供者ともいう)という用語は、患者に少なくとも1つの健康管理サービスを提供する者及び/または団体ないし機関を意味する。
【0012】
「電子健康記録」(EHR)という用語は、ヘルスケア参加者によって作成されて、少なくとも1つの機械可読記憶媒体に電子形態で(たとえば電子データとして)記録される一組の健康管理情報(ヘルスケア情報)を意味する。「暗号化された電子健康記録」(暗号化電子健康記録または暗号化EHRともいう)という用語は、レコードキー(記録鍵)で暗号化されている電子健康記録を意味する。
【0013】
「メタデータ」という用語は、電子健康記録などの少なくとも1つの記録を説明もしくは記述する一組の情報を意味する。「メタデータツリー」という用語は、メタデータを含む一組のノードを意味し、この場合、各ノードは、該組内の少なくとも1つの他のノードと特定の関係を有している。「メタデータツリージャーナル」という用語は、メタデータツリーのノードを格納するために追加のみ可能で変更できないジャーナリングメカニズムによって作成されたデータ構造を意味する。
【0014】
「レコードキー」(記録鍵ともいう)という用語は、患者のEHRを暗号化し及び(暗号)解読するために使用される暗号化キー(暗号化キーは暗号鍵ともいう)を意味する。「ノードキー」という用語は、患者のメタデータツリー内のノードの一部を暗号化し及び(暗号)解読するために使用される暗号化キーを意味する。「メタデータツリーキー」という用語は、患者のメタデータツリーの少なくとも一部を暗号化し及び(暗号)解読するために使用される暗号化キーを意味する。
【0015】
図1Aは、電子健康記録格納処理環境10の1例10Aを示すブロック図である。環境10Aは、電子健康記録(EHR)格納部20、及び、一組のヘルスケア参加者システム30(1)〜30(m)を含んでおり、ここで、mは2以上の整数である。環境10Aは、EHR格納部20及び参加者システム30を用いて、患者のEHRを作成し、該EHRにアクセスし、該EHRを格納し、管理し及び共有する能力を提供する。
【0016】
EHR格納部20は、データアクセスフロント22、暗号化データ格納部24、及びメタデータ格納部26を備えている。データアクセスフロント22は、参加者システム30と通信して、暗号化データ格納部24及びメタデータ格納部26に対するアクセスを管理する。暗号化データ格納部4は、参加者システム30によって作成されて提供された患者の暗号化EHRを格納する。暗号化EHRは、参加者システム30によって、レコードキーを用いて暗号化されており、及び、該キーを用いて(暗号)解読される。暗号化データ格納部24は、暗号化EHRを格納するための任意の適切なタイプ、数、及び/もしくは構成の機械可読記憶媒体を備えている。それらのEHRは暗号化されており、かつ、暗号化データ格納部24は、それらのEHRの暗号化キー(すなわちレコードキー)を格納していないので、暗号化データ格納部24は、信頼できる(trusted)データ格納部であってもなくてもよい(たとえば、暗号化データ格納部24を、1以上の信頼できないサードパーティが所有しまたは操作することができる)。
【0017】
メタデータ格納部26は、1以上の認可(すなわち許可)された参加者システム30によって作成されて提供された、各患者のメタデータツリージャーナル(たとえば、図2に示されているメタデータツリージャーナル60)を格納する。メタデータ格納部26は、メタデータツリージャーナル用のストレージフレームワークを提供するためにジャーナリングメカニズムを実装しており、この場合、該ジャーナリングメカニズムは、追加のみ可能で変更はできない。さらに詳細に後述しているように、参加者システム30は、それぞれのメタデータツリージャーナルを使用して、暗号化データ格納部24中の患者のEHRへのマッピングを提供する、対応する患者のメタデータツリー(たとえば、図2に示されているメタデータツリー70)を再構成することができる。
【0018】
図2は、メタデータツリージャーナル60、及び、暗号化データ格納部24内の暗号化された電子健康記録(暗号化EHR)80の1例を示すブロック図である。メタデータツリージャーナル60はノード62を含んでおり、この場合、ノード62には、コミットされたノード72、74、76、及び、コミットされていないノード79が含まれている。コミットされたノード72、74、76は、集合的にメタデータツリー70を形成しており、該ツリーを参加者システム30によって再構成することができる。メタデータツリー70は、対応する暗号化EHR80に対して、1つのルートノード(根ノード)72、任意の数の中間ノード74、及び、1つのリーフノード(葉ノード)76を有する階層ツリー構造を表している。ルートノード72は、患者を識別する情報を含むことができ、中間ノード74は、(たとえば、提供者毎の、または、処置ないし治療状態などの患者情報のカテゴリーによる)EHR80の論理的なグループ分けを表し、リーフノード76は、暗号化データ格納部24内の対応する暗号化EHR80への参照78を含んでいる。参照78は、暗号化データ格納部24内の暗号化EHR80にアクセスするために参加者システム30によって使用される。
【0019】
図3は、メタデータツリーノード62の1例を示すブロック図である。メタデータツリーノード62は、ノード識別子(ノードID)91、親識別子(親ID)92、参加者識別子(参加者ID)93、名前94、バージョン95、タイプ96、論理カウンタ97、キーローテーション情報98、及び参照78を含んでいる。ノード識別子91は、ノード62に対するグローバル一意識別子(globally unique identifier)であり、親識別子92は、ノード62の親ノードのノード識別子91である。参加者識別子93は、ノード62を作成したヘルスケア参加者を識別する情報である。名前94は、ノード62を作成したヘルスケア参加者に付けられた名前である。バージョン95は、ノード62のバージョン番号である。タイプ96は、新しい、更新された、または、キー無効などのノード62のタイプ(種類)である。論理カウンタ97は、親ノードの下のノード62の順番を表すカウント値である(たとえば、中間ノード74(すなわち、リーフノード76の親ノード)の下のi番目のリーフノード76の論理カウンタ97はiである)。キーローテーション情報98は、ノード62の任意の子ノードの無効化されたノードキーを識別するために使用することができる情報を含んでいる。参照78は、暗号化データ格納部24内の暗号化EHR80の場所(または位置)を識別する。
【0020】
本明細書に記載されているように、「新しい」というタイプ96で指定されているメタデータツリーノード62を新しいノード62という。「更新された」というタイプ96で指定されているメタデータツリーノード62を、更新されたノード62といい、「キー無効」というタイプ96で指定されているメタデータツリーノード62を、無効ノード62という。
【0021】
メタデータツリーノード62の他の例では、タイムスタンプ、ノード62を作成したヘルスケア参加者のデジタル署名、及び、ノード62に対応する暗号化EHR80を作成したヘルスケア参加者のデジタル署名などの他の適切な情報を、メタデータツリーノード62に格納することができる。
【0022】
メタデータ格納部26によって実装ないし実施されるジャーナリングメカニズムは、互いに無関係の(たとえば提携関係や系列関係がない)提供者(たとえば、互いに関係のない異なる企業体の下で業務を行う提供者)が、メタデータ格納部26に同時に最新情報を格納することを可能にする。ジャーナリングの追加のみ可能で変更できない特性によって、ノード62が更新されたときに、メタデータツリージャーナル60が、元のノード62と更新されたノード62の両方を格納することが確保される。
【0023】
メタデータ格納部26は、図4Aの例に示されているフルメタデータツリージャーナリング(full metadata tree journaling。完全メタデータツリージャーナリングともいう)、または、図4Bの例に示されているインクリメンタルメタデータツリージャーナリング(incremental metadata tree journaling。増分式メタデータツリージャーナリングともいう)などの任意の適切なタイプのジャーナリングメカニズムを実装ないし実施することができる。
【0024】
図4Aの例では、メタデータ格納部26Aは、フルメタデータツリージャーナリングを実施し、この場合、参加者システム30によって実行される書き込み操作毎に、更新されたメタデータツリー70全体が、メタデータ格納部26A内のメタデータツリージャーナル60Aに格納される。したがって、図4Aに示されているように、メタデータツリージャーナル60Aに対する最初の書き込み操作によって、完全なメタデータツリー70(1)に追加のノード62が格納される。同様に、メタデータツリージャーナル60Aに対するn番目の書き込み操作によって、完全なメタデータツリー70(n)に追加のノード62が格納される。
【0025】
図4Bの例では、メタデータ格納部26Bは、インクリメンタルメタデータツリージャーナリングを実施し、この場合、参加者システム30によって実行される、メタデータ格納部26B内のメタデータツリージャーナル60Bに対する書き込み操作毎に、ジャーナル60Bに既に格納されているノード62を格納し直すことなく、追加のノード62が格納される。したがって、図4Bに示されているように、メタデータツリージャーナル60Bに対する最初の書き込み操作によって、追加のノード62(1)が格納される。同様に、メタデータツリージャーナル60Bに対するp番目の書き込み操作によって、追加のノード62(p)が格納される。
【0026】
図1Aを再度参照すると、メタデータ格納部26によって格納された各メタデータツリー70の構成部分(すなわち、各ツリー70の各ノード62内の少なくともノード識別子91、親識別子93、及び参加者識別子94)は、メタデータツリーキーを用いて暗号化されている。このメタデータツリー暗号化によって、環境10Aは、メタデータツリーキーを有する、ある患者の認可されたヘルスケア参加者のみに、該患者のメタデータツリー70へのアクセスを制限することができる。メタデータツリーキーを、患者によって作成された患者固有のキーとすることができる。メタデータツリーキーを、たとえば、患者がヘルスケア参加者に登録したときに該参加者に提供することができ、または、あるヘルスケア参加者(たとえば、かかりつけ医)から別のヘルスケア参加者(たとえば、顧問医師)に提供することができる。
【0027】
各メタデータツリー70の他の部分(すなわち、各ノード62中の少なくとも参照78)はさらに、ノード62を作成する参加者システム30によってノードキーで暗号化されている。このノードキー暗号化によって、認可されていないヘルスケア参加者が、暗号化データ格納部24内の暗号化EHRへの参照78を取得するのが防止され、したがって、認可されていないヘルスケア参加者が、暗号化データ格納部24の暗号化EHRにアクセスするのが防止される。これらのノードキーを、参加者によって作成される患者固有のキーとすることができる。ノードキーを、暗号化EHR80及び対応するノード76をメタデータツリー70に格納するヘルスケア参加者から他のヘルスケア参加者に提供して、該他のヘルスケア参加者が、ノード76内の参照78を解読し、これによって、暗号化データ格納部24内の暗号化EHR80(もしくはその場所)を突き止めることができるようにすることができる。
【0028】
患者、患者の健康管理プロセスに関与する医療サービス提供者、支払者、研究者、及びその他の適切な者を含む参加者は、患者のEHRを作成し、該EHRにアクセスし、該EHRを格納し、管理し、及び共有するために、対応する参加者システム30と対話し(不図示)、対応するデータアクセスアダプタ32を用いてEHR格納部20と通信する。それぞれのデータアクセスアダプタ32は、EHR格納部20のデータアクセスフロント22と通信し、暗号化データ格納部24及びメタデータ格納部26にアクセスする。
【0029】
環境10Aはまた、患者のメタデータツリージャーナル60に対する同時読み出し及び書き込みアクセス(読み出しと書き込みの同時アクセス)をサポートするための、患者システム30(1)に実装されたメタデータ完全性バリデータ34を備えている。メタデータ完全性バリデータ34は、メタデータツリー70のコミットされた状態を表す、メタデータツリー70の(図7に示されている)完全性情報150を格納している。患者システム30は、メタデータ完全性バリデータ34からアクセスした完全性情報150を使用して、一貫性(ないし整合性)がありかつ最新のバージョンのメタデータツリー70がメタデータツリージャーナル60から再構成されるのを確実にする。したがって、メタデータ完全性バリデータ34は、暗号化データ格納部24に対する読み出し及び書き込みアクセスが、参加者システム30によって、メタデータツリー70の有効なバージョンに基づいて実行されることを確保する。
【0030】
完全性情報150は、メタデータツリージャーナル60内の最後にコミットされたメタデータツリーのハッシュ及び(図5に示されているメタデータサマリツリー100などの)メタデータサマリツリー(サマリツリーは、要約ツリーもしくは要約木とも呼ばれる)を含んでいる。ハッシュ及びサマリは、暗号化EHRを暗号化データ格納部24に格納し、及び、対応するノード62をメタデータツリー70に追加するプロセスの一部として参加者システム30によって生成される。完全性情報150中のハッシュ及びメタデータサマリツリーは、メタデータツリー70のコミットされた状態を表しているので、該ハッシュをコミットされたハッシュともいい、該メタデータサマリツリーをコミットされたメタデータサマリツリーともいう。
【0031】
完全性情報150中のハッシュを、メタデータツリー70の間順走査(in-ordertraversal)の関数として生成することができ、この場合、該間順走査は、メタデータツリー70内の各ノード62の論理カウンタ97を用いて決定される。1例では、該ハッシュを、メタデータツリー70の間順走査全体の関数として生成することができる。
【0032】
別の例では、Hcurrentの初期値を、(下記の式1ではRootNodeと記載されている)ルートノード72から開始して、式1を用いてルートノード72のハッシュ(Hash)の関数として計算することができる。
【数1】

次に、論理カウンタ97を用いてツリー70の間順走査が実行されるが、ここでは、これは、(下記の式2ではCurrentNodeと記載されている)ノード74とノード76のそれぞれにおいて実行され、値Hcurrentは、式2を用いて更新される。
【数2】

該走査における最後のノード74または76のハッシュがHcurrentに含められると、最終のHcurrentには、メタデータツリー70全体のハッシュが記録される。
【0033】
図5の例に示されているように、完全性情報150中のメタデータサマリツリー100は、論理カウンタ97に基づいて、メタデータツリー70のノード62の順番を記録する。メタデータサマリツリー100内のそれぞれのノード102は、メタデータツリー70内のノード62に対応し、また、対応するノード62の論理カウンタ97のコピー107と、参加者識別子93のコピー103を含んでいる。
【0034】
環境10Aにおいて、参加者システム30は、参加者システム30(1)のメタデータ完全性バリデータ34の完全性情報150にアクセスし(たとえば、該メタデータ完全性バリデータ34から完全性情報150を取得し)、及び、完全性情報150を該バリデータ34に提供する。参加者システム30(1)を、たとえば、患者のかかりつけ医、または、患者に関係があるその他の参加者に対応付けることができる。図1Bに示されている環境10の別の例10Bでは、参加者システム30は、データアクセスフロント22を介してメタデータ完全性バリデータ34の完全性情報150にアクセスし(たとえば、該メタデータ完全性バリデータ34から完全性情報150を取得し)、及び、完全性情報150を該バリデータ34に提供する。
【0035】
図1Cに示されている環境10のさらに他の例10Cでは、メタデータ完全性バリデータ34を、メタデータ完全性バリデータ34(1)〜34(m)として2以上の参加者システム30に分散させることができる。この例では、メタデータ完全性バリデータ34(1)〜34(m)のそれぞれは、参加者システム30の対応する参加者によって管理されるメタデータツリー70の対応するサブツリーのハッシュ及びメタデータサマリツリーを格納する。このハッシュ及びメタデータサマリを、メタデータツリー70全体ではなく対応するサブツリーの間順走査を用いて上記のように生成することができる。
【0036】
図6図9を参照してさらに詳しく説明するように、参加者システム30は、メタデータ格納部26の患者のメタデータツリージャーナル60にアクセスし(たとえば、該メタデータ格納部26から患者のメタデータツリージャーナル60を取得し)、ジャーナル60及びメタデータ完全性バリデータ34からの完全性情報150を用いてメタデータツリー70を再構成し、及び、完全性情報150を用いて、再構成されたメタデータツリー70(の有効性)を検証する。参加者システム30は、(有効性が)検証されたメタデータツリー70を用いて、暗号化データ格納部24の暗号化EHR80にアクセスし(たとえば、暗号化データ格納部24から暗号化EHR80を取り出し)、及び/または、EHR80を該格納部24に格納する。参加者システム30はまた、暗号化EHR80を格納するときに、ジャーナリングメカニズムを用いてメタデータ格納部26のメタデータツリージャーナル60を更新し、及び、メタデータ完全性バリデータ34の完全性情報150を更新する。
【0037】
環境10、EHR格納部20、及び参加者システム30を、任意の適切なタイプ、数、及び構成の処理システムで実施することができ、この場合、該システムの各々は、1以上のメモリ(記憶装置)に格納されている命令を実行するための1以上のプロセッサを備えている。とりわけ、いくつかの実施形態では、データアクセスフロント22、暗号化データ格納部24、及びメタデータ格納部26を、異なる処理システムを用いて実施することができる。参加者システム30の1例が図6に示されており、この例についてはより詳しく後述する。さらに、任意の適切なタイプ、数、及び構成の有線ネットワーク装置及び/もしくは無線ネットワーク装置(不図示)を用いて、(複数の)処理システムが互いに通信できるようにすることができる。
【0038】
図6は、ヘルスケア参加者システム30の1例を示すブロック図である。参加者システム30は、メモリシステム124に格納されている一組の命令を実行するように構成された1以上のプロセッサからなる一組のプロセッサ122、メモリシステム124、及び、少なくとも1つの通信装置126を備えている。プロセッサ122、メモリシステム124、及び通信装置126は、一組の相互接続部128を用いて通信を行う。該相互接続部は、任意の適切なタイプ、数、及び/もしくは構成のコントローラ、バス、インターフェース、及び/もしくは、その他の有線接続もしくは無線接続を備えている。
【0039】
参加者システム30は、サーバーコンピュータ、ラップトップコンピュータ、タブレット型コンピュータ、デスクトップコンピュータ、処理能力を有する携帯電話(すなわちスマートフォン)、または、処理能力を有する他の適切なタイプの電子装置などの任意の適切な処理装置もしくは処理装置の一部を表している。それぞれのプロセッサ122は、メモリシステム124に格納されている命令にアクセスして該命令を実行し、並びに、メモリシステム124内のデータにアクセスし、及び、データをメモリシステム124に格納するように構成されている。メモリシステム124は、命令及びデータを格納するように構成された任意の適切なタイプ、数、及び構成の揮発性もしくは不揮発性の機械可読記憶媒体を備えることができる。メモリシステム124の機械可読記憶媒体の例には、ハードディスクドライブ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリドライブ及びフラッシュメモリカード、及び、その他の適切なタイプの磁気ディスク及び/もしくは光学ディスクが含まれる。機械可読記憶媒体は、物品もしくは製品の一部とみなされる。物品もしくは製品は、1以上の製造された構成要素を意味する。通信装置126は、参加者システム30が、1以上の有線ネットワークもしくは無線ネットワークを介して通信することを可能にするように構成された任意の適切なタイプ、数、及び/もしくは構成の通信装置を備えることができる。
【0040】
図7は、メタデータ完全性バリデータ34を実装ないし実施するメタデータ完全性バリデータシステム140の1例を示すブロック図である。メタデータ完全性バリデータシステム140は、メモリシステム144に格納されている一組の命令を実行するように構成された1以上のプロセッサからなる一組のプロセッサ142、メモリシステム144、及び、少なくとも1つの通信装置146を備えている。プロセッサ142、メモリシステム144、及び通信装置146は、一組の相互接続部148を用いて通信を行い、プロセッサ122、メモリシステム124、及び通信装置126についてそれぞれ上記したのと同様に構成され及び動作する。尚、該相互接続部は、任意の適切なタイプ、数、及び/もしくは構成のコントローラ、バス、インターフェース、及び/もしくは、その他の有線接続もしくは無線接続を備えている。
【0041】
図1A図1Cを参照して述べたように、メタデータ完全性バリデータシステム140を、図1Aに示されているように単一の参加者システム30に一体化することができ、または、図1Bに示されているように参加者システム30とは(分離した)別個のものとすることができ、または、図1Cに示されているように2以上の参加者システム30に分散させることができる。
【0042】
図6を再度参照すると、データアクセスアダプタ32は命令を有しており、該命令は、プロセッサ122によって実行されると、プロセッサ122に、データアクセスアダプタ32の機能を実行させる。以下、図8図10を参照して、データアクセスアダプタ32について説明する。
【0043】
図8は、同時処理環境においてメタデータツリー70(n)または70を用いて暗号化EHR80にアクセスする処理の1例を示す略図である。図6及び図8を参照すると、データアクセスアダプタ32は、矢印151で示されているように、データアクセスフロント22を介してメタデータ格納部26の患者12のメタデータツリージャーナル60にアクセスする(たとえば、メタデータ格納部26から患者12のメタデータツリージャーナル60を取得する)。メタデータ格納部26は、矢印152で示されているように、データアクセスフロント22を介して参加者システム30にメタデータツリージャーナル60を提供する。図4Aに示されているようなフルメタデータツリージャーナリングを用いる実施形態では、メタデータ格納部26によって提供されるメタデータツリージャーナル60は、最新の完全なメタデータツリー70(n)を備えている。図4Bに示されているようなインクリメンタルメタデータツリージャーナリングを用いる実施形態では、メタデータ格納部26によって提供されるメタデータツリージャーナル60は、メタデータツリージャーナル60に格納された全てのノード62を含んでいる。
【0044】
矢印153で示されているように、データアクセスアダプタ32は、メタデータ完全性バリデータ34のメタデータツリージャーナル60の完全性情報150にアクセスする(たとえば、メタデータ完全性バリデータ34から、メタデータツリージャーナル60の完全性情報150を取得する)。矢印154で示されているように、メタデータ完全性バリデータ34は、参加者システム30に完全性情報150を提供する。
【0045】
矢印155で示されているように、データアクセスアダプタ32は、完全性情報150を用いてメタデータツリージャーナル60からメタデータツリー70を再構成する。図4Aに示すフルメタデータツリージャーナリングを用いる実施形態では、データアクセスアダプタ32は、メタデータツリーキー132を用いて最新の完全なメタデータツリー70(n)を解読(たとえば暗号解読)する。データアクセスアダプタ32は、間順走査によってメタデータツリー70(n)を再構成し、(図5に示されている)メタデータサマリツリー100を用いて識別されたコミットされていない全てのノード62を除去する。データアクセスアダプタ32は、コミットされていないノード62を、(ノード62の)論理カウンタ97と参加者識別子93が、メタデータサマリツリー100中の対応するノード102内の論理カウンタ107と参加者識別子(参加者ID)103に(それぞれ)合致しないところのノード62として識別する。たとえば、同じ論理カウンタ97を有する2つのノード62がメタデータツリー70(n)内に出現している場合には、データアクセスアダプタ32は、それらのノードの参加者識別子と、メタデータサマリツリー100中の、それぞれのノード62に対応するノード102内の参加者識別子103とが合致しないノード62を除去する。
【0046】
図4Bに示されているインクリメンタルメタデータツリージャーナリングを用いる実施形態では、データアクセスアダプタ32は、メタデータツリーキー132を用いて、メタデータツリージャーナル60の全てのノード62を解読(たとえば暗号解読)し、間順走査を用いて全てのノード62を有する(または全てのノード62を使って)メタデータツリー70を再構成する。データアクセスアダプタ32は、論理カウンタ97及び参加者識別子93が、メタデータサマリツリー100中の対応するノード102内の論理カウンタ107及び参加者識別子103に(それぞれ)合致しないすべてのコミットされていないノード62を除去する。たとえば、同じ論理カウンタ97を有する2つのノード62が完全なメタデータツリー70内に出現している場合には、データアクセスアダプタ32は、それらのノードの参加者識別子と、メタデータサマリツリー100中の、それぞれのノード62に対応するノード102内の参加者識別子103とが合致しないノード62を除去する。
【0047】
矢印156で示されているように、データアクセスアダプタ32は、完全性情報150を用いて、再構成されたメタデータツリー70(の有効性)を検証する。データアクセスアダプタ32は、再構成されたメタデータツリー70(n)または70からコミットされていないノード62を除去した後、メタデータツリー70(n)または70のローカルハッシュ(局所的なハッシュ。たとえば、上記の例で述べたメタデータツリー70(n)または70の間順走査のハッシュ)を含む局所的な完全性情報134を生成して、該ローカルハッシュを、完全性情報150のコミットされたハッシュと比較する。矢印157で示されているように、ローカルハッシュがコミットされたハッシュと異なる場合には、データアクセスアダプタ32は、再構成されたツリー70(n)または70は有効ではない(すなわち、それらのツリーは、メタデータツリージャーナル60内の最も一貫性のある(もしくは最も整合する)メタデータツリーでも最新のメタデータツリーでもない)と判定して、矢印151〜156の機能を繰り返す。たとえば、メタデータツリージャーナルへの書き込みが、矢印151の機能の実行時間と矢印153の機能の実行時間の間に起こりうる。ローカルハッシュがコミットされたハッシュと同じ場合には、データアクセスアダプタ32は、再構成されたツリー70(n)または70は有効であると判定する。
【0048】
矢印158で示されているように、データアクセスアダプタ32は、暗号化EHR80に対応する再構成されたメタデータツリー70(n)または70内のノード76を決定する。データアクセスアダプタ32は、ノードキー136を用いてノード76を解読(たとえば暗号解読)する。この場合、該ノードキー136を、メタデータツリージャーナル60にノード76を格納する処理の一部として参加者システム30内に生成することができ、または、参加者システム30に、メタデータツリージャーナル60にノード76を格納した別の参加者システム30によって提供することができる。データアクセスアダプタ32は、ノード76を解読(たとえば暗号解読)することによって、ノード76の参照78を解読(たとえば暗号解読)し、これによって、暗号化データ格納部24の所望の暗号化EHR80にアクセスできるようにする(たとえば、暗号化データ格納部24から所望の暗号化EHR80を取得できるようにする)。
【0049】
矢印159で示されているように、データアクセスアダプタ32は、データアクセスフロント22を介して暗号化データ格納部24の暗号化EHR80にアクセスする(たとえば、データアクセスフロント22を介して暗号化データ格納部24から暗号化EHR80を取得する)。矢印160で示されているように、暗号化データ格納部24は、データアクセスフロント22を介して所望の暗号化EHR80を提供する。データアクセスアダプタ32は、暗号化EHR80を格納し、及び、矢印161で示されているように、レコードキー139を用いて、暗号化EHR80を(暗号)解読して(暗号)解読されたEHR138にする。レコードキー139を、暗号化データ格納部24に暗号化EHR80を格納する処理の一部として参加者システム30内に生成することができ、または、参加者システム30に、暗号化データ格納部24に暗号化EHR80を格納した別の参加者システム30によって提供することができる。データアクセスアダプタ32は、参加者に対して、解読されたEHR138を表示することができ、またはその他のやり方で該EHR138を出力することができる。
【0050】
図9は、同時処理環境において、メタデータツリー70(n)または70を用いて暗号化EHR80を格納する処理の1例を示す略図である。図6図8及び図9を参照すると、矢印171で示されているように、再構成されたメタデータツリー70(n)または70が有効になるまで、データアクセスアダプタ32は、図8の矢印151〜157の機能を実行する。矢印172で示されているように、データアクセスアダプタ32は、メタデータツリー70(n)または70における、EHR138に対応するノード76の場所(または位置)を決定する。
【0051】
矢印173で示されているように、データアクセスアダプタ32は、レコードキー139を用いてEHR138を暗号化して暗号化EHR80にする。レコードキー139を、暗号化データ格納部24に暗号化EHR80を格納する処理の一部として参加者システム30によって生成することができ、または、参加者システム30に、ノード76を含むメタデータツリー70(n)または70のサブツリーを管理する別の参加者システム30によって提供することができる。
【0052】
矢印174で示されているように、データアクセスアダプタ32は、データアクセスフロント22を介して、暗号化データ格納部24に暗号化EHR80を提供する。矢印175で示されているように、データアクセスアダプタ32は、データアクセスフロント22を介して、メタデータ格納部26内のメタデータツリージャーナル60を更新する。
【0053】
図4Aに示されているようなフルメタデータツリージャーナリングを用いる実施形態では、データアクセスアダプタ32は、格納されている暗号化EHR80への参照78を有するノード76を生成し、ノード76をメタデータツリー70(n)に追加して、更新されたメタデータツリー70(N+1)を生成することによって、メタデータツリージャーナル60を更新する。データアクセスアダプタ32は、ノードキー136でノード76を暗号化し、メタデータツリーキー132で更新されたメタデータツリー70(N+1)を暗号化し、該更新され暗号化されたメタデータツリー70(N+1)を、メタデータ格納部26内のメタデータツリージャーナル60に提供する。
【0054】
図4Bに示されているようなインクリメンタルメタデータツリージャーナリングを用いる実施形態では、データアクセスアダプタ32は、格納されている暗号化EHR80への参照78を有するノード76を生成し、ノード76をノードキー136で暗号化することによってメタデータツリージャーナル60を更新する。データアクセスアダプタ32は、メタデータツリー70を提供することなく、メタデータ格納部26に暗号化されたノード76を提供して、メタデータツリージャーナル60に該暗号化されたノード76を追加する。データアクセスアダプタ32はまた、更新されたメタデータツリー70用に局所的な完全性情報134を生成できるようにするために、メタデータツリー70にノード76を追加する。
【0055】
フルメタデータツリージャーナリングとインクリメンタルメタデータツリージャーナリングの両方について、データアクセスアダプタ32は、メタデータツリージャーナル60を更新する処理の一部としてノードキー136を生成することができ、または、ノード76が追加されるメタデータツリー70(n)中のサブツリーを管理する別の参加者システム30からノードキー136を受け取ることができる。
【0056】
矢印176で示すように、データアクセスアダプタ32は、更新されたメタデータツリー70(N+1)または70をメタデータ完全性バリデータ34に対してコミットする(または、更新されたメタデータツリー70(N+1)または70を該バリデータ34に格納ないし組み込む)ことを試みる。このために、データアクセスアダプタ32は、メタデータツリー70(N+1)または70用の局所的な完全性情報134を生成する。この場合、完全性情報134は、メタデータツリー70(N+1)または70のハッシュ(たとえば、上記の例で述べたメタデータツリー70(N+1)または70の間順走査のハッシュ)、及び、メタデータツリー70(N+1)または70のメタデータサマリツリー100を含んでいる。データアクセスアダプタ32は、コミットされた完全性情報150からのコミットされたハッシュと共に局所的な完全性情報134を、メタデータ完全性バリデータ34に提供する。
【0057】
メタデータ完全性バリデータ34は、局所的な完全性情報134及びコミットされたハッシュをデータアクセスアダプタ32から受け取ったことに応答して、データアクセスアダプタ32からのコミットされたハッシュと、メタデータ完全性バリデータ34のコミットされた完全性情報150に格納されているコミットされたハッシュを比較する。データアクセスアダプタ32からのハッシュが、メタデータ完全性バリデータ34に格納されているハッシュに合致する場合には、メタデータ完全性バリデータ34は、局所的な完全性情報134を、メタデータ完全性バリデータ34のコミットされた完全性情報150に対してコミットし(または、局所的な完全性情報134を該バリデータ34に格納ないし組み込み)、矢印177で示されているように、データアクセスアダプタ32に成功状態(success status)を提供する。
【0058】
データアクセスアダプタ32からのハッシュが、メタデータ完全性バリデータ34に格納されているハッシュに合致しない場合には、メタデータ完全性バリデータ34は、局所的な完全性情報134を、メタデータ完全性バリデータ34のコミットされた完全性情報150に対してコミットせず(または、局所的な完全性情報150を該完全性情報150には格納ないし組み込まず)、データアクセスアダプタ32に不成功状態(rejected status。不合格状態ともいう)を提供する。たとえば、別の参加者システム30が、矢印171の機能の実行時間と矢印176の機能の実行時間の間に異なる更新されたメタデータツリー70(N+1)または70をメタデータツリージャーナル60に対してコミットしうる。データアクセスアダプタ32は、更新されたメタデータツリー70(N+1)または70が、メタデータ完全性バリデータ34によって成功裏にコミットされるまで、矢印178で示されているように、矢印171〜177の機能を繰り返す。
【0059】
上記の例では、データアクセスアダプタ32は、データアクセスアダプタ32によって実行されるメタデータ格納部26に対するそれぞれの読み出しと書き込みについての読み出し進捗状態及び書き込み進捗状態を記録するロギングサービスを含むことができる。データアクセスアダプタ32が、メタデータ格納部26に対する読み出しまたは書き込み処理を実行しているときに、動作不能になった(たとえばクラッシュした)場合には、データアクセスアダプタ32は、動作可能になったときに、その記録(ログ)にアクセスして、終了していない読み出しまたは書き込み処理を再開する。
【0060】
上記したように、それぞれの異なる参加者は、それぞれ異なる参加者システム30を用いてメタデータツリー70のそれぞれ異なるサブツリーを管理することができる。サブツリーを管理するために、参加者は、サブツリー内の対応するノード74及び76のノードキーを管理して、患者の認可された他のヘルスケア参加者に対してアクセスを許可し及び無効にする。参加者は、別の参加者に選択されたノードキー及びレコードキーを提供することによってアクセスを許可する。参加者は、ノードキーをローテーション(交換)し、及び、無効化情報をメタデータツリーの対応するノードに埋め込むことによって、アクセスを無効にする。
【0061】
データアクセスアダプタ32は、メタデータツリー70のサブツリーに対する他の参加者のアクセスを無効にするために、(たとえば、無効にされているノードキーのハッシュをキーローテーション情報98に加えることによって)該サブツリーの親ノード74中のキーローテーション情報98を更新し、及び、親ノード74の下に無効ノード76(すなわち、タイプ96がキー無効に設定されているノード)を追加することによって、キー無効化情報をメタデータツリー70に埋め込む。データアクセスアダプタ32は、図9に示し及び上記した機能171及び175−178を用いて、更新された親ノード74及び無効ノード76でメタデータツリージャーナル60を更新し、及び、更新されたメタデータツリー70(N+1)または70をコミットする(または、該更新されたメタデータツリー70(N+1)または70をメタデータツリージャーナル60に反映ないし格納する)。
【0062】
キー無効化の後では、更新されたノードキーを持っていない参加者は、該無効化後に暗号化データ格納部24に格納されたサブツリーに対応する暗号化EHR80にアクセスすることも、該サブツリーに対応する新しい暗号化EHR80を暗号化データ格納部24に格納することもできないであろう。しかしながら、無効にされた参加者は、該無効化の前に暗号化データ格納部24に格納された暗号化EHR80には引き続きアクセスすることができる。
【0063】
図10は、キー無効化情報が埋め込まれているメタデータツリー70の一部の1例を示すブロック図である。図10の例では、無効ノード76(3)及び76(5)によって示されているように、親ノード74(1)に対して、2つの別個のキー無効化がなされている。無効ノード76(3)で示されているように、ノード76(1)及び76(2)を暗号化及び(暗号)解読するために使用されるノードキーの第1のバージョンが無効にされ、無効ノード76(5)によって示されているように、ノード76(4)を暗号化及び(暗号)解読するために使用されるノードキーの第2のバージョンが無効にされた。ノード76(6)を暗号化及び(暗号)解読するために使用されるノードキーの第3のバージョンは有効なままである。第1のバージョンが無効にされると、第1の無効化を実行するデータアクセスアダプタ32は、サブツリーの親ノード74(1)にキーローテーション情報98を追加して、(たとえば、ノードキーの第1のバージョンのハッシュをキーローテーション情報98に加えることによって)ノードキーの第1のバージョンが無効にされたことを示す。同様に、第2の無効化を実行するデータアクセスアダプタ32は、該サブツリーの親ノード74(1)にキーローテーション情報98を追加して、(たとえば、ノードキーの第2のバージョンのハッシュをキーローテーション情報98に加えることによって)ノードキーの第2のバージョンが無効にされたことを示す。
【0064】
図10の例では、ノードキーの第1のバージョンを有する参加者システム30は、ノード76(1)及び76(2)にはアクセスすることができるが、ノード76(4)及び76(6)にアクセスすることはできず、また、親ノード74(1)の下に新たなノード76を追加することはできない。ノードキーの第2のバージョンを有する参加者システム30は、ノード76(1)、76(2)及び76(4)にアクセスすることはできるが、ノード76(6)にアクセスすることはできず、また、親ノード74(1)の下に新たなノード76を追加することはできない。ノードキーの第3のバージョンを有する参加者システム30は、ノード76(1)、76(2)、76(4)、及び76(6)にアクセスすることができ、親ノード74(1)の下に新たなノード76を追加することもできる。
【0065】
キー無効化を実行するために、データアクセスアダプタ32は、親ノード74(1)内のキーローテーション情報98を調べて、参加者システム30のノードキーが無効にされているか否かを判定する。たとえば、データアクセスアダプタ32は、ノードキーのハッシュがキーローテーション情報98内に存在するか否かを決定することができる。存在する場合には、データアクセスアダプタ32は、ノードキーの無効化の前に生成されたノード76に対する読み出しアクセス(リードアクセス)を許可するだけであり、親ノード74(1)の下に新たなノード76を追加することはできないようにする。一方、存在しない場合には、データアクセスアダプタ32は、ノードキーは無効にされていないと判定して、全てのノード76を読み出すことができるようにし、かつ、親ノード74(1)の下に新たなノード76を追加できるようにする。
【0066】
上記の実施形態では、それぞれの暗号化EHR80について、患者キー、提供者識別子、及び暗号化EHR80に対応するメタデータツリー70内のノード62の場所(または位置)に基づいて、レコードキーを一意的に(たとえば、互いに異なるEHR80のそれぞれには、互いに異なる固有のレコードキーを)生成することができる。患者キーのそれぞれは、対応する患者に固有の暗号化キーであり、提供者識別子のそれぞれは、提供者の各患者用の提供者キーを生成するために患者キーと組み合わせて使用することができる情報を表す。場所(または位置)は、メタデータツリー70内の絶対パス(すなわち、URI(uniform resource identifier)を表す。提供者は、提供者キー及び対応する場所(または位置)の関数として各レコードキーを生成することができる。患者はレコードキーを生成することができるが、これは、患者が、提供者識別子及びメタデータツリー70にアクセスして、患者キー及び該提供者識別子を用いて提供者キーを生成し、該提供者キーと、所望の暗号化EHR80に対応するメタデータツリー70内のノード62の場所(または位置)とを用いてレコードキーを生成することによって行うことができる。
【0067】
有利なことに、上記の実施形態は、患者のメタデータツリージャーナルに対する同時読み出し及び書き込みプロトコルをサポートすると共に、参加者が、一貫性(ないし整合性)がありかつ最新のバージョンのメタデータツリーを確実に再構成できるようにすることができる。それらの実施形態は、ロックを使用することなく同時処理を提供することによって、それらの実施形態のスケーリングを可能にする。さらに、それらの実施形態は、暗号化データ格納部やメタデータ格納部が信頼できるエンティティ(実体)であることを必要としない。さらに、それらの実施形態は、望み通りにアクセス権を無効にするメカニズムを提供する。
図1A
図1B
図1C
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10