Education plugin: added a way to force open-slide for the dicomization
- Added components for the education plugin.
- new optional
pool_maxsizeargument when creating anOrthancApiClient. By default, the value is10which can create a bottleneck when e.g. 20 worker threads are using the same client.
- Added
TestImageContentingenerate_test_dicom_file.
- Added support for metrics. For example:
orthanc.get_metrics().get('orthanc_available_dicom_threads')
- Added support for
Worklistsplugin - BREAKING CHANGES:
HttpErrorno longer have adimse_error_statusfield in case of DICOM related errors (it was actually not functional !). It is now replaced by anerror_payloadfield.JobInfono longer has adimseErrorStatusfield (it was actually not functional !)
- Added support for
OTmodality inhelpers.generate_test_dicom_file
- Added
dicomweb_servers.retrieve_study,retrieve_seriesandretrieve_instance
- Added
requested_tagsforfindmethod onstudies
HttpErrormight now have adimse_error_statusfield in case of DICOM related errors
- Added
Modalities.get_async()&Modalities.move_async()
- Added
Instance.get_metadata() - Added
Study.get_instances()that also retrieves the metadata in a single API call - fix
Instances.has_metadata
- Added
is_stableproperty forstudy. - Still in
study, modifiedlast_updateproperty to reflect current value.
- fix in
get_preview_filemethod.
- enhanced
Studies.findto allow sorting and pagination.
- New
endpointargument toupload_files_dicom_webmethod. - #7: fix wrong exception handling
- Added
labelsproperty inPatient,Study,SeriesandInstance.
- Fixed the
get_preview_filemethod in case of unsupported image.
- Added the
get_preview_filemethod.
- Fixed a bug in
get_preview_urlmethod.
- Added
OrthancApiClient.modalities.get_study,get_series,get_instanceto retrieve resources with C-GET.
- Added
OrthancApiClient.instances.anonymize_bulkandOrthancApiClient.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_findo.Capabilities.has_extended_changeso.Capabilities.has_label_supporto.Capabilities.has_revision_support
- Fixed an incompatibility with pydicom 3.0.0
- Added an option to
upload_folder_return_detailsmethod to unzip files (if any) before upload
- Fix
to_dicom_timemethod in Helpers - Added
to_dicom_time_from_secondsmethod in Helpers
- The
OrthancApiClientnow implements 3 retries in case of:- ConnectionError
- 502 Bad Gateway
- 503 Service Unavailable
- added
permissiveargument toOrthancApiClient.resources.modify_bulk
- BREAKING CHANGE:
OrthancApiClient.instances.modify_bulknow returns a tuple withmodified_instances_ids, modifies_series_ids, modified_studies_ids, modifies_patients_ids - BREAKING CHANGE:
modify_instance_by_instancehas been removed since recent Orthanc versions allow usingforce=Trueandkeep_tagscan preserve DICOM identifiers
- Fix #4: re-allow
endpointargument 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_detailsmethod inOrthancApiClient - added
__repr__toOrthancApiClientfor nice display in debugger.
- added functions to check the Orthanc and plugin versions:
helpers.is_version_at_least,OrthancApiClient.is_orthanc_version_at_leastOrthancApiClient.is_plugin_version_at_least,OrthancApiClient.has_loaded_plugin.
- added
helpers.from_dicom_date_and_timeandhelpers.from_dicom_time
- added a
RemoteJobclass that can be created when aPULL_TRANSFERis created
- added
get_statistics()inOrthancApiClient
ignore_errorsinuploadmethods now ignoring 409 errors (conflict)
- added
get_log_levelandset_log_levelinOrthancApiClient
- added
execute_lua_scriptinOrthancApiClient
- introduced
patients
- BREAKING CHANGE:
DicomModalities.send_asyncwas actually not asynchronous and now returns a job.
- added
local_aetarg forDicomModalities.sendandDicomModalities.send_async
- added
Study.last_update
- added
headersarg to theOrthancApiClientconstructor
- 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_modalitiesandStudies.get_first_instance_tags()
Modalities.sendandModalities.store:timeoutis now a float argument (more pythonic)
- added
keep_tagsargument tomodify()
- added
get_labels,add_label,add_labels,delete_label,delete_labelsat all resources levels - added
OrthancApiClient.get_all_labelsto return all labels in Orthanc - added
labelsandlabel_constraintarguments tostudies.find
Modalities.sendandModalities.store:- BREAKING CHANGE: removed
synchronousargument: it is always synchronous - added an optional
timeoutargument
- BREAKING CHANGE: removed
InstancesSetids are reproducible (based on a hash of their initial content)- more detailed HttpError
- fix
Series.statisticsandStudy.statistics - uniformized logger names to
__name__
- added
Modalities.configure,Modalities.deleteandModalities.get_configuration
- fix
InstancesSet.filter_instances
- fix metadata default value
- added
keep_tagstoInstances.modify
- added
InstancesSet.id InstancesSet.api_clientis now public
- BREAKING CHANGE: renamed
dicomweb_servers.send_asynchronousintodicomweb_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_metadataintoset_string_metadata&set_binary_metadata - BREAKING CHANGE: renamed
get_metadataintoget_string_metadata&get_binary_metadata - added
InstancesSet.filter_instances()&InstancesSet.process_instances()
- introduced
InstancesSetclass
- BREAKING CHANGE: renamed
download_studyanddownload_seriesintodownload_instances - introduced
Series,SeriesInfo,InstanceandInstanceInfoclasses
- 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_rsmethod from theDicomWebServersclass
- fixed absolute url in
uploadmethods.
- BREAKING CHANGE: renamed the
modalityargument ofclient.modalities.send()andclient.modalities.store()intotarget_modalityto be more consistent withsend()methods.
- added `job.wait_completed()'
- added `client.peers.send()'
- BREAKING CHANGE: renamed
client.upload_file_dicom_webintoclient.upload_files_dicom_weband 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_urlarg intoendpointforget, put, post, get_json, ... - added
retry, cancel, pause, ...tojobs
- added
ignore_errorstodeletemethods
- BREAKING_CHANGE: renamed
dicom_servers.sendintodicom_servers.send_asynchronous - added Job, JobType, JobStatus, JobInfo classes
- new resource
jobsin api_client:orthanc.jobs.get(orthanc_id=...)