Sfoglia il codice sorgente

- FileIO werkt vanaf starttraining op patient
- Patient toevoegen werkt, Je moet opnieuw opstarten om aangemaakte user te gebruiken
- Paar bugs in archive fixed ( dubbele sessies in grafieken, Geen sessie geselecteerd, alleen patienten in de userBox )

Richard Danen 10 anni fa
parent
commit
0fbda4a1a3

+ 19 - 9
Proftaak Remote Healthcare/FietsClientV2/Forms/DoctorForm.Designer.cs

@@ -35,14 +35,15 @@
             this.PatientBox = new System.Windows.Forms.ToolStripComboBox();
             this.sessionsBox = new System.Windows.Forms.ToolStripComboBox();
             this.selectSessionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.logoutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.chatBox = new System.Windows.Forms.TextBox();
             this.messageBox = new System.Windows.Forms.TextBox();
             this.chatArea = new System.Windows.Forms.GroupBox();
             this.messageButton = new System.Windows.Forms.Button();
             this.doctorTabControl = new System.Windows.Forms.TabControl();
             this.tabPageSummary = new System.Windows.Forms.TabPage();
+            this.newPatientToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.doctorSummaryUC1 = new FietsClient.Forms.DoctorSummaryUC();
-            this.logoutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.menuStrip1.SuspendLayout();
             this.chatArea.SuspendLayout();
             this.doctorTabControl.SuspendLayout();
@@ -54,6 +55,7 @@
             this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
             this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.archiefToolStripMenuItem,
+            this.newPatientToolStripMenuItem,
             this.logoutToolStripMenuItem});
             this.menuStrip1.Location = new System.Drawing.Point(0, 0);
             this.menuStrip1.Name = "menuStrip1";
@@ -97,6 +99,13 @@
             this.selectSessionToolStripMenuItem.Text = "Select session";
             this.selectSessionToolStripMenuItem.Click += new System.EventHandler(this.selectSessionToolStripMenuItem_Click);
             // 
+            // logoutToolStripMenuItem
+            // 
+            this.logoutToolStripMenuItem.Name = "logoutToolStripMenuItem";
+            this.logoutToolStripMenuItem.Size = new System.Drawing.Size(57, 20);
+            this.logoutToolStripMenuItem.Text = "Logout";
+            this.logoutToolStripMenuItem.Click += new System.EventHandler(this.logoutToolStripMenuItem_Click);
+            // 
             // chatBox
             // 
             this.chatBox.Location = new System.Drawing.Point(0, 13);
@@ -155,22 +164,22 @@
             this.tabPageSummary.TabIndex = 0;
             this.tabPageSummary.Text = "Summary";
             // 
+            // newPatientToolStripMenuItem
+            // 
+            this.newPatientToolStripMenuItem.Name = "newPatientToolStripMenuItem";
+            this.newPatientToolStripMenuItem.Size = new System.Drawing.Size(83, 20);
+            this.newPatientToolStripMenuItem.Text = "New Patient";
+            this.newPatientToolStripMenuItem.Click += new System.EventHandler(this.nieuwePatientToolStripMenuItem_Click);
+            // 
             // doctorSummaryUC1
             // 
             this.doctorSummaryUC1.BackColor = System.Drawing.SystemColors.Control;
             this.doctorSummaryUC1.Location = new System.Drawing.Point(0, 0);
-            this.doctorSummaryUC1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.doctorSummaryUC1.Margin = new System.Windows.Forms.Padding(4);
             this.doctorSummaryUC1.Name = "doctorSummaryUC1";
             this.doctorSummaryUC1.Size = new System.Drawing.Size(822, 640);
             this.doctorSummaryUC1.TabIndex = 0;
             // 
-            // logoutToolStripMenuItem
-            // 
-            this.logoutToolStripMenuItem.Name = "logoutToolStripMenuItem";
-            this.logoutToolStripMenuItem.Size = new System.Drawing.Size(57, 20);
-            this.logoutToolStripMenuItem.Text = "Logout";
-            this.logoutToolStripMenuItem.Click += new System.EventHandler(this.logoutToolStripMenuItem_Click);
-            // 
             // DoctorForm
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -215,6 +224,7 @@
         private System.Windows.Forms.ToolStripMenuItem selectSessionToolStripMenuItem;
         private System.Windows.Forms.ToolStripMenuItem loadUsersToolStripMenuItem;
         private System.Windows.Forms.ToolStripMenuItem logoutToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem newPatientToolStripMenuItem;
     }
 }
 

+ 73 - 62
Proftaak Remote Healthcare/FietsClientV2/Forms/DoctorForm.cs

@@ -131,89 +131,100 @@ namespace FietsClient
         private List<DataPoint> rpmPoints = new List<DataPoint>();
         private void selectSessionToolStripMenuItem_Click(object sender, EventArgs e)
         {
+            //Reset the point lists
+            speedPoints.Clear();
+            bpmPoints.Clear();
+            rpmPoints.Clear();
+
             //get measurments
             List<Measurement> measurments = new List<Measurement>();
-            User user = null;
-            foreach (User userx in users)
+            User user = users.First(item => item.id == PatientBox.Text);
+            List<Session> sessions = user.GetSessions();
+
+            if (sessionsBox.SelectedItem == null)
+            {
+                MessageBox.Show("Please select a session");
+            }
+            else
             {
-                user = userx;
-                if (PatientBox.Text == user.id)
+
+                foreach (Session session in sessions)
                 {
-                    List<Session> sessions = user.GetSessions();
-                    foreach (Session session in sessions)
+                    if (sessionsBox.Text == session.id.ToString())
                     {
-                        if (sessionsBox.Text == session.date.ToString())
-                        {
-                            measurments = session.measurements;
-                        }
+                        measurments = session.measurements;
                     }
                 }
+
+                //fill boxes
+
+                summaryUserControl.sessionBox.Text = user.id;
+                summaryUserControl.nameBox.Text = user.id;
+                summaryUserControl.pulseBox.Text = measurments[measurments.Count - 1].pulse.ToString();
+                summaryUserControl.rpmInfoBox.Text = measurments[measurments.Count - 1].rpm.ToString();
+                summaryUserControl.speedInfoBox.Text = measurments[measurments.Count - 1].speed.ToString();
+                summaryUserControl.distanceInfoBox.Text = measurments[measurments.Count - 1].distance.ToString();
+                summaryUserControl.requestedBox.Text = measurments[measurments.Count - 1].requestedPower.ToString();
+                summaryUserControl.energyInfoBox.Text = measurments[measurments.Count - 1].energy.ToString();
+                summaryUserControl.timeBox.Text = measurments[measurments.Count - 1].time.ToString();
+                summaryUserControl.actualBox.Text = measurments[measurments.Count - 1].actualPower.ToString();
+
+                //fill speedpoints
+                for (int i = 0; i < measurments.Count; i++)
+                {
+                    speedPoints.Add(new DataPoint(measurments[i].time, measurments[i].speed));
+                }
+                //fill speedgraph
+                summaryUserControl.speedChart.Series[0].Points.Clear();
+                for (int i = 0; i < speedPoints.Count; i++)
+                    summaryUserControl.speedChart.Series[0].Points.Add(speedPoints[i]);
+                summaryUserControl.speedChart.Update();
+
+                //fill bpm
+                for (int i = 0; i < measurments.Count; i++)
+                {
+                    bpmPoints.Add(new DataPoint(measurments[i].time, measurments[i].pulse));
+                }
+                //fill bpmgraph
+                summaryUserControl.bpmChart.Series[0].Points.Clear();
+                for (int i = 0; i < bpmPoints.Count; i++)
+                    summaryUserControl.bpmChart.Series[0].Points.Add(bpmPoints[i]);
+                summaryUserControl.bpmChart.Update();
+
+                //fill rpm
+                for (int i = 0; i < measurments.Count; i++)
+                {
+                    rpmPoints.Add(new DataPoint(measurments[i].time, measurments[i].rpm));
+                }
+                //fill rpmgraph
+                summaryUserControl.rpmChart.Series[0].Points.Clear();
+                for (int i = 0; i < rpmPoints.Count; i++)
+                    summaryUserControl.rpmChart.Series[0].Points.Add(rpmPoints[i]);
+                summaryUserControl.rpmChart.Update();
             }
-            //fill boxes
-
-            summaryUserControl.sessionBox.Text = user.id;
-            summaryUserControl.nameBox.Text = user.id;
-            summaryUserControl.pulseBox.Text = measurments[measurments.Count - 1].pulse.ToString();
-            summaryUserControl.rpmInfoBox.Text = measurments[measurments.Count - 1].rpm.ToString();
-            summaryUserControl.speedInfoBox.Text = measurments[measurments.Count - 1].speed.ToString();
-            summaryUserControl.distanceInfoBox.Text = measurments[measurments.Count - 1].distance.ToString();
-            summaryUserControl.requestedBox.Text = measurments[measurments.Count - 1].requestedPower.ToString();
-            summaryUserControl.energyInfoBox.Text = measurments[measurments.Count - 1].energy.ToString();
-            summaryUserControl.timeBox.Text = measurments[measurments.Count - 1].time.ToString();
-            summaryUserControl.actualBox.Text = measurments[measurments.Count - 1].actualPower.ToString();
-
-            //fill speedpoints
-            for (int i = 0; i < measurments.Count; i++)
-            {
-                speedPoints.Add(new DataPoint(measurments[i].time, measurments[i].speed));
-            }
-            //fill speedgraph
-            summaryUserControl.speedChart.Series[0].Points.Clear();
-            for (int i = 0; i < speedPoints.Count; i++)
-                summaryUserControl.speedChart.Series[0].Points.Add(speedPoints[i]);
-            summaryUserControl.speedChart.Update();
-
-            //fill bpm
-            for (int i = 0; i < measurments.Count; i++)
-            {
-                bpmPoints.Add(new DataPoint(measurments[i].time, measurments[i].pulse));
-            }
-            //fill bpmgraph
-            summaryUserControl.bpmChart.Series[0].Points.Clear();
-            for (int i = 0; i < bpmPoints.Count; i++)
-                summaryUserControl.bpmChart.Series[0].Points.Add(bpmPoints[i]);
-            summaryUserControl.bpmChart.Update();
-
-            //fill rpm
-            for (int i = 0; i < measurments.Count; i++)
-            {
-                rpmPoints.Add(new DataPoint(measurments[i].time, measurments[i].rpm));
-            }
-            //fill rpmgraph
-            summaryUserControl.rpmChart.Series[0].Points.Clear();
-            for (int i = 0; i < rpmPoints.Count; i++)
-                summaryUserControl.rpmChart.Series[0].Points.Add(rpmPoints[i]);
-            summaryUserControl.rpmChart.Update();
         }
 
         private void PatientBox_SelectedIndexChanged(object sender, EventArgs e)
         {
-            foreach (User user in users)
+            sessionsBox.Items.Clear();
+            sessionsBox.SelectedIndex = -1;
+            sessionsBox.Text = "";
+            User tempUser = users.First(item => item.id == PatientBox.Text);
+            foreach (Session session in tempUser.GetSessions())
             {
-                if (user.id == PatientBox.Text)
-                    foreach (Session session in user.GetSessions())
-                    {
-                        sessionsBox.Items.Add(session.date.ToString());
-                    }
+                sessionsBox.Items.Add(session.id.ToString());
             }
         }
 
         private void loadUsersToolStripMenuItem_Click(object sender, EventArgs e)
         {
             users = doctorModel.tcpConnection.users;
+            PatientBox.Items.Clear();
+            sessionsBox.Items.Clear();
             foreach (User user in users)
             {
-                PatientBox.Items.Add(user.id);
+                if(user.isDoctor == false)
+                    PatientBox.Items.Add(user.id);
             }
         }
 

+ 1 - 0
Proftaak Remote Healthcare/FietsClientV2/Forms/NewPatientForm.cs

@@ -44,6 +44,7 @@ namespace FietsClient.Forms
                 User user = new User(textBox1.Text, passBox.Text, age, gender,
                     weight, false);
                 connection.SendNewPatient(user);
+                this.Visible = false;
             }
         }
     }

+ 0 - 1
Proftaak Remote Healthcare/FietsClientV2/Forms/PatientForm.cs

@@ -248,7 +248,6 @@ namespace FietsClient
         private void button2_Click(object sender, EventArgs e)
         {
             _connection.StopSessoin();
-
         }
 
         private void logoutToolStripMenuItem_Click(object sender, EventArgs e)

+ 1 - 0
Proftaak Remote Healthcare/FietsClientV2/PatientModel.cs

@@ -63,6 +63,7 @@ namespace FietsClient
         public void stopAskingData()
         {
             askdata = false;
+
             dataHandler.sendData(DataHandler.RESET);
             if (patientform.InvokeRequired)
             {

+ 8 - 6
Proftaak Remote Healthcare/FietsClientV2/TcpConnection.cs

@@ -211,10 +211,6 @@ namespace FietsClient
                                 sessionUC.HandleSessionBikeData(outputMeasurement);
                             }
                                 break;
-                        case "3":
-                            
-                            
-                            break;
                         case "7":
                             //                                        sender              receiver          message
                             onIncomingChatMessage(new string[] { response_parts[1], response_parts[2], response_parts[3].TrimEnd('\0') });
@@ -316,6 +312,7 @@ namespace FietsClient
         public void StopSessoin()
         {
             PatientModel.patientModel.stopAskingData();
+            SendStopSessionPatient();
         }
 
         public void SendLogin(string username, string password)
@@ -367,8 +364,13 @@ namespace FietsClient
         {
             SendString("8|" + userID + "|");
         }
-	
-	public void requestUsers()
+
+        public void SendStopSessionPatient()
+        {
+            SendString("11|" + userID + "|");
+        }
+
+        public void requestUsers()
         {
             SendString("9|");
         }

+ 55 - 28
Proftaak Remote Healthcare/ServerV2/AppGlobal.cs

@@ -26,36 +26,25 @@ namespace ServerV2
             listener = new TcpListener(IPAddress.Any, 1288);
             listener.Start();
 
-            /*
-            //Read UserDate file
-            string s = File.ReadAllText(@"JSON Files\UserData.Json");
-            dynamic results = JsonConvert.DeserializeObject<dynamic>(s);
+            string dir = @"JSON Files";
+            string filename = @"UserData.Json";
 
-            foreach (dynamic r in results)
+            if(!Directory.Exists(dir))
             {
-                users.Add(new User(r.id.ToString(), r.password.ToString(), Int32.Parse(r.age.ToString()),
-                    Boolean.Parse(r.gender.ToString()), Int32.Parse(r.weight.ToString()),
-                    Boolean.Parse(r.isDoctor.ToString())));
-
-                int i = 1;
-
-                foreach (dynamic ses in r.tests)
-                {
-                    Session tempSession = new Session(i);
-                    i++;
-
-                    foreach (dynamic m in ses.session)
-                    {
-                        Measurement measurement = new Measurement(Int32.Parse(m.pulse.ToString()), Int32.Parse(m.rpm.ToString()), Int32.Parse(m.speed.ToString()), Int32.Parse(m.wattage.ToString()), Int32.Parse(m.distance.ToString()), Int32.Parse(m.requestedPower.ToString()), Int32.Parse(m.energy.ToString()), Int32.Parse(m.actualPower.ToString()), Int32.Parse(m.time.ToString()), Int32.Parse(m.bpm.ToString()));
-                        tempSession.AddMeasurement(measurement);
-                    }
-
-                    users.Last().AddSession(tempSession);
-                }
+                Directory.CreateDirectory(dir);
+            }
 
+            if (!File.Exists(dir + @"\" + filename))
+            {
+                TestMethode();
+                saveData2Json();
+            }
+            else
+            {
+                readDataFromJson();
             }
-            */
-            TestMethode();
+            
+            
             while (true)
             {
 
@@ -109,6 +98,39 @@ namespace ServerV2
             File.WriteAllText(@"JSON Files\UserData.Json", JsonConvert.SerializeObject(users));
         }
 
+        private void readDataFromJson()
+        {
+            //Read UserDate file
+            string s = File.ReadAllText(@"JSON Files\UserData.Json");
+            dynamic results = JsonConvert.DeserializeObject<dynamic>(s);
+            //Clear list
+            users = new List<User>();
+
+            foreach (dynamic r in results)
+            {
+                
+                users.Add(new User(r.id.ToString(), r.password.ToString(), Int32.Parse(r.age.ToString()),
+                    Boolean.Parse(r.gender.ToString()), Int32.Parse(r.weight.ToString()),
+                    Boolean.Parse(r.isDoctor.ToString())));
+
+                int i = 1;
+
+                foreach (dynamic ses in r.sessions)
+                {
+                    Session tempSession = new Session(i);
+                    i++;
+
+                    foreach (dynamic m in ses.measurements)
+                    {
+                        Measurement measurement = new Measurement(Int32.Parse(m.pulse.ToString()), Int32.Parse(m.rpm.ToString()), Int32.Parse(m.speed.ToString()), Int32.Parse(m.distance.ToString()), Int32.Parse(m.requestedPower.ToString()), Int32.Parse(m.energy.ToString()), Int32.Parse(m.actualPower.ToString()), Int32.Parse(m.time.ToString()));
+                        tempSession.AddMeasurement(measurement);
+                    }
+
+                    users.Last().AddSession(tempSession);
+                }
+
+            }
+        }
 
         private void receive(object obj)
         {
@@ -208,6 +230,8 @@ namespace ServerV2
                         break;
                     case "4":  // Nieuwe patient
                         users.Add(new User(response[1], response[2], Int32.Parse(response[3]), Boolean.Parse(response[4]), Int32.Parse(response[5])));
+                        saveData2Json();
+                        readDataFromJson();
                         break;
                     case "5":   //data pushen naar meetsessie (opslaan)
                         // uitleg response[]:
@@ -282,8 +306,8 @@ namespace ServerV2
 
                         // BUG: er wordt teveel data verstuurd!!!!
                         //Console.WriteLine("send users");
-                        //string file = "9|" + FietsLibrary.JsonConverter.GetUsers(users);
-                        //Communication.Send(file, sslStream);
+                        string file = "9|" + FietsLibrary.JsonConverter.GetUsers(users);
+                        Communication.Send(file, sslStream);
                         break;
                     case "10":
                         if (response[1] == "1" || response[1] == "0") //start of stop sesie (met check)
@@ -297,6 +321,9 @@ namespace ServerV2
                             }
                         }
                         
+                        break;
+                    case "11":
+                        saveData2Json();
                         break;
                     case "20":
                         Client Case20Client = clients.FirstOrDefault(item => item.username == response[1]);

+ 2 - 3
Proftaak Remote Healthcare/ServerV2/ServerV2.csproj

@@ -33,9 +33,8 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
-      <HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
-      <Private>True</Private>
+    <Reference Include="Newtonsoft.Json">
+      <HintPath>..\FietsLibrary\bin\Debug\Newtonsoft.Json.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />