Skip to content

Latest commit

 

History

History
executable file
·
190 lines (126 loc) · 7.43 KB

CHANGELOG.md

File metadata and controls

executable file
·
190 lines (126 loc) · 7.43 KB

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.

[1.0.3] - 2023-09-13

Re-enable authentification against a server using OpenID Connect. Remove authlib dependency in favor of a simple custom OpenID connect implementation. You can now authenticate against a server by providing a client id and secret and a token endpoint. The library will then fetch an access token and use it for all requests.

Added

  • OpenID Connect with client credentials auth flow for authenticating against the server

[1.0.2] - 2023-08-12

Changed

Removed pendulum dependency and replaced it with datetime. This should make the library more compatible with other libraries

[1.0.0] - 2023-07-09

Improve packaging with poetry to slim down library size with optional extras for datascience features. Record linkage for transfer functionality. Add support for Python 3.9+. Code base cleanup and refactoring. Big upgrades to the documentation 👀.

Changed

  • Breaking: Renamed FHIRQuery classes to FhirQuerySync and FhirQueryAsync for naming consistency.
  • Breaking: Renamed FHIRQueryParameters class to FhirQueryParameters for naming consistency.
  • Breaking: Query response .save() method now only supports saving as XML or JSON file. To serialize resources and bundles use the flatten function from the serde package. Requires installation of the ds extra.
  • Breaking: Moved ServerSummary and summary functionality into separate module.
  • Breaking: Unified has() and where() parameter args into a single argument that accepts either a dict or a parameter object. Removed _dict arguments.
  • Improve packaging with poetry and optional extras for datascience features and web app.
  • Optional dependencies for [ds, app] can be installed using pip install fhir_kindling[{extra}].
  • Split batch transactions into separate module to slim down FhirServer class.
  • Split transfer functionality into separate module to slim down FhirServer class.

Added

  • Optional progress bar for summary, get_many, add_all and transfer methods.
  • Additional property resource_list on FhirQueryResponse to get a list of all resources (even included ones) from the response.
  • summary_async() method for asynchronous server summary.
  • total property on QueryResponse to get the total number of resources returned by the query.
  • record_linkage functionality for transfer() method and split transfer functionality into separate module.
  • Retry functionality for the FhirServer class. Allowing for retrying failed requests based on the configured status codes and methods. Configurable with backoff and jitter.
  • Benchmark functionality for FhirServers that run a comprehensive set of tests against the server and measure the time it takes to complete them. Available only when the ds extra is installed.

Removed

  • Removed to_dfs() method on query response object. Use flatten function from the serde package instead. Requires installation of the ds extra.
  • Removed requests-oauthlib in favor of authlib.

[0.9.0] - 2022-07-21

Asynchronous API for CRUD operations against fhir servers.

Changed

  • Switched http client library from requests httpx
  • removed requests-oauthlib in favor of authlib for oauth2 authentication flow
  • FHIRQuery class renamed to FhirQuerySync to allow for sync and async version
  • moved resolving response pagination from QueryReponse to the sync and async query classes
  • getting multiple resources via server.get_many() now uses proper batch requests

Added

  • FhirQueryAsync class for async queries against a server
  • asynchronous counterparts for CRUD operations in the FHIRServer class using the same API:
    • query_async()
    • raw_query_async()
    • get_async()
    • get_many_async()
    • add_async()
    • add_all_async()
    • add_bundle_async()
    • update_async()
    • delete_async()

[0.8.0] - 2022-03-18

Resource transfer between servers and querying resources by reference.
get, get_many for querying resource by reference server.transfer(other_server, query_result) for transferring resources

Changed

  • FhirServer constructor now accepts two additional optional parameters, auth and headers that will be used for the instance's requests session.

Added

  • server.get(reference) get a single resource from the server, based on relative path/reference.
  • server.get_many(references) get multiple resources from the server, based on relative path/reference.
  • server.transfer(other_server, query) transfer resources matching the query from one server to another. Also requests resources referenced by the resources matching to maintain referential integrity on the new server.
  • query.all(page_callback=callback, count=50) callback functions and count for pagination resolving in query responses.

[0.7.0] - 2022-01-31

Update a list of resources on the server. CSV/Pandas serialization of resources and query responses.

Added

  • server.update(resources) which updates a list of resources stored on the server
  • Recursive resource flattening for csv/tabular serialization
  • query_response.save(path, format="csv) to save the results of a query to csv

Changed

  • server.query(params) the query method now directly accepts query parameters

[0.6.0] - 2022-01-19

Query Response with included resources. Reworked Generators

Added

  • Query response now stores and parses included resources
  • Generator parameters for Resources and Fields
  • Field generators for generating resource fields based on probabilistic choices or a generator function
  • Resource generator field values based on static value or list
  • Patient based data set generator

Changed

  • Query interface where, include, has now can add query parameters based on method arguments or parameter objects.

[0.5.0] - 2021-11-12

Query Parameters, include/revinclude, reverse chaining.

Added

  • Query Parameters classes, for regular queries, including resources and reverse chaining
  • Support for _include and _revinclude via query.include()
  • Reverse chaining support via query.has()
  • Parsing parameters from given URL/ coverting parameters to query url

Changed

  • Query interface where, include, has now can add query parameters based on method arguments or parameter objects.

[0.4.0] - 2021-11-12

Server summary, deleting resources, removed initial CLI.

Added

  • Getting a list of all resources on the server based on capabilities
  • Plots for server and resource summary
  • server.delete() method to delete resources based on ids

[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