Changeset 158


Ignore:
Timestamp:
Jul 7, 2009, 3:10:48 AM (15 years ago)
Author:
KOBAYASHI, Shinji
Message:

refs #64

Location:
ruby/trunk/lib/models
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk/lib/models/rm/common/change_control.rb

    r119 r158  
    99        class Contribution
    1010          attr_reader :uid, :versions, :audit
     11
    1112          def initialize(uid, versions, audit)
    1213            self.uid = uid
     
    1415            self.audit = audit
    1516          end
     17
    1618          def uid=(uid)
    1719            if uid.nil?
     
    2022            @uid = uid
    2123          end
     24
    2225          def versions=(versions)
    2326            unless versions.nil?
     
    2831            @versions = versions
    2932          end
     33
    3034          def audit=(audit)
    3135            if audit.nil?
     
    4347
    4448        class Version
    45           attr_reader :uid, :contribution, :commit_audit, :signature
    46           attr_reader :attestations, :data
    47           def initialize(uid, contribution, commit_audit, signature=nil, attestations=nil, data=nil)
    48             self.uid = uid
    49             self.contribution = contribution         
    50             self.commit_audit = commit_audit
    51           end
    52           def canonical_form
    53             raise NotImplementedError, 'canonical form not implemented'
     49          attr_reader :uid, :preceding_version_uid, :lifecycle_state,
     50                      :commit_audit, :contribution
     51          attr_accessor :data, :signature
     52
     53          def initialize(args = { })
     54            self.uid = args[:uid]
     55            self.preceding_version_uid = args[:preceding_version_uid]
     56            self.data = args[:data]
     57            self.lifcycle_state = args[:lifecycle_state]
     58            self.commit_audit = args[:commit_audit]
     59            self.contribution = args[:contribution]
     60            self.signature = args[:signature]
    5461          end
    5562
    5663          def uid=(uid)
    5764            raise ArgumentError, "uid should not be nil" if uid.nil?
     65            @uid = uid
     66          end
     67
     68          def preceding_version_uid=(preceding_version_uid)
     69            if (!preceding_version_uid.nil?) ==  @uid.version_tree_id.is_first?
     70              raise ArgumentError, 'preceding version is invalid'
     71            end
     72            @preceding_version_uid = preceding_version_uid
     73          end
     74
     75          def lifcycle_state=(lifecycle_state)
     76            if lifecycle_state.nil? ||
     77                !%w[532 553 523].include?(
     78                              lifecycle_state.defining_code.code_string)
     79              raise ArgumentError, 'invalid lifecycle_state'
     80            end
     81            @lifecycle_state = lifecycle_state
     82          end
     83
     84          def commit_audit=(commit_audit)
     85            if commit_audit.nil?
     86              raise ArgumentError,'commit_audit is mandatory'
     87            end
     88            @commit_audit = commit_audit
    5889          end
    5990
    6091          def contribution=(contribution)
    61             raise ArgumentError, "contribution should not be nil" if contribution.nil? or contribution.type == ''
     92            raise ArgumentError, "contribution should not be nil" if contribution.nil? or contribution.type.empty?
    6293            @contribution = contribution
    6394          end
    6495
    65           def commit_audit=(commit_audit)
    66             raise ArgumentError, "commit_audit should not be nil" if commit_audit.nil?
    67             @commit_audit = commit_audit
     96          def owner_id
     97            return Hier_Object_ID.new(@uid.object_id.value)
    6898          end
    6999
    70100          def is_branch?
    71             raise NotImplementedError, 'is_branch not implemented'
     101            return @uid.is_branch?
     102          end
     103
     104          def canonical_form
     105            raise NotImplementedError, 'canonical form not implemented'
    72106          end
    73107        end
     
    77111
    78112        class Original_Version < Version
     113          attr_reader :attestations
     114
     115          def initialize(args = { })
     116            super(args)
     117            self.attestations = args[:attestations]
     118            self.other_input_version_uids = args[:other_input_version_uids]
     119          end
     120
     121          def attestations=(attestations)
     122            if attestations.nil? || attestations.empty?
     123              raise ArgumentError, 'attestations is mandatory'
     124            end
     125            @attestations = attestations
     126          end
     127
     128          def other_input_version_uids=(other_input_version_uids)
     129            if !other_input_version_uids.nil? && other_input_version_uids.empty?
     130              raise ArgumentError, 'invaild other_input_version_uids'
     131            end
     132            @other_input_version_uids = other_input_version_uids
     133          end
     134
     135          def is_merged?
     136
     137          end
    79138        end
    80 
    81139      end # of Change_Control
    82140    end # of Common
  • ruby/trunk/lib/models/rm/support/identification.rb

    r157 r158  
    9494          attr_reader :name, :version_id
    9595
    96           def initialize(name, version_id="")
    97             self.name = name
    98             self.version_id = version_id
     96          def initialize(value)
     97            super(value)
    9998          end
    10099
     
    115114            else
    116115              @name = value
     116              @version_id = ''
    117117            end
    118118            @value = value
     
    209209            end
    210210            @version_tree_id = version_tree_id
     211          end
     212
     213          def is_branch?
     214            return @version_tree_id.is_branch?
    211215          end
    212216        end
  • ruby/trunk/lib/models/tests/rm/test_common.rb

    r157 r158  
    77include OpenEHR::RM::Common::Archetyped
    88include OpenEHR::RM::Common::Generic
     9include OpenEHR::RM::Common::Change_Control
    910include OpenEHR::RM::Support::Identification
    1011include OpenEHR::RM::Data_Types::Basic
     
    1415class RM_Common_Resource_Test < Test::Unit::TestCase
    1516  def setup
    16         @authored_resource = OpenEHR::RM::Common::Resource::AUTHORED_RESOURCE.new(:original_language => "ja",
     17    @authored_resource = OpenEHR::RM::Common::Resource::AUTHORED_RESOURCE.new(:original_language => "ja",
    1718                                                                              :translations => "en",
    1819                                                                              :description => "test")
     
    154155                                               :identifier => identifiers)}
    155156
    156     terminology_id = Terminology_ID.new('test','0.04')
     157    terminology_id = Terminology_ID.new('test(0.04)')
    157158    code_phrase = Code_Phrase.new('self', terminology_id)
    158159    dv_coded_text = DV_Coded_Text.new('Seele',code_phrase)
     
    171172                                         :time => dv_interval)}
    172173    dv_date_time = DV_Date_Time.new('2009-07-04T18:56:00')
    173     terminology_id = Terminology_ID.new('openehr','1.0.2')
     174    terminology_id = Terminology_ID.new('openehr(1.0.2)')
    174175    code_phrase = Code_Phrase.new('249', terminology_id)
    175176    dv_coded_text = DV_Coded_Text.new('creation', code_phrase)
     
    306307class RM_Common_Change_Control_Test < Test::Unit::TestCase
    307308  def setup
    308     hier_object_id = OpenEHR::RM::Support::Identification::Hier_Object_ID.new('0.0.4')
    309     object_id = OpenEHR::RM::Support::Identification::Object_ID.new("0.0.3")
    310     object_ref = OpenEHR::RM::Support::Identification::Object_Ref.new('local', 'ANY', object_id)
    311     versions = Set.new [object_ref]
    312 #    audit_detail = OpenEHR::RM::Generic::Audit_Detail.new()
    313 #    assert_nothing_raised(Exception){@version = OpenEHR::RM::Common::Change_Control::Version.new(hier_object_id, versions)}
    314 #    assert_nothing_raised(Exception){@contribution = OpenEHR::RM::Common::Change_Control::Contribution.new(hier_object_id, versions, audit_detail)}
    315   end
    316   def test_init
    317 #    assert_instace_of OpenEHR::RM::Common::Change_Control::Contribution @contribution
    318 #    assert_instace_of OpenEHR::RM::Common::Change_Control::Version @version
    319   end
     309    object_version_id1 = Object_Version_ID.new('ABC::DEF::2.2.3')
     310    object_version_id2 = Object_Version_ID.new('GHI::JKL::4.5.6')
     311    object_id = Object_ID.new('ehr://uniqueid1020')
     312    dv_date_time = DV_Date_Time.new('2009-07-06T21:10:12')
     313    party_ref = Party_Ref.new('unknown', 'ORGANISATION', object_id)
     314    party_proxy = Party_Proxy.new(:external_ref => party_ref)
     315    terminology_id = Terminology_ID.new('openehr(1.0.2)')
     316    code_phrase = Code_Phrase.new('249', terminology_id)
     317    dv_coded_text = DV_Coded_Text.new('creation', code_phrase)
     318    audit_details = Audit_Details.new(:system_id => 'MAGI',
     319                                      :committer => party_proxy,
     320                                      :time_committed => dv_date_time,
     321                                      :change_type => dv_coded_text)
     322    code_phrase = Code_Phrase.new('532', terminology_id)
     323    dv_coded_text = DV_Coded_Text.new('complete', code_phrase)
     324    object_id = Object_ID.new('ehr://test_location')
     325    object_ref = Object_Ref.new('local', 'PARTY', object_id)
     326    hier_object_id = Hier_Object_ID.new('ABC')
     327    assert_nothing_raised(Exception){
     328      @version = Version.new(:uid => object_version_id1,
     329                             :preceding_version_uid => object_version_id2,
     330                             :lifecycle_state => dv_coded_text,
     331                             :commit_audit => audit_details,
     332                             :contribution => object_ref,
     333                             :signature => 'test_version',
     334                             :data => 'data')}
     335    object_version_id3 = Object_Version_ID.new('MNO::PQR::7.8.9')
     336    object_version_id4 = Object_Version_ID.new('STU::VWX::1.2.3')
     337    code_phrase = Code_Phrase.new('240', terminology_id)
     338    dv_coded_text2 = DV_Coded_Text.new('signed', code_phrase)
     339    attestation = Attestation.new(:system_id => 'NERV',
     340                                  :committer => party_proxy,
     341                                  :time_committed => dv_date_time,
     342                                  :change_type => dv_coded_text,
     343                                  :reason => DV_Text.new('signed'))
     344    assert_nothing_raised(Exception){
     345      @original_version = Original_Version.new(:uid => object_version_id3,
     346                                               :preceding_version_uid => object_version_id4,
     347                                               :other_input_version_uids => Set[object_version_id1, object_version_id2],
     348                                               :commit_audit => audit_details,
     349                                               :contribution => object_ref,
     350                                               :attestations => [attestation],
     351                                               :data => 'data',
     352                                               :lifecycle_state => dv_coded_text)}
     353  end
     354
     355  def test_init
     356    assert_instance_of OpenEHR::RM::Common::Change_Control::Version, @version
     357    assert_instance_of Original_Version, @original_version
     358#    assert_instance_of OpenEHR::RM::Common::Change_Control::Contribution @contribution
     359  end
     360
    320361  def test_version
    321   end
     362    assert_equal 'ABC::DEF::2.2.3', @version.uid.value
     363    assert !@version.uid.version_tree_id.is_first?
     364    assert_equal 'GHI::JKL::4.5.6', @version.preceding_version_uid.value
     365    assert_equal '532', @version.lifecycle_state.defining_code.code_string
     366    assert_equal 'MAGI', @version.commit_audit.system_id
     367    assert_equal 'local', @version.contribution.namespace
     368    assert_equal 'test_version', @version.signature
     369    assert_equal 'ABC', @version.owner_id.value
     370    assert_equal 'data', @version.data
     371    assert @version.is_branch?
     372  end
     373
     374  def test_original_version
     375    assert_equal 'MNO::PQR::7.8.9', @original_version.uid.value
     376    assert_equal 'NERV', @original_version.attestations[0].system_id
     377  end
     378
    322379  def test_contribution
    323380#    assert_equal @contribution.uid
  • ruby/trunk/lib/models/tests/rm/test_data_types.rb

    r153 r158  
    77  def setup
    88    assert_nothing_raised(Exception){@dv_boolean = OpenEHR::RM::Data_Types::Basic::DV_Boolean.new("TRUE")}
    9     @terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new('openEHR','1.0.2')
     9    @terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new('openEHR(1.0.2)')
    1010    @code_phrase = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('PROPOSED', @terminology_id)
    1111    @dv_coded_text = OpenEHR::RM::Data_Types::Text::DV_Coded_Text.new("Blood examination", @code_phrase)
     
    9999  def setup
    100100    assert_nothing_raised(Exception){@dv_text = OpenEHR::RM::Data_Types::Text::DV_Text.new("valid value")}
    101     @terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new('ICD10', '')
     101    @terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new('ICD10')
    102102   
    103103    assert_nothing_raised(Exception){@code_phrase = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('C92.0', @terminology_id)}
     
    166166      @dv_ordered = OpenEHR::RM::Data_Types::Quantity::DV_Ordered.new }
    167167    assert_nothing_raised(Exception){
    168       terminology = OpenEHR::RM::Support::Identification::Terminology_ID.new('urine', '')
     168      terminology = OpenEHR::RM::Support::Identification::Terminology_ID.new('urine')
    169169      code_phrase = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('protein',terminology)
    170170      urinary_protein = OpenEHR::RM::Data_Types::Text::DV_Coded_Text.new('+', code_phrase)
     
    214214    assert @dv_ordered.is_simple?
    215215    assert_raise(NotImplementedError){@dv_ordered<=>1}
    216     openehr_terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new('openEHR','')
     216    openehr_terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new('openEHR')
    217217    normal_code = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('N', openehr_terminology_id)
    218218    assert_equal 'N', normal_code.code_string
     
    232232    assert_equal 'normal', @reference_range.meaning.value
    233233    assert_equal 1, @reference_range.range.lower.value
    234     terminology = OpenEHR::RM::Support::Identification::Terminology_ID.new('urine', '')
     234    terminology = OpenEHR::RM::Support::Identification::Terminology_ID.new('urine')
    235235    code_phrase = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('protein',terminology)
    236236    urinary_protein = OpenEHR::RM::Data_Types::Text::DV_Coded_Text.new('++', code_phrase)
  • ruby/trunk/lib/models/tests/rm/test_support.rb

    r157 r158  
    1616    assert_nothing_raised(Exception){@object_ref = OpenEHR::RM::Support::Identification::Object_Ref.new('local', 'ANY', @object_id)}
    1717    assert_nothing_raised(Exception){@archetype_id = OpenEHR::RM::Support::Identification::Archetype_ID.new("0.0.5", "biochemistry result_cholesterol", "entry", "ehr_rm", "openehr","cholesterol","0.0.3")}
    18     assert_nothing_raised(Exception){@terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new("ICD10",'2003')}
     18    assert_nothing_raised(Exception){@terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new('ICD10(2003)')}
    1919    assert_nothing_raised(Exception){@generic_id = OpenEHR::RM::Support::Identification::Generic_ID.new("0.0.3", "openehr")}
    2020    assert_nothing_raised(Exception){@uid_based_id = OpenEHR::RM::Support::Identification::UID_Based_ID.new('rrip::0.0.3')}
     
    155155    assert_raise(ArgumentError){@terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new('','02008')}
    156156    assert_raise(ArgumentError){@terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new("SNOMED", nil)}
    157     assert_nothing_raised(Exception){@terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new("SNOMED",'')}
     157    assert_nothing_raised(Exception){@terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new("SNOMED")}
    158158
    159159    assert_equal "SNOMED", @terminology_id.name
Note: See TracChangeset for help on using the changeset viewer.