Class: DdeClient::Api::V1::DdeController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/dde_client/api/v1/dde_controller.rb

Instance Method Summary collapse

Instance Method Details

#find_patients_by_name_and_genderObject



8
9
10
11
# File 'app/controllers/dde_client/api/v1/dde_controller.rb', line 8

def find_patients_by_name_and_gender
  given_name, family_name, gender = params.require(%i[given_name family_name gender])
  render json: service.find_patients_by_name_and_gender(given_name, family_name, gender)
end

#find_patients_by_npidObject

GET /dde/patients



3
4
5
6
# File 'app/controllers/dde_client/api/v1/dde_controller.rb', line 3

def find_patients_by_npid
  npid = params.require(:npid)
  render json: service.find_patients_by_npid(npid)
end

#import_patients_by_doc_idObject



18
19
20
21
# File 'app/controllers/dde_client/api/v1/dde_controller.rb', line 18

def import_patients_by_doc_id
  doc_id = params.require(:doc_id)
  render json: service.import_patients_by_doc_id(doc_id)
end

#import_patients_by_npidObject



13
14
15
16
# File 'app/controllers/dde_client/api/v1/dde_controller.rb', line 13

def import_patients_by_npid
  npid = params.require(:npid)
  render json: service.import_patients_by_npid(npid)
end

#match_patients_by_demographicsObject

GET /api/v1/dde/match

Returns Dde patients matching demographics passed



30
31
32
33
34
35
36
37
38
39
40
# File 'app/controllers/dde_client/api/v1/dde_controller.rb', line 30

def match_patients_by_demographics
  render json: service.match_patients_by_demographics(
    given_name: match_params[:given_name],
    family_name: match_params[:family_name],
    gender: match_params[:gender],
    birthdate: match_params[:birthdate],
    home_traditional_authority: match_params[:home_traditional_authority],
    home_district: match_params[:home_district],
    home_village: match_params[:home_village]
  )
end

#merge_patientsObject



47
48
49
50
51
52
# File 'app/controllers/dde_client/api/v1/dde_controller.rb', line 47

def merge_patients
  primary_patient_ids = params.require(:primary)
  secondary_patient_ids_list = params.require(:secondary)

  render json: service.merge_patients(primary_patient_ids, secondary_patient_ids_list)
end

#patient_diffObject



54
55
56
57
58
59
# File 'app/controllers/dde_client/api/v1/dde_controller.rb', line 54

def patient_diff
  patient_id = params.require(:patient_id)
  diff = service.find_patient_updates(patient_id)

  render json: { diff: diff }
end

#reassign_patient_npidObject



42
43
44
45
# File 'app/controllers/dde_client/api/v1/dde_controller.rb', line 42

def reassign_patient_npid
  patient_ids = params.permit(:doc_id, :patient_id)
  render json: service.reassign_patient_npid(patient_ids)
end

#refresh_patientObject

Updates local patient with demographics in Dde.



63
64
65
66
67
68
69
70
# File 'app/controllers/dde_client/api/v1/dde_controller.rb', line 63

def refresh_patient
  patient_id = params.require(:patient_id)
  update_npid = params[:update_npid]&.casecmp?('true') || false

  patient = service.update_local_patient(Patient.find(patient_id), update_npid: update_npid)

  render json: patient
end

#remaining_npidsObject



23
24
25
# File 'app/controllers/dde_client/api/v1/dde_controller.rb', line 23

def remaining_npids
  render json: service.remaining_npids
end