陳鴻裕

@hongyu0324

先生不知何許人也,亦不詳其姓字。閒靜少言,不慕榮利。好讀書,不求甚解;每有會意,便欣然忘食。常著文章自娛,頗示己志。忘懷得失,以此自終。 銜觴賦詩,以樂其志,無懷氏之民歟?葛天氏之民歟?

Joined on Dec 18, 2023

研究FHIR,努力中

  • 一般應用型IG(非正式名稱,表示非Core IG)通常是定義一個Bundle將多個Resource聚合再一起,可根據資料交換模式將Bundle.type定義為Document、Message或Collection。開發這一類型的IG的FHIR應用程式,可歸納以下步驟: IG2Code-5 以下為各步驟知詳細說明: 下載IG Package檔案 可從臺灣健保癌症用藥事前審查實作指引下IG所對應之package檔案。 IG2Code-2 Package檔為一壓縮檔,解壓縮後為IG所對應之JSON檔案,包含StructureDefinition、SearchParameter、ValueSet等相關定義檔案。
     Like  Bookmark
  • 會研究這個題目主要是因為臺灣重大傷病實作指引,如同其他IG一樣,這個IG也定義了一個主要的Bundle和構成這個Bundle所需要的profile。然而,除了構成Bundle所需的profile之外,同時也定義了Questionnaire這個profile。有別於其他profile,Questionnaire並非為資料集,而比較像是蒐集資料的工具。 官網的說明如下: A Questionnaire is an organized collection of questions intended to solicit information from patients, providers or other individuals involved in the healthcare domain. LHC FHIR Tool 透過Google搜尋,找到一個資源相當完整的網站:LHC FHIR Tool在這個網站提供一個Questionnaire Viewer顯示如下: Questionnaire-1 在Local端以Docker方式建置FHIR Server,並匯入[臺灣重大傷病實作指引]與[臺灣核心實作指引]所對應之Package後,下載臺灣重大傷病實作指引所提供的範例(Questionnaire),就可以和LHC Questionnaire Viewer結合,產生畫面如下: Questionnaire-2
     Like  Bookmark
  • FHIR的各個角度-1 學習FHIR的困難點在於不同的角色所認知的HFIR會有很大的差異。同時,FHIR相關知識所牽涉的廣度太大,彼此之間又環環相扣,如果沒有一張學習地圖,很容易迷失在技術細節。 我們將FHIR的相關知識區分成三層:基礎知識、設計開發與影用發展,希望透過一張簡單的學習地圖,將FHIR相關知識串聯起來。 基礎知識 FHIR的核心是Information Model,簡單的說,就是所有FHIR相關物件定義。Information Model由Resource組成,以R4為例,共計約146個Resource。 Resource的分類
     Like  Bookmark
  • 主要參考資料 FHIR Conversion Made Easy:2024 DevDays由Daniel Mechanikz發表。 fume-community:原始碼github位址 FUME官方網站 FUME Designer | Online FHIR Converter 實作步驟 Getting Start docker版本:修改原始碼docker-compose.yml添加FHIR Server與相關連結設定。
     Like  Bookmark
  • 主要參考資料:Interceptors: Overview Interceptor概述 HAPI FHIR擴充(客製化)的一個主要方法,當思考「我如何讓 HAPI FHIR 執行 X」時,答案通常是建立Interceptor。 Interceptor中文直譯為"攔截器",顧名思義,就是在FHIR 伺服器處理應用程式需求的pipeline過程中攔截相關訊息並提供客製化機制,達到某種特殊用途的效果。例如可針對特定IP攔截或放行、紀錄log、增加驗證機制等。 Interceptor名詞介紹:Interceptor:Java Class,擁有一個以上的Hook Method,可以使用 maker annotation @interceptor(非必要條件)。 Hook:單一的Interceptor的method,當HAPI FHIR特定情況發生時所對應的回應,必須使用 @Hook Pointcut:HAPI FHIR處理pipeline中的一個攔截點, 每一個Hook Method必須宣告所對應的攔截點。 Hook Params:每一個Pointcut所定義之參數列表。可傳送給該Pointcut所對應之Hook Method。
     Like  Bookmark
  • oAuth 2.0概述 維基百科對oAuth的說明如下: 開放授權(OAuth)是一個開放標準,允許使用者讓第三方應用訪問該使用者在某一網站上儲存的私密的資源(如相片,影片,聯絡人列表),而無需將使用者名稱和密碼提供給第三方應用。 OAuth允許使用者提供一個權杖,而不是使用者名稱和密碼來訪問他們存放在特定服務提供者的資料。每一個權杖授權一個特定的網站(例如,影片編輯網站)在特定的時段(例如,接下來的2小時內)內訪問特定的資源(例如僅僅是某一相簿中的影片)。這樣,OAuth讓使用者可以授權第三方網站訪問他們儲存在另外服務提供者的某些特定資訊,而非所有內容。 簡單說,就是在不提供使用者名稱與密碼的條件下,如何授權給第三方應用程式使用資料。 oAuth的官方文件RFC 6750示意圖如下:
     Like  Bookmark
  • 服務啟動 Google Healthcare API包含兩部分:資料集(Dataset)/資料儲存庫(FHIR Data Store),並提供一個FHIR檢視器,可線上查詢FHIR資料內容。 healthcare-4 資料匯入 系統提供大量資料匯入/匯出/去識別化等功能 healthcare-6
     Like  Bookmark
  • FHIR(Fast Healthcare Interoperability and Resource)為下一世代醫療資訊交換的標準,相較於前一世代其他標準,FHIR擁有許多優點其涵蓋面也不限於資料交換,而是包含系統開發、資訊安全、物聯網、行動裝置等各種面向。也因為FHIR的涵蓋面過廣,不同角度看待FHIR的結果會完全不同。 本文希望提供一個Top Level的角度說明FHIR的發展,讓發展團隊與相關人員在過程中除了專注在各自的領域之外,也能夠有一個整理的概念,如此更能清楚了解各自工作的重要性與彼此之間的關聯性。 同時也希望提供公司(或其他醫療機構)打造次世代醫療平台一個完整的發展藍圖,在整個發展過程中,擁有一份清楚可依循的設計指引。我們希望達成以下目的: 說明次世代醫療平台的範疇與實作方法 根據次世代醫療平台需求,導入必要之工具與技術,工具包含商用軟體與自行開發 了解技術與規格發展趨勢,讓次世代醫療平台成為創新應用之基礎
     Like  Bookmark
  • 問題 如何將名片上的資料轉換成JSON,供後續系統使用 資料流 使用者將名片拍照,上傳至line 官方帳號 透過WebHook,將Message ID傳給Google CCloud Function 根據Message ID,取得上傳影像檔案 使用Coud Vision AI之OCR功能,擷取影像檔案所包含之文字資料,範例如下: tmht
     Like  Bookmark
  • HAPI FHIR Instance Validator HAPI FHIR中,用來做FHIR Validation的工具為Instance Validator。最基本的Instance Vlidator如下: FhirContext ctx = FhirContext.forR4(); // Ask the context for a validator FhirValidator validator = ctx.newValidator(); // Create a validation module and register it IValidatorModule module = new FhirInstanceValidator(ctx);
     Like 1 Bookmark
  • Firely最近發表了新版的Validation,以下為範例程式的測試結果與原始碼分析。這次Firely提供了一個UI介面的展示程式,對於非開發者而言,應該也是另一個選項。不過,目前還沒有看到單獨下載UI應用程式的選項,應該也是不久之後的事。 Demo程式與操作步驟 Validator - 1 Demo畫面分成三個部分: Instance 按下[Load...],選擇將驗證的FHIR檔案,顯示FHIR檔案的內容。 按下[Validate],啟用Validator將驗證結果顯示於[Validation results]
     Like 1 Bookmark
  • 由於HAPI FHIR定位為開源軟體,因此就商業考量角度來看,community版本缺乏某些實際上線需要的功能,例如負載平衡、效能、監控、Log管理等。 改善方向可思考以下幾個方式: 使用商業版:Smile Digial Health https://www.smiledigitalhealth.com/提供商業版本之HAPI FHIR。 自行修改HAPI FHIR原始碼。 整合其他開源軟體功能,如本文所敘述之NGINX。 NGINX使用案例如下圖所示: nginx-4
     Like 1 Bookmark
  • 學習FHIR SDK的第一個挑戰往往是如何建立一個合適的測試環境,這份工作,同時包含伺服器架設與測試資料產生。本文說明如何應用Docker快速建立HAPI FHIR Server與使用Synthea產生測試資料。 環境假設 系統已經安裝Docker Desktop Docker Compose 由於容器相關技術已經非常成熟,特別是對於測試環境的建立,Docker是最佳選擇。最單純的做法是使用docker-compose.yml,設定成功之後即可重複使用。測試環境將使用HAPI FHIR JPA Server,資料庫則採用Postgres。 基本的docker-compose.yml範例如下:
     Like 1 Bookmark
  • 背景 llustration of FHIR- and CQL-based knowledge artifacts that provide quality measurement and decision support implementations of the US Preventive Services Task Force Recommendation on Colorectal Cancer Screening. The artifacts are built using the approach and methodology of the FHIR Clinical Guidelines IG (CPG). The U.S. Preventive Services Task Force (2016) recommends screening for colorectal cancer starting at age 50 years and continuing until age 75 years. This is a Grade A recommendation (U.S. Preventive Services Task Force, 2016). https://github.com/cqframework/cqf-ccc/tree/master 程式架構 計算範例CDS(ColorectalCancerScreeningCDS) CQM(ColorectalCancerScreeningCQM)
     Like  Bookmark
  • Clinical Quality Language(CQL)概述 官方說明: Clinical Quality Language (CQL) is a high-level, domain-specific language focused on clinical quality and targeted at measure and decision support artifact authors. In addition, this specification describes a machine-readable canonical representation called Expression Logical Model (ELM) targeted at implementations and designed to enable sharing of clinical knowledge. https://build.fhir.org/ig/HL7/cql/ 簡單的說,CQL為領域專家撰寫的語言,人可以看得懂;ELM則是機器看得懂的語言,專注在系統開發與整合使用。下圖說明了彼此的關係,透過工具,可以將CQL與ELM互相轉換,應用於分析與需求確認。實際系統開發則是從ELM出發,透過程式語言,將複雜的邏輯轉換為可執行程式。
     Like  Bookmark
  • Simone Heckmann - Introduction to FHIR | DevDays 2023 Amsterdam 筆記整理與讀後心得 introduction - 4 這張圖說明了FHIR的幾個重點: 資料交換是雙向,透過open API,無論是穿戴式裝置、行動裝置、個人電腦或是其他EHR系統都可以即時且雙向存取資料。 開發導向,應用既有成熟的Web技術,包含Web Application與mobile Apps。 FHIR - The Acronym
     Like  Bookmark
  • 程式來源 https://github.com/cqframework/cqf-exercises/blob/master/input/cql/Exercises10Key.cql Recommendation Statement The USPSTF recommends annual screening for lung cancer with low-dose computed tomography (LDCT) in adults aged 55 to 80 years who have a 30 pack-year smoking history and currently smoke or have quit within the past 15 years. Screening should be discontinued once a person has not smoked for 15 years or develops a health problem that substantially limits life expectancy or the ability or willingness to have curative lung surgery USPSTF 建議對55至80歲,曾經有每年抽30包之吸菸史,目前吸菸或在過去15年內戒菸的成年人每年進行一次低劑量電腦斷層掃描(LDCT)肺癌篩檢。一旦一個人15年不吸煙或出現嚴重限制預期壽命或進行治療性肺部手術的能力或意願的健康問題,就應停止篩檢。 程式說明 Libbrary名稱
     Like  Bookmark
  • https://github.com/cqframework/cql-translation-service 簡介 官網的說明:A microservice wrapper for the CQL to ELM conversion library and CQL formatter. 其實還蠻直覺的,就是一個CQL轉ELM的微服務。 安裝步驟 git clone goit clone https://github.com/cqframework/cql-translation-service Build Package
     Like  Bookmark
  • 官方說明 : https://hl7.org/fhir/uv/ips/ An International Patient Summary (IPS) document is an electronic health record extract containing essential healthcare information about a subject of care. As specified in EN 17269 and ISO 27269, it is designed for supporting the use case scenario for ‘unplanned, cross border care’, but it is not limited to it. It is intended to be international, i.e., to provide generic solutions for global application beyond a particular region or country. IPS FHIR Document 實務上,IPS的主要產物為FHIR Document(Composite),格式定義請參考 https://hl7.org/fhir/uv/ips/StructureDefinition-Composition-uv-ips.html IPS-1
     Like  Bookmark
  • 學習目標 使用Modulus中Geometry module產生2D Geometry 設定BC-Boundary Conditions 設定待解之PDF( Flow Equation) Loss function和network調教 使用Modulus作後處理 問題描述 Modulus-1
     Like  Bookmark