diff --git a/trunk/SIPRPSoft/src/siprp/ficha/ExamePanel.java b/trunk/SIPRPSoft/src/siprp/ficha/ExamePanel.java index 78911b17..42218ecd 100644 --- a/trunk/SIPRPSoft/src/siprp/ficha/ExamePanel.java +++ b/trunk/SIPRPSoft/src/siprp/ficha/ExamePanel.java @@ -6,29 +6,51 @@ package siprp.ficha; -import java.awt.*; -import java.awt.event.*; -import java.io.*; -import javax.swing.*; -import javax.swing.event.*; -import java.util.*; +import static com.evolute.utils.strings.UnicodeLatin1Map.eacute; +import static com.evolute.utils.strings.UnicodeLatin1Map.oacute; -import com.evolute.utils.*; -import com.evolute.utils.documents.*; -import com.evolute.utils.data.*; -import com.evolute.utils.dataui.*; -import com.evolute.utils.jdo.*; -//import com.evolute.utils.metadb.*; -import com.evolute.utils.ui.*; -import com.evolute.utils.ui.button.*; -import com.evolute.utils.ui.calendar.*; -import com.evolute.utils.ui.panel.*; -import com.evolute.utils.ui.text.*; +import java.awt.BorderLayout; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.GridLayout; +import java.awt.Insets; +import java.util.Calendar; +import java.util.Date; +import java.util.Hashtable; +import java.util.Vector; -import static com.evolute.utils.strings.UnicodeLatin1Map.*; +import javax.swing.BorderFactory; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import javax.swing.event.ListSelectionListener; -import siprp.*; -import siprp.data.*; +import siprp.FichaDataProvider; +import siprp.SingletonConstants; +import siprp.data.DisableDeleteHandler; +import siprp.data.ExameData; +import siprp.data.Marcacao; +import siprp.data.MarcacaoTrabalhadorData; +import siprp.medicina.MedicinaConstants; + +import com.evolute.utils.Singleton; +import com.evolute.utils.data.IDObject; +import com.evolute.utils.data.MappableObject; +import com.evolute.utils.dataui.ComponentController; +import com.evolute.utils.dataui.ComponentsHashtable; +import com.evolute.utils.dataui.ControllableComponent; +import com.evolute.utils.documents.MaximumLengthDocument; +import com.evolute.utils.jdo.JDOProvider; +import com.evolute.utils.ui.button.BetterButtonGroup; +import com.evolute.utils.ui.calendar.JCalendarPanel; +import com.evolute.utils.ui.panel.RadioButtonFixedPanel; +import com.evolute.utils.ui.text.CopyPasteHandler; /** * * @author fpalma @@ -551,4 +573,34 @@ public class ExamePanel extends JPanel { return tipoProximoPanel.getSelected(); } + + public void setup( Date fichaDate, Integer motivoProcesso ) + { + if( fichaDate != null ) + { + dataExamePanel.setDate( fichaDate ); + Calendar proximo = Calendar.getInstance(); + proximo.setTime( fichaDate ); + proximo.add( Calendar.YEAR, 2 ); + proximoExamePanel.setDate( proximo.getTime() ); + } + if( motivoProcesso != null ) + { + switch( motivoProcesso.intValue() ) + { + case MedicinaConstants.MOTIVO_ADMISSAO: + admissaoRadio.setSelected( true ); + break; + case MedicinaConstants.MOTIVO_PERIODICO: + periodicoRadio.setSelected( true ); + break; + case MedicinaConstants.MOTIVO_PERIODICO_INICIAL: + periodicoRadio.setSelected( true ); + break; + case MedicinaConstants.MOTIVO_OCASIONAL: + ocasionalRadio.setSelected( true ); + break; + } + } + } } diff --git a/trunk/SIPRPSoft/src/siprp/ficha/FichaAptidaoConstants.java b/trunk/SIPRPSoft/src/siprp/ficha/FichaAptidaoConstants.java index 6fb08f27..a9cfaef7 100644 --- a/trunk/SIPRPSoft/src/siprp/ficha/FichaAptidaoConstants.java +++ b/trunk/SIPRPSoft/src/siprp/ficha/FichaAptidaoConstants.java @@ -71,4 +71,8 @@ public interface FichaAptidaoConstants public static final String PROXIMO_EXAME = "proximo_exame"; public static final String MEDICOS_NOME = "medicos.nome"; public static final String NUMERO_CEDULA = "numero_cedula"; + + public static final int CODIGO_TIPO_ADMISSAO = 1; + public static final int CODIGO_TIPO_PERIODICO = 2; + public static final int CODIGO_TIPO_OCASIONAL = 3; } diff --git a/trunk/SIPRPSoft/src/siprp/ficha/FichaWindow.java b/trunk/SIPRPSoft/src/siprp/ficha/FichaWindow.java index e0c66dfc..563c8461 100644 --- a/trunk/SIPRPSoft/src/siprp/ficha/FichaWindow.java +++ b/trunk/SIPRPSoft/src/siprp/ficha/FichaWindow.java @@ -16,6 +16,7 @@ import java.io.FilenameFilter; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Arrays; +import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Hashtable; @@ -1239,11 +1240,11 @@ public class FichaWindow extends TabbedWindow exame.delete(); } } + public void editTrabalhador( Integer trabalhadorID, SaveExameListener listener ) { -System.out.println( "edit trabalhador: " + trabalhadorID ); - + System.out.println( "edit trabalhador: " + trabalhadorID ); if( isVisible() ) { toFront(); @@ -1256,4 +1257,11 @@ System.out.println( "edit trabalhador: " + trabalhadorID ); executeAction( NEW_INDEX ); exameListener = listener; } + + public void editTrabalhador( Integer trabalhadorID, Date ultimaConsulta, Integer motivoProcesso, SaveExameListener listener ) + { + editTrabalhador(trabalhadorID,listener); + examePanel.setup( ultimaConsulta, motivoProcesso ); + } + } diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java index 8205e755..32ca6546 100755 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java @@ -592,7 +592,8 @@ public class MedicinaProcessoLogic extends LeafLogic { currentFicha = new TrabalhadoresFichasAptidao(); currentFicha.setToTrabalhadoresProcesso( currentProcesso ); - fichaWindow.editTrabalhador( currentTrabalhador.getId(), new SaveExameListener() + Date data = getUltimaConsultaMarcacaoDateForProcesso(); + fichaWindow.editTrabalhador( currentTrabalhador.getId(), data, currentProcesso.getMotivo(), new SaveExameListener() { @Override public void exameSaved( Integer trabalhadorID, Integer exameID ) @@ -619,6 +620,34 @@ public class MedicinaProcessoLogic extends LeafLogic e.printStackTrace(); } } + + private Date getUltimaConsultaMarcacaoDateForProcesso() + { + Date result = null; + if( currentProcesso != null ) + { + List consultas = currentProcesso.getTrabalhadoresConsultasArray(); + for( TrabalhadoresConsultas consulta : consultas ) + { + if( new Integer(MedicinaConstants.ESTADO_REALIZADO).equals( consulta.getEstado() )) + { + List marcacoes = consulta.getTrabalhadoresConsultasDatasArray(); + for( TrabalhadoresConsultasDatas marcacao : marcacoes ) + { + if( new Integer(MedicinaConstants.ESTADO_REALIZADO).equals( marcacao.getEstado() )) + { + Date marcacaoDate = marcacao.getData(); + if( marcacaoDate != null && (result == null || result.before( marcacaoDate ) ) ) + { + result = marcacaoDate; + } + } + } + } + } + } + return result; + } @LeafLogicActionBinding(actions = { CREATE_CONSULTA