Coder Social home page Coder Social logo

sglanger / fhirmaker Goto Github PK

View Code? Open in Web Editor NEW
8.0 3.0 1.0 7.7 MB

crawl public medical imaging archives, create Patient and DiagnosticReport resources which in turn are discoverable via a FHIR API

License: Apache License 2.0

Python 100.00%

fhirmaker's Introduction

FHIRmaker

Purpose: Crawl public, annotated, medical imaging archives, based on those annotations create Patient, Condition, diagnosticReport and imagingStudy FHIR resources which in turn are discoverable via a FHIR API

The Challenge

Let's say you are a Machine Learning researcher in medical imaging. You have a Keras model you would like to try out on many high resolution Lung CT images. Ideally the resulting datasets (training and inference) would have a mix of normals and positive findings that mimic the real world statistics. However, if one does not work at Ginormous Hospital, how can one locate all the publically available datasets that could provide statistical power - and how much time would it take?

Enter FHIRmaker

Theory

Many people have image sets: NIH, other govt. agencies, foundations, etc. The issue is not images per se, but curation, annotation and -machine- discoverability. Imagine having a web page or API you could go to and type in the patient condition you are interested in (in ICD10 or SNOMED codes). Then, for those patients, find the studies that display relevent findings for that condition acquired via modalities (i.e MR) and imaging paramters (i.e Pulse sequence) your ML Model can use. Press "Submit" and within seconds get a return list of URL's where the target studies on public archives exist.

How?

There are several approaches one can take; some are easy and automated, others require significant human effort. But at the end of the day, the goal is to index every patient/study on public sites and

a) create from that information a patient FHIR resource that matches the names used on the source site
b) determine (via numerous methods) the "AI interesting" patient conditions and list them in the Patient resource then
c) locate the studies for that patient, represent their findings in ACR-RADS (or similar) terms in the Diagnostic Report resource and acquisition parameters (e.g. coded in LOINC-RADLEX) in the imagingStudy resources and then
d) aggregate the above resources on a single FHIR server with the above described Web page and API

Status


Week 1: created the first 3 files indicated below, validating FHIR object output, TCIA API
Week 2: validated download_data.py "get" functions work as expected on Hackathon FHIR server
Week 3: build out the DICOMweb API class to enable retrieving source images from DICOMweb VNA's
Week 4: build the web page (pending, provides candidate patients lists for now matching body-part and condition)

To Dos


1) send FHIR objects to FHIR git repo (manually for now)
1) complete the study level search on the web page

Contents


download_data.py :: suite of classes to abstract RESTful calls to image archives
read_dump.py :: class to read JSON dump of a dbase after it annotates an Archive (should include findings)
FHIRmaker.py :: class to call the above 2, and based on info create Patient and Report FHIR objects
FHIRfetch.py :: class to take command line arguments (body part, Condition) and return pointers to Patient/Reports/StudyURLs that match

fhirmaker's People

Contributors

sglanger avatar

Stargazers

 avatar catetrai avatar Jae Shin avatar Jon Chun avatar  avatar  avatar Cao Ky Hieu avatar Tom OSullivan avatar

Watchers

 avatar James Cloos avatar Tom OSullivan avatar

Forkers

briando2005

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.