class OpenEHR::RM::Common::ChangeControl::VersionedObject
Attributes
all_versions[R]
owner_id[R]
time_created[R]
uid[R]
Public Class Methods
new(args = { })
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 164 def initialize(args = { }) self.uid = args[:uid] self.owner_id = args[:owner_id] self.time_created = args[:time_created] self.all_versions = args[:all_versions] end
Public Instance Methods
all_version_ids()
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 195 def all_version_ids ids = [] @all_versions.each{|id| ids << id.uid} return ids end
all_versions=(all_versions)
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 188 def all_versions=(all_versions) if all_versions.nil? || all_versions.size < 0 raise ArgumentError, 'version count invalid' end @all_versions = all_versions end
commit_attestation(args = { })
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 317 def commit_attestation(args = { }) if args[:attestation].nil? raise ArgumentError, 'attestation is mandatory' end if self.has_version_id?(args[:uid]) && self.is_original_version?(args[:uid]) self.version_with_id(args[:uid]).attestations << args[:attestation] self.version_with_id(args[:uid]).signature = args[:signature] else raise ArgumentError, 'uid invalid' end end
commit_imported_version(args = { })
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 311 def commit_imported_version(args = { }) @all_versions << ImportedVersion.new(:item => args[:item], :contribution => args[:contribution], :commit_audit => args[:commit_audit]) end
commit_original_merged_version(args = { })
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 299 def commit_original_merged_version(args = { }) @all_versions << OriginalVersion.new(:uid => args[:uid], :contribution => args[:contribution], :preceding_version_uid => args[:preceding_version_uid], :commit_audit => args[:commit_audit], :lifecycle_state => args[:lifecycle_state], :data => args[:data], :attestations => args[:attestations], :other_input_version_uids => args[:other_input_version_uids], :signature => args[:signature]) end
commit_original_version(args={ })
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 284 def commit_original_version(args={ }) if has_version_id?(args[:preceding_version_uid]) or self.version_count == 0 @all_versions << OriginalVersion.new(:uid => args[:uid], :preceding_version_uid => args[:preceding_version_uid], :contribution => args[:contribution], :commit_audit => args[:commit_audit], :lifecycle_state => args[:lifecycle_state], :data => args[:data], :attestations => args[:attestations], :signature => args[:signature]) else raise ArgumentError, 'invalid preceding uid' end end
has_version_at_time?(a_time)
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 217 def has_version_at_time?(a_time) raise ArgumentError, 'argument mandatory' if a_time.nil? @all_versions.each do |ver| if ver.commit_audit.time_committed == a_time return true end end return false end
has_version_id?(a_ver_id)
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 205 def has_version_id?(a_ver_id) raise ArgumentError, 'argument is mandatory' if a_ver_id.nil? return self.all_version_ids.include?(a_ver_id) end
is_original_version?(a_ver_id)
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 210 def is_original_version?(a_ver_id) if a_ver_id.nil? || !self.has_version_id?(a_ver_id) raise ArgumentError, 'invalid a_ver_id' end return @all_versions[self.all_version_ids.index(a_ver_id)].instance_of? OriginalVersion end
latest_trunk_version()
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 252 def latest_trunk_version trunk_versions = [ ] @all_versions.each do |ver| if ver.uid.version_tree_id.trunk_version == '1' trunk_versions << ver end end sorted_trunk_version = trunk_versions.sort do |a,b| a.commit_audit.time_committed <=> b.commit_audit.time_committed end return sorted_trunk_version.last end
latest_version()
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 245 def latest_version time_sorted_version = @all_versions.sort do |a,b| a.commit_audit.time_committed <=> b.commit_audit.time_committed end return time_sorted_version.last end
owner_id=(owner_id)
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 176 def owner_id=(owner_id) raise ArgumentError, 'owner_id is mandatory' if owner_id.nil? @owner_id = owner_id end
revision_history()
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 269 def revision_history revision_history_items = [ ] @all_versions.each do |ver| audits = [ ] if ver.instance_of? OriginalVersion audits << ver.attestations end audits << ver.commit_audit revision_history_items << RevisionHistoryItem.new( :audits => audits, :version_id => ver.uid) end return RevisionHistory.new(:items => revision_history_items) end
time_created=(time_created)
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 181 def time_created=(time_created) if time_created.nil? raise ArgumentError, 'time_created is mandatory' end @time_created = time_created end
trunk_lifecycle_state()
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 265 def trunk_lifecycle_state return self.latest_trunk_version.lifecycle_state end
uid=(uid)
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 171 def uid=(uid) raise ArgumentError, 'uid is mandatory' if uid.nil? @uid = uid end
version_at_time(a_time)
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 234 def version_at_time(a_time) if a_time.nil? || !self.has_version_at_time?(a_time) raise ArgumentError, 'argument invalid' end @all_versions.each do |ver| if ver.commit_audit.time_committed == a_time return ver end end end
version_count()
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 201 def version_count return all_versions.size end
version_with_id(a_ver_id)
click to toggle source
# File lib/open_ehr/rm/common/change_control.rb, line 227 def version_with_id(a_ver_id) if a_ver_id.nil? || !self.has_version_id?(a_ver_id) raise ArgumentError, 'argument invalid' end return @all_versions[self.all_version_ids.index(a_ver_id)] end