Class: CompositionDecorator

Inherits:
FHIR::Composition
  • Object
show all
Defined in:
lib/au_ps_inferno/utils/composition_decorator.rb

Overview

Decorator for FHIR::Composition to add convenience methods

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ CompositionDecorator

Returns a new instance of CompositionDecorator.



7
8
9
10
11
12
13
# File 'lib/au_ps_inferno/utils/composition_decorator.rb', line 7

def initialize(data)
  if data.is_a?(Hash)
    super
  else
    super(data.respond_to?(:source_hash) ? data.source_hash : data.to_hash)
  end
end

Instance Method Details

#entry_references_by_codes(codes) ⇒ Object



19
20
21
22
# File 'lib/au_ps_inferno/utils/composition_decorator.rb', line 19

def entry_references_by_codes(codes)
  sections = sections_by_codes(codes).compact
  sections.map(&:entry_references).flatten
end

#event_by_code(code) ⇒ Object



35
36
37
38
39
# File 'lib/au_ps_inferno/utils/composition_decorator.rb', line 35

def event_by_code(code)
  return nil if event.nil?

  event.find { |elem| event_element_code(elem) == code }
end

#section_by_code(code) ⇒ Object



28
29
30
31
32
33
# File 'lib/au_ps_inferno/utils/composition_decorator.rb', line 28

def section_by_code(code)
  section_data = section.find { |sect| section_first_code(sect) == code }
  return nil if section_data.nil?

  SectionDecorator.new(section_data.to_hash)
end

#section_codesObject



15
16
17
# File 'lib/au_ps_inferno/utils/composition_decorator.rb', line 15

def section_codes
  section.map { |sect| section_first_code(sect) }.compact
end

#sections_by_codes(codes) ⇒ Object



24
25
26
# File 'lib/au_ps_inferno/utils/composition_decorator.rb', line 24

def sections_by_codes(codes)
  codes.map { |code| section_by_code(code) }
end