ohif-viewer/platform/docs/versioned_docs/version-3.10/configuration/dataSources/static-files.md

101 lines
3.5 KiB
Markdown
Raw Normal View History

---
sidebar_position: 5
sidebar_label: Static Files
---
# Static DICOMweb Files for Enhanced Performance
This section describes how to generate and serve static DICOMweb files, significantly improving the performance of your OHIF Viewer setup. These files are pre-processed and compressed, minimizing storage space and reducing serving time to the bare minimum (disk read and HTTP stream write).
## Static-DICOMWeb Project
The core tool for this process is the `static-wado` project, available on GitHub:
[static-wado]: https://github.com/RadicalImaging/Static-DICOMWeb
This project contains two main components:
* **`static-wado-creator`:** Converts raw DICOM files into a DICOMweb-compliant directory structure, optimizing them for efficient serving.
* **`static-wado-webserver`:** A simple web server specifically designed to serve the generated static DICOMweb files.
## Prerequisites
- Node.js and npm (or yarn) installed on your system.
## Installation
1. **Clone the Repository:**
```bash
git clone https://github.com/RadicalImaging/Static-DICOMWeb
cd Static-DICOMWeb
```
2. **Install Dependencies:**
```bash
yarn install
```
## Generating Static DICOMweb Files
1. **Prepare your DICOM data:** Organize your DICOM files into a directory. For example `/Users/alireza/dicom/test-static-script/ACRIN-CT`.
2. **Convert to DICOMweb Structure:**
Use the `mkdicomweb.js` script from the `static-wado-creator` package to create the DICOMweb directory:
```bash
node packages/static-wado-creator/bin/mkdicomweb.js '/Users/alireza/dicom/test-static-script/ACRIN-CT' -o '/Users/alireza/dicom/test-static-script/output'
```
* **Replace:**
* `/Users/alireza/dicom/test-static-script/ACRIN-CT` with the path to your directory of DICOM files.
* `/Users/alireza/dicom/test-static-script/output` with your desired output directory for the DICOMweb structure.
This command will generate a directory structure similar to this in your output location:
![alt text](../../assets/img/static-dicom-web.png)
## Serving Static Files with the Web Server
1. **Start the Server:**
Run the `dicomwebserver.mjs` script from the `static-wado-webserver` package, specifying the port and the DICOMweb directory:
```bash
node packages/static-wado-webserver/bin/dicomwebserver.mjs -p 3001 -o /Users/alireza/dicom/test-static-script/output
```
* **`-p 3001`:** Sets the server to listen on port 3001. You can change this if needed.
* **`-o /Users/alireza/dicom/test-static-script/output`:** Specifies the path to your generated DICOMweb directory.
:::info
The `-p` (port) and `-o` (output directory) flags are used to configure the server.
:::
## Running OHIF Viewer with Static Data
1. **Use the `local_static.js` Configuration:**
Start the OHIF Viewer in development mode using the provided `local_static.js` configuration file:
```bash
yarn dev:static
```
2. **Configuration Details:**
The `local_static.js` configuration file is pre-configured to point to:
```js
qidoRoot: 'http://localhost:3001/dicomweb',
wadoRoot: 'http://localhost:3001/dicomweb',
```
This matches the default port (3001) used by the `static-wado-webserver`.
:::info
If you change the port or output directory when running the `static-wado-webserver`, you **must** also update the `qidoRoot` and `wadoRoot` values in your `local_static.js` configuration file accordingly to ensure the OHIF Viewer can access the data.
:::