public async Task <IActionResult> SearchMpi([FromBody] SearchMpi search) { if (null == search) { return(BadRequest()); } try { var results = await _mediator.Send <List <MpiSearchResultDto> >(search, HttpContext.RequestAborted); return(Ok(results)); } catch (Exception e) { Log.Error(e, "search error"); return(StatusCode(500, e.Message)); } }
public List <MpiSearchResultDto> MpiSearch(SearchMpi parameters) { string sex = "M"; if (parameters.Gender == Gender.Female) { sex = "F"; } var result = new List <MpiSearchResultDto>(); SqlConnection connection = new SqlConnection(ConnectionString); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "Pr_SearchMasterPatientIndex"; cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = connection; cmd.Parameters.Add(new SqlParameter("@FirstName", parameters.FirstName)); cmd.Parameters.Add(new SqlParameter("@MiddleName", parameters.MiddleName)); cmd.Parameters.Add(new SqlParameter("@LastName", parameters.LastName)); cmd.Parameters.Add(new SqlParameter("@Gender", sex)); cmd.Parameters.Add(new SqlParameter("@DateOfBirth", parameters.Dob)); cmd.Parameters.Add(new SqlParameter("@Telephone", parameters.PhoneNumber)); cmd.Parameters.Add(new SqlParameter("@NationalId", parameters.NationalId)); cmd.Parameters.Add(new SqlParameter("@NHIFNumber", parameters.NhifNumber)); cmd.Parameters.Add(new SqlParameter("@Actual", 0)); connection.Open(); using (SqlDataReader reader = cmd.ExecuteReader()) { //read the data while (reader.Read()) { var resultItem = Mapper.Map <IDataRecord, MpiSearchResultDto>(reader); result.Add(resultItem); } } connection.Close(); return(result); }
public async Task <List <MpiSearchResultDto> > Handle(SearchMpi request, CancellationToken cancellationToken) { var response = await Task.Run(() => _masterPatientIndexRepository.MpiSearch(request), cancellationToken); return(response); }