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.
- Free software: BSD license
FHIR® (R4 aka 4.0.0) is available as default. Also previous versions are available as Python sub-package
(each version name string becomes sub-package name, i.e STU3
).
Available Previous Versions:
STU3
(3.0.1)
Just a simple pip install fhir.resources
or easy_install fhir.resources
is enough. But if you want development
version, just clone from https://github.com/nazrulworld/fhir.resources and python setup.py 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" True >>> org.as_json()['active'] is True True
Example: 2: Construct resource object in python way:
>>> org = Organization() >>> org.id = "mmanu" >>> org.active = True >>> org.name = "Acme Corporation" >>> org.address = list() >>> address = Address() >>> address.country = "Swizterland" >>> org.address.append(address) >>> org.as_json() == json_dict True
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" True >>> org.as_json()['active'] is True True
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.
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