using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; /// /// Glasgow Coma Scale (GCS) scoring: latest computed score per encounter. /// [ApiController] [Route("api/v1/encounters/{encounterId:guid}/gcs")] [Produces("application/json")] [AuthorizePermission(ClinicalPermissions.EncountersRead)] public class GcsController : ControllerBase { private readonly IGcsService _gcs; public GcsController(IGcsService gcs) => _gcs = gcs; /// /// Returns the latest GCS score for an encounter, or null data when no score has been computed. /// /// Encounter id. /// The GCS component scores and total, or null. [HttpGet] [ProducesResponseType(typeof(ApiResponse), StatusCodes.Status200OK)] public async Task Current(Guid encounterId) { var score = await _gcs.GetCurrentAsync(encounterId); if (score is null) return Ok(ApiResponse.Ok(null)); return Ok(ApiResponse.Ok(new GcsScoreResponse( score.EyeScore, score.VerbalScore, score.MotorScore, score.TotalScore, score.Classification, score.CalculatedAt))); } }