Skip to content
Partner Developer Portal

Changes in iPCV V2

The following columns are introduced across the appointment models. They are included only where relevant model to the specific flavour as presented in the schema.

The table below compares where each added column exists across the three appointment models.

Column NameAppointment sessionAppointment session userAppointment slot
Session-level identifiers and classification
session_id✓✗✓
session_uuid✓✓✓
session_type_id✓✗✗
session_category_id✓✗✗
Organisation and location identifiers
organisation_id✓✗✗
organisation_uuid✓✓✗
session_organisation_id✗✗✓
session_organisation_uuid✗✗✓
location_id✓✓✗
location_guid✗✓✗
location_uuid✓✓✗
Session user identifiers
user_in_role_uuid✗✓✗
Session utilisation and attendance metrics
total_slots✓✗✗
bookable_slots✓✗✗
booked_slots✓✗✗
unfilled_slots✓✗✗
deleted_slots✓✗✗
embargoed_slots✓✗✗
dna_appointments✓✗✗
cancelled_and_rebooked_appointments✓✗✗
cancelled_and_not_rebooked_appointments✓✗✗
same_day_appointments✓✗✗
in_person_appointments✓✗✗
virtual_appointments✓✗✗
patient_age_at_appointment✓✗✓
registered_patient_count✓✗✗
unregistered_patient_count✓✗✗
Slot identity and patient linkage
appointment_slot_uuid✗✗✓
patient_uuid✗✗✓
patient_organisation_uuid✗✗✓
external_patient_organisation_uuid✗✗✓
appointment_slot_id✗✗✓
patient_id✗✗✓
patient_organisation_id✗✗✓
external_patient_organisation_id✗✗✓
external_patient_guid✗✗✓
patient_organisation_guid✗✗✓
Slot timing, status, type, and workflow
call_started_datetime✗✗✓
call_ended_datetime✗✗✓
appointment_lead_time_in_minutes✗✗✓
current_status_datetime✗✗✓
current_status_type_id✗✗✓
current_status_last_set_by_global_user_in_role_id✗✗✓
current_status_last_set_by_global_user_in_role_uuid✗✗✓
slot_type_id✗✗✓
slot_type_national_category_name✗✗✓
slot_type_national_category_description✗✗✓
context_type✗✗✓
service_setting✗✗✓
booked_by_external_organisation_id✗✗✓
booked_by_external_organisation_uuid✗✗✓
booking_method_id✗✗✓
did_not_attend_reason_id✗✗✓
embargo_type_id✗✗✓
embargo_days✗✗✓
embargo_minutes✗✗✓
embargo_time✗✗✓
embargo_is_relative✗✗✓

Why?

These additions provide more granular details for the record. The new ID-based and UUID-based columns in the Appointment session and Appointment session user models align those models with modern identifier practices, paving the way for deprecating older fields and improving system consistency.

The Appointment slot model additions provide durable identity, operational lineage, and clearer booking and attendance context, improving traceability, relationship mapping, and performance analysis across sessions, patients, and external booking sources.

Customer benefit

  • Enhanced consistency: Standardizes the use of identifiers and status flags across different model flavours
  • New Appointment session metric columns (e.g. total_slots, booked_slots, dna_appointments) enable session-level utilisation and attendance reporting without needing to aggregate from other models
  • New location_id, location_guid, and location_uuid columns in the Appointment session user model enable records to be linked directly to the location of the appointment session without needing to join to other models
  • Better visibility of appointment flow, booking source, and booking outcome
  • Improved analysis of waiting time, attendance, status changes, and embargo logic
  • Clearer support for in-person versus virtual, booked versus blocked, and patient journey reporting

Customer action

  • Review logic that handles patient or session-user data to incorporate the new fields and IDs for more accurate reporting
  • Begin planning the migration from the Appointment session model’s older identifiers (e.g. registration_organisation_guid / organisation_guid) to their new ID-based counterparts (e.g. registration_organisation_id / organisation_id) in custom queries or downstream systems
  • Use the v2 identity, status, and booking fields from the Appointment slot model when building new joins and reports
  • Validate downstream systems or reports to ensure they can utilize the new columns effectively
  • Review downstream logic that still depends on older slot-level indicators or manual status interpretation
  • No immediate action required if consuming the fields directly from the v2 model

Several columns as detailed below have been decommissioned in the appointment models.

Decommissioned ColumnRelevant ID / ColumnReason / Extended Data Model to be Referred
confidential_patient_flagpatient_idpatient_v2
dummy_patient_flagpatient_idpatient_v2
regular_patient_flagpatient_idpatient_v2
sensitive_patient_flagpatient_idpatient_v2
non_regular_and_current_activepatient_idpatient_v2
regular_and_current_activepatient_idpatient_v2
regular_current_active_and_inactivepatient_idpatient_v2
opt_out_9nd19nu09nu4_flagpatient_idpatient_v2
opt_out_9nd19nu0_flagpatient_idpatient_v2
session_category_display_namesession_idappointment_session_v2
session_deletedsession_idappointment_session_v2
session_locationsession_idappointment_session_v2
session_start_date_timesession_idappointment_session_v2
session_end_date_timesession_idappointment_session_v2
session_lead_hcp_typesession_idappointment_session_v2
_record_versionNo longer available in v2
slot_release_dateRemoved as it is deprecated in v2
slot_release_date_timeRemoved as it is deprecated in v2
slot_release_timeRemoved as it is deprecated in v2

Why?

These columns have been removed to streamline the data model and maintain a single source of truth for reference data:

  • Patient filter columns: The Appointment slot model’s patient opt-out and registration flags are maintained in patient_v2.
  • Appointment session context columns: Session context fields (category, location, and legacy session state/timing fields) are represented through the standardised appointment_session_v2 model.
  • Legacy slot audit columns: Slot-level legacy audit/release fields are deprecated in v2 and replaced by standardised state and lineage fields such as transform_datetime.

Customer benefit

  • Single source of truth for patient flags through the patient scope dimension table
  • Reduced risk of data inconsistencies and synchronisation issues
  • Cleaner separation of session-level and slot-level attributes
  • Improved data lineage tracking with centralised reference tables

Customer action

  • Review and update any processes that relied on the removed columns
  • Query the patient scope dimension table or patient_v2 model for the patient registration flags that replaced the Appointment slot model’s patient flag columns
  • Use the appointment_session_v2 model for the Appointment session model’s attributes such as location and category

Several columns in the appointment models now consistently return NULL values and have been retained for backward compatibility.

These include:

Deprecated ColumnReplacement ID / ColumnReason / Extended Data Model to be Referred
emis_consultation_authorising_userinrole_guidappointment_slot_idauthorising_user_in_role_id in consultation_v2
emis_lead_session_userinrole_guidsession_idappointment_session_user_v2
external_patient_flagexternal_patient_guidAvailable in the appointment_slot model itself
emis_bookingsource_organisation_guidAlways NULL as it is deprecated in v2
did_not_attend_flagAlways NULL as it is deprecated in v2
processing_idAlways NULL as it is deprecated in v2

These decommissioned NULL value columns will be removed in a future iPCV release; plan migrations accordingly.

Why?

These columns needs to be fetched from are retained to maintain backward compatibility while returning NULL values to ensure consistent behavior in downstream processes.

Customer benefit

  • Improved data lineage tracking with centralised reference tables
  • External patient identification is now handled through the Appointment slot model’s external_patient_guid and external_patient_organisation_id

Customer action

  • Review and update any processes that relied on these columns
  • Use the Appointment slot model’s external_patient_guid to identify external patients instead of external_patient_flag

Several columns as detailed below have been renamed in the appointment models.

Renamed ColumnColumn Name in v2Comment
session_deleted_flagis_deletedRenamed to make it consistent with all models
session_deletedis_deletedRenamed to make it consistent with all models
session_user_deleted_flagis_deletedRenamed to make it consistent with all models
slot_deletedis_deletedRenamed to make it consistent with all models
deletedis_deletedRenamed to make it consistent with all models
sendin_timesent_in_datetimeRenamed to make it consistent with other status datetime columns
left_timeleft_datetimeRenamed to make it consistent with other status datetime columns
time_bookedbooked_datetimeRenamed to make it consistent with other datetime columns
patient_wait_in_minuteswaiting_time_in_minutesRenamed to make it consistent with other datetime columns
organisation_guidsession_organisation_guidRenamed to differentiate the organisation set against the patient and the session.
execution_date_execution_dateRenamed to make it consistent with all models

Why?

Column names were renamed to improve consistency and clarity across appointment models and flavour outputs.

Customer benefit

  • More consistent naming patterns across models, reducing ambiguity in joins and transformations
  • Lower risk of mapping errors during migration from v1 naming conventions

Customer action

  • Review any processes or integrations that relied on the renamed columns
  • Ensure that any necessary mappings or transformations are adjusted accordingly