- Moves to pydantic v2, releases pydantic 1.8.2 pin. See #54
- Rewrites caching:
- Trolley no longer caches results by default, cleans up Trolley.
- Completely rewrites CachedSearcher to implement Searcher interface
- Caching is now optional by wrapping any searcher instance
- Caching is now time-based and done per DICOM object
- Adds query caching (previously only get_study_for_id)
- Makes reasoning about DICOM levels (study/series/instance) easier:
- Adds numeric value and comparison to DICOMObjectLevels
- Introduces DICOMObject.contained_references()
- Merges to_series_level_refs, to_instance_refs into to_refs(level)
- Fixes bug where StudyInstanceUID-only QIDO-RS HierarchicalQuery would remove UID from query
- Fixes bug where Series-level QIDO-RS RelationalQuery returns Study-level result
- Fixes build error in 3.0.3 github actions. No code changes
- Handles QIDO-RS http 204 (No Content) by returning expected empty result. Fixes #47
- pydicom dataset.save_as ValueErrors are now changed to StorageErrors. Fixes #45
- Fixes build and documentation errors
- Adds WADO-RS and QIDO-RS support
- Reworks download mechanics. Fascilitates direct download when you know the ids by introducing DICOMObjectReference. This base for Series-, Study- and SOPInstanceReference can be downloaded directly
- Introduces CachedSearcher to avoid unneeded queries
- Simplifies and clears up trolley download methods by upgrading DICOMDownloadable to base class
- Simplifies automatic querying for missing ids. Downloader instances can now raise Exceptions for insufficient download info (missing instance, series ids)
- Simplifies Query class structure. Removes BasicQuery class in favour of Query+Exception for unconvertible query parameters
- Updates docs: Moves from single github readme to separate readthedocs build
- All code examples in docs and /examples are now tested
- Main branch is now called main. Removes branch master.
- DICOM-QR queries now use Study Root (QR class 1.2.840.10008.5.1.4.1.2.2.1) instead of Patient Root to simplify study-level queries. (#38)
- Improves logging for queries and storage
- Adds SeriesInstanceUID to Query object
- Add option to ignore certain download errors for robust download (#32)
- Adds logging
- Fixes small-chunk performance issue(#28)
- Improves rad69 download stream processing
- Splits rad69 requests by series by default. This reduces server load
- Makes session timeout exceptions more informative for better debugging
- Now re-raises underlying urllib3.exceptions.ProtocolError to dicom trolley exception
- Rebrands some requests server exceptions to dicom trolley exceptions for easier handling
- Adds VitreaAuth based on requests AuthBase for easier login and session timeout recovery
- Fixes capitalization error in rad69 template
- Works around exponential resource usage in pydantic 0.9 by pinning to 0.8
- Introduces unified Query object that can be used for any backend. Changes parameter naming and capitalisation for many queries so major version.
- Introduces alternate disk storages for Trolley
- Adds FlatStorageDir class as alternate storage
- Adds test coverage configuration with .coveragerc
- Adds jpeg lossless transfer syntax (1.2.840.10008.1.2.4.70) to rad-69 requests
- Improves rad69 downloading. Can now handle chunked rad69 soap response stream with low memory use
- Adds Rad69 as download method
- Replaces 'wado' argument to Trolley with abstract downloader. Abstract 'Downloader' class is implemented by both Wado and Rad69
- Adds PatientID to DICOM query parameters
- Makes it possible to download series and studies without instance information. Trolley will fire additional queries in the background to find missing instance info. This makes it much easier to select from a study or series level query and download only selected without having to manually re-query at the image level
- Adds additional search fields to DICOMQuery widening DICOM-QR search scope
- Renames base exception DICOMTrolleyException to pep8 complient DICOMTrolleyError
- Fix typo
- Correct usage of dataclass
- DICOM-QR fix
- Adds WADO-only examples
- Improves readme
- Adds DICOM-QR search
- Changes to Trolley method signatures
- Added multi-threaded WADO downloads
- Changes to Trolley method signatures
- Added examples
- Improved readme
- Fixed bugs (date format for queries and wado download function)
- Added MINT
- Added WADO
- Added main trolley functions
- Initial version