Class: OpenehrRails::Fhir::Serializer

Inherits:
Object
  • Object
show all
Defined in:
lib/openehr_rails/fhir/serializer.rb

Overview

Serializes a stored record (one openEHR COMPOSITION) into one HL7 FHIR R5 Observation per archetype entry that has data. Single-leaf entries use value; multi-leaf entries use component.

Constant Summary collapse

ARCHETYPE_SYSTEM =
ResourceRegistry::ARCHETYPE_SYSTEM
UCUM_SYSTEM =
'http://unitsofmeasure.org'

Instance Method Summary collapse

Constructor Details

#initialize(record) ⇒ Serializer

Returns a new instance of Serializer.



12
13
14
# File 'lib/openehr_rails/fhir/serializer.rb', line 12

def initialize(record)
  @record = record
end

Instance Method Details

#observationsObject



16
17
18
19
20
21
22
23
# File 'lib/openehr_rails/fhir/serializer.rb', line 16

def observations
  ResourceRegistry.entries_for(@record.class).filter_map do |entry|
    present = entry.fields.select { |field| @record.public_send(field[:name]) }
    next if present.empty?

    build_observation(entry, present)
  end
end