Class: OpenehrRails::Fhir::Deserializer
- Inherits:
-
Object
- Object
- OpenehrRails::Fhir::Deserializer
- Defined in:
- lib/openehr_rails/fhir/deserializer.rb
Overview
Converts an incoming HL7 FHIR R5 Observation into ActiveRecord attributes for a Storable model. Saving the record then persists the canonical openEHR RM composition (the FHIR-in / openEHR-stored path).
Defined Under Namespace
Classes: UnmappedResource
Instance Method Summary collapse
- #attributes ⇒ Object
-
#initialize(model, observation) ⇒ Deserializer
constructor
A new instance of Deserializer.
Constructor Details
#initialize(model, observation) ⇒ Deserializer
Returns a new instance of Deserializer.
11 12 13 14 |
# File 'lib/openehr_rails/fhir/deserializer.rb', line 11 def initialize(model, observation) @model = model @observation = observation.respond_to?(:deep_stringify_keys) ? observation.deep_stringify_keys : observation end |
Instance Method Details
#attributes ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/openehr_rails/fhir/deserializer.rb', line 16 def attributes entry = lookup_entry attrs = {} attrs[:ehr_id] = subject_reference if subject_reference if entry.fields.size == 1 && !@observation.key?('component') attrs.merge!(field_value(entry.fields.first, @observation)) else merge_components(entry, attrs) end attrs end |