ivansaldivar / proyectoFichaResidencial

Ficha Residencial digital en línea que utilizarán las residencias que reciben financiamiento del SENAME
0 stars 0 forks source link

Diseño y desarrollo de Servicio Web para recibir las observaciones de los Jueces (Poder Judicial). #39

Open julioparra1518 opened 6 years ago

julioparra1518 commented 6 years ago

fecha inicio: 00-00-2018 fecha término: 00-00-2018 ID tarea planilla: 20

[Etapa 2: Desarrollo de Formulario para visualizar y responder observaciones de los Jueces y Servicio Web]

julioparra1518 commented 6 years ago

Para continuar con el desarrollo es necesario definir la forma de envío o recepción de los datos desde el PJUD. Esta información corresponde con las observaciones y evaluaciones emitidas por los jueces a la versión de la Ficha Residencial presentada por el Director de la Residencia.

En tal sentido se proponen dos opciones:

1.) Web Service Sename: En este caso corresponde realizar un Servicio Web de recepción de la información, en el cual se exponen los métodos a ser consumidos por el PJUD para enviar la información solicitada. 2.) Web Service PJUD: Si se elije esta opción el PJUD es quien realiza el Servicio Web y el Sename lo consume para cargar la información en las tablas de la Ficha Residencial.

Esta información seria principalmente la versión del Juez de la Ficha Residencial, agregando la evaluación y observaciones considerando en ambos casos que se debe incluir el CodFicha enviado en el primer Web Service (funcionando en producción) ya que con este se identifica la versión de la ficha que fue consumida inicialmente y a la cual le están realizando observaciones.

En el siguiente diagrama de procesos se destaca la etapa en la cual se encuentra este Web Service:

image

julioparra1518 commented 6 years ago

Proceso para recibir información desde el PJUD (Observaciones) y distribuirlo en las tablas para iniciar la Gestión.

proceso observaciones

julioparra1518 commented 6 years ago

Se crea un procedimiento almacenado para hacer la inserción y distribución de registros en las tablas asociadas a la Ficha Residencial.

[FichaRes].[InsertObservacionesPjud]

  1. ENTRADA:

        @abnSistFem INT, --GENERALES
        @abnSistMas INT,--GENERALES
        @accesoAgua INT,--INFRAESTRUCTURA
        @accesoDisca INT,--INFRAESTRUCTURA
        @accesoInternet INT,--EDUCACION
        @adolEmbarazada INT,--SALUD
        @adolNegControl INT, --SALUD
        @almaceAlimento INT, --ALIMENTACION
        @alumnPracHor INT,--PERSONAL
        @alumnPracJor INT,--PERSONAL
        @ambienPoblac INT,--INFRAESTRUCTURA
        @apoyoAdmHor INT,--PERSONAL
        @apoyoAdmJor INT, --PERSONAL
        @apoyoVolunHor INT,--PERSONAL
        @apoyoVolunJor INT,--PERSONAL
        @asistSocHor INT,--PERSONAL
        @asistSocJor INT,--PERSONAL
        @autocuidado INT,--RESIDENCIA
        @auxEnferHor INT,--PERSONAL
        @auxEnferJor INT,--PERSONAL
        @cantAlumnPrac INT, --PERSONAL
        @cantApoyoAdm INT, --PERSONAL
        @cantApoyoVolun INT, --PERSONAL
        @cantAreasVerd INT, --INFRAESTRUCTURA
        @cantAsitSocial INT,--PERSONAL
        @cantAuxEnfer INT, --PERSONAL
        @cantBanosNna INT, --INFRAESTRUCTURA
        @cantBanosPubl INT, --INFRAESTRUCTURA
        @cantCamasNna INT,--INFRAESTRUCTURA
        @cantClosetLoc INT, --INFRAESTRUCTURA
        @cantCocinaOp INT, --INFRAESTRUCTURA
        @cantComedorOp INT, --INFRAESTRUCTURA
        @cantDir INT, --PERSONAL
        @cantDormNna INT, --INFRAESTRUCTURA
        @cantDuchasNna INT, --INFRAESTRUCTURA
        @cantEduTratDir INT, --PERSONAL
        @cantEducadParv INT,--PERSONAL
        @cantEnfer INT, --PERSONAL
        @cantEnfermOp INT, --INFRAESTRUCTURA
        @cantEspacRecr INT, --INFRAESTRUCTURA
        @cantEspacVisit INT, --INFRAESTRUCTURA
        @cantFonoAud INT, --PERSONAL
        @cantKine INT, --PERSONAL
        @cantLavanOp INT, --INFRAESTRUCTURA
        @cantManipAlim INT, --PERSONAL
        @cantMedico INT, --PERSONAL
        @cantMonitAll INT, --PERSONAL
        @cantNutri INT, --PERSONAL
        @cantOficAdm INT, --INFRAESTRUCTURA
        @cantOtrosOp INT, --PERSONAL
        @cantPersLav INT, --PERSONAL
        @cantPersLicMed INT, --PERSONAL
        @cantPersSupl INT, --PERSONAL
        @cantPersonalAseo INT, --PERSONAL
        @cantProfEd INT, --PERSONAL
        @cantPsico INT, --PERSONAL
        @cantPsicop INT, --PERSONAL
        @cantPsiqui INT,--PERSONAL
        @cantSalaEstar INT, --INFRAESTRUCTURA
        @cantSalaMulti INT, --INFRAESTRUCTURA
        @cantSalaRecep INT, --INFRAESTRUCTURA
        @cantSalaReun INT, --INFRAESTRUCTURA
        @cantTerapOcup INT,--PERSONAL 
        @capPersonal INT, --SEGURIDAD
        @catRedes INT, --RESIDENCIA
        @certiSanitario INT, --ALIMENTACION
        @codCorte INT,--INFORME VISITA
        @codTribunal INT, --INFORME VISITA
        @computadores INT, --EDUCACION
        @controlAdol INT, --SALUD
        @controlMedicDias INT, --SALUD
        @crrConsejeroVisitante VARCHAR(MAX), --CONSEJERO PJUD
        @crrJuezVisitante VARCHAR(MAX), --JUEZ PJUD
        @ctnLitigante VARCHAR(MAX),--DETALLE DE ADOLESCENTES CON HIJOS LACTANTES
        @ctnLitiganteNna VARCHAR(MAX),--DETALLE DE NNA ENTREVISTADOS POR EL JUEZ
        @ctnLitiganteTot VARCHAR(MAX),--DETALLE DE NNA EN COMPLETO ABANDONO
        @cuentaConProt INT, --SALUD
        @cuentaConRegist INT,--SALUD
        @dirOpHor INT, --PERSONAL
        @dirOpJor INT, --PERSONAL
        @eduTratDirHor INT, --PERSONAL
        @eduTratDirJor INT, --PERSONAL
        @educadParvHor INT, --PERSONAL
        @educadParvJor INT, --PERSONAL
        @enferOpHor INT, --PERSONAL
        @enferOpJor INT, --PERSONAL
        @entregAlimento INT, --ALIMENTACION 
        @espDesaTareas INT, --EDUCACION
        @estadoGas INT, --INFRAESTRUCTURA
        @evalUno INT, --EDUCACION (ESPACIO TAREAS)
        @evalDos INT, --EDUCACION (MATERIAL BIBLIOGRAFICO)
        @evalTres INT, --EDUCACION (COMPUTADORES)
        @evalCuatro INT, --EDUCACION (ACCESO INTERNET)
        @evalAccesAgua INT, --INFRAESTRUCTURA
        @evalAccesDisc INT, --INFRAESTRUCTURA
        @evalAlimPobl INT, --INFRAESTRUCTURA
        @evalAreasVerd INT,--INFRAESTRUCTURA 
        @evalBanosNna INT, --INFRAESTRUCTURA
        @evalBanosPubl INT, --INFRAESTRUCTURA
        @evalCamasNna INT, --INFRAESTRUCTURA
        @evalClosetLoc INT, --INFRAESTRUCTURA
        @evalCocinaOp INT, --INFRAESTRUCTURA
        @evalComedorOp INT, --INFRAESTRUCTURA
        @evalDormNna INT, --INFRAESTRUCTURA
        @evalDuchasNna INT, --INFRAESTRUCTURA
        @evalEnfermOp INT, --INFRAESTRUCTURA
        @evalEspacRecr INT, --INFRAESTRUCTURA
        @evalEspacVisit INT, --INFRAESTRUCTURA
        @evalEstCalef INT, --INFRAESTRUCTURA
        @evalInstHab INT, --INFRAESTRUCTURA
        @evalLavanOp INT, --INFRAESTRUCTURA
        @evalOficAdm INT, --INFRAESTRUCTURA
        @evalSalaEstar INT, --INFRAESTRUCTURA
        @evalSalaMulti INT, --INFRAESTRUCTURA
        @evalSalaRecep INT, --INFRAESTRUCTURA
        @evalSalaReun INT, --INFRAESTRUCTURA
        @evalSistCalef INT, --INFRAESTRUCTURA
        @evalUtilAseo INT, --INFRAESTRUCTURA
        @evalVentAdec INT, --INFRAESTRUCTURA
        @evalVestAdec INT, --INFRAESTRUCTURA
        @extintores INT, --SEGURIDAD
        @fecVisitaActual DATETIME, --INFORME VISITA
        @fecVisitaAnterior DATETIME, --INFORME VISITA
        @fonoOpHor INT, --PERSONAL
        @fonoOpJor INT, --PERSONAL
        @glsObsAntecAlim VARCHAR(MAX), --ALIMENTACION
        @glsObsAntecCap VARCHAR(MAX), --GENERALES y POBLACION
        @glsObsAntecEduc VARCHAR(MAX), --EDUCACION
        @glsObsAntecMat VARCHAR(MAX), --INFRAESTRUCTURA
        @glsObsAntecPer VARCHAR(MAX), --PERSONAL
        @glsObsAntecPob VARCHAR(MAX),--POBLACION
        @glsObsAntecRes VARCHAR(MAX),--RESIDENCIA 
        @glsObsAntecSalud VARCHAR(MAX), --SALUD
        @glsObsAntecSegur VARCHAR(MAX),--SEGURIDAD
        @glsPersonaResidenciaUno VARCHAR(MAX), --INFORME VISITA
        @glsPersonaResidenciaDos VARCHAR(MAX), --INFORME VISITA
        @habilLaboral INT, --RESIDENCIA
        @horaFinVisita VARCHAR(MAX), --INFORME VISITA
        @horaInicioVisita VARCHAR(MAX), --INFORME VISITA
        @hospFem INT, --GENERALES
        @hospMas INT, --GENERALES
        @instalaciones INT, --INFRAESTRUCTURA
        @kineOpHor INT, --PERSONAL
        @kineOpJor INT, --PERSONAL
        @manipAlimHor INT, --PERSONAL
        @manipAlimJor INT, --PERSONAL
        @matBiblio INT, --EDUCACION
        @medOpHor INT, --PERSONAL
        @medOpJor INT, --PERSONAL
        @menuBalanceado INT, --ALIMENTACION
        @menuEspecial INT, --ALIMENTACION 
        @montTallHor INT, --PERSONAL
        @montTallJor INT, --PERSONAL
        @ninoAbnFem INT, --GENERALES
        @ninoAbnMas INT, --GENERALEs
        @ninoIngFem INT, --GENERALES 
        @ninoIngMas INT, --GENERALES
        @ninoSinSenFem INT, --GENERALES
        @ninoSinSenMas INT, --GENERALES
        @ninoSuspFem INT, --GENERALES
        @ninoSuspMas INT,--GENERALES
        @nnaAcerFem INT, --GENERALES
        @nnaAcerMas INT,--GENERALES
        @nnaAdopFem INT, --GENERALES
        @nnaAdopMas INT, --GENERALES
        @nnaFem INT, --GENERALES
        @nnaJuez INT, --RESIDENCIA
        @nnaMas INT, --GENERALES
        @nnaReservada INT, --RESIDENCIA
        @numAsistEducEspec INT, --EDUCACION
        @numAsistEducNivel INT, --EDUCACION
        @numAsistEstable INT, --EDUCACION
        @numCesfam INT, --SALUD
        @numComidaEntreFin INT, --ALIMENTACION
        @numComidaEntreSem INT, --ALIMENTACION
        @numDiscapacidad INT, --SALUD
        @numDrogas INT, --SALUD
        @numEnferCronica INT, --SALUD
        @numMatriCance INT, --EDUCACION
        @numMentalConDiag INT, --SALUD
        @numMentalSinDiag INT, --SALUD
        @numNoAsistEstable INT, --EDUCACION
        @numRecibMedic INT, --SALUD
        @numRetEscolar INT, --EDUACION
        @numSaludTrat INT, --SALUD
        @nutriOpHor INT, --PERSONAL
        @nutriOpJor INT, --PERSONAL
        @obsGenDes VARCHAR(MAX),--FICHA
        @otraPlazaFem INT, --GENERALES
        @otraPlazaMas INT, --GENERALES
        @otrosOpHor INT, --PERSONAL
        @otrosOpJor INT, --PERSONAL
        @persLavHor INT, --PERSONAL
        @persLavJor INT, --PERSONAL
        @persLicMedHor INT, --PERSONAL
        @persLicMedJor INT, --PERSONAL
        @persSuplHor INT, --PERSONAL
        @persSuplJor INT, --PERSONAL
        @personalAseoHora INT, --PERSONAL
        @personalAseoJor INT, --PERSONAL
        @plaSenameFem INT, --GENERALES
        @plaSenameMas INT, --GENERALES
        @planEmergencia INT, --SEGURIDAD
        @planEmergenciaCal INT, --SEGURIDAD
        @planiMenu INT, --ALIMENTACION
        @pobVigenteFem INT, --GENERALES
        @pobVigenteMas INT, --GENERALES
        @procInformacion INT, --RESIDENCIA
        @profEdHor INT, --PERSONAL
        @profEdJor INT, --PERSONAL
        @protocoloAcogida INT, --RESIDENCIA
        @protocoloActuacion INT, --RESIDENCIA
        @protocoloApadri INT, --RESIDENCIA
        @protocoloConvivencia INT, --RESIDENCIA
        @protocoloDerivRes INT, --RESIDENCIA
        @protocoloEgreso INT, --RESIDENCIA
        @protocoloEspacios INT, --RESIDENCIA
        @protocoloInformacion INT, --RESIDENCIA
        @protocoloReclamos INT, --RESIDENCIA
        @protocoloRedSalud INT, --RESIDENCIA
        @protocoloRegistro INT, --RESIDENCIA
        @psicOpHor INT, --PERSONAL
        @psicOpJor INT, --PERSONAL
    @psicopOpHor INT,--PERSONAL
        @psicopOpJor INT,--PERSONAL
        @psiqOpHor INT, --PERSONAL
        @psiqOpJor INT,--PERSONAL
        @rangoEtaAtencion INT, --POBLACION
        @rangoEtaPredominante INT, --POBLACION
        @recNacidoFem INT, --GENERALES
        @recNacidoMas INT, --GENERALES
        @resMayFem INT, --GENERALES
        @resMayMas INT, --GENERALES
        @residenciaSuvSename INT, --POBLACION
        @sanDesFum INT, --SEGURIDAD
        @senaletica INT, --SEGURIDAD
        @sexo INT, --POBLACION
        @simulEmergencia INT, --SEGURIDAD
        @sistElectrico INT, --SEGURIDAD
        @sisteCalefac INT, --INFRAESTRUCTURA
        @sugResidencia VARCHAR(MAX), --FICHA
        @sugSename VARCHAR(MAX), --FICHA
        @terapOcupHor INT, --PERSONAL
        @terapOcupJor INT, --PERSONAL
        @tipVulFrecuente VARCHAR(MAX), --POBLACION
        @utilesAseo INT, --INFRAESTRUCTURA
        @ventiAdecua INT,--INFRAESTRUCTURA
        @vestAdecuado INT, --INFRAESTRUCTURA
        @viaEvacuacion INT, --SEGURIDAD
        @vinculacionResi INT,--RESIDENCIA
        @zonaSeguridad INT,--SEGURIDAD
        @codFichaPadre INT, --FICHA
        @codFichaPjud INT,--FICHA
    @RutJuez VARCHAR(11),--JUEZ PJUD
    @RutConsejero VARCHAR(11)--CONSEJERO PJUD
  2. SALIDA: Estatus: (Posibilidades): Guardado Correcto:

    - '<ESTATUS><CODIGO>1</CODIGO><GLOSA>DATOS ALMACENADOS CORRECTAMENTE</GLOSA></ESTATUS>'

    Error al insertar:

    -'<ESTATUS><CODIGO>2</CODIGO><GLOSA>SE HA PRODUCIDO UNA EXCEPCION. ERROR: ('+CAST(@@ERROR AS varchar(10))+'), ETAPAS PROCESADAS: ('+@ETAPAS_PROCESADAS+')</GLOSA></ESTATUS>'

    Error de nivel superior en SQL

    -'<ESTATUS><CODIGO>3</CODIGO><GLOSA>SE HA PRODUCIDO UN ERROR. ERROR_PROCEDURE: ('+ERROR_PROCEDURE()+'), ERROR_NUMBER: ('+CAST(ERROR_NUMBER() AS varchar(10))+'), ERROR_MESSAGE: ('+ERROR_MESSAGE()+'), ERROR_LINE: ('+CAST(ERROR_LINE() AS varchar(10))+')</GLOSA></ESTATUS>'
julioparra1518 commented 6 years ago

Asociado a las clases de la Ficha Residencial se crea una nueva para gestionar la inserción de las observaciones y evaluaciones del PJUD.

Nueva Clase: ObservacionesFichaResidencialDao Método: GrabarObservacionesPjud (recibe como parámetro los mismos campos de la entrada del procedimiento almacenado descrito anteriormente)

Desde este método se gestiona la salida en formato XML para que sea mostrada vía Web Service par informar si se hizo de forma correcta

sb.Append("FICHA_RESIDENCIAL_PJUDxmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>");
sb.Append((string)dr["Estatus"]);
sb.Append("</FICHA_RESIDENCIAL_PJUD>");

o por el contrario, si hubo un error.

sb.Append("<FICHA_RESIDENCIAL_PJUD xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>");
sb.Append("<ESTATUS><CODIGO>4</CODIGO><GLOSA>" + e.Message + "</GLOSA></ESTATUS>");
sb.Append("</FICHA_RESIDENCIAL_PJUD>");
julioparra1518 commented 6 years ago

En el Web Service se hace un método de tipo XML que recibe los parámetros y valida que estén correctos antes de pasarlos a la clase y sean insertados en las tablas.

public System.Xml.XmlDocument IngresoFichaCentroResidencial

Si están correctos se mostrara la glosa con los estatus presentados arriba, dependiendo si se hizo de forma correcta o si detecto un error a nivel de SQL o de la libreria de clases

Si no están correctos se observara lo siguiente:

"<FICHA_RESIDENCIAL_PJUD xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>"+
"<ESTATUS><CODIGO>5</CODIGO><GLOSA>" + salida + "</GLOSA></ESTATUS>"+
"</FICHA_RESIDENCIAL_PJUD>"

Si ocurre un error del sistema se muestra el siguiente mensaje:

"<FICHA_RESIDENCIAL_PJUD xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>" +
"<ESTATUS><CODIGO>6</CODIGO><GLOSA>" + e.Message + "</GLOSA></ESTATUS>" +
"</FICHA_RESIDENCIAL_PJUD>"