(57)【要約】処理システムによって実行される方法は、メタデータツリージャーナルから患者のメタデータツリーを再構成するステップであって、該メタデータツリーは、暗号化データ格納部内の該患者の対応する複数の暗号化電子健康記録への複数の参照を含む、ステップと、該メタデータツリーの第１の完全性情報と、メタデータ完全性バリデータによって提供される該メタデータツリージャーナルに対応する第２の完全性情報とを比較することによって、該メタデータツリーを検証するステップを含む。【選択図】図８
2015527006.tif 000002
【特許請求の範囲】
【請求項１】
処理システムによって実行される方法であって、 
メタデータツリージャーナルから患者の第１のメタデータツリーを再構成するステップであって、該第１のメタデータツリーは複数の参照を含み、該複数の参照は、暗号化データ格納部内の該患者の対応する複数の暗号化電子健康記録への参照である、ステップと、
前記第１のメタデータツリーの第１の完全性情報と、メタデータ完全性バリデータによって提供される前記メタデータツリージャーナルに対応する第２の完全性情報を比較することによって、前記第１のメタデータツリーを検証するステップ
を含む方法。
【請求項２】
メタデータ格納部の前記メタデータツリージャーナルにアクセスするステップと、
前記メタデータ完全性バリデータの前記第２の完全性情報にアクセスするステップ
をさらに含む、請求項１の方法。
【請求項３】
前記第１のメタデータツリーを再構成した後で、前記第１のメタデータツリーに対応する前記第１の完全性情報を生成するステップをさらに含む、請求項１の方法。
【請求項４】
前記第１の完全性情報を、前記第１のメタデータツリーの第１のハッシュとして生成するステップをさらに含み、
前記第２の完全性情報は、第２のメタデータツリーの第２のハッシュである、請求項３の方法。
【請求項５】
前記メタデータ完全性バリデータから受け取ったサマリツリーを用いて、前記第１のメタデータツリーを再構成するステップをさらに含む、請求項１の方法。
【請求項６】
前記第１のメタデータツリーが有効ではないことに応答して、前記メタデータ格納部の前記メタデータツリージャーナルにアクセスするステップと、
前記メタデータ完全性バリデータの第３の完全性情報にアクセスするステップであって、該第３の完全性情報は、前記メタデータツリージャーナルに対応する、ステップと、
前記メタデータツリージャーナルから前記患者の第２のメタデータツリーを再構成するステップと、
前記第２のメタデータツリーの第４の完全性情報と前記第３の完全性情報を比較することによって、前記第２のメタデータツリーを検証するステップ
をさらに含む、請求項１の方法。
【請求項７】
前記複数の暗号化電子健康記録のうちの第１の暗号化電子健康記録は第１の提供者によって生成され、
前記複数の暗号化電子健康記録のうちの第２の暗号化電子健康記録は第２の提供者によって生成され、
前記第２の提供者は、前記第１の提供者とは無関係である、請求項１の方法。
【請求項８】
１以上のプロセッサからなる一組のプロセッサと、
一組の命令を格納しているメモリ
を備える処理システムであって、
前記一組の命令は、前記一組のプロセッサによって実行されると、該一組のプロセッサに、
メタデータ完全性バリデータを用いて患者の第１のメタデータツリーを検証するステップであって、該第１のメタデータツリーは、メタデータ格納部によって提供されたメタデータツリージャーナルから再構成されたものである、ステップと、
暗号化データ格納部内の暗号化電子健康記録に対応する前記第１のメタデータツリー中のノードを決定するステップと、
前記ノードからの参照を用いて、前記暗号化データ格納部の前記暗号化電子健康記録にアクセスするステップと、
レコードキーを用いて前記暗号化電子健康記録を解読するステップ
を実行させることからなる、処理システム。
【請求項９】
前記一組の命令は、前記一組のプロセッサによって実行されると、該一組のプロセッサに、
前記メタデータ格納部の前記メタデータツリージャーナルにアクセスするステップと、
前記第１のメタデータツリーから第１の完全性情報を生成するステップと、
前記メタデータ完全性バリデータの第２の完全性情報にアクセスするステップと、
前記第１の完全性情報と前記第２の完全性情報を比較することによって、前記第１のメタデータツリーを検証するステップ
を実行させることからなる、請求項８の処理システム。
【請求項１０】
前記一組の命令は、前記一組のプロセッサによって実行されると、該一組のプロセッサに、
前記第１のメタデータツリーの第１のハッシュを生成するステップと、
前記第１のハッシュと、前記メタデータ完全性バリデータによって提供される第２のメタデータツリーの第２のハッシュとを用いて、前記第１のメタデータツリーを検証するステップ
を実行させることからなる、請求項８の処理システム。
【請求項１１】
前記一組の命令は、前記一組のプロセッサによって実行されると、該一組のプロセッサに、
前記メタデータ完全性バリデータから受け取ったサマリツリーを用いて、前記第１のメタデータツリーを再構成するステップ
を実行させることからなる、請求項８の処理システム。
【請求項１２】
命令を格納している少なくとも１つの機械可読記憶媒体を含む製品であって、
前記命令は、処理システムによって実行されると、該処理システムに、
メタデータ完全性バリデータを用いて患者の第１のメタデータツリーを検証するステップであって、該第１のメタデータツリーは、メタデータ格納部によって提供されたメタデータツリージャーナルから再構成されたものである、ステップと、
暗号化データ格納部に暗号化電子健康記録を提供するステップと、
前記暗号化電子健康記録に対応する第１のメタデータレコードを含むように、前記メタデータ格納部内の前記第１のメタデータツリーを更新するステップと、
前記メタデータ完全性バリデータを用いて前記第１のメタデータツリーをコミットするステップ
を実行させることからなる、製品。
【請求項１３】
前記命令は、前記処理システムによって実行されると、該処理システムに、
前記第１のメタデータツリーから第１の完全性情報を生成するステップと、
前記メタデータ完全性バリデータの第２の完全性情報にアクセスするステップと、
前記第１及び第２の完全性情報を前記メタデータ完全性バリデータに提供することによって、前記第１のメタデータツリーをコミットするステップ
を実行させることからなる、請求項１２の製品。
【請求項１４】
前記命令は、前記処理システムによって実行されると、該処理システムに、
前記第１のメタデータツリーが前記メタデータ完全性バリデータによって不合格とされたことに応答して、前記メタデータ完全性バリデータを用いて前記患者の第２のメタデータツリーを検証するステップであって、該第２のメタデータツリーは、前記第１のメタデータツリーが前記メタデータ完全性バリデータによって不合格とされた後に、前記メタデータ格納部によって提供されたメタデータツリージャーナルから再構成されたものである、ステップと、
前記暗号化電子健康記録を前記暗号化データ格納部に提供するステップと、
前記暗号化電子健康記録に対応する第２のメタデータレコードを含むように、前記メタデータ格納部内の前記第２のメタデータツリーを更新するステップと、
前記メタデータ完全性バリデータを用いて前記第２のメタデータツリーをコミットするステップ
を実行させることからなる、請求項１２の製品。
【請求項１５】
前記命令は、前記処理システムによって実行されると、該処理システムに、
前記暗号化電子健康記録に対応する、前記第１のメタデータツリー内の場所を決定するステップと、
前記場所に関するメタデータレコードを生成するステップ
を実行させることからなる、請求項１２の製品。
【請求項１６】
前記命令は、前記処理システムによって実行されると、該処理システムに、
レコードキーを用いて電子健康記録を暗号化して、前記暗号化電子健康記録を生成するステップ
を実行させることからなる、請求項１２の製品。
【発明の詳細な説明】
【背景技術】
【０００１】
関連出願の相互参照
本願は、２０１２年８月１５日に提出された「Protocols forReading and Writing Electronic Medical Data Asynchronously in an Untrusted Cloud Storage」と題する米国仮特許出願第６１／６８３，７０２号、及び、２０１２年８月１５日に提出された「Metadata Tree Journaling with Access Right Revocation in anElectronic Medical Cloud Data Store」と題する米国仮特許出願第６１／６８３，７０５号に基づいて優先権を主張するものである。これらの特許出願の開示内容は、参照により本明細書に組み込まれるものとする。
【０００２】
電子健康記録（ＥＨＲ：Electronic Health Record。電子カルテなど。電子医療記録ともいう）は、ヘルスケア参加者（たとえば、患者、医療サービス提供者、医療費支払者、医療研究者）が、医療と健康情報へのアクセスとの連係を改善できるようにすることができる。ＥＨＲは、健康管理情報（ヘルスケア情報）へのアクセスを容易にしうるが、健康管理情報の共有は、多くの複雑な技術的な問題及び法的な問題を伴う場合がある。技術的な問題には、それぞれの異なる参加者に対して同時アクセスを提供する方法、及び、必要に応じて参加者のアクセスを無効にする方法が含まれうる。これらの問題は、健康管理情報の一貫性（ないし整合性）、プライバシー（秘密性）及びセキュリティを確保すると同時にそのような共有を可能にするための資金及び専門的知識がないヘルスケア参加者には大きな負担でありうる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】（補充可能性あり）
【図面の簡単な説明】
【０００４】
【図１Ａ】電子健康記録格納処理環境の１例を示すブロック図である。
【図１Ｂ】電子健康記録格納処理環境の１例を示すブロック図である。
【図１Ｃ】電子健康記録格納処理環境の１例を示すブロック図である。
【図２】メタデータツリージャーナル、及び暗号化データ格納部内の暗号化された電子健康記録の１例を示すブロック図である。
【図３】メタデータツリーノードの１例を示すブロック図である。
【図４Ａ】メタデータツリージャーナルの１例を示すブロック図である。
【図４Ｂ】メタデータツリージャーナルの１例を示すブロック図である。
【図５】メタデータサマリツリーの１例を示すブロック図である。
【図６】ヘルスケア参加者システムの１例を示すブロック図である。
【図７】メタデータ完全性バリデータシステムの１例を示すブロック図である。
【図８】同時処理環境においてメタデータツリーを用いて暗号化された電子健康記録にアクセスする処理の１例を示す略図である。
【図９】同時処理環境においてメタデータツリーを用いる暗号化された電子健康記録を格納する処理の１例を示す略図である。
【図１０】埋め込まれたキー無効化情報を有するメタデータツリーの一部の１例を示すブロック図である。
【発明を実施するための形態】
【０００５】
以下の詳細な説明では、本願の一部を構成する添付の図面を参照する。それらの図面には、開示されている主題を実施することができる特定の実施形態が例示されている。本開示の範囲から逸脱することなく、その他の実施形態を利用できること、及び、構造的ないし論理的な変更を行うことができることが理解されよう。したがって、以下の詳細な説明は、限定的な意味に解釈されるべきではなく、本開示の範囲は、特許請求の範囲によって画定されるものである。
【０００６】
本明細書及び／または図面に開示されている実施形態は、ヘルスケア参加者（たとえば、患者、医療サービス提供者、医療費支払者、医療研究者などの健康管理に関係する主体）間でＥＨＲを安全かつシームレスに共有できるようにする電子健康記録（ＥＨＲ）格納処理環境を提供する。該環境は、患者の暗号化されたＥＨＲ（以下、暗号化されたＥＨＲを暗号化ＥＨＲともいう）を格納する暗号化データ格納部、及び、各患者のメタデータツリージャーナルを格納するメタデータツリー格納部を備えている。それぞれのメタデータツリージャーナルを用いて、暗号化データ格納部内の患者のＥＨＲに対するマッピングを提供する、対応する患者のメタデータツリーを再構成することができる。医療サービス提供者などの認可されたヘルスケア参加者は、各患者のメタデータツリージャーナルにアクセスすることができ、これによって、患者のＥＨＲにアクセスしたり、該ＥＨＲを格納したりすることができる。
【０００７】
該環境はまた、患者のメタデータツリージャーナルに対する同時読み出し及び書き込みアクセスをサポートするためのメタデータ完全性バリデータ（メタデータ完全性検証部）を備えている。メタデータ完全性バリデータは、メタデータツリーのコミットされた状態を表す該メタデータツリーの完全性情報を格納する。ヘルスケア参加者システムは、この完全性情報を用いて、一貫性（ないし整合性）があり、かつ最新のバージョンのメタデータツリーがメタデータツリージャーナルから再構成されるのを確実にする。
【０００８】
メタデータ格納部は、追加のみ可能で変更できないストレージフレームワークを提供するジャーナリングメカニズム（journaling mechanism：ジャーナル処理メカニズムともいう）を用いてそれぞれのメタデータツリージャーナルを格納する。ヘルスケア参加者システムは、メタデータ格納部中の患者のメタデータツリージャーナルにアクセスし（たとえば、メタデータ格納部から患者のメタデータツリージャーナルを取得し）、該ジャーナル、及び、該バリデータからの完全性情報を用いてメタデータツリーを再構成し、及び、該完全性情報を用いて、再構成されたメタデータツリー（のたとえば有効性を）検証する。ヘルスケア参加者システムは、（有効性が）検証されたメタデータツリーを用いて、暗号化データ格納部の暗号化ＥＨＲにアクセスし、及び／または、暗号化データ格納部にＥＨＲを格納する。ヘルスケア参加者システムはまた、暗号化ＥＨＲを格納するときに、ジャーナリングメカニズムを用いてメタデータ格納部のメタデータツリージャーナルを更新し、並びに、バリデータの完全性情報を更新する。
【０００９】
該環境は、暗号化ＥＨＲ用のレコードキー、メタデータツリーのノード用のノードキー、及び、メタデータツリーの構造用のメタデータツリーキーを使ってＥＨＲに対するアクセスを制御する。暗号化ＥＨＲを暗号化データ格納部に格納するヘルスケア参加者は、レコードキーを使ってＥＨＲを暗号化する。これらの参加者はまた、対応する暗号化ＥＨＲに関するノードをメタデータツリーに付加する。それらのノードは、対応するノードキーで暗号化されている対応する暗号化ＥＨＲへの参照を含んでいる。メタデータツリーの構造もメタデータツリーキーを用いて暗号化されており、これによって、メタデータツリーへのアクセスが、該メタデータツリーキーを有する認可（すなわち許可）された（患者の）ヘルスケア参加者だけに制限されるようにしている。
【００１０】
１以上のヘルスケア参加者は、患者のメタデータツリーの異なるサブツリーを管理することができる。参加者は、サブツリーを管理するために、該サブツリー内の対応するノードのノードキーを管理ないし用いて、他の認可された（患者の）ヘルスケア参加者のアクセスを許可したり無効にしたりする。参加者は、他の参加者に選択されたノード及びレコードキーを提供することによってアクセスを許可する。参加者は、ノードキーをローテーション（交換）し、無効化情報をメタデータツリーの対応するノードに埋め込むことによってアクセスを無効にする。キーが無効にされると、アクセスが無効にされた参加者は、該無効化後に格納された暗号化ＥＨＲにアクセスすることも、新たな暗号化ＥＨＲを暗号化データ格納部に格納することもできなくなる。しかしながら、（アクセスが）無効にされた参加者は、該無効化の前に格納されていた暗号化ＥＨＲには引き続きアクセスすることができる。
【００１１】
本明細書で使用されている「ヘルスケア参加者」（参加者ともいう）という用語は、患者や、患者に対応する健康管理情報（ヘルスケア情報）を作成及び／または使用する患者の健康管理プロセスに関与する医療サービス提供者（医療機関など）、支払者、研究者、もしくは、その他の適切な者ないし主体を意味する（ヘルスケア参加者はヘルスケア関係者ともいう）。「患者」という用語は、医療サービス提供者から少なくとも１つの健康管理サービス（医療サービスなど）を受ける者を意味する。「医療サービス提供者」（提供者ともいう）という用語は、患者に少なくとも１つの健康管理サービスを提供する者及び／または団体ないし機関を意味する。
【００１２】
「電子健康記録」（ＥＨＲ）という用語は、ヘルスケア参加者によって作成されて、少なくとも１つの機械可読記憶媒体に電子形態で（たとえば電子データとして）記録される一組の健康管理情報（ヘルスケア情報）を意味する。「暗号化された電子健康記録」（暗号化電子健康記録または暗号化ＥＨＲともいう）という用語は、レコードキー（記録鍵）で暗号化されている電子健康記録を意味する。
【００１３】
「メタデータ」という用語は、電子健康記録などの少なくとも１つの記録を説明もしくは記述する一組の情報を意味する。「メタデータツリー」という用語は、メタデータを含む一組のノードを意味し、この場合、各ノードは、該組内の少なくとも１つの他のノードと特定の関係を有している。「メタデータツリージャーナル」という用語は、メタデータツリーのノードを格納するために追加のみ可能で変更できないジャーナリングメカニズムによって作成されたデータ構造を意味する。
【００１４】
「レコードキー」（記録鍵ともいう）という用語は、患者のＥＨＲを暗号化し及び（暗号）解読するために使用される暗号化キー（暗号化キーは暗号鍵ともいう）を意味する。「ノードキー」という用語は、患者のメタデータツリー内のノードの一部を暗号化し及び（暗号）解読するために使用される暗号化キーを意味する。「メタデータツリーキー」という用語は、患者のメタデータツリーの少なくとも一部を暗号化し及び（暗号）解読するために使用される暗号化キーを意味する。
【００１５】
図１Ａは、電子健康記録格納処理環境１０の１例１０Ａを示すブロック図である。環境１０Ａは、電子健康記録（ＥＨＲ）格納部２０、及び、一組のヘルスケア参加者システム３０（１）〜３０（ｍ）を含んでおり、ここで、ｍは２以上の整数である。環境１０Ａは、ＥＨＲ格納部２０及び参加者システム３０を用いて、患者のＥＨＲを作成し、該ＥＨＲにアクセスし、該ＥＨＲを格納し、管理し及び共有する能力を提供する。
【００１６】
ＥＨＲ格納部２０は、データアクセスフロント２２、暗号化データ格納部２４、及びメタデータ格納部２６を備えている。データアクセスフロント２２は、参加者システム３０と通信して、暗号化データ格納部２４及びメタデータ格納部２６に対するアクセスを管理する。暗号化データ格納部４は、参加者システム３０によって作成されて提供された患者の暗号化ＥＨＲを格納する。暗号化ＥＨＲは、参加者システム３０によって、レコードキーを用いて暗号化されており、及び、該キーを用いて（暗号）解読される。暗号化データ格納部２４は、暗号化ＥＨＲを格納するための任意の適切なタイプ、数、及び／もしくは構成の機械可読記憶媒体を備えている。それらのＥＨＲは暗号化されており、かつ、暗号化データ格納部２４は、それらのＥＨＲの暗号化キー（すなわちレコードキー）を格納していないので、暗号化データ格納部２４は、信頼できる（trusted）データ格納部であってもなくてもよい（たとえば、暗号化データ格納部２４を、１以上の信頼できないサードパーティが所有しまたは操作することができる）。
【００１７】
メタデータ格納部２６は、１以上の認可（すなわち許可）された参加者システム３０によって作成されて提供された、各患者のメタデータツリージャーナル（たとえば、図２に示されているメタデータツリージャーナル６０）を格納する。メタデータ格納部２６は、メタデータツリージャーナル用のストレージフレームワークを提供するためにジャーナリングメカニズムを実装しており、この場合、該ジャーナリングメカニズムは、追加のみ可能で変更はできない。さらに詳細に後述しているように、参加者システム３０は、それぞれのメタデータツリージャーナルを使用して、暗号化データ格納部２４中の患者のＥＨＲへのマッピングを提供する、対応する患者のメタデータツリー（たとえば、図２に示されているメタデータツリー７０）を再構成することができる。
【００１８】
図２は、メタデータツリージャーナル６０、及び、暗号化データ格納部２４内の暗号化された電子健康記録（暗号化ＥＨＲ）８０の１例を示すブロック図である。メタデータツリージャーナル６０はノード６２を含んでおり、この場合、ノード６２には、コミットされたノード７２、７４、７６、及び、コミットされていないノード７９が含まれている。コミットされたノード７２、７４、７６は、集合的にメタデータツリー７０を形成しており、該ツリーを参加者システム３０によって再構成することができる。メタデータツリー７０は、対応する暗号化ＥＨＲ８０に対して、１つのルートノード（根ノード）７２、任意の数の中間ノード７４、及び、１つのリーフノード（葉ノード）７６を有する階層ツリー構造を表している。ルートノード７２は、患者を識別する情報を含むことができ、中間ノード７４は、（たとえば、提供者毎の、または、処置ないし治療状態などの患者情報のカテゴリーによる）ＥＨＲ８０の論理的なグループ分けを表し、リーフノード７６は、暗号化データ格納部２４内の対応する暗号化ＥＨＲ８０への参照７８を含んでいる。参照７８は、暗号化データ格納部２４内の暗号化ＥＨＲ８０にアクセスするために参加者システム３０によって使用される。
【００１９】
図３は、メタデータツリーノード６２の１例を示すブロック図である。メタデータツリーノード６２は、ノード識別子（ノードＩＤ）９１、親識別子（親ＩＤ）９２、参加者識別子（参加者ＩＤ）９３、名前９４、バージョン９５、タイプ９６、論理カウンタ９７、キーローテーション情報９８、及び参照７８を含んでいる。ノード識別子９１は、ノード６２に対するグローバル一意識別子（globally unique identifier）であり、親識別子９２は、ノード６２の親ノードのノード識別子９１である。参加者識別子９３は、ノード６２を作成したヘルスケア参加者を識別する情報である。名前９４は、ノード６２を作成したヘルスケア参加者に付けられた名前である。バージョン９５は、ノード６２のバージョン番号である。タイプ９６は、新しい、更新された、または、キー無効などのノード６２のタイプ（種類）である。論理カウンタ９７は、親ノードの下のノード６２の順番を表すカウント値である（たとえば、中間ノード７４（すなわち、リーフノード７６の親ノード）の下のｉ番目のリーフノード７６の論理カウンタ９７はｉである）。キーローテーション情報９８は、ノード６２の任意の子ノードの無効化されたノードキーを識別するために使用することができる情報を含んでいる。参照７８は、暗号化データ格納部２４内の暗号化ＥＨＲ８０の場所（または位置）を識別する。
【００２０】
本明細書に記載されているように、「新しい」というタイプ９６で指定されているメタデータツリーノード６２を新しいノード６２という。「更新された」というタイプ９６で指定されているメタデータツリーノード６２を、更新されたノード６２といい、「キー無効」というタイプ９６で指定されているメタデータツリーノード６２を、無効ノード６２という。
【００２１】
メタデータツリーノード６２の他の例では、タイムスタンプ、ノード６２を作成したヘルスケア参加者のデジタル署名、及び、ノード６２に対応する暗号化ＥＨＲ８０を作成したヘルスケア参加者のデジタル署名などの他の適切な情報を、メタデータツリーノード６２に格納することができる。
【００２２】
メタデータ格納部２６によって実装ないし実施されるジャーナリングメカニズムは、互いに無関係の（たとえば提携関係や系列関係がない）提供者（たとえば、互いに関係のない異なる企業体の下で業務を行う提供者）が、メタデータ格納部２６に同時に最新情報を格納することを可能にする。ジャーナリングの追加のみ可能で変更できない特性によって、ノード６２が更新されたときに、メタデータツリージャーナル６０が、元のノード６２と更新されたノード６２の両方を格納することが確保される。
【００２３】
メタデータ格納部２６は、図４Ａの例に示されているフルメタデータツリージャーナリング（full metadata tree journaling。完全メタデータツリージャーナリングともいう）、または、図４Ｂの例に示されているインクリメンタルメタデータツリージャーナリング（incremental metadata tree journaling。増分式メタデータツリージャーナリングともいう）などの任意の適切なタイプのジャーナリングメカニズムを実装ないし実施することができる。
【００２４】
図４Ａの例では、メタデータ格納部２６Ａは、フルメタデータツリージャーナリングを実施し、この場合、参加者システム３０によって実行される書き込み操作毎に、更新されたメタデータツリー７０全体が、メタデータ格納部２６Ａ内のメタデータツリージャーナル６０Ａに格納される。したがって、図４Ａに示されているように、メタデータツリージャーナル６０Ａに対する最初の書き込み操作によって、完全なメタデータツリー７０（１）に追加のノード６２が格納される。同様に、メタデータツリージャーナル６０Ａに対するｎ番目の書き込み操作によって、完全なメタデータツリー７０（ｎ）に追加のノード６２が格納される。
【００２５】
図４Ｂの例では、メタデータ格納部２６Ｂは、インクリメンタルメタデータツリージャーナリングを実施し、この場合、参加者システム３０によって実行される、メタデータ格納部２６Ｂ内のメタデータツリージャーナル６０Ｂに対する書き込み操作毎に、ジャーナル６０Ｂに既に格納されているノード６２を格納し直すことなく、追加のノード６２が格納される。したがって、図４Ｂに示されているように、メタデータツリージャーナル６０Ｂに対する最初の書き込み操作によって、追加のノード６２（１）が格納される。同様に、メタデータツリージャーナル６０Ｂに対するｐ番目の書き込み操作によって、追加のノード６２（ｐ）が格納される。
【００２６】
図１Ａを再度参照すると、メタデータ格納部２６によって格納された各メタデータツリー７０の構成部分（すなわち、各ツリー７０の各ノード６２内の少なくともノード識別子９１、親識別子９３、及び参加者識別子９４）は、メタデータツリーキーを用いて暗号化されている。このメタデータツリー暗号化によって、環境１０Ａは、メタデータツリーキーを有する、ある患者の認可されたヘルスケア参加者のみに、該患者のメタデータツリー７０へのアクセスを制限することができる。メタデータツリーキーを、患者によって作成された患者固有のキーとすることができる。メタデータツリーキーを、たとえば、患者がヘルスケア参加者に登録したときに該参加者に提供することができ、または、あるヘルスケア参加者（たとえば、かかりつけ医）から別のヘルスケア参加者（たとえば、顧問医師）に提供することができる。
【００２７】
各メタデータツリー７０の他の部分（すなわち、各ノード６２中の少なくとも参照７８）はさらに、ノード６２を作成する参加者システム３０によってノードキーで暗号化されている。このノードキー暗号化によって、認可されていないヘルスケア参加者が、暗号化データ格納部２４内の暗号化ＥＨＲへの参照７８を取得するのが防止され、したがって、認可されていないヘルスケア参加者が、暗号化データ格納部２４の暗号化ＥＨＲにアクセスするのが防止される。これらのノードキーを、参加者によって作成される患者固有のキーとすることができる。ノードキーを、暗号化ＥＨＲ８０及び対応するノード７６をメタデータツリー７０に格納するヘルスケア参加者から他のヘルスケア参加者に提供して、該他のヘルスケア参加者が、ノード７６内の参照７８を解読し、これによって、暗号化データ格納部２４内の暗号化ＥＨＲ８０（もしくはその場所）を突き止めることができるようにすることができる。
【００２８】
患者、患者の健康管理プロセスに関与する医療サービス提供者、支払者、研究者、及びその他の適切な者を含む参加者は、患者のＥＨＲを作成し、該ＥＨＲにアクセスし、該ＥＨＲを格納し、管理し、及び共有するために、対応する参加者システム３０と対話し（不図示）、対応するデータアクセスアダプタ３２を用いてＥＨＲ格納部２０と通信する。それぞれのデータアクセスアダプタ３２は、ＥＨＲ格納部２０のデータアクセスフロント２２と通信し、暗号化データ格納部２４及びメタデータ格納部２６にアクセスする。
【００２９】
環境１０Ａはまた、患者のメタデータツリージャーナル６０に対する同時読み出し及び書き込みアクセス（読み出しと書き込みの同時アクセス）をサポートするための、患者システム３０（１）に実装されたメタデータ完全性バリデータ３４を備えている。メタデータ完全性バリデータ３４は、メタデータツリー７０のコミットされた状態を表す、メタデータツリー７０の（図７に示されている）完全性情報１５０を格納している。患者システム３０は、メタデータ完全性バリデータ３４からアクセスした完全性情報１５０を使用して、一貫性（ないし整合性）がありかつ最新のバージョンのメタデータツリー７０がメタデータツリージャーナル６０から再構成されるのを確実にする。したがって、メタデータ完全性バリデータ３４は、暗号化データ格納部２４に対する読み出し及び書き込みアクセスが、参加者システム３０によって、メタデータツリー７０の有効なバージョンに基づいて実行されることを確保する。
【００３０】
完全性情報１５０は、メタデータツリージャーナル６０内の最後にコミットされたメタデータツリーのハッシュ及び（図５に示されているメタデータサマリツリー１００などの）メタデータサマリツリー（サマリツリーは、要約ツリーもしくは要約木とも呼ばれる）を含んでいる。ハッシュ及びサマリは、暗号化ＥＨＲを暗号化データ格納部２４に格納し、及び、対応するノード６２をメタデータツリー７０に追加するプロセスの一部として参加者システム３０によって生成される。完全性情報１５０中のハッシュ及びメタデータサマリツリーは、メタデータツリー７０のコミットされた状態を表しているので、該ハッシュをコミットされたハッシュともいい、該メタデータサマリツリーをコミットされたメタデータサマリツリーともいう。
【００３１】
完全性情報１５０中のハッシュを、メタデータツリー７０の間順走査（in-ordertraversal）の関数として生成することができ、この場合、該間順走査は、メタデータツリー７０内の各ノード６２の論理カウンタ９７を用いて決定される。１例では、該ハッシュを、メタデータツリー７０の間順走査全体の関数として生成することができる。
【００３２】
別の例では、Ｈcurrentの初期値を、（下記の式１ではRootNodeと記載されている）ルートノード７２から開始して、式１を用いてルートノード７２のハッシュ（Hash）の関数として計算することができる。
【数１】
2015527006.tif 000003
次に、論理カウンタ９７を用いてツリー７０の間順走査が実行されるが、ここでは、これは、（下記の式２ではCurrentNodeと記載されている）ノード７４とノード７６のそれぞれにおいて実行され、値Ｈcurrentは、式２を用いて更新される。
【数２】
2015527006.tif 000004
該走査における最後のノード７４または７６のハッシュがＨcurrentに含められると、最終のＨcurrentには、メタデータツリー７０全体のハッシュが記録される。
【００３３】
図５の例に示されているように、完全性情報１５０中のメタデータサマリツリー１００は、論理カウンタ９７に基づいて、メタデータツリー７０のノード６２の順番を記録する。メタデータサマリツリー１００内のそれぞれのノード１０２は、メタデータツリー７０内のノード６２に対応し、また、対応するノード６２の論理カウンタ９７のコピー１０７と、参加者識別子９３のコピー１０３を含んでいる。
【００３４】
環境１０Ａにおいて、参加者システム３０は、参加者システム３０（１）のメタデータ完全性バリデータ３４の完全性情報１５０にアクセスし（たとえば、該メタデータ完全性バリデータ３４から完全性情報１５０を取得し）、及び、完全性情報１５０を該バリデータ３４に提供する。参加者システム３０（１）を、たとえば、患者のかかりつけ医、または、患者に関係があるその他の参加者に対応付けることができる。図１Ｂに示されている環境１０の別の例１０Ｂでは、参加者システム３０は、データアクセスフロント２２を介してメタデータ完全性バリデータ３４の完全性情報１５０にアクセスし（たとえば、該メタデータ完全性バリデータ３４から完全性情報１５０を取得し）、及び、完全性情報１５０を該バリデータ３４に提供する。
【００３５】
図１Ｃに示されている環境１０のさらに他の例１０Ｃでは、メタデータ完全性バリデータ３４を、メタデータ完全性バリデータ３４（１）〜３４（ｍ）として２以上の参加者システム３０に分散させることができる。この例では、メタデータ完全性バリデータ３４（１）〜３４（ｍ）のそれぞれは、参加者システム３０の対応する参加者によって管理されるメタデータツリー７０の対応するサブツリーのハッシュ及びメタデータサマリツリーを格納する。このハッシュ及びメタデータサマリを、メタデータツリー７０全体ではなく対応するサブツリーの間順走査を用いて上記のように生成することができる。
【００３６】
図６〜図９を参照してさらに詳しく説明するように、参加者システム３０は、メタデータ格納部２６の患者のメタデータツリージャーナル６０にアクセスし（たとえば、該メタデータ格納部２６から患者のメタデータツリージャーナル６０を取得し）、ジャーナル６０及びメタデータ完全性バリデータ３４からの完全性情報１５０を用いてメタデータツリー７０を再構成し、及び、完全性情報１５０を用いて、再構成されたメタデータツリー７０（の有効性）を検証する。参加者システム３０は、（有効性が）検証されたメタデータツリー７０を用いて、暗号化データ格納部２４の暗号化ＥＨＲ８０にアクセスし（たとえば、暗号化データ格納部２４から暗号化ＥＨＲ８０を取り出し）、及び／または、ＥＨＲ８０を該格納部２４に格納する。参加者システム３０はまた、暗号化ＥＨＲ８０を格納するときに、ジャーナリングメカニズムを用いてメタデータ格納部２６のメタデータツリージャーナル６０を更新し、及び、メタデータ完全性バリデータ３４の完全性情報１５０を更新する。
【００３７】
環境１０、ＥＨＲ格納部２０、及び参加者システム３０を、任意の適切なタイプ、数、及び構成の処理システムで実施することができ、この場合、該システムの各々は、１以上のメモリ（記憶装置）に格納されている命令を実行するための１以上のプロセッサを備えている。とりわけ、いくつかの実施形態では、データアクセスフロント２２、暗号化データ格納部２４、及びメタデータ格納部２６を、異なる処理システムを用いて実施することができる。参加者システム３０の１例が図６に示されており、この例についてはより詳しく後述する。さらに、任意の適切なタイプ、数、及び構成の有線ネットワーク装置及び／もしくは無線ネットワーク装置（不図示）を用いて、（複数の）処理システムが互いに通信できるようにすることができる。
【００３８】
図６は、ヘルスケア参加者システム３０の１例を示すブロック図である。参加者システム３０は、メモリシステム１２４に格納されている一組の命令を実行するように構成された１以上のプロセッサからなる一組のプロセッサ１２２、メモリシステム１２４、及び、少なくとも１つの通信装置１２６を備えている。プロセッサ１２２、メモリシステム１２４、及び通信装置１２６は、一組の相互接続部１２８を用いて通信を行う。該相互接続部は、任意の適切なタイプ、数、及び／もしくは構成のコントローラ、バス、インターフェース、及び／もしくは、その他の有線接続もしくは無線接続を備えている。
【００３９】
参加者システム３０は、サーバーコンピュータ、ラップトップコンピュータ、タブレット型コンピュータ、デスクトップコンピュータ、処理能力を有する携帯電話（すなわちスマートフォン）、または、処理能力を有する他の適切なタイプの電子装置などの任意の適切な処理装置もしくは処理装置の一部を表している。それぞれのプロセッサ１２２は、メモリシステム１２４に格納されている命令にアクセスして該命令を実行し、並びに、メモリシステム１２４内のデータにアクセスし、及び、データをメモリシステム１２４に格納するように構成されている。メモリシステム１２４は、命令及びデータを格納するように構成された任意の適切なタイプ、数、及び構成の揮発性もしくは不揮発性の機械可読記憶媒体を備えることができる。メモリシステム１２４の機械可読記憶媒体の例には、ハードディスクドライブ、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリドライブ及びフラッシュメモリカード、及び、その他の適切なタイプの磁気ディスク及び／もしくは光学ディスクが含まれる。機械可読記憶媒体は、物品もしくは製品の一部とみなされる。物品もしくは製品は、１以上の製造された構成要素を意味する。通信装置１２６は、参加者システム３０が、１以上の有線ネットワークもしくは無線ネットワークを介して通信することを可能にするように構成された任意の適切なタイプ、数、及び／もしくは構成の通信装置を備えることができる。
【００４０】
図７は、メタデータ完全性バリデータ３４を実装ないし実施するメタデータ完全性バリデータシステム１４０の１例を示すブロック図である。メタデータ完全性バリデータシステム１４０は、メモリシステム１４４に格納されている一組の命令を実行するように構成された１以上のプロセッサからなる一組のプロセッサ１４２、メモリシステム１４４、及び、少なくとも１つの通信装置１４６を備えている。プロセッサ１４２、メモリシステム１４４、及び通信装置１４６は、一組の相互接続部１４８を用いて通信を行い、プロセッサ１２２、メモリシステム１２４、及び通信装置１２６についてそれぞれ上記したのと同様に構成され及び動作する。尚、該相互接続部は、任意の適切なタイプ、数、及び／もしくは構成のコントローラ、バス、インターフェース、及び／もしくは、その他の有線接続もしくは無線接続を備えている。
【００４１】
図１Ａ〜図１Ｃを参照して述べたように、メタデータ完全性バリデータシステム１４０を、図１Ａに示されているように単一の参加者システム３０に一体化することができ、または、図１Ｂに示されているように参加者システム３０とは（分離した）別個のものとすることができ、または、図１Ｃに示されているように２以上の参加者システム３０に分散させることができる。
【００４２】
図６を再度参照すると、データアクセスアダプタ３２は命令を有しており、該命令は、プロセッサ１２２によって実行されると、プロセッサ１２２に、データアクセスアダプタ３２の機能を実行させる。以下、図８〜図１０を参照して、データアクセスアダプタ３２について説明する。
【００４３】
図８は、同時処理環境においてメタデータツリー７０（ｎ）または７０を用いて暗号化ＥＨＲ８０にアクセスする処理の１例を示す略図である。図６及び図８を参照すると、データアクセスアダプタ３２は、矢印１５１で示されているように、データアクセスフロント２２を介してメタデータ格納部２６の患者１２のメタデータツリージャーナル６０にアクセスする（たとえば、メタデータ格納部２６から患者１２のメタデータツリージャーナル６０を取得する）。メタデータ格納部２６は、矢印１５２で示されているように、データアクセスフロント２２を介して参加者システム３０にメタデータツリージャーナル６０を提供する。図４Ａに示されているようなフルメタデータツリージャーナリングを用いる実施形態では、メタデータ格納部２６によって提供されるメタデータツリージャーナル６０は、最新の完全なメタデータツリー７０（ｎ）を備えている。図４Ｂに示されているようなインクリメンタルメタデータツリージャーナリングを用いる実施形態では、メタデータ格納部２６によって提供されるメタデータツリージャーナル６０は、メタデータツリージャーナル６０に格納された全てのノード６２を含んでいる。
【００４４】
矢印１５３で示されているように、データアクセスアダプタ３２は、メタデータ完全性バリデータ３４のメタデータツリージャーナル６０の完全性情報１５０にアクセスする（たとえば、メタデータ完全性バリデータ３４から、メタデータツリージャーナル６０の完全性情報１５０を取得する）。矢印１５４で示されているように、メタデータ完全性バリデータ３４は、参加者システム３０に完全性情報１５０を提供する。
【００４５】
矢印１５５で示されているように、データアクセスアダプタ３２は、完全性情報１５０を用いてメタデータツリージャーナル６０からメタデータツリー７０を再構成する。図４Ａに示すフルメタデータツリージャーナリングを用いる実施形態では、データアクセスアダプタ３２は、メタデータツリーキー１３２を用いて最新の完全なメタデータツリー７０（ｎ）を解読（たとえば暗号解読）する。データアクセスアダプタ３２は、間順走査によってメタデータツリー７０（ｎ）を再構成し、（図５に示されている）メタデータサマリツリー１００を用いて識別されたコミットされていない全てのノード６２を除去する。データアクセスアダプタ３２は、コミットされていないノード６２を、（ノード６２の）論理カウンタ９７と参加者識別子９３が、メタデータサマリツリー１００中の対応するノード１０２内の論理カウンタ１０７と参加者識別子（参加者ＩＤ）１０３に（それぞれ）合致しないところのノード６２として識別する。たとえば、同じ論理カウンタ９７を有する２つのノード６２がメタデータツリー７０（ｎ）内に出現している場合には、データアクセスアダプタ３２は、それらのノードの参加者識別子と、メタデータサマリツリー１００中の、それぞれのノード６２に対応するノード１０２内の参加者識別子１０３とが合致しないノード６２を除去する。
【００４６】
図４Ｂに示されているインクリメンタルメタデータツリージャーナリングを用いる実施形態では、データアクセスアダプタ３２は、メタデータツリーキー１３２を用いて、メタデータツリージャーナル６０の全てのノード６２を解読（たとえば暗号解読）し、間順走査を用いて全てのノード６２を有する（または全てのノード６２を使って）メタデータツリー７０を再構成する。データアクセスアダプタ３２は、論理カウンタ９７及び参加者識別子９３が、メタデータサマリツリー１００中の対応するノード１０２内の論理カウンタ１０７及び参加者識別子１０３に（それぞれ）合致しないすべてのコミットされていないノード６２を除去する。たとえば、同じ論理カウンタ９７を有する２つのノード６２が完全なメタデータツリー７０内に出現している場合には、データアクセスアダプタ３２は、それらのノードの参加者識別子と、メタデータサマリツリー１００中の、それぞれのノード６２に対応するノード１０２内の参加者識別子１０３とが合致しないノード６２を除去する。
【００４７】
矢印１５６で示されているように、データアクセスアダプタ３２は、完全性情報１５０を用いて、再構成されたメタデータツリー７０（の有効性）を検証する。データアクセスアダプタ３２は、再構成されたメタデータツリー７０（ｎ）または７０からコミットされていないノード６２を除去した後、メタデータツリー７０（ｎ）または７０のローカルハッシュ（局所的なハッシュ。たとえば、上記の例で述べたメタデータツリー７０（ｎ）または７０の間順走査のハッシュ）を含む局所的な完全性情報１３４を生成して、該ローカルハッシュを、完全性情報１５０のコミットされたハッシュと比較する。矢印１５７で示されているように、ローカルハッシュがコミットされたハッシュと異なる場合には、データアクセスアダプタ３２は、再構成されたツリー７０（ｎ）または７０は有効ではない（すなわち、それらのツリーは、メタデータツリージャーナル６０内の最も一貫性のある（もしくは最も整合する）メタデータツリーでも最新のメタデータツリーでもない）と判定して、矢印１５１〜１５６の機能を繰り返す。たとえば、メタデータツリージャーナルへの書き込みが、矢印１５１の機能の実行時間と矢印１５３の機能の実行時間の間に起こりうる。ローカルハッシュがコミットされたハッシュと同じ場合には、データアクセスアダプタ３２は、再構成されたツリー７０（ｎ）または７０は有効であると判定する。
【００４８】
矢印１５８で示されているように、データアクセスアダプタ３２は、暗号化ＥＨＲ８０に対応する再構成されたメタデータツリー７０（ｎ）または７０内のノード７６を決定する。データアクセスアダプタ３２は、ノードキー１３６を用いてノード７６を解読（たとえば暗号解読）する。この場合、該ノードキー１３６を、メタデータツリージャーナル６０にノード７６を格納する処理の一部として参加者システム３０内に生成することができ、または、参加者システム３０に、メタデータツリージャーナル６０にノード７６を格納した別の参加者システム３０によって提供することができる。データアクセスアダプタ３２は、ノード７６を解読（たとえば暗号解読）することによって、ノード７６の参照７８を解読（たとえば暗号解読）し、これによって、暗号化データ格納部２４の所望の暗号化ＥＨＲ８０にアクセスできるようにする（たとえば、暗号化データ格納部２４から所望の暗号化ＥＨＲ８０を取得できるようにする）。
【００４９】
矢印１５９で示されているように、データアクセスアダプタ３２は、データアクセスフロント２２を介して暗号化データ格納部２４の暗号化ＥＨＲ８０にアクセスする（たとえば、データアクセスフロント２２を介して暗号化データ格納部２４から暗号化ＥＨＲ８０を取得する）。矢印１６０で示されているように、暗号化データ格納部２４は、データアクセスフロント２２を介して所望の暗号化ＥＨＲ８０を提供する。データアクセスアダプタ３２は、暗号化ＥＨＲ８０を格納し、及び、矢印１６１で示されているように、レコードキー１３９を用いて、暗号化ＥＨＲ８０を（暗号）解読して（暗号）解読されたＥＨＲ１３８にする。レコードキー１３９を、暗号化データ格納部２４に暗号化ＥＨＲ８０を格納する処理の一部として参加者システム３０内に生成することができ、または、参加者システム３０に、暗号化データ格納部２４に暗号化ＥＨＲ８０を格納した別の参加者システム３０によって提供することができる。データアクセスアダプタ３２は、参加者に対して、解読されたＥＨＲ１３８を表示することができ、またはその他のやり方で該ＥＨＲ１３８を出力することができる。
【００５０】
図９は、同時処理環境において、メタデータツリー７０（ｎ）または７０を用いて暗号化ＥＨＲ８０を格納する処理の１例を示す略図である。図６、図８及び図９を参照すると、矢印１７１で示されているように、再構成されたメタデータツリー７０（ｎ）または７０が有効になるまで、データアクセスアダプタ３２は、図８の矢印１５１〜１５７の機能を実行する。矢印１７２で示されているように、データアクセスアダプタ３２は、メタデータツリー７０（ｎ）または７０における、ＥＨＲ１３８に対応するノード７６の場所（または位置）を決定する。
【００５１】
矢印１７３で示されているように、データアクセスアダプタ３２は、レコードキー１３９を用いてＥＨＲ１３８を暗号化して暗号化ＥＨＲ８０にする。レコードキー１３９を、暗号化データ格納部２４に暗号化ＥＨＲ８０を格納する処理の一部として参加者システム３０によって生成することができ、または、参加者システム３０に、ノード７６を含むメタデータツリー７０（ｎ）または７０のサブツリーを管理する別の参加者システム３０によって提供することができる。
【００５２】
矢印１７４で示されているように、データアクセスアダプタ３２は、データアクセスフロント２２を介して、暗号化データ格納部２４に暗号化ＥＨＲ８０を提供する。矢印１７５で示されているように、データアクセスアダプタ３２は、データアクセスフロント２２を介して、メタデータ格納部２６内のメタデータツリージャーナル６０を更新する。
【００５３】
図４Ａに示されているようなフルメタデータツリージャーナリングを用いる実施形態では、データアクセスアダプタ３２は、格納されている暗号化ＥＨＲ８０への参照７８を有するノード７６を生成し、ノード７６をメタデータツリー７０（ｎ）に追加して、更新されたメタデータツリー７０（Ｎ＋１）を生成することによって、メタデータツリージャーナル６０を更新する。データアクセスアダプタ３２は、ノードキー１３６でノード７６を暗号化し、メタデータツリーキー１３２で更新されたメタデータツリー７０（Ｎ＋１）を暗号化し、該更新され暗号化されたメタデータツリー７０（Ｎ＋１）を、メタデータ格納部２６内のメタデータツリージャーナル６０に提供する。
【００５４】
図４Ｂに示されているようなインクリメンタルメタデータツリージャーナリングを用いる実施形態では、データアクセスアダプタ３２は、格納されている暗号化ＥＨＲ８０への参照７８を有するノード７６を生成し、ノード７６をノードキー１３６で暗号化することによってメタデータツリージャーナル６０を更新する。データアクセスアダプタ３２は、メタデータツリー７０を提供することなく、メタデータ格納部２６に暗号化されたノード７６を提供して、メタデータツリージャーナル６０に該暗号化されたノード７６を追加する。データアクセスアダプタ３２はまた、更新されたメタデータツリー７０用に局所的な完全性情報１３４を生成できるようにするために、メタデータツリー７０にノード７６を追加する。
【００５５】
フルメタデータツリージャーナリングとインクリメンタルメタデータツリージャーナリングの両方について、データアクセスアダプタ３２は、メタデータツリージャーナル６０を更新する処理の一部としてノードキー１３６を生成することができ、または、ノード７６が追加されるメタデータツリー７０（ｎ）中のサブツリーを管理する別の参加者システム３０からノードキー１３６を受け取ることができる。
【００５６】
矢印１７６で示すように、データアクセスアダプタ３２は、更新されたメタデータツリー７０（Ｎ＋１）または７０をメタデータ完全性バリデータ３４に対してコミットする（または、更新されたメタデータツリー７０（Ｎ＋１）または７０を該バリデータ３４に格納ないし組み込む）ことを試みる。このために、データアクセスアダプタ３２は、メタデータツリー７０（Ｎ＋１）または７０用の局所的な完全性情報１３４を生成する。この場合、完全性情報１３４は、メタデータツリー７０（Ｎ＋１）または７０のハッシュ（たとえば、上記の例で述べたメタデータツリー７０（Ｎ＋１）または７０の間順走査のハッシュ）、及び、メタデータツリー７０（Ｎ＋１）または７０のメタデータサマリツリー１００を含んでいる。データアクセスアダプタ３２は、コミットされた完全性情報１５０からのコミットされたハッシュと共に局所的な完全性情報１３４を、メタデータ完全性バリデータ３４に提供する。
【００５７】
メタデータ完全性バリデータ３４は、局所的な完全性情報１３４及びコミットされたハッシュをデータアクセスアダプタ３２から受け取ったことに応答して、データアクセスアダプタ３２からのコミットされたハッシュと、メタデータ完全性バリデータ３４のコミットされた完全性情報１５０に格納されているコミットされたハッシュを比較する。データアクセスアダプタ３２からのハッシュが、メタデータ完全性バリデータ３４に格納されているハッシュに合致する場合には、メタデータ完全性バリデータ３４は、局所的な完全性情報１３４を、メタデータ完全性バリデータ３４のコミットされた完全性情報１５０に対してコミットし（または、局所的な完全性情報１３４を該バリデータ３４に格納ないし組み込み）、矢印１７７で示されているように、データアクセスアダプタ３２に成功状態（success status）を提供する。
【００５８】
データアクセスアダプタ３２からのハッシュが、メタデータ完全性バリデータ３４に格納されているハッシュに合致しない場合には、メタデータ完全性バリデータ３４は、局所的な完全性情報１３４を、メタデータ完全性バリデータ３４のコミットされた完全性情報１５０に対してコミットせず（または、局所的な完全性情報１５０を該完全性情報１５０には格納ないし組み込まず）、データアクセスアダプタ３２に不成功状態（rejected status。不合格状態ともいう）を提供する。たとえば、別の参加者システム３０が、矢印１７１の機能の実行時間と矢印１７６の機能の実行時間の間に異なる更新されたメタデータツリー７０（Ｎ＋１）または７０をメタデータツリージャーナル６０に対してコミットしうる。データアクセスアダプタ３２は、更新されたメタデータツリー７０（Ｎ＋１）または７０が、メタデータ完全性バリデータ３４によって成功裏にコミットされるまで、矢印１７８で示されているように、矢印１７１〜１７７の機能を繰り返す。
【００５９】
上記の例では、データアクセスアダプタ３２は、データアクセスアダプタ３２によって実行されるメタデータ格納部２６に対するそれぞれの読み出しと書き込みについての読み出し進捗状態及び書き込み進捗状態を記録するロギングサービスを含むことができる。データアクセスアダプタ３２が、メタデータ格納部２６に対する読み出しまたは書き込み処理を実行しているときに、動作不能になった（たとえばクラッシュした）場合には、データアクセスアダプタ３２は、動作可能になったときに、その記録（ログ）にアクセスして、終了していない読み出しまたは書き込み処理を再開する。
【００６０】
上記したように、それぞれの異なる参加者は、それぞれ異なる参加者システム３０を用いてメタデータツリー７０のそれぞれ異なるサブツリーを管理することができる。サブツリーを管理するために、参加者は、サブツリー内の対応するノード７４及び７６のノードキーを管理して、患者の認可された他のヘルスケア参加者に対してアクセスを許可し及び無効にする。参加者は、別の参加者に選択されたノードキー及びレコードキーを提供することによってアクセスを許可する。参加者は、ノードキーをローテーション（交換）し、及び、無効化情報をメタデータツリーの対応するノードに埋め込むことによって、アクセスを無効にする。
【００６１】
データアクセスアダプタ３２は、メタデータツリー７０のサブツリーに対する他の参加者のアクセスを無効にするために、（たとえば、無効にされているノードキーのハッシュをキーローテーション情報９８に加えることによって）該サブツリーの親ノード７４中のキーローテーション情報９８を更新し、及び、親ノード７４の下に無効ノード７６（すなわち、タイプ９６がキー無効に設定されているノード）を追加することによって、キー無効化情報をメタデータツリー７０に埋め込む。データアクセスアダプタ３２は、図９に示し及び上記した機能１７１及び１７５−１７８を用いて、更新された親ノード７４及び無効ノード７６でメタデータツリージャーナル６０を更新し、及び、更新されたメタデータツリー７０（Ｎ＋１）または７０をコミットする（または、該更新されたメタデータツリー７０（Ｎ＋１）または７０をメタデータツリージャーナル６０に反映ないし格納する）。
【００６２】
キー無効化の後では、更新されたノードキーを持っていない参加者は、該無効化後に暗号化データ格納部２４に格納されたサブツリーに対応する暗号化ＥＨＲ８０にアクセスすることも、該サブツリーに対応する新しい暗号化ＥＨＲ８０を暗号化データ格納部２４に格納することもできないであろう。しかしながら、無効にされた参加者は、該無効化の前に暗号化データ格納部２４に格納された暗号化ＥＨＲ８０には引き続きアクセスすることができる。
【００６３】
図１０は、キー無効化情報が埋め込まれているメタデータツリー７０の一部の１例を示すブロック図である。図１０の例では、無効ノード７６（３）及び７６（５）によって示されているように、親ノード７４（１）に対して、２つの別個のキー無効化がなされている。無効ノード７６（３）で示されているように、ノード７６（１）及び７６（２）を暗号化及び（暗号）解読するために使用されるノードキーの第１のバージョンが無効にされ、無効ノード７６（５）によって示されているように、ノード７６（４）を暗号化及び（暗号）解読するために使用されるノードキーの第２のバージョンが無効にされた。ノード７６（６）を暗号化及び（暗号）解読するために使用されるノードキーの第３のバージョンは有効なままである。第１のバージョンが無効にされると、第１の無効化を実行するデータアクセスアダプタ３２は、サブツリーの親ノード７４（１）にキーローテーション情報９８を追加して、（たとえば、ノードキーの第１のバージョンのハッシュをキーローテーション情報９８に加えることによって）ノードキーの第１のバージョンが無効にされたことを示す。同様に、第２の無効化を実行するデータアクセスアダプタ３２は、該サブツリーの親ノード７４（１）にキーローテーション情報９８を追加して、（たとえば、ノードキーの第２のバージョンのハッシュをキーローテーション情報９８に加えることによって）ノードキーの第２のバージョンが無効にされたことを示す。
【００６４】
図１０の例では、ノードキーの第１のバージョンを有する参加者システム３０は、ノード７６（１）及び７６（２）にはアクセスすることができるが、ノード７６（４）及び７６（６）にアクセスすることはできず、また、親ノード７４（１）の下に新たなノード７６を追加することはできない。ノードキーの第２のバージョンを有する参加者システム３０は、ノード７６（１）、７６（２）及び７６（４）にアクセスすることはできるが、ノード７６（６）にアクセスすることはできず、また、親ノード７４（１）の下に新たなノード７６を追加することはできない。ノードキーの第３のバージョンを有する参加者システム３０は、ノード７６（１）、７６（２）、７６（４）、及び７６（６）にアクセスすることができ、親ノード７４（１）の下に新たなノード７６を追加することもできる。
【００６５】
キー無効化を実行するために、データアクセスアダプタ３２は、親ノード７４（１）内のキーローテーション情報９８を調べて、参加者システム３０のノードキーが無効にされているか否かを判定する。たとえば、データアクセスアダプタ３２は、ノードキーのハッシュがキーローテーション情報９８内に存在するか否かを決定することができる。存在する場合には、データアクセスアダプタ３２は、ノードキーの無効化の前に生成されたノード７６に対する読み出しアクセス（リードアクセス）を許可するだけであり、親ノード７４（１）の下に新たなノード７６を追加することはできないようにする。一方、存在しない場合には、データアクセスアダプタ３２は、ノードキーは無効にされていないと判定して、全てのノード７６を読み出すことができるようにし、かつ、親ノード７４（１）の下に新たなノード７６を追加できるようにする。
【００６６】
上記の実施形態では、それぞれの暗号化ＥＨＲ８０について、患者キー、提供者識別子、及び暗号化ＥＨＲ８０に対応するメタデータツリー７０内のノード６２の場所（または位置）に基づいて、レコードキーを一意的に（たとえば、互いに異なるＥＨＲ８０のそれぞれには、互いに異なる固有のレコードキーを）生成することができる。患者キーのそれぞれは、対応する患者に固有の暗号化キーであり、提供者識別子のそれぞれは、提供者の各患者用の提供者キーを生成するために患者キーと組み合わせて使用することができる情報を表す。場所（または位置）は、メタデータツリー７０内の絶対パス（すなわち、URI（uniform resource identifier）を表す。提供者は、提供者キー及び対応する場所（または位置）の関数として各レコードキーを生成することができる。患者はレコードキーを生成することができるが、これは、患者が、提供者識別子及びメタデータツリー７０にアクセスして、患者キー及び該提供者識別子を用いて提供者キーを生成し、該提供者キーと、所望の暗号化ＥＨＲ８０に対応するメタデータツリー７０内のノード６２の場所（または位置）とを用いてレコードキーを生成することによって行うことができる。
【００６７】
有利なことに、上記の実施形態は、患者のメタデータツリージャーナルに対する同時読み出し及び書き込みプロトコルをサポートすると共に、参加者が、一貫性（ないし整合性）がありかつ最新のバージョンのメタデータツリーを確実に再構成できるようにすることができる。それらの実施形態は、ロックを使用することなく同時処理を提供することによって、それらの実施形態のスケーリングを可能にする。さらに、それらの実施形態は、暗号化データ格納部やメタデータ格納部が信頼できるエンティティ（実体）であることを必要としない。さらに、それらの実施形態は、望み通りにアクセス権を無効にするメカニズムを提供する。
【図１Ａ】
2015527006.tif 000005
【図１Ｂ】
2015527006.tif 000006
【図１Ｃ】
2015527006.tif 000007
【図２】
2015527006.tif 000008
【図３】
2015527006.tif 000009
【図４Ａ】
2015527006.tif 000010
【図４Ｂ】
2015527006.tif 000011
【図５】
2015527006.tif 000012
【図６】
2015527006.tif 000013
【図７】
2015527006.tif 000014
【図８】
2015527006.tif 000015
【図９】
2015527006.tif 000016
【図１０】
2015527006.tif 000017
【国際調査報告】
2015527006.tif 000018
2015527006.tif 000019