Skip to content

Ahmad-L23/Clinic-API-V1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clinic Management System

Project Status: In Progress
Timeline: Feb 2025 - Present
Technology Stack: C#, ASP.NET Core, SQL Server, ADO.NET, T-SQL, RESTful API
Architecture: Three-Tier Architecture (Presentation, Business Logic, Data Access)


Table of Contents


Project Overview

The Clinic Management System is a web-based application developed with ASP.NET Core to help clinics efficiently manage daily operations.
It allows administrators, doctors, and staff to manage patients, appointments, prescriptions, medical records, and payments with secure and organized workflows.

The system is designed with Three-Tier Architecture:

  1. Presentation Layer: Handles API requests, input validation, and user interactions.
  2. Business Logic Layer: Implements core functionality such as scheduling appointments, processing payments, and validating user roles.
  3. Data Access Layer: Handles database operations using ADO.NET, T-SQL, and Stored Procedures.

Features

  • User Management: Register, authenticate, and manage users with role-based access.
  • Patient Management: Track patient information, medical history, and appointments.
  • Doctor Management: Manage doctor profiles, availability, and schedules.
  • Appointments: Schedule, update, and cancel appointments with conflict checks.
  • Medical Records: Store and retrieve detailed patient medical history.
  • Prescriptions: Create, view, and update prescriptions linked to patient visits.
  • Payments: Record and manage payments for services.
  • Secure RESTful API: Supports CRUD operations for all entities.
  • Input Validation: Ensures correct and safe user input.
  • CORS Enabled: Allows cross-origin requests for frontend integration.
  • Hashing: Secure storage of sensitive data like passwords.

Entities & Database Structure

1. Users

  • Purpose: Manage login and roles in the system.
  • Key Attributes:
    • UserId (PK)
    • Username
    • PasswordHash
    • Role (Admin, Doctor, Staff, Patient)
  • Notes: Passwords are hashed before storage. Role-based authorization controls access to resources.

2. Patients

  • Purpose: Store patient information and history.
  • Key Attributes:
    • PatientId (PK)
    • Name
    • DateOfBirth
    • Gender
    • ContactInfo
    • MedicalHistory (optional detailed text)

3. Doctors

  • Purpose: Maintain doctor profiles and their schedules.
  • Key Attributes:
    • DoctorId (PK)
    • Name
    • Specialization
    • AvailableHours
    • ContactInfo

4. Appointments

  • Purpose: Track and manage patient appointments.
  • Key Attributes:
    • AppointmentId (PK)
    • PatientId (FK)
    • DoctorId (FK)
    • AppointmentDateTime
    • Status (Scheduled, Completed, Cancelled)

5. MedicalRecords

  • Purpose: Store detailed records of patient visits.
  • Key Attributes:
    • RecordId (PK)
    • PatientId (FK)
    • DoctorId (FK)
    • Diagnosis
    • Notes
    • DateCreated

6. Prescriptions

  • Purpose: Manage prescribed medications for patients.
  • Key Attributes:
    • PrescriptionId (PK)
    • PatientId (FK)
    • DoctorId (FK)
    • Medications (list or JSON)
    • DosageInstructions
    • DateIssued

7. Payments

  • Purpose: Record financial transactions.
  • Key Attributes:
    • PaymentId (PK)
    • PatientId (FK)
    • Amount
    • PaymentDate
    • PaymentMethod (Cash, Card, Insurance)

Security

  • Role-Based Authorization: Users only access permitted resources.
  • Authentication: Token-based authentication (JWT) is used.
  • Password Hashing: All passwords are stored using secure hashing algorithms.
  • CORS Enabled: Supports secure frontend integration.