2013-05-14 96 views
1

在FHIR查詢規範中,它指出可以將_include參數添加到查詢URL,以請求完全返回指定的引用資源,以防止進一步的網絡請求檢索這些資源。在FHIR中使用_include

diagnosticreport /搜索?_include = DiagnosticReport.subject & _include = Patient.provider

這種結構要求你知道要在結果事先的設置要引用的資源查詢正在進行。我懷疑像「觀察」這樣的資源可能會有許多配置文件,每個配置文件可能有不同的擴展名,但情況並非如此。

有一種語法,所有引用的資源是「包含」的可行嗎?

回答

2

嗯,這可能是可能的。雖然有一種風險,你會得到一大堆資源,但你不知道爲什麼你會得到。而服務器可能更傾向於拒絕這種請求。對於一臺服務器來說肯定會慢很多 - 它必須評估更多的內容來決定包含與否的引用。

+0

我接受它會加載服務器,但基於消息傳遞的交互的替代方案將是最初的查詢,然後是連續的查詢,以便解析返回的「消息」的完整信息內容 - 我懷疑這會在服務器上增加更多的負載,雖然承認它不會在一次命中中消耗。 – 2013-05-14 21:20:17

+0

好吧,我們可以定義通配符格式,即_include = DiagnosticReport。*。或者_include = *。 – 2013-05-15 01:32:22

+0

這會工作:-) – 2013-05-16 13:49:10

0

在該頁面:https://www.hl7.org/implement/standards/FHIR/search.html#return 介紹以下:

2.2.4.1包括路徑
包含路徑可以包括通配符,例如MedicationDispense.results *,甚至_include = *儘管客戶端和服務器在執行此操作時都需要注意不要請求或返回太多資源。最值得注意的是,在新包含的資源上重新應用包含路徑可能會導致週期或檢索完整的患者文件:資源被組織成一個相互關聯的網絡,廣泛的_include路徑可能最終遍歷服務器上所有可能的路徑。對於服務器,這些遞歸和通配符_includes要求很高,可能會顯着縮短搜索響應時間。預計服務器會限制已完成的迭代次數,並且沒有義務遵守將搜索結果中包含額外資源的請求。