miércoles, 8 de octubre de 2025

Demanda. Propuesta.


Demanda de evaluación (V)




Elaboración del documento de solicitud

Aunque con algunos cambios respecto lo expuesto en la [entrada anterior] y admitiendo que la formulación de ese script se puede mejorar sustancialmente, damos por concluida esa primera fase del proyecto y nos embarcamos en la segunda: la elaboración del documento de demanda.

Este documento se genera automáticamente a partir de los datos recogidos en la fase anterior y almacenados para su uso posterior en un archivo llamado datos.txt, contenido en el subdirectorio datos (1). 

Opto por elaborar primeramente un documento en formato docx para que pueda se manipulado fácilmente por el profesorado una vez generado su contenido-base (2). Esto requiere trabajar con la biblioteca Python-docx (3). Una vez elaborado ese documento, propongo convertirlo a formato PDF para su tramitación segura (4).

Para el correcto desarrollo de esta fase del proceso se requiere acceder al archivo que contiene los datos (datos.txt) y manipularlo para obtener de él, de forma desglosada, toda la información. Dentro de este procedimiento es necesario convertir lo que son cadenas de caracteres en elementos de lista.

La segunda parte de la fase consiste en recuperar la información de los documentos que contienen los listados de DA, características EA y actuaciones MAD. Estos datos son necesarios para identificar los contenidos que son relevantes para el caso, ya que serán ellos los que consten en el documento (5)

Finalmente, la tercera parte de esta segunda fase es la creación del documento. Para ello necesitamos trabajar con Python-docx, aunque el objetivo es crear un documento simple, por lo que no me detendré en cuestiones de forma y estilo (6).

Paso a continuación a presentar este script.

#Importar bibliotecas

from docx import Document
from docx.shared import Inches

#CARGAR DATOS. Acceder al archivo datos.txt ------------------------------------------------

'''
Acceder al archivo, cargar la información y convertirla en lista.
'''

dir_archivo = 'datos/datos.txt'

archivo = open(dir_archivo,'r',encoding='utf-8')

texto=archivo.readlines()

archivo.close()

#Paso del contenido de cada línea a una variable

al = texto[0].rstrip()
da = texto[1].rstrip()
ea = texto[2].rstrip()
mad = texto[3].rstrip()

#Transformación de cada línea en una lista

datos_al = al.split('|')
datos_da = da.split('|')
datos_ea = ea.split('|')
datos_mad = mad.split('|')

#Extracción de información de datos_al

if datos_al[4] == 'EI':
    etapa = 'Educación Infantil'
else:
    etapa = 'Educación Primaria'

#Extracción de datos de las MAD (datos_mad)

'''
Requiere al acceso previo al documento que recoge estas medidas (ncc/mad.txt)
y la comparación de cada elemento de datos_mad con su contenido
'''

medidas_ap = []

mad_aplicadas = []

dir_datos = 'ncc/mad.txt'

archivo_mad = open(dir_datos,'r',encoding='utf-8')

medidas= archivo_mad.readlines()

for i in range(0,6,1):
    if datos_mad[i] == 'S':
        mad_aplicadas.append(medidas[i].strip())

#Extracción de datos de las DA  y EA observadas (condicionado al nivel escolar)

#Acceso a los documentos

dir_da = ''
dir_ea = ''
lista_da = []
lista_ea =[]

val_nivel = int(al[-1])

if val_nivel == 1:
    dir_da = 'ncc/da_n1.txt'
    dir_ea = 'ncc/ea_a.txt'
elif val_nivel == 2:
    dir_da = 'ncc/da_n2.txt'
    dir_ea = 'ncc/ea_b.txt'
elif val_nivel == 3:
    dir_da = 'ncc/da_n3.txt'
    dir_ea = 'ncc/ea_a.txt'

archivo_da = open(dir_da,'r',encoding='utf-8')

lista_da = archivo_da.readlines()

archivo_ea = open(dir_ea,'r',encoding='utf-8')

lista_ea = archivo_ea.readlines()

# Listado de características DA realmente observadas

caract_da = []

n_da = len(datos_da)

for i in range(0,n_da,1):
    if datos_da[i] == 'S':
        caract_da.append(lista_da[i].strip())

#Listado de características EA realmente observadas

caract_ea = []

n_ea = len(datos_ea)

for i in range(0,n_ea,1):
    if datos_ea[i] == 'S':
        caract_ea.append(lista_ea[i].strip())

#CREAR INFORME. Datos de identificación en formato docx  -------------------------------------

info_deriva = Document()

titulo = 'PROPUESTA DEL EQUIPO DOCENTE  DE SOLICITUD DE EVALUACIÓN PSICOPEDAGÓGICA'

info_deriva.add_heading(titulo, level = 0) #Título del documento

centro_curso = (f'Centro {datos_al[2]} \nCurso escolar {datos_al[3]}') #Datos de identificación

info_deriva.add_heading(centro_curso , level = 2)

dat_per = (f'Alumno/a: {datos_al[0]} {datos_al[1]}')

dat_escol = (f'Etapa y curso: {etapa} ({datos_al[5]})\nTutor/a: {datos_al[7]}')

dat_tut = (f'Fecha de emisión: {datos_al[6]}')

info_deriva.add_heading(dat_per , level = 3)

info_deriva.add_heading(dat_escol , level = 3)

info_deriva.add_heading(dat_tut , level = 3)

presenta = info_deriva.add_paragraph(f'\nMediante este documento el Equipo Educativo solicita al SEO la evaluación psicopedagógica de {datos_al[0]} {datos_al[1]} al observar la presencia de las dificultades de aprendizaje que se indican.\n') #Presentación del documento

medidas = info_deriva.add_paragraph(f'Previamente se informa de las medidas ordinarias de atención a la diversidad adoptadas con anterioridad a la formulación de esta demanda.\n') 

for mad in mad_aplicadas:

    info_deriva.add_paragraph(mad, style='List Bullet')

#Salto de página para crear los listados de las DA y las características EA observadas

info_deriva.add_page_break()

#Escritura de listado DA realmente observadas

info_deriva.add_paragraph('Se enumeran a continuación las dificultades de aprendizaje observadas\n')

for da_ob in caract_da:
    info_deriva.add_paragraph(da_ob, style='List Bullet')

#Escritura de las características (deficiencias) EA realmente observadas

info_deriva.add_paragraph('\nIgualmente se informa de las características del estilo de aprendizaje que se considera motivan la presente demanda de intervención del SEO:\n')

for ea_ob in caract_ea:
    info_deriva.add_paragraph(ea_ob, style='List Bullet')

#Fin y cierre del documento docx

print('FIN DEL SCRIPT DE COMPOSICIÓN DEL DOCUMENTO DE DERIVACIÓN')

info_deriva.save('solicitud.docx') # Cierre del documento docx

Espero que la aclaración que precede al script y los comentarios que éste contiene te sirvan para comprender su lógica y las instrucciones empleadas.

Cuando el procedimiento esté completo aportaré la documentación necesaria, de momento te propongo que estudies este script y manipules sus partes para entender cómo funciona. Para ello te aporto los documentos necesarios, incluyendo un ficticio datos.txt. Están disponibles en este [archivo zip].


NOTAS

(1) No era la única opción disponible y en cierto sentido puede resultar menos eficiente que otras, pero me ha parecido adecuada para facilitar la diferenciación de los dos subprocesos y aligerar de extensión y complejidad el script en el que he estado trabajando hasta ahora.
(2) Que es el que crea automáticamente el script anterior.
(3) Ver subsección del mismo nombre en la sección [Textos]
(4) En su momento trataré con más detalle estas cuestiones de procedimiento. De momento decir que esa última manipulación se realiza mediante la utilidad de conversión disponible en Word y en Writer. Como ya sabemos, aunque se cree un documento docx, es posible trabajar con él mediante Writer, incluyendo la posibilidad de exportar a formato PDF.
(5) Al contrario de la formulación de los soportes de las Administraciones educativas, los recursos de programación que empleamos y los script resultantes nos permiten identificar qué es lo relevante del caso y qué no lo es. No parece lógico renunciar a esta ventaja y reproducir fórmulas que son propias de modelos tipo formulario.
(6) Aun queda una última parte: la conversión del documento .docx en .pdf; pero no la considero relevante para esta exposición, como tampoco lo es la posible modificación que pueda realizar el profesorado del documento creado, opción disponible precisamente por crear el documento en un formato editable y accesible para los procesadores de texto de uso más común.

No hay comentarios:

Publicar un comentario

Comenta esta entrada