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.ac.cn/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.ac.cn/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 通道的同事表示他们将在下一个镜像中包含它。