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
data/lib/dicom/sequence.rb
CHANGED
@@ -4,8 +4,8 @@ module DICOM
|
|
4
4
|
#
|
5
5
|
class Sequence < Parent
|
6
6
|
|
7
|
-
# Include the Elemental mix-in module:
|
8
7
|
include Elemental
|
8
|
+
include ElementalParent
|
9
9
|
|
10
10
|
# Creates a Sequence instance.
|
11
11
|
#
|
@@ -74,18 +74,6 @@ module DICOM
|
|
74
74
|
state.hash
|
75
75
|
end
|
76
76
|
|
77
|
-
# Loads data from an encoded DICOM string and creates
|
78
|
-
# items and elements which are linked to this instance.
|
79
|
-
#
|
80
|
-
# @param [String] bin an encoded binary string containing DICOM information
|
81
|
-
# @param [String] syntax the transfer syntax to use when decoding the DICOM string
|
82
|
-
#
|
83
|
-
def parse(bin, syntax)
|
84
|
-
raise ArgumentError, "Invalid argument 'bin'. Expected String, got #{bin.class}." unless bin.is_a?(String)
|
85
|
-
raise ArgumentError, "Invalid argument 'syntax'. Expected String, got #{syntax.class}." unless syntax.is_a?(String)
|
86
|
-
read(bin, signature=false, :syntax => syntax)
|
87
|
-
end
|
88
|
-
|
89
77
|
# Returns self.
|
90
78
|
#
|
91
79
|
# @return [Sequence] self
|
data/lib/dicom/stream.rb
CHANGED
@@ -41,7 +41,7 @@ module DICOM
|
|
41
41
|
# @param [String] binary a binary string
|
42
42
|
#
|
43
43
|
def add_first(binary)
|
44
|
-
@string = binary
|
44
|
+
@string = "#{binary}#{@string}" if binary
|
45
45
|
end
|
46
46
|
|
47
47
|
# Appends a pre-encoded string to the instance string (inserts at the end).
|
@@ -49,7 +49,7 @@ module DICOM
|
|
49
49
|
# @param [String] binary a binary string
|
50
50
|
#
|
51
51
|
def add_last(binary)
|
52
|
-
@string = @string
|
52
|
+
@string = "#{@string}#{binary}" if binary
|
53
53
|
end
|
54
54
|
|
55
55
|
# Decodes a section of the instance string.
|
@@ -63,12 +63,9 @@ module DICOM
|
|
63
63
|
def decode(length, type)
|
64
64
|
raise ArgumentError, "Invalid argument length. Expected Fixnum, got #{length.class}" unless length.is_a?(Fixnum)
|
65
65
|
raise ArgumentError, "Invalid argument type. Expected string, got #{type.class}" unless type.is_a?(String)
|
66
|
-
|
67
|
-
if (@index + length)
|
68
|
-
#
|
69
|
-
# We have reached the end and will return nil.
|
70
|
-
value = nil
|
71
|
-
else
|
66
|
+
value = nil
|
67
|
+
if (@index + length) <= @string.length
|
68
|
+
# There are sufficient bytes remaining to extract the value:
|
72
69
|
if type == 'AT'
|
73
70
|
# We need to guard ourselves against the case where a string contains an invalid 'AT' value:
|
74
71
|
if length == 4
|
@@ -76,7 +73,6 @@ module DICOM
|
|
76
73
|
else
|
77
74
|
# Invalid. Just return nil.
|
78
75
|
skip(length)
|
79
|
-
value = nil
|
80
76
|
end
|
81
77
|
else
|
82
78
|
# Decode the binary string and return value:
|
@@ -92,7 +88,7 @@ module DICOM
|
|
92
88
|
skip(length)
|
93
89
|
end
|
94
90
|
end
|
95
|
-
|
91
|
+
value
|
96
92
|
end
|
97
93
|
|
98
94
|
# Decodes the entire instance string (typically used for decoding image data).
|
@@ -114,23 +110,19 @@ module DICOM
|
|
114
110
|
#
|
115
111
|
def decode_tag
|
116
112
|
length = 4
|
117
|
-
|
118
|
-
if (@index + length)
|
119
|
-
#
|
120
|
-
|
121
|
-
tag = nil
|
122
|
-
else
|
123
|
-
# Decode and process:
|
124
|
-
string = @string.slice(@index, length).unpack(@hex)[0].upcase
|
113
|
+
tag = nil
|
114
|
+
if (@index + length) <= @string.length
|
115
|
+
# There are sufficient bytes remaining to extract a full tag:
|
116
|
+
str = @string.slice(@index, length).unpack(@hex)[0].upcase
|
125
117
|
if @equal_endian
|
126
|
-
tag =
|
118
|
+
tag = "#{str[2..3]}#{str[0..1]},#{str[6..7]}#{str[4..5]}"
|
127
119
|
else
|
128
|
-
tag =
|
120
|
+
tag = "#{str[0..3]},#{str[4..7]}"
|
129
121
|
end
|
130
122
|
# Update our position in the string:
|
131
123
|
skip(length)
|
132
124
|
end
|
133
|
-
|
125
|
+
tag
|
134
126
|
end
|
135
127
|
|
136
128
|
# Encodes a given value to a binary string.
|
@@ -152,8 +144,7 @@ module DICOM
|
|
152
144
|
#
|
153
145
|
def encode_first(value, type)
|
154
146
|
value = [value] unless value.is_a?(Array)
|
155
|
-
|
156
|
-
@string = bin + @string
|
147
|
+
@string = "#{value.pack(vr_to_str(type))}#{@string}"
|
157
148
|
end
|
158
149
|
|
159
150
|
# Encodes a value to a binary string and appends it to the instance string.
|
@@ -163,8 +154,7 @@ module DICOM
|
|
163
154
|
#
|
164
155
|
def encode_last(value, type)
|
165
156
|
value = [value] unless value.is_a?(Array)
|
166
|
-
|
167
|
-
@string = @string + bin
|
157
|
+
@string = "#{@string}#{value.pack(vr_to_str(type))}"
|
168
158
|
end
|
169
159
|
|
170
160
|
# Appends a string with trailling spaces to achieve a target length, and encodes it to a binary string.
|
@@ -176,7 +166,7 @@ module DICOM
|
|
176
166
|
def encode_string_with_trailing_spaces(string, target_length)
|
177
167
|
length = string.length
|
178
168
|
if length < target_length
|
179
|
-
return [string].pack(@str)
|
169
|
+
return "#{[string].pack(@str)}#{['20'*(target_length-length)].pack(@hex)}"
|
180
170
|
elsif length == target_length
|
181
171
|
return [string].pack(@str)
|
182
172
|
else
|
@@ -190,12 +180,9 @@ module DICOM
|
|
190
180
|
# @return [String] an encoded binary string
|
191
181
|
#
|
192
182
|
def encode_tag(tag)
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
clean_tag = tag[0..3] + tag[5..8]
|
197
|
-
end
|
198
|
-
return [clean_tag].pack(@hex)
|
183
|
+
[
|
184
|
+
@equal_endian ? "#{tag[2..3]}#{tag[0..1]}#{tag[7..8]}#{tag[5..6]}" : "#{tag[0..3]}#{tag[5..8]}"
|
185
|
+
].pack(@hex)
|
199
186
|
end
|
200
187
|
|
201
188
|
# Encodes a value, and if the the resulting binary string has an
|
@@ -216,7 +203,7 @@ module DICOM
|
|
216
203
|
# Encode:
|
217
204
|
bin = value.pack(type)
|
218
205
|
# Add an empty byte if the resulting binary has an odd length:
|
219
|
-
bin = bin
|
206
|
+
bin = "#{bin}#{@pad_byte[vr]}" if bin.length.odd?
|
220
207
|
end
|
221
208
|
return bin
|
222
209
|
end
|
@@ -372,36 +359,36 @@ module DICOM
|
|
372
359
|
#
|
373
360
|
def set_format_hash
|
374
361
|
@format = {
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
362
|
+
'BY' => @by, # Byte/Character (1-byte integers)
|
363
|
+
'US' => @us, # Unsigned short (2 bytes)
|
364
|
+
'SS' => @ss, # Signed short (2 bytes)
|
365
|
+
'UL' => @ul, # Unsigned long (4 bytes)
|
366
|
+
'SL' => @sl, # Signed long (4 bytes)
|
367
|
+
'FL' => @fs, # Floating point single (4 bytes)
|
368
|
+
'FD' => @fd, # Floating point double (8 bytes)
|
369
|
+
'OB' => @by, # Other byte string (1-byte integers)
|
370
|
+
'OF' => @fs, # Other float string (4-byte floating point numbers)
|
371
|
+
'OW' => @us, # Other word string (2-byte integers)
|
372
|
+
'AT' => @hex, # Tag reference (4 bytes) NB: For tags the spesialized encode_tag/decode_tag methods are used instead of this lookup table.
|
373
|
+
'UN' => @hex, # Unknown information (header element is not recognized from local database)
|
374
|
+
'HEX' => @hex, # HEX
|
388
375
|
# We have a number of VRs that are decoded as string:
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
376
|
+
'AE' => @str,
|
377
|
+
'AS' => @str,
|
378
|
+
'CS' => @str,
|
379
|
+
'DA' => @str,
|
380
|
+
'DS' => @str,
|
381
|
+
'DT' => @str,
|
382
|
+
'IS' => @str,
|
383
|
+
'LO' => @str,
|
384
|
+
'LT' => @str,
|
385
|
+
'PN' => @str,
|
386
|
+
'SH' => @str,
|
387
|
+
'ST' => @str,
|
388
|
+
'TM' => @str,
|
389
|
+
'UI' => @str,
|
390
|
+
'UT' => @str,
|
391
|
+
'STR' => @str
|
405
392
|
}
|
406
393
|
end
|
407
394
|
|
@@ -411,35 +398,35 @@ module DICOM
|
|
411
398
|
def set_pad_byte
|
412
399
|
@pad_byte = {
|
413
400
|
# Space character:
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
401
|
+
'AE' => "\x20",
|
402
|
+
'AS' => "\x20",
|
403
|
+
'CS' => "\x20",
|
404
|
+
'DA' => "\x20",
|
405
|
+
'DS' => "\x20",
|
406
|
+
'DT' => "\x20",
|
407
|
+
'IS' => "\x20",
|
408
|
+
'LO' => "\x20",
|
409
|
+
'LT' => "\x20",
|
410
|
+
'PN' => "\x20",
|
411
|
+
'SH' => "\x20",
|
412
|
+
'ST' => "\x20",
|
413
|
+
'TM' => "\x20",
|
414
|
+
'UT' => "\x20",
|
428
415
|
# Zero byte:
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
416
|
+
'AT' => "\x00",
|
417
|
+
'BY' => "\x00",
|
418
|
+
'FL' => "\x00",
|
419
|
+
'FD' => "\x00",
|
420
|
+
'OB' => "\x00",
|
421
|
+
'OF' => "\x00",
|
422
|
+
'OW' => "\x00",
|
423
|
+
'SL' => "\x00",
|
424
|
+
'SQ' => "\x00",
|
425
|
+
'SS' => "\x00",
|
426
|
+
'UI' => "\x00",
|
427
|
+
'UL' => "\x00",
|
428
|
+
'UN' => "\x00",
|
429
|
+
'US' => "\x00"
|
443
430
|
}
|
444
431
|
end
|
445
432
|
|
@@ -447,34 +434,27 @@ module DICOM
|
|
447
434
|
# Some of these depends on the endianness of the system and the encoded string.
|
448
435
|
#
|
449
436
|
def set_string_formats
|
450
|
-
# FIXME:
|
451
|
-
# Surprisingly the Ruby pack/unpack methods lack a format for signed short
|
452
|
-
# and signed long in the network byte order. A hack has been implemented to to ensure
|
453
|
-
# correct behaviour in this case, but it is slower (~4 times slower than a normal pack/unpack).
|
454
|
-
# Update: This seems to have been fixed in Ruby 1.9.3, so when we are able to bump the Ruby
|
455
|
-
# dependency eventually, this situation can finally be cleaned up.
|
456
|
-
#
|
457
437
|
if @equal_endian
|
458
|
-
#
|
459
|
-
@us =
|
460
|
-
@ss =
|
461
|
-
@ul =
|
462
|
-
@sl =
|
463
|
-
@fs =
|
464
|
-
@fd =
|
438
|
+
# Little endian byte order:
|
439
|
+
@us = 'S<*' # Unsigned short (2 bytes)
|
440
|
+
@ss = 's<*' # Signed short (2 bytes)
|
441
|
+
@ul = 'L<*' # Unsigned long (4 bytes)
|
442
|
+
@sl = 'l<*' # Signed long (4 bytes)
|
443
|
+
@fs = 'e*' # Floating point single (4 bytes)
|
444
|
+
@fd = 'E*' # Floating point double ( 8 bytes)
|
465
445
|
else
|
466
|
-
# Network byte order:
|
467
|
-
@us =
|
468
|
-
@ss =
|
469
|
-
@ul =
|
470
|
-
@sl =
|
471
|
-
@fs =
|
472
|
-
@fd =
|
446
|
+
# Network (big endian) byte order:
|
447
|
+
@us = 'S>*'
|
448
|
+
@ss = 's>*'
|
449
|
+
@ul = 'L>*'
|
450
|
+
@sl = 'l>'
|
451
|
+
@fs = 'g*'
|
452
|
+
@fd = 'G*'
|
473
453
|
end
|
474
454
|
# Format strings that are not dependent on endianness:
|
475
|
-
@by =
|
476
|
-
@str =
|
477
|
-
@hex =
|
455
|
+
@by = 'C*' # Unsigned char (1 byte)
|
456
|
+
@str = 'a*'
|
457
|
+
@hex = 'H*' # (this may be dependent on endianness(?))
|
478
458
|
end
|
479
459
|
|
480
460
|
end
|
data/rakefile.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dicom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christoffer Lervag
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,47 +16,50 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.6'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: mini_magick
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '3.7'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '3.7'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: mocha
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '1.1'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '1.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: narray
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.6'
|
62
|
+
- - ! '>='
|
60
63
|
- !ruby/object:Gem::Version
|
61
64
|
version: 0.6.0.8
|
62
65
|
type: :development
|
@@ -64,6 +67,9 @@ dependencies:
|
|
64
67
|
version_requirements: !ruby/object:Gem::Requirement
|
65
68
|
requirements:
|
66
69
|
- - ~>
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0.6'
|
72
|
+
- - ! '>='
|
67
73
|
- !ruby/object:Gem::Version
|
68
74
|
version: 0.6.0.8
|
69
75
|
- !ruby/object:Gem::Dependency
|
@@ -72,19 +78,36 @@ dependencies:
|
|
72
78
|
requirements:
|
73
79
|
- - ~>
|
74
80
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
81
|
+
version: '10.3'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ~>
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '10.3'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: redcarpet
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ~>
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '3.1'
|
76
96
|
type: :development
|
77
97
|
prerelease: false
|
78
98
|
version_requirements: !ruby/object:Gem::Requirement
|
79
99
|
requirements:
|
80
100
|
- - ~>
|
81
101
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
102
|
+
version: '3.1'
|
83
103
|
- !ruby/object:Gem::Dependency
|
84
104
|
name: rmagick
|
85
105
|
requirement: !ruby/object:Gem::Requirement
|
86
106
|
requirements:
|
87
107
|
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '2.13'
|
110
|
+
- - ! '>='
|
88
111
|
- !ruby/object:Gem::Version
|
89
112
|
version: 2.13.2
|
90
113
|
type: :development
|
@@ -92,6 +115,9 @@ dependencies:
|
|
92
115
|
version_requirements: !ruby/object:Gem::Requirement
|
93
116
|
requirements:
|
94
117
|
- - ~>
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '2.13'
|
120
|
+
- - ! '>='
|
95
121
|
- !ruby/object:Gem::Version
|
96
122
|
version: 2.13.2
|
97
123
|
- !ruby/object:Gem::Dependency
|
@@ -100,28 +126,34 @@ dependencies:
|
|
100
126
|
requirements:
|
101
127
|
- - ~>
|
102
128
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
129
|
+
version: '3.0'
|
104
130
|
type: :development
|
105
131
|
prerelease: false
|
106
132
|
version_requirements: !ruby/object:Gem::Requirement
|
107
133
|
requirements:
|
108
134
|
- - ~>
|
109
135
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
136
|
+
version: '3.0'
|
111
137
|
- !ruby/object:Gem::Dependency
|
112
138
|
name: yard
|
113
139
|
requirement: !ruby/object:Gem::Requirement
|
114
140
|
requirements:
|
115
141
|
- - ~>
|
116
142
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.8
|
143
|
+
version: '0.8'
|
144
|
+
- - ! '>='
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: 0.8.7
|
118
147
|
type: :development
|
119
148
|
prerelease: false
|
120
149
|
version_requirements: !ruby/object:Gem::Requirement
|
121
150
|
requirements:
|
122
151
|
- - ~>
|
123
152
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.8
|
153
|
+
version: '0.8'
|
154
|
+
- - ! '>='
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: 0.8.7
|
125
157
|
description: DICOM is a standard widely used throughout the world to store and transfer
|
126
158
|
medical image data. This library enables efficient and powerful handling of DICOM
|
127
159
|
in Ruby, to the benefit of any student or professional who would like to use their
|
@@ -131,44 +163,49 @@ executables: []
|
|
131
163
|
extensions: []
|
132
164
|
extra_rdoc_files: []
|
133
165
|
files:
|
166
|
+
- CHANGELOG.md
|
167
|
+
- CONTRIBUTING.md
|
168
|
+
- COPYING
|
169
|
+
- Gemfile
|
170
|
+
- Gemfile.lock
|
171
|
+
- README.md
|
172
|
+
- dicom.gemspec
|
173
|
+
- lib/dicom.rb
|
134
174
|
- lib/dicom/anonymizer.rb
|
135
175
|
- lib/dicom/audit_trail.rb
|
136
|
-
- lib/dicom/constants.rb
|
137
|
-
- lib/dicom/deprecated.rb
|
138
|
-
- lib/dicom/dictionary/elements.txt
|
139
|
-
- lib/dicom/dictionary/uids.txt
|
140
|
-
- lib/dicom/dictionary_element.rb
|
141
176
|
- lib/dicom/d_client.rb
|
142
177
|
- lib/dicom/d_library.rb
|
143
178
|
- lib/dicom/d_object.rb
|
144
179
|
- lib/dicom/d_read.rb
|
145
180
|
- lib/dicom/d_server.rb
|
146
181
|
- lib/dicom/d_write.rb
|
182
|
+
- lib/dicom/dictionary/elements.tsv
|
183
|
+
- lib/dicom/dictionary/uids.tsv
|
184
|
+
- lib/dicom/dictionary_element.rb
|
147
185
|
- lib/dicom/element.rb
|
148
186
|
- lib/dicom/elemental.rb
|
187
|
+
- lib/dicom/elemental_parent.rb
|
188
|
+
- lib/dicom/extensions/array.rb
|
189
|
+
- lib/dicom/extensions/hash.rb
|
190
|
+
- lib/dicom/extensions/string.rb
|
149
191
|
- lib/dicom/file_handler.rb
|
192
|
+
- lib/dicom/general/constants.rb
|
193
|
+
- lib/dicom/general/deprecated.rb
|
194
|
+
- lib/dicom/general/logging.rb
|
195
|
+
- lib/dicom/general/methods.rb
|
196
|
+
- lib/dicom/general/variables.rb
|
197
|
+
- lib/dicom/general/version.rb
|
150
198
|
- lib/dicom/image_item.rb
|
151
199
|
- lib/dicom/image_processor.rb
|
152
200
|
- lib/dicom/image_processor_mini_magick.rb
|
153
201
|
- lib/dicom/image_processor_r_magick.rb
|
154
202
|
- lib/dicom/item.rb
|
155
203
|
- lib/dicom/link.rb
|
156
|
-
- lib/dicom/logging.rb
|
157
204
|
- lib/dicom/parent.rb
|
158
|
-
- lib/dicom/ruby_extensions.rb
|
159
205
|
- lib/dicom/sequence.rb
|
160
206
|
- lib/dicom/stream.rb
|
161
207
|
- lib/dicom/uid.rb
|
162
|
-
- lib/dicom/variables.rb
|
163
|
-
- lib/dicom/version.rb
|
164
|
-
- lib/dicom.rb
|
165
|
-
- CHANGELOG.rdoc
|
166
|
-
- CONTRIBUTING.rdoc
|
167
|
-
- COPYING
|
168
|
-
- dicom.gemspec
|
169
|
-
- Gemfile
|
170
208
|
- rakefile.rb
|
171
|
-
- README.rdoc
|
172
209
|
homepage: http://dicom.rubyforge.org/
|
173
210
|
licenses:
|
174
211
|
- GPLv3
|
@@ -179,17 +216,17 @@ require_paths:
|
|
179
216
|
- lib
|
180
217
|
required_ruby_version: !ruby/object:Gem::Requirement
|
181
218
|
requirements:
|
182
|
-
- - '>='
|
219
|
+
- - ! '>='
|
183
220
|
- !ruby/object:Gem::Version
|
184
|
-
version: 1.9.
|
221
|
+
version: 1.9.3
|
185
222
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
186
223
|
requirements:
|
187
|
-
- - '>='
|
224
|
+
- - ! '>='
|
188
225
|
- !ruby/object:Gem::Version
|
189
226
|
version: '0'
|
190
227
|
requirements: []
|
191
228
|
rubyforge_project: dicom
|
192
|
-
rubygems_version: 2.
|
229
|
+
rubygems_version: 2.2.1
|
193
230
|
signing_key:
|
194
231
|
specification_version: 4
|
195
232
|
summary: Library for handling DICOM files and DICOM network communication.
|