Controller

En este paquete vamos realizar las clases controladoras que van mandar a llamar nuestras vista e invocar nuestros servicios para el manejo de datos.

Creamos el paquete com.tutosoftware.ecemexico.controller
Creamos la clase HistoriaClinicaController
 
   
  package com.tutosoftware.ecemexico.controller;


import java.time.LocalDateTime;
import java.util.List;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.tutosoftware.ecemexico.entity.HistoriaClinica;
import com.tutosoftware.ecemexico.service.HistoriaClinicaService;

@Controller
public class HistoriaClinicaController {
	
	
	@Autowired
	HistoriaClinicaService historiaClinicaService;
	
	
	@RequestMapping(value = "/mostrarHistoriaClinica", method=RequestMethod.GET)
	public ModelAndView actualizarExpediente(@RequestParam String idPaciente,ModelMap model){
		ModelAndView modelo = new ModelAndView("mostrarHistoriaGeneral");
			List<HistoriaClinica> listHistorias = historiaClinicaService.buscarHistoriaPorIdPaciente(idPaciente);
		modelo.addObject("listHistorias",listHistorias);
		modelo.addObject("idPaciente",idPaciente);
		
		
		return modelo;
	}
	
	
	@RequestMapping(value = "/mostrarFormHistoria", method=RequestMethod.GET)
	public ModelAndView mostrarFormularioHistoria(@RequestParam String idPaciente,ModelMap model){
		ModelAndView modelo = new ModelAndView("guardarHistoriaClinica");
			HistoriaClinica historia = new HistoriaClinica();
			modelo.addObject("idPaciente",idPaciente);
			
			model.addAttribute("historia",historia);
		
		
		return modelo;
	}
	
	
	@RequestMapping(value = "/agregarHistoriaClinica", method=RequestMethod.POST)
	public ModelAndView guardarHistoria(@ModelAttribute("historia")HistoriaClinica historia,Model model) {
		ModelAndView modelo = new ModelAndView("mostrarHistoriaGeneral");
		LocalDateTime ahora = LocalDateTime.now();
		historia.setFecha(ahora);
		historiaClinicaService.guardarHistoriaClinica(historia);
		
		List<HistoriaClinica> listHistorias = historiaClinicaService.buscarHistoriaPorIdPaciente(historia.getIdPaciente());
		modelo.addObject("listHistorias",listHistorias);
		modelo.addObject("idPaciente",historia.getIdPaciente());
		
		
		return modelo;
	}
	
	
	@RequestMapping(value = "/mostrarHistoriaClinicaFecha", method=RequestMethod.GET)
	public ModelAndView mostrarHistoriaFecha(@RequestParam String idPaciente,@RequestParam("fecha")  @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
	LocalDateTime fecha,ModelMap model){
		ModelAndView modelo = new ModelAndView("mostrarHistoriaClinicaFecha");
			HistoriaClinica historia = historiaClinicaService.buscarHistoriaPorIdPacienteFecha(idPaciente,fecha);
		modelo.addObject("historia",historia);
		return modelo;
	}
	
	

}
  
   
   
    
  

La clase NotasEvolucionController
 
     
  package com.tutosoftware.ecemexico.controller;

import java.time.LocalDateTime;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.tutosoftware.ecemexico.entity.NotasEvolucion;
import com.tutosoftware.ecemexico.service.NotasEvolucionService;

@Controller
public class NotasEvolucionController {
	
	@Autowired
	NotasEvolucionService notasEvolucionService;
	
	@RequestMapping(value = "/mostrarNotasEvolucion", method=RequestMethod.GET)
	public ModelAndView actualizarExpediente(@RequestParam String idPaciente,ModelMap model){
		ModelAndView modelo = new ModelAndView("mostrarNotasGeneral");
	   List<NotasEvolucion> listNotas = notasEvolucionService.buscarNotasPorIdPaciente(idPaciente);
		modelo.addObject("listNotas",listNotas);
		modelo.addObject("idPaciente",idPaciente);
		
		
		return modelo;
	}
	
	@RequestMapping(value = "/mostrarFormNotas", method=RequestMethod.GET)
	public ModelAndView mostrarFormularioHistoria(@RequestParam String idPaciente,ModelMap model){
		ModelAndView modelo = new ModelAndView("guardarNotasEvolucion");
			NotasEvolucion nota = new NotasEvolucion();
			modelo.addObject("idPaciente",idPaciente);
			
			model.addAttribute("nota",nota);
		
		
		return modelo;
	}
	
	
	@RequestMapping(value = "/agregarNotaEvolucion", method=RequestMethod.POST)
	public ModelAndView guardarHistoria(@ModelAttribute("nota")NotasEvolucion nota,Model model) {
		ModelAndView modelo = new ModelAndView("mostrarNotasGeneral");
		LocalDateTime ahora = LocalDateTime.now();
		nota.setFecha(ahora);
		notasEvolucionService.guardarNotasEvolucion(nota);
		
		List<NotasEvolucion> listNotas = notasEvolucionService.buscarNotasPorIdPaciente(nota.getIdPaciente());
		modelo.addObject("listNotas",listNotas);
		modelo.addObject("idPaciente",nota.getIdPaciente());
		
		
		return modelo;
	}
	
	
	@RequestMapping(value = "/mostrarNotaEvolucionFecha", method=RequestMethod.GET)
	public ModelAndView mostrarHistoriaFecha(@RequestParam String idPaciente,@RequestParam("fecha")  @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
	LocalDateTime fecha,ModelMap model){
		ModelAndView modelo = new ModelAndView("mostrarNotaEvolucionFecha");
			NotasEvolucion nota = notasEvolucionService.buscarNotaPorIdPacienteFecha(idPaciente, fecha); 
		modelo.addObject("nota",nota);
		return modelo;
	}

}
  
  
  

La clase PacienteAjaxController Este controlador en especifico se realiza con ajax es para la búsqueda del expediente ya que la busqueda del expediente se realiza dependiendo del criterio que tome para la consulta.
 
     
   package com.tutosoftware.ecemexico.controller;



import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RestController;


import com.tutosoftware.ecemexico.entity.Paciente;
import com.tutosoftware.ecemexico.model.NombreCompleto;
import com.tutosoftware.ecemexico.service.PacienteService;

@RestController
public class PacienteAjaxController {
	
	
	@Autowired
	PacienteService pacienteService;
	
	
    @RequestMapping(value = "/buscarExpedienteId/{idUsuario}",method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
	public Paciente buscarExpedienteId(@PathVariable String idUsuario) {
		
    	
    	
		Paciente paciente = new Paciente();
		
		//AjaxPacienteResponse ajaxPacienteResponse = new AjaxPacienteResponse();
		
		if(idUsuario.equals("")) {
			System.out.println("El id usuario es nulo");
			return null;
		}
	
		System.out.println("El id usuario es:"+idUsuario);
		paciente = pacienteService.buscarExpedientePorIdPaciente(idUsuario);
		
		System.out.println(paciente.getNombre());
		
		//ajaxPacienteResponse.setPaciente(paciente);
		
		
		
		return paciente;
	}
    
    @RequestMapping(value = "/buscarExpedienteCurp/{curp}",method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public List<Paciente> buscarExpedienteCurp(@PathVariable String curp){
    	
    	List<Paciente> pacientes = new ArrayList<Paciente>();
    	
    	if(curp.equals("")) {
			System.out.println("El curp es nulo");
			return null;
		}
    	
    	pacientes = pacienteService.buscarExpedientePorCurp(curp);
    	
    	return pacientes;
    }
    
    @RequestMapping(value = "/buscarExpedienteNombre",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public List<Paciente> buscarExpedienteNombre(@RequestBody NombreCompleto nc){
    	
    	List<Paciente> pacientes = new ArrayList<Paciente>();
    	pacientes = pacienteService.buscarExpedientePorNombre(nc);
    	return pacientes;
    }
    


}
   
   
   
   
   
  

La clase PacienteController
 
    
  package com.tutosoftware.ecemexico.controller;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;

import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.tutosoftware.ecemexico.entity.Alergia;
import com.tutosoftware.ecemexico.entity.CatTipoSangre;
import com.tutosoftware.ecemexico.entity.Paciente;
import com.tutosoftware.ecemexico.model.Expediente;
import com.tutosoftware.ecemexico.service.CatTipoSangreService;
import com.tutosoftware.ecemexico.service.PacienteService;

@Controller
public class PacienteController {
	
	
	@Autowired
	PacienteService pacienteService;
	
	@Autowired
	CatTipoSangreService catTipoSangreService;
	
	
	
	
	@RequestMapping(value = "/registrarPaciente", method=RequestMethod.GET)
	public ModelAndView mostrarFormularioPaciente(Locale locale,Model model){
		
		   Expediente expediente = new Expediente();
		    
			ModelAndView modelo = new ModelAndView("agregarPaciente");
			Map<Integer, String > tipoSangre = new HashMap<Integer, String>();
			List<CatTipoSangre> catTipoSangre = catTipoSangreService.obtenerTipoSangre();
			for(CatTipoSangre cts : catTipoSangre){
				tipoSangre.put(cts.getIdTipoSangre(),cts.getTipoSangre());
			}
		
			
			model.addAttribute("expediente",expediente);
			
			modelo.addObject("tipoSangreMap",tipoSangre);
			return modelo;
	
		
		
	}
	
	
	@RequestMapping(value = "/guardarPaciente", method=RequestMethod.POST)
	public ModelAndView crearExpediente(@ModelAttribute("expediente") @Valid Expediente expediente,BindingResult result,Model model){
		ModelAndView modelo = new ModelAndView("mostrarPaciente");
		ModelAndView modelo2 = new ModelAndView("agregarPaciente");
		List<String> alergias =expediente.getAlergias();
	    
	    Paciente paciente = new Paciente();
	    CatTipoSangre catTipoSangre2 = new CatTipoSangre();
	   
	    
	    
	    if (result.hasErrors()) {
	    	
	    	List<CatTipoSangre> catTipoSangre = catTipoSangreService.obtenerTipoSangre();
	    	Map<Integer, String > tipoSangre = new HashMap<Integer, String>();
			for(CatTipoSangre cts : catTipoSangre){
				tipoSangre.put(cts.getIdTipoSangre(),cts.getTipoSangre());
			}
			modelo2.addObject("tipoSangreMap",tipoSangre);
	         return modelo2;
	      }
	    
	    
	    
	    String idPaciente = com.datastax.driver.core.utils.UUIDs.timeBased().toString();
	    paciente.setIdUsuario(idPaciente);
	    paciente.setCurp(expediente.getCurp());
	    paciente.setNombre(expediente.getNombre());
	    paciente.setApellidoPaterno(expediente.getApellidoPaterno());
	    paciente.setApellidoMaterno(expediente.getApellidoMaterno());
	    paciente.setNivelSocioeconomico(expediente.getNivelSocioeconomico());
        paciente.setVivienda(expediente.getVivienda());	    
	    paciente.setTipoSangre(expediente.getTipoSangre());
	    paciente.setDiscapacidad(expediente.getDiscapacidad());
	    paciente.setGrupoEtnico(expediente.getGrupoEtnico());
	    paciente.setReligion(expediente.getReligion());
	    paciente.setSexo(expediente.getSexo());
	    paciente.setEdad(expediente.getEdad());
	    paciente.setCalle(expediente.getCalle());
	    paciente.setNumeroExterior(expediente.getNumeroExterior());
	    paciente.setNumeroInterior(expediente.getNumeroInterior());
	    paciente.setEstado(expediente.getEstado());
	    paciente.setMunicipio(expediente.getMunicipio());
	    paciente.setLocalidad(expediente.getLocalidad());
	    paciente.setCodigoPostal(expediente.getCodigoPostal());
	    paciente.setTelefonoFijo(expediente.getTelefonoFijo());
	    paciente.setTelefonoMovil(expediente.getTelefonoMovil());
	    paciente.setColonia(expediente.getColonia());
	    catTipoSangre2 = catTipoSangreService.obtenerTipoSangre(expediente.getTipoSangre());
	    modelo.addObject("catTipoSangreObj",catTipoSangre2); 
	    modelo.addObject("pacienteObj",paciente);
	    
		pacienteService.guardarPaciente(paciente);
		
		Alergia alergiaEx = new Alergia();
		
		Set<String> nombreAlergia = new HashSet<>();
		
		
		if(alergias!=null){
			
			
			for(int i=0;i<alergias.size();i++){
				
				nombreAlergia.add(alergias.get(i).toString());
				
				
				System.out.println(alergias.get(i).toString());
			}
			
			
			alergiaEx.setIdPaciente(idPaciente);
			alergiaEx.setNombres(nombreAlergia);
			
			pacienteService.guardarAlergia(alergiaEx);
			modelo.addObject("alergiaObj",alergiaEx);
		}
		
		
		
		return modelo;
	}
	
	@RequestMapping(value = "/mostrarPaciente", method=RequestMethod.GET)
	public ModelAndView obtenerExpediente(){
		ModelAndView modelo = new ModelAndView("mostrarPaciente");
		
		
		
		
		return modelo;
	}
	
	
	
	@RequestMapping(value = "/exportarExpediente", method=RequestMethod.GET)
	public ModelAndView obtenerPdfExpediente(@RequestParam String idExpediente,@RequestParam String nombre,
			@RequestParam String apellidoPaterno,@RequestParam String apellidoMaterno){
		Paciente pacienteObj = new Paciente();
		pacienteObj.setIdUsuario(idExpediente);
		pacienteObj.setNombre(nombre);
		pacienteObj.setApellidoPaterno(apellidoPaterno);
		pacienteObj.setApellidoMaterno(apellidoMaterno);
		
		List<Paciente> listPaciente = new ArrayList<Paciente>();
		
		listPaciente.add(pacienteObj);
		
		return new ModelAndView("pdfExpediente", "listPaciente",listPaciente);
	}
	
	@RequestMapping(value = "/buscarExpediente", method=RequestMethod.GET)
	public ModelAndView encontrarExpediente(){
		
		
		return new ModelAndView("buscarExpediente");
	}
	
	
	@RequestMapping(value = "/mostrarExpediente", method=RequestMethod.GET)
		public ModelAndView busquedaExpediente(@RequestParam String idUsuario) {
		
		ModelAndView modelo = new ModelAndView("mostrarPaciente");
		Paciente paciente = new Paciente();
		CatTipoSangre catTipoSangre = new CatTipoSangre();
		Alergia alergia = new Alergia();
		paciente = pacienteService.buscarExpedientePorIdPaciente(idUsuario);
		catTipoSangre = catTipoSangreService.obtenerTipoSangre(paciente.getTipoSangre());
		alergia = pacienteService.mostrarAlergia(idUsuario);
		
		modelo.addObject("catTipoSangreObj",catTipoSangre);
		modelo.addObject("pacienteObj",paciente);
		modelo.addObject("alergiaObj",alergia);
		return modelo;
	}
	
	
	@RequestMapping(value = "/modificarDatosPersonales", method=RequestMethod.GET)
	public ModelAndView actualizarExpediente(@RequestParam String idUsuario,ModelMap model){
		ModelAndView modelo = new ModelAndView("modificarExpediente");
		Expediente expediente = new Expediente();
		
		Paciente paciente = new Paciente();
		CatTipoSangre catTipoSangre = new CatTipoSangre();
		Alergia alergia = new Alergia();
		paciente = pacienteService.buscarExpedientePorIdPaciente(idUsuario);
		catTipoSangre = catTipoSangreService.obtenerTipoSangre(paciente.getTipoSangre());
		alergia = pacienteService.mostrarAlergia(idUsuario);
		
		List<CatTipoSangre> catTipoSangre2 = catTipoSangreService.obtenerTipoSangre();
		
		modelo.addObject("listCatTipoSangre",catTipoSangre2);
		modelo.addObject("catTipoSangreObj",catTipoSangre);
		modelo.addObject("pacienteObj",paciente);
		modelo.addObject("alergiaObj",alergia);
		
		model.addAttribute("expediente",expediente);
		
		return modelo;
	}
	
	@RequestMapping(value = "/actualizarPaciente", method=RequestMethod.POST)
	public ModelAndView modificarPaciente(@ModelAttribute("expediente") @Valid Expediente expediente,BindingResult result,Model model) {

		ModelAndView modelo = new ModelAndView("mostrarPaciente");
		ModelAndView modelo2 = new ModelAndView("modificarExpediente");
		List<String> alergias =expediente.getAlergias();
		List<String> alergias2 =expediente.getAlergias2();
	    Paciente paciente = new Paciente();
	    CatTipoSangre catTipoSangre2 = new CatTipoSangre();
	   
	    
	    
	    if (result.hasErrors()) {
	    	/*
	    	List<CatTipoSangre> catTipoSangre = catTipoSangreService.obtenerTipoSangre();
	    	Map<Integer, String > tipoSangre = new HashMap<Integer, String>();
			for(CatTipoSangre cts : catTipoSangre){
				tipoSangre.put(cts.getIdTipoSangre(),cts.getTipoSangre());
			}
			modelo2.addObject("tipoSangreMap",tipoSangre);*/
	         return modelo2;
	      }
		
	    paciente.setIdUsuario(expediente.getIdUsuario());
	    paciente.setCurp(expediente.getCurp());
	    paciente.setNombre(expediente.getNombre());
	    paciente.setApellidoPaterno(expediente.getApellidoPaterno());
	    paciente.setApellidoMaterno(expediente.getApellidoMaterno());
	    paciente.setNivelSocioeconomico(expediente.getNivelSocioeconomico());
        paciente.setVivienda(expediente.getVivienda());	    
	    paciente.setTipoSangre(expediente.getTipoSangre());
	    paciente.setDiscapacidad(expediente.getDiscapacidad());
	    paciente.setGrupoEtnico(expediente.getGrupoEtnico());
	    paciente.setReligion(expediente.getReligion());
	    paciente.setSexo(expediente.getSexo());
	    paciente.setEdad(expediente.getEdad());
	    paciente.setCalle(expediente.getCalle());
	    paciente.setNumeroExterior(expediente.getNumeroExterior());
	    paciente.setNumeroInterior(expediente.getNumeroInterior());
	    paciente.setEstado(expediente.getEstado());
	    paciente.setMunicipio(expediente.getMunicipio());
	    paciente.setLocalidad(expediente.getLocalidad());
	    paciente.setCodigoPostal(expediente.getCodigoPostal());
	    paciente.setTelefonoFijo(expediente.getTelefonoFijo());
	    paciente.setTelefonoMovil(expediente.getTelefonoMovil());
	    paciente.setColonia(expediente.getColonia());
	    catTipoSangre2 = catTipoSangreService.obtenerTipoSangre(expediente.getTipoSangre());
	    modelo.addObject("catTipoSangreObj",catTipoSangre2); 
	    paciente=pacienteService.updatePaciente(paciente);
	    
	    modelo.addObject("pacienteObj",paciente);
	    
	    
	    
	    
           Alergia alergiaEx = new Alergia();
		
		Set<String> nombreAlergia = new HashSet<>();
		
		
		
			
			
			for(int i=0;i<alergias2.size();i++){
				
				nombreAlergia.add(alergias2.get(i).toString());
				
				
				System.out.println(alergias2.get(i).toString());
			}
	    
			
           for(int i=0;i<alergias.size();i++){
				
				nombreAlergia.add(alergias.get(i).toString());
				
				
				System.out.println(alergias.get(i).toString());
			}
           
           alergiaEx.setIdPaciente(expediente.getIdUsuario());
			alergiaEx.setNombres(nombreAlergia);
			
			pacienteService.guardarAlergia(alergiaEx);
			modelo.addObject("alergiaObj",alergiaEx);
           
		
		
		
		return modelo;
	}
	
	
	
	
	
}
  
  

La clase RecetaController
 
    
   package com.tutosoftware.ecemexico.controller;


import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.tutosoftware.ecemexico.entity.Receta;
import com.tutosoftware.ecemexico.model.RecetaExp;
import com.tutosoftware.ecemexico.service.RecetaService;

@Controller
public class RecetaController {
	
	@Autowired
	RecetaService recetaService;
	
	@RequestMapping(value = "/mostrarRecetas", method=RequestMethod.GET)
	public ModelAndView actualizarExpediente(@RequestParam String idPaciente,ModelMap model){
		ModelAndView modelo = new ModelAndView("mostrarRecetasGeneral");
	   List<Receta> listRecetas = recetaService.buscarRecetaIdPaciente(idPaciente);
		modelo.addObject("listRecetas",listRecetas);
		modelo.addObject("idPaciente",idPaciente);
		
		
		return modelo;
	}
	
	
	@RequestMapping(value = "/mostrarFormReceta", method=RequestMethod.GET)
	public ModelAndView mostrarFormularioHistoria(@RequestParam String idPaciente,ModelMap model){
		ModelAndView modelo = new ModelAndView("guardarReceta");
			Receta receta = new Receta();
			modelo.addObject("idPaciente",idPaciente);
			
			model.addAttribute("receta",receta);
		
		
		return modelo;
	}
	
	@RequestMapping(value = "/generarReceta", method=RequestMethod.POST)
	public ModelAndView guardarHistoria(@ModelAttribute("receta")RecetaExp receta,Model model) {
		Receta recetaObj = new Receta();
		Set<String> nombreMedicamento = new HashSet<>();
		Set<String> nombreDosis = new HashSet<>();
		Set<String> nombreDuracion = new HashSet<>();
		Set<String> nombreNotas = new HashSet<>();
		String numeroReceta = com.datastax.driver.core.utils.UUIDs.timeBased().toString();
		receta.setNumeroReceta(numeroReceta);
		LocalDateTime ahora = LocalDateTime.now();
		receta.setFecha(ahora);
		List<RecetaExp> listReceta = new ArrayList<RecetaExp>();
		listReceta.add(receta);
		
		recetaObj.setIdPaciente(receta.getIdPaciente());
		recetaObj.setNumeroReceta(numeroReceta);
		recetaObj.setNombreDoctor(receta.getNombreDoctor());
		recetaObj.setFecha(ahora);
		for(int i=0;i<receta.getMedicamento().size();i++){
			
			nombreMedicamento.add(receta.getMedicamento().get(i));
			nombreDosis.add(receta.getDosis().get(i));
			nombreDuracion.add(receta.getDuracion().get(i));
			nombreNotas.add(receta.getNotas().get(i));
		}
		recetaObj.setMedicamento(nombreMedicamento);
		recetaObj.setDosis(nombreDosis);
		recetaObj.setDuracion(nombreDuracion);
		recetaObj.setNotas(nombreNotas);
		recetaService.guardarReceta(recetaObj);
		
		
		
		
		return new ModelAndView("pdfReceta","listReceta",listReceta);
	}
	
	@RequestMapping(value = "/mostrarRecetaNumero", method=RequestMethod.GET)
	public ModelAndView mostrarRectaNUmero(@RequestParam String idPaciente,@RequestParam String numeroReceta,ModelMap model){
		ModelAndView modelo = new ModelAndView("mostrarRecetaNumero");
	  Receta receta = recetaService.buscarRecetaIdPacienteNumeroReceta(idPaciente, numeroReceta); 
	  //System.out.println("El valor de receta:"+receta);
		modelo.addObject("receta",receta);
		return modelo;
	}
	
	

}
   
   
    
  

La clase UsuarioController
 
   
   package com.tutosoftware.ecemexico.controller;



import java.security.Principal;

import java.util.Locale;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.tutosoftware.ecemexico.entity.Usuario;
import com.tutosoftware.ecemexico.service.UsuarioService;




@Controller
public class UsuarioController {
	
	
	@Autowired
	UsuarioService usuarioService;
	
	 @Autowired
	 private PasswordEncoder passwordEncoder;
	
	
	@RequestMapping(value = {"/","/home"}, method=RequestMethod.GET)
	public ModelAndView obtenerIndex(Model model,Principal principal){
		
		
		
			ModelAndView modelo = new ModelAndView("login");
			
			
			return modelo;
	
		
		
	}
	
	
	@RequestMapping(value = "/accesoDenegado", method = RequestMethod.GET)
	public String accessDeniedPage(ModelMap model) {
		model.addAttribute("user", getPrincipal());
		return "accessoDenegado";
	}

	@RequestMapping(value = "/login", method = RequestMethod.GET)
	public String loginPage() {
		
		return "login";
	}
	
	
	
	@RequestMapping(value = "/menu", method = RequestMethod.GET)
	public String menuPage(ModelMap model) {
		
		model.addAttribute("user", getPrincipal());
		return "menu";
	}
	
	
	
	@RequestMapping(value="/logout", method = RequestMethod.GET)
	public String logoutPage (HttpServletRequest request, HttpServletResponse response) {
		Authentication auth = SecurityContextHolder.getContext().getAuthentication();
		if (auth != null){    
			new SecurityContextLogoutHandler().logout(request, response, auth);
		}
		return "redirect:/login?logout";
	}
	
	
	
	
	
	private String getPrincipal(){
		String userName = null;
		Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();

		if (principal instanceof UserDetails) {
			userName = ((UserDetails)principal).getUsername();
		} else {
			userName = principal.toString();
		}
		return userName;
	}
	
	
	@RequestMapping(value = "/registrarUsuarioForm", method=RequestMethod.GET)
	public ModelAndView mostrarFormularioUsuario(Locale locale,Model model){
		
		   Usuario usuario = new Usuario();
		    
			ModelAndView modelo = new ModelAndView("agregarUsuario");
			
			
			model.addAttribute("usuario",usuario);
			
			
			return modelo;
	
		
		
	}
	
	@RequestMapping(value = "/guardarUsuario", method=RequestMethod.POST)
	public ModelAndView crearUsuario(@ModelAttribute("usuario")  Usuario usuario,Model model){
		ModelAndView modelo = new ModelAndView("verUsuarios");
		
		
		usuario.setPassword(passwordEncoder.encode(usuario.getPassword()));
		
		usuarioService.guardarUsuario(usuario);
		
		Usuario usuarioObj = usuarioService.obtenerUsuario(usuario.getEmail());
		
		modelo.addObject("usuario",usuarioObj);
		
		return modelo;
		
	}
	
	
	@RequestMapping("/buscarUsuarioForm")
    public ModelAndView buscarFormUsuario(Locale locale,Model model) {  
	 
        return new ModelAndView("verUsuarios");    	
    }
	
	
	 @RequestMapping("/buscarUsuario")
	    public ModelAndView buscarUsuario(@RequestParam("email") String email) {  
		 Usuario usuario = usuarioService.obtenerUsuario(email);
	        return new ModelAndView("verUsuarios", "usuario",usuario);    	
	    }
	
	 @RequestMapping("/actualizarUsuarioForm")
	    public ModelAndView actualizarUsuario(@RequestParam("email") String email,Model model) {  
		 Usuario usuario = usuarioService.obtenerUsuario(email);
		 Usuario usuarioObj = new Usuario();
		     model.addAttribute("usuarioObj",usuarioObj);
	        return new ModelAndView("modificarUsuario", "usuario",usuario);    	
	    }
	
	 @RequestMapping(value = "/actualizarUsuario", method=RequestMethod.POST)
		public ModelAndView updateUsuario(@ModelAttribute("usuarioObj")  Usuario usuario,Model model){
			ModelAndView modelo = new ModelAndView("verUsuarios");
			Usuario usuarioObj = new Usuario();
			
			 Usuario usuario2 = usuarioService.obtenerUsuario(usuario.getEmail());
			 
			 if(usuario2.getPassword().equals(usuario.getPassword())) {
				  usuarioObj= usuarioService.updateUsuario(usuario);
			 }else {
				 usuario.setPassword(passwordEncoder.encode(usuario.getPassword()));
				 usuarioObj = usuarioService.updateUsuario(usuario);
			 }
			 
			
           
           
           
           modelo.addObject("usuario",usuarioObj);
           
           return modelo;
	 }
	 
	 
	 @RequestMapping("/eliminarUsuario")
	    public ModelAndView eliminarUsuario(@RequestParam("email") String email,Model model) {  
		 usuarioService.deleteUsuario(email);
		 
	        return new ModelAndView("verUsuarios");    	
	    }
           
}
   
   
   
   
  

Hasta este momento asi se veria el proyecto.
java project