public HttpStatusCode Update(string patid, String format, String data) { int id = Int32.Parse(patid); var resource = Parse(format, data); var patient = PatientMapper.MapResource(resource); patient.PatientId = id; // Upate "Patient" resource in the repository _repository.UpdatePatient(patient); var response = WebOperationContext.Current.OutgoingResponse; var uri = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.BaseUri; string fhirbase = uri.AbsoluteUri; string host = uri.Host; response.LastModified = patient.Timestamp; response.StatusCode = HttpStatusCode.Created; response.Headers.Add("Host", host); response.Location = String.Format("{0}/Patient/{1}/_history/{2}", fhirbase, patient.PatientId, patient.Version); return(HttpStatusCode.OK); }
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 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); }