crate doc test codecov license

orthanc-rs

orthanc-rs is a client for the REST API of Orthanc, an open-source, lightweight DICOM server.

Compatibility

Supported Orthanc versions are 1.6.x, 1.7.x, 1.8.x.

Installation

To use the crate, add the dependency to your Cargo.toml:

ini [dependencies] orthanc = "0.6.0"

Usage

Create an API client instance:

rust use orthanc::Client; let client = Client::new("http://localhost:8042".to_string());

If authentication is enabled on the Orthanc instance:

rust client.auth("username".to_string(), "password".to_string());

List patients:

rust client.patients();

Or in an expanded format:

rust client.patients_expanded();

Get all DICOM tags of an instance:

rust let instance_id = "0b62ebce-8ab7b938-e5ca1b05-04802ab3-42ee4307"; let tags = client.instance_tags(instance_id); println!("{}", tags["PatientID"]);

Download a study:

rust let study_id = "9357491d-427a6c94-4080b6c8-1997f4aa-af658240"; let mut file = fs::File::create("/tmp/study.zip").unwrap(); client.study_dicom(study_id, &mut file).unwrap();

Even though the operation is not very efficient, Orthanc allows uploading DICOM files over REST API:

rust let data = fs::read("/tmp/instance.dcm").unwrap(); client.upload(&data).unwrap();

See tests directory for more usage examples.

Tests

orthanc-rs is covered by unit as well as integration tests.

Unit

To run unit tests execute

$ make unit_test

Integration

Install docker-compose and jq and execute

$ make start_services && make integration_test

This will spin up all the necessary services required for integration tests, and run the tests.

During and after the test run Orthanc web UI is available at http://localhost:8028 (username: orthanc, password: orthanc).

Containers started by start_services are left running after the test is finished. To stop them execute

$ make stop_services

TODO