Añadido botón para descargar imagenes de pruebas médicas.

This commit is contained in:
Marcos Garcia Nuñez
2020-01-03 20:32:47 +01:00
parent cbe1d3dd55
commit ac0b4e9704
2 changed files with 32 additions and 8 deletions

View File

@@ -95,13 +95,17 @@
</div> </div>
<div class="ui-g-2" /> <div class="ui-g-2" />
<div class="ui-g-8" style="align-content: center; text-align: center;"> <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:graphicImage rendered="#{mt.selected.highresimage != null}" value="#{mt.selected.highresimage}" alt="Imagen de la prueba mécica" width="400" />
<h:outputText rendered="#{mt.selected.highresimage == null}" value="Esta prueba no tiene ninguna imagen asociada" style="font-weight: bold;" /> <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 and mt.selected.highresimage != null}" value="Eliminar" icon="pi pi-trash" action="#{mt.removeImage}" update="frmImage"> <p:commandButton rendered="#{mt.specialistDoctor and mt.selected.highresimage != null}" value="Eliminar" icon="pi pi-trash" action="#{mt.removeImage}" 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>
<p />
<p:commandButton rendered="#{mt.selected.highresimage != null}" ajax="false" value="Descargar" icon="pi pi-download">
<p:fileDownload value="#{mt.imageDownload}" />
</p:commandButton>
</div> </div>
</div> </div>
</p:outputPanel> </p:outputPanel>

View File

@@ -1,5 +1,6 @@
package managedbean.medicalTest; package managedbean.medicalTest;
import java.io.ByteArrayInputStream;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalTime; import java.time.LocalTime;
@@ -15,6 +16,8 @@ import javax.inject.Named;
import org.primefaces.event.FileUploadEvent; import org.primefaces.event.FileUploadEvent;
import org.primefaces.event.SelectEvent; import org.primefaces.event.SelectEvent;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import org.primefaces.model.UploadedFile; import org.primefaces.model.UploadedFile;
import TO.MedicalTestTO; import TO.MedicalTestTO;
@@ -87,7 +90,7 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
public void uploadDataListener(FileUploadEvent event) { public void uploadDataListener(FileUploadEvent event) {
UploadedFile uploadedFile = event.getFile(); UploadedFile uploadedFile = event.getFile();
String fileName = uploadedFile.getFileName(); // String fileName = uploadedFile.getFileName();
String contentType = uploadedFile.getContentType(); String contentType = uploadedFile.getContentType();
byte[] contents = uploadedFile.getContents(); byte[] contents = uploadedFile.getContents();
@@ -102,6 +105,23 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
} }
} }
public StreamedContent getImageDownload() {
DefaultStreamedContent dsc = null;
try {
String[] data = this.selected.getHighresimage().split(",");
String contentType = data[0];
// Obtenemos la extension del contentType
String extension = contentType.split(";")[0].split("/")[1];
String base64Image = data[1];
dsc = new DefaultStreamedContent(new ByteArrayInputStream(javax.xml.bind.DatatypeConverter.parseBase64Binary(base64Image)), contentType, "Imagen.".concat(extension));
} catch (Exception e) {
this.manageException(e);
}
return dsc;
}
public UploadedFile getImageUpload() { public UploadedFile getImageUpload() {
return imageUpload; return imageUpload;
} }