Skip to content

Commit 5290efa

Browse files
Changes for new ISFS report.
1 parent 7cac5ec commit 5290efa

File tree

8 files changed

+342
-2
lines changed

8 files changed

+342
-2
lines changed

api/src/main/java/ca/bc/gov/educ/studentdatacollection/api/constants/v1/MinistryReportTypeCode.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ public enum MinistryReportTypeCode {
2424
INDY_FUNDING_REPORT_FUNDED("indy-funding-report-funded"),
2525
ONLINE_INDY_FUNDING_REPORT("online-indy-funding-report"),
2626
NON_GRADUATED_ADULT_INDY_FUNDING_REPORT("non-graduated-adult-indy-funding-report"),
27-
REFUGEE_ENROLMENT_HEADCOUNTS_AND_FTE_REPORT("refugee-enrolment-fte-headcounts")
28-
27+
REFUGEE_ENROLMENT_HEADCOUNTS_AND_FTE_REPORT("refugee-enrolment-fte-headcounts"),
28+
ISFS_PRELIMINARY_REPORT("isfs-prelim-report")
2929
;
3030

3131
private final String code;
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package ca.bc.gov.educ.studentdatacollection.api.constants.v1.ministryreports;
2+
3+
import lombok.Getter;
4+
5+
@Getter
6+
public enum ISFSPreliminaryHeader {
7+
8+
REPORT_DATE("REPORT_DATE"),
9+
DISTNO("DISTNO"),
10+
SCHLNO("SCHLNO"),
11+
PRIM_FUND("PRIM_FUND"),
12+
ELEM_FUND("ELEM_FUND"),
13+
JUNR_FUND("JUNR_FUND"),
14+
SECN_FUND("SECN_FUND"),
15+
DL_13_FUND("DL_13_FUND"),
16+
DL_14_FUND("DL_14_FUND"),
17+
SL_1_HC("SL_1_HC"),
18+
SL_2_HC("SL_2_HC"),
19+
SL_3_HC("SL_3_HC"),
20+
SL_SES_HC("SL_SES_HC"),
21+
ADP_FTE("ADP_FTE"),
22+
ADE_FTE("ADE_FTE"),
23+
ADJ_FTE("ADJ_FTE"),
24+
ADS_FTE("ADS_FTE"),
25+
DL_AK9_FTE("DL_AK9_FTE"),
26+
DL_AAC_FTE("DL_AAC_FTE"),
27+
ES_KH_FTE("ES_KH_FTE"),
28+
ES_KF_FTE("ES_KF_FTE"),
29+
ES_PR_FTE("ES_PR_FTE"),
30+
ES_EL_FTE("ES_EL_FTE"),
31+
ES_JR_FTE("ES_JR_FTE"),
32+
ES_SR_FTE("ES_SR_FTE"),
33+
DL_13_FTE("DL_13_FTE"),
34+
DL_14_FTE("DL_14_FTE"),
35+
HS_HC("HS_HC"),
36+
IS_POSTED("IS_POSTED");
37+
38+
private final String code;
39+
ISFSPreliminaryHeader(String code) { this.code = code; }
40+
}

api/src/main/java/ca/bc/gov/educ/studentdatacollection/api/controller/v1/MinistryHeadcountReportsController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ public DownloadableReportResponse getMinistryDownloadableReport(UUID collectionI
7676
case NON_GRADUATED_ADULT_INDY_FUNDING_REPORT -> ministryReportsService.generateIndyFundingGraduateReport(collectionID);
7777
case REFUGEE_ENROLMENT_HEADCOUNTS_AND_FTE_REPORT -> ministryReportsService.generateRefugeeEnrolmentHeadcountsAndFteReport(collectionID);
7878
case POSTED_DUPLICATES -> ministryReportsService.generatePostedDuplicatesReport(collectionID);
79+
case ISFS_PRELIMINARY_REPORT -> ministryReportsService.generateISFSPrelimReport(collectionID);
7980
default -> new DownloadableReportResponse();
8081
};
8182
}

api/src/main/java/ca/bc/gov/educ/studentdatacollection/api/repository/v1/SdcSchoolCollectionStudentRepository.java

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1830,6 +1830,94 @@ WHERE sscs.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')
18301830
GROUP BY sscs.sdcSchoolCollection.schoolID, sscs.sdcSchoolCollection.sdcSchoolCollectionID """)
18311831
List<EnrolmentHeadcountFteResult> getEnrolmentHeadcountsAndFteByFebCollectionId(@Param("collectionID") UUID collectionID);
18321832

1833+
@Query(value = """
1834+
SELECT
1835+
sscs.sdcSchoolCollection.schoolID as schoolID,
1836+
1837+
COUNT(DISTINCT CASE WHEN sscs.specialEducationCategoryCode in ('A','B') AND sscs.specialEducationNonEligReasonCode IS NULL THEN sscs.sdcSchoolCollectionStudentID END) as specialEducationLevel1Count,
1838+
COUNT(DISTINCT CASE WHEN sscs.specialEducationCategoryCode in ('C','D','E','F','G') AND sscs.specialEducationNonEligReasonCode IS NULL THEN sscs.sdcSchoolCollectionStudentID END) as specialEducationLevel2Count,
1839+
COUNT(DISTINCT CASE WHEN sscs.specialEducationCategoryCode in ('H','J','M','N') AND sscs.specialEducationNonEligReasonCode IS NULL THEN sscs.sdcSchoolCollectionStudentID END) as specialEducationLevel4Count,
1840+
COUNT(DISTINCT CASE WHEN sscs.specialEducationCategoryCode in ('K','P','Q','R') AND sscs.specialEducationNonEligReasonCode IS NULL THEN sscs.sdcSchoolCollectionStudentID END) as specialEducationLevelOtherCount,
1841+
1842+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('KH') AND s.fte > 0 and s.isSchoolAged = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1843+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1844+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1845+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as schoolAgedKHFte,
1846+
1847+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('KF') AND s.fte > 0 and s.isSchoolAged = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1848+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1849+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1850+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as schoolAgedKFFte,
1851+
1852+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('01','02','03') AND s.fte > 0 and s.isSchoolAged = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1853+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1854+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1855+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as schoolAged1to3Fte,
1856+
1857+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('KH','KF','01','02','03','04','05','06','07','08','09') AND s.fte > 0 and s.isSchoolAged = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1858+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1859+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1860+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as schoolAgedKto9Fte,
1861+
1862+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('04','05','06','07','EU') AND s.fte > 0 and s.isSchoolAged = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1863+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1864+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1865+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as schoolAged4to7EUFte,
1866+
1867+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('08','09','10','SU') AND s.fte > 0 and s.isSchoolAged = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1868+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1869+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1870+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as schoolAged8to10SUFte,
1871+
1872+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('11','12') AND s.fte > 0 and s.isSchoolAged = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1873+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1874+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1875+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as schoolAged11and12Fte,
1876+
1877+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('10','11','12') AND s.fte > 0 and s.isSchoolAged = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1878+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1879+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1880+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as schoolAged10to12Fte,
1881+
1882+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('KH','KF','01','02','03') AND s.fte > 0 and s.isAdult = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1883+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1884+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1885+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as adultsKto3Fte,
1886+
1887+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('KH','KF','01','02','03','04','05','06','07','08','09') AND s.fte > 0 and s.isAdult = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1888+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1889+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1890+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as adultsKto9Fte,
1891+
1892+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('04','05','06','07','EU') AND s.fte > 0 and s.isAdult = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1893+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1894+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1895+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as adults4to7EUFte,
1896+
1897+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('08','09','10','SU') AND s.fte > 0 and s.isAdult = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1898+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1899+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1900+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as adults8to10SUFte,
1901+
1902+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('11','12') AND s.fte > 0 and s.isAdult = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1903+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1904+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1905+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as adults11and12Fte,
1906+
1907+
(SELECT SUM(CASE WHEN s.enrolledGradeCode in ('10','11','12') AND s.fte > 0 and s.isAdult = true THEN s.fte ELSE 0 END ) FROM SdcSchoolCollectionStudentEntity s
1908+
WHERE s.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1909+
AND s.sdcSchoolCollection.sdcSchoolCollectionID = sscs.sdcSchoolCollection.sdcSchoolCollectionID
1910+
AND s.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')) as adults10to12Fte,
1911+
1912+
COUNT(DISTINCT CASE WHEN sscs.enrolledGradeCode in ('HS') THEN sscs.sdcSchoolCollectionStudentID END) as totalHomeschoolCount
1913+
1914+
FROM SdcSchoolCollectionStudentEntity sscs
1915+
WHERE sscs.sdcSchoolCollectionStudentStatusCode NOT IN ('ERROR', 'DELETED')
1916+
AND sscs.sdcSchoolCollection.collectionEntity.collectionID = :collectionID
1917+
AND sscs.sdcSchoolCollection.sdcDistrictCollectionID is null
1918+
GROUP BY sscs.sdcSchoolCollection.schoolID, sscs.sdcSchoolCollection.sdcSchoolCollectionID """)
1919+
List<ISFSPrelimHeadcountResult> getISFSPreliminaryDataByCollectionId(@Param("collectionID") UUID collectionID);
1920+
18331921
@Query("SELECT " +
18341922
" sscs.sdcSchoolCollection.schoolID as schoolID, " +
18351923

api/src/main/java/ca/bc/gov/educ/studentdatacollection/api/service/v1/reports/CSVReportService.java

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.io.OutputStreamWriter;
3232
import java.math.BigDecimal;
3333
import java.time.LocalDateTime;
34+
import java.time.format.DateTimeFormatter;
3435
import java.util.*;
3536
import java.util.stream.Collectors;
3637

@@ -1024,6 +1025,75 @@ public DownloadableReportResponse generateInclusiveEducationVarianceReport(UUID
10241025
}
10251026
}
10261027

1028+
// ISFS Preliminary report
1029+
public DownloadableReportResponse generateISFSPrelimReport(UUID collectionID) {
1030+
var collectionOpt = collectionRepository.findById(collectionID);
1031+
1032+
if(collectionOpt.isEmpty()){
1033+
throw new EntityNotFoundException(Collection.class, COLLECTION_ID, collectionID.toString());
1034+
}
1035+
1036+
List<ISFSPrelimHeadcountResult> results = sdcSchoolCollectionStudentRepository.getISFSPreliminaryDataByCollectionId(collectionID);
1037+
1038+
List<String> headers = Arrays.stream(ISFSPreliminaryHeader.values()).map(ISFSPreliminaryHeader::getCode).toList();
1039+
CSVFormat csvFormat = CSVFormat.DEFAULT.builder()
1040+
.setHeader(headers.toArray(String[]::new))
1041+
.build();
1042+
try {
1043+
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
1044+
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(byteArrayOutputStream));
1045+
CSVPrinter csvPrinter = new CSVPrinter(writer, csvFormat);
1046+
1047+
for (ISFSPrelimHeadcountResult result : results) {
1048+
var school = restUtils.getSchoolBySchoolID(result.getSchoolID()).orElseThrow(() -> new EntityNotFoundException(SchoolTombstone.class, SCHOOL_ID, result.getSchoolID()));
1049+
1050+
List<String> csvRowData = prepareISFSPrelimDataForCsv(getPrelimFinalResult(result, school), school, collectionOpt.get());
1051+
csvPrinter.printRecord(csvRowData);
1052+
}
1053+
csvPrinter.flush();
1054+
1055+
var downloadableReport = new DownloadableReportResponse();
1056+
downloadableReport.setReportType(ISFS_PRELIMINARY_REPORT.getCode());
1057+
downloadableReport.setDocumentData(Base64.getEncoder().encodeToString(byteArrayOutputStream.toByteArray()));
1058+
1059+
return downloadableReport;
1060+
} catch (IOException e) {
1061+
throw new StudentDataCollectionAPIRuntimeException(e);
1062+
}
1063+
}
1064+
1065+
private ISFSPrelimHeadcountFinalResult getPrelimFinalResult(ISFSPrelimHeadcountResult queryResult, SchoolTombstone school){
1066+
ISFSPrelimHeadcountFinalResult finalResult = new ISFSPrelimHeadcountFinalResult();
1067+
1068+
finalResult.setSpecialEducationLevel1Count(queryResult.getSpecialEducationLevel1Count());
1069+
finalResult.setSpecialEducationLevel2Count(queryResult.getSpecialEducationLevel2Count());
1070+
finalResult.setSpecialEducationLevel3Count(queryResult.getSpecialEducationLevel3Count());
1071+
finalResult.setSpecialEducationLevelOtherCount(queryResult.getSpecialEducationLevelOtherCount());
1072+
1073+
if(school.getFacilityTypeCode().equalsIgnoreCase(FacilityTypeCodes.DIST_LEARN.getCode()) || school.getFacilityTypeCode().equalsIgnoreCase(FacilityTypeCodes.DISTONLINE.getCode())) {
1074+
finalResult.setDLAdultsKto9Fte(queryResult.getAdultsKto9Fte());
1075+
finalResult.setDLAdults10to12Fte(queryResult.getAdults10to12Fte());
1076+
finalResult.setDLSchoolAgedKto9Fte(queryResult.getSchoolAgedKto9Fte());
1077+
finalResult.setDLSchoolAged10to12Fte(queryResult.getSchoolAged10to12Fte());
1078+
}else{
1079+
finalResult.setStandardAdultsKto3Fte(queryResult.getAdultsKto3Fte());
1080+
finalResult.setStandardAdults4to7EUFte(queryResult.getAdults4to7EUFte());
1081+
finalResult.setStandardAdults8to10SUFte(queryResult.getAdults8to10SUFte());
1082+
finalResult.setStandardAdults11and12Fte(queryResult.getAdults11and12Fte());
1083+
1084+
finalResult.setStandardSchoolAgedKHFte(queryResult.getSchoolAgedKHFte());
1085+
finalResult.setStandardSchoolAgedKFFte(queryResult.getSchoolAgedKFFte());
1086+
finalResult.setStandardSchoolAged1to3Fte(queryResult.getSchoolAged1to3Fte());
1087+
finalResult.setStandardSchoolAged4to7EUFte(queryResult.getSchoolAged4to7EUFte());
1088+
finalResult.setStandardSchoolAged8to10SUFte(queryResult.getSchoolAged8to10SUFte());
1089+
finalResult.setStandardSchoolAged11and12Fte(queryResult.getSchoolAged11and12Fte());
1090+
}
1091+
1092+
finalResult.setTotalHomeschoolCount(queryResult.getTotalHomeschoolCount());
1093+
1094+
return finalResult;
1095+
}
1096+
10271097
// Enroled Headcounts and FTEs by School report
10281098
public DownloadableReportResponse generateEnrolledHeadcountsAndFteReport(UUID collectionID) {
10291099
var collectionOpt = collectionRepository.findById(collectionID);
@@ -1180,6 +1250,40 @@ private List<String> prepareInclusiveEducationVarianceForCsv(SpecialEdHeadcountR
11801250
));
11811251
}
11821252

1253+
private List<String> prepareISFSPrelimDataForCsv(ISFSPrelimHeadcountFinalResult headcountResult, SchoolTombstone school, CollectionEntity collection) {
1254+
return new ArrayList<>(Arrays.asList(
1255+
collection.getSnapshotDate().format(DateTimeFormatter.ofPattern("yyyyMMdd")),
1256+
school.getMincode().substring(0, 3),
1257+
school.getSchoolNumber(),
1258+
"",
1259+
"",
1260+
"",
1261+
"",
1262+
"",
1263+
"",
1264+
headcountResult.getSpecialEducationLevel1Count(),
1265+
headcountResult.getSpecialEducationLevel2Count(),
1266+
headcountResult.getSpecialEducationLevel3Count(),
1267+
headcountResult.getSpecialEducationLevelOtherCount(),
1268+
headcountResult.getStandardAdultsKto3Fte(),
1269+
headcountResult.getStandardAdults4to7EUFte(),
1270+
headcountResult.getStandardAdults8to10SUFte(),
1271+
headcountResult.getStandardAdults11and12Fte(),
1272+
headcountResult.getDLAdultsKto9Fte(),
1273+
headcountResult.getDLAdults10to12Fte(),
1274+
headcountResult.getStandardSchoolAgedKHFte(),
1275+
headcountResult.getStandardSchoolAgedKFFte(),
1276+
headcountResult.getStandardSchoolAged1to3Fte(),
1277+
headcountResult.getStandardSchoolAged4to7EUFte(),
1278+
headcountResult.getStandardSchoolAged8to10SUFte(),
1279+
headcountResult.getStandardSchoolAged11and12Fte(),
1280+
headcountResult.getDLSchoolAgedKto9Fte(),
1281+
headcountResult.getDLSchoolAged10to12Fte(),
1282+
headcountResult.getTotalHomeschoolCount(),
1283+
"N"
1284+
));
1285+
}
1286+
11831287
private List<String> prepareEnrolmentFteDataForCsv(EnrolmentHeadcountFteResult headcountResult, SchoolTombstone school) {
11841288
var facilityType = restUtils.getFacilityTypeCode(school.getFacilityTypeCode());
11851289
return new ArrayList<>(Arrays.asList(
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package ca.bc.gov.educ.studentdatacollection.api.struct.v1.headcounts;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
8+
@Data
9+
@AllArgsConstructor
10+
@NoArgsConstructor
11+
@Builder
12+
public class ISFSPrelimHeadcountFinalResult {
13+
String specialEducationLevel1Count;
14+
String specialEducationLevel2Count;
15+
String specialEducationLevel3Count;
16+
String specialEducationLevelOtherCount;
17+
18+
String standardAdultsKto3Fte;
19+
String standardAdults4to7EUFte;
20+
String standardAdults8to10SUFte;
21+
String standardAdults11and12Fte;
22+
23+
String dLAdultsKto9Fte;
24+
String dLAdults10to12Fte;
25+
26+
String standardSchoolAgedKHFte;
27+
String standardSchoolAgedKFFte;
28+
String standardSchoolAged1to3Fte;
29+
String standardSchoolAged4to7EUFte;
30+
String standardSchoolAged8to10SUFte;
31+
String standardSchoolAged11and12Fte;
32+
33+
String dLSchoolAgedKto9Fte;
34+
String dLSchoolAged10to12Fte;
35+
36+
String totalHomeschoolCount;
37+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package ca.bc.gov.educ.studentdatacollection.api.struct.v1.headcounts;
2+
3+
public interface ISFSPrelimHeadcountResult extends HeadcountResult{
4+
String getSpecialEducationLevel1Count();
5+
String getSpecialEducationLevel2Count();
6+
String getSpecialEducationLevel3Count();
7+
String getSpecialEducationLevelOtherCount();
8+
9+
String getAdultsKto3Fte();
10+
String getAdultsKto9Fte();
11+
String getAdults4to7EUFte();
12+
String getAdults8to10SUFte();
13+
String getAdults11and12Fte();
14+
String getAdults10to12Fte();
15+
16+
String getSchoolAgedKHFte();
17+
String getSchoolAgedKFFte();
18+
String getSchoolAged1to3Fte();
19+
String getSchoolAgedKto9Fte();
20+
String getSchoolAged4to7EUFte();
21+
String getSchoolAged8to10SUFte();
22+
String getSchoolAged11and12Fte();
23+
String getSchoolAged10to12Fte();
24+
25+
String getTotalHomeschoolCount();
26+
}

0 commit comments

Comments
 (0)