Использование параметра поиска _profile в HAPI FHIR

В FHIR REST API есть некоторые стандартные параметры для всех ресурсов, которые могут использоваться в конечных точках «поиска».

Мне нужно использовать параметр _profile в операции поиска: https://www.hl7.org/fhir/search.html#profile

Документация HAPI FHIR по реализации поисковых операций (https://hapifhir.io/hapi-fhir/docs/server_plain/rest_operations_search.html) содержит множество примеров, ни в одном из них не упоминаются параметры, которые применяются ко всем ресурсам, например «_profile».

Я также проверил их тестовый сервер в Интернете (http://hapi.fhir.org/resource?serverId=home_r4&pretty=true&resource=Observation), и я не могу найти способ указать там _profile, чтобы посмотреть, как он работает.

На уровне кода я пытаюсь сделать следующее:

@Search
public List<Observation> getObservationsByProfile(??? profile)
{
  ...
  if (profile == '...')
  {
    ...
  }
  else
  {
    ...
  }
  ...
}

Я не знаю, как указать аннотации и тип параметра, чтобы он привязывался к значению, указанному в параметре _profile в запрошенном URL.

Есть ли какой-нибудь образец кода или документация, на которую я могу сослаться? Спасибо.


person Pablo Pazos    schedule 22.06.2020    source источник
comment
Обратите внимание: вы также можете использовать встроенные константы: hapifhir.io/hapi-fhir/apidocs/hapi-fhir-base/ca/uhn/fhir/rest/, а именно: hapifhir.io/hapi-fhir/apidocs/hapi-fhir-base / ca / ​​uhn / fhir / rest /   -  person granadaCoder    schedule 30.10.2020


Ответы (1)


Способ заставить поиск работать с параметрами _profile следующий:

@Search
public List<Observation> getObservationsByProfile(@OptionalParam(name="_profile) UriParam profile)
{
  ...
  if (profile == '...')
  {
    ...
  }
  else
  {
    ...
  }
  ...
}

Несмотря на то, что параметры _xxx применяются ко всем ресурсам FHIR, документация HAPI FHIR не включает пример того, как их использовать при поиске. Надеюсь, это поможет другим.

person Pablo Pazos    schedule 24.06.2020
comment
Спасибо за ответ. После того, как я нашел этот ответ, я также нашел хапи-константу для _profile. См .: stackoverflow.com/questions/63797010/ - person granadaCoder; 08.09.2020
comment
@granadaCoder константа - это просто имя параметра, проблема действительно заключалась в том, как правильно получить значение. - person Pablo Pazos; 09.09.2020
comment
Да, и ваш UriParam - это то, что я искал, самая важная часть ... и почему я поддержал ваш ответ. Я просто добавил, что ... есть константа для этой конкретной магической строки ... чтобы избежать создания копий значений магической строки ... в данном случае: _profile. - person granadaCoder; 09.09.2020