Поскольку вы используете FHIR, который имеет хороший поисковый API REST, нет необходимости реализовывать собственный запрос.
{{baseurl}}/Observation?device:Device=123&_sort=-_lastUpdated&_count=1
дает вам последнее наблюдение за устройством с идентификатором 123.
API поиска FHIR
Изменить: поскольку вы также используете клиент HAPI, ваш код запроса будет выглядеть следующим образом:
Bundle results = myFhirCtx.newRestfulGenericClient("yourFHIRbaseURL")
.search()
.forResource(Observation.class)
.where(Observation.DEVICE.hasId("123"))
.sort().descending(Observation.DATE)
.count(1)
.returnBundle(Bundle.class)
.execute();
GET сверху ищет последнее обновленное наблюдение устройства, код JAVA получает новейшее наблюдение на основе его даты. Я думаю, вы имели в виду второе.
устарел, так как возвращает новейшее наблюдение n по всем устройствам, а не N для каждого устройства, для нескольких устройств:
Если вы хотите запросить несколько устройств одновременно, вы можете либо агрегировать запрос, запросив наблюдения с устройствами типа X, либо последнее наблюдение для устройств производителя или модели, см.: параметры поиска ресурса устройства
Если вы хотите запросить последние n наблюдений набора известных идентификаторов устройств, вы можете использовать оператор ИЛИ, который представляет собой просто двоеточие.
{{baseurl}}/Observation?device:Device=123,345,678&_sort=-_lastUpdated&_count=n
в коде клиента hapi:
Bundle results = myFhirCtx.newRestfulGenericClient("ttt")
.search()
.forResource(Observation.class)
.where(Observation.DEVICE.hasAnyOfIds(new ArrayList<String>(Arrays.asList("123", "345", "678" ))))
.sort().descending(Observation.DATE)
.count(n)
.returnBundle(Bundle.class)
.execute();
Заключение
Если вы хотите получить n последних наблюдений для каждого устройства из подмножества устройств, вы можете:
- использовать первый запрос этого примера несколько раз
- или, если вы предпочитаете один вызов REST, вы можете объединить эти вызовы GET в пакетный пакет, как в этом примере: Пакетный поиск. Это вернет пакет пакетных ответов с записями для каждого поиска.
person
Patrick Werner
schedule
18.06.2018