Method: DdeClient::DdeService#update_local_patient

Defined in:
app/services/dde_client/dde_service.rb

#update_local_patient(patient, update_npid: false) ⇒ Object

Updates local patient with demographics currently in Dde.



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# File 'app/services/dde_client/dde_service.rb', line 116

def update_local_patient(patient, update_npid: false)
  doc_id = patient_doc_id(patient)
  unless doc_id
    Rails.logger.warn("No Dde doc_id found for patient ##{patient.patient_id}")
    push_local_patient_to_dde(patient)
    return patient
  end

  dde_patient = find_remote_patients_by_doc_id(doc_id).first
  unless dde_patient
    Rails.logger.warn("Couldn't find patient ##{patient.patient_id} in Dde by doc_id ##{doc_id}")
    push_local_patient_to_dde(patient)
    return patient
  end

  if update_npid
    merging_service.link_local_to_remote_patient(patient, dde_patient)
    return patient
  end

  person_service.update_person(patient.person, dde_patient_to_local_person(dde_patient))
  patient
end