Posting my answer here so others get the benefit of what I sent to you in email.
There's no existing application per se, and I'd say mostly because you don't see this as often in DITA as you do in, say, S1000D. We're doing this now in a different doctype for one of our customers. We've constructed both checklists and fault-isolation tree-walking type of application for them. All the "work" is done in the output presentation and the application doing the display, not in the source.
The trick to this isn't DITA or not DITA. The doctype doesn't really matter: It's the presentation of DITA and the code behind what you're delivering that does the heavy lifting.
How are you delivering the source?
What tools are you using?
I'd need to know more to answer fully.