Creado apartir del commit b888de6c92056de294456f581a56e25e734d4ab7 de develop

This commit is contained in:
jrojas
2026-06-26 09:52:35 +02:00
commit 319fd3dfb0
746 changed files with 106610 additions and 0 deletions
@@ -0,0 +1,42 @@
using adas_core.Domain.Models;
using adas_core.Domain.Models.DTO;
using adas_core.Domain.Models.Masters;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IAdmissionRepository : IMongoRepository<Admission>
{
Task Delete(ObjectId id);
Task Update(Admission admission);
Task UpdateLocation(ObjectId id, ObjectId newLocation);
Task UpdatePatient(ObjectId id, Person patient);
Task<IEnumerable<Admission>> FindAll();
Task<Admission?> FindById(ObjectId id);
Task<Admission?> FindByNhc(string nhc);
//Task<IEnumerable<Admission>?> FindByUnit(string unit);
Task<List<Admission>> FindByLocation(PatientLocation location);
Task<IEnumerable<Admission>?> FindByOrigin(string origin);
Task<Admission?> InsertOneAsyncAndReturn(Admission origin);
Task<Admission?> SearchByPatientNumberAndDistinctUnit(string patientNumber, ObjectId unitId);
Task<List<Admission>> GetAdmissionByUnitIdWithOutPoC(ObjectId unitId);
Task<List<Admission>> FindByPointOfCareId(ObjectId pocId);
Task<List<Admission>> FindByUnitIds(List<ObjectId> unitIds);
Task<long> CountByUnitId(ObjectId unitId);
Task<IEnumerable<Admission>> UpdateMasterListOption(List<ObjectId> unitIds, UpdateOptionMasterListDto opt,
string typeName);
Task<IEnumerable<Admission>> DeleteMasterListOption(List<ObjectId> unitIds, OptionList opt, string typeName);
Task<bool> DeleteAdmissionsByUnitId(ObjectId unitId);
}
@@ -0,0 +1,15 @@
using adas_core.Domain.Models;
using adas_core.Domain.Models.GroupedObservations;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IAlarmRepository : IMongoRepository<PatientObservationAlarm>
{
Task<List<PatientObservationAlarm>> AggregatedPatientLastObservationsByField(ObjectId patientId,
List<Field>? filterObservations = null);
Task<List<PatientObservationAlarm>> AggregatedPatientNotExpiredObservationsByField(ObjectId patientId,
List<Field>? filterObservations, List<ConfigObservation> configAlarm);
}
@@ -0,0 +1,10 @@
using adas_core.Domain.Models;
namespace adas_core.Application.Repositories.Interfaces;
public interface IAppointmentArchiveRepository
{
Task InsertOneAsync(PatientAppointment patientAppointment);
Task DeleteBeforeDate(DateTime date);
Task<long> InsertBatch(IEnumerable<PatientAppointment> appointment);
}
@@ -0,0 +1,22 @@
using adas_core.Domain.Models;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IAppointmentRepository : IMongoRepository<PatientAppointment>
{
Task<List<PatientAppointment>> GetByPatient(ObjectId patientId);
new Task InsertOneAsync(PatientAppointment appointment);
Task Update(PatientAppointment appointment);
Task UpdateManyObjectId(string nameId, ObjectId id, ObjectId oldId);
new Task DeleteAsync(ObjectId id);
Task<IAsyncCursor<PatientAppointment>> FindByPatientIdAsync(ObjectId patientId);
Task DeleteByPatientId(ObjectId patientId);
Task<PatientAppointment?> FindByPatientAndVisitNumber(ObjectId patientId, string visitNumber);
Task<PatientAppointment?> FindByPatientAndReason(ObjectId patientId, string? appointmentReason);
Task<List<PatientAppointment>> FindByLocation(PatientLocation location);
Task<List<PatientAppointment>> FindByPoC(PointOfCare poc);
}
@@ -0,0 +1,17 @@
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IArchivePatientCarePlanRepository : IMongoRepository<PatientCarePlan>
{
Task<List<PatientCarePlan>?> FindByPatientId(ObjectId patientId);
Task<List<PatientCarePlan>?> FindByPatientId(string patientId);
Task<List<PatientCarePlan>?> FindByPatientNumber(string patientId);
Task<List<PatientCarePlan>> FindAll();
Task<List<PatientCarePlan>?> FindByIds(ObjectId oldPatientId, string? oldPatientPatientId,
string? oldPatientPatientNumber);
Task InsertManyAsync(List<PatientCarePlan> patientCarePla);
}
@@ -0,0 +1,16 @@
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IAuthorityRepository : IMongoRepository<Authorization>
{
public Task<Authorization> GetById(ObjectId authId);
void CreateNewAuthority(string roleName, ObjectId userId);
public Task<List<Authorization>> GetUserAuthorities(ObjectId userId);
public Task<List<Authorization>> GetAllAuthorities();
public Task<bool> DeleteAllAuthoritiesByUser(ObjectId userId);
Task<bool> DeleteAllAuthoritiesByUnit(ObjectId unitId);
Task<bool> DeleteAllAuthoritiesByDisplay(ObjectId displayId);
Task<List<Authorization>> GetByUnitId(ObjectId unitId);
}
@@ -0,0 +1,17 @@
using adas_core.Domain.Models.Filter;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface ICameraRepository : IMongoRepository<Camera>
{
Task<Camera?> GetById(ObjectId cameraId);
Task<Camera?> GetByName(string name);
List<Camera> GetCameraInList(List<ObjectId> configurationRelayList);
IFindFluent<Camera, Camera> GetPaginatedCameras(PaginationFilter request);
Task<Camera?> InsertOneCamera(Camera camera);
Task<Camera?> UpdateCameraAsync(ObjectId objectId, Camera camera);
Task<List<Camera>> GetSearchByNameCameras(string textToSearch);
}
@@ -0,0 +1,30 @@
using adas_core.Domain.Models.Filter;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IConfigObservationRepository : IMongoRepository<ConfigObservation>
{
Task<ConfigObservation?> FindById(ObjectId id);
Task<ConfigObservation?> Update(ConfigObservation configObservation);
Task<ConfigObservation?> Delete(ObjectId id);
Task<List<ObjectId>> FindAllIds();
Task<ICollection<ConfigObservation>> FindAll();
Task<List<string>> GetConfigNames(string id);
Task<List<string>> GetConfigNames();
Task<long> Count();
Task<ICollection<ConfigObservation>> GetPaginatedItems(PaginationFilter filter);
Task<ConfigObservation?> FindByName(string name);
Task<ConfigObservation?> GetByCodeSysAndCode(string? codingSystem, string? code);
Task<ConfigObservation> InsertOneAsyncAndReturn(ConfigObservation configObservationItem);
Task<List<ConfigObservation>> FindAllByName(string name);
Task<ConfigObservation?> GetSingleConfigObservationItem(string? code, string? codingSystem, string? name,
string? originalName);
}
@@ -0,0 +1,12 @@
using adas_core.Domain.Models.MongoModels;
namespace adas_core.Application.Repositories.Interfaces;
public interface IConfigPumpsRepository : IMongoRepository<ConfigPumps>
{
Task<ConfigPumps?> FindById(string id);
Task<List<ConfigPumps>?> GetAllConfigs();
Task<ConfigPumps?> UpdateConfig(ConfigPumps config);
Task<bool> DeleteConfig(ConfigPumps config);
}
@@ -0,0 +1,8 @@
using adas_core.Domain.Models.MongoModels;
namespace adas_core.Application.Repositories.Interfaces;
public interface IConfigUnitsRepository : IMongoRepository<ConfigUnits>
{
Task<ConfigUnits?> FindById(string id);
}
@@ -0,0 +1,14 @@
using adas_core.Domain.Models.DTO;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IDeviceRepository : IMongoRepository<Device>
{
Task<Device?> FindByMacAddr(string deviceDtoMacAddr);
Task<Device?> FindBySerialNumber(string deviceDtoSerialNumber);
Task<Device?> FindByUuid(string deviceDtoUuid);
Task<Device?> FindByKey(string deviceDtoKey);
Task UpdateDeviceStats(ObjectId id,DeviceDto deviceExist);
}
@@ -0,0 +1,10 @@
using adas_core.Domain.Models;
namespace adas_core.Application.Repositories.Interfaces;
public interface IDiagnosisArchiveRepository
{
Task InsertOneAsync(PatientDiagnosis patientDiagnosis);
Task DeleteBeforeDate(DateTime date);
Task<long> InsertBatch(IEnumerable<PatientDiagnosis> diagnosis);
}
@@ -0,0 +1,17 @@
using adas_core.Domain.Models;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IDiagnosisRepository : IMongoRepository<PatientDiagnosis>
{
Task<List<PatientDiagnosis>> GetByPatient(ObjectId patientId);
new Task InsertOneAsync(PatientDiagnosis diagnosis);
new Task DeleteAsync(ObjectId id);
Task UpdateManyObjectId(string nameId, ObjectId id, ObjectId oldId);
Task<IAsyncCursor<PatientDiagnosis>> FindByPatientIdAsync(ObjectId patientId);
Task DeleteByPatientId(ObjectId patientId);
Task<PatientDiagnosis?> FindByPatientIdAndCode(ObjectId patientId, string? diagnosisCode, string? codingSystem);
}
@@ -0,0 +1,44 @@
using adas_core.Domain.Models;
using adas_core.Domain.Models.DTO;
using adas_core.Domain.Models.Masters;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IDischargeRepository : IMongoRepository<Discharge>
{
Task Delete(ObjectId id);
Task Update(Discharge discharge);
Task UpdateUnit(ObjectId id, string unit);
Task UpdatePatient(ObjectId id, Patient patient);
Task<IEnumerable<Discharge>> FindAll();
Task<Discharge?> FindById(ObjectId id);
Task<IEnumerable<Discharge>?> FindByUnit(string unit);
Task<long> CountByUnitId(ObjectId unitId);
Task<IEnumerable<Discharge>?> FindByDestination(string destination);
Task<IEnumerable<Discharge>?> FindByService(string service);
Task<IEnumerable<Discharge>?> GetDischargesByUnitIds(IEnumerable<ObjectId>? unitIds);
Task<Discharge?> GetDischargeByLocation(PatientLocation location);
Task<Discharge?> GetByPatientId(ObjectId patientId);
Task<IEnumerable<Discharge>?> FindByPoCId(ObjectId pocId);
Task<Discharge?> GetDischargeByPointOfCareId(ObjectId poc);
Task<IEnumerable<Discharge>> UpdateMasterListOption(List<ObjectId> unitIds, UpdateOptionMasterListDto opt,
string typeName);
Task<IEnumerable<Discharge>> DeleteMasterListOption(List<ObjectId> unitIds, OptionList opt, string typeName);
Task<bool> DeleteByUnitId(ObjectId unitId);
}
@@ -0,0 +1,14 @@
using adas_core.Domain.Models.MongoModels;
using adas_core.Domain.Models.Responses;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IDisplayCardConfigRepository : IMongoRepository<CardConfig>
{
Task<List<CardConfig>> GetAll();
Task<CardConfig?> GetById(ObjectId configId);
Task<CardConfig?> InsertOneAsyncAndReturn(CardConfig config);
Task<UpdateResponse<CardConfig?>> UpdateOne(CardConfig? config);
Task<CardConfig?> DeleteOne(ObjectId configId);
}
@@ -0,0 +1,14 @@
using adas_core.Domain.Models.MongoModels;
using adas_core.Domain.Models.Responses;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IDisplayChartConfigRepository : IMongoRepository<ChartConfig>
{
Task<List<ChartConfig>> GetAll();
Task<ChartConfig?> GetById(ObjectId configId);
Task<ChartConfig?> InsertOneAsyncAndReturn(ChartConfig config);
Task<UpdateResponse<ChartConfig?>> UpdateOne(ChartConfig? config);
Task<ChartConfig?> DeleteOne(ObjectId configId);
}
@@ -0,0 +1,42 @@
using adas_core.Domain.Enums;
using adas_core.Domain.Models.DTO.Display;
using adas_core.Domain.Models.Filter;
using adas_core.Domain.Models.GroupedObservations;
using adas_core.Domain.Models.MongoModels;
using adas_core.Domain.Models.Responses;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IDisplayConfigRepository : IMongoRepository<DisplayConfig>
{
Task<List<DisplayConfig>> GetAll();
IFindFluent<DisplayConfig, DisplayConfigSummary> GetAllPaginated(PaginationFilter request);
Task<List<DisplayConfig>> GetByType(DisplayConfigEnums.DisplayType type);
Task<DisplayConfig?> GetById(ObjectId id);
Task<DisplayConfig?> GetDefault(DisplayConfigEnums.DisplayType type);
Task<DisplayConfig?> InsertOneAsyncAndReturn(DisplayConfig config);
Task<SmartDisplay?> UpdateSmartDisplay(ObjectId displayConfigId, SmartDisplay? newDisplayConfig);
Task<DisplayNurse?> UpdateDisplayNurse(ObjectId displayConfigId, DisplayNurseDto? newDisplayConfig,
List<string> nurseObs);
Task<DisplayConfig?> GetDefaultByUnitIdAndType(ObjectId unitId, DisplayConfigEnums.DisplayType displayType);
Task<bool> UpdateConfigColor(ObjectId objectIdConfigDisplay, ColorConfig colorConfig);
Task<bool> UpdateSetHomeBanner(ObjectId objectIdConfigDisplay, List<BannerItem> bannerItems);
Task<bool> UpdateBaseConfig(ObjectId objectIdConfigDisplay, DisplayConfig baseConfig);
Task<bool> UpdateHeaderConfig(ObjectId objectIdConfigDisplay, HeaderConfig headerConfig);
Task<bool> UpdateDisplayConfigHospitalName(ObjectId objectIdConfigDisplay, string name);
Task<bool> UpdateFieldList(ObjectId objectIdConfigDisplay, List<Field> fields);
Task<DisplayConfig?> DeleteDisplayConfig(ObjectId objectIdConfigDisplay);
Task<List<DisplayConfigMinimalResponse>> GetAllCompact();
Task<List<ObjectId>> GetAllByCardConfigId(ObjectId cardConfigId);
Task<List<ObjectId>> GetAllByCardConfigIdAndRotating(ObjectId cardConfigId);
Task<bool> UpdateCardConfigId(ObjectId? displayConfigId, ObjectId? resultId);
Task<bool> AddChartId(ObjectId? displayConfigId, ObjectId newChartIdToAdd);
Task<UpdateResult> UpdateDeletedChartConfig(ObjectId deletedId);
Task<ChartConfig> GetChartConfig(ObjectId objectIdConfigChart);
Task<bool> UpdateDetailConfigId(ObjectId? displayConfigId, ObjectId? resultId);
Task<List<ObjectId>> GetAllByCardDetailConfigId(ObjectId baseConfigId);
}
@@ -0,0 +1,14 @@
using adas_core.Domain.Models.MongoModels;
using adas_core.Domain.Models.Responses;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IDisplayDetailConfigRepository : IMongoRepository<CardDetailsConfig>
{
Task<List<CardDetailsConfig>> GetAll();
Task<CardDetailsConfig?> GetById(ObjectId configId);
Task<CardDetailsConfig?> InsertOneAsyncAndReturn(CardDetailsConfig config);
Task<UpdateResponse<CardDetailsConfig?>> UpdateOne(CardDetailsConfig? config);
Task<CardDetailsConfig?> DeleteOne(ObjectId configId);
}
@@ -0,0 +1,35 @@
using adas_core.Domain.Models.Filter;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IDisplayRepository : IMongoRepository<Display>
{
Task<List<Display>> GetAll();
// ¿FilterByAuthorities / FindByUser
// Delete
// FindByUnit
// UpdateConfig -> algo en específico? ¿Toda la colección?
Task<List<Display>> GetByPointOfCare(PointOfCare pointOfCare);
// Task<List<Display>> GetByUser();
Task<Display?> GetByName(string name);
Task<Display?> GetById(ObjectId id);
Task<Display?> GetByIdWithConfigDisplay(ObjectId id);
Task<List<Display>> GetByUnitId(ObjectId id);
Task<List<Display>> GetByConfigId(ObjectId id);
Task<Display?> UpdatePointOfCareList(ObjectId objectId, List<ObjectId> listPocObId);
Task<Display?> UpdateConfig(ObjectId oldDisplayId, DisplayConfig newDisplayConfigCast);
Task<Display?> UpdateConfigPreset(ObjectId objectIdDisplay, ObjectId objectIdConfigDisplay);
Task<Display> UpdateName(Display display, string name);
IFindFluent<Display, Display> GetPaginatedDisplays(PaginationFilter filter);
Task<long> IsDisplayConfigInUse(ObjectId displayConfigId);
Task<Display?> UpdateConfigId(ObjectId objectId, ObjectId displayConfigId);
Task<long> CountByUnitId(ObjectId unitId);
Task<bool> DeleteManyByUnitId(ObjectId unitId);
Task<List<Display>> GetByCardConfigId(ObjectId configId);
}
@@ -0,0 +1,25 @@
using adas_core.Domain.Enums;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IHistoricalConfigChangesRepository : IMongoRepository<HistoricalConfigChanges>
{
Task<HistoricalConfigChanges?> FindById(ObjectId id);
Task<HistoricalConfigChanges?> Update(HistoricalConfigChanges historicalConfigChange);
Task<HistoricalConfigChanges?> Delete(ObjectId id);
Task<List<ObjectId>> FindAllIds();
Task<ICollection<HistoricalConfigChanges>> FindAll();
new Task<HistoricalConfigChanges?> InsertOneAsync(HistoricalConfigChanges patientObservation);
Task<ICollection<HistoricalConfigChanges>> FindLastHistoricalConfigChangesByType(
DisplayConfigEnums.ConfigTypes cfgType, int num = 10);
Task<ICollection<HistoricalConfigChanges>> FindLastHistoricalConfigChangesByUser(string user,
DisplayConfigEnums.ConfigTypes? cfgType = null, int num = 10);
}
@@ -0,0 +1,16 @@
using adas_core.Domain.Models.Filter;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface ILightBeaconRepository : IMongoRepository<LightBeacon>
{
List<LightBeacon> GetLightBeaconInList(List<ObjectId> configurationRelayList);
Task<LightBeacon?> GetById(ObjectId relayId);
Task<LightBeacon?> GetByName(string name);
Task<LightBeacon?> InsertOneAsyncAndReturn(LightBeacon beacon);
IFindFluent<LightBeacon, LightBeacon> GetPaginatedRelays(PaginationFilter filter);
Task<List<LightBeacon>> GetSearchByName(string textToSearch);
}
@@ -0,0 +1,34 @@
using adas_core.Domain.Models.DTO;
using adas_core.Domain.Models.Filter;
using adas_core.Domain.Models.Masters;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IMasterListRepository<T> : IMongoRepository<T> where T : MasterList
{
Task Delete(ObjectId id);
Task Update(T list);
Task<T?> FindById(ObjectId id, LocaleEnum? locale);
Task<T?> FindById(ObjectId id);
Task<OptionList?> FindOptionItemById(ObjectId masterId, ObjectId optionId, LocaleEnum locale);
Task<OptionList?> FindOptionItemById(ObjectId masterId, ObjectId optionId);
Task<IEnumerable<T>> GetAll();
Task<IEnumerable<MasterListDto>> GetAllWithoutOptions();
Task<T?> FindByName(string name);
Task<List<OptionList>> GetMasterListByIdAndTextSearchContaining(ObjectId id, string? textSearch);
Task<OptionList?> AddOptionToMasterList(ObjectId id, FilterOptionListElement opt);
Task<OptionList?> UpdateMasterListOption(ObjectId id, OptionList newOpt, LocaleEnum locale);
Task<OptionList?> UpdateFullMasterListOption(ObjectId id, OptionList newOpt);
Task<OptionList?> UpdateMasterListOption(ObjectId id, OptionList newOpt);
Task<bool> DeleteMasterListOption(ObjectId id, ObjectId deleteOptId);
Task<UpdateMasterListDetailsDto?> UpdateOptionDetailsToMasterList(ObjectId id, UpdateMasterListDetailsDto opt);
Task<bool> UpdateMasterListName(ObjectId id, string name);
Task<bool> UpdateMasterListDescription(ObjectId id, string description);
Task<bool> RemoveMasterListOption(ObjectId id, OptionList oldOpt);
IFindFluent<T, T> GetPaginatedMasterList(PaginationFilter filter);
Task<List<OptionList>> GetPaginatedOptions(PaginationFilter filter, ObjectId listId);
Task<int> Count();
Task<List<OptionList>> GetMasterListByIdAndSearchOptions(ObjectId id, FilterOptionListElement? filterOption);
}
@@ -0,0 +1,22 @@
using adas_core.Domain.Models;
using adas_core.Domain.Models.Filter;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IMedicineRepository : IMongoRepository<Medicine>
{
Task<Medicine?> GetMedicine(string code);
Task<List<Medicine>> GetMedicineByCodeOrNote(List<string> codeNotes);
Task<Medicine?> GetMedicineByName(string name);
Task<List<Medicine>> GetAll();
Task<Medicine?> GetMedicineById(ObjectId medicineId);
Task<Medicine?> PostMedicine(Medicine medicine);
Task<Medicine?> UpdateMedicine(Medicine medicine);
Task DeleteMedicineById(ObjectId medicineId);
IAggregateFluent<BsonDocument> GetDistinctFieldDataQuery(string field);
IFindFluent<Medicine, Medicine> GetPaginatedMedicines(PaginationFilter filter);
}
@@ -0,0 +1,14 @@
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IMongoRepository<T>
{
IMongoCollection<T> Collection { get; }
string GetCollectionName();
Task InsertOneAsync(T obj);
Task<T?> DeleteAsync(ObjectId id);
Task UpdateOneAsync(ObjectId id, T obj);
}
@@ -0,0 +1,15 @@
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface INoticeRepository : IMongoRepository<Notice>
{
Task Delete(ObjectId id);
Task Update(Notice notice);
Task<IEnumerable<Notice>> FindAll();
Task<Notice?> FindById(ObjectId id);
Task<IEnumerable<Notice>?> FindByDate(DateTime date);
Task<IEnumerable<Notice>?> FindByType(string type);
Task<IEnumerable<Notice>?> FindByDisplayId(ObjectId displayId);
}
@@ -0,0 +1,16 @@
using adas_core.Domain.Models;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IObservationArchiveRepository : IMongoRepository<PatientObservation>
{
new Task InsertOneAsync(PatientObservation patientObservation);
Task DeleteBeforeDate(DateTime date);
Task<long> InsertBatch(IEnumerable<PatientObservation> observations);
Task<List<PatientObservation>> AggregatedPatientLastObservations(ObjectId patientId, int num, DateTime lastDate,
List<string> filterObservations);
Task<List<PatientObservation>> FindAllFromPatient(ObjectId patientId);
}
@@ -0,0 +1,74 @@
using adas_core.Domain.Models;
using adas_core.Domain.Models.Filter;
using adas_core.Domain.Models.GroupedObservations;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IObservationRepository : IMongoRepository<PatientObservation>
{
Task<List<BsonDocument>> AggregatedPatientGroupedObservations(ObjectId patientId, GroupedField groupedField);
Task<List<PatientObservation>> AggregatedPatientLastObservations(ObjectId patientId, int num,
List<string>? filterObservations = null);
Task<List<PatientObservation>> AggregatedPatientLastObservationsByLastDate(ObjectId patientId, int num,
DateTime lastDate, List<string>? filterObservations = null);
Task<List<PatientObservation>> AggregatedPatientLastObservationsByField(ObjectId patientId,
List<Field>? filterObservations = null);
Task<IEnumerable<PatientObservation>> FindLastObservations(ObjectId patientId, string codingSystem, string code,
int num = 2);
Task<List<PatientObservation>> FindLastObservationsByCodingSystem(ObjectId patientId, string codingSystem,
int num = 10);
Task<PatientObservation?> FindLastObservationBeforeDate(ObjectId patientId, string? name, DateTime date);
Task UpdateExpiredObservations(List<PatientObservation> expiredObservations);
Task<List<PatientObservation>?> FindAnyWithSameDate(ObjectId patientId, string? name, DateTime date);
Task<List<PatientObservation>> FindAnyBeforeDate(ObjectId patientId, DateTime date);
Task<List<PatientObservation>> FindLatestUniqueValuesByName(ObjectId patientId, string name, int? expires);
new Task InsertOneAsync(PatientObservation patientObservation);
Task DeleteByPatientId(ObjectId id);
Task<IAsyncCursor<PatientObservation>> FindByPatientIdAsync(ObjectId patientId);
Task<IAsyncCursor<PatientObservation>> FindByPatientIdAndCodingSystemAsync(ObjectId patientId, string codingSystem,
string name);
new Task DeleteAsync(ObjectId id);
Task<List<PatientObservation>> DeleteOlderDaysAsync(string name, int retentionPolicyValue);
Task<List<PatientObservation>> DeleteOlderNumberAsync(string name, int retentionPolicyValue);
Task<bool> ExistBySystemId(ObjectId patientid, string systemId);
Task<List<PatientObservation>> DeleteOlderSecondsAsync(string name, int value);
Task<List<PatientObservation?>> AggregatedPatientActiveIntravenousLinesObservations(ObjectId patientId);
Task<Dictionary<ObjectId, DateTime>> FindAllLastPatientObservationTime();
Task<PatientObservation?> FindById(ObjectId id);
Task<List<PatientObservation>?> FindByPatientId(ObjectId id);
Task Update(PatientObservation observation);
Task UpdateManyObjectId(string nameId, ObjectId id, ObjectId oldId);
Task<IEnumerable<PatientObservation>> FindNotExpired(List<string?>? filterObservations);
Task<IEnumerable<PatientObservation>> FindByName(string name, DateTime? date);
Task UpdateMany(IEnumerable<PatientObservation> patientObservations, UpdateDefinition<PatientObservation> update);
Task<IEnumerable<PatientObservation>> FindAll();
Task ExpireExpiredObservations(List<ConfigObservation> configObservationsToExpire);
//Task<PaginationResponse<PatientObservation>> GetPaginatedObservations(PaginationFilter filter);
IFindFluent<PatientObservation, PatientObservation> GetPaginatedObservations(PaginationFilter filter);
Task<IEnumerable<PatientObservation>> FindLastNotExpiredObservatonsByPatient(ObjectId patientId, string name,
int? endAfter = null, int? num = null);
}
@@ -0,0 +1,12 @@
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IPatientArchiveRepository : IMongoRepository<Patient>
{
Task<Patient?> FindByPatientNumber(string patientNumber);
Task<List<Patient>> FindAll();
Task<Patient?> SearchByPatientNumberAndDistinctUnit(string patientNumber, ObjectId unitId);
}
@@ -0,0 +1,12 @@
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IPatientCarePlanRepository : IMongoRepository<PatientCarePlan>
{
Task<List<PatientCarePlan>> FindByPatientId(ObjectId patientId);
Task<List<PatientCarePlan>> FindByUserId(ObjectId userId);
Task<List<PatientCarePlan>> FindAll();
Task UpdateManyObjectId(string patientid, ObjectId patientId, ObjectId oldId);
}
@@ -0,0 +1,45 @@
using adas_core.Domain.Models;
using adas_core.Domain.Models.DTO;
using adas_core.Domain.Models.Filter;
using adas_core.Domain.Models.Masters;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IPatientRepository : IMongoRepository<Patient>
{
Task Delete(ObjectId id);
Task<Patient?> FindByLocation(PatientLocation location);
Task<Patient?> FindById(ObjectId id);
Task UpdateLocation(ObjectId id, PatientLocation location);
Task UpdateLocation(ObjectId id, ObjectId location);
Task UpdateAttendingDoctor(ObjectId id, Person attendingDoctor);
Task UpdatePatientData(ObjectId id, string patientNumber, Person data, bool updatePatientNumber = true);
Task Update(Patient patient);
Task<Patient?> FindByPatientNumber(string patientNumber);
Task<Patient?> FindByPatientId(string patientId);
Task<List<Patient>> FindAll();
Task<List<Patient>> FindByPointOfCare(string pointOfCare);
Task<List<Patient>> FindByPointOfCare(ObjectId pointOfCare);
Task<Patient?> FindByPointOfCareId(ObjectId pointOfCare);
Task<List<Patient>> FindDischargedPatients();
Task<Patient?> UpdateOne(Patient updatedPatient);
Task<List<Patient>> FindInActivePoC();
Task<List<Patient>> FindInInactivePoC();
Task<List<Patient>> FindPatientsNotUpdatedSince(DateTime date);
Task<Patient?> FindByPatientId(ObjectId patientId);
Task<Patient?> UpdatePatientIncomingData(ObjectId patientId, Patient person);
Task<Patient?> UpdatePatientDemographicData(ObjectId patientId, Patient person);
Task<Patient> FindByUnitAndPocId(ObjectId unit, ObjectId pointOfCare);
Task<long> CountByUnitId(ObjectId unitId);
Task<Patient?> SearchByPatientNumberAndDistinctUnit(string patientNumber, ObjectId unitId);
IFindFluent<Patient, Patient> GetPaginatedPatients(PaginationFilter filter);
Task<List<Patient>> FindAllPatientWithFinishedProcedures(int archiveProcedureEndDateAfterMinutes);
Task<List<Patient>> FindAllPatientWithFinishedTests(int archiveTestEndDateAfterMinutes);
Task<List<Patient>> FindAllPatientWithFinishedTreatment(int archiveTreatmentEndDateAfterMinutes);
Task<List<Patient>> UpdateMasterListOption(List<ObjectId> unitIds, UpdateOptionMasterListDto opt, string typeName);
Task<List<Patient>> GetPatientsByUnitIds(List<ObjectId> unitIds, string typeName);
Task<IEnumerable<Patient>> DeleteMasterListOption(List<ObjectId> unitIds, OptionList opt, string typeName);
}
@@ -0,0 +1,9 @@
using adas_core.Domain.Models.MongoModels;
namespace adas_core.Application.Repositories.Interfaces;
public interface IPoCMappingRepository
{
Task<PoCMapping?> FindByKey(string key);
string GetCollectionName();
}
@@ -0,0 +1,18 @@
using adas_core.Domain.Models;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IPoCSettingsRepository : IMongoRepository<PoCSettings>
{
Task Delete(ObjectId id);
Task<PoCSettings?> FindByLocation(PatientLocation location);
Task<PoCSettings?> FindById(ObjectId id);
Task Update(PoCSettings pocSettings);
Task<List<PoCSettings>> FindAll();
}
@@ -0,0 +1,58 @@
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.MongoModels;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IPointOfCareRepository : IMongoRepository<PointOfCare>
{
Task Delete(ObjectId id);
Task Update(PointOfCare pointOfCare);
Task UpdateUnitId(ObjectId id, Unit unit);
Task UpdateConfiguration(ObjectId id, PointOfCareConfiguration configuration);
Task<PointOfCare?> FindById(ObjectId id);
Task<IEnumerable<PointOfCare>?> FindAllByUnitId(ObjectId unit);
Task<IEnumerable<PointOfCare>?> FindByRoom(string room);
Task<List<PointOfCare>> FindByFilter(FilterDefinition<PointOfCare> filter,
ProjectionDefinition<PointOfCare>? projection = null);
Task<IEnumerable<PointOfCare>?> FindByBed(string bed);
Task<List<PointOfCare>?> GetAll();
Task<List<PointOfCare>?> GetAllConfigs();
Task<List<PointOfCare>?> GetAllLocationInfo();
Task<PointOfCare?> GetPoCConfiguration(ObjectId pocId);
Task<PointOfCare?> FindByBedAndUnitId(string? bed, ObjectId unitId);
Task<PointOfCare?> FindByPatientLocation(PatientLocation patientLocation);
Task<IEnumerable<PointOfCare>> FindByUnitAndStatus(ObjectId unitId, StatusEnum.PointOfCare status,
bool excludeVirtual = false);
Task UpdateRelayConfig(ObjectId pocId, List<Relay> relayConfig);
Task UpdateRelayConfig(ObjectId pocId, List<ObjectId> relayConfig);
IFindFluent<PointOfCare, PointOfCare> GetPaginatedPoCs(PaginationFilter filter);
Task<long> CountByUnitId(ObjectId unitId);
Task<long> CountVirtualsByUnitId(ObjectId unitId);
Task<bool> DeleteManyByUnitId(ObjectId unitId);
Task<PointOfCare?> FindByIdAllConfig(ObjectId id);
Task<HashSet<ObjectId>> FindAllIdCamerasInUse();
Task<HashSet<ObjectId>> FindAllIdRelaysInUse();
Task<HashSet<ObjectId>> FindAllIdBeaconsInUse();
Task<IEnumerable<PointOfCare>?> FindAllByUnitIdWithDevices(ObjectId unitId);
}
@@ -0,0 +1,22 @@
using adas_core.Domain.Models.Pumps;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IPumpAlarmEventRepository
{
Task InsertAsync(PumpAlarmEvent alarmEvent);
Task<IEnumerable<PumpAlarmEvent>> FindByDeviceIdAsync(
string deviceId,
DateTime? from = null,
DateTime? to = null,
int? limit = null);
Task<PumpAlarmEvent?> FindLastByDeviceIdAsync(string deviceId);
// cleanup
Task DeleteByPatientId(ObjectId patientId);
Task<long> UpdateManyObjectIdByFiledNameAsync(string fieldName, ObjectId newId, ObjectId oldId);
}
@@ -0,0 +1,27 @@
using adas_core.Domain.Enums;
using adas_core.Domain.Models.Pumps;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IPumpAlarmStateRepository
{
Task<PumpAlarmState?> FindActiveAsync(
string deviceId,
PumpEnum.AlarmType? alarmType,
string? alarmCodeMdc = null);
Task<IEnumerable<PumpAlarmState>> FindAllActiveByDeviceAsync(string deviceId);
Task UpsertActiveAsync(PumpAlarmState state);
Task RemoveAsync(
string deviceId,
PumpEnum.AlarmType? alarmType,
string? alarmCodeMdc = null);
//cleanup
Task DeleteByPatientId(ObjectId patientId);
Task<long> UpdateManyObjectIdByFieldNameAsync(string fieldName, ObjectId newId, ObjectId oldId);
}
@@ -0,0 +1,30 @@
using MongoDB.Bson;
using MongoDB.Driver;
using adas_core.Domain.Models.Pumps;
namespace adas_core.Application.Repositories.Interfaces
{
public interface IPumpArchiveRepository
{
/// <summary>
/// Devuelve la colección subyacente
/// </summary>
IMongoCollection<PumpObservation> Collection { get; }
/// <summary>
/// Inserta una observación de bomba en la colección de archivo.
/// </summary>
Task InsertAsync(PumpObservation obs);
/// <summary>
/// Inserta múltiples observaciones en la colección de archivo.
/// </summary>
Task InsertManyAsync(IEnumerable<PumpObservation> observations);
/// <summary>
/// Búsqueda por paciente para auditoría o restauración.
/// </summary>
Task<IEnumerable<PumpObservation>> FindByPatientIdAsync(ObjectId patientId,
DateTime? from = null, DateTime? to = null, int? limit = null);
}
}
@@ -0,0 +1,28 @@
using adas_core.Domain.Models.Pumps;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IPumpObservationRepository
{
Task InsertAsync(PumpObservation obs);
Task InsertManyAsync(IEnumerable<PumpObservation> observations);
Task<IEnumerable<PumpObservation>> FindByDeviceIdAsync(
string deviceId,
DateTime? from = null,
DateTime? to = null,
int? limit = null);
Task<PumpObservation?> FindLastByDeviceIdAsync(string deviceId);
Task<Dictionary<ObjectId, DateTime>> FindAllLastPatientObservationTimeAsync();
Task<IEnumerable<PumpObservation>> FindByPatientId(ObjectId? patientId);
Task<List<PumpObservation>> AggregatedPatientLastObservations(ObjectId patientId, int num = 100);
Task DeleteByPatientId(ObjectId? patientId);
Task<long> DeleteOlderThanDaysAsync(int days, string? name = null);
Task<long> DeleteKeepLastNAsync(int maxCount);
Task<long> UpdateManyObjectIdByFieldAsync(string fieldName, ObjectId newId, ObjectId? oldId);
}
@@ -0,0 +1,12 @@
using adas_core.Domain.Models.Pumps;
namespace adas_core.Application.Repositories.Interfaces;
public interface IPumpStateRepository
{
Task<PumpState?> FindByDeviceIdAsync(string deviceId);
Task UpsertAsync(PumpState state);
Task<IEnumerable<PumpState>> GetAllAsync();
}
@@ -0,0 +1,10 @@
using adas_core.Domain.Models;
namespace adas_core.Application.Repositories.Interfaces;
public interface IRecordingAlertArchiveRepository : IMongoRepository<PatientRecordingAlert>
{
new Task InsertOneAsync(PatientRecordingAlert recordingAlert);
Task DeleteBeforeDate(DateTime date);
Task<long> InsertBatch(IEnumerable<PatientRecordingAlert> recordingAlerts);
}
@@ -0,0 +1,18 @@
using adas_core.Domain.Models;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IRecordingAlertRepository : IMongoRepository<PatientRecordingAlert>
{
Task<List<PatientRecordingAlert>> AggregatedPatientLastObservations(ObjectId patientId, int num);
Task<List<PatientRecordingAlert>> FindLastObservations(ObjectId patientId, string name, int num = 2);
new Task InsertOneAsync(PatientRecordingAlert patientRecordingAlert);
Task DeleteOlderDaysAsync(string name, int value);
Task DeleteOlderNumberAsync(string name, int value);
Task DeleteByPatientId(ObjectId patientId);
Task UpdateManyObjectId(string nameId, ObjectId id, ObjectId oldId);
Task<IAsyncCursor<PatientRecordingAlert>> FindByPatientIdAsync(ObjectId patientId);
}
@@ -0,0 +1,18 @@
using adas_core.Domain.Enums;
using adas_core.Domain.Models.Filter;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IRelayRepository : IMongoRepository<Relay>
{
Task<Relay?> GetById(ObjectId relayId);
List<Relay> GetRelayByTypeInList(List<ObjectId> configurationRelayList, RelayEnum.Type type);
List<Relay> GetRelayInList(List<ObjectId> configurationRelayList);
IFindFluent<Relay, Relay> GetPaginatedRelays(PaginationFilter filter);
Task<Relay?> InsertOneRelayAsync(Relay request);
Task<Relay?> UpdateRelayAsync(ObjectId objectId, Relay relay);
Task<Relay?> GetByName(string? requestRelayName);
}
@@ -0,0 +1,21 @@
using adas_core.Domain.Models;
using adas_core.Domain.Models.MongoModels;
namespace adas_core.Application.Repositories.Interfaces;
public interface ISectionRepository : IMongoRepository<Section>
{
Task<List<Section>> FindByLocation(PatientLocation location);
Task<Section?> FindById(object id);
Task<Section?> FindById(string id);
Task<Section?> FindBySection(string section);
Task<Section?> FindByPointOfCare(string pointOfCare);
Task<List<Section>> GetAll();
Task<Section?> UpdateSection(Section section);
//Task<Section?> UpdateSectionItems(Section section);
//Task<Section?> UpdateSectionConfig(Section section);
//Section UpdateSectionItems(string sectionId, string group, string boxName, BoxResponse boxUpdated);
Task<Section?> InsertOneSection(Section section);
}
@@ -0,0 +1,10 @@
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface IServiceConfigRepository : IMongoRepository<ServiceConfig>
{
Task<ServiceConfig?> FindById(ObjectId oid);
Task<ServiceConfig?> FindById(string id);
}
@@ -0,0 +1,13 @@
using adas_core.Domain.Models;
using MongoDB.Bson;
namespace adas_core.Application.Repositories.Interfaces;
public interface ITreatmentArchiveRepository
{
Task InsertOneAsync(PatientTreatment patientTreatment);
Task DeleteBeforeDate(DateTime date);
Task<long> InsertBatch(IEnumerable<PatientTreatment> treatments);
Task<List<PatientTreatment>> FindAllFromPatient(ObjectId patientId);
}
@@ -0,0 +1,23 @@
using adas_core.Domain.Models;
using adas_core.Domain.Models.Filter;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface ITreatmentRepository : IMongoRepository<PatientTreatment>
{
Task<IEnumerable<PatientTreatment>> GetByPatientId(ObjectId patientId);
Task<IAsyncCursor<PatientTreatment>> GetById(ObjectId id);
new Task InsertOneAsync(PatientTreatment treatment);
new Task DeleteAsync(ObjectId id);
Task<bool> Update(PatientTreatment treatment);
Task<IAsyncCursor<PatientTreatment>> FindByPatientIdAsync(ObjectId patientId);
Task<IEnumerable<PatientTreatment>> FindByPatientId(ObjectId patientId);
Task<bool> DeleteByPatientId(ObjectId patientId);
Task<List<PatientTreatment>> FindBolusTreatments(ObjectId patientId);
Task UpdateManyObjectId(string nameId, ObjectId id, ObjectId oldId);
IFindFluent<PatientTreatment, PatientTreatment> GetPaginatedTreatments(PaginationFilter filter);
Task<List<PatientTreatment>> GetActiveTreatmentsByPatientIdAndOrder(ObjectId patientId, string order);
}
@@ -0,0 +1,28 @@
using adas_core.Domain.Enums;
using adas_core.Domain.Models.DTO;
using adas_core.Domain.Models.Filter;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IUnitRepository : IMongoRepository<Unit>
{
//Task<Unit?> FindByLocation(PatientLocation location);
Task<Unit?> FindById(object id);
Task<Unit?> FindByName(string section);
//Task<Unit?> FindByPointOfCare(PointOfCare pointOfCare);
Task<List<Unit>> GetAll();
Task<Unit?> UpdateUnit(Unit section);
Task<Unit?> InsertOneUnit(Unit unit);
Task<IEnumerable<Unit>> FindByMasterListId(ObjectId id, MasterListType masterListType);
Task<IEnumerable<Unit>> FindByMasterListId(ObjectId id);
Task<Unit?> UpdateUnitMasterList(UpdateUnitIdListDto updateUnitListDto);
Task<Unit?> UpdateUnitInfo(ObjectId unitId, string name, string title);
Task<bool> UpdateConfiguration(ObjectId unitIdParsed, UnitConfiguration unitConfiguration);
IFindFluent<Unit, Unit> GetPaginatedUnits(PaginationFilter filter);
Task<long> CountUnitsByMasterListId(ObjectId id, MasterListType masterListType);
}
@@ -0,0 +1,18 @@
using adas_core.Domain.Models.Filter;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
using MongoDB.Driver;
namespace adas_core.Application.Repositories.Interfaces;
public interface IUserRepository : IMongoRepository<User>
{
Task<User?> GetUser(string username, string password);
Task<User?> GetById(ObjectId id);
Task<User?> GetByUserName(string name);
Task<User?> GetByName(string name);
Task<User?> GetByUserAndAuthoritesName(string name);
Task<User?> UpdateUser(User user, bool updatePass);
IFindFluent<User, User> GetPaginatedUsers(PaginationFilter filter);
Task<User> GetOrCreateSystemUser();
}