public IActionResult Post([FromBody] DeviceDataPayload payload) { var outgoingPayload = BuildPayload(payload); using (var client = new HttpClient()) { try { client.BaseAddress = new Uri(RUNNER_BASE_URL); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var response = client.PostAsJsonAsync(RUNNER_ROUTE, outgoingPayload).Result; response.EnsureSuccessStatusCode(); object result = response.Content.ReadAsStringAsync().Result; return(Ok(result)); } catch (HttpRequestException httpRequestException) { return(BadRequest($"Error submitting data to pipeline runner: {httpRequestException.Message}")); } catch (Exception exception) { return(BadRequest($"Error submitting data to pipeline runner: {exception.Message}")); } } }
private DeviceDataMetadataPipelineMapPayload BuildPayload(DeviceDataPayload incomingPayload) { var patient = PatientRepository.Instance.GetPatientByDeviceId(incomingPayload.DeviceId); var map = PipelineMapRepository.Instance.GetPipelineMapByPatientId(patient.Id); var outgoingPayload = new DeviceDataMetadataPipelineMapPayload { Data = incomingPayload.Data, DataType = incomingPayload.DataType, DeviceId = incomingPayload.DeviceId, Map = map, PatientId = patient.Id, StudyId = patient.StudyId }; return(outgoingPayload); }