Spaces:
Runtime error
Runtime error
| 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 | |
| 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) | |
| 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) | |
| 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) | |
| 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 ) | |
| 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 ) | |
| 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) | |
| 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) | |
| 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) | |
| 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) | |
| 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) | |
| 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 ) | |
| 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 ) | |
| 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 ) | |
| 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) | |
| 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) | |
| 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) | |
| 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) | |
| 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) | |
| 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 ) | |
| 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 ) | |
| 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 ) | |
| 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) | |
| 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) | |
| 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) | |
| 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) | |
| 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) | |
| 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 ) | |
| 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 ) | |
| 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) | |