Skip to main content

Transformation utility to translate data formats into FHIR

Project description

Python FHIR Converter

Python FHIR converter, fastish, most nuts and bolts included, ready for production

License PyPi - Version Python versions
Coverage


Provides a python native version of FHIR-Converter written in C#.

The key features are:

  • Fastish: Minimize overhead outside the rendering engine
  • Move fast: Designed to be extensibile. Use the thin rendering API or leverage the builtin parts
  • Easy: Designed to be easy to use, extend and deploy
  • Robust: Get production-ready code

Limitations:

  • Only CDA->FHIR is currently builtin. Additional work is needed to implement the filters, etc to support FHIR->FHIR and HL7v2->FHIR and back.
  • Python-liquid requires a comma between parameters to filters. This does not appear to be a restriction with DotLiquid. As a result templates brought to this environment may need commas added.

Built on the back of:

Table of Contents

Install

Install Python FHIR Converter using Pipenv:

$ pipenv install -u python-fhir-converter

Or pip:

$ pip install python-fhir-converter

Links

Basic Usage

See examples for more indepth usage / usecases.

from fhir_converter.renderers import  CcdaRenderer

with open("data/sample/ccda/ccd.ccda") as xml_in:
    print(CcdaRenderer().render_fhir_string("CCD", xml_in))

Command line interface

The package comes with a CLI interface that can be invoked either by the script name fhir_converter_cli or as python module python -m fhir_converter. The CLI allows you to transform a single file or an entire directory.

fhir_converter_cli  --from-file  ./data/sample/ccda/CCD.ccda --to-dir ./data/out --template-name CCD
---------------------------------------------------------------
RENDER SUCCESS
---------------------------------------------------------------
Total time: 0.14s
Finished at: 2024-01-11 10:49:44.182033
Final Memory: 32M
---------------------------------------------------------------

fhir-converter % fhir_converter_cli --template-dir ./data/templates/ccda --from-dir ./data/sample/ccda --to-dir ./data/out --template-name pampi
---------------------------------------------------------------
RENDER SUCCESS
---------------------------------------------------------------
Total time: 0.32s
Finished at: 2024-01-11 10:49:44.182033
Final Memory: 37M
---------------------------------------------------------------

Templates

Templates can be loaded from any python-liquid supported mechanism. To make packaging easier a ResourceLoader is provided. When a rendering environment is not provided, templates will be loaded from the module resources. To ease the creation of user defined templates a TemplateSystemLoader is provided that allows templates to be loaded from a primary and optionally default location. This allows user defined templates to reference templates in the default location. The example user defined templates reuse the default section / header templates.

Benchmark

You can run the benchmark from the root of the source tree. Test rig is a 16-inch, 2023 Macbook Pro with the M3 Pro not in low power mode. Python version is 3.12.1.

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        3    0.000    0.000   12.273    4.091 ./scripts/benchmark.py:75(render_samples)
       22    0.003    0.000   12.272    0.558 ./fhir-converter/fhir_converter/renderers.py:187(render_files_to_dir)
      484    0.002    0.000   12.258    0.025 ./fhir-converter/fhir_converter/renderers.py:220(render_to_dir)
      484    0.010    0.000   12.172    0.025 ./fhir-converter/fhir_converter/renderers.py:93(render_fhir)
      484    0.003    0.000   12.004    0.025 ./fhir-converter/fhir_converter/renderers.py:117(render_to_fhir)

Related Projects

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_fhir_converter-0.0.18.tar.gz (70.2 kB view hashes)

Uploaded Source

Built Distribution

python_fhir_converter-0.0.18-py3-none-any.whl (349.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page