Skip to content

v2.2.0

Compare
Choose a tag to compare
@bgreer101 bgreer101 released this 28 Feb 19:55

Added

  • Websocket Remote Data Requests: Upgraded API now utilizes WebSockets for faster data retrieval of bulky binary block data, improving the performance significantly for get data queries. REST API continues to be used for metadata requests.
  • Persistent Remote Connection: A single WebSocket connection is maintained open for the duration of the AtriumSDK object's lifetime, optimizing data querying.
  • Refresh Token Authentication: SDK objects in API mode now require a Refresh Token along with an authentication token, facilitating automatic refreshing of authentication tokens as needed.
  • Patient History Management: Introduced get_patient_history_fields, insert_patient_history, and get_patient_history methods in AtriumSDK, allowing getting and setting of patient meta information which changes over time (e.g., height and weight).
  • Updated get_patient_info: You can now specify a time where the function will get you the nearest height/weight to the time specified.
  • Updated insert_patient: Now when inserting a patient with a height and weight it will also make patient_history entries for the height/weight entered at the current insertion time.
  • Introducing Labels functionality: Now you can input time series labels to the sdk. This includes entering label names the define a label then applying that label to sections of data with a start and end time or as a point label. Deletion of labels is also supported. The label functionality is also supported in API mode except for insert and delete.
  • Label Hierarchies: Label names can have parents, enabling the creation of a label hierarchy tree. This permits fetching all descendants of a label, enhancing data categorization. This feature is supported by new methods: get_all_label_name_descendents, get_label_name_children, and get_label_name_parent as well as an added parent param in insert_label_name.
  • Expanded Dataset Definition: The dataset definition file format and object have been expanded to include the specification of label names.
  • Dataset Definition Validator: Now maps all data regions to both a device and a patient whenever possible, preventing data leakage and speeding up patient-based queries.
  • Dataset Iterator Enhancements: The DatasetIterator class now passes label information along with the window object yielded by the iterator. It has also introduced FilteredDatasetIterator and RandomAccessDatasetIterator subclasses for enhanced data iteration.
  • Dataset Partitioning: Added partition_dataset function for creating stratified dataset partitions based on specified ratios, ensuring balanced label representation without information leakage.
  • Data Exports and Transfers: Data transfer functionalities now leverage Dataset Definition files, supporting multiple formats (tsc, numpy, csv, wfdb) and including labels and patient histories in transfers.
  • New CLI Commands: Added commands atriumdb refresh_token and atriumdb config for token refreshing and configuration display.
  • Upgrated CLI Export: Updated atriumdb export to utilize Dataset Definition YAML files for defining data transfer/export operations.
  • updated write data: The stored procedure in write_data now has a gap tolerance so when you write you can specify a gap tolerance for the intervals. This will merge the intervals with older intervals based on your gap tolerance.
  • Scale factor application upgrade: The scale factor application when getting data was moved to the C code speeding up decompression time. This means the old libTSC.dll and libTSC.so files will no longer work so if you manually compiled them you will have to do it again. If installing from wheel file the new files are already included.

Fixed

  • Addressed a bug in insert_labels function causing failures with NULL label_source in MariaDB, by adjusting SQL query construction.
  • Centralized some identical SQL functions/queries in SQLHandler, reducing redundancy between MariaDBHandler and SqliteHandler.
  • Optimized time unit conversion methods by using a globally defined time units dictionary for all relevant conversions.
  • Addressed bug with the measure/device cache being accessed before its creation.

Removed

  • REST calls serviced remote get_data commands, replaced with Websockets.
  • Removed atriumdb import command, since atriumdb export does the same thing with a different argument order.
  • Removed unnecessary short private helper methods by integrating their logic directly into the calling methods.