I would start with Poisson regression, maybe with a random effect for patient. First, present the data in the following long format (you will need some transformations):
ID Antibiotics Admissions_total Time_length ...
1 without 10 3
1 with 8 3
2 without 11 4
2 with 3 1
...
so you have to calculate total admissions, not per year, and length of period with/without in years/months. The length will then enter as an offset, that is, a variable with a known coefficient of 1. See Scaling vs Offsetting in Quasi-Poisson GLM. The model can then be written as
$$
\text{Admissions-total}_i \sim \mathcal{Poisson}(e^{\lambda_i})
$$
where $\lambda_i= \mu + \tau_i + \text{Antibiotics}_i +\text{offset}(\log{\text{Time_length}})$. Here $\tau_i$ (if included in the model) is a patient random effect.
A simpler model without the random effect can be implemented in R with
mod_glm <- glm(Admissions_total ~ Antibiotics + offset(log(Time_length)), family=poisson, data=your_data_frame)
but as there might be large differences between patients, it is probably better to include random effects, which in R could be
library(lme4)
mod_lme4 <- glmer(Admissions_total ~ Antibiotics + offset(log(Time_length)) +(1 | ID), data=your_data_frame, family=poisson)
This could at least be a starting point. The model is called a Poisson rate regression.
While I used R in my example, this could be done with most statistical software.