Proxy serwer that manages models and uses dicom servers to prepare inference requests.
Generate local certificate before start Use this guide
docker compose uppath:
./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 with200code)isDefault- boolean which indicates the default server used when request doesn't specify theuuidv4value. 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 whenauthTypeis setpassword- (optional) Password to use whenauthTypeis 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/instancesstatusUri- 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