Kravspecifikation - sofia-mnord/mediotech GitHub Wiki

Kravspecifikation

1. Funktionella krav

Admin (vårdpersonal):

FR1: Inloggning Som användare vill jag att systemet ska vara skyddat för obehöriga.

Användningsfall FR1

UC2 Logga in

Förvillkor: Inget

Postvillkor: Användaren loggas in och kan komma åt applikationen

Huvudscenario

  1. Användaren startar applikationen
  2. Användaren skriver in e-postadress och lösenord och loggar in
  3. Uppgifterna autentiseras och användaren loggas in.

Alternativt scenario 1

  • 2a. Användaren skriver in en felaktig e-postadress
  • Systemet visar ett felmeddelande och användaren loggas inte in.
  • Gå till steg 2 i huvudscenariot.

Alternativt scenario 2

  • 2a. Användaren skriver in ett felaktigt lösenord.
  • Systemet visar ett felmeddelande och användaren loggas inte in.
  • Gå till steg 2 i huvudscenariot.

Alternativt scenario 3

  • 2a. Användaren lämnar fältet för e-postadress tomt.
  • Systemet visar ett felmeddelande och användaren loggas inte in.
  • Gå till steg 2 i huvudscenariot.

Alternativt scenario 4

  • 2a. Användaren lämnar fältet för lösenord tomt.
  • Systemet visar ett felmeddelande och användaren loggas inte in.
  • Gå till steg 2 i huvudscenariot.

FR2: Skapa användare Skapa användare för ny personal via ett grafiskt gränssnitt

FR3: Lägga till apparater Lägga till nya apparater, via ett grafiskt gränssnitt, som blir tillgängliga för utlån

FR4: Logga ut Logga ut och byta användare

Användningsfall FR4

UC3 Logga ut

Förvillkor: Krav FR1 - Logga in måste vara implementerat och användaren måste vara inloggad.

Postvillkor: Användaren loggas ut.

Huvudscenario

  1. Startar när användaren vill logga ut.
  2. Användaren klickar på “Logga ut”-knappen.
  3. Användaren loggas ut och omdirigeras till inloggnings-sidan.

Alternativt scenario 1

  • 3a. Användaren försöker komma åt applikationen igen utan att vara autentiserad.
  • Användaren omdirigeras till inloggnings-sidan.

Applikationskrav:

FR5: Utlåning Som användare vill jag kunna registrera utlåning av utrustning

Användningsfall FR5

UC1 Registrera utlåning

Förvillkor: Krav FR1: Logga in måste vara implementerat och användaren måste vara inloggad.

Postvillkor: En utlåning sparas i databasen

Huvudscenario

  1. Startar när en användare vill spara utlåningsdata
  2. Systemet frågar efter patientens förnamn, efternamn, personnummer och telefonnummer, samt typ av undersökning, apparat-ID, utlåningsdatum, återlämningsdatum, personalens namn och frivillig kommentar.
  3. Användaren fyller i patientens förnamn, efternamn, personnummer och telefonnummer, samt typ av undersökning, apparat-ID, utlåningsdatum, återlämningsdatum, personalens namn och frivillig kommentar och trycker på bekräfta.
  4. En bekräftelse visas.

Alternativt scenario 1

  • 3a. Användaren fyller inte i ett förnamn
  • Systemet visar ett felmeddelande
  • Gå till steg 2 i huvudscenariot

Alternativt scenario 2

  • 3a. Användaren fyller inte i ett efternamn
  • Systemet visar ett felmeddelande
  • Gå till steg 2 i huvudscenariot

Alternativt scenario 3

  • 3a. Användaren fyller inte i ett personnummer
  • Systemet visar ett felmeddelande
  • Gå till steg 2 i huvudscenariot

Alternativt scenario 4

  • 3a. Användaren fyller i ett personnummer med fel format
  • Systemet visar ett felmeddelande
  • Gå till steg 2 i huvudscenariot

Alternativt scenario 5

  • 3a. Användaren fyller inte i ett telefonnummer
  • Systemet visar ett felmeddelande
  • Gå till steg 2 i huvudscenariot

Alternativt scenario 6

  • 3a. Användaren fyller i ett telefonnummer med fel format
  • Systemet visar ett felmeddelande
  • Gå till steg 2 i huvudscenariot

Alternativt scenario 7

  • 3a. Användaren fyller inte i ett apparat-ID
  • Systemet visar ett felmeddelande
  • Gå till steg 2 i huvudscenariot

Alternativt scenario 8

  • 3a. Användaren väljer datum för återlämning som är innan datumet för utlämning
  • Systemet visar ett felmeddelande
  • Gå till steg 2 i huvudscenariot

Alternativt scenario 9

  • 3a. Användaren fyller inte i en personalsignatur
  • Systemet visar ett felmeddelande
  • Gå till steg 2 i huvudscenariot

Alternativt scenario 10

  • 3a. Användaren fyller i samma information i formuläret två gånger
  • Systemet visar ett felmeddelande
  • Gå till steg 2 i huvudscenariot

FR6: Återlämning Som användare vill jag kunna registrera återlämnad utrustning.

Användningsfall FR6

UC4 Registrera återlämning

Förvillkor: Krav FR1 - Logga in måste vara implementerat och användaren måste vara inloggad.

Postvillkor: En utlåning raderas från databasen.

Huvudscenario

  1. Startar när en användare vill radera utlåningsdata.
  2. I systemet söker användaren fram det aktuella lånet med hjälp av apparat-ID.
  3. Systemet visar information om det aktuella lånet.
  4. Användaren raderar lånet från databasen.
  5. En bekräftelse visas.

Alternativt scenario 1

  • 3a. Det finns inget aktuellt lån med det apparat-ID som söktes på.
  • Systemet visar ett felmeddelande.
  • Gå till steg 2 i huvudscenariot.

FR7: Översikt Som användare vill jag kunna se utlånad utrustning och när de förväntas komma tillbaka

Användningsfall FR7

UC5 Se utlåning i översikten

Förvillkor: Krav FR1 - Logga in måste vara implementerat och användaren måste vara inloggad. Krav FR5 - Utlåning måste vara implementerat och en utlåning måste finnas i databasen.

Postvillkor: En utlåning ses i översiktstabellen.

Huvudscenario

  1. Startar när en användare vill se ett lån.
  2. Användaren går in på översikt
  3. Systemet visar information om alla aktiva lån.

FR8: Bekräftelse Som användare vill jag att systemet ska skicka bekräftelse på utlån och återlämning till patient

2. Ickefunktionella produktkrav (non-functional product requirements)

  • NFR1: Systemet ska logga ut inaktiv användare efter 10 minuter
  • NFR2: Vårdpersonal ska kunna använda systemet efter en 30 minuters introduktion
  • NFR3: Laddningstider ska vara max 2 sekunder för viktiga funktioner

3. Organisationskrav (non-functional organizational requirements)

  • ORG1: Programspråk: JavaScript
  • ORG2: Hosting: Firebase Hosting
  • ORG3: Backend: Firebase (Firestore och Authentication)

3.1 Versionshantering

  • ORG4: Användning av Git
  • ORG5: Feature branches för nya funktioner

3.2 Kodstandard

3.3 Koddokumentation

  • ORG7: Inline-kommentarer vid komplicerad logik
  • ORG8: Kommentarer i JSDoc
  • ORG9: README.md med instruktioner och systemöversikt

4. Externa krav (non-functional external requirements)

4.1 Etiska krav

  • EXT1: Systemet ska inte användas med riktiga patientuppgifter
  • EXT2: Falsk e-post eller felaktiga telefonnummer kan leda till att bekräftelser når fel person
  • EXT3: Applikationen ska kunna hantera fall där patient saknar e-post eller mobil
  • EXT4: Systemet ska ge en varning vid utebliven bekräftelse

4.2 Lagar & Standarder

  • EXT5: Applikationen kommer att simulera hantering av personuppgifter, men all data ska vara fiktiv
  • EXT6: Inloggningsuppgifter lagras säkert via Firebase Authentication
  • EXT7: Ingen lagring av personnummer eller verklig patientdata får ske, då detta skulle omfattas av GDPR och Patientdatalagen