Skip to content

Browser Controller

BrowserController is a class representing the database window of OsiriX. It provides some functionality for accessing user study/series selection, and a tool for data import.

Type

All types only contain a single parameter, the UUID of the underlying OsiriX object.

types.proto (lines 5-7)
message BrowserController{
    string osirixrpc_uid = 1;
}

Methods

By convention, any method defined with syntax

rpc BrowserControllerXyz (BrowserControllerXyzRequest) returns (BrowserControllerXyzResponse) {}
is called in Python (for example) using syntax
response = osirix_stub.BrowserControllerXyz(request) # (1)

  1. response is a BrowserControllerXyzResponse class, and request a BrowserControllerXyzRequest class.
osirix.proto (lines 128-131)
rpc BrowserControllerDatabaseSelection (BrowserController) returns (BrowserControllerDatabaseSelectionResponse) {}
rpc BrowserControllerCopyFilesIfNeeded (BrowserControllerCopyFilesIfNeededRequest) returns (Response) {}
rpc BrowserControllerOpenViewerFromImages (BrowserControllerOpenViewerFromImagesRequest) returns (BrowserControllerOpenViewerFromImagesResponse) {}
rpc BrowserControllerDatabaseStudies (BrowserController) returns (BrowserControllerDatabaseStudiesResponse) {}

Responses

By convention, any response defined with syntax

message BrowserControllerXyzResponse{
    type_1 arg_1 = 1;
    type_2 arg_2 = 2; // (1)
    ...
}

  1. The numbers on the RHS should be ignored. They are necessary only for protobuf file definitions.

has attributes accessed in Python (for example) using syntax

x1 = response.arg1
x2 = response.arg2
...

browsercontroller.proto (lines 9-23)
message BrowserControllerDatabaseSelectionResponse{
    Status status = 1;
    repeated DicomSeries series = 2;
    repeated DicomStudy studies = 3;
}

message BrowserControllerOpenViewerFromImagesResponse{
    Status status = 1;
    ViewerController viewer = 2;
}

message BrowserControllerDatabaseStudiesResponse{
    Status status = 1;
    repeated DicomStudy studies = 2;
}

Requests

By convention, any request defined with syntax

message BrowserControllerXyzRequest{
    type_1 arg_1 = 1;
    type_2 arg_2 = 2; // (1)
    ...
}

  1. The numbers on the RHS should be ignored. They are necessary only for protobuf file definitions.

is created in Python (for example) using syntax

from osirixgrpc import browsercontroller_pb2

request = browsercontroller_pb2.BrowserControllerXyzRequest(arg1 = x1, arg2 = x2, ...)

browsercontroller.proto (lines 26-)
message BrowserControllerCopyFilesIfNeededRequest{
    BrowserController browser = 1;
    repeated string paths = 2;
}

message BrowserControllerOpenViewerFromImagesRequest{
    message FrameImages{
        repeated DicomImage images = 1;
    }
    BrowserController browser = 1;
    repeated FrameImages frames = 2;
    bool movie = 3;
}