[Care2x-general] IMPORTANTE[Care2002-developers] about patients and personnel in the same table

Walter Nunez admin en ciberneticamedica.com
Lun Nov 15 15:44:34 CET 2004


LEAN BIEN EL E-MAIL HASTA EL FINAL.....
LO QUE ESCRIBIÓ JUAN ME PARECE PERFECTO, 
UNICAMENTE ESTAMOS AGREGANDO DOS SCRIPTS A CARE_API_CLASSES Y ESTA
HACIENDO TODA LA DIVISIÓN.
AHORA EL PROBLEMA QUE ME PLANTEO ES QUE EL ATACANTE CON UN POCO DE
ESTUDIO DEL CÓDIGO SABRÍA QUE HACER PARA CAMBIAR ESTO ¿ENCRIPTARLO SERÍA
CORRECTO?
SI LEEN LOS E-MAILS DE CARE2X CENTRAL DANIEL IGNAT ESTA AYUDANDO EN LO
DE PRESIONAR PARA VER SI DIVIDEN LAS TABLAS.
AHORA . VOY A REENVIAR TU APORTE CON LOS DOS SCRIPTS PARA
CARE_API_CLASSES JUAN CON TU FIRMA ¿ESTA BIEN?

Estimados colegas:

Les informo que pude adelantar del archivo personas. Si bien es cierto
que concecptualmente la herencia permite reusar una clase siempre esta
ligada a la implementacion hecha en cada sistema. Y comento brevemente
(podremos ampliarlo como tema) que no solo es un problema de seguridad
que se vea al personal quien puede ver paciente sin que puede
considerarse de igual o mas gravedad que quien accede al personal
pueda ver datos del paciente; con el tema de la confidencialidad y del
Habeas Data merece una consideracion.
En el archivo de carga del personal llama a las dos clases (la de
persona y la de personal) y cualquier redefinicion ahi puede traer un
efecto colateral en otra parte del sistema. Estuve viendo como esta
armado el sistema, analizando como hacer la implementacion y haciendo
pruebas. Y en realidad habria que hacer un cambio en la estructura
proponiendolo al grupo central; me explico. En
include/care_api_classes esta la clase personal. Haciendo uso de la
herencia se pueden crear dos clases: paciente y empleado. Son
simplemente derivadas de person y solo se redefinen coneptualmente
para usarlas en los programa correspondiente. Dejandolo como esta
siguen abriendo la base care_person con lo que a ellos no les modifica
nada, pero permite la implementacion en distintas bases. Me explico:

Paso 1:

/include/care_api_classes/care_employee.php

<?php
/**
* @package care_api
*/
/**
*/
require_once($root_path.'include/care_api_classes/class_person.php');
/**
*  Person methods.
*
* Note this class should be instantiated only after a "$db" adodb 
connector object  has been established by an adodb instance
* @author Elpidio Latorilla
* @version beta 2.0.1
* @copyright 2002,2003,2004,2005,2005 Elpidio Latorilla
* @package care_api
* aporte Juan Rossano - Grupo Biolinux (Care2l)
*/
class Employee extends Person {
	/**
	* Table name for person registration data.
	* @var string
	*/
}
?>

/include/care_api_classes/care_patient.php

<?php
/**
* @package care_api
*/
/**
*/
require_once($root_path.'include/care_api_classes/class_person.php');
/**
*  Person methods.
*
* Note this class should be instantiated only after a "$db" adodb 
connector object  has been established by an adodb instance
* @author Elpidio Latorilla
* @version beta 2.0.1
* @copyright 2002,2003,2004,2005,2005 Elpidio Latorilla
* @package care_api
* aporte Juan Rossano - Grupo Biolinux (Care2l)
*/
class Patient extends Person {
	/**
	* Table name for person registration data.
	* @var string
	*/
}
?>

Hasta aca solo se redefinen, cambian los nombres, el programa es mas
legible pero la funcionalidad es la misma. Ahora al incluir el archivo
de classes se puede cargar uno personalizado como se hace con los de
idioma. Mi propuesta es crear /include/classes/es-ar para poner las
classes personalizadas. Los cambios son los care_person por
care_patient o care_employee segun corresponda y ademas cargar el
personalizado si estuviera y si no el default.
Entonces el codigo php donde decia:
require_once($root_path.'include/care_api_classes/class_person.php');
require_once($root_path.'include/care_api_classes/class_personell.php');
//ESTO NO ME PARECE QUE TENDRIAMOS QUE ENVIAR A CARE2X CENTRAL YA QUE
PERTENECE A NUESTRO DESARROLLO Y ELLOS LO TENDRAN DISPONIBLE SI ES QUE
LO REQUIEREN.
queda:
if (file_exists('include/classes/'.$GLOBALCONFIG['language_default'].'/class_employee.php'))
{
		require_once($root_path.'include/classes/'.$GLOBALCONFIG['language_default'].'/class_employee.php');
	} else {
require_once($root_path.'include/care_api_classes/class_employee.php');
}
if (file_exists('include/classes/'.$GLOBALCONFIG['language_default'].'/class_personell.php'))
{
		require_once($root_path.'include/classes/'.$GLOBALCONFIG['language_default'].'/class_personell.php');
	} else {
require_once($root_path.'include/care_api_classes/class_personell.php');
}

Esto permite que pongamos en nuestra personalizacion las clases
correspondiente dejandolas asi:

/include/care_api_classes/care_employee.php                    
//EXCELENTE

<?php
/**
* @package care_api
*/
/**
*/
require_once($root_path.'include/care_api_classes/class_person.php');
/**
*  Person methods.
*
* Note this class should be instantiated only after a "$db" adodb 
connector object  has been established by an adodb instance
* @author Elpidio Latorilla
* @version beta 2.0.1
* @copyright 2002,2003,2004,2005,2005 Elpidio Latorilla
* @package care_api
* aporte Juan Rossano - Grupo Biolinux (Care2l)
*/
class Employee extends Person {
	/**
	* Table name for person registration data.
	* @var string
	*/
        $this->tb_person='care_employee';
}
?>

/include/care_api_classes/care_patient.php

<?php
/**
* @package care_api
*/
/**
*/
require_once($root_path.'include/care_api_classes/class_person.php');
/**
*  Person methods.
*
* Note this class should be instantiated only after a "$db" adodb 
connector object  has been established by an adodb instance
* @author Elpidio Latorilla
* @version beta 2.0.1
* @copyright 2002,2003,2004,2005,2005 Elpidio Latorilla
* @package care_api
* aporte Juan Rossano - Grupo Biolinux (Care2l)
*/
class Patient extends Person {
	/**
	* Table name for person registration data.
	* @var string
	*/
        $this->tb_person='care_patient';
}
?>

consiguiendo separar las tablas en pacientes y empleados (care_patient
y care_employee)
¿Me explique? ¿Que opinan? 
DESDE MI PUNTO DE VISTA SIN EXPERIENCIA EN HABER MANEJADO ELECTRONIC HIS
PROPIETARIOS ANTES (EXCEPTO UNOS PESIMOS EN VISUAL BASIC) A MI ME
PARECIA BIEN LO DE LA ENCRIPTACION DE UNA SOLA TABLA PARA PATIENTS Y
PERSONNEL.
PERO YA ME SACARON DE MI IGNORANCIA, ADEMAS QUE ESA VA A SER LA EXCUSA
DE ALGUN BURÓCRATA PARA EVITAR IMPLEMENTARLO, DANIEL IGNAT ESTA HABLANDO
DE MUCHOS PROBLEMAS CON LA ENCRIPTACIÓN INCLUSO EN LINUX.
HAY UNA HERRAMIENTA LOG4JAVA TOOLS QUE PERMITE HACER LOGS DE LAS
PERSONAS QUE INGRESAN CON HORA, IP, LOGIN, TIEMPO DE USO, ETC YO CREO
QUE ESO DEBE SER INDISPENSABLE EN CUALQUIER INSTALACION QUE HAGAMOS.
ESPERO LA RESPUESTA PARA HACER EL FORWARD DE LO CORRESPONDIENTE A LOS
DESARROLLADORES DEL GRUPO CENTRAL.
JUAN SERÍA BUENO QUE TE COMUNIQUES DIRECTAMENTE CON DANIEL IGNAT, TE VOY
A CONSEGUIR SU CORREO ELECTRONICO, TENGO ENTENDIDO QUE EL ES DE ESPAÑA
ASI QUE NOS ENTIENDE :).
HASTA LUEGO

Saludos

Juan Rossano

On Tue, 9 Nov 2004 23:31:47 -0300, Juan Rossano <juanrossano en gmail.com> wrote:
> En OOP la herencia permite crear una subclase a partir de otra para
> agregar funcionalidad. En nuestro caso seria crear class_employee a
> partir de class_person (conceptualmente, tengo que confirmar si son
> esas). Pero no es tan simple por dos temas. Por un lado nos alejamos
> del central ya que tenemos que cambiar las llamadas a class_person por
> class_employee y en segundo lugar porque sigue siendo un tema donde
> hacemos el cambio por el agregado de funcionalidad. Si la instancias a
> las clases se crean en los php personalizados para el idioma es mas
> adaptable, pero nosotros tendriamos que redefinir la clase o la
> propiedad desde un php llamado despues de la creacion de la instancia.
> Igualmente voy a hacer pruebas y despues les cuento; pero queria
> ponerlos al tanto de los conceptos.
> Saludos
> 
> Juan
>



-- 
Walter Alfonso Núnez Rivera
Médico - Programador
Pascual de Andagoya 140 Lima 32 Perú





Más información sobre la lista de distribución Care2x-general