GithubHelp home page GithubHelp logo

nhplus's Introduction

nhplus's People

Contributors

berndheidemann avatar juliodcp avatar kingk57 avatar mlhmz avatar soeren2208 avatar

Stargazers

 avatar

Watchers

 avatar

nhplus's Issues

Leere Anwendung bei fehlgeschlagener Datenbank Verbindung

Momentan ist es so, dass wenn man die NHPlus Anwendung startet und die Datenbank aus irgendwelchen Gründen nicht funktioniert, die Anwendung leer / weiß wird. Besser wäre, wenn eine Fehlermeldung gezeigt werden würde und die Anwendung geschlossen wird.

Implementierung eines Authentifizierungs-Systemes

User-Story
Als Sicherheitsbeauftragter möchte ich, dass man sich in dieser Anwendung einloggen kann, um Sicherheit, Schutz vor unbefugtem Zugriff und Einhaltung des DSGVO-Punktes Sicherheit zu erreichen.

Akzeptanzkriterien
A_1: Beim Starten der Anwendung muss User sich mit Login-Dialog anmelden
A_2: Bis der Benutzer angemeldet ist dürfen keine Daten in die Anwendung geladen werden
A_3: Nutzer kann nur, je nach Berechtigungsstufe, bestimmte Operationen erfüllen
A_4: Nutzer höherer Rechte können Nutzer mit Berechtigungsstufe und Passwort erstellen und verwalten
A_5: Nutzer kann sich ausloggen per Knopfdruck

Tasks
T_1: Modell für Nutzer erstellen (Dabei u.a. ID’s erstellen)
T_2: DAO für Nutzer erstellen
T_3: Datenbanktabelle für Nutzer erstellen
T_4: Nutzer mit anderen Modellen verlinken (z.B. erstellt von)
T_5: Login-Dialog erstellen
T_7: Bei Login, Nutzer-ID in einer Session-Schicht hinterlegen
T_8: Zugriffsberechtigungen mit Enum erstellen, mit Admin
T_9: Benutzerverwaltung für Nutzer einer Admin-Berechtigungsstufe
T_10: Anderen Controller erst zeigen nach Login und Daten soeben erst nach Login laden
T_11: Passwörter hashen

Testfälle

TF1: Einloggen
Vorbedingung: Der Nutzer ist ausgeloggt und startet seine Anwendung
auszuführende Testschritte

  • Der Nutzer gibt seine Login-Daten ein
  • Der Nutzer geht auf den Login-Button
  • erwartetes Ergebnis: Der Nutzer ist eingeloggt und sieht die Anwendung

TF2: Operation ausführen, die bestimmte Berechtigungen benötigt
Vorbedingung: Es gibt einen Nutzer mit und ohne Berechtigungsstufe
auszuführende Testschritte:

  • Es wird sich mit dem Nutzer mit der nötigen Berechtigungsstufe angemeldet
  • Es werden die Operationen ausgeführt
  • Es wird sich von diesem Nutzer abgemeldet
  • Es wird sich beim Nutzer ohne der nötigen Berechtigungsstufe eingeloggt
  • Es werden die Operationen ausgeführt
  • Es wird sich von diesem Nutzer abgemeldet
  • erwartetes Ergebnis: Der Benutzer mit Berechtigungen hat erfolgreich die Operationen ausgeführt und der ohne Berechtigungen nicht und wurde darauf hingewiesen

TF3_: Benutzerverwaltung für Admin-Nutzer
Vorbedingung:
Es gibt einen Admin-Benutzer und einen normalen Nutzer
auszuführende Schritte:

  • Es wird sich mit dem Admin-Benutzer angemeldet
  • Es wird auf das Benutzerverwaltungs-Panel gegangen und ausprobiert einen Nutzer zu erstellen und zu entfernen
  • Es wird sich vom Admin-Benutzer abgemeldet
  • Es wird sich mit dem normalen Nutzer angemeldet
  • Es wird sicher gegangen, dass kein Benutzerverwaltungspanel erscheint oder ausgegraut ist
  • Es wird sich ausgeloggt
    erwartetes Ergebnis:
    Admin-Benutzer sieht Admin-Panel und kann es benutzen, normaler Nutzer sieht es nicht

TF4: Ausloggen
Vorbedingung:
Nutzer ist eingeloggt
auszuführende Schritte:

  • Es wird auf den Ausloggen-Knopf gedrückt
    erwartetes Ergebnis: Nutzer ist ausgeloggt

Sperrung von Daten

User-Story
Hängt ab von #5

Als Datenschutzbeauftragter möchte ich, dass die Patientendaten nach Behandlungsende automatisch gesperrt und getrennt von den aktiven Daten gespeichert werden um der DSGVO gerecht zu werden.

Akzeptanzkriterien
A_1: Wenn das Behandlungsende markiert werden die Daten nach 24 Stunden nicht mehr angezeigt
A_3: Gesperrte Daten werden im Programm nicht mehr mit verarbeitet

Tasks

T_1: Es wird eine Job-Klasse angelegt
T_2: Die Jobklasse bekommt ein Scheduler der im 10 Minuten Takt läuft
T_3: Der Scheduler fragt ab ob ein Patient sperrbereit ist
T_4: Wenn ein Patient sperrbereit ist, bekommt er vom Scheduler ein Sperrflag sowie ein Löschdatum und ist nicht mehr in der Tabelle zu sehen.

Entwickler-Hinweis: Hier könnte der Quartz-Scheduler, eine Java-Library, benutzt werden.

Testfälle

TF1_: Patientendaten werden gesperrt

  • Vorbedingung: Das für einen Patienten markierte Behandlungsende ist überfällig (z.B. durch Änderung in der Datenbank)
  • auszuführende Testschritte:
  • Anwendung wird gestartet, da dort dann direkt einmal überprüft wird
  • erwartetes Ergebnis: Es sind keine Daten für den Patienten mehr unter den Reitern “Behandlungen” und “Patienten/innen” mehr zu finden.

Automatische Löschung von Daten

User-Story
Als Datenschutzbeauftragter möchte ich, dass gesperrte Daten nach 30 Jahren automatisch gelöscht werden um der DSGVO gerecht zu werden.

Akzeptanzkriterien

A_1: Einträge in der Tabelle mit gesperrten Daten werden nach 30 Jahren gelöscht
A_2: Eine routinemäßige Löschung läuft jede 10 Minuten, die überprüft ob Daten 30 Jahre her sind
A_3: Die routinemäßige Löschung beeinträchtigt das Programm nicht von der Performance her

Tasks

T_1: Datums-Feld für Löschung wird in Objekten hinzugefügt
T_2: Cronjob wird in neuen Thread gestartet der jede Tag abfragt, ob ein Datensatz seit mehr als 30 Jahren gesperrt ist

Hinweis: Hier könnte die Quartz Library wieder helfen

Testfälle

TF1_: Gesperrte Daten werden nach 30 Jahren gelöscht

  • Vorbedingung: Tester hat Zugriff auf die Datenbank
  • auszuführende Testschritte: Das Datum wird auf eins vor 30 Jahren gesetzt
  • erwartetes Ergebnis: Daten, also Patienten, inkl. Behandlungen, werden gelöscht

TF2_: Die Löschung beeinträchtigt nicht die Performance

  • Vorbedingung: Es wird die JConsole an die Anwendung angehangen
  • auszuführende Testschritte: Es wird sicher gegangen, dass die Löschung gestartet wird
  • erwartetes Ergebnis: Die Performance wird von den JVM-Statistiken nicht stark beeinträchtigt

Markierung des Behandlungsende eines Patientens

User-Story

Als Verwaltungsfachangestellte möchte ich das Behandlungsende eines Patienten markieren können, um Missverständnisse beim Bearbeiten zu vermeiden

Akzeptanzkriterien
A_1: Behandlungsende kann bei Patienten markiert werden
A_2: Daten der Patienten werden nach 24h gesperrt
A_3: Patient kann in 24h noch entsperrt werden

Tasks

T_1: Behandlungsende Feld in der Datenbank erstellen als Datum
T_2: Knopf / Knöpfe zum Umstellen des Flags erstellen
T_3: Bei Sperren Datum, wann der Nutzer gesperrt werden soll, in Datenbank reinschreiben.

Hinweis:
Der markierte Patient wird in #6 gesperrt

Testfälle

TF1_: Behandlungsende bei Patient markieren

  • Vorbedingung: Nutzer ist auf Patienten-Tabelle und hat nötige Berechtigungen
  • auszuführende Testschritte: Patient wird markiert mit dem Behandlungsende-Knopf
  • erwartetes Ergebnis: Es wird angezeigt, dass der Patient gesperrt wird und um wieviel Uhr er gesperrt wird

Entfernen des Vermögensstandes

User-Story
Als Datenschutzbeauftragter möchte ich, dass der Vermögensstand aus der Anwendung entfernt wird, um dem DSGVO gerecht zu werden was die Zweckbindung der gesammelten Daten angeht.

Akzeptanzkriterien

A_1: Der Vermögensstand ist nicht mehr in der Anwendung und der Datenbank zu finden.

Tasks

T_1: Aus der Patientendatenbank das Feld für Vermögensstand entfernen.
T_2: Aus der Patientenansicht das Feld für Vermögensstand entfernen.
T_3: Aus dem Patienten-DAO das selektieren des Vermögensstands entfernen.
T_4: Den Vermögensstand aus dem Patienten-Controller entfernen.
T_5: Den Vermögensstand aus der Datenbank entfernen.

Testfälle

TF1_: Feld Vermögensstand fehlt

  • Vorbedingung: Der Nutzer hat im Hauptfenster der Anwendung die Option Patienten/innen ausgewählt
  • auszuführende Testschritte: -
  • erwartetes Ergebnis: In der Ansicht der Patienten fehlt die Spalte Vermögensstand und in der unteren Zeil zum Anlegen neuer Patienten fehlt das Feld Vermögensstand.

Keine Validationsfehler in der Behandlungs und Patienten Übersicht

Momentan ist es so, dass, wenn man beim Erstellen von Patienten sowie von Behandlungen etwas falsch eingetragen hat, dies sich lediglich als Exception sichtbar macht. Dies ist ein unerwünschtes Verhalten und muss behoben werden. Stattdessen sollten Warnings angezeigt werden.

Erstellung einer Personalgruppe, die Caregiver verwaltet

User-Story:

Als Personalleiter/innen, möchte ich, dass die Angestellten meiner Abteilung und Ich, Zugriff auf die Mitarbeiter / Pfleger haben um bei Änderungen im Personal, diese auch in NHPlus übernehmen.

Akzeptanzkriterien:

A_1: Es gibt eine Personalgruppe
A_2: Die Personalgruppe hat Rechte auf die Mitarbeiter
A_3: Die Personalgruppe hat keine Rechte auf die Patienten, Behandlungen sowie User, da sie diese nicht braucht.

Tasks:

T_1: Personalgruppe anlegen
T_2: Personalgruppe in Factory hinzufügen
T_3: Personalgruppe Permissions geben

Testfälle:

TF1: Der Personalnutzer kann Pfleger anlegen, bearbeiten und löschen:
Vorbedingung: Es gibt einen Personaltestnutzer.
Auszuführende Schritte:

  • Pflegerliste wird geöffnet
  • Es wird ein Testpfleger angelegt
  • Der Testpfleger wird bearbeitet
  • Der Testpfleger wird gelöscht

erwartetes Ergebnis:
Alle Operationen (Anzeigen, Anlegen, Bearbeiten, Löschen) können erfolgreich ausgeführt werden

Implementierung eines Pflege-Moduls

User-Story

Als Auftraggeber möchte ich, dass die Anwendung um ein Pfleger-Modul erweitert wird, um auch die Pfleger/innen in nhplus verwalten zu können.
Akzeptanzkriterien

A_1: Die Navigationsleiste am linken Rand hat einen Button, über den zu einer Ansicht aller Pfleger mit ID, Nach-und Vornamen sowie Telefonnummer gewechselt wird.
A_2: Die Anzeige einer Behandlung zeigt zusätzlich Nachname, Vorname, Telefon und Label des Pflegers, welcher die Behandlung durchgeführt hat, an.
A_3: Beim Anlegen einer Behandlung soll die entsprechende Pflegekraft mit Hilfe einer Combobox ausgewählt werden können.

Tasks

T_1: Erstellen einer Model-Klasse für die Pfleger/innen.
T_2: Erstellen eines Pfleger/innen-DAO.
T_3: Erstellen einer Controller-Klasse für die Pfleger/innen.
T_4: Hinzufügen des Buttons “Pfleger/innen” in die Navigationsleiste am linken Rand in der Hauptansicht.
T_5: Hinzufügen einer Combobox in der View-Klasse für neue Behandlungen, welche die Namen aller Pfleger zur Auswahl anzeigt.
T_6: Inhalt der Combobox im Behandlungs-DAO berücksichtigen, sodass der Name des Pflegers zu der Behandlung mit gespeichert wird.
T_7: Erweiterung der Ansicht der Behandlungen-View-Klasse um die Daten des durchführenden Pflegers im Format Nachname, Vorname, Telefon, Label zu jeder Behandlung.

Testfälle

TF1_: Button Anzeigen

  • Vorbedingung: Der Nutzer befindet sich im Hauptfenster
  • auszuführende Testschritte: -
  • erwartetes Ergebnis: Der Nutzer sieht in der Navigationsleiste am linken Rand den Button “Pfleger/innen”

TF2_: Alle Pfleger anzeigen

  • Vorbedingung: Der Nutzer hat im Hauptfenster der Anwendung die Option “Pfleger/innen” ausgewählt
  • auszuführende Testschritte: -
  • erwartetes Ergebnis: Der Nutzer sieht eine Tabelle in der alle Pfleger mit deren Daten in den Spalten ID, Nachname, Vorname, Telefonnummer aufgeführt werden.

TF3_: Pfleger hinzufügen/löschen

  • Vorbedingung: Der Nutzer hat im Hauptfenster der Anwendung die Option “Pfleger/innen” ausgewählt
  • auszuführende Testschritte:
    Eingeben der Daten eines neuen Pflegers im unteren Bereich und betätigen des Buttons “Hinzufügen”
    Anklicken eines Pflegers und betätigen des Buttons “löschen” (bitte nur in einem Testsystem oder mit einem Test-Pfleger ausprobieren!!!)
  • erwartetes Ergebnis:
    Der neue Pfleger erscheint in mit allen angegebenen Daten in der Tabelle
    Der gelöschte Pfleger verschwindet aus der Tabelle

TF4_: In der Behandlungs-Ansicht werden Pfleger mit angezeigt

  • Vorbedingung: Der Nutzer hat im Hauptfenster der Anwendung die Option “Behandlungen” ausgewählt
  • auszuführende Testschritte: -
  • erwartetes Ergebnis: in der Ansicht gibt es eine Spalte “Pfleger”, die den Pfleger angibt, welche die Behandlung durchgeführt hat

TF5_: Die Combobox beim Anlegen neuer Behandlungen existiert und funktioniert.

  • Vorbedingung: Der Nutzer hat im Hauptfenster der Anwendung die Option “Behandlungen” ausgewählt und anschließend unten in der Combobox einen Patienten ausgewählt und auf den Button “neue Behandlung anlegen” geklickt.
  • auszuführende Testschritte: (b) alle Felder im Fenster “Neue Behandlung” müssen ausgefüllt werden und in der Combobox der durchführende Pfleger ausgewählt werden
  • erwartetes Ergebnis:
    die Combobox ist sichtbar und beim draufklicken werden alle Pfleger vorgeschlagen
    die neu angelegte Behandlung wird samt ausführenden Pflegers in der Ansicht Behandlungen aufgeführt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.