Skip to content

Commit

Permalink
Added new validation for Tissue Type
Browse files Browse the repository at this point in the history
  • Loading branch information
vmanawat committed Dec 19, 2024
1 parent 8417538 commit c71875a
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 4 deletions.
9 changes: 9 additions & 0 deletions backend/prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -296,3 +296,12 @@ model aqi_units_xref {
update_user_id String @db.VarChar(200)
update_utc_timestamp DateTime @db.Timestamp(6)
}

model aqi_tissue_types {
aqi_tissue_types_id String @id @db.Uuid
custom_id String @db.VarChar(200)
create_user_id String @db.VarChar(200)
create_utc_timestamp DateTime @db.Timestamp(6)
update_user_id String @db.VarChar(200)
update_utc_timestamp DateTime @db.Timestamp(6)
}
53 changes: 49 additions & 4 deletions backend/src/cron-job/cron-job.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ export class CronJobService {
["aqi_detection_conditions", this.prisma.aqi_detection_conditions],
["aqi_result_status", this.prisma.aqi_result_status],
["aqi_result_grade", this.prisma.aqi_result_grade],
["aqi_tissue_types", this.prisma.aqi_tissue_types],
["aqi_locations", this.prisma.aqi_locations],
["aqi_field_visits", this.prisma.aqi_field_visits],
["aqi_field_activities", this.prisma.aqi_field_activities],
Expand Down Expand Up @@ -108,6 +109,13 @@ export class CronJobService {
dbTable: "aqi_result_grade",
paramsEnabled: false,
},
{
endpoint:
"/v1/extendedattributes/6f7d5be0-f91a-4353-9d31-13983205cbe0/dropdownlistitems",
method: "GET",
dbTable: "aqi_tissue_types",
paramsEnabled: false,
},
{
endpoint: "/v1/samplinglocations",
method: "GET",
Expand Down Expand Up @@ -175,6 +183,15 @@ export class CronJobService {
*/
private getUpdatePayload(dbTable: string, record: any): any {
switch (dbTable) {
case "aqi_tissue_types":
return {
aqi_tissue_types_id: record.id,
custom_id: record.customId,
create_user_id: "EnMoDS",
create_utc_timestamp: new Date(),
update_user_id: "EnMoDS",
update_utc_timestamp: new Date(),
};
case "aqi_field_visits":
return {
aqi_field_visit_start_time: new Date(record.startTime),
Expand Down Expand Up @@ -237,6 +254,15 @@ export class CronJobService {
*/
private getCreatePayload(dbTable: string, record: any): any {
switch (dbTable) {
case "aqi_tissue_types":
return {
aqi_tissue_types_id: record.id,
custom_id: record.customId,
create_user_id: "EnMoDS",
create_utc_timestamp: new Date(),
update_user_id: "EnMoDS",
update_utc_timestamp: new Date(),
};
case "aqi_field_visits":
return {
[`${dbTable}_id`]: record.id,
Expand Down Expand Up @@ -474,6 +500,23 @@ export class CronJobService {
modificationTime,
};
};
const filterTissueTypes = (obj: any): any => {
const { id, customId } = obj;
const create_user_id = "EnMoDs";
const create_utc_timestamp = new Date().toISOString();
const update_user_id = "EnMoDs";
const update_utc_timestamp = new Date().toISOString();

return {
id,
customId,
create_user_id,
create_utc_timestamp,
update_user_id,
update_utc_timestamp,
};
}

const filterArray = (array: any): any => {
if (endpoint == "/v1/tags") {
return array.map(filterNameAttributes);
Expand All @@ -485,7 +528,9 @@ export class CronJobService {
return array.map(filterSpecimenAttributes);
} else if (endpoint == "/v1/analysismethods") {
return array.map(filerAnalysisMethodAttributes);
} else {
} else if (endpoint == "/v1/extendedattributes/6f7d5be0-f91a-4353-9d31-13983205cbe0/dropdownlistitems"){
return array.map(filterTissueTypes)
}else {
return array.map(filterAttributes);
}
};
Expand Down Expand Up @@ -541,13 +586,13 @@ export class CronJobService {
`Error processing file ${file.file_name}: ${error}`,
);
});

while (!fileProcessed) {
this.logger.log(`WAITING FOR FILE TO COMPLETE: ${file.file_name}`)
this.logger.log(`WAITING FOR FILE TO COMPLETE: ${file.file_name}`);
await new Promise((resolve) => setTimeout(resolve, 100));
}

this.logger.log("GOING TO NEXT FILE")
this.logger.log("GOING TO NEXT FILE");
}

this.dataPullDownComplete = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1073,6 +1073,22 @@ export class FileParseValidateService {
}
}

if (record.hasOwnProperty("TissueType")){
if (record["Medium"] == "Animal - Fish" && record["TissueType"] == ""){
let errorLog = `{"rowNum": ${index + 2}, "type": "ERROR", "message": {"Tissue Type": "Cannot be empty when Medium is Animal - Fish"}}`;
errorLogs.push(JSON.parse(errorLog));
}else if (record["TissueType"]) {
const present = await this.aqiService.databaseLookup(
"aqi_tissue_types",
record.TissueType,
);
if (!present) {
let errorLog = `{"rowNum": ${index + 2}, "type": "ERROR", "message": {"Tissue Type": "${record.TissueType} not found in EnMoDS Tissue Types"}}`;
errorLogs.push(JSON.parse(errorLog));
}
}
}

if (record.hasOwnProperty("SpecimenName")) {
if (record["CompositeStat"] != "" && record["SpecimenName"] == "") {
let errorLog = `{"rowNum": ${index + 2}, "type": "ERROR", "message": {"Specimen Name": "Cannot be empty when Composite Stat is present."}}`;
Expand Down
8 changes: 8 additions & 0 deletions migrations/sql/V1.0.3__create_code_tables.sql
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,14 @@ CREATE TABLE IF NOT EXISTS enmods.aqi_result_grade (
update_user_id varchar(200) NOT NULL,
update_utc_timestamp timestamp NOT NULL
);
CREATE TABLE IF NOT EXISTS enmods.aqi_tissue_types(
aqi_tissue_types_id UUID PRIMARY KEY NOT NULL,
custom_id varchar(200) NOT NULL,
create_user_id varchar(200) NOT NULL,
create_utc_timestamp timestamp NOT NULL,
update_user_id varchar(200) NOT NULL,
update_utc_timestamp timestamp NOT NULL
);
CREATE TABLE IF NOT EXISTS enmods.aqi_field_visits(
aqi_field_visits_id UUID PRIMARY KEY NOT NULL,
aqi_field_visit_start_time timestamptz NOT NULL,
Expand Down

0 comments on commit c71875a

Please sign in to comment.