![](/img/trans.png)
[英]GROUP BY-Like query in DynamoDB with DynamoDbEnhancedClient
[英]GROUP BY-like function in FHIR Search
我正在使用最新版本的HapiFHIR(服務器端和客戶端),它們應符合HL7 FHIR。
作為我正在進行的項目的一部分,我需要獲取每個設備的最新觀察結果。 有SQL經驗,我自然希望使用GROUP BY
這樣的操作來實現這一目標。 但是從閱讀文檔看來,HapiFHIR中沒有這樣的操作!
我有什么想念的嗎? ) for each device? 如果不是,那么為每個設備檢索最新的( )的最佳解決方法是什么?
當您使用FHIR時,它擁有一個不錯的REST搜索API,因此無需實現自己的查詢。
{{baseurl}}/Observation?device:Device=123&_sort=-_lastUpdated&_count=1
為您提供ID為123的設備的最新觀測值。
編輯:由於您還使用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型設備的觀測值或最新的廠商或型號設備的觀測值來匯總查詢,請參閱: 搜索設備資源的參數
如果要查詢一組已知設備ID的最新n個觀測值,可以使用OR運算符,它只是一個冒號。
{{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次最新觀測,則可以:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.