Some fixes. Added csv.
This commit is contained in:
63
Api/main.py
63
Api/main.py
@@ -9,7 +9,8 @@ class Main:
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.pacientet_api = Api("pacientet")
|
self.pacientet_api = Api("pacientet")
|
||||||
self.klinikat_api = Api("klinikat")
|
self.klinikat_api = Api("klinikat")
|
||||||
self.pacientet_klinikat_api = Api("pacientet_klinikat")
|
self.shtrimet = Api("shtrimet")
|
||||||
|
self.diagnozat = Api("diagnozat")
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -19,21 +20,30 @@ class Main:
|
|||||||
for name in filename:
|
for name in filename:
|
||||||
if name.startswith('kirurgji_') or name.startswith('OBS-GYN_') or name.startswith('urgjenca_'):
|
if name.startswith('kirurgji_') or name.startswith('OBS-GYN_') or name.startswith('urgjenca_'):
|
||||||
klinika_emer = name.replace('.xlsx', '').split('_')[0]
|
klinika_emer = name.replace('.xlsx', '').split('_')[0]
|
||||||
pacientet_klinikat_filter = f"filter=(emer='{klinika_emer}')"
|
klinika_filter = f"filter=(emer='{klinika_emer}')"
|
||||||
klinika_res = self.klinikat_api.create_collection(
|
klinika_res = self.klinikat_api.create_collection(
|
||||||
{"emer": klinika_emer}, filter=pacientet_klinikat_filter)
|
{"emer": klinika_emer}, filter=klinika_filter)
|
||||||
klinika_id = klinika_res['items'][0]['id']
|
klinika_id = klinika_res['items'][0]['id']
|
||||||
|
klinika = klinika_res['items'][0]
|
||||||
df = pd.read_excel(os.path.join(dirpath, name), parse_dates=[
|
df = pd.read_excel(os.path.join(dirpath, name), parse_dates=[
|
||||||
'DATELINDJA_KORIGJ'], sheet_name='Sheet1')
|
'DATELINDJA_KORIGJ'], sheet_name='Sheet1')
|
||||||
|
df = pd.read_excel(os.path.join(dirpath, name), parse_dates=[
|
||||||
|
'DT_SHTRIMI_KORIGJ'], sheet_name='Sheet1')
|
||||||
df.dropna(subset=['EMER'], inplace=True)
|
df.dropna(subset=['EMER'], inplace=True)
|
||||||
for index, row in df.iterrows():
|
for index, row in df.iterrows():
|
||||||
emer = row['EMER'].strip()
|
emer = row['EMER'].strip()
|
||||||
mbiemer = row['MBIEMER'].strip()
|
mbiemer = row['MBIEMER'].strip()
|
||||||
|
mosha = row['MOSHA']
|
||||||
|
diagnoza = row['DIAGNOZA']
|
||||||
if pd.isnull(df.loc[index, 'DATELINDJA_KORIGJ']):
|
if pd.isnull(df.loc[index, 'DATELINDJA_KORIGJ']):
|
||||||
datelindja = ''
|
datelindja = ''
|
||||||
else:
|
else:
|
||||||
datelindja = row['DATELINDJA_KORIGJ']
|
datelindja = row['DATELINDJA_KORIGJ']
|
||||||
mosha = row['MOSHA']
|
|
||||||
|
if pd.isnull(df.loc[index, 'DT_SHTRIMI_KORIGJ']):
|
||||||
|
data_e_shtrimit = ''
|
||||||
|
else:
|
||||||
|
data_e_shtrimit = row['DT_SHTRIMI_KORIGJ']
|
||||||
if pd.isnull(df.loc[index, 'ERROR']):
|
if pd.isnull(df.loc[index, 'ERROR']):
|
||||||
error = ''
|
error = ''
|
||||||
else:
|
else:
|
||||||
@@ -46,26 +56,43 @@ class Main:
|
|||||||
pacienti_res = self.pacientet_api.create_collection(
|
pacienti_res = self.pacientet_api.create_collection(
|
||||||
new_pacient, filter=pacient_filter)
|
new_pacient, filter=pacient_filter)
|
||||||
pacienti_id = pacienti_res['items'][0]['id']
|
pacienti_id = pacienti_res['items'][0]['id']
|
||||||
|
pacienti = pacienti_res['items'][0]
|
||||||
|
|
||||||
new_pacientet_klinikat = {
|
new_shtrimi = {
|
||||||
"pacienti_id": pacienti_id, "klinika_id": klinika_id}
|
"pacienti": pacienti_id, "klinika": klinika_id, "data_shtrimit": str(data_e_shtrimit)}
|
||||||
pacientet_klinikat_filter = f"filter=(pacienti_id='{pacienti_id}' %26%26 klinika_id='{klinika_id}')"
|
shtrimi_filter = f"filter=(pacienti='{pacienti_id}' %26%26 klinika='{klinika_id}')"
|
||||||
|
|
||||||
pacient_klinika_res = self.pacientet_klinikat_api.create_collection(
|
shtrimi_res = self.shtrimet.create_collection(
|
||||||
new_pacientet_klinikat, pacientet_klinikat_filter)
|
new_shtrimi, shtrimi_filter)
|
||||||
print(pacient_klinika_res)
|
shtrimi_id = shtrimi_res['items'][0]['id']
|
||||||
|
|
||||||
def test_backend(self) :
|
shtrimi = shtrimi_res['items'][0]
|
||||||
# pacientet_klinikat_res = self.pacientet_klinikat_api.list_collection()
|
|
||||||
# print(pacientet_klinikat_res["totalItems"])
|
new_diagnoza = {"diagnoza": diagnoza,
|
||||||
pacient_filter = f"expand=klinika_id"
|
"pacienti": pacienti_id, "shtrimi": shtrimi_id, "klinika": klinika_id}
|
||||||
pacientet_res = self.pacientet_api.list_collection(filter=pacient_filter)
|
diagnoza_filter = f"filter=(pacienti='{pacienti_id}' %26%26 klinika='{klinika_id}')"
|
||||||
print(pacientet_res)
|
|
||||||
|
diagnoza_res = self.diagnozat.create_collection(
|
||||||
|
new_diagnoza, diagnoza_filter)
|
||||||
|
diagnoza_id = diagnoza_res['items'][0]['id']
|
||||||
|
diagnoza = diagnoza_res['items'][0]
|
||||||
|
print('\n\n\n\n')
|
||||||
|
print(diagnoza_res)
|
||||||
|
print('\n\n\n\n')
|
||||||
|
|
||||||
|
# def test_backend(self):
|
||||||
|
# shtrimet_res = self.shtrimet_api.list_collection()
|
||||||
|
# print(shtrimet_res["totalItems"])
|
||||||
|
# pacient_filter = f"expand=klinika_id"
|
||||||
|
# pacientet_res = self.pacientet_api.list_collection(
|
||||||
|
# filter=pacient_filter)
|
||||||
|
# print(pacientet_res)
|
||||||
# print(pacientet_res["totalItems"])
|
# print(pacientet_res["totalItems"])
|
||||||
|
|
||||||
|
|
||||||
main = Main()
|
main = Main()
|
||||||
main.test_backend()
|
# main.test_backend()
|
||||||
# main.read_excel()
|
main.read_excel()
|
||||||
# api = Api("pacientet")
|
# api = Api("pacientet")
|
||||||
# new_pacient = {"emer": "Test", "mbiemer": "test",
|
# new_pacient = {"emer": "Test", "mbiemer": "test",
|
||||||
# "mosha": 100, "datelindja": datetime.now().isoformat()}
|
# "mosha": 100, "datelindja": datetime.now().isoformat()}
|
||||||
|
|||||||
9432
CSV/OBS-GYN_1662993385.csv
Normal file
9432
CSV/OBS-GYN_1662993385.csv
Normal file
File diff suppressed because it is too large
Load Diff
4616
CSV/kirurgji_1662993337.csv
Normal file
4616
CSV/kirurgji_1662993337.csv
Normal file
File diff suppressed because it is too large
Load Diff
6506
CSV/urgjenca_1662993051.csv
Normal file
6506
CSV/urgjenca_1662993051.csv
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
124474
JSON/records.json
Normal file
124474
JSON/records.json
Normal file
File diff suppressed because it is too large
Load Diff
160
Node/package-lock.json
generated
160
Node/package-lock.json
generated
@@ -10,8 +10,10 @@
|
|||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"excel-date-to-js": "^1.1.5",
|
"excel-date-to-js": "^1.1.5",
|
||||||
|
"kuzzle-sdk": "^7.10.1",
|
||||||
"pocketbase": "^0.7.0",
|
"pocketbase": "^0.7.0",
|
||||||
"read-excel-file": "^5.5.0",
|
"read-excel-file": "^5.5.0",
|
||||||
|
"surrealdb.js": "^0.3.1",
|
||||||
"xlsx": "^0.18.5"
|
"xlsx": "^0.18.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -227,6 +229,19 @@
|
|||||||
"node": ">=0.2.0"
|
"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": {
|
"node_modules/cfb": {
|
||||||
"version": "1.2.2",
|
"version": "1.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz",
|
"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",
|
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||||
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
|
"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": {
|
"node_modules/listenercount": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
|
||||||
@@ -538,6 +565,11 @@
|
|||||||
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
|
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
|
||||||
"dev": true
|
"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": {
|
"node_modules/minimatch": {
|
||||||
"version": "3.1.2",
|
"version": "3.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
||||||
@@ -571,6 +603,28 @@
|
|||||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||||
"dev": true
|
"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": {
|
"node_modules/nodemon": {
|
||||||
"version": "2.0.19",
|
"version": "2.0.19",
|
||||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz",
|
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz",
|
||||||
@@ -790,6 +844,19 @@
|
|||||||
"node": ">=4"
|
"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": {
|
"node_modules/to-regex-range": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
@@ -901,6 +968,19 @@
|
|||||||
"setimmediate": "~1.0.4"
|
"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": {
|
"node_modules/util-deprecate": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"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",
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
|
"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": {
|
"node_modules/xlsx": {
|
||||||
"version": "0.18.5",
|
"version": "0.18.5",
|
||||||
"resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",
|
"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",
|
"resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
|
||||||
"integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ=="
|
"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": {
|
"cfb": {
|
||||||
"version": "1.2.2",
|
"version": "1.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz",
|
"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",
|
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||||
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
|
"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": {
|
"listenercount": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
|
||||||
@@ -1365,6 +1483,11 @@
|
|||||||
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
|
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
|
||||||
"dev": true
|
"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": {
|
"minimatch": {
|
||||||
"version": "3.1.2",
|
"version": "3.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
||||||
@@ -1392,6 +1515,17 @@
|
|||||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||||
"dev": true
|
"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": {
|
"nodemon": {
|
||||||
"version": "2.0.19",
|
"version": "2.0.19",
|
||||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz",
|
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz",
|
||||||
@@ -1560,6 +1694,17 @@
|
|||||||
"has-flag": "^3.0.0"
|
"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": {
|
"to-regex-range": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
@@ -1633,6 +1778,15 @@
|
|||||||
"setimmediate": "~1.0.4"
|
"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": {
|
"util-deprecate": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"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",
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
|
"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": {
|
"xlsx": {
|
||||||
"version": "0.18.5",
|
"version": "0.18.5",
|
||||||
"resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",
|
"resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",
|
||||||
|
|||||||
@@ -20,8 +20,10 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"excel-date-to-js": "^1.1.5",
|
"excel-date-to-js": "^1.1.5",
|
||||||
|
"kuzzle-sdk": "^7.10.1",
|
||||||
"pocketbase": "^0.7.0",
|
"pocketbase": "^0.7.0",
|
||||||
"read-excel-file": "^5.5.0",
|
"read-excel-file": "^5.5.0",
|
||||||
|
"surrealdb.js": "^0.3.1",
|
||||||
"xlsx": "^0.18.5"
|
"xlsx": "^0.18.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
86
Node/src/convertToJson.ts
Normal file
86
Node/src/convertToJson.ts
Normal 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;
|
||||||
@@ -1,57 +1,22 @@
|
|||||||
import reader from "xlsx";
|
import { run } from "./kuzzle";
|
||||||
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 recordsToJson from "./convertToJson";
|
||||||
(async () => {
|
(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
27
Node/src/kuzzle.ts
Normal 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
37
Node/src/sdb.ts
Normal 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();
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
from sys import orig_argv
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
from os import listdir
|
from os import listdir
|
||||||
from os.path import isfile, join
|
from os.path import isfile, join
|
||||||
@@ -25,6 +26,10 @@ def convert(klinika: str):
|
|||||||
if klinika in file and "lock" not in file:
|
if klinika in file and "lock" not in file:
|
||||||
list_paths.append(join(docx_path, file))
|
list_paths.append(join(docx_path, file))
|
||||||
for path in list_paths:
|
for path in list_paths:
|
||||||
|
viti = file.replace(".docx", "")
|
||||||
|
viti = viti.split("_")
|
||||||
|
viti = viti[1]
|
||||||
|
print(viti)
|
||||||
document = Document(path)
|
document = Document(path)
|
||||||
for table in document.tables:
|
for table in document.tables:
|
||||||
if "urgjenca_2016.docx" in path:
|
if "urgjenca_2016.docx" in path:
|
||||||
@@ -37,17 +42,20 @@ def convert(klinika: str):
|
|||||||
|
|
||||||
for cell in table.rows[0].cells:
|
for cell in table.rows[0].cells:
|
||||||
columns.append(cell.text.strip().replace('\n', ' '))
|
columns.append(cell.text.strip().replace('\n', ' '))
|
||||||
|
columns.append('VITI')
|
||||||
RowA = table.rows[0]
|
RowA = table.rows[0]
|
||||||
table_element = table._tbl
|
table_element = table._tbl
|
||||||
table_element.remove(RowA._tr)
|
table_element.remove(RowA._tr)
|
||||||
for row in table.rows:
|
for row in table.rows:
|
||||||
text = [cell.text for cell in row.cells]
|
text = [cell.text for cell in row.cells]
|
||||||
|
text.append(viti)
|
||||||
df = df.append([text], ignore_index=True)
|
df = df.append([text], ignore_index=True)
|
||||||
print(f"Mbaroi {path} me {datetime.now()}")
|
print(f"Mbaroi {path} me {datetime.now()}")
|
||||||
|
|
||||||
for word in columns:
|
for word in columns:
|
||||||
if word not in filtered_columns:
|
if word not in filtered_columns:
|
||||||
filtered_columns.append(word)
|
filtered_columns.append(word)
|
||||||
|
print(filtered_columns)
|
||||||
print(f'{len(filtered_columns)} Columns found')
|
print(f'{len(filtered_columns)} Columns found')
|
||||||
print('writing to excel...')
|
print('writing to excel...')
|
||||||
print(f"Perfundoi {klinika} me {datetime.now()}")
|
print(f"Perfundoi {klinika} me {datetime.now()}")
|
||||||
|
|||||||
Reference in New Issue
Block a user