Class: OpenehrRails::Rm::CanonicalSerializer
- Inherits:
-
Object
- Object
- OpenehrRails::Rm::CanonicalSerializer
- Defined in:
- lib/openehr_rails/rm/canonical_serializer.rb
Overview
Serializes a stored composition graph back into the canonical composition hash. Contract: for a graph built by GraphBuilder from Storable#to_rm_composition output, the result is deep-equal to that input (the JSON cache can always be regenerated from the graph).
Constant Summary collapse
- MULTIPLE_ATTRIBUTES =
OpenehrRails::Storable::MULTIPLE_ATTRIBUTES
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(composition) ⇒ CanonicalSerializer
constructor
A new instance of CanonicalSerializer.
Constructor Details
#initialize(composition) ⇒ CanonicalSerializer
Returns a new instance of CanonicalSerializer.
12 13 14 |
# File 'lib/openehr_rails/rm/canonical_serializer.rb', line 12 def initialize(composition) @composition = composition end |
Instance Method Details
#call ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/openehr_rails/rm/canonical_serializer.rb', line 16 def call hash = { '_type' => 'COMPOSITION', 'archetype_node_id' => @composition.archetype_node_id, 'archetype_details' => { '_type' => 'ARCHETYPED', 'archetype_id' => { 'value' => @composition.archetype_node_id }, 'template_id' => { 'value' => @composition.template_id }, 'rm_version' => @composition.rm_version }, 'content' => @composition.content_nodes.map { |node| serialize_node(node) } } hash['name'] = { '_type' => 'DV_TEXT', 'value' => @composition.name_value } if @composition.name_value hash['uid'] = { '_type' => 'HIER_OBJECT_ID', 'value' => @composition.uid } if @composition.uid hash end |