コード例 #1
0
        public List <int> GetDiaryNumericData(string PatID, DateTime StartDate, DateTime EndDate, string Query)
        {
            PatBasicInfor        pt          = context.PatBasicInforSet.Find(PatID);
            List <HeadacheDiary> HDiary      = new List <HeadacheDiary>();
            List <int>           NumericData = new List <int>();

            foreach (HeadacheDiary vr in pt.HeadacheDiary)
            {
                TimeSpan ts1 = vr.RecordDate - StartDate;
                TimeSpan ts2 = EndDate - vr.RecordDate;
                if (ts1.Days >= 0 && ts2.Days >= 0)
                {
                    HDiary.Add(vr);
                }
            }
            if (Query == "头痛程度")
            {
                foreach (HeadacheDiary d in HDiary)
                {
                    NumericData.Add(d.HeadacheDegree);
                }
            }
            else if (Query == "头痛时长")
            {
                foreach (HeadacheDiary d in HDiary)
                {
                    NumericData.Add(d.HeadacheTime);
                }
            }
            return(NumericData);
        }
コード例 #2
0
        public ActionResult Index(PatBasicInfor pat)
        {
            PatOperation pto = new PatOperation();

            string PID = Request.Form["门诊号"];
            if (string.IsNullOrEmpty(pat.Name) || string.IsNullOrEmpty(pat.Sex) || string.IsNullOrEmpty(pat.Age) || string.IsNullOrEmpty(pat.Phone))
            {
                ModelState.AddModelError("", "带*的输入项不能为空");
            }
            else
            {
                Regex reg = new Regex("^[0-9]+$");
                Match ma1 = reg.Match(pat.Age);
                Match ma2 = reg.Match(pat.Phone);
                if (ma1.Success && ma2.Success)
                {
                }
                else
                {
                    ModelState.AddModelError("", "手机和年龄必须为数字");
                }
            }
            if (ModelState.IsValid)
            {
                string user;
                user = HttpContext.Request.Cookies["username"].Value.ToString();
                pto.InsertPat(pat, PID, user);
                return RedirectToAction("Index", "Diagnosis", new { ID = pat.Id });
            }
            else
            {
                return View();
            }
        }
コード例 #3
0
        public bool SaveAdvice(string id, string strAdvice)
        {
            PatBasicInfor    pt            = context.PatBasicInforSet.Find(id);
            DocSuggestionSet docSuggestion = new DocSuggestionSet();

            try
            {
                docSuggestion.PatBasicInforId = id;
                docSuggestion.Suggestion      = strAdvice;
                docSuggestion.IfNew           = 1;
                docSuggestion.SuggestionTime  = DateTime.Now;
                pt.DocSuggestionSet.Add(docSuggestion);
                pt.LastSuggestionTime = docSuggestion.SuggestionTime;
                context.SaveChanges();
                return(true);
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
                return(false);
            }
        }
コード例 #4
0
        public bool SaveRecord(string PatID, VisitData VData)
        {
            try
            {
                VisitData     vdata = DataPreprocess(VData);
                PatBasicInfor pt    = context.PatBasicInforSet.Find(PatID);
                pt.HeadacheFamilyMember = vdata.HFamilyMember;//个人信息相关保存
                pt.OtherFamilyDisease   = vdata.OFamilyDisease;
                ObjectMapper.CopyProperties(vdata.lifestyle, pt.Lifestyle);
                pt.PreviousDrug = vdata.PDrug;
                foreach (PreviousDrug pg in pt.PreviousDrug)
                {
                    pg.PatBasicInforId = PatID;
                    if (pg.DrugCategory != null && (pg.DayAmoutnPerM == null || pg.MonthTotalAmount == null))
                    {
                    }
                }
                if (vdata.Similarfamily == "有")
                {
                    pt.SimilarFamily = true;
                }
                else
                {
                    pt.SimilarFamily = false;
                }

                pt.PreviousExam = vdata.PExam;
                if (vdata.visitrecord != null)
                {
                    VisitRecord vr = new VisitRecord();//问诊记录信息保存
                    vr = vdata.visitrecord;
                    vr.MedicationAdvice = vdata.MAdvice;
                    vr.VisitDate        = System.DateTime.Now;
                    // vr.VisitDate = DateTime.Now.Date;
                    vr.PrimaryHeadachaOverView = vdata.PHeadacheOverview;
                    vr.GADQuestionaire         = vdata.GADquestionaire;
                    vr.DisabilityEvaluation    = vdata.Disabilityevaluation;
                    vr.PHQuestionaire          = vdata.PHquestionaire;
                    vr.SleepStatus             = vdata.Sleepstatus;
                    vr.PatBasicInforId         = PatID;
                    pt.VisitRecord.Add(vr);
                }
                context.SaveChanges();
                return(true);
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
                return(false);
            }
        }
コード例 #5
0
        public List <VisitRecord> GetVistRecord(string PatID)
        {
            PatBasicInfor      pt    = context.PatBasicInforSet.Find(PatID);
            List <VisitRecord> visit = new List <VisitRecord>();

            foreach (VisitRecord vr in pt.VisitRecord)
            {
                visit.Add(vr);
            }
            visit.Reverse();
            return(visit);
        }
コード例 #6
0
        public bool UpdateRecord(string PatID, string VisitID, VisitData VData)
        {
            try
            {
                VisitData     vdata = DataPreprocess(VData);
                PatBasicInfor pt    = context.PatBasicInforSet.Find(PatID);
                pt.HeadacheFamilyMember = vdata.HFamilyMember;//个人信息相关保存
                pt.OtherFamilyDisease   = vdata.OFamilyDisease;
                ObjectMapper.CopyProperties(vdata.lifestyle, pt.Lifestyle);
                pt.PreviousDrug = vdata.PDrug;
                pt.PreviousExam = vdata.PExam;
                if (vdata.Similarfamily == "有")
                {
                    pt.SimilarFamily = true;
                }
                else
                {
                    pt.SimilarFamily = false;
                }
                if (vdata.visitrecord != null)
                {
                    IEnumerable <VisitRecord> record = from p in context.VisitRecordSet.ToList()
                                                       where (p.PatBasicInfor.Id == PatID) && (p.Id == int.Parse(VisitID))
                                                       select p;
                    VisitRecord vr = record.First();

                    ObjectMapper.CopyProperties(vdata.visitrecord, vr);
                    ObjectMapper.CopyProperties(vdata.PHeadacheOverview, vr.PrimaryHeadachaOverView);

                    ObjectMapper.CopyProperties(vdata.GADquestionaire, vr.GADQuestionaire);
                    ObjectMapper.CopyProperties(vdata.PHquestionaire, vr.PHQuestionaire);
                    ObjectMapper.CopyProperties(vdata.Disabilityevaluation, vr.DisabilityEvaluation);
                    ObjectMapper.CopyProperties(vdata.Sleepstatus, vr.SleepStatus);
                    vr.PrimaryHeadachaOverView.VisitRecord = vr;
                    vr.GADQuestionaire.VisitRecord         = vr;
                    vr.PHQuestionaire.VisitRecord          = vr;
                    vr.DisabilityEvaluation.VisitRecord    = vr;
                    vr.SleepStatus.VisitRecord             = vr;


                    vr.PatBasicInforId      = PatID;
                    vr.VisitDate            = DateTime.Now.Date;
                    context.Entry(vr).State = System.Data.EntityState.Modified;
                }
                context.SaveChanges();
                return(true);
            }
            catch (Exception e)
            {
                return(false);
            }
        }
コード例 #7
0
        public ActionResult Index(PatBasicInfor pat)
        {
            PatOperation pto = new PatOperation();

            string PID = Request.Form["门诊号"];
            if (string.IsNullOrEmpty(pat.Name) || string.IsNullOrEmpty(pat.Sex) || string.IsNullOrEmpty(pat.Age) || string.IsNullOrEmpty(pat.Phone))
            {
                ModelState.AddModelError("", "带*的输入项不能为空");
            }
            else
            {
                Regex reg = new Regex("^[0-9]+$");
                Match ma1 = reg.Match(pat.Age);
                Match ma2 = reg.Match(pat.Phone);
                if (ma1.Success && ma2.Success)
                {
                }
                else
                {
                    ModelState.AddModelError("", "手机和年龄必须为数字");
                }
            }
            if (ModelState.IsValid)
            {
                string user;
                user = HttpContext.Request.Cookies["username"].Value.ToString();
                //pto.InsertPat(pat, PID, user);
                VisitDataOperation vr = new VisitDataOperation();
                mPatInfo p =new mPatInfo();
               p.Name=pat.Name;
                p.Sex=pat.Sex;
                p.Age=pat.Age;
                p.Phone=pat.Phone;
                p.Address = pat.Address;
                p.Education = pat.Education;
                p.Height = pat.Height;
                p.Weight = pat.Weight;
                p.Job = pat.Job;
                string pid=vr.InsertPat(p,user);
                return RedirectToAction("Index", "Diagnosis", new { ID = pid});
            }
            else
            {
                return View();
            }
        }
コード例 #8
0
        public bool InsertPat(PatBasicInfor pat, string PID, string User)
        {
            try
            {
                pat.Id = System.Guid.NewGuid().ToString().Replace("-", "");
                Lifestyle lstyle = new Lifestyle();
                lstyle.PatBasicInfor = pat;
                pat.Lifestyle        = lstyle;
                var           users = from s in context.DoctorAccountSet.ToList() select s;
                DoctorAccount user  = users.Where(s => s.UserName == User).FirstOrDefault();
                user.PatBasicInfor.Add(pat);

                context.SaveChanges();
                return(true);
            }
            catch (Exception e)
            {
                return(false);
            }
        }
コード例 #9
0
ファイル: PatOperation.cs プロジェクト: JaneBlue/Website
        public bool InsertPat(PatBasicInfor pat, string PID, string User)
        {
            try
            {
                pat.Id = System.Guid.NewGuid().ToString().Replace("-", "");
                Lifestyle lstyle = new Lifestyle();
                lstyle.PatBasicInfor=pat;
                pat.Lifestyle = lstyle;
                var users = from s in context.DoctorAccountSet.ToList() select s;
                DoctorAccount user = users.Where(s => s.UserName == User).FirstOrDefault();
                user.PatBasicInfor.Add(pat);

                context.SaveChanges();
                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
コード例 #10
0
        public tableData GetPatinfo(PatBasicInfor pat)
        {
            tableData rd = new tableData();

            rd.Name = pat.Name;
            rd.Sex  = pat.Sex;
            rd.Age  = pat.Age;
            //rd.ListID = Convert.ToString(i + 1);
            rd.PatBasicInforId = pat.Id;
            var record = from p in container.VisitRecordSet.ToList()
                         where (p.PatBasicInfor.Id == pat.Id)
                         select p;
            var num = record.Count();

            if (num != 0)
            {
                VisitRecord vt = record.First();
                rd.Date = vt.VisitDate.ToString("yyyy-MM-dd");
                if (vt.DiagnosisResult1 != null || vt.DiagnosisResult2 != null || vt.DiagnosisResult3 != null)
                {
                    if (vt.DiagnosisResult1.Contains("慢性每日头痛"))
                    {
                        var style = vt.DiagnosisResult1.Split(new Char[] { ':' });
                        if (style.Length > 1)
                        {
                            rd.HeadacheStyle = style[1];
                        }
                        else
                        {
                            rd.HeadacheStyle = vt.DiagnosisResult1 + vt.DiagnosisResult2 + vt.DiagnosisResult3;
                        }
                    }
                    else
                    {
                        rd.HeadacheStyle = vt.DiagnosisResult1 + vt.DiagnosisResult2 + vt.DiagnosisResult3;
                    }
                }
            }
            return(rd);
        }
コード例 #11
0
        public List <DiaryDataPoint> GetDiaryQualitativeData(string PatID, DateTime StartDate, DateTime EndDate, string Query)
        {
            List <DiaryDataPoint> Result = new List <DiaryDataPoint>();
            PatBasicInfor         pt     = context.PatBasicInforSet.Find(PatID);
            List <HeadacheDiary>  HDiary = new List <HeadacheDiary>();
            List <string>         Hdata  = new List <string>();

            foreach (HeadacheDiary vr in pt.HeadacheDiary)
            {
                TimeSpan ts1 = vr.RecordDate - StartDate;
                TimeSpan ts2 = EndDate - vr.RecordDate;
                if (ts1.Days >= 0 && ts2.Days >= 0)
                {
                    HDiary.Add(vr);
                }
            }
            if (Query == "头痛性质")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    Hdata.Add(hd.HeadacheType);
                }
            }
            if (Query == "头痛部位")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    foreach (HDheadacheplace ha in hd.HDheadacheplace)
                    {
                        Hdata.Add(ha.postion + ha.detailposition);
                    }
                }
            }
            if (Query == "伴随症状")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    foreach (HDAcompanion ha in hd.HDAcompanion)
                    {
                        Hdata.Add(ha.symptom);
                    }
                }
            }
            if (Query == "头痛先兆")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    foreach (HDHeadacheProdrome ha in hd.HDHeadacheProdrome)
                    {
                        Hdata.Add(ha.symptom);
                    }
                }
            }
            if (Query == "诱发因素")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    foreach (HDPrecipitatingFactor ha in hd.HDPrecipitatingFactor)
                    {
                        Hdata.Add(ha.factor);
                    }
                }
            }
            if (Query == "缓解因素")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    foreach (HDMitigatingFactors ha in hd.HDMitigatingFactors)
                    {
                        Hdata.Add(ha.factor);
                    }
                }
            }
            Result = Count(Hdata);
            return(Result);
        }
コード例 #12
0
        public ReportData ViewDetail(string PatID, string RecordID)
        {
            ReportData    rdata = new ReportData();
            PatBasicInfor pt    = context.PatBasicInforSet.Find(PatID);

            rdata.Name      = pt.Name;
            rdata.Age       = pt.Age;
            rdata.Sex       = pt.Sex;
            rdata.Address   = pt.Address;
            rdata.Education = pt.Education;
            rdata.Job       = pt.Job;
            rdata.Phone     = pt.Phone;
            rdata.Weight    = pt.Weight;
            rdata.Height    = pt.Height;
            if (pt.SimilarFamily != null)
            {
                if (pt.SimilarFamily == true)
                {
                    rdata.SimilarFamily = true;
                }
                else
                {
                    rdata.SimilarFamily = false;
                }
            }

            if (pt.Lifestyle != null)
            {
                rdata.patlifestyle.SmokeState = pt.Lifestyle.SmokeState;
                rdata.patlifestyle.SmokeYear  = pt.Lifestyle.SmokeYear;

                rdata.patlifestyle.DrinkState = pt.Lifestyle.DrinkState;

                rdata.patlifestyle.DrinkYear     = pt.Lifestyle.DrinkYear;
                rdata.patlifestyle.TeaPerDay     = pt.Lifestyle.TeaPerDay;
                rdata.patlifestyle.CoffePerDay   = pt.Lifestyle.CoffePerDay;
                rdata.patlifestyle.ExerciseOften = pt.Lifestyle.ExerciseOften;
            }

            //if (pt.SimilarFamily!=null)
            //{
            //    rdata.SimilarFamily = pt.SimilarFamily;
            //}
            foreach (HeadacheFamilyMember hfmember in pt.HeadacheFamilyMember)
            {
                rdata.Hfamilymember.Add(hfmember.Person);
            }
            foreach (OtherFamilyDisease ofdisease in pt.OtherFamilyDisease)
            {
                rdata.Ofamilydisease.Add(ofdisease.DiseaseName);
            }
            foreach (PreviousDrug pdrug in pt.PreviousDrug)
            {
                PDrug pd = new PDrug();
                ObjectMapper.CopyProperties(pdrug, pd);
                rdata.previousdrug.Add(pd);
            }
            foreach (PreviousExam pexam in pt.PreviousExam)
            {
                Exam exam = new Exam();
                ObjectMapper.CopyProperties(pexam, exam);
                rdata.previousexam.Add(exam);
            }
            if (RecordID != "")
            {
                var record = from p in context.VisitRecordSet.ToList()
                             where (p.PatBasicInfor.Id == PatID) && (p.Id == int.Parse(RecordID))
                             select p;
                VisitRecord vr = record.First();
                if (vr != null)
                {
                    rdata.VisitDate         = vr.VisitDate;
                    rdata.CDSSDiagnosis1    = vr.CDSSDiagnosis1;
                    rdata.CDSSDiagnosis2    = vr.CDSSDiagnosis2;
                    rdata.CDSSDiagnosis3    = vr.CDSSDiagnosis3;
                    rdata.DiagnosisResult1  = vr.DiagnosisResult1;
                    rdata.DiagnosisResult2  = vr.DiagnosisResult2;
                    rdata.DiagnosisResult3  = vr.DiagnosisResult3;
                    rdata.Prescription      = vr.Prescription;
                    rdata.ChiefComplaint    = vr.ChiefComplaint;
                    rdata.PreviousDiagnosis = vr.PreviousDiagnosis;
                    rdata.PrescriptionNote  = vr.PrescriptionNote;
                    foreach (SecondaryHeadacheSymptom ss in vr.SecondaryHeadacheSymptom)
                    {
                        rdata.secondaryheadachesymptom.Add(ss.Symptom);
                    }
                    foreach (MedicationAdvice madvice in vr.MedicationAdvice)
                    {
                        HMedicine hmedicine = new HMedicine();
                        hmedicine.DrugApplication = madvice.DrugApplication;
                        hmedicine.DrugCategory    = madvice.DrugCategory;
                        hmedicine.DrugName        = madvice.DrugName;
                        hmedicine.DrugDose        = madvice.DrugDose;
                        hmedicine.DrugDoseUnit    = madvice.DrugDoseUnit;
                        rdata.medicationadvice.Add(hmedicine);
                    }

                    if (vr.PrimaryHeadachaOverView != null)
                    {
                        rdata.headacheoverview.HeadacheType   = vr.PrimaryHeadachaOverView.HeadacheType;
                        rdata.headacheoverview.HeadacheDegree = vr.PrimaryHeadachaOverView.HeadacheDegree;
                        rdata.headacheoverview.HeadcheTime    = vr.PrimaryHeadachaOverView.HeadcheTime;
                        rdata.headacheoverview.HeacheTimeUnit = vr.PrimaryHeadachaOverView.HeacheTimeUnit;

                        rdata.headacheoverview.FrequencyPerMonth = vr.PrimaryHeadachaOverView.FrequencyPerMonth;
                        rdata.headacheoverview.OnsetFixedPeriod  = vr.PrimaryHeadachaOverView.OnsetFixedPeriod;

                        rdata.headacheoverview.OnsetDate          = vr.PrimaryHeadachaOverView.OnsetDate;
                        rdata.headacheoverview.OnsetAmount        = vr.PrimaryHeadachaOverView.OnsetAmount;
                        rdata.headacheoverview.DailyAggravation   = vr.PrimaryHeadachaOverView.DailyAggravation;
                        rdata.headacheoverview.FirstOnsetContinue = vr.PrimaryHeadachaOverView.FirstOnsetContinue;

                        foreach (HeadachePlace hp in vr.PrimaryHeadachaOverView.HeadachePlace)
                        {
                            string strPlace = hp.Position + hp.SpecificPlace;
                            rdata.headacheplace.Add(strPlace);
                        }
                        foreach (HeadacheProdrome hprodrome in vr.PrimaryHeadachaOverView.HeadacheProdrome)
                        {
                            rdata.headacheprodrome.Add(hprodrome.Prodrome);
                        }
                        foreach (MitigatingFactors mfactors in vr.PrimaryHeadachaOverView.MitigatingFactors)
                        {
                            rdata.mitigatingfactors.Add(mfactors.FactorName);
                        }
                        foreach (HeadacheAccompany haccompay in vr.PrimaryHeadachaOverView.HeadacheAccompany)
                        {
                            rdata.headacheaccompany.Add(haccompay.Symptom);
                        }
                        foreach (PrecipitatingFactor pfactor in vr.PrimaryHeadachaOverView.PrecipitatingFactor)
                        {
                            Factor f = new Factor();
                            f.FName   = pfactor.FactorName;
                            f.FDetail = pfactor.FactorDetail;
                            rdata.precipitatingfactor.Add(f);
                        }
                        foreach (PremonitorySymptom psymptom in vr.PrimaryHeadachaOverView.PremonitorySymptom)
                        {
                            rdata.premonitorsymptom.Add(psymptom.Symptom);
                        }
                    }

                    //add 2013/7/23
                    if (vr.GADQuestionaire != null)
                    {
                        ObjectMapper.CopyProperties(vr.GADQuestionaire, rdata.gdaquestionaire);
                    }
                    if (vr.PHQuestionaire != null)
                    {
                        ObjectMapper.CopyProperties(vr.PHQuestionaire, rdata.phquestionaire);
                    }
                    if (vr.SleepStatus != null)
                    {
                        ObjectMapper.CopyProperties(vr.SleepStatus, rdata.sleepconditon);
                    }
                    if (vr.DisabilityEvaluation != null)
                    {
                        ObjectMapper.CopyProperties(vr.DisabilityEvaluation, rdata.disablityevaluation);
                    }
                }
            }
            else
            {
                rdata.VisitDate = DateTime.Now.Date;
                rdata.headacheoverview.OnsetDate = DateTime.Now.Date;
            }
            return(rdata);
        }
コード例 #13
0
        //2014530
        public bool DeletePat(string PatID)
        {
            try
            {
                var patient = from p in context.PatBasicInforSet.ToList()
                              where (p.Id == PatID)
                              select p;
                PatBasicInfor      ptfor   = patient.First();
                VisitDataOperation visitop = new VisitDataOperation();
                //删除viewrecord

                if (ptfor.VisitRecord.Count != 0)
                {
                    var vr = from v in context.VisitRecordSet.ToList() where (v.PatBasicInforId == PatID) select v;
                    foreach (var r in vr)
                    {
                        //不能调用 VisitDataOperation的删除就诊记录方法,因为两次savechange 操作会让删除病人时报“存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。”错误

                        /* var recordId = r.Id.ToString();
                         * visitop.DeleteRecord(PatID, recordId);
                         */
                        if (r.PrimaryHeadachaOverView != null)
                        {
                            while (r.PrimaryHeadachaOverView.HeadachePlace.Count != 0)
                            {
                                context.HeadachePlaceSet.Remove(r.PrimaryHeadachaOverView.HeadachePlace.First());
                            }
                            while (r.PrimaryHeadachaOverView.HeadacheAccompany.Count != 0)
                            {
                                context.HeadacheAccompanySet.Remove(r.PrimaryHeadachaOverView.HeadacheAccompany.First());
                            }
                            while (r.PrimaryHeadachaOverView.HeadacheProdrome.Count != 0)
                            {
                                context.HeadacheProdromeSet.Remove(r.PrimaryHeadachaOverView.HeadacheProdrome.First());
                            }
                            while (r.PrimaryHeadachaOverView.PrecipitatingFactor.Count != 0)
                            {
                                context.PrecipitatingFactorSet.Remove(r.PrimaryHeadachaOverView.PrecipitatingFactor.First());
                            }
                            while (r.PrimaryHeadachaOverView.MitigatingFactors.Count != 0)
                            {
                                context.MitigatingFactorsSet.Remove(r.PrimaryHeadachaOverView.MitigatingFactors.First());
                            }
                            while (r.PrimaryHeadachaOverView.PremonitorySymptom.Count != 0)
                            {
                                context.PremonitorySymptom集.Remove(r.PrimaryHeadachaOverView.PremonitorySymptom.First());
                            }
                            context.PrimaryHeadacheOverViewSet.Remove(r.PrimaryHeadachaOverView);
                        }


                        while (r.MedicationAdvice.Count != 0)
                        {
                            context.MedicationAdviceSet.Remove(r.MedicationAdvice.FirstOrDefault());
                        }

                        while (r.SecondaryHeadacheSymptom.Count != 0)
                        {
                            context.SecondaryHeadacheSymptomSet.Remove(r.SecondaryHeadacheSymptom.FirstOrDefault());
                        }
                        //add 2013/7/23
                        if (r.GADQuestionaire != null)
                        {
                            context.GADQuestionaireSet.Remove(r.GADQuestionaire);
                        }
                        if (r.GADQuestionaire != null)
                        {
                            context.GADQuestionaireSet.Remove(r.GADQuestionaire);
                        }
                        if (r.PHQuestionaire != null)
                        {
                            context.PHQuestionaireSet.Remove(r.PHQuestionaire);
                        }
                        if (r.SleepStatus != null)
                        {
                            context.SleepStatusSet.Remove(r.SleepStatus);
                        }
                        if (r.DisabilityEvaluation != null)
                        {
                            context.DisabilityEvaluationSet.Remove(r.DisabilityEvaluation);
                        }
                        // visitrecord 内容删除
                        context.VisitRecordSet.Remove(r);
                    }
                }

                //头痛日志
                while (ptfor.HeadacheDiary.Count() != 0)
                {
                    context.HeadacheDiarySet.Remove(ptfor.HeadacheDiary.First());
                }
                //删除患有头痛家族成员

                while (ptfor.HeadacheFamilyMember.Count != 0)
                {
                    context.HeadacheFamilyMemberSet.Remove(ptfor.HeadacheFamilyMember.First());
                }
                while (ptfor.Lifestyle != null)
                {
                    context.LifestyleSet.Remove(ptfor.Lifestyle);//是不是一对一的删不了?
                    //context.Entry(ptfor.Lifestyle).State = System.Data.EntityState.Deleted;
                }
                while (ptfor.OtherFamilyDisease.Count != 0)
                {
                    context.OtherFamilyDiseaseSet.Remove(ptfor.OtherFamilyDisease.First());
                }
                while (ptfor.PreviousDrug.Count != 0)
                {
                    context.PreviousDrugSet.Remove(ptfor.PreviousDrug.First());
                }
                while (ptfor.PreviousExam.Count != 0)
                {
                    context.PreviousExamSet.Remove(ptfor.PreviousExam.First());
                }
                //医生推送建议表
                while (ptfor.DocSuggestionSet.Count != 0)
                {
                    context.DocSuggestionSet.Remove(ptfor.DocSuggestionSet.First());
                }
                context.PatBasicInforSet.Remove(ptfor);
                //context.Entry(ptfor).State = System.Data.EntityState.Deleted;
                context.SaveChanges();

                return(true);
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
                return(false);
            }
        }
コード例 #14
0
        public List <DiaryDataPoint> GetDiaryQualitativeData(string PatID, DateTime StartDate, DateTime EndDate, string Query)
        {
            List <DiaryDataPoint> Result = new List <DiaryDataPoint>();
            PatBasicInfor         pt     = context.PatBasicInforSet.Find(PatID);
            List <HeadacheDiary>  HDiary = new List <HeadacheDiary>();
            List <string>         Hdata  = new List <string>();

            foreach (HeadacheDiary Hr in pt.HeadacheDiary)
            {
                TimeSpan?ts1 = Hr.StartTime - StartDate;
                TimeSpan?ts2 = EndDate - Hr.StartTime;
                if (ts1 != null && ts2 != null)
                {
                    var ts1val = ts1.Value;
                    var ts2val = ts2.Value;
                    if (ts1val.Days >= 0 && ts2val.Days >= 0)
                    {
                        HDiary.Add(Hr);
                    }
                }
            }
            if (Query == "头痛性质")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    Hdata.Add(hd.Type.ToString());
                }
            }
            if (Query == "头痛部位")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    Hdata.Add(hd.Position.ToString());
                }
            }
            if (Query == "伴随症状")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    Hdata.Add(hd.Companion);
                }
            }
            if (Query == "头痛先兆")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    Hdata.Add(hd.Prodrome);
                }
            }
            if (Query == "诱发因素")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    Hdata.Add(hd.Precipiating);
                }
            }
            if (Query == "缓解因素")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    Hdata.Add(hd.Mitigating);
                }
            }
            if (Query == "眼眶周围")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    int?IfAroundEye = hd.IfAroundEye;
                    if (IfAroundEye != null)
                    {
                        var IfAroundEyeval = IfAroundEye.Value;
                        Hdata.Add(IfAroundEyeval.ToString());
                    }
                }
            }
            if (Query == "运动加剧")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    int?IfActivityAggravate = hd.IfActivityAggravate;
                    if (IfActivityAggravate != null)
                    {
                        var IfActivityAggravateval = IfActivityAggravate.Value;
                        Hdata.Add(IfActivityAggravateval.ToString());
                    }
                }
            }
            if (Query == "诊断结论")
            {
                foreach (HeadacheDiary hd in HDiary)
                {
                    int?AidDiagnosis = hd.AidDiagnosis;
                    if (AidDiagnosis != null)
                    {
                        var AidDiagnosisval = AidDiagnosis.Value;
                        Hdata.Add(AidDiagnosisval.ToString());
                    }
                }
            }
            Result = Count(Hdata);
            return(Result);
        }
コード例 #15
0
        public List <DiaryDateNum> GetDiaryNumericData(string PatID, DateTime StartDate, DateTime EndDate, string Query)
        {
            PatBasicInfor        pt     = context.PatBasicInforSet.Find(PatID);
            List <HeadacheDiary> HDiary = new List <HeadacheDiary>();
            List <DiaryDateNum>  dnum   = new List <DiaryDateNum>();

            List <int> NumericData = new List <int>();//头痛程度时长的数据存储

            foreach (HeadacheDiary vr in pt.HeadacheDiary)
            {
                TimeSpan?ts1 = vr.StartTime - StartDate;
                TimeSpan?ts2 = EndDate - vr.StartTime;
                if (ts1 != null && ts2 != null)
                {
                    var ts1val = ts1.Value;
                    var ts2val = ts2.Value;
                    if (ts1val.Days >= 0 && ts2val.Days >= 0)
                    {
                        HDiary.Add(vr);
                    }
                }
            }
            if (Query == "头痛程度")
            {
                foreach (HeadacheDiary diary in HDiary)
                {
                    DiaryDateNum ddn = new DiaryDateNum();
                    if (diary.StartTime != null)
                    {
                        var date = diary.StartTime.Value;
                        ddn.headacheDate = date.Date.ToString();
                    }
                    int?degree = diary.Degree;
                    if (degree != null)
                    {
                        var degreeval = degree.Value;
                        // NumericData.Add(degreeval);
                        ddn.headacheNum = degreeval;
                    }
                    dnum.Add(ddn);
                }
            }
            if (Query == "头痛时长")
            {
                foreach (HeadacheDiary diary in HDiary)
                {
                    DiaryDateNum ddn = new DiaryDateNum();
                    if (diary.StartTime != null)
                    {
                        var date = diary.StartTime.Value;
                        ddn.headacheDate = date.Date.ToString();
                    }
                    TimeSpan?lastingTime = diary.EndTime - diary.StartTime;
                    if (lastingTime != null)
                    {
                        TimeSpan newlastTime = lastingTime.Value;
                        var      tsD         = newlastTime.Days;
                        var      tsH         = newlastTime.Hours;
                        var      tsM         = newlastTime.Minutes;
                        double   tss         = tsH + tsD * 24 + tsM / 60.0;
                        //var nt = Math.Round(tss, 1);
                        //NumericData.Add(tsD);
                        //NumericData.Add(tsH);
                        //NumericData.Add(tsM);
                        ddn.headacheNum = tss;
                    }
                    dnum.Add(ddn);
                }
            }
            return(dnum);
        }
コード例 #16
0
        public bool UpdateRecord(string PatID, string VisitID, VisitData VData)
        {
            try
            {
                VisitData     vdata = DataPreprocess(VData);
                PatBasicInfor pt    = context.PatBasicInforSet.Find(PatID);
                pt.HeadacheFamilyMember = vdata.HFamilyMember;//个人信息相关保存
                pt.OtherFamilyDisease   = vdata.OFamilyDisease;
                ObjectMapper.CopyProperties(vdata.lifestyle, pt.Lifestyle);
                pt.PreviousDrug = vdata.PDrug;//需要看一下,这里的Pdrug有没有数据
                foreach (PreviousDrug pg in pt.PreviousDrug)
                {
                    pg.PatBasicInforId = PatID;
                }
                pt.PreviousExam = vdata.PExam;
                if (vdata.Similarfamily == "有")
                {
                    pt.SimilarFamily = true;
                }
                else
                {
                    pt.SimilarFamily = false;
                }
                if (vdata.visitrecord != null)
                {
                    IEnumerable <VisitRecord> record = from p in context.VisitRecordSet.ToList()
                                                       where (p.PatBasicInfor.Id == PatID) && (p.Id == int.Parse(VisitID))
                                                       select p;
                    VisitRecord vr = record.First();

                    ObjectMapper.CopyProperties(vdata.visitrecord, vr);
                    ObjectMapper.CopyProperties(vdata.PHeadacheOverview, vr.PrimaryHeadachaOverView);

                    ObjectMapper.CopyProperties(vdata.GADquestionaire, vr.GADQuestionaire);
                    ObjectMapper.CopyProperties(vdata.PHquestionaire, vr.PHQuestionaire);
                    ObjectMapper.CopyProperties(vdata.Disabilityevaluation, vr.DisabilityEvaluation);
                    ObjectMapper.CopyProperties(vdata.Sleepstatus, vr.SleepStatus);
                    vr.PrimaryHeadachaOverView.VisitRecord = vr;
                    vr.GADQuestionaire.VisitRecord         = vr;
                    vr.PHQuestionaire.VisitRecord          = vr;
                    vr.DisabilityEvaluation.VisitRecord    = vr;
                    vr.SleepStatus.VisitRecord             = vr;


                    vr.PatBasicInforId = PatID;
                    vr.VisitDate       = System.DateTime.Now;
                    //vr.VisitDate = DateTime.Now.Date;
                    //System.DateTime.Now.ToString("G");
                    context.Entry(vr).State = System.Data.EntityState.Modified;
                }
                context.SaveChanges();
                return(true);
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
                return(false);
            }
            //catch (Exception e)
            //{
            //    return false;
            //}
        }