Predicting next adverse event based on previous events
What you're describing is known as a multilabel classification. You want to predict some output labels (adverse effects) in a given set of possible output labels  (all possible adverse effects), using a given a set of input indicators (previous adverse effects, drugs prescribed, dosage levels).

For those final two features, I'd combine them into one feature where if the drug is not prescribed obviously dosage is 0, and higher otherwise.

In R, you can use the mlR package for this prediction stage. You may also be able to use the generateFilterValues() function in this package to extract feature importances, however I'm not sure if this will work with multilabel and additionally this will only tell you how much your classifier believes your input features contribute to the output labels relative to all the other input features. It won't give you other valuable information for example at which dosage levels of a particular drug does the probability of negative symptoms increase most.

Again, I'm unsure how this would work with multilabel classifications as I don't have any experience with them, but take a look at plotting partial dependency plots to get this last bit of information on how each input feature contributes to your output labels.