Skip to content

Commit

Permalink
feat(MPI): registro de paciente extranjero con DNI
Browse files Browse the repository at this point in the history
  • Loading branch information
ma7payne committed Oct 30, 2023
1 parent 42150ee commit 501d574
Show file tree
Hide file tree
Showing 4 changed files with 135 additions and 4 deletions.
2 changes: 1 addition & 1 deletion cypress/e2e/core/mpi/mpi-registro-con-dni.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ context('MPI-Registro Paciente Con Dni', () => {
});
cy.contains('El paciente ya existe, verifique las sugerencias').get('button').contains('Aceptar').click();
cy.get('plex-layout-sidebar plex-item plex-label').contains('Similitud: 98 %');
cy.plexButton('Seleccionar').click();
cy.get('plex-item[label="Seleccionar"]').click();

cy.plexButton('Guardar').click();
// se guarda paciente con datos del paciente seleccionado (pacienteTemp1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ context('MPI-Registro de Pacientes Similares', () => {

cy.swal('confirm');
cy.plexButton('Guardar').should('have.prop', 'disabled', true);
cy.plexButton('Seleccionar').click();
cy.get('plex-item[label="Seleccionar"]').click();
cy.plexButton('Guardar').click();
cy.wait('@patchPaciente').then((xhr) => {
expect(xhr.status).to.be.eq(200);
Expand Down Expand Up @@ -80,7 +80,7 @@ context('MPI-Registro de Pacientes Similares', () => {
// Popup alert

cy.swal('confirm');
cy.plexButton('Seleccionar').click();
cy.get('plex-item[label="Seleccionar"]').click();
cy.plexButton('Guardar').click();
cy.wait('@patchPaciente').then((xhr) => {
expect(xhr.status).to.be.eq(200);
Expand Down
124 changes: 124 additions & 0 deletions cypress/e2e/core/mpi/mpi-registro-extranjero-con-dni.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
context('MPI-Registro Paciente Extranjero Con DNI Argentino', () => {
let token;

const pacienteExtranjero = {
nombre: "PACIENTE",
apellido: "EXTRANJERO",
estado: "temporal",
fechaNacimiento: "1996-08-28T04:00:00.000Z",
tipoIdentificacion: "dni extranjero",
numeroIdentificacion: "55555555"
}

const pacienteValidado = {
documento: "10000001",
nombre: "DOMINGO",
apellido: "FELIPE",
estado: "validado",
fechaNacimiento: "1996-08-28T04:00:00.000Z",
}

const pacienteDuplicado = {
documento: "10000001",
nombre: "PACIENTE",
apellido: "DUPLICADO",
estado: "validado",
fechaNacimiento: "1996-08-28T04:00:00.000Z",
}

before(() => {
cy.seed();
cy.cleanDB()
cy.login('38906735', 'asd').then(t => {
token = t;
});
})

const completarPaciente = () => {
cy.cleanDB()
cy.task('database:create:paciente', pacienteExtranjero).then(paciente => {
cy.goto('/apps/mpi/busqueda', token);

cy.intercept('GET', '**api/core-v2/mpi/pacientes**').as('busqueda');
cy.intercept('POST', '**api/core-v2/mpi/pacientes**').as('guardar');

cy.plexText('name="buscador"', paciente.apellido);

cy.wait('@busqueda').then(({ response }) => {
expect(response.statusCode).to.be.eq(200);
});

cy.get('paciente-listado').find('plex-button[title="Editar paciente"]').first().click({ force: true });
cy.get('plex-bool[label="Registrar DNI argentino"]').click();

cy.plexInt('name="documento"', "10000001");
cy.plexSelectType('name="sexo"').eq(1).type('masculino');
cy.plexTab('datos de contacto').click();
cy.plexBool('label="Sin datos de contacto"', true);
cy.plexBool('name="viveProvActual"', true);
cy.plexBool('name="viveLocActual"', true);
cy.plexTab('datos básicos').click();
});
}

const crearDuplicado = () =>
cy.task('database:create:paciente', pacienteDuplicado)

it('completar datos sin permitir guardar cuando no esta validado ', () => {
completarPaciente();

cy.plexButton('Guardar').should('have.prop', 'disabled', true);
});

it('buscar paciente extranjero y validarlo con DNI argentino', () => {
completarPaciente();

cy.intercept('GET', '**api/core-v2/mpi/pacientes**').as('nuevaBusqueda');
cy.intercept('POST', '**api/core-v2/mpi/validacion', pacienteValidado).as('renaper');

cy.plexButton('Validar Paciente').click();
cy.wait('@renaper').then(({ response }) => {
expect(response.statusCode).to.be.eq(200);
});

cy.plexButton('Guardar').should('have.prop', 'disabled', false);

cy.plexButton('Guardar').click();
cy.wait('@guardar').then(({ response }) => {
expect(response.statusCode).to.be.eq(200);
});

cy.contains('Los datos se actualizaron correctamente');
cy.contains('Aceptar').click();
cy.plexText('name="buscador"', pacienteValidado.documento);

cy.wait('@nuevaBusqueda').then(({ response }) => {
expect(response.statusCode).to.be.eq(304);
});

cy.get('paciente-listado').contains(pacienteValidado.apellido);
cy.get('paciente-listado').contains(pacienteValidado.nombre);
});

it('validacion de paciente extranjero y carga de paciente con DNI duplicado', () => {
completarPaciente();

crearDuplicado().then((duplicado) => {
cy.intercept('GET', '**api/core-v2/mpi/pacientes**', (req) => {
req.continue(res => {
res.body = [{ ...duplicado, contacto: null }]
})
}).as('getPaciente');

cy.plexButton('Validar Paciente').click();

cy.wait('@getPaciente').then(({ response }) => {
expect(response.statusCode).to.be.eq(200);
});

cy.contains('Aceptar').click();
cy.plexButton('Guardar').click();
cy.contains('Aceptar').click();
})
});
});
9 changes: 8 additions & 1 deletion cypress/plugins/seed-paciente.js
Original file line number Diff line number Diff line change
Expand Up @@ -153,16 +153,23 @@ module.exports.createPaciente = async (mongoUri, params) => {
// si no tiene notaError y no se envió en params se le asigna string vacío
dto.notaError = (params.notaError) ? params.notaError : (dto.notaError) ? dto.notaError : '';


if (dto.documento) {
dto.documento = (params.documento) ? params.documento + '' : ('' + faker.random.number({ min: 40000000, max: 49999999 }));
dto.documento_fuzzy = makeNGrams(config, dto.documento);
}

if (!params.documento && (params.numeroIdentificacion || params.tipoIdentificacion)) {
dto.documento = null;
}

dto.tokens = generarTokens(dto);

dto.contacto[0].valor = params.telefono || faker.phone.phoneNumber().replace('-', '').replace('-', '');
dto.direccion[0].valor = params.direccion || dto.direccion[0].valor;
dto.fechaNacimiento = (params.fechaNacimiento) ? params.fechaNacimiento : dto.fechaNacimiento;
dto.numeroIdentificacion = params.numeroIdentificacion || null;
dto.tipoIdentificacion = params.tipoIdentificacion || null;
dto.estado = params.estado || null;
dto._id = params._id ? new ObjectId(params._id) : new ObjectId();
await PacienteDB.insertOne(dto);

Expand Down

0 comments on commit 501d574

Please sign in to comment.