diff --git a/1.sources/MyHealth/docroot/medicaltest/MedicalTests.xhtml b/1.sources/MyHealth/docroot/medicaltest/MedicalTests.xhtml
index fe6dee4..10670a9 100644
--- a/1.sources/MyHealth/docroot/medicaltest/MedicalTests.xhtml
+++ b/1.sources/MyHealth/docroot/medicaltest/MedicalTests.xhtml
@@ -15,7 +15,7 @@
Tipo de prueba:
+
+
+
+
diff --git a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java
index 6bac419..c3981df 100644
--- a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java
+++ b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java
@@ -69,9 +69,9 @@ public class MedicalTestFacadeBean implements MedicalTestFacadeRemote {
qjpa.setFamilyDoctor(pat.getFamilyDoctor());
entman.persist(qjpa);
-
+
return "ok";
-
+
} else {
return "No tienes médico de familia elegido, por favor acude a la sección 'Gestionar Perfil' -> 'Cambiar médico de familia'";
}
@@ -156,22 +156,29 @@ public class MedicalTestFacadeBean implements MedicalTestFacadeRemote {
/**
* Añadir pruebas médicas a una cita
*
- * Dado que será añadida por el médico especialista en sesión no hace falta más información.
+ * Dado que será añadida por el médico especialista en sesión no hace falta más
+ * información.
*
* @param patientiID
* @param date
* @param time
- * @param testType Pudiera llegar a ser: Análisis de sangre, resonancias
- * magnéticas y TAC
+ * @param testType Pudiera llegar a ser: Análisis de sangre, resonancias
+ * magnéticas y TAC
* @param observations
*/
- public void addMedicalTest(int patientID, int doctorSpecialistID, Date date, LocalTime time, MedicalTestType testType, String observations) {
- SpecialistDoctorJPA specDoctor = entman.find(SpecialistDoctorJPA.class, doctorSpecialistID);
- PatientJPA pat = entman.find(PatientJPA.class, patientID);
-
- MedicalTestJPA mt = new MedicalTestJPA(0, date, time, observations, null, testType, pat, specDoctor);
-
- entman.persist(mt);
+ public String addMedicalTest(int patientID, int doctorSpecialistID, Date date, LocalTime time,
+ MedicalTestType testType, String observations) {
+ try {
+ SpecialistDoctorJPA specDoctor = entman.find(SpecialistDoctorJPA.class, doctorSpecialistID);
+ PatientJPA pat = entman.find(PatientJPA.class, patientID);
+
+ MedicalTestJPA mt = new MedicalTestJPA(0, date, time, observations, null, testType, pat, specDoctor);
+
+ entman.persist(mt);
+ return "ok";
+ } catch (Exception ex) {
+ return ex.getMessage();
+ }
}
/**
@@ -188,10 +195,10 @@ public class MedicalTestFacadeBean implements MedicalTestFacadeRemote {
return resp;
}
-
+
private MedicalTestJPA getMedicalTestJPA(int idMedicalTest) {
- TypedQuery query = entman.createQuery("SELECT q from MedicalTestJPA q where q.id=:idMedicalTest",
- MedicalTestJPA.class);
+ TypedQuery query = entman
+ .createQuery("SELECT q from MedicalTestJPA q where q.id=:idMedicalTest", MedicalTestJPA.class);
query.setParameter("idMedicalTest", idMedicalTest);
return query.getSingleResult();
}
@@ -205,7 +212,7 @@ public class MedicalTestFacadeBean implements MedicalTestFacadeRemote {
public void addImage(int idMedicalTest, String image) {
MedicalTestJPA mt = this.getMedicalTestJPA(idMedicalTest);
mt.setHighresimage(image);
-
+
entman.persist(mt);
}
@@ -227,7 +234,7 @@ public class MedicalTestFacadeBean implements MedicalTestFacadeRemote {
public void removeImage(int idMedicalTest) {
MedicalTestJPA mt = this.getMedicalTestJPA(idMedicalTest);
mt.setHighresimage(null);
-
+
entman.persist(mt);
}
@@ -295,20 +302,20 @@ public class MedicalTestFacadeBean implements MedicalTestFacadeRemote {
public List loadMedicalTestForSpecialistDoctor(int specialistDoctorID) {
return this.loadMedicalTestForSpecialistDoctor(specialistDoctorID, -1);
}
-
+
@Override
public List loadMedicalTestForFamilyDoctor(int familyDoctorID, int patientID) {
List medicalTests = new ArrayList();
String extraQuery = "";
-
- if(patientID > 0) {
+
+ if (patientID > 0) {
extraQuery = " and q.patient.id=:patientID";
}
-
- TypedQuery query = entman.createQuery(
- "SELECT q from MedicalTestJPA q where q.patient.familyDoctor.id=:familyDoctorID " + extraQuery + " order by q.id desc",
- MedicalTestJPA.class);
- if(patientID > 0) {
+
+ TypedQuery query = entman
+ .createQuery("SELECT q from MedicalTestJPA q where q.patient.familyDoctor.id=:familyDoctorID "
+ + extraQuery + " order by q.id desc", MedicalTestJPA.class);
+ if (patientID > 0) {
query.setParameter("patientID", patientID);
}
query.setParameter("familyDoctorID", familyDoctorID);
@@ -326,16 +333,16 @@ public class MedicalTestFacadeBean implements MedicalTestFacadeRemote {
public List loadMedicalTestForSpecialistDoctor(int specialistDoctorID, int patientID) {
List medicalTests = new ArrayList();
String extraQuery = "";
-
- if(patientID > 0) {
+
+ if (patientID > 0) {
extraQuery = " and q.patient.id=:patientID";
}
- TypedQuery query = entman.createQuery(
- "SELECT q from MedicalTestJPA q where q.specialistDoctor.id=:specialistDoctorID " + extraQuery + " order by q.id desc",
- MedicalTestJPA.class);
-
- if(patientID > 0) {
+ TypedQuery query = entman
+ .createQuery("SELECT q from MedicalTestJPA q where q.specialistDoctor.id=:specialistDoctorID "
+ + extraQuery + " order by q.id desc", MedicalTestJPA.class);
+
+ if (patientID > 0) {
query.setParameter("patientID", patientID);
}
query.setParameter("specialistDoctorID", specialistDoctorID);
diff --git a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java
index f796aa4..60b3063 100644
--- a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java
+++ b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java
@@ -89,7 +89,7 @@ public interface MedicalTestFacadeRemote {
* @param testType Pudiera llegar a ser: Análisis de sangre, resonancias magnéticas y TAC
* @param observations
*/
- public void addMedicalTest(int patientID, int doctorSpecialistID, Date date, LocalTime time, MedicalTestType testType, String observations);
+ public String addMedicalTest(int patientID, int doctorSpecialistID, Date date, LocalTime time, MedicalTestType testType, String observations);
/**
* Recuperar una prueba médica por ID
diff --git a/1.sources/MyHealth/src/managedbean/medicalTest/MedicalTestMBean.java b/1.sources/MyHealth/src/managedbean/medicalTest/MedicalTestMBean.java
index 48ad5c1..e5a6e10 100644
--- a/1.sources/MyHealth/src/managedbean/medicalTest/MedicalTestMBean.java
+++ b/1.sources/MyHealth/src/managedbean/medicalTest/MedicalTestMBean.java
@@ -15,6 +15,7 @@ import org.primefaces.event.SelectEvent;
import TO.MedicalTestTO;
import TO.PatientTO;
+import common.MedicalTestType;
import common.UserType;
import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils;
@@ -87,10 +88,12 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
this.medicalTests = getRemoteManagerMedicalTest().loadMedicalTestForPatient(userID);
} else if (userType == UserType.SPECIALIST_DOCTOR) {
// Cargar las pruebas que el doctor especialista ha creado
- this.medicalTests = getRemoteManagerMedicalTest().loadMedicalTestForSpecialistDoctor(userID);
+ this.medicalTests = getRemoteManagerMedicalTest().loadMedicalTestForSpecialistDoctor(userID,
+ this.patIdSelected);
} else if (userType == UserType.FAMILY_DOCTOR) {
// Cargar las pruebas para los pacientes del doctor de familia en sesión
- this.medicalTests = getRemoteManagerMedicalTest().loadMedicalTestForFamilyDoctor(userID);
+ this.medicalTests = getRemoteManagerMedicalTest().loadMedicalTestForFamilyDoctor(userID,
+ this.patIdSelected);
} else {
// Nothing todo
this.medicalTests = new ArrayList();
@@ -121,7 +124,7 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
}
/*************************************************** METODOS PARA LA VISTA */
- private Integer patIdSelected = -1;
+ private int patIdSelected = -1;
public void setPatIdSelected(Integer value) {
this.patIdSelected = value;
@@ -132,22 +135,8 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
return this.patIdSelected;
}
- public String getTitlePanel() {
- String res;
- if (userType == UserType.PATIENT) {
- // Cargar las pruebas para el paciente en sesión
- res = "Realizadas al paciente: " + SessionUtils.getloggedOnUser().getName();
- } else if (userType == UserType.SPECIALIST_DOCTOR) {
- // Cargar las pruebas que el doctor especialista ha creado
- res = "Solicitadas por el médico especialista: " + SessionUtils.getloggedOnUser().getName();
- } else if (userType == UserType.FAMILY_DOCTOR) {
- // Cargar las pruebas para los pacientes del doctor de familia en sesión
- res = "Pacientes del médico de familia: " + SessionUtils.getloggedOnUser().getName();
- } else {
- // Nothing todo
- res = "Error";
- }
- return res;
+ public boolean isSpecialistDoctor() {
+ return this.userType == UserType.SPECIALIST_DOCTOR;
}
public boolean isPatSelector() {
@@ -156,13 +145,8 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
public void onSelectPatient(AjaxBehaviorEvent event) {
this.selected = null;
- if (userType == UserType.SPECIALIST_DOCTOR) {
- // Cargar las pruebas que el doctor especialista ha creado
- medicalTests = getRemoteManagerMedicalTest().loadMedicalTestForSpecialistDoctor(userID, this.patIdSelected);
- } else if (userType == UserType.FAMILY_DOCTOR) {
- // Cargar las pruebas para los pacientes del doctor de familia en sesión
- medicalTests = getRemoteManagerMedicalTest().loadMedicalTestForFamilyDoctor(userID, this.patIdSelected);
- }
+ this.loadMedicalTests();
+
}
public void onSelectMT(SelectEvent event) {
@@ -175,9 +159,11 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
this.selected = new MedicalTestTO();
this.selected.setId(-1);
this.selected.setObservations("");
+ this.selected.setType(MedicalTestType.BLOOD_TEST);
this.addNewMode = true;
} else {
- this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Atención!", "Debe elegir un paciente al que añadir la prueba médica.");
+ this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Atención!",
+ "Debe elegir un paciente al que añadir la prueba médica.");
}
}
@@ -190,11 +176,46 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable {
}
public boolean getViewCreate() {
- return addNewMode;
+ return addNewMode && userType == UserType.SPECIALIST_DOCTOR;
}
public boolean getViewEdit() {
return !addNewMode && this.selected != null;
}
+ public List getMedicalTestTypes() {
+ ArrayList list = new ArrayList();
+ list.add(MedicalTestType.BLOOD_TEST);
+ list.add(MedicalTestType.CT_SCAN);
+ list.add(MedicalTestType.MAGNETIC_RESONANCE_IMAGING);
+ return list;
+ }
+
+ public String getMedicalTestTypeSelected() {
+ return this.selected.getType().getName();
+ }
+
+ public void setMedicalTestTypeSelected(String val) {
+ MedicalTestType mt;
+ if (val.equals(MedicalTestType.BLOOD_TEST)) {
+ mt = MedicalTestType.BLOOD_TEST;
+ } else if (val.equals(MedicalTestType.CT_SCAN)) {
+ mt = MedicalTestType.CT_SCAN;
+ } else {
+ mt = MedicalTestType.MAGNETIC_RESONANCE_IMAGING;
+ }
+ this.selected.setType(mt);
+ }
+
+ public void save() {
+ String res = getRemoteManagerMedicalTest().addMedicalTest(this.patIdSelected, userID, this.selected.getDate(),
+ this.selected.getTime(), this.selected.getType(), this.selected.getObservations());
+ if (res.equals("ok")) {
+ this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Éxito", "Guardado correctamente");
+ } else {
+ this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Error", res);
+ }
+ this.loadMedicalTests();
+ }
+
}