Esempio n. 1
0
 public async Task <List <string> > Audit(string[] msgs, AuditResult result)
 {
     return(await Task.Run(() => {
         var rlt = _customerService.Audit(msgs, result);
         return rlt;
     }));
 }
Esempio n. 2
0
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.Indicator) == true)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "The result may not be accepted because the indication is not set.";
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.Result) == true)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "The result may not be accepted because the result is not set.";
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (this.m_NumberOfObservers == 0)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "The result may not be accepted because the Number of Observers must be greater than 0.";
                }
            }
            return(result);
        }
Esempio n. 3
0
        public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
        {
            Audit.Model.PathologistSignoutAuditCollection pathologistSignoutAuditCollection = new PathologistSignoutAuditCollection(accessionOrder);
            AuditResult auditResult = pathologistSignoutAuditCollection.Run2();

            return(auditResult);
        }
Esempio n. 4
0
        public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
        {
            YellowstonePathology.Business.Audit.Model.AuditResult result = new AuditResult();
            if (this.Final == true)
            {
                result.Status  = AuditStatusEnum.Failure;
                result.Message = "This case cannot be finalized because it is already finalized.";
            }
            else
            {
                Audit.Model.DistributionNotSetAudit distributionNotSetAudit = new Audit.Model.DistributionNotSetAudit(this);
                distributionNotSetAudit.Run();
                if (distributionNotSetAudit.Status == Audit.Model.AuditStatusEnum.Failure)
                {
                    result.Status  = AuditStatusEnum.Failure;;
                    result.Message = distributionNotSetAudit.Message.ToString();
                }

                if (result.Status == AuditStatusEnum.OK)
                {
                    YellowstonePathology.Business.Audit.Model.ComprehensiveColonCancerProfileFinalAudit comprehensiveColonCancerProfileFinalAudit = new ComprehensiveColonCancerProfileFinalAudit(accessionOrder);
                    comprehensiveColonCancerProfileFinalAudit.Run();
                    result.Status  = comprehensiveColonCancerProfileFinalAudit.Status;
                    result.Message = comprehensiveColonCancerProfileFinalAudit.Message.ToString();
                }
            }
            return(result);
        }
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_CD34Percentage) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "CD34 Percentage" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_CD34Absolute) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "CD34 Absolute" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_WBCCount) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "WBC Count" + Environment.NewLine;
                }

                if (result.Status == AuditStatusEnum.Failure)
                {
                    result.Message = "Unable to accept as the following result/s are not set: " + Environment.NewLine + result.Message;
                }
            }
            return(result);
        }
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_AntiPlateletAntibodyIgG) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Anti - Platelet Antibody - IgG" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_AntiPlateletAntibodyIgM) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Anti-Platelet Antibody - IgM" + Environment.NewLine;
                }
            }

            if (result.Status == AuditStatusEnum.Failure)
            {
                result.Message = "Unable to accept as the following result/s are not set: " + Environment.NewLine + result.Message;
            }

            return(result);
        }
Esempio n. 7
0
        private AuditResult parseJson(string json)
        {
            if (String.IsNullOrEmpty(json))
            {
                return(null);
            }
            dynamic jObj = JObject.Parse(json);

            if (jObj == null)
            {
                return(null);
            }

            var a = new AuditResult
            {
                Details        = new List <Details>(),
                TimingDetails  = new List <TimingDetails>(),
                BenchmarkIndex = jObj.environment?.benchmarkIndex,
                Performance    = jObj.categories?.performance?.score,
                Accessibility  = jObj.categories?.accessibility?.score,
                BestPractices  = jObj.categories?["best-practices"]?.score,
                Seo            = jObj.categories?.seo?.score,
                Pwa            = jObj.categories?.pwa?.score
            };


            var audits = jObj.audits as JObject;

            if (audits != null)
            {
                foreach (var audit in audits)
                {
                    var val = (dynamic)audit.Value;
                    a.Details.Add(new Details()
                    {
                        Name     = audit.Key,
                        Score    = val.score,
                        RowValue = val.rawValue
                    });
                }
            }
            var timingDetails = jObj.timing?.entries as JArray;

            if (timingDetails != null)
            {
                foreach (var timingDetail in timingDetails)
                {
                    var val = (dynamic)timingDetail;
                    a.TimingDetails.Add(new TimingDetails()
                    {
                        Name      = val?.name,
                        StartTime = val?.startTime,
                        Duration  = val?.duration
                    });
                }
                a.TotalDuration = jObj.timing?.total;
            }

            return(a);
        }
Esempio n. 8
0
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_StemCellEnumeration) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Stem Cell Enumeration" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_Viability) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Viability" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_WBCCount) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "WBC Count" + Environment.NewLine;
                }

                if (result.Status == AuditStatusEnum.Failure)
                {
                    result.Message = "Unable to accept as the following result/s are not set: " + Environment.NewLine + result.Message;
                }
            }
            return(result);
        }
Esempio n. 9
0
        public override AuditResult IsOkToSetResults(AccessionOrder accessionOrder, PanelSetOrderLynchSyndromeEvaluation panelSetOrderLynchSyndromeEvaluation)
        {
            AuditResult result = base.IsOkToSetResults(accessionOrder, panelSetOrderLynchSyndromeEvaluation);

            Rules.MethodResult brafResult = null;
            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                brafResult = this.HasFinalBRAFResult(accessionOrder, panelSetOrderLynchSyndromeEvaluation);
                if (brafResult.Success == false)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = brafResult.Message;
                }
            }

            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                if (brafResult.Message == TestResult.NotDetected)
                {
                    Rules.MethodResult methResult = this.HasFinalMethResult(accessionOrder, panelSetOrderLynchSyndromeEvaluation);
                    if (methResult.Success == false)
                    {
                        result.Status  = AuditStatusEnum.Failure;
                        result.Message = methResult.Message;
                    }
                }
            }
            return(result);
        }
Esempio n. 10
0
        public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToFinalize(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                HER2AmplificationByISH.HER2AmplificationByISHTest ishTest = new HER2AmplificationByISH.HER2AmplificationByISHTest();
                if (accessionOrder.PanelSetOrderCollection.Exists(ishTest.PanelSetId, this.m_OrderedOnId, true) == true)
                {
                    HER2AmplificationByISH.HER2AmplificationByISHTestOrder ishTestOrder = (HER2AmplificationByISH.HER2AmplificationByISHTestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(ishTest.PanelSetId, this.m_OrderedOnId, true);
                    if (ishTestOrder.Final == true)
                    {
                        if (this.m_Score.Contains("2+") == true)
                        {
                            HER2AmplificationRecount.HER2AmplificationRecountTest test = new HER2AmplificationRecount.HER2AmplificationRecountTest();
                            if (accessionOrder.PanelSetOrderCollection.Exists(test.PanelSetId, this.m_OrderedOnId, true) == false)
                            {
                                result.Status  = AuditStatusEnum.Warning;
                                result.Message = "This test will be finalized but not distributed as a " + test.PanelSetName + " is needed to determine the actual result and will be ordered.";
                            }
                        }
                    }
                }
            }

            return(result);
        }
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_HbFPercent) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Hb-F percent" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_FetalBleed) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Fetal Bleed" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_RhImmuneGlobulin) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Rh Immune Globulin";
                }
            }

            if (result.Status == AuditStatusEnum.Failure)
            {
                result.Message = "Unable to accept as the following result/s are not set: " + Environment.NewLine + result.Message;
            }

            return(result);
        }
Esempio n. 12
0
        public void Dispose()
        {
            ModuleBox.SaveOptions(AppOptions);

            FilesTypeInSystem.Clear();
            AuditResult.Clear();
            ReleaseUnmanagedResources();
            GC.SuppressFinalize((object)this);
        }
Esempio n. 13
0
        private async Task <AuditResult> RunAfterCheck(AuditRequest request)
        {
            var cmd = new WhereCmd()
            {
                EnableDebugging = request.EnableLogging
            };
            var nodePath = await cmd.GetNodePath().ConfigureAwait(false);

            if (String.IsNullOrEmpty(nodePath) || !File.Exists(nodePath))
            {
                throw new Exception("Couldn't find NodeJs. Please, install NodeJs and make sure than PATH variable defined.");
            }

            var npm = new Npm(nodePath)
            {
                EnableDebugging = request.EnableLogging
            };
            var npmPath = await npm.GetNpmPath().ConfigureAwait(false);

            var version = await npm.GetLighthouseVersion().ConfigureAwait(false);

            var sm      = new ScriptMaker();
            var content = sm.Produce(request, npmPath, version);

            if (!sm.Save(content))
            {
                throw new Exception($"Couldn't save JS script to %temp% directory. Path: {sm.TempFileName}");
            }

            try
            {
                var node = new Node()
                {
                    EnableDebugging = request.EnableLogging
                };
                var stdoutJson = await node.Run(sm.TempFileName).ConfigureAwait(false);

                return(AuditResult.Parse(stdoutJson));
            }
            catch (Exception ex)
            {
                if (!String.IsNullOrEmpty(ex.Message) && Regex.IsMatch(ex.Message, @"Cannot find module[\s\S]+?node_modules\\lighthouse'"))
                {
                    throw new Exception("Lighthouse is not installed. Please, execute `npm install -g lighthouse` in console.");
                }
                throw;
            }
            finally
            {
                if (!npm.EnableDebugging)
                {
                    sm.Delete();
                }
            }
        }
Esempio n. 14
0
        public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
        {
            AuditResult result = new AuditResult();

            result.Status = AuditStatusEnum.OK;
            Rules.MethodResult methodResult = base.IsOkToFinalize();
            if (methodResult.Success == false)
            {
                result.Status  = AuditStatusEnum.Failure;
                result.Message = methodResult.Message;
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (this.m_CellsCounted == 0)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to final as Total Cells Counted is not set.";
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (this.m_Her2SignalsCounted == 0)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to final as HER2 Signals Counted is not set.";
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (this.m_Chr17SignalsCounted == 0)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to final as Chr17 Signals Counted is not set.";
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                HER2AnalysisSummary.HER2AnalysisSummaryTest test = new HER2AnalysisSummary.HER2AnalysisSummaryTest();
                if (accessionOrder.PanelSetOrderCollection.Exists(test.PanelSetId, this.m_OrderedOnId, true) == false)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to finalize as a " + test.PanelSetName + " is required.";
                }
            }

            return(result);
        }
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_HbFResult) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Unable to accept as the Hb-F result is not set: ";
                }
            }
            return(result);
        }
Esempio n. 16
0
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_Result) == true)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to accept results as the result has not been set.";
                }
            }
            return(result);
        }
        public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
        {
            AuditResult auditResult = base.IsOkToFinalize(accessionOrder);

            if (auditResult.Status == AuditStatusEnum.OK)
            {
                YellowstonePathology.Business.Rules.MethodResult methodResult = this.IsOkToFinalize();
                if (methodResult.Success == false)
                {
                    auditResult.Status  = AuditStatusEnum.Failure;
                    auditResult.Message = methodResult.Message;
                }
            }
            return(auditResult);
        }
Esempio n. 18
0
        public List <string> Audit(string[] msgs, AuditResult auditResult)
        {
            var ids = new List <string>();

            for (int i = 0; i < msgs.Length; i++)
            {
                var customer = Get(msgs[i]);
                customer.AuditResult = auditResult;
                var rlt = Update(customer);
                if (rlt.Status)
                {
                    ids.Add(msgs[i]);
                }
            }
            return(ids);
        }
Esempio n. 19
0
        private void DoAuditResult(AuditResult result)
        {
            try
            {
                var dataResult = result.DataResult;
                curAuditEventArgs = null;
                if (result.FBEntity != null)
                {
                    var newOrderEntity = new OrderEntity(result.FBEntity);
                    if (result.DataResult == null)
                    {
                        MessageBox.Show("流程返回结果为空,请联系管理员:" + result.Successful.ToString());
                    }
                    else
                    {
                        if (!(result.DataResult.FlowResult == SMT.Saas.Tools.FlowWFService.FlowResult.SUCCESS ||
                              result.DataResult.FlowResult == SMT.Saas.Tools.FlowWFService.FlowResult.END))
                        {
                            newOrderEntity.IsReSubmit = this.OrderEntity.IsReSubmit;
                        }
                        this.orderEntity = newOrderEntity;

                        this.SaveFBEntity = null;
                    }
                }
                else
                {
                    orderEntity = null;
                }

                if (!string.IsNullOrEmpty(result.Exception))
                {
                    curAuditEventArgs = new AuditEventArgs(AuditEventArgs.AuditResult.Cancel, null);
                    CommonFunction.ShowErrorMessage(result.Exception);
                }
                else if (dataResult.FlowResult == SMT.Saas.Tools.FlowWFService.FlowResult.FAIL)
                {
                    curAuditEventArgs = new AuditEventArgs(AuditEventArgs.AuditResult.Error, null);
                    CommonFunction.ShowErrorMessage(dataResult.Err);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("流程返回结果后处理报错,请联系管理员:" + ex.ToString());
            }
        }
        public AuditResult IsOkToSetResults(AccessionOrder accessionOrder)
        {
            AuditResult result = new AuditResult();

            result.Status = AuditStatusEnum.OK;
            if (this.m_Accepted == true)
            {
                result.Status  = AuditStatusEnum.Failure;
                result.Message = "The results may not be set because they have already been accepted." + Environment.NewLine;
            }

            if (string.IsNullOrEmpty(this.m_Indicator) == true)
            {
                result.Status   = AuditStatusEnum.Failure;
                result.Message += "The indication must be set before results can be set." + Environment.NewLine;
            }

            if (this.m_NotInterpretable == false)
            {
                if (this.m_TotalHer2SignalsCounted == 0)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "The Total Her2 Signals Counted must be set before results can be set." + Environment.NewLine;
                }
                if (this.m_TotalChr17SignalsCounted == 0)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "The Total Chr17 Signals Counted must be set before results can be set." + Environment.NewLine;
                }
                if (this.m_CellsCounted == 0)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "The Cells Counted must be set before results can be set." + Environment.NewLine;
                }
                if (this.m_GeneticHeterogeneity == HER2AmplificationByISHGeneticHeterogeneityCollection.GeneticHeterogeneityPresentInClusters)
                {
                    if (string.IsNullOrEmpty(this.m_Her2Chr17ClusterRatio) == true)
                    {
                        result.Status   = AuditStatusEnum.Failure;
                        result.Message += "The Her2Chr/17 Cluster Ratio must be set before results can be set." + Environment.NewLine;
                    }
                }
            }
            return(result);
        }
        public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToFinalize(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (this.m_TechFinal == false)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = ("This case cannot be finaled because it has not been Tech finaled.");
                }
                else if (this.FlowMarkerCollection.HasQuestionMarks() == true)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = ("Question marks ??? were found in the markers.");
                }
            }
            return(result);
        }
        public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
        {
            AuditResult result = new AuditResult();

            result.Status = AuditStatusEnum.OK;
            Rules.MethodResult methodResult = base.IsOkToFinalize();
            if (methodResult.Success == false)
            {
                result.Status  = AuditStatusEnum.Failure;
                result.Message = methodResult.Message;
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_Result) == true)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to final as the result is not set.";
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (this.m_Result == HER2AmplificationResultEnum.Equivocal.ToString())
                {
                    Test.Her2AmplificationByIHC.Her2AmplificationByIHCTest her2AmplificationByIHCTest   = new Her2AmplificationByIHC.Her2AmplificationByIHCTest();
                    HER2AnalysisSummary.HER2AnalysisSummaryTest            her2AmplificationSummaryTest = new HER2AnalysisSummary.HER2AnalysisSummaryTest();
                    if (accessionOrder.PanelSetOrderCollection.Exists(her2AmplificationByIHCTest.PanelSetId, this.OrderedOnId, true) == false)
                    {
                        result.Status  = AuditStatusEnum.Warning;
                        result.Message = "This test will be finalized but not distributed as a " + her2AmplificationByIHCTest.PanelSetName +
                                         " is needed to determine the actual result and will be ordered." + Environment.NewLine + "A " + her2AmplificationSummaryTest.PanelSetName +
                                         " will be also be ordered and set for distribution.";
                    }
                }
            }

            return(result);
        }
Esempio n. 23
0
        private AuditResult CheckUser(SampleEmployee person, IAudience audience, JSchema schema)
        {
            IList <ValidationError> errors = new List <ValidationError>();

            var userToCheck = person.ToJson();

            //var schema = audience.Schema.GetProviderSpecificSchema(this.Name);

            bool valid = userToCheck.IsValid(schema, out errors);

            // map these to our own error object
            var auditErrors = new List <AuditError>();

            foreach (var error in errors)
            {
                auditErrors.Add(new AuditError(error, audience, this, schema));
            }

            var result = new AuditResult(person, auditErrors);

            return(result);
        }
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                string message = string.Empty;
                if (string.IsNullOrEmpty(this.m_IgGResult) == true)
                {
                    result.Status = AuditStatusEnum.Failure;
                    message       = "Anti Platelet Antibody - IgG" + Environment.NewLine;
                }

                if (string.IsNullOrEmpty(this.m_IgGReference) == true)
                {
                    result.Status = AuditStatusEnum.Failure;
                    message      += "IgG Reference" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_IgMResult) == true)
                {
                    result.Status = AuditStatusEnum.Failure;
                    message      += "Anti Platelet Antibody - IgM" + Environment.NewLine;
                }

                if (string.IsNullOrEmpty(this.m_IgMReference) == true)
                {
                    result.Status = AuditStatusEnum.Failure;
                    message      += "IgM Reference";
                }

                if (result.Status == AuditStatusEnum.Failure)
                {
                    result.Message = "Unable to accept as the following are not set:" + Environment.NewLine + message;
                }
            }

            return(result);
        }
Esempio n. 25
0
        public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
        {
            AuditResult result = new AuditResult();

            result.Status = AuditStatusEnum.OK;
            Rules.MethodResult methodResult = base.IsOkToFinalize();
            if (methodResult.Success == false)
            {
                result.Status  = AuditStatusEnum.Failure;
                result.Message = methodResult.Message;
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_Result) == true)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to final as the result is not set.";
                }
            }

            return(result);
        }
Esempio n. 26
0
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_Result) == true)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to accept as the Reticulated Platelet Analysis is not set.";
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_ResultReference) == true)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to accept as the Reference is not set.";
                }
            }

            return(result);
        }
Esempio n. 27
0
        public AuditResult IsOkToSetResults(AccessionOrder accessionOrder)
        {
            AuditResult result = new AuditResult();

            result.Status = AuditStatusEnum.OK;
            if (this.m_Accepted == true)
            {
                result.Status  = AuditStatusEnum.Failure;
                result.Message = "The results may not be set because they have already been accepted." + Environment.NewLine;
            }

            if (string.IsNullOrEmpty(this.m_Indicator) == true)
            {
                result.Status   = AuditStatusEnum.Failure;
                result.Message += "The indication must be set before results can be set." + Environment.NewLine;
            }

            if (this.m_NotInterpretable == false)
            {
                if (this.TotalHer2SignalsCountToUse == 0)
                {
                    result.Status = AuditStatusEnum.Failure;
                    string whichCount = this.m_RecountRequired == true ? "The Total Her2 Signals Recount " : "The Total Her2 Signals Counted ";
                    result.Message += whichCount + "must be set before results can be set." + Environment.NewLine;
                }
                if (this.m_TotalChr17SignalsCounted == 0)
                {
                    result.Status = AuditStatusEnum.Failure;
                    string whichCount = this.m_RecountRequired == true ? "The Total Chr17 Signals Recount " : "The Total Chr17 Signals Counted ";
                    result.Message += whichCount + "must be set before results can be set." + Environment.NewLine;
                }
                if (this.m_CellsCounted == 0)
                {
                    result.Status = AuditStatusEnum.Failure;
                    string whichCount = this.m_RecountRequired == true ? "The Cells Recount " : "The Cells Counted ";
                    result.Message += "must be set before results can be set." + Environment.NewLine;
                }
                if (this.m_GeneticHeterogeneity == HER2AmplificationByISH.HER2AmplificationByISHGeneticHeterogeneityCollection.GeneticHeterogeneityPresentInClusters)
                {
                    if (string.IsNullOrEmpty(this.m_Her2Chr17ClusterRatio) == true)
                    {
                        result.Status   = AuditStatusEnum.Failure;
                        result.Message += "The Her2Chr/17 Cluster Ratio must be set before results can be set." + Environment.NewLine;
                    }
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                Her2AmplificationByIHC.Her2AmplificationByIHCTest     ihcTest     = new Her2AmplificationByIHC.Her2AmplificationByIHCTest();
                HER2AmplificationRecount.HER2AmplificationRecountTest recountTest = new HER2AmplificationRecount.HER2AmplificationRecountTest();

                if (accessionOrder.PanelSetOrderCollection.Exists(ihcTest.PanelSetId, this.OrderedOnId, true) == true)
                {
                    Her2AmplificationByIHC.PanelSetOrderHer2AmplificationByIHC testOrder = (Her2AmplificationByIHC.PanelSetOrderHer2AmplificationByIHC)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(ihcTest.PanelSetId, this.OrderedOnId, true);
                    if (testOrder.Final == false)
                    {
                        result.Status   = AuditStatusEnum.Failure;
                        result.Message += "The " + ihcTest.PanelSetName + " must be final before results can be set." + Environment.NewLine;
                    }
                    else
                    {
                        if (testOrder.Score == "2+")
                        {
                            if (accessionOrder.PanelSetOrderCollection.Exists(recountTest.PanelSetId, this.OrderedOnId, true) == true)
                            {
                                HER2AmplificationRecount.HER2AmplificationRecountTestOrder recountTestOrder = (HER2AmplificationRecount.HER2AmplificationRecountTestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(recountTest.PanelSetId, this.OrderedOnId, true);
                                if (recountTestOrder.Final == false)
                                {
                                    result.Status   = AuditStatusEnum.Failure;
                                    result.Message += "The " + recountTest.PanelSetName + " must be final before results can be set." + Environment.NewLine;
                                }
                            }
                            else
                            {
                                result.Status   = AuditStatusEnum.Failure;
                                result.Message += "A " + recountTest.PanelSetName + " must be ordered and final before results can be set." + Environment.NewLine;
                            }
                        }
                    }
                }
                else
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "A " + ihcTest.PanelSetName + " must be ordered and final before results can be set." + Environment.NewLine;
                }
            }

            return(result);
        }
Esempio n. 28
0
        private void DoAuditResult(AuditResult result)
        {
            try
            {
                var dataResult = result.DataResult;
                curAuditEventArgs = null;
                if (result.FBEntity != null)
                {

                    var newOrderEntity = new OrderEntity(result.FBEntity);
                    if (result.DataResult == null)
                    {
                        MessageBox.Show("流程返回结果为空,请联系管理员:" + result.Successful.ToString());
                    }
                    else
                    {
                        if (!(result.DataResult.FlowResult == FlowResult.SUCCESS 
                            || result.DataResult.FlowResult ==FlowResult.END))
                        {
                            newOrderEntity.IsReSubmit = this.OrderEntity.IsReSubmit;
                        }
                        this.orderEntity = newOrderEntity;

                        this.SaveFBEntity = null;

                    }
                }
                else
                {
                    orderEntity = null;
                }

                if (!string.IsNullOrEmpty(result.Exception))
                {
                    curAuditEventArgs = new AuditEventArgs(AuditEventArgs.AuditResult.Cancel, null);
                    CommonFunction.ShowErrorMessage(result.Exception);

                }
                else if (dataResult.FlowResult == FlowResult.FAIL)
                {
                    curAuditEventArgs = new AuditEventArgs(AuditEventArgs.AuditResult.Error, null);
                    CommonFunction.ShowErrorMessage(dataResult.Err);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("流程返回结果后处理报错,请联系管理员:" + ex.ToString());
            }

        }
Esempio n. 29
0
 public AuditEventArgs(AuditResult auditResult, DataResult innerResult)
 {
     result = auditResult;
     InnerResult = innerResult;
     this.Action = AuditAction.Audit;
 }
Esempio n. 30
0
 public AuditEventArgs(AuditResult auditResult, DataResult innerResult)
 {
     result      = auditResult;
     InnerResult = innerResult;
     this.Action = AuditAction.Audit;
 }
Esempio n. 31
0
        private void LoopModule(object obj)
        {
            if (obj != null)
            {
                ModuleBox moduleBox = obj as ModuleBox;
                MBox = new ModuleBox(moduleBox)
                {
                    ModListener = UnpackBox
                };

                if (MBox.MainFListener != null)
                {
                    _isUiActive        = true;
                    MBox.MainFListener = moduleBox.MainFListener;
                    MBox.MainFListener(new ModuleBox()
                    {
                        CodeId      = CodeId.BindWithModule,
                        ModListener = MBox.ModListener
                    });
                }

                bool flag = true;
                while (flag)
                {
                    Thread.Sleep(100);
                    lock (_locker)
                    {
                        if (MustDo.Count > 0 && MBoxs.Count > 0)
                        {
                            switch (MustDo.Peek())
                            {
                            case CodeId.ListReportAudit:
                                MustDo.Dequeue();
                                if (_isUiActive)
                                {
                                    ModuleBox m = new ModuleBox()
                                    {
                                        CodeId = CodeId.ListReportAudit
                                    };
                                    for (int i = 0; i < AuditResult.Count; i++)
                                    {
                                        m.ListReportAudit.Add(AuditResult[i]);
                                        File.AppendAllText("TTX.txt", $"\r\n{AuditResult[i].FindWords.Count}");
                                    }
                                    MBox.MainFListener(m);
                                }
                                MBoxs.Dequeue();
                                break;

                            case CodeId.AddToAuditResult:
                                MustDo.Dequeue();
                                var ari = MBoxs.Peek();
                                this.AuditResult.Add(new AuditResultInfo(ari.Ari));
                                MBoxs.Dequeue();
                                break;

                            case CodeId.BindWithScanF:
                                MustDo.Dequeue();
                                var bwsf = MBoxs.Peek();
                                MBox.ScanFListener = bwsf.ScanFListener;
                                MBoxs.Dequeue();
                                break;

                            case CodeId.BindwithScan:
                                MustDo.Dequeue();
                                var bws = MBoxs.Peek();
                                MBox.ScanListener = bws.ScanListener;
                                MBoxs.Dequeue();
                                break;

                            case CodeId.UnBindWithScanF:
                                moduleBox.ScanFListener = null;
                                MustDo.Dequeue();
                                MBoxs.Dequeue();
                                break;

                            case CodeId.DisposeModule:
                                flag = false;
                                if (_scanTask != null)
                                {
                                    if (_scanTask.IsAlive)
                                    {
                                        _scanTask.Abort();
                                    }
                                }
                                MustDo.Clear();
                                MBoxs.Clear();
                                break;

                            case CodeId.RunScanForm:
                                AuditResult.Clear();
                                MustDo.Dequeue();
                                _scanTask = new Thread(RunScanFormExternalTrigger);
                                ModuleBox t = new ModuleBox(MBoxs.Dequeue());
                                _scanTask.Start(t);
                                break;

                            case CodeId.TestHookApp:
                                MustDo.Dequeue();
                                MBoxs.Dequeue();
                                new Thread(new TestAppHook(_mhf).Show).Start();
                                break;

                            case CodeId.TestHookKeyboard:
                                MustDo.Dequeue();
                                MBoxs.Dequeue();
                                new Thread(new TestKeyBoardHook(_mhf).Show).Start();
                                break;

                            case CodeId.TestHookMouse:
                                MustDo.Dequeue();
                                MBoxs.Dequeue();

                                new Thread(new TestMouseHook(_mhf).Show).Start();
                                break;

                            case CodeId.TestHookClipboard:
                                MustDo.Dequeue();
                                MBoxs.Dequeue();
                                new Thread(new TestClipBordHook(_mhf).Show).Start();
                                break;

                            case CodeId.TestHookPrint:
                                MustDo.Dequeue();
                                MBoxs.Dequeue();
                                new Thread(new TestPrintHook(_mhf).Show).Start();
                                break;

                            case CodeId.TestCameraSpy:
                                MustDo.Dequeue();
                                MBoxs.Dequeue();
                                new Thread(new ClientSpy.ClientSpy().TestRun);
                                new Thread(new ServerSpy.TestVideo().Show).Start();
                                break;
                            }
                        }
                    }
                }

                Dispose();
            }
        }
 public void BeforeEachTest()
 {
     Target = new AuditResult();
 }