What exactly is a service user?
When you receive an Email for 20 sessions, how is their use restricted?
From my interpretation of your post:
- you could create X(number from email) empty session records each with BatchID_fk and unique sequencenumber (and possibly BatchExpiryDate).
- I expect you will have a list of Clinicians uniquely identified.
-when a "Patient" requires service, he/she will be assigned to the next available Session record and the "Patient, Clinician and Date of Service(after verification that Service Date is <=ExpiryDate) is used to update the Session record.
In effect, there are 2 major steps
-use the email info to create available session records, and
-use available session records, patients, clinicians, (possibly type of service, diagnosis, comments, notes, etc) and update accordingly. It is unclear where your involvement starts and ends.