public FileStreamResult GetImagingReport(int reportId)
        {
            try
            {
                //for now we are taking signature from parameter table for print radiology report
                CoreDbContext coreDBContext = new CoreDbContext(connString);
                string        SignHtmlText  = (from parameter in coreDBContext.Parameters
                                               where parameter.ParameterName == "radiology-template-doc1"
                                               select parameter.ParameterValue
                                               ).SingleOrDefault();

                RadiologyDbContext radDbContext = new RadiologyDbContext(connString);
                ImagingReportModel imgReport    = radDbContext.ImagingReports.Where(r => r.ImagingReportId == reportId).Include("Patient")
                                                  .FirstOrDefault();

                var imgRequisition = radDbContext.ImagingRequisitions.Where(r => r.ImagingRequisitionId == imgReport.ImagingRequisitionId)
                                     .FirstOrDefault();

                int?imgItemId = imgReport.ImagingItemId;

                int?rptTemplateId = radDbContext.ImagingItems.Where(i => i.ImagingItemId == imgReport.ImagingItemId)
                                    .FirstOrDefault().TemplateId;

                List <RadiologyReportTemplateModel> allRptTemplates = radDbContext.RadiologyReportTemplate.ToList();
                RadiologyReportTemplateModel        currTemplate    = allRptTemplates.Where(r => r.TemplateId == rptTemplateId.Value)
                                                                      .FirstOrDefault();

                ImagingReportPrintVM patReport = new ImagingReportPrintVM();

                patReport.CreatedOn     = DateTime.Now;
                patReport.PatientCode   = imgReport.Patient.PatientCode;
                patReport.PatientName   = imgReport.Patient.ShortName;
                patReport.ReportText    = imgReport.ReportText + SignHtmlText;
                patReport.FooterText    = (currTemplate != null) ? currTemplate.FooterNote : null;
                patReport.DateOfBrith   = imgReport.Patient.DateOfBirth.Value;
                patReport.Gender        = imgReport.Patient.Gender;
                patReport.ProviderId    = imgRequisition.ProviderId;
                patReport.ProviderName  = imgReport.ProviderName;
                patReport.RequisitionNo = imgReport.ImagingRequisitionId;
                patReport.Age           = imgReport.Patient.Age;

                string filename = GetImagingReport(patReport);

                return(new FileStreamResult(new
                                            FileStream(filename, FileMode.Open), "application/msword"));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private string GetImagingReport(ImagingReportPrintVM report)
        {
            try
            {
                var    memStream       = new MemoryStream();
                var    returnMemStream = new MemoryStream();
                string dateTimeNow     = DateTime.Now.ToString("dd-MM-yyyy_hh_mm_ss tt");
                //given the file location ...Template dotx file is saved in wwwroot\fileuploads folder and Tests results in result folder
                string templateFileName = this._hostingEnvironment.WebRootPath + "\\" + this.labTemplateFolder + @"Radiology\Templates\ReportTemplate.dotx";
                string fileName         = this._hostingEnvironment.WebRootPath + "\\" + this.labTemplateFolder + @"Radiology\Templates\Result.docx";

                Dictionary <string, string> patInfo = new Dictionary <string, string>();

                patInfo.Add("PatientName", report.PatientName + "(" + report.PatientCode + ")");
                patInfo.Add("ReferredBy", report.ProviderName);
                patInfo.Add("ReportText", report.ReportText);
                patInfo.Add("Date", report.CreatedOn.ToString("dd-MM-yyyy hh:mm:ss tt"));
                patInfo.Add("Age", report.Age);
                patInfo.Add("Sex", report.Gender);
                patInfo.Add("RequestId", report.RequisitionNo.ToString());

                System.IO.File.Copy(templateFileName, fileName, true);
                using (WordprocessingDocument newdoc =
                           WordprocessingDocument.Open(fileName, true))
                {
                    // Change document type (dotx->docx)
                    newdoc.ChangeDocumentType(WordprocessingDocumentType.Document);
                    SetDocumentKeyValues(newdoc, patInfo);
                    newdoc.MainDocumentPart.GetStream().CopyTo(returnMemStream);
                    return(fileName);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }