Class ScenarioImportService

java.lang.Object
it.uniupo.simnova.service.scenario.operations.ScenarioImportService

@Service public class ScenarioImportService extends Object
Servizio per l'importazione di scenari da file JSON o ZIP. Questo servizio gestisce la creazione di nuovi scenari a partire da dati strutturati, sia da file JSON contenenti la sola definizione dello scenario, sia da archivi ZIP che includono il JSON e i relativi file multimediali (esami, referti).
Version:
1.0
Author:
Alessandro Zappatore
  • Constructor Details

    • ScenarioImportService

      public ScenarioImportService(ScenarioService scenarioService, EsameFisicoService esameFisicoService, PazienteT0Service pazienteT0Service, EsameRefertoService esameRefertoService, AdvancedScenarioService advancedScenarioService, PatientSimulatedScenarioService patientSimulatedScenarioService, MaterialeService materialeService, PresidiService presidiService, AzioneChiaveService azioneChiaveService, UnZipScenarioService unZipScenarioService, FileStorageService fileStorageService)
      Costruisce una nuova istanza di ScenarioImportService. Inietta tutte le dipendenze dei servizi necessari per le operazioni di importazione.
      Parameters:
      scenarioService - Il servizio principale per gli scenari.
      esameFisicoService - Il servizio per gli esami fisici.
      pazienteT0Service - Il servizio per i dati del paziente T0.
      esameRefertoService - Il servizio per gli esami e referti.
      advancedScenarioService - Il servizio per gli scenari avanzati.
      patientSimulatedScenarioService - Il servizio per gli scenari simulati con paziente.
      materialeService - Il servizio per i materiali necessari.
      presidiService - Il servizio per i presidi.
      azioneChiaveService - Il servizio per le azioni chiave.
      unZipScenarioService - Il servizio per la decompressione ZIP.
      fileStorageService - Il servizio per lo storage dei file.
  • Method Details

    • createScenarioByJSON

      public boolean createScenarioByJSON(byte[] jsonFile)
      Crea un nuovo scenario nel database a partire da un file JSON. Il JSON deve contenere la struttura completa dello scenario, inclusi i dati principali e tutti i componenti correlati (paziente T0, esami, materiali, ecc.). Il tipo di scenario (Quick, Advanced, Patient Simulated) viene determinato dal campo "tipo" nel JSON.
      Parameters:
      jsonFile - L'array di byte che rappresenta il contenuto del file JSON.
      Returns:
      true se lo scenario è stato creato con successo e tutti i suoi componenti sono stati salvati; false in caso di errore di parsing JSON, dati mancanti, tipo di scenario non riconosciuto o fallimento del salvataggio.
    • importScenarioFromZip

      public boolean importScenarioFromZip(byte[] zipBytes, String fileName)
      Importa uno scenario da un file ZIP. Il file ZIP è atteso contenere un file JSON denominato 'scenario.json' e opzionalmente una cartella 'esami/' (o 'media/') con file multimediali. I file multimediali estratti verranno salvati nello storage configurato.
      Parameters:
      zipBytes - L'array di byte che rappresenta il contenuto del file ZIP.
      fileName - Il nome del file ZIP originale (utilizzato principalmente per il logging).
      Returns:
      true se l'importazione ha successo, inclusa la creazione dello scenario e il salvataggio dei file multimediali; false altrimenti.