What you need before you start:
To use the Hub Testing Integration System (HITS), you’ll need the following:
- A HITS testing account - apply from the Request an account section of the HITS Dashboard.
- This will give you access to your own testing environment
- Your testing environment will provide you with all necessary authentication and access tokens to work with the HITS API.
You’ll also need a basic knowledge of SIF REST:
You need to know how to work with a use case in HITS and access the HITS API
If you get stuck: drop us a line at info@nsip.edu.au
How to implement enrolment
1. What’s the business problem?
Allow schools in a school system to enrol students, saving the required information about the students to a jurisdictional data hub.
More…
2. Use Case Description & Pre-Conditions
A third party SIS application connects to HITS as a jurisdiction hub, collecting the relevant information and publishing back student records to the centralised system.
Enrolment conceptual diagram
This conceptual diagram contains interactions beyond this specific technical use case, and is included for context. Secondary objects are shaded grey.
Enrolment SIF objects
Diagrams the interactions between SIF objects for this use case.
Assumptions:
The third party vendor is a current supplier of a SIS product in schools or has knowledge of student administration processes in K-12 Schools.
Pre-conditions:
Here is a summary and a full version of the SIS Baseline Profile which governs the interactions for an enrolment.
3. Use Case Workflow
Workflow summary:
Join
Consume
Process
Provide
Assurance
3.1. Join required to School Zone
- Third party app connects to Jurisdiction-established Zone for the School (“HITS Zone 1”).
- Third party app authenticates to Jurisdiction-established Zone for the School (“HITS Zone 1 Authz”).
- Jurisdiction Zone authorises read access to objects in the Jurisdiction Zone for the School (“HITS Zone 1 Authn”).
3.2. Consume base data from HITS.
Vendor-facing (pull); HITS represents the Jurisdiction and is the data source for seed information.
- Consume on the Jurisdiction-established Zone for the app.
- Third party app accesses the SchoolInfo object corresponding to their school.
- Third party app ingests the relevant SIF Objects.
- Get SchoolInfos: http:// …/SchoolInfos
- This step may be skipped if the Third party app if the SchoolInfo RefId is already known.
- The query mechanism is specific to the hub, but retrieval is unlikely to be automatic; the school will likely do a manual query on the school name, using one of the established SIF query mechanisms, or else retrieve all SchoolInfo records from the hub and choose the right record.
3.3. Process - processes in third party application.
Third party app creates student enrolments for students enrolling in the given school.
- Third party app creates StudentPersonal records.
- Third party app creates StudentSchoolEnrollment records, one for each StudentPersonal record. StudentSchoolEnrollment/SchoolInfoRefId is populated with the SchoolInfo RefId for the current school that has been retrieved from HITS.
- Third party app creates StudentContactPersonal records.
- Third party app creates at least one StudentContactRelationship record for each StudentContactPersonal record, and at least one for each StudentPersonal record.
3.4. Provide authoritative data
Prior to providing:
- Third party expresses return information in SIF/XML.
- Third party app connects to Jurisdiction-established Zone for the School (“HITS Zone 1”).
- Third party app authenticates to Jurisdiction-established Zone for the School (“HITS Zone 1 Authz”).
- Jurisdiction-established Zone authorises write access to objects in the Jurisdiction Zone for the School (“HITS Zone 1 Authn”).
Following is posted by the third party app back to HITS:
- StudentPersonal to URL http:// …/StudentPersonals
- StudentSchoolEnrollment to URL http:// ../StudentSchoolEnrollments
- StudentContactPersonal to URL http:// ../StudentContactPersonals
- StudentContactRelationship to URL http:// ../StudentContactRelationships
3.5. Assurance: Self–confirmation of use case support
- Validate StudentPersonal records
- Validate StudentSchoolEnrollment records
- Validate StudentContactPersonal records
- Validate StudentContactRelationship records
The SIF/XML data sent by the third party app to the Jurisdiction Zone for the app must satisfy the following conditions:
- Any SIF object published by the App must be valid against the SIF-AU 3.4 schema
- Any SIF object published by the App should confirm to the SBP profile of the SIF-AU schema specific to the given scenarios. Conformance encompasses both the element for jurisdiction-internal use, and the elements intended for national reporting. (In the full version of the SIS Baseline Profile, the national reporting elements are colour-coded in blue.)
- All mandatory elements of the submitted SIF objects are provided
All SIF objects posted by the App must have referential integrity. Any RefId contained in the SIF object must refer either to a SIF object provisioned to the App — for example SchoolInfo, or to a SIF object that has also been posted by the App to the Zone (e.g. StudentSchoolEnrollment referring to StudentPersonal, StudentContactRelationship referring to StudentContactPersonal).This condition applies recursively to all additional SIF objects posted by the App. The test of this condition is done only when the App indicates that it has finished publishing to the Zone the objects required for the test.
More…
What business problem does this use case address?
In brief, this process:
- Allows schools secure access to SIS information.
- Allows schools to use the SIS product of their choice.
- Allows third party SIS apps to publish a school’s student enrolments to a jurisdictional hub.
The use case described here satisfies the following scenarios in the SIS Baseline Profile (SBP):
- 3.1.2 Future Enrolment: StudentSchoolEnrollment/TimeFrame is set to F (future)
- 3.1.4 New Current Enrolment: StudentSchoolEnrollment/TimeFrame is set to C (current)
- 3.3.4.1 New Student Contact and Relationship
- 3.3.4.2 New Relationship added to a Current Contact
The use case described above can be straightforwardly extended with update operations to satisfy the following scenarios in the SBP:
- 3.1.3 Future to Current Enrolment: StudentSchoolEnrollment/TimeFrame is updated from F (future) to C (current)
- 3.1.5 Year End Rollover: StudentSchoolEnrollment/TimeFrame is updated from C (current) to H (historical); new StudentSchoolEnrollment is created with StudentSchoolEnrollment/TimeFrame set to C (current)
- 3.1.6 Exit School: StudentSchoolEnrollment/TimeFrame is updated from C (current) to H (historical)
- 3.1.7 Change Campus: StudentSchoolEnrollment/TimeFrame is updated from C (current) to H (historical), with RecordClosureReason set to CampusExit and ExitType set to “Transfer campus of the same school”; new StudentSchoolEnrollment is created with StudentSchoolEnrollment/TimeFrame set to C (current) and EntryType set to “Transfer from a different campus of the same school”
- 3.1.8 Mid-year Promotion/Demotion: StudentSchoolEnrollment/YearLevel and StudentSchoolEnrollment/PromotionInfo/PromotionStatus is updated; StudentPersonal/YearLevel is updated
- 3.1.9 Change in Personal Details: update StudentPersonal
- 3.3.4.3 Change to a StudentContact Personal information: update StudentContactPersonal
- 3.3.4.4 Change to StudentContact Relationship info: update StudentContactRelationship
- 3.3.4.5 Remove a StudentContact from a student: delete StudentContactRelationship record
Use case preconditions for assurance
As this use case applies to school systems, the enrolment records need to identify the school being enrolled into. This is done with the established SIF mechanism of referencing a SchoolInfo RefId. The master for the SchoolInfo object is the jurisdiction hub, and the third party SIS is meant to retrieve the relevant SchoolInfo object from the hub, in order to reference it correctly.
In particular: - The use of several elements is upgraded from optional to strongly recommended - FamilyName, GivenName, MiddleName are used instead of FullName for students, and are strongly recommended for student contacts - StudentPersonal/PersonInfo/Demographics/Sex is mandatory - StudentPersonal/PersonInfo/Demographics/BirthDate is mandatory - StudentSchoolEnrollment/YearLevel is mandatory
Relevant Service Paths Supported on HITS
- StudentPersonals/{}/StudentContactPersonals
- SchoolInfos/{}/StudentPersonals
- SchoolInfos/{}/StudentSchoolEnrollments
- SchoolInfos/{}/StudentContactPersonals
- SchoolInfos/{}/StudentContactRelationships
Relevant Queries By Example Supported on HITS
<SchoolInfo>
<LocalId>{schoolCode}</LocalId>
</SchoolInfo>
<StudentPersonal>
<LocalId>{id}</LocalId>
<PersonInfo>
<Name>
<FamilyName>{familyName}</FamilyName>
<GivenName>{givenName}</GivenName>
</Name>
</PersonInfo>
</StudentPersonal>
<StudentSchoolEnrollment>
<TimeFrame>{type}</TimeFrame>
<YearLevel><Code>{yearlevel}</Code></YearLevel>
</StudentSchoolEnrollment>
<StudentContactPersonal>
<LocalId>{id}</LocalId>
<PersonInfo>
<Name>
<FamilyName>{familyName}</FamilyName>
<GivenName>{givenName}</GivenName>
</Name>
</PersonInfo>
</StudentContactPersonal>
<StudentContactRelationship>
<StudentPersonalRefId>{refid}</StudentPersonalRefId>
<StudentContactPersonalRefId>{refid}</StudentContactPersonalRefId>
</StudentContactRelationship>