dicom 0.9.5 → 0.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +13 -5
- data/{CHANGELOG.rdoc → CHANGELOG.md} +50 -30
- data/{CONTRIBUTING.rdoc → CONTRIBUTING.md} +16 -16
- data/Gemfile.lock +47 -0
- data/README.md +152 -0
- data/dicom.gemspec +11 -10
- data/lib/dicom.rb +30 -11
- data/lib/dicom/anonymizer.rb +654 -649
- data/lib/dicom/audit_trail.rb +0 -2
- data/lib/dicom/d_client.rb +1 -1
- data/lib/dicom/d_library.rb +45 -15
- data/lib/dicom/d_object.rb +18 -18
- data/lib/dicom/d_read.rb +28 -4
- data/lib/dicom/d_write.rb +49 -26
- data/lib/dicom/dictionary/{elements.txt → elements.tsv} +0 -0
- data/lib/dicom/dictionary/{uids.txt → uids.tsv} +0 -0
- data/lib/dicom/element.rb +6 -7
- data/lib/dicom/elemental.rb +1 -0
- data/lib/dicom/elemental_parent.rb +64 -0
- data/lib/dicom/extensions/array.rb +57 -0
- data/lib/dicom/extensions/hash.rb +31 -0
- data/lib/dicom/extensions/string.rb +126 -0
- data/lib/dicom/{constants.rb → general/constants.rb} +29 -38
- data/lib/dicom/{deprecated.rb → general/deprecated.rb} +0 -0
- data/lib/dicom/{logging.rb → general/logging.rb} +0 -0
- data/lib/dicom/{variables.rb → general/methods.rb} +0 -22
- data/lib/dicom/general/variables.rb +29 -0
- data/lib/dicom/{version.rb → general/version.rb} +1 -1
- data/lib/dicom/image_item.rb +0 -2
- data/lib/dicom/image_processor.rb +2 -0
- data/lib/dicom/item.rb +1 -13
- data/lib/dicom/link.rb +2 -1
- data/lib/dicom/parent.rb +34 -86
- data/lib/dicom/sequence.rb +1 -13
- data/lib/dicom/stream.rb +94 -114
- data/rakefile.rb +1 -1
- metadata +73 -36
- data/README.rdoc +0 -149
- data/lib/dicom/ruby_extensions.rb +0 -249
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NDBiM2UzMTdiODE5YzU1MThmYzVmYjkwY2NkMWRlMDgyZDA4OTMyMA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
OThhOTYwZTA5NjY0MTQ0ZDczNDM2NGMyYTA4M2M4OGM1YjMzZTM0OA==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MWY5ODI2NTgyOTQ3ZDgwODBiNjVjZTE1MThmYTIwYjU4YTYxODI0MmNmMjk3
|
10
|
+
NzIyYzQ5YmY1Y2M1NTk4ODE4OGU5ZDY1MzQyM2VjMjdhZjJmMGE3MjIwYTRk
|
11
|
+
YzdiYzg0Nzk4ZmI2ZWQ1OWJlNWY4MTU5ZTZmMDQ5MzAzNmRmMWE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MGY0YjBlZTI3ZDk3YzNkYmE3NzI1ZjFhYmYwZDcyZmE2NDJhNjIzZDEzNjI5
|
14
|
+
NzQ3ZjY5N2FjZTVlODQyNGNiN2VhMmQ1NTQ2YjRmMmJjYzRkYjYzYjQ0ZWIw
|
15
|
+
ZmJlZjAwYWMyZWZhN2UwZjg2MjcwYWYxMjMwOTE3YzQ0NTExNTA=
|
@@ -1,6 +1,26 @@
|
|
1
|
-
|
1
|
+
# 0.9.6
|
2
2
|
|
3
|
-
|
3
|
+
## 20th June, 2014
|
4
|
+
|
5
|
+
* Fixed an issue where role negotiation in the network code would cause an exception.
|
6
|
+
* Fixed an issue where a C-Move request could terminate instead of properly waiting for a receipt.
|
7
|
+
* Fixed an issue where network code would hang waiting for a response when it doesn't get any.
|
8
|
+
* Automatically load RMagick/mini_magick when using the image methods, to avoid confusing exceptions.
|
9
|
+
* Made json and yaml gem dependencies, to avoid unexpected exceptions when using the #to_json and #to_yaml methods.
|
10
|
+
* Give a warning instead of raising an error when Parent#delete and #value gets an obviously invalid argument.
|
11
|
+
* Introduced Parent#representation, giving a description of the parent objects Sequence, Item & DObject.
|
12
|
+
* Refactored various methods for improved code simplicity.
|
13
|
+
* Upgraded specification to use RSpec 3.
|
14
|
+
* Changed information files from RDoc to Markdown format.
|
15
|
+
* Performance improvement when writing DICOM string segments.
|
16
|
+
* Changed element and uid dictionaries from .txt to .tsv.
|
17
|
+
* Bumped required Ruby version to 1.9.3.
|
18
|
+
* Replaced the custom encoding/decoding of big endian numbers with the Ruby standard library implementation.
|
19
|
+
|
20
|
+
|
21
|
+
# 0.9.5
|
22
|
+
|
23
|
+
## 26th March, 2013
|
4
24
|
|
5
25
|
* DICOM module:
|
6
26
|
* Use hyphen instead of underscore in ruby-dicom application title.
|
@@ -42,9 +62,9 @@
|
|
42
62
|
* Added Anonymizer :encryption option, which allows the simulatenous preservation of privacy and key/value relations in the audit file.
|
43
63
|
|
44
64
|
|
45
|
-
|
65
|
+
# 0.9.4
|
46
66
|
|
47
|
-
|
67
|
+
## 10th September, 2012
|
48
68
|
|
49
69
|
* Converted the documentation format from RDOC to YARD.
|
50
70
|
* Removed deprecated remove_* methods (use the delete_* versions instead).
|
@@ -64,9 +84,9 @@
|
|
64
84
|
* Refactored read and write code to get rid of the 'private' DRead and DWrite classes.
|
65
85
|
|
66
86
|
|
67
|
-
|
87
|
+
# 0.9.3
|
68
88
|
|
69
|
-
|
89
|
+
## 6th May, 2012
|
70
90
|
|
71
91
|
* Deprecated all #remove* methods (replaced with #delete*) to increase consistency with Ruby.
|
72
92
|
* Changed preferred DObject variable name from obj to dcm for all examples.
|
@@ -83,9 +103,9 @@
|
|
83
103
|
* Optimizations and code cleanups allowed by the introduced Ruby 1.9 requirement.
|
84
104
|
|
85
105
|
|
86
|
-
|
106
|
+
# 0.9.2
|
87
107
|
|
88
|
-
|
108
|
+
## 10th Oct, 2011
|
89
109
|
|
90
110
|
* Enabled the use of lower case tag letters in methods which previously required the use of upper case letters.
|
91
111
|
* Added new DObject class methods to offload DObject#new:
|
@@ -99,16 +119,16 @@
|
|
99
119
|
* Supports information levels, logging to file, and more as available in the Ruby Logger.
|
100
120
|
|
101
121
|
|
102
|
-
|
122
|
+
# 0.9.1
|
103
123
|
|
104
|
-
|
124
|
+
## 27th May, 2011
|
105
125
|
|
106
126
|
* Fixed a regression in 0.9 where ruby-dicom would cause a Rails application to crash.
|
107
127
|
|
108
128
|
|
109
|
-
|
129
|
+
# 0.9
|
110
130
|
|
111
|
-
|
131
|
+
## 17th May, 2011
|
112
132
|
|
113
133
|
* Fixed an issue where data elements added to a DObject didn't get their endianness updated.
|
114
134
|
* Added the ability to encode/decode 32 bit pixel data.
|
@@ -164,9 +184,9 @@
|
|
164
184
|
* Various bug fixes.
|
165
185
|
|
166
186
|
|
167
|
-
|
187
|
+
# 0.8
|
168
188
|
|
169
|
-
|
189
|
+
## 1st August, 2010
|
170
190
|
|
171
191
|
* Overall changes:
|
172
192
|
* A complete rewrite of data element handling has resulted in a substantially different syntax and significantly cleaner and simpler code.
|
@@ -219,9 +239,9 @@
|
|
219
239
|
* Properly receives and responds to a C-ECHO-RQ.
|
220
240
|
|
221
241
|
|
222
|
-
|
242
|
+
# 0.7
|
223
243
|
|
224
|
-
|
244
|
+
## 28th February, 2010
|
225
245
|
|
226
246
|
* Added set_image() and set_image_narray() methods to write pixel data to the DICOM object, complementing set_image_magick().
|
227
247
|
* Added method get_image() which retrieves pixel data to a standard Ruby Array.
|
@@ -251,9 +271,9 @@
|
|
251
271
|
* Various "under the hood" improvements and code cleanups.
|
252
272
|
|
253
273
|
|
254
|
-
|
274
|
+
# 0.6.1
|
255
275
|
|
256
|
-
|
276
|
+
## 23rd August, 2009
|
257
277
|
|
258
278
|
* Fixed a bug (introduced in version 0.6) where the creation of new data elements caused an error.
|
259
279
|
* Fixed a bug (introduced in version 0.6) where compressed pixel data were no longer detected correctly.
|
@@ -262,9 +282,9 @@
|
|
262
282
|
* Fixed a bug where retrieving a RMagick image from DICOM files containing two sets of image data failed.
|
263
283
|
|
264
284
|
|
265
|
-
|
285
|
+
# 0.6
|
266
286
|
|
267
|
-
|
287
|
+
## 13th August, 2009
|
268
288
|
|
269
289
|
* Complete rewrite of encoding/decoding to reduce code duplication and simplify the code.
|
270
290
|
* General optimizations to improve speed and reduce code complexity.
|
@@ -275,9 +295,9 @@
|
|
275
295
|
* The new DServer class presents the ability to set up a simple storage server (Service Class Provider).
|
276
296
|
|
277
297
|
|
278
|
-
|
298
|
+
# 0.5
|
279
299
|
|
280
|
-
|
300
|
+
## 4th May, 2009
|
281
301
|
|
282
302
|
* Several small changes have been made to achieve compatibility with both Ruby versions 1.8 and 1.9.
|
283
303
|
* Implemented a change in syntax for several methods with a goal of simplification.
|
@@ -295,9 +315,9 @@
|
|
295
315
|
* Fixed a bug where exception folders where ignored in the Anonymizer class.
|
296
316
|
|
297
317
|
|
298
|
-
|
318
|
+
# 0.4
|
299
319
|
|
300
|
-
|
320
|
+
## 3rd February, 2009
|
301
321
|
|
302
322
|
* Change of syntax: Options are now supplied as hash.
|
303
323
|
* Method below() renamed to children().
|
@@ -320,9 +340,9 @@
|
|
320
340
|
to offer a fairly powerful and customizable tool for anonymizing your DICOM files.
|
321
341
|
|
322
342
|
|
323
|
-
|
343
|
+
# 0.3
|
324
344
|
|
325
|
-
|
345
|
+
## 12th October, 2008
|
326
346
|
|
327
347
|
* The DRead class is now able to keep track of the position of the tags inside the hierarchy of sequences and items.
|
328
348
|
* DObject class has seen a number of improvements to allow taking advantage of this hierarchy awareness:
|
@@ -335,9 +355,9 @@
|
|
335
355
|
* Method print_properties() have been updated to display more information about the DICOM object.
|
336
356
|
|
337
357
|
|
338
|
-
|
358
|
+
# 0.2
|
339
359
|
|
340
|
-
|
360
|
+
## 10th August, 2008
|
341
361
|
|
342
362
|
* Data dictionary has been upgraded and is now compliant to the official standard.
|
343
363
|
* New DLibrary class which handles all interaction with the dictionary.
|
@@ -347,9 +367,9 @@
|
|
347
367
|
* Added option to load DICOM object in verbose or silent mode.
|
348
368
|
|
349
369
|
|
350
|
-
|
370
|
+
# 0.1
|
351
371
|
|
352
|
-
|
372
|
+
## 20th July, 2008
|
353
373
|
|
354
374
|
First public release.
|
355
375
|
The library does have several known issues and lacks some features I would like it to have, but it does
|
@@ -1,12 +1,12 @@
|
|
1
|
-
|
1
|
+
# Contributing Code
|
2
2
|
|
3
|
-
So you want to contribute to ruby-dicom? That's great
|
3
|
+
So you want to contribute to ruby-dicom? That's great, thank you! If you are a
|
4
4
|
first time committer however, you must to take a moment to read these instructions.
|
5
5
|
|
6
6
|
The preferred method, by far, is to convey your code contribution in the form
|
7
|
-
of a
|
7
|
+
of a [github](https://github.com/dicom/ruby-dicom) pull request.
|
8
8
|
|
9
|
-
|
9
|
+
## Committer's Recipe
|
10
10
|
|
11
11
|
* Fork the repository (for bonus points, use a topical branch name).
|
12
12
|
* Execute the specification (rspec tests) to verify that all spec examples pass
|
@@ -16,23 +16,23 @@ of a pull request on {github}[https://github.com/dicom/ruby-dicom].
|
|
16
16
|
* Alter the code to make the new spec example(s) pass.
|
17
17
|
* Keep it simple! One issue per pull request. Mixing two or more independent
|
18
18
|
issues in the same pull request will complicate the review of your request and
|
19
|
-
may result in a rejection (even if
|
20
|
-
* Don't modify the version or
|
19
|
+
may result in a rejection (even if individual components of the commit are sound).
|
20
|
+
* Don't modify the version string or the Changelog.
|
21
21
|
* Push to your fork and submit a pull request.
|
22
22
|
* Wait for feedback (this shouldn't take too long). The pull request may be accepted right
|
23
23
|
away, it may be rejected (with a reason specified), or it may spark a discussion where
|
24
24
|
changes/improvements are suggested in order for the pull request to be accepted.
|
25
25
|
|
26
|
-
|
26
|
+
## Guidelines
|
27
27
|
|
28
28
|
In order to increase the chances of your pull request being accepted,
|
29
29
|
please follow the project's coding guidelines. Ideally, your contribution must not
|
30
|
-
add
|
30
|
+
add [technical debt](http://en.wikipedia.org/wiki/Technical_debt) to the project.
|
31
31
|
|
32
32
|
* Provide thorough documentation. It should follow the format used by this project
|
33
33
|
and give information on parameters, exceptions and return values where relevant.
|
34
34
|
Provide examples for non-trivial use cases.
|
35
|
-
* Read the excellent
|
35
|
+
* Read the excellent [Github Ruby Styleguide](https://github.com/styleguide/ruby)
|
36
36
|
if you are new to collaborative Ruby development. Do note though, that we actually
|
37
37
|
don't follow all styles listed yet (perhaps we should?!).
|
38
38
|
* Some sample patterns of ours:
|
@@ -42,9 +42,9 @@ add {technical debt}[http://en.wikipedia.org/wiki/Technical_debt] to the project
|
|
42
42
|
* Assignment: a = b and not a=b
|
43
43
|
* In general: Follow the conventions you see used in the source code already.
|
44
44
|
|
45
|
-
|
45
|
+
## Contribution Agreement
|
46
46
|
|
47
|
-
ruby-dicom is licensed under the
|
47
|
+
ruby-dicom is licensed under the [GPL v3](http://www.gnu.org/licenses/gpl.html),
|
48
48
|
and to be in the best position to enforce the GPL, the copyright status of ruby-dicom
|
49
49
|
needs to be as simple as possible. To achieve this, contributors should only provide
|
50
50
|
contributions which are their own work, and either:
|
@@ -58,26 +58,26 @@ b) Disclaim copyright on it and thus put it in the public domain
|
|
58
58
|
Copyright assignment (a) is the preferred and encouraged option for larger
|
59
59
|
code contributions, and is assumed unless otherwise is specified.
|
60
60
|
|
61
|
-
Please see the
|
61
|
+
Please see the [GNU FAQ](http://www.gnu.org/licenses/gpl-faq.html#AssignCopyright)
|
62
62
|
for a fuller explanation of the need for this.
|
63
63
|
|
64
|
-
|
64
|
+
## Credits
|
65
65
|
|
66
66
|
All contributors are credited, with full name and link to their github account,
|
67
67
|
in the README file. If such an accreditation is not wanted (for whatever reason),
|
68
68
|
please let me know so, either in the pull request or in private.
|
69
69
|
|
70
70
|
|
71
|
-
|
71
|
+
# Other ways to contribute
|
72
72
|
|
73
|
-
|
73
|
+
Not ready to get your hands dirty with source code and git? Don't worry,
|
74
74
|
there are other ways in which you can contribute to the project as well!
|
75
75
|
|
76
76
|
* Create an issue on github for feature requests or bug reports.
|
77
77
|
* Weigh in with your opinion on existing issues.
|
78
78
|
* Write a tutorial.
|
79
79
|
* Answer questions, or tell the community about your exciting ruby-dicom projects in the
|
80
|
-
|
80
|
+
[mailing list](http://groups.google.com/group/ruby-dicom).
|
81
81
|
* Academic works: Properly reference ruby-dicom in your work and tell us about it.
|
82
82
|
* Spread the word: Tell your colleagues about ruby-dicom.
|
83
83
|
* Make a donation.
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
dicom (0.9.6)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://www.rubygems.org/
|
8
|
+
specs:
|
9
|
+
diff-lcs (1.2.5)
|
10
|
+
metaclass (0.0.4)
|
11
|
+
mini_magick (3.7.0)
|
12
|
+
subexec (~> 0.2.1)
|
13
|
+
mocha (1.1.0)
|
14
|
+
metaclass (~> 0.0.1)
|
15
|
+
narray (0.6.0.8)
|
16
|
+
rake (10.3.2)
|
17
|
+
redcarpet (3.1.2)
|
18
|
+
rmagick (2.13.2)
|
19
|
+
rspec (3.0.0)
|
20
|
+
rspec-core (~> 3.0.0)
|
21
|
+
rspec-expectations (~> 3.0.0)
|
22
|
+
rspec-mocks (~> 3.0.0)
|
23
|
+
rspec-core (3.0.1)
|
24
|
+
rspec-support (~> 3.0.0)
|
25
|
+
rspec-expectations (3.0.1)
|
26
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
27
|
+
rspec-support (~> 3.0.0)
|
28
|
+
rspec-mocks (3.0.1)
|
29
|
+
rspec-support (~> 3.0.0)
|
30
|
+
rspec-support (3.0.0)
|
31
|
+
subexec (0.2.3)
|
32
|
+
yard (0.8.7.3)
|
33
|
+
|
34
|
+
PLATFORMS
|
35
|
+
x86-mingw32
|
36
|
+
|
37
|
+
DEPENDENCIES
|
38
|
+
bundler (~> 1.6)
|
39
|
+
dicom!
|
40
|
+
mini_magick (~> 3.7)
|
41
|
+
mocha (~> 1.1)
|
42
|
+
narray (~> 0.6.0.8)
|
43
|
+
rake (~> 10.3)
|
44
|
+
redcarpet (~> 3.1)
|
45
|
+
rmagick (~> 2.13.2)
|
46
|
+
rspec (~> 3.0)
|
47
|
+
yard (~> 0.8.7)
|
data/README.md
ADDED
@@ -0,0 +1,152 @@
|
|
1
|
+
# RUBY DICOM
|
2
|
+
|
3
|
+
Ruby DICOM is a small and simple library for handling DICOM in Ruby. DICOM (Digital Imaging
|
4
|
+
and Communications in Medicine) is a standard for handling, storing, printing,
|
5
|
+
and transmitting information in medical imaging. It includes a file format definition
|
6
|
+
and a network communications protocol. Ruby DICOM supports reading from, editing
|
7
|
+
and writing to this file format. It also features basic support for select network
|
8
|
+
communication modalities like querying, moving, sending and receiving files.
|
9
|
+
|
10
|
+
|
11
|
+
## INSTALLATION
|
12
|
+
|
13
|
+
gem install dicom
|
14
|
+
|
15
|
+
|
16
|
+
## REQUIREMENTS
|
17
|
+
|
18
|
+
* Ruby 1.9.3 (if you are still on Ruby 1.8, gems up to version 0.9.1 can be used)
|
19
|
+
|
20
|
+
|
21
|
+
## BASIC USAGE
|
22
|
+
|
23
|
+
### Load & Include
|
24
|
+
|
25
|
+
require 'dicom'
|
26
|
+
include DICOM
|
27
|
+
|
28
|
+
### Read, modify and write
|
29
|
+
|
30
|
+
# Read file:
|
31
|
+
dcm = DObject.read("some_file.dcm")
|
32
|
+
# Extract the Patient's Name value:
|
33
|
+
dcm.patients_name.value
|
34
|
+
# Add or modify the Patient's Name element:
|
35
|
+
dcm.patients_name = "Anonymous"
|
36
|
+
# Remove a data element from the DICOM object:
|
37
|
+
dcm.pixel_data = nil
|
38
|
+
# Write to file:
|
39
|
+
dcm.write("new_file.dcm")
|
40
|
+
|
41
|
+
### Modify using tag strings instead of dictionary method names
|
42
|
+
|
43
|
+
# Extract the Patient's Name value:
|
44
|
+
dcm.value("0010,0010")
|
45
|
+
# Modify the Patient's Name element:
|
46
|
+
dcm["0010,0010"].value = "Anonymous"
|
47
|
+
# Delete a data element from the DICOM object:
|
48
|
+
dcm.delete("7FE0,0010")
|
49
|
+
|
50
|
+
### Extracting information about the DICOM object
|
51
|
+
|
52
|
+
# Display a short summary of the file's properties:
|
53
|
+
dcm.summary
|
54
|
+
# Print all data elements to screen:
|
55
|
+
dcm.print
|
56
|
+
# Convert the data element hierarchy to a nested hash:
|
57
|
+
dcm.to_hash
|
58
|
+
|
59
|
+
### Handle pixel data
|
60
|
+
|
61
|
+
# Retrieve the pixel data in a Ruby Array:
|
62
|
+
dcm.pixels
|
63
|
+
# Load the pixel data to an numerical array (NArray):
|
64
|
+
dcm.narray
|
65
|
+
# Load the pixel data to an RMagick image object and display it on screen (X):
|
66
|
+
dcm.image.normalize.display
|
67
|
+
|
68
|
+
### Transmit a DICOM file
|
69
|
+
|
70
|
+
# Send a local file to a server (PACS) over the network:
|
71
|
+
node = DClient.new("10.1.25.200", 104)
|
72
|
+
node.send("some_file.dcm")
|
73
|
+
|
74
|
+
### Start a DICOM server
|
75
|
+
|
76
|
+
# Initiate a simple storage provider which can receive DICOM files of all modalities:
|
77
|
+
s = DServer.new(104, :host_ae => "MY_DICOM_SERVER")
|
78
|
+
s.start_scp("C:/temp/")
|
79
|
+
|
80
|
+
### Log settings
|
81
|
+
|
82
|
+
# Change the log level so that only error messages are displayed:
|
83
|
+
DICOM.logger.level = Logger::ERROR
|
84
|
+
# Setting up a simple file log:
|
85
|
+
l = Logger.new('my_logfile.log')
|
86
|
+
DICOM.logger = l
|
87
|
+
# Create a logger which ages logfile daily/monthly:
|
88
|
+
DICOM.logger = Logger.new('foo.log', 'daily')
|
89
|
+
DICOM.logger = Logger.new('foo.log', 'monthly')
|
90
|
+
|
91
|
+
|
92
|
+
### IRB Tip
|
93
|
+
|
94
|
+
When working with Ruby DICOM in irb, you may be annoyed with all the information
|
95
|
+
that is printed to screen, regardless if you have set verbose as false. This is because
|
96
|
+
in irb every variable loaded in the program is automatically printed to the screen.
|
97
|
+
A useful hack to avoid this effect is to append ";0" after a command.
|
98
|
+
Example:
|
99
|
+
|
100
|
+
dcm = DObject.read("some_file.dcm") ;0
|
101
|
+
|
102
|
+
|
103
|
+
## RESOURCES
|
104
|
+
|
105
|
+
* [Official home page](http://dicom.rubyforge.org/)
|
106
|
+
* [Discussion forum](http://groups.google.com/group/ruby-dicom)
|
107
|
+
* [Documentation](http://rubydoc.info/gems/dicom/frames)
|
108
|
+
* [Tutorials](http://dicom.rubyforge.org/tutorials.html)
|
109
|
+
* [Source code repository](https://github.com/dicom/ruby-dicom)
|
110
|
+
|
111
|
+
|
112
|
+
## COPYRIGHT
|
113
|
+
|
114
|
+
Copyright 2008-2014 Christoffer Lervåg
|
115
|
+
|
116
|
+
This program is free software: you can redistribute it and/or modify
|
117
|
+
it under the terms of the GNU General Public License as published by
|
118
|
+
the Free Software Foundation, either version 3 of the License, or
|
119
|
+
(at your option) any later version.
|
120
|
+
|
121
|
+
This program is distributed in the hope that it will be useful,
|
122
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
123
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
124
|
+
GNU General Public License for more details.
|
125
|
+
|
126
|
+
You should have received a copy of the GNU General Public License
|
127
|
+
along with this program. If not, see http://www.gnu.org/licenses/ .
|
128
|
+
|
129
|
+
|
130
|
+
## ABOUT THE AUTHOR
|
131
|
+
|
132
|
+
* Name: Christoffer Lervåg
|
133
|
+
* Location: Norway
|
134
|
+
* Email: chris.lervag [@nospam.com] @gmail.com
|
135
|
+
|
136
|
+
Please don't hesitate to email me if you have any feedback related to this project!
|
137
|
+
|
138
|
+
|
139
|
+
## CONTRIBUTORS
|
140
|
+
|
141
|
+
* [Christoffer Lervåg](https://github.com/dicom)
|
142
|
+
* [John Axel Eriksson](https://github.com/johnae)
|
143
|
+
* [Kamil Bujniewicz](https://github.com/icdark)
|
144
|
+
* [Jeff Miller](https://github.com/jeffmax)
|
145
|
+
* [Donnie Millar](https://github.com/dmillar)
|
146
|
+
* [Björn Albers](https://github.com/bjoernalbers)
|
147
|
+
* [Felix Petriconi](https://github.com/FelixPetriconi)
|
148
|
+
* [Greg Tangey](https://github.com/Ruxton)
|
149
|
+
* [Cian Hughes](https://github.com/cian)
|
150
|
+
* [Steven Bedrick](https://github.com/stevenbedrick)
|
151
|
+
* [Lars Benner](https://github.com/Maturin)
|
152
|
+
* [Brett Goulder](https://github.com/brettgoulder)
|