Changeset 411 for ruby/trunk/lib


Ignore:
Timestamp:
Apr 23, 2010, 12:00:31 AM (14 years ago)
Author:
KOBAYASHI, Shinji
Message:

fixed archetype ontology bugs

Location:
ruby/trunk/lib/open_ehr
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk/lib/open_ehr/am/archetype/ontology.rb

    r403 r411  
    44      module Ontology
    55        class ArchetypeOntology
    6           attr_accessor :constraint_codes, :specialisation_depth
    7           attr_accessor :term_attribute_names, :term_codes
    8           attr_reader :terminologies_available
     6          attr_accessor :constraint_definitions, :specialisation_depth
     7          attr_accessor :term_attribute_names, :term_bindings
     8          attr_reader :terminologies_available, :term_definitions
    99
    1010          def initialize(args = { })
    11             self.terminologies_available = args[:terminologies_available]
    1211            self.specialisation_depth = args[:specialisation_depth]
    13             self.term_codes = args[:term_codes]
    14             self.constraint_codes = args[:constraint_codes]
    15             self.term_attribute_names = args[:term_attribute_names]
     12            self.term_definitions = args[:term_definitions]
     13            self.constraint_definitions = args[:constraint_definitions]
     14            self.term_bindings = args[:term_bindings]
    1615          end
    1716
    18           def terminologies_available=(terminologies_available)
    19             if terminologies_available.nil?
    20               raise ArgumentError, 'terminologies_available is mandatory'
     17          # def terminologies_available=(terminologies_available)
     18          #   if terminologies_available.nil?
     19          #     raise ArgumentError, 'terminologies_available is mandatory'
     20          #   end
     21          #   @terminologies_available = terminologies_available
     22          # end
     23
     24          def term_definitions=(term_definitions)
     25            if term_definitions.nil?
     26              raise ArgumentError, 'term_definitions is mandatory'
    2127            end
    22             @terminologies_available = terminologies_available
     28            @term_definitions = term_definitions
     29          end
     30
     31          def term_codes
     32            return @term_definitions.values.collect {|value|
     33              value.collect {|term| term.code}}.flatten.uniq
     34          end
     35
     36          def constraint_codes
     37            if @constraint_definitions.nil?
     38              return nil
     39            else
     40              return @constraint_definitions.values.collect {|value|
     41                value.collect {|term| term.code}}.flatten.uniq
     42            end
    2343          end
    2444
  • ruby/trunk/lib/open_ehr/serializer.rb

    r410 r411  
    102102
    103103      def ontology
     104        ao = @archetype.ontology
     105        ontology = 'ontology'+NL
     106        ontology << INDENT + 'term_definitions = <' + NL
     107        ao.term_codes.each do |term, items|
     108          ontology << INDENT*2 + "[\"#{term}\"] = <" + NL
     109          ontology << INDENT*3 + 'items = <'  + NL
     110          items.each do |code, attribute|
     111            ontology << INDENT*4 + "[\"#{code}\] = <" + NL
     112            terms.each do |name, description|
     113              ontology << INDENT*5 + "#{name} = <\"#{description}\">" +NL
     114            end
     115            ontology << INDENT*4 + '>'+NL
     116          end
     117          ontogoly << INDENT*3 + '>' + NL
     118          ontology << INDENT*2 + '>' + NL
     119        end
     120        ontology << INDENT + '>' + NL
    104121      end
    105122
Note: See TracChangeset for help on using the changeset viewer.