Skip to content

Commit

Permalink
feat(mpi): implementa paquete georeference
Browse files Browse the repository at this point in the history
reemplaza actuales funciones por el nuevo paquete @andes/georeference. Elimina del package librerias que quedan en desuso como consecuencia de esto
  • Loading branch information
negro89 authored and condorpiedra committed Jun 9, 2020
1 parent d51e9ac commit 4fb7c92
Show file tree
Hide file tree
Showing 10 changed files with 45 additions and 173 deletions.
5 changes: 3 additions & 2 deletions config.private.ts.example
Original file line number Diff line number Diff line change
Expand Up @@ -158,12 +158,13 @@ export const farmaciasEndpoints = {
turnos: 'http://181.231.9.13/lawen/turnos.aspx'
};

// Auth servicio geonode para capa de barrios
// Auth servicio geonode para georeferencia
export const geoNode = {
auth: {
user: '',
password: ''
}
},
host: ''
};

// Endpoints envio de SMS
Expand Down
6 changes: 0 additions & 6 deletions config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -185,12 +185,6 @@ export const modules = {
route: '/modules/vacunas',
middleware: appMiddleware
},
geonode: {
active: true,
path: './modules/geonode/routes',
route: '/modules/geonode',
middleware: appMiddleware
},
georeferencia: {
active: true,
path: './modules/georeferencia/routes',
Expand Down
34 changes: 15 additions & 19 deletions core/mpi/controller/paciente.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ import { RenaperConfig } from '../../../modules/fuentesAutenticas/interfaces';
import { renaper as renaConfig } from '../../../config.private';
const regtest = /[^a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ ']+/;
import * as configPrivate from '../../../config.private';
import { getServicioGeonode } from '../../../utils/servicioGeonode';
import { getGeoreferencia } from '../../../utils/serviciosGeoreferencia';
import { geoReferenciar, getBarrio } from '@andes/georeference';
import * as Barrio from '../../tm/schemas/barrio';
import { log as andesLog } from '@andes/log';
import { logKeys } from '../../../config';
Expand Down Expand Up @@ -833,25 +832,22 @@ export async function actualizarGeoReferencia(dataPaciente, req) {
let pacienteOriginal = dataPaciente;
// (valores de direccion fueron modificados): están completos?
if (dataPaciente.direccion[0].valor && dataPaciente.direccion[0].ubicacion.localidad && dataPaciente.direccion[0].ubicacion.provincia) {
// si el paciente no fue georeferenciado
if (!dataPaciente.direccion[0].georeferencia) {
let dir = dataPaciente.direccion[0].valor + ', ' + dataPaciente.direccion[0].ubicacion.localidad.nombre + ', ' + dataPaciente.direccion[0].ubicacion.provincia.nombre;
const geoRef: any = await getGeoreferencia(dir);
// georeferencia exitosa?
if (geoRef && geoRef.lat) {
dataPaciente.direccion[0].geoReferencia = [geoRef.lat, geoRef.lng];
let nombreBarrio = await getServicioGeonode(dataPaciente.direccion[0].geoReferencia);
// consulta exitosa?
if (nombreBarrio) {
const barrioPaciente = await Barrio.findOne().where('nombre').equals(RegExp('^.*' + nombreBarrio + '.*$', 'i'));
if (barrioPaciente) {
dataPaciente.direccion[0].ubicacion.barrio = barrioPaciente;
}
let dir = dataPaciente.direccion[0].valor + ', ' + dataPaciente.direccion[0].ubicacion.localidad.nombre + ', ' + dataPaciente.direccion[0].ubicacion.provincia.nombre;
const geoRef: any = await geoReferenciar(dir, configPrivate.geoKey);
// georeferencia exitosa?
if (geoRef && Object.keys(geoRef).length) {
dataPaciente.direccion[0].geoReferencia = [geoRef.lat, geoRef.lng];
let nombreBarrio = await getBarrio(geoRef, configPrivate.geoNode.host, configPrivate.geoNode.auth.user, configPrivate.geoNode.auth.password);
// consulta exitosa?
if (nombreBarrio) {
const barrioPaciente = await Barrio.findOne().where('nombre').equals(RegExp('^.*' + nombreBarrio + '.*$', 'i'));
if (barrioPaciente) {
dataPaciente.direccion[0].ubicacion.barrio = barrioPaciente;
}
} else {
dataPaciente.direccion[0].geoReferencia = null;
dataPaciente.direccion[0].ubicacion.barrio = null;
}
} else {
dataPaciente.direccion[0].geoReferencia = null;
dataPaciente.direccion[0].ubicacion.barrio = null;
}
if (req) {
// se guardan los datos
Expand Down
10 changes: 7 additions & 3 deletions core/mpi/routes/paciente.ts
Original file line number Diff line number Diff line change
Expand Up @@ -385,9 +385,13 @@ router.put('/pacientes/:id', async (req, res, next) => {
}
let pacienteUpdated = await controller.updatePaciente(patientFound, data, req);
res.json(pacienteUpdated);
// si el paciente esta validado y hay cambios en direccion o localidad..
if (patientFound.estado === 'validado' && data.direccion && direccionOld.valor !== data.direccion[0].valor) {
controller.actualizarGeoReferencia(pacienteUpdated, req);
// si el paciente esta validado y hay cambios en la direccion
if (patientFound.estado === 'validado') {
if (data.direccion && JSON.stringify(data.direccion[0].geoReferencia) === JSON.stringify(direccionOld.geoReferencia)) {
if (data.direccion[0].valor !== direccionOld.valor) {
controller.actualizarGeoReferencia(pacienteUpdated, req);
}
}
}
}
} else {
Expand Down
19 changes: 0 additions & 19 deletions modules/geonode/routes/geonode.ts

This file was deleted.

13 changes: 9 additions & 4 deletions modules/georeferencia/routes/georeferencia.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
import * as express from 'express';
import { getGeoreferencia, autocompletar } from '../../../utils/serviciosGeoreferencia';
import { geoReferenciar, autocompletarDireccion } from '@andes/georeference';
import { geoKey } from '../../../config.private';

const router = express.Router();

router.get('/georeferenciar', async (req, res, next) => {
if (req.query.direccion) {
try {
const resultado: any = await getGeoreferencia(req.query.direccion);
res.json(resultado);
const resultado: any = await geoReferenciar(req.query.direccion, geoKey);
if (resultado) {
res.json(resultado);
} else {
res.json({});
}
} catch (err) {
return next(err);
}
Expand All @@ -19,7 +24,7 @@ router.get('/georeferenciar', async (req, res, next) => {
router.get('/autocompletar/', async (req, res, next) => {
if (req.query.texto) {
try {
const resultado: any = await autocompletar(req.query.texto);
const resultado: any = await autocompletarDireccion(req.query.texto, geoKey);
res.json(resultado);
} catch (err) {
return next(err);
Expand Down
14 changes: 9 additions & 5 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 2 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"@andes/event-bus": "file:packages/event-bus",
"@andes/fhir": "^1.2.0",
"@andes/fuentes-autenticas": "^1.0.2",
"@andes/georeference": "^1.0.2",
"@andes/log": "^1.1.5",
"@andes/match": "^1.1.12",
"@andes/mongoose-plugin-audit": "^1.1.0",
Expand All @@ -21,7 +22,6 @@
"@types/express": "^4.0.35",
"@types/google-maps": "^3.2.0",
"@types/node-sass": "^3.10.32",
"@types/proj4": "^2.3.4",
"@types/ws": "^3.0.2",
"aggregate-error": "^1.0.0",
"apg": "^3.1.1",
Expand Down Expand Up @@ -65,7 +65,6 @@
"passport-jwt": "^4.0.0",
"pdfkit": "^0.9.0",
"phantomjs-prebuilt-that-works": "^3.0.1",
"proj4": "^2.5.0",
"request": "^2.83.0",
"require-dir": "^0.3.0",
"sha1": "^1.1.1",
Expand Down Expand Up @@ -151,4 +150,4 @@
"tslint": "^5.11.0",
"tslint-eslint-rules": "^5.3.1"
}
}
}
42 changes: 0 additions & 42 deletions utils/servicioGeonode.ts

This file was deleted.

70 changes: 0 additions & 70 deletions utils/serviciosGeoreferencia.ts

This file was deleted.

0 comments on commit 4fb7c92

Please sign in to comment.