JPLTedCas's picture
Update app.py
955765b
from flask import Flask ,render_template ,request ,jsonify ,redirect ,url_for #line:
import pandas as pd #line:2
import ast
import numpy as np #line:3
import xlrd2 as xlrd #line:4
import unicodedata #line:5
import spacy #line:6
import inflect #line:7
nlp =spacy .load ("es_core_news_md")#line:9
from inflector import Inflector ,Spanish #line:11
inflector =Inflector (Spanish )#line:12
import speech_recognition as sr #line:13
import os #line:14
import requests #line:15
from requests .auth import HTTPBasicAuth #line:16
import asyncio
import aiohttp
auth=aiohttp.BasicAuth('1234','API')
base_url='https://orva.tedcas.com/api/'
xlrd.xlsx.ensure_elementtree_imported(False, None)
xlrd.xlsx.Element_has_iter = True
async def buscar_faq(query, barra):
archivo = "./preguntas_qh_tags2.xlsx"
df = pd.read_excel(archivo, engine="openpyxl")
p = 0
result = query
df2 = []
print("result" + str(result))
for index, row in df.iterrows():
list_words = df.loc[index, 'TAGS2']
list_words = list_words.split(",")
df2.append(list_words)
ls5 = []
list_words=[]
for indexw, word in enumerate(result):
result[indexw]=inflector.singularize(str(word))
count_words = np.zeros(len(df.index), dtype=int)
for index1,row in enumerate(df2):
ls4=[]
for word in row:
if barra == 0:
if word != []:
p = 0
for num in range(100):
num = num / 10
num = str(num)
if word == num:
num = num.split(".")
ls4.append(num[0])
ls4.append("con")
ls4.append(num[1])
p = p + 1
if p == 0:
ls4.append(word)
if barra == 1:
ls4.append(word)
ls5.append(ls4)
for resulted in result:
for index2, word in enumerate(ls5[index1]):
if str(resulted)=="maya":
resulted="malla"
if str(resulted)=="pilos"or str(resulted)=="pilo":
resulted="philo"
if str(resulted)=="filos"or str(resulted)=="filo":
resulted="philo"
if str(resulted)=="sinces" or str(resulted)=="sinc":
resulted="synthe"
if str(resulted)=="sintes" or str(resulted)=="sint":
resulted="synthe"
if str(resulted)=="axos" or str(resulted)=="axo":
resulted="axso"
if str(resulted)=="uno":
resulted="1"
if str(resulted)=="dos" or str(resulted)=="do":
resulted="2"
if str(resulted)=="tres" or str(resulted)=="tr":
resulted="3"
if str(resulted)=="cuatro":
resulted="4"
if str(resulted)=="cinco":
resulted="5"
if str(resulted)=="seis"or str(resulted)=="sei":
resulted="6"
if str(resulted)=="siete":
resulted="7"
if str(resulted)=="ocho":
resulted="8"
if str(resulted)=="nueve":
resulted="9"
if str(resulted)=="cero":
resulted="0"
if str(resulted)=="veintiuno":
resulted="21"
if str(resulted)=="veinte":
resulted="20"
if str(resulted)=="veintidos"or str(resulted)=="veintido" :
resulted="22"
if str(resulted)=="veintitres" or str(resulted)=="veintitre" :
resulted="23"
if str(resulted)=="veinticuatro":
resulted="24"
if str(resulted)=="veinticinco":
resulted="25"
if str(resulted)=="veintiseis"or str(resulted)=="veintisei" :
resulted="26"
if str(resulted)=="veintisiete":
resulted="27"
if str(resulted)=="veintiocho":
resulted="28"
if str(resulted)=="veintinueve":
resulted="29"
if str(resulted)=="treinta":
resulted="30"
if str(remove_accents(word)).lower() == str(remove_accents(resulted)).lower():
count_words[index1]=count_words[index1]+1
ls5[index1].pop(index2)
indexmax = np.argwhere(count_words == np.amax(count_words))
output=[]
preguntas={}
df = xlrd.open_workbook(archivo)
df = df.sheet_by_index(0)
if not np.all(count_words == 0):
for indexin in indexmax:
sq = df.cell(int(indexin) + 1, 3)
sr = df.cell(int(indexin) + 1, 4)
sq = str(sq)
sr = str(sr)
sq = sq.split("'")
sr = sr.split("'")
output.append(f" {sq[1]} {sr[1]} ")
return output
async def boton_pdf_video(especialidad, field_tipo, nid):
connector = aiohttp.TCPConnector(ssl=True)
async with aiohttp.ClientSession(connector=connector) as session:
r = await session.get(f'{base_url}all-content/{especialidad}', auth=auth)
data = await r.json()
nid_list = []
titulos = {}
if nid == "0":
for text in data:
if text['type'] == "Intervencion":
nid_list.append(text['nid'])
else:
nid_list.append(nid)
for nid1 in nid_list:
r1 = await session.get(f'{base_url}intervenciones/{nid1}', auth=auth)
data1 = await r1.json()
data1 = data1[0]
files = {}
if field_tipo in data1:
file_list = data1[field_tipo]
for file in file_list:
if field_tipo == 'field_pdf':
files[file['descripcion']] = "https://orva.tedcas.com/"+str(file['url'])
if field_tipo == 'field_video':
files[file['descripcion']] = str(file['url'])
titulos[data1['title']] = files
else:
if nid == '0':
nid = '0'
else:
print("nid dentro del if " + str(nid))
files["No hay archivos"] = ""
titulos["No hay archivos"] = files
return {}
return titulos
async def boton_word_ppt(especialidad, field_tipo, nid):
connector = aiohttp.TCPConnector(ssl=True)
async with aiohttp.ClientSession(connector=connector) as session:
r = await session.get(f'{base_url}all-content/{especialidad}', auth=auth)
data = await r.json()
nid_list = []
files = {}
if nid == '0':
for text in data:
if text['type'] == "Intervencion":
nid_list.append(text['nid'])
else:
nid_list.append(nid)
for nid1 in nid_list:
r1 = await session.get(f'{base_url}intervenciones/{nid1}', auth=auth)
data1 = await r1.json()
data1 = data1[0]
if len(data1[field_tipo]) != 0:
files[data1['title']] = "https://orva.tedcas.com/"+str(data1[field_tipo])
if len(data1[field_tipo]) == 0 and nid != '0':
files["No hay archivos"] = ""
return {}
return files
async def boton_materiales(especialidad, nid):
connector = aiohttp.TCPConnector(ssl=True)
async with aiohttp.ClientSession(connector=connector) as session:
cajas = {}
if nid == '0':
r = await session.get(f'{base_url}listado_completo_cajas/{especialidad}', auth=auth)
data = await r.json()
for text in data:
cajas[text['title']] = text['nid']
cajas[''] = "si hay"
else:
r = await session.get(f'{base_url}intervenciones/{nid}', auth=auth)
data = await r.json()
data = data[0]
if 'field_cajas' in data:
data = data['field_cajas']
for text in data:
cajas[text['caja']] = text['id']
cajas[''] = "si hay"
else:
if nid != 0:
cajas[''] = ""
return {}
return cajas
async def cargar_base_datos(query, url):
k1 = None
output = []
connector = aiohttp.TCPConnector(ssl=True)
async with aiohttp.ClientSession(connector=connector) as session:
r = await session.get('https://orva.tedcas.com/api/all-content/'+str(url), auth=auth)
data = await r.json()
count_words = np.zeros(len(data), dtype=int)
query1 = []
for z in query:
cont = 0
for num in range(100):
num = num / 10
if z == str(num):
z = str(num).split('.')
query1.append(z)
cont = cont + 1
if z == 'con':
cont = cont + 1
if cont == 0:
query1.append(z)
for i in range(len(data)):
cont_palabras = 0
data1 = data[i]
titulo = str(data1['title']).lower()
titulo = remove_accents(titulo)
titulo = titulo.split(' ')
for index, j in enumerate(titulo):
for index1, j1 in enumerate(titulo):
if index1 != index:
if j == j1:
titulo.pop(index1)
for index, j in enumerate(titulo):
for num in range(100):
num = num / 10
if j == str(num):
j = str(num).split('.')
titulo.append(j)
for k in query1:
if k=="maya":
k="malla"
if k=="pilos"or k=="pilo":
k="philo"
if k=="filos"or k=="filo":
k="philo"
if k=="sinces" or k=="sinc":
k="synthe"
if k=="sintes" or k=="sint":
k="synthe"
if k=="axos" or k=="axo":
k="axso"
if k=="uno":
k=1
if k=="dos" or k=="do":
k=2
if k=="tres" or k=="tr":
k=3
if k=="cuatro":
k=4
if k=="cinco":
k=5
if k=="seis"or k=="sei":
k=6
if k=="siete":
k=7
if k=="ocho":
k=8
if k=="nueve":
k=9
if k=="cero":
k=0
if k=="veintiuno":
k="21"
if k=="veinte":
k="20"
if k=="veintidos"or k=="veintido" :
k="22"
if k=="veintitres" or k=="veintitre" :
k="23"
if k=="veinticuatro":
k="24"
if k=="veinticinco":
k="25"
if k=="veintiseis"or k=="veintisei" :
k="26"
if k=="veintisiete":
k="27"
if k=="veintiocho":
k="28"
if k=="veintinueve":
k="29"
if k=="treinta":
k="30"
if type(k)==int and type(k1)==int:
num=str(k1)+'.'+str(k)
k=num.split('.')
k1=k
k=inflector.singularize(str(k))
j=inflector.singularize(str(j))
k=remove_accents(k)
if j==k:
cont_palabras=cont_palabras+1
count_words[i] = cont_palabras
indexmax = np.argwhere(count_words == np.amax(count_words))
for i in indexmax:
output.append(data[int(i)])
if np.all(count_words == 0):
output = None
return output
async def cargar_tipo(nid, url):
connector = aiohttp.TCPConnector(ssl=True)
async with aiohttp.ClientSession(connector=connector) as session:
r = await session.get(f'{base_url}all-content/{url}', auth=auth)
data = await r.json()
tipo = None
output = None
for data1 in data:
if nid == data1["nid"]:
tipo = data1["type"]
output = data1
break
return output, tipo
async def cargar_archivo(field_tipo, texto, url):
file = []
connector = aiohttp.TCPConnector(ssl=True)
async with aiohttp.ClientSession(connector=connector) as session:
r = await session.get('https://orva.tedcas.com/api/'+str(url), auth=auth)
data = await r.json()
data = data[0]
field1 = "field_"+str(field_tipo)
field = data[field1]
if field1 == "field_image":
data=data['field_image']
data=data.split(',')
data = [s.replace(' ', '') for s in data]
for text in data:
file.append("https://orva.tedcas.com/"+str(text))
print(file)
return file
if len(field)==0 :
file_texto="No hay archivos subidos"
file="templates/especialidad"
elif type(field)==str:
file="https://orva.tedcas.com/"+str(field)
file_texto=field
elif type(field)==list:
for i,files in field:
file[i]="https://orva.tedcas.com/"+str(files)
file_texto=field
return texto,file,file_texto
async def cargar_archivo_grande(field_tipo, texto, url):
connector = aiohttp.TCPConnector(ssl=True)
async with aiohttp.ClientSession(connector=connector) as session:
r = await session.get('https://orva.tedcas.com/api/'+str(url), auth=auth)
data = await r.json()
files = {}
if field_tipo=='title_material':
for text in data:
files[text[field_tipo]]=(text[field_tipo])
return files,texto
data = data[0]
field = "field_"+str(field_tipo)
field = data[field]
if len(field) == 0:
files["No hay archivos"]="templates/especialidad"
else :
for text in field :
files[text['descripcion']]="https://orva.tedcas.com/"+str(text['url'])
return texto,files
async def cargar_caja(url, texto):
instrumental = {}
connector = aiohttp.TCPConnector(ssl=True)
async with aiohttp.ClientSession(connector=connector) as session:
r = await session.get(f'{base_url}intervenciones/{url}', auth=auth)
data = await r.json()
data = data[0]
if 'field_cajas' in data:
data=data['field_cajas']
for text in data:
instrumental[text['id']]=text['caja']
else:
instrumental[str(url)]="No hay archivos"
return instrumental,texto
async def cargar_instrumental(nid, url):
cajas = {}
connector = aiohttp.TCPConnector(ssl=True)
async with aiohttp.ClientSession(connector=connector) as session:
r = await session.get('https://orva.tedcas.com/api/'+str(url), auth=auth)
data = await r.json()
for text in data :
if 'instrumental' in text:
for word in text['instrumental']:
if word['id']==nid:
cajas[text['nid']]=text['title']
return cajas
async def cargar_botones_pdf_admision():
mapa_camas = {}
ambulancias = {}
programacion_quirurgica = {}
otros = {}
connector = aiohttp.TCPConnector(ssl=True)
async with aiohttp.ClientSession(connector=connector) as session:
r = await session.get('https://orva.tedcas.com/api/all-content/1621', auth=auth)
data = await r.json()
for text in data:
r1 = await session.get('https://orva.tedcas.com/api/intervenciones/'+str(text['nid']), auth=auth)
data1 = await r1.json()
data1 = data1[0]
data2 = data1['field_pdf']
data2 = data2[0]
if data1['field_tecnica'] == "Mapa de camas":
mapa_camas[data1['title']] = "https://orva.tedcas.com/"+str(data2['url'])
elif data1['field_tecnica'] == "Ambulancias":
ambulancias[data1['title']] = "https://orva.tedcas.com/"+str(data2['url'])
elif data1['field_tecnica'] == "Programación quirúrgica":
programacion_quirurgica[data1['title']] = "https://orva.tedcas.com/"+str(data2['url'])
elif data1['field_tecnica'] == "Otros":
otros[data1['title']] = "https://orva.tedcas.com/"+str(data2['url'])
return mapa_camas, ambulancias, programacion_quirurgica, otros
def remove_accents(input_str):
nfkd_form = unicodedata.normalize('NFKD', input_str)
return u"".join([c for c in nfkd_form if not unicodedata.combining(c)])
def adaptar_salida(query):
result = []
query = str(query).lower()
query = query.split("}")
query = query[0].split(":")
if len(query) >= 2:
result1 = query[1].split("'")
result = result1[1].split()
return result
def takeCommand():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_threshold = 1
audio = r.adjust_for_ambient_noise(source)
audio = r.listen(source)
try:
print("Recognizing...")
query = r.recognize_google(audio, language='es-ES')
print(f"User said: {query}\n")
except Exception as e:
print(e)
print("Unable to Recognize your voice.")
return "none"
# automatically load the interface from a HF model
# you can remove the api_key parameter if you don't care about rate limiting.
#import gradio as gr
#from transformers import pipeline
#import numpy as np
#transcriber = pipeline("automatic-speech-recognition", model="openai/whisper-base.en")
#def transcribe(audio):
# sr, y = audio
# y = y.astype(np.float32)
# y /= np.max(np.abs(y))
# return transcriber({"sampling_rate": sr, "raw": y})["text"]
#demo = gr.Interface(
# transcribe,
# gr.Audio(source="microphone"),
# "text",
#)
#demo.launch()
#query=text
#########################################
return query
app = Flask (__name__)
app.config['SECRET_KEY'] = 'mysecretkey'
IMG_FOLDER = os.path.join('static','IMG')
app.config['UPLOAD_FOLDER'] = IMG_FOLDER
@app.route("/")
async def hello():
trauma = os.path.join(app.config['UPLOAD_FOLDER'], 'trauma.jpeg')
uro = os.path.join(app.config['UPLOAD_FOLDER'], 'uro.jpeg')
adm = os.path.join(app.config['UPLOAD_FOLDER'], 'adm.jpeg')
tijeras = os.path.join(app.config['UPLOAD_FOLDER'], 'tijerass.png')
return render_template('especialidad.html',user_image0=tijeras, user_image1=trauma, user_image2=uro, user_image3=adm)
@app.route("/especialidad")
async def especialidad():
trauma = os.path.join(app.config['UPLOAD_FOLDER'], 'trauma.jpeg')
uro = os.path.join(app.config['UPLOAD_FOLDER'], 'uro.jpeg')
adm = os.path.join(app.config['UPLOAD_FOLDER'], 'adm.jpeg')
tijeras = os.path.join(app.config['UPLOAD_FOLDER'], 'tijerass.png')
return render_template('especialidad.html',user_image0=tijeras,user_image1=trauma, user_image2=uro, user_image3=adm)
@app.route("/seleccion_trauma", methods=['GET','POST'])
async def seleccion_trauma():
lupa = os.path.join(app.config['UPLOAD_FOLDER'], 'lupa.png')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
return render_template('seleccion_trauma.html',user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha)
@app.route("/buscador_trauma", methods=['GET','POST'])
async def buscador_trauma():
lupa = os.path.join(app.config['UPLOAD_FOLDER'], 'lupa.png')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
guia_visual_ppt = os.path.join(app.config['UPLOAD_FOLDER'], 'guia_visual.png')
materiales = os.path.join(app.config['UPLOAD_FOLDER'], 'materiales.png')
pdf_casa = os.path.join(app.config['UPLOAD_FOLDER'], 'pdf_casa.jpg')
protocolo_word = os.path.join(app.config['UPLOAD_FOLDER'], 'protocolo.jpg')
visualizar_videos = os.path.join(app.config['UPLOAD_FOLDER'], 'visualizar_video.png')
query=str(request.form.to_dict())
query=adaptar_salida(query)
result_busqueda={}
result_busqueda[""]=""
if len(query)==0:
return render_template('buscador_trauma.html',result_busqueda=result_busqueda, user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
elif query!=None or "{}":
url=1
output=await cargar_base_datos(query,url)
output2=await buscar_faq(query,1)
if output==None :
if len(output2)==0:
return render_template('buscador_trauma.html',result_busqueda=result_busqueda,prediction_text="No hay resultados para tu busqueda", user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
else:
return render_template('buscador_trauma.html',faqs=output2,faq_titulo="Preguntas y respuestas: ",result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
elif len(output)>=1:
titulo=[]
nid=[]
result_busqueda={}
for text in output:
titulo.append(text["title"])
nid.append(text["nid"])
for i,text in enumerate(titulo):
result_busqueda[nid[i]]=text
if len(output2)!=0:
return render_template('buscador_trauma1.html',faqs=output2,faq_titulo="Preguntas y respuestas: ",result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
else:
return render_template('buscador_trauma1.html',result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
@app.route("/resultado_trauma", methods=['GET','POST'])
async def resultado_trauma():
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
guia_visual_ppt = os.path.join(app.config['UPLOAD_FOLDER'], 'guia_visual.png')
materiales = os.path.join(app.config['UPLOAD_FOLDER'], 'materiales.png')
pdf_casa = os.path.join(app.config['UPLOAD_FOLDER'], 'pdf_casa.jpg')
protocolo_word = os.path.join(app.config['UPLOAD_FOLDER'], 'protocolo.jpg')
visualizar_videos = os.path.join(app.config['UPLOAD_FOLDER'], 'visualizar_video.png')
nid=request.args.get('link')
output,tipo=await cargar_tipo(nid,1)
title=output['title']
#if tipo="instrumen"
if tipo=="Intervencion":
instrumental,texto_cajas=await cargar_caja(str(nid),'Instrumental - Cajas: ')
return render_template('intervencion_trauma.html',user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,instrumental=instrumental,texto_cajas=texto_cajas, title=title, user_image6=ajustes,user_image7=flecha,nid2=nid )
elif tipo=='Caja':
texto_ubi,file_ubi,file_texto_ubi=await cargar_archivo("ubicacion","Ubicacion: ","cajas/"+str(nid))
file_imagen=await cargar_archivo("image","Imagen: ","cajas/"+str(nid))
files_instru, texto_instru=await cargar_archivo_grande("title_material","Instrumental : ","cajas/"+str(nid))
if len(title)==1:
return render_template('caja_trauma1.html',title=title,files_instru=files_instru, texto_instru=texto_instru,texto_ubi=texto_ubi,file_texto_ubi=file_texto_ubi,file_imagen=file_imagen,user_image6=ajustes,user_image7=flecha )
else:
return render_template('caja_trauma.html',title=title,files_instru=files_instru, texto_instru=texto_instru,texto_ubi=texto_ubi,file_texto_ubi=file_texto_ubi,file_imagen=file_imagen,user_image6=ajustes,user_image7=flecha )
elif tipo=='Instrumental':
cajas=await cargar_instrumental(nid,'listado_completo_cajas/1')
if len(cajas)==1:
return render_template('instrumental_trauma1.html',cajas=cajas,texto='El instrumental que buscas esta presente en las siguientes cajas: ',title=title,user_image6=ajustes,user_image7=flecha )
else:
return render_template('instrumental_trauma.html',cajas=cajas,texto='El instrumental que buscas esta presente en las siguientes cajas: ',title=title,user_image6=ajustes,user_image7=flecha )
@app.route("/protocolos_trauma", methods=['GET','POST'])
async def protocolos_trauma():
nid2=request.args.get('link2')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
protocolos=await boton_word_ppt(1,"field_protocolo",nid2)
if len(protocolos)==1:
return render_template('protocolo1.html',protocolos=protocolos,user_image7=flecha)
else:
return render_template('protocolo.html',protocolos=protocolos,user_image7=flecha)
@app.route("/guia_visual_trauma", methods=['GET','POST'])
async def guia_visual_trauma():
nid2=request.args.get('link2')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
guia_visual=await boton_word_ppt(1,"field_guia_visual",nid2)
if len(guia_visual)==1:
return render_template('guia_visual1.html',guia_visual=guia_visual,user_image7=flecha)
else:
return render_template('guia_visual.html',guia_visual=guia_visual,user_image7=flecha)
@app.route("/pdf_casa_trauma", methods=['GET','POST'])
async def pdf_casa_trauma():
nid2=request.args.get('link2')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
titulos=await boton_pdf_video(1,"field_pdf",nid2)
contador_pdf_trauma = 0
for titulo1, pdfs in titulos.items():
for titulo2, url in pdfs.items():
contador_pdf_trauma = contador_pdf_trauma + 1
if len(titulos.items())==1:
if contador_pdf_trauma==1:
print("bien")
return render_template('pdf_casa_comercial1.html',user_image7=flecha,titulos=titulos)
else:
return render_template('pdf_casa_comercial.html',user_image7=flecha,titulos=titulos)
else:
return render_template('pdf_casa_comercial.html',user_image7=flecha,titulos=titulos)
@app.route("/videos_trauma", methods=['GET','POST'])
async def videos_trauma():
nid2=request.args.get('link2')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
titulos=await boton_pdf_video(1,"field_video",nid2)
contador_videos_trauma = 0
for titulo1, pdfs in titulos.items():
for titulo2, url in pdfs.items():
contador_videos_trauma = contador_videos_trauma + 1
if len(titulos.items())==1:
if contador_videos_trauma==1:
print("bien")
return render_template('videos1.html',user_image7=flecha,titulos=titulos)
else:
return render_template('videos.html',user_image7=flecha,titulos=titulos)
else:
return render_template('videos.html',user_image7=flecha,titulos=titulos)
@app.route("/materiales_trauma", methods=['GET','POST'])
async def materiales_trauma():
nid2=request.args.get('link2')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
cajas=await boton_materiales(1,nid2)
if len(cajas[''])==0:
return render_template('materiales_uro.html',user_image7=flecha,cajas=cajas,no_hay="No hay instrumental")
else:
if len(cajas)==1:
return render_template('materiales_uro1.html',user_image7=flecha,cajas=cajas)
else:
return render_template('materiales_uro.html',user_image7=flecha,cajas=cajas)
@app.route("/escuchar_trauma1", methods=['GET','POST'])
async def escuchar_trauma1():
guia_visual_ppt = os.path.join(app.config['UPLOAD_FOLDER'], 'guia_visual.png')
materiales = os.path.join(app.config['UPLOAD_FOLDER'], 'materiales.png')
pdf_casa = os.path.join(app.config['UPLOAD_FOLDER'], 'pdf_casa.jpg')
protocolo_word = os.path.join(app.config['UPLOAD_FOLDER'], 'protocolo.jpg')
visualizar_videos = os.path.join(app.config['UPLOAD_FOLDER'], 'visualizar_video.png')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
return render_template('escuchar_trauma1.html',nid2=0,prediction_text="Dale a `Escuchar´ y haz tu pregunta",user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales )
@app.route("/escuchar_trauma", methods=['GET','POST'])
async def escuchar_trauma():
#########################################################################
lupa = os.path.join(app.config['UPLOAD_FOLDER'], 'lupa.png')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
guia_visual_ppt = os.path.join(app.config['UPLOAD_FOLDER'], 'guia_visual.png')
materiales = os.path.join(app.config['UPLOAD_FOLDER'], 'materiales.png')
pdf_casa = os.path.join(app.config['UPLOAD_FOLDER'], 'pdf_casa.jpg')
protocolo_word = os.path.join(app.config['UPLOAD_FOLDER'], 'protocolo.jpg')
visualizar_videos = os.path.join(app.config['UPLOAD_FOLDER'], 'visualizar_video.png')
###########################################################################
guia_visual_ppt = os.path.join(app.config['UPLOAD_FOLDER'], 'guia_visual.png')
materiales = os.path.join(app.config['UPLOAD_FOLDER'], 'materiales.png')
pdf_casa = os.path.join(app.config['UPLOAD_FOLDER'], 'pdf_casa.jpg')
protocolo_word = os.path.join(app.config['UPLOAD_FOLDER'], 'protocolo.jpg')
visualizar_videos = os.path.join(app.config['UPLOAD_FOLDER'], 'visualizar_video.png')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
#########################################################################################
r = sr.Recognizer()
recognized_text = "" # Valor predeterminado
if request.method == "POST":
f = request.files['audio_data']
# Cargar el archivo adjunto directamente
with sr.AudioFile(f) as source:
audio_data = r.record(source)
# Realizar el reconocimiento de voz
try:
recognized_text = r.recognize_google(audio_data, language='es-ES')
except sr.UnknownValueError:
recognized_text = "No se pudo reconocer el audio"
except sr.RequestError as e:
recognized_text = f"Error en la solicitud: {str(e)}"
print(recognized_text)
#return render_template('index.html', recognized_text=recognized_text)
#else:
##########################################################################################
query=recognized_text
print("TEXTO")
print(query)
#query = takeCommand()
query=str(query).lower()
query=query.split()
result_busqueda={}
result_busqueda[""]=""
if query[0]!="none":
url=1
output=await cargar_base_datos(query,url)
output2=await buscar_faq(query,0)
if output==None:
if len(output2)==0:
return render_template('escuchar_trauma.html',nid2=0,result_busqueda=result_busqueda,prediction_text="No hay resultados para tu busqueda",user_image6=ajustes,user_image7=flecha,user_image5=micro,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales )
else:
return render_template('escuchar_trauma.html',nid2=0,faqs=output2,faq_titulo="Preguntas y respuestas: ",result_busqueda=result_busqueda,user_image6=ajustes,user_image7=flecha,user_image5=micro,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales )
elif len(output)>=1:
titulo=[]
nid=[]
result_busqueda={}
for text in output:
titulo.append(text["title"])
nid.append(text["nid"])
for i,text in enumerate(titulo):
result_busqueda[nid[i]]=text
print("RESULT BUSQUEDA")
print(result_busqueda)
if len(output2)==0:
print("render1")
return render_template('escuchar_trauma.html',nid2=0,result_busqueda=result_busqueda,user_image6=ajustes,user_image7=flecha,user_image5=micro, user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales )
else:
print("render2")
return render_template('buscador_trauma.html',faqs=output2,faq_titulo="Preguntas y respuestas: ",result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
#return render_template('escuchar_trauma.html',nid2=0,faqs=output2,faq_titulo="Preguntas y respuestas: ",result_busqueda=result_busqueda,user_image6=ajustes,user_image7=flecha,user_image5=micro, user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales )
else :
return render_template('escuchar_trauma.html',nid2=0,result_busqueda=result_busqueda,prediction_text="No te he entendido bien, dale al boton `Escuchar´ y repite tu pregunta",user_image5=micro,user_image6=ajustes,user_image7=flecha, user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales )
@app.route("/buscador_admision", methods=['GET','POST'])
async def buscador_admision():
lupa = os.path.join(app.config['UPLOAD_FOLDER'], 'lupa.png')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
otros_img = os.path.join(app.config['UPLOAD_FOLDER'], 'otros_img.png')
programacion_img = os.path.join(app.config['UPLOAD_FOLDER'], 'programacion_img.png')
ambulancias_img = os.path.join(app.config['UPLOAD_FOLDER'], 'ambulancias_img.jpg')
mapa_camas_img = os.path.join(app.config['UPLOAD_FOLDER'], 'mapa_camas_img.jpg')
query=str(request.form.to_dict())
query=adaptar_salida(query)
result_busqueda={}
result_busqueda[""]=""
if len(query)==0:
return render_template('buscador_admision.html',user_image8=mapa_camas_img,user_image9=ambulancias_img,user_image10=programacion_img,user_image11=otros_img,result_busqueda=result_busqueda,prediction_text="ya puedes hacer tu pregunta", user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha )
elif query!=None or "{}":
url=1621
output=await cargar_base_datos(query,url)
output2=await buscar_faq(query,1)
if output==None:
if len(output2)==0:
return render_template('buscador_admision.html',user_image8=mapa_camas_img,user_image9=ambulancias_img,user_image10=programacion_img,user_image11=otros_img,result_busqueda=result_busqueda,prediction_text="No hay resultados para tu busqueda", user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha)
else:
return render_template('buscador_admision.html',user_image8=mapa_camas_img,user_image9=ambulancias_img,user_image10=programacion_img,user_image11=otros_img,faqs=output2,faq_titulo="Preguntas y respuestas: ",result_busqueda=result_busqueda, user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha)
elif len(output)>=1:
titulo=[]
nid=[]
result_busqueda={}
for text in output:
nid.append(text["nid"])
for nid1 in nid:
connector = aiohttp.TCPConnector(ssl=True)
async with aiohttp.ClientSession(connector=connector) as session:
r1 = await session.get('https://orva.tedcas.com/api/intervenciones/'+str(nid1), auth=auth)
data1=await r1.json()
data1=data1[0]
data2=data1['field_pdf']
data2=data2[0]
result_busqueda[data1['title']]="https://orva.tedcas.com/"+str(data2['url'])
if len(output2)==0:
return render_template('buscador_admision1.html',user_image8=mapa_camas_img,user_image9=ambulancias_img,user_image10=programacion_img,user_image11=otros_img,result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha )
else:
return render_template('buscador_admision1.html',faqs=output2,faq_titulo="Preguntas y respuestas: ",user_image8=mapa_camas_img,user_image9=ambulancias_img,user_image10=programacion_img,user_image11=otros_img,result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha )
@app.route("/mapa_camas", methods=['GET','POST'])
async def mapa_camas():
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
mapa_camas1,ambulancias,programacion_quirurgica,otros =await cargar_botones_pdf_admision()
return render_template('mapa_camas.html', text=mapa_camas1,user_image6=ajustes,user_image7=flecha)
@app.route("/ambulancias", methods=['GET','POST'])
async def ambulancias():
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
mapa_camas,ambulancias,programacion_quirurgica,otros =await cargar_botones_pdf_admision()
return render_template('ambulancias.html', text=ambulancias,user_image6=ajustes,user_image7=flecha)
@app.route("/programacion_quirurgica", methods=['GET','POST'])
async def programacion_quirurgica():
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
mapa_camas,ambulancias,programacion_quirurgica,otros =await cargar_botones_pdf_admision()
return render_template('programacion_quirurgica.html', text=programacion_quirurgica,user_image6=ajustes,user_image7=flecha)
@app.route("/otros", methods=['GET','POST'])
async def otros():
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
mapa_camas,ambulancias,programacion_quirurgica,otros =await cargar_botones_pdf_admision()
return render_template('otros.html', text=otros,user_image6=ajustes,user_image7=flecha)
@app.route("/escuchar_admision1", methods=['GET','POST'])
async def escuchar_admision1():
otros_img = os.path.join(app.config['UPLOAD_FOLDER'], 'otros_img.png')
programacion_img = os.path.join(app.config['UPLOAD_FOLDER'], 'programacion_img.png')
ambulancias_img = os.path.join(app.config['UPLOAD_FOLDER'], 'ambulancias_img.jpg')
mapa_camas_img = os.path.join(app.config['UPLOAD_FOLDER'], 'mapa_camas_img.jpg')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
return render_template('escuchar_admision1.html',user_image8=mapa_camas_img,user_image9=ambulancias_img,user_image10=programacion_img,user_image11=otros_img,prediction_text="Dale a `Escuchar´ y haz tu pregunta",user_image5=micro,user_image6=ajustes,user_image7=flecha)
@app.route("/escuchar_admision", methods=['GET','POST'])
async def escuchar_admision():
#########################################################################
lupa = os.path.join(app.config['UPLOAD_FOLDER'], 'lupa.png')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
guia_visual_ppt = os.path.join(app.config['UPLOAD_FOLDER'], 'guia_visual.png')
materiales = os.path.join(app.config['UPLOAD_FOLDER'], 'materiales.png')
pdf_casa = os.path.join(app.config['UPLOAD_FOLDER'], 'pdf_casa.jpg')
protocolo_word = os.path.join(app.config['UPLOAD_FOLDER'], 'protocolo.jpg')
visualizar_videos = os.path.join(app.config['UPLOAD_FOLDER'], 'visualizar_video.png')
###########################################################################
otros_img = os.path.join(app.config['UPLOAD_FOLDER'], 'otros_img.png')
programacion_img = os.path.join(app.config['UPLOAD_FOLDER'], 'programacion_img.png')
ambulancias_img = os.path.join(app.config['UPLOAD_FOLDER'], 'ambulancias_img.jpg')
mapa_camas_img = os.path.join(app.config['UPLOAD_FOLDER'], 'mapa_camas_img.jpg')
lupa = os.path.join(app.config['UPLOAD_FOLDER'], 'lupa.png')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
#########################################################################################
r = sr.Recognizer()
recognized_text = "" # Valor predeterminado
if request.method == "POST":
f = request.files['audio_data']
# Cargar el archivo adjunto directamente
with sr.AudioFile(f) as source:
audio_data = r.record(source)
# Realizar el reconocimiento de voz
try:
recognized_text = r.recognize_google(audio_data, language='es-ES')
except sr.UnknownValueError:
recognized_text = "No se pudo reconocer el audio"
except sr.RequestError as e:
recognized_text = f"Error en la solicitud: {str(e)}"
print(recognized_text)
#return render_template('index.html', recognized_text=recognized_text)
query=recognized_text
#else:
##########################################################################################
#query = takeCommand()
query=str(query).lower()
query=query.split()
print(query)
result_busqueda={}
result_busqueda[""]=""
if query[0]!="none":
url=1621
output=await cargar_base_datos(query,url)
output2=await buscar_faq(query,0)
if output==None:
if len(output2)==0:
return render_template('escuchar_admision.html',user_image8=mapa_camas_img,user_image9=ambulancias_img,user_image10=programacion_img,user_image11=otros_img,result_busqueda=result_busqueda,prediction_text="No hay resultados para tu busqueda", user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha)
else:
return render_template('escuchar_admision.html',faqs=output2,faq_titulo="Preguntas y respuestas: ",user_image8=mapa_camas_img,user_image9=ambulancias_img,user_image10=programacion_img,user_image11=otros_img,result_busqueda=result_busqueda, user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha)
elif len(output)>=1:
titulo=[]
nid=[]
result_busqueda={}
for text in output:
nid.append(text["nid"])
for nid1 in nid:
connector = aiohttp.TCPConnector(ssl=True)
async with aiohttp.ClientSession(connector=connector) as session:
r1 = await session.get('https://orva.tedcas.com/api/intervenciones/'+str(nid1), auth=auth)
data1=await r1.json()
data1=data1[0]
data2=data1['field_pdf']
data2=data2[0]
result_busqueda[data1['title']]="https://orva.tedcas.com/"+str(data2['url'])
if len(output2)==0:
return render_template('escuchar_admision.html',user_image8=mapa_camas_img,user_image9=ambulancias_img,user_image10=programacion_img,user_image11=otros_img,result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha )
else:
print("render2")
return render_template('buscador_admision.html',faqs=output2,faq_titulo="Preguntas y respuestas: ",result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
#return render_template('escuchar_admision.html',faqs=output2,faq_titulo="Preguntas y respuestas: ",user_image8=mapa_camas_img,user_image9=ambulancias_img,user_image10=programacion_img,user_image11=otros_img,result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha )
else:
return render_template('escuchar_admision.html',user_image8=mapa_camas_img,user_image9=ambulancias_img,user_image10=programacion_img,user_image11=otros_img,prediction_text="No te he entendido bien, dale al boton `Escuchar´ y repite tu pregunta",result_busqueda=result_busqueda, user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha )
@app.route("/buscador_uro", methods=['GET','POST'])
async def buscador_uro():
lupa = os.path.join(app.config['UPLOAD_FOLDER'], 'lupa.png')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
guia_visual_ppt = os.path.join(app.config['UPLOAD_FOLDER'], 'guia_visual.png')
materiales = os.path.join(app.config['UPLOAD_FOLDER'], 'materiales.png')
pdf_casa = os.path.join(app.config['UPLOAD_FOLDER'], 'pdf_casa.jpg')
protocolo_word = os.path.join(app.config['UPLOAD_FOLDER'], 'protocolo.jpg')
visualizar_videos = os.path.join(app.config['UPLOAD_FOLDER'], 'visualizar_video.png')
query=str(request.form.to_dict())
query=adaptar_salida(query)
result_busqueda={}
result_busqueda[""]=""
if len(query)==0:
return render_template('buscador_uro.html',result_busqueda=result_busqueda, user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
elif query!=None or "{}":
url=1620
output=await cargar_base_datos(query,url)
output2=await buscar_faq(query,1)
if output==None :
if len(output2)==0:
return render_template('buscador_uro.html',result_busqueda=result_busqueda,prediction_text="No hay resultados para tu busqueda", user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
else:
return render_template('buscador_uro.html',faqs=output2,faq_titulo="Preguntas y respuestas: ",result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
elif len(output)>=1:
titulo=[]
nid=[]
result_busqueda={}
for text in output:
titulo.append(text["title"])
nid.append(text["nid"])
for i,text in enumerate(titulo):
result_busqueda[nid[i]]=text
if len(output2)!=0:
return render_template('buscador_uro1.html',faqs=output2,faq_titulo="Preguntas y respuestas: ",result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
else:
return render_template('buscador_uro1.html',result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
@app.route("/resultado_uro", methods=['GET','POST'])
async def resultado_uro():
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
guia_visual_ppt = os.path.join(app.config['UPLOAD_FOLDER'], 'guia_visual.png')
materiales = os.path.join(app.config['UPLOAD_FOLDER'], 'materiales.png')
pdf_casa = os.path.join(app.config['UPLOAD_FOLDER'], 'pdf_casa.jpg')
protocolo_word = os.path.join(app.config['UPLOAD_FOLDER'], 'protocolo.jpg')
visualizar_videos = os.path.join(app.config['UPLOAD_FOLDER'], 'visualizar_video.png')
nid=request.args.get('link')
output,tipo=await cargar_tipo(nid,1620)
title=output['title']
if tipo=="Intervencion":
print("hola1")
instrumental,texto_cajas=await cargar_caja(str(nid),'Instrumental - Cajas: ')
return render_template('intervencion_uro.html',user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,instrumental=instrumental,texto_cajas=texto_cajas, title=title, user_image6=ajustes,user_image7=flecha,nid2=nid )
elif tipo=='Caja':
texto_ubi,file_ubi,file_texto_ubi=await cargar_archivo("ubicacion","Ubicacion: ","cajas/"+str(nid))
file_imagen=await cargar_archivo("image","Imagen: ","cajas/"+str(nid))
files_instru, texto_instru=await cargar_archivo_grande("title_material","Instrumental : ","cajas/"+str(nid))
if len(title)==1:
return render_template('caja_trauma1.html',title=title,files_instru=files_instru, texto_instru=texto_instru,texto_ubi=texto_ubi,file_texto_ubi=file_texto_ubi,file_imagen=file_imagen,user_image6=ajustes,user_image7=flecha )
else:
return render_template('caja_trauma.html',title=title,files_instru=files_instru, texto_instru=texto_instru,texto_ubi=texto_ubi,file_texto_ubi=file_texto_ubi,file_imagen=file_imagen,user_image6=ajustes,user_image7=flecha )
elif tipo=='Instrumental':
print("hola2")
cajas=await cargar_instrumental(nid,'listado_completo_cajas/1620')
if len(cajas)==1:
return render_template('instrumental_uro1.html',cajas=cajas,texto='El instrumental que buscas esta presente en las siguientes cajas: ',title=title,user_image6=ajustes,user_image7=flecha )
else:
return render_template('instrumental_uro.html',cajas=cajas,texto='El instrumental que buscas esta presente en las siguientes cajas: ',title=title,user_image6=ajustes,user_image7=flecha )
@app.route("/protocolos_uro", methods=['GET','POST'])
async def protocolos_uro():
nid2=request.args.get('link2')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
protocolos=await boton_word_ppt(1620,"field_protocolo",nid2)
if len(protocolos)==1:
return render_template('protocolo1.html',protocolos=protocolos,user_image7=flecha)
else:
return render_template('protocolo.html',protocolos=protocolos,user_image7=flecha)
@app.route("/guia_visual_uro", methods=['GET','POST'])
async def guia_visual_uro():
nid2=request.args.get('link2')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
guia_visual=await boton_word_ppt(1620,"field_guia_visual",nid2)
if len(guia_visual)==1:
return render_template('guia_visual1.html',guia_visual=guia_visual,user_image7=flecha)
else:
return render_template('guia_visual.html',guia_visual=guia_visual,user_image7=flecha)
@app.route("/pdf_casa_uro", methods=['GET','POST'])
async def pdf_casa_uro():
nid2=request.args.get('link2')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
titulos=await boton_pdf_video(1620,"field_pdf",nid2)
contador_pdf_uro = 0
for titulo1, pdfs in titulos.items():
for titulo2, url in pdfs.items():
contador_pdf_uro = contador_pdf_uro + 1
if len(titulos.items())==1:
if contador_pdf_uro==1:
print("bien")
return render_template('pdf_casa_comercial1.html',user_image7=flecha,titulos=titulos)
else:
return render_template('pdf_casa_comercial.html',user_image7=flecha,titulos=titulos)
else:
return render_template('pdf_casa_comercial.html',user_image7=flecha,titulos=titulos)
@app.route("/videos_uro", methods=['GET','POST'])
async def videos_uro():
nid2=request.args.get('link2')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
titulos=await boton_pdf_video(1620,"field_video",nid2)
contador_videos_uro=0
for titulo1, pdfs in titulos.items():
for titulo2, url in pdfs.items():
contador_videos_uro = contador_videos_uro + 1
if len(titulos.items())==1:
if contador_videos_uro==1:
return render_template('videos1.html',user_image7=flecha,titulos=titulos)
else:
return render_template('videos.html',user_image7=flecha,titulos=titulos)
else:
return render_template('videos.html',user_image7=flecha,titulos=titulos)
@app.route("/materiales_uro", methods=['GET','POST'])
async def materiales_uro():
nid2=request.args.get('link2')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
cajas=await boton_materiales(1620,nid2)
if len(cajas[''])==0:
return render_template('materiales_uro.html',user_image7=flecha,cajas=cajas,no_hay="No hay instrumental")
else:
if len(cajas)==1:
return render_template('materiales_uro1.html',user_image7=flecha,cajas=cajas)
else:
return render_template('materiales_uro.html',user_image7=flecha,cajas=cajas)
@app.route("/escuchar_uro1", methods=['GET','POST'])
async def escuchar_uro1():
guia_visual_ppt = os.path.join(app.config['UPLOAD_FOLDER'], 'guia_visual.png')
materiales = os.path.join(app.config['UPLOAD_FOLDER'], 'materiales.png')
pdf_casa = os.path.join(app.config['UPLOAD_FOLDER'], 'pdf_casa.jpg')
protocolo_word = os.path.join(app.config['UPLOAD_FOLDER'], 'protocolo.jpg')
visualizar_videos = os.path.join(app.config['UPLOAD_FOLDER'], 'visualizar_video.png')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
return render_template('escuchar_uro1.html',nid2=0,prediction_text="Dale a `Escuchar´ y haz tu pregunta",user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales )
@app.route("/escuchar_uro", methods=['GET','POST'])
async def escuchar_uro():
#########################################################################
lupa = os.path.join(app.config['UPLOAD_FOLDER'], 'lupa.png')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
guia_visual_ppt = os.path.join(app.config['UPLOAD_FOLDER'], 'guia_visual.png')
materiales = os.path.join(app.config['UPLOAD_FOLDER'], 'materiales.png')
pdf_casa = os.path.join(app.config['UPLOAD_FOLDER'], 'pdf_casa.jpg')
protocolo_word = os.path.join(app.config['UPLOAD_FOLDER'], 'protocolo.jpg')
visualizar_videos = os.path.join(app.config['UPLOAD_FOLDER'], 'visualizar_video.png')
#################################################################################
guia_visual_ppt = os.path.join(app.config['UPLOAD_FOLDER'], 'guia_visual.png')
materiales = os.path.join(app.config['UPLOAD_FOLDER'], 'materiales.png')
pdf_casa = os.path.join(app.config['UPLOAD_FOLDER'], 'pdf_casa.jpg')
protocolo_word = os.path.join(app.config['UPLOAD_FOLDER'], 'protocolo.jpg')
visualizar_videos = os.path.join(app.config['UPLOAD_FOLDER'], 'visualizar_video.png')
micro = os.path.join(app.config['UPLOAD_FOLDER'], 'micro.png')
ajustes = os.path.join(app.config['UPLOAD_FOLDER'], 'ajustes.png')
flecha = os.path.join(app.config['UPLOAD_FOLDER'], 'flecha.png')
#########################################################################################
r = sr.Recognizer()
recognized_text = "" # Valor predeterminado
if request.method == "POST":
f = request.files['audio_data']
# Cargar el archivo adjunto directamente
with sr.AudioFile(f) as source:
audio_data = r.record(source)
# Realizar el reconocimiento de voz
try:
recognized_text = r.recognize_google(audio_data, language='es-ES')
except sr.UnknownValueError:
recognized_text = "No se pudo reconocer el audio"
except sr.RequestError as e:
recognized_text = f"Error en la solicitud: {str(e)}"
print(recognized_text)
#return render_template('index.html', recognized_text=recognized_text)
query=recognized_text
#else:
##########################################################################################
#query = takeCommand()
query=str(query).lower()
query=query.split()
result_busqueda={}
result_busqueda[""]=""
if query[0]!="none":
url=1620
output=await cargar_base_datos(query,url)
output2=await buscar_faq(query,0)
if output==None:
if len(output2)==0:
return render_template('escuchar_uro.html',nid2=0,result_busqueda=result_busqueda,prediction_text="No hay resultados para tu busqueda",user_image6=ajustes,user_image7=flecha,user_image5=micro,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales )
else:
return render_template('escuchar_uro.html',nid2=0,faqs=output2,faq_titulo="Preguntas y respuestas: ",result_busqueda=result_busqueda,user_image6=ajustes,user_image7=flecha,user_image5=micro,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales )
elif len(output)>=1:
titulo=[]
nid=[]
result_busqueda={}
for text in output:
titulo.append(text["title"])
nid.append(text["nid"])
for i,text in enumerate(titulo):
result_busqueda[nid[i]]=text
if len(output2)==0:
return render_template('escuchar_uro.html',nid2=0,result_busqueda=result_busqueda,user_image6=ajustes,user_image7=flecha,user_image5=micro, user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales )
else:
#return render_template('escuchar_uro.html',nid2=0,faqs=output2,faq_titulo="Preguntas y respuestas: ",result_busqueda=result_busqueda,user_image6=ajustes,user_image7=flecha,user_image5=micro, user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales )
return render_template('buscador_uro.html',faqs=output2,faq_titulo="Preguntas y respuestas: ",result_busqueda=result_busqueda,user_image4=lupa,user_image5=micro,user_image6=ajustes,user_image7=flecha,user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales,nid2=0 )
else :
return render_template('escuchar_uro.html',nid2=0,result_busqueda=result_busqueda,prediction_text="No te he entendido bien, dale al boton `Escuchar´ y repite tu pregunta",user_image5=micro,user_image6=ajustes,user_image7=flecha, user_image8=pdf_casa,user_image9=protocolo_word,user_image10=guia_visual_ppt,user_image11=visualizar_videos,user_image12=materiales )
@app.route("/ajustes")
async def ajustes():
estrella = os.path.join(app.config['UPLOAD_FOLDER'], 'estrella.png')
return render_template('ajustes.html',user_image7=estrella)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860,debug =True)