Example #1
0
        private string GetStageText(EXP_ExpertiseStage expertiseStage, EXP_DIC_Type type, bool termless = false, bool isKz = false)
        {
            //  expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.Matches ? ;
            string outStr = string.Empty;

            const string positive = "Положительное";
            const string negative = "Отрицательное";

            const string protocolPositive = "Положительное";  //"{дата протокола} и {№ протокола}, положительное";
            const string protocolNegative = "Отрицательное";  //"{дата протокола} и {№ протокола}, отрицательное";

            const string recommendationsRegistrationPositive5   = "Рекомендована государственная регистрация сроком на 5 лет";
            const string recommendationsReRegistrationPositive5 = "Рекомендована государственная перерегистрация сроком на 5 лет";
            const string recommendationsReRegistrationPositive  = "Рекомендована государственная перерегистрация с выдачей бессрочного регистрационного удостоверения";
            const string recommendationsNegative   = "Отказ в государственной регистрации";
            const string recommendationsReNegative = "Отказ в государственной перерегистрации";


            const string conclusionPositive5 = "Материалы и документы регистрационного досье на лекарственное средство, предоставленные для государственной регистрации в Республике Казахстан, соответствуют установленным требованиям, безопасность, эффективность и качество лекарственного средства подтверждены соответствующими материалами и проведенными испытаниями. Лекарственное средство может быть зарегистрировано в Республике Казахстан сроком на 5 лет.";

            const string conclusionPositiveKz5 = "Қазақстан Республикасында мемлекеттік тіркеуге ұсынылған дәрілік затқа берілген материалдар мен тіркеу дерекнамасының құжаттары белгіленген талаптарға сәйкес келеді, дәрілік заттың қауіпсіздігі, тиімділігі және сапасы тиісті материалдармен және жүргізілген сынақтармен дәлелденді. Дәрілік затты Қазақстан Республикасында 5 жыл мерзімге тіркеуге болады";
            const string conclusionPositive    = "Материалы и документы регистрационного досье на лекарственное средство, предоставленные для государственной перерегистрации в Республике Казахстан, соответствуют установленным требованиям, безопасность, эффективность и качество лекарственного средства подтверждены соответствующими материалами и проведенными испытаниями. Лекарственное средство может быть перезарегистрировано в Республике Казахстан с выдачей бессрочного регистрационного удостворения.";
            const string conclusionNegative    = "Проведенная экспертиза регистрационного досье, представленного для государственной регистрации, в Республике Казахстан показала, что лекарственное средство не соответствует требованиям по безопасности, эффективности и качеству по следующим показателям: ________________ и не может быть зарегистрирован в Республике Казахстан.";


            const string conclutionA = "Материалы и документы регистрационного досье на лекарственное средство, предоставленные для внесения изменений в регистрационное досье, соответствуют установленным требованиям, безопасность, эффективность и качество лекарственного средства подтверждены соответствующими материалами и проведенными испытаниями. Вносимые изменения могут быть зарегистрированы с выдачей нового регистрационного удостворения.";

            switch (expertiseStage.EXP_DIC_Stage.Code)
            {
            case EXP_DIC_Stage.PrimaryExp:
                if (expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.MatchesCode)
                {
                    return(positive);
                }
                else
                {
                    return(negative);
                }
                break;

            case EXP_DIC_Stage.PharmaceuticalExp:
            case EXP_DIC_Stage.PharmacologicalExp:
                switch (type.Code)
                {
                case TypeCodeConts.Registration:
                    if (expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.MatchesCode || expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.RecommendedCode)
                    {
                        return(recommendationsRegistrationPositive5);
                    }
                    else
                    {
                        return(recommendationsNegative);
                    }
                    break;

                case TypeCodeConts.ReRegistration:
                    if (expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.MatchesCode || expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.RecommendedCode)
                    {
                        if (termless)
                        {
                            return(recommendationsReRegistrationPositive);
                        }
                        return(recommendationsReRegistrationPositive5);
                    }
                    else
                    {
                        return(recommendationsReNegative);
                    }
                    break;

                case TypeCodeConts.Alteration:
                    if (expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.MatchesCode || expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.RecommendedCode)
                    {
                        if (termless)
                        {
                            return(recommendationsReRegistrationPositive);
                        }
                        return(recommendationsRegistrationPositive5);
                    }
                    else
                    {
                        return(recommendationsNegative);
                    }
                    break;
                }
                break;

            case EXP_DIC_Stage.AnalyticalExp:
                switch (type.Code)
                {
                case TypeCodeConts.Registration:
                    if (expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.MatchesCode)
                    {
                        return(protocolPositive);
                    }
                    else
                    {
                        return(protocolNegative);
                    }
                    break;

                case TypeCodeConts.ReRegistration:
                    if (expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.MatchesCode)
                    {
                        return(protocolPositive);
                    }
                    else
                    {
                        return(protocolNegative);
                    }
                    break;

                case TypeCodeConts.Alteration:
                    if (expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.MatchesCode)
                    {
                        return(protocolPositive);
                    }
                    else
                    {
                        return(protocolNegative);
                    }
                    break;
                }
                break;

            case EXP_DIC_Stage.SafetyConclusion:
                switch (type.Code)
                {
                case TypeCodeConts.Registration:
                    if (expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.MatchesCode)
                    {
                        if (isKz)
                        {
                            return(conclusionPositiveKz5);
                        }
                        return(conclusionPositive5);
                    }
                    else
                    {
                        return(conclusionNegative);
                    }
                    break;

                case TypeCodeConts.ReRegistration:
                    if (expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.MatchesCode)
                    {
                        if (termless)
                        {
                            return(conclusionPositive);
                        }
                        return(conclusionPositive5);
                    }
                    else
                    {
                        return(conclusionNegative);
                    }
                    break;

                case TypeCodeConts.Alteration:
                    if (expertiseStage.EXP_DIC_StageResult.Code == EXP_DIC_StageResult.MatchesCode)
                    {
                        return(conclutionA);
                    }
                    else
                    {
                        return(string.Empty);
                    }
                    break;
                }
                break;
            }

            return(outStr);
        }
Example #2
0
        private EXP_ExpertiseSafetyreportFinalDoc CreateExpertiseSafetyreportFinalDoc(EXP_ExpertiseStageDosage model)
        {
            EXP_DIC_Type type     = null;
            bool         termless = false;
            IEnumerable <EXP_ExpertiseStage> stages = new List <EXP_ExpertiseStage>();

            if (model.EXP_DrugDosage?.EXP_DrugDeclaration != null)
            {
                type = model.EXP_DrugDosage?.EXP_DrugDeclaration.EXP_DIC_Type;
                // EXP_DIC_PrimaryKind
                termless = model.EXP_DrugDosage?.EXP_DrugDeclaration.EXP_DrugPrimaryKind.FirstOrDefault(dpk => dpk.PrimaryKindId == 7) == null;
                stages   = model.EXP_DrugDosage?.EXP_DrugDeclaration.EXP_ExpertiseStage
                           .Where(es => !es.IsHistory).ToList();
                // && (es.EXP_DIC_StageStatus.Code == EXP_DIC_StageStatus.Completed|| es.EXP_DIC_StageStatus.Code == EXP_DIC_StageStatus.InWork)
            }
            // Первичная
            var    expExpertiseStage = stages.FirstOrDefault(s => s.EXP_DIC_Stage.Code == CodeConstManager.STAGE_PRIMARY.ToString());
            string primaryResult     = string.Empty;

            if (expExpertiseStage?.EXP_DIC_StageResult != null)
            {
                primaryResult = GetStageText(expExpertiseStage, type);
            }

            // Фармацевтика
            expExpertiseStage = stages.FirstOrDefault(s => s.EXP_DIC_Stage.Code == CodeConstManager.STAGE_PHARMACEUTICAL.ToString());
            string pharmaceuticalResult = string.Empty;

            if (expExpertiseStage?.EXP_DIC_StageResult != null)
            {
                pharmaceuticalResult = GetStageText(expExpertiseStage, type);
            }

            // Фармакология
            expExpertiseStage = stages.FirstOrDefault(s => s.EXP_DIC_Stage.Code == CodeConstManager.STAGE_PHARMACOLOGICAL.ToString());
            string pharmacologicalResult = string.Empty;

            if (expExpertiseStage?.EXP_DIC_StageResult != null)
            {
                pharmacologicalResult = GetStageText(expExpertiseStage, type);
            }

            // Иследовательский центр
            expExpertiseStage = stages.FirstOrDefault(s => s.EXP_DIC_Stage.Code == CodeConstManager.STAGE_ANALITIC.ToString());
            string analiticResult = string.Empty;

            if (expExpertiseStage?.EXP_DIC_StageResult != null)
            {
                analiticResult = GetStageText(expExpertiseStage, type);
            }

            // ЗОБ
            expExpertiseStage = stages.FirstOrDefault(s => s.EXP_DIC_Stage.Code == CodeConstManager.STAGE_SAFETYREPORT.ToString());
            string conclusion   = string.Empty;
            string conclusionKz = string.Empty;

            //if (expExpertiseStage?.EXP_DIC_StageResult != null)
            if (model?.EXP_DIC_StageResult != null && expExpertiseStage != null)
            {
                // этап
                expExpertiseStage.EXP_DIC_StageResult = model?.EXP_DIC_StageResult;
                conclusion   = GetStageText(expExpertiseStage, type);
                conclusionKz = GetStageText(expExpertiseStage, type, termless, true);
            }

            return(new EXP_ExpertiseSafetyreportFinalDoc()
            {
                Id = Guid.NewGuid(),
                PrimaryConclusion = primaryResult,
                PrimaryConclusionKz = primaryResult,
                PharmaceuticalConclusion = pharmaceuticalResult,
                PharmaceuticalConclusionKz = pharmaceuticalResult,
                PharmacologicalConclusion = pharmacologicalResult,
                PharmacologicalConclusionKz = pharmacologicalResult,
                AnalyticalConclusion = analiticResult,
                AnalyticalConclusionKz = analiticResult,
                Conclusion = conclusion,
                ConclusionKz = conclusionKz,
                DosageStageId = model.Id
            });
        }