Skip to main content

FHIR Resources as Model Class

Project description

FHIR® Resources (R4, STU3, DSTU2) Supported Python Versions HL7® FHIR®

All FHIR Resources are available as python class with built-in initial validation, exporter as json value.

  • Provides Resource Factory class (see example 4) to create resource object in more convenient way.
  • Previous version of FHIR® Resources are available.
  • Fully support for fhirclient as models.
  • Free software: BSD license

FHIR® Version Info

FHIR® (Release R4, version 4.0.1) is available as default. Also previous versions are available as Python sub-package (each release name string becomes sub-package name, i.e STU3 ).

Available Previous Versions:

  • STU3 (3.0.2)
  • DSTU2 (1.0.2)


Just a simple pip install fhir.resources or easy_install fhir.resources is enough. But if you want development version, just clone from and python install.

Example: 1: Resource object created from json string:

>>> from fhir.resources.organization import Organization
>>> from fhir.resources.address import Address
>>> json_dict = {"resourceType": "Organization",
...     "id": "mmanu",
...     "active": True,
...     "name": "Acme Corporation",
...     "address": [{"country": "Swizterland"}]
... }
>>> org = Organization(json_dict)
>>> isinstance(org.address[0], Address)
>>> True
>>> org.address[0].country == "Swizterland"
>>> org.as_json()['active'] is True

Example: 2: Construct resource object in python way:

>>> org = Organization()
>>> = "mmanu"
>>> = True
>>> = "Acme Corporation"
>>> org.address = list()
>>> address = Address()
>>> = "Swizterland"
>>> org.address.append(address)
>>> org.as_json() == json_dict

Example: 3: Auto validation while providing wrong datatype:

>>> from fhir.resources.fhirabstractbase import FHIRValidationError
>>> try:
...     org = Organization({"id": "fmk", "address": ["i am wrong type"]})
...     raise AssertionError("Code should not come here")
... except FHIRValidationError:
...     pass

Example: 4: Using Resource Factory:

This package provides a convenient factory to create FHIR® resource, you never need to import manually each resource class.

>>> from fhir.resources.fhirelementfactory import FHIRElementFactory
>>> json_dict = {"resourceType": "Organization",
...     "id": "mmanu",
...     "active": True,
...     "name": "Acme Corporation",
...     "address": [{"country": "Swizterland"}]
... }
>>> org = FHIRElementFactory.instantiate('Organization', json_dict)
>>> org.address[0].country == "Swizterland"
>>> org.as_json()['active'] is True

Release and Version Policy

Starting from version 5.0.0 we are following our own release policy and we although follow Semantic Versioning scheme like FHIR® version. Unlike previous statement (bellow), releasing now is not dependent on FHIR®.

removed statement

This package is following FHIR® release and versioning policy, for example say, FHIR releases next version 4.0.1, we also release same version here.


All FHIR® Resources (python classes) are generated using fhir-parser which is forked from

This package skeleton was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

© Copyright HL7® logo, FHIR® logo and the flaming fire are registered trademarks owned by Health Level Seven International


5.1.0 (2020-04-11)


5.0.1 (2019-07-18)


  • Issue#5 confusing error message “name ‘self’ is not defined” [nazrulworld]

5.0.0 (2019-06-08)

  • Nothing but release stable version.

5.0.0b3 (2019-05-14)

New features

5.0.0b2 (2019-05-13)

Breaking or Improvments

  • elementProperties: element now has extra property type_name. Now format like (name, json_name, type, type_name, is_list, "of_many", not_optional) The type_name refers original type name (code) from FHIR Structure Definition and it would be very helpful while making fhir search, fhirpath navigator.

5.0.0b1 (2019-01-19)

New features

  • Implemented own build policy, now previous version of FHIR® resources are available as python sub-package.

Build info

  • Default version is R4 (see version info at 4.0.0b1 (2019-01-13) section)
  • STU3 (see version info at 3.0.1 (2019-01-13) section)

4.0.0 (2019-01-14)

  • see version info at 4.0.0b1 section.

4.0.0b1 (2019-01-13)

Version Info (R4)


3.0.1 (2019-01-13)

Version Info (STU3)


Project details

Download files

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

Files for fhir.resources, version 5.1.0
Filename, size File type Python version Upload date Hashes
Filename, size fhir.resources-5.1.0-py2.py3-none-any.whl (1.8 MB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size fhir.resources-5.1.0.tar.gz (1.1 MB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page