public void registrerPatientMenu() { byte b = 0; Display.lcdClear(); Display.lcdPrint("Register Patient:"); Display.lcdGotoXY(0, 1); Display.lcdPrint("Scan sygesikring"); Display.lcdGotoXY(0, 2); Display.lcdPrint("Indtast CPR-nummer"); Display.lcdGotoXY(0, 3); Display.lcdPrint("Default Patient"); Display.lcdHome(); //Her skal indtastning af CPR_nummer ske CPRNumber1 = 1234567890; int a = Encoder.getDiff(true); if (a < 0) { a = -a; } for (int i = a; i >= 0; i = i - 4) { if (i < 4) { b = Convert.ToByte(i); Display.lcdGotoXY(0, b); Display.lcdBlink(); } } if (Encoder.isPressed() == true) { switch (b) { case 1: RPcontrol.cardScan(); break; case 2: //Her skal indtastning af CPR_nummer ske CPRNumber1 = 1234567890; RPcontrol.registrerPatient(CPRNumber1); break; case 3: RPcontrol.defaultPatient(); break; } //skal der kunne komme tilbage til hovedmenu? Program.mainMenu(); //Der behøver ikke oprettes et objekt, når det er static class. } }
public static void mainMenu() { byte b = 0; Display.lcdClear(); Display.lcdPrint("HovedMenu:"); Display.lcdBlink(); Display.lcdGotoXY(0, 1); Display.lcdPrint("Registrer Patient"); Display.lcdGotoXY(0, 2); Display.lcdPrint("Start Maaling"); Display.lcdGotoXY(0, 3); Display.lcdPrint("Vis batteristatus"); Display.lcdGotoXY(0, 0); while (true) { //måske clear b og lave alle om til d igen, så det fungere ens. test int a = Encoder.getDiff(true); if (a < 0) { a = -a; } for (int i = a; i >= 0; i = i - 4) { if (i < 4) { b = Convert.ToByte(i); Display.lcdGotoXY(0, b); Display.lcdBlink(); } } if (Encoder.isPressed() == true) { switch (b) { case 1: registrerPatientUI.registrerPatientMenu(); break; case 2: measureECGUI.startMaaling(); break; case 3: visBatteristatusUI.visBatteristatus(); break; } } } }
public void startMaaling() { byte c = 0; Display.lcdClear(); Display.lcdNoBlink(); Display.lcdNoCursor(); Display.lcdPrint("Maalingen er i"); Display.lcdGotoXY(0, 1); Display.lcdPrint("gang..."); System.Threading.Thread.Sleep(1000); //skal være 10sek Display.lcdHome(); blinkBlack(); Display.lcdPrint("Afventer analyse"); Display.lcdGotoXY(0, 1); Display.lcdPrint("Vaelg for at forsætte:"); Display.lcdGotoXY(0, 2); Display.lcdPrint("Ingen STEMI"); Display.lcdGotoXY(0, 3); Display.lcdPrint("Mulig STEMI"); Display.lcdBlink(); while (true) { int a = Encoder.getDiff(true); for (int i = a; i >= 0; i = i - 2) { if (i < 2) { c = Convert.ToByte(i + 2); Display.lcdGotoXY(0, c); } } if (Encoder.isPressed()) { if (c == 2) { Display.lcdClear(); Display.lcdPrint("Ingen STEMI fundet,"); Display.lcdGotoXY(0, 1); Display.lcdPrint("afvent svar fra"); Display.lcdGotoXY(0, 2); Display.lcdPrint("sygehus"); if (Encoder.isPressed()) { break; } } if (c == 3) { Display.lcdClear(); blinkYellow(); if (Encoder.isPressed()) { break; } } else { break; } } } //Denne metode er lang fra done. //Er stoppet efter mulig STEMI }
public void startMaaling(string CPRNumber) //Modtager CPRN fra hovedmenu, når UC1 er gennemført { byte c = 0; byte d = 0; byte e = 0; bool udbryder = false; bool RPiAnalyse; int doctorAnalyse = 2; // så der ikke er svar før lægen har indrapporteret det Display.lcdClear(); string[] ECGMenu = new string[3] { "Meassure ECG", "Start Maaling", "Tilbage" }; foreach (var item in ECGMenu) // ECGMenu bliver indlæst { Display.lcdGotoXY(0, d); Display.lcdPrint(ECGMenu[d]); d++; } while (true) { int a = Encoder.getDiff(true); if (a < 0) { a = -a; } for (int i = a; i >= 0; i = i - 2) { if (i < 2) { c = Convert.ToByte(i + 1); Display.lcdGotoXY(0, c); Display.lcdBlink(); } } if (Encoder.isPressed()) { switch (c) { case 1: //starter hele maalingen. Ikke muligt at vende retur efter { informECGStart(); startECG(); informECGEnd(); udbryder = true; break; } case 2: // Vender retur ved fortrydelse Program.mainMenu(); break; } } if (udbryder) // sikrer at vi kommer helt ud, så ECG kan analyseres. { break; } } RPiAnalyse = ECGControl.analyzeECG(ECGMaalinger); // Systemet analyserer ECG, og giver informationen til DTO-objektet if (RPiAnalyse == true) { informPossibleSTEMI(); eCGControl.GetLokalinfo()._STEMI_suspected = true; } else { informPossibleNoSTEMI(); eCGControl.GetLokalinfo()._STEMI_suspected = false; } //Nu skal ECG oploades i databasen maalingID = ECGControl.convertToBlobAndUpload(eCGControl.GetLokalinfo()); // metoden går igennem logiklaget, så reglerne overholdes. //Nu er målingen uploaded og vi afventer nu svar fra hospitalet om hvad diagnosen er Display.lcdClear(); string[] ECGtjekLaegeSvar = new string[2] { "Maaling foretaget", "Tjek Laege svar" }; foreach (var item in ECGtjekLaegeSvar) { Display.lcdGotoXY(0, e); Display.lcdPrint(ECGtjekLaegeSvar[e]); e++; } while (true) { if (Encoder.isPressed()) //Ved tryk forsøger systemet at hente svaret fra lægen i den loakle database. { doctorAnalyse = ECGControl.confirmSTEMI(Convert.ToString(maalingID)); } if (doctorAnalyse == 0 || doctorAnalyse == 1) { break; } //afventer svar } switch (doctorAnalyse) { case 1: alarmSTEMI(); break; case 0: noSTEMI(); break; } //Herefter skal lige tænkes over, hvor den så skal hen. System.Threading.Thread.Sleep(5000); Program.mainMenu(); }
public static void mainMenu() { byte b = 0; string[] hovedmenu = new string[4] { "HovedMenu:", "Registrer Patient", "Start Maaling", "Vis batteristatus" }; Display.lcdClear(); Display.lcdBlink(); byte c = 0; Display.lcdSetBackLight(0, 255, 0); // Vi ønsker at skærmen er grøn foreach (var item in hovedmenu) // Hovedmenu bliver indlæst { Display.lcdGotoXY(0, c); Display.lcdPrint(hovedmenu[c]); c++; } Display.lcdHome(); // curserblink sættes til 0,0 System.Threading.Thread.Sleep(500); //Forebygger antiprell ved tryk fra andre menuer while (true) //Kører indtil en menu vælges { int a = Encoder.getDiff(true); if (a < 0) { a = -a; // Hvis den er rullet negativt spejles tallet - det sikrer, at vores programs ikke crasher } for (int i = a; i >= 0; i = i - 4) //sikrer hele tiden, at man kun ruller mellem de mulige menuer { if (i < 4) { b = Convert.ToByte(i); Display.lcdGotoXY(0, b); // placere curserblink det ønskede sted Display.lcdBlink(); } } if (Encoder.isPressed() == true) // Sender brugeren til den valgte menu { switch (b) // de 4 menuer { case 0: Display.lcdClear(); Display.lcdSetBackLight(0, 0, 0); Display.lcdNoBlink(); //Display.lcdNoDisplay(); Environment.Exit(0); // her er det muligt at slukke systemet break; case 1: registrerPatientUI.registrerPatientMenu(); // vælger registrer patient break; case 2: if (CPRNumber.Length == 10) { measureECGUI.startMaaling(CPRNumber); //Der skal være givet en værdi til CPRNumber fra UC1 } else { Display.lcdClear(); Display.lcdHome(); Display.lcdPrint("Ugyldigt CPR"); System.Threading.Thread.Sleep(3000); mainMenu(); // Der vendes tilbage til hovedmenu, hvis CPR nummer ikke godkendes. } break; case 3: visBatteristatusUI.visBatteristatus(); // batteristatus metode break; } } } }
public void registrerPatientMenu() { byte m = 0; Display.lcdClear(); string[] rpMenu = new string[4] { "Registrer Patient:", "Scan sygesikring", "Indtast CPR-nummer", "Default Patient" }; byte c = 0; foreach (var item in rpMenu) // rpMenu bliver indlæst { if (c < 4) { Display.lcdGotoXY(0, c); Display.lcdPrint(rpMenu[c]); c++; } } Display.lcdHome(); // curserblink sættes til 0,0 while (true) { int a = Encoder.getDiff(true); if (a < 0) { a = -a; // modvirker crash ved negativ værdi fra getDiff } for (int i = a; i >= 0; i = i - 4) // samme metode som main { if (i < 4) { m = Convert.ToByte(i); Display.lcdGotoXY(0, m); } } if (Encoder.isPressed() == true) { switch (m) // De fire valgmuligheder fra Register patient { case 0: { Program.mainMenu(); break; } case 1: { patientData = RPcontrol.cardScan("0101010101"); // Det er kun patient, der har sygesikrin med;) Program.CPRNumber = "0101010101"; // Ellers skulle en scanner få CPR fra sygesikring. displayValidatedPatient(patientData); break; } case 2: { //Her skal indtastning af CPR_nummer ske Program.CPRNumber = indtatstCPR(); patientData = RPcontrol.registrerPatient(Program.CPRNumber); displayValidatedPatient(patientData); break; } case 3: { patientData = RPcontrol.defaultPatient("9999990000"); Program.CPRNumber = "9999990000"; displayValidatedPatient(patientData); break; } } } } }