cry-klikvet-logic 1.0.261 → 1.0.263

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,10 +2,10 @@
2
2
  // Use IntelliSense to learn about possible attributes.
3
3
  // Hover to view descriptions of existing attributes.
4
4
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5
- "version": "0.2.0",
5
+ "version": "2.0.0",
6
6
  "configurations": [
7
7
 
8
-
8
+
9
9
  {
10
10
  "type": "node",
11
11
  "request": "launch",
@@ -51,9 +51,10 @@
51
51
  {
52
52
  "type": "node",
53
53
  "request": "launch",
54
- "name": "dopisiSerijskeNaNapravi",
55
- "program": "${workspaceFolder}/dist/dopisiSerijskeNaNapravi.mjs",
54
+ "name": "pmzIpdate",
55
+ "preLaunchTask": "npm: build",
56
+ "program": "${workspaceFolder}/dist/pmzUpdate.mjs",
56
57
  "pauseForSourceMap": true
57
- },
58
+ }
58
59
  ]
59
60
  }
package/a.txt CHANGED
@@ -1,98 +1,6 @@
1
- starting PMZ update mozirje 2025 - terapije
2
- postavka.pmzZa,novaVrsta ostalo -> undefined
3
- dni 2155
4
- po starosti Govedo pitovno -> Govedo pitovno
5
- dni 2155
6
- po starosti Govedo pitovno -> Govedo pitovno
7
- dni 554
8
- po starosti Govedo pitovno -> Govedo pitovno
9
- dni 46
10
- po starosti Govedo pitovno<1leto -> Govedo pitovno<1leto
11
- dni 2055
12
- po starosti Govedo pitovno -> Govedo pitovno
13
- dni 12
14
- po starosti Govedo pitovno<1leto -> Govedo pitovno<1leto
15
- dni 2058
16
- po starosti Govedo pitovno -> Govedo pitovno
17
- dni 89
18
- po starosti Govedo pitovno<1leto -> Govedo pitovno<1leto
19
- dni 30
20
- po starosti Govedo pitovno<1leto -> Govedo pitovno<1leto
21
- dni 30
22
- po starosti Govedo pitovno<1leto -> Govedo pitovno<1leto
23
- dni 122
24
- po starosti Govedo pitovno<1leto -> Govedo pitovno<1leto
25
- dni 90
26
- po starosti Govedo pitovno<1leto -> Govedo pitovno<1leto
27
- dni 90
28
- po starosti Govedo pitovno<1leto -> Govedo pitovno<1leto
29
- dni 1086
30
- po starosti Govedo pitovno -> Govedo pitovno
31
- dni 75
32
- po starosti Govedo pitovno<1leto -> Govedo pitovno<1leto
33
- dni 75
34
- po starosti Govedo pitovno<1leto -> Govedo pitovno<1leto
35
- dni 630
36
- po starosti Govedo pitovno -> Govedo pitovno
37
- dni 3385
38
- po starosti Govedo pitovno -> Govedo pitovno
39
- dni 1792
40
- po starosti Govedo pitovno -> Govedo pitovno
41
- dni 2510
42
- po starosti Govedo pitovno -> Govedo pitovno
43
- dni 328
44
- po starosti Govedo pitovno<1leto -> Govedo pitovno<1leto
45
- finished PMZ update mozirje 2025 - terapije: 207/207
46
- starting PMZ update mozirje 2025 - osemenitevGoveda
47
- finished PMZ update mozirje 2025 - osemenitevGoveda: 0/0
48
- starting PMZ update mozirje 2025 - obiski
49
- finished PMZ update mozirje 2025 - obiski: 0/0
50
- starting PMZ update mozirje 2025 - racuni
51
- postavka.pmzZa,novaVrsta ostalo -> undefined
52
- postavka.pmzZa,novaVrsta null -> undefined
53
- postavka.pmzZa,novaVrsta drobnica -> undefined
54
- postavka.pmzZa,novaVrsta drobnica -> undefined
55
- postavka.pmzZa,novaVrsta null -> undefined
56
- postavka.pmzZa,novaVrsta drobnica -> undefined
57
- postavka.pmzZa,novaVrsta null -> undefined
58
- postavka.pmzZa,novaVrsta null -> undefined
59
- postavka.pmzZa,novaVrsta null -> undefined
60
- postavka.pmzZa,novaVrsta null -> undefined
61
- postavka.pmzZa,novaVrsta null -> undefined
62
- postavka.pmzZa,novaVrsta null -> undefined
63
- postavka.pmzZa,novaVrsta null -> undefined
64
- postavka.pmzZa,novaVrsta null -> undefined
65
- postavka.pmzZa,novaVrsta null -> undefined
66
- postavka.pmzZa,novaVrsta null -> undefined
67
- postavka.pmzZa,novaVrsta null -> undefined
68
- finished PMZ update mozirje 2025 - racuni: 251/251
69
- starting PMZ update mozirje 2025 - dobavnice
70
- postavka.pmzZa,novaVrsta ostalo -> undefined
71
- finished PMZ update mozirje 2025 - dobavnice: 137/137
72
- terapije 207
73
- osemenitevGoveda 0
74
- obiski 0
75
- racuni 251
76
- dobavnice 137
77
- collection, written.length terapije 207
78
- collection, written.length osemenitevGoveda 0
79
- collection, written.length obiski 0
80
- collection, written.length racuni 251
81
- collection, written.length dobavnice 137
82
- pmzUpdateAllForYear mozirje 2025 errors [
83
- 'Manjka živalska vrsta za zdravilo CLAVASEPTIN, 250 MG (65f0b9e28d1e6937ccf27513).',
84
- 'Manjka živalska vrsta za zdravilo CLAVASEPTIN, 50 MG (65f0b9e28d1e6937ccf27514).',
85
- 'Manjka živalska vrsta za zdravilo CLAVASEPTIN, 500 MG (65f0b9e28d1e6937ccf27512).',
86
- 'Manjka živalska vrsta za zdravilo CLAVASEPTIN, 62,5 MG (65f0b9e28d1e6937ccf2762a).',
87
- 'Manjka živalska vrsta za zdravilo CONVENIA SOL.INJ.10 ML (65f0b9e28d1e6937ccf27248).',
88
- 'Manjka živalska vrsta za zdravilo CYLANIC TBL 250 MG + 62,5 MG ZA PSE (65f0b9e28d1e6937ccf271a1).',
89
- 'Manjka živalska vrsta za zdravilo CYLANIC TBL 500 MG + 125 MG ZA PSE (65f0b9e28d1e6937ccf271a3).',
90
- 'Manjka živalska vrsta za zdravilo ENROXIL TBL.FLAVOUR 100*150 MG (65f0b9e28d1e6937ccf2740b).',
91
- 'Manjka živalska vrsta za zdravilo INFECTOGENTA UNG. 15 GR. (65f0b9e28d1e6937ccf27239).',
92
- 'Manjka živalska vrsta za zdravilo METROVIS 250 MG.,TBL., PSI IN MAČKE, 100X (667f899cc525d321c2fb77f6).',
93
- 'Manjka živalska vrsta za zdravilo MITEX, GTT. ZA UHO,PSI IN MAČKE (65f0b9e28d1e6937ccf2758e).',
94
- 'Manjka živalska vrsta za zdravilo NEPTRA KAPLJICE ZA UHO PSI, 1 ML,10X (66669e6a02fb0b643ef48455).',
95
- 'Manjka živalska vrsta za zdravilo OPHTOCYCLINE, 10 MG/G., MAST.OKO, 5 GR (666295719734ef2ac0acff35).',
96
- 'Manjka živalska vrsta za zdravilo TOBRADEX, KAPLJ.ZA OKO, 5 ML (65f0b9e28d1e6937ccf276e7).',
97
- 'Manjka živalska vrsta za zdravilo TOBREX MAZILO 3,5 GR.0,3 % (65f0b9e28d1e6937ccf271d8).'
98
- ]
1
+ pmzUpdate mozirje 2025 terapije 207
2
+ pmzUpdate mozirje 2025 osemenitevGoveda 0
3
+ pmzUpdate mozirje 2025 obiski 0
4
+ pmzUpdate mozirje 2025 racuni 251
5
+ pmzUpdate mozirje 2025 dobavnice 137
6
+ pmzUpdate mozirje 2025 obravnave 0
@@ -1,5 +1,5 @@
1
1
  import { Mongo } from "cry-db";
2
- import { Dobavnica, Obisk, OsemenitevGoveda, Racun, Terapija, Zdravilo } from "./index.mjs";
2
+ import { Dobavnica, Obisk, Obravnava, OsemenitevGoveda, Pacient, Racun, Terapija, Zdravilo } from "./index.mjs";
3
3
  import { RejnaZival } from "./types/stranka.mjs";
4
4
  interface Pogostnost {
5
5
  vrsta: string;
@@ -7,6 +7,7 @@ interface Pogostnost {
7
7
  prc: number;
8
8
  }
9
9
  type ArtikliPmz = Pick<Zdravilo, "pmzKodaZdravila" | "_id" | "naziv">;
10
+ type PacientVrsteObj = Record<string, Pick<Pacient, "vrsta">>;
10
11
  type ArtikliPmzMap = Record<string, ArtikliPmz>;
11
12
  interface VrsteZivaliZaZdravilo {
12
13
  zdravilo_id: string;
@@ -32,6 +33,9 @@ export declare function pmzUpdateRacuni(mongo: Mongo, tenant: string, year: numb
32
33
  export declare function pmzUpdateDobavnice(mongo: Mongo, tenant: string, year: number, artikli: ArtikliPmzMap, zivali: RejnaZival[], znaneVrsteZivali: Record<string, string>, vrsteZivaliZaZdravilo: VrsteZivaliZaZdravilo[], errors: string[]): Promise<{
33
34
  dobavnice: Partial<Dobavnica>[];
34
35
  }>;
36
+ export declare function pmzUpdateObravnave(mongo: Mongo, tenant: string, year: number, artikli: ArtikliPmzMap, vrsteZivaliZaZdravilo: VrsteZivaliZaZdravilo[], pacientiVrsteObj: PacientVrsteObj, errors: string[]): Promise<{
37
+ obravnave: Partial<Obravnava>[];
38
+ }>;
35
39
  export declare function pmzUpdateAllForYear({ mongo, tenant, year, writeToDb }: {
36
40
  tenant: string;
37
41
  year: number;
@@ -39,6 +43,7 @@ export declare function pmzUpdateAllForYear({ mongo, tenant, year, writeToDb }:
39
43
  writeToDb: boolean;
40
44
  }): Promise<{
41
45
  updates: {
46
+ obravnave: Partial<Obravnava>[];
42
47
  dobavnice: Partial<Dobavnica>[];
43
48
  racuni: Partial<Racun>[];
44
49
  obiski: Partial<Obisk>[];
@@ -1 +1 @@
1
- {"version":3,"file":"pmzUpdate.d.mts","sourceRoot":"","sources":["../src/pmzUpdate.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pmzUpdate.d.mts","sourceRoot":"","sources":["../src/pmzUpdate.mts"],"names":[],"mappings":"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"}
@@ -3,12 +3,8 @@ import dayjs from "dayjs";
3
3
  import { jeVeljavnaPmzVrsta, pmzVrstaGledeNaStarost, pmzVrstaOdvisnaOdStarosti, poisciPmzVrstoZivali } from "cry-pmz";
4
4
  import { arrayToObject, dedup, jn, leftOfFirst } from "cry-helpers";
5
5
  import { dolociMesnostAliRejnostPasmeGoveda } from "./dolociMesnostAliRejnostPasmeGoveda.mjs";
6
- // function wholeYear(year: number) {
7
- // return [
8
- // dayjs(`${year}-06-06`).startOf("year"),
9
- // dayjs(`${year}-06-06`).endOf("year"),
10
- // ];
11
- // };
6
+ ;
7
+ const DEBUG = !!process.dev;
12
8
  function wholeYearQ(year) {
13
9
  return {
14
10
  $gt: dayjs(`${year}-06-06`).startOf("year").toDate(),
@@ -16,7 +12,19 @@ function wholeYearQ(year) {
16
12
  };
17
13
  }
18
14
  ;
19
- ;
15
+ function starostZivaliDni(stZivali, zivali, naDan) {
16
+ if (!naDan || !(stZivali === null || stZivali === void 0 ? void 0 : stZivali.length) || !zivali)
17
+ return undefined;
18
+ for (let zival of stZivali || []) {
19
+ let animal = zivali === null || zivali === void 0 ? void 0 : zivali.find(z => jn(z.state, z.idAnimal) === zival);
20
+ if (animal === null || animal === void 0 ? void 0 : animal.DBirth) {
21
+ let dni = dayjs(naDan).diff(animal.DBirth, "days");
22
+ if (dni)
23
+ return dni;
24
+ }
25
+ }
26
+ return undefined;
27
+ }
20
28
  /**
21
29
  * Iz vseh obstoječih terapij pridobi PMZ vrste živali za vse živali, kjer je bila vpisana
22
30
  * @param mongo
@@ -26,7 +34,7 @@ async function pridobiVrsteZivaliIzTerapij(mongo) {
26
34
  var _a, _b, _c;
27
35
  try {
28
36
  let temp = await mongo.aggregate("terapije", [
29
- { $match: { "postavke.pmzZa": { $exists: 1 } } },
37
+ { $match: { "postavke.pmzZa": { $exists: 1 }, } },
30
38
  { $unwind: "$postavke" },
31
39
  { $match: { "postavke.pmzZa": { $exists: true } } },
32
40
  { $set: { "postavke.stZivali": { $ifNull: ["$postavke.karencaZa", "$stevilkeZivali"] } } },
@@ -52,31 +60,11 @@ async function pridobiVrsteZivaliIzTerapij(mongo) {
52
60
  ;
53
61
  return {};
54
62
  }
55
- //
56
- // Funkcija poišče terapije, ki nimajo gmida, ima ga pa
57
- //
58
- // async function pripisManjkajociGmidTerapijam(mongo: Mongo, year: number) {
59
- // let manjkajoce = await mongo.find<Terapija & { _gmids?: string[] }>("terapije", {
60
- // datumTerapije: wholeYearQ(year),
61
- // gmid: { $exists: false }
62
- // }, { project: { _gmids: true, obisk_id: true } });
63
- // console.log(`manjkajoce.length`,manjkajoce.length);
64
- // let obiskiTerapij: Obisk[] = await mongo.find<Obisk>("obiski", {
65
- // _id: { $in: manjkajoce.map(a => a.obisk_id?.toString()).filter(a => !!a) },
66
- // gmid: { $exists: true }
67
- // }, { project: { gmid: 1 } });
68
- // console.log(`obiskiTerapij`,obiskiTerapij);
69
- // let obiskiTerapijObj = arrayToObject(obiskiTerapij, "_id");
70
- // let updates: { _id: string, gmid: string }[] = []
71
- // for (let terapija of manjkajoce) {
72
- // let gmid = (terapija.obisk_id && obiskiTerapijObj[terapija.obisk_id]?.gmid) ||
73
- // (terapija._gmids?.length === 1 && terapija._gmids[0]);
74
- // if (gmid) updates.push({ _id: terapija._id, gmid });
75
- // }
76
- // console.log(`TERAPIUE updates`,updates);
77
- // }
63
+ async function pacientiZivalskeVrste(mongo) {
64
+ return arrayToObject(await mongo.find("pacienti", { _deleted: { $ne: "hack" } }), "_id");
65
+ }
78
66
  async function pridobiPMZArtikle(mongo) {
79
- let pmzArtikli = (await mongo.find("artikli", { skupine: "PMZ" }, { project: { _id: true, pmzKodaZdravila: true, naziv: true } })).filter(a => a);
67
+ let pmzArtikli = (await mongo.find("artikli", { skupine: "PMZ", _deleted: { $ne: "hack" } }, { project: { _id: true, pmzKodaZdravila: true, naziv: true } })).filter(a => a);
80
68
  pmzArtikli.forEach(a => a._id = a._id.toString());
81
69
  pmzArtikli = pmzArtikli.filter(a => a.pmzKodaZdravila && typeof a.pmzKodaZdravila === "number");
82
70
  let pmzArtikliMap = arrayToObject(pmzArtikli, "_id");
@@ -133,7 +121,7 @@ function zdraviluPrimernaVrsta(vrsteZivaliZaZdravilo, zdravilo_id) {
133
121
  if (!moznosti)
134
122
  return;
135
123
  let prva = (_a = moznosti.za.sort((a, b) => b.n - a.n)) === null || _a === void 0 ? void 0 : _a[0];
136
- return (prva === null || prva === void 0 ? void 0 : prva.pmzZa) || prva.vrsta;
124
+ return poisciPmzVrstoZivali((prva === null || prva === void 0 ? void 0 : prva.pmzZa) || prva.vrsta);
137
125
  }
138
126
  function vrstaUstrezaZdravilu(vrsteZivaliZaZdravilo, vrsta, zdravilo_id) {
139
127
  var _a, _b, _c, _d;
@@ -181,36 +169,45 @@ async function poisciNovoVrstoZivali(pmzZa, gmid, stZivali, zivali, znaneVrsteZi
181
169
  let primerna = zdraviluPrimernaVrsta(vrsteZivaliZaZdravilo, zdravilo_id);
182
170
  if (primerna)
183
171
  return primerna;
184
- errors.push(`Manjka živalska vrsta za zdravilo ${artikli[zdravilo_id].naziv} (${zdravilo_id}).`);
172
+ errors.push(`Manjka živalska vrsta za zdravilo na terenu ${artikli[zdravilo_id].naziv} (${zdravilo_id}).`);
185
173
  return undefined;
186
174
  }
187
175
  ;
188
- // TODO: implementiraj za obravnave
189
- // async function mogocePopraviPostavkoKoraka(artikli: ArtikliPmzMap, postavka: {artikel_id: string, pmzZa?: string, pmzKodaZdravila?: number}, mongo: Mongo, tenant: string, year: number, vrsteZivaliZaZdravilo: VrsteZivaliZaZdravilo[], errors: string[]) {
190
- // if (!postavka) return true;
191
- // const pmzKodaZdravilaNova = artikli[postavka.artikel_id]?.pmzKodaZdravila;
192
- // if (!pmzKodaZdravilaNova) return false;
193
- // let updated = false;
194
- // // let update: Partial<PostavkaRacuna> = {};
195
- // // let novaVrsta = await poisciNovoVrstoZivali(postavka.pmzZa, gmid, stZivali, zivali, znaneVrsteZivali, mongo, tenant, year, artikli, vrsteZivaliZaZdravilo, postavka.artikel_id, errors);
196
- // // if (postavka.pmzZa !== novaVrsta) {
197
- // // update.pmzZa_izvorna = postavka.pmzZa;
198
- // // update.pmzZaAuto = novaVrsta;
199
- // // }
200
- // // if (postavka.pmzKodaZdravila !== pmzKodaZdravilaNova) {
201
- // // // console.log(`novo zdravilo`,pmzKodaZdravilaNova, update.pmzZaAuto);
202
- // // update.pmzKodaZdravila_izvorna = postavka.pmzKodaZdravila;
203
- // // update.pmzKodaZdravila = pmzKodaZdravilaNova;
204
- // // }
205
- // // if (Object.keys(update).length > 0) {
206
- // // update.pmz_popravek = new Date();
207
- // // updated = true;
208
- // // }
209
- // // if (updated) {
210
- // // for (let key in update) (postavka as any)[key] = update[key as keyof PostavkaRacuna]
211
- // // }
212
- // return updated;
213
- // }
176
+ function mogocePopraviPostavkoKoraka(artikli, postavka, pacient_id, pacientiVrsteObj, vrsteZivaliZaZdravilo, errors) {
177
+ var _a, _b;
178
+ if (!postavka)
179
+ return true;
180
+ const pmzKodaZdravilaNova = (_a = artikli[postavka.artikel_id]) === null || _a === void 0 ? void 0 : _a.pmzKodaZdravila;
181
+ if (!pmzKodaZdravilaNova)
182
+ return false;
183
+ let updated = false;
184
+ let update = {};
185
+ let novaVrsta = poisciPmzVrstoZivali(postavka.pmzZa_izvorna || postavka.pmzZa || ((_b = pacientiVrsteObj[pacient_id]) === null || _b === void 0 ? void 0 : _b.vrsta) || "");
186
+ // sicer vrni vrsto, primerno za to zdravilo
187
+ let primerna = zdraviluPrimernaVrsta(vrsteZivaliZaZdravilo, postavka.artikel_id);
188
+ if (primerna)
189
+ novaVrsta = primerna;
190
+ else
191
+ errors.push(`Manjka živalska vrsta za zdravilo na terenu ${artikli[postavka.artikel_id].naziv} (${postavka.artikel_id}).`);
192
+ if (postavka.pmzZa !== novaVrsta) {
193
+ update.pmzZa_izvorna = postavka.pmzZa;
194
+ update.pmzZaAuto = novaVrsta;
195
+ }
196
+ if (postavka.pmzKodaZdravila !== pmzKodaZdravilaNova) {
197
+ // console.log(`novo zdravilo`,pmzKodaZdravilaNova, update.pmzZaAuto);
198
+ update.pmzKodaZdravila_izvorna = postavka.pmzKodaZdravila;
199
+ update.pmzKodaZdravila = pmzKodaZdravilaNova;
200
+ }
201
+ if (Object.keys(update).length > 0) {
202
+ update.pmz_popravek = new Date();
203
+ updated = true;
204
+ }
205
+ if (updated) {
206
+ for (let key in update)
207
+ postavka[key] = update[key];
208
+ }
209
+ return updated;
210
+ }
214
211
  async function mogocePopraviPostavko(artikli, postavka, gmid, stZivali, zivali, znaneVrsteZivali, mongo, tenant, year, vrsteZivaliZaZdravilo, errors, naDan) {
215
212
  var _a;
216
213
  if (!postavka)
@@ -246,8 +243,8 @@ async function mogocePopraviPostavko(artikli, postavka, gmid, stZivali, zivali,
246
243
  update.pmz_popravek = new Date();
247
244
  updated = true;
248
245
  }
249
- if (!jeVeljavnaPmzVrsta(postavka.pmzZa) && postavka.pmzZa !== undefined) {
250
- console.log(`postavka.pmzZa,novaVrsta`, postavka.pmzZa, "->", update.pmzZa);
246
+ if (!jeVeljavnaPmzVrsta(update.pmzZa) && update.pmzZa !== undefined) {
247
+ console.error(`mogocePopraviPostavko: vrsta ni veljavna`, postavka.pmzZa, "->", update.pmzZa);
251
248
  }
252
249
  if (updated) {
253
250
  for (let key in update)
@@ -271,7 +268,8 @@ async function gmidZapisa(zapis, mongo) {
271
268
  //#region VRSTE DOKUMENTOV
272
269
  export async function pmzUpdateTerapije(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
273
270
  const collection = "terapije";
274
- console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
271
+ if (DEBUG)
272
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
275
273
  let updates = [];
276
274
  try {
277
275
  const terapije = (await mongo.find(collection, {
@@ -292,7 +290,8 @@ export async function pmzUpdateTerapije(mongo, tenant, year, artikli, zivali, zn
292
290
  });
293
291
  }
294
292
  }
295
- console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${terapije.length}`);
293
+ if (DEBUG)
294
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${terapije.length}`);
296
295
  }
297
296
  catch (err) {
298
297
  console.error(`pmzUpdateTerapije ${tenant} ${year}: ${err.message || err}`);
@@ -304,7 +303,8 @@ export async function pmzUpdateTerapije(mongo, tenant, year, artikli, zivali, zn
304
303
  ;
305
304
  export async function pmzUpdateOsemenitevGoveda(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
306
305
  const collection = "osemenitevGoveda";
307
- console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
306
+ if (DEBUG)
307
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
308
308
  let updates = [];
309
309
  try {
310
310
  const osemenitve = (await mongo.find(collection, {
@@ -325,7 +325,8 @@ export async function pmzUpdateOsemenitevGoveda(mongo, tenant, year, artikli, zi
325
325
  });
326
326
  }
327
327
  }
328
- console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${osemenitve.length}`);
328
+ if (DEBUG)
329
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${osemenitve.length}`);
329
330
  }
330
331
  catch (err) {
331
332
  console.error(`pmzUpdateOsemenitevGoveda ${tenant} ${year}: ${err.message || err}`);
@@ -337,7 +338,8 @@ export async function pmzUpdateOsemenitevGoveda(mongo, tenant, year, artikli, zi
337
338
  ;
338
339
  export async function pmzUpdateObiski(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
339
340
  const collection = "obiski";
340
- console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
341
+ if (DEBUG)
342
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
341
343
  let updates = [];
342
344
  try {
343
345
  const obiski = (await mongo.find(collection, {
@@ -358,7 +360,8 @@ export async function pmzUpdateObiski(mongo, tenant, year, artikli, zivali, znan
358
360
  });
359
361
  }
360
362
  }
361
- console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${obiski.length}`);
363
+ if (DEBUG)
364
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${obiski.length}`);
362
365
  }
363
366
  catch (err) {
364
367
  console.error(`pmzUpdateObiski ${tenant} ${year}: ${err.message || err}`);
@@ -369,7 +372,8 @@ export async function pmzUpdateObiski(mongo, tenant, year, artikli, zivali, znan
369
372
  ;
370
373
  export async function pmzUpdateRacuni(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
371
374
  const collection = "racuni";
372
- console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
375
+ if (DEBUG)
376
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
373
377
  let updates = [];
374
378
  try {
375
379
  const racuni = (await mongo.find(collection, {
@@ -390,7 +394,8 @@ export async function pmzUpdateRacuni(mongo, tenant, year, artikli, zivali, znan
390
394
  });
391
395
  }
392
396
  }
393
- console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${racuni.length}`);
397
+ if (DEBUG)
398
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${racuni.length}`);
394
399
  }
395
400
  catch (err) {
396
401
  console.error(`pmzUpdateRacuni ${tenant} ${year}: ${err.message || err}`);
@@ -401,7 +406,8 @@ export async function pmzUpdateRacuni(mongo, tenant, year, artikli, zivali, znan
401
406
  ;
402
407
  export async function pmzUpdateDobavnice(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
403
408
  const collection = "dobavnice";
404
- console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
409
+ if (DEBUG)
410
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
405
411
  let updates = [];
406
412
  try {
407
413
  const dobavnice = (await mongo.find(collection, {
@@ -422,7 +428,8 @@ export async function pmzUpdateDobavnice(mongo, tenant, year, artikli, zivali, z
422
428
  });
423
429
  }
424
430
  }
425
- console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${dobavnice.length}`);
431
+ if (DEBUG)
432
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${dobavnice.length}`);
426
433
  }
427
434
  catch (err) {
428
435
  console.error(`pmzUpdateDobavnice ${tenant} ${year}: ${err.message || err}`);
@@ -431,48 +438,50 @@ export async function pmzUpdateDobavnice(mongo, tenant, year, artikli, zivali, z
431
438
  return { dobavnice: updates };
432
439
  }
433
440
  ;
434
- // TODO - implementiraj za obravnave
435
- // export async function pmzUpdateObravnave(mongo: Mongo, tenant: string, year: number, artikli: ArtikliPmzMap, zivali: RejnaZival[], znaneVrsteZivali: Record<string,string>, vrsteZivaliZaZdravilo: VrsteZivaliZaZdravilo[], errors: string[])
436
- // {
437
- // const collection="obravnave";
438
- // console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
439
- // let updates: Partial<Obravnava>[] = [];
440
- // try {
441
- // const obravnave = (await mongo.find<Obravnava>(collection,
442
- // {
443
- // datum: wholeYearQ(year),
444
- // "koraki.postavke.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
445
- // } as any,
446
- // { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } })
447
- // );
448
- // for (let obravnava of obravnave) {
449
- // let updated = false;
450
- // for (let korak of obravnava.koraki || []) {
451
- // for (let postavka of korak.postavke || []) {
452
- // updated ||= await mogocePopraviPostavkoKoraka(artikli,postavka,mongo,tenant,year,vrsteZivaliZaZdravilo,errors);
453
- // }
454
- // korak.postavke = (korak.postavke || []).filter(a => !!a);
455
- // }
456
- // if (updates) {
457
- // updates.push({
458
- // _id: obravnava._id,
459
- // pmzAutoUpdated: new Date(),
460
- // koraki: obravnava.koraki!.filter(a => !!a)
461
- // })
462
- // }
463
- // }
464
- // console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${obravnave.length}`);
465
- // } catch(err: any) {
466
- // console.error(`pmzUpdateObravnave ${tenant} ${year}: ${err.message||err}`);
467
- // };
468
- // return { obravnave: updates }
469
- // };
441
+ export async function pmzUpdateObravnave(mongo, tenant, year, artikli, vrsteZivaliZaZdravilo, pacientiVrsteObj, errors) {
442
+ const collection = "obravnave";
443
+ if (DEBUG)
444
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
445
+ let updates = [];
446
+ try {
447
+ const obravnave = (await mongo.find(collection, {
448
+ datum: wholeYearQ(year),
449
+ "koraki.postavke.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
450
+ }, { project: { _id: true, postavke: true, stevilkeZivali: true, pacient_id: true, gmid: true } }));
451
+ for (let obravnava of obravnave) {
452
+ let updated = false;
453
+ for (let korak of obravnava.koraki || []) {
454
+ for (let postavka of korak.postavke || []) {
455
+ updated || (updated = mogocePopraviPostavkoKoraka(artikli, postavka, obravnava.pacient_id, pacientiVrsteObj, vrsteZivaliZaZdravilo, errors));
456
+ }
457
+ korak.postavke = (korak.postavke || []).filter(a => !!a);
458
+ }
459
+ if (updates) {
460
+ updates.push({
461
+ _id: obravnava._id,
462
+ pmzAutoUpdated: new Date(),
463
+ koraki: obravnava.koraki.filter(a => !!a)
464
+ });
465
+ }
466
+ }
467
+ if (DEBUG)
468
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${obravnave.length}`);
469
+ }
470
+ catch (err) {
471
+ console.error(`pmzUpdateObravnave ${tenant} ${year}: ${err.message || err}`);
472
+ console.error(`err`, err);
473
+ }
474
+ ;
475
+ return { obravnave: updates };
476
+ }
477
+ ;
470
478
  //#region
471
479
  export async function pmzUpdateAllForYear({ mongo, tenant, year, writeToDb }) {
472
480
  var _a;
473
481
  mongo || (mongo = new Mongo(tenant));
474
482
  let pmzArtikliMap = await pridobiPMZArtikle(mongo);
475
483
  let zdraviloZaVrste = await vrsteZivaliZaZdravilo(mongo);
484
+ let pacientiVrsteObj = await pacientiZivalskeVrste(mongo);
476
485
  // console.log(await pmzPogostnostVrstZivali(mongo, tenant, year, pmzArtikliMap));
477
486
  // if (1===1) process.exit(0)
478
487
  let zivali = await mongo.find("zivali", {});
@@ -483,17 +492,17 @@ export async function pmzUpdateAllForYear({ mongo, tenant, year, writeToDb }) {
483
492
  let obiski = await pmzUpdateObiski(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
484
493
  let racuni = await pmzUpdateRacuni(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
485
494
  let dobavnice = await pmzUpdateDobavnice(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
486
- // let obravnave = await pmzUpdateObravnave(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
495
+ let obravnave = await pmzUpdateObravnave(mongo, tenant, year, pmzArtikliMap, zdraviloZaVrste, pacientiVrsteObj, errors);
487
496
  let updates = {
488
497
  ...terapije,
489
498
  ...osemenitevGoveda,
490
499
  ...obiski,
491
500
  ...racuni,
492
501
  ...dobavnice,
493
- // ...obravnave,
502
+ ...obravnave,
494
503
  };
495
504
  for (let collection in updates) {
496
- console.log(collection, (_a = updates[collection]) === null || _a === void 0 ? void 0 : _a.length);
505
+ console.log("pmzUpdate", tenant, year, collection, (_a = updates[collection]) === null || _a === void 0 ? void 0 : _a.length);
497
506
  }
498
507
  if (writeToDb) {
499
508
  for await (let collection of Object.keys(updates)) {
@@ -504,31 +513,15 @@ export async function pmzUpdateAllForYear({ mongo, tenant, year, writeToDb }) {
504
513
  delete update._id;
505
514
  return { query, update };
506
515
  });
507
- let written = await mongo.upsertBatch(collection, batch);
508
- console.log(`collection, written.length`, collection, written.length);
516
+ await mongo.upsertBatch(collection, batch);
509
517
  }
510
518
  }
511
519
  errors = dedup(errors).sort();
512
- console.log(`pmzUpdateAllForYear ${tenant} ${year} errors`, errors);
513
520
  return { updates, errors };
514
521
  }
515
- function starostZivaliDni(stZivali, zivali, naDan) {
516
- if (!naDan || !(stZivali === null || stZivali === void 0 ? void 0 : stZivali.length) || !zivali)
517
- return undefined;
518
- for (let zival of stZivali || []) {
519
- let animal = zivali === null || zivali === void 0 ? void 0 : zivali.find(z => jn(z.state, z.idAnimal) === zival);
520
- if (animal === null || animal === void 0 ? void 0 : animal.DBirth) {
521
- let dni = dayjs(naDan).diff(animal.DBirth, "days");
522
- console.log(`dni`, dni);
523
- if (dni)
524
- return dni;
525
- }
526
- }
527
- return undefined;
528
- }
529
- // (async function () {
530
- // await pmzUpdateAllForYear({ tenant: "mozirje", year: 2025, writeToDb: true });
531
- // // console.dir(res, { depth:4});
532
- // process.exit(0)
533
- // })();
522
+ (async function () {
523
+ await pmzUpdateAllForYear({ tenant: "mozirje", year: 2025, writeToDb: true });
524
+ // console.dir(res, { depth:4});
525
+ process.exit(0);
526
+ })();
534
527
  //# sourceMappingURL=pmzUpdate.mjs.map