using adas_core.Domain.Models.Masters; using adas_core.Domain.Models.MongoModels; using MongoDB.Bson; namespace adas_core.Application.Services.Interfaces; public interface IPatientCarePlanService { /// /// Retrieves a list of patient care plans associated with the specified patient identifier. /// /// The unique identifier of the patient whose care plans are being retrieved. /// A task that represents the asynchronous operation, containing a list of records for the given patient. Task> FindByPatientId(ObjectId patientId); /// /// Retrieves a list of patient care plans associated with the specified user identifier. /// /// The unique identifier of the user whose patient care plans are being retrieved. /// A task that represents the asynchronous operation. The task result contains a list of patient care plans associated with the user. Task> FindByUserId(ObjectId userId); /// /// Retrieves all patient care plans from the system. /// /// A task containing a list of all records. Task> FindAll(); /// /// Asynchronously inserts a single patient care plan into the underlying data store. /// /// The patient care plan to insert. Task InsertOneAsync(PatientCarePlan patientCarePlan); /// /// Archives the care plan associated with a finished procedure for the specified patient, processing the provided list of items to be archived. /// /// The patient whose procedure has been completed and whose care plan should be archived. /// The collection of option list items to be archived as part of the care plan archival process. Task ArchiveCarePlanFromJob(Patient patientWithFinishedProcedure, List itemsToArchive); /// /// Asynchronously archives records associated with the specified patient identifier. /// /// The unique identifier of the patient whose records are to be archived. Task ArchiveByPatientId(ObjectId patientid); /// /// Updates the ObjectId references from the specified old identifier to a new one across multiple records associated with the given patient. /// /// The string identifier of the patient whose related records will be updated. /// The ObjectId of the patient used to locate the records to update. /// The existing ObjectId value to be replaced in the matched records. Task UpdateManyObjectId(string patientid, ObjectId patientId, ObjectId oldId); }