一个断头台框架驱动的fhirpath提供者。
fhirpath-guillotina的Python项目详细描述
Fhirpath断头台
一个断头台框架驱动的fhirpath提供者。电池已满,可更有效地使用fhirpath。
快速启动
- 确保将fhirpath_guillotina添加为断头台配置文件中的加载项。
- 正确配置ElasticSearch服务器。
- 确保已注册FHIR资源内容类型(请参见下面的示例)。
- 确保您有用于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"
- 自由软件:GNU通用公共许可v3
- 文档:https://fhirpath-guillotina.readthedocs.io。
学分
这个包框架是用Cookiecutter和audreyr/cookiecutter-pypackage项目模板创建的。
历史记录
0.1.0(2019-08-24)
- pypi上的第一个版本。[纳兹鲁尔世界]