public static ClinicalCategoryDto ToDto(this ClinicalCategory cc, bool cascade = true)
        {
            cc.ClinicalItems?.ForEach(v => v.ClinicalCategoryId             = cc.Id);
            cc.ClinicalProductCategories?.ForEach(v => v.ClinicalCategoryId = cc.Id);
            cc.Features?.ForEach(v => v.ClinicalCategoryId = cc.Id);

            var dto = new ClinicalCategoryDto
            {
                Name = cc.Name,
                Code = cc.Code,
                //ClinicalItems = cc.ClinicalItems?.Select(v => v.ToDto()).ToList(),
                //ClinicalProductCategories = cc.ClinicalProductCategories?.Select(v => v.ToDto()).ToList()    ,
                //Features = cc.Features?.Select(v => v.ToDto()).ToList()
            };

            if (cascade)
            {
                dto.ClinicalItems             = cc.ClinicalItems?.Select(v => v.ToDto()).ToList();
                dto.ClinicalProductCategories = cc.ClinicalProductCategories?.Select(v => v.ToDto()).ToList();
                dto.Features = cc.Features?.Select(v => v.ToDto()).ToList();
            }

            ((IData)cc).ToDto((IDataDto)dto);
            return(dto);
        }
        public static ClinicalCategory ToDomain(this ClinicalCategoryDto cC, ClinicalCategory originalCC = null)
        {
            if (originalCC != null && originalCC.Id == cC.Id)
            {
                originalCC.Name = cC.Name;
                originalCC.Code = cC.Code;

                ((IDataDto)cC).ToDomain((IData)originalCC);
                return(originalCC);
            }

            var data = new ClinicalCategory
            {
                Name = cC.Name,
                Code = cC.Code,
                // ClinicalItems = cC.ClinicalItems?.Select(v => v.ToDomain()).ToList()
            };

            ((IDataDto)cC).ToDomain((IData)data);
            return(data);
        }