<%@ LANGUAGE = "VBScript" %> SELECCIÓN DE LA PATOLOGÍA

<% Historia_Actual=cstr(Session("Historia_Actual")) 'response.write "EL NUMERO DEL CASO ACTUAL ES =" + Historia_Actual + "

" Const AdopenKeyset = 1 Const adLockOptimistic = 3 SQL5= "SELECT * FROM HISTORIA_SINTOMA where IDENTIFICADOR_HISTORIA = " & Historia_Actual Set rs5 = CreateObject("ADODB.Recordset") rs5.CursorType = AdopenKeyset rs5.LockType = adLockOptimistic rs5.Open SQL5, "DSN=SEX" IF RS5.EOF=TRUE THEN Response.write "


Este caso no tiene registrado ningún síntoma. Por favor introduzca previamente los síntomas.

" rs5.CLOSE ELSE rs5.CLOSE SQL5= "SELECT IDENTIFICADOR_HISTORIA FROM HISTORIA_PATOLOGIA where IDENTIFICADOR_HISTORIA = " + Historia_Actual Set rs5 = CreateObject("ADODB.Recordset") rs5.CursorType = AdopenKeyset rs5.LockType = adLockOptimistic rs5.Open SQL5, "DSN=SEX" 'response.write sql5 + "

" IF RS5.EOF = FALSE THEN Response.write "


Este caso ya está diagnosticado

" else IDENTIFICADOR_HISTORIA_ACTUAL = session("HISTORIA_ACTUAL") dim NSintoma NSintoma = 0 redim Sintoma(0) dim NPosiblePatologia NPosiblePatologia = 0 redim PosiblePatologia(0) redim OrdenadaPosiblePatologia(0) redim PesoPosiblePatologia(0) '**** Prepara la conexion Set rs1 = CreateObject("ADODB.Recordset") rs1.CursorType = AdopenKeyset rs1.LockType = adLockOptimistic '******************************************** '**** Busca los sintomas del caso actual '******************************************** SQL= "SELECT nombre_sintoma FROM historia_sintoma WHERE identificador_historia = " + cstr(IDENTIFICADOR_HISTORIA_ACTUAL) 'Set rs1 = CreateObject("ADODB.Recordset") 'rs1.CursorType = AdopenKeyset 'rs1.LockType = adLockOptimistic rs1.Open SQL, "DSN=SEX" J=0 while rs1.eof = false ReDim Preserve Sintoma(J) Sintoma(J) = rs1.fields(0) NSintoma = NSintoma + 1 rs1.movenext J=J+1 wend rs1.Close '******************************************************* '**** Busca las posibles patologias del caso actual '******************************************************* SQL= "SELECT DISTINCT nombre_patologia FROM diagnostico_base" SQL = SQL + " WHERE nombre_sintoma IN ('" FOR I = 0 TO NSintoma - 1 SQL = SQL + Sintoma(I) IF I < NSintoma - 1 THEN SQL = SQL + "','" END IF NEXT SQL = SQL + "') ORDER BY nombre_patologia ASC" 'Set rs1 = CreateObject("ADODB.Recordset") 'rs1.CursorType = AdopenKeyset 'rs1.LockType = adLockOptimistic rs1.Open SQL, "DSN=SEX" J=0 while rs1.eof = false NPosiblePatologia = NPosiblePatologia + 1 redim OrdenadaPosiblePatologia(J) redim PesoPosiblePatologia(J) redim preserve PosiblePatologia(J) PosiblePatologia(J) = rs1.fields(0) rs1.movenext J=J+1 wend rs1.Close 'response.write "El numero de posibles patologias a partir de los sintomas es =" + cstr(j) + "
" '**************************************************************************************** '**** BUSCA LOS IDENTIFICADOR_SUBPRUEBA REALIZADAS AL PACIENTE '**************************************************************************************** SQL = "SELECT SUBPRUEBA.IDENTIFICADOR_SUBPRUEBA FROM SUBPRUEBA INNER JOIN (RESULTADO INNER JOIN HISTORIA_RESULTADO ON RESULTADO.IDENTIFICADOR_RESULTADO = HISTORIA_RESULTADO.IDENTIFICADOR_RESULTADO) ON SUBPRUEBA.IDENTIFICADOR_SUBPRUEBA = RESULTADO.IDENTIFICADOR_SUBPRUEBA " SQL = SQL + " WHERE HISTORIA_RESULTADO.IDENTIFICADOR_HISTORIA = " + CSTR(IDENTIFICADOR_HISTORIA_ACTUAL) 'Set rs1 = CreateObject("ADODB.Recordset") 'rs1.CursorType = AdopenKeyset 'rs1.LockType = adLockOptimistic rs1.Open SQL, "DSN=SEX" REDIM PruebasRealizadas(0) NPruebasRealizadas = 0 WHILE rs1.eof = false REDIM preserve PruebasRealizadas(NPruebasRealizadas) PruebasRealizadas(NPruebasRealizadas) = rs1.fields(0) NPruebasRealizadas = NPruebasRealizadas + 1 'response.write cstr(rs1.fields(0)) + "
" rs1.movenext wend rs1.close '**************************************************************************************** '**** BUSCA LOS IDENTIFICADOR_RESULTADO REALIZADAS AL PACIENTE '**************************************************************************************** SQL = "SELECT identificador_resultado FROM HISTORIA_RESULTADO WHERE HISTORIA_RESULTADO.IDENTIFICADOR_HISTORIA = " + CSTR(IDENTIFICADOR_HISTORIA_ACTUAL) 'Set rs1 = CreateObject("ADODB.Recordset") 'rs1.CursorType = AdopenKeyset 'rs1.LockType = adLockOptimistic rs1.Open SQL, "DSN=SEX" REDIM IdentificadoresPruebasRealizadas(0) NIdentificadoresPruebasRealizadas = 0 WHILE rs1.eof = false REDIM preserve IdentificadoresPruebasRealizadas(NIdentificadoresPruebasRealizadas) IdentificadoresPruebasRealizadas(NIdentificadoresPruebasRealizadas) = rs1.fields(0) NIdentificadoresPruebasRealizadas = NIdentificadoresPruebasRealizadas + 1 'response.write cstr(rs1.fields(0)) + "
" rs1.movenext wend rs1.close '**************************************************************************************** '**** BUSCA LOS IDENTIFICADOR_RESULTADO CONTRARIOS A LOS DEL PACIENTE Y DISTINTOS DE 1 Y 4 '**************************************************************************************** IF NPruebasRealizadas > 0 THEN SQL= "SELECT RESULTADO.IDENTIFICADOR_RESULTADO FROM SUBPRUEBA INNER JOIN RESULTADO ON SUBPRUEBA.IDENTIFICADOR_SUBPRUEBA = RESULTADO.IDENTIFICADOR_SUBPRUEBA " SQL = SQL + " WHERE RESULTADO.VALOR_RESULTADO NOT IN (0,1,4) " SQL = SQL + " AND RESULTADO.IDENTIFICADOR_RESULTADO NOT IN (" FOR I = 0 TO NIdentificadoresPruebasRealizadas - 1 SQL = SQL + cstr(IdentificadoresPruebasRealizadas(I)) IF I < NIdentificadoresPruebasRealizadas - 1 THEN SQL = SQL + "," END IF NEXT SQL = SQL + ")" SQL = SQL + " AND SUBPRUEBA.IDENTIFICADOR_SUBPRUEBA IN (" FOR I = 0 TO NPruebasRealizadas - 1 SQL = SQL + cstr(PruebasRealizadas(I)) IF I < NPruebasRealizadas - 1 THEN SQL = SQL + "," END IF NEXT SQL = SQL + ")" 'response.write "
" + sql + "
" 'Set rs1 = CreateObject("ADODB.Recordset") 'rs1.CursorType = AdopenKeyset 'rs1.LockType = adLockOptimistic rs1.Open SQL, "DSN=SEX" 'response.write "Los identificadores de los resultados contrarios son:
" REDIM ResultadosContrarios(0) NResultadosContrarios = 0 WHILE rs1.eof = false REDIM preserve ResultadosContrarios(NResultadosContrarios) ResultadosContrarios(NResultadosContrarios) = rs1.fields(0) NResultadosContrarios = NResultadosContrarios + 1 'response.write cstr(rs1.fields(0)) + "
" rs1.movenext wend rs1.close END IF 'response.write "El numero de identificadores de resultados contrarios es =" + cstr(NResultadosContrarios) + "
" '**************************************************************************************** '**** BUSCA LAS POSIBLES PATOLOGIAS POSIBLES PERO QUE CONTIENEN ALGUN RESULTADO DE PRUEBA '**** CONTRARIO A LOS REALIZADOS AL PACIENTE '**************************************************************************************** SQL= "SELECT DISTINCT NOMBRE_PATOLOGIA FROM DIAGNOSTICO_RESULTADO " SQL = SQL + " WHERE " SQL = SQL + " NOMBRE_PATOLOGIA IN ('" FOR I = 0 TO NPosiblePatologia - 1 SQL = SQL + cstr(PosiblePatologia(I)) IF I < NPosiblePatologia - 1 THEN SQL = SQL + "','" END IF NEXT SQL = SQL + "')" IF NResultadosContrarios > 0 THEN SQL = SQL + " AND IDENTIFICADOR_RESULTADO IN (" FOR I = 0 TO NResultadosContrarios - 1 SQL = SQL + cstr(ResultadosContrarios(I)) IF I < NResultadosContrarios - 1 THEN SQL = SQL + "," END IF NEXT SQL = SQL + ")" 'response.write "
" + sql + "
" Set rs1 = CreateObject("ADODB.Recordset") 'rs1.CursorType = AdopenKeyset 'rs1.LockType = adLockOptimistic rs1.Open SQL, "DSN=SEX" 'response.write "LAS POSIBLES PATOLOGIAS A DESCARTAR SON:" + "
" NPAD=0 redim PatologiaADescartar(0) WHILE rs1.eof = false redim preserve PatologiaADescartar(NPAD) PatologiaADescartar(NPAD) = rs1.fields(0) 'response.write cstr(rs1.fields(0)) + "
" NPAD = NPAD + 1 rs1.movenext wend rs1.close 'response.write "EL NUEMRO DE POSIBLES PATOLOGIAS A DESCARTAR =" + CSTR(NPAD) + "
" END IF '**************************************************************************************** '**** BUSCA LAS POSIBLES PATOLOGIAS TENIENDO EN CUENTA LOS RESULTADOS DE LAS PRUEBAS '**************************************************************************************** SQL= "SELECT DISTINCT NOMBRE_PATOLOGIA FROM DIAGNOSTICO_RESULTADO " SQL = SQL + " WHERE " SQL = SQL + " NOMBRE_PATOLOGIA IN ('" FOR I = 0 TO NPosiblePatologia - 1 SQL = SQL + cstr(PosiblePatologia(I)) IF I < NPosiblePatologia - 1 THEN SQL = SQL + "','" END IF NEXT SQL = SQL + "')" IF NResultadosContrarios > 0 THEN SQL = SQL + " AND NOMBRE_PATOLOGIA NOT IN ('" FOR I = 0 TO NPAD - 1 SQL = SQL + PatologiaADescartar(I) IF I < NPAD - 1 THEN SQL = SQL + "','" END IF NEXT SQL = SQL + "')" 'response.write "


" + sql + "
" 'Set rs1 = CreateObject("ADODB.Recordset") 'rs1.CursorType = AdopenKeyset 'rs1.LockType = adLockOptimistic rs1.Open SQL, "DSN=SEX" 'response.write "LAS POSIBLES PATOLOGIAS DESPUES DEL DESCARTE SON:" + "
" NPP=0 redim PosiblePatologia(0) WHILE rs1.eof = false redim OrdenadaPosiblePatologia(NPP) redim PesoPosiblePatologia(NPP) redim preserve PosiblePatologia(NPP) PosiblePatologia(NPP) = rs1.fields(0) 'response.write cstr(rs1.fields(0)) + "
" NPP=NPP+1 rs1.movenext wend rs1.close 'response.write "EL NUEMRO DE POSIBLES PATOLOGIAS SON=" + CSTR(NPP) + "
" NPosiblePatologia = NPP END IF '**************************************************************************************** '**** FIN DE LA BUSQUEDA DE LAS POSIBLES PATOLOGIAS TENIENDO EN CUENTA LOS RESULTADOS DE LAS PRUEBAS '**************************************************************************************** Dim l PatologiasDescarte=Session("PatologiasDescarte") NumeroPatologiasDescarte=Session("NumeroPatologiasDescarte") response.write "
" response.write "" response.write "" response.write "
" end if END IF %> e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


SISTEMA EXPERTO APLICADO A LA ATENCIÓN PRIMARIA MÉDICA. AYUDA AL DIAGNÓSTICO

: Calle Suarez, Marcos
: Ingeniería Organización
Contenido del proyecto: