這份指南將會使用 Rocky Linux 8.4 做為教學用的系統,Rocky Linux 8 是 CentOS 8 的替代版本,用起來一模一樣,如果你沒看過,現在讓你看看:
Rocky Linux 8 官方網站:https://rockylinux.org/zh-tw/
如果你有在使用 VMWare、VirtualBox 等虛擬化平台,可以考慮改用 Proxmox VE。他是一個開放原始碼的虛擬化平台,並提供一個類似 VMWare vCloud 的 Web 管理工具。你可以在上面開 QEMU VM 跟LXC Container,也可以在上面實現 Ceph、HA Cluster 等機制,全部都滑鼠點一點就好。
Proxmox VE 上面已經有 Rocky Linux 8 的 LXC Image,直接抓下來開就行了,請參考以下說明,或是你也可以參考 Jason(Proxmox VE 專家,江湖人稱"節神")的系列文章:
Proxmox VE 官方網站:https://pve.proxmox.com/wiki/Main_Page
節省工具箱部落格:https://blog.jason.tools/
這份筆記是給完全沒接觸過 HAPI FHIR 架設的初學者使用的(當然建議讀者還是要知道怎麼操作 Linux 作業系統),在接下來的教學中,你將學會如何從官方的 GitHub Repository 把 HAPI FHIR 伺服器抓下來,設定好 PostgreSQL 資料庫後,直接把伺服器跑起來。
至於打包成 Docker 之類的進階操作,請參考另一份筆記: FHIR 伺服器建置指南
安裝 EPEL8 擴展套件庫並更新系統,中間會跳出提示,直接 y 到底就好
安裝 PostgreSQL 套件庫,中間會跳出提示,直接 y 到底就好
把內建的 PostgreSQL 套件庫停用
安裝 PostgreSQL 14 伺服器(寫這篇文的時候剛好 14 stable 版本 release 出來了,就直接上)
安裝好之後確認一下 PostgreSQL 版本對不對
開始之前要先初始化 PostgreSQL 14 資料庫
確認版本沒問題後,就可以啟動並設定開機自動啟用
檢查一下 PostgreSQL 是否正常啟動
安裝好後,PostgreSQL 預設會幫你建立一個叫 postgres 的使用者,記得先改密碼
切換到 postgres 這個使用者
改資料庫管理員 postgres 的預設密碼
顯示 ALTER ROLE 代表有改成功
注意:這邊密碼設 1234 是只做教學展示用途,好孩子請不要學,否則你的資料庫會被打到不要不要的 ˊ_>ˋ
連線進去資料庫
進來後你會看到這樣的提示:
新建使用者
注意:還是要強調,密碼請設定強密碼,否則你的資料庫會被打到連你老板都認不出來 ˊ_>ˋ
新建資料庫
將所有權限給這個使用者
設定資料庫時區為臺灣時區
上面全部設定完之後就退出 PostgreSQL 並退出 postgres 帳號
我們會直接使用最新版的 HAPI FHIR 伺服器,並設定使用 R4(FHIR 4.0.1) 版本。
因為這個是用 Java 寫的,所以會需要準備 Java 跟 Maven 環境。另外各版本 HAPI FHIR 支援的 Java 版本都不一樣,記得參考以下網站:
https://hapifhir.io/hapi-fhir/docs/getting_started/versions.html
在最新版本的 HAPI FHIR 裡面,官方雖然將最小 Java 版本訂為 Java 8,不過實際上 Java 8 會編譯失敗,因此要改用 Java 11
安裝必要套件
安裝 Java 11(你也可以試試看 Java 16) 跟 Maven
由於 Maven 3.5.4 預設使用 Java 8,因此要把版本切換回 Java 11
讓 Maven 預設使用 Java 11
最下面加入這行
讓他生效
從 GitHub 把 Repository 抓下來
設定 HAPI FHIR Server 組態
把資料庫改為 PostgreSQL 並設定連線資訊
設定使用 FHIR R4 版本:
進入 tmux 虛擬視窗
編譯成 war 可執行檔,編譯候會放在 target/ROOT.war 裡面
上面這條指令預設以 Single Thread 模式執行,如果你的主機是多核心,也可以加入-T <thread>
參數,幾核心就打多少數字,像這樣:
看到 BUILD SUCCESS
就代表編譯成功了
用 Java 執行
只要不跳錯誤,並且看到 Completed initialization in ....ms
這行就代表啟動成功了
伺服器預設會開在 8080 Port,請直接打開瀏覽器輸入 http://<IP>:8080
即可看到 HAPI FHIR 頁面