A medical imaging and report search system.
Koala is a full-stack application for searching and organizing medical studies and reports. It leverages a Go backend and a modern Vite/React frontend, integrates FHIR and DICOMweb standards, and is powered by Elasticsearch for efficient querying.
- 🔍 Search functionality for report content, modality, date range, patient details, and clinical categories
- 💡 Autocomplete support for faster and more accurate query entry
- 📄 Integration of FHIR DiagnosticReports with DICOMweb ImagingStudies
- ⚙️ Go backend providing structured APIs for search and data access
- 🖥️ Frontend built with Vite, React, and TailwindCSS for responsive user interfaces
- 🐳 Docker-ready build process for containerized deployment
For users who prefer to build and host Koala manually without Docker:
cd web
npm install
npm run buildThis will generate static assets in the web/dist directory.
The backend requires the built frontend assets to compile successfully. Ensure you have the frontend built before proceeding.
go build -o koala cmd/koala/main.goThe compiled binary koala will be available in the project root.
To build and run using Docker:
docker build -t koala .This will create a Docker image named koala. You can run it with:
docker run -p 8080:8080 -v "./config.yaml:/app/config.yaml" koalaCreate a config.yaml file in your project root for custom configurations. See the config/default.yaml for example configurations.
Note: The
.envfile in/webis only used during frontend development to configure the Vite dev server. It does not affect backend configuration.
To run Koala without the frontend (API-only mode), enable headless mode by setting the following in your config.yaml:
http:
headless: trueIn this mode, APIs are served without the /api prefix.
- Go 1.21+
- Node.js 20+
git clone https://github.com/yangszwei/koala.git
cd koalaSee web/README.md for detailed setup, or run:
cd web
npm install
npm run devKoala frontend will be available at http://localhost:5173.
go run cmd/koala/main.goThis project is licensed under the Apache License 2.0. See the LICENSE file for details.