Skip to content
scrollif edited this page Jun 19, 2017 · 16 revisions

A Tu Servicio

Sistema para visualización de datos del Sistema Nacional Integrado de Salud desarrollada por DATA en convenio con la DGSNIS del Ministerio de Salud Pública con el apoyo de la Iniciativa Latinoamericana por los Datos Abiertos ILDA

Requisitos

  1. Postgresql
    • Servidor - instalación
    • Instalar libreria de desarrollo apt-get -y install libpq-dev
  2. Ruby 2.2.4
  3. Bundle
    • gem install bundler --conservative
  4. NodeJS
    • apt get install -y nodejs npm

Instalación

  1. git clone https://github.com/idatosabiertos/ATuServicio.git
  2. cd ATuServicio
  3. bundle install
  4. Levantar base de datos (postgres) e insertar datos (2014-2017) rake db:create db:migrate importer:all[year]
  5. bundle exec puma -C config/puma.rb
  6. Navegar a http://localhost:3000

Vagrant /vagrant

Previamente debe haber instalado Vagrant y VirtualBox.

  1. git clone https://github.com/idatosabiertos/ATuServicio.git
  2. cd ATuServicio/vagrant
  3. vagrant up // levanta una maquina virtual con todas las dependencias, configuraciones necesarias e instala la aplicación.
  4. Navegar a http://localhost:8080 en la maquina host.

Variables de Ambiente

Servidor PUMA, más info

  • PORT - en caso de no setearse levantará en el puerto 3000.
  • WEB_CONCURRENCY - en caso de no setearse su valor por defecto es 2.
  • MAX_THREADS - en caso de no setearse su valor por defecto es 5.

Producción RACK_ENV=production (por defecto su modo es development)

  • ATUSERVICIO_DB - nombre de la base de datos.
  • ATUSERVICIO_DB_USER - nombre de usuario del servidor de base de datos.
  • ATUSERVICIO_DB_PASSWORD- nombre de usuario del servidor de base de datos.
  • ATUSERVICIO_DB_HOST - nombre o IP del host donde se encuentra el servidor de base de datos.

Diagrama de base de datos /db/schema.rb

alt text

### Provider
Esta tabla hace referencia al Proveedor de servicio de salud (Ej: ASSE, Española, Casmu, etc).

### Sites
Esta tabla contiene las sucursales de cada proveedor de salud.

### States
Esta tabla contiene los departamentos de Uruguay, que corresponden con la ubicación de cada sucursal.

## Provider Maximus 
Esta tabla contiene los valores máximos de cada proveedor para poder compararlos en la página de inicio.

Datos

Los datos utilizados son extraídos anualmente del catálogo de datos abiertos de Uruguay. Por más información acerca del significado de cada indicador revise la guía metodológica.

Archivos CSV

  1. estructura.csv Datos de estructura de los proveedores. Se usa para importar proveedores (ASSE, Española, Casmu, etc.), se mapean al objeto Provider.
  2. sedes.csv Datos de sedes (id, dirección, departamento, localildad, nivel, servicios), se mapean al objeto Site.
  3. metas.csv Metas asistenciales (porcentaje de afiliados, etc.). Datos que se agregan al objeto Provider.
  4. precios.csv Precios de tickets para medicamentos, consultas, demás. Datos que se agregan al objeto Provider.
  5. tiempos_espera.csv Tiempos de espera. Datos que se agregan al objeto Provider.
  6. satisfaccion_derechos.csv Satisfacción de derechos de usuario (conformidad con disponiblidad, evaluación de tiempos de espera, etc.). Datos que se agregan al objeto Provider.
  7. rrhh.csv Recursos Humanos, cargos de médicos generales, de familia, etc. Datos que se agregan al objeto Provider.
  8. solicitud_consultas.csv Solicitud de consultas (reserva presencial, telefónica, web). Datos que se agregan al objeto Provider.

Mapeo CSV - base de datos

En /config/metadata.yml encontramos el mapeo de las columnas de cada CSV a su tabla correspondiente en la base de datos, en donde por cada archivo se tiene:

  • title - Nombre del archivo CSV (Ejemplo: "Estructura", "Metas Asistenciales").
  • description - Nombre de la columna en el CSV.
  • columns - Nombre de la columna en el objeto (y la BD).
  • definition - Los tipos de cada columna (text, boolean, decimal, etc).

Importando los datos

En el directorio lib/ del proyecto hay un script convert.sh que convierte todos los archivos CSV de su encoding a utf-8 para Ruby. A su vez, es importante tener cuidado con las comas y/o punto y comas que se utilicen en especial en separadores de columna y decimales.

Migración de datos

Los archivos CSV utilizados por cada año se encuentran almacenados en /db/data, así como los scripts de migración usados para contemplar los cambios en dichos datos por cada año estan en /db/migrate.

Logos para cada proveedor de salud

Los logos deben ir en el directorio app/assets/images/logos con el siguiente formato de nombre:

"#{provider.id}-solo-letras-minusculas.png"

Archivos PNG nombre sólo letras (sin acentos ni símbolos) y separado del ID de proveedor (por practicidad). Ej: 1062-circulo-catolico.png

Dependencias

ATuServicio usa código fuente de los siguientes proyectos:

jQuery JavaScript Library

http://jquery.com/

Includes Sizzle.js
http://sizzlejs.com/

Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
Released under the MIT license
http://jquery.org/license

jQuery UI Core

http://jqueryui.com

Copyright jQuery Foundation and other contributors
Released under the MIT license.
http://jquery.org/license

http://api.jqueryui.com/category/ui-core/

jQuery UI Widget

Copyright jQuery Foundation and other contributors
Released under the MIT license.
http://jquery.org/license

http://api.jqueryui.com/jQuery.widget/

jQuery UI Position

http://jqueryui.com

Copyright jQuery Foundation and other contributors
Released under the MIT license.
http://jquery.org/license

http://api.jqueryui.com/position/

jQuery UI Menu

http://jqueryui.com

Copyright jQuery Foundation and other contributors
Released under the MIT license.
http://jquery.org/license

http://api.jqueryui.com/menu/

jQuery UI Autocomplete

http://jqueryui.com

Copyright jQuery Foundation and other contributors
Released under the MIT license.
http://jquery.org/license

http://api.jqueryui.com/autocomplete/

Intro.js

https://github.com/usablica/intro.js

MIT licensed

Copyright (C) 2013 usabli.ca - A weekend project by Afshin Mehrabani (@afshinmeh)

Bootstrap v3.3.6

http://getbootstrap.com

Copyright 2011-2015 Twitter, Inc.
Licensed under the MIT license

Sizzle CSS Selector Engine

http://sizzlejs.com/

Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors
Released under the MIT license
http://jquery.org/license

Integración continua

ATuServicio utiliza Travis CI, integración continua para corroborar que el proyecto se construye correctamente en cada push.