一个断头台框架驱动的fhirpath提供者。

fhirpath-guillotina的Python项目详细描述


Fhirpath断头台

https://img.shields.io/pypi/v/fhirpath_guillotina.svghttps://img.shields.io/travis/nazrulworld/fhirpath_guillotina.svgDocumentation Status

一个断头台框架驱动的fhirpath提供者。电池已满,可更有效地使用fhirpath

快速启动

  1. 确保将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_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.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.1.0(2019-08-24)

  • pypi上的第一个版本。[纳兹鲁尔世界]

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

推荐PyPI第三方库


热门话题
java如何在用户输入小于0的数字时中断扫描仪?   为什么JIT编译器(Java)不保存结果?   查询中的配置单元Sparksql错误:不支持java类型类java。util。ArrayList   java maven缺少plexusutils的插件描述符   基于列表项位置的java替换片段   java在安卓中测试类编辑文本字段时出现空指针异常   java通过socketsReusing端口定期查询客户端以进行更新   异常setDefaultAuthenticator导致java错误。安全GWT web应用程序中的AccessControlException   java GridBagLayout填充空白空间   JAVAlang.NoClassDefFoundError:无法初始化类组织。阿帕奇。http。康涅狄格州。SSL连接插座厂   在Phone Gap中通过Ajax实现java JSON效果不佳   java有没有办法从spring上下文获取Hibernate SequenceGenerator?   java在本地主机上共享文件的替代方法   java如何将数据插入到content://media/external/audio/albumart通过内容解析器(如果是Mediastore)。音频媒体数据已弃用?   使用JAVA反射类执行函数   java如何模拟来自Faces上下文和外部上下文的请求?   javax的java替代位置。Windows中的comm.properties   java如何使用Spring表单标记包含jsp页面?   java包含来自Servlet的私有JSP