Ignore:
Timestamp:
Mar 15, 2010, 11:32:41 PM (14 years ago)
Author:
KOBAYASHI, Shinji
Message:

serializer implementation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk/lib/open_ehr/serializer.rb

    r407 r408  
    2323          hd << " (adl_version = #{@archetype.adl_version})"
    2424        end
    25         hd << NL+INDENT + "#{@archetype.archetype_id.value}"+NL+NL
     25        hd << NL+INDENT + "#{@archetype.archetype_id.value}"+NL*2
    2626        hd << 'concept'+NL+ INDENT+"[#{@archetype.concept}]"+NL
    2727        hd << NL+'language'+NL+INDENT+'original_language = <['+
     
    3232
    3333      def description
    34 
     34        desc = ''
     35        if @archetype.description
     36          ad = @archetype.description
     37          desc << 'description' + NL
     38          desc << INDENT + 'original_author = <' + NL
     39          ad.original_author.each do |k,v|
     40            desc << INDENT+INDENT+'["'+k+'"] = <"'+v+'">'+NL
     41          end
     42          desc << INDENT+'>'+NL
     43          desc << INDENT+'lifecycle_state = <"'+ad.lifecycle_state+'">'+NL
     44          desc << INDENT+'details = <'+NL
     45          ad.details.each do |lang,item|
     46            desc << INDENT*2+'["'+lang+'"] = <'+NL
     47            desc << INDENT*3+'language = <['+
     48              item.language.terminology_id.value+'::'+
     49              item.language.code_string+']>'+NL
     50            desc << INDENT*3+'purpose = <"'+item.purpose+'">'+NL
     51            if item.keywords then
     52              desc << INDENT*3+'keywords = <'
     53              item.keywords.each do |word|
     54                desc << '"'+word+'",'
     55              end
     56              desc.chop! << '>'+NL
     57            end
     58            desc << INDENT*3+'use = <"'+item.use+'">'+NL if item.use
     59            desc << INDENT*3+'misuse = <"'+item.misuse+'">'+NL if item.misuse
     60            desc << INDENT*3+'copyright = <"'+item.copyright+'">'+NL if item.copyright
     61            if item.original_resource_uri
     62              desc << INDENT*3 + 'original_resource_uri = <'
     63              item.original_resource_uri.each do |k,v|
     64                desc << INDENT*4+'["'+k+'"] = <"'+v+'">'+NL
     65              end
     66              desc << INDENT*3+'>'+NL
     67            end
     68            if item.other_details
     69              desc << INDENT*3 + 'other_details = <'
     70              item.original_resource_uri.each do |k,v|
     71                desc << INDENT*4+'["'+k+'"] = <"'+v+'">'+NL
     72              end
     73              desc << INDENT*3+'>'+NL
     74            end
     75            desc << INDENT*2+'>'+NL
     76          end
     77          desc << INDENT+'>'+NL
     78        end
     79        return desc
    3580      end
    3681
     
    59104        xml.concept @archetype.concept
    60105        xml.original_language do
    61           xml.code_string @archetype.original_language.code_string
    62106          xml.terminology_id do
    63107            xml.value @archetype.original_language.terminology_id.value
    64108          end
     109          xml.code_string @archetype.original_language.code_string
    65110        end
    66111        return header
     
    68113
    69114      def description
    70        
     115        desc = ''
     116        xml = Builder::XmlMarkup.new(:indent => 2, :target => desc)
     117        ad = @archetype.description
     118        if ad
     119          xml.description do
     120            ad.original_author.each do |key,value|
     121              xml.original_author(value,"id"=>key)
     122            end
     123            if ad.other_contributors
     124              ad.other_contributors.each do |co|
     125                xml.other_contributors co
     126              end
     127            end
     128            xml.lifecycle_state ad.lifecycle_state
     129            xml.details do
     130              ad.details.each do |lang, item|
     131                xml.language do
     132                  xml.terminology_id do
     133                    xml.value item.language.terminology_id.value
     134                  end
     135                  xml.code_string lang
     136                end
     137                xml.purpose item.purpose
     138                xml.use item.use if item.use
     139                xml.misuse item.misuse if item.misuse
     140                xml.copyright item.copyright if item.copyright
     141                if ad.other_details
     142                  ad.other_details.each do |key,value|
     143                    xml.other_details(value, "id"=>key)
     144                  end
     145                end
     146              end
     147            end
     148          end
     149        end
     150        return desc
    71151      end
    72152
Note: See TracChangeset for help on using the changeset viewer.