Exemple #1
0
        private void button4_Click(object sender, EventArgs e)//Открыть файл
        {
            string adres    = "q";
            string adres2   = "q";
            string datapath = "w";

            int da5 = 0;

            StringBuilder       buffer2 = new StringBuilder();
            FolderBrowserDialog fbd     = new FolderBrowserDialog();
            OpenFileDialog      qqq     = new OpenFileDialog();

            qqq.Filter = "Файлы txt|*.txt";

            if (qqq.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                adres = qqq.FileName;
                buffer2.Insert(0, qqq.FileName);

                da5 = buffer2.Length;
                buffer2.Remove(da5 - 8, 8);
                adres2   = buffer2.ToString();
                datapath = Path.Combine(Application.StartupPath);

                System.IO.File.Copy(Path.Combine(qqq.InitialDirectory, qqq.FileName), Path.Combine(datapath, "test.txt"), true);
                try
                {
                    System.IO.File.Copy(adres2 + "Информация о пациенте.txt", Path.Combine(datapath, "Информация о пациенте.txt"), true);
                }
                catch
                {    }
            }

            ///////////////////////////////////////////////////////////

            int reg = Convert.ToInt32(this.textBox1.Text);
            int ekg = 1;

            try
            {
                Initial_data init_data = new Initial_data("test.txt", reg, ekg);
                init_data.Shift_Row1_To_Time_0(); //Сдвигаем время к 0
                init_data.Smoothe_Row1();         // Сглаживаем полученные данные
                init_data.Write_In_File_Row1("test3.txt");

                usergraph = new UseZedgraph(zedGraph1);
                usergraph.ClearAll();                                                              //Очищаем полотно
                usergraph.MakeGraph_4_Canal(init_data.Get_Row1(), init_data.Get_Number_Strings()); //Строим график
                usergraph.Install_Pane("t, мc", "R, Ом", "Каналы");                                //Устанавливаем оси и загавие
                usergraph.ResetGraph();                                                            //Обновляем
            }
            catch (Exception ex)
            {
                MessageBox.Show("Выбран неправильный файл");
            }
        }
Exemple #2
0
        private void button6_Click(object sender, EventArgs e)//Обновить данные
        {
            Clear_list_zed();

            int reg = System.Convert.ToInt32(this.textBox1.Text);
            int ekg = 1;

            try
            {
                Initial_data init_data = new Initial_data("test3.txt", reg, ekg);

                usergraph = new UseZedgraph(zedGraph1);
                usergraph.ClearAll();                                                              //Очищаем полотно
                usergraph.MakeGraph_4_Canal(init_data.Get_Row1(), init_data.Get_Number_Strings()); //Строим график
                usergraph.Install_Pane("t, мc", "R, Ом", "Каналы");                                //Устанавливаем оси и загавие
                usergraph.ResetGraph();                                                            //Обновляем
            }
            catch (Exception ex)
            {
                MessageBox.Show("Выбран неправильный файл");
            }
        }
Exemple #3
0
        }//Очистить график - функция

        public void Maker_graph_one_period()
        {
            richTextBox2.Clear();

            int reg = System.Convert.ToInt32(this.textBox1.Text);
            int ekg = 1;

            int B2 = System.Convert.ToInt32(textBox4.Text);
            int B3 = System.Convert.ToInt32(textBox6.Text);
            int B4 = System.Convert.ToInt32(textBox8.Text);

            Initial_data init_data = new Initial_data("Исправляемый цикл.txt", reg, ekg);

            long[,] row = init_data.Get_Row1();

            usergraph = new UseZedgraph(zedGraph1, init_data);
            usergraph.ClearAll();//Очищаем полотно
            usergraph.MakeGraph_On_Canal_Only_One_Graph();

            usergraph.MakeGraph_Special_Point_Without_EKG_One_Period(row, B2, B3, B4);
            usergraph.ResetGraph();
            usergraph.Install_Pane("t, мc", "R, Ом", " "); //Устанавливаем оси и заглавие
            usergraph.ResetGraph();                        //Обновляем

            for (int q = 1; q < init_data.Get_Number_Strings(); q++)
            {
                richTextBox2.AppendText(System.Convert.ToString(q) + "\t" + System.Convert.ToString(row[q, 1]) + "\n");
            }

            StreamWriter rw2 = new StreamWriter("Исправляемый цикл - точки.txt");

            rw2.WriteLine(row[B2, 0] + "\t" + row[B2, 1]);
            rw2.WriteLine(row[B3, 0] + "\t" + row[B3, 1]);
            rw2.WriteLine(row[B4, 0] + "\t" + row[B4, 1]);

            rw2.Close();
        }
Exemple #4
0
        private void button11_Click(object sender, EventArgs e)//Редактировать особые точки
        {
            button12.Enabled = true;
            button13.Enabled = true;
            button14.Enabled = true;
            button15.Enabled = true;
            button16.Enabled = true;
            button17.Enabled = true;

            nomer_period = System.Convert.ToInt32(textBox2.Text);
            Boolean povtor = false;

            richTextBox2.Clear();

            int reg = System.Convert.ToInt32(this.textBox1.Text);
            int ekg = 1;

            Initial_data init_data = new Initial_data("test3.txt", reg, ekg);

            init_data.Shift_Row1_To_Time_0(); //Сдвигаем время к 0
            init_data.Smoothe_Row1();         // Сглаживаем полученные данные
            init_data.Calculate_Derivative_Row2();
            init_data.Average_Canal_REG_Row3();
            init_data.Smoothing_Ekg_Row4();

            long[,] row_1 = init_data.Get_Row1();
            int b = init_data.Get_Number_Strings();

            Initial_processing.Divided_by_periods_data divided_row = new Initial_processing.Divided_by_periods_data(init_data, this.comboBox2.Text);
            Special_point osob_point = new Special_point(divided_row, init_data);

            long[,] osob = null;
            osob_point.Calculate_Special_Point(this.comboBox2.Text);
            osob = osob_point.Get_Special_Point();

            int arre = osob.Length;
            int ew   = arre / 15;//счетчик найденных максимумов

            /////////////////////////
            /////////////////////////
            // новое
            //ЭКГ мах -     0
            //ЭКГ мах -х -  1
            // В1, В5 -     2
            // В1x, В5x -   3
            // В2 -         4
            // В2x -        5
            // В3 -         6
            // В3x -        7
            // В4 -         8
            // В4x -        9
            //osob_10  -    Изначальная высота

            ////////////////////////

            long[,] osob_x = new long[5, ew];// список особых точек для вывода на график
            long[,] osob_y = new long[5, ew];

            for (int i = 0; i < ew - 1; i++)
            {
                osob_x[0, i] = osob[1, i];
                osob_y[0, i] = osob[0, i];

                osob_x[1, i] = osob[3, i];
                osob_y[1, i] = osob[2, i];

                osob_x[2, i] = osob[5, i];
                osob_y[2, i] = osob[4, i] + osob[10, i];

                osob_x[3, i] = osob[7, i];
                osob_y[3, i] = osob[6, i] + osob[10, i];

                osob_x[4, i] = osob[9, i];
                osob_y[4, i] = osob[8, i] + osob[10, i];
            }

            // Файлы для редактирования
            StreamWriter rw  = new StreamWriter("Исправляемый цикл.txt");
            StreamWriter rw2 = new StreamWriter("Исправляемый цикл - точки.txt");

            GraphPane pane = zedGraph1.GraphPane;

            pane.CurveList.Clear();

            // Создадим список точек для кривой f2(x)
            PointPairList f2_list  = new PointPairList();
            PointPairList f4_list  = new PointPairList();
            int           scah_max = 1;
            int           B2       = 0;
            int           B3       = 0;
            int           B4       = 0;

            for (int q = 3; q < b; q++)// считаем производную
            {
                if (row_1[q, 0] >= osob_x[1, nomer_period] && row_1[q, 0] < osob_x[1, nomer_period + 1])
                {
                    f2_list.Add(row_1[q, 0] / 1000, 570);
                    f4_list.Add(row_1[q, 0] / 1000, row_1[q, reg]);
                    rw.WriteLine(row_1[q, 0] + "\t" + row_1[q, reg]);
                    richTextBox2.AppendText(System.Convert.ToString(scah_max) + "\t" + System.Convert.ToString(row_1[q, reg]) + "\n");

                    if (osob_x[2, nomer_period] > row_1[q, 0])
                    {
                        B2 = scah_max;
                    }
                    if (osob_x[3, nomer_period] > row_1[q, 0])
                    {
                        B3 = scah_max;
                    }
                    if (osob_x[4, nomer_period] > row_1[q, 0])
                    {
                        B4 = scah_max;
                    }

                    scah_max++;
                    povtor = true;
                } //rw.WriteLine(row1[q, 0] + "\t" + row1[q, reg]);
            }
            // Заполним массив точек для кривой f1-3(x)
            textBox5.Text = System.Convert.ToString(scah_max);
            textBox7.Text = System.Convert.ToString(scah_max);
            textBox9.Text = System.Convert.ToString(scah_max);

            textBox4.Text = System.Convert.ToString(B2);
            textBox6.Text = System.Convert.ToString(B3);
            textBox8.Text = System.Convert.ToString(B4);

            usergraph = new UseZedgraph(zedGraph1, init_data);
            usergraph.ClearAll();//Очищаем полотно
            usergraph.MakeGraph_On_Chosen_Canal_Only_One_Graph(reg, osob_x[1, nomer_period], osob_x[1, nomer_period + 1]);

            if (povtor == true)
            {
                usergraph.MakeGraph_Special_Point_Without_EKG_One_Period(osob_x, osob_y, B2, B3, B4, nomer_period);
                usergraph.ResetGraph();
                usergraph.Install_Pane("t, мc", "R, Ом", " "); //Устанавливаем оси и заглавие
                usergraph.ResetGraph();                        //Обновляем
            }

            rw.Close();
            rw2.Close();
        }
Exemple #5
0
        private void button5_Click(object sender, EventArgs e)//Рассчитать особые точки
        {
            StringBuilder buffer = new StringBuilder();

            richTextBox2.Clear();

            int reg = System.Convert.ToInt32(this.textBox1.Text);
            int ekg = 1;

            Initial_data init_data = new Initial_data("test3.txt", reg, ekg);

            init_data.Shift_Row1_To_Time_0(); //Сдвигаем время к 0
            init_data.Smoothe_Row1();         // Сглаживаем полученные данные
            init_data.Calculate_Derivative_Row2();
            init_data.Average_Canal_REG_Row3();
            init_data.Smoothing_Ekg_Row4();

            usergraph = new UseZedgraph(zedGraph1, init_data);
            usergraph.ClearAll();//Очищаем полотно
            usergraph.MakeGraph_On_Chosen_Canal();

            //Разделяем
            Initial_processing.Divided_by_periods_data divided_row = new Initial_processing.Divided_by_periods_data(init_data, this.comboBox2.Text);
            divided_row.Calculate_Data_In_Period();

            Special_point osob_point = new Special_point(divided_row, init_data);

            long[,] osob = null;

            osob_point.Calculate_Special_Point(this.comboBox2.Text);
            osob = osob_point.Get_Special_Point();

            int arre = osob.Length;
            int ew   = arre / 15;//счетчик найденных максимумов

            /////////////////////////
            /////////////////////////
            // новое
            //ЭКГ мах -     0
            //ЭКГ мах -х -  1
            // В1, В5 -     2
            // В1x, В5x -   3
            // В2 -         4
            // В2x -        5
            // В3 -         6
            // В3x -        7
            // В4 -         8
            // В4x -        9
            //osob_10  -    Изначальная высота

            ////////////////////////

            long[,] osob_x = new long[5, ew];// список особых точек для вывода на график
            long[,] osob_y = new long[5, ew];

            for (int i = 0; i < ew - 1; i++)
            {
                osob_x[0, i] = osob[1, i];
                osob_y[0, i] = osob[0, i];

                osob_x[1, i] = osob[3, i];
                osob_y[1, i] = osob[2, i];

                osob_x[2, i] = osob[5, i];
                osob_y[2, i] = osob[4, i] + osob[10, i];

                osob_x[3, i] = osob[7, i];
                osob_y[3, i] = osob[6, i] + osob[10, i];

                osob_x[4, i] = osob[9, i];
                osob_y[4, i] = osob[8, i] + osob[10, i];
            }

            textBox3.Text = Convert.ToString(ew - 4);
            usergraph.MakeGraph_Special_Point(osob_x, osob_y, ew);
            usergraph.Install_Pane("t, мc", "R, Ом", " "); //Устанавливаем оси и заглавие
            usergraph.ResetGraph();                        //Обновляем
            StreamReader scetch = new StreamReader("счетчик.txt");
            String       ssssq  = scetch.ReadLine();

            textBox10.Text = ssssq;
            scet_period    = System.Convert.ToInt32(ssssq);
            scetch.Close();
        }