Proxy serwer that manages models and uses dicom servers to prepare inference requests.
Generate local certificate before start Use this guide
docker compose up
path:
./servers.json
Keeps all definitions of available pacs servers. It has to be a valid dicomweb server. Each sever has to use uuidv4 which will be used to access it. You can generate such an uuid from online generator.
{
[{uuidv4}]: {
"uri": string ("https://valid.server.uri/to/dicomweb"),
"isDefault": boolean (default false),
"statusUri": string ("https://valid.server.uri/to/status/page"),
"authType": string ("" | "basicAuth"),
"login": string,
"password": string,
}
}
uri
- URI of dicomweb serverstatusUri
- URI to send request to when status check is needed (has to response with200
code)isDefault
- boolean which indicates the default server used when request doesn't specify theuuidv4
value. One server should have this set totrue
.statusUri
- (optional)URI to status page. This can be any page accessible through GET request that returns stats 200 if server is working correctly. If you don't have any specific page, you can just point to list of studies:https://valid.server.uri/to/dicomweb/studies
.authType
- Authentication method (""
|"basicAuth"
)login
- (optional) Login to use whenauthType
is setpassword
- (optional) Password to use whenauthType
is set
path: ./models.json
Stores all definitions of inference models. Each model might be available for different type of task. Each model has to use uuidv4 which will be used to access it. You can generate such an uuid from online generator.
{
[{uuidv4}]: {
"uri": string ("https://valid.model.uri/to/inference"),
"task": string ("segmentation" | "annotation" | "prediction"),
"supports": Array<string> (list of supported paths, eg. ["/studies/series"]),
"statusUri": (optional) string ("https://valid.model.uri/to/status/page"),
"dataFilter": (optional) Record(DataFilters)
}
}
uri
- URI of the inference model API (eg.http://localhost:8011/predict
)task
- Task which model performs (one ofsegmentation
|annotation
|prediction
)supports
- List of available paths that model supports:
/studies
/studies/series
/studies/series/instances
statusUri
- URI to status page. This can be any page accessible through GET request that returns stats 200 if model is working correctly.dataFilter
- (optional) List of DataFilters. Used to filter incoming data.
After defining your models and servers you can check if all of them are available through proxy. This is possible by accessing https://localhost:8002/status
page. This page is only visible when your docker-compose.yml
configuration has ZHIVA_SHOW_STATUS_PAGE
variable set to true
:
environment:
- ZHIVA_SHOW_STATUS_PAGE=true