Saltar al contenido

Cómo funciona

Del consentimiento al tratamiento hecho: el flujo completo en OdontoWare

Por Eduardo Gallegos · Publicado el 22 de septiembre de 2026

Este es un recorrido de producto, no el caso de ningún consultorio real: describe cómo se mueve -y dónde se desconecta de la norma- el registro de un consentimiento informado dentro de OdontoWare. La pregunta que resuelve es concreta: ¿en qué paso exacto el sistema deja de exigir riesgos y firmas, y deja de cruzar el consentimiento con el tratamiento, según lo visto en en OdontoWare, un consentimiento sin riesgos ni firmas se acepta igual que uno completo?

Esquema del recorrido · ilustración, no es una pantalla del sistema

  1. 1. El dentista planea una extracción quirúrgica con anestesia regionalEl plan de tratamiento incluye el concepto; el registro de consentimiento está disponible en el expediente del paciente.
  2. 2. Registra el consentimiento con solo el nombre del procedimientoEl esquema sólo exige patientId y procedure; granted ya viene en true por defecto.
  3. 3. El servidor guarda el consentimiento sin riesgos ni firmassigned_by y notes se insertan como null cuando no se llenaron.
  4. 4. El listado lo muestra como "Otorgado"La interfaz lo marca así basándose únicamente en el booleano granted.
  5. 5. El dentista marca el ítem del tratamiento como realizadoupdateItemStatus() sólo comprueba que el ítem no esté anulado.
  6. 6. Nada cruzó el consentimiento con el tratamientoEn ningún punto del flujo se consultó la tabla de consentimientos informados antes de aceptar el estado "hecho".

1-3. El registro del consentimiento no exige riesgos ni firmas

Cuando el dentista abre el registro de consentimiento informado desde el expediente del paciente, el formulario pide el procedimiento y, opcionalmente, quién lo firmó y notas adicionales -no existe ningún campo para riesgos, beneficios ni para las firmas del médico o de los dos testigos-. clinicalCreateInformedConsentSchema (packages/shared-schemas/src/clinical.ts:180-187) sólo exige patientId y procedure; granted llega en true por defecto y signedBy/notes son opcionales. El servicio que lo guarda (informed-consents.service.ts:65-94) inserta el registro igual, con esos dos campos en null si se omitieron.

Agenda una demo gratis

4-6. El tratamiento se marca como hecho sin mirar el consentimiento

En el listado de consentimientos del paciente, la interfaz muestra "Otorgado" basándose sólo en el valor booleano granted -sin distinguir un registro con riesgos y firmas de uno con solo el nombre del procedimiento-. Por su parte, updateItemStatus() (services/clinical/src/treatment-plan/treatment-plan.service.ts:310-333) actualiza el estado de un concepto del plan de tratamiento a done revisando únicamente que no esté anulado (voided_at IS NULL). En ningún punto de esa función se consulta la tabla informed_consents: el sistema no sabe, al marcar la extracción como realizada, si el consentimiento que la respalda tiene riesgos documentados y firmas, o sólo un nombre de procedimiento.

Parada¿Se exige riesgos/firmas, o se cruza con el tratamiento?
1. Registro del consentimientoNo -sólo patientId y procedure son obligatorios
2. Esquema de la petición (clinicalCreateInformedConsentSchema)No -signedBy/notes son optional(), sin campo de riesgos
3. Guardado del consentimientoSe guarda igual, con o sin firmas
4. Listado de consentimientosMuestra "Otorgado" sólo por el booleano granted
5. Marcar el ítem del tratamiento como hecho (updateItemStatus())No -sólo revisa que el ítem no esté anulado

Puedes estimar la exposición de este hallazgo, con tus propios números, en la calculadora de exposición por consentimiento informado incompleto.

Preguntas frecuentes

¿Por qué OdontoWare no exige riesgos y firmas por defecto?
El esquema trata el consentimiento como un registro simple de "otorgado o no", sin modelar el contenido que exige la NOM-004 para los procedimientos de mayor riesgo. El hallazgo es que ese mismo tratamiento se aplica a cirugías con anestesia, donde la norma sí exige una carta completa.

¿Agregar campos de riesgos al formulario resuelve todo el hallazgo?
Resuelve el contenido de la carta, pero no el cruce: si updateItemStatus() sigue sin consultar los consentimientos, un tratamiento podría marcarse como hecho aunque el consentimiento asociado esté incompleto o ni siquiera exista.

¿OdontoWare corrige esto automáticamente?
No, hoy no. Es un hallazgo verificado en el código y en las pruebas actuales, no una función ya resuelta.

Ve el recorrido completo en tu propia demo

Te mostramos en vivo el registro del consentimiento y el plan de tratamiento.

Agenda una demo gratis
Agendar 30 min
Contacta a un especialista
Ventas y Proyectos (abre en una ventana nueva) Soporte Técnico (abre en una ventana nueva)