Exemplo n.º 1
0
        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.
            }
        }
Exemplo n.º 2
0
        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;
                    }
                }
            }
        }
Exemplo n.º 3
0
        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
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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;
                    }
                    }
                }
            }
        }