Giter Club home page Giter Club logo

dicomanontemp's Introduction

DICOM-anonymiser

With the generous support of the Advanced Radiology Services Foundation (ARSF), Radiopaedia is building support to upload cases as DICOM rather than requiring files to be exported to JPG/PNG. A critically important part of this project is to ensure that no patient data is inadvertently sent to our servers. We have, therefore, developed a DICOM anonymiser and have made that available as an open source project so that anyway can review the code we are running.

Additionally, we have built this page where you can see the fields we process. All of this code runs client-side (i.e. no data is sent to Radiopaedia or anywhere else from this page). In fact, once you have loaded this page, you can disconnect your internet and everything will still work.

We’d love to hear any feedback you may have. Just write to [email protected]

Folder structure

  • /src: Original typescript files
  • /lib: Compiled javascripts
  • /docs: Browser demo of the project.

How it works

The DICOM Anonymizer uses a whitelist policy to remove personally identifying metadata from DICOM formatted images.

The application explicitly supports the following DICOM SOP Classes:

  • 1.2.840.10008.5.1.4.1.1.1.1 (Digital XRay)
  • 1.2.840.10008.5.1.4.1.1.1.2 (Digital Mammography XRay)
  • 1.2.840.10008.5.1.4.1.1.2 (CT Image)
  • 1.2.840.10008.5.1.4.1.1.6.1 (Ultrasound Image)
  • 1.2.840.10008.5.1.4.1.1.3.1 (Ultrasound Multiframe Image)
  • 1.2.840.10008.5.1.4.1.1.4 (MR Image)
  • 1.2.840.10008.5.1.4.1.1.12.1 (XRay Angiographic Image)
  • 1.2.840.10008.5.1.4.1.1.12.2 (XRay Radiofluoroscopic Image)
  • 1.2.840.10008.5.1.4.1.1.13.1.1 (XRay 3D Angiographic Image)
  • 1.2.840.10008.5.1.4.1.1.20 (Nuclear Medicine Image)
  • 1.2.840.10008.5.1.4.1.1.128 (Positron Emission Tomography Image)

(Other image types can be anonymized, however some functional information may be stripped)

The policy (src/Policies.ts) for a given SOP Class can either remove, replace or regenerate a tag value. DICOM uses UIDs to structure a series across multiple files. Where necessary, these UIDS are regenerated using a cryptographically secure SHA-512 hash. Regenerated UIDS can be identified by the prefix "1.2.826.0.1.3680043.10.341." and do not include personal information.

Usage

  import * as dcmio from "dicomanon"
  var reader = new FileReader()
  reader.onload = function(e) {
      dicomData = dcmio.Message.readFile(e.target.result);
      dicomData.dict = dcmio.Anonymize(dicomData.dict);
      warnings = dcmio.Validator(dicomData.dict);
      var buffer = dicomData.write();
  }

Limitations

The anonymiser won't be able to identify or remove burnt-in information within an image, and works under the assumption that input images are DICOM standard conformant. We recommend manually reviewing the output of the tool before sharing any images.

dicomanontemp's People

Contributors

danielheath avatar plwp avatar frankgaillard 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.