public HttpResponseMessage Create(Hl7.Fhir.Model.Patient fhirPatient) { HttpResponseMessage message = new HttpResponseMessage(); Patient patient = PatientMapper.MapResource(fhirPatient); patient = (Patient)ControllerUtils.AddMetadata(patient, ControllerUtils.CREATE); db.Patients.Add(patient); db.SaveChanges(); message.Content = new StringContent("Patient created!", Encoding.UTF8, "text/html"); message.StatusCode = HttpStatusCode.Created; message.Headers.Location = new Uri(Url.Link("SpecificPatient", new { id = patient.PatientId })); return(message); }
public HttpResponseMessage Delete(int patientId) { HttpResponseMessage message = new HttpResponseMessage(); Patient patient = db.Patients.Find(patientId); if (patient == null) { message.StatusCode = HttpStatusCode.NotFound; message.Content = new StringContent("Patient with id " + patientId + " not found!", Encoding.UTF8, "text/html"); return(message); } patient = (Patient)ControllerUtils.AddMetadata(patient, ControllerUtils.DELETE); db.Patients.Remove(patient); db.SaveChanges(); message.StatusCode = HttpStatusCode.OK; return(message); }
public HttpResponseMessage Update(Hl7.Fhir.Model.Patient fhirPatient, int patientId) { HttpResponseMessage message = new HttpResponseMessage(); if (patientId != int.Parse(fhirPatient.Id)) { message.StatusCode = HttpStatusCode.BadRequest; message.Content = new StringContent("Mismatch of patient ID! Provided " + patientId + " in URL but found " + fhirPatient.Id + "in payload!", Encoding.UTF8, "text/html"); return(message); } Patient patient = PatientMapper.MapResource(fhirPatient); patient = (Patient)ControllerUtils.AddMetadata(patient, ControllerUtils.UPDATE); db.Entry(patient).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!PatientExists(patientId)) { message.StatusCode = HttpStatusCode.NotFound; message.Content = new StringContent("Patient with id " + patientId + " not found!", Encoding.UTF8, "text/html"); return(message); } else { throw; } } message.StatusCode = HttpStatusCode.NoContent; return(message); }