複習一下,CDS的實作流程有四個階段的規範,「Discovery」、「Request CDS」、「CDS Response」與「Feedback」。今天討論Request CDS。
Request CDS
CDS Client 呼叫 --> CDS Server實作
Endpoint: POST {baseURL}/cds-services/{service.id}
Request Object
叫用這個service所規定的hooks標準。大部分都是patient-view。
hookInstance
這是由CDS Client產生的UUID碼,他必須需Globally unique。CDS Server端,每一個hookInstance都是單一事件,都得單獨處理。我這次實作比較像寫範例,所以這個值我沒有記錄下來。其實,回應訊息時也不會用到。
fhirServer
這個是CDS Client告訴CDS Server我的FHIR Server在哪裡。他是一個完整路徑。(切到資源)
fhirAuthorization
這個有點複雜是OAuth 2.0內容。主要是給你Access Token,讓你可以直接向CDS Client的FHIR Server抓取資料。不過,都得要事先宣告Scope,其流程沒有那麼簡單。也不是CDS Client都會給你。
context
hooks是規範,只有描述需要哪些鍵值欄位。CDS Client就把這次POST資料實際鍵值內容放在這裡。如果Client採用Prefetch方式,已經這個內容不重要。但是,採fhirAuthorization的話,這個就很重要。每次來回的資料總得是同一個病人吧。
prefetch
這的內容很重要。他就是CDS Server用prefetch template告知CDS Client要準備的FHIR內容。CDS Server端在解析的時候要小心。當初你可以同時要了好幾條不同的Resource。另外,你可能走Search 方式,那你收到的可能是Bundle回來的東西,解析時要小心。
Request 範例
這是CDS Client發出的資料(部分)
至於這個sandbox介面後續會介紹。網址先給各位了:https://sandbox.cds-hooks.org/
CDS Server端就根據自己所需要資料到prefetch裡的FHIR Resource去抓囉。
其實,如果CDS Client如果沒有給你fhirAuthorization的資訊,那就隱含告訴你,去他們的FHIR Server抓資料無須Access Token。
至於要怎麼解析,程式面的問題,應該會找適當時間來寫寫。如果沒有保密問題的話。
至於CDS要怎麼運用資料,那就超出本系列的範圍了。
沒有留言:
張貼留言