using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
///
/// Encounter retrieval, status transitions, and clinical timeline.
///
[ApiController]
[Route("api/v1/encounters")]
[Produces("application/json")]
[Authorize]
public class EncountersController : ControllerBase
{
private readonly IEncounterService _encounters;
private readonly IDischargeSummaryService _dischargeSummary;
public EncountersController(
IEncounterService encounters,
IDischargeSummaryService dischargeSummary)
{
_encounters = encounters;
_dischargeSummary = dischargeSummary;
}
///
/// Lists encounters for ward dashboards with denormalized clinical summary fields.
///
/// Optional status filter (DB literal, e.g. ACTIVE).
/// Optional department filter (DB literal, e.g. ICU).
/// Page number (1-based).
/// Results per page.
[HttpGet]
[AuthorizePermission(ClinicalPermissions.EncountersRead)]
[ProducesResponseType(typeof(ApiResponse