187 lines
9.2 KiB
HTML
187 lines
9.2 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
|
|
xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui">
|
|
|
|
<ui:composition template="../header.xhtml">
|
|
<ui:define name="content">
|
|
|
|
<div class="ui-g ui-fluid">
|
|
<div class="ui-g-5 ui-md-5">
|
|
<h:form id="frmMT">
|
|
<p:panel id="mainPanel" header="Pruebas médicas">
|
|
<f:facet name="actions">
|
|
<h:commandLink rendered="#{mt.specialistDoctor}" action="#{mt.addMT}" update="frmMT,frmNEW" styleClass="ui-panel-titlebar-icon ui-corner-all ui-state-default">
|
|
<h:outputText styleClass="ui-icon pi pi-plus" />
|
|
</h:commandLink>
|
|
<h:commandLink rendered="#{mt.patSelector}" action="#{mt.clearFilteredPatient}" immediate="true" update="frmMT,frmNEW"
|
|
styleClass="ui-panel-titlebar-icon ui-corner-all ui-state-default">
|
|
<h:outputText styleClass="ui-icon pi pi-refresh" title="Quitar filtro y ver todos los registros" />
|
|
</h:commandLink>
|
|
</f:facet>
|
|
<p:autoComplete rendered="#{mt.patSelector}" id="filterPatient" widgetVar="filterPatient" dropdown="true" value="#{mt.patientFilterSelected}"
|
|
completeMethod="#{mt.completePatientFilter}" var="p" itemLabel="#{p.displayName}" itemValue="#{p}" forceSelection="true"
|
|
placeholder="Seleccione un paciente o teclee para buscar...">
|
|
<o:converter converterId="omnifaces.ListConverter" list="#{mt.patientWithTestList}" />
|
|
<f:selectItem itemLabel="Ver todos" itemValue="">
|
|
<p:column headerText="Num. Prof.">
|
|
<h:outputText value="Ver todos" />
|
|
</p:column>
|
|
</f:selectItem>
|
|
<p:column headerText="Num. Prof.">
|
|
<h:outputText value="#{p.personalIdentificationCode}" />
|
|
</p:column>
|
|
<p:column headerText="Nombre">
|
|
<h:outputText value="#{p.name}" />
|
|
</p:column>
|
|
<p:column headerText="Apellidos">
|
|
<h:outputText value="#{p.surname}" />
|
|
</p:column>
|
|
<p:ajax event="itemSelect" listener="#{mt.onSelectPatient}" update="medicalTestList" />
|
|
<p:ajax event="change" listener="#{mt.onChangePatient}" update="medicalTestList" />
|
|
</p:autoComplete>
|
|
|
|
<p:orderList id="medicalTestList" value="#{mt.medicalTests}" var="el" itemValue="#{el}" controlsLocation="none" responsive="true">
|
|
<p:ajax event="select" listener="#{mt.onSelectMT}" update="frmNEW,frmImage" />
|
|
<o:converter converterId="omnifaces.ListConverter" list="#{mt.medicalTests}" />
|
|
<p:column>
|
|
<h:outputText value="#{el.date}">
|
|
<f:convertDateTime type="localDate" pattern="dd/MM/yyyy" />
|
|
</h:outputText>
|
|
- <h:outputText value="#{el.type.testTypeName}" />
|
|
<br />
|
|
<h:outputText rendered="#{mt.patientFilterSelected == null}" value="#{el.patient.displayName}" style="font-size: 0.8em !important; font-style: italic;" />
|
|
</p:column>
|
|
</p:orderList>
|
|
</p:panel>
|
|
</h:form>
|
|
</div>
|
|
<div class="ui-g-7 ui-md-7">
|
|
<h:form id="frmImage" enctype="multipart/form-data">
|
|
<p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
|
|
<p:commandButton value="Sí" type="button" styleClass="ui-confirmdialog-yes" icon="pi pi-check" />
|
|
<p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="pi pi-times" />
|
|
</p:confirmDialog>
|
|
|
|
<p:panel rendered="#{mt.viewEdit}" id="detailPanel" header="Detalle de prueba médica">
|
|
<div class="ui-g ui-fluid">
|
|
<div class="ui-g-3">Fecha:</div>
|
|
<div class="ui-g-9">
|
|
<h:outputText value="#{mt.selected.date}">
|
|
<f:convertDateTime type="localDate" pattern="dd/MM/yyyy" timeStyle="short" locale="es" />
|
|
</h:outputText>
|
|
</div>
|
|
<div class="ui-g-3">Hora:</div>
|
|
<div class="ui-g-9">
|
|
<h:outputText value="#{mt.selected.time}" />
|
|
</div>
|
|
<div class="ui-g-3">Observaciones:</div>
|
|
<div class="ui-g-9">
|
|
<h:outputText escape="false" value="#{mt.selected.observations}" />
|
|
</div>
|
|
<div class="ui-g-3">Tipo de prueba:</div>
|
|
<div class="ui-g-9">
|
|
<h:outputText value="#{mt.selected.type.testTypeName}" />
|
|
</div>
|
|
|
|
<div class="ui-g-12">
|
|
<p:outputPanel rendered="#{mt.selected.type != 'BLOOD_TEST'}">
|
|
<div class="ui-g ui-fluid">
|
|
<div class="ui-g-3">Imagen de alta resolución:</div>
|
|
<div class="ui-g-9">
|
|
<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 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:confirm header="Confirme la eliminación" message="¿Está seguro de que desea eliminar la imagen?" icon="pi pi-exclamation-triangle" />
|
|
</p:commandButton>
|
|
</div>
|
|
</div>
|
|
</p:outputPanel>
|
|
</div>
|
|
</div>
|
|
</p:panel>
|
|
</h:form>
|
|
<h:form id="frmNEW">
|
|
<p:growl id="mesgs" showDetail="true" closable="true" autoupdate="true" />
|
|
|
|
<p:panel rendered="#{mt.viewCreate}" id="createPanel" header="Añadir una nueva prueba médica">
|
|
<div class="ui-g ui-fluid">
|
|
<div class="ui-g-2">Paciente:</div>
|
|
<div class="ui-g-10">
|
|
<p:autoComplete id="addTestPatient" dropdown="true" value="#{mt.patSelected}" completeMethod="#{mt.completePatient}" var="p" itemLabel="#{p.displayName}" itemValue="#{p}"
|
|
forceSelection="true" placeholder="Seleccione un paciente o teclee para buscar..." required="true"
|
|
requiredMessage="Por favor, seleccione un paciente al cual aádir la prueba.">
|
|
<o:converter converterId="omnifaces.ListConverter" list="#{mt.patientList}" />
|
|
<p:column headerText="Num. Prof.">
|
|
<h:outputText value="#{p.personalIdentificationCode}" />
|
|
</p:column>
|
|
<p:column headerText="Nombre">
|
|
<h:outputText value="#{p.name}" />
|
|
</p:column>
|
|
<p:column headerText="Apellidos">
|
|
<h:outputText value="#{p.surname}" />
|
|
</p:column>
|
|
</p:autoComplete>
|
|
</div>
|
|
|
|
<div class="ui-g-2">Fecha:</div>
|
|
<div class="ui-g-3">
|
|
<p:datePicker id="fecha" value="#{mt.testDate}" pattern="dd/MM/yyyy" locale="es" showIcon="true" showButtonBar="true" autocomplete="true" required="true"
|
|
requiredMessage="Especifique la fecha de la prueba médica">
|
|
<f:convertDateTime type="localDate" pattern="dd/MM/yyyy" timeStyle="short" />
|
|
</p:datePicker>
|
|
</div>
|
|
<div class="ui-g-1" />
|
|
<div class="ui-g-6">
|
|
<p:message for="fecha" />
|
|
</div>
|
|
|
|
<div class="ui-g-2">Hora:</div>
|
|
<div class="ui-g-3">
|
|
<p:datePicker id="hora" value="#{mt.testTime}" timeOnly="true" pattern="HH:mm" locale="es" showIcon="true" showButtonBar="true" autocomplete="true" required="true"
|
|
requiredMessage="Especifique la hora de la prueba médica">
|
|
<f:convertDateTime type="localTime" pattern="HH:mm" />
|
|
</p:datePicker>
|
|
</div>
|
|
<div class="ui-g-1" />
|
|
<div class="ui-g-6">
|
|
<p:message for="hora" />
|
|
</div>
|
|
|
|
<div class="ui-g-2">Observaciones:</div>
|
|
<div class="ui-g-10">
|
|
<p:textEditor value="#{mt.testObservations}" required="true" requiredMessage="Debe indicar las observaciones de la prueba" />
|
|
</div>
|
|
|
|
<div class="ui-g-2">Tipo de prueba:</div>
|
|
<div class="ui-g-5">
|
|
<p:selectOneMenu id="selUsertype" value="#{mt.testType}" required="true" unselectable="false" requiredMessage="Debe especificar un tipo de prueba médica">
|
|
<f:selectItems value="#{mt.medicalTestTypes}" var="item" itemLabel="#{item.testTypeName}" />
|
|
</p:selectOneMenu>
|
|
</div>
|
|
<div class="ui-g-1" />
|
|
<div class="ui-g-4">
|
|
<p:message for="selUsertype" />
|
|
</div>
|
|
|
|
<div class="ui-g-4 ui-md-4" />
|
|
<div class="ui-g-4 ui-md-4">
|
|
<p:commandButton value="Guardar" action="#{mt.save}" icon="pi pi-save" update="frmMT,frmImage,frmNEW" />
|
|
</div>
|
|
<div class="ui-g-4 ui-md-4" />
|
|
</div>
|
|
</p:panel>
|
|
</h:form>
|
|
</div>
|
|
</div>
|
|
</ui:define>
|
|
</ui:composition>
|
|
</html> |