Mejora en la subida de imagenes de pruebas médicas:

* Subida mediante ajax.
* No se recarga la página y no se pierde la prueba seleccionada.
This commit is contained in:
Marcos Garcia Nuñez
2020-01-03 18:39:17 +01:00
parent 20c445e200
commit cbe1d3dd55
2 changed files with 28 additions and 25 deletions

View File

@@ -13,6 +13,7 @@ import javax.faces.event.AjaxBehaviorEvent;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.event.SelectEvent;
import org.primefaces.model.UploadedFile;
@@ -55,7 +56,7 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
public void init() {
this.userType = SessionUtils.getUserType();
this.userID = Integer.valueOf(SessionUtils.getUserId());
this.medicalTestTypes = new ArrayList<MedicalTestType>();
this.medicalTestTypes.add(MedicalTestType.BLOOD_TEST);
this.medicalTestTypes.add(MedicalTestType.CT_SCAN);
@@ -84,20 +85,23 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
this.loadMedicalTests();
}
public void addImage() {
if (this.imageUpload != null) {
String content = "data:" + imageUpload.getContentType() + ";base64," + Base64.getEncoder().encodeToString(imageUpload.getContents());
System.out.println("FILE Content base64: ");
System.out.println(content);
this.selected.setHighresimage(content);
getRemoteManagerMedicalTest().addImage(this.selected.getId(), content);
this.loadMedicalTests();
this.imageUpload = null;
public void uploadDataListener(FileUploadEvent event) {
UploadedFile uploadedFile = event.getFile();
String fileName = uploadedFile.getFileName();
String contentType = uploadedFile.getContentType();
byte[] contents = uploadedFile.getContents();
if (contents != null && contents.length > 0) {
this.selected.setHighresimage(String.format("data:%s;base64,%s", contentType, Base64.getEncoder().encodeToString(contents)));
this.getRemoteManagerMedicalTest().addImage(this.selected.getId(), this.selected.getHighresimage());
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Imagen guardada", "La imagen se ha guardado correctamente.");
} else {
System.out.println("IMAGEN SUBIDA ES NULA");
this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Imagen vacía", "La imagen que itenta subir está vacía o no puede procesarse.");
}
}
public UploadedFile getImageUpload() {
return imageUpload;
}
@@ -109,7 +113,8 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
public void removeImage() {
this.selected.setHighresimage(null);
getRemoteManagerMedicalTest().removeImage(this.selected.getId());
this.loadMedicalTests();
//this.loadMedicalTests();
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Imagen eliminada", "La imagen se ha eliminado correctamente.");
}
public MedicalTestTO getSelected() {
@@ -234,7 +239,7 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
public void addMT() {
// Si hay un paciente filtrado en la busqueda de pruebas, lo seleccionamos para la prueba a añadir.
//this.patSelected = this.patientFilterSelected;
// this.patSelected = this.patientFilterSelected;
this.testDate = LocalDate.now();
this.testTime = LocalTime.now();
this.testObservations = "";