- Added
OrthancApiClient.modalities.get_study
,get_series
,get_instance
to retrieve resources with C-GET.
- Added
OrthancApiClient.instances.anonymize_bulk
andOrthancApiClient.instances.anonymize_bulk_async
- Avoid pydicom warning when generating test files
o.is_orthanc_version_at_least()
ando.is_plugin_version_at_least()
now support "mainline-commitId" patterns
- Added
capabilities
:o.Capabilities.has_extended_find
o.Capabilities.has_extended_changes
o.Capabilities.has_label_support
o.Capabilities.has_revision_support
- Fixed an incompatibility with pydicom 3.0.0
- Added an option to
upload_folder_return_details
method to unzip files (if any) before upload
- Fix
to_dicom_time
method in Helpers - Added
to_dicom_time_from_seconds
method in Helpers
- The
OrthancApiClient
now implements 3 retries in case of:- ConnectionError
- 502 Bad Gateway
- 503 Service Unavailable
- added
permissive
argument toOrthancApiClient.resources.modify_bulk
- BREAKING CHANGE:
OrthancApiClient.instances.modify_bulk
now returns a tuple withmodified_instances_ids, modifies_series_ids, modified_studies_ids, modifies_patients_ids
- BREAKING CHANGE:
modify_instance_by_instance
has been removed since recent Orthanc versions allow usingforce=True
andkeep_tags
can preserve DICOM identifiers
- Fix #4: re-allow
endpoint
argument to start with a'/'
e.g. inget_json()
- fixed slash bug affecting several methods:
get_changes
,get_all_labels
,get_log_level
,set_log_level
- added
upload_folder_return_details
method inOrthancApiClient
- added
__repr__
toOrthancApiClient
for nice display in debugger.
- added functions to check the Orthanc and plugin versions:
helpers.is_version_at_least
,OrthancApiClient.is_orthanc_version_at_least
OrthancApiClient.is_plugin_version_at_least
,OrthancApiClient.has_loaded_plugin
.
- added
helpers.from_dicom_date_and_time
andhelpers.from_dicom_time
- added a
RemoteJob
class that can be created when aPULL_TRANSFER
is created
- added
get_statistics()
inOrthancApiClient
ignore_errors
inupload
methods now ignoring 409 errors (conflict)
- added
get_log_level
andset_log_level
inOrthancApiClient
- added
execute_lua_script
inOrthancApiClient
- introduced
patients
- BREAKING CHANGE:
DicomModalities.send_async
was actually not asynchronous and now returns a job.
- added
local_aet
arg forDicomModalities.send
andDicomModalities.send_async
- added
Study.last_update
- added
headers
arg to theOrthancApiClient
constructor
- added
Resources.download_media()
andResources.download_archive()
- added
InstancesSet.download_media()
andInstancesSet.download_archive()
- added
Modalities.get_all_ids()
- added
Modalities.get_id_from_aet()
- added
Study.info.patient_orthanc_id
- added
Resources.exists()
- added
Studies.get_modalities
andStudies.get_first_instance_tags()
Modalities.send
andModalities.store
:timeout
is now a float argument (more pythonic)
- added
keep_tags
argument tomodify()
- added
get_labels
,add_label
,add_labels
,delete_label
,delete_labels
at all resources levels - added
OrthancApiClient.get_all_labels
to return all labels in Orthanc - added
labels
andlabel_constraint
arguments tostudies.find
Modalities.send
andModalities.store
:- BREAKING CHANGE: removed
synchronous
argument: it is always synchronous - added an optional
timeout
argument
- BREAKING CHANGE: removed
InstancesSet
ids are reproducible (based on a hash of their initial content)- more detailed HttpError
- fix
Series.statistics
andStudy.statistics
- uniformized logger names to
__name__
- added
Modalities.configure
,Modalities.delete
andModalities.get_configuration
- fix
InstancesSet.filter_instances
- fix metadata default value
- added
keep_tags
toInstances.modify
- added
InstancesSet.id
InstancesSet.api_client
is now public
- BREAKING CHANGE: renamed
dicomweb_servers.send_asynchronous
intodicomweb_servers.send_async
- for every target (
peers, transfers, modalities, dicomweb_server
) we now have both:send()
that is synchronous- and
send_async()
that is asynchronous and returns the job that has been created
- added synchronous
dicomweb_servers.send()
- InstancesSet.filter_instances() now returns and instance set with the excluded instances
- BREAKING CHANGE: renamed
set_metadata
intoset_string_metadata
&set_binary_metadata
- BREAKING CHANGE: renamed
get_metadata
intoget_string_metadata
&get_binary_metadata
- added
InstancesSet.filter_instances()
&InstancesSet.process_instances()
- introduced
InstancesSet
class
- BREAKING CHANGE: renamed
download_study
anddownload_series
intodownload_instances
- introduced
Series
,SeriesInfo
,Instance
andInstanceInfo
classes
- added download methods for instances, series, studies
- added pdf (and png/jpg) import tools
- made HttpClient available for lib users
- BREAKING CHANGE: removed the
stow_rs
method from theDicomWebServers
class
- fixed absolute url in
upload
methods.
- BREAKING CHANGE: renamed the
modality
argument ofclient.modalities.send()
andclient.modalities.store()
intotarget_modality
to be more consistent withsend()
methods.
- added `job.wait_completed()'
- added `client.peers.send()'
- BREAKING CHANGE: renamed
client.upload_file_dicom_web
intoclient.upload_files_dicom_web
and added support for multiple files - any HTTP status between 200 and 300 is now considered as a success and won't raise exceptions anymore
- added
client.upload_file_dicom_web
- added
client.transfers.send
- fix relative url of various methods
- added
studies.merge
- BREAKING_CHANGE: renamed
relative_url
arg intoendpoint
forget, put, post, get_json, ...
- added
retry, cancel, pause, ...
tojobs
- added
ignore_errors
todelete
methods
- BREAKING_CHANGE: renamed
dicom_servers.send
intodicom_servers.send_asynchronous
- added Job, JobType, JobStatus, JobInfo classes
- new resource
jobs
in api_client:orthanc.jobs.get(orthanc_id=...)