public async Task MainAsync(string[] args) { LogManager.LoadConfiguration("nlog.config"); ILoggerFactory loggerFactory = new NLogLoggerFactory(); var logger = loggerFactory.CreateLogger <Program>(); try { var configuration = CreateConfigurationObject(); var clinicalDocumentAPIConfig = new ClinicalDocumentAPIConfig(); configuration.Bind(clinicalDocumentAPIConfig); var options = Options.Create(clinicalDocumentAPIConfig); _restClinicalDocumentAPI = new RestClinicalDocumentAPI(options, loggerFactory); _documentDetailRequest = CreateDocumentDetailRequest(); //POST endpoint of clinical document - Save Clinical Documents var saveClinicalDocumentsResult = await _restClinicalDocumentAPI.SaveClinicalDocumentDetails(_documentDetailRequest); //GET endpoint of clinical document - Get Clinical Documents var getClinicalDocumentsResult = await _restClinicalDocumentAPI.GetClinicalDocumentDetails("TEST", "12345"); } catch (Exception ex) { logger.LogError(ex, "Exception at Clinical Document Console application"); Console.WriteLine(ex); } }
public void ValidateRequiredFacilityCodeRequest() { CheckPropertyValidation val = new CheckPropertyValidation(); var activityObject = new DocumentDetailRequest { AccountNumber = "1234567", DocumentName = "OpsReport", DocumentType = "JPEG", FacilityCode = "" }; var validDetails = val.ValidateModel(activityObject).ToList().FirstOrDefault(); Assert.Equal("Facility Code is required", validDetails.ToString()); }
public void ValidateMaxLengthaccountNumberRequest() { CheckPropertyValidation val = new CheckPropertyValidation(); var activityObject = new DocumentDetailRequest { AccountNumber = "WE@#$%QWEQ", DocumentName = "OpsReport", DocumentType = "JPEG", FacilityCode = "SJPR" }; var validDetails = val.ValidateModel(activityObject).ToList().FirstOrDefault(); Assert.Equal("Please enter valid Account Number", validDetails.ToString()); }
public void ValidateDocumentDetailRequest() { CheckPropertyValidation val = new CheckPropertyValidation(); var activityObject = new DocumentDetailRequest { AccountNumber = "1234567", DocumentName = "OpsReport", DocumentType = "JPEG", FacilityCode = "SJPR" }; var validDetails = val.ValidateModel(activityObject).Count(); Assert.Equal("0", validDetails.ToString()); }
public async void ThrowsExceptionFromSaveClinicalDocumentDetailsWhenURLIsInvalid() { var mockILogger = new Mock <ILoggerFactory>(); var mockIOptionsClinicalDocumentAPIConfig = new Mock <IOptions <ClinicalDocumentAPIConfig> >(); var mockIRestClinicalDocumentAPI = new Mock <IRestClinicalDocumentAPI>(); DocumentDetailRequest documentDetailRequest = CreateDocumentDetailRequestObject(); SetClinicalDocumentApiConfig(inValidUrl, mockIOptionsClinicalDocumentAPIConfig); var documentDetailResponse = new DocumentDetailResponse { ResponseMessage = "Success" }; var restClinicalDocumentAPI = new RestClinicalDocumentAPI(mockIOptionsClinicalDocumentAPIConfig.Object, mockILogger.Object); await Assert.ThrowsAsync <NullReferenceException>(() => restClinicalDocumentAPI.SaveClinicalDocumentDetails(documentDetailRequest)); }
/// <summary> /// Save clinical documents to database /// </summary> /// <param name="documentDetailRequest"></param> /// <returns></returns> public async Task <DocumentDetailResponse> SaveClinicalDocumentDetails(DocumentDetailRequest documentDetailRequest) { try { string postURL = $"{_baseUrl}/{EndpointConstants.SaveClinicalDocument}"; var postContent = new StringContent(JsonConvert.SerializeObject(documentDetailRequest), System.Text.Encoding.UTF8, "application/json"); HttpClient httpClient = new HttpClient(); using (var httpResponse = await httpClient.PostAsync(postURL, postContent)) { if (httpResponse.IsSuccessStatusCode) { var content = await httpResponse.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <DocumentDetailResponse>(content)); } else if (httpResponse.StatusCode == HttpStatusCode.BadRequest) { var badResponse = await BadRequestAsync(httpResponse); return(new DocumentDetailResponse { ValidationResponse = badResponse }); } else { var errorContent = await httpResponse.Content.ReadAsStringAsync(); var errorResponse = JsonConvert.DeserializeObject <ErrorResponse>(errorContent); return(new DocumentDetailResponse { ExceptionMessage = errorResponse.ExceptionMessage }); } } } catch (Exception ex) { _logger.LogError(ex, Messages.SaveExceptionMessage); return(new DocumentDetailResponse { ExceptionMessage = Messages.ExceptionMessage }); } }
public async void SaveClinicalDocumentDetails() { var mockILogger = new Mock <ILoggerFactory>(); var mockIOptionsClinicalDocumentAPIConfig = new Mock <IOptions <ClinicalDocumentAPIConfig> >(); var mockIRestClinicalDocumentAPI = new Mock <IRestClinicalDocumentAPI>(); DocumentDetailRequest documentDetailRequest = CreateDocumentDetailRequestObject(); SetClinicalDocumentApiConfig(validUrl, mockIOptionsClinicalDocumentAPIConfig); var documentDetailResponse = new DocumentDetailResponse { ResponseMessage = "Success" }; var restClinicalDocumentAPI = new RestClinicalDocumentAPI(mockIOptionsClinicalDocumentAPIConfig.Object, mockILogger.Object); var result = await restClinicalDocumentAPI.SaveClinicalDocumentDetails(documentDetailRequest); Assert.True(result.IsValid); Assert.True(result.ResponseMessage.Length > 0); Assert.Contains("successfully", result.ResponseMessage); }
/// <summary> /// Save Clinical Document Constructor /// </summary> public SaveClinicalDocument_Step() { _server = new TestServer( WebHost.CreateDefaultBuilder() .UseStartup <Startup>() ); _client = _server.CreateClient(); _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); _documentDetailRequest_Contract = new DocumentDetailRequest { AccountNumber = "1234567", DocumentName = "OpsReport", DocumentType = "JPEG", FacilityCode = "SJPR", MimeType = "image/jpeg", SourceSystem = "GCR", Document = Convert.FromBase64String("") }; _validationResultModel = new ValidationResultModel(); }
public async void SaveClinicalDocumentDetailsReturnsBadRequestWhenParameterPassedIsInvalid() { var mockILogger = new Mock <ILoggerFactory>(); var mockIOptionsClinicalDocumentAPIConfig = new Mock <IOptions <ClinicalDocumentAPIConfig> >(); DocumentDetailRequest documentDetailRequest = CreateDocumentDetailRequestObject(); documentDetailRequest.FacilityCode = "TESTWA"; SetClinicalDocumentApiConfig(validUrl, mockIOptionsClinicalDocumentAPIConfig); var documentDetailResponse = new DocumentDetailResponse { ResponseMessage = "Success" }; var restClinicalDocumentAPI = new RestClinicalDocumentAPI(mockIOptionsClinicalDocumentAPIConfig.Object, mockILogger.Object); var result = await restClinicalDocumentAPI.SaveClinicalDocumentDetails(documentDetailRequest); Assert.True((!result.IsValid)); Assert.Equal("Validation Failed", result.ValidationResponse.Message); }
public async Task <DocumentDetailResponse> DocumentDetail(DocumentDetailRequest request) { try { using (IDbConnection connection = new SqlConnection(_configuration.GetValue <string>("ConnectionStrings:DefaultConnection"))) { DocumentDetail document = new DocumentDetail(); DynamicParameters parameters = new DynamicParameters(); parameters.Add("@Id", request.Id); await Task.Run(() => document = connection.Query <DocumentDetail>("App_Docs_Get", parameters, null, true, null, CommandType.StoredProcedure).FirstOrDefault() ); if (document != null) { parameters = new DynamicParameters(); parameters.Add("@DocId", document.Id); await Task.Run(() => document.DocsFiles = connection.Query <DocsFile>("DocsFiles_GetByDocId", parameters, null, true, null, CommandType.StoredProcedure).AsList <DocsFile>() ); } return(new DocumentDetailResponse { Status = ResponseStatus.Success, Message = ResponseStatus.Success.ToString(), Document = document, }); } } catch (Exception ex) { return(new DocumentDetailResponse { Status = ResponseStatus.Faile, Message = ex.Message, }); } }
public async Task <IActionResult> SaveClinicaldetails([FromBody] DocumentDetailRequest documentDetailRequest) { DocumentDetailResponse clinicalDetailsResponse = null; //Map Contract request model to clinical document input model ClinicalDocumentInputModel clinicalDocumentInputModel = _iMapper.Map <ClinicalDocumentInputModel>(documentDetailRequest); // Save document details ClinicalDocumentOutputModel clinicalDetails = await _iClinicalDocumentBusinessLogic.SaveClinicalDetails(clinicalDocumentInputModel); if (clinicalDetails != null) { //Map clinical document output model to Contract response model clinicalDetailsResponse = _iMapper.Map <DocumentDetailResponse>(clinicalDetails); //return response return(Ok(clinicalDetailsResponse)); } else { //return badrequest return(BadRequest(_localizer["BadRequestErrorMessage"])); } }
public async Task <DocumentDetailResponse> DocumentDetail([FromQuery] DocumentDetailRequest request) { return(await _businessLogic.DocumentDetail(request)); }