
Contact Details : James Melody Stelfox UK Ltd +44 1273 727 930 james@stelfoxuk . c om Stelfox UK Ltd Albert House 82 Queens Road Brighton East Sussex BN1 3XE United Kingdom Medical Director - Pharmacovigilence Business Type : Clinical Research Organisation , Contract Research Organisation Job Type : Pharmacovigilance , Medical Director Position : Full Time Salary : On Application Location : Germany Reference : JM0MfD Background : My client , a world renowned CRO , is currently seeking to recruit a Medical Director to oversee and supervise the activities of the Pharmacovigilance Department in order to ensure compliance with ethical , legal , and regulatory standards . This is an exciting opportunity for a pharmaceutical physician to head up a well established group . Primary Duties : -Oversee safety issues of clinical studies conducted which will include , but not be limited to , the following : -Adverse event reporting to the sponsor -Follow up of adverse events as necessary -Communication of safety issues to Chief Medical Officer -Participate in the on-call safety monitoring procedure . -Provide all necessary medical support functions which will include , but not be limited to , the following : -Medical information source -Ongoing training for project teams in therapeutic areas as requested - Review of study documentation ( protocol , CRF etc . ) -Contribute to investigator meeting presentations -Ongoing safety review of individual patient laboratory reports generated by central laboratories ( if requested by the Sponsor ) -CRF safety review -Contribute any necessary clinical interpretation into integrated clinical and statistical reports -Assist senior management in making presentations to potential clients when appropriate . -Demonstrate a thorough understanding of Standard Operating Procedures ( SOPs ) and ensure that all activities are conducted in accordance with current SOPs . -Demonstrate a thorough understanding of applicable regulatory standards in the country where clinical studies are to be conducted and ensure that all activities are conducted in compliance with current regulations . Qualifications : -Medical degree and broad based post graduate experience -Ability and willingness to travel approximately 15 % of the time ( 4 days per month ) -Ability to review and evaluate clinical data -Good oral and written communication skills -Ability to liaise with senior management team Additional Information : Stelfox operates on a very simple maxim : Find out what people want and give it to them . The primary focus of each Stelfox consultant is to cultivate a relationship with both client and candidate based on professionalism , speed and accuracy . The latter being the obvious competitive advantage offered by Stelfox afforded through the knowledge and experience of each individual consultant . The Stelfox team know exactly what type of individuals and skillset each of our clients repeatedly look for . Please contact James Melody for details of this or any other opportunities Posted by : : Stelfox ( View all our vacancies ) Apply Online | Contact Recruiter Unless otherwise stated , if applying for a job , you must ensure that you are already authorised to work in the country in which the job is based Posted : 03/08/2006 LD Ref : 11535 