fhirpath在python中的实现。

fhirpath的Python项目详细描述


fhirpath公司

https://img.shields.io/pypi/v/fhirpath.svghttps://img.shields.io/travis/nazrulworld/fhirpath.svgDocumentation StatusUpdatesHL7® FHIR®

fhirpath在python中的实现。这个库是用类似于ORM的方法构建的。

快速启动(guillotina

此快速入门指南基于guillotinaelasticsearch以及附加的guillotina_elasticsearch依赖项。 如果不知道guillotina,就要有一个look at their nice document。 在项目依赖项中添加fhirpathguillotina_elasticsearch。 从your app configuration file安装fhirpath.providers.guillotina_app

我们假设您正确地配置了elasticsearch服务,并且有fhir内容类型,当然您最近也知道fhir

示例:添加内容:

class IOrganization(IFhirContent, IContentIndex):
    index_field(
        "organization_resource",
        type="object",
        field_mapping=fhir_resource_mapping("Organization"),
        fhirpath_enabled=True,
        resource_type="Organization",
        fhir_version=FHIR_VERSION.DEFAULT,
    )
    index_field("org_type", type="keyword")
    org_type = TextLine(title="Organization Type", required=False)
    organization_resource = FhirField(
        title="Organization Resource", resource_type="Organization", fhir_version="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.providers.guillotina_app.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.providers.guillotina_app.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项目模板创建的

版权所有HL7?徽标、FHIR?徽标和火焰是注册商标 属于Health Level Seven International

历史记录

0.1.1(2019-08-15)

  • 第一个工作版本已经发布。当然不是全功能的

0.1.0(2018-12-15)

  • PyPI上的第一个版本(只是注册用途,根本不可用,下一个版本即将发布)

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

推荐PyPI第三方库


热门话题
Diamond不编译Java 7   web服务如何将文件(txt)从java上传到restful web服务?   java将用户组分配给角色Liferay 6.1.1   java打印对象并检查null   java JScrollPane重写setHvalue   java如何使用JAXRS标准客户端API处理来自Web服务的错误JSON内容类型?   java在尝试解压7Zip归档文件(以二进制模式)时遇到异常   在Java中从派生类调用基类构造函数   java如何在微文件rest客户端中动态添加HTTP头?   PrintWriter[]数组Java中的NullPointerException   java addFlashAttribute和保存数据   java Jboss eap 6.4到Wildfly 14/18的迁移   java eclipse:由于“无法读取文件…~$somefile.xlsx”而未生成项目