Best environment to improve orthanc server using osmis/orthanc

Hi, i tried to play around with osmis/orthanc environment. My aim is to get the best performance for orthanc which also improve the dicomweb performance (i’m using OHIF viewer). i’m dealing with angiography study which is usually very large study which can reach 3GB for 1 study. This require high performace dicom server to enable us to view the study smoothly. Below are my environment for my orthanc/osmis container. Am i doing the right thing? Any other way to improve this?

Thank you in advance

postgres:

container_name: postgres

image: postgres:13.1

environment:

POSTGRES_DB : “post”

POSTGRES_HOST_AUTH_METHOD: “trust”

PG_STORAGE_ENABLED: “false”

PG_INDEX_ENABLED: “true”

volumes:

  • ./postgress2:/var/lib/postgresql/data

restart: unless-stopped

orthanc:

image: osimis/orthanc:21.8.1

container_name: orthanc

restart: unless-stopped

ports: [“8092:8042”, “4290:4242”]

volumes: [“./orthanc2:/var/lib/orthanc/db:Z”]

environment:

ORTHANC__NAME: “ort”

ORTHANC__DICOM_SERVER_ENABLED: “true”

ORTHANC__DICOM_MODALITIES_IN_DATABASE: “true”

ORTHANC__ORTHANC_PEERS_IN_DATABASE: “true”

DICOM_WEB_PLUGIN_ENABLED: “true”

OSIMIS_WEB_VIEWER1_PLUGIN_ENABLED: “true”

PYTHON_PLUGIN_ENABLED: “true”

TRANSFERS_PLUGIN_ENABLED: “true”

WORKLISTS_PLUGIN_ENABLED: “true”

AUTHORIZATION_PLUGIN_ENABLE: “false”

ORTHANC__AUTHENTICATION_ENABLE: “false”

ORTHANC__REGISTERED_USERS: |

{“ort”: “ort”}

ORTHANC__DICOM_WEB__ENABLE: “true”

ORTHANC__DICOM_WEB__ROOT: “/dicom-web/”

ORTHANC__DICOM_WEB__ENABLEWADO: “true”

ORTHANC__DICOM_WEB__WADOROOT: “/wado”

ORTHANC__DICOM_WEB__SSL: “true”

ORTHANC__DICOM_WEB__STUDIESMETADATA: “MainDicomTags”

ORTHANC__DICOM_WEB__SERIESMETADATA: “Full”

DICOM_AET: “ort”

ORTHANC__DICOM_CHECK_MODALITY_HOST: “false”

ORTHANC__DICOM_CHECK_CALLED_AET: “false”

ORTHANC__DICOM_ALWAYS_ALLOW_GET: “true”

ORTHANC__DICOM_ALWAYS_ALLOW_MOVE: “true”

ORTHANC__DICOM_ALWAYS_ALLOW_FIND: “true”

STONE_WEB_VIEWER_PLUGIN_ENABLED: “true”

ORTHANC__DICOM_CHECK_MODALITY_HOST: “false”

ORTHANC__DICOM_CHECK_CALLED_AET: “true”

TRANSFERS_PLUGIN_ENABLED: “true”

ORTHANC__AUTHENTICATION_ENABLED: “false”

ORTHANC__DICOM_SCU_TIMEOUT: 0

ORTHANC__DICOM_QUERY_RETRIEVE_SIZE: 0

ORTHANC__DICOM_SCP_TIMEOUT: 0

ORTHANC__DICOM_UNKNOWN_SOP_CLASS_ACCEPTED: “true”

ORTHANC__DICOM_SYNCHRONOUS_CMOVE: “true”

ORTHANC__DICOM_WEB__STOW_MAX_SIZE: “100”

ORTHANC__DICOM_WEB__STOW_MAX_INSTANCES: “100”

HTTP_REQUEST_TIMEOUT: “1000”

HTTP_CL_TIMEOUT: “1000”

HTTP_COMPRESSION_ENABLED: “True”

STABLE_AGE: “1000”

TRANSFERS_RETRIES: “5”

TRANSFERS_MAX_PUSH_TRANSACTIONS: “1000”

TRANSFERS_ENABLED: “true”

TRANSFERS_MAX_PUSH_TRANSACTIONS: “1000”

TRANSFERS_CACHE_SIZE: “500”

TRANSFERS_BUCKET_SIZE: “800”

TRANSFERS_THREADS: “1000”

WSI_ENABLED: “true”

WSIX_ENABLED: “true”

HTTP_TCP_NODELAY: “true”

HAS_WADO_RS_UNIVERSAL_TRANSFER_SYNTAX: “true”

CHUNKED_TRANSFER: “true”

DW_SERVERS_IN_DATABASE: “true”

MALLOC_MMAP_THRESHOLD_: 10

STORAGE_MAX_SIZE: “0”

STORAGE_MAX_PATIENTS: “0”

STORAGE_COMPRESSION: “true”

INGEST_TRANSCODING_OF_COMPRESSED: “true”

INGEST_TRANSCODING_OF_DECOMPRESSED: “false”

TRANSCODE_DICOM_PROTOCOL: “false”

AlLOW_TRANSCODING: “false”

UNKNOWN_SOP_CLASS_ACCEPTED: “true”

ORTHANC__HTTP_TCP_NODELAY: “true”

Hello,

The Orthanc Book contains information about how to configure Orthanc for best scalability:
https://book.orthanc-server.com/faq/scalability.html

The way these options are mapped to environment variables in the “osimis/orthanc” images is also explained:
https://book.orthanc-server.com/users/docker-osimis.html

Sébastien-