Class: ODDB::Drugs::Sequence

Inherits:
Model
  • Object
show all
Defined in:
lib/oddb/export/yaml.rb,
lib/oddb/drugs/sequence.rb,
lib/oddb/persistence/og/drugs/sequence.rb,
lib/oddb/persistence/odba/drugs/sequence.rb

Constant Summary

Constants included from OddbUri

OddbUri::YAML_URI

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Model

#__odba_delete__, #__odba_save__, _serializables, belongs_to, connections, connector, connectors, #data_origin, #data_origins, delegates, #delete, find_by_uid, has_many, is_coded, m10l_document, multilingual, #odba_serializables, #oid, on_delete, on_save, predicates, #save, #saved?, serializables, serialize, singular

Methods included from ODBA::Persistable

#to_yaml_properties

Methods included from Yaml

append_features, #to_yaml_properties

Methods included from OddbUri

#to_yaml, #to_yaml_map, #to_yaml_type

Instance Attribute Details

#fachinfo_urlObject

Returns the value of attribute fachinfo_url.



9
10
11
# File 'lib/oddb/drugs/sequence.rb', line 9

def fachinfo_url
  @fachinfo_url
end

#marketableObject

Returns the value of attribute marketable.



9
10
11
# File 'lib/oddb/drugs/sequence.rb', line 9

def marketable
  @marketable
end

#patinfo_urlObject

Returns the value of attribute patinfo_url.



9
10
11
# File 'lib/oddb/drugs/sequence.rb', line 9

def patinfo_url
  @patinfo_url
end

Instance Method Details

#cascading_name(language) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/oddb/drugs/sequence.rb', line 21

def cascading_name(language)
  str = name.send language
  if str.to_s.empty? && product
    str = product.name.send language
  end
  str
end

#comparable?(other) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/oddb/drugs/sequence.rb', line 28

def comparable?(other)
  other.is_a?(Sequence) && compositions == other.compositions
end

#comparablesObject



31
32
33
34
35
# File 'lib/oddb/drugs/sequence.rb', line 31

def comparables
  atc.sequences.select { |sequence|
    comparable?(sequence)
  }
end

#dddsObject

ddds depend on the sequence’s Route of Administration



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/oddb/drugs/sequence.rb', line 36

def ddds # ddds depend on the sequence's Route of Administration
  forms = galenic_forms
  if(forms.size == 1 && (atc_class = atc) \
     && (group = forms.first.group) \
     && (roa = group.administration))
    atc_class.ddds.select { |ddd| 
      ddd.administration == roa }
  else
    []
  end
end

#galenic_formsObject



47
48
49
# File 'lib/oddb/drugs/sequence.rb', line 47

def galenic_forms
  compositions.collect { |comp| comp.galenic_form }.compact.uniq
end

#identical?(other) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
53
54
55
56
57
# File 'lib/oddb/drugs/sequence.rb', line 50

def identical?(other)
  comparable?(other) && other.product == product \
    && compositions.each_with_index { |comp, idx| 
    unless(comp.galenic_form.eql?(other.compositions.at(idx).galenic_form))
      return false
    end
  } && true
end

#include?(substance, dose = nil, unit = nil) ⇒ Boolean

Returns:

  • (Boolean)


58
59
60
61
62
# File 'lib/oddb/drugs/sequence.rb', line 58

def include?(substance, dose=nil, unit=nil)
  compositions.any? { |comp|
    comp.include?(substance, dose, unit)
  }
end

#registrationObject



63
64
65
# File 'lib/oddb/drugs/sequence.rb', line 63

def registration
  code(:registration, 'EU')
end