|  |  | @ -1,5 +1,6 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | package siprp.database.cayenne.objects; |  |  |  | package siprp.database.cayenne.objects; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import java.util.ArrayList; | 
			
		
	
		
		
			
				
					
					|  |  |  | import java.util.Date; |  |  |  | import java.util.Date; | 
			
		
	
		
		
			
				
					
					|  |  |  | import java.util.HashMap; |  |  |  | import java.util.HashMap; | 
			
		
	
		
		
			
				
					
					|  |  |  | import java.util.List; |  |  |  | import java.util.List; | 
			
		
	
	
		
		
			
				
					|  |  | @ -9,7 +10,8 @@ import siprp.database.cayenne.providers.MedicinaDAO; | 
			
		
	
		
		
			
				
					
					|  |  |  | import siprp.medicina.MedicinaConstants; |  |  |  | import siprp.medicina.MedicinaConstants; | 
			
		
	
		
		
			
				
					
					|  |  |  | import siprp.medicina.processo.ui.OrderedMap; |  |  |  | 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; |  |  |  | 	private static final long serialVersionUID = 1L; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	public String getDataString() |  |  |  | 	public String getDataString() | 
			
		
	
	
		
		
			
				
					|  |  | @ -19,7 +21,7 @@ public class TrabalhadoresEcdsDatas extends _TrabalhadoresEcdsDatas implements M | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	public String getEstadoString() |  |  |  | 	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<Integer, String> getEstados() |  |  |  | 	public HashMap<Integer, String> getEstados() | 
			
		
	
	
		
		
			
				
					|  |  | @ -38,7 +40,7 @@ public class TrabalhadoresEcdsDatas extends _TrabalhadoresEcdsDatas implements M | 
			
		
	
		
		
			
				
					
					|  |  |  | 	@Override |  |  |  | 	@Override | 
			
		
	
		
		
			
				
					
					|  |  |  | 	public void setData( Date date ) |  |  |  | 	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 ); |  |  |  | 			this.getToTrabalhadoresEcds().setData( date ); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
	
		
		
			
				
					|  |  | @ -46,64 +48,74 @@ public class TrabalhadoresEcdsDatas extends _TrabalhadoresEcdsDatas implements M | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	@Override |  |  |  | 	@Override | 
			
		
	
		
		
			
				
					
					|  |  |  | 	public void setEstado( Integer estado ) |  |  |  | 	public String toString() | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	{ |  |  |  | 	{ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		return getDataString() + ": " + getEstadoString(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if( estado != null && this.getToTrabalhadoresEcds() != null) |  |  |  | 	public OrderedMap<PrtGruposProtocolo> getStatesForeGruposExames() | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	{ |  |  |  | 	{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 			Integer oldExameEstado = this.getToTrabalhadoresEcds().getEstado(); |  |  |  | 		OrderedMap<PrtGruposProtocolo> grupos = new OrderedMap<PrtGruposProtocolo>(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			if(new Integer(ESTADO_POR_REALIZAR).equals( oldExameEstado)) |  |  |  | 		List<TrabalhadoresEcd> exames = this.getTrabalhadoresEcdArray(); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		if( exames != null ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 		{ |  |  |  | 		{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 				boolean todosRealizados = todosRealizados(); |  |  |  | 			for( TrabalhadoresEcd exame : exames ) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				if(new Integer(ESTADO_REALIZADO).equals( estado ) && !todosRealizados) |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			{ |  |  |  | 			{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 					this.getToTrabalhadoresEcds().setEstado( ESTADO_PARCIALMENTE_REALIZADO ); |  |  |  | 				String estadoString = MedicinaConstants.ESTADOS_EXAME_STR[exame.getEstado()]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				} |  |  |  | 				PrtGruposProtocolo grupo = exame.getToPrtTiposElementosProtocolo().getToPrtGruposProtocolo(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if(new Integer(ESTADO_REALIZADO).equals( estado ) && todosRealizados) |  |  |  | 				if( !grupos.containsKey( grupo ) ) | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 				{ |  |  |  | 				{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 					this.getToTrabalhadoresEcds().setEstado( ESTADO_REALIZADO ); |  |  |  | 					grupos.putLast( grupo, grupo.getDescricao() ); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					grupos.putLast( grupo, estadoString ); | 
			
		
	
		
		
			
				
					
					|  |  |  | 				} |  |  |  | 				} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 		super.setEstado( estado ); |  |  |  | 		return grupos; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	private boolean todosRealizados() |  |  |  | 	private List<PrtTiposElementosProtocolo> getAllEcdForGrupoForThisMarcacao( PrtGruposProtocolo grupo ) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	{ |  |  |  | 	{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 		//TODO
 |  |  |  | 		List<PrtTiposElementosProtocolo> result = new ArrayList<PrtTiposElementosProtocolo>(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		return true; |  |  |  | 		for( TrabalhadoresEcd ecd : (List<TrabalhadoresEcd>) getTrabalhadoresEcdArray() ) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	@Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	public String toString() |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		{ |  |  |  | 		{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 		return getDataString() + ": " + getEstadoString(); |  |  |  | 			if( grupo.equals( ecd.getToPrtTiposElementosProtocolo().getToPrtGruposProtocolo() ) ) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			{ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 				result.add( ecd.getToPrtTiposElementosProtocolo() ); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		return result; | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	public OrderedMap<PrtGruposProtocolo> getGruposExames() |  |  |  | 	private List<PrtTiposElementosProtocolo> getAllEcdForGrupoAndCurrentPerfil( PrtGruposProtocolo grupo ) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	{ |  |  |  | 	{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 		OrderedMap<PrtGruposProtocolo> grupos = new OrderedMap<PrtGruposProtocolo>(); |  |  |  | 		Trabalhadores trabalhador = getToTrabalhadoresEcds().getToTrabalhadores(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		List<TrabalhadoresEcd> exames = this.getTrabalhadoresEcdArray(); |  |  |  | 		List<PrtTiposElementosProtocolo> result = new ArrayList<PrtTiposElementosProtocolo>(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		if( exames != null ) |  |  |  | 		Integer perfil = trabalhador.getPerfil(); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		if( perfil != null ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 		{ |  |  |  | 		{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 			for(TrabalhadoresEcd exame : exames) |  |  |  | 			Empresas empresa = trabalhador.getToEstabelecimentos().getToEmpresas(); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			List<PrtElementosProtocolo> ecdsPerfil = (List<PrtElementosProtocolo>) empresa.getPrtElementosProtocoloArray(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			for( PrtElementosProtocolo ecdPerfil : ecdsPerfil ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 			{ |  |  |  | 			{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 				String estado = MedicinaConstants.ESTADOS_EXAME_STR[exame.getEstado()]; |  |  |  | 				if( perfil.equals( ecdPerfil.getNumeroPerfil() ) ) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				PrtGruposProtocolo grupo = exame.getToPrtTiposElementosProtocolo().getToPrtGruposProtocolo(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 				if( !grupos.containsKey( grupo )) |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 				{ |  |  |  | 				{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 					grupos.putLast( grupo, grupo.getDescricao() ); |  |  |  | 					PrtTiposElementosProtocolo ecd = ecdPerfil.getToPrtTiposElementosProtocolo(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					grupos.putLast( grupo, estado ); |  |  |  | 					if( ecd != null ) | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					{ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						if( ecd.getToPrtGruposProtocolo().equals( grupo ) && !result.contains( ecd ) ) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						{ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 							result.add( ecd ); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						} | 
			
		
	
		
		
			
				
					
					|  |  |  | 					} |  |  |  | 					} | 
			
		
	
		
		
			
				
					
					|  |  |  | 				} |  |  |  | 				} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 		return grupos; |  |  |  | 		} | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		return result; | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	public void marcarGrupoExames( PrtGruposProtocolo grupo ) |  |  |  | 	public void marcarGrupoExames( PrtGruposProtocolo grupo ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	{ |  |  |  | 	{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 		List<PrtTiposElementosProtocolo> allEcd = getToTrabalhadoresEcds().getToTrabalhadores().getAllEcdForGrupo( grupo ); |  |  |  | 		for( PrtTiposElementosProtocolo ecd : getAllEcdForGrupoAndCurrentPerfil( grupo ) ) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		for(PrtTiposElementosProtocolo ecd : allEcd) |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		{ |  |  |  | 		{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 			TrabalhadoresEcd trabEcd = new TrabalhadoresEcd(); |  |  |  | 			TrabalhadoresEcd trabEcd = new TrabalhadoresEcd(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			trabEcd.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR ); |  |  |  | 			trabEcd.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR ); | 
			
		
	
	
		
		
			
				
					|  |  | @ -113,20 +125,44 @@ public class TrabalhadoresEcdsDatas extends _TrabalhadoresEcdsDatas implements M | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	public void realizar() |  |  |  | 	public void setStateForGrupoProtocolo( PrtGruposProtocolo grupo, Integer estado ) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	{ |  |  |  | 	{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 		List<TrabalhadoresEcd> ecds = getTrabalhadoresEcdArray(); |  |  |  | 		List<PrtTiposElementosProtocolo> group = getAllEcdForGrupoForThisMarcacao( grupo ); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		if( ecds != null ) |  |  |  | 		for(TrabalhadoresEcd ecd : (List<TrabalhadoresEcd>) 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<TrabalhadoresEcd> allEcd = (List<TrabalhadoresEcd>) getTrabalhadoresEcdArray(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		if(allEcd != null) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		{ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			for(TrabalhadoresEcd ecd : allEcd ) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			{ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 				ecd.setEstado( estado ); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		super.setEstado( estado ); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		getToTrabalhadoresEcds().getGruposExamesForPerfil(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |