Anonymised
Overview
Section titled “Overview”The Recruit Anonymised dataset provides fully anonymised clinical and operational data from healthcare organisations participating in recruit studies. All patient and user identifiers are hashed for privacy protection while maintaining referential integrity for data analysis. The dataset is designed for research studies requiring de-identified participant information across consultations, medications, observations, and healthcare operations.
Data is exposed through structured models covering patient demographics, clinical events, medications, organisational context, and administrative entities - all scoped to study participants and organisations.
Available Models
Section titled “Available Models”Core Clinical Models
Section titled “Core Clinical Models”| Model | Description |
|---|---|
| Patient | Demographics, registration status, and consent flags |
| Observation | Clinical observations, test results, and coded entries |
| Consultation | Patient consultations with practitioners |
| Problem | Active and past clinical problems |
| Referral | Inbound and outbound referrals |
| Immunisation | Immunisation and vaccination records |
| Allergy | Patient allergies and adverse reactions |
| Diary Entry | Diary entries and recall events |
| Slot | Appointment slots and booking status |
Medication Models
Section titled “Medication Models”| Model | Description |
|---|---|
| Drug Record | Medication courses (repeat and acute prescriptions) |
| Issue Record | Individual prescription issues from a drug record |
| Drug Record Problem Link | Links between drug records and clinical problems |
| Issue Record Problem Link | Links between issue records and clinical problems |
Code & Reference Models
Section titled “Code & Reference Models”| Model | Description |
|---|---|
| Clinical Code | SNOMED CT and Read code mappings |
| Codeable Concept | Extended code metadata including fully specified names |
| Drug Code | Drug code mappings and pharmaceutical identifiers |
| MKB Mapping Attributes | Language and attribute code mappings |
| MKB Mapping DMD Preparation | dm+d preparation code mappings |
| MKB Mapping Ethnicity | Ethnicity SNOMED code mappings |
| MKB Version | MKB coding database version and metadata |
Organisational & Administrative Models
Section titled “Organisational & Administrative Models”| Model | Description |
|---|---|
| Organisation | Healthcare organisations participating in recruit studies |
| Organisation Location | Locations and branches within organisations |
| User In Role | Healthcare practitioners and their roles within organisations |
| Session | User sessions and system access records |
| Session User | User associations with sessions |
| Sharing Organisation | Organisations with data sharing agreements |
Key Concepts
Section titled “Key Concepts”Anonymisation
Section titled “Anonymisation”All patient and user identifiers are pseudonymised using deterministic hashing:
- Patient identifiers:
pseudo_patient_id,pseudo_nhs_no,pseudo_registration_guid - User identifiers: Hashed user GUIDs in
user_in_roleand session models - Organisational identifiers: EMIS organisation GUIDs (not pseudonymised)
Pseudonymisation is stable within your user context, enabling longitudinal analysis of patient episodes across consultations and medications.
Study Scoping
Section titled “Study Scoping”All clinical records are scoped to study participants via the study_id foreign
key. Records are included in the dataset only if the patient is registered for
the specified study.
Data Freshness
Section titled “Data Freshness”Data availability and update frequency depends on the source systems and study requirements. Consult your study protocol and data governance documentation for specific refresh schedules.
Organisational Context
Section titled “Organisational Context”Each clinical record includes a reference to the healthcare organisation where
the event occurred (emis_registration_organisation_guid or similar). This
enables analysis across multiple organisations and locations.
Common Patterns
Section titled “Common Patterns”Frequently Asked Questions
Section titled “Frequently Asked Questions”For practical guidance on common modelling questions with anonymised data, refer to your study-specific documentation or data dictionary.
Joining Clinical Events to Patient
Section titled “Joining Clinical Events to Patient”Join clinical event models to patient using pseudo_registration_guid and
study_id to access demographic information:
SELECT o.emis_observation_guid, o.observation_datetime, o.emis_code_id, p.gender, p.date_of_birth, p.ethnic_category_snomed_concept_idFROM explorer_recruit_anon.observation AS oINNER JOIN explorer_recruit_anon.patient AS p ON o.pseudo_registration_guid = p.pseudo_registration_guid AND o.study_id = p.study_idWHERE o.study_id = 'STUDY001'Resolving Clinical Codes
Section titled “Resolving Clinical Codes”Use the clinical_code model to look up human-readable terms for clinical
events:
SELECT o.emis_observation_guid, o.observation_datetime, c.term, c.snomed_concept_idFROM explorer_recruit_anon.observation AS oINNER JOIN explorer_recruit_anon.clinical_code AS c ON o.emis_code_id = c.emis_code_id AND o.study_id = c.study_idWHERE o.study_id = 'STUDY001'LIMIT 100Filtering by Organisation
Section titled “Filtering by Organisation”Scope queries to specific healthcare organisations using the organisation GUID:
SELECT p.pseudo_patient_id, p.date_of_birth, COUNT(DISTINCT o.emis_observation_guid) AS observation_countFROM explorer_recruit_anon.patient AS pLEFT JOIN explorer_recruit_anon.observation AS o ON p.pseudo_registration_guid = o.pseudo_registration_guid AND p.study_id = o.study_idWHERE p.study_id = 'STUDY001' AND p.emis_registration_organisation_guid = 'ORG-GUID-001'GROUP BY p.pseudo_patient_id, p.date_of_birthJoining Medications to Problems
Section titled “Joining Medications to Problems”Link medication records to clinical problems through problem links:
SELECT dr.emis_drug_guid, dr.drug_name, p.problem_description, drpl.linkage_typeFROM explorer_recruit_anon.drug_record AS drINNER JOIN explorer_recruit_anon.drug_record_problem_link AS drpl ON dr.emis_drug_guid = drpl.emis_drug_guid AND dr.study_id = drpl.study_idINNER JOIN explorer_recruit_anon.problem AS p ON drpl.emis_problem_guid = p.emis_problem_guid AND drpl.study_id = p.study_idWHERE dr.study_id = 'STUDY001'LIMIT 100