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.1b4.tar.gz (27.2 kB view details)

Uploaded Source

Built Distribution

osirixgrpc-0.2.1b4-py3-none-any.whl (35.2 kB view details)

Uploaded Python 3

File details

Details for the file osirixgrpc-0.2.1b4.tar.gz.

File metadata

  • Download URL: osirixgrpc-0.2.1b4.tar.gz
  • Upload date:
  • Size: 27.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for osirixgrpc-0.2.1b4.tar.gz
Algorithm Hash digest
SHA256 e48e4a0a106880e06ed1fb677fed2292551a4b9e9450187cf896852a8e92484d
MD5 1944bc0d9f42cd2b9a28b71953a2c8c0
BLAKE2b-256 3e59984966d92f9dec46418735d3c73fa78b4d65796192ba75741998ac169ed5

See more details on using hashes here.

File details

Details for the file osirixgrpc-0.2.1b4-py3-none-any.whl.

File metadata

  • Download URL: osirixgrpc-0.2.1b4-py3-none-any.whl
  • Upload date:
  • Size: 35.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for osirixgrpc-0.2.1b4-py3-none-any.whl
Algorithm Hash digest
SHA256 2eb151a4bcdb6c677dc5f175aee9651e92a2efefc70bc7fa65d1884e21d73e26
MD5 693cada9026cf8df6cec37629f298399
BLAKE2b-256 504ca71d5e72df849359df0de03ae9262016b9d4974a6b30733cc46f20cc3611

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