High Performance DICOM Medical Image Parser in Go.
This is a (hard-ish) fork of go-dicom--a golang DICOM image parsing library. A command line tool to parse imagery and data out of DICOM files is also included (dicomutil
). We have been working on this package with the goal of building a full-featured and high-performance dicom parser with new features and improvements. So far improvements include:
Parser
golang interface to make mock-based testing easier for clientsWe're open to suggestions and comments -- open an issue if you have any.
To use this in your golang project, simply import our pacakge github.com/gradienthealth/dicom
and then you can use our Parser
for your parsing needs:
p, err := dicom.NewParserFromFile("myfile.dcm", nil)
opts := dicom.ParseOptions{DropPixelData: true}
element := p.ParseNext(opts) // parse and return the next dicom element
// or
dataset, err := p.Parse(opts) // parse whole dicom
More details about the package can be found in the godoc
A CLI tool that uses this package to parse imagery and metadata out of DICOMs is provided in the dicomutil
package.
dicomutil --extract-images myfile.dcm
Note: for some dicoms (with native pixel data) no automatic intensity scaling is applied yet (this is coming). You can apply this in your image viewer if needed.
To build the tool for all platforms (Mac, Windows, Linux) from source using docker, execute the following in the cloned repo:
docker build . -t godicom
docker run -it -v $PWD/build:/go/src/github.com/gradienthealth/dicom/build godicom make release
You can then use the binaries that will show up in the build
folder in your current working directory
To build manually, ensure you have make
, golang, and dep installed on your machine. Clone (or go get
) this repo into your gopath then:
make