Code Monkey home page Code Monkey logo

dicom_webapp's Introduction

Medical Imaging Coding Assessment

Overview

This repository contains a web-based platform for processing DICOM (Digital Imaging and Communications in Medicine) images. Users can upload DICOM images, and the system extracts, normalizes, and thresholds the pixel data. After processing, the system displays the volume (in mm³) of the thresholded pixels.

Table of Contents

Web Interface

  • The web interface is implemented using Vue.js and provides a simple page with a drop zone for uploading DICOM images.
  • Upon the click on the dropzone it also provides uploadfile menu.
  • After processing, the number of pixels above the threshold is displayed.

Backend

  • The backend is built with FastAPI, providing REST endpoints for communication with the web interface.
  • The backend uses the Python package pydicom to extract pixel data from DICOM files.
  • The pixel data is normalized to a range of [0, 1].
  • Thresholding is applied to the pixel data using a threshold value (defaulting to 0.5 if not provided).
  • The volume of thresholded pixels in mm³ is returned.

Docker

  • Docker images are provided for both the backend and frontend.
  • A docker-compose.yml file is included for running the solution in a Docker environment.

Code Quality and Testing

  • The code is well-documented (by choosing variables names carefully) and partially tested (With additional suggestions).
  • Consideration has been given to various edge cases that might occur when processing DICOM files.
  • Not Implemented But Thought Of

Setup

Prerequisites

  • Docker and Docker Compose must be installed on your system.

Instructions

  1. Clone this repository to your local machine.

    git clone [email protected]:xbankov/dicom_webapp.git
    
    cd dicom_webapp
    
    docker-compose up --build

Future Work

  • implement dynamic thresholding techniques to improve accuracy for different types of DICOM images
  • advanced dicom processing using neural netword (nnunet, other semantic segmantation networks, image registration, etc ...)
  • user-friendly DICOM viewer for enhanced user interaction ( borrowing from 3Dslicer)
  • Implementing anomaly detection, is another potential future improvement.
  • Removing CT table (part of my master thesis at DKFZ)
  • STYLES - a small touch-up would be beneficial, mostly for the easy of use
  • Use PHYSICAL SPACING-aware medical processing library - like SITK

Not Implemented But Thought Of

  • tests for validity of dicom metadata AND data, like intensities in pixel_array check or spacing check.
  • tests for the not .dcm files, e.g. (.txt)
  • tests for the actual content of the CT scan

dicom_webapp's People

Contributors

xbankov avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.