Some fixes. Added csv.

This commit is contained in:
2022-09-22 10:07:14 +02:00
parent cfe2e69125
commit 3e147ae929
13 changed files with 145412 additions and 72 deletions

160
Node/package-lock.json generated
View File

@@ -10,8 +10,10 @@
"license": "ISC",
"dependencies": {
"excel-date-to-js": "^1.1.5",
"kuzzle-sdk": "^7.10.1",
"pocketbase": "^0.7.0",
"read-excel-file": "^5.5.0",
"surrealdb.js": "^0.3.1",
"xlsx": "^0.18.5"
},
"devDependencies": {
@@ -227,6 +229,19 @@
"node": ">=0.2.0"
}
},
"node_modules/bufferutil": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz",
"integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==",
"hasInstallScript": true,
"optional": true,
"dependencies": {
"node-gyp-build": "^4.3.0"
},
"engines": {
"node": ">=6.14.2"
}
},
"node_modules/cfb": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz",
@@ -527,6 +542,18 @@
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"node_modules/kuzzle-sdk": {
"version": "7.10.1",
"resolved": "https://registry.npmjs.org/kuzzle-sdk/-/kuzzle-sdk-7.10.1.tgz",
"integrity": "sha512-tz8yZmka5HcO1JCi3KYfoUiWtozBMMdO4ViKMh8XHLKhbEBvJRK7Jici5e8BCVj80H/8DlgF5HBXmb45v0PxAg==",
"dependencies": {
"min-req-promise": "^1.0.1",
"ws": "^8.8.1"
},
"engines": {
"node": ">= 10.13.0"
}
},
"node_modules/listenercount": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
@@ -538,6 +565,11 @@
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
"dev": true
},
"node_modules/min-req-promise": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/min-req-promise/-/min-req-promise-1.0.1.tgz",
"integrity": "sha512-PD2LObOGZPBPk3EMiuxc4Te0a0T0C6ZZni4m6eNl1zgxqJh+jThM026TmxV6IcJM8MWPHagJm3Q+zm2CNOAiDg=="
},
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -571,6 +603,28 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
},
"node_modules/nanoid": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz",
"integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==",
"bin": {
"nanoid": "bin/nanoid.js"
},
"engines": {
"node": "^14 || ^16 || >=18"
}
},
"node_modules/node-gyp-build": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz",
"integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==",
"optional": true,
"bin": {
"node-gyp-build": "bin.js",
"node-gyp-build-optional": "optional.js",
"node-gyp-build-test": "build-test.js"
}
},
"node_modules/nodemon": {
"version": "2.0.19",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz",
@@ -790,6 +844,19 @@
"node": ">=4"
}
},
"node_modules/surrealdb.js": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/surrealdb.js/-/surrealdb.js-0.3.1.tgz",
"integrity": "sha512-qVd3xIaZ120KClGBe5WKDswwI2y7ZYjXfhI2F2eRvr1Uv9t/tz8tF0heqdDXXfPqqZA4S2GadEwjBkGSIRNBCw==",
"dependencies": {
"nanoid": "^4.0.0",
"ws": "^8.8.1"
},
"optionalDependencies": {
"bufferutil": "^4.0.6",
"utf-8-validate": "^5.0.9"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -901,6 +968,19 @@
"setimmediate": "~1.0.4"
}
},
"node_modules/utf-8-validate": {
"version": "5.0.9",
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz",
"integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==",
"hasInstallScript": true,
"optional": true,
"dependencies": {
"node-gyp-build": "^4.3.0"
},
"engines": {
"node": ">=6.14.2"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -933,6 +1013,26 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/ws": {
"version": "8.8.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz",
"integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/xlsx": {
"version": "0.18.5",
"resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",
@@ -1127,6 +1227,15 @@
"resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
"integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ=="
},
"bufferutil": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz",
"integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==",
"optional": true,
"requires": {
"node-gyp-build": "^4.3.0"
}
},
"cfb": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz",
@@ -1354,6 +1463,15 @@
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"kuzzle-sdk": {
"version": "7.10.1",
"resolved": "https://registry.npmjs.org/kuzzle-sdk/-/kuzzle-sdk-7.10.1.tgz",
"integrity": "sha512-tz8yZmka5HcO1JCi3KYfoUiWtozBMMdO4ViKMh8XHLKhbEBvJRK7Jici5e8BCVj80H/8DlgF5HBXmb45v0PxAg==",
"requires": {
"min-req-promise": "^1.0.1",
"ws": "^8.8.1"
}
},
"listenercount": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
@@ -1365,6 +1483,11 @@
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
"dev": true
},
"min-req-promise": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/min-req-promise/-/min-req-promise-1.0.1.tgz",
"integrity": "sha512-PD2LObOGZPBPk3EMiuxc4Te0a0T0C6ZZni4m6eNl1zgxqJh+jThM026TmxV6IcJM8MWPHagJm3Q+zm2CNOAiDg=="
},
"minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -1392,6 +1515,17 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
},
"nanoid": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz",
"integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg=="
},
"node-gyp-build": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz",
"integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==",
"optional": true
},
"nodemon": {
"version": "2.0.19",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz",
@@ -1560,6 +1694,17 @@
"has-flag": "^3.0.0"
}
},
"surrealdb.js": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/surrealdb.js/-/surrealdb.js-0.3.1.tgz",
"integrity": "sha512-qVd3xIaZ120KClGBe5WKDswwI2y7ZYjXfhI2F2eRvr1Uv9t/tz8tF0heqdDXXfPqqZA4S2GadEwjBkGSIRNBCw==",
"requires": {
"bufferutil": "^4.0.6",
"nanoid": "^4.0.0",
"utf-8-validate": "^5.0.9",
"ws": "^8.8.1"
}
},
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -1633,6 +1778,15 @@
"setimmediate": "~1.0.4"
}
},
"utf-8-validate": {
"version": "5.0.9",
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz",
"integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==",
"optional": true,
"requires": {
"node-gyp-build": "^4.3.0"
}
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -1659,6 +1813,12 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"ws": {
"version": "8.8.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz",
"integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==",
"requires": {}
},
"xlsx": {
"version": "0.18.5",
"resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",

View File

@@ -20,8 +20,10 @@
},
"dependencies": {
"excel-date-to-js": "^1.1.5",
"kuzzle-sdk": "^7.10.1",
"pocketbase": "^0.7.0",
"read-excel-file": "^5.5.0",
"surrealdb.js": "^0.3.1",
"xlsx": "^0.18.5"
}
}

86
Node/src/convertToJson.ts Normal file
View File

@@ -0,0 +1,86 @@
import reader from "xlsx";
import { getJsDateFromExcel } from "excel-date-to-js";
import { readdirSync, writeFileSync } from "fs";
import { join } from "path";
const excelPath = join(__dirname, "..", "..", "Excel");
const excelFiles = readdirSync(excelPath);
const readExcel = (filePath: string) => {
let data: unknown[] = [];
const file = reader.readFile(filePath);
const sheets = file.SheetNames;
for (let i = 0; i < sheets.length; i++) {
const temp = reader.utils.sheet_to_json(file.Sheets[file.SheetNames[i]]);
temp.forEach((res) => {
data.push(res);
});
}
return data;
};
const recordsToJson = () => {
let i = 0;
let records: any[] = [];
excelFiles.every((file) => {
if (!file.includes("raw_") && !file.includes("lock")) {
const excelFile = join(excelPath, file);
const data = readExcel(excelFile);
const klinika_emer = file.split("_")[0];
const klinika: any = {
emer: klinika_emer,
shtrimi: [],
};
data.every((record: any) => {
i++;
if (record.EMER !== "" && record.MBIEMER !== "") {
let datelindja = null;
let data_shtrimit = null;
try {
datelindja = getJsDateFromExcel(record.DATELINDJA_KORIGJ);
data_shtrimit = getJsDateFromExcel(record.DT_SHTRIMI_KORIGJ);
} catch (error) {
console.log(i, record.EMER, record.MBIEMER);
// return false;
}
const trajtimi = {
trajtimi:
record["TRAJTIMI SPITALOR Urgjence"] ||
record["TRAJTIMI SPITALOR Pavion"],
};
const diagnoza = {
emer: record.DIAGNOZA,
kodi_dg_icd_9: record["Kodi DG ICD-9"],
};
const pacienti = {
emer: record.EMER,
mbiemer: record.MBIEMER,
mosha: record.MOSHA,
datelindja,
gjinia: record.GJINIA,
error: record.ERROR,
};
const shtrimi = {
nr: i,
data_shtrimit,
dite_qendrimi: record["DITE QENDRIMI NE SPITAL"],
pacienti,
diagnoza,
trajtimi,
};
klinika.shtrimi.push(shtrimi);
}
return true;
});
records.push(klinika);
console.log(`Mbaroi ${klinika_emer}`);
}
return true;
});
const jsonFile = join(__dirname, "..", "..", "JSON", "records.json");
writeFileSync(jsonFile, JSON.stringify(records));
};
export default recordsToJson;

View File

@@ -1,57 +1,22 @@
import reader from "xlsx";
import { getJsDateFromExcel } from "excel-date-to-js";
import PocketBase from "pocketbase";
import { readdirSync } from "fs";
import { join } from "path";
const excelPath = join(__dirname, "..", "..", "Excel");
const excelFiles = readdirSync(excelPath);
const readExcel = (filePath: string) => {
let data: unknown[] = [];
const file = reader.readFile(filePath);
const sheets = file.SheetNames;
for (let i = 0; i < sheets.length; i++) {
const temp = reader.utils.sheet_to_json(file.Sheets[file.SheetNames[i]]);
temp.forEach((res) => {
data.push(res);
});
}
return data;
};
excelFiles.forEach((file) => {
if (!file.includes("raw_") && !file.includes("lock")) {
const excelFile = join(excelPath, file);
const data = readExcel(excelFile);
data.forEach((record: any) => {
if (
record.DATELINDJA_KORIGJ !== "" &&
record.DATELINDJA_KORIGJ !== "DEKLARUAR"
) {
const pacient = {
emer: record.EMER,
mbiemer: record.MBIEMER,
mosha: record.MOSHA,
datelindja: getJsDateFromExcel(record.DATELINDJA_KORIGJ),
error: record.ERROR,
};
}
});
}
});
const loginToPocketBase = async () => {
const client = new PocketBase("http://127.0.0.1:8090");
const adminAuthData = await client.admins.authViaEmail(
"test@example.com",
"123456"
);
console.log(adminAuthData);
};
import { run } from "./kuzzle";
// import recordsToJson from "./convertToJson";
(async () => {
await loginToPocketBase();
const kuzzle = await run();
if (kuzzle) {
const credentials = {
username: "julian.cuni",
password: "MatraPaPuPa..11",
};
try {
const jwt = await kuzzle.auth.login("local", credentials);
// const apiKey = await kuzzle.auth.createApiKey("Sigfox API key");
} catch (error: any) {
console.error(error.message);
}
}
})();
// (async () => {
// await login();
// })();

27
Node/src/kuzzle.ts Normal file
View File

@@ -0,0 +1,27 @@
import { Kuzzle, WebSocket, Http } from "kuzzle-sdk";
const kuzzle = new Kuzzle(new Http("localhost"));
kuzzle.on("networkError", (error: any) => {
console.error("Network Error: ", error);
});
const run = async () => {
try {
// Connects to the Kuzzle server
await kuzzle.connect();
// Creates an index
// await kuzzle.index.create("nyc-open-data");
// // Creates a collection
// await kuzzle.collection.create("nyc-open-data", "yellow-taxi", {});
// console.log("nyc-open-data/yellow-taxi ready!");
return kuzzle;
} catch (error: any) {
console.error(error.message);
}
// finally {
// kuzzle.disconnect();
// }
return null;
};
export { run };

37
Node/src/sdb.ts Normal file
View File

@@ -0,0 +1,37 @@
const Surreal = require("surrealdb.js");
const db = new Surreal("https://baas.microservices.al/rpc");
async function main() {
try {
await db.use("fluxem", "fluxem");
const token = await db.signin({
NS: "fluxem",
DB: "fluxem",
SC: "allusers",
email: "test@acme.com",
pass: "some password",
marketing: true,
tags: ["rust", "golang", "javascript"],
});
let created = await db.create("person", {
title: "Founder & CEO",
name: {
first: "Tobie",
last: "Morgan Hitchcock",
},
marketing: true,
identifier: Math.random().toString(36).substr(2, 10),
});
// await db.invalidate();
// const res = await db.authenticate(token)
console.log("token", created);
} catch (e) {
console.error("ERROR", e);
}
}
main();