using adas_core.Domain.Models;
using adas_core.Domain.Models.GroupedObservations;
using adas_core.Domain.Models.MongoModels;
namespace adas_core.Application.Services.Interfaces;
public interface IObservationDemoService
{
///
/// Generates a list of patient observations by evaluating the specified data fields for the given patient.
///
/// The patient for whom the observations are being generated.
/// The collection of fields used to drive the observation generation.
/// A task representing the asynchronous operation that returns the list of generated patient observations.
Task> GenerateObservationByField(Patient patient, List dataFields);
///
/// Generates a grouped observation for the specified patient based on the provided grouped field configuration.
///
/// The patient for whom the grouped observation is generated.
/// The grouped field definition that determines the grouping criteria for the observation.
/// A task that represents the asynchronous operation. The task result contains the generated .
Task GenerateGroupedObservation(Patient patient, GroupedField groupedField);
///
/// Generates a list of patient observation alarms for the specified patient based on the provided data alarm fields.
///
/// The patient for whom the observation alarms are generated.
/// The list of fields used to determine and generate the data alarms.
/// A task that represents the asynchronous operation, containing a list of objects generated for the patient.
Task> GenerateAlarmByField(Patient patient, List dataAlarmfields);
}