sandorkonya / SIIMHackathon2021

Flask based potable web app to query PACS via DICOMweb & trachea +endotracheal tube segmentation real time.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SIIMHackathon2021

Elevator pitch:

Flask based web app to query PACS via DICOMweb. Trachea bifurcation + endotracheal tube segmentation real time.

Rationale

The clinical networks are usually closed ecosystems and the clinicians have only resticted user rights on the workstations. This environment does not allow to easily access the PACS to search and retrieve DICOM data programatically.

We found a way, that utilizes WinPthon, a portable, full blown python environment on Windows operating system. You can install <-- no install, just unzip ;) and use it from here: https://winpython.github.io/

In the console simply install the dependencies and you can start making queries to the SIIM Hackathlon server to retrieve DICOM data via webDICOM protocoll.

In order to access the SIIM Hackathlon severs, you have to register on thei website: https://siim.org/general/custom.asp?page=hacking_healthcare

We did it

winner

Together with Sai Natarajan we won the audience choice award!

Install

Download a Winpython 3.8+ , install dependencies. Create a "weights" folder inside yolactcnn/ and copy the following file into this folder. https://drive.google.com/file/d/1sPtNqC3ja7VwtXw_yOmExj8gE7MAN4lc/view?usp=sharing File path should look similar to: ./yolactcnn/weights/yolact_base_1630_75000.pth --> see yolactcnn/eval1.py for detail.

TODO

  • query for image data on SIIM Hackathon server via webDICOM protocols
  • solve various problems due to data heterogenity (missing dicom tags) --> try, catch baby
  • implement CORS (Cross-origin resource sharing) compliant way to do above
  • integrate basic bootstrap example site in Flask + add JS libs (lodash, jquery)
  • implement client side logic in Javascript for populating the site by iterating through the json WADO response
  • implement sequential (!) promise processing instead of parallel ( --> resource sparing for Flask server, memory problems(?) when loading model paralelly)
  • GUI goodies with color coding different results (anomaly vs. no anomaly vs. nothing detected classes)
  • add "privacy mode" by adding class with "blur" style to sensitive information & image data
  • ad instance segmentation library into pipeline
  • add HTML5 dektop notification by anomaly detection
  • add hoplink to case by clicking "show case" button (alternatively run CLI command to open dicom viewer to review case)
  • add feature to open arbitrary url-s: localhost/inferencedimage?url=xxxxx just does this ;)
  • add demo case for detected anomaly
  • ... ?
  • add dependency list (pip freeze)

How does it look like?

(images curtesy SIIM)

showcase

About

Flask based potable web app to query PACS via DICOMweb & trachea +endotracheal tube segmentation real time.


Languages

Language:JavaScript 65.0%Language:Python 17.9%Language:CSS 15.8%Language:HTML 1.0%Language:Shell 0.3%