Blood test spots cancer seven years earlier – and could help prevent it