Skip to content

Commit

Permalink
feat(COM): incluye traslados especiales
Browse files Browse the repository at this point in the history
  • Loading branch information
plammel authored and sychus committed Feb 8, 2021
1 parent c5ab22f commit e669ee5
Show file tree
Hide file tree
Showing 9 changed files with 82 additions and 12 deletions.
5 changes: 5 additions & 0 deletions core/tm/routes/organizacion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import { Auth } from '../../../auth/auth.class';
import { AuthUsers } from '../../../auth/schemas/authUsers';
import * as CamasController from '../../../modules/rup/internacion/camas.controller';
import { validarOrganizacionSisa, obtenerOfertaPrestacional, addSector, changeSector, deleteSector, getConfiguracion } from '../controller/organizacion';
import { Types } from 'mongoose';

const GeoJSON = require('geojson');
const router = express.Router();

Expand Down Expand Up @@ -157,6 +159,9 @@ router.get('/organizaciones', async (req, res, next) => {
if (req.query.esCOM) {
filtros['esCOM'] = req.query.esCOM;
}
if (req.query.trasladosEspeciales) {
filtros['trasladosEspeciales._id'] = Types.ObjectId(req.query.trasladosEspeciales);
}
if (req.query.cuie) {
filtros['codigo.cuie'] = req.query.cuie;
}
Expand Down
4 changes: 3 additions & 1 deletion core/tm/schemas/organizacion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { SnomedConcept } from '../../../modules/rup/schemas/snomed-concept';
import { AuditPlugin } from '@andes/mongoose-plugin-audit';
import { tipoPrestacionSchema } from './tipoPrestacion';
import { IOrganizacion } from '../interfaces/IOrganizacion';
import { TipoTrasladoSchema } from '../../../modules/centroOperativoMedico/schemas/tipoTraslado.schema';

export let MapaSectoresSchema = new Schema({
tipoSector: SnomedConcept,
Expand Down Expand Up @@ -60,7 +61,8 @@ const _schema = new Schema({
configuraciones: SchemaTypes.Mixed,
ofertaPrestacional: [{ prestacion: tipoPrestacionSchema, detalle: String }], // "prestaciones" traidas de sisa. Se muestran en la app mobile
aceptaDerivacion: Boolean,
esCOM: Boolean
esCOM: Boolean,
trasladosEspeciales: [TipoTrasladoSchema],
});

_schema.plugin(AuditPlugin);
Expand Down
1 change: 1 addition & 0 deletions initialize.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ export function initAPI(app: Express) {
app.use('/api/modules/webhook', require('./modules/webhook/webhooklog').WebhookLogRouter);
app.use('/api/modules', require('./modules/seguimiento-paciente').SeguimientoPacienteRouter);
app.use('/api/modules/com', require('./modules/centroOperativoMedico').DerivacionesRouter);
app.use('/api/modules/com', require('./modules/centroOperativoMedico').TipoTrasladoRouter);
app.use('/api/modules/com', require('./modules/centroOperativoMedico').ReglasDerivacionRouter);
app.use('/api/core-v2/mpi', MPI.RoutingMPI);

Expand Down
32 changes: 21 additions & 11 deletions modules/centroOperativoMedico/derivaciones.routes.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { MongoQuery, ResourceBase } from '@andes/core';
import { Derivaciones } from './schemas/derivaciones.schema';
import { Auth } from '../../auth/auth.class';
import { readFile } from './controllers/comStore';
import { AndesDrive } from '@andes/drive';
import { Auth } from '../../auth/auth.class';
import { Derivaciones } from './schemas/derivaciones.schema';

class DerivacionesResource extends ResourceBase {
Model = Derivaciones;
Expand All @@ -23,6 +22,12 @@ class DerivacionesResource extends ResourceBase {
field: 'profesionalSolicitante._id',
fn: MongoQuery.equalMatch
},
tipoTraslado: {
field: 'tipoTraslado',
fn: (value) => {
return { $ne: null };
}
},
prioridad: MongoQuery.equalMatch,
paciente: (value) => {
return {
Expand Down Expand Up @@ -64,15 +69,21 @@ DerivacionesRouter.post('/derivaciones/:id/historial', Auth.authenticate(), asyn
try {
const derivacion: any = await Derivaciones.findById(req.params.id);
if (derivacion) {
derivacion.historial.push(req.body);
if (req.body.prioridad) {
derivacion.prioridad = req.body.prioridad;
const nuevoEstado = req.body.estado;
derivacion.historial.push(nuevoEstado);
if (nuevoEstado.prioridad) {
derivacion.prioridad = nuevoEstado.prioridad;
}
if (nuevoEstado.estado) {
derivacion.estado = nuevoEstado.estado;
}
if (req.body.estado) {
derivacion.estado = req.body.estado;
if (nuevoEstado.organizacionDestino) {
derivacion.organizacionDestino = nuevoEstado.organizacionDestino;
}
if (req.body.organizacionDestino) {
derivacion.organizacionDestino = req.body.organizacionDestino;

if (req.body.trasladoEspecial) {
derivacion.organizacionTraslado = req.body.trasladoEspecial.organizacionTraslado;
derivacion.tipoTraslado = req.body.trasladoEspecial.tipoTraslado;
}
Auth.audit(derivacion, req);
await derivacion.save();
Expand All @@ -82,4 +93,3 @@ DerivacionesRouter.post('/derivaciones/:id/historial', Auth.authenticate(), asyn
return next(err);
}
});

1 change: 1 addition & 0 deletions modules/centroOperativoMedico/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
export { ReglasDerivacionRouter } from './reglasDerivacion.routes';
export { DerivacionesRouter } from './derivaciones.routes';
export { TipoTrasladoRouter } from './tipoTraslado.routes';
11 changes: 11 additions & 0 deletions modules/centroOperativoMedico/schemas/derivaciones.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import * as mongoose from 'mongoose';
import { AuditPlugin } from '@andes/mongoose-plugin-audit';
import { DireccionSchema } from '../../../shared/schemas/direccion';
import * as obraSocialSchema from '../../obraSocial/schemas/obraSocial';
import { TipoTrasladoSchema } from './tipoTraslado.schema';

export const ESTADOS_DERIVACION = ['solicitada', 'habilitada', 'inhabilitada', 'asignada', 'rechazada', 'aceptada', 'finalizada', 'encomendada'];

Expand Down Expand Up @@ -49,6 +50,16 @@ export const DerivacionSchema = new mongoose.Schema({
},
required: true
},
organizacionTraslado: {
type: {
nombre: String,
direccion: {
type: DireccionSchema
},
id: { type: mongoose.Schema.Types.ObjectId, ref: 'organizacion' }
},
},
tipoTraslado: TipoTrasladoSchema,
profesionalSolicitante: {
nombre: String,
apellido: String,
Expand Down
9 changes: 9 additions & 0 deletions modules/centroOperativoMedico/schemas/tipoTraslado.schema.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import * as mongoose from 'mongoose';
import { AuditPlugin } from '@andes/mongoose-plugin-audit';

export const TipoTrasladoSchema = new mongoose.Schema({
nombre: String
});

TipoTrasladoSchema.plugin(AuditPlugin);
export let TipoTraslado = mongoose.model('tipoTraslado', TipoTrasladoSchema, 'tipoTraslado');
12 changes: 12 additions & 0 deletions modules/centroOperativoMedico/tipoTraslado.routes.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { TipoTraslado } from './schemas/tipoTraslado.schema';
import { ResourceBase } from '@andes/core';
import { Auth } from '../../auth/auth.class';

class TipoTrasladoResource extends ResourceBase {
Model = TipoTraslado;
resourceName = 'tipoTraslado';
middlewares = [Auth.authenticate()];
}

export const TipoTrasladoCtr = new TipoTrasladoResource({});
export const TipoTrasladoRouter = TipoTrasladoCtr.makeRoutes();
19 changes: 19 additions & 0 deletions modules/descargas/com/derivacion-body.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,23 @@ export class DerivacionBody extends HTMLComponent {
<span>FECHA Y HORA DE DERIVACIÓN: {{ fecha }} hs</span>
</div>
</div>
{{#if tipoTraslado}}
<div class="row" >
<div class="col">
<span>TIPO TRASLADO:
{{ tipoTraslado.nombre }}</span>
</div>
</div>
{{/if}}
{{#if organizacionTraslado}}
<div class="row" >
<div class="col">
<span>TRASLADO A CARGO DE:
{{ organizacionTraslado.nombre }}</span>
</div>
</div>
{{/if}}
{{#if finalizada }}
<div class="row">
<div class="col">
Expand Down Expand Up @@ -125,6 +142,8 @@ export class DerivacionBody extends HTMLComponent {
finalizada,
fechaFinalizacion: moment(fechaFinalizacion).format('DD/MM/YYYY HH:mm'),
profesionalFinalizacion: profesional,
tipoTraslado: this.derivacion.tipoTraslado,
organizacionTraslado: this.derivacion.organizacionTraslado,
firmaHTML
};
}
Expand Down

0 comments on commit e669ee5

Please sign in to comment.