在AZURE FHIR(Sql版)上继续研究,我发现lastUpdated搜索参数在某种程度上与ResourceSurrogateId字段(在Resource表中)有关联。
此外,我相信两者是相同的,但格式不同。然而,我没有找到任何来源解释如何将lastupdated(一个日期-时间值)转换为ResourceSurrogateId(数值)。
谁能给我解释一下,我如何根据原始的日期-时间值获得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```
资源代用ID将插入的日期时间编码为毫秒级精度,同时还有一个 "唯一性",这个唯一性来自于数据库上的循环序列。从代用ID转换为datetime并返回的代码是 此处.
你将无法从日期时间中获得代孕ID,但你将能够获得它的下限和上限。