More than 30 people have been killed after attackers dressed as doctors stormed the largest military hospital in Kabul, Afghan officials say.
Militants armed with guns and grenades gained entry after one detonated explosives at a hospital gate and then opened fire on staff and patients.
Commandos who landed on the Sardar Daud hospital roof killed all four attackers after several hours of fighting.
The so-called Islamic State (IS) group has claimed the attack.
The Taliban has denied any involvement.
More than 50 people were also wounded, the defence ministry said.