Skip to content

amspath/sectra-image-analysis-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Client for Sectra

This python package aims to facilite the development of AI applications for Sectra PACS.

Version

The library currently supports functionality up to do version 3.4 (Dec 2023). However, we will update to 5.0 in Juli, after which this library will be adjusted to the newest version as well.

Installation

To install sectra_client:

pip install sectra-image-analysis-api

Usage

Before using the client, make sure you have access to a valid authentication token, and url, sent in the analysis requests.

Example 1: Retrieve image information

from sectra_client import SectraClient

# Info, sent by Sectra in the request
callback_url = "http://sectraweb.*.*.*/SectraPathologyServer/external/imageanalysis/v1"
callback_token = "abcde"
slide_id = "fghij"

# Use the context manager
with SectraClient(
    url=callback_url,
    token=callback_token
) as client:
    # Returns the image info with extended and personal health information data
    image_info = client.get_image_metadata(slide_id, extended=True, phi=True)

Example 2: Download WSI

from sectra_client import SectraClient

# Info, sent by Sectra in the request
...

# Use the context manager
with SectraClient(
    url=callback_url,
    token=callback_token
) as client:
    # Download the file(s) to an output directory, and returns the file paths of the file(s). 
    file_paths = client.download_slide_files(slide_id, output_dir="./path/to/output/dir/")

Example 3: Without context manager

It is also possible to use the SectraClient without the context manager

from sectra_client import SectraClient

# Info, sent by Setra in the request
...

# Open context manager
client = SectraClient(url=callback_url, token=callback_token)

# Perform API interactions
image_info = client.get_image_metadata(slide_id, extended=True, phi=False)

# Make sure to close the connection
client.close()

Local development with the mock server

MockSectraServer simulates a Sectra PACS instance in memory so you can develop and test without a real server.

from sectra_client.mock_server import MockSectraServer

server = MockSectraServer(token="dev-token")
with server.run(port=8001):
    server.trigger(
        webhook_url="http://localhost:8000/sectra/hook",
        application_id="my-app",
        slide_id="slide-001",
    )
    results = server.get_results(app_id="my-app", slide_id="slide-001")

See examples/local_dev.py for a complete round-trip: both servers started from a single script, a fake invocation fired, and results read back.

About

A python-based client that implements the Sectra Image Analysis API.

Resources

License

Stars

Watchers

Forks

Contributors

Languages