Ejemplo n.º 1
0
        private async Task SearchDiagnoses(string value, bool isCode = false) //эксперементальная функция горячего поиска, нужно прерывание и задержка
        {
            if (value.Length > (isCode ? 1 : 2))
            {
                if (CurrentDiagnosis == null)
                {
                    IsLoadingDiagnosis = true;
                    try
                    {
                        var result = await _therapyDataService.GetDiagnoses(value, isCode);

                        Diagnoses.Clear();
                        foreach (Diagnosis diagnosis in result)
                        {
                            Diagnoses.Add(diagnosis);
                            //if (diagnosis.Title == value) CurrentDiagnosis = diagnosis;
                        }
                    }
                    catch (Exception ex)
                    {
                        NotificationManager.AddItem(new NotificationItem(NotificationType.Error, TimeSpan.FromSeconds(3), ex.Message, true));
                    }
                    IsLoadingDiagnosis = false;
                }
            }
            else
            {
                CurrentDiagnosisGroup = null;
                CurrentDiagnosis      = null;
            }
        }
Ejemplo n.º 2
0
        private void SetDiagnoses()
        {
            var d = new Diagnosis
            {
                Id          = 1,
                Name        = "Грипп",
                Description = "Острое инфекционное заболевание дыхательных путей, " +
                              "вызываемое вирусом гриппа. Входит в группу острых респираторных" +
                              " вирусных инфекций (ОРВИ). Периодически распространяется в виде эпидемий."
            };

            Diagnoses.Add(d);

            d = new Diagnosis
            {
                Id          = 2,
                Name        = "Просту́да",
                Description = "Острая респираторная инфекция общей (невыясненной) этиологии" +
                              " с воспалением верхних дыхательных путей, затрагивающая преимущественно нос." +
                              " В воспаление могут быть также вовлечены горло, гортань и пазухи." +
                              " Термин используется наряду с фарингитом, ларингитом, трахеитом и другими."
            };
            Diagnoses.Add(d);

            d = new Diagnosis
            {
                Id          = 3,
                Name        = "Диаре́я",
                Description = "Патологическое состояние, при котором у больного наблюдается учащённая" +
                              " (более 3 раз в сутки) дефекация, при этом стул становится водянистым," +
                              " имеет объём более 200 мл и часто сопровождается болевыми ощущениями в области живота," +
                              " экстренными позывами и анальным недержанием"
            };
            Diagnoses.Add(d);
        }
Ejemplo n.º 3
0
 public void AddDiagnosis(Diagnosis diagnosis)
 {
     if (diagnosis != null && diagnosis.TheDiagnosis != null && diagnosis.TheDiagnosis.Count != 0)
     {
         Diagnoses.Add(diagnosis);
         if (diagnosis.Probability == 0)
         {
             diagnosis.CalcAndSetProb();
         }
         SetProbability += diagnosis.Probability;
     }
 }
Ejemplo n.º 4
0
 public void AddDiagnosis(Diagnosis diagnosis)
 {
     if (diagnosis != null && diagnosis.Comps != null && diagnosis.Comps.Count != 0 && !Diagnoses.Contains(diagnosis))
     {
         Diagnoses.Add(diagnosis);
         if (diagnosis.Probability == 0)
         {
             diagnosis.CalcAndSetProb();
         }
         SetProbability += diagnosis.Probability;
         foreach (Comp c in diagnosis.Comps)
         {
             if (!Components.Contains(c))
             {
                 Components.Add(c);
             }
         }
     }
 }
Ejemplo n.º 5
0
        private async Task GetDiagnoses(DiagnosisGroup diagnosisGroup)
        {
            IsLoadingDiagnosis = true;
            try
            {
                Diagnoses.Clear();
                var res = await _therapyDataService.GetDiagnoses(diagnosisGroup);

                foreach (Diagnosis diagnosis in res)
                {
                    Diagnoses.Add(diagnosis);
                }
            }
            catch (Exception ex)
            {
                NotificationManager.AddException(ex, 4);
            }
            IsLoadingDiagnosis = false;
        }
Ejemplo n.º 6
0
 public CardViewModel(DataSet data, uint id)
 {
     Id        = id;
     PacientId = (uint)data.Tables[0].Rows[0]["id"];
     Name1     = (string)data.Tables[0].Rows[0]["name1"];
     Name2     = (string)data.Tables[0].Rows[0]["name2"];
     Name3     = (string)data.Tables[0].Rows[0]["name3"];
     for (int i = 0; i < data.Tables[1].Rows.Count; i++)
     {
         Allergies.Add(new Allergy(data.Tables[1].Rows[i]));
     }
     for (int i = 0; i < data.Tables[2].Rows.Count; i++)
     {
         Vaccinations.Add(new Vaccination(data.Tables[2].Rows[i]));
     }
     for (int i = 0; i < data.Tables[3].Rows.Count; i++)
     {
         Examinations.Add(new Examination(data.Tables[3].Rows[i]));
     }
     for (int i = 0; i < data.Tables[4].Rows.Count; i++)
     {
         Diagnoses.Add(new Diagnose(data.Tables[4].Rows[i]));
     }
 }
        //============================================================
        //	PUBLIC METHODS
        //============================================================

        #region Load(XPathNavigator source, XmlNamespaceManager manager)

        /// <summary>
        /// Initializes the syndication extension context using the supplied <see cref="XPathNavigator"/>.
        /// </summary>
        /// <param name="source">The <b>XPathNavigator</b> used to load this <see cref="SDataExtensionContext"/>.</param>
        /// <param name="manager">The <see cref="XmlNamespaceManager"/> object used to resolve prefixed syndication extension elements and attributes.</param>
        /// <returns><b>true</b> if the <see cref="SDataExtensionContext"/> was able to be initialized using the supplied <paramref name="source"/>; otherwise <b>false</b>.</returns>
        /// <exception cref="ArgumentNullException">The <paramref name="source"/> is a null reference (Nothing in Visual Basic).</exception>
        /// <exception cref="ArgumentNullException">The <paramref name="manager"/> is a null reference (Nothing in Visual Basic).</exception>
        public bool Load(XPathNavigator source, XmlNamespaceManager manager)
        {
            //------------------------------------------------------------
            //	Local members
            //------------------------------------------------------------
            var wasLoaded = false;

            //------------------------------------------------------------
            //	Validate parameter
            //------------------------------------------------------------
            Guard.ArgumentNotNull(source, "source");
            Guard.ArgumentNotNull(manager, "manager");

            //------------------------------------------------------------
            //	Attempt to extract syndication extension information
            //------------------------------------------------------------
            if (source.HasChildren)
            {
                var payloadNavigator = source.SelectSingleNode("sdata:payload/*", manager);
                if (payloadNavigator != null)
                {
                    var payload = new SDataPayload();
                    if (payload.Load(payloadNavigator, manager))
                    {
                        Payload   = payload;
                        wasLoaded = true;
                    }
                }

                var diagnosesNavigator = source.Select("sdata:diagnoses/sdata:diagnosis", manager);
                foreach (XPathNavigator item in diagnosesNavigator)
                {
                    var diagnosis = new Diagnosis();
                    if (diagnosis.Load(item, manager))
                    {
                        Diagnoses.Add(diagnosis);
                        wasLoaded = true;
                    }
                }

                var diagnosisNavigator = source.Select("sdata:diagnosis", manager);
                foreach (XPathNavigator item in diagnosisNavigator)
                {
                    var diagnosis = new Diagnosis();
                    if (diagnosis.Load(item, manager))
                    {
                        Diagnoses.Add(diagnosis);
                        wasLoaded = true;
                    }
                }

                var schemaNavigator = source.SelectSingleNode("sdata:schema", manager);
                if (schemaNavigator != null && !string.IsNullOrEmpty(schemaNavigator.InnerXml))
                {
                    schemaNavigator.MoveToFirstChild();

                    using (var reader = schemaNavigator.ReadSubtree())
                    {
                        reader.Read();
                        Schema = SDataSchema.Read(reader);
                    }

                    wasLoaded = true;
                }
            }

            return(wasLoaded);
        }
Ejemplo n.º 8
0
        public void AcceptServiceTemplate()
        {
            if (ServiceTemplate != null)
            {
                string teethText         = null;
                string milkbyteTeethText = null;

                if (Teeth != Enums.Teeth.None)
                {
                    List <string> list = new List <string>();
                    foreach (Teeth tooth in Enum.GetValues(typeof(Teeth)))
                    {
                        if (tooth == Enums.Teeth.None)
                        {
                            continue;
                        }
                        if (Teeth.HasFlag(tooth))
                        {
                            list.Add(CaptionHelper.GetDisplayText(tooth));
                        }
                    }

                    teethText = string.Join(", ", list);
                }
                if (MilkByteTeeth != Enums.MilkByteTeeth.None)
                {
                    List <string> list = new List <string>();
                    foreach (MilkByteTeeth tooth in Enum.GetValues(typeof(MilkByteTeeth)))
                    {
                        if (tooth == Enums.MilkByteTeeth.None)
                        {
                            continue;
                        }
                        if (MilkByteTeeth.HasFlag(tooth))
                        {
                            list.Add(CaptionHelper.GetDisplayText(tooth));
                        }
                    }

                    milkbyteTeethText = string.Join(", ", list);
                }

                string replacement = !string.IsNullOrEmpty(teethText) && !string.IsNullOrEmpty(milkbyteTeethText) ?
                                     string.Concat(teethText, ", ", milkbyteTeethText) :
                                     string.Concat(teethText, milkbyteTeethText);

                CommonProtocol.Anamnez         = (serviceTemplate.Anamnez ?? string.Empty).Replace("{replacement}", replacement);
                CommonProtocol.Complain        = (serviceTemplate.Complain ?? string.Empty).Replace("{replacement}", replacement);
                CommonProtocol.ObjectiveStatus = (serviceTemplate.ObjectiveStatus ?? string.Empty).Replace("{replacement}", replacement);
                CommonProtocol.Recommendation  = (serviceTemplate.Recommendations ?? string.Empty).Replace("{replacement}", replacement);
                Usluga = serviceTemplate.Service;
                Diagnoses.Add(new MKBWithType(Session)
                {
                    Diagnose = serviceTemplate.Diagnose
                });

                OnChanged("CommonProtocol");
                OnChanged("Usluga");
                OnChanged("Diagnoses");

                CommonProtocol.Save();
            }
        }
Ejemplo n.º 9
0
        internal protected async Task Initialize(Entry entry)
        {
            _currentEntry = entry;
            MedCard       = entry.MedCard;
            try
            {
                IsLoadingDiagnosis = true;
                var diagnosisClasses = await new GenericRepository <DiagnosisClass>(_contextFactory).GetAll();
                DiagnosisClasses.Clear();
                foreach (DiagnosisClass diagnosisClass in diagnosisClasses)
                {
                    DiagnosisClasses.Add(diagnosisClass);
                }
                IsLoadingDiagnosis = false;

                IsLoadingPharma = true;
                var drugsClasses = await new GenericRepository <DrugClass>(_contextFactory).GetAll();
                DrugClasses.Clear();
                foreach (DrugClass drugClass in drugsClasses)
                {
                    DrugClasses.Add(drugClass);
                }
                var pharmacoDatas = await _therapyDataService.GetPharmacoTherapyDatas(entry.MedCard.Id);

                PharmacoTherapyDatas.Clear();
                foreach (PharmacoTherapyData pharmacoTherapyData in pharmacoDatas)
                {
                    PharmacoTherapyDatas.Add(pharmacoTherapyData);
                }
                IsLoadingPharma = false;

                IsLoadingPhysio = true;
                var physioDatas = await _therapyDataService.GetPhysioTherapyDatas(entry.MedCard.Id);

                PhysioTherapyDatas.Clear();
                foreach (PhysioTherapyData physioTherapyData in physioDatas)
                {
                    PhysioTherapyDatas.Add(physioTherapyData);
                }
                var physioGroups = await new GenericRepository <PhysTherFactGroup>(_contextFactory).GetAll();
                PhysTherFactGroups.Clear();
                foreach (PhysTherFactGroup physTherFactGroup in physioGroups)
                {
                    PhysTherFactGroups.Add(physTherFactGroup);
                }
                IsLoadingPhysio = false;

                IsLoadingSurgery = true;
                var surgeryDatas = await _therapyDataService.GetSurgeryTherapyDatas(entry.MedCard.Id);

                SurgeryTherapyDatas.Clear();
                foreach (SurgeryTherapyData surgeryData in surgeryDatas)
                {
                    SurgeryTherapyDatas.Add(surgeryData);
                }
                CurrentSurgeryType = SurgeryType.Оперативная;
                IsLoadingSurgery   = false;
            }
            catch (Exception ex)
            {
                NotificationManager.AddException(ex, 4);
            }

            PharmacoData.MedCard       = entry.MedCard;
            PharmacoData.TherapyDoctor = entry.DoctorDestination;
            PhysioData.MedCard         = entry.MedCard;
            PhysioData.TherapyDoctor   = entry.DoctorDestination;
            PhysioData.ProcedureStatus = ProcedureStatus.едакция;

            SurgeryData.MedCard         = entry.MedCard;
            SurgeryData.TherapyDoctor   = entry.DoctorDestination;
            SurgeryData.ProcedureStatus = ProcedureStatus.едакция;

            Diagnoses.Add(entry.MedCard?.Diagnosis);
            CurrentDiagnosis = entry.MedCard?.Diagnosis;

            RaiseDataPropertyChanged();
        }