gRPC interface for interacting with OsiriX
Project description
OsiriXgrpc
Welcome to OsiriXgrpc, a research plugin for the popular OsiriX medical image viewing platform for macOS. It leverages the gRPC architecture to provide fast communication between OsiriX (the server) and custom-built software or scripts running on a different local process (the client). This enables fast development of additional OsiriX functionality, including the adoption of state-of-the-art libraries for image processing and artificial intelligence. Currently, Python is the only in-built supported language, though adoption of other languages can be easily achieved.
!!! note "Using osirixgrpc versus pyosirix" It can be much simpler to interact with OsiriXgrpc using the more pythonic pyOsiriX glue code. See the dedicated documentation for further information.
Installation
For instructions on how to install and set up the plugin, please see the getting started page.
Any suggestions?
We are always happy to receive suggestions for future versions of the plugin, or just to hear about what is or isn't working. We would appreciate if this is done by raising an issue. Please see more information in our contributing section.
Any questions?
We are happy to answer any questions on the use of osirixgrpc, but please do so by raising an issue so that others can benefit from the answer. Please ensure that you use the relevant issue template so that we get all the information we need!
Future Ambitions
We are always looking to improve things. We have a few suggestions in our roadmap, and would be happy to hear your
thoughts - please let us know using a feature request
issue
template.
- Support for other scripting languages including Java and Ruby.
- Improve security through SSL/TCL encryption.
Examples
Establishing a connection with grpc
import grpc
import osirix_pb2_grpc
port = 12345 # Must match activated port in OsiriX plugin
server_url_localhost = 'localhost:' + str(port)
channel_opt = [('grpc.max_send_message_length', 512 * 1024 * 1024), ('grpc.max_receive_message_length', 512 * 1024 * 1024)]
channel = grpc.insecure_channel(server_url_localhost, options=channel_opt)
stub = osirix_pb2_grpc.OsiriXServiceStub(channel)
Obtain a copy of the current browser
import utilities_pb2
request = utilities_pb2.Empty() # For functions with no input, use an empty request
response = stub.OsirixCurrentBrowser(request)
if response.status.status == 0:
raise Exception("Could not get browser. Reason: %s" % response.status.message)
browser_controller = response.browser_controller
Get the current database selection within the browser controller
import browsercontroller_pb2
response = stub.BrowserControllerDatabaseSelection(browser_controller)
series = response.series
studies = response.studies
Obtain the names of the selected studies
import dicomstudy_pb2
for dicom_study in studies:
response = stub.DicomStudyName(dicom_study)
print("Study name: ", response.name)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file osirixgrpc-0.2.1b5.tar.gz
.
File metadata
- Download URL: osirixgrpc-0.2.1b5.tar.gz
- Upload date:
- Size: 27.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 076a23d2cd0b86779bcfc1e6c2853d09635111c915bb20dc0c3cd38ed337d779 |
|
MD5 | d737dd239d0ddb092b1f75c0933ee0d0 |
|
BLAKE2b-256 | fd426a9f9ebc9a8e658fd9a1bd066f6dd0f5f490abe6292911e1230622f45fd3 |
File details
Details for the file osirixgrpc-0.2.1b5-py3-none-any.whl
.
File metadata
- Download URL: osirixgrpc-0.2.1b5-py3-none-any.whl
- Upload date:
- Size: 36.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b323f0e3e566684869fde23be9c8bc76a626956ea7b3031d1d8bc8aa463a6dff |
|
MD5 | 06eac96b8562f5ae1987dc3503f5b1f9 |
|
BLAKE2b-256 | 9ca5a42d3e5f57c5a35945523e264725063dda8421791eacac21a675ffed75c3 |