Пример #1
0
        public IHttpActionResult PostDiseaseTypeModify(DiseaseDto disease)
        {
            string msg = "";

            if (disease == null)
            {
                msg = "参数错误";
            }
            var diseaseToUpdate = _context.Diseases.Find(disease.Id);

            diseaseToUpdate.Name          = disease.Name;
            diseaseToUpdate.DiseaseTypeId = disease.DiseaseTypeId;

            try
            {
                _context.Entry(diseaseToUpdate).State = EntityState.Modified;
                _context.SaveChanges();
                msg = "修改成功";
            }
            catch (RetryLimitExceededException)
            {
                msg = "网络故障";
            }
            var str = "{ \"Message\" : \"" + msg + "\" , \"" + "Data\" : \"" + "null" + "\" }";

            return(Ok(str));
        }
        public async Task GetDiseaseByNameAsync()
        {
            var          diseaseId = Guid.Parse("00000000-0000-0000-0000-000000000001");
            const string name      = "tuberkulosis";

            var diseaseDto = new DiseaseDto
            {
                Id   = diseaseId,
                Name = name
            };

            var expectedResult = new List <DiseaseDto> {
                diseaseDto
            };

            var returnedResult = new QueryResultDto <DiseaseDto, DiseaseFilterDto>
            {
                Items = new List <DiseaseDto> {
                    diseaseDto
                }
            };

            var mockManager            = new FacadeMockManager();
            var diseaseRepositoryMock  = mockManager.ConfigureRepositoryMock <Disease>();
            var diseaseQueryMock       = mockManager.ConfigureQueryObjectMock <DiseaseDto, Disease, DiseaseFilterDto>(returnedResult);
            var sympthomRepositoryMock = mockManager.ConfigureRepositoryMock <Sympthom>();
            var sympthomQueryMock      = mockManager.ConfigureQueryObjectMock <SympthomDto, Sympthom, SympthomFilterDto>(null);
            var diseaseFacade          = CreateDiseaseFacade(diseaseQueryMock, diseaseRepositoryMock, sympthomQueryMock, sympthomRepositoryMock);

            var actualResult = await diseaseFacade.GetDiseaseByNameAsync("tuber");

            Assert.AreEqual(actualResult, expectedResult);
        }
Пример #3
0
        public async Task <ActionResult> AddDiseaseHealthCard(AddDiseaseModel addDiseaseModel)
        {
            List <Guid> existingSympthomGuids = new List <Guid>();
            DiseaseDto  diseaseToCreateDto    = new DiseaseDto {
                Name = addDiseaseModel.Name
            };
            var diseaseGuid = await DiseaseFacade.CreateDiseaseAsync(diseaseToCreateDto);

            var sympthomStrings = addDiseaseModel.Sypthoms.Split(',');

            foreach (var sympthom in sympthomStrings)
            {
                var sympthomsByName = await SympthomFacade.GetSympthomByNameAsync(sympthom);

                if (sympthomsByName.Count() != 0)
                {
                    existingSympthomGuids.Add(sympthomsByName.First().Id);
                }
                else
                {
                    SympthomDto newSympthomDto = new SympthomDto {
                        Name = sympthom
                    };
                    existingSympthomGuids.Add(await SympthomFacade.CreateSympthomAsync(newSympthomDto));
                }
            }
            await MatchDiseaseAndSypthoms(diseaseGuid, existingSympthomGuids);

            string identificationNum = await UpdateHealthCard(new HealthCardUpdateModel { DiseaseId = diseaseGuid });

            return(RedirectToAction("PatientAskForGetInfoDoctor", "Patient", new { identificationNumber = identificationNum }));
        }
Пример #4
0
        private async Task <Guid> MatchDiseaseAndHealthCard(DiseaseDto diseaseDto, HealthCardDto healthCard)
        {
            var diseaseToHealthCard = new DiseaseToHealthCardDto {
                DiseaseDto = diseaseDto, HealthCardDto = healthCard
            };

            return(await DiseaseToHealthCardFacade.Create(diseaseToHealthCard));
        }
Пример #5
0
 public IActionResult EditDisease([FromBody] DiseaseDto diseaseDto)
 {
     if (ModelState.IsValid)
     {
         _diseaseService.EditDisease(diseaseDto);
         return(Ok());
     }
     return(BadRequest());
 }
Пример #6
0
 public IActionResult AddDisease([FromBody] DiseaseDto diseaseDto)
 {
     if (ModelState.IsValid)
     {
         _diseaseService.AddDisease(diseaseDto);
         return(StatusCode(StatusCodes.Status201Created));
     }
     return(BadRequest());
 }
        public async Task <Guid> CreateDiseaseAsync(DiseaseDto disease)
        { // need to create Sympthom as well?
            using (var uow = UnitOfWorkProvider.Create())
            {
                var diseaseId = diseaseService.Create(disease);
                await uow.Commit();

                return(diseaseId);
            }
        }
Пример #8
0
        public async Task <ActionResult> Create(DiseaseDto disease)
        {
            if (!ModelState.IsValid)
            {
                return(View(disease));
            }
            await _repository.CreateAsync(disease);

            return(RedirectToAction("Details", "Doctors", new { id = disease.DoctorId }));
        }
Пример #9
0
        public async Task PostDiseaseAsync(DiseaseDto diseaseDto)
        {
            var disease = new Disease
            {
                // DiseaseId=diseaseDto.DiseaseDtoId,
                Name = diseaseDto.Name
            };

            _context.Disease.Add(disease);
            await _context.SaveChangesAsync();
        }
Пример #10
0
        public async Task <DiseaseDto> GetDiseaseAsync(int id)
        {
            var diseaseDto = new DiseaseDto();
            var disease    = await _context.Disease.FirstOrDefaultAsync(x => x.DiseaseId == id);

            if (disease != null)
            {
                diseaseDto.DiseaseDtoId = disease.DiseaseId;
                diseaseDto.Name         = disease.Name;
            }
            return(diseaseDto);
        }
Пример #11
0
        public async Task <List <DiagnosticResultDto> > GetResult(List <Guid> SymptomIds)
        {
            try
            {
                using (DHContext db = new DHContext())
                {
                    var AllDisease = await db.Diseases.Include(d => d.ICD).Include(d => d.Symptoms).ToListAsync();

                    List <DiagnosticResultDto> result = new List <DiagnosticResultDto>();
                    foreach (var disease in AllDisease)
                    {
                        DiagnosticResultDto currnetresult = null;
                        foreach (var diseaseSymptom in disease.Symptoms)
                        {
                            if (SymptomIds.Contains(diseaseSymptom.Id))
                            {
                                if (currnetresult == null)
                                {
                                    currnetresult = new DiagnosticResultDto();
                                    currnetresult.NumberOfCoincidences = 1;
                                    var diseaseresult = new DiseaseDto
                                    {
                                        Id           = disease.Id,
                                        Description  = disease.Description,
                                        ICDID        = disease.ICDID,
                                        ICDName      = disease.ICD.Name,
                                        Name         = disease.Name,
                                        SymptomIds   = disease.Symptoms.Select(s => s.Id).ToList(),
                                        SymptomNames = disease.Symptoms.Select(s => s.Name).ToList()
                                    };
                                    currnetresult.Disease = diseaseresult;
                                }
                                else
                                {
                                    currnetresult.NumberOfCoincidences++;
                                }
                            }
                        }

                        if (currnetresult != null)
                        {
                            result.Add(currnetresult);
                        }
                    }
                    return(result.OrderByDescending(r => r.NumberOfCoincidences).ToList());
                }
            }
            catch (Exception exc)
            {
                _logger.Error($"Failed get result for diagnostic : {exc}");
                throw;
            }
        }
        public async Task <bool> EditDiseaseAsync(DiseaseDto diseaseDto)
        {
            using (var uow = UnitOfWorkProvider.Create())
            {
                if ((await diseaseService.GetAsync(diseaseDto.Id, false)) == null)
                {
                    return(false);
                }
                await diseaseService.Update(diseaseDto);

                await uow.Commit();

                return(true);
            }
        }
Пример #13
0
        public async Task <IList <DiseaseDto> > GetAllAsync()
        {
            var diseasesDto = new List <DiseaseDto>();
            var diseases    = await _context.Disease.ToListAsync();

            foreach (var item in diseases)
            {
                var diseaseDto = new DiseaseDto();
                diseaseDto.DiseaseDtoId = item.DiseaseId;
                diseaseDto.Name         = item.Name;
                //diseaseDto.diseaseTypeDto = item.DiseaseType;


                diseasesDto.Add(diseaseDto);
            }
            return(diseasesDto);
        }
Пример #14
0
        public static async Task <DiseaseDto> DiseaseParser(SqlDataReader reader)
        {
            var disease = new DiseaseDto
            {
                Id          = await reader.GetFieldValueAsync <int>(0),
                PatientId   = await reader.GetFieldValueAsync <int>(1),
                DoctorId    = await reader.GetFieldValueAsync <int>(2),
                Name        = await reader.GetFieldValueAsync <string>(3),
                StartAt     = await reader.GetFieldValueAsync <DateTime>(4),
                EndAt       = await reader.IsDBNullAsync(5) ? null : await reader.GetFieldValueAsync <DateTime?>(5),
                ProfileName = await reader.GetFieldValueAsync <string>(6),
                Doctor      = new DoctorDto(),
                Patient     = new PatientDto()
            };

            return(disease);
        }
Пример #15
0
        public async Task <DiseaseDto> PostDiseaseAsync(DiseaseDto diseaseDto)
        {
            var disease = new Disease
            {
                // DiseaseId=diseaseDto.DiseaseDtoId,
                Name = diseaseDto.Name
            };

            _context.Disease.Add(disease);
            await _context.SaveChangesAsync();

            var value = new DiseaseDto
            {
                DiseaseDtoId = disease.DiseaseId,
                Name         = disease.Name
            };

            return(value);
        }
        public async Task <DiseaseTypeDto> GetDiseaseAsync(int id)
        {
            var diseaseTypeDto = new DiseaseTypeDto();
            var diseaseType    = await _context.DiseaseType.FirstOrDefaultAsync(x => x.DiseaseTypeId == id);

            if (diseaseType != null)
            {
                diseaseTypeDto.DiseaseTypeId = diseaseType.DiseaseTypeId;
                diseaseTypeDto.TypeOfDisease = diseaseType.TypeOfDisease;
                diseaseTypeDto.Disease       = new List <DiseaseDto>();
                foreach (var item in diseaseTypeDto.Disease)
                {
                    var disease = new DiseaseDto();
                    disease.DiseaseDtoId = item.DiseaseDtoId;
                    disease.Name         = item.Name;
                    diseaseTypeDto.Disease.Add(disease);
                }
            }
            return(diseaseTypeDto);
        }
Пример #17
0
        public IHttpActionResult PostDiseaseTAdd(DiseaseDto disease)
        {
            string msg = "";

            if (disease == null)
            {
                msg = "参数错误";
            }
            var diseaseToAdd = Mapper.Map <DiseaseDto, Disease>(disease);

            try
            {
                _context.Diseases.Add(diseaseToAdd);
                _context.SaveChanges();
                msg = "添加成功";
            }
            catch (RetryLimitExceededException)
            {
                msg = "网络故障";
            }
            var str = "{ \"Message\" : \"" + msg + "\" , \"" + "Data\" : \"" + "null" + "\" }";

            return(Ok(str));
        }
Пример #18
0
 public async Task <IActionResult> PostDiseaseAsync(DiseaseDto diseaseDto)
 {
     return(Ok(await _diseaseService.PostDiseaseAsync(diseaseDto)));
 }
Пример #19
0
        public IHttpActionResult PostDiseaseDelete(DiseaseDto disease)
        {
            string msg = "";

            if (disease == null)
            {
                msg = "参数错误";
            }
            var diseaseToDelete = _context.Diseases.Find(disease.Id);

            _context.Entry(diseaseToDelete).Collection(u => u.DiseaseCases).Load();
            foreach (DiseaseCase dc in diseaseToDelete.DiseaseCases)
            {
                _context.Entry(dc).Collection(u => u.DiseaseCaseTabs).Load();
                foreach (DiseaseCaseTab dct in dc.DiseaseCaseTabs)
                {
                    _context.Entry(dct).Collection(u => u.Analyses);
                    _context.Entry(dct).Collection(u => u.Drugs);
                    _context.Entry(dct).Collection(u => u.Texts);
                    _context.Entry(dct).Collection(u => u.Pictures);
                    _context.Entry(dct).Collection(u => u.Videos);
                }
            }
            if (diseaseToDelete == null)
            {
                msg = "删除失败,该用户不存在";
            }
            else
            {
                try
                {
                    DiseaseDto diseaseToDeleteDto = Mapper.Map <Disease, DiseaseDto>(diseaseToDelete);
                    foreach (DiseaseCaseDto dc in diseaseToDeleteDto.DiseaseCases)
                    {
                        var diseaseCase = _context.DiseaseCases.Find(dc.Id);
                        _context.Entry(diseaseCase).Collection(u => u.Diseases).Load();
                        _context.Entry(diseaseCase).Collection(u => u.DiseaseCaseTabs).Load();
                        if (diseaseCase.Diseases.Count == 1)
                        {
                            foreach (DiseaseCaseTabDto dct in dc.DiseaseCaseTabs)
                            {
                                var diseaseCaseTab = _context.DiseaseCaseTabs.Find(dct.Id);
                                _context.Entry(diseaseCaseTab).Collection(u => u.Analyses).Load();
                                _context.Entry(diseaseCaseTab).Collection(u => u.Drugs).Load();
                                _context.Entry(diseaseCaseTab).Collection(u => u.Texts).Load();
                                _context.Entry(diseaseCaseTab).Collection(u => u.Pictures).Load();
                                _context.Entry(diseaseCaseTab).Collection(u => u.Videos).Load();

                                diseaseCaseTab.Drugs.Clear();
                                diseaseCaseTab.Analyses.Clear();
                                foreach (TextDto t in dct.Texts)
                                {
                                    var text = _context.Texts.Find(t.Id);
                                    _context.Texts.Remove(text);
                                }
                                foreach (PictureDto p in dct.Pictures)
                                {
                                    var picture = _context.Pictures.Find(p.Id);
                                    _context.Pictures.Remove(picture);
                                }
                                foreach (VideoDto v in dct.Videos)
                                {
                                    var video = _context.Videos.Find(v.Id);
                                    _context.Videos.Remove(video);
                                }
                                diseaseCaseTab.Texts.Clear();
                                diseaseCaseTab.Pictures.Clear();
                                diseaseCaseTab.Videos.Clear();
                                _context.DiseaseCaseTabs.Remove(diseaseCaseTab);
                            }
                            diseaseCase.DiseaseCaseTabs.Clear();
                            _context.DiseaseCases.Remove(diseaseCase);
                        }
                        disease.DiseaseCases.Clear();
                    }
                    _context.Diseases.Remove(diseaseToDelete);
                    _context.SaveChanges();
                    msg = "删除成功";
                }
                catch (RetryLimitExceededException)
                {
                    msg = "网络故障";
                }
            }

            var str = "{ \"Message\" : \"" + msg + "\" , \"" + "Data\" : \"" + "null" + "\" }";

            return(Ok(str));
        }
Пример #20
0
 public async Task <IActionResult> Put([FromBody] DiseaseDto disease)
 {
     return(Success(await _diseaseService.CreateAsync(disease)));
 }
Пример #21
0
        public async Task <IActionResult> Post([FromBody] DiseaseDto disease)
        {
            await _diseaseService.UpdateAsync(disease);

            return(Success());
        }
Пример #22
0
        public IHttpActionResult PostDiseaseCaseAdd(DiseaseDto disease)
        {
            string msg = "";

            if (disease == null)
            {
                msg = "参数错误";
            }
            var diseaseToAdd = _context.Diseases.Find(disease.Id);

            _context.Entry(diseaseToAdd).Collection(u => u.DiseaseCases).Load();

            try
            {
                Charge charge = new Charge();
                charge.Amount      = 0;
                charge.Description = "";
                charge.Name        = diseaseToAdd.Name + "的费用";
                foreach (DiseaseCaseDto dcd in disease.DiseaseCases)
                {
                    var diseaseCaseToAdd = Mapper.Map <DiseaseCaseDto, DiseaseCase>(dcd);
                    foreach (DiseaseCaseTab dct in diseaseCaseToAdd.DiseaseCaseTabs)
                    {
                        switch (dct.Index)
                        {
                        case "2":
                            charge.Description += "接诊费用:" + 2 + "\n";
                            charge.Amount      += 2;
                            break;

                        case "3":
                            charge.Description += "检查费用:" + 3 + "\n";
                            charge.Amount      += 3;
                            break;

                        case "4":
                            charge.Description += "诊断费用:" + 4 + "\n";
                            charge.Amount      += 4;
                            break;

                        case "5":
                            charge.Description += "治疗费用:" + 5 + "\n";
                            charge.Amount      += 5;
                            break;
                        }
                        foreach (Analysis a in dct.Analyses)
                        {
                            charge.Description += a.Name + ":" + a.Amount + "\n";
                            charge.Amount      += a.Amount;
                        }
                        foreach (Drug d in dct.Drugs)
                        {
                            charge.Description += d.Name + ":" + d.Price + "\n";
                            charge.Amount      += d.Price;
                        }
                    }
                    diseaseCaseToAdd.Charge = charge;
                    diseaseToAdd.DiseaseCases.Add(diseaseCaseToAdd);
                }
                _context.Diseases.Add(diseaseToAdd);
                _context.SaveChanges();
                msg = "添加成功";
            }
            catch (RetryLimitExceededException)
            {
                msg = "网络故障";
            }
            var str = "{ \"Message\" : \"" + msg + "\" , \"" + "Data\" : \"" + "null" + "\" }";

            return(Ok(str));
        }
Пример #23
0
 public void EditDisease(DiseaseDto disease)
 {
     _diseaseRepository.EditDisease(_mapper.Map <DiseaseDto, Disease>(disease));
 }