Skip to content
ruisantos78 edited this page Sep 7, 2023 · 13 revisions

Rui Santos’s Laboratory

Introduction

This document outlines the functional requirements for Rui Santos’s Laboratory. These requirements have been identified based on the “Backend Test” document and an analysis of the project scope.

Scope

Rui Santos’s Laboratory is a service that allows patients to schedule medical appointments with doctors from different specialties, depending on the doctor's availability. The patient must be able to view all of their appointments and must be able to change and cancel appointments. The doctor must be able to view their patient’s appointments for the day.

User Requirements

User Roles

  1. Administrator: Responsible for managing the medical specialties and other domain information necessary for the process.

  2. Doctor: Responsible for managing your personal information and querying the appointments requested by the patients.

  3. Patient: Responsible for managing your personal information and creating, canceling, or querying its appointments. The patient can also search for available doctors by specialty on a specific date.

User Stories

Medical specialties management.

  1. As an administrator, I want to be able to add medical specialties.

    • The medical specialties should be available in the system.
    • A log should be written when failing to add medical specialties.
  2. As an administrator, I want to be able to remove medical specialties.

    • The specialties should be removed from the system.
    • A log should be written when failing to remove medical specialties.

Doctor’s information management.

  1. As a doctor, I want to register and update my personal information such as contact numbers and email.
    • The doctor should be able to create a new record with your personal information.
    • The doctor should not be able to create a record with invalid or missing information.
    • A log should be written when an unhandled exception occurs.

Doctor’s office hours management.

  1. As a doctor, I want to be able to define and manage my work hours.
    • The doctor should be able to set their weekly schedule with specific hours for each day of the week.
    • The doctor should be able to modify their weekly schedule by changing the office hours.
    • It should not be possible to establish office hours for a doctor who is not registered.
    • A log should be written when an unhandled exception occurs.

Doctor’s appointments report.

  1. As a doctor, I want to be able to query all my appointments for a given date, with the patient's information allocated to each appointment.
    • The doctor should be able to query all of his appointments for a given date.
    • An empty list should be returned when the doctor is not registered.
    • An empty list should be returned when the doctor has no appointments for the given date.
    • A log should be written when an unhandled exception occurs.

Patient information management.

  1. As a patient, I want to register and update my personal information such as contact numbers and email.

Patient’s appointment report.

  1. As a patient, I want to be able to query all my appointments with the doctor’s information and contacts.

Search availability of doctors by specialty.

  1. As a patient, I want to search all available doctors with a specific medical specialty and free agenda on a given date.

Create appointments.

  1. As a patient, I want to be able to create an appointment with a doctor given a free date and time, with the doctor's identification such as a medical license number.

Cancel appointments.

  1. As a patient, I want to be able to cancel an appointment.