Skip to content
Partner Developer Portal

Anonymised

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.


ModelDescription
PatientDemographics, registration status, and consent flags
ObservationClinical observations, test results, and coded entries
ConsultationPatient consultations with practitioners
ProblemActive and past clinical problems
ReferralInbound and outbound referrals
ImmunisationImmunisation and vaccination records
AllergyPatient allergies and adverse reactions
Diary EntryDiary entries and recall events
SlotAppointment slots and booking status
ModelDescription
Drug RecordMedication courses (repeat and acute prescriptions)
Issue RecordIndividual prescription issues from a drug record
Drug Record Problem LinkLinks between drug records and clinical problems
Issue Record Problem LinkLinks between issue records and clinical problems
ModelDescription
Clinical CodeSNOMED CT and Read code mappings
Codeable ConceptExtended code metadata including fully specified names
Drug CodeDrug code mappings and pharmaceutical identifiers
MKB Mapping AttributesLanguage and attribute code mappings
MKB Mapping DMD Preparationdm+d preparation code mappings
MKB Mapping EthnicityEthnicity SNOMED code mappings
MKB VersionMKB coding database version and metadata
ModelDescription
OrganisationHealthcare organisations participating in recruit studies
Organisation LocationLocations and branches within organisations
User In RoleHealthcare practitioners and their roles within organisations
SessionUser sessions and system access records
Session UserUser associations with sessions
Sharing OrganisationOrganisations with data sharing agreements

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_role and 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.

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 availability and update frequency depends on the source systems and study requirements. Consult your study protocol and data governance documentation for specific refresh schedules.

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.


For practical guidance on common modelling questions with anonymised data, refer to your study-specific documentation or data dictionary.

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_id
FROM explorer_recruit_anon.observation AS o
INNER JOIN explorer_recruit_anon.patient AS p
ON o.pseudo_registration_guid = p.pseudo_registration_guid
AND o.study_id = p.study_id
WHERE o.study_id = 'STUDY001'

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_id
FROM explorer_recruit_anon.observation AS o
INNER JOIN explorer_recruit_anon.clinical_code AS c
ON o.emis_code_id = c.emis_code_id
AND o.study_id = c.study_id
WHERE o.study_id = 'STUDY001'
LIMIT 100

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_count
FROM explorer_recruit_anon.patient AS p
LEFT JOIN explorer_recruit_anon.observation AS o
ON p.pseudo_registration_guid = o.pseudo_registration_guid
AND p.study_id = o.study_id
WHERE p.study_id = 'STUDY001'
AND p.emis_registration_organisation_guid = 'ORG-GUID-001'
GROUP BY p.pseudo_patient_id, p.date_of_birth

Link medication records to clinical problems through problem links:

SELECT
dr.emis_drug_guid,
dr.drug_name,
p.problem_description,
drpl.linkage_type
FROM explorer_recruit_anon.drug_record AS dr
INNER 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_id
INNER JOIN explorer_recruit_anon.problem AS p
ON drpl.emis_problem_guid = p.emis_problem_guid
AND drpl.study_id = p.study_id
WHERE dr.study_id = 'STUDY001'
LIMIT 100