• This repository has been archived on 21/Dec/2020
  • Stars
    star
    104
  • Rank 320,928 (Top 7 %)
  • Language
    Go
  • License
    MIT License
  • Created over 9 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🏥 DICOM Medical Image Parser in Go

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

More Repositories

1

Cumulus

☁️ A SoundCloud player that lives in your menubar.
JavaScript
1,423
star
2

google-speech-v2

💬 Reverse Engineering Google's Speech To Text API (v2)
456
star
3

node-record-lpcm16

🎤 Records a 16-bit signed-integer linear pulse modulation code encoded audio file.
JavaScript
202
star
4

soundcloud-v2

Client for SoundCloud's API v2
JavaScript
11
star
5

npm-registry

NPM registry server
Go
9
star
6

systemdify

🐧 Automatically create a systemd unit file for your Node application
JavaScript
7
star
7

typewrite

📝 A simple javascript file to simulate text input.
JavaScript
6
star
8

cli-progress-bar

🕘 A simple CLI progress bar, inspired by Gauge
JavaScript
5
star
9

beer-names

🍺 Get a unique random name that sounds like it could be a beer
JavaScript
5
star
10

ponysay

🐴 Ponysay, written in Go
Go
4
star
11

jest-snapshots-json-rest-api

Jest Snapshots serializer for JSON REST APIs.
JavaScript
4
star
12

Cumulus-nwjs

SoundCloud desktop application, using Node Webkit and Polymer
CSS
3
star
13

iec-bytes-parser

Parse IEC and SI bytes size string notations
TypeScript
3
star
14

Codex

Codex is a modular backup tool to help you backup and restore your application settings and dotfiles.
Ruby
3
star
15

node_analytics

Node Analytics with Server Sent Events
JavaScript
2
star
16

graph-editor

A very simple graph editor
JavaScript
2
star
17

All-Things-Go

All Things Talk interface written in Go
Go
2
star
18

grop

🚦 Get a random open port on the host machine
JavaScript
1
star
19

psc

Play a soundcloud URL in your Terminal.
Ruby
1
star
20

go-oauth

🔐 OAuth HMAC-SHA1 signing in Go
Go
1
star
21

github-issue-templates

Testing GitHub issue templates
1
star
22

rust-playground

Just messing around with 🦀 nothing to see here
Rust
1
star
23

A-Brave-New-Web

Slides for our SFHTML5 Talk about Web Components and Polymer
CSS
1
star
24

conventional-github-releaser

1
star
25

connect-requires-json

✋ Error middleware for empty and non-JSON request bodies
JavaScript
1
star
26

dag

A directed acyclical graph library
TypeScript
1
star
27

require-skip-cache

Require a module without adding it to the cached modules
JavaScript
1
star
28

express-react-svg-to-png

Express SVG to PNG using a React component
JavaScript
1
star
29

AppLab-Parko

Parko application created for the AppLab hackathon in Kortrijk.
JavaScript
1
star
30

nostro.moe

https://nostro.moe
HTML
1
star
31

xtend-url

🔗 Append to an URL without the headache
JavaScript
1
star
32

haruhichan

🍙 A modern and sane API wrapper for Haruhichan
JavaScript
1
star
33

game-console-ui

Exploring interactive User Interfaces
TypeScript
1
star
34

fuelphp-eventbrite

A fuelphp wrapper for the use of the Eventbrite API
PHP
1
star
35

GSS

Gilles Style Sheets
JavaScript
1
star
36

express-api-skeleton

💀 My Express API skeleton
JavaScript
1
star
37

nextjs

JavaScript
1
star
38

gilles.demey.io

My personal website
HTML
1
star
39

nestor-docker

Docker container exposing cliffano/nestor as an entrypoint
1
star
40

desktop

backup of http://popcorntime.ml community, ripped by the bad .is guys (from today only popcorntime.ag please)
CSS
1
star
41

go-rsa-example

RSA cipher example in Go
Go
1
star
42

node-geo

🌐 A simple API wrapper around the Google maps geo coder.
JavaScript
1
star