public ActionResult Save(DetailsPatient item) { DetailsPatient element = new DetailsPatient(); element.date = item.date; element.reason = item.reason; element.amount = item.amount; element.resourceName = item.resourceName; element.id = item.id; element.patientId = item.patientId; var conn = new FhirClient("http://localhost:8080/baseR4"); conn.PreferredFormat = ResourceFormat.Json; Patient patient = conn.Read <Patient>("Patient/" + element.patientId); UriBuilder uriBuilder = new UriBuilder("http://localhost:8080/baseR4"); uriBuilder.Path = "Patient/" + patient.Id; Resource resultResource = conn.InstanceOperation(uriBuilder.Uri, "everything"); ViewBag.Surname = patient.Name[0].Family; ViewBag.ID = patient.Id; ViewBag.Name = patient.Name[0].Given.FirstOrDefault(); ViewBag.birthDate = new Date(patient.BirthDate.ToString()); if (resultResource is Bundle) { Bundle resultBundle = resultResource as Bundle; while (resultBundle != null) { foreach (var i in resultBundle.Entry) { DetailsPatient fetchedElement = new DetailsPatient(); switch (i.Resource.TypeName) { case "Observation": Observation observation = (Observation)i.Resource; if (observation.Id == item.id) { fetchedElement.date = observation.Effective; fetchedElement.reason = observation.Code.Text; fetchedElement.amount = observation.Meta.VersionId; UriBuilder uriBuilderBack = new UriBuilder("http://localhost:8080/baseR4"); uriBuilderBack.Path = "Observation/" + item.id; Observation resultResourceBack = conn.Read <Observation>(uriBuilderBack.Uri); resultResourceBack.Code.Text = item.reason; conn.Update(resultResourceBack); } break; case "MedicationRequest": MedicationRequest medicationRequest = (MedicationRequest)i.Resource; if (medicationRequest.Id == item.id) { fetchedElement.amount = medicationRequest.Meta.VersionId; //fetchedElement.date = medicationRequest.AuthoredOn //fetchedElement.reason += ((CodeableConcept)medicationRequest.Medication).Text; } break; } } resultBundle = conn.Continue(resultBundle, PageDirection.Next); } } return(View(element)); }
public ViewResult Edit(string id, string resourceName, string patientId) { var conn = new FhirClient("http://localhost:8080/baseR4"); conn.PreferredFormat = ResourceFormat.Json; Patient patient = conn.Read <Patient>("Patient/" + patientId); UriBuilder uriBuilder = new UriBuilder("http://localhost:8080/baseR4"); uriBuilder.Path = "Patient/" + patient.Id; Resource resultResource = conn.InstanceOperation(uriBuilder.Uri, "everything"); ViewBag.Surname = patient.Name[0].Family; ViewBag.ID = patient.Id; ViewBag.Name = patient.Name[0].Given.FirstOrDefault(); ViewBag.birthDate = new Date(patient.BirthDate.ToString()); var selectedElement = new DetailsPatient(); if (resultResource is Bundle) { Bundle resultBundle = resultResource as Bundle; while (resultBundle != null) { foreach (var i in resultBundle.Entry) { DetailsPatient element = new DetailsPatient(); switch (i.Resource.TypeName) { case "Observation": Observation observation = (Observation)i.Resource; if (observation.Id == id) { element.id = observation.Id; element.resourceName = "Observation"; element.date = observation.Effective; element.reason = observation.Code.Text; element.amount = observation.Meta.VersionId; element.patientId = patient.Id; selectedElement = element; } break; case "MedicationRequest": MedicationRequest medicationRequest = (MedicationRequest)i.Resource; if (medicationRequest.Id == id) { element.id = medicationRequest.Id; element.resourceName = "MedicationRequest"; element.reason += ((CodeableConcept)medicationRequest.Medication).Text; element.patientId = patientId; element.amount = medicationRequest.Meta.VersionId; selectedElement = element; } break; } } resultBundle = conn.Continue(resultBundle, PageDirection.Next); } } return(View(selectedElement)); }