GithubHelp home page GithubHelp logo

deid-redactor's Introduction

DICOM Redactor Library

The DICOM Redactor Library is a Java library designed to redact sensitive data contained in DICOM tags. This is an offline library which does not communicate with Google Cloud.

Getting Started

Building

The DICOM redactor library can be built using Gradle. Please refer to these instructions to build Gradle for your system.

To build the library and examples:

cd redactor
./gradlew build

Running unit tests

cd redactor
./gradlew test

Configuration

The library's redaction is primarily configured using protobuf. The configuration is similar to the DicomConfig for the deidentify operation in Google's Cloud Healthcare API (although the predefined filter profiles differ).

The user can configure which tags to redact/remove in one of 3 ways:

  1. keep_list - a list of DICOM tags to keep untouched. Other tags are removed.
  2. remove_list - a list of DICOM tags to remove. Other tags are kept untouched.
  3. filter_profile - a predefined profile that will keep and remove particular tags.

See the full configuration proto for more info.

To view the sepcific tags removed for a certain profile, see the relevant textproto.

UID Regeneration

Regardless of the configuration, several UIDs will always be regenerated: SOPInstanceUID, StudyInstanceUID, SeriesInstanceUID, and MediaStorageSOPInstanceUID. By default, these will be regenerated using the UUID Derived UID method. Optionally, when constucting a redactor, the user can specify their own prefix to use for the regenerated UIDs.

Sample script

A command line utility for redacting tags using the library has been included. To run:

cd redactor
./gradlew examples:tag_remover:run --args='-i in.dcm -o out.dcm -t PatientName'

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.