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);
        }
예제 #2
0
        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);
        }