Class: OpenehrRails::OpenehrApi::EhrsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/openehr_rails/openehr_api/ehrs_controller.rb

Overview

openEHR REST API EHR resource (base URL: /v1/ehr).

Instance Method Summary collapse

Instance Method Details

#createObject

POST /v1/ehr (server-generated ehr_id)



15
16
17
18
# File 'app/controllers/openehr_rails/openehr_api/ehrs_controller.rb', line 15

def create
  ehr = OpenehrRails::Rm::Ehr.create!(ehr_attributes.merge(ehr_id: SecureRandom.uuid))
  render_ehr(ehr, status: :created)
end

#ehr_statusObject

GET /v1/ehr/:ehr_id/ehr_status



36
37
38
# File 'app/controllers/openehr_rails/openehr_api/ehrs_controller.rb', line 36

def ehr_status
  render json: OpenehrRails::Rm::EhrSerializer.new(find_ehr!).ehr_status
end

#showObject

GET /v1/ehr/:ehr_id



31
32
33
# File 'app/controllers/openehr_rails/openehr_api/ehrs_controller.rb', line 31

def show
  render_ehr(find_ehr!)
end

#upsertObject

PUT /v1/ehr/:ehr_id (client-supplied ehr_id)



21
22
23
24
25
26
27
28
# File 'app/controllers/openehr_rails/openehr_api/ehrs_controller.rb', line 21

def upsert
  if OpenehrRails::Rm::Ehr.exists?(ehr_id: params[:ehr_id])
    return render json: { error: "EHR #{params[:ehr_id]} already exists" }, status: :conflict
  end

  ehr = OpenehrRails::Rm::Ehr.create!(ehr_attributes.merge(ehr_id: params[:ehr_id]))
  render_ehr(ehr, status: :created)
end