GNU Health FHIR服务器
项目描述
GNU HEALTH FHIR 服务器
GNU Health 快速健康互操作性资源(FHIR)服务器允许从运行的 GNU Health HMIS 节点查询不同的资源,返回 HL7 FHIR 消息。
历史
2014年3月,我开始为 Python 开发了 FHIR 的初始 alpha 项目,目的是用于 GNUHealth HMIS(服务器和客户端)和其他 EMRs。(https://pypi.ac.cn/project/fhir)
不久之后,我们的同事Chris Zimmerman博士加入了该项目,并出色地持续并领导了GNUHealth FHIR服务器多年的开发工作。
多年来,FHIR开发一直是GNU Health HMIS“后端”的一部分。虽然一开始方便,但我们觉得GNU Health FHIR组件应该有自己的仓库。2020年,我们在GNU Savannah创建了health-fhir-server mercurial仓库。这使得可以有一个专门负责FHIR资源的团队。
2020年,我们在Pypi上创建了GNU Health FHIR服务器包(https://pypi.ac.cn/project/gnuhealth-fhir-server)
GNU Health FHIR服务器仍在开发中。我们很高兴与HL7 FHIR社区合作,添加新的资源和功能。
与其他GNU Health组件一样,其开发在GNU Savannah。
安装
GNU Health FHIR服务器可以通过pip安装
服务器需要Flask及其一些插件。当然,还需要一个正常工作的GNU Health HMIS实例。
$ pip3 install –upgrade –user gnuhealth-fhir-server
配置
服务器附带一个简单的生产配置文件(server/config.py)。但是,需要对其进行编辑。
TRYTON_DATABASE = '' # GNU Health database SERVER_NAME = '' # Domain name of the server (e.g., fhir.example.com) SECRET_KEY = '' # Set this value to a long and random string
安全
使用TLS。敏感的医学信息必须受到保护和保密。
默认情况下,所有FHIR端点(除了Conformance声明)都需要用户身份验证。用户身份验证和访问遵循Tryton的模式,尊重模型和字段访问权限。
用于登录GNU Health的相同凭据也用于访问FHIR REST服务器。
运行服务器
对于开发,只需运行
python ./gnuhealth_fhir_server.py
对于生产环境,您应该从WSGI容器运行它,例如gunicorn、uWSGI或Tornado。
uwsgi server_uwsgi.ini
您可以在server_uwsgi.ini中更改端口号(默认8020)和套接字。
当前资源/端点
目前实现了以下资源(只读)
FHIR标准定义了一个REST API,一组与每个资源的交互。每个资源处理不同类型的信息。目前,GNU Health FHIR服务器支持12个资源
Conformance:描述服务器的FHIR功能。
Patient:患者信息,如电子邮件、地址、SSN等。
DiagnosticReport:完成的实验室测试,但不包括数据
Observation:实验室数据,如尿酸值
Practitioner:卫生专业人员及其信息
Procedure:手术/操作
Condition:疾病/诊断
FamilyHistory:患者的家族史
Medication:药物(不是处方!)
MedicationStatement:患者服用的药物
Immunization:疫苗接种
Organization:机构、部门、公司等。
每个资源都有自己的端点。例如,Patient端点位于/Patient,DiagnosticReport端点位于/DiagnosticReport,依此类推。唯一例外的是Conformance端点,位于/和/metadata。
查询GNU Health FHIR服务器
如果我们以资源名称作为端点,GNU Health将返回所有结果。
例如: https://federation.gnuhealth.org:8700/Patient
将检索当前数据库中的患者。
要搜索资源,只需向端点添加参数以细化搜索。例如,/Patient?name=ana将返回所有名字中包含Ana的患者
日志文件将存储在用户的家目录中,文件名为“fhir_server.log”。您也可以在运行uwsgi后的服务器中添加相应的日志。
技术
GNU Health HMIS FHIR服务器基于Flask技术(https://flask.org.cn/)构建。
有关Flask及其在GNU Health FHIR服务器中使用的插件更多信息
开发
GNU Health 项目的开发位于 GNU Savannah,使用 Mercurial 仓库。
任务、错误和邮件列表将在 health-dev@gnu.org 上,用于开发。
一般讨论在 health@gnu.org 邮件列表中进行。
主页
文档
GNU Health FHIR 服务器文档将在 GNU Health Wikibook 的相应章节中
支持 GNU Health
GNU Health 是 GNU Solidario 项目。GNU Solidario 是一个在全球范围内工作的非营利性非政府组织(NGO),专注于社会医学。
健康和教育是社会发展和尊严的基础。
您也可以通过以下方式为我们项目 捐赠
https://www.gnuhealth.org/donate/
此外,您可以通过成为 GNU Solidario 的 成员 来长期支持 GNU Health,这样我们就可以共同努力,在全世界范围内实现医疗保健的自由和公平。
https://my.gnusolidario.org/join-us/
GNU Solidario 主办 IWEEE 和 GnuHealthCon
国际新兴经济体电子健康研讨会——支持 GNU Solidario 和了解最新电子健康的好方法就是参加这些会议。
需要帮助实施 GNU Health 吗?
我们致力于尽我们所能帮助那些可以改善您国家或地区健康的项目。我们希望项目取得成功,由于我们的资源有限,我们需要共同努力,打造一个伟大且可持续的项目。
为了有资格,我们需要您或您的非政府组织/政府提供以下信息
当前需求介绍
项目将仅使用自由软件技术
将有一个当地指定的人负责项目,并将知识传授给其他社区成员。这个人必须从项目开始到项目完成后两年都致力于此。
必须对知识传授给其他团队成员做出承诺。
我们将尽最大努力帮助您实施和培训当地团队,以建立当地能力并使您的项目具有可持续性。
请与我们联系,我们将尽快回复您
Thank you ! Dr. Luis Falcón, MD, MSc Author and project leader falcon@gnuhealth.org
电子邮件
推特:@gnuhealth
许可
GNU Health,自由数字健康生态系统,采用 GPL v3+ 许可
Copyright (C) 2008-2023 Luis Falcon <falcon@gnuhealth.org> Copyright (C) 2011-2023 GNU Solidario <health@gnusolidario.org> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://gnu.ac.cn/licenses/>.
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。
源分发
gnuhealth-fhir-server-0.9b7.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | da6a8290509ff4196980bf0ee2259baa112ffc926b4ea3c52648ecffc473aa54 |
|
MD5 | 740599b28fb1068b8589868aa1af4e98 |
|
BLAKE2b-256 | 2463438aaa45c68102cd23424b2aa1e59657a0fada87ff43c1b5d4b25ce6c87e |