%@ 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 ""
end if
END IF
%>
e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.