Try   HackMD

FHIR應用開發 - 臺灣重大傷病實作指引

目前IG的正式版本為1.0.0 臺灣重大傷病實作指引

IG與Profile分析

  1. 邏輯模型:相較於其他IG,臺灣重大傷病實作指引中邏輯模型所扮演的角色並不重要。雖然IG的最後產出同樣是Bundle,但由於臺灣重大傷病實作指引主要是以QuestionnaireResponse為中心,其他profile所提供的訊息不多,因此邏輯模型並不能提供太多IG應用程式開發所需要的訊息。
  2. FHIR Profile:Bundle的Type為collection,主要的Profile為QuestionnaireResponse,其餘只包含其他三個Profile:Patient、Condition與Task。另外,IG有提及另一個Profile:Questionnaire,主要功能在產生QuestionnaireResponse所需要的Questionnaire Resource,並沒有包含在Bundle內。
  3. Pation與Condition所包含的訊息並不多,若不考慮固定填值的欄位,Condition只需要填寫 clinicalStatus即可。
  4. Task是一個特殊的Resource,在FHIR的分類中屬於Level 4的Workflow,在FHIR官方網站中有一張很複雜的State Machine圖,但目前IG並沒有太多的說明,如果單純地從產生Bundle資料角度來看,產生Task Profile只要指定Patient、Condition與QuestionnaireResponse的Reference即可。
    Image Not Showing Possible Reasons
    • The image was uploaded to a note which you don't have access to
    • The note which the image was originally uploaded to has been deleted
    Learn More →

    Resource Task - Content
  5. 結論:臺灣重大傷病實作指引的重點在於QuestionnaireResponse的產生,需要提供一個人機介面程式,供使用者輸入相關資訊。產生QuestionnaireResponse之後,產生其他Profile與Bundle的工作都相對簡單。

系統架構與作業流程

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

系統區分Server端與Client端,Server端由HAPI FHIR與Postgres SQL組成,FHIR應用程式CI則是使用者介面,輸入相關資料後即可產生IG所需要的Bundle檔案。

  1. FHIR應用程式CI:Questionnaire Resource的一個特點是可使用其相關定義,產生使用者介面程式,換句話說,FHIR應用程式CI實際包含一個"FHIR Questionnaire Resource Parser",匯入Questionnair檔案,根據檔案內容產生對應的使用介面。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

  1. CodeSystem/ValueSet
    另外,CodeSystem/ValueSet與UI整合也是另一個重點,相關的IG Package會事先匯入HAPI FHIR,也就是說臺灣重大傷病實作指引所需要的CodeSystem/ValueSet也同步匯入。由於Questionnaire的定義中會包含所需要的ValueSet(如下程式範例中answerValueSet欄位),因此在建構UI同時,也透過FHIR API將所對應的ValueSet與UI結合。
          "linkId": {
            "value": "4.1"
          },
          "text": {
            "value": "diagnosis.icd10cmCode|主診斷代碼"
          },
          "type": {
            "value": "choice"
          },
          "required": {
            "value": true
          },
          "answerValueSet": {
            "value": "https://nhicore.nhi.gov.tw/ci/ValueSet/nhi-diag-code-icd"
          }
        },
  1. Patient與Condition
    一般而言Patient是既有資料,可透過檔案方式匯入HAPI FHIR,由於臺灣重大傷病實作指引中所定義之Condition僅需要Patient Reference與clinicalStatus,因此在主要的UI加入簡單輸入介面,即可產生所需要的Condition Profile。

  2. QuestionnaireResponse
    當使用者完成資料輸入後,FHIR應用程式CI即根據使用者輸入資料,產生對應之QuestionnaireResponse檔案。此時,Bundle所需要的資料亦已齊備,亦可同時產生Task Profile與Bundle資料檔。

流程自動化

相較於其他IG,流程自動化的工作較為單純,只需整合既有資料上傳系統即可。因為主要的作業為Questionnaire填寫,重點還是人機互動。