Class: OpenehrRails::Rm::CompositionCommitter
- Inherits:
-
Object
- Object
- OpenehrRails::Rm::CompositionCommitter
- Defined in:
- lib/openehr_rails/rm/composition_committer.rb
Overview
Commits a canonical composition hash to the RM graph with immutable-append versioning: every commit snapshots a fresh graph and appends a Version; a prior head (found by uid) keeps its graph but loses latest_version. Shared by Storable's save hook (GraphPersister, owner: the scaffolded record) and the openEHR REST API's COMPOSITION endpoint (owner: nil, graph-only).
Class Method Summary collapse
Instance Method Summary collapse
- #commit ⇒ Object
-
#initialize(canonical_hash, uid:, ehr: nil, owner: nil, context_start_time: nil) ⇒ CompositionCommitter
constructor
A new instance of CompositionCommitter.
Constructor Details
#initialize(canonical_hash, uid:, ehr: nil, owner: nil, context_start_time: nil) ⇒ CompositionCommitter
Returns a new instance of CompositionCommitter.
16 17 18 19 20 21 22 |
# File 'lib/openehr_rails/rm/composition_committer.rb', line 16 def initialize(canonical_hash, uid:, ehr: nil, owner: nil, context_start_time: nil) @canonical_hash = canonical_hash @uid = uid @ehr = ehr @owner = owner @context_start_time = context_start_time end |
Class Method Details
.commit(canonical_hash, uid:, ehr: nil, owner: nil, context_start_time: nil) ⇒ Object
12 13 14 |
# File 'lib/openehr_rails/rm/composition_committer.rb', line 12 def self.commit(canonical_hash, uid:, ehr: nil, owner: nil, context_start_time: nil) new(canonical_hash, uid: uid, ehr: ehr, owner: owner, context_start_time: context_start_time).commit end |
Instance Method Details
#commit ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/openehr_rails/rm/composition_committer.rb', line 24 def commit ActiveRecord::Base.transaction do previous = head_composition composition = create_composition record_version(composition, previous) composition end end |