Skip to main content

smart-on-fhir-client 🔥

Package allowing to request a fhir server with the smart-on-fhir protocol.

ℹ Warning

It is not a webserver providing a webserver with a callback url usually involved in the smart-on-fhir procedure

Tutorial

First, we will need to create a partner. We can do this easily subclassing the Partner class.

import os
from smart_on_fhir_client.partner import Partner
from smart_on_fhir_client.strategy import Strategy

class OauthFHIRProvider(Partner):
    name = 'PROVIDER'
    supported_strategies: set[Strategy] = {Strategy.M2M}
    client_id: str = os.getenv("PROVIDER_CLIENT_ID")
    client_secret: str = os.getenv("PROVIDER_CLIENT_SECRET")
    token_url: str = ... # set the token url
    fhir_url: str = ... # set the fhir url

    # additional information
    audience: str = ... # audience
    database_reference: str = ... # optional 
    grant_type: str = "client_credentials" # set the credentials

FHIR_PROVIDER = OauthFHIRProvider()
from smart_on_fhir_client.client import smart_client_factory
from smart_on_fhir_client.requester.fhir_requester import fhir_client_manager
from smart_on_fhir_client.strategy import Strategy

# set up your own fhir server url
fhir_client_manager.set_own_fhir_url("http://localhost:8080/fhir")


async def register():
    async with smart_client_factory:
        await fhir_client_manager.register_fhir_client_async(
            smart_client_factory.builder()
            .for_partner(FHIR_PROVIDER)
            .for_strategy(Strategy.M2M)
            # you can register special classes for specific fhir resources
            .register_cls_for('Patient', CustomPatientResource)
        )
        first_patient = await fhir_client_manager.patient.search().limit(10).first()
        await first_patient.pipe_to_target_fhir_server()

Features

Allow to send some fetched fhir resources to another fhir server via the pipe_to_target_fhir_server, making data transfer between two fhir servers easier.

Notes

Work based heavily on fhir-py and fhir-resources python packages

Metadata

Release files for smart-on-fhir-client 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for smart-on-fhir-client 1.0.4
File Size Uploaded Provenance Actions
smart_on_fhir_client-1.0.4.tar.gz 12.3 kB Without provenance Details for smart_on_fhir_client-1.0.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for smart-on-fhir-client 1.0.4
File Interpreter ABI Platform Actions
smart_on_fhir_client-1.0.4-py3-none-any.whl Python 3 none any Details for smart_on_fhir_client-1.0.4-py3-none-any.whl

Total release size: 26.8 kB

Release files / smart_on_fhir_client-1.0.4.tar.gz

Download URL smart_on_fhir_client-1.0.4.tar.gz
Size 12.3 kB
Tags Source
SHA-256 checksum
How to use checksums
7422a89278d73503e64b2992a3f864c9651a52981bb8c4732a1d5dacf5bfae43
BLAKE2b-256 checksum
How to use checksums
a72e4c0371c0e639b758a4eecc3753d5b97954d94a21b175668c01245cd1c29a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / smart_on_fhir_client-1.0.4-py3-none-any.whl

Download URL smart_on_fhir_client-1.0.4-py3-none-any.whl
Size 14.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ab677e20fa2d76cc6ffd160cc6cf1e922f8073261bb2acf2deeb12095b0ccd5
BLAKE2b-256 checksum
How to use checksums
15ade9839f9f56caea424741d1ff39564c57b5b7deb08dad205a3ee6d1cf99c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Security for smart-on-fhir-client 1.0.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page