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:
@@ -89,22 +89,20 @@
|
|||||||
<p:outputPanel rendered="#{mt.selected.type != 'BLOOD_TEST'}">
|
<p:outputPanel rendered="#{mt.selected.type != 'BLOOD_TEST'}">
|
||||||
<div class="ui-g ui-fluid">
|
<div class="ui-g ui-fluid">
|
||||||
<div class="ui-g-3">Imagen de alta resolución:</div>
|
<div class="ui-g-3">Imagen de alta resolución:</div>
|
||||||
<div class="ui-g-5">
|
<div class="ui-g-9">
|
||||||
<p:fileUpload rendered="#{mt.specialistDoctor}" value="#{mt.imageUpload}" mode="simple" skinSimple="true" />
|
<p:fileUpload rendered="#{mt.specialistDoctor}" value="#{mt.imageUpload}" fileUploadListener="#{mt.uploadDataListener}" update="frmImage" multiple="false" fileLimit="1"
|
||||||
|
fileLimitMessage="Solo se puede subir una imagen" previewWidth="80" mode="advanced" skinSimple="true" uploadLabel="Subir" cancelLabel="Cancelar" label="Seleccionar" />
|
||||||
|
</div>
|
||||||
|
<div class="ui-g-2" />
|
||||||
|
<div class="ui-g-8" style="align-content: center; text-align: center;">
|
||||||
|
<h:graphicImage rendered="#{mt.selected.highresimage != null}" value="#{mt.selected.highresimage}" alt="Imagen de la prueba mécica" width="600" />
|
||||||
|
<h:outputText rendered="#{mt.selected.highresimage == null}" value="Esta prueba no tiene ninguna imagen asociada" style="font-weight: bold;" />
|
||||||
</div>
|
</div>
|
||||||
<div class="ui-g-2">
|
<div class="ui-g-2">
|
||||||
<p:commandButton rendered="#{mt.specialistDoctor}" value="Subir" icon="pi pi-upload" ajax="false" action="#{mt.addImage}" update="frmImage" />
|
<p:commandButton rendered="#{mt.specialistDoctor and mt.selected.highresimage != null}" value="Eliminar" icon="pi pi-trash" action="#{mt.removeImage}" update="frmImage">
|
||||||
</div>
|
|
||||||
<div class="ui-g-2">
|
|
||||||
<p:commandButton rendered="#{mt.specialistDoctor}" value="Eliminar" icon="pi pi-trash" action="#{mt.removeImage}" disabled="#{mt.selected.highresimage == null}"
|
|
||||||
update="frmImage">
|
|
||||||
<p:confirm header="Confirme la eliminación" message="¿Está seguro de que desea eliminar la imagen?" icon="pi pi-exclamation-triangle" />
|
<p:confirm header="Confirme la eliminación" message="¿Está seguro de que desea eliminar la imagen?" icon="pi pi-exclamation-triangle" />
|
||||||
</p:commandButton>
|
</p:commandButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="ui-g-12 ui-md-12" style="align-content: center; text-align: center;">
|
|
||||||
<img src="#{mt.selected.highresimage}" style="max-width: 300px !important;" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</p:outputPanel>
|
</p:outputPanel>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import javax.faces.event.AjaxBehaviorEvent;
|
|||||||
import javax.faces.view.ViewScoped;
|
import javax.faces.view.ViewScoped;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
|
|
||||||
|
import org.primefaces.event.FileUploadEvent;
|
||||||
import org.primefaces.event.SelectEvent;
|
import org.primefaces.event.SelectEvent;
|
||||||
import org.primefaces.model.UploadedFile;
|
import org.primefaces.model.UploadedFile;
|
||||||
|
|
||||||
@@ -55,7 +56,7 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
|
|||||||
public void init() {
|
public void init() {
|
||||||
this.userType = SessionUtils.getUserType();
|
this.userType = SessionUtils.getUserType();
|
||||||
this.userID = Integer.valueOf(SessionUtils.getUserId());
|
this.userID = Integer.valueOf(SessionUtils.getUserId());
|
||||||
|
|
||||||
this.medicalTestTypes = new ArrayList<MedicalTestType>();
|
this.medicalTestTypes = new ArrayList<MedicalTestType>();
|
||||||
this.medicalTestTypes.add(MedicalTestType.BLOOD_TEST);
|
this.medicalTestTypes.add(MedicalTestType.BLOOD_TEST);
|
||||||
this.medicalTestTypes.add(MedicalTestType.CT_SCAN);
|
this.medicalTestTypes.add(MedicalTestType.CT_SCAN);
|
||||||
@@ -84,20 +85,23 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
|
|||||||
this.loadMedicalTests();
|
this.loadMedicalTests();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addImage() {
|
public void uploadDataListener(FileUploadEvent event) {
|
||||||
if (this.imageUpload != null) {
|
UploadedFile uploadedFile = event.getFile();
|
||||||
String content = "data:" + imageUpload.getContentType() + ";base64," + Base64.getEncoder().encodeToString(imageUpload.getContents());
|
String fileName = uploadedFile.getFileName();
|
||||||
System.out.println("FILE Content base64: ");
|
String contentType = uploadedFile.getContentType();
|
||||||
System.out.println(content);
|
byte[] contents = uploadedFile.getContents();
|
||||||
this.selected.setHighresimage(content);
|
|
||||||
getRemoteManagerMedicalTest().addImage(this.selected.getId(), content);
|
if (contents != null && contents.length > 0) {
|
||||||
this.loadMedicalTests();
|
this.selected.setHighresimage(String.format("data:%s;base64,%s", contentType, Base64.getEncoder().encodeToString(contents)));
|
||||||
this.imageUpload = null;
|
|
||||||
|
this.getRemoteManagerMedicalTest().addImage(this.selected.getId(), this.selected.getHighresimage());
|
||||||
|
|
||||||
|
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Imagen guardada", "La imagen se ha guardado correctamente.");
|
||||||
} else {
|
} 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() {
|
public UploadedFile getImageUpload() {
|
||||||
return imageUpload;
|
return imageUpload;
|
||||||
}
|
}
|
||||||
@@ -109,7 +113,8 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
|
|||||||
public void removeImage() {
|
public void removeImage() {
|
||||||
this.selected.setHighresimage(null);
|
this.selected.setHighresimage(null);
|
||||||
getRemoteManagerMedicalTest().removeImage(this.selected.getId());
|
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() {
|
public MedicalTestTO getSelected() {
|
||||||
@@ -234,7 +239,7 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
|
|||||||
|
|
||||||
public void addMT() {
|
public void addMT() {
|
||||||
// Si hay un paciente filtrado en la busqueda de pruebas, lo seleccionamos para la prueba a añadir.
|
// 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.testDate = LocalDate.now();
|
||||||
this.testTime = LocalTime.now();
|
this.testTime = LocalTime.now();
|
||||||
this.testObservations = "";
|
this.testObservations = "";
|
||||||
|
|||||||
Reference in New Issue
Block a user