Files
astra-frontend/src/pages/newMedicalCard/utils/gettersObjects.js

176 lines
4.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export function getConfidantObject(data) {
if (!data) {
return {
networks: [],
email: {
value: null,
},
phone: {
value: null,
},
first_name: {
value: null,
},
last_name: {
value: null,
},
patronymic: {
value: null,
},
note: {
value: null,
},
};
} else {
const phone = data.contacts.find((el) => el.kind === "PHONE");
const email = data.contacts.find((el) => el.kind === "EMAIL");
const networks = data.contacts.filter(
(el) => el.kind !== "PHONE" && el.kind !== "EMAIL"
);
return {
id: data.id,
first_name: {
value: data?.first_name,
},
last_name: {
value: data?.last_name,
},
patronymic: {
value: data?.patronymic,
},
phone: {
value: phone?.username,
id: phone?.id,
},
email: {
value: email?.username,
id: email?.id,
},
networks,
note: {
id: data?.note[0]?.id,
value: data?.note.length ? data?.note[0].description : "",
},
};
}
}
export const getFilledConditions = (condition) => {
let filledConditions = [];
let crown = Object.keys(condition.crown)
.map((key) => ({
value: condition.crown[key],
type: "crown",
part: key,
}))
.filter((el) => el.value.length);
let root = Object.keys(condition.root)
.map((key) => ({
value: condition.root[key],
type: "root",
part: key,
}))
.filter((el) => el.value.length);
filledConditions = [...crown, ...root];
if (condition.general)
filledConditions.unshift({
value: condition.general,
type: "general",
});
return filledConditions;
};
export function getToothImageConfig(data) {
let grey = "var(--border-light-grey-color)";
let yellow = "var(--bg-yellow-warning)";
let red = "var(--border-red-color)";
let resulConfig = {};
Object.keys(data).forEach((key) => {
if (key === "general") {
resulConfig[key] = data[key];
} else if (key === "crown") {
let keyConfig = {
general: {
fill: resulConfig.general === "П" ? red : grey,
injury: resulConfig.general === "П",
seal: false,
},
};
Object.keys(data[key]).forEach((part) => {
let partConfig = {
fill: grey,
injury: false,
};
if (part === "central" && data[key][part].includes("Пл")) {
partConfig.fill = yellow;
keyConfig.general.seal = true;
} else {
if (data[key][part].includes("П") || data[key][part].includes("Пт")) {
partConfig.fill = red;
partConfig.injury = true;
if (!keyConfig.general.seal) {
keyConfig.general.fill = red;
keyConfig.general.injury = true;
}
}
if (data[key][part].includes("Д")) {
if (partConfig.fill !== red) {
partConfig.fill = yellow;
}
if (!keyConfig.general.seal && !keyConfig.general.injury) {
keyConfig.general.fill = yellow;
}
}
if (data[key][part].includes("К")) {
partConfig.injury = true;
keyConfig.general.injury = true;
}
}
keyConfig[part] = { ...partConfig };
});
resulConfig[key] = { ...keyConfig };
} else {
let keyConfig = {};
Object.keys(data[key]).forEach((part) => {
let partConfig = {
fill: grey,
injury: false,
};
if (data[key][part].includes("П") || data[key][part].includes("Пт")) {
partConfig.fill = red;
partConfig.injury = true;
}
if (data[key][part].includes("КЗ")) {
partConfig.fill = red;
}
keyConfig[part] = { ...partConfig };
});
resulConfig[key] = { ...keyConfig };
}
});
return resulConfig;
}
export function getReturnedObjectImg(fields, e, file) {
let result = {};
fields.forEach((field) => {
switch (field) {
case "file":
result.file = file;
break;
case "photo":
result.photo = e.target.result;
break;
case "id":
result.id = Math.random();
break;
case "name":
result.name = file.name;
break;
case "size":
result.size = (file.size / 1024 / 1024).toFixed(1);
break;
}
});
return result;
}