Changeset 157 for ruby/trunk
- Timestamp:
- Jul 5, 2009, 11:01:59 PM (15 years ago)
- Location:
- ruby/trunk/lib/models
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk/lib/models/rm/common/generic.rb
r156 r157 46 46 47 47 class Revision_History 48 48 attr_reader :items 49 50 def initialize(items) 51 self.items = items 52 end 53 54 def items=(items) 55 if items.nil? or items.empty? 56 raise ArgumentError, 'item(s) is/are mandatory' 57 end 58 @items = items 59 end 60 61 def most_recent_version 62 return @items.last.version_id.value 63 end 64 65 def most_recent_version_time_committed 66 return @items.last.audits.first.time_committed.value 67 end 49 68 end # of Revision_History 50 69 51 70 class Revision_History_Item 52 71 attr_reader :version_id, :audits 72 73 def initialize(args = { }) 74 self.version_id = args[:version_id] 75 self.audits = args[:audits] 76 end 77 78 def audits=(audits) 79 if audits.nil? or audits.empty? 80 raise ArgumentError, 'audits is mandatory' 81 end 82 @audits = audits 83 end 84 85 def version_id=(version_id) 86 raise ArgumentError, 'version_id is mandatory' if version_id.nil? 87 @version_id = version_id 88 end 53 89 end # of Revision_History_Item 54 90 … … 137 173 end 138 174 end 175 176 class Attestation < Audit_Details 177 attr_reader :reason 178 attr_accessor :proof, :items 179 180 def initialize(args = { }) 181 super(args) 182 self.reason = args[:reason] 183 self.proof = args[:proof] 184 self.items = args[:items] 185 end 186 187 def reason=(reason) 188 raise ArgumentError, 'reason is mandatory' if reason.nil? 189 @reason = reason 190 end 191 end 139 192 end # of Generic 140 193 end # of Common -
ruby/trunk/lib/models/rm/data_types/quantity/date_time.rb
r151 r157 11 11 module Date_Time 12 12 class DV_Temporal < OpenEHR::RM::Data_Types::Quantity::DV_Absolute_Quantity 13 include Comparable 13 14 attr_reader :value 14 15 … … 29 30 end 30 31 @value = value 32 end 33 34 def <=>(other) 35 self.magnitude <=> other.magnitude 31 36 end 32 37 end … … 151 156 152 157 def magnitude 153 return DateTime.new(@year,@month,@day,@hour,@minute,@second) - 154 DateTime.new(0000,1,1,0,0,0) + @fractional_second 158 seconds = DateTime.new(@year,@month,@day,@hour,@minute,@second) - 159 DateTime.new(0000,1,1,0,0,0) 160 if @fractional_second.nil? 161 return seconds 162 else 163 return seconds + @fractional_second 164 end 155 165 end 156 166 -
ruby/trunk/lib/models/rm/support/identification.rb
r107 r157 174 174 end 175 175 176 class Object_Version_ID < UID_Based_ID 177 attr_reader :object_id, :creating_system_id, :version_tree_id 178 179 def initialize(value) 180 super(value) 181 end 182 183 def value=(value) 184 super(value) 185 if /^(\w+)::(\w+)::((\d|\.)+)$/ =~ value 186 self.object_id = UID.new($1) 187 self.creating_system_id = UID.new($2) 188 self.version_tree_id = Version_Tree_ID.new($3) 189 else 190 raise ArgumentError, 'invalid format' 191 end 192 end 193 194 def object_id=(object_id) 195 raise ArgumentError, 'object_id is mandatory' if object_id.nil? 196 @object_id = object_id 197 end 198 199 def creating_system_id=(creating_system_id) 200 if creating_system_id.nil? 201 raise ArgumentError, 'creating_system_id is mandatory' 202 end 203 @creating_system_id = creating_system_id 204 end 205 206 def version_tree_id=(version_tree_id) 207 if version_tree_id.nil? 208 raise ArgumentError, 'version_tree_id is mandatory' 209 end 210 @version_tree_id = version_tree_id 211 end 212 end 213 176 214 class Locatable_Ref < Object_Ref 177 215 attr_reader :namespace, :type, :id, :path … … 284 322 class ISO_OID <UID 285 323 286 end 324 end 287 325 end # of Identification 288 326 end # of Support -
ruby/trunk/lib/models/tests/rm/test_common.rb
r156 r157 10 10 include OpenEHR::RM::Data_Types::Basic 11 11 include OpenEHR::RM::Data_Types::Quantity 12 include OpenEHR::RM::Data_Types::URI 12 13 13 14 class RM_Common_Resource_Test < Test::Unit::TestCase … … 45 46 provider = Party_Identified.new(:name => 'NERV') 46 47 location = Party_Identified.new(:name => 'GEOFRONT') 47 object_ id = Object_ID.new('0.0.4')48 object_version_id = Object_Version_ID.new('ABC::DEF::1.3.4') 48 49 party_ref = Party_Ref.new('local', 'ORGANISATION', object_id) 49 50 assert_nothing_raised(Exception){ … … 180 181 :change_type => dv_coded_text, 181 182 :description => dv_text)} 182 # change_type = OpenEHR::RM::Data_Types::Text::DV_Text.new('audit_type') 183 # time_committed = OpenEHR::RM::Data_Types::Quantity::Date_Time::DV_Date_Time.new(2008) 184 # assert_nothing_raised(Exception){@audit_details = OpenEHR::RM::Common::Generic::Audit_Details.new('rails',@party_proxy, change_type, time_committed)} 183 dv_text = DV_Text.new('authorisation') 184 dv_ehr_uri = DV_EHR_URI.new('ehr://test/') 185 assert_nothing_raised(Exception){ 186 @attestation = Attestation.new(:system_id => 'NERV', 187 :committer => @party_proxy, 188 :time_committed => dv_date_time, 189 :change_type => dv_coded_text, 190 :reason => dv_text, 191 :description => dv_text, 192 :proof => 'hashedstring', 193 :items => Set[dv_ehr_uri])} 194 object_version_id = Object_Version_ID.new('SHOGOUKI::NERV::1.1.1') 195 audit_details2 = Audit_Details.new(:system_id => 'MAGI', 196 :committer => @party_proxy, 197 :time_committed => dv_date_time2, 198 :change_type => dv_coded_text) 199 assert_nothing_raised(Exception){ 200 @revision_history_item = Revision_History_Item.new(:audits => [@audit_details, audit_details2], 201 :version_id => object_version_id)} 202 dv_date_time3 = DV_Date_Time.new('2009-07-14T12:00:00') 203 dv_date_time4 = DV_Date_Time.new('2009-07-15T00:00:00') 204 audit_details3 = Audit_Details.new(:system_id => 'MAGI', 205 :committer => @party_proxy, 206 :time_committed => dv_date_time3, 207 :change_type => dv_coded_text) 208 audit_details4 = Audit_Details.new(:system_id => 'MAGI', 209 :committer => @party_proxy, 210 :time_committed => dv_date_time4, 211 :change_type => dv_coded_text) 212 object_version_id = Object_Version_ID.new('NIGOUKI::NERV::2.2.2') 213 revision_history_item2 = Revision_History_Item.new(:audits => [audit_details3, audit_details4], 214 :version_id => object_version_id) 215 assert_nothing_raised(Exception){ 216 @revision_history = Revision_History.new([@revision_history_item, revision_history_item2])} 185 217 end 186 218 … … 191 223 assert_instance_of Participation, @participation 192 224 assert_instance_of Audit_Details, @audit_details 225 assert_instance_of Attestation, @attestation 226 assert_instance_of Revision_History_Item, @revision_history_item 227 assert_instance_of Revision_History, @revision_history 193 228 end 194 229 … … 230 265 assert_equal 'test environment', @audit_details.description.value 231 266 end 267 268 def test_attestation 269 assert_equal 'NERV', @attestation.system_id 270 assert_equal 'unknown', @attestation.committer.external_ref.namespace 271 assert_equal '249', @attestation.change_type.defining_code.code_string 272 assert_equal 7, @attestation.time_committed.month 273 assert_equal 'authorisation', @attestation.reason.value 274 assert_equal 'authorisation', @attestation.description.value 275 assert_equal 'hashedstring', @attestation.proof 276 assert_equal 'ehr://test/', @attestation.items.to_a[0].value 277 end 278 279 def test_revision_history_item 280 assert_equal 'SHOGOUKI::NERV::1.1.1', @revision_history_item.version_id.value 281 assert_equal 'MAGI', @revision_history_item.audits[0].system_id 282 end 283 284 def test_revision_history 285 assert_equal 'NIGOUKI::NERV::2.2.2', @revision_history.most_recent_version 286 assert_equal '2009-07-14T12:00:00', @revision_history.most_recent_version_time_committed 287 end 232 288 end 233 289 -
ruby/trunk/lib/models/tests/rm/test_support.rb
r119 r157 24 24 assert_nothing_raised(Exception){@access_group_ref = OpenEHR::RM::Support::Identification::Access_Group_Ref.new('unknown', 'ACCESS_GROUP', @object_id)} 25 25 assert_nothing_raised(Exception){@version_tree_id = OpenEHR::RM::Support::Identification::Version_Tree_ID.new('1.2.3')} 26 assert_nothing_raised(Exception){@object_version_id = OpenEHR::RM::Support::Identification::Object_Version_ID.new('ABC::DEF::1.2.3')} 26 27 end 27 28 … … 39 40 assert_instance_of OpenEHR::RM::Support::Identification::Access_Group_Ref, @access_group_ref 40 41 assert_instance_of OpenEHR::RM::Support::Identification::Version_Tree_ID, @version_tree_id 42 assert_instance_of OpenEHR::RM::Support::Identification::Object_Version_ID, @object_version_id 41 43 end 42 44 … … 218 220 end 219 221 222 def test_object_version_id 223 assert_equal 'ABC::DEF::1.2.3', @object_version_id.value 224 assert_equal 'ABC', @object_version_id.object_id.value 225 assert_equal 'DEF', @object_version_id.creating_system_id.value 226 assert_equal '1', @object_version_id.version_tree_id.trunk_version 227 end 228 220 229 def test_locatable_ref 221 230 # test constructor
Note:
See TracChangeset
for help on using the changeset viewer.