Small and lightweight web app learning project for case creation with DICOM series that can be segmented with image processing algorithms.
- Angular 17 for the frontend web app
- TypeScript for strongly typed JavaScript
- Vite for optimized builds and efficient HMR
- 🌐 ngx-translate for maintainable internationalization in:
- 🇨🇦 English
- 🇫🇷 French
- 🇯🇵 Japanese
- 🇻🇳 Vietnamese
- 🩻 dicom.ts for lightning fast DICOM rendering
- 🌑 Dark mode support
- .NET 8.0 for the C# backend API
- Entity Framework for in-memory database
- OpenAPI for an comprehensible API description.
- Fellow Oak DICOM for effortless DICOM tag parsing
- Azure for cloud computing
- Azurite for Azure Blob Storage emulation
- Azure Function to execute event-driven serverless python code
- Python 3.11 for DICOM segmentation with Image Processing techniques
- imageio for image read and write operations with various format
- NumPy for n-dimensional image data array manipulation
- Pydicom for DICOM image open/read operations
- scikit-image for modern image processing
- Segmentation Algorithm Source: Visualizing and Analyzing DICOMs in Python
- Python 3.11 for DICOM segmentation with Image Processing techniques
- ✨ README Template Inspiration: Full Stack FastAPI Template
Do not forget to add angular, node and python paths to PATH environment variables.
Add the following lines in the user secrets of the .NET project:
{
"AzureDicomStorage": "UseDevelopmentStorage=true",
"AzureDicomStorage:blob": "UseDevelopmentStorage=true"
}
To install all necessary dependencies and libraries, please execute the following command in the project directory:
./install.sh
Note: Each module necessary dependencies and libraries can be installed individually by executing the corresponding scripts in the the scripts/install
folder
To start the application, please execute the following command in the project directory:
./run.sh
Note:
- Each module can be run individually by executing the corresponding scripts in the the
scripts/run
folder - The Angular app will run on http://localhost:4200
- The .NET API will run on https://localhost:6900 (with Swagger on https://localhost:6900/swagger)
- The Python Azure Function will run on http://localhost:6660/api/segment
- The Azurite Blob Storage content can be monitored with Azure Storage Explorer