GNU Health/開發人員專區
本章重點介紹了 GNU Health 不同元件中即將釋出的版本的開發情況。
開發人員專區是高度不穩定的。它混亂且不穩定,我們很喜歡這樣;)
請尊重每個元件的目標構建。
本節將介紹將 HIS 伺服器從 4.4 遷移到 5.0 的過程。
- 下載最新的 LTS(長期支援)Tryton 伺服器 (https://www.tryton.org/download) 並解壓縮。
-> $ 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
- 將 Tryton 6.2 遷移到 6.4 的操作不適用,因為我們不使用帳戶付款包 (https://discuss.tryton.org/t/migration-from-6-2-to-6-4/5241)
- 將 Tryton 6.6 遷移到 6.8 的操作不適用,因為我們不使用 packaging_* 模組。
- 從 Fields 例項中刪除“select”選項。
待辦事項
- 合併 orthanc 和 dhis2 模組
- 將模組遷移到 Tryton 7.0 和 pyproject.toml,從核心模組開始
- 解決 tryton 模組測試
- 上傳(測試)pypi 並使用 CI 執行 tryton 模組測試?
- 確認新安裝
- 更新其他與安裝相關的資料
- 使用 alpha testpypi 版本設定社群伺服器
以下模板是用於 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 整合。
升級之前
- 執行指令碼“before.sql”。
- 更新 tryton 伺服器(./trytond-admin --all)。
升級之後
- 執行指令碼“after.sql”。
- 日曆和 Webdav 選單可能顯示兩次。只需停用過時的第一個例項(管理 -> 使用者介面 -> 選單)。
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 客戶端版本的使用者。
webclient 基於 Tryton SAO Webclient。它沒有像 GTK 客戶端那樣的當前功能、桌面整合和安全功能。僅供開發人員使用...
安裝 SAO(作為 gnuhealth 使用者)
- 下載 https://downloads.tryton.org/6.0/tryton-sao-last.tgz
- cd $HOME
- mkdir sao
- cd sao/package
- npm install
- cd /home/gnuhealth/sao/package/node_modules/.bin
- ./grunt
在 [web] 部分
root = /home/gnuhealth/sao/package
安裝要求
- 更新系統 (pacman -Syu)
- 安裝 gcc (pacman -S gcc)
- 安裝基礎開發工具 (pacman -S base-devel)
- 安裝 pyside2 包 (pacman -S pyside2-es2) (確保你使用這個包!常規的“pyside2”將無法使用。感謝 Anupam!)
- 在 SD 卡上安裝最新的 plasma-mobile 映象 (https://images.plasma-mobile.org/pinephone/)
安裝所需的包
- 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
建立一個交換檔案 (構建過程中需要)
- sudo bash
- cd /opt
- dd if=/dev/zero of=swapfile bs=1G count=1
- mkswap swapfile
- 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 獲取
從 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 通道的同事表示他們將在下一個映象中包含它。