Sugiero que dejes de usar variables globales y retornes algo de las funciones.
Una posibilidad es que retornes el valor de la opcion que se eligio en cada menu.
Ademas, elige un nombre de variable que indique lo que esa variable lleva. Aparentemente la variable "i" contiene un tamano de algo, pues la usas para controlar los ciclos, por que no llamarla algo relacionado con numero_de_pacientes, nroPacientes, totalPacientes, o alguna variacion de esto?
Nombres de funciones que indiquen lo que hacen tambien hace el programa mas entendible, "paciente_a" es un mal nombre, p1 es otro mal nombre.
Pasar los pacientes completos en vez de usar un arreglo global tambien podria ayudar.
Cuando lees los pacientes y los escribes en un archivo, parece (porque es dificil entender con el codigo mal indentado) que estas cerrando el archivo por cada paciente, sin volver a abrir?
Otra sugerencia, haz funciones para los cuadros y cosas visuales, y llamas esas funciones desde las otras, con esto el codigo de leer paciente u otras no se ven contaminadas con esas instrucciones. Osea en vez de tener
instruccion para escribir una linea en la pantalla
otra instruccion para escribir una linea en la pantalla
otra instruccion para escribir una linea en la pantalla
otra instruccion para escribir una linea en la pantalla
...
otra instruccion para escribir una linea en la pantalla
codigo que realmente hace algo
tendrias
funcion_que_escribe_cuadritos()
codigo que realmente hace algo
que tal construir una funcion que se invoque asi: poner_linea( x, y, n )
que internamente hace gotoxy(x, y) y luego escribe n caracteres "*" ? o bien que tal construir una funcion que se invoque asi: poner_linea( x, y, n, caracter ) que internamente va la posicion x, y y escribe n veces el caracter "caracter"? Que tal leer las distintas posiciones y lineas desde un archivo?
Tal como esta, el codigo es kilometrico y con pocas ayudas para entenderlo.
Ademas en el menu de opciones al editar estos mensajes puedes marcar el codigo con el tipo de lenguaje que es, seleccionas el codigo y eliges "Codigo Geshi", queda asi
int main() {
if( condicion ) {
hello();
}
}
y no solo asi
int main() {
if( condicion ) {
hello();
}
}