Añadidos Comentarios a todos los métdos.

This commit is contained in:
Marcos Garcia Nuñez
2019-12-17 20:10:36 +01:00
parent 2a0ee44ffa
commit 3b0640304e

View File

@@ -35,16 +35,38 @@ public class ProfileFacadeBean implements ProfileFacadeRemote {
@EJB @EJB
CommonFacadeLocal commonServices; CommonFacadeLocal commonServices;
/**
* Método que genera un nuevo número de profesional, basando en la secuencia de base de datos. Los números de profesional son únicos y comunes para médicos de familia y médicos
* especialistas.
*
* Si un número de profesional no se utiliza no se vuelve a reutilizar, por lo que pueden existir huecos en la númeración.
*
* @return String con el número número de profesional generado.
*/
private String getNextProfessionalNumber() { private String getNextProfessionalNumber() {
Query q = entman.createNativeQuery("select nextval('myhealth.profesionalnumber')"); Query q = entman.createNativeQuery("select nextval('myhealth.profesionalnumber')");
return Constants.PROFESSIONAL_NUMBER_PREFIX.concat(String.valueOf(q.getSingleResult())); return Constants.PROFESSIONAL_NUMBER_PREFIX.concat(String.valueOf(q.getSingleResult()));
} }
/**
* Método que genera un nuevo Código de Identificación de Paciente (CIP) basado en una secuencia de base de datos. Los códigos CIP son únicos, y si un CIP no se utiliza tras
* haber sido generado, no se vuelve a reutilizar.
*
* @return String con el CIP gnerado
*/
private String getNextPersonalIdentificationCode() { private String getNextPersonalIdentificationCode() {
Query q = entman.createNativeQuery("select nextval('myhealth.codigoidentificacionpaciente')"); Query q = entman.createNativeQuery("select nextval('myhealth.codigoidentificacionpaciente')");
return Constants.PERSONAL_IDENTIFICATION_CODE_PREFIX.concat(String.valueOf(q.getSingleResult())); return Constants.PERSONAL_IDENTIFICATION_CODE_PREFIX.concat(String.valueOf(q.getSingleResult()));
} }
/**
* Cambia el médico de familia asignado a un paciente. Recibe como parametros el identificador del paciente y el identificador del nuevo médico de familia
*
* Si el identificador de paciente no corresponde a ningún paciente registrado se lanza una excepción. Si el identificador del médico de familia no corresponde a ningún médico
* de familia se lanza una excepción.
*
* @return PatientTO (Transfer Object del paciente al que se la ha cambiado el médico de familia).
*/
public PatientTO changeFamilyDoctor(int patientId, int newDoctor) throws Exception { public PatientTO changeFamilyDoctor(int patientId, int newDoctor) throws Exception {
PatientJPA pat = entman.find(PatientJPA.class, patientId); PatientJPA pat = entman.find(PatientJPA.class, patientId);
if (pat == null) { if (pat == null) {
@@ -63,6 +85,16 @@ public class ProfileFacadeBean implements ProfileFacadeRemote {
return this.commonServices.getPOJOforPatientJPA(pat, 1); return this.commonServices.getPOJOforPatientJPA(pat, 1);
} }
/**
* Registra un nuevo paciente en el sistema Recibe como parametros el nif del paciente, el nombre, los apellidos, la contraseña y la dirección de correo electronico.
*
* El método genera un nuevo CIP (código de identificación de paciente) y lo asigna al nuevo paciente. El médico se familia queda está establecido a null, y deberá ser
* seleccionado por el paciente una vez registrado en el sistema.
*
* La contraseña recibida se encrypta con el algoritmo MD5.
*
* @return PatientTO Transfer Object correspondiente al paciente registrado.
*/
public PatientTO registerPatient(int id, String nif, String name, String surname, String password, String email) { public PatientTO registerPatient(int id, String nif, String name, String surname, String password, String email) {
PatientTO paTO = null; PatientTO paTO = null;
@@ -72,6 +104,20 @@ public class ProfileFacadeBean implements ProfileFacadeRemote {
return this.commonServices.getPOJOforPatientJPA(pat, 1); return this.commonServices.getPOJOforPatientJPA(pat, 1);
} }
/**
* Registra un nuevo médico especialista en el sistema.
*
* Recibe como parametros el nif, el nombre, los apellidos, la contraseña, la dirección de correo electronico y la especialidad.
*
* El método genera un nuevo NIP (Número de Identificación de Profesional) y lo asigna al nuevo médico.
*
* La contraseña recibida se encrypta con el algoritmo MD5.
*
* El médoto comprueba que la especialidad médica recibida exista en el sistema en el momento de asignarla al nuevo médico, si la especialidad especificada no se encuentra se
* lanza una excepción.
*
* @return SpecialistDoctorTO Transfer Object correspondiente al médico especialista registrado.
*/
public SpecialistDoctorTO registerSpecialistDoctor(int id, String nif, String name, String surname, String password, String email, MedicalSpecialtyTO specialty) public SpecialistDoctorTO registerSpecialistDoctor(int id, String nif, String name, String surname, String password, String email, MedicalSpecialtyTO specialty)
throws Exception { throws Exception {
MedicalSpecialtyJPA ms = entman.find(MedicalSpecialtyJPA.class, specialty.getId()); MedicalSpecialtyJPA ms = entman.find(MedicalSpecialtyJPA.class, specialty.getId());
@@ -85,6 +131,19 @@ public class ProfileFacadeBean implements ProfileFacadeRemote {
return this.commonServices.getPOJOforSpecialistDoctorJPA(sd, 1); return this.commonServices.getPOJOforSpecialistDoctorJPA(sd, 1);
} }
/**
* Registra un nuevo médico de familia en el sistema.
*
* Recibe como parametros el nif, el nombre, los apellidos, la contraseña, la dirección de correo electronico y el CAP (Centro Médico de Primaria).
*
* El método genera un nuevo NIP (Número de Identificación de Profesional) y lo asigna al nuevo médico.
*
* La contraseña recibida se encrypta con el algoritmo MD5.
*
* El médoto comprueba que el CAP recibido exista en el sistema en el momento de asignarlo al nuevo médico, si el CAP no se encuentra se lanza una excepción.
*
* @return FamilyDoctorTO Transfer Object correspondiente al médico de familia registrado.
*/
public FamilyDoctorTO registerFamilyDoctor(int id, String nif, String name, String surname, String password, String email, PrimaryHealthCareCenterTO cap) throws Exception { public FamilyDoctorTO registerFamilyDoctor(int id, String nif, String name, String surname, String password, String email, PrimaryHealthCareCenterTO cap) throws Exception {
FamilyDoctorTO fdTO = null; FamilyDoctorTO fdTO = null;
@@ -99,6 +158,18 @@ public class ProfileFacadeBean implements ProfileFacadeRemote {
return commonServices.getPOJOforFamilyDoctorJPA(fd, 1); return commonServices.getPOJOforFamilyDoctorJPA(fd, 1);
} }
/**
* Actualiza los datos personales de un paciente
*
* Recibe como parametros el id del paciente a actualizar, el nif, el nombre, los apellidos, *la contraseña, la dirección de correo electronico (El medico de familia asignado
* no se modifica).
*
* El id de paciente recibido se busca en el sistema para realizar la actualización de datos, sino se encuentra se lanza una excepción.
*
* La contraseña recibida solo se actualiza si se recibe el parámetro (no es nulo ni cadena vacía). La contraseña recibida se encrypta con el algoritmo MD5
*
* @return PatientTO Transfer Object correspondiente al paciente actualizado..
*/
public PatientTO updatePatientData(int id, String nif, String name, String surname, String password, String email) throws Exception { public PatientTO updatePatientData(int id, String nif, String name, String surname, String password, String email) throws Exception {
PatientJPA pat = entman.find(PatientJPA.class, id); PatientJPA pat = entman.find(PatientJPA.class, id);
@@ -119,6 +190,20 @@ public class ProfileFacadeBean implements ProfileFacadeRemote {
return this.commonServices.getPOJOforPatientJPA(pat, 1); return this.commonServices.getPOJOforPatientJPA(pat, 1);
} }
/**
* Actualiza los datos personales de un médico especialista
*
* Recibe como parametros el id del médico a actualizar, nif, el nombre, los apellidos, *la contraseña, la dirección de correo electronico y la especialidad médcia que se debe
* asignar.
*
* El id del médico recibido se busca en el sistema para realizar la actualización de datos, sino se encuentra se lanza una excepción.
*
* La contraseña recibida solo se actualiza si se recibe el parámetro (no es nulo ni cadena vacía). La contraseña recibida se encrypta con el algoritmo MD5
*
* El método comprueba que la especialidad recibida existe en el sistema, en caso contrario lanza una excepción.
*
* @return SpecialistDoctorTO Transfer Object correspondiente al médico especialista que se ha actualizado.
*/
public SpecialistDoctorTO updateSpecialistDoctorData(int id, String nif, String name, String surname, String password, String email, MedicalSpecialtyTO specialty) public SpecialistDoctorTO updateSpecialistDoctorData(int id, String nif, String name, String surname, String password, String email, MedicalSpecialtyTO specialty)
throws Exception { throws Exception {
SpecialistDoctorJPA sd = entman.find(SpecialistDoctorJPA.class, id); SpecialistDoctorJPA sd = entman.find(SpecialistDoctorJPA.class, id);
@@ -145,6 +230,20 @@ public class ProfileFacadeBean implements ProfileFacadeRemote {
return this.commonServices.getPOJOforSpecialistDoctorJPA(sd, 1); return this.commonServices.getPOJOforSpecialistDoctorJPA(sd, 1);
} }
/**
* Actualiza los datos personales de un médico de familia
*
* Recibe como parametros el id del médico a actualizar, nif, el nombre, los apellidos, *la contraseña, la dirección de correo electronico, y el CAP al cual está asignado el
* médico de familia.
*
* El id del médico recibido se busca en el sistema para realizar la actualización de datos, sino se encuentra se lanza una excepción.
*
* La contraseña recibida solo se actualiza si se recibe el parámetro (no es nulo ni cadena vacía). La contraseña recibida se encrypta con el algoritmo MD5
*
* El método comprueba que el CAP recibida existe en el sistema, en caso contrario lanza una excepción.
*
* @return FamilyDoctorTO Transfer Object correspondiente al médico de familia que se ha actualizado.
*/
public FamilyDoctorTO updateFamilyDoctorData(int id, String nif, String name, String surname, String password, String email, PrimaryHealthCareCenterTO phcTO) throws Exception { public FamilyDoctorTO updateFamilyDoctorData(int id, String nif, String name, String surname, String password, String email, PrimaryHealthCareCenterTO phcTO) throws Exception {
FamilyDoctorJPA fd = entman.find(FamilyDoctorJPA.class, id); FamilyDoctorJPA fd = entman.find(FamilyDoctorJPA.class, id);
if (fd == null) { if (fd == null) {
@@ -170,6 +269,17 @@ public class ProfileFacadeBean implements ProfileFacadeRemote {
return this.commonServices.getPOJOforFamilyDoctorJPA(fd, 1); return this.commonServices.getPOJOforFamilyDoctorJPA(fd, 1);
} }
/***
* Cambia el CAP (Centro de Atención Primaria) asignado a un médico de familia.
*
* Recibe como parametros el identificador del médico y el identificador del nuevo CAP a asginar.
*
* Si el identificador del médico no corresponde a ningún médico de familia registrado se lanza una excepción.
*
* Si el identificador del CAP no corresponde a ningún CAP registrado en el sistema se lanza una excpeción.
*
* @return FamilyDoctorTO (Transfer Object del médico de familia al que se la ha cambiado el CAP).
*/
public FamilyDoctorTO changePrimaryHealthCareCenter(int professionalId, PrimaryHealthCareCenterTO newCenter) throws Exception { public FamilyDoctorTO changePrimaryHealthCareCenter(int professionalId, PrimaryHealthCareCenterTO newCenter) throws Exception {
FamilyDoctorTO fdTO = null; FamilyDoctorTO fdTO = null;