FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Busqueda Selectiva
hola amigos tengo que realizar una operación compleja a nivel de búsqueda dentro de una base de datos donde el resultado puede cambiar según selecion;
Tengo una tabla SQL SERVER con campos string, la tabla se llama 'ENFERMEDADES' dentro de ella una lista de enfermedades:
el campo ID_ENF esta relacionado con las demás tablas, es decir si yo selecciono el número 1 de "ABSCESO CEREBRAL" y lo busco en la Tablas de síntomas me trae como resultado todos los síntomas de esta enfermedad a su vez el mismo número 1 en la tabla de tratamiento me lleva a los tratamientos indicados para esta enfermedad. Ahora bien mi problema esta en que al aplicarlo a mi desarrollo tengo que hacer una consulta inversa Ejemplo tengo que buscar primero en la tabla síntomas encontrar los síntomas que se relaciones con la ENFERMEDAD y luego pasar a la tabla tratamiento. Pero tengo varias interrogante donde para ellos consulto el foro para encontrar la mejor opción para este gran Reto: En el from he pensado colocar un LISTVIEW alimentado de la tabla de síntomas donde el usuario pueda seleccionar los síntomas. Claro cuando estaba haciendo esto surgió una gran pregunta que existe una gran infinidad de síntomas relacionado con todas la enfermedades y para hacer las cosas más fácil cree una tabla que se llama GRUPO y allí Agrupe los síntomas por GRUPO ejemplo: como pueden ver hay un campo que se relaciona con todas las tablas. donde el usuario selecciona una opción en el grupo y esto reduce la búsqueda de los síntomas. hasta este punto podemos decir que funciona, talvez no de la manera perfecta pero inicialmente cumple con alguno resultados. ahora esto me abre muchas preguntas la cual considero que su experiencia me puede ser de gran ayuda. 1. partiendo de un principio que al momento de registrar el paciente todo inicia con un motivo de consulta ejemplo "DOLOR DE CABEZA, DOLOR ABDOMINAL EN EL FLANCO DERECHO' etc yo quisiera que de alguna forma el sistema genere una primera búsqueda que relacione el motivo de la consulta con la tabla de síntomas (Talvez con palabras clave dentro de toda la cadena de texto "MOTIVO DE CONSULTA") como pudiera hacer eso? 2.si se logra eso se abrirá una serie de resultado relacionado con la tabla de SINTOMAS y sabiendo que mucho síntomas son iguales pero están relacionado a otra enfermedades. yo había pensado que se pudiera hacer es por porcentaje de coincidencia. Ejemplo si el usuario selecciona 3 de los 4 síntomas relacionado con una enfermedad esto debería devolver un porcentaje ejemplo del 80% lo cual es suficiente razón para diagnosticar una posible enfermedad. (Como puedo hacer esto) y si hubiera otra forma de hacerlo y filtrar aun mas el diagnostico me encantaría que pudieran hacérmelo saber talvez con pequeños ejemplos, tomando en cuenta que mi nivel de experiencia y conocimiento el delphi es de 4 de una escala de 1-10. Estoy desarrollando con FMX con delphi 11 y estoy utilizando el componente UNIDAC para sql. |
#2
|
||||
|
||||
Una forma de obtener enfermedad a través de síntomas sería construir el SQL de la siguiente manera:
|
#3
|
||||
|
||||
He hecho una prueba simple y este es el resultado que he obtenido:
|
#4
|
|||
|
|||
Cita:
ahora me surgen algunas interrogantes: partiendo de un principio donde todo comienza por una exploración inicial del paciente como ejemplo: 'Paciente con dificultas respiratoria y presión en el pecho' esto es un ejemplo pero dentro de este texto tendría yo que buscar en cualquiera de sus palabras coincidencia con los síntomas. con el like no lo estoy logrando ya que el busca una sola palabra dentro de esta cadena: habrá alguna forma de hacerlo? o habrá alguna forma de lograr eso funcione? la idea inicial es que con esta cadena de texto se reduzcan la búsqueda y de alguna forma luego podría proporcionar unas series de preguntas a fin de acercarme lo mas que pueda con una posible enfermedad o diagnóstico. |
#5
|
||||
|
||||
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
||||
|
||||
El problema es que tiene que estar perfectamente escrito (acentos, espacios, puntuación, etc.) Por suerte con CONTAINING las mayúsculas no importan.
Te pongo un ejemplo: El texto que escribe de exploración dice "... presion en el pecho". Este síntoma no está en la lista de síntomas.
Si buscas por palabras, encontrarás más sintomas de los que menciona la exploración. Por ejemplo todos estos síntomas tienen la palabra presion.
|
#7
|
||||
|
||||
Este tipo de tareas se resuelve mejor con FTS:
https://learn.microsoft.com/en-us/sq...l-server-ver16
__________________
El malabarista. |
#8
|
|||
|
|||
Cita:
|
#9
|
|||
|
|||
Cita:
|
#10
|
||||
|
||||
Cita:
__________________
El malabarista. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
busqueda SQL | leandro085 | SQL | 2 | 16-04-2011 15:26:43 |
Consulta selectiva | sizne | SQL | 19 | 19-05-2010 01:14:46 |
Eliminación Selectiva en ListView | MaMu | OOP | 13 | 31-01-2008 21:48:53 |
Busqueda... | mjjj | Conexión con bases de datos | 3 | 08-05-2007 11:58:37 |
Consulta Selectiva sobre Store Procedure | raul_sal | SQL | 5 | 19-07-2003 22:35:37 |
|