Skip to main content

gRPC interface for interacting with OsiriX

Project description

OsiriXgrpc

Welcome to OsiriXgrpc!

Powered By gRPC GitHub License PyPI - Downloads Static Badge Static Badge

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

osirixgrpc-0.2.1b5.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

osirixgrpc-0.2.1b5-py3-none-any.whl (36.2 kB view details)

Uploaded Python 3

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

Hashes for osirixgrpc-0.2.1b5.tar.gz
Algorithm Hash digest
SHA256 076a23d2cd0b86779bcfc1e6c2853d09635111c915bb20dc0c3cd38ed337d779
MD5 d737dd239d0ddb092b1f75c0933ee0d0
BLAKE2b-256 fd426a9f9ebc9a8e658fd9a1bd066f6dd0f5f490abe6292911e1230622f45fd3

See more details on using hashes here.

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

Hashes for osirixgrpc-0.2.1b5-py3-none-any.whl
Algorithm Hash digest
SHA256 b323f0e3e566684869fde23be9c8bc76a626956ea7b3031d1d8bc8aa463a6dff
MD5 06eac96b8562f5ae1987dc3503f5b1f9
BLAKE2b-256 9ca5a42d3e5f57c5a35945523e264725063dda8421791eacac21a675ffed75c3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page