metamri 0.1.10 → 0.1.11

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.10
1
+ 0.1.11
@@ -36,7 +36,8 @@ require 'logger'
36
36
  #
37
37
  #
38
38
  # == Usage
39
- #
39
+ #
40
+ # convert_visit.rb /Data/vtrak1/raw/ries.aware.visit1/awr001_9999_010110/ ries.aware.visit1 /tmp/awr001
40
41
  #
41
42
  # == Example
42
43
  #
@@ -66,9 +67,13 @@ if File.basename(__FILE__) == File.basename($PROGRAM_NAME)
66
67
  RDoc::usage() if (ARGV[0] == '-h')
67
68
  raw_directory = ARGV[0]
68
69
 
69
- # This is required for now, will be inferred from path in the future.
70
- scan_procedure_codename = ARGV[1]
70
+
71
+ # Optional Scan Procdedure Codename
72
+ # If not given this is inferred by VisitRawDataDirectory#get_scan_procedure_based_on_raw_directory
73
+ scan_procedure_codename = ARGV[1] ? ARGV[1] : nil
71
74
 
75
+ # Optional Output Directory
76
+ # If not given this is inferred by VisitRawDataDirectory#default_preprocess_directory
72
77
  output_directory = ARGV[2] ? ARGV[2] : nil
73
78
 
74
79
  convert_visit(raw_directory, scan_procedure_codename, output_directory)
@@ -1,10 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
3
  # == Synopsis
4
- # A simple utility for importing imaging data collected during one visit into the WADRC Data Tools web
5
- # application. Data from a visit is contained in one big directory that may have many subdirectories.
6
- # Each individual imaging scan may be composed of an entire directory of dicom files or one single p-file.
7
- # This utility scans through all of the image data sets and retrieved meta-data about the scans from their
4
+ # A simple utility for importing imaging data collected during one
5
+ # visit into the WADRC Data Tools web application. Data from a visit
6
+ # is contained in one large directory that may have many subdirectories.
7
+ # Each individual imaging scan may be composed of an entire directory
8
+ # of dicom files or one single p-file. This utility scans through all
9
+ # of the image data sets and retrieved meta-data about the scans from their
8
10
  # header information.
9
11
  #
10
12
  # == Examples
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # == Synopsis
4
+ # A simple utility for listing visit details and scan acquistion
5
+ # information from the terminal, either through freshly scanning
6
+ # the filesystem or connecting to an imaging database and looking
7
+ # up information through there (for Image Quality Checks, for
8
+ # example.
9
+ #
10
+ # == Examples
11
+ #
12
+ # list_visit /Data/vtrak1/raw/ries.aware.visit1/awr001_7854_02102009
13
+ #
14
+ # cd /Data/vtrak1/raw/ries.aware.visit1/awr001_7854_02102009
15
+ # list_visit
16
+ #
17
+ # If no raw data directory is given, the current directory will be assumed.
18
+ # list_visit
19
+ #
20
+ # == Usage
21
+ # list_visit <raw_data_directory>
22
+ #
23
+ # For help use: list_vist -h
24
+ #
25
+ # == Options
26
+ # -h, --help Displays help message
27
+ #
28
+ # == Author
29
+ # Erik Kastman
30
+ # WADRC Imaging Core
31
+ #
32
+
33
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
34
+
35
+ require 'metamri'
36
+ require 'pathname'
37
+ require 'rdoc/usage'
38
+ require 'logger'
39
+
40
+ def list_visit(raw_directory)
41
+ $LOG = Logger.new(STDOUT)
42
+ $LOG.level = Logger::INFO
43
+ visit = VisitRawDataDirectory.new(raw_directory)
44
+ # visit = VisitRawDataDirectoryResource.find(:all, :from => '/visits/found.xml', :params => {:visit_search => {:rmr => 'rmr'}})
45
+
46
+ begin
47
+ visit.scan
48
+ # visit.datasets = RawImageDatasetResource.find(:all, :from => "/visits/#{visit.database_id}/image_datasets.xml" )
49
+ rescue IndexError => e
50
+ $LOG.error "Are you sure #{raw_directory} is a valid raw visit directory?"
51
+ raise e
52
+ rescue Exception => e
53
+ $LOG.error "There was a problem scanning a dataset in #{visit.visit_directory}... skipping."
54
+ $LOG.error "Exception message: #{e.message}"
55
+ raise e
56
+ end
57
+
58
+ visit.to_s
59
+
60
+ end
61
+
62
+ if File.basename(__FILE__) == File.basename($PROGRAM_NAME)
63
+ RDoc::usage() if (ARGV[0] == '-h')
64
+
65
+ # Default to scanning the current directory if no argument was given.
66
+ raw_directory = ARGV[0] ||= File.expand_path('.')
67
+
68
+ list_visit(raw_directory)
69
+ end
@@ -4,6 +4,14 @@ require 'raw_image_file'
4
4
  require 'raw_image_dataset'
5
5
  require 'visit_raw_data_directory'
6
6
  require 'metamri/core_additions'
7
+ require 'metamri/raw_image_dataset_resource'
8
+ require 'metamri/visit_raw_data_directory_resource'
9
+
10
+ begin
11
+ require 'hirb'
12
+ rescue LoadError => e
13
+ puts "Hirb must be installed for pretty output. Use 'sudo gem install hirb'"
14
+ end
7
15
 
8
16
  module Metamri
9
17
  end
@@ -14,4 +14,89 @@ Does same basic string replacements to ensure valid filenames.
14
14
  end
15
15
  end
16
16
 
17
+ end
18
+
19
+ class Pathname
20
+ MIN_PFILE_SIZE = 10_000_000
21
+
22
+ def each_subdirectory
23
+ each_entry do |leaf|
24
+ next if leaf.to_s =~ /^\./
25
+ branch = self + leaf
26
+ next if not branch.directory?
27
+ next if branch.symlink?
28
+ branch.each_subdirectory { |subbranch| yield subbranch }
29
+ yield branch
30
+ end
31
+ end
32
+
33
+ def each_pfile(min_file_size = MIN_PFILE_SIZE)
34
+ entries.each do |leaf|
35
+ next unless leaf.to_s =~ /^P.*\.7|^P.*\.7\.bz2/
36
+ branch = self + leaf
37
+ next if branch.symlink?
38
+ if branch.size >= min_file_size
39
+ lc = branch.local_copy
40
+ begin
41
+ yield lc
42
+ rescue Exception => e
43
+ puts "#{e}"
44
+ ensure
45
+ lc.delete
46
+ end
47
+ end
48
+ end
49
+ end
50
+
51
+ def first_dicom
52
+ entries.each do |leaf|
53
+ branch = self + leaf
54
+ if leaf.to_s =~ /^I\.|\.dcm(\.bz2)?$|\.0[0-9]+(\.bz2)?$/
55
+ lc = branch.local_copy
56
+ begin
57
+ yield lc
58
+ rescue Exception => e
59
+ puts "#{e}"
60
+ ensure
61
+ lc.delete
62
+ end
63
+ return
64
+ end
65
+ end
66
+ end
67
+
68
+ def all_dicoms
69
+ local_copies = []
70
+ Dir.mktmpdir do |tempdir|
71
+ begin
72
+
73
+ entries.each do |leaf|
74
+ branch = self + leaf
75
+ if leaf.to_s =~ /^I\.|\.dcm(\.bz2)?$|\.0[0-9]+(\.bz2)?$/
76
+ local_copies << branch.local_copy(tempdir)
77
+ end
78
+ end
79
+
80
+ yield local_copies
81
+
82
+ ensure
83
+ local_copies.each { |lc| lc.delete }
84
+ end
85
+ end
86
+
87
+ return
88
+ end
89
+
90
+ def local_copy(tempdir = Dir.tmpdir)
91
+ tfbase = self.to_s =~ /\.bz2$/ ? self.basename.to_s.chomp(".bz2") : self.basename.to_s
92
+ tfbase.escape_filename
93
+ tmpfile = File.join(tempdir, tfbase)
94
+ if self.to_s =~ /\.bz2$/
95
+ `bunzip2 -k -c '#{self.to_s}' >> '#{tmpfile}'`
96
+ else
97
+ FileUtils.cp(self.to_s, tmpfile)
98
+ end
99
+ return Pathname.new(tmpfile)
100
+ end
101
+
17
102
  end
@@ -0,0 +1,20 @@
1
+ require 'active_resource'
2
+
3
+ class RawImageDatasetResource < ActiveResource::Base
4
+ self.site = VisitRawDataDirectory::DATAPANDA_SERVER
5
+ self.element_name = "image_dataset"
6
+
7
+ # Creates a Backwards Transfer to go from ActiveRecord to Metamri Classes
8
+ # ActiveResource will provide :attr methods for column names from the database,
9
+ # so check the current schema.rb file for those.
10
+ def to_metamri_image_dataset
11
+ # A Metamri Class requires at least one valid image file.
12
+ # This is a little tricky since we really only care about the variables, not rescanning them.
13
+
14
+ Pathname.new(path).first_dicom do |fd|
15
+ @dataset = RawImageDataset.new( path, [RawImageFile.new(fd)] )
16
+ end
17
+
18
+ return @dataset
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'active_resource'
2
+
3
+ DATAPANDA_SERVER = 'http://144.92.151.228'
4
+
5
+ class VisitRawDataDirectoryResource < ActiveResource::Base
6
+ self.site = VisitRawDataDirectory::DATAPANDA_SERVER
7
+ self.element_name = "visit"
8
+
9
+ # Creates a Backwards Transfer to go from ActiveRecord to Metamri Classes
10
+ # ActiveResource will provide :attr methods for column names from the database,
11
+ # so check the current schema.rb file for those.
12
+ def to_metamri_visit_raw_data_directory
13
+ @visit = VisitRawDataDirectory.new(path)
14
+ @visit.timestamp = date
15
+ @visit.rmr_number = rmr
16
+ @visit.scanner_source = scanner_source
17
+ @visit.database_id = id
18
+ return @visit
19
+ end
20
+ end
@@ -177,14 +177,36 @@ have more component files than shell commands can handle.
177
177
  end
178
178
  end
179
179
 
180
-
181
180
 
181
+ def file_count
182
+ @file_count ||= Dir.open(@directory).reject{ |branch| /^\./.match(branch) }.length
183
+ end
184
+
185
+ # Creates an Hirb Table for pretty output of dataset info.
186
+ # It takes an array of either RawImageDatasets or RawImageDatasetResources
187
+ def self.to_table(datasets)
188
+ if datasets.first.class.to_s == "RawImageDatasetResource"
189
+ datasets = datasets.map { |ds| ds.to_metamri_image_dataset }
190
+ end
191
+
192
+ Hirb::Helpers::AutoTable.render(
193
+ datasets.sort_by{ |ds| [ds.timestamp, File.basename(ds.directory)] },
194
+ :headers => { :directory_basename => 'Directory', :series_description => 'Series Description', :file_count => 'File Count'},
195
+ :fields => [:directory_basename, :series_description, :file_count]
196
+ )
197
+
198
+ end
182
199
  private
183
200
 
184
201
  # Gets the earliest timestamp among the raw image files in this dataset.
185
202
  def get_earliest_timestamp
186
203
  @timestamp = (@raw_image_files.sort_by { |i| i.timestamp }).first.timestamp
187
204
  end
205
+
206
+ # Directory Basename is hardcoded for Pretty Printing using Hirb, which takes symbols as method names for its columns.
207
+ def directory_basename
208
+ File.basename(@directory)
209
+ end
188
210
 
189
211
  end
190
212
  #### END OF CLASS ####
@@ -7,17 +7,20 @@ require 'fileutils'
7
7
  require 'raw_image_file'
8
8
  require 'raw_image_dataset'
9
9
  require 'sqlite3'
10
+ require 'logger'
10
11
 
11
12
 
12
13
  # A shared function that displays a message and the date/time to standard output.
13
14
  def flash(msg)
15
+ flash_size =msg.size + 20
16
+
14
17
  puts
15
- puts "+" * 120
18
+ puts "+" * flash_size
16
19
  printf "\t%s\n", msg
17
20
  printf "\t%s\n", Time.now
18
- puts "+" * 120
21
+ puts "+" * flash_size
19
22
  puts
20
- $LOG.info msg if $LOG
23
+ $LOG.debug msg if $LOG
21
24
  end
22
25
 
23
26
 
@@ -37,21 +40,25 @@ class VisitRawDataDirectory
37
40
  # The absolute path of the visit directory, as a string.
38
41
  attr_reader :visit_directory
39
42
  # An array of :RawImageDataset objects acquired during this visit.
40
- attr_reader :datasets
43
+ attr_accessor :datasets
41
44
  # Timestamp for this visit, obtained from the first :RawImageDataset
42
- attr_reader :timestamp
45
+ attr_accessor :timestamp
43
46
  # RMR number for this visit.
44
- attr_reader :rmr_number
47
+ attr_accessor :rmr_number
45
48
  # scan_procedure name
46
49
  attr_reader :scan_procedure_name
47
50
  # scanner source
48
- attr_reader :scanner_source
51
+ attr_accessor :scanner_source
49
52
  #
50
53
  attr_accessor :db
51
54
  # Scan ID is the short name for the scan (tbiva018, tbiva018b)
52
55
  attr_accessor :scanid
56
+ # The id of the visit to be used when doing reverse-lookup in data panda.
57
+ attr_accessor :database_id
53
58
 
54
59
  PREPROCESS_REPOSITORY_DIRECTORY = '/Data/vtrak1/preprocessed/visits'
60
+ # DATAPANDA_SERVER = 'http://localhost:3000'
61
+ DATAPANDA_SERVER = 'http://144.92.151.228'
55
62
 
56
63
 
57
64
  # A new Visit instance needs to know the path to its raw data and scan_procedure name. The scan_procedure
@@ -65,6 +72,7 @@ class VisitRawDataDirectory
65
72
  @rmr_number = nil
66
73
  @scan_procedure_name = scan_procedure_name.nil? ? get_scan_procedure_based_on_raw_directory : scan_procedure_name
67
74
  @db = nil
75
+ initialize_log
68
76
  end
69
77
 
70
78
  # Recursively walks the filesystem inside the visit directory. At each subdirectory, any and all
@@ -72,7 +80,7 @@ class VisitRawDataDirectory
72
80
  # @datasets will hold an array of ImageDataset instances. Setting the rmr here can raise an
73
81
  # exception if no valid rmr is found in the datasets, be prepared to catch it.
74
82
  def scan
75
- flash "Scanning visit raw data directory #{@visit_directory}"
83
+ flash "Scanning visit raw data directory #{@visit_directory}" if $LOG.level <= Logger::INFO
76
84
  d = Pathname.new(@visit_directory)
77
85
  d.each_subdirectory do |dd|
78
86
  begin
@@ -87,7 +95,7 @@ class VisitRawDataDirectory
87
95
  @timestamp = get_visit_timestamp
88
96
  @rmr_number = get_rmr_number
89
97
  @scanner_source = get_scanner_source
90
- flash "Completed scanning #{@visit_directory}"
98
+ flash "Completed scanning #{@visit_directory}" if $LOG.level <= Logger::DEBUG
91
99
  else
92
100
  raise(IndexError, "No datasets could be scanned for directory #{@visit_directory}")
93
101
  end
@@ -173,6 +181,30 @@ Returns an array of the created nifti files.
173
181
  @scanid ||= File.basename(visit_directory).split('_')[0]
174
182
  end
175
183
 
184
+ def to_s
185
+ puts; @visit_directory.length.times { print "-" }; puts
186
+ puts "#{@visit_directory}"
187
+ puts "#{@rmr_number} - #{@scanner_source}"
188
+ puts "#{@scan_procedure_name}"
189
+ puts "#{@scanid}"
190
+ puts RawImageDataset.to_table(@datasets)
191
+ return
192
+ rescue NameError => e
193
+ # Header Line
194
+ printf "\t%-15s %-30s [%s]\n", "Directory", "Series Description", "Files"
195
+
196
+ # Dataset Lines
197
+ @datasets.sort_by{|ds| [ds.timestamp, File.basename(ds.directory)] }.each do |dataset|
198
+ printf "\t%-15s %-30s [%s]\n", File.basename(dataset.directory), dataset.series_description, dataset.file_count
199
+ end
200
+
201
+ # Reminder Line
202
+ puts "(This would be much prettier if you installed hirb.)"
203
+
204
+ return
205
+ end
206
+
207
+
176
208
  private
177
209
 
178
210
  def get_existing_dataset_id(ds)
@@ -273,7 +305,7 @@ generates an sql insert statement to insert this visit with a given participant
273
305
  end
274
306
 
275
307
  def import_dataset(rawfile, original_parent_directory)
276
- puts "Importing scan session: #{original_parent_directory.to_s} using raw data file: #{rawfile.basename}"
308
+ puts "Importing scan session: #{original_parent_directory.to_s} using raw data file: #{rawfile.basename}" if $LOG.level <= Logger::DEBUG
277
309
 
278
310
  begin
279
311
  rawimagefile = RawImageFile.new(rawfile.to_s)
@@ -381,103 +413,21 @@ generates an sql insert statement to insert this visit with a given participant
381
413
 
382
414
  when /ries.aware.visit1/
383
415
  return 'ries.aware.visit1'
416
+
417
+ when /carlson.sharp.visit1/
418
+ return 'carlson.sharp.visit1'
384
419
 
385
420
  else
386
421
  return 'unknown.scan_procedure'
387
422
  end
388
423
  end
389
424
 
390
-
391
-
392
- end
393
-
394
-
395
-
396
-
397
-
398
- class Pathname
399
- MIN_PFILE_SIZE = 10_000_000
400
-
401
- def each_subdirectory
402
- each_entry do |leaf|
403
- next if leaf.to_s =~ /^\./
404
- branch = self + leaf
405
- next if not branch.directory?
406
- next if branch.symlink?
407
- branch.each_subdirectory { |subbranch| yield subbranch }
408
- yield branch
409
- end
410
- end
411
-
412
- def each_pfile(min_file_size = MIN_PFILE_SIZE)
413
- entries.each do |leaf|
414
- next unless leaf.to_s =~ /^P.*\.7|^P.*\.7\.bz2/
415
- branch = self + leaf
416
- next if branch.symlink?
417
- if branch.size >= min_file_size
418
- lc = branch.local_copy
419
- begin
420
- yield lc
421
- rescue Exception => e
422
- puts "#{e}"
423
- ensure
424
- lc.delete
425
- end
426
- end
425
+ def initialize_log
426
+ # If a log hasn't been created, catch that here and go to STDOUT.
427
+ unless $LOG
428
+ $LOG = Logger.new(STDOUT)
429
+ $LOG.level = Logger::DEBUG
427
430
  end
428
431
  end
429
-
430
- def first_dicom
431
- entries.each do |leaf|
432
- branch = self + leaf
433
- if leaf.to_s =~ /^I\.|\.dcm(\.bz2)?$|\.0[0-9]+(\.bz2)?$/
434
- lc = branch.local_copy
435
- begin
436
- yield lc
437
- rescue Exception => e
438
- puts "#{e}"
439
- ensure
440
- lc.delete
441
- end
442
- return
443
- end
444
- end
445
- end
446
-
447
- def all_dicoms
448
- local_copies = []
449
- Dir.mktmpdir do |tempdir|
450
- begin
451
-
452
- entries.each do |leaf|
453
- branch = self + leaf
454
- if leaf.to_s =~ /^I\.|\.dcm(\.bz2)?$|\.0[0-9]+(\.bz2)?$/
455
- local_copies << branch.local_copy(tempdir)
456
- end
457
- end
458
432
 
459
- yield local_copies
460
-
461
- ensure
462
- local_copies.each { |lc| lc.delete }
463
- end
464
- end
465
-
466
- return
467
- end
468
-
469
-
470
-
471
- def local_copy(tempdir = Dir.tmpdir)
472
- tfbase = self.to_s =~ /\.bz2$/ ? self.basename.to_s.chomp(".bz2") : self.basename.to_s
473
- tfbase.escape_filename
474
- tmpfile = File.join(tempdir, tfbase)
475
- if self.to_s =~ /\.bz2$/
476
- `bunzip2 -k -c '#{self.to_s}' >> '#{tmpfile}'`
477
- else
478
- FileUtils.cp(self.to_s, tmpfile)
479
- end
480
- return Pathname.new(tmpfile)
481
- end
482
-
483
- end
433
+ end
@@ -5,14 +5,14 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{metamri}
8
- s.version = "0.1.10"
8
+ s.version = "0.1.11"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kristopher J. Kosmatka"]
12
- s.date = %q{2010-01-25}
12
+ s.date = %q{2010-02-03}
13
13
  s.description = %q{Extraction of MRI metadata and insertion into compatible sqlite3 databases.}
14
14
  s.email = %q{kk4@medicine.wisc.edu}
15
- s.executables = ["convert_visit.rb", "import_study.rb", "import_visit.rb", "import_respiratory_files.rb"]
15
+ s.executables = ["import_study.rb", "import_visit.rb", "import_respiratory_files.rb", "list_visit", "convert_visit.rb"]
16
16
  s.extra_rdoc_files = [
17
17
  "README.rdoc"
18
18
  ]
@@ -26,8 +26,11 @@ Gem::Specification.new do |s|
26
26
  "bin/import_respiratory_files.rb",
27
27
  "bin/import_study.rb",
28
28
  "bin/import_visit.rb",
29
+ "bin/list_visit",
29
30
  "lib/metamri.rb",
30
31
  "lib/metamri/core_additions.rb",
32
+ "lib/metamri/raw_image_dataset_resource.rb",
33
+ "lib/metamri/visit_raw_data_directory_resource.rb",
31
34
  "lib/mysql_tools.rb",
32
35
  "lib/nifti_builder.rb",
33
36
  "lib/raw_image_dataset.rb",
@@ -4,6 +4,7 @@ require 'rubygems'
4
4
  require 'spec'
5
5
  require 'fileutils'
6
6
  require 'tmpdir'
7
+ require 'metamri/core_additions'
7
8
  require 'visit_raw_data_directory'
8
9
  require 'raw_image_dataset'
9
10
  require 'raw_image_file'
@@ -17,20 +18,24 @@ VISIT_FIXTURE_UNZIPPED = File.join(Dir.tmpdir, 'fixtures/visit_raw_data_director
17
18
  describe "Convert Unknown Dicoms to Nifti Files" do
18
19
  before(:all) do
19
20
  # Initialize a local scratch directory to hold fixtures for testing if it doesn't already exist.
20
- #unless File.directory?(VISIT_FIXTURE)
21
- #FileUtils.mkdir_p(File.dirname(VISIT_FIXTURE))
22
- #FileUtils.cp_r(VISIT_FIXTURE_SRC, VISIT_FIXTURE)
23
- #FileUtils.cp_r(VISIT_FIXTURE, VISIT_FIXTURE_UNZIPPED)
21
+ unless File.directory?(VISIT_FIXTURE)
22
+ FileUtils.mkdir_p(File.dirname(VISIT_FIXTURE))
23
+ FileUtils.cp_r(VISIT_FIXTURE_SRC, VISIT_FIXTURE)
24
+ end
25
+ unless File.directory?(VISIT_FIXTURE_UNZIPPED)
26
+ FileUtils.cp_r(VISIT_FIXTURE, VISIT_FIXTURE_UNZIPPED)
24
27
  `find #{VISIT_FIXTURE_UNZIPPED} -name '*.bz2' -exec bunzip2 {} \\;`
25
- #end
28
+ end
26
29
  end
27
30
 
28
31
  before(:each) do
29
32
  @visit = VisitRawDataDirectory.new(VISIT_FIXTURE, 'johnson.tbi-va.visit1')
30
- @dataset = RawImageDataset.new(
31
- File.join(VISIT_FIXTURE, '001'),
32
- [RawImageFile.new(File.join(VISIT_FIXTURE, '001/I0001.dcm.bz2'))]
33
- )
33
+ Pathname.new(File.join(@visit.visit_directory, '001')).first_dicom do |fd|
34
+ @dataset = RawImageDataset.new(
35
+ File.join(VISIT_FIXTURE, '001'),
36
+ [RawImageFile.new(fd)]
37
+ )
38
+ end
34
39
 
35
40
  @visit_unzipped = VisitRawDataDirectory.new(VISIT_FIXTURE_UNZIPPED, 'johnson.tbi-va.visit1')
36
41
  @dataset_unzipped = RawImageDataset.new(
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metamri
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kristopher J. Kosmatka
@@ -9,17 +9,18 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-25 00:00:00 -06:00
12
+ date: 2010-02-03 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
16
16
  description: Extraction of MRI metadata and insertion into compatible sqlite3 databases.
17
17
  email: kk4@medicine.wisc.edu
18
18
  executables:
19
- - convert_visit.rb
20
19
  - import_study.rb
21
20
  - import_visit.rb
22
21
  - import_respiratory_files.rb
22
+ - list_visit
23
+ - convert_visit.rb
23
24
  extensions: []
24
25
 
25
26
  extra_rdoc_files:
@@ -34,8 +35,11 @@ files:
34
35
  - bin/import_respiratory_files.rb
35
36
  - bin/import_study.rb
36
37
  - bin/import_visit.rb
38
+ - bin/list_visit
37
39
  - lib/metamri.rb
38
40
  - lib/metamri/core_additions.rb
41
+ - lib/metamri/raw_image_dataset_resource.rb
42
+ - lib/metamri/visit_raw_data_directory_resource.rb
39
43
  - lib/mysql_tools.rb
40
44
  - lib/nifti_builder.rb
41
45
  - lib/raw_image_dataset.rb