跳转到内容

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.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 客户端版本的用户。

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.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 获取

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 通道的同事表示他们将在下一个镜像中包含它。
华夏公益教科书