package enefro.interop.provider; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import org.hl7.fhir.instance.model.api.IBaseResource; import ca.uhn.fhir.model.api.TemporalPrecisionEnum; import ca.uhn.fhir.model.dstu2.resource.Appointment; import ca.uhn.fhir.model.dstu2.resource.Encounter; import ca.uhn.fhir.model.dstu2.resource.Location; import ca.uhn.fhir.model.dstu2.resource.Patient; import ca.uhn.fhir.model.dstu2.resource.Practitioner; import ca.uhn.fhir.model.primitive.StringDt; import ca.uhn.fhir.rest.annotation.RequiredParam; import ca.uhn.fhir.rest.annotation.Search; import ca.uhn.fhir.rest.param.StringParam; import ca.uhn.fhir.rest.server.IResourceProvider; import enefro.interop.SQL.AppointmentSQL; import enefro.interop.bean.AppointmentBean; import enefro.interop.model.MyEncounter; import enefro.interop.util.PatientUtil; import enefro.interop.util.PractitionerUtil; public class EncounterResourceProvider implements IResourceProvider{ @Override public Class getResourceType() { return MyEncounter.class; } @Search() public List findEncounterByPractitioner(@RequiredParam(name=Encounter.SP_PRACTITIONER) StringParam idPractitioner){ //Recuperamos los encuentros de base de datos LinkedList listaAppointmentsBean = AppointmentSQL.getAppointmentsByPractitioner(idPractitioner.getValue()); Iterator it = listaAppointmentsBean.iterator(); //Creamos la lista de recursos MyEncounter List listaEncounter = new ArrayList(); //Recorremos la lista de PacientesBean para ir formando los recursos FHIR while (it.hasNext()) { AppointmentBean AppointmentActual = (AppointmentBean) it.next(); MyEncounter encounter = new MyEncounter(); //Identificador del recurso encounter.setId(Long.toString(AppointmentActual.getIdCita())); Patient patient = PatientUtil.findPatientById(AppointmentActual.getIdPaciente()); if(patient!=null){ encounter.getPatient().setResource(patient); } Practitioner practitioner = PractitionerUtil.findPractitionerById(AppointmentActual.getIdProfesional()); if(practitioner!=null){ encounter.addParticipant().getIndividual().setResource(practitioner); encounter.getParticipant().get(0).addType().setText("Profesional sanitario"); } Location localizacion = new Location(); localizacion.setName(AppointmentActual.getLocalizacion()); encounter.addLocation().getLocation().setResource(localizacion); //encounter.addReason().setText(AppointmentActual.getCausa()); StringDt ObsMedico = new StringDt(); ObsMedico.setValueAsString(AppointmentActual.getObserMed()); encounter.setObsMedico(ObsMedico); StringDt ObsEnf = new StringDt(); ObsEnf.setValueAsString(AppointmentActual.getObserEnf()); encounter.setObsEnferm(ObsEnf); StringDt ComPac = new StringDt(); ComPac.setValueAsString(AppointmentActual.getComenPac()); encounter.setComPaciente(ComPac); Appointment appointment = new Appointment(); appointment.setDescription(AppointmentActual.getDescripcion()); appointment.getReason().setText(AppointmentActual.getCausa()); appointment.setStart(AppointmentActual.getFechaInicio(), TemporalPrecisionEnum.DAY); appointment.setDescription(AppointmentActual.getDescripcion()); encounter.getAppointment().setResource(appointment); listaEncounter.add(encounter); } return listaEncounter; } } e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


SERVICIO WEB PARA EL ACCESO A INFORMACIÓN SANITARIA DE PACIENTES RENALES

: PEDRERA JIMÉNEZ, MIGUEL
: Grado en Ingeniería de las Tecnologías de Telecomunicación
Contenido del proyecto:
Directorio raíz  >  codigo  >  ServicioWebFHIR  >  src  >  main  >  java  >  enefro  >  interop  >  provider  >  EncounterResourceProvider.java