Этого можно достичь с помощью параметров поиска.
Параметры поиска - это, по сути, именованные пути в ресурсах, которые индексируются системой, чтобы их можно было использовать для поиска ресурсов, соответствующих заданным критериям.
Используя параметр поиска
, мы можем добавить дополнительные параметры поиска, которые будут индексировать поля, для которых не определен стандартный параметр поиска.
we мы можем добавить дополнительные параметры поиска, которые будут индексировать расширения, используемые вашими клиентами.
мы можем отключить параметры поиска
Пример:
Допустим, у меня есть PractitionerRole
"resourceType": "PractitionerRole",
"id": "6639",
"meta": {
"versionId": "1",
"lastUpdated": "2020-03-19T13:26:34.748+05:30",
"source": "#aYyeIlv9Yutudiwy"
},
"text": {
"status": "generated",
"div": "<div xmlns=\"<http://www.w3.org/1999/xhtml\">foo</div>">
},
"active": true,
"practitioner": {
"reference": "Practitioner/6607"
},
"organization": {
"reference": "Organization/6528"
},
"specialty": [
{
"coding": [
{
"system": "<http://snomed.info/sct",>
"code": "42343242",
"display": "Clinical immunology"
}
]
}
]
}
PractitionerRole имеет свои собственные параметры поиска. Помимо этих параметров поиска, мы хотели иметь параметр поиска, который будет фильтровать все роли практикующего на основе Practitioner.reference. Мы можем добиться этого, используя параметры поиска. Все, что нам нужно сделать, - это создать новый параметр поиска, как показано ниже.
{
"resourceType": "SearchParameter",
"title": "Practitioner Referecene",
"base": [ "PractitionerRole" ],
"status": "active",
"code": "practitioner_reference",
"type": "token",
"expression": "PractitionerRole.practitioner.reference",
"xpathUsage": "normal"
}
Здесь fhir говорит, что когда пользователь хотел отфильтровать с Practitioner_reference, тогда ищите PractitionerRole.practitioner.reference.
Это выглядит примерно так: http://localhost: 8080 / hapi-fhir-jpaserver / fhir / PractitionerRole? Practitioner_reference = Practitioner / 6607
Мы также можем расширить это для поиска с несколькими параметрами , Мы можем создать параметр поиска с условием или условием, чтобы он мог выполнять поиск с несколькими параметрами.
"resourceType": "SearchParameter",
"title": "Patient Multi Search",
"base": [ "Patient" ],
"status": "active",
"code": "pcontent",
"type": "token",
"expression": "Patient.managingOrganization.reference|Patient.birthDate|Patient.address[0].city",
"xpathUsage": "normal"
}
Выше SearchParameter будет выполнять поиск с помощьюPatient.managingOrganization.reference или Patient.birthDate или Patient.address [0] .city.
Запрос выглядит следующим образом:
Поиск по городу → http://localhost: 8080 / hapi-fhir-jpaserver / fhir / Patient? Pcontent = Bruenmouth
Поиск с датой рождения → http://localhost: 8080 / hapi-fhir-jpaserver / fhir / Patient? Pcontent = 2019-04-06