Class: OpenehrRails::OpenehrApi::CompositionsController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- OpenehrRails::OpenehrApi::CompositionsController
- Defined in:
- app/controllers/openehr_rails/openehr_api/compositions_controller.rb
Overview
openEHR REST API COMPOSITION resource
(base URL:
Defined Under Namespace
Classes: PreconditionFailed
Instance Method Summary collapse
-
#create ⇒ Object
POST /v1/ehr/:ehr_id/composition.
-
#destroy ⇒ Object
DELETE /v1/ehr/:ehr_id/composition/:uid (logical delete: appends a LIFECYCLE_DELETED version).
-
#show ⇒ Object
GET /v1/ehr/:ehr_id/composition/:uid (versioned "uid::system::n" or bare uid; either resolves the head).
-
#update ⇒ Object
PUT /v1/ehr/:ehr_id/composition/:uid (requires If-Match: "
").
Instance Method Details
#create ⇒ Object
POST /v1/ehr/:ehr_id/composition
24 25 26 27 28 29 30 31 32 |
# File 'app/controllers/openehr_rails/openehr_api/compositions_controller.rb', line 24 def create ehr = find_ehr! canonical = parsed_body uid = canonical.dig('uid', 'value').presence || SecureRandom.uuid canonical['uid'] = { '_type' => 'HIER_OBJECT_ID', 'value' => uid } composition = OpenehrRails::Rm::CompositionCommitter.commit(canonical, uid: uid, ehr: ehr) render_composition(composition, status: :created) end |
#destroy ⇒ Object
DELETE /v1/ehr/:ehr_id/composition/:uid (logical delete: appends a LIFECYCLE_DELETED version)
54 55 56 57 58 59 60 61 62 63 |
# File 'app/controllers/openehr_rails/openehr_api/compositions_controller.rb', line 54 def destroy ehr = find_ehr! head_composition = find_composition! check_if_match!(head_composition) if request.headers['If-Match'].present? composition = OpenehrRails::Rm::CompositionCommitter.commit(head_composition.to_canonical_hash, uid: head_composition.uid, ehr: ehr) composition.version.update!(lifecycle_state_code: OpenehrRails::Rm::Version::LIFECYCLE_DELETED) head :no_content end |
#show ⇒ Object
GET /v1/ehr/:ehr_id/composition/:uid (versioned "uid::system::n" or bare uid; either resolves the head)
35 36 37 38 39 |
# File 'app/controllers/openehr_rails/openehr_api/compositions_controller.rb', line 35 def show find_ehr! composition = find_composition! render json: composition.to_canonical_hash end |
#update ⇒ Object
PUT /v1/ehr/:ehr_id/composition/:uid (requires If-Match: "
42 43 44 45 46 47 48 49 50 51 |
# File 'app/controllers/openehr_rails/openehr_api/compositions_controller.rb', line 42 def update ehr = find_ehr! head_composition = find_composition! check_if_match!(head_composition) canonical = parsed_body canonical['uid'] = { '_type' => 'HIER_OBJECT_ID', 'value' => head_composition.uid } composition = OpenehrRails::Rm::CompositionCommitter.commit(canonical, uid: head_composition.uid, ehr: ehr) render_composition(composition) end |