Class: DicomGroup

Inherits:
Object
  • Object
show all
Defined in:
lib/metamri/dicom_additions.rb

Overview

Dicom Additions is a test extension of DICOM to allow for gathering common tags

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dicomgroup) ⇒ DicomGroup

Initialize with an array of strings or DICOM::DObjects to aggregate



12
13
14
15
16
17
18
19
# File 'lib/metamri/dicom_additions.rb', line 12

def initialize(dicomgroup)
  if dicomgroup.select {|dcm| dcm.is_a? DICOM::DObject }.empty?
    @dobjects = dicomgroup.collect {|dcm| DICOM::DObject.read(dcm)} 
    #@dobjects = dicomgroup.collect {|dcm| DICOM::DObject.new(dcm)}  # changing from dicom 0.8.0  to 0.9.5
  else 
    @dobjects = dicomgroup
  end
end

Instance Attribute Details

#commonObject (readonly)

DICOM::DObject containing all common tags of the group



9
10
11
# File 'lib/metamri/dicom_additions.rb', line 9

def common
  @common
end

#dobjectsObject

Array of DObjects to aggregate



5
6
7
# File 'lib/metamri/dicom_additions.rb', line 5

def dobjects
  @dobjects
end

#tagsObject (readonly)

Hash of tags shared by all DICOMs in Directory



7
8
9
# File 'lib/metamri/dicom_additions.rb', line 7

def tags
  @tags
end

Instance Method Details

#find_common_elementsObject

Return a new DICOM::DObject containing elements common (identical tags and values) to all DICOMs in the group.



29
30
31
32
33
34
# File 'lib/metamri/dicom_additions.rb', line 29

def find_common_elements
  @dobjects.inject do |memo, dobj|
    memo.remove_elements_that_differ_from dobj
    memo
  end
end

#find_common_tagsObject

Return a hash of tags and values of elements common to all DICOMs in the group.



22
23
24
25
26
# File 'lib/metamri/dicom_additions.rb', line 22

def find_common_tags
  @dobjects.inject(@dobjects.first.to_hash) do |memo, dobj|
    memo = memo.similar(dobj.to_hash)
  end
end