FHIR Resources as Model Class
Project description
FHIR® Resources (R4, STU3, DSTU2)
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)
Installation
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
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.
Credits
All FHIR® Resources (python classes) are generated using fhir-parser which is forked from https://github.com/smart-on-fhir/fhir-parser.git.
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
History
5.1.1 (2020-06-26)
Improvements
Strict flag support to FHIRElementFactory classes [mmabey]
Bugfixes
Fixed cyclical import that starts in BackboneElement (DSTU2) [mmabey]
5.1.0 (2020-04-11)
Improvements
FHIR STU3 release version upgraded from 3.0.1 to 3.0.2, Please find changes history here https://www.hl7.org/fhir/history.html.
FHIR R4 release version upgraded from 4.0.0 to 4.0.1, find changes history here https://www.hl7.org/fhir/history.html.
5.0.1 (2019-07-18)
Bugfixes:
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
Isuue#1 Add DSTU2 Support
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)
[FHIR] FhirVersion=4.0.0-a53ec6ee1b version=4.0.0 buildId=a53ec6ee1b date=20181227223754
3.0.1 (2019-01-13)
[FHIR] FhirVersion=3.0.1.11917 version=3.0.1 revision=11917 date=20170419074443
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for fhir.resources-5.1.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1863c9d124551db3666d79cabbb39ee16205ad22f1008e0bfc50b9a481639bb6 |
|
MD5 | 0d72bcf65ac6a2a4b6f77e87892d68b7 |
|
BLAKE2b-256 | ef99fb3000fbf7d8816c224a382b75ea85a40213f3fc97d4f212b19f7bb65315 |