Actualizar múltiples columnas desde otra tabla

Lupintam

Nuevo miembro
Saludos.

Estoy trabajando en una aplicación para realizar informes de asistencia médica. Tengo dos tablas: una de Pacientes y otra de Informes. La primera contiene datos específicos de los pacientes y la segunda (Informes) incluye prácticamente la totalidad de los columnas de la primera a la hora de crear el informe. Cada registro de Informes solo puede contener datos de un paciente.

Tabla de Pacientes

ID_PacienteFiliaciónIdentificación_DocIdentificación_NúmeroIdentificación_ObservacionesID_Tipo_NúmeroHC_HospitalHC_NúmeroApellidosNombreSexoFecha_NacimientoInstituciónPte_Dirección_01Pte_Dirección_02Pte_LocalidadPte_Código_PostalPte_Contacto_01_NombrePte_Contacto_01_TelPte_Contacto_02_NombrePte_Contacto_02_TelPte_AntecedentesPte_AlergiasPte_ComenrtariosNotas
Columnas de Informes relacionadas con Pacientes

Informe_FiliaciónInforme_ID_DocInforme_ID_NúmeroInforme_ID_ObservacionesInforme_HC_HospitalInforme_HC_NúmeroInforme_Pte_ApellidosInforme_Pte_NombreInforme_Pte_SexoInforme_Pte_FNacimientoInforme_Pte_EdadInforme_Pte_InstituciónInforme_Pte_Dirección_01Informe_Pte_Dirección_02Informe_Pte_LocalidadInforme_Pte_CPInforme_Pte_Contacto_01_NombreInforme_Pte_Contacto_01_TelInforme_Pte_Contacto_02_NombreInforme_Pte_Contacto_02_TelInforme_Pte_AntecedentesInforme_Pte_AlergiasInforme_Pte_ComentariosInforme_Pte_Notas
La tabla pacientes se relaciona con la tabla Informes por mediante el ID_Paciente (campo Key), sin embargo cuando se genera un nuevo informe se realiza un LOOKUP por un número de documento de de identificación del paciente y, si el paciente ya existe en la tabla de Pacientes, se trae el dato como valor Inicial.

Ej.- LOOKUP(CONCATENATE([_THISROW].[Informe_ID_Número]&"-"& [Informe_ID_Doc]), “Pacientes”, "ID_Tipo_Número", "HC_Hospital") ==> Busca el "Numero de ID del paciente + El tipo de documento ID" en la columna "ID_Tipo_Número" de tabla de pacientes y trae el dato del hospital de referencia.

Nota 1ª: se busca por la concadenación del número y el tipo de documento para contemplar la posibilidad de que existan dos números iguales para dos tipos de identificación distintos. Ej.- un carnet de conducir y un número de carnet profesional idénticos para distintos pacientes.

Nota 2ª: No se puede utilizar la concadenación del número y el tipo de documento como computed key porque habrá pacientes de los que no se pueda obtener documentación y se filien solo con un nombre o incuso con un genérico "John Doe"

OBJETIVO



Múltiples campos del informe traen datos de la tabla pacientes como Valor Inicial. Estos pueden sufrir modificaciones. Cuando se guarda ese informe pueden surgir dos situaciones. Si el paciente existe en la tabla de Pacientes, se deberían actualizar los datos. Si el paciente no existe, se debería crear un nuevo registro con los datos de ese paciente.

Entiendo que desde el apartado "Behavior" se pueden crear Acciones Data que me pueden servir como "Set the values of some columns in this row" o "Add a new row to another table using values from this row" pero me temo que no estoy entendiendo muy bien la operativa de estas acciones (sigo en ello).

Como alternativa, también podría incluso llegar a modificar la estructura de tablas pero, por diferentes razones, que puedo ir comentado, creo que este esquema es el más apropiado.

Por último, también comentar que si alguien quiere echar un vistazo a la app solo tiene que dejarme saber. Mi intención es que al terminar quede disponible para la comunidad.

Gracias a todos por vuestro tiempo y al creador del foro por darnos esta herramienta.
Un saludo.
 

raresmc

Miembro Activo
Miembro del equipo
Buenos días, para salir de dudas en encontrar una solución para tu problema me interesa ver como están realmente estructurados tus datos. Si pudiera ver la aplicación, a lo mejor podría darte una solución.
Un saludo.
 
Arriba