跳轉到內容

GNU Health/開發人員專區

來自華夏公益教科書

歡迎來到 GNU Health 開發人員專區

[編輯 | 編輯原始碼]

本章重點介紹了 GNU Health 不同元件中即將釋出的版本的開發情況。

開發人員專區是高度不穩定的。它混亂且不穩定,我們很喜歡這樣;)

請尊重每個元件的目標構建。

遷移到 GNU Health 5.0 - Tryton 7.0

[編輯 | 編輯原始碼]

本節將介紹將 HIS 伺服器從 4.4 遷移到 5.0 的過程。

初始化

[編輯 | 編輯原始碼]

-> $ tar -xzvf trytond-last.tar.gz

  • 為遷移建立一個專用資料庫(“migration50”)。
  • 備份當前 trytond 並建立一個指向新 Tryton 伺服器的符號連結(將目錄調整到您的需求)。

-> $ ln -si /home/healthdev/workplace/tryton-server/trytond-7.0.17 /home/healthdev/gnuhealth/tryton/server

  • 登出並登入到新環境並初始化新資料庫。
  • 下載 GH HIS 核心模組所需的 tryton 包。
- company
- currency
- party
- product
- country
  • $ ./trytond-admin --all --database=migration5 -vv

->(輸入伺服器管理員的電子郵件和密碼)

  • 啟動 Tryton 7.0 客戶端。
  • 載入顯示的所有附加模組(公司、貨幣、對方、產品、國家)。
  • 開啟一個終端並執行指令碼進行匯入。
 - currencies
 - countries
 They can be found in the currency and country "scripts" directory
 
 $ python3 ./import_countries.py --database=migration5
 $ python3 ./import_currencies.py --database=migration5


核心和資料字典升級中的操作

[編輯 | 編輯原始碼]
  • 從 Fields 例項中刪除“select”選項。



待辦事項

- 合併 orthanc 和 dhis2 模組

- 將模組遷移到 Tryton 7.0 和 pyproject.toml,從核心模組開始

- 解決 tryton 模組測試

- 上傳(測試)pypi 並使用 CI 執行 tryton 模組測試?

- 確認新安裝

- 更新其他與安裝相關的資料

- 使用 alpha testpypi 版本設定社群伺服器

Uwsgi 配置

[編輯 | 編輯原始碼]

以下模板是用於 GH HMIS(在 Tryton 上)和丘腦的示例。


HMIS 伺服器示例 ini 檔案 (gh.ini)

[uwsgi]
master = true
processes = 3
socket          = /tmp/uwsgi.sock
http-socket=0.0.0.0:8020
chmod-socket=666
daemonize = /home/gnuhealth/logs/gnuhealth-hmis.log
module=trytond.application:app

您可以透過以下方式呼叫它:

$ uwsgi -c /home/gnuhealth/gh.ini --enable-threads

丘腦示例 ini 檔案

[uwsgi]
master = 1
https = 0.0.0.0:8443,/opt/gnuhealth/certs/gnuhealthfed.crt,/opt/gnuhealth/certs/gnuhealthfed.key 
chdir = /home/gnuhealth/.local/lib/python3.9/site-packages/thalamus/
wsgi-file = thalamus.py 
callable = app 
processes = 4 
threads = 2 
socket = /tmp/thalamus.sock
daemonize = /home/gnuhealth/logs/thalamus.log


醫院管理資訊系統

[編輯 | 編輯原始碼]

目標構建:4.0

openSUSE Leap <=15.3 和使用 Python 3.6 的其他作業系統 強烈建議使用Python 版本 >=3.7

如果您的發行版使用 Python 3.6,則您必須強制執行以下依賴項版本

  • apiron==5.1.0
  • beren==0.7.0

願望清單

[編輯 | 編輯原始碼]
  • 新的 GNU Health WebGUI,它支援所有 GNU Health 功能,並且在平板電腦和智慧手機上也能正常工作。它應該具有新的 UX 設計,並且顯然不應複製 GTK 設計。
  • 重新設計 GTK 客戶端 - Etienne 提到了一些改進。
  • 與 Planet-AI 等 AI 提供商的介面。
  • 將 Tryton pos 模組與藥房模組整合。
  • 與 DHIS2 整合。

升級之前

  1. 執行指令碼“before.sql”。
  2. 更新 tryton 伺服器(./trytond-admin --all)。

升級之後

  1. 執行指令碼“after.sql”。
  2. 日曆和 Webdav 選單可能顯示兩次。只需停用過時的第一個例項(管理 -> 使用者介面 -> 選單)。

GTK 客戶端

[編輯 | 編輯原始碼]

GNU Health GTK 客戶端測試版位於testpypi

您可以使用以下命令下載它

python3 -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ gnuhealth-client==4.0b1

外掛的搜尋路徑如下所示

1. <config dir>/plugins

例如:/home/lfm/.config/gnuhealth/3.5/plugins

2. <current_gnuhealth_dir>/tryton/plugins

例如:/home/lfm/health/gnuhealth-client/tryton/plugins

3. $HOME/gnuhealth_plugins

例如:/home/lfm/gnuhealth_plugins


第三個($HOME/gnuhealth_plugins)是大多數使用者推薦的位置。它使自動化變得容易,並允許方便地拖放外掛。

第一個選項推薦給安裝了不同 GH GTK 客戶端版本的使用者。

Web 客戶端

[編輯 | 編輯原始碼]

webclient 基於 Tryton SAO Webclient。它沒有像 GTK 客戶端那樣的當前功能、桌面整合和安全功能。僅供開發人員使用...

安裝 SAO(作為 gnuhealth 使用者)

在 [web] 部分 

root = /home/gnuhealth/sao/package

GNU Health 聯盟

[編輯 | 編輯原始碼]

GH 聯盟門戶

[編輯 | 編輯原始碼]

MyGNUHealth 移動應用程式

[編輯 | 編輯原始碼]

在 PinePhone 和 Manjaro Plasma Mobile 上安裝 MyGNUHealth

[編輯 | 編輯原始碼]

安裝要求

  • 更新系統 (pacman -Syu)
  • 安裝 gcc (pacman -S gcc)
  • 安裝基礎開發工具 (pacman -S base-devel)
  • 安裝 pyside2 包 (pacman -S pyside2-es2) (確保你使用這個包!常規的“pyside2”將無法使用。感謝 Anupam!)

在 PinePhone 和 KDE Neon 上安裝

[編輯 | 編輯原始碼]

安裝所需的包

  • apt-get install python3-pip
  • apt-get install qt5-qmake
  • apt-get install cmake
  • apt-get install qtbase5-dev
  • apt-get install clang clang libclang-6.0-dev
  • apt-get install qtbase5-private-dev
  • apt-get install qtdeclarative5-dev qtdeclarative5-private-dev


建立一個交換檔案 (構建過程中需要)

  1. sudo bash
  2. cd /opt
  3. dd if=/dev/zero of=swapfile bs=1G count=1
  4. mkswap swapfile
  5. swapon swapfile

(你可以在以後將其新增到 fstab 中,如果你想使其永久存在) 新增到 /etc/fstab
/opt/swapfile swap swap defaults 0 0

下載、解壓並構建 PySide2 https://doc.qt.io/qtforpython/gettingstarted-linux.html#getting-pyside2

修復以下已損壞的符號連結

$ cd pyside2/pyside-setup/pyside3_install/py3.6-qt5.14.2-64bit-release/bin$

$ ln -si /usr/bin/qtchooser ./designer
$ ln -si /usr/bin/qtchooser ./rcc
$ ln -si /usr/bin/qtchooser ./uic

在桌面上安裝

[編輯 | 編輯原始碼]

在 GNU/Linux 桌面安裝 MyGNHealth 的每日構建版本,可在 OpenBuildService 獲取

Orthanc 整合

[編輯 | 編輯原始碼]

從 C 中獲得的筆記

PACS / DICOM 目標

對於提供者

  • 以多種檢視/選項卡一致地訪問影像研究
    • 包括準確的影像資訊,包括影像型別 (CT、MRI、超聲等)、日期/時間、位置和最終報告 (如果可用,則必不可少)
    • 快速複製/貼上影像和報告 (例如,到筆記中)
  • 透過強大的 PACS 瀏覽器輕鬆檢視影像
  • 從外部來源將新的 (或新獲得的) 影像研究上傳到本地 PACS 伺服器
    • 患者經常攜帶包含先前研究的影像光碟,這些光碟應被儲存以更好地實現護理連續性和醫療決策。此外,應能夠儲存外部影像以更快地訪問和本地評估。
  • 將影像研究傳送到其他地點和/或患者
    • CD/DVD 儲存/“燒錄” (可能是位置特定的)
    • 透過網路 (或 CD/DVD) 傳送到外部醫療機構/提供者
    • 這有助於護理轉移和患者訪問醫療記錄。
  • 在新的影像結果出現時通知提供者 (可配置為適當)

對於開發人員 (請參閱在下面一些值得注意的細節中實現上述目標)

  • 以容錯且無錯誤的方式同步相關資料
    • 可靠性和準確性比速度更重要
    • 支援 Orthanc 和其他伺服器 (如可能)
  • 提供者應以直觀的方式使用適當的資料檢視器與資料互動
    • 提供者零配置
    • 影像研究 → PACS 瀏覽器
    • 最終報告/等 → PACS 瀏覽器或 PDF/文字瀏覽器 (如果未內建到 PACS 瀏覽器中)
  • 與 PACS 伺服器的雙向互動
    • 對於多種型別的使用者 (提供者、管理員等),PACS 身份驗證應無縫銜接
    • 將遠端研究連線到本地患者
    • 上傳影像研究 (如上所述) 應附加到本地患者
    • 向管理員公開多個 PACS 端點/任務
  • 其他
    • 對資料和任務進行適當的訪問限制
    • 提供者持續訪問資料 (更新或類似操作無停機)
    • 考慮到資源受限的環境,最大限度地減少頻寬使用量 (透過避免不必要的傳輸)
    • 網路互動應透過 TLS 或其他類似的適當機制進行加密

來自 G 的想法,更偏向於細節而非一般概念

  • 目標錯誤程式碼,到目前為止只有 401,“無效域”或“成功”
  • 在從 Orthanc 中的患者建立 HMIS 中的患者時:自動採用/建議姓名、出生日期和 ID
  • 支援客戶端內部的 DICOM 預覽 (Orthanc:僅連結到瀏覽器中的開啟方式,health_imaging:不支援 DICOM)
  • 新增系列和例項作為資源?Orthanc 模組僅支援患者和研究,但 Orthanc 本身將患者、研究、系列和例項作為資源

開啟任務/錯誤

  • “在請求 DX 影像時,有將影像傳送到 Orthanc 的可能性”
  • “在建立 DX 影像結果時,有將影像/研究連結到來自 Orthanc 的資料的可能性”

錯誤 #59872

以下是需要解決的問題

  • 已解決:DRM_IOCTL_MODE_CREATE_DUMB 失敗:啟動時無法分配記憶體。將 CMA=340m 作為核心啟動引數使用,可以提供足夠的 CMA 記憶體。KDE plasma 通道的同事表示他們將在下一個映象中包含它。
華夏公益教科書