private void ImportDocument(Patient patient, MailAttachmentPatientDocumentDto dto) { var message = _imapMessageFetcher.FetchMessage(dto.MailFolderName, dto.MailId); if (message == null || message.Attachments.Count == 0) { throw new ApplicationException("Couldn't find the attachment."); } //TODO: Right now, only get the first attachment dto.Document = message.Attachments[0].ContentBytes; dto.FileName = message.Attachments[0].FileName; var patientDocumentType = _mappingHelper.MapLookupField <PatientDocumentType> (dto.PatientDocumentType); var patientDocument = _patientDocumentFactory.CreatePatientDocument(patient, patientDocumentType, dto.Document, dto.FileName); var clinicalDateRange = new DateRange(dto.ClinicalStartDate, dto.ClinicalEndDate); patientDocument.ReviseClinicalDateRange(clinicalDateRange); patientDocument.ReviseDescription(dto.Description); patientDocument.ReviseDocumentProviderName(dto.DocumentProviderName); patientDocument.ReviseOtherDocumentTypeName(dto.OtherDocumentTypeName); _patientDocumentRepository.MakePersistent(patientDocument); }
private MailAttachment GetMailAttachment(MailAttachmentPatientDocumentDto documentDto) { var message = _imapMessageFetcher.FetchMessage(documentDto.MailFolderName, documentDto.MailId); if (message == null || message.Attachments.Count == 0) { throw new ApplicationException("Couldn't find the attachment."); } var mailAttachment = message.Attachments[0]; return(mailAttachment); }
/// <summary> /// Navigates to default command. /// </summary> /// <param name="parameters">The parameters.</param> protected override void NavigateToDefaultCommand(KeyValuePair<string, string>[] parameters) { _patientKey = parameters.GetValue<long>("PatientKey"); var mailId = parameters.GetValue<int>("MailId"); if (mailId != 0) { var mailFolderName = parameters.GetValue<string>("MailFolderName"); var mailFromName = parameters.GetValue<string>("MailFromName"); var attachmentName = parameters.GetValue<string> ( "AttachmentName" ); _mailAttachmentPatientDocumentDto = new MailAttachmentPatientDocumentDto { MailId = mailId, MailFolderName = mailFolderName, DocumentProviderName = mailFromName, ClinicalStartDate = DateTime.Today, PatientKey = _patientKey, CreatedDate = DateTime.Today, FileName = attachmentName, }; } else { _mailAttachmentPatientDocumentDto = null; } var requestDispatcher = _asyncRequestDispatcherFactory.CreateAsyncRequestDispatcher(); requestDispatcher.Add(new GetPatientDocumentsByPatientRequest { PatientKey = _patientKey }); requestDispatcher.AddLookupValuesRequest("PatientDocumentType"); IsLoading = true; requestDispatcher.ProcessRequests(HandleInitializationCompleted, HandleInitializationException); }