public interface IMedicationService
{
    Task<MedicationAdministration> CreateAsync(
        Guid encounterId, CreateMedicationAdministrationRequest req);
    Task<PagedResult<MedicationAdministration>> ListByEncounterAsync(
        Guid encounterId, DateTimeOffset? since, int page, int pageSize);
    Task<MedicationAdministration> GetByIdAsync(Guid id);
    Task<IReadOnlyList<MedicationAdministration>> GetRecentForEncounterAsync(
        Guid encounterId, string observationCode, int windowMinutes);
}