This probably doesn't help, it is just a mindset.
I like seperate lines for macros. Others try to put in 45 condidtions in options and make them on one line, but it just confuses the hell out of me. One thing to think of is put the most limiting condition first, because if you put in a really lax one first, it will probably go off all the time.

Just from your words:
"If focus no target heal self------check last, check target and heal target are 2 seperate things too hard to do in a single line, put as a fail of others

if focus target hostile heal focus target target Put second, put in a help that you don't need since help checks for exists also can just leave it out and get an error, but other casts will should still go off

if focus target friendly heal target-------Put fist, since how many times do you target a player when fighting a mob that you don't want to heal?

shift modifyer chain heal self "--------Need to put first, or anyting you have no shift down, other casts get done first

/cast [mod:shift, target=player] Chain Heal
/cast [target=focus-target, help] Lesser Healing Wave
/cast [target=focus-target-target, help] Lesser Healing Wave
/cast [target=player] Lesser Healing Wave

(last one should work since if focus has no target, focus-target fails, focus-target-target fails)
I hope that helps or gets you started. One thing to remember is keys have a good chance to already be bound. Like CTRL-1 is bound to pet bar and such. Check to make sure the key isn't bound or used in another way first. Good luck.