gnu健康联盟消息和身份验证服务器

thalamus的Python项目详细描述


丘脑项目为所有gnu健康提供了一个restful api中枢。 联合节点。主要功能有:

  1. 消息服务器:从和到的集中器和消息中继 gnu健康联盟的参与节点与gnu健康 信息系统(PGSQL)。一些参与节点包括 GNU Health HMIS,MyGNUHealth移动PHR应用程序, 实验室、研究机构和民政部门。
  2. 身份验证服务器:丘脑也充当身份验证和 与gnuHealth信息系统交互的授权服务器

丘脑是GNU健康项目的一部分,但它是一个独立的, 可用于不同健康相关方案的独立服务器。

安装

丘脑是PIP可安装的:

$ pip install --user thalamus

技术

restful api:丘脑使用rest(抑制状态转移) 建筑风格,由 Flask技术

丘脑将执行CRUD(创建、读取、更新、删除)操作。他们 将通过以下方法在资源及其实例上实现。

  • get:读取
  • post:创建
  • patch:更新
  • delete:删除。

删除操作将是最小的。

json:信息将以JSON格式编码。

资源

一些资源和终点是:

  • 人(/人)
  • 生活页(/pols)
  • 户籍(/户籍单位)
  • 个性化文档(/personal_docs)

从wsgi容器中取出丘脑

在生产设置中,出于性能原因,应使用http服务器。 我们选择了Gunicorn,但是您可以使用任何wsgi服务器。

Gunicorn本机支持wsgi,它以python包的形式提供。我们有 包括一个简单的默认配置文件(etc/gunicorn.cfg)来运行丘脑 启用SSL的Gunicorn。

例如,您可以从Gunicorn运行丘脑应用程序,如下所示。 默认配置文件使用安全(SSL)连接:

$ gunicorn --config etc/gunicorn.cfg thalamus:app

如果您想直接从Flask Werkzeug服务器运行它,:

$ python ./thalamus.py

示例

命令行,使用httpie

检索人员的人口统计信息:

$ http --verify no --auth ITAPYT999HON:gnusolidario https://localhost:8443/people/ESPGNU777ORG

屈服于:

HTTP/1.1 200 OK
Connection: close
Content-Length: 411
Content-Type: application/json
Date: Fri, 21 Apr 2017 16:22:38 GMT
Server: gunicorn/19.7.1

{
    "_id": "ESPGNU777ORG",
    "active": true,
    "biological_sex": "female",
    "dob": "Fri, 04 Oct 1985 13:05:00 GMT",
    "education": "tertiary",
    "ethnicity": "latino",
    "gender": "female",
    "lastname": "Betz",
    "marital_status": "married",
    "name": "Ana",
    "password": "$2b$12$cjrKVGYEKUwCmVDCtEnwcegcrmECTmeBz526AAD/ZqMGPWFpHJ4FW",
    "profession": "teacher",
    "roles": [
    "end_user"
    ]

}

全局检索人口统计信息

$ http --verify no --auth ITAPYT999HON:gnusolidario https://localhost:8443/people

屈服于:

HTTP/1.1 200 OK
Connection: close
Content-Length: 933
Content-Type: application/json
Date: Fri, 21 Apr 2017 16:31:23 GMT
Server: gunicorn/19.7.1

[
    {
        "_id": "ITAPYT999HON",
        "active": true,
        "biological_sex": "female",
        "dob": "Fri, 05 Oct 1984 09:00:00 GMT",
        "education": "tertiary",
        "ethnicity": "latino",
        "gender": "female",
        "lastname": "Cordara",
        "marital_status": "married",
        "name": "Cameron",
        "password": "$2b$12$Y9rX7PoTHRXhTO1H78Tan.8mVmyayGAUIveiYxu2Qeo0ZDRvJQ8/2",
        "profession": "teacher",
        "roles": [
        "end_user",
        "health_professional"
        ]

    },

    {
        "_id": "ESPGNU777ORG",
        "active": true,
        "biological_sex": "female",
        "dob": "Fri, 04 Oct 1985 13:05:00 GMT",
        "education": "tertiary",
        "ethnicity": "latino",
        "gender": "female",
        "lastname": "Betz",
        "marital_status": "married",
        "name": "Ana",
        "password": "$2b$12$cjrKVGYEKUwCmVDCtEnwcegcrmECTmeBz526AAD/ZqMGPWFpHJ4FW",
        "profession": "teacher",
        "roles": [
        "end_user"
        ]

    }

]

使用python请求

>>> import requests
>>> person = requests.get('https://localhost:8443/people/ESPGNU777ORG', auth=('ITAPYT999HON', 'gnusolidario'), verify=False)
>>> person.json()
  {'_id': 'ESPGNU777ORG', 'active': True, 'biological_sex': 'female','dob': 'Fri, 04 Oct 1985 13:05:00 GMT',
  'education': 'tertiary', 'ethnicity': 'latino', 'gender': 'female', 'lastname': 'Betz', 'marital_status': 'married',
  'name': 'Ana', 'password': '$2b$12$cjrKVGYEKUwCmVDCtEnwcegcrmECTmeBz526AAD/ZqMGPWFpHJ4FW', 'profession': 'teacher',
  'roles': ['end_user']}

note:演示用户“itapyt999hon”是一个健康专家(健康专家角色)。 所以她可以在全球范围内获取人口信息。检查roles.cfg文件 有关角色和acl的示例信息。

开发

丘脑是GNU健康项目的一部分。

开发将在gnu savannah上完成,使用mercurial存储库。

任务、错误和邮件列表将放在health-dev@gnu.org上进行开发。

一般问题可以在health@gnu.org邮件列表中完成。

释放循环

丘脑,作为其他gnu健康成分,将遵循其自身的释放过程。

文档

丘脑文件将在相应的 GNU Health Wikibook中的章节

https://en.wikibooks.org/wiki/GNU_Health

Author:Luis Falcon <lfalcon@gnusolidario.org>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓中通过TCP发送时java文件损坏   Java测试预期=异常失败,断言错误   java ssh4 LazyInitializationException   java是否可以在集合中添加重复项?   java是一个免费的开源数据库管理工具   java是否可以在导出的html中嵌入图像   编译器构造解释一些东西,并用Java运行生成的字节码?   java KeyPairGenerator未生成随机密钥   java使用正则表达式生成字符串而不是匹配字符串   java中的多线程线程间通信   具有复合密钥的java Hibernate合并问题   java不能在MainActivity类之外使用SharedReferences变量   正在获取切割/零件异常消息。使用java Spring ControllerAdvice   java tomcat漏洞讨论   javascript在Java中实现“system”命令   java如何在JUnit5*中加载*Spring测试上下文之前获取回调?   java bluej关于缺少返回语句   JavaSpringBoot@ModelAttribute包含使用字符串键的其他模型   从可选中抛出异常。ifPresent()Java 8