Generates synthetic FHIR resources.
Project description
:fire: FHIR Kindling
CRUD library for fhir servers, with resource validation and parsing powered by the pydantic models created by fhir.resources. More details in the Documentation.
Features
- Create, Read, Update, Delete using a server's REST API
- Bundle creation, validation and data management on a FHIR server via the REST API
- Supports Hapi, Blaze and IBM FHIR servers
Installation
Install the package using pip:
pip install fhir-kindling --user
Usage
Connecting to a FHIR server
from fhir_kindling import FhirServer
# Connect with basic auth
basic_auth_server = FhirServer("https://fhir.server/fhir", username="admin", password="admin")
# Connect with static token
token_server = FhirServer("https://fhir.server/fhir", token="your_token")
# Connect using oauth2/oidc
oidc_server = FhirServer("https://fhir.server/fhir", client_id="client_id", client_secret="secret",
oidc_provider_url="url")
# Print the server's capability statement
print(basic_auth_server.capabilities)
Query resources from the server
from fhir_kindling import FhirServer
from fhir.resources.patient import Patient
# Connect using oauth2/oidc
oidc_server = FhirServer("https://fhir.server/fhir", client_id="client_id", client_secret="secret",
oidc_provider_url="url")
# query all patients on the server
query = oidc_server.query(Patient, output_format="json").all()
print(query.response)
# Query resources based on name of resource
query = oidc_server.query("Patient", output_format="json").all()
print(query.response)
CLI
With the virtual environment activated you can use the CLI directly in the terminal
CLI - Uploading a bundle to a server
fhir_kindling upload <path-to-bundle.json> --url <base-url-fhir-api> -u <username> -p <password> --token <token>
CLI - Querying a server
For an overview of the options of the CLI query command
fhir_kindling query --help
Examples
To query all instances of a resource use the -r
option. This command queries all Patients from the server and stores
the results as csv into the query_results.json
file.
fhir_kindling query -r Patient --url <base-url-fhir-api> -u <username> -p <password> --token <token> -f "query_results.csv" -o csv
This example uses the -q
option to execute a predefined url query string against the server and also stores the output
as csv in a file called query_results.csv
fhir_kindling query -q "/MolecularSequence?patient.organization.name=DEMO_HIV&_format=json" --url <base-url-fhir-api> -u <username> -p <password> --token <token> -f "query_results.csv" -o csv
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
Change Log
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[0.3.0] - 2021-10-30
Response classes, reference parsing and basic xml support
Added
XML output format and resolving xml pagination. Response objects containig resources and references
Changed
Outsourced resolving of response pagination into response classes
Fixed
[0.2.0] - 2021-09-18
FHIR server and query API
Added
Classes for fhir servers and queries. Oauth2/OIDC support.
Changed
Moved location of cli
Fixed
[0.1.0] - 2021-08-24
Initial cli
Added
Changed
Fixed
Hashing order guarantees the right index of the query.json file in the hash
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
File details
Details for the file fhir_kindling-0.6.1.tar.gz
.
File metadata
- Download URL: fhir_kindling-0.6.1.tar.gz
- Upload date:
- Size: 38.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 402dc231d404b4bd430591187dc9a58e2bef9855a76ffee7b60f40946a296070 |
|
MD5 | 17eddc36a19c2d1987922ce1f6954e39 |
|
BLAKE2b-256 | 38ba951955ede0bfe64be81d9a37ce1e8020728d53701449a6476458c22ad836 |
File details
Details for the file fhir_kindling-0.6.1-py2.py3-none-any.whl
.
File metadata
- Download URL: fhir_kindling-0.6.1-py2.py3-none-any.whl
- Upload date:
- Size: 30.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbaf2227dcc139085a3fd369324d7a5362528d3f2e691d09d95c29e3c617b325 |
|
MD5 | 0bcd2e2fb56863956796544007b2400b |
|
BLAKE2b-256 | 54bd8e7c1b78bc5574b812ae226d9fabc5ccfc3665a78f48613c78739770d5c5 |