Vision / Workflow:
Ideally, the SIS vendors will implement a real-time (versus batch) identity solution in their software which will allow district/school staff to review matches as they add staff (instead of having to review after a batch upload).
IMPORTANT: Anytime more than one possible match is returned, DO NOT automate the selection of a WISEid based on score or other logic. An LEA user needs to be presented with the possible matches and then manually selectselected.
Expand | ||
---|---|---|
| ||
Find:
Search:
The ideal real-time workflow would be:
Potentially the SIS will be doing a batch matching process that mirrors the current WISEid upload processing. Instead of Match Reviews happening in bulk in WISEid they would happen in bulk in the SIS match/review tool. This option is available since many vendors already have for other states, but in our opinion, that is not the best-recommended practice. The ideal batch workflow would be: Verify the record has all WISEid required fields of Local Person ID, First Name, Last Name, Birthdate, Gender, Race/Ethnicity – if a required field is missing, then don’t allow the records to be processed further. If a Person has Multiple Birth Status = Y, and there is no WISEid in your system, then end-users should always go to match review (SIS should not rely on auto-matching when Multiple Birth Status = Y). If no possible match results from /identities, and Multiple Birth Status ≠ Y, then do a CREATE of new WISEids. If only one record is returned as a possible match from /identities and Multiple Birth Status ≠ Y, then auto-match.
|
...
Wisconsin Specific Technical Details:
The first step in creating an identity is to do a search to make sure the identity doesn’t exist already. The search will provide a search key which MUST be provided when doing a create. This is not part of the standard Ed-Fi identity implementation. Additional Wisconsin-specific fields for API requests for each endpoint (GET, FIND, SEARCH, CREATE) are in RED in their respective sections.
FIND
Expand | |||||
---|---|---|---|---|---|
REQUEST
RESPONSE
IdentitySearchResponse { Status (string, optional) = ['Incomplete' or 'Complete'], SearchResponses (array[IdentitySearchResponses], optional) Responses (array[IdentityResponse], optional) UniqueId (string, optional), Score (number, optional), LastSurname (string, optional), FirstName (string, optional), MiddleName (string, optional), GenerationCodeSuffix (string, optional), SexType (string, optional), BirthDate (string, optional), BirthLocation (Location, optional), IsHispanicLatino (bool, option) RaceCodes (array[string], option), A, B, I, P, W Locals (array(Local), optional), educationOrganizationId: 1323, localPersonId: string, description: string, typeDescription: ‘Staff’, wiseSecureRoleDescription: ‘Principal/Designee’ Names (array[Name], optional), other names firstName: string, middleName: string, lastSurname: string, suffixDescription: string ParentGuardianNames (array[Name], optional), staffassignments: [ schoolYear: 2025, localEducationAgencyId: 1323, nameOfInstitution: 'Arrowhead UHS School District', positionCode: 0000, positionDescription: ‘Teacher’, areaCode: 005', areaDescription: 'Elementary - All Subjects' InactiveUniqueIds (array[string], option), Old (duplicate) UniqueIds for the staff which were merged to the current UniqueId } EXAMPLEREQUEST
RESPONSE
|
...
SEARCH
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
REQUEST
IdentitySearchRequests (array[IdentitySearchRequest], optional) UniqueId (string, optional), LastSurname (string, Required), FirstName (string, Required), BirthDate (string, Required), MiddleName (string, optional), GenerationCodeSuffix (string, optional), SexType (string, optional), LocalPersonId (string, optional), A string uniquely identifying the student (or staff) for the Vendor Software (aka LocalPersonRowKey) EducationOrganizationId (integer, required): It’s highly recommended that vendors send the EducationOrganizationId with the request. The the EducationOrganizationId field helps determine if Email and LocalPersonId should be returned for ApiKeys that are associated with more than one Education Organization. If this field is omitted, not valid, or is not authorized for the associated ApiKey, then the default EducationOrganizationId associated with the ApiKey will be used to determine if the Email and LocalPersonId should be returned. The fields Email and LocalPersonId are only returned if they are associated with final determining EducationOrganizationId. RESPONSE
IdentitySearchResponse { Status (string, optional) = ['Incomplete' or 'Complete'], SearchResponses (array[IdentitySearchResponses], optional) } Responses (array[IdentityResponse], optional) } UniqueId (string, optional), Score (number, optional), Anytime more than one possible match is returned, DO NOT automate the selection of a WISEid based on score or other logic. An LEA user needs to be presented with the possible matches and then manually select(see the confidence score logic above) LastSurname (string, optional), FirstName (string, optional), MiddleName (string, optional), GenerationCodeSuffix (string, optional), SexType (string, optional), BirthDate (string, optional), BirthLocation (Location, optional) IsHispanicLatino (bool, option) RaceCodes (array[string], option), A, B, I, P, W Locals (array[Local], optional), Names (array[Name], optional), other names ParentGuardianNames (array[Name], optional), staffassignments: [ schoolYear: 2025, localEducationAgencyId: 1323, nameOfInstitution: 'Arrowhead UHS School District', positionCode: 0000, positionDescription: ‘Teacher’, areaCode: 005', areaDescription: 'Elementary - All Subjects' InactiveUniqueIds (array[string], option), Old (duplicate) UniqueIds for the student which were merged to the current UniqueId } SearchKey (guid, optional), EXAMPLE REQUEST:
RESPONSE:
|
...
CREATE
Expand | |||||
---|---|---|---|---|---|
REQUEST
IdentityCreateRequest { SearchKey: (GUID, required), LastSurname (string, required), FirstName (string, required), MiddleName (string, optional), GenerationCodeSuffix (string, optional), SexType (string, required), BirthDate (string, required), BirthLocation (Location, optional), RaceCodes (array[string], required ), A, B, I, P, W IsHispanicLatino: (bool, required), EntityId: (numeric, optional) Names (array[Name], optional), other names ParentGuardianNames (array[Name], optional) : At least one 'Parent/Guardian' record is required for each person record when they have a 'Local Person ID Key Type' that equals 'Student' } Location { City (string, optional), StateAbbreviation (string, optional), InternationalProvince (string, optional), Country (string, optional), County (string, optional) } Local { EducationOrganizationId (integer, optional): it’s highly recommended that vendors send the EducationOrganizationId with the request. This should be the LocalEducationAgencyId and not the SchoolId. LocalPersonId (string, required), : A string uniquely identifying the student (or staff) for the Vendor Software (aka LocalPersonRowKey) Description (string, optional), : A description of the person local row key - ex. Manually created wise id Email (string, optional), TypeDescription (string, required), : Either Student or Teacher WiseSecureRoleDescription (string, optional) : A role federation role Ex Student or Teacher } Name { FirstName (string, optional), MiddleName (string, optional), LastSurname (string, optional) } RESPONSE
UniqueId (string, optional): This is the same as a WISEid EXAMPLEREQUEST:
RESPONSE:
|
...