MedDream Viewer Communication API

Version 1.0.7 (2022-03-14)

Add component to your project

Import and create new Viewer Communication component in your project:

const viewerCommunication = new ViewerCommunication(targetURL, integration);

Parameters:

Window reference functions

Get available Viewer window reference

const windowReference = viewerCommunication.getWindowReference();

Focus available window

viewerCommunication.focusWindow();

Post action message to MedDream Viewer

viewerCommunication.postActionMessage(actionType, actionData);

Parameters:

For more details about available action messages check: MedDream communication documentation.

Functions to open MedDream Viewer

Open studies in MedDream Viewer window

viewerCommunication.openInMedDreamWindow(studies/token);

Parameters:

Add studies to MedDream Viewer window

viewerCommunication.addToMedDreamWindow(studies/token);

Parameters:

Replace studies in MedDream Viewer window

viewerCommunication.replaceInMedDreamWindow(studies/token);

Parameters:

Open MedDream with studies to iframe

viewerCommunication.openMedDreamToIframe(iframeId, studies/token);

Parameters:

Communication functions

Functions only for Study integration

Open study

viewerCommunication.openStudy(study);

Parameter:

Open studies

viewerCommunication.openStudies(studies);

Parameter:

Replace studies

viewerCommunication.replaceStudies(studies);

Parameter:

Preload studies

viewerCommunication.preloadStudies(studies);

Parameter:

Cache studies

viewerCommunication.cacheStudies(studies);

Parameter:

Array example:

const studies = [
    {
        studyUid: 'study-uid-1',
        storageId: 'storage-id'
    },
    {
        studyUid: 'study-uid-2',
        storageId: 'storage-id'
    }
];

Close studies

viewerCommunication.closeStudies(studies);

Parameter:

Array example:

const studies = [
    {
        studyUid: 'study-uid-1',
        storageId: 'storage-id'
    }
];

Functions only for Token integration

Open studies

viewerCommunication.openStudies(token);

Parameter:

Replace studies

viewerCommunication.replaceStudies(token);

Parameter:

Preload studies

viewerCommunication.preloadStudies(token);

Parameter:

Cache studies

viewerCommunication.cacheStudies(token);

Parameter:

Close studies

viewerCommunication.closeStudies(token);

Parameter:

Common functions

Cache all studies

viewerCommunication.cacheAllStudies();

Close all studies

viewerCommunication.closeAllStudies();

Set layout

viewerCommunication.setLayout(columns, rows);

Parameters:

Open instance

viewerCommunication.openInstance(instanceUid, viewportColumn, viewportRow, viewportActions);

Parameters:

Available viewport actions:

Viewport actions object example:

const viewportActions = {
    windowing: 'CUSTOM',                    //DEFAULT, AUTO, CUSTOM
    customWindowing: {width: 2, center: 2}, //Use if custom windowing
    rotation: 45,
    verticalFlip: true,
    horizontalFlip: true,
    scale: 'CUSTOM',                        //ORIGINAL, FIT_TO_SCREEN, CUSTOM
    customScale: 0.5,                       //Use if custom scale
    alignment: 'CENTER'                     //RIGHT, LEFT, CENTER
};

Export instance

viewerCommunication.exportInstance(viewportColumn, viewportRow);

Parameters:

Currently active viewport instance is exported, if viewportColumn and viewportRow are not provided.

Update segmentation tool permissions

viewerCommunication.updateSegmentationToolPermissions(permissions);

Parameter:

Available segmentation permissions:

Usage example:

const permissions = {
    boundingBoxView: true,
    boundingBox2dEdit: true,
    boundingBox3dEdit: true,
    boundingBoxInfo: false,
    freeDrawView: true,
    freeDrawEdit: true,
    freeDrawInfo: false,
    smartPaintView: true,
    smartPaint2dEdit: true,
    smartPaint3dEdit: true,
    smartPaintInfo: false
};
viewerCommunication.updateSegmentationToolPermissions(permissions);

Get opened studies

const callback = (studies) => console.log(studies);
viewerCommunication.subscribeGetOpenedStudiesEvent(callback);
viewerCommunication.getOpenedStudies();

Usage:

Get snapshot

const callback = (snapshot) => console.log(snapshot);
viewerCommunication.subscribeGetSnapshotEvent(callback);
viewerCommunication.getSnapshot();

Usage:

Set snapshot

viewerCommunication.setSnapshot(layoutSnapshot);

Parameter:

Events

Subscribe communication service ready event

const callback = (annotations) => console.log(annotations);
viewerCommunication.subscribeCommunicationServiceReadyEvent(callback);

Parameter:

Unsubscribe communication service ready event

viewerCommunication.unsubscribeCommunicationServiceReadyEvent();

Subscribe get opened studies event

const callback = (studies) => console.log(studies);
viewerCommunication.subscribeGetOpenedStudiesEvent(callback);

Parameter:

Unsubscribe get opened studies event

viewerCommunication.unsubscribeGetOpenedStudiesEvent();

Subscribe get snapshot event

const callback = (snapshot) => console.log(snapshot);
viewerCommunication.subscribeGetSnapshotEvent(callback);

Parameter:

Unsubscribe get snapshot event

viewerCommunication.unsubscribeGetSnapshotEvent();

Subscribe annotations saved event

const callback = (annotations) => console.log(annotations);
viewerCommunication.subscribeAnnotationsSavedEvent(callback);

Parameter:

Unsubscribe annotations saved event

viewerCommunication.unsubscribeAnnotationsSavedEvent();

Change log

1.0.7 (2022-03-14)

Changes

1.0.6 (2021-12-15)

Changes

1.0.4 (2021-11-11)

Breaking changes

1.0.3 (2021-09-28)

Changes

Breaking changes

1.0.2 (2021-09-22)

Changes

Breaking changes