You'll need to use an SLNet call to get the alarm level, since the SLProtocol object itself gives you access to the information in the SLProtocol process, while alarms are created and stored in the SLElement process and made available through SLNet.
There are libraries available that should make this interaction easier, but right now, I haven't found the right request in the Skyline.DataMiner.Core.DataMinerSystem.Protocol library.
So, the GetAlarmStateMessage should give you the parameter or cell alarm level you are looking for.
I'm sure one of my peers will let us know during business hours if there's a library that puts this in a neater package.
Another approach could be processing alarms through a correlation rule/automation script. It is true that processing alarms in a QAction will implies less development, however we try to avoid that approach since we will need to implement a custom logic in the connector.