System Context Diagram - personalProjectsDeltaG8109/saludvital GitHub Wiki
flowchart LR
subgraph PEOPLE["Users (People)"]
direction TB
PATIENT["Patient<br/>Books and manages appointments"]
DOCTOR["Doctor<br/>Manages availability and views appointments"]
ADMIN["Administrator<br/>Manages users and system operations"]
GUEST["Unauthenticated User<br/>Registers and signs in"]
end
subgraph SYSTEM["SaludVital System"]
direction TB
SV["SaludVital<br/><br/>Medical Appointment<br/>Management System"]
end
subgraph SERVICES["External Services"]
direction TB
WA["WhatsApp Provider<br/>Receives appointment requests<br/>and sends responses"]
EMAIL["Email Provider<br/>Sends email notifications"]
SMS["SMS Provider<br/>Sends SMS notifications"]
end
PATIENT <-->|"Manage profile<br/>Request and manage appointments"| SV
DOCTOR <-->|"Manage availability<br/>View assigned appointments"| SV
ADMIN <-->|"Manage users<br/>and system operations"| SV
GUEST <-->|"Register and sign in"| SV
SV <-->|"Request appointments<br/>Reschedule appointments<br/>Cancel appointments<br/>View appointments<br/>Send and receive messages"| WA
SV -->|"Send email notifications"| EMAIL
EMAIL -->|"Delivery status, if available"| SV
SV -->|"Send SMS notifications"| SMS
SMS -->|"Delivery status, if available"| SV
style PEOPLE fill:#fff,stroke:#000,stroke-width:1px
style SYSTEM fill:#fff,stroke:#000,stroke-width:2px
style SERVICES fill:#fff,stroke:#000,stroke-width:1px
style PATIENT fill:#fff,stroke:#000,color:#000
style DOCTOR fill:#fff,stroke:#000,color:#000
style ADMIN fill:#fff,stroke:#000,color:#000
style GUEST fill:#fff,stroke:#000,color:#000
style SV fill:#fff,stroke:#000,color:#000,stroke-width:2px
style WA fill:#fff,stroke:#000,color:#000
style EMAIL fill:#fff,stroke:#000,color:#000
style SMS fill:#fff,stroke:#000,color:#000
linkStyle default stroke:#000,stroke-width:1.5px,color:#000
The System Context Diagram illustrates the boundaries of the SaludVital system and its interactions with external users and services.
It provides a high-level overview of how patients, doctors, administrators, unauthenticated users, and external communication providers interact with the medical appointment management system.
The diagram focuses on the relationship between SaludVital and its external environment. It does not represent internal modules, database tables, controllers, or implementation details.
The central component, SaludVital System, represents the complete medical appointment management system.
It acts as the central point through which users access the application's functionality and through which external communication services are requested.
The system boundary separates SaludVital from the people and external software services that interact with it.
The patient interacts with SaludVital to:
- Manage their profile.
- Request medical appointments.
- Manage existing appointments.
- Receive appointment status information and notifications.
The diagram represents the patient's interactions with the system without detailing the internal processes used to perform these operations.
The doctor interacts with SaludVital to:
- Manage availability.
- View assigned appointments.
- Access authorized appointment-related information.
These interactions represent the doctor's operational activities within the appointment management system.
The administrator interacts with SaludVital to:
- Manage users.
- Perform administrative tasks.
- Manage system operations.
The diagram represents administrative interactions at a high level without specifying individual administrative modules or permissions.
An unauthenticated user interacts with public functionality before accessing an authenticated account.
The main interactions represented are:
- Submitting registration requests.
- Submitting login requests.
- Receiving public page responses and authentication results.
This actor is distinct from authenticated patients, doctors, and administrators because the user has not yet established an authenticated session.
The WhatsApp provider represents the external communication service through which users can interact with SaludVital to manage medical appointments.
WhatsApp serves both as a communication channel and as an appointment management channel. Users can initiate appointment-related operations through WhatsApp without necessarily accessing the web application.
The intended interactions include:
- Request appointments: Users can request medical appointments through WhatsApp.
- Reschedule appointments: Users can request changes to their existing appointments.
- Cancel appointments: Users can request the cancellation of scheduled appointments.
- View appointments: Users can request information about their scheduled appointments.
- Receive messages and notifications: SaludVital can send appointment confirmations, updates, reminders, and other relevant messages through WhatsApp.
The communication flow includes:
- Users send messages or appointment management requests through WhatsApp.
- The WhatsApp provider forwards incoming messages or events to SaludVital through the configured integration.
- SaludVital processes the requests according to the applicable business rules and returns the corresponding response through the WhatsApp channel.
- The provider may return delivery events or other communication status information, depending on its capabilities.
WhatsApp is therefore an alternative access channel for appointment management, rather than merely a notification service.
The availability of these operations depends on the implemented integration, identity verification, and applicable appointment management rules. The diagram represents the intended functionality and does not, by itself, confirm that every operation is already implemented.
The email provider represents the external service responsible for sending email notifications.
The interaction includes:
- SaludVital requesting the delivery of email notifications.
- The provider potentially returning delivery status information, if supported by the selected provider and integration.
The SMS provider represents the external service responsible for sending SMS notifications.
The interaction includes:
- SaludVital requesting the delivery of SMS notifications.
- The provider potentially returning delivery status information, if supported by the selected provider and integration.
The arrows describe the information exchanged between SaludVital and its external actors or services.
- User-to-system flows: Represent requests and actions initiated by people using the application.
- System-to-user flows: Represent responses, appointment information, administrative results, and notifications returned by SaludVital.
- System-to-service flows: Represent requests sent by SaludVital to external communication providers.
- Service-to-system flows: Represent incoming messages or delivery events returned by external providers.
The labels on the arrows describe the purpose of each interaction rather than the technical protocol used to implement it.
The diagram uses the following conventions:
- Rectangular nodes: Represent external actors, external services, or the SaludVital system.
- Grouped sections: Organize people, the system, and external services into distinct logical areas.
- Directional arrows: Indicate the direction of information exchange.
- Bidirectional relationships: Represent interactions that involve communication in both directions.
- System boundary: Identifies SaludVital as the system under consideration.
The diagram is intentionally technology-independent and does not specify API endpoints, authentication protocols, database structures, or internal software components.
This diagram describes the intended system context and the main interaction points for SaludVital.
The presence of an external provider in the diagram represents a required or planned integration point; it does not, by itself, confirm that the integration has been implemented, configured, tested, or deployed.
The exact capabilities of WhatsApp, email, and SMS integrations depend on the selected providers and their supported interfaces.
Internal business rules, database relationships, and implementation details are documented separately in the relevant system documentation.
The System Context Diagram complements the other SaludVital architecture and database documentation:
- Database Design: Describes the database structure and relationships.
- Entity Relationship Diagram: Illustrates relationships between the data entities.
- Software Component Diagram: Describes the system's internal software components and their relationships.
- Functional Requirements: Defines the expected system behavior and functional capabilities.
Together, these documents provide complementary views of SaludVital, from its external environment to its data structure and internal architecture.
The System Context Diagram establishes a shared understanding of SaludVital's scope and its interactions with external users and communication services.
It provides a reference for requirements analysis, architecture design, implementation planning, and future system maintenance.