Skip to content
Partner Developer Portal

How should I work with registration history?

OpenSafely presents a deduplicated current-registration view in the patient model. This supports consistent cohort construction and avoids duplicate rows for people who move between practices.

  • A patient appears once in patient for their current registration.
  • When a patient transfers practice, the patient row is updated to the new organisation context.
  • Historical events remain available and linked through the deduplicated patient representation.

For full transfer behaviour, see Practice Transfers and Patient De-duplication.

  • For current population analyses, use the patient model as the authoritative registration view.
  • For longitudinal analyses, use stable patient identifiers (nhs_number) and time-filtered event models.
  • The patient model does not provide a full historical registration timeline; historical registrations are not exposed as a separate customer-facing model.
SELECT
p.patient_id,
p.organisation_id,
p.registration_start_datetime,
p.registration_end_datetime,
p.is_active,
p.has_died
FROM explorer_open_safely.patient AS p
WHERE p.is_active = TRUE