Class EsameRefertoService

java.lang.Object
it.uniupo.simnova.service.scenario.components.EsameRefertoService

@Service public class EsameRefertoService extends Object
Servizio per la gestione degli esami e dei referti associati ai pazienti all'interno degli scenari. Fornisce funzionalità per salvare, recuperare ed eliminare i referti degli esami, inclusa la gestione dei file multimediali a essi collegati.
Version:
1.0
Author:
Alessandro Zappatore
  • Constructor Details

    • EsameRefertoService

      public EsameRefertoService(FileStorageService fileStorageService)
      Costruisce una nuova istanza di EsameRefertoService. Inietta il servizio FileStorageService necessario per le operazioni sui file.
      Parameters:
      fileStorageService - Il servizio per la gestione dei file.
  • Method Details

    • saveEsamiReferti

      public boolean saveEsamiReferti(int scenarioId, List<EsameReferto> esamiData)
      Salva una lista di oggetti EsameReferto per uno scenario specifico. Prima di inserire i nuovi referti, questo metodo tenta di eliminare tutti i referti esistenti associati allo stesso scenarioId per prevenire duplicati o dati obsoleti. L'operazione di salvataggio avviene in batch per migliorare le prestazioni.
      Parameters:
      scenarioId - L'ID dello scenario a cui i referti degli esami devono essere associati.
      esamiData - Una List di oggetti EsameReferto da salvare nel database.
      Returns:
      true se il salvataggio è avvenuto con successo per tutti i referti; false altrimenti.
    • getEsamiRefertiByScenarioId

      public List<EsameReferto> getEsamiRefertiByScenarioId(int scenarioId)
      Recupera tutti gli oggetti EsameReferto associati a uno scenario specifico. I referti vengono ordinati per id_esame.
      Parameters:
      scenarioId - L'ID dello scenario per cui recuperare gli esami e i referti.
      Returns:
      Una List di oggetti EsameReferto associati allo scenario. Restituisce una lista vuota se non vengono trovati referti o in caso di errore.
    • deleteEsameReferto

      public boolean deleteEsameReferto(int idEsameReferto, int scenarioId)
      Elimina un singolo referto di esame specifico dal database e il file multimediale a esso associato.
      Parameters:
      idEsameReferto - L'ID del referto dell'esame da eliminare.
      scenarioId - L'ID dello scenario a cui appartiene il referto.
      Returns:
      true se l'eliminazione del referto e del suo file media associato è avvenuta con successo; false altrimenti.
    • updateMedia

      public boolean updateMedia(int idEsame, Integer scenarioId, String newMediaFileName)
      Aggiorna il nome del file multimediale associato a un esame specifico in un dato scenario.
      Parameters:
      idEsame - L'ID dell'esame di cui aggiornare il file multimediale.
      scenarioId - L'ID dello scenario a cui l'esame appartiene.
      newMediaFileName - Il nuovo nome del file multimediale da associare all'esame.
      Returns:
      true se l'aggiornamento è avvenuto con successo; false altrimenti.
    • updateRefertoTestuale

      public boolean updateRefertoTestuale(int idEsame, Integer scenarioId, String nuovoReferto)
      Aggiorna il referto testuale di un esame specifico in un dato scenario.
      Parameters:
      idEsame - L'ID dell'esame di cui aggiornare il referto testuale.
      scenarioId - L'ID dello scenario a cui l'esame appartiene.
      nuovoReferto - Il nuovo testo del referto da salvare.
      Returns:
      true se l'aggiornamento è avvenuto con successo; false altrimenti.
    • addEsameReferto

      public boolean addEsameReferto(EsameReferto esame, int scenarioId)
      Aggiunge un singolo referto a uno scenario senza eliminare quelli esistenti. L'ID dell'esame viene calcolato automaticamente per evitare conflitti.
      Parameters:
      esame - L'oggetto EsameReferto da aggiungere. I campi idEsame e idScenario verranno impostati dal metodo.
      scenarioId - L'ID dello scenario a cui aggiungere il referto.
      Returns:
      true se l'inserimento è andato a buon fine, false altrimenti.
    • createRefertoByJSON

      public boolean createRefertoByJSON(int scenarioId, Optional<ReportSet> reportOptional)
      Crea e salva un nuovo EsameReferto partendo dai dati generati da un'API.
      Parameters:
      scenarioId - L'ID dello scenario a cui associare il referto.
      reportOptional - L'Optional contenente i dati del referto.
      Returns:
      true se il salvataggio è andato a buon fine, false altrimenti.