using adas_core.Domain.Enums; using adas_core.Domain.Models; using adas_core.Domain.Models.DTO; using adas_core.Domain.Models.Filter; using adas_core.Domain.Models.GroupedObservations; using adas_core.Domain.Models.MongoModels; using adas_core.Domain.Models.Pumps; using adas_core.Domain.Models.Responses; using MongoDB.Bson; namespace adas_core.Application.Services.Interfaces; public interface IConfigObservationService { Task GetByCodeSysAndCode(string codingSystem, string code); Task Get(string name); Task Get(T obs, bool onlyByName = false) where T : BasePatientObservation; Task RetentionActions(T obs) where T : BasePatientObservation; Task Map(T obs, bool onlyByName = false) where T : BasePatientObservation; Task Map(PatientTreatment treatment); Task GroupedObservationStatus(GroupedField groupedField, GroupedObservationEnum.Result result, string name, object value, double? min, double? max); Task> GetAllConfigs(CancellationToken ct = default); Task> GetPaginatedItems(PaginationFilter filter); Task GetAllCompact(); Task GetConfigById(ObjectId id); Task> GetConfigNames(string id); Task> GetConfigNames(); Task UpdateConfig(ConfigObservation configObservation); Task CreateConfig(ConfigObservation configObservation); Task RemoveConfigItem(string itemName); Task RemoveConfigItem(ObjectId id); Task?> GetConfigObservationItem(string name); Task GetSingleConfigObservationItem(string? code, string? codingSystem, string? name, string? originalName); Task DeleteSingleConfigObservationItem(ConfigObservation configObservationItem); Task> GetConfigObservationItemsByName(string name); }