From e11bbeaa99007439c8e790dc4c80e17b1d032144 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 31 Oct 2025 12:35:44 -0400 Subject: [PATCH 01/37] Initial commit --- .../sedm/base/base_sedm__idea_events.sql | 48 +++++++++++++++ ..._student_iep_accommodation_collections.sql | 40 +++++++++++++ .../base_sedm__student_iep_associations.sql | 59 +++++++++++++++++++ ...dm__student_iep_disability_collections.sql | 39 ++++++++++++ .../base/base_sedm__student_iep_goals.sql | 46 +++++++++++++++ ...e_sedm__student_iep_service_deliveries.sql | 52 ++++++++++++++++ ...edm__student_iep_service_prescriptions.sql | 54 +++++++++++++++++ 7 files changed, 338 insertions(+) create mode 100644 models/staging/sedm/base/base_sedm__idea_events.sql create mode 100644 models/staging/sedm/base/base_sedm__student_iep_accommodation_collections.sql create mode 100644 models/staging/sedm/base/base_sedm__student_iep_associations.sql create mode 100644 models/staging/sedm/base/base_sedm__student_iep_disability_collections.sql create mode 100644 models/staging/sedm/base/base_sedm__student_iep_goals.sql create mode 100644 models/staging/sedm/base/base_sedm__student_iep_service_deliveries.sql create mode 100644 models/staging/sedm/base/base_sedm__student_iep_service_prescriptions.sql diff --git a/models/staging/sedm/base/base_sedm__idea_events.sql b/models/staging/sedm/base/base_sedm__idea_events.sql new file mode 100644 index 00000000..81fadd56 --- /dev/null +++ b/models/staging/sedm/base/base_sedm__idea_events.sql @@ -0,0 +1,48 @@ +with source_ideaevents as ( + {{ source_edfi3('idea_events') }} +), + +renamed as ( + select + -- generic columns + tenant_code, + api_year, + pull_timestamp, + last_modified_timestamp, + file_row_number, + filename, + is_deleted, + + v:id::string as record_guid, + ods_version, + data_model_version, + + -- identity components (composite key) + v:ideaEventID::string as idea_event_id, + v:studentReference:studentUniqueId::string as student_unique_id, + v:educationOrganizationReference:educationOrganizationId::int as ed_org_id, + v:educationOrganizationReference:link:rel::string as ed_org_type, + {{ extract_descriptor('v:ideaEventDescriptor::string') }} as idea_event, + + -- required fields + v:eventBeginDate::date as event_begin_date, + v:eventEndDate::date as event_end_date, + + -- optional fields + v:eventNarrative::string as event_narrative, + + -- descriptors + {{ extract_descriptor('v:eventReasonDescriptor::string') }} as event_reason, + {{ extract_descriptor('v:eventComplianceDescriptor::string') }} as event_compliance, + + -- references + v:educationOrganizationReference as education_organization_reference, + v:studentReference as student_reference, + + -- edfi extensions + v:_ext as v_ext + + from source_ideaevents +) + +select * from renamed diff --git a/models/staging/sedm/base/base_sedm__student_iep_accommodation_collections.sql b/models/staging/sedm/base/base_sedm__student_iep_accommodation_collections.sql new file mode 100644 index 00000000..2c6a2beb --- /dev/null +++ b/models/staging/sedm/base/base_sedm__student_iep_accommodation_collections.sql @@ -0,0 +1,40 @@ +with source_student_iep_accommodation_collections as ( + {{ source_edfi3('student_iep_accommodation_collections') }} +), + +renamed as ( + select + -- generic columns + tenant_code, + api_year, + pull_timestamp, + last_modified_timestamp, + file_row_number, + filename, + is_deleted, + + v:id::string as record_guid, + ods_version, + data_model_version, + + -- identity components (composite key) + v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, + v:studentIEPReference:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, + v:studentIEPReference:iepFinalizedDate::date as iep_finalized_date, + v:studentReference:studentUniqueId::string as student_unique_id, + + -- references + v:studentReference as student_reference, + v:studentIEPReference as student_iep_reference, + + -- required collections + v:accommodations as v_accommodations, + + -- edfi extensions + v:_ext as v_ext + + from source_student_iep_accommodation_collections +) + +select * from renamed + diff --git a/models/staging/sedm/base/base_sedm__student_iep_associations.sql b/models/staging/sedm/base/base_sedm__student_iep_associations.sql new file mode 100644 index 00000000..7759a480 --- /dev/null +++ b/models/staging/sedm/base/base_sedm__student_iep_associations.sql @@ -0,0 +1,59 @@ +with source_student_iep_associations as ( + {{ source_edfi3('student_iep_associations') }} +), + +renamed as ( + select + -- generic columns + tenant_code, + api_year, + pull_timestamp, + last_modified_timestamp, + file_row_number, + filename, + is_deleted, + + v:id::string as record_guid, + ods_version, + data_model_version, + + -- identity components (composite key) + v:studentIEPAssociationID::string as student_iep_association_id, + v:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, + v:educationOrganizationReference:link:rel::string as iep_servicing_ed_org_type, + v:iepFinalizedDate::date as iep_finalized_date, + v:studentReference:studentUniqueId::string as student_unique_id, + + -- required fields + v:iepBeginDate::date as iep_begin_date, + v:iepEndDate::date as iep_end_date, + {{ extract_descriptor('v:iepStatusDescriptor::string') }} as iep_status, + + -- optional fields + v:iepAmendedDate::date as iep_amended_date, + v:medicallyFragile::boolean as is_medically_fragile, + v:multiplyDisabled::boolean as is_multiply_disabled, + v:schoolHoursPerWeek::float as school_hours_per_week, + v:specialEducationHoursPerWeek::float as spec_ed_hours_per_week, + + -- descriptors + {{ extract_descriptor('v:reasonExitedDescriptor::string') }} as reason_exited, + {{ extract_descriptor('v:specialEducationSettingDescriptor::string') }} as special_education_setting, + + -- references + v:educationOrganizationReference as education_organization_reference, + v:studentReference as student_reference, + v:studentSpecialEducationProgramAssociationReference as student_spec_ed_program_association_reference, + v:studentSpecialEducationProgramEligibilityAssociationReference as student_spec_ed_program_eligibility_association_reference, + + -- collections + v:ideaevents as v_ideaevents, + + -- edfi extensions + v:_ext as v_ext + + from source_student_iep_associations +) + +select * from renamed + diff --git a/models/staging/sedm/base/base_sedm__student_iep_disability_collections.sql b/models/staging/sedm/base/base_sedm__student_iep_disability_collections.sql new file mode 100644 index 00000000..0987a648 --- /dev/null +++ b/models/staging/sedm/base/base_sedm__student_iep_disability_collections.sql @@ -0,0 +1,39 @@ +with source_student_iep_disability_collections as ( + {{ source_edfi3('student_iep_disability_collections') }} +), + +renamed as ( + select + -- generic columns + tenant_code, + api_year, + pull_timestamp, + last_modified_timestamp, + file_row_number, + filename, + is_deleted, + + v:id::string as record_guid, + ods_version, + data_model_version, + + -- identity components (composite key) + v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, + v:studentIEPReference:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, + v:studentIEPReference:iepFinalizedDate::date as iep_finalized_date, + v:studentReference:studentUniqueId::string as student_unique_id, + + -- references + v:studentReference as student_reference, + v:studentIEPReference as student_iep_reference, + + -- required collections + v:disabilities as v_disabilities, + + -- edfi extensions + v:_ext as v_ext + + from source_student_iep_disability_collections +) + +select * from renamed diff --git a/models/staging/sedm/base/base_sedm__student_iep_goals.sql b/models/staging/sedm/base/base_sedm__student_iep_goals.sql new file mode 100644 index 00000000..c1058d9a --- /dev/null +++ b/models/staging/sedm/base/base_sedm__student_iep_goals.sql @@ -0,0 +1,46 @@ +with source_student_iep_goals as ( + {{ source_edfi3('student_iep_goals') }} +), + +renamed as ( + select + -- generic columns + tenant_code, + api_year, + pull_timestamp, + last_modified_timestamp, + file_row_number, + filename, + is_deleted, + + v:id::string as record_guid, + ods_version, + data_model_version, + + -- identity components (composite key) + v:iepGoalID::string as iep_goal_id, + v:studentReference:studentUniqueId::string as student_unique_id, + v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, + v:studentIEPReference:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, + v:studentIEPReference:iepFinalizedDate::date as iep_finalized_date, + + -- required fields + {{ extract_descriptor('v:iepGoalDescriptor::string') }} as iep_goal, + v:iepGoalDetails::string as iep_goal_details, + + -- optional fields + v:goalAchievementPeriodBeginDate::date as goal_achievement_period_begin_date, + v:goalAchievementPeriodEndDate::date as goal_achievement_period_end_date, + + -- references + v:studentReference as student_reference, + v:studentIEPReference as student_iep_reference, + v:ideaeventReferences as ideaevent_references, + + -- edfi extensions + v:_ext as v_ext + + from source_student_iep_goals +) + +select * from renamed diff --git a/models/staging/sedm/base/base_sedm__student_iep_service_deliveries.sql b/models/staging/sedm/base/base_sedm__student_iep_service_deliveries.sql new file mode 100644 index 00000000..1864a1e4 --- /dev/null +++ b/models/staging/sedm/base/base_sedm__student_iep_service_deliveries.sql @@ -0,0 +1,52 @@ +with source_student_iep_service_deliveries as ( + {{ source_edfi3('student_iep_service_deliveries') }} +), + +renamed as ( + select + -- generic columns + tenant_code, + api_year, + pull_timestamp, + last_modified_timestamp, + file_row_number, + filename, + is_deleted, + + v:id::string as record_guid, + ods_version, + data_model_version, + + -- identity components (composite key) + v:iepServiceDeliveryID::string as iep_service_delivery_id, + v:studentReference:studentUniqueId::string as student_unique_id, + v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, + v:studentIEPReference:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, + v:studentIEPReference:iepFinalizedDate::date as iep_finalized_date, + {{ extract_descriptor('v:serviceDeliveryDescriptor::string') }} as service_delivery, + v:serviceDeliveryDate::date as service_delivery_date, + + -- optional fields + v:studentIEPServicePrescriptionReference:iepServiceID::string as iep_service_prescription_id, + v:studentIEPServicePrescriptionReference:servicePrescriptionDate::date as service_prescription_date, + {{ extract_descriptor('v:serviceProviderDescriptor::string') }} as service_provider_type, + v:serviceProviderStaffReference:staffUniqueId::string as service_provider_staff_unique_id, + + -- references + v:studentReference as student_reference, + v:studentIEPReference as student_iep_reference, + v:studentIEPServicePrescriptionReference as student_iep_service_prescription_reference, + v:serviceProviderStaffReference as service_provider_staff_reference, + v:ideaeventReferences as ideaevent_references, + + -- collections + v:serviceProviders as v_service_providers, + v:externalServiceProviders as v_external_service_providers, + + -- edfi extensions + v:_ext as v_ext + + from source_student_iep_service_deliveries +) + +select * from renamed diff --git a/models/staging/sedm/base/base_sedm__student_iep_service_prescriptions.sql b/models/staging/sedm/base/base_sedm__student_iep_service_prescriptions.sql new file mode 100644 index 00000000..b334d4ea --- /dev/null +++ b/models/staging/sedm/base/base_sedm__student_iep_service_prescriptions.sql @@ -0,0 +1,54 @@ +with source_student_iep_service_prescriptions as ( + {{ source_edfi3('student_iep_service_prescriptions') }} +), + +renamed as ( + select + -- generic columns + tenant_code, + api_year, + pull_timestamp, + last_modified_timestamp, + file_row_number, + filename, + is_deleted, + + v:id::string as record_guid, + ods_version, + data_model_version, + + -- identity components (composite key) + v:iepServiceID::string as iep_service_id, + v:studentReference:studentUniqueId::string as student_unique_id, + v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, + v:studentIEPReference:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, + v:studentIEPReference:iepFinalizedDate::date as iep_finalized_date, + {{ extract_descriptor('v:servicePrescriptionDescriptor::string') }} as service_prescription, + v:servicePrescriptionDate::date as service_prescription_date, + + -- required fields + v:beginDate::date as begin_date, + v:durationMinutes::float as duration_minutes, + {{ extract_descriptor('v:durationPeriodDescriptor::string') }} as duration_period, + v:frequencyValue::float as frequency_value, + {{ extract_descriptor('v:frequencyPeriodDescriptor::string') }} as frequency_period, + {{ extract_descriptor('v:serviceLocationTypeDescriptor::string') }} as service_location_type, + + -- optional fields + v:endDate::date as end_date, + v:serviceEducationOrganizationID::int as service_ed_org_id, + v:serviceProviderStaffID::string as service_provider_staff_id, + + -- references + v:studentReference as student_reference, + v:studentIEPReference as student_iep_reference, + v:serviceProviderStaffReference as service_provider_staff_reference, + v:ideaeventReferences as ideaevent_references, + + -- edfi extensions + v:_ext as v_ext + + from source_student_iep_service_prescriptions +) + +select * from renamed From bbdc7308d20a21da28fb5caae77ff6ac37d6e814 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 31 Oct 2025 15:44:16 -0400 Subject: [PATCH 02/37] Add yaml --- dbt_project.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dbt_project.yml b/dbt_project.yml index ef064d31..75c21c99 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -40,6 +40,11 @@ models: +materialized: view stage: +materialized: table + sedm: + base: + +materialized: view + stage: + +materialized: table vars: extensions: null From 05558a86c7f363edf56b7b878cdbb3191e050559 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 31 Oct 2025 15:45:02 -0400 Subject: [PATCH 03/37] Clean up student_iep_assoc --- .../base_sedm__student_iep_associations.sql | 45 ++++++++----------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/models/staging/sedm/base/base_sedm__student_iep_associations.sql b/models/staging/sedm/base/base_sedm__student_iep_associations.sql index 7759a480..7aea68e7 100644 --- a/models/staging/sedm/base/base_sedm__student_iep_associations.sql +++ b/models/staging/sedm/base/base_sedm__student_iep_associations.sql @@ -1,4 +1,4 @@ -with source_student_iep_associations as ( +with student_iep_associations as ( {{ source_edfi3('student_iep_associations') }} ), @@ -12,47 +12,38 @@ renamed as ( file_row_number, filename, is_deleted, - - v:id::string as record_guid, + v:id::string as record_guid, ods_version, data_model_version, - - -- identity components (composite key) - v:studentIEPAssociationID::string as student_iep_association_id, - v:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, - v:educationOrganizationReference:link:rel::string as iep_servicing_ed_org_type, - v:iepFinalizedDate::date as iep_finalized_date, - v:studentReference:studentUniqueId::string as student_unique_id, - - -- required fields + -- key columns + v:studentIEPAssociationID::string as student_iep_association_id, + v:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, + v:educationOrganizationReference:link:rel::string as iep_servicing_ed_org_type, + v:iepFinalizedDate::date as iep_finalized_date, + v:studentReference:studentUniqueId::string as student_unique_id, + -- value columns v:iepBeginDate::date as iep_begin_date, v:iepEndDate::date as iep_end_date, - {{ extract_descriptor('v:iepStatusDescriptor::string') }} as iep_status, - - -- optional fields v:iepAmendedDate::date as iep_amended_date, v:medicallyFragile::boolean as is_medically_fragile, v:multiplyDisabled::boolean as is_multiply_disabled, v:schoolHoursPerWeek::float as school_hours_per_week, v:specialEducationHoursPerWeek::float as spec_ed_hours_per_week, - -- descriptors + {{ extract_descriptor('v:iepStatusDescriptor::string') }} as iep_status, {{ extract_descriptor('v:reasonExitedDescriptor::string') }} as reason_exited, {{ extract_descriptor('v:specialEducationSettingDescriptor::string') }} as special_education_setting, - -- references - v:educationOrganizationReference as education_organization_reference, - v:studentReference as student_reference, - v:studentSpecialEducationProgramAssociationReference as student_spec_ed_program_association_reference, - v:studentSpecialEducationProgramEligibilityAssociationReference as student_spec_ed_program_eligibility_association_reference, - - -- collections - v:ideaevents as v_ideaevents, - + v:educationOrganizationReference as education_organization_reference, + v:studentReference as student_reference, + v:studentSpecialEducationProgramAssociationReference as student_spec_ed_program_association_reference, + v:studentSpecialEducationProgramEligibilityAssociationReference as student_spec_ed_program_eligibility_association_reference, + -- lists + v:ideaEvents as v_idea_events, -- edfi extensions - v:_ext as v_ext + v:_ext as v_ext - from source_student_iep_associations + from student_iep_associations ) select * from renamed From 624415f2a897a746d0a027a066e4d2c004103c16 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Mon, 3 Nov 2025 08:48:45 -0500 Subject: [PATCH 04/37] Clean up idea_events --- .../sedm/base/base_sedm__idea_events.sql | 40 ++++++++----------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/models/staging/sedm/base/base_sedm__idea_events.sql b/models/staging/sedm/base/base_sedm__idea_events.sql index 81fadd56..036cf5a4 100644 --- a/models/staging/sedm/base/base_sedm__idea_events.sql +++ b/models/staging/sedm/base/base_sedm__idea_events.sql @@ -1,10 +1,9 @@ -with source_ideaevents as ( +with source_idea_events as ( {{ source_edfi3('idea_events') }} ), renamed as ( select - -- generic columns tenant_code, api_year, pull_timestamp, @@ -12,37 +11,30 @@ renamed as ( file_row_number, filename, is_deleted, - - v:id::string as record_guid, + v:id::string as record_guid, ods_version, data_model_version, - - -- identity components (composite key) - v:ideaEventID::string as idea_event_id, - v:studentReference:studentUniqueId::string as student_unique_id, - v:educationOrganizationReference:educationOrganizationId::int as ed_org_id, - v:educationOrganizationReference:link:rel::string as ed_org_type, - {{ extract_descriptor('v:ideaEventDescriptor::string') }} as idea_event, - - -- required fields - v:eventBeginDate::date as event_begin_date, - v:eventEndDate::date as event_end_date, - - -- optional fields - v:eventNarrative::string as event_narrative, - + -- key columns + v:ideaEventID::string as idea_event_id, + v:studentReference:studentUniqueId::string as student_unique_id, + v:educationOrganizationReference:educationOrganizationId::int as ed_org_id, + v:educationOrganizationReference:link:rel::string as ed_org_type, + {{ extract_descriptor('v:ideaEventDescriptor::string') }} as idea_event, + -- value columns + v:eventBeginDate::date as event_begin_date, + v:eventEndDate::date as event_end_date, + v:eventNarrative::string as event_narrative, -- descriptors {{ extract_descriptor('v:eventReasonDescriptor::string') }} as event_reason, {{ extract_descriptor('v:eventComplianceDescriptor::string') }} as event_compliance, - -- references - v:educationOrganizationReference as education_organization_reference, - v:studentReference as student_reference, + v:educationOrganizationReference as education_organization_reference, + v:studentReference as student_reference, -- edfi extensions - v:_ext as v_ext + v:_ext as v_ext - from source_ideaevents + from source_idea_events ) select * from renamed From 9f658d501542a24ab438f7c823f8342426fa3d99 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Mon, 3 Nov 2025 09:05:44 -0500 Subject: [PATCH 05/37] Clean up student_iep_service_prescriptions --- ...edm__student_iep_service_prescriptions.sql | 42 ++++++++----------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/models/staging/sedm/base/base_sedm__student_iep_service_prescriptions.sql b/models/staging/sedm/base/base_sedm__student_iep_service_prescriptions.sql index b334d4ea..f254a475 100644 --- a/models/staging/sedm/base/base_sedm__student_iep_service_prescriptions.sql +++ b/models/staging/sedm/base/base_sedm__student_iep_service_prescriptions.sql @@ -4,7 +4,6 @@ with source_student_iep_service_prescriptions as ( renamed as ( select - -- generic columns tenant_code, api_year, pull_timestamp, @@ -12,12 +11,10 @@ renamed as ( file_row_number, filename, is_deleted, - - v:id::string as record_guid, + v:id::string as record_guid, ods_version, data_model_version, - - -- identity components (composite key) + -- key columns v:iepServiceID::string as iep_service_id, v:studentReference:studentUniqueId::string as student_unique_id, v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, @@ -25,28 +22,25 @@ renamed as ( v:studentIEPReference:iepFinalizedDate::date as iep_finalized_date, {{ extract_descriptor('v:servicePrescriptionDescriptor::string') }} as service_prescription, v:servicePrescriptionDate::date as service_prescription_date, - - -- required fields - v:beginDate::date as begin_date, - v:durationMinutes::float as duration_minutes, - {{ extract_descriptor('v:durationPeriodDescriptor::string') }} as duration_period, - v:frequencyValue::float as frequency_value, - {{ extract_descriptor('v:frequencyPeriodDescriptor::string') }} as frequency_period, - {{ extract_descriptor('v:serviceLocationTypeDescriptor::string') }} as service_location_type, - - -- optional fields - v:endDate::date as end_date, - v:serviceEducationOrganizationID::int as service_ed_org_id, - v:serviceProviderStaffID::string as service_provider_staff_id, - + -- value columns + v:beginDate::date as begin_date, + v:endDate::date as end_date, + v:durationMinutes::float as duration_minutes, + v:frequencyValue::float as frequency_value, + v:serviceEducationOrganizationID::int as service_ed_org_id, + v:serviceProviderStaffID::string as service_provider_staff_id, + -- descriptors + {{ extract_descriptor('v:durationPeriodDescriptor::string') }} as duration_period, + {{ extract_descriptor('v:frequencyPeriodDescriptor::string') }} as frequency_period, + {{ extract_descriptor('v:serviceLocationTypeDescriptor::string') }} as service_location_type, -- references - v:studentReference as student_reference, - v:studentIEPReference as student_iep_reference, - v:serviceProviderStaffReference as service_provider_staff_reference, - v:ideaeventReferences as ideaevent_references, + v:studentReference as student_reference, + v:studentIEPReference as student_iep_reference, + v:serviceProviderStaffReference as service_provider_staff_reference, + v:ideaeventReferences as ideaevent_references, -- edfi extensions - v:_ext as v_ext + v:_ext as v_ext from source_student_iep_service_prescriptions ) From 44cff9b4aff40aa3bc885e306d1350f725aa3e5d Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Mon, 3 Nov 2025 09:17:39 -0500 Subject: [PATCH 06/37] Fix model name, clean up iep_goals --- .../sedm/base/base_sedm__iep_goals.sql | 38 +++++++++++++++ .../base/base_sedm__student_iep_goals.sql | 46 ------------------- 2 files changed, 38 insertions(+), 46 deletions(-) create mode 100644 models/staging/sedm/base/base_sedm__iep_goals.sql delete mode 100644 models/staging/sedm/base/base_sedm__student_iep_goals.sql diff --git a/models/staging/sedm/base/base_sedm__iep_goals.sql b/models/staging/sedm/base/base_sedm__iep_goals.sql new file mode 100644 index 00000000..f28ebe9c --- /dev/null +++ b/models/staging/sedm/base/base_sedm__iep_goals.sql @@ -0,0 +1,38 @@ +with source_iep_goals as ( + {{ source_edfi3('student_iep_goals') }} +), + +renamed as ( + select + tenant_code, + api_year, + pull_timestamp, + last_modified_timestamp, + file_row_number, + filename, + is_deleted, + v:id::string as record_guid, + ods_version, + data_model_version, + -- key columns + v:iepGoalID::string as iep_goal_id, + v:studentReference:studentUniqueId::string as student_unique_id, + v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, + -- value columns + v:iepGoalDetails::string as iep_goal_details, + v:goalAchievementPeriodBeginDate::date as goal_achievement_period_begin_date, + v:goalAchievementPeriodEndDate::date as goal_achievement_period_end_date, + -- descriptors + {{ extract_descriptor('v:iepGoalDescriptor::string') }} as iep_goal, + -- references + v:studentReference as student_reference, + v:studentIEPReference as student_iep_reference, + v:ideaeventReferences as ideaevent_references, + + -- edfi extensions + v:_ext as v_ext + + from source_student_iep_goals +) + +select * from renamed diff --git a/models/staging/sedm/base/base_sedm__student_iep_goals.sql b/models/staging/sedm/base/base_sedm__student_iep_goals.sql deleted file mode 100644 index c1058d9a..00000000 --- a/models/staging/sedm/base/base_sedm__student_iep_goals.sql +++ /dev/null @@ -1,46 +0,0 @@ -with source_student_iep_goals as ( - {{ source_edfi3('student_iep_goals') }} -), - -renamed as ( - select - -- generic columns - tenant_code, - api_year, - pull_timestamp, - last_modified_timestamp, - file_row_number, - filename, - is_deleted, - - v:id::string as record_guid, - ods_version, - data_model_version, - - -- identity components (composite key) - v:iepGoalID::string as iep_goal_id, - v:studentReference:studentUniqueId::string as student_unique_id, - v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, - v:studentIEPReference:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, - v:studentIEPReference:iepFinalizedDate::date as iep_finalized_date, - - -- required fields - {{ extract_descriptor('v:iepGoalDescriptor::string') }} as iep_goal, - v:iepGoalDetails::string as iep_goal_details, - - -- optional fields - v:goalAchievementPeriodBeginDate::date as goal_achievement_period_begin_date, - v:goalAchievementPeriodEndDate::date as goal_achievement_period_end_date, - - -- references - v:studentReference as student_reference, - v:studentIEPReference as student_iep_reference, - v:ideaeventReferences as ideaevent_references, - - -- edfi extensions - v:_ext as v_ext - - from source_student_iep_goals -) - -select * from renamed From 7ae510c3a935bb08907cb1d87370d355c4b45519 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Mon, 3 Nov 2025 12:44:12 -0500 Subject: [PATCH 07/37] Re-add student_ prefix to iep_goals --- ...{base_sedm__iep_goals.sql => base_sedm__student_iep_goals.sql} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename models/staging/sedm/base/{base_sedm__iep_goals.sql => base_sedm__student_iep_goals.sql} (100%) diff --git a/models/staging/sedm/base/base_sedm__iep_goals.sql b/models/staging/sedm/base/base_sedm__student_iep_goals.sql similarity index 100% rename from models/staging/sedm/base/base_sedm__iep_goals.sql rename to models/staging/sedm/base/base_sedm__student_iep_goals.sql From 973d24c25ba9c9e17dc606334888bd17542acbb4 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Mon, 3 Nov 2025 12:45:27 -0500 Subject: [PATCH 08/37] Clean up student_iep_goals --- models/staging/sedm/base/base_sedm__student_iep_goals.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/staging/sedm/base/base_sedm__student_iep_goals.sql b/models/staging/sedm/base/base_sedm__student_iep_goals.sql index f28ebe9c..5236b5d8 100644 --- a/models/staging/sedm/base/base_sedm__student_iep_goals.sql +++ b/models/staging/sedm/base/base_sedm__student_iep_goals.sql @@ -21,7 +21,7 @@ renamed as ( -- value columns v:iepGoalDetails::string as iep_goal_details, v:goalAchievementPeriodBeginDate::date as goal_achievement_period_begin_date, - v:goalAchievementPeriodEndDate::date as goal_achievement_period_end_date, + v:goalAchievementPeriodEndDate::date as goal_achievement_period_end_date, -- descriptors {{ extract_descriptor('v:iepGoalDescriptor::string') }} as iep_goal, -- references From 8e921ed77933fe74cb2760689387abd3198b68c9 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Mon, 3 Nov 2025 12:54:42 -0500 Subject: [PATCH 09/37] Clean up student_iep__service_deliveries --- ...e_sedm__student_iep_service_deliveries.sql | 50 ++++++++----------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/models/staging/sedm/base/base_sedm__student_iep_service_deliveries.sql b/models/staging/sedm/base/base_sedm__student_iep_service_deliveries.sql index 1864a1e4..8e024821 100644 --- a/models/staging/sedm/base/base_sedm__student_iep_service_deliveries.sql +++ b/models/staging/sedm/base/base_sedm__student_iep_service_deliveries.sql @@ -12,39 +12,33 @@ renamed as ( file_row_number, filename, is_deleted, - - v:id::string as record_guid, + v:id::string as record_guid, ods_version, data_model_version, - - -- identity components (composite key) - v:iepServiceDeliveryID::string as iep_service_delivery_id, - v:studentReference:studentUniqueId::string as student_unique_id, - v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, - v:studentIEPReference:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, - v:studentIEPReference:iepFinalizedDate::date as iep_finalized_date, - {{ extract_descriptor('v:serviceDeliveryDescriptor::string') }} as service_delivery, - v:serviceDeliveryDate::date as service_delivery_date, - - -- optional fields - v:studentIEPServicePrescriptionReference:iepServiceID::string as iep_service_prescription_id, - v:studentIEPServicePrescriptionReference:servicePrescriptionDate::date as service_prescription_date, - {{ extract_descriptor('v:serviceProviderDescriptor::string') }} as service_provider_type, - v:serviceProviderStaffReference:staffUniqueId::string as service_provider_staff_unique_id, - + -- key columns + v:iepServiceDeliveryID::string as iep_service_delivery_id, + v:studentReference:studentUniqueId::string as student_unique_id, + v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, + {{ extract_descriptor('v:serviceDeliveryDksescriptor::string') }} as service_delivery, + v:serviceDeliveryDate::date as service_delivery_date, + -- value columns + v:studentIEPServicePrescriptionReference:iepServiceID::string as iep_service_prescription_id, + v:studentIEPServicePrescriptionReference:servicePrescriptionDate::date as service_prescription_date, + v:serviceProviderStaffReference:staffUniqueId::string as service_provider_staff_unique_id, + -- descriptors + {{ extract_descriptor('v:serviceProviderDescriptor::string') }} as service_provider_type, -- references - v:studentReference as student_reference, - v:studentIEPReference as student_iep_reference, - v:studentIEPServicePrescriptionReference as student_iep_service_prescription_reference, - v:serviceProviderStaffReference as service_provider_staff_reference, - v:ideaeventReferences as ideaevent_references, - - -- collections - v:serviceProviders as v_service_providers, - v:externalServiceProviders as v_external_service_providers, + v:studentReference as student_reference, + v:studentIEPReference as student_iep_reference, + v:studentIEPServicePrescriptionReference as student_iep_service_prescription_reference, + v:serviceProviderStaffReference as service_provider_staff_reference, + v:ideaeventReferences as ideaevent_references, + -- lists + v:serviceProviders as v_service_providers, + v:externalServiceProviders as v_external_service_providers, -- edfi extensions - v:_ext as v_ext + v:_ext as v_ext from source_student_iep_service_deliveries ) From 4b5f786ef827b9ae70f42c9087b507577f7151f4 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 4 Nov 2025 10:47:22 -0500 Subject: [PATCH 10/37] Clean up student_iep_accomodations --- ..._student_iep_accommodation_collections.sql | 40 ------------------- .../base_sedm__student_iep_accommodations.sql | 34 ++++++++++++++++ 2 files changed, 34 insertions(+), 40 deletions(-) delete mode 100644 models/staging/sedm/base/base_sedm__student_iep_accommodation_collections.sql create mode 100644 models/staging/sedm/base/base_sedm__student_iep_accommodations.sql diff --git a/models/staging/sedm/base/base_sedm__student_iep_accommodation_collections.sql b/models/staging/sedm/base/base_sedm__student_iep_accommodation_collections.sql deleted file mode 100644 index 2c6a2beb..00000000 --- a/models/staging/sedm/base/base_sedm__student_iep_accommodation_collections.sql +++ /dev/null @@ -1,40 +0,0 @@ -with source_student_iep_accommodation_collections as ( - {{ source_edfi3('student_iep_accommodation_collections') }} -), - -renamed as ( - select - -- generic columns - tenant_code, - api_year, - pull_timestamp, - last_modified_timestamp, - file_row_number, - filename, - is_deleted, - - v:id::string as record_guid, - ods_version, - data_model_version, - - -- identity components (composite key) - v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, - v:studentIEPReference:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, - v:studentIEPReference:iepFinalizedDate::date as iep_finalized_date, - v:studentReference:studentUniqueId::string as student_unique_id, - - -- references - v:studentReference as student_reference, - v:studentIEPReference as student_iep_reference, - - -- required collections - v:accommodations as v_accommodations, - - -- edfi extensions - v:_ext as v_ext - - from source_student_iep_accommodation_collections -) - -select * from renamed - diff --git a/models/staging/sedm/base/base_sedm__student_iep_accommodations.sql b/models/staging/sedm/base/base_sedm__student_iep_accommodations.sql new file mode 100644 index 00000000..64da89b9 --- /dev/null +++ b/models/staging/sedm/base/base_sedm__student_iep_accommodations.sql @@ -0,0 +1,34 @@ +with student_iep_accommodations as ( + {{ source_edfi3('student_iep_accommodations') }} +), + +renamed as ( + select + tenant_code, + api_year, + pull_timestamp, + last_modified_timestamp, + file_row_number, + filename, + is_deleted, + v:id::string as record_guid, + ods_version, + data_model_version, + -- key columns + v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, + v:studentReference:studentUniqueId::string as student_unique_id, + v:studentIEPReference:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, + -- references + v:studentReference as student_reference, + v:studentIEPReference as student_iep_reference, + -- lists + v:accommodations as v_accommodations, + + -- edfi extensions + v:_ext as v_ext + + from student_iep_accommodations +) + +select * from renamed + From 8ed889e71226310ed3e27d26b1b858a870143189 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 4 Nov 2025 10:51:38 -0500 Subject: [PATCH 11/37] Clean up student_iep_disabilities --- .../base_sedm__student_iep_disabilities.sql | 33 ++++++++++++++++ ...dm__student_iep_disability_collections.sql | 39 ------------------- 2 files changed, 33 insertions(+), 39 deletions(-) create mode 100644 models/staging/sedm/base/base_sedm__student_iep_disabilities.sql delete mode 100644 models/staging/sedm/base/base_sedm__student_iep_disability_collections.sql diff --git a/models/staging/sedm/base/base_sedm__student_iep_disabilities.sql b/models/staging/sedm/base/base_sedm__student_iep_disabilities.sql new file mode 100644 index 00000000..2b8dd1f5 --- /dev/null +++ b/models/staging/sedm/base/base_sedm__student_iep_disabilities.sql @@ -0,0 +1,33 @@ +with student_iep_disability_collections as ( + {{ source_edfi3('student_iep_disability_collections') }} +), + +renamed as ( + select + tenant_code, + api_year, + pull_timestamp, + last_modified_timestamp, + file_row_number, + filename, + is_deleted, + v:id::string as record_guid, + ods_version, + data_model_version, + -- key columns + v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, + v:studentReference:studentUniqueId::string as student_unique_id, + v:studentIEPReference:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, + -- references + v:studentReference as student_reference, + v:studentIEPReference as student_iep_reference, + -- lists + v:disabilities as v_disabilities, + + -- edfi extensions + v:_ext as v_ext + + from student_iep_disability_collections +) + +select * from renamed diff --git a/models/staging/sedm/base/base_sedm__student_iep_disability_collections.sql b/models/staging/sedm/base/base_sedm__student_iep_disability_collections.sql deleted file mode 100644 index 0987a648..00000000 --- a/models/staging/sedm/base/base_sedm__student_iep_disability_collections.sql +++ /dev/null @@ -1,39 +0,0 @@ -with source_student_iep_disability_collections as ( - {{ source_edfi3('student_iep_disability_collections') }} -), - -renamed as ( - select - -- generic columns - tenant_code, - api_year, - pull_timestamp, - last_modified_timestamp, - file_row_number, - filename, - is_deleted, - - v:id::string as record_guid, - ods_version, - data_model_version, - - -- identity components (composite key) - v:studentIEPReference:studentIEPAssociationID::string as student_iep_association_id, - v:studentIEPReference:educationOrganizationReference:educationOrganizationId::int as iep_servicing_ed_org_id, - v:studentIEPReference:iepFinalizedDate::date as iep_finalized_date, - v:studentReference:studentUniqueId::string as student_unique_id, - - -- references - v:studentReference as student_reference, - v:studentIEPReference as student_iep_reference, - - -- required collections - v:disabilities as v_disabilities, - - -- edfi extensions - v:_ext as v_ext - - from source_student_iep_disability_collections -) - -select * from renamed From 6f8002287bc3c4b0f838fceeda3828c70f900b8f Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 4 Nov 2025 11:03:29 -0500 Subject: [PATCH 12/37] First draft stg models --- .../stg_sedm__student_iep_accommodations.sql | 44 ++++++++++++++ .../stg_sedm__student_iep_associations.sql | 36 +++++++++++ .../stg_sedm__student_iep_disabilities.sql | 44 ++++++++++++++ .../stage/stg_sedm__student_iep_goals.sql | 44 ++++++++++++++ ...g_sedm__student_iep_service_deliveries.sql | 60 +++++++++++++++++++ ...edm__student_iep_service_prescriptions.sql | 49 +++++++++++++++ 6 files changed, 277 insertions(+) create mode 100644 models/staging/sedm/stage/stg_sedm__student_iep_accommodations.sql create mode 100644 models/staging/sedm/stage/stg_sedm__student_iep_associations.sql create mode 100644 models/staging/sedm/stage/stg_sedm__student_iep_disabilities.sql create mode 100644 models/staging/sedm/stage/stg_sedm__student_iep_goals.sql create mode 100644 models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql create mode 100644 models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_accommodations.sql b/models/staging/sedm/stage/stg_sedm__student_iep_accommodations.sql new file mode 100644 index 00000000..e787231b --- /dev/null +++ b/models/staging/sedm/stage/stg_sedm__student_iep_accommodations.sql @@ -0,0 +1,44 @@ +with base_student_iep_accommodations as ( + select * from {{ ref('base_sedm__student_iep_accommodations') }} +), + +keyed as ( + select + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'lower(student_iep_association_id)', + 'lower(student_unique_id)', + 'iep_servicing_ed_org_id' + ] + ) }} as k_student_iep_accommodation_collection, + {{ gen_skey('k_student') }}, + {{ gen_skey('k_student_xyear') }}, + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'lower(student_iep_association_id)', + 'iep_servicing_ed_org_id', + 'cast(studentIEPReference:iepFinalizedDate as string)', + 'lower(student_unique_id)' + ] + ) }} as k_student_iep_association, + api_year as school_year, + base_student_iep_accommodations.* + {{ extract_extension(model_name=this.name, flatten=True) }} + + from base_student_iep_accommodations +), + +deduped as ( + {{ dbt_utils.deduplicate( + relation='keyed', + partition_by='k_student_iep_accommodation_collection', + order_by='last_modified_timestamp desc, pull_timestamp desc' + ) }} +) + +select * from deduped +where not is_deleted diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_associations.sql b/models/staging/sedm/stage/stg_sedm__student_iep_associations.sql new file mode 100644 index 00000000..3dcb7ec4 --- /dev/null +++ b/models/staging/sedm/stage/stg_sedm__student_iep_associations.sql @@ -0,0 +1,36 @@ +with base_student_iep_associations as ( + select * from {{ ref('base_sedm__student_iep_associations') }} +), + +keyed as ( + select + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'lower(student_iep_association_id)', + 'iep_servicing_ed_org_id', + 'iep_finalized_date', + 'lower(student_unique_id)' + ] + ) }} as k_student_iep_association, + {{ gen_skey('k_student') }}, + {{ gen_skey('k_student_xyear') }}, + {{ edorg_ref(annualize=False) }}, + api_year as school_year, + base_student_iep_associations.* + {{ extract_extension(model_name=this.name, flatten=True) }} + + from base_student_iep_associations +), + +deduped as ( + {{ dbt_utils.deduplicate( + relation='keyed', + partition_by='k_student_iep_association', + order_by='last_modified_timestamp desc, pull_timestamp desc' + ) }} +) + +select * from deduped +where not is_deleted diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_disabilities.sql b/models/staging/sedm/stage/stg_sedm__student_iep_disabilities.sql new file mode 100644 index 00000000..fa5e6c77 --- /dev/null +++ b/models/staging/sedm/stage/stg_sedm__student_iep_disabilities.sql @@ -0,0 +1,44 @@ +with base_student_iep_disabilities as ( + select * from {{ ref('base_sedm__student_iep_disabilities') }} +), + +keyed as ( + select + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'lower(student_iep_association_id)', + 'lower(student_unique_id)', + 'iep_servicing_ed_org_id' + ] + ) }} as k_student_iep_disability_collection, + {{ gen_skey('k_student') }}, + {{ gen_skey('k_student_xyear') }}, + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'lower(student_iep_association_id)', + 'iep_servicing_ed_org_id', + 'cast(studentIEPReference:iepFinalizedDate as string)', + 'lower(student_unique_id)' + ] + ) }} as k_student_iep_association, + api_year as school_year, + base_student_iep_disabilities.* + {{ extract_extension(model_name=this.name, flatten=True) }} + + from base_student_iep_disabilities +), + +deduped as ( + {{ dbt_utils.deduplicate( + relation='keyed', + partition_by='k_student_iep_disability_collection', + order_by='last_modified_timestamp desc, pull_timestamp desc' + ) }} +) + +select * from deduped +where not is_deleted diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_goals.sql b/models/staging/sedm/stage/stg_sedm__student_iep_goals.sql new file mode 100644 index 00000000..8b48f886 --- /dev/null +++ b/models/staging/sedm/stage/stg_sedm__student_iep_goals.sql @@ -0,0 +1,44 @@ +with base_student_iep_goals as ( + select * from {{ ref('base_sedm__student_iep_goals') }} +), + +keyed as ( + select + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'lower(iep_goal_id)', + 'lower(student_unique_id)', + 'lower(student_iep_association_id)' + ] + ) }} as k_student_iep_goal, + {{ gen_skey('k_student') }}, + {{ gen_skey('k_student_xyear') }}, + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'lower(student_iep_association_id)', + 'cast(studentIEPReference:educationOrganizationReference:educationOrganizationId as string)', + 'cast(studentIEPReference:iepFinalizedDate as string)', + 'lower(student_unique_id)' + ] + ) }} as k_student_iep_association, + api_year as school_year, + base_student_iep_goals.* + {{ extract_extension(model_name=this.name, flatten=True) }} + + from base_student_iep_goals +), + +deduped as ( + {{ dbt_utils.deduplicate( + relation='keyed', + partition_by='k_student_iep_goal', + order_by='last_modified_timestamp desc, pull_timestamp desc' + ) }} +) + +select * from deduped +where not is_deleted diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql b/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql new file mode 100644 index 00000000..86d4ae2b --- /dev/null +++ b/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql @@ -0,0 +1,60 @@ +with base_student_iep_service_deliveries as ( + select * from {{ ref('base_sedm__student_iep_service_deliveries') }} +), + +keyed as ( + select + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'lower(iep_service_delivery_id)', + 'lower(student_unique_id)', + 'lower(student_iep_association_id)', + 'lower(service_delivery)', + 'service_delivery_date' + ] + ) }} as k_student_iep_service_delivery, + {{ gen_skey('k_student') }}, + {{ gen_skey('k_student_xyear') }}, + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'lower(student_iep_association_id)', + 'cast(studentIEPReference:educationOrganizationReference:educationOrganizationId as string)', + 'cast(studentIEPReference:iepFinalizedDate as string)', + 'lower(student_unique_id)' + ] + ) }} as k_student_iep_association, + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'lower(iep_service_prescription_id)', + 'lower(student_unique_id)', + 'lower(student_iep_association_id)', + 'cast(studentIEPServicePrescriptionReference:studentIEPReference:educationOrganizationReference:educationOrganizationId as string)', + 'cast(studentIEPServicePrescriptionReference:studentIEPReference:iepFinalizedDate as string)', + 'lower(cast(studentIEPServicePrescriptionReference:servicePrescriptionDescriptor as string))', + 'cast(studentIEPServicePrescriptionReference:servicePrescriptionDate as string)' + ] + ) }} as k_student_iep_service_prescription, + {{ gen_skey('k_staff', alt_ref='service_provider_staff_reference') }}, + api_year as school_year, + base_student_iep_service_deliveries.* + {{ extract_extension(model_name=this.name, flatten=True) }} + + from base_student_iep_service_deliveries +), + +deduped as ( + {{ dbt_utils.deduplicate( + relation='keyed', + partition_by='k_student_iep_service_delivery', + order_by='last_modified_timestamp desc, pull_timestamp desc' + ) }} +) + +select * from deduped +where not is_deleted diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql b/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql new file mode 100644 index 00000000..78d2fadd --- /dev/null +++ b/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql @@ -0,0 +1,49 @@ +with base_student_iep_service_prescriptions as ( + select * from {{ ref('base_sedm__student_iep_service_prescriptions') }} +), + +keyed as ( + select + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'lower(iep_service_id)', + 'lower(student_unique_id)', + 'lower(student_iep_association_id)', + 'iep_servicing_ed_org_id', + 'iep_finalized_date', + 'lower(service_prescription)', + 'service_prescription_date' + ] + ) }} as k_student_iep_service_prescription, + {{ gen_skey('k_student') }}, + {{ gen_skey('k_student_xyear') }}, + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'lower(student_iep_association_id)', + 'iep_servicing_ed_org_id', + 'iep_finalized_date', + 'lower(student_unique_id)' + ] + ) }} as k_student_iep_association, + {{ gen_skey('k_staff', alt_ref='service_provider_staff_reference') }}, + api_year as school_year, + base_student_iep_service_prescriptions.* + {{ extract_extension(model_name=this.name, flatten=True) }} + + from base_student_iep_service_prescriptions +), + +deduped as ( + {{ dbt_utils.deduplicate( + relation='keyed', + partition_by='k_student_iep_service_prescription', + order_by='last_modified_timestamp desc, pull_timestamp desc' + ) }} +) + +select * from deduped +where not is_deleted From 00bf0f240f90d1a439b66e8e957829a893621316 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 4 Nov 2025 11:04:58 -0500 Subject: [PATCH 13/37] Remove finalize date from service_prescriptions --- .../sedm/stage/stg_sedm__student_iep_service_prescriptions.sql | 1 - 1 file changed, 1 deletion(-) diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql b/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql index 78d2fadd..d7140411 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql @@ -12,7 +12,6 @@ keyed as ( 'lower(student_unique_id)', 'lower(student_iep_association_id)', 'iep_servicing_ed_org_id', - 'iep_finalized_date', 'lower(service_prescription)', 'service_prescription_date' ] From 92c4848216503c27f72d7491ab3d1e851e4fe9e4 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 4 Nov 2025 14:28:09 -0500 Subject: [PATCH 14/37] Add k_student_iep_association to gen_skey --- macros/gen_skey.sql | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/macros/gen_skey.sql b/macros/gen_skey.sql index 4fd8dd1a..c5d093cd 100644 --- a/macros/gen_skey.sql +++ b/macros/gen_skey.sql @@ -337,6 +337,15 @@ 'col_list': ['post_secondary_institution_id'], 'annualize': False }, + 'k_student_iep_association': { + 'reference_name': 'student_iep_association_reference', + 'col_list': ['student_iep_association_id', + 'iep_servicing_ed_org_id', + 'iep_finalized_date', + 'student_unique_id'], + 'annualize': True + }, + 'k_template': { 'reference_name': '', 'col_list': [], From 684b3168e2132765754014c6f5e9c6f0bd663481 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 4 Nov 2025 14:31:31 -0500 Subject: [PATCH 15/37] Use gen_skey for k_student_iep_association --- .../stage/stg_sedm__student_iep_accommodations.sql | 12 +----------- .../stage/stg_sedm__student_iep_disabilities.sql | 11 +---------- .../sedm/stage/stg_sedm__student_iep_goals.sql | 11 +---------- .../stg_sedm__student_iep_service_deliveries.sql | 11 +---------- .../stg_sedm__student_iep_service_prescriptions.sql | 11 +---------- 5 files changed, 5 insertions(+), 51 deletions(-) diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_accommodations.sql b/models/staging/sedm/stage/stg_sedm__student_iep_accommodations.sql index e787231b..d7c04189 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_accommodations.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_accommodations.sql @@ -15,17 +15,7 @@ keyed as ( ) }} as k_student_iep_accommodation_collection, {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, - {{ dbt_utils.generate_surrogate_key( - [ - 'tenant_code', - 'api_year', - 'lower(student_iep_association_id)', - 'iep_servicing_ed_org_id', - 'cast(studentIEPReference:iepFinalizedDate as string)', - 'lower(student_unique_id)' - ] - ) }} as k_student_iep_association, - api_year as school_year, + {{ gen_skey('k_student_iep_association') }}, base_student_iep_accommodations.* {{ extract_extension(model_name=this.name, flatten=True) }} diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_disabilities.sql b/models/staging/sedm/stage/stg_sedm__student_iep_disabilities.sql index fa5e6c77..cae55051 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_disabilities.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_disabilities.sql @@ -15,16 +15,7 @@ keyed as ( ) }} as k_student_iep_disability_collection, {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, - {{ dbt_utils.generate_surrogate_key( - [ - 'tenant_code', - 'api_year', - 'lower(student_iep_association_id)', - 'iep_servicing_ed_org_id', - 'cast(studentIEPReference:iepFinalizedDate as string)', - 'lower(student_unique_id)' - ] - ) }} as k_student_iep_association, + {{ gen_skey('k_student_iep_association') }}, api_year as school_year, base_student_iep_disabilities.* {{ extract_extension(model_name=this.name, flatten=True) }} diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_goals.sql b/models/staging/sedm/stage/stg_sedm__student_iep_goals.sql index 8b48f886..7d78a559 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_goals.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_goals.sql @@ -15,16 +15,7 @@ keyed as ( ) }} as k_student_iep_goal, {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, - {{ dbt_utils.generate_surrogate_key( - [ - 'tenant_code', - 'api_year', - 'lower(student_iep_association_id)', - 'cast(studentIEPReference:educationOrganizationReference:educationOrganizationId as string)', - 'cast(studentIEPReference:iepFinalizedDate as string)', - 'lower(student_unique_id)' - ] - ) }} as k_student_iep_association, + {{ gen_skey('k_student_iep_association') }}, api_year as school_year, base_student_iep_goals.* {{ extract_extension(model_name=this.name, flatten=True) }} diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql b/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql index 86d4ae2b..88a916ff 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql @@ -17,16 +17,7 @@ keyed as ( ) }} as k_student_iep_service_delivery, {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, - {{ dbt_utils.generate_surrogate_key( - [ - 'tenant_code', - 'api_year', - 'lower(student_iep_association_id)', - 'cast(studentIEPReference:educationOrganizationReference:educationOrganizationId as string)', - 'cast(studentIEPReference:iepFinalizedDate as string)', - 'lower(student_unique_id)' - ] - ) }} as k_student_iep_association, + {{ gen_skey('k_student_iep_association') }}, {{ dbt_utils.generate_surrogate_key( [ 'tenant_code', diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql b/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql index d7140411..40ad174e 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql @@ -18,16 +18,7 @@ keyed as ( ) }} as k_student_iep_service_prescription, {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, - {{ dbt_utils.generate_surrogate_key( - [ - 'tenant_code', - 'api_year', - 'lower(student_iep_association_id)', - 'iep_servicing_ed_org_id', - 'iep_finalized_date', - 'lower(student_unique_id)' - ] - ) }} as k_student_iep_association, + {{ gen_skey('k_student_iep_association') }}, {{ gen_skey('k_staff', alt_ref='service_provider_staff_reference') }}, api_year as school_year, base_student_iep_service_prescriptions.* From 569c9a8bba19cda33c7a71bc955b7739dc4dc2a8 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 11 Nov 2025 12:18:31 -0500 Subject: [PATCH 16/37] Update student_ieps model name --- ...__student_iep_associations.sql => base_sedm__student_ieps.sql} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename models/staging/sedm/base/{base_sedm__student_iep_associations.sql => base_sedm__student_ieps.sql} (100%) diff --git a/models/staging/sedm/base/base_sedm__student_iep_associations.sql b/models/staging/sedm/base/base_sedm__student_ieps.sql similarity index 100% rename from models/staging/sedm/base/base_sedm__student_iep_associations.sql rename to models/staging/sedm/base/base_sedm__student_ieps.sql From 54d5ce7f364d7bac3bcbe67523a96fcaa9aab9a8 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 11 Nov 2025 12:21:16 -0500 Subject: [PATCH 17/37] Remove associations naming from model --- models/staging/sedm/base/base_sedm__student_ieps.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/models/staging/sedm/base/base_sedm__student_ieps.sql b/models/staging/sedm/base/base_sedm__student_ieps.sql index 7aea68e7..0946893c 100644 --- a/models/staging/sedm/base/base_sedm__student_ieps.sql +++ b/models/staging/sedm/base/base_sedm__student_ieps.sql @@ -1,5 +1,5 @@ -with student_iep_associations as ( - {{ source_edfi3('student_iep_associations') }} +with student_ieps as ( + {{ source_edfi3('student_ieps') }} ), renamed as ( @@ -43,7 +43,7 @@ renamed as ( -- edfi extensions v:_ext as v_ext - from student_iep_associations + from student_iep ) select * from renamed From 6fed45ac447efca9718cd6befdeaf92a789ca10f Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 11 Nov 2025 12:37:59 -0500 Subject: [PATCH 18/37] Rename student_ieps model and update --- ...dent_iep_associations.sql => stg_sedm__student_ieps.sql} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename models/staging/sedm/stage/{stg_sedm__student_iep_associations.sql => stg_sedm__student_ieps.sql} (85%) diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_associations.sql b/models/staging/sedm/stage/stg_sedm__student_ieps.sql similarity index 85% rename from models/staging/sedm/stage/stg_sedm__student_iep_associations.sql rename to models/staging/sedm/stage/stg_sedm__student_ieps.sql index 3dcb7ec4..5a3bcbab 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_associations.sql +++ b/models/staging/sedm/stage/stg_sedm__student_ieps.sql @@ -1,5 +1,5 @@ -with base_student_iep_associations as ( - select * from {{ ref('base_sedm__student_iep_associations') }} +with base_student_ieps as ( + select * from {{ ref('base_sedm__student_ieps') }} ), keyed as ( @@ -21,7 +21,7 @@ keyed as ( base_student_iep_associations.* {{ extract_extension(model_name=this.name, flatten=True) }} - from base_student_iep_associations + from base_student_ieps ), deduped as ( From a46c2325637d0a06f62fe124192385242925cfb0 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 11 Nov 2025 12:48:12 -0500 Subject: [PATCH 19/37] Add k_student_iep_service_prescription to gen_skey macro --- macros/gen_skey.sql | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/macros/gen_skey.sql b/macros/gen_skey.sql index c5d093cd..fc2b6648 100644 --- a/macros/gen_skey.sql +++ b/macros/gen_skey.sql @@ -345,6 +345,18 @@ 'student_unique_id'], 'annualize': True }, + 'k_student_iep_service_prescription': { + 'reference_name': 'student_iep_association_reference', + 'col_list': [ + 'iep_service_id', + 'student_unique_id', + 'student_iep_association_id', + 'iep_servicing_ed_org_id', + 'service_prescription' + 'service_prescription_date' + ], + 'annualize': False + }, 'k_template': { 'reference_name': '', From b8a4347b5349314dee93ede1b747521c1320acea Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 11 Nov 2025 13:11:03 -0500 Subject: [PATCH 20/37] Alphabetize key column list in iep_service_prescriptions --- .../stage/stg_sedm__student_iep_service_prescriptions.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql b/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql index 40ad174e..fcfef284 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql @@ -9,11 +9,11 @@ keyed as ( 'tenant_code', 'api_year', 'lower(iep_service_id)', - 'lower(student_unique_id)', - 'lower(student_iep_association_id)', - 'iep_servicing_ed_org_id', + 'lower(iep_servicing_ed_org_id)', 'lower(service_prescription)', 'service_prescription_date' + 'lower(student_iep_association_id)', + 'lower(student_unique_id)' ] ) }} as k_student_iep_service_prescription, {{ gen_skey('k_student') }}, From 4cc41f2753a9c1904eaf2bdd85f1954e2b72aebf Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 11 Nov 2025 13:11:40 -0500 Subject: [PATCH 21/37] Use gen_skey for prescriptions key in iep_service_deliveries --- .../stg_sedm__student_iep_service_deliveries.sql | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql b/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql index 88a916ff..08a7c6f9 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql @@ -18,19 +18,7 @@ keyed as ( {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, {{ gen_skey('k_student_iep_association') }}, - {{ dbt_utils.generate_surrogate_key( - [ - 'tenant_code', - 'api_year', - 'lower(iep_service_prescription_id)', - 'lower(student_unique_id)', - 'lower(student_iep_association_id)', - 'cast(studentIEPServicePrescriptionReference:studentIEPReference:educationOrganizationReference:educationOrganizationId as string)', - 'cast(studentIEPServicePrescriptionReference:studentIEPReference:iepFinalizedDate as string)', - 'lower(cast(studentIEPServicePrescriptionReference:servicePrescriptionDescriptor as string))', - 'cast(studentIEPServicePrescriptionReference:servicePrescriptionDate as string)' - ] - ) }} as k_student_iep_service_prescription, + {{ gen_skey('k_student_iep_service_prescription') }}, {{ gen_skey('k_staff', alt_ref='service_provider_staff_reference') }}, api_year as school_year, base_student_iep_service_deliveries.* From 25e3c6180a804d4810f722ae944bf9fc2c0304cb Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Tue, 11 Nov 2025 13:13:32 -0500 Subject: [PATCH 22/37] Alphabetize stu_iep_assoc and and stu_iep_service_prescrip key column lists in gen_skey macro --- macros/gen_skey.sql | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/macros/gen_skey.sql b/macros/gen_skey.sql index fc2b6648..37b9a309 100644 --- a/macros/gen_skey.sql +++ b/macros/gen_skey.sql @@ -339,9 +339,10 @@ }, 'k_student_iep_association': { 'reference_name': 'student_iep_association_reference', - 'col_list': ['student_iep_association_id', - 'iep_servicing_ed_org_id', + 'col_list': [ 'iep_finalized_date', + 'iep_servicing_ed_org_id', + 'student_iep_association_id', 'student_unique_id'], 'annualize': True }, @@ -349,11 +350,11 @@ 'reference_name': 'student_iep_association_reference', 'col_list': [ 'iep_service_id', - 'student_unique_id', - 'student_iep_association_id', 'iep_servicing_ed_org_id', - 'service_prescription' - 'service_prescription_date' + 'service_prescription', + 'service_prescription_date', + 'student_iep_association_id', + 'student_unique_id' ], 'annualize': False }, From cf4e88a0e2b69cab46a543c29d49b7d45e37a6c3 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 10:39:29 -0500 Subject: [PATCH 23/37] Change collections model names to match extension documentation and swagger --- ...=> base_sedm__student_iep_accommodation_collections.sql} | 6 +++--- ...ql => base_sedm__student_iep_disability_collections.sql} | 0 2 files changed, 3 insertions(+), 3 deletions(-) rename models/staging/sedm/base/{base_sedm__student_iep_accommodations.sql => base_sedm__student_iep_accommodation_collections.sql} (85%) rename models/staging/sedm/base/{base_sedm__student_iep_disabilities.sql => base_sedm__student_iep_disability_collections.sql} (100%) diff --git a/models/staging/sedm/base/base_sedm__student_iep_accommodations.sql b/models/staging/sedm/base/base_sedm__student_iep_accommodation_collections.sql similarity index 85% rename from models/staging/sedm/base/base_sedm__student_iep_accommodations.sql rename to models/staging/sedm/base/base_sedm__student_iep_accommodation_collections.sql index 64da89b9..83c78f99 100644 --- a/models/staging/sedm/base/base_sedm__student_iep_accommodations.sql +++ b/models/staging/sedm/base/base_sedm__student_iep_accommodation_collections.sql @@ -1,5 +1,5 @@ -with student_iep_accommodations as ( - {{ source_edfi3('student_iep_accommodations') }} +with student_iep_accommodation_collections as ( + {{ source_edfi3('student_iep_accommodation_collections') }} ), renamed as ( @@ -27,7 +27,7 @@ renamed as ( -- edfi extensions v:_ext as v_ext - from student_iep_accommodations + from student_iep_accommodation_collections ) select * from renamed diff --git a/models/staging/sedm/base/base_sedm__student_iep_disabilities.sql b/models/staging/sedm/base/base_sedm__student_iep_disability_collections.sql similarity index 100% rename from models/staging/sedm/base/base_sedm__student_iep_disabilities.sql rename to models/staging/sedm/base/base_sedm__student_iep_disability_collections.sql From 636b562caa7a19fe418c039f0a13ccf8efeece95 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 10:51:08 -0500 Subject: [PATCH 24/37] Update collections stg models and model names to match updated base models --- ...ql => stg_sedm__student_iep_accommodation_collections.sql} | 4 ++-- ...s.sql => stg_sedm__student_iep_disability_collections.sql} | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename models/staging/sedm/stage/{stg_sedm__student_iep_accommodations.sql => stg_sedm__student_iep_accommodation_collections.sql} (87%) rename models/staging/sedm/stage/{stg_sedm__student_iep_disabilities.sql => stg_sedm__student_iep_disability_collections.sql} (87%) diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_accommodations.sql b/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql similarity index 87% rename from models/staging/sedm/stage/stg_sedm__student_iep_accommodations.sql rename to models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql index d7c04189..10a3bac4 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_accommodations.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql @@ -1,5 +1,5 @@ -with base_student_iep_accommodations as ( - select * from {{ ref('base_sedm__student_iep_accommodations') }} +with base_student_iep_accommodation_collections as ( + select * from {{ ref('base_sedm__student_iep_accommodation_collections') }} ), keyed as ( diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_disabilities.sql b/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql similarity index 87% rename from models/staging/sedm/stage/stg_sedm__student_iep_disabilities.sql rename to models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql index cae55051..483128ee 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_disabilities.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql @@ -1,5 +1,5 @@ -with base_student_iep_disabilities as ( - select * from {{ ref('base_sedm__student_iep_disabilities') }} +with base_student_iep_disability_collections as ( + select * from {{ ref('base_sedm__student_iep_disability_collections') }} ), keyed as ( From 60b17c0bc74669360295bd717229e5287cac68fe Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 12:27:02 -0500 Subject: [PATCH 25/37] Fix typo --- models/staging/sedm/base/base_sedm__student_ieps.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/staging/sedm/base/base_sedm__student_ieps.sql b/models/staging/sedm/base/base_sedm__student_ieps.sql index 0946893c..b8b83c99 100644 --- a/models/staging/sedm/base/base_sedm__student_ieps.sql +++ b/models/staging/sedm/base/base_sedm__student_ieps.sql @@ -43,7 +43,7 @@ renamed as ( -- edfi extensions v:_ext as v_ext - from student_iep + from student_ieps ) select * from renamed From ff99b20002a23f468d64ed4f0045dd445143463a Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 14:55:52 -0500 Subject: [PATCH 26/37] Update select statements to use _collections naming --- .../stage/stg_sedm__student_iep_accommodation_collections.sql | 2 +- .../sedm/stage/stg_sedm__student_iep_disability_collections.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql b/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql index 10a3bac4..8a1768f9 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql @@ -19,7 +19,7 @@ keyed as ( base_student_iep_accommodations.* {{ extract_extension(model_name=this.name, flatten=True) }} - from base_student_iep_accommodations + from base_student_iep_accommodation_collections ), deduped as ( diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql b/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql index 483128ee..72463a20 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql @@ -20,7 +20,7 @@ keyed as ( base_student_iep_disabilities.* {{ extract_extension(model_name=this.name, flatten=True) }} - from base_student_iep_disabilities + from base_student_iep_disability_collections ), deduped as ( From 8b3c2b508f6770c317d21b2e624587c27e9175fb Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 15:13:15 -0500 Subject: [PATCH 27/37] Change sedm key, reference names in gen_skey macro --- macros/gen_skey.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/macros/gen_skey.sql b/macros/gen_skey.sql index 37b9a309..e052ad7f 100644 --- a/macros/gen_skey.sql +++ b/macros/gen_skey.sql @@ -337,8 +337,8 @@ 'col_list': ['post_secondary_institution_id'], 'annualize': False }, - 'k_student_iep_association': { - 'reference_name': 'student_iep_association_reference', + 'k_student_iep': { + 'reference_name': 'student_iep_reference', 'col_list': [ 'iep_finalized_date', 'iep_servicing_ed_org_id', @@ -347,7 +347,7 @@ 'annualize': True }, 'k_student_iep_service_prescription': { - 'reference_name': 'student_iep_association_reference', + 'reference_name': 'student_iep_reference', 'col_list': [ 'iep_service_id', 'iep_servicing_ed_org_id', From 0650defbbb9ae6e9b35683d6c5f356a8b5b97f19 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 15:15:03 -0500 Subject: [PATCH 28/37] Change gen_skey input from k_student_iep_association to k_student_iep in all stage models --- .../stage/stg_sedm__student_iep_accommodation_collections.sql | 2 +- .../sedm/stage/stg_sedm__student_iep_disability_collections.sql | 2 +- models/staging/sedm/stage/stg_sedm__student_iep_goals.sql | 2 +- .../sedm/stage/stg_sedm__student_iep_service_deliveries.sql | 2 +- .../sedm/stage/stg_sedm__student_iep_service_prescriptions.sql | 2 +- models/staging/sedm/stage/stg_sedm__student_ieps.sql | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql b/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql index 8a1768f9..82b55984 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql @@ -15,7 +15,7 @@ keyed as ( ) }} as k_student_iep_accommodation_collection, {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, - {{ gen_skey('k_student_iep_association') }}, + {{ gen_skey('k_student_iep') }}, base_student_iep_accommodations.* {{ extract_extension(model_name=this.name, flatten=True) }} diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql b/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql index 72463a20..25abeeba 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql @@ -15,7 +15,7 @@ keyed as ( ) }} as k_student_iep_disability_collection, {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, - {{ gen_skey('k_student_iep_association') }}, + {{ gen_skey('k_student_iep') }}, api_year as school_year, base_student_iep_disabilities.* {{ extract_extension(model_name=this.name, flatten=True) }} diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_goals.sql b/models/staging/sedm/stage/stg_sedm__student_iep_goals.sql index 7d78a559..ee27808b 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_goals.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_goals.sql @@ -15,7 +15,7 @@ keyed as ( ) }} as k_student_iep_goal, {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, - {{ gen_skey('k_student_iep_association') }}, + {{ gen_skey('k_student_iep') }}, api_year as school_year, base_student_iep_goals.* {{ extract_extension(model_name=this.name, flatten=True) }} diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql b/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql index 08a7c6f9..77371a35 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_service_deliveries.sql @@ -17,7 +17,7 @@ keyed as ( ) }} as k_student_iep_service_delivery, {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, - {{ gen_skey('k_student_iep_association') }}, + {{ gen_skey('k_student_iep') }}, {{ gen_skey('k_student_iep_service_prescription') }}, {{ gen_skey('k_staff', alt_ref='service_provider_staff_reference') }}, api_year as school_year, diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql b/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql index fcfef284..c874bb21 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql @@ -18,7 +18,7 @@ keyed as ( ) }} as k_student_iep_service_prescription, {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, - {{ gen_skey('k_student_iep_association') }}, + {{ gen_skey('k_student_iep') }}, {{ gen_skey('k_staff', alt_ref='service_provider_staff_reference') }}, api_year as school_year, base_student_iep_service_prescriptions.* diff --git a/models/staging/sedm/stage/stg_sedm__student_ieps.sql b/models/staging/sedm/stage/stg_sedm__student_ieps.sql index 5a3bcbab..39255261 100644 --- a/models/staging/sedm/stage/stg_sedm__student_ieps.sql +++ b/models/staging/sedm/stage/stg_sedm__student_ieps.sql @@ -13,7 +13,7 @@ keyed as ( 'iep_finalized_date', 'lower(student_unique_id)' ] - ) }} as k_student_iep_association, + ) }} as k_student_iep, {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, {{ edorg_ref(annualize=False) }}, From 3dce85441a6cbaf0cd466f0a6cd711e61063fa3a Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 15:19:05 -0500 Subject: [PATCH 29/37] Update old reference to student_iep_associations --- models/staging/sedm/stage/stg_sedm__student_ieps.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/staging/sedm/stage/stg_sedm__student_ieps.sql b/models/staging/sedm/stage/stg_sedm__student_ieps.sql index 39255261..4f7af8d1 100644 --- a/models/staging/sedm/stage/stg_sedm__student_ieps.sql +++ b/models/staging/sedm/stage/stg_sedm__student_ieps.sql @@ -18,7 +18,7 @@ keyed as ( {{ gen_skey('k_student_xyear') }}, {{ edorg_ref(annualize=False) }}, api_year as school_year, - base_student_iep_associations.* + base_student_iep.* {{ extract_extension(model_name=this.name, flatten=True) }} from base_student_ieps From 83e1eaeaf7c949784dc20bfd7bfb90fb85856f47 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 15:19:24 -0500 Subject: [PATCH 30/37] Add missing , --- .../sedm/stage/stg_sedm__student_iep_service_prescriptions.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql b/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql index c874bb21..c050bb35 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_service_prescriptions.sql @@ -11,7 +11,7 @@ keyed as ( 'lower(iep_service_id)', 'lower(iep_servicing_ed_org_id)', 'lower(service_prescription)', - 'service_prescription_date' + 'service_prescription_date', 'lower(student_iep_association_id)', 'lower(student_unique_id)' ] From 13321427b565e9412f98c6ad8a3267ec87fd2852 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 15:20:31 -0500 Subject: [PATCH 31/37] Update base_student_iep_disabilities to base_student_iep_disability_collections --- .../sedm/stage/stg_sedm__student_iep_disability_collections.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql b/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql index 25abeeba..34d615c0 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql @@ -17,7 +17,7 @@ keyed as ( {{ gen_skey('k_student_xyear') }}, {{ gen_skey('k_student_iep') }}, api_year as school_year, - base_student_iep_disabilities.* + base_student_iep_disability_collections.* {{ extract_extension(model_name=this.name, flatten=True) }} from base_student_iep_disability_collections From 77a2072bc69780853e9488d2639ebc0d18b2cc72 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 15:21:22 -0500 Subject: [PATCH 32/37] Update base_student_iep_accomodations to base_student_iep_accomodation_collections --- .../stage/stg_sedm__student_iep_accommodation_collections.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql b/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql index 82b55984..f48407f0 100644 --- a/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql +++ b/models/staging/sedm/stage/stg_sedm__student_iep_accommodation_collections.sql @@ -16,7 +16,7 @@ keyed as ( {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, {{ gen_skey('k_student_iep') }}, - base_student_iep_accommodations.* + base_student_iep_accommodation_collections.* {{ extract_extension(model_name=this.name, flatten=True) }} from base_student_iep_accommodation_collections From 8401552a8f3d274620f304a03d7466ff34fb5ceb Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 15:22:54 -0500 Subject: [PATCH 33/37] Fix typo --- models/staging/sedm/stage/stg_sedm__student_ieps.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/staging/sedm/stage/stg_sedm__student_ieps.sql b/models/staging/sedm/stage/stg_sedm__student_ieps.sql index 4f7af8d1..9c1fe1b2 100644 --- a/models/staging/sedm/stage/stg_sedm__student_ieps.sql +++ b/models/staging/sedm/stage/stg_sedm__student_ieps.sql @@ -18,7 +18,7 @@ keyed as ( {{ gen_skey('k_student_xyear') }}, {{ edorg_ref(annualize=False) }}, api_year as school_year, - base_student_iep.* + base_student_ieps.* {{ extract_extension(model_name=this.name, flatten=True) }} from base_student_ieps From 9375b55b760a329442fd0e965ed017e72ac92fe2 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 15:29:29 -0500 Subject: [PATCH 34/37] Remomve source_ from cte names --- models/staging/sedm/base/_sedm__base.yml | 32 +++++++++++++++++++ .../sedm/base/base_sedm__idea_events.sql | 4 +-- .../base/base_sedm__student_iep_goals.sql | 4 +-- ...e_sedm__student_iep_service_deliveries.sql | 4 +-- ...edm__student_iep_service_prescriptions.sql | 4 +-- 5 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 models/staging/sedm/base/_sedm__base.yml diff --git a/models/staging/sedm/base/_sedm__base.yml b/models/staging/sedm/base/_sedm__base.yml new file mode 100644 index 00000000..82236e2b --- /dev/null +++ b/models/staging/sedm/base/_sedm__base.yml @@ -0,0 +1,32 @@ +version: 2 + +models: + - name: base_sedm__student_iep_associations + config: + tags: ['sedm'] + enabled: "{{ var('src:domain:sedm:enabled', False) }}" + - name: base_sedm__ideaevents + config: + tags: ['sedm'] + enabled: "{{ var('src:domain:sedm:enabled', False) }}" + - name: base_sedm__student_iep_goals + config: + tags: ['sedm'] + enabled: "{{ var('src:domain:sedm:enabled', False) }}" + - name: base_sedm__student_iep_service_prescriptions + config: + tags: ['sedm'] + enabled: "{{ var('src:domain:sedm:enabled', False) }}" + - name: base_sedm__student_iep_service_deliveries + config: + tags: ['sedm'] + enabled: "{{ var('src:domain:sedm:enabled', False) }}" + - name: base_sedm__student_iep_disability_collections + config: + tags: ['sedm'] + enabled: "{{ var('src:domain:sedm:enabled', False) }}" + - name: base_sedm__student_iep_accommodation_collections + config: + tags: ['sedm'] + enabled: "{{ var('src:domain:sedm:enabled', False) }}" + diff --git a/models/staging/sedm/base/base_sedm__idea_events.sql b/models/staging/sedm/base/base_sedm__idea_events.sql index 036cf5a4..d2579e28 100644 --- a/models/staging/sedm/base/base_sedm__idea_events.sql +++ b/models/staging/sedm/base/base_sedm__idea_events.sql @@ -1,4 +1,4 @@ -with source_idea_events as ( +with idea_events as ( {{ source_edfi3('idea_events') }} ), @@ -34,7 +34,7 @@ renamed as ( -- edfi extensions v:_ext as v_ext - from source_idea_events + from idea_events ) select * from renamed diff --git a/models/staging/sedm/base/base_sedm__student_iep_goals.sql b/models/staging/sedm/base/base_sedm__student_iep_goals.sql index 5236b5d8..8815fe40 100644 --- a/models/staging/sedm/base/base_sedm__student_iep_goals.sql +++ b/models/staging/sedm/base/base_sedm__student_iep_goals.sql @@ -1,4 +1,4 @@ -with source_iep_goals as ( +with student_iep_goals as ( {{ source_edfi3('student_iep_goals') }} ), @@ -32,7 +32,7 @@ renamed as ( -- edfi extensions v:_ext as v_ext - from source_student_iep_goals + from student_iep_goals ) select * from renamed diff --git a/models/staging/sedm/base/base_sedm__student_iep_service_deliveries.sql b/models/staging/sedm/base/base_sedm__student_iep_service_deliveries.sql index 8e024821..fb7396ed 100644 --- a/models/staging/sedm/base/base_sedm__student_iep_service_deliveries.sql +++ b/models/staging/sedm/base/base_sedm__student_iep_service_deliveries.sql @@ -1,4 +1,4 @@ -with source_student_iep_service_deliveries as ( +with student_iep_service_deliveries as ( {{ source_edfi3('student_iep_service_deliveries') }} ), @@ -40,7 +40,7 @@ renamed as ( -- edfi extensions v:_ext as v_ext - from source_student_iep_service_deliveries + from student_iep_service_deliveries ) select * from renamed diff --git a/models/staging/sedm/base/base_sedm__student_iep_service_prescriptions.sql b/models/staging/sedm/base/base_sedm__student_iep_service_prescriptions.sql index f254a475..bb3c9d8f 100644 --- a/models/staging/sedm/base/base_sedm__student_iep_service_prescriptions.sql +++ b/models/staging/sedm/base/base_sedm__student_iep_service_prescriptions.sql @@ -1,4 +1,4 @@ -with source_student_iep_service_prescriptions as ( +with student_iep_service_prescriptions as ( {{ source_edfi3('student_iep_service_prescriptions') }} ), @@ -42,7 +42,7 @@ renamed as ( -- edfi extensions v:_ext as v_ext - from source_student_iep_service_prescriptions + from student_iep_service_prescriptions ) select * from renamed From 7ad62317e508deb8b49fc59a9c7fc218627a096f Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 14 Nov 2025 15:32:56 -0500 Subject: [PATCH 35/37] Change partition by to use k_student_iep --- models/staging/sedm/stage/stg_sedm__student_ieps.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/staging/sedm/stage/stg_sedm__student_ieps.sql b/models/staging/sedm/stage/stg_sedm__student_ieps.sql index 9c1fe1b2..b29b1d32 100644 --- a/models/staging/sedm/stage/stg_sedm__student_ieps.sql +++ b/models/staging/sedm/stage/stg_sedm__student_ieps.sql @@ -27,7 +27,7 @@ keyed as ( deduped as ( {{ dbt_utils.deduplicate( relation='keyed', - partition_by='k_student_iep_association', + partition_by='k_student_iep', order_by='last_modified_timestamp desc, pull_timestamp desc' ) }} ) From 102013461c954c269bdebca7dd9df3f3f9459d8c Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Fri, 21 Nov 2025 13:18:53 -0500 Subject: [PATCH 36/37] First draft stg_sedm__idea_events --- .../sedm/stage/stg_sedm__idea_events.sql | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 models/staging/sedm/stage/stg_sedm__idea_events.sql diff --git a/models/staging/sedm/stage/stg_sedm__idea_events.sql b/models/staging/sedm/stage/stg_sedm__idea_events.sql new file mode 100644 index 00000000..63d50bb5 --- /dev/null +++ b/models/staging/sedm/stage/stg_sedm__idea_events.sql @@ -0,0 +1,34 @@ +with base_idea_events as ( + select * from {{ ref('base_sedm__idea_events') }} +), + +keyed as ( + select + {{ dbt_utils.generate_surrogate_key( + [ + 'tenant_code', + 'api_year', + 'idea_event_id', + 'student_unique_id' + 'idea_event' + ] + ) }} as k_idea_event, + {{ gen_skey('k_student') }}, + {{ gen_skey('k_student_xyear') }}, + {{ gen_skey('k_student_iep') }}, + base_idea_events.* + {{ extract_extension(model_name=this.name, flatten=True) }} + + from base_idea_events +), + +deduped as ( + {{ dbt_utils.deduplicate( + relation='keyed', + partition_by='k_idea_event', + order_by='last_modified_timestamp desc, pull_timestamp desc' + ) }} +) + +select * from deduped +where not is_deleted From 152c7af04a7f7da070a8758e076d07dfd8ab1795 Mon Sep 17 00:00:00 2001 From: Ryan Aguilar Date: Mon, 1 Dec 2025 09:38:27 -0500 Subject: [PATCH 37/37] Remove student iep ref --- models/staging/sedm/stage/stg_sedm__idea_events.sql | 1 - 1 file changed, 1 deletion(-) diff --git a/models/staging/sedm/stage/stg_sedm__idea_events.sql b/models/staging/sedm/stage/stg_sedm__idea_events.sql index 63d50bb5..0483498a 100644 --- a/models/staging/sedm/stage/stg_sedm__idea_events.sql +++ b/models/staging/sedm/stage/stg_sedm__idea_events.sql @@ -15,7 +15,6 @@ keyed as ( ) }} as k_idea_event, {{ gen_skey('k_student') }}, {{ gen_skey('k_student_xyear') }}, - {{ gen_skey('k_student_iep') }}, base_idea_events.* {{ extract_extension(model_name=this.name, flatten=True) }}