diff --git a/initialize.ts b/initialize.ts index 2e2a5bd3c..4fd5e32da 100644 --- a/initialize.ts +++ b/initialize.ts @@ -112,6 +112,7 @@ export function initAPI(app: Express) { 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/modules/com', require('./modules/centroOperativoMedico').EstrategiaAtencionRouter); app.use('/api/modules/perinatal', require('./modules/perinatal').CarnetPerinatalRouter); app.use('/api/modules/huds/motivosHuds', require('./modules/huds/motivosHuds').MotivosHudsRouter); app.use('/api/core-v2/mpi', MPI.RoutingMPI); diff --git a/modules/centroOperativoMedico/configDerivaciones.routes.ts b/modules/centroOperativoMedico/configDerivaciones.routes.ts new file mode 100644 index 000000000..58056b504 --- /dev/null +++ b/modules/centroOperativoMedico/configDerivaciones.routes.ts @@ -0,0 +1,19 @@ +import { MongoQuery, ResourceBase } from '@andes/core'; +import { Auth } from '../../auth/auth.class'; +import { EstrategiaAtencion } from './schemas/estrategiasAtencion.schema'; + +class EstrategiaAtencionController extends ResourceBase { + Model = EstrategiaAtencion; + resourceName = 'estrategiaAtencion'; + middlewares = [Auth.authenticate()]; + routesEnable = ['get', 'search']; + searchFileds = { + key: MongoQuery.equalMatch, + nombre: MongoQuery.partialString, + source: MongoQuery.equalMatch, + type: MongoQuery.equalMatch + }; +} + +export const EstrategiaAtencionCtr = new EstrategiaAtencionController({}); +export const EstrategiaAtencionRouter = EstrategiaAtencionCtr.makeRoutes(); diff --git a/modules/centroOperativoMedico/index.ts b/modules/centroOperativoMedico/index.ts index 01e5bc837..1dc809b72 100644 --- a/modules/centroOperativoMedico/index.ts +++ b/modules/centroOperativoMedico/index.ts @@ -1,3 +1,4 @@ export { ReglasDerivacionRouter } from './reglasDerivacion.routes'; export { DerivacionesRouter } from './derivaciones.routes'; export { TipoTrasladoRouter } from './tipoTraslado.routes'; +export { EstrategiaAtencionRouter } from './configDerivaciones.routes'; diff --git a/modules/centroOperativoMedico/schemas/derivaciones.schema.ts b/modules/centroOperativoMedico/schemas/derivaciones.schema.ts index 0e855c31f..61a0e0b57 100644 --- a/modules/centroOperativoMedico/schemas/derivaciones.schema.ts +++ b/modules/centroOperativoMedico/schemas/derivaciones.schema.ts @@ -69,6 +69,12 @@ export const DerivacionSchema = new mongoose.Schema({ }, tipoTraslado: TipoTrasladoSchema, dispositivo: DispositivoSchema, + estrategiaAtencion: { + type: { + nombre: String, + id: { type: mongoose.Schema.Types.ObjectId, ref: 'estrategiaAtencion' } + }, + }, profesionalSolicitante: { nombre: String, apellido: String, diff --git a/modules/centroOperativoMedico/schemas/estrategiasAtencion.schema.ts b/modules/centroOperativoMedico/schemas/estrategiasAtencion.schema.ts new file mode 100644 index 000000000..d16db7e70 --- /dev/null +++ b/modules/centroOperativoMedico/schemas/estrategiasAtencion.schema.ts @@ -0,0 +1,22 @@ +import * as mongoose from 'mongoose'; +import { AuditPlugin } from '@andes/mongoose-plugin-audit'; + +export const estrategiaAtencionSchema = new mongoose.Schema({ + nombre: { + type: String, + required: true, + trim: true + }, + activa: { + type: Boolean, + default: true + } +}); + +estrategiaAtencionSchema.plugin(AuditPlugin); + +export const EstrategiaAtencion = mongoose.model( + 'estrategiaAtencion', + estrategiaAtencionSchema, + 'estrategiaAtencion' +);