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- la captura de una nota de evolución dentro de Medware Consulta. La pregunta que resuelve es concreta: ¿en qué paso exacto el sistema deja de exigir el pronóstico, según lo visto en en Medware Consulta, una nota de evolución se puede firmar sin pronóstico?
Esquema del recorrido · ilustración, no es una pantalla del sistema
- 1. El médico abre al paciente y captura la consultaMotivo, subjetivo, evaluación y plan se registran; el campo de pronóstico está disponible en el formulario.
- 2. El formulario no obliga a llenar el pronósticoEl input no lleva el atributo
required; se puede guardar la nota con el campo vacío. - 3. El servidor tampoco lo exige
prognosis: z.string().optional()en el esquema acepta la ausencia del campo sin rechazar la petición. - 4. El médico pulsa "Firmar nota"El endpoint de firma sólo comprueba que la nota exista y no tenga firma previa.
- 5. La nota queda sellada como definitiva, sin pronóstico
signed_atysigned_byse registran; el contenido clínico nunca se revisó. - 6. El propio test de la plataforma lo confirmaUna prueba automatizada crea y firma una nota sin pronóstico, y espera éxito -y lo obtiene.
1-3. La captura y el guardado no exigen el pronóstico
Cuando el médico llena la consulta en el expediente del paciente, el campo de pronóstico convive con el resto de los campos clínicos -motivo, subjetivo, objetivo, evaluación, plan-, pero ninguno de ellos, incluido el pronóstico, es obligatorio en el formulario ni en el esquema que valida la petición al guardar. createEncounterSchema (packages/shared-schemas/src/clinical.ts) declara prognosis: z.string().optional(): la nota se guarda igual, con o sin ese dato.
4-5. La firma sella la nota sin mirar su contenido
El método sign() (services/clinical/src/encounters/encounters.service.ts:282-321) bloquea la fila con SELECT ... FOR UPDATE, confirma que la consulta existe y que signed_at sigue vacío, y ejecuta el UPDATE que la marca firmada con fecha y nombre del médico. Ese candado protege contra un problema real -que dos firmas casi simultáneas dupliquen el sello-, pero en ningún punto de la función se lee prognosis, ni ningún otro campo clínico, para decidir si la nota está completa.
6. El propio test de la plataforma deja ver el hueco
El conjunto de pruebas de extremo a extremo de Medware Consulta (tests/e2e/stack.e2e.mjs:3017-3035) crea una consulta con motivo "Consulta general", subjetivo "Cefalea", evaluación "Tensional" y plan "Reposo" -sin prognosis en el cuerpo de la petición-, confirma que se creó sin firma, la firma con una petición al endpoint de firma, y confirma que la respuesta trae signedAt. No es una interpretación: es el propio criterio de "correcto" de la plataforma, que da por bueno el flujo completo sin que el pronóstico haya existido nunca.
| Parada | ¿Se exige el pronóstico? |
|---|---|
| 1. Formulario de captura de la nota | No -el campo existe, pero no lleva required |
2. Esquema de la petición (createEncounterSchema) | No -prognosis es optional() |
| 3. Guardado de la nota | Se guarda igual, con o sin el dato |
4. Endpoint de firma (sign()) | No -sólo revisa que no exista firma previa |
| 5. Nota marcada como firmada | Sella signed_at/signed_by sin revisar contenido clínico |
Puedes estimar la exposición de este hallazgo, con tus propios números, en la calculadora de exposición por nota de evolución incompleta.
Preguntas frecuentes
¿Por qué Medware Consulta no exige el pronóstico por defecto?
El esquema lo trata como cualquier otro campo clínico narrativo -opcional para no forzar una estructura rígida en la consulta-. El hallazgo es que ese mismo tratamiento se aplica a un campo que la NOM-004 sí exige como mínimo.
¿Agregar required en el formulario resuelve todo el hallazgo?
Resuelve la captura desde la interfaz, pero no el servidor: si el esquema sigue aceptando prognosis vacío, una integración o un cliente distinto de la interfaz web podría seguir creando y firmando notas incompletas.
¿Medware Consulta 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 la captura de la nota de evolución y el botón de firma.
Agenda una demo gratis