Class: OpenEHR::Serializer::OPTSerializer

Inherits:
BaseSerializer show all
Defined in:
lib/openehr/serializer/opt_serializer.rb

Instance Method Summary collapse

Methods inherited from BaseSerializer

#serialize

Constructor Details

#initialize(opt, format:) ⇒ OPTSerializer

Returns a new instance of OPTSerializer.



7
8
9
10
# File 'lib/openehr/serializer/opt_serializer.rb', line 7

def initialize(opt, format:)
  @opt = OpenEHR::Parser::OPTParser.new(opt).parse
  @format = format
end

Instance Method Details

#contentObject



37
38
39
# File 'lib/openehr/serializer/opt_serializer.rb', line 37

def content
  attribute_json('content')
end

#contextObject

The root archetype's context/content constraint subtrees (what the template actually constrains for those attributes), as JSON via JSONSerializer - the same generic walker RMJSONSerializer uses for RM instances.



33
34
35
# File 'lib/openehr/serializer/opt_serializer.rb', line 33

def context
  attribute_json('context')
end

#headerObject

Template-level metadata, as JSON. An operational template carries constraints, not instance data - it has no composer or territory to report - so this is the concept/ids/language the OPT actually captures, rather than a simulated RM COMPOSITION.



20
21
22
23
24
25
26
27
# File 'lib/openehr/serializer/opt_serializer.rb', line 20

def header
  JSON.generate(
    'concept' => @opt.concept,
    'archetype_id' => @opt.definition.archetype_id.value,
    'template_id' => @opt.template_id.value,
    'language' => @opt.original_language.code_string
  )
end

#nameObject



12
13
14
# File 'lib/openehr/serializer/opt_serializer.rb', line 12

def name
  @opt.definition.archetype_id.concept_name
end