這篇文章您將學習如何將 Burni 架設起來。
⚠️
如果覺得有些段落過長,可以使用右邊的按鈕瀏覽大綱模式唷! 文章太長,按鈕會產生比較慢,請您耐心等待!
⚠️
目前此篇教學只注重於基本的 FHIR Server 功能,如需要支持 $validate 的功能,請自行研究,日後會新增
下載 Burni
- 進到 Burni 的 GitHub:
 
第一種方法:使用 Git
git clone https://github.com/Chinlinlee/Burni.git第二種方法:下載 Zip
安裝所需軟體
所需軟體 requirement
- Node.js ≥ 14
 - MongoDB > 4.0
 
安裝 Node.js 14.19.0
- 第一步:進到下載網址,網址:https://nodejs.org/zh-tw/download/releases/
 - 第二步:使用上面的搜尋找 14.19 開頭的版本,找到 14.19.0 版本並按下載
 
- 第三步:點擊 
node-v14.19.0-x64.msi下載 
- 第四步:開啟下載的 
node-v14.19.0-x64 
- 第五步:點擊 Next
 
- 第六步:勾選 
I accept the terms in the License Agreement並點擊 Next 
- 第七步:選擇安裝目錄並點擊 Next
 
- 第八步:點擊 Next
 
- 第九步:點擊 Next
 
- 第十步:點擊 Install
 
安裝完畢囉!
測試是否安裝完成
開啟 cmd (命令提示字元),並輸入 node -v,出現 v14.19.0 就代表完整安裝成功囉!
安裝 MongoDB
- 第一步:進到 MongoDB主頁,網址:https://www.mongodb.com/try/download/community
 - 第二步:選擇 
Version→4.4.13,Platform→Windows,Package→msi並點擊Download 
- 第三步:打開下載的 
mongodb-windows-x86_64-4.4.13-signed.msi 
- 第四步:點Next
 
- 第五步:將 
I accept the terms in the License Agreement打勾 
- 第六步:選擇 
Complete 
- 第七步:設定 Data Directory (資料存放位置) 以及 Log Directory (紀錄存放位置),選擇完畢後按 Next
 
- 第八步:安裝 MongoDB Compass
 
- 第九步:點擊 Install
 
- 第十步:安裝完畢囉!
 
創建使用者帳號
由於 Raccoon 內的 MongoDB 連接需要帳號密碼,您必須創建 MongoDB 的帳號密碼以讓 Raccoon 正常運作。
- 第一步:打開 MongoDB Compass
 - 第二步:在 New Connection 的 connection string 輸入以下內容,並點擊 Connect
 
mongodb://localhost:27017- 第三步:點開下方的 
>_MONGOSH 
- 第四步:輸入以下指令切換到 admin 資料庫
 
use admin;- 第五步:輸入以下指令創建 root 帳號
 
⚠️
請自行更改成安全的帳號以及密碼!
db.createUser({
    user : "root",
    pwd : "root" ,
    roles : [{role : "root" , db:"admin"}]
});出現 { ok: 1 } 就代表創建成功囉!
設定 Burni
以上所需的軟體已經完畢了,您可以開始進行設定 Burni 的步驟啦!
⚠️
注意!進行以下步驟前,請先進到 Burni 的專案目錄
安裝依賴
- 開啟 cmd (命令提示字元) 進到 Burni 專案目錄並執行以下指令
 
ℹ️
--only=production 代表只安裝 package.json 內 dependencies 區塊的依賴
npm i --only=production設定要使用的 FHIR Resource (config.js)
第一種:一般設定
- 更改 
config/config.js,如沒此檔案可以複製config/confit.template.js並重新改名成config/config.js 
module.exports = {
    "Patient": {
        "interaction": {
            "read": true, // 是否開啟 read 的功能
            "vread": true,
            "update": true,
            "delete": true,
            "history": true,
            "create": true,
            "search": true
        }
    }
};- 如果需要新增 Resource ,您可以在 
module.exports內加入 Resource 的名稱,如要進一步設定interaction,請按照上面Patient的範例設定即可 
module.exports = {
    "Patient": {
        "interaction": {
            "read": true, // 是否開啟 read 的功能
            "vread": true,
            "update": true,
            "delete": true,
            "history": true,
            "create": true,
            "search": true
        }
    },
    "Organization": {}  // 新增 Organization , 可以不輸入 interation 的資訊
};第二種:支援所有 Resource 的設定
ℹ️
如果您需要支援所有 Resource , 您可以使用 cmd 運行以下指令
node config/generate-config-allResources.js此項指令將會產生所有 Resource 設定的 config/config.js設定 .env 檔案
- 第一步:複製根目錄的 
.env.template,貼上並更名為.env 
- 第二步:更改 
.env內的內容 
MONGODB_NAME="Burni"
MONGODB_HOSTS=["localhost"]
MONGODB_PORTS=[27017]
MONGODB_USER="root"
MONGODB_PASSWORD="root"
MONGODB_IS_SHARDING_MODE=false
MONGODB_SLAVEMODE=false
SERVER_PORT=8080
FHIRSERVER_HOST="localhost"
FHIRSERVER_PORT=8080
FHIRSERVER_APIPATH="fhir"
ENABLE_TOKEN_AUTH=false
JWT_SECRET_KEY="secret-key"
ADMIN_LOGIN_PATH="adminLogin"
ADMIN_USERNAME="admin"
ADMIN_PASSWORD="password"
ENABLE_CHECK_ALL_RESOURCE_ID=false
ENABLE_CHECK_REFERENCE=false
ENABLE_CSHARP_VALIDATOR=false
VALIDATION_FILES_ROOT_PATH="/validationResources"
VALIDATION_API_URL="http://burni-fhir-validator-api:7414".env 設定說明
| 設定名稱 | 資料型態 | 說明 | 
|---|---|---|
| MONGODB_NAME | String | MongoDB 資料庫的名稱 | 
| MONGODB_HOSTS | Array <String> | 要連接的 MongoDB IP 或 網域名稱, e.g. 127.0.0.1、localhost | 
| MONGODB_PORTS | Array<Number> | 要連接的 MongoDB IP 的 Port,對應 MONGODB_HOSTS 的順序, e.g. 27017 | 
| MONGODB_USER | String | 要連接的 MongoDB 的 使用者帳號 | 
| MONGODB_PASSWORD | String | 要連接的 MongoDB 的 使用者密碼 | 
| SERVER_PORT | Number | Server 啟動的 Port | 
| FHIRSERVER_HOST | String | FHIR Server 對外連接的 IP 或網域名稱,用於產生回傳資料的 URL | 
| FHIRSERVER_PORT | Number | FHIR Server 對外連接的 Port,用於產生回傳資料的 URL | 
| FHIRSERVER_APIPATH | String | 使用 FHIR API 的前綴字,e.g. api/fhir ,代表查詢 Patient 使用 http://xxx.com/api/fhir/Patient | 
| ENABLE_TOKEN_AUTH | Boolean | 是否開啟驗證機制 | 
| JWT_SECRET_KEY | String | JWT 的 secret key | 
ADMIN_LOGIN_PATH | String | 核發 Token 登入頁面的 URL 路徑,e.g. adminLogin即 http://localhost/adminLogin | 
ADMIN_USERNAME | String | 核發 Token 管理者登入帳號 | 
ADMIN_PASSWORD | String | 核發 Token 管理者登入密碼 | 
ENABLE_CHECK_ALL_RESOURCE_ID | Boolean | 是否驗證跨 Resource 的 ID ,即 Patient/123 以及 Organization/123 不應該同時存在 | 
ENABLE_CHECK_REFERENCE | Boolean | 是否驗證 Resource 內的 Reference 是否存在 | 
ENABLE_CSHARP_VALIDATOR | Boolean | 是否開啟 C# 的 API | 
VALIDATION_FILES_ROOT_PATH | String | 存放驗證功能所使用的 Structure Definition、 Code System 、 Value Set 的路徑 | 
VALIDATION_API_URL | String | C# 驗證器 API 的 Base URL | 
產生 Resource 程式碼
- 完成設定要使用的 FHIR Resource後,您必須運行以下指令產生程式碼:
 
npm run build運行後您將會在api/FHIR資料夾; e.g.api/FHIR/Patient檔案以及models/mongodb/model資料夾; e.g.models/mongodb/model/Patient.js檔案,看到產生的程式碼
部屬 Burni
- 開啟 cmd (命令提示字元) 進到 Raccoon 專案目錄並執行以下指令
 
node server.js執行後看到以下訊息就代表架設成功囉!
測試 Burni
- 在此章節使用 Postman 測試
 - 使用資料:patient-example
 
































