I suggest you to use ExecuteScalar whenever you want to retrieve single value from database as it perform better than ExecuteReader and also always use using statement with SqlConnection object to make sure it get disposed properly. You can try below code snippet.
string conStr = ConfigurationManager.ConnectionStrings["lap_appConnectionString"].ConnectionString;
using (SqlConnection cnz = new SqlConnection(conStr))
{
SqlCommand cmdzs = new SqlCommand("SELECT MAX (patient_id) as max_patient_id FROM patient_data ", cnz);
cmdzs.CommandType = CommandType.Text;
cnz.Open();
max_id_lbl.Text = cmdzs.ExecuteScalar().ToString();
}