Giter Site home page Giter Site logo

go-dicom's Introduction

DICOM parser in Go GoDoc wercker status

This project is no longer maintained, please check out its successor suyashkumar/dicom.

Usage

package main

import (
	"fmt"
	"github.com/gillesdemey/go-dicom"
	"io/ioutil"
)

func main() {

	bytes, err := ioutil.ReadFile("myfile.dcm")
	
	parser, err := dicom.NewParser()
	data, err := parser.Parse(bytes)

	for _, elem := range data.Elements {
		fmt.Printf("%+v\n", &elem)
	}

}

Commandline Interface

dicom -file=myfile.dcm

Will print something like:

Group	Element	Name				VR	VL	Value
0002	0000	FileMetaInformationGroupLength	UL	4	204
0002	0001	FileMetaInformationVersion	OB	2	[0 1]
0002	0002	MediaStorageSOPClassUID		UI	26	[1.2.840.10008.5.1.4.1.1.2]
0002	0003	MediaStorageSOPInstanceUID	UI	56	[1.3.12.2.1107.5.1.4.54023.30000005032916373504600004748]
0002	0010	TransferSyntaxUID		UI	22	[1.2.840.10008.1.2.4.91]
0002	0012	ImplementationClassUID		UI	22	[1.3.6.1.4.1.19291.2.1]
0002	0013	ImplementationVersionName	SH	10	[OSIRIX001]
0002	0016	SourceApplicationEntityTitle	AE	6	[OsiriX]
0008	0008	ImageType			CS	34	[ORIGINAL PRIMARY AXIAL CT_SOM5 SPI]
0008	0016	SOPClassUID			UI	26	[1.2.840.10008.5.1.4.1.1.2]
0008	0018	SOPInstanceUID			UI	56	[1.3.12.2.1107.5.1.4.54023.30000005032916373504600004748]
0008	0020	StudyDate			DA	8	[20050329]
0008	0021	SeriesDate			DA	8	[20050329]
0008	0022	AcquisitionDate			DA	8	[20050329]
0008	0023	ContentDate			DA	8	[20050329]
0008	0030	StudyTime			TM	14	[142530.125000 ]
0008	0031	SeriesTime			TM	14	[144801.203000 ]
0008	0032	AcquisitionTime			TM	14	[143840.611848 ]
0008	0033	ContentTime			TM	14	[143840.611848 ]
0008	0050	AccessionNumber			SH	8	[2386679]
0008	0060	Modality			CS	2	[CT]
0008	0070	Manufacturer			LO	8	[SIEMENS]
0008	0080	InstitutionName			LO	20	[UCLA  Medical Center]
0008	0081	InstitutionAddress		ST	52	[UCLA Medical PlazaLos Angeles/2782F4/Los AngelesUSA]
0008	0090	ReferringPhysicianName		PN	16	[MIYAMOTO^MICHAEL]
0008	1010	StationName			SH	8	[CT54023]
0008	1030	StudyDescription		LO	48	[Cardiac^1CTA_CORONARY_ARTERIES_TESTBOLUS (Adult)]

Acknowledgements

I'd like to thank my friend Seppe Stas for helping me get through the horrific DICOM image specification and some of the harder parts of the parser.

Some more inspiration and helpful resource that brought this library to life (in no particular order):

DWV by ivmartel https://github.com/ivmartel/dwv/
dicomParser by Chris Hafey https://github.com/chafey/dicomParser
http://www.dicomlibrary.com
http://dicom.nema.org/medical/dicom/current/output/pdf/part05.pdf

go-dicom's People

Contributors

dariocasas avatar gillesdemey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

go-dicom's Issues

parser.Parse(bytes) is empty

I use the code "data, _ := parser.Parse(bytes)" to parse my dcm, but data is empty.
I wonder why DicomMessage'msg is not Msg

Example in README does not work

When I try to run the example from the README, I get

$ go run main.go
panic: open dicom.dic: no such file or directory

goroutine 1 [running]:
github.com/gillesdemey/go-dicom.NewParser(0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /.../go/src/github.com/gillesdemey/go-dicom/parser.go:45 +0xf9
main.main()
    /.../go/src/github.com/micahhausler/dicom/main.go:38 +0x2a9
exit status 2

Option to skip Pixel Data

There are many cases in which a user may want only the header information, and in order to increase the speed and decrease the memory used by the process, skip reading the Pixel data of the dicom file. A new parameter to func (di *DicomFile) Parse(buff []byte) <-chan DicomMessage which provides a tag at which to stop reading the file return only what Elements have been parsed up to that point much like in the pydicom library or the chafey js library

Library is broken

Sorry to say that, but nothing is working here.

# command-line-arguments .\DCMNameFinder.go:17: cannot assign <-chan dicom.DicomMessage to error (type er ror) in multiple assignment: <-chan dicom.DicomMessage does not implement error (missing Error method )

This it what it says with your example code from your README.md

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.