metamri 0.2.15 → 0.2.16

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  source "http://rubygems.org"
2
2
 
3
+
3
4
  # Specify your gem's dependencies in metamri.gemspec
4
5
  gemspec
data/bin/convert_visit.rb CHANGED
@@ -42,7 +42,7 @@ def convert_visit(raw_directory, scan_procedure_codename, output_directory = nil
42
42
  output_directory = output_directory ||= v.default_preprocess_directory
43
43
 
44
44
  begin
45
- default_options = {:ignore_patterns => [/vipr/,/900$/,/901$/,/999$/]} # seems to like number , not like string ??? /raw/,
45
+ default_options = {:ignore_patterns => [/vipr/,/900$/,/901$/,/999$/]} # seems to like number , not like string
46
46
  #options = default_options.merge(options)
47
47
  v.scan(default_options)
48
48
  v.to_nifti!(output_directory)
@@ -1,6 +1,6 @@
1
1
  require 'tmpdir'
2
2
  begin
3
- %W{dicom RMagick}.each do |lib|
3
+ %W{dicom }.each do |lib| #####RMagick
4
4
  require lib unless defined?(lib)
5
5
  end
6
6
  rescue LoadError => e
@@ -86,10 +86,12 @@ class RawImageDatasetThumbnail
86
86
  default_name = @dataset.series_description.escape_filename
87
87
  filepath ||= File.join(output_directory, default_name + '.png')
88
88
 
89
+
89
90
  begin
90
91
  case @processor
91
92
  when :rubydicom
92
- @path = create_thumbnail_with_rubydicom(filepath)
93
+ @path = create_thumbnail_with_rubydicom_dcmtk(filepath)
94
+ #@path = create_thumbnail_with_rubydicom(filepath)
93
95
  when :slicer
94
96
  @path = create_thumbnail_with_fsl_slicer(filepath)
95
97
  end
@@ -108,6 +110,38 @@ class RawImageDatasetThumbnail
108
110
  end
109
111
 
110
112
  private
113
+
114
+ # Creates a thumbnail using RubyDicom and dcmtk
115
+ # Pass in an absolute or relative filepath, including filename and extension.
116
+ # Returns an absolute path to the created thumbnail image.
117
+ def create_thumbnail_with_rubydicom_dcmtk(output_file)
118
+ output_file = File.expand_path(output_file)
119
+
120
+ dicom_files = Dir.glob(File.join(dataset.directory, dataset.glob))
121
+ if dicom_files.empty? # Try the glob again with a zipped extension.
122
+ dicom_files = Dir.glob(File.join(dataset.directory, dataset.glob) + '*.bz2')
123
+ end
124
+ if dicom_files.empty? # If still empty...
125
+ raise StandardError, "Could not find dicom files using #{dataset.glob} in #{dataset.directory}"
126
+ end
127
+ dicom_file = Pathname(dicom_files[(dicom_files.size/2)+1])
128
+ dicom_file.local_copy do |lc|
129
+ dcm = DICOM::DObject.new(lc.to_s)
130
+ raise ScriptError, "Could not read dicom #{dicom_file.to_s}" unless dcm.read_success
131
+ v_call = "dcmj2pnm -v +Wi 1 --write-png "+lc.to_s+" "+output_file
132
+ v_results = %x[#{v_call}]
133
+ puts "results= "+v_results
134
+ puts "dicom_file= "+dicom_file.to_s
135
+ puts "output_file= "+output_file
136
+ #### image = dcm.get_image_magick(:rescale => true)
137
+ #### raise ScriptError, "RubyDicom did not return an image array (this is probably a color image)." unless image.kind_of? Magick::Image
138
+ #### image.write(output_file)
139
+ end
140
+
141
+ raise(ScriptError, "Error creating thumbnail #{output_file}") unless File.exist?(output_file)
142
+
143
+ return output_file
144
+ end
111
145
 
112
146
  # Creates a thumbnail using RubyDicom
113
147
  # Pass in an absolute or relative filepath, including filename and extension.
@@ -1,3 +1,3 @@
1
1
  module Metamri
2
- VERSION = "0.2.15"
2
+ VERSION = "0.2.16"
3
3
  end
@@ -4,7 +4,7 @@ require 'tempfile'
4
4
  require 'yaml'
5
5
  require 'tmpdir'
6
6
  require 'fileutils'
7
- require 'sqlite3'
7
+ require 'sqlite3' # being used in code with inserts and things?????
8
8
  require 'logger'
9
9
  require 'pp'
10
10
  require 'metamri/raw_image_file'
data/lib/metamri.rb CHANGED
@@ -8,7 +8,7 @@ begin
8
8
  require 'hirb'
9
9
  require 'rspec'
10
10
  require 'dicom'
11
- require 'rmagick'
11
+ ##### require 'rmagick'
12
12
  require 'sqlite'
13
13
  rescue LoadError
14
14
  end
data/metamri.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.add_runtime_dependency('dicom', "~> 0.8.0")
21
21
  s.add_runtime_dependency('activeresource', "~> 3.0")
22
- s.add_runtime_dependency('rmagick', "~> 2.13.1") # rmagick is used by the panda snapshots, so should not be needed on a machine only doing convert visit
22
+ ##### s.add_runtime_dependency('rmagick', "~> 2.13.1")
23
23
  s.add_runtime_dependency('hirb', "~> 0.4")
24
24
  s.add_runtime_dependency('sqlite3', "~>1.3.4")
25
25
  s.add_development_dependency('rspec', "~> 2.5")
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metamri
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 55
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 15
10
- version: 0.2.15
9
+ - 16
10
+ version: 0.2.16
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kristopher J. Kosmatka
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2013-02-18 00:00:00 Z
19
+ date: 2013-03-25 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: dicom
@@ -49,26 +49,10 @@ dependencies:
49
49
  version: "3.0"
50
50
  type: :runtime
51
51
  version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: rmagick
54
- prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
56
- none: false
57
- requirements:
58
- - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 57
61
- segments:
62
- - 2
63
- - 13
64
- - 1
65
- version: 2.13.1
66
- type: :runtime
67
- version_requirements: *id003
68
52
  - !ruby/object:Gem::Dependency
69
53
  name: hirb
70
54
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
55
+ requirement: &id003 !ruby/object:Gem::Requirement
72
56
  none: false
73
57
  requirements:
74
58
  - - ~>
@@ -79,11 +63,11 @@ dependencies:
79
63
  - 4
80
64
  version: "0.4"
81
65
  type: :runtime
82
- version_requirements: *id004
66
+ version_requirements: *id003
83
67
  - !ruby/object:Gem::Dependency
84
68
  name: sqlite3
85
69
  prerelease: false
86
- requirement: &id005 !ruby/object:Gem::Requirement
70
+ requirement: &id004 !ruby/object:Gem::Requirement
87
71
  none: false
88
72
  requirements:
89
73
  - - ~>
@@ -95,11 +79,11 @@ dependencies:
95
79
  - 4
96
80
  version: 1.3.4
97
81
  type: :runtime
98
- version_requirements: *id005
82
+ version_requirements: *id004
99
83
  - !ruby/object:Gem::Dependency
100
84
  name: rspec
101
85
  prerelease: false
102
- requirement: &id006 !ruby/object:Gem::Requirement
86
+ requirement: &id005 !ruby/object:Gem::Requirement
103
87
  none: false
104
88
  requirements:
105
89
  - - ~>
@@ -110,11 +94,11 @@ dependencies:
110
94
  - 5
111
95
  version: "2.5"
112
96
  type: :development
113
- version_requirements: *id006
97
+ version_requirements: *id005
114
98
  - !ruby/object:Gem::Dependency
115
99
  name: escoffier
116
100
  prerelease: false
117
- requirement: &id007 !ruby/object:Gem::Requirement
101
+ requirement: &id006 !ruby/object:Gem::Requirement
118
102
  none: false
119
103
  requirements:
120
104
  - - ">="
@@ -124,7 +108,7 @@ dependencies:
124
108
  - 0
125
109
  version: "0"
126
110
  type: :development
127
- version_requirements: *id007
111
+ version_requirements: *id006
128
112
  description: Extraction of MRI metadata.
129
113
  email: ekk@medicine.wisc.edu
130
114
  executables: