Per trovare l'errore specifico, esegui questo:
SHOW ENGINE INNODB STATUS;
E guarda nel LATEST FOREIGN KEY ERROR sezione.
Il tipo di dati per la colonna figlio deve corrispondere esattamente alla colonna padre. Ad esempio, da medicalhistory.MedicalHistoryID è un INT , Patient.MedicalHistory deve anche essere un INT , non un SMALLINT .
Inoltre, dovresti eseguire la query set foreign_key_checks=0 prima di eseguire il DDL in modo da poter creare le tabelle in un ordine arbitrario anziché dover creare tutte le tabelle padre prima delle tabelle figlio rilevanti.