Our emotions can give us information. Feelings are simply chemical messages being sent between brain and body. In my mind, they can serve a purpose by helping us gain insight about what we want, what we need, etc.
From what you wrote, it appears to me like you certainly didn't mean to physically harm your son. It seems to me that you DID feel angry and chose (out of frustration) to open the door with enough force to throw your kiddo backwards and split open his head, knowing that there was a chance that he would be by the door. Should the door have missed him, the action would still have been intimidating and scary for him to witness, no?
From what I read, it doesn't seem like that's okay with you and that your actions were opposed to your value system. Feeling guilt is one way that we can tell that something is/has been amiss.
This isn't the same scenario as if you had not known he was in the bathroom, threw open the door while on your way to use the loo, and *accidentally* knocked him down - because that carries a different intention behind said actions. When we choose to yell, slam doors, throw things, etc., we can be 1. discharging 2. showing ourselves and others that we are feeling upset 3. blaming others for the way we feel/punishing other's for our emotional state (i.e. look how you *made* me feel, I want you to feel afraid of *making* me feel this way again) 4. defending our state of being (i.e. I'm not crazy, this actually isn't okay, and no I'm not just going to settle down because this really is a big deal).
To me, the injury seems somewhat besides the point. The injury WAS an accident. Thus, it seems like you are identifying and are feeling upset about the level of frustration you reached (ex: If I hadn't allowed my frustration to blind me, I wouldn't have opened the door with force and he wouldn't have been hurt), and about your choices of how to deal with your feelings.
Let me be the first to tell you that I have made similar choices (opening/closing doors with force, slamming down the object I'm holding, angry/scary hand gestures, yelling, etc.) on MORE than one occasion. And I do feel guilty afterwards. Why? Because that's not how I want to parent. I definitely want to discipline (to teach) my children and to set firm and consistent boundaries. I do not want to do so through fear, control, manipulation, violence, etc. The feeling of guilt helps me to recognize where my actions have been out of line. What helps me is to fully accept 1. what happened 2. why it's not okay with me, and them for me to take action in learning from it and developing tools so that I don't repeat the action again.
If I LEARN from my experience, it is just that, a learning experience rather than a mistake. NONE of us is perfect. *I* am FAR from perfect. I get to accept that and have compassion for myself (i.e. I am human, I do things that I don't like) and then I get to learn and develop tools, and to progress as a person so that I don't have to do it again and again. I get to practice dealing with my feelings in a way that doesn't harm myself or others (emotionally or physically) and actually benefits them. As long as I'm taking action to grow, my guilt is replaced with gratitude - because there is always an opportunity for me to better myself (even if I don't always take it)/learn.
This seems like a fantastic opportunity in your family, one that you are taking FULL advantage of. You are reading about relaxation and parenting and are processing this event with a lot of dedication and self awareness. I applaud your courage and I hope you feel better soon. Give yourself a break - you are doing everything you can do to help yourself be the best parent you can be. What more can a person do?