コード例 #1
0
        public PcpResultExportModel SetLeadData(PcpResultExportModel model, LeadTestResult testResult, IEnumerable <ResultReading <int> > readings, bool useBlankValue = false)
        {
            if (testResult.RightResultReadings != null)
            {
                model.LeadRightCfaPsv  = GetOutputFromNullableDecimalResultReading(testResult.RightResultReadings.CFAPSV);
                model.LeadRightPsfaPsv = GetOutputFromNullableDecimalResultReading(testResult.RightResultReadings.PSFAPSV);

                model.LeadRightNoVisualPlaque             = PcpResultExportHelper.GetOutputFromNullableBoolTypeResultReading(testResult.RightResultReadings.NoVisualPlaque, useBlankValue);
                model.LeadRightVisuallyDemonstratedPlaque = PcpResultExportHelper.GetOutputFromNullableBoolTypeResultReading(testResult.RightResultReadings.VisuallyDemonstratedPlaque, useBlankValue);
                model.LeadRightModerateStenosis           = PcpResultExportHelper.GetOutputFromNullableBoolTypeResultReading(testResult.RightResultReadings.ModerateStenosis, useBlankValue);
                model.LeadRightPossibleOcclusion          = PcpResultExportHelper.GetOutputFromNullableBoolTypeResultReading(testResult.RightResultReadings.PossibleOcclusion, useBlankValue);
            }

            if (testResult.LeftResultReadings != null)
            {
                model.LeadLeftCfaPsv  = GetOutputFromNullableDecimalResultReading(testResult.LeftResultReadings.CFAPSV);
                model.LeadLeftPsfaPsv = GetOutputFromNullableDecimalResultReading(testResult.LeftResultReadings.PSFAPSV);

                model.LeadLeftNoVisualPlaque             = PcpResultExportHelper.GetOutputFromNullableBoolTypeResultReading(testResult.LeftResultReadings.NoVisualPlaque, useBlankValue);
                model.LeadLeftVisuallyDemonstratedPlaque = PcpResultExportHelper.GetOutputFromNullableBoolTypeResultReading(testResult.LeftResultReadings.VisuallyDemonstratedPlaque, useBlankValue);
                model.LeadLeftModerateStenosis           = PcpResultExportHelper.GetOutputFromNullableBoolTypeResultReading(testResult.LeftResultReadings.ModerateStenosis, useBlankValue);
                model.LeadLeftPossibleOcclusion          = PcpResultExportHelper.GetOutputFromNullableBoolTypeResultReading(testResult.LeftResultReadings.PossibleOcclusion, useBlankValue);
            }

            model.LeadResult = GetLeadResult(testResult, readings);

            model.LeadRightLowVelocity = testResult.LowVelocityRight != null ? PcpResultExportHelper.YesString : (useBlankValue ? "" : PcpResultExportHelper.NoString);

            model.LeadLeftLowVelocity = testResult.LowVelocityLeft != null ? PcpResultExportHelper.YesString : (useBlankValue ? "" : PcpResultExportHelper.NoString);


            model.LeadUnabletoScreen = testResult.UnableScreenReason != null && testResult.UnableScreenReason.Count > 0 ? PcpResultExportHelper.YesString : (useBlankValue ? "" : PcpResultExportHelper.NoString);

            if ((testResult.ResultStatus != null && testResult.ResultStatus.SelfPresent) || (testResult.PhysicianInterpretation != null && testResult.PhysicianInterpretation.IsCritical))
            {
                model.LeadCritical = PcpResultExportHelper.YesString;
            }
            else if (!useBlankValue)
            {
                model.LeadCritical = PcpResultExportHelper.NoString;
            }

            model.LeadTechnicallyLimitedButReadable = PcpResultExportHelper.GetOutputFromBoolTypeResultReading(testResult.TechnicallyLimitedbutReadable, useBlankValue);
            model.LeadRepeatStudyUnreadable         = PcpResultExportHelper.GetOutputFromBoolTypeResultReading(testResult.RepeatStudy, useBlankValue);

            if (testResult.PhysicianInterpretation != null)
            {
                model.LeadPhysicianNotes = testResult.PhysicianInterpretation.Remarks;
            }


            return(model);
        }
コード例 #2
0
        public LeadTestResult MapXmlToDomainObject(string filePathtoXml)
        {
            var testResult = new LeadTestResult();
            var xDoc       = XDocument.Load(filePathtoXml);

            testResult.LeftResultReadings  = GetLeadTestReadings(xDoc, SideToCheckLeft);
            testResult.RightResultReadings = GetLeadTestReadings(xDoc, SideToCheckRight);

            if (testResult.LeftResultReadings != null)
            {
                if (testResult.LeftResultReadings.CFAPSV != null)
                {
                    testResult.LeftResultReadings.CFAPSV.Label = ReadingLabels.LeftCFAPSV;
                }

                if (testResult.LeftResultReadings.PSFAPSV != null)
                {
                    testResult.LeftResultReadings.PSFAPSV.Label = ReadingLabels.LeftPSFAPSV;
                }
            }

            if (testResult.RightResultReadings != null)
            {
                if (testResult.RightResultReadings.CFAPSV != null)
                {
                    testResult.RightResultReadings.CFAPSV.Label = ReadingLabels.RightCFAPSV;
                }

                if (testResult.RightResultReadings.PSFAPSV != null)
                {
                    testResult.RightResultReadings.PSFAPSV.Label = ReadingLabels.RightPSFAPSV;
                }
            }

            bool isExceptionCaused;

            testResult.ResultImages = _mediaHelper.GetMediaforTest(Directory.GetParent(filePathtoXml).Parent.FullName, _mediaLocation, TestType.Lead.ToString(), out isExceptionCaused).ToList();

            if (isExceptionCaused)
            {
                _errorSummary += "Media Extraction Failed. ";
            }

            return(testResult);
        }
コード例 #3
0
        private void SetLeadResult(HtmlDocument doc, LeadTestResult testResult, List <ResultReading <int> > readings)
        {
            if (testResult.LeftResultReadings != null && testResult.RightResultReadings != null)
            {
                var readingLabel       = string.Empty;
                var leftResultReadings = testResult.LeftResultReadings;
                var rightResultReading = testResult.RightResultReadings;

                if ((leftResultReadings.NoVisualPlaque != null && leftResultReadings.NoVisualPlaque.Reading != null) || (rightResultReading.NoVisualPlaque != null && rightResultReading.NoVisualPlaque.Reading != null))
                {
                    var reading = readings.First(x => x.Label == ReadingLabels.LeftNoVisualPlaque);
                    readingLabel = reading.LableText;
                }

                if ((leftResultReadings.VisuallyDemonstratedPlaque != null && leftResultReadings.VisuallyDemonstratedPlaque.Reading != null) || (rightResultReading.VisuallyDemonstratedPlaque != null && rightResultReading.VisuallyDemonstratedPlaque.Reading != null))
                {
                    var reading = readings.First(x => x.Label == ReadingLabels.LeftVisuallyDemonstratedPlaque);
                    readingLabel = reading.LableText;
                }

                if ((leftResultReadings.ModerateStenosis != null && leftResultReadings.ModerateStenosis.Reading != null) || (rightResultReading.ModerateStenosis != null && rightResultReading.ModerateStenosis.Reading != null))
                {
                    var reading = readings.First(x => x.Label == ReadingLabels.LeftModerateStenosis);
                    readingLabel = reading.LableText;
                }

                if ((leftResultReadings.PossibleOcclusion != null && leftResultReadings.PossibleOcclusion.Reading != null) || (rightResultReading.PossibleOcclusion != null && rightResultReading.PossibleOcclusion.Reading != null))
                {
                    var reading = readings.First(x => x.Label == ReadingLabels.LeftPossibleOcclusion);
                    readingLabel = reading.LableText;
                }

                var selectedNode = doc.DocumentNode.SelectSingleNode("//span[@id='lead-rpp-resultspan']");
                if (selectedNode != null)
                {
                    selectedNode.InnerHtml = readingLabel;
                }
            }
        }
コード例 #4
0
        private string GetLeadResult(LeadTestResult testResult, IEnumerable <ResultReading <int> > readings)
        {
            var readingLabel = string.Empty;

            if (testResult.LeftResultReadings != null && testResult.RightResultReadings != null)
            {
                var leftResultReadings = testResult.LeftResultReadings;
                var rightResultReading = testResult.RightResultReadings;

                if ((leftResultReadings.NoVisualPlaque != null && leftResultReadings.NoVisualPlaque.Reading != null) || (rightResultReading.NoVisualPlaque != null && rightResultReading.NoVisualPlaque.Reading != null))
                {
                    var reading = readings.First(x => x.Label == ReadingLabels.LeftNoVisualPlaque);
                    readingLabel = reading.LableText;
                }

                if ((leftResultReadings.VisuallyDemonstratedPlaque != null && leftResultReadings.VisuallyDemonstratedPlaque.Reading != null) || (rightResultReading.VisuallyDemonstratedPlaque != null && rightResultReading.VisuallyDemonstratedPlaque.Reading != null))
                {
                    var reading = readings.First(x => x.Label == ReadingLabels.LeftVisuallyDemonstratedPlaque);
                    readingLabel = reading.LableText;
                }

                if ((leftResultReadings.ModerateStenosis != null && leftResultReadings.ModerateStenosis.Reading != null) || (rightResultReading.ModerateStenosis != null && rightResultReading.ModerateStenosis.Reading != null))
                {
                    var reading = readings.First(x => x.Label == ReadingLabels.LeftModerateStenosis);
                    readingLabel = reading.LableText;
                }

                if ((leftResultReadings.PossibleOcclusion != null && leftResultReadings.PossibleOcclusion.Reading != null) || (rightResultReading.PossibleOcclusion != null && rightResultReading.PossibleOcclusion.Reading != null))
                {
                    var reading = readings.First(x => x.Label == ReadingLabels.LeftPossibleOcclusion);
                    readingLabel = reading.LableText;
                }
            }

            return(readingLabel);
        }
コード例 #5
0
        public void LoadLeadTestresults(HtmlDocument doc, LeadTestResult testResult, bool removeLongDescription, List <OrderedPair <long, string> > technicianIdNamePairs,
                                        bool loadImages, IEnumerable <CustomerScreeningEvaluatinPhysicianViewModel> physicians, IEnumerable <EventPhysicianTest> eventPhysicianTests,
                                        IEnumerable <PhysicianEvaluation> eventCustomerPhysicianEvaluation, CustomerSkipReview customerSkipReview, DateTime eventDate,
                                        bool isPhysicianPartnerCustomer)
        {
            var findingVelocityLeftList  = _standardFindingRepository.GetAllStandardFindings <decimal?>((int)TestType.Lead, (int)ReadingLabels.LeftCFAPSV);
            var findingVelocityRightList = _standardFindingRepository.GetAllStandardFindings <decimal?>((int)TestType.Lead, (int)ReadingLabels.RightCFAPSV);
            var incidentalFindings       = _incidentalFindingRepository.GetAllIncidentalFinding((int)TestType.Stroke);

            var selectedNode = doc.DocumentNode.SelectSingleNode("//span[@id='LowVelocityLeftLabel']");

            if (selectedNode != null)
            {
                selectedNode.InnerHtml = findingVelocityLeftList.FirstOrDefault().Label;
            }

            selectedNode = doc.DocumentNode.SelectSingleNode("//span[@id='LowVelocityRightLabel']");
            if (selectedNode != null)
            {
                selectedNode.InnerHtml = findingVelocityRightList.FirstOrDefault().Label;
            }

            var getAbsValue = new Func <ResultReading <decimal?>, ResultReading <decimal?> >(r =>
            {
                if (r != null && r.Reading != null && r.Reading.Value < 0)
                {
                    r.Reading = r.Reading.Value * -1;
                }

                return(r);
            });


            if (testResult != null)
            {
                selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='lead-rpp-section']");
                if (selectedNode != null && (testResult.UnableScreenReason == null || testResult.UnableScreenReason.Count == 0) && (testResult.TestNotPerformed == null || testResult.TestNotPerformed.TestNotPerformedReasonId <= 0) &&
                    (testResult.RepeatStudy == null || testResult.RepeatStudy.Reading == false))
                {
                    selectedNode.SetAttributeValue("style", "display:block;");
                }

                selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='rpp-eus-lead-div']");
                if (selectedNode != null)
                {
                    selectedNode.SetAttributeValue("style", "display:block;");
                }

                _resultPdfHelper.SetPhysicianSignature(doc, "lead-primaryEvalPhysicianSign", "lead-overreadEvalPhysicianSign", physicians, eventPhysicianTests, eventCustomerPhysicianEvaluation, customerSkipReview);

                var readings = new TestResultRepository().GetAllReadings((int)TestType.Lead);

                foreach (var resultReading in readings)
                {
                    switch (resultReading.Label)
                    {
                    case ReadingLabels.RightCFAPSV:
                        if (testResult.RightResultReadings != null)
                        {
                            testResult.RightResultReadings.CFAPSV = getAbsValue(testResult.RightResultReadings.CFAPSV);
                            _resultPdfHelper.SetInputBox(doc, "RightCFAPSVInputText", testResult.RightResultReadings.CFAPSV);
                        }
                        break;

                    case ReadingLabels.RightPSFAPSV:
                        if (testResult.RightResultReadings != null)
                        {
                            testResult.RightResultReadings.PSFAPSV = getAbsValue(testResult.RightResultReadings.PSFAPSV);
                            _resultPdfHelper.SetInputBox(doc, "RightPSFAPSVInputText", getAbsValue(testResult.RightResultReadings.PSFAPSV));
                        }
                        break;


                    case ReadingLabels.LeftCFAPSV:
                        if (testResult.LeftResultReadings != null)
                        {
                            testResult.LeftResultReadings.CFAPSV = getAbsValue(testResult.LeftResultReadings.CFAPSV);
                            _resultPdfHelper.SetInputBox(doc, "LeftCFAPSVInputText", getAbsValue(testResult.LeftResultReadings.CFAPSV));
                        }
                        break;

                    case ReadingLabels.LeftPSFAPSV:
                        if (testResult.LeftResultReadings != null)
                        {
                            testResult.LeftResultReadings.PSFAPSV = getAbsValue(testResult.LeftResultReadings.PSFAPSV);
                            _resultPdfHelper.SetInputBox(doc, "LeftPSFAPSVInputText", getAbsValue(testResult.LeftResultReadings.PSFAPSV));
                        }
                        break;

                    case ReadingLabels.TechnicallyLimitedbutReadable:
                        _resultPdfHelper.SetCheckBox(doc, "TechnicallyLimitedbutReadableLeadInputCheck", testResult.TechnicallyLimitedbutReadable);
                        break;

                    case ReadingLabels.RepeatStudy:
                        _resultPdfHelper.SetCheckBox(doc, "RepeatStudyLeadInputCheck", testResult.RepeatStudy);
                        break;
                    }
                }


                if (findingVelocityLeftList != null)
                {
                    selectedNode = doc.DocumentNode.SelectSingleNode("//input[@id='LowVelocityLeftCheckbox']");
                    if (selectedNode != null && testResult.LowVelocityLeft != null)
                    {
                        selectedNode.SetAttributeValue("checked", "checked");
                    }
                }

                if (findingVelocityLeftList != null)
                {
                    selectedNode = doc.DocumentNode.SelectSingleNode("//input[@id='LowVelocityRightCheckbox']");
                    if (selectedNode != null && testResult.LowVelocityRight != null)
                    {
                        selectedNode.SetAttributeValue("checked", "checked");
                    }
                }

                _resultPdfHelper.LoadTestMedia(doc, testResult.ResultImages, "testmedia-lead", loadImages);
                LoadLeadIncidentalFindings(doc, incidentalFindings, testResult.IncidentalFindings);
                _resultPdfHelper.SetUnableToScreenReasons(doc, TestType.Lead, "leadUnableToScreen", testResult.UnableScreenReason);
                _resultPdfHelper.SetTechnician(doc, testResult, "techlead", "technoteslead", technicianIdNamePairs);
                _resultPdfHelper.SetPhysicianRemarks(doc, testResult, "followUpLead", "criticalLead", "physicianRemarksLead");

                if (testResult.IncidentalFindings != null && testResult.IncidentalFindings.Any())
                {
                    selectedNode = doc.DocumentNode.SelectSingleNode("//p[@id='incidentalfinding-description-lead']");
                    if (selectedNode != null)
                    {
                        selectedNode.SetAttributeValue("style", "display:block;");
                    }
                }

                selectedNode = doc.DocumentNode.SelectSingleNode("//span[@id='diagnosisCodeLead']");

                if (selectedNode != null && testResult.DiagnosisCode != null && !string.IsNullOrEmpty(testResult.DiagnosisCode.Reading))
                {
                    var readingList = testResult.DiagnosisCode.Reading.Split('|');
                    var stBuilder   = string.Empty;

                    foreach (var reading in readingList)
                    {
                        stBuilder = stBuilder + "<br/>" + reading;
                    }

                    selectedNode.InnerHtml = stBuilder;
                }

                selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='lead-longdescription-div']");
                if (selectedNode != null)
                {
                    selectedNode.SetAttributeValue("style", removeLongDescription ? "display:none" : "display:block");
                }

                if (_settings.ChangeLeadReadingDate.HasValue && eventDate.Date >= _settings.ChangeLeadReadingDate.Value)
                {
                    selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='diagnosisCodeLeadContainer']");
                    if (selectedNode != null)
                    {
                        selectedNode.SetAttributeValue("style", "display:none");
                    }

                    selectedNode = doc.DocumentNode.SelectSingleNode("//table[@id='leadFinding']");
                    if (selectedNode != null)
                    {
                        selectedNode.SetAttributeValue("style", "display:none");
                    }

                    selectedNode = doc.DocumentNode.SelectSingleNode("//table[@id='leadFinding-CheckBox']");
                    if (selectedNode != null)
                    {
                        selectedNode.SetAttributeValue("style", "display:block");
                    }

                    selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='lead-longdescription-div']");
                    if (selectedNode != null)
                    {
                        selectedNode.SetAttributeValue("style", "display:none");
                    }

                    selectedNode = doc.DocumentNode.SelectSingleNode("//p[@id='long-description-lead']");
                    if (selectedNode != null)
                    {
                        selectedNode.InnerHtml = "<i>" + LeadLongLongDescription + "</i>";
                    }

                    if (testResult.RightResultReadings != null)
                    {
                        _resultPdfHelper.SetCheckBox(doc, "rightNoVisualPlaque", testResult.RightResultReadings.NoVisualPlaque);
                        _resultPdfHelper.SetCheckBox(doc, "rightVisuallyDemonstratedPlaque", testResult.RightResultReadings.VisuallyDemonstratedPlaque);
                        _resultPdfHelper.SetCheckBox(doc, "rightModerateStenosis", testResult.RightResultReadings.ModerateStenosis);
                        _resultPdfHelper.SetCheckBox(doc, "rightPossibleOcclusion", testResult.RightResultReadings.PossibleOcclusion);
                    }

                    if (testResult.LeftResultReadings != null)
                    {
                        _resultPdfHelper.SetCheckBox(doc, "leftNoVisualPlaque", testResult.LeftResultReadings.NoVisualPlaque);
                        _resultPdfHelper.SetCheckBox(doc, "leftVisuallyDemonstratedPlaque", testResult.LeftResultReadings.VisuallyDemonstratedPlaque);
                        _resultPdfHelper.SetCheckBox(doc, "leftModerateStenosis", testResult.LeftResultReadings.ModerateStenosis);
                        _resultPdfHelper.SetCheckBox(doc, "leftPossibleOcclusion", testResult.LeftResultReadings.PossibleOcclusion);
                    }

                    SetLeadResult(doc, testResult, readings);
                }
                else
                {
                    selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='diagnosisCodeLeadContainer']");
                    if (selectedNode != null)
                    {
                        selectedNode.SetAttributeValue("style", "display:block");
                    }

                    selectedNode = doc.DocumentNode.SelectSingleNode("//table[@id='leadFinding']");
                    if (selectedNode != null)
                    {
                        selectedNode.SetAttributeValue("style", "display:block");
                    }

                    selectedNode = doc.DocumentNode.SelectSingleNode("//table[@id='leadFinding-CheckBox']");
                    if (selectedNode != null)
                    {
                        selectedNode.SetAttributeValue("style", "display:none");
                    }

                    LoadLeadFindings(doc, testResult);
                }

                if (isPhysicianPartnerCustomer)
                {
                    selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='ppLead-patient-detail']");
                    if (selectedNode != null)
                    {
                        selectedNode.SetAttributeValue("style", "display:block");
                    }
                }
            }
            else
            {
                LoadLeadFindings(doc, null, false);
                _resultPdfHelper.SetIncidentalFindings(doc, incidentalFindings, null, "leadIncidenatlFindings");
                _resultPdfHelper.SetUnableToScreenReasons(doc, TestType.Lead, "leadUnableToScreen", null);
            }
        }
コード例 #6
0
        private void LoadLeadFindings(HtmlDocument doc, LeadTestResult testResult, bool isTestPurchased = true)
        {
            var standardFindingList = _standardFindingRepository.GetAllStandardFindings <decimal>((int)TestType.Lead, (int)ReadingLabels.Left);

            StandardFinding <decimal> leftFinding  = null;
            StandardFinding <decimal> rightFinding = null;

            if (testResult != null)
            {
                if (testResult.LeftResultReadings != null && testResult.LeftResultReadings.Finding != null)
                {
                    leftFinding = testResult.LeftResultReadings.Finding;
                }
                if (testResult.RightResultReadings != null && testResult.RightResultReadings.Finding != null)
                {
                    rightFinding = testResult.RightResultReadings.Finding;
                }
            }

            StandardFinding <decimal> finding = leftFinding != null && rightFinding != null
                                          ? (leftFinding.Id > rightFinding.Id ? leftFinding : rightFinding)
                                          : (leftFinding ?? rightFinding);

            UnableScreenReason unableScreenReason = null;

            //TODO: This is a hack for U Screen Text on Stroke Summary
            if (testResult != null && testResult.UnableScreenReason != null && testResult.UnableScreenReason.Count > 0 && testResult.UnableScreenReason.Where(us => us.Reason == UnableToScreenReason.TechnicallyLimitedImages).Count() < 1)
            {
                unableScreenReason = testResult.UnableScreenReason.First();
            }

            _resultPdfHelper.SetSummaryFindings(doc, finding, standardFindingList, "FindingsLeadDiv", "long-description-lead", null, isTestPurchased, unableScreenReason);

            HtmlNode selectedNode;

            if (finding != null)
            {
                var stdFinding = standardFindingList.Where(f => f.Id == finding.Id).Single();

                selectedNode = doc.DocumentNode.SelectSingleNode("//span[@id='lead-rpp-resultspan']");
                if (selectedNode != null)
                {
                    selectedNode.InnerHtml = stdFinding.Label;
                }

                selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='docletter-lead']");
                if (stdFinding.ResultInterpretation != null && stdFinding.ResultInterpretation.Value != (long)ResultInterpretation.Normal && selectedNode != null)
                {
                    selectedNode.SetAttributeValue("style", "display:block;");
                }
            }

            string htmlRows          = "";
            string strokeDescription = "<fieldset><legend>STENOSIS RANGE</legend><Table>";

            foreach (var standardFinding in standardFindingList)
            {
                string rowString = "<tr>";
                strokeDescription += "<tr>";
                if (rightFinding != null && rightFinding.Id == standardFinding.Id)
                {
                    rowString += "<td> <input type='checkbox' checked='checked' /> </td>";
                }
                else
                {
                    rowString += "<td> <input type='checkbox' /> </td>";
                }

                if (leftFinding != null && leftFinding.Id == standardFinding.Id)
                {
                    rowString += "<td> <input type='checkbox' checked='checked' /> </td>";
                }
                else
                {
                    rowString += "<td> <input type='checkbox' /> </td>";
                }

                rowString += "<td> " + standardFinding.Label + " " + standardFinding.Description + "</td></tr>";

                htmlRows = htmlRows + rowString;
            }

            strokeDescription += "</Table></fieldset>";

            selectedNode = doc.DocumentNode.SelectSingleNode("//table[@id='leadFinding']");
            if (selectedNode != null)
            {
                selectedNode.InnerHtml += htmlRows;
            }

            selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='leadFindingDescriptionDiv']");
            if (selectedNode != null)
            {
                selectedNode.InnerHtml += strokeDescription;
            }

            if (leftFinding != null)
            {
                selectedNode = doc.DocumentNode.SelectSingleNode("//span[@id='lead-at-a-glance-finding-left']");
                if (selectedNode != null)
                {
                    selectedNode.InnerHtml = leftFinding.Label;
                }
            }

            if (rightFinding != null)
            {
                selectedNode = doc.DocumentNode.SelectSingleNode("//span[@id='lead-at-a-glance-finding-right']");
                if (selectedNode != null)
                {
                    selectedNode.InnerHtml = rightFinding.Label;
                }
            }

            if (finding != null)
            {
                selectedNode = doc.DocumentNode.SelectSingleNode("//span[@id='lead-at-a-glance-result']");
                if (selectedNode != null && testResult.ResultInterpretation.HasValue)
                {
                    selectedNode.InnerHtml = ((ResultInterpretation)testResult.ResultInterpretation).ToString();
                }
            }
        }
コード例 #7
0
        public override TestResult CreateActualTestResult(CustomerEventScreeningTestsEntity customerEventScreeningTestsEntity)
        {
            var customerEventReadingEntities = customerEventScreeningTestsEntity.CustomerEventReading.ToList();

            var testResult = new LeadTestResult(customerEventScreeningTestsEntity.CustomerEventScreeningTestId)
            {
                LeftResultReadings  = new LeadTestReadings(),
                RightResultReadings = new LeadTestReadings()
            };

            var standardFindingEntities = customerEventScreeningTestsEntity.StandardFindingTestReadingCollectionViaCustomerEventTestStandardFinding.ToList();

            if (standardFindingEntities.Count > 0)
            {
                var customerEventStandardFindingEntities = customerEventScreeningTestsEntity.CustomerEventTestStandardFinding.ToList();

                var leftFindingEntity    = standardFindingEntities.Find(entity => entity.ReadingId.Value == (int)ReadingLabels.Left);
                var rightFindingEntity   = standardFindingEntities.Find(entity => entity.ReadingId.Value == (int)ReadingLabels.Right);
                var velocityFindingLeft  = standardFindingEntities.Find(entity => entity.ReadingId == (int)ReadingLabels.LeftCFAPSV);
                var velocityFindingRight = standardFindingEntities.Find(entity => entity.ReadingId == (int)ReadingLabels.RightCFAPSV);

                if (leftFindingEntity != null)
                {
                    testResult.LeftResultReadings.Finding = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.Lead, (int)ReadingLabels.Left).
                                                            FirstOrDefault(standardFinding => standardFinding.Id == leftFindingEntity.StandardFindingId);

                    if (testResult.LeftResultReadings.Finding != null)
                    {
                        testResult.LeftResultReadings.Finding.CustomerEventStandardFindingId = customerEventStandardFindingEntities.Find(standardFindingEntity =>
                                                                                                                                         standardFindingEntity.StandardFindingTestReadingId == leftFindingEntity.StandardFindingTestReadingId).CustomerEventTestStandardFindingId;
                    }
                }

                if (rightFindingEntity != null)
                {
                    testResult.RightResultReadings.Finding = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.Lead, (int)ReadingLabels.Right).
                                                             FirstOrDefault(standardFinding => standardFinding.Id == rightFindingEntity.StandardFindingId);

                    if (testResult.RightResultReadings.Finding != null)
                    {
                        testResult.RightResultReadings.Finding.CustomerEventStandardFindingId = customerEventStandardFindingEntities.Find(standardFindingEntity =>
                                                                                                                                          standardFindingEntity.StandardFindingTestReadingId == rightFindingEntity.StandardFindingTestReadingId).CustomerEventTestStandardFindingId;
                    }
                }

                if (velocityFindingLeft != null)
                {
                    testResult.LowVelocityLeft = new TestResultService().GetAllStandardFindings <int>((int)TestType.Lead, (int)ReadingLabels.LeftCFAPSV).
                                                 Find(standardFinding => standardFinding.Id == velocityFindingLeft.StandardFindingId);

                    testResult.LowVelocityLeft.CustomerEventStandardFindingId = customerEventStandardFindingEntities.Find(standardFindingEntity =>
                                                                                                                          standardFindingEntity.StandardFindingTestReadingId == velocityFindingLeft.StandardFindingTestReadingId).CustomerEventTestStandardFindingId;
                }
                if (velocityFindingRight != null)
                {
                    testResult.LowVelocityRight = new TestResultService().GetAllStandardFindings <int>((int)TestType.Lead, (int)ReadingLabels.RightCFAPSV).
                                                  Find(standardFinding => standardFinding.Id == velocityFindingRight.StandardFindingId);

                    testResult.LowVelocityRight.CustomerEventStandardFindingId = customerEventStandardFindingEntities.Find(standardFindingEntity =>
                                                                                                                           standardFindingEntity.StandardFindingTestReadingId == velocityFindingRight.StandardFindingTestReadingId).CustomerEventTestStandardFindingId;
                }
            }

            testResult.LeftResultReadings.CFAPSV  = CreateResultReadingforNullableDecimal((int)ReadingLabels.LeftCFAPSV, customerEventReadingEntities);
            testResult.LeftResultReadings.PSFAPSV = CreateResultReadingforNullableDecimal((int)ReadingLabels.LeftPSFAPSV, customerEventReadingEntities);

            testResult.LeftResultReadings.NoVisualPlaque             = CreateResultReadingforNullableBool((int)ReadingLabels.LeftNoVisualPlaque, customerEventReadingEntities);
            testResult.LeftResultReadings.VisuallyDemonstratedPlaque = CreateResultReadingforNullableBool((int)ReadingLabels.LeftVisuallyDemonstratedPlaque, customerEventReadingEntities);
            testResult.LeftResultReadings.ModerateStenosis           = CreateResultReadingforNullableBool((int)ReadingLabels.LeftModerateStenosis, customerEventReadingEntities);
            testResult.LeftResultReadings.PossibleOcclusion          = CreateResultReadingforNullableBool((int)ReadingLabels.LeftPossibleOcclusion, customerEventReadingEntities);

            testResult.RightResultReadings.CFAPSV  = CreateResultReadingforNullableDecimal((int)ReadingLabels.RightCFAPSV, customerEventReadingEntities);
            testResult.RightResultReadings.PSFAPSV = CreateResultReadingforNullableDecimal((int)ReadingLabels.RightPSFAPSV, customerEventReadingEntities);

            testResult.RightResultReadings.NoVisualPlaque             = CreateResultReadingforNullableBool((int)ReadingLabels.RightNoVisualPlaque, customerEventReadingEntities);
            testResult.RightResultReadings.VisuallyDemonstratedPlaque = CreateResultReadingforNullableBool((int)ReadingLabels.RightVisuallyDemonstratedPlaque, customerEventReadingEntities);
            testResult.RightResultReadings.ModerateStenosis           = CreateResultReadingforNullableBool((int)ReadingLabels.RightModerateStenosis, customerEventReadingEntities);
            testResult.RightResultReadings.PossibleOcclusion          = CreateResultReadingforNullableBool((int)ReadingLabels.RightPossibleOcclusion, customerEventReadingEntities);

            testResult.TechnicallyLimitedbutReadable = CreateResultReading((int)ReadingLabels.TechnicallyLimitedbutReadable, customerEventReadingEntities);
            testResult.RepeatStudy = CreateResultReading((int)ReadingLabels.RepeatStudy, customerEventReadingEntities);

            testResult.DiagnosisCode = CreateResultReadingforInputValues((int)ReadingLabels.DiagnosisCode, customerEventReadingEntities);

            var testImages           = customerEventScreeningTestsEntity.TestMedia.ToList();
            var fileEntityCollection = customerEventScreeningTestsEntity.FileCollectionViaTestMedia.ToList();

            if (testImages.Count > 0)
            {
                var resultImages = new List <ResultMedia>();
                testImages.ForEach(testMedia => resultImages.Add(new ResultMedia(testMedia.MediaId)
                {
                    File          = GetFileObjectfromEntity(testMedia.FileId, fileEntityCollection),
                    Thumbnail     = testMedia.ThumbnailFileId != null ? new File(testMedia.ThumbnailFileId.Value) : null,
                    ReadingSource = testMedia.IsManual ? ReadingSource.Manual : ReadingSource.Automatic
                }));

                testResult.ResultImages = resultImages;
            }
            return(testResult);
        }
コード例 #8
0
        public PhysicianPartnerResultExportModel SetLeadData(PhysicianPartnerResultExportModel model, LeadTestResult testResult)
        {
            if (testResult.RightResultReadings != null)
            {
                if (testResult.RightResultReadings.Finding != null)
                {
                    model.LeadRightResult = testResult.RightResultReadings.Finding.Label;
                }

                if (testResult.RightResultReadings.CFAPSV != null && testResult.RightResultReadings.CFAPSV.Reading != null && testResult.RightResultReadings.CFAPSV.Reading.HasValue)
                {
                    model.LeadRightCfaMeasurement = testResult.RightResultReadings.CFAPSV.Reading.Value.ToString("00.00");
                }

                if (testResult.RightResultReadings.PSFAPSV != null && testResult.RightResultReadings.PSFAPSV.Reading != null && testResult.RightResultReadings.PSFAPSV.Reading.HasValue)
                {
                    model.LeadRightPsfaMeasurement = testResult.RightResultReadings.PSFAPSV.Reading.Value.ToString("00.00");
                }
            }

            if (testResult.LeftResultReadings != null)
            {
                if (testResult.LeftResultReadings.Finding != null)
                {
                    model.LeadLeftResult = testResult.LeftResultReadings.Finding.Label;
                }

                if (testResult.LeftResultReadings.CFAPSV != null && testResult.LeftResultReadings.CFAPSV.Reading != null && testResult.LeftResultReadings.CFAPSV.Reading.HasValue)
                {
                    model.LeadLeftCfaMeasurement = testResult.LeftResultReadings.CFAPSV.Reading.Value.ToString("00.00");
                }

                if (testResult.LeftResultReadings.PSFAPSV != null && testResult.LeftResultReadings.PSFAPSV.Reading != null && testResult.LeftResultReadings.PSFAPSV.Reading.HasValue)
                {
                    model.LeadLeftPsfaMeasurement = testResult.LeftResultReadings.PSFAPSV.Reading.Value.ToString("00.00");
                }
            }

            model.LeadUnuauallyLowVelocityRight = testResult.LowVelocityRight != null ? PhysicianPartnerResultExportHelper.YesString : PhysicianPartnerResultExportHelper.NoString;
            model.LeadUnuauallyLowVelocityLeft  = testResult.LowVelocityLeft != null ? PhysicianPartnerResultExportHelper.YesString : PhysicianPartnerResultExportHelper.NoString;



            model.LeadTechnicallyLimitedButReadable = PhysicianPartnerResultExportHelper.GetOutputFromBoolTypeResultReading(testResult.TechnicallyLimitedbutReadable);
            model.LeadRepeatStudyUnreadable         = PhysicianPartnerResultExportHelper.GetOutputFromBoolTypeResultReading(testResult.RepeatStudy);

            model.LeadUnabletoScreen = testResult.UnableScreenReason != null && testResult.UnableScreenReason.Count > 0 ? PhysicianPartnerResultExportHelper.YesString : PhysicianPartnerResultExportHelper.NoString;

            if ((testResult.ResultStatus != null && testResult.ResultStatus.SelfPresent) || (testResult.PhysicianInterpretation != null && testResult.PhysicianInterpretation.IsCritical))
            {
                model.LeadCritical = PhysicianPartnerResultExportHelper.YesString;
            }
            else
            {
                model.LeadCritical = PhysicianPartnerResultExportHelper.NoString;
            }

            if (testResult.PhysicianInterpretation != null)
            {
                model.LeadPhysicianNotes = testResult.PhysicianInterpretation.Remarks;
            }

            var leadDiagnosisCodes = new System.Collections.Generic.List <OrderedPair <string, string> >();

            if (testResult.DiagnosisCode != null)
            {
                foreach (var diagnosisCode in PhysicianPartnerResultExportHelper.LeadDiagnosisCodes)
                {
                    if (testResult.DiagnosisCode.Reading.Contains(diagnosisCode))
                    {
                        leadDiagnosisCodes.Add(new OrderedPair <string, string>(diagnosisCode, PhysicianPartnerResultExportHelper.YesString));
                    }
                    else
                    {
                        leadDiagnosisCodes.Add(new OrderedPair <string, string>(diagnosisCode, PhysicianPartnerResultExportHelper.NoString));
                    }
                }
            }
            else
            {
                leadDiagnosisCodes.AddRange(PhysicianPartnerResultExportHelper.LeadDiagnosisCodes.Select(diagnosisCode => new OrderedPair <string, string>(diagnosisCode, PhysicianPartnerResultExportHelper.NoString)));
            }

            model.LeadDiagnosisCodes = leadDiagnosisCodes;

            return(model);
        }