Files
studimi_zheni/Node/src/structureData.ts
2022-10-02 15:08:14 +02:00

173 lines
4.8 KiB
TypeScript

import excelData from "./excelToJson";
import { v4 as uuidv4 } from "uuid";
import { getJsDateFromExcel } from "excel-date-to-js";
import {
Klinika,
Pacienti,
Shtrimi,
Diagnoza,
Trajtimi,
Bari,
} from "./interfaces";
// import { findPacient, upsertKlinika } from "./saveToNeo4j";
let klinikat: Klinika[] = [];
let pacientet: Pacienti[] = [];
let shtrimet: Shtrimi[] = [];
let diagnozat: Diagnoza[] = [];
let trajtimet: Trajtimi[] = [];
let barnat: Bari[] = [];
const createObjects = () => {
let errorNr = 0;
let pacientiNr = 0;
const data = excelData();
data.every(async (record: any) => {
if (record && record["EMER"] && record["MBIEMER"]) {
let emerPacienti = record.EMER;
let mbiemerPacienti = record.MBIEMER;
let moshaPacienti = record.MOSHA;
let gjiniaPacienti = record.GJINIA;
let datelindjaPacienti = record.DATELINDJA_KORIGJ;
let klinikaEmer = record.klinika;
let dataEShtrimit = record.DT_SHTRIMI_KORIGJ;
let dite_qendrimi = record["DITE QENDRIMI NE SPITAL"];
let diagnozaRaw = record.DIAGNOZA;
let kodi_dg_icd_9Raw = record["Kodi DG ICD-9"];
let trajtimiUrgjence = record["TRAJTIMI SPITALOR Urgjence"];
let trajtimiPavion = record["TRAJTIMI SPITALOR Pavion"];
let trajtimiSalleLindje = record["TRAJTIMI SALLE LINDJE"];
try {
datelindjaPacienti = getJsDateFromExcel(datelindjaPacienti);
dataEShtrimit = getJsDateFromExcel(dataEShtrimit);
} catch (error: any) {
datelindjaPacienti = null;
}
let klinika: Klinika = {
id: uuidv4(),
emer: klinikaEmer.trim(),
pacientet: [],
diagnozat: [],
};
insertKlinikaArr(klinika);
let pacienti: Pacienti = {
id: uuidv4(),
emer: emerPacienti.trim(),
mbiemer: mbiemerPacienti.trim(),
datelindja: datelindjaPacienti,
mosha: moshaPacienti,
gjinia: klinika.emer === "OBS-GYN" ? "F" : gjiniaPacienti.trim(),
};
const newPacient = insertPacientiArr(pacienti);
klinika.pacientet.push(newPacient);
let diagnoza: Diagnoza = {
id: uuidv4(),
emer: diagnozaRaw.trim(),
kodi_dg_icd_9: kodi_dg_icd_9Raw ? kodi_dg_icd_9Raw.split("\n") : [],
pacientet: [],
};
diagnoza.pacientet.push(newPacient);
const newDiagnoze = insertDiagnozaArr(diagnoza);
klinika.diagnozat.push(newDiagnoze);
let shtrimi: Shtrimi = {
id: uuidv4(),
date: dataEShtrimit,
dite_qendrimi: dite_qendrimi ? dite_qendrimi : null,
};
shtrimet.push(shtrimi);
if (trajtimiPavion) rregulloBarnat(trajtimiPavion);
if (trajtimiSalleLindje) rregulloBarnat(trajtimiSalleLindje);
if (trajtimiUrgjence) rregulloBarnat(trajtimiUrgjence);
let trajtimi: Trajtimi = {
id: uuidv4(),
salle_lindje: trajtimiSalleLindje ? true : false,
urgjence: trajtimiUrgjence ? true : false,
barnat: barnat,
};
// return false;
} else {
// console.log(errorNr++, record);
}
return true;
});
console.log(barnat.length);
};
const rregulloBarnat = (trajtimiRaw: any): Bari[] => {
let barnatRawArr = trajtimiRaw.split("\n");
return barnatRawArr.map((bar: any) => {
bar = bar.trim();
let bariRaw = bar.split(",");
if (
bariRaw[0] === "" ||
bariRaw[0] === "??" ||
bariRaw[0] === "???" ||
bariRaw[0] === "????" ||
bariRaw[0] === "---" ||
bariRaw[0] === "----" ||
bariRaw[0] === "-----"
) {
return null;
} else {
let newBar: Bari = {
id: uuidv4(),
emer: bariRaw[0],
njesia: null,
sasia: null,
};
const isFoundBari = barnat.some((bar) => {
if (newBar.emer === bar.emer) {
return true;
}
return false;
});
if (!isFoundBari) {
barnat.push(newBar);
}
return newBar;
}
});
};
const insertKlinikaArr = (klinika: Klinika) => {
const isFoundKlinika = klinikat.some((klinike) => {
if (klinika.emer === klinike.emer) {
return true;
}
return false;
});
if (!isFoundKlinika) klinikat.push(klinika);
return klinika;
};
const insertPacientiArr = (pacienti: Pacienti) => {
const isFoundPacienti = pacientet.some((pacient) => {
if (
pacienti.emer === pacient.emer &&
pacienti.mbiemer === pacient.mbiemer
) {
return true;
}
return false;
});
if (!isFoundPacienti) pacientet.push(pacienti);
return pacienti;
};
const insertDiagnozaArr = (diagnoza: Diagnoza) => {
const isFoundDiagnoza = diagnozat.some((diagnoze) => {
if (diagnoza.emer === diagnoze.emer) {
return true;
}
return false;
});
if (!isFoundDiagnoza) diagnozat.push(diagnoza);
return diagnoza;
};
export default createObjects;