dicom 0.9.5 → 0.9.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +13 -5
  2. data/{CHANGELOG.rdoc → CHANGELOG.md} +50 -30
  3. data/{CONTRIBUTING.rdoc → CONTRIBUTING.md} +16 -16
  4. data/Gemfile.lock +47 -0
  5. data/README.md +152 -0
  6. data/dicom.gemspec +11 -10
  7. data/lib/dicom.rb +30 -11
  8. data/lib/dicom/anonymizer.rb +654 -649
  9. data/lib/dicom/audit_trail.rb +0 -2
  10. data/lib/dicom/d_client.rb +1 -1
  11. data/lib/dicom/d_library.rb +45 -15
  12. data/lib/dicom/d_object.rb +18 -18
  13. data/lib/dicom/d_read.rb +28 -4
  14. data/lib/dicom/d_write.rb +49 -26
  15. data/lib/dicom/dictionary/{elements.txt → elements.tsv} +0 -0
  16. data/lib/dicom/dictionary/{uids.txt → uids.tsv} +0 -0
  17. data/lib/dicom/element.rb +6 -7
  18. data/lib/dicom/elemental.rb +1 -0
  19. data/lib/dicom/elemental_parent.rb +64 -0
  20. data/lib/dicom/extensions/array.rb +57 -0
  21. data/lib/dicom/extensions/hash.rb +31 -0
  22. data/lib/dicom/extensions/string.rb +126 -0
  23. data/lib/dicom/{constants.rb → general/constants.rb} +29 -38
  24. data/lib/dicom/{deprecated.rb → general/deprecated.rb} +0 -0
  25. data/lib/dicom/{logging.rb → general/logging.rb} +0 -0
  26. data/lib/dicom/{variables.rb → general/methods.rb} +0 -22
  27. data/lib/dicom/general/variables.rb +29 -0
  28. data/lib/dicom/{version.rb → general/version.rb} +1 -1
  29. data/lib/dicom/image_item.rb +0 -2
  30. data/lib/dicom/image_processor.rb +2 -0
  31. data/lib/dicom/item.rb +1 -13
  32. data/lib/dicom/link.rb +2 -1
  33. data/lib/dicom/parent.rb +34 -86
  34. data/lib/dicom/sequence.rb +1 -13
  35. data/lib/dicom/stream.rb +94 -114
  36. data/rakefile.rb +1 -1
  37. metadata +73 -36
  38. data/README.rdoc +0 -149
  39. data/lib/dicom/ruby_extensions.rb +0 -249
@@ -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
@@ -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 + @string if 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 + binary if binary
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
- # Check if values are valid:
67
- if (@index + length) > @string.length
68
- # The index number is bigger then the length of the binary string.
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
- return value
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
- # Check if values are valid:
118
- if (@index + length) > @string.length
119
- # The index number is bigger then the length of the binary string.
120
- # We have reached the end and will return nil.
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 = string[2..3] + string[0..1] + ',' + string[6..7] + string[4..5]
118
+ tag = "#{str[2..3]}#{str[0..1]},#{str[6..7]}#{str[4..5]}"
127
119
  else
128
- tag = string[0..3] + ',' + string[4..7]
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
- return tag
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
- bin = value.pack(vr_to_str(type))
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
- bin = value.pack(vr_to_str(type))
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)+['20'*(target_length-length)].pack(@hex)
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
- if @equal_endian
194
- clean_tag = tag[2..3] + tag[0..1] + tag[7..8] + tag[5..6]
195
- else
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 + @pad_byte[vr] if bin.length.odd?
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
- "BY" => @by, # Byte/Character (1-byte integers)
376
- "US" => @us, # Unsigned short (2 bytes)
377
- "SS" => @ss, # Signed short (2 bytes)
378
- "UL" => @ul, # Unsigned long (4 bytes)
379
- "SL" => @sl, # Signed long (4 bytes)
380
- "FL" => @fs, # Floating point single (4 bytes)
381
- "FD" => @fd, # Floating point double (8 bytes)
382
- "OB" => @by, # Other byte string (1-byte integers)
383
- "OF" => @fs, # Other float string (4-byte floating point numbers)
384
- "OW" => @us, # Other word string (2-byte integers)
385
- "AT" => @hex, # Tag reference (4 bytes) NB: For tags the spesialized encode_tag/decode_tag methods are used instead of this lookup table.
386
- "UN" => @hex, # Unknown information (header element is not recognized from local database)
387
- "HEX" => @hex, # HEX
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
- "AE" => @str,
390
- "AS" => @str,
391
- "CS" => @str,
392
- "DA" => @str,
393
- "DS" => @str,
394
- "DT" => @str,
395
- "IS" => @str,
396
- "LO" => @str,
397
- "LT" => @str,
398
- "PN" => @str,
399
- "SH" => @str,
400
- "ST" => @str,
401
- "TM" => @str,
402
- "UI" => @str,
403
- "UT" => @str,
404
- "STR" => @str
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
- "AE" => "\x20",
415
- "AS" => "\x20",
416
- "CS" => "\x20",
417
- "DA" => "\x20",
418
- "DS" => "\x20",
419
- "DT" => "\x20",
420
- "IS" => "\x20",
421
- "LO" => "\x20",
422
- "LT" => "\x20",
423
- "PN" => "\x20",
424
- "SH" => "\x20",
425
- "ST" => "\x20",
426
- "TM" => "\x20",
427
- "UT" => "\x20",
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
- "AT" => "\x00",
430
- "BY" => "\x00",
431
- "FL" => "\x00",
432
- "FD" => "\x00",
433
- "OB" => "\x00",
434
- "OF" => "\x00",
435
- "OW" => "\x00",
436
- "SL" => "\x00",
437
- "SQ" => "\x00",
438
- "SS" => "\x00",
439
- "UI" => "\x00",
440
- "UL" => "\x00",
441
- "UN" => "\x00",
442
- "US" => "\x00"
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
- # Native byte order:
459
- @us = "S*" # Unsigned short (2 bytes)
460
- @ss = "s*" # Signed short (2 bytes)
461
- @ul = "I*" # Unsigned long (4 bytes)
462
- @sl = "l*" # Signed long (4 bytes)
463
- @fs = "e*" # Floating point single (4 bytes)
464
- @fd = "E*" # Floating point double ( 8 bytes)
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 = "n*"
468
- @ss = CUSTOM_SS # Custom string for our redefined pack/unpack.
469
- @ul = "N*"
470
- @sl = CUSTOM_SL # Custom string for our redefined pack/unpack.
471
- @fs = "g*"
472
- @fd = "G*"
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 = "C*" # Unsigned char (1 byte)
476
- @str = "a*"
477
- @hex = "H*" # (this may be dependent on endianness(?))
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
@@ -19,7 +19,7 @@ Gem::PackageTask.new(gem_spec) do |pkg|
19
19
  pkg.need_tar = true
20
20
  end
21
21
 
22
- # RSpec 2:
22
+ # RSpec:
23
23
  RSpec::Core::RakeTask.new do |t|
24
24
  t.rspec_opts = ["-c", "-f progress", "-r ./spec/spec_helper.rb"]
25
25
  t.pattern = 'spec/**/*_spec.rb'
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.5
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: 2013-03-26 00:00:00.000000000 Z
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.3'
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.3'
26
+ version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
- name: mocha
28
+ name: mini_magick
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: '0.13'
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: '0.13'
40
+ version: '3.7'
41
41
  - !ruby/object:Gem::Dependency
42
- name: mini_magick
42
+ name: mocha
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: '3.5'
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: '3.5'
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: 0.9.6
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: 0.9.6
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: '2.13'
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: '2.13'
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.5
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.5
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.2
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.0.0
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.