HL7 FHIR JP Core ImplementationGuide
1.2.0-dev - ci-build
HL7 FHIR JP Core ImplementationGuide - Local Development build (v1.2.0-dev) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
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について十分に理解しておくよう勧められる。
FHIR®におけるテキストについての検索は大きく4種類に分けることができる。ここではType:modifierと表すことにし、条件がある場合は適宜カッコで補足する。
といったオペレータが用意されており、eqを用いてcase insensitiveな全体一致をクエリできる。
組織ごとに患者記録が作成、維持されており、複数の組織でケアを受けている患者は、その情報が複数のリソースに存在する可能性が高い。多くの場合は氏名による検索や、姓の変更があった場合でも下の名前+生年月日などの検索である程度候補を絞ることが可能である。一方で日本語表記を持たない外国人など、氏名を表す音をカタカナで表現した場合その方法は一意ではなく、複数システムとの連携を行う場合において、同一人物の突合が困難になる恐れがある。
将来的に組織・システムをまたいだMaster Patient Index(MPI)が整備されることがあれば、MPIに患者の同一性を問い合わせるクエリを用いることができる。