diff --git a/trunk/SIPRPSoft/src/SIPRPMap.map.xml b/trunk/SIPRPSoft/src/SIPRPMap.map.xml
index ea39c74c..8ca1bc89 100644
--- a/trunk/SIPRPSoft/src/SIPRPMap.map.xml
+++ b/trunk/SIPRPSoft/src/SIPRPMap.map.xml
@@ -404,6 +404,7 @@
+
@@ -426,7 +427,10 @@
+
+
+
@@ -766,6 +770,7 @@
+
@@ -775,6 +780,8 @@
+
+
@@ -980,8 +987,8 @@
-
-
+
+
@@ -1079,6 +1086,9 @@
+
+
+
@@ -1178,7 +1188,7 @@
-
+
@@ -1211,6 +1221,7 @@
+
diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/Trabalhadores.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/Trabalhadores.java
index f81974fb..3eb0685c 100755
--- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/Trabalhadores.java
+++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/Trabalhadores.java
@@ -55,31 +55,5 @@ public class Trabalhadores extends _Trabalhadores
{
return getNomePlain();
}
-
- public List getAllEcdForGrupo( PrtGruposProtocolo grupo )
- {
- List result = new ArrayList();
- Integer perfil = getPerfil();
- if( perfil != null )
- {
- Empresas empresa = getToEstabelecimentos().getToEmpresas();
- List ecdsPerfil = (List) empresa.getPrtElementosProtocoloArray();
- for( PrtElementosProtocolo ecdPerfil : ecdsPerfil )
- {
- if( perfil.equals( ecdPerfil.getNumeroPerfil() ) )
- {
- PrtTiposElementosProtocolo ecd = ecdPerfil.getToPrtTiposElementosProtocolo();
- if( ecd != null )
- {
- if( ecd.getToPrtGruposProtocolo().equals( grupo ) && !result.contains( ecd ))
- {
- result.add( ecd );
- }
- }
- }
- }
- }
- return result;
- }
}
diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcds.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcds.java
index 5f6e1dbc..66fe5d21 100755
--- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcds.java
+++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcds.java
@@ -1,5 +1,6 @@
package siprp.database.cayenne.objects;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -43,6 +44,7 @@ public class TrabalhadoresEcds extends _TrabalhadoresEcds implements MedicinaCon
public OrderedMap getGruposExamesForPerfil()
{
OrderedMap grupos = new OrderedMap();
+ List estadosSoFar = new ArrayList();
Trabalhadores trabalhador = this.getToTrabalhadores();
Integer perfil = trabalhador.getPerfil();
if( perfil != null )
@@ -63,35 +65,90 @@ public class TrabalhadoresEcds extends _TrabalhadoresEcds implements MedicinaCon
if( descricao != null && !grupos.containsKey( grupoEcd ) )
{
grupos.putLast( grupoEcd, descricao );
- Integer estado = getEstadoForGrupoEcd(grupoEcd);
+ Integer estado = getEstadoForGrupoEcd( grupoEcd );
grupos.putLast( grupoEcd, estado != null ? MedicinaConstants.ESTADOS_EXAME_STR[estado] : " " );
+ if( !estadosSoFar.contains( estado ) )
+ {
+ estadosSoFar.add( estado );
+ }
}
}
}
}
}
- }
+ }
+
+ if( estadosSoFar.size() == 1 )
+ {
+ if( estadosSoFar.contains( new Integer( ESTADO_ANULADO ) ) || estadosSoFar.contains( new Integer( ESTADO_REALIZADO ) ) )
+ {
+ setEstado( ESTADO_REALIZADO );
+ }
+ else if( estadosSoFar.contains( new Integer( ESTADO_POR_REALIZAR ) ) )
+ {
+ setEstado( ESTADO_POR_REALIZAR );
+ }
+ else
+ {
+ setEstado( ESTADO_POR_MARCAR );
+ }
+ }
+ else if( estadosSoFar.size() == 2 )
+ {
+ if( estadosSoFar.contains( new Integer( ESTADO_ANULADO ) ) && estadosSoFar.contains( new Integer( ESTADO_REALIZADO ) ) )
+ {
+ setEstado( ESTADO_REALIZADO );
+ }
+ else if( estadosSoFar.contains( new Integer( ESTADO_POR_MARCAR ) ) )
+ {
+ setEstado( ESTADO_POR_MARCAR );
+
+ }
+ else if( estadosSoFar.contains( new Integer( ESTADO_ANULADO ) ) || estadosSoFar.contains( new Integer( ESTADO_REALIZADO ) ) )
+ {
+ setEstado( ESTADO_PARCIALMENTE_REALIZADO );
+ }
+ else
+ {
+ setEstado( ESTADO_POR_REALIZAR );
+ }
+ }
+ else
+ {
+ if( estadosSoFar.contains( new Integer( ESTADO_POR_MARCAR ) ) )
+ {
+ setEstado( ESTADO_POR_MARCAR );
+ }
+ else if( estadosSoFar.contains( new Integer( ESTADO_ANULADO ) ) && estadosSoFar.contains( new Integer( ESTADO_REALIZADO ) ) )
+ {
+ setEstado( ESTADO_PARCIALMENTE_REALIZADO );
+ }
+ else
+ {
+ setEstado( ESTADO_POR_REALIZAR );
+ }
+ }
return grupos;
}
-
- private Integer getEstadoForGrupoEcd(PrtGruposProtocolo grupoEcd)
+
+ private Integer getEstadoForGrupoEcd( PrtGruposProtocolo grupoEcd )
{
Integer estado = null;
List marcacoes = getTrabalhadoresEcdsDatasArray();
- if(marcacoes != null)
+ if( marcacoes != null )
{
- for(TrabalhadoresEcdsDatas marcacao : marcacoes)
+ for( TrabalhadoresEcdsDatas marcacao : marcacoes )
{
List ecds = marcacao.getTrabalhadoresEcdArray();
for( TrabalhadoresEcd ecd : ecds )
{
- if(ecd.getToPrtTiposElementosProtocolo().getToPrtGruposProtocolo().equals( grupoEcd ))
+ if( ecd.getToPrtTiposElementosProtocolo().getToPrtGruposProtocolo().equals( grupoEcd ) )
{
- if(new Integer(ESTADO_REALIZADO).equals(ecd.getEstado()))
+ if( new Integer( ESTADO_REALIZADO ).equals( ecd.getEstado() ) || new Integer( ESTADO_ANULADO ).equals( ecd.getEstado() ) )
{
- return new Integer(ESTADO_REALIZADO);
+ return ecd.getEstado();
}
- else if(estado == null)
+ else if( new Integer( ESTADO_POR_REALIZAR ).equals( ecd.getEstado() ) )
{
estado = ecd.getEstado();
break;
@@ -100,7 +157,7 @@ public class TrabalhadoresEcds extends _TrabalhadoresEcds implements MedicinaCon
}
}
}
- return estado == null ? ESTADO_POR_REALIZAR : estado;
+ return estado == null ? ESTADO_POR_MARCAR : estado;
}
}
diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcdsDatas.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcdsDatas.java
index 22df96ed..59cd44ee 100755
--- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcdsDatas.java
+++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcdsDatas.java
@@ -1,5 +1,6 @@
package siprp.database.cayenne.objects;
+import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -9,19 +10,20 @@ import siprp.database.cayenne.providers.MedicinaDAO;
import siprp.medicina.MedicinaConstants;
import siprp.medicina.processo.ui.OrderedMap;
-public class TrabalhadoresEcdsDatas extends _TrabalhadoresEcdsDatas implements MedicinaConstants{
+public class TrabalhadoresEcdsDatas extends _TrabalhadoresEcdsDatas implements MedicinaConstants
+{
private static final long serialVersionUID = 1L;
public String getDataString()
{
return getData() == null ? "" : sdf.format( getData() );
}
-
+
public String getEstadoString()
{
- return getEstado() == null || getEstado() >= ESTADOS_EXAME_STR.length ? "" : ESTADOS_EXAME_STR[ getEstado() ];
+ return getEstado() == null || getEstado() >= ESTADOS_EXAME_STR.length ? "" : ESTADOS_EXAME_STR[getEstado()];
}
-
+
public HashMap getEstados()
{
HashMap result = new HashMap();
@@ -34,76 +36,86 @@ public class TrabalhadoresEcdsDatas extends _TrabalhadoresEcdsDatas implements M
}
return result;
}
-
+
@Override
public void setData( Date date )
{
- if( date != null && this.getToTrabalhadoresEcds() != null && this.getEstado() != null && new Integer(ESTADO_POR_REALIZAR).equals(this.getEstado()))
+ if( date != null && this.getToTrabalhadoresEcds() != null && this.getEstado() != null && new Integer( ESTADO_POR_REALIZAR ).equals( this.getEstado() ) )
{
this.getToTrabalhadoresEcds().setData( date );
}
super.setData( date );
}
-
- @Override
- public void setEstado( Integer estado )
- {
-
- if( estado != null && this.getToTrabalhadoresEcds() != null)
- {
- Integer oldExameEstado = this.getToTrabalhadoresEcds().getEstado();
- if(new Integer(ESTADO_POR_REALIZAR).equals( oldExameEstado))
- {
- boolean todosRealizados = todosRealizados();
- if(new Integer(ESTADO_REALIZADO).equals( estado ) && !todosRealizados)
- {
- this.getToTrabalhadoresEcds().setEstado( ESTADO_PARCIALMENTE_REALIZADO );
- }
- else if(new Integer(ESTADO_REALIZADO).equals( estado ) && todosRealizados)
- {
- this.getToTrabalhadoresEcds().setEstado( ESTADO_REALIZADO );
- }
- }
- }
- super.setEstado( estado );
- }
-
- private boolean todosRealizados()
- {
- //TODO
- return true;
- }
-
+
@Override
public String toString()
{
return getDataString() + ": " + getEstadoString();
}
-
- public OrderedMap getGruposExames()
+
+ public OrderedMap getStatesForeGruposExames()
{
OrderedMap grupos = new OrderedMap();
List exames = this.getTrabalhadoresEcdArray();
if( exames != null )
{
- for(TrabalhadoresEcd exame : exames)
+ for( TrabalhadoresEcd exame : exames )
{
- String estado = MedicinaConstants.ESTADOS_EXAME_STR[exame.getEstado()];
+ String estadoString = MedicinaConstants.ESTADOS_EXAME_STR[exame.getEstado()];
PrtGruposProtocolo grupo = exame.getToPrtTiposElementosProtocolo().getToPrtGruposProtocolo();
- if( !grupos.containsKey( grupo ))
+ if( !grupos.containsKey( grupo ) )
{
grupos.putLast( grupo, grupo.getDescricao() );
- grupos.putLast( grupo, estado );
+ grupos.putLast( grupo, estadoString );
}
}
}
return grupos;
}
+ private List getAllEcdForGrupoForThisMarcacao( PrtGruposProtocolo grupo )
+ {
+ List result = new ArrayList();
+ for( TrabalhadoresEcd ecd : (List) getTrabalhadoresEcdArray() )
+ {
+ if( grupo.equals( ecd.getToPrtTiposElementosProtocolo().getToPrtGruposProtocolo() ) )
+ {
+ result.add( ecd.getToPrtTiposElementosProtocolo() );
+ }
+ }
+ return result;
+ }
+
+ private List getAllEcdForGrupoAndCurrentPerfil( PrtGruposProtocolo grupo )
+ {
+ Trabalhadores trabalhador = getToTrabalhadoresEcds().getToTrabalhadores();
+ List result = new ArrayList();
+ Integer perfil = trabalhador.getPerfil();
+ if( perfil != null )
+ {
+ Empresas empresa = trabalhador.getToEstabelecimentos().getToEmpresas();
+ List ecdsPerfil = (List) empresa.getPrtElementosProtocoloArray();
+ for( PrtElementosProtocolo ecdPerfil : ecdsPerfil )
+ {
+ if( perfil.equals( ecdPerfil.getNumeroPerfil() ) )
+ {
+ PrtTiposElementosProtocolo ecd = ecdPerfil.getToPrtTiposElementosProtocolo();
+ if( ecd != null )
+ {
+ if( ecd.getToPrtGruposProtocolo().equals( grupo ) && !result.contains( ecd ) )
+ {
+ result.add( ecd );
+ }
+ }
+ }
+ }
+ }
+ return result;
+ }
+
public void marcarGrupoExames( PrtGruposProtocolo grupo )
{
- List allEcd = getToTrabalhadoresEcds().getToTrabalhadores().getAllEcdForGrupo( grupo );
- for(PrtTiposElementosProtocolo ecd : allEcd)
+ for( PrtTiposElementosProtocolo ecd : getAllEcdForGrupoAndCurrentPerfil( grupo ) )
{
TrabalhadoresEcd trabEcd = new TrabalhadoresEcd();
trabEcd.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR );
@@ -112,21 +124,45 @@ public class TrabalhadoresEcdsDatas extends _TrabalhadoresEcdsDatas implements M
addToTrabalhadoresEcdArray( trabEcd );
}
}
-
- public void realizar()
+
+ public void setStateForGrupoProtocolo( PrtGruposProtocolo grupo, Integer estado )
{
- List ecds = getTrabalhadoresEcdArray();
- if( ecds != null )
+ List group = getAllEcdForGrupoForThisMarcacao( grupo );
+ for(TrabalhadoresEcd ecd : (List) getTrabalhadoresEcdArray())
{
- for(TrabalhadoresEcd ecd : ecds)
+ if(group.contains( ecd.getToPrtTiposElementosProtocolo()))
{
- ecd.setEstado( MedicinaConstants.ESTADO_REALIZADO );
+ ecd.setEstado( estado );
}
}
- setEstado( MedicinaConstants.ESTADO_REALIZADO );
}
-
-}
-
+ public void setStateForGrupoProtocolo( PrtGruposProtocolo grupo, String estado )
+ {
+ for( int i = 0; i < ESTADOS_EXAME_STR.length; ++i )
+ {
+ String currentEstado = ESTADOS_EXAME_STR[i];
+ if( currentEstado != null && new Integer( i ).equals( estado ) )
+ {
+ setStateForGrupoProtocolo( grupo, i );
+ break;
+ }
+ }
+ }
+
+ @Override
+ public void setEstado( Integer estado )
+ {
+ List allEcd = (List) getTrabalhadoresEcdArray();
+ if(allEcd != null)
+ {
+ for(TrabalhadoresEcd ecd : allEcd )
+ {
+ ecd.setEstado( estado );
+ }
+ }
+ super.setEstado( estado );
+ getToTrabalhadoresEcds().getGruposExamesForPerfil();
+ }
+}
diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_TrabalhadoresEcd.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_TrabalhadoresEcd.java
index fabe1c36..4ee99d2d 100755
--- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_TrabalhadoresEcd.java
+++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_TrabalhadoresEcd.java
@@ -7,6 +7,7 @@ package siprp.database.cayenne.objects.auto;
*/
public abstract class _TrabalhadoresEcd extends siprp.database.cayenne.objects.BaseObject {
+ public static final String ENVIADO_PROPERTY = "enviado";
public static final String ESTADO_PROPERTY = "estado";
public static final String TO_ECD_OFICIAL_PROPERTY = "toEcdOficial";
public static final String TO_PRT_TIPOS_ELEMENTOS_PROTOCOLO_PROPERTY = "toPrtTiposElementosProtocolo";
@@ -14,6 +15,14 @@ public abstract class _TrabalhadoresEcd extends siprp.database.cayenne.objects.B
public static final String ID_PK_COLUMN = "id";
+ public void setEnviado(Character enviado) {
+ writeProperty("enviado", enviado);
+ }
+ public Character getEnviado() {
+ return (Character)readProperty("enviado");
+ }
+
+
public void setEstado(Integer estado) {
writeProperty("estado", estado);
}
diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_TrabalhadoresEcdsDatas.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_TrabalhadoresEcdsDatas.java
index 32919841..92c45cd8 100755
--- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_TrabalhadoresEcdsDatas.java
+++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_TrabalhadoresEcdsDatas.java
@@ -8,8 +8,11 @@ package siprp.database.cayenne.objects.auto;
public abstract class _TrabalhadoresEcdsDatas extends siprp.database.cayenne.objects.BaseObject {
public static final String DATA_PROPERTY = "data";
+ public static final String DATA_ENVIO_PROPERTY = "dataEnvio";
+ public static final String DATA_RECEPCAO_PROPERTY = "dataRecepcao";
public static final String ESTADO_PROPERTY = "estado";
public static final String ID_PROPERTY = "id";
+ public static final String TO_ANALISADOR_PROPERTY = "toAnalisador";
public static final String TO_PRESTADORES_PROPERTY = "toPrestadores";
public static final String TO_TRABALHADORES_ECDS_PROPERTY = "toTrabalhadoresEcds";
public static final String TRABALHADORES_ECD_ARRAY_PROPERTY = "trabalhadoresEcdArray";
@@ -26,6 +29,22 @@ public abstract class _TrabalhadoresEcdsDatas extends siprp.database.cayenne.obj
}
+ public void setDataEnvio(java.util.Date dataEnvio) {
+ writeProperty("dataEnvio", dataEnvio);
+ }
+ public java.util.Date getDataEnvio() {
+ return (java.util.Date)readProperty("dataEnvio");
+ }
+
+
+ public void setDataRecepcao(java.util.Date dataRecepcao) {
+ writeProperty("dataRecepcao", dataRecepcao);
+ }
+ public java.util.Date getDataRecepcao() {
+ return (java.util.Date)readProperty("dataRecepcao");
+ }
+
+
public void setEstado(Integer estado) {
writeProperty("estado", estado);
}
@@ -42,6 +61,15 @@ public abstract class _TrabalhadoresEcdsDatas extends siprp.database.cayenne.obj
}
+ public void setToAnalisador(siprp.database.cayenne.objects.Prestadores toAnalisador) {
+ setToOneTarget("toAnalisador", toAnalisador, true);
+ }
+
+ public siprp.database.cayenne.objects.Prestadores getToAnalisador() {
+ return (siprp.database.cayenne.objects.Prestadores)readProperty("toAnalisador");
+ }
+
+
public void setToPrestadores(siprp.database.cayenne.objects.Prestadores toPrestadores) {
setToOneTarget("toPrestadores", toPrestadores, true);
}
diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java
index bf7eb610..ed9010a5 100755
--- a/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java
+++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java
@@ -348,7 +348,7 @@ public class MedicinaProcessoLogic extends SIPRPLogic
{
if( currentExameMarcacao != null )
{
- currentExameMarcacao.realizar();
+ currentExameMarcacao.setEstado( MedicinaConstants.ESTADO_REALIZADO );
runActionLater( SAVE_EXAME_MARCACAO );
}
}
@@ -482,8 +482,8 @@ public class MedicinaProcessoLogic extends SIPRPLogic
public TrabalhadoresEcdsDatas createExameMarcacao()
{
currentExameMarcacao = new TrabalhadoresEcdsDatas();
- currentExameMarcacao.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR );
currentExameMarcacao.setToTrabalhadoresEcds( currentExame );
+ currentExameMarcacao.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR );
runActionLater( SAVE_EXAME_MARCACAO );
return currentExameMarcacao;
}
diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java
index 349c1be1..7d44350f 100755
--- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java
+++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java
@@ -354,7 +354,7 @@ public class ProcessoDadosPanel extends JPanel
{
inputExameMarcacaoData.setObject( exameMarcacao.getData() );
inputExameMarcacaoEstado.setObject( exameMarcacao.getEstados(), exameMarcacao.getEstado() );
- OrderedMap grupos = exameMarcacao.getGruposExames();
+ OrderedMap grupos = exameMarcacao.getStatesForeGruposExames();
inputExameMarcacaoGruposEcds.setCollapseOptions( false );
inputExameMarcacaoGruposEcds.setObject( grupos, grupos.getFirst() );
cardLayout.show( this, PANEL_EXAME_MARCACAO_NAME );