Class: OpenEHR::Serializer::ADLSerializer

Inherits:
BaseSerializer show all
Includes:
AM::Archetype::ConstraintModel
Defined in:
lib/openehr/serializer/adl_serializer.rb

Constant Summary collapse

Primitive =
OpenEHR::AM::Archetype::ConstraintModel::Primitive
OpenEHRProfile =
OpenEHR::AM::OpenEHRProfile

Instance Method Summary collapse

Methods inherited from BaseSerializer

#initialize, #serialize

Constructor Details

This class inherits a constructor from OpenEHR::Serializer::BaseSerializer

Instance Method Details

#definitionObject



41
42
43
# File 'lib/openehr/serializer/adl_serializer.rb', line 41

def definition
  'definition' + NL + emit_c_object(@archetype.definition, 1)
end

#descriptionObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/openehr/serializer/adl_serializer.rb', line 21

def description
  desc = +''
  if @archetype.description
    ad = @archetype.description
    desc << ('description' + NL)
    desc << (INDENT + 'original_author = <' + NL)
    ad.original_author.each do |k,v|
      desc << (INDENT+INDENT+'["'+k+'"] = <"'+v+'">'+NL)
    end
    desc << (INDENT+'>'+NL)
    desc << (INDENT+'lifecycle_state = <"'+ad.lifecycle_state+'">'+NL)
    desc << (INDENT+'details = <'+NL)
    ad.details.each do |lang,item|
      desc << description_details_item(lang, item)
    end
    desc << (INDENT+'>'+NL)
  end
  return desc
end

#headerObject



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/openehr/serializer/adl_serializer.rb', line 8

def header
  hd = +'archetype'
  unless @archetype.adl_version.nil?
    hd << " (adl_version = #{@archetype.adl_version})"
  end
  hd << (NL+INDENT + "#{@archetype.archetype_id.value}"+(NL*2))
  hd << ('concept'+NL+ INDENT+"[#{@archetype.concept}]"+NL)
  hd << (NL+'language'+NL+INDENT+'original_language = <['+
    @archetype.original_language.terminology_id.value+'::'+
    @archetype.original_language.code_string+']>'+NL)
  return hd
end

#mergeObject



55
56
57
# File 'lib/openehr/serializer/adl_serializer.rb', line 55

def merge
  return header + NL + description + NL + definition + NL + ontology
end

#ontologyObject



45
46
47
48
49
50
51
52
53
# File 'lib/openehr/serializer/adl_serializer.rb', line 45

def ontology
  ao = @archetype.ontology
  ontology = 'ontology'+NL
  ontology << string_list_line('languages_available', ao.languages_available)
  ontology << string_list_line('terminologies_available', ao.terminologies_available)
  ontology << term_definitions_block(ao.term_definitions)
  ontology << term_bindings_block(ao.term_bindings)
  ontology
end