AZURE FHIR: как _lastUpdated преобразован в ResourceSurrogateId - PullRequest
0 голосов
/ 17 июня 2020

Продолжая свое исследование над AZURE FHIR (Sql Version), я обнаружил, что параметр поиска lastUpdated каким-то образом связан с полем ResourceSurrogateId (в таблице ресурсов).

Более того, я считаю, что оба такие же, но в разных форматах. Однако я не нашел источника, объясняющего, как lastupdated (значение даты и времени) преобразуется в ResourceSurrogateId (numeri c Value).

Может кто-нибудь объяснить мне, как я могу получить ResourceSurrogateId на основе исходного значения даты и времени?

Тест: я запускаю следующий FHIR REST API: https://XXXXXXXXXXX/DeviceComponent?_lastUpdated=gt2019-07-01, и фактический запрос к базе данных был:

FROM dbo.Resource r
WHERE ResourceTypeId = @p1
    AND ResourceSurrogateId >= @p2
    AND IsHistory = 0
    AND IsDeleted = 0
ORDER BY r.ResourceSurrogateId ASC
OPTION(RECOMPILE)',N'@p0 int,@p1 smallint,@p2 bigint',@p0=11,@p1=32,@p2=5095809792000000000```

1 Ответ

0 голосов
/ 17 июня 2020

Суррогатный идентификатор ресурса кодирует дату и время вставки с точностью до миллисекунды вместе с «уникальным идентификатором», который получается из циклической последовательности в базе данных. Код, который преобразуется из суррогатного идентификатора в datetime и обратно: здесь .

Вы не сможете получить суррогатный идентификатор из datetime, но вы сможете уменьшить и верхняя граница на нем.

...