1.0.0 - ci-build

JPCoreV1 - Local Development build (v1.0.0). See the Directory of published versions

Search Guide

1.5. 検索

HL7®FHIR®規格では検索クエリに使用できるパラメータはSearchParameterリソースとして定義されており,検索クエリはSearchParameterリソースのname, valueを用いて

GET [base]/[type]?name=value&...

と表現される。

具体的には、

GET [base]/Patient?gender=male

という検索クエリにおける”gender”はPatientリソースにおけるgenderプロパティを指しているのではなく,Patientリソースに対応したid=individual-genderというSearchParameterリソースのname属性を示しており,このindividual-genderというSearchParameterリソースが検索対象としてPatient.genderを指定しているという構造になっている。

各SearchParameterにはtypeが定義されており、typeごとに検索条件や対象とするDatatype, 各Datatypeで検索するフィールドなどが定義されている。また,各typeには,検索時に使用できる:text, :notなどのmodifierを組み合わせて使用することもできる。

なお,サーバー側はクエリに一致するリソースを返すが,関連があると思われる追加の検索結果を返すことができる特権を有することに注意する。

本節では特に日本において問題となりうる機能に限って記載する。実装者は検索機能を実装するにあたり、SearchおよびSearchParameterについて十分に理解しておくよう勧められる。

1.5.1. 文字列検索

FHIR®におけるテキストについての検索は大きく4種類に分けることができる。ここではType:modifierと表すことにし,条件がある場合は適宜カッコで補足する。

  1. case sensitiveな完全一致
  2. case insensitiveな完全一致
  3. 通常のテキスト検索
  4. 高度な全文検索(full text search)

1.5.2. 人名の検索について

組織ごとに患者記録が作成,維持されており,複数の組織でケアを受けている患者は,その情報が複数のリソースに存在する可能性が高い。多くの場合は氏名による検索や、姓の変更があった場合でも下の名前+生年月日などの検索である程度候補を絞ることが可能である。一方で日本語表記を持たない外国人など,氏名を表す音をカタカナで表現した場合その方法は一意ではなく,複数システムとの連携を行う場合において,同一人物の突合が困難になる恐れがある。

将来的に組織・システムをまたいだMaster Patient Index(MPI)が整備されることがあれば、MPIに患者の同一性を問い合わせるクエリを用いることができる。