Согласно «Полному академическому справочнику» под ред. В. В. Лопатина, вместо дефиса должен употребляться знак тире в сочетаниях с приложением, если одна из частей содержит пробел, и в сочетаниях с приложением, если одна из частей в свою очередь является сочетанием с приложением и содержит дефис.
Таким образом, верно: врач — детский кардиолог, врач — клинический миколог, заведующий здравпунктом — фельдшер, врач — акушер-гинеколог, врач — анестезиолог-реаниматолог, врач — сердечно-сосудистый хирург, медицинский оптик-оптометрист (слово медицинский относится к обеим частями названия специальности), провизор-стажер, врач — детский уролог-андролог, врач — судебно-психиатрический эксперт; заведующий структурным подразделением, отделом, отделением, лабораторией, кабинетом, отрядом (начальник структурного подразделения, отдела, отделения, лаборатории, кабинета, отряда и т. д.) медицинской организации — врач-специалист.