Table of Contents

Interface IAppointmentRepository

Namespace
Core.CliniCore.Repositories
Assembly
Core.CliniCore.dll

Repository interface for appointment (time interval) operations. Extends generic repository with scheduling-specific queries.

public interface IAppointmentRepository : IRepository<AppointmentTimeInterval>
Inherited Members

Methods

GetAvailableSlots(Guid, DateTime, TimeSpan)

Gets available time slots for a physician on a given date

IEnumerable<(DateTime Start, DateTime End)> GetAvailableSlots(Guid physicianId, DateTime date, TimeSpan duration)

Parameters

physicianId Guid
date DateTime
duration TimeSpan

Returns

IEnumerable<(DateTime Start, DateTime End)>

GetByDate(DateTime)

Gets all appointments for a specific date

IEnumerable<AppointmentTimeInterval> GetByDate(DateTime date)

Parameters

date DateTime

Returns

IEnumerable<AppointmentTimeInterval>

GetByPatient(Guid)

Gets all appointments for a specific patient

IEnumerable<AppointmentTimeInterval> GetByPatient(Guid patientId)

Parameters

patientId Guid

Returns

IEnumerable<AppointmentTimeInterval>

GetByPhysician(Guid)

Gets all appointments for a specific physician

IEnumerable<AppointmentTimeInterval> GetByPhysician(Guid physicianId)

Parameters

physicianId Guid

Returns

IEnumerable<AppointmentTimeInterval>

GetByStatus(AppointmentStatus)

Gets appointments filtered by status

IEnumerable<AppointmentTimeInterval> GetByStatus(AppointmentStatus status)

Parameters

status AppointmentStatus

Returns

IEnumerable<AppointmentTimeInterval>

HasConflict(Guid, DateTime, TimeSpan, Guid?)

Checks if a proposed appointment would conflict with existing ones

bool HasConflict(Guid physicianId, DateTime start, TimeSpan duration, Guid? excludeAppointmentId = null)

Parameters

physicianId Guid
start DateTime
duration TimeSpan
excludeAppointmentId Guid?

Returns

bool