跳转到主要内容

由guillotina框架支持的fhirpath提供者。

项目描述

简介

https://img.shields.io/pypi/v/fhirpath_guillotina.svg https://img.shields.io/travis/nazrulworld/fhirpath_guillotina.svg Documentation Status Test Coverage

由guillotina框架支持的fhirpath提供者。包含所有必要的功能以更有效地使用fhirpath

如果您不了解FHIR®和HL7®,请在此处查看

快速入门

  1. 确保在您的guillotina配置文件中将fhirpath_guillotina添加为插件。

  2. 确保已正确配置Elasticsearch服务器。

  3. 确保您已注册FHIR资源内容类型(请参阅下面的示例)。

  4. 确保您具有Elasticsearch的FHIR资源映射(正确版本)。

示例:添加内容

>>> from fhirpath_guillotina.field import FhirField

class IOrganization(IFhirContent, IContentIndex):
    index_field(
        "organization_resource",
        type="object",
        field_mapping=fhir_resource_mapping("Organization"),
        fhirpath_enabled=True,
        resource_type="Organization",
        fhir_release=FHIR_VERSION.R4,
    )
    index_field("org_type", type="keyword")
    org_type = TextLine(title="Organization Type", required=False)
    organization_resource = FhirField(
        title="Organization Resource", resource_type="Organization", fhir_release="R4"
    )


@configure.contenttype(type_name="Organization", schema=IOrganization)
class Organization(Folder):
    """ """

    index(schemas=[IOrganization], settings={})
    resource_type = "Organization"

示例搜索

>>> from guillotina.component import query_utility
>>> from fhirpath.interfaces import ISearchContextFactory
>>> from fhirpath.interfaces import IFhirSearch
>>> search_context = query_utility(ISearchContextFactory).get(
...    resource_type="Organization"
... )
>>> search_tool = query_utility(IFhirSearch)
>>> params = (
...     ("active", "true"),
...     ("_lastUpdated", "2010-05-28T05:35:56+00:00"),
...     ("_profile", "http://hl7.org/fhir/Organization"),
...     ("identifier", "urn:oid:2.16.528.1|91654"),
...     ("type", "http://hl7.org/fhir/organization-type|prov"),
...     ("address-postalcode", "9100 AA")
... )
>>> fhir_bundle = await search_tool(params, context=search_context)
>>> fhir_bundle.total == len(fhir_bundle.entry)

示例FhirPath查询

>>> from fhirpath.interfaces import IElasticsearchEngineFactory
>>> from guillotina.component import query_utility
>>> from fhirpath.enums import SortOrderType
>>> from fhirpath.fql import Q_
>>> from fhirpath.fql import T_
>>> from fhirpath.fql import V_
>>> from fhirpath.fql import sort_
>>> engine = query_utility(IElasticsearchEngineFactory).get()
>>> query_builder = Q_(resource="Organization", engine=engine)
>>> query_builder = (
...        query_builder.where(T_("Organization.active") == V_("true"))
...        .where(T_("Organization.meta.lastUpdated", "2010-05-28T05:35:56+00:00"))
...        .sort(sort_("Organization.meta.lastUpdated", SortOrderType.DESC))
...        .limit(20)
...    )
>>> query_result = query_builder(async_result=True)
>>> result = query_result.fetchall()
>>> result.header.total == 100
True
>>> len(result.body) == 20
True
>>> async for resource in query_result:
...     assert resource.resource_type == "Organization"

致谢

此软件包结构是用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。

历史

0.4.0 (2020-05-16)

改进

  • 支持 fhirpath 0.6.1 或更高版本。

  • 支持 guillotina 5.3.x,但不支持 6.x.x

0.3.0 (2019-11-13)

改进

  • 支持 https://pypi.ac.cn/project/fhirpath/ 0.4.0 或更高版本。

0.2.0 (2019-10-10)

0.1.0 (2019-08-24)

  • PyPI 上首次发布。 [nazrulworld]

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

fhirpath_guillotina-0.4.0.tar.gz (16.9 kB 查看哈希值)

上传时间 源代码

构建分发

fhirpath_guillotina-0.4.0-py2.py3-none-any.whl (15.4 kB 查看哈希值)

上传时间 Python 2 Python 3