Feature/sedm student iep disabilities#188
Open
ryanaguilar wants to merge 9 commits into
Open
Conversation
rlittle08
requested changes
May 18, 2026
Collaborator
rlittle08
left a comment
There was a problem hiding this comment.
i didn't review the disability collections models, bc i don't see it documented in ed-fi 6.1 docs - was it not part of that release?
| 'student_unique_id', | ||
| 'idea_event'], | ||
| 'col_list': ['educationOrganizationId', | ||
| 'ideaEvent', |
Collaborator
There was a problem hiding this comment.
based on API docs, I think we need ideaEventTypeDescriptor instead of ideaEvent
| 'lower(student_iep_association_id)', | ||
| 'ed_org_id', | ||
| 'iep_finalized_date', | ||
| 'lower(student_iep_association_id)', |
| 'lower(student_iep_association_id)', | ||
| 'ed_org_id', | ||
| 'iep_finalized_date', | ||
| 'lower(student_iep_association_id)', |
Collaborator
There was a problem hiding this comment.
the edfi handbook and api docs seem to call this StudentIEPIdentifier -- did that change?
Collaborator
There was a problem hiding this comment.
i don't see this resource in the ed-fi handbook or api docs, is it not part of the 6.1 release?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
feature/sedm: Student IEP disability collections staging, Ed-Fi 3 key alignment, and IDEA event field fixes
Description & motivation
This PR extends SEDM staging to surface student IEP disability collections from Ed-Fi 3: a base model on
student_iep_disability_collectionsand a staging model that keys to the parent IEP, deduplicates at the IEP grain, flattens the embedded disabilities array, and exposes disability-related descriptors for downstream use.It also aligns
gen_skey()definitions fork_student_iepandk_idea_eventwith the camelCase JSON property names used on Ed-Fi 3studentIEPReference/ IDEA event payloads (consistent with other keys ingen_skey.sqlthat read from VARIANT references).base_sedm__idea_eventsis updated to read begin/end dates frombeginDateandendDateinstead ofeventBeginDateandeventEndDate, matching the API shape.Finally,
stg_sedm__student_iepssurrogate key inputs are reordered to mirror the IEP natural key ordering, anddbt_utilsis allowed up through 1.3.3 inpackages.yml.Breaking changes introduced by this PR:
Potentially breaking: If
gen_skey('k_student_iep')orgen_skey('k_idea_event')previously produced hashes that downstream models persisted or joined on, recomputing those keys with corrected JSON paths may change key values for some rows. Downstream should reconcile joins and any materialized keys after refresh.Potentially breaking:
base_sedm__idea_eventsnow mapsevent_begin_date/event_end_datefromv:beginDateandv:endDate. Consumers that depended on the oldeventBeginDate/eventEndDatepaths may see different populated dates if the source payload uses the canonical fields.Not breaking by default: New models are gated by
var('src:domain:sedm:enabled', False)like other SEDM models.PR Merge Priority:
Changes to existing files:
macros/gen_skey.sql: Fork_idea_eventandk_student_iep, updatedcol_listentries to use Ed-Fi 3 JSON keys (educationOrganizationId,iepFinalizedDate,studentIEPAssociationId,studentUniqueId, and IDEA event equivalents) so keys are derived consistently from reference VARIANTs.models/staging/sedm/base/base_sedm__idea_events.sql: Renamed VARIANT accessors for event window fields fromv:eventBeginDate/v:eventEndDatetov:beginDate/v:endDateforevent_begin_dateandevent_end_date.models/staging/sedm/stage/stg_sedm__student_ieps.sql: Reordered fields indbt_utils.generate_surrogate_key()fork_student_iepto align with IEP identifier ordering (ed_org_id,iep_finalized_date, then association and student ids).models/staging/sedm/stage/_sedm_stage.yml: Registeredstg_sedm__student_iep_disability_collectionswith SEDM tags and the samesrc:domain:sedm:enabledgate as other SEDM stage models.New files created:
models/staging/sedm/base/base_sedm__student_iep_disability_collections.sql: Base layer onsource_edfi3('student_iep_disability_collections'); extracts tenant/API metadata,studentIEPReferencescalars and nested reference,v:disabilitiesasv_disabilities, and_extfor extensions.models/staging/sedm/stage/stg_sedm__student_iep_disability_collections.sql: Buildsk_student_iep(same surrogate pattern asstg_sedm__student_ieps), addsschool_year, appliesextract_extension, deduplicates withpartition_by='k_student_iep, ed_org_id'ordered by latest modification/pull, flattensv_disabilitiesviajson_flatten, filters out deleted rows, and exposes disability descriptor fields (disability_descriptor,disability_determination_source_type_descriptor,disability_diagnosis,order_of_disability).Tests and QC done:
Submitter checklist
## New Featuresfor features, etc.edu_wh PR Review Checklist:
Make sure the following have been completed before approving this PR:
## New Featuresfor features, etc.