cry-vetzdravila 1.0.0
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.
- package/.claude/settings.local.json +17 -0
- package/CLAUDE.md +82 -0
- package/LICENSE.md +16 -0
- package/README.md +376 -0
- package/a.txt +1643 -0
- package/bun.lock +197 -0
- package/dist/atcvet/opisATCvetKode.d.ts +23 -0
- package/dist/atcvet/podatkiATCvetKode.d.ts +20 -0
- package/dist/atcvet/pomeniNivojevATCvet.d.ts +1 -0
- package/dist/atcvet/types/AtcvetFile.d.ts +19 -0
- package/dist/generated/AtcVet.d.ts +9 -0
- package/dist/generated/RegisterZdravil.d.ts +8 -0
- package/dist/generated/seznamZdravil.d.ts +8 -0
- package/dist/index.d.ts +244 -0
- package/dist/index.js +141786 -0
- package/dist/register/MIN_OCENA_PODOBNOSTI.d.ts +2 -0
- package/dist/register/helper/normalizirajNaziv.d.ts +176 -0
- package/dist/register/helper/oblikujRezultatIskanja.d.ts +8 -0
- package/dist/register/helper/oceniPodobnost.d.ts +37 -0
- package/dist/register/helper/poisciZivalskoVrsto.d.ts +33 -0
- package/dist/register/helper/razcleniNaziv.d.ts +2 -0
- package/dist/register/podobnaZdravilaPoATC.d.ts +16 -0
- package/dist/register/podobnaZdravilaPoUcinkovinah.d.ts +18 -0
- package/dist/register/registerZdravil.d.ts +9 -0
- package/dist/register/types/KarencaZdravila.d.ts +24 -0
- package/dist/register/types/PotUporabeZdravila.d.ts +21 -0
- package/dist/register/types/RazclembaZdravila.d.ts +9 -0
- package/dist/register/types/RegisterZdravil.d.ts +2 -0
- package/dist/register/types/UcinkovinaZdravila.d.ts +20 -0
- package/dist/register/types/Zdravilo.d.ts +65 -0
- package/dist/register/types/ZdraviloZUtemeljitvijo.d.ts +9 -0
- package/dist/register/types/ZivalskeVrste.d.ts +158 -0
- package/dist/register/uganiZdravilo.d.ts +43 -0
- package/dist/register/zdravilaZaAtcVetKodo.d.ts +8 -0
- package/dist/register/zdraviloJeVakcinaZa.d.ts +18 -0
- package/docs/vakcine.md +195 -0
- package/package.json +39 -0
- package/src/atcvet/CLAUDE.md +18 -0
- package/src/atcvet/downloadLatestAtcvetPdf.ts +107 -0
- package/src/atcvet/opisATCvetKode.ts +116 -0
- package/src/atcvet/parseAtcvetPdf.ts +215 -0
- package/src/atcvet/podatkiATCvetKode.ts +34 -0
- package/src/atcvet/pomeniNivojevATCvet.ts +8 -0
- package/src/atcvet/types/AtcvetFile.ts +22 -0
- package/src/generate.ts +111 -0
- package/src/generated/AtcVet.ts +56704 -0
- package/src/generated/seznamZdravil.ts +44833 -0
- package/src/importParseAndBuildAll.ts +97 -0
- package/src/index.ts +289 -0
- package/src/interactive.ts +428 -0
- package/src/register/CLAUDE.md +230 -0
- package/src/register/MIN_OCENA_PODOBNOSTI.ts +3 -0
- package/src/register/downloadRegister.ts +148 -0
- package/src/register/helper/analizaVakcin.ts +90 -0
- package/src/register/helper/checkVrste.ts +72 -0
- package/src/register/helper/hashString.ts +27 -0
- package/src/register/helper/normalizirajNaziv.ts +493 -0
- package/src/register/helper/oblikujRezultatIskanja.ts +15 -0
- package/src/register/helper/oceniPodobnost.ts +194 -0
- package/src/register/helper/poisciZivalskoVrsto.ts +100 -0
- package/src/register/helper/razcleniNaziv.ts +105 -0
- package/src/register/helper/testNormalizacije.ts +89 -0
- package/src/register/helper/testPodobnosti.ts +238 -0
- package/src/register/helper/testVakcin.ts +103 -0
- package/src/register/parseRegister.ts +464 -0
- package/src/register/podobnaZdravilaPoATC.ts +71 -0
- package/src/register/podobnaZdravilaPoUcinkovinah.ts +136 -0
- package/src/register/registerZdravil.ts +22 -0
- package/src/register/stats.ts +114 -0
- package/src/register/types/KarencaZdravila.ts +26 -0
- package/src/register/types/PotUporabeZdravila.ts +21 -0
- package/src/register/types/RazclembaZdravila.ts +10 -0
- package/src/register/types/RegisterRaw.ts +23 -0
- package/src/register/types/RegisterZdravil.ts +3 -0
- package/src/register/types/UcinkovinaZdravila.ts +21 -0
- package/src/register/types/Zdravilo.ts +84 -0
- package/src/register/types/ZdraviloZUtemeljitvijo.ts +11 -0
- package/src/register/types/ZivalskeVrste.ts +7 -0
- package/src/register/uganiZdravilo.ts +142 -0
- package/src/register/zdravilaZaAtcVetKodo.ts +28 -0
- package/src/register/zdraviloJeVakcinaZa.ts +202 -0
- package/src/test/testPodobnosti.test.ts +126 -0
- package/src/test/zdravila.json +38693 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizacija naziva zdravila
|
|
3
|
+
*
|
|
4
|
+
* Čiščenje in normalizacija imen zdravil za boljše iskanje.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 1. Pretvori v male črke za slovensko lokalizacijo
|
|
8
|
+
*/
|
|
9
|
+
declare function toLowerCaseSL(text: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* 2. Zamenjaj posebne znake + ( ) , ; * s presledki
|
|
12
|
+
*/
|
|
13
|
+
declare function replaceSpecialChars(text: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* 3. Zamenjaj decimalne vejice med dvema številkama z decimalno piko
|
|
16
|
+
* Primer: "50,5" → "50.5"
|
|
17
|
+
*/
|
|
18
|
+
declare function replaceDecimalCommas(text: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* 4. Zamenjaj i.e. z ie
|
|
21
|
+
*/
|
|
22
|
+
declare function replaceIE(text: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* 5. Zamenjaj tablete, tablet, tabl, tableta, tab → tbl
|
|
25
|
+
*/
|
|
26
|
+
declare function normalizeTablete(text: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* 5b. Zamenjaj cap, caps, kap, kaps, kapsula, kapsul → kps
|
|
29
|
+
*/
|
|
30
|
+
declare function normalizeKapsule(text: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* 5c. Zamenjaj deci → dl
|
|
33
|
+
*/
|
|
34
|
+
declare function normalizeDeci(text: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* 5d. Zamenjaj doza, doze → doz
|
|
37
|
+
*/
|
|
38
|
+
declare function normalizeDoz(text: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* 5d. Zamenjaj tube, tubi, tuba → tub
|
|
41
|
+
*/
|
|
42
|
+
declare function normalizeTub(text: string): string;
|
|
43
|
+
/**
|
|
44
|
+
* 5e. Zamenjaj kosov, kosa, kosi → kos
|
|
45
|
+
*/
|
|
46
|
+
declare function normalizeKos(text: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* 5f. Zamenjaj kom, komad, komada, komadi, komadov → kos
|
|
49
|
+
*/
|
|
50
|
+
declare function normalizeKom(text: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* 6. Odstrani pike za enotami
|
|
53
|
+
* Primer: "100 gr." → "100 gr"
|
|
54
|
+
*/
|
|
55
|
+
declare function removeDotsAfterUnits(text: string): string;
|
|
56
|
+
/**
|
|
57
|
+
* 5. Izbriši presledke med številko in enoto / enoto
|
|
58
|
+
* Primer: "100 mg / g" → "100mg/g", "160 mg/ml" → "160mg/ml", "330 mg / 100 mg" → "330mg/100mg"
|
|
59
|
+
*/
|
|
60
|
+
declare function normalizeUnitSlash(text: string): string;
|
|
61
|
+
/**
|
|
62
|
+
* 6. Izbriši presledke med številko in enoto
|
|
63
|
+
* Primer: "50.5 mg" → "50.5mg", "200 mg 50 mg" → "200mg 50mg"
|
|
64
|
+
*/
|
|
65
|
+
declare function normalizeUnitSpaces(text: string): string;
|
|
66
|
+
/**
|
|
67
|
+
* 7. Zamenjaj pike pred enoto s presledki
|
|
68
|
+
* Primer: "inj.100ml" → "inj 100ml"
|
|
69
|
+
* Ohrani decimalne pike (pika med dvema številkama)
|
|
70
|
+
*/
|
|
71
|
+
declare function replaceDotsBeforeUnits(text: string): string;
|
|
72
|
+
/**
|
|
73
|
+
* 7b. Odstrani vse pike pred presledkom
|
|
74
|
+
* Primer: "inj. 100ml" → "inj 100ml"
|
|
75
|
+
*/
|
|
76
|
+
declare function removeDotsBeforeSpaces(text: string): string;
|
|
77
|
+
/**
|
|
78
|
+
* 13. Odstrani vse pike za črkami
|
|
79
|
+
* Primer: "inj." → "inj", "sol." → "sol"
|
|
80
|
+
*/
|
|
81
|
+
declare function removeDotsAfterLetters(text: string): string;
|
|
82
|
+
/**
|
|
83
|
+
* 15. Zamenjaj enoto gr z g
|
|
84
|
+
* Primer: "10gr" → "10g", "100gr/ml" → "100g/ml"
|
|
85
|
+
*/
|
|
86
|
+
declare function normalizeGr(text: string): string;
|
|
87
|
+
/**
|
|
88
|
+
* 7. Strni teže živali v kg
|
|
89
|
+
* Primeri:
|
|
90
|
+
* - "od 40,1 do 60,0 kg" → "40-60kg"
|
|
91
|
+
* - "od 40,1 kg do 60,0 kg" → "40-60kg"
|
|
92
|
+
* - "nad 40,1 kg" → "40kg-"
|
|
93
|
+
* - "vsaj 40 kg" → "40kg-"
|
|
94
|
+
* - "najmanj 5 kg" → "5kg-"
|
|
95
|
+
* - "pod 40,1 kg" → "-40kg"
|
|
96
|
+
* - "do 40,1 kg" → "-40kg"
|
|
97
|
+
* - "največ 40 kg" → "-40kg"
|
|
98
|
+
* - "od 40kg - 60kg" → "40-60kg"
|
|
99
|
+
* Decimalke se odstranijo za teže >= 1kg
|
|
100
|
+
*/
|
|
101
|
+
declare function normalizeWeightRanges(text: string): string;
|
|
102
|
+
/**
|
|
103
|
+
* 17. Dodaj kg za vsako številko v teži
|
|
104
|
+
* Primer: "40-60kg" → "40kg-60kg", "-40kg" → "-40kg", "40kg-" → "40kg-"
|
|
105
|
+
*/
|
|
106
|
+
declare function addKgToWeight(text: string): string;
|
|
107
|
+
/**
|
|
108
|
+
* 10. Odstrani " za "
|
|
109
|
+
*/
|
|
110
|
+
declare function removeZa(text: string): string;
|
|
111
|
+
/**
|
|
112
|
+
* 19. Normalizira količine na koncu naziva
|
|
113
|
+
* - Odstrani presledke okrog x ali *
|
|
114
|
+
* - Zamenja a/á + številka → številka (brez a/á)
|
|
115
|
+
* - Odstrani začetni x pred številko
|
|
116
|
+
* - Če je številka "1", jo odstrani
|
|
117
|
+
* Primeri:
|
|
118
|
+
* - "zdravilo 10 x 5" → "zdravilo 10x5"
|
|
119
|
+
* - "zdravilo 5 * 10" → "zdravilo 5*10"
|
|
120
|
+
* - "zdravilo a 7 tbl" → "zdravilo 7tbl"
|
|
121
|
+
* - "zdravilo á7tbl" → "zdravilo 7tbl"
|
|
122
|
+
* - "ypozane 15mg x7tbl" → "ypozane 15mg 7tbl"
|
|
123
|
+
* - "1kom" → "kom"
|
|
124
|
+
*/
|
|
125
|
+
declare function normalizeTrailingQuantity(text: string): string;
|
|
126
|
+
/**
|
|
127
|
+
* 12. Zamenjaj " / " s presledki
|
|
128
|
+
* Dodaj presledek na konec, nato zamenjaj vse " / " s presledki
|
|
129
|
+
* Primer: "zdravilo / oblika" → "zdravilo oblika"
|
|
130
|
+
*/
|
|
131
|
+
declare function replaceSlashWithSpace(text: string): string;
|
|
132
|
+
/**
|
|
133
|
+
* 13. Zamenjaj živalske vrste
|
|
134
|
+
* psi, pse, psa → pse
|
|
135
|
+
* mačko, mačka, mačke → mačke
|
|
136
|
+
* krava, krave, telice → govedo
|
|
137
|
+
*/
|
|
138
|
+
declare function normalizeAnimalSpecies(text: string): string;
|
|
139
|
+
/**
|
|
140
|
+
* 14. Odstrani vse znake / za presledkom
|
|
141
|
+
* Primer: "zdravilo / test" → "zdravilo test" (že urejeno z replaceSlashWithSpace)
|
|
142
|
+
* Primer: "zdravilo /" → "zdravilo"
|
|
143
|
+
*/
|
|
144
|
+
declare function removeSlashAfterSpace(text: string): string;
|
|
145
|
+
/**
|
|
146
|
+
* Glavna funkcija za normalizacijo naziva
|
|
147
|
+
*/
|
|
148
|
+
export declare function normalizirajNaziv(naziv: string): string;
|
|
149
|
+
/**
|
|
150
|
+
* Rezultat razčlenitve naziva zdravila
|
|
151
|
+
*/
|
|
152
|
+
export interface RazclenjeniNaziv {
|
|
153
|
+
izvorni_naziv: string;
|
|
154
|
+
normaliziran_naziv: string;
|
|
155
|
+
teza: string | null;
|
|
156
|
+
kolicina: string | null;
|
|
157
|
+
doze: string[];
|
|
158
|
+
besede: string[];
|
|
159
|
+
zivalskeVrste: string[];
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Vzorec za prepoznavanje doz (kombinacija številk, enot in "/")
|
|
163
|
+
* Primeri: 100mcg, 2mg/5ml, 2x3ml
|
|
164
|
+
*/
|
|
165
|
+
declare const DOZA_PATTERN: RegExp;
|
|
166
|
+
/**
|
|
167
|
+
* Vzorec za prepoznavanje količine na koncu naziva
|
|
168
|
+
* Primeri: 7tbl, 10x5, 5*10, kos (brez mg, ml, g, kg, mcg, dl, ie)
|
|
169
|
+
*/
|
|
170
|
+
declare const KOLICINA_PATTERN: RegExp;
|
|
171
|
+
/**
|
|
172
|
+
* Vzorec za prepoznavanje teže
|
|
173
|
+
* Primeri: 40kg-60kg, -40kg, 40kg-, 0.5kg
|
|
174
|
+
*/
|
|
175
|
+
declare const TEZA_PATTERN: RegExp;
|
|
176
|
+
export { toLowerCaseSL, replaceSpecialChars, replaceDecimalCommas, replaceIE, normalizeTablete, normalizeKapsule, normalizeDeci, normalizeDoz, normalizeTub, normalizeKos, normalizeKom, removeDotsAfterUnits, normalizeUnitSlash, normalizeUnitSpaces, replaceDotsBeforeUnits, removeDotsBeforeSpaces, removeDotsAfterLetters, normalizeGr, normalizeWeightRanges, addKgToWeight, removeZa, normalizeTrailingQuantity, replaceSlashWithSpace, removeSlashAfterSpace, normalizeAnimalSpecies, DOZA_PATTERN, KOLICINA_PATTERN, TEZA_PATTERN, };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ZdraviloZUtemeljitvijo } from "../types/ZdraviloZUtemeljitvijo";
|
|
2
|
+
export declare function oblikujRezultatIskanja(rezultati: ZdraviloZUtemeljitvijo[]): {
|
|
3
|
+
zadetki: {
|
|
4
|
+
zdravilo: import("../..").Zdravilo;
|
|
5
|
+
ocena: number;
|
|
6
|
+
}[];
|
|
7
|
+
najboljsi: import("../..").Zdravilo | undefined;
|
|
8
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ocena podobnosti med dvema razčlenjenima nazivoma zdravil
|
|
3
|
+
*/
|
|
4
|
+
import type { RazclenjeniNaziv } from "./normalizirajNaziv";
|
|
5
|
+
/**
|
|
6
|
+
* Utemeljitev ocene podobnosti
|
|
7
|
+
*/
|
|
8
|
+
export interface UtemeljitevOcene {
|
|
9
|
+
/** Skupna ocena podobnosti */
|
|
10
|
+
ocena: number;
|
|
11
|
+
/** Ocena ujemanja prvih štirih besed v obe smeri (prva: 500, druga: 300, tretja: 200, četrta: 100) */
|
|
12
|
+
ocenaPrvihBesed: number;
|
|
13
|
+
/** Ocena ujemanja velikosti (male/mali, srednje/srednji, velike/veliki) - 70 za vsako */
|
|
14
|
+
ocenaVelikosti: number;
|
|
15
|
+
/** Ocena ujemanja doz (0-200) */
|
|
16
|
+
ocenaDoze: number;
|
|
17
|
+
/** Ocena ujemanja živalskih vrst (0-200) */
|
|
18
|
+
ocenaZivalskihVrst: number;
|
|
19
|
+
/** Ocena ujemanja teže (0 ali 300) */
|
|
20
|
+
ocenaTeze: number;
|
|
21
|
+
/** Ocena ujemanja količine (0 ali 200) */
|
|
22
|
+
ocenaKolicine: number;
|
|
23
|
+
/** Ocena ujemanja besed (0-200) */
|
|
24
|
+
ocenaBesed: number;
|
|
25
|
+
/** Kazen za razliko v številu besed (-10 * razlika) */
|
|
26
|
+
steviloBesed: number;
|
|
27
|
+
/** uporavljena razčlemba */
|
|
28
|
+
razclembaRegistra: RazclenjeniNaziv;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Oceni podobnost med dvema razčlenjenima nazivoma
|
|
32
|
+
*
|
|
33
|
+
* @param razclembaVhoda - Razčlenjen vhodni naziv (iskalni niz)
|
|
34
|
+
* @param razclembaRegistra - Razčlenjen naziv iz registra zdravil
|
|
35
|
+
* @returns Utemeljitev z delnimi ocenami in skupno oceno
|
|
36
|
+
*/
|
|
37
|
+
export declare function oceniPodobnost(razclembaVhoda: RazclenjeniNaziv, razclembaRegistra: RazclenjeniNaziv): UtemeljitevOcene;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Iskanje živalskih vrst
|
|
3
|
+
*
|
|
4
|
+
* Funkcije za iskanje in ujemanje živalskih vrst iz registra.
|
|
5
|
+
* Uporablja _match regex iz skupneEntitete.vrsteZivali.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Rezultat iskanja živalske vrste
|
|
9
|
+
*/
|
|
10
|
+
export interface RezultatIskanja {
|
|
11
|
+
/** Najdena vrsta (ključ iz ZivalskeVrste) */
|
|
12
|
+
vrsta: string;
|
|
13
|
+
/** Nadrejena vrsta, če obstaja */
|
|
14
|
+
nadrejenaVrsta: string | null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Poišče nadrejeno živalsko vrsto za podano vrsto
|
|
18
|
+
* Primer: "krave v laktaciji" → "govedo", "kokoši nesnice" → "perutnina"
|
|
19
|
+
*
|
|
20
|
+
* Uporablja _match regex iz ZivalskeVrste
|
|
21
|
+
*/
|
|
22
|
+
export declare function findNadrejenaVrsta(vrsta: string): string | null;
|
|
23
|
+
/**
|
|
24
|
+
* Poišče ustrezno živalsko vrsto za podani niz
|
|
25
|
+
*
|
|
26
|
+
* @param za - Niz za iskanje (npr. "psi", "krave v laktaciji", "kokoši nesnice")
|
|
27
|
+
* @returns Rezultat z najdeno vrsto in nadrejeno vrsto (če obstaja)
|
|
28
|
+
*/
|
|
29
|
+
export declare function poisciZivalskoVrsto(za: string): RezultatIskanja | null;
|
|
30
|
+
/**
|
|
31
|
+
* Normalizacija imena živalske vrste
|
|
32
|
+
*/
|
|
33
|
+
export declare function normalizeVrsta(vrsta: string): string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Zdravilo } from "./types/Zdravilo";
|
|
2
|
+
/**
|
|
3
|
+
* Vrne seznam zdravil, ki so na istem ATC nivoju `nivo` kot dano zdravilo.
|
|
4
|
+
*
|
|
5
|
+
* Vrnjeni seznam ne vsebuje zdravila samega.
|
|
6
|
+
*
|
|
7
|
+
* @param zdravilo Zdravilo, za katerega iščemo podobna zdravila
|
|
8
|
+
* @param nivo ATCvet nivo za primerjavo (1-5), privzeto 5 (kemijska učinkovina)
|
|
9
|
+
* @returns Seznam zdravil z enako ATCvet kodo na danem nivoju
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* // Poišči vsa zdravila z enako kemijsko podskupino (nivo 4)
|
|
13
|
+
* const podobna = podobnaZdravilaPoATC(mojeZdravilo, 4);
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function podobnaZdravilaPoATC(zdravilo: Zdravilo, nivo?: number): Zdravilo[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Zdravilo } from "./types/Zdravilo";
|
|
2
|
+
/**
|
|
3
|
+
* Vrne seznam zdravil, ki imajo vsaj eno učinkovino enako kot dano zdravilo.
|
|
4
|
+
*
|
|
5
|
+
* Podatek o učinkovinah pridobimo iz zdravila samega in mu dodamo učinkovine
|
|
6
|
+
* po nivoju 5 ATC tega zdravila. Enako storimo z vsemi zdravili Registra.
|
|
7
|
+
*
|
|
8
|
+
* Vrnjeni seznam ne vsebuje zdravila samega.
|
|
9
|
+
*
|
|
10
|
+
* @param zdravilo Zdravilo, za katerega iščemo zdravila s podobnimi učinkovinami.
|
|
11
|
+
* @returns Seznam zdravil z vsaj eno skupno učinkovino
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // Poišči vsa zdravila z enako učinkovino
|
|
15
|
+
* const podobna = podobnaZdravilaPoUcinkovinah(mojeZdravilo);
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function podobnaZdravilaPoUcinkovinah(zdravilo: Zdravilo): Zdravilo[];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ZivalskeVrste } from "./ZivalskeVrste";
|
|
2
|
+
import { MozneKarenceZa, PotiAplikacijeZdravila } from "cry-klikvet-logic";
|
|
3
|
+
/**
|
|
4
|
+
* Karance po živalskih vrsta in morebiti po poteh aplikacije
|
|
5
|
+
*
|
|
6
|
+
* primer 1:
|
|
7
|
+
* {
|
|
8
|
+
* 'prašiči': { meso: 20, 'not. organi': 20 },
|
|
9
|
+
* konji: { meso: 10, 'not. organi': 10 },
|
|
10
|
+
* govedo: {
|
|
11
|
+
* meso: 31,
|
|
12
|
+
* 'not. organi': 31,
|
|
13
|
+
* mleko: 2,
|
|
14
|
+
* pot: { IV: { meso: 10, 'not. organi': 10, mleko: 1 } }
|
|
15
|
+
* }
|
|
16
|
+
* }
|
|
17
|
+
*/
|
|
18
|
+
type KarencaVrste = {
|
|
19
|
+
vrsta: keyof typeof ZivalskeVrste;
|
|
20
|
+
pot?: keyof typeof PotiAplikacijeZdravila;
|
|
21
|
+
karence: Partial<Record<MozneKarenceZa, number>>;
|
|
22
|
+
};
|
|
23
|
+
export type KarencaZdravila = KarencaVrste;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pot uporabe zdravila
|
|
3
|
+
* Na primer, za podatek v stolpcu xslx "-1081\Subkutana uporaba"
|
|
4
|
+
* const potUpora : PotUporabeZdravila = {
|
|
5
|
+
* sifra: 1081,
|
|
6
|
+
* opis: "Subkutana uporaba",
|
|
7
|
+
* koda: "SC"
|
|
8
|
+
* }
|
|
9
|
+
*/
|
|
10
|
+
export interface PotUporabeZdravila {
|
|
11
|
+
/** numerična šifra poti uprabe
|
|
12
|
+
* primer: 1081
|
|
13
|
+
*/
|
|
14
|
+
sifra: number;
|
|
15
|
+
/**
|
|
16
|
+
* opis uporabe
|
|
17
|
+
* primer: Subkutana uporaba
|
|
18
|
+
*/
|
|
19
|
+
opis: string;
|
|
20
|
+
koda: string[];
|
|
21
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Opisuje učinkovino zdravila in njeno količino v pakiranju.
|
|
3
|
+
* Primer: za stolpca v xslx
|
|
4
|
+
* - " -1\prokainijev benzilpenicilinat monohidrat -2\dihidrostreptomicinijev sulfat -3\vitamin A palmitat -4\kalcijev pantotenat"
|
|
5
|
+
* - " -1\ 1000000,0 IU -2\ 1000000,0 IU -3\ 10000,0 IU -4\ 100,0 mg"
|
|
6
|
+
* so ucinkovine
|
|
7
|
+
* const ucinkovine : UcinkovinaZdravila[] = [
|
|
8
|
+
* { ucinkovina: "prokainijev benzilpenicilinat monohidrat", kolicina: 1000000.0, enota: "IU" },
|
|
9
|
+
* { ucinkovina: "dihidrostreptomicinijev sulfat", kolicina: 1000000.0, enota: "IU" },
|
|
10
|
+
* { ucinkovina: "dihidrostreptomicinijev sulfat", kolicina: 1000000.0, enota: "IU" },
|
|
11
|
+
* { ucinkovina: "vitamin A palmitat", kolicina: 10000.0, enota: "IU" },
|
|
12
|
+
* { ucinkovina: "kalcijev pantotenat", kolicina: 100.0, enota: "mg" },
|
|
13
|
+
* ]
|
|
14
|
+
*/
|
|
15
|
+
export interface UcinkovinaZdravila {
|
|
16
|
+
ucinkovina: string;
|
|
17
|
+
kolicina?: number;
|
|
18
|
+
enota: string;
|
|
19
|
+
dodatneInformacije?: string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { UcinkovinaZdravila } from "./UcinkovinaZdravila";
|
|
2
|
+
import { PotUporabeZdravila } from "./PotUporabeZdravila";
|
|
3
|
+
import { KarencaZdravila } from "./KarencaZdravila";
|
|
4
|
+
/**
|
|
5
|
+
* Podatki o veterinarskem zdravilu iz registra JAZMP
|
|
6
|
+
*/
|
|
7
|
+
export interface Zdravilo {
|
|
8
|
+
/** id zdravila, izračunan kot hash */
|
|
9
|
+
id: number;
|
|
10
|
+
/** Ime zdravila */
|
|
11
|
+
ime: string;
|
|
12
|
+
/** Imetnik dovoljenja za promet z zdravilom */
|
|
13
|
+
imetnikDovoljenja: string;
|
|
14
|
+
/** Podatki o sproščanju zdravila */
|
|
15
|
+
sproscanjeZdravila: string;
|
|
16
|
+
/** Številka dovoljenja za promet */
|
|
17
|
+
stevilkaDovoljenja: string;
|
|
18
|
+
/** Datum veljavnosti dovoljenja */
|
|
19
|
+
datumVeljavnosti: string | null;
|
|
20
|
+
/** Režim izdaje (npr. Rp - na recept) */
|
|
21
|
+
rezimIzdaje: string;
|
|
22
|
+
/** ATC koda zdravila */
|
|
23
|
+
atcKoda: string;
|
|
24
|
+
/** Poti uporabe zdravila */
|
|
25
|
+
potiUporabe: PotUporabeZdravila[];
|
|
26
|
+
/** Farmacevtska oblika zdravila */
|
|
27
|
+
farmacevtskaOblika: string;
|
|
28
|
+
/** Opis pakiranj */
|
|
29
|
+
pakiranja: string;
|
|
30
|
+
/** Enota količine za sestavo */
|
|
31
|
+
enotaKolicine: string;
|
|
32
|
+
/** Seznam učinkovin in njihovih količin */
|
|
33
|
+
ucinkovine: UcinkovinaZdravila[];
|
|
34
|
+
/** Pomožne snovi v zdravilu */
|
|
35
|
+
pomocneSnovi: string[];
|
|
36
|
+
/** Ciljne živalske vrste */
|
|
37
|
+
ciljneVrste: string[];
|
|
38
|
+
/** Karenca zdravila po vrstah */
|
|
39
|
+
karence: KarencaZdravila[];
|
|
40
|
+
/** Če je zdravilo vakcina, proti čemu varuje */
|
|
41
|
+
vakcinaZa?: string[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Stolpci v xlsx datoteki JAZMP registra
|
|
45
|
+
*/
|
|
46
|
+
export declare const XLSX_COLUMNS: {
|
|
47
|
+
readonly IME_ZDRAVILA: 0;
|
|
48
|
+
readonly IMETNIK_DOVOLJENJA: 1;
|
|
49
|
+
readonly SPROSCANJE_ZDRAVILA: 2;
|
|
50
|
+
readonly STEVILKA_DZP: 3;
|
|
51
|
+
readonly DATUM_VELJAVNOSTI: 4;
|
|
52
|
+
readonly REZIM_IZDAJE: 5;
|
|
53
|
+
readonly ATC: 6;
|
|
54
|
+
readonly POTI_UPORABE: 7;
|
|
55
|
+
readonly FARMACEVTSKA_OBLIKA: 8;
|
|
56
|
+
readonly PAKIRANJA: 9;
|
|
57
|
+
readonly ENOTA_KOLICINE: 10;
|
|
58
|
+
readonly UCINKOVINE: 11;
|
|
59
|
+
readonly KOLICINE_UCINKOVIN: 12;
|
|
60
|
+
readonly UCINKOVINE_DODATNE_INFO: 13;
|
|
61
|
+
readonly POMOCNE_SNOVI: 14;
|
|
62
|
+
readonly CILJNE_VRSTE: 15;
|
|
63
|
+
readonly KARENCA_START: 16;
|
|
64
|
+
readonly KARENCA_END: 54;
|
|
65
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { UtemeljitevOcene } from "../helper/oceniPodobnost";
|
|
2
|
+
import type { Zdravilo } from "./Zdravilo";
|
|
3
|
+
/**
|
|
4
|
+
* Rezultat iskanja zdravila z utemeljitvijo
|
|
5
|
+
*/
|
|
6
|
+
export interface ZdraviloZUtemeljitvijo {
|
|
7
|
+
zdravilo: Zdravilo;
|
|
8
|
+
utemeljitev: UtemeljitevOcene;
|
|
9
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Širant živalskih vrst
|
|
3
|
+
*/
|
|
4
|
+
export declare const ZivalskeVrste: {
|
|
5
|
+
psi: {
|
|
6
|
+
vrsta: string;
|
|
7
|
+
ikona: string;
|
|
8
|
+
_match: RegExp;
|
|
9
|
+
_protected: boolean;
|
|
10
|
+
};
|
|
11
|
+
mačke: {
|
|
12
|
+
vrsta: string;
|
|
13
|
+
ikona: string;
|
|
14
|
+
_match: RegExp;
|
|
15
|
+
_protected: boolean;
|
|
16
|
+
};
|
|
17
|
+
dihurji: {
|
|
18
|
+
vrsta: string;
|
|
19
|
+
ikona: string;
|
|
20
|
+
_match: RegExp;
|
|
21
|
+
_protected: boolean;
|
|
22
|
+
};
|
|
23
|
+
glodalci: {
|
|
24
|
+
vrsta: string;
|
|
25
|
+
ikona: string;
|
|
26
|
+
_match: RegExp;
|
|
27
|
+
_protected: boolean;
|
|
28
|
+
};
|
|
29
|
+
ptice: {
|
|
30
|
+
vrsta: string;
|
|
31
|
+
ikona: string;
|
|
32
|
+
_match: RegExp;
|
|
33
|
+
_protected: boolean;
|
|
34
|
+
};
|
|
35
|
+
plazilci: {
|
|
36
|
+
vrsta: string;
|
|
37
|
+
ikona: string;
|
|
38
|
+
_match: RegExp;
|
|
39
|
+
_protected: boolean;
|
|
40
|
+
};
|
|
41
|
+
kunci: {
|
|
42
|
+
vrsta: string;
|
|
43
|
+
ikona: string;
|
|
44
|
+
_match: RegExp;
|
|
45
|
+
_protected: boolean;
|
|
46
|
+
};
|
|
47
|
+
ribe: {
|
|
48
|
+
vrsta: string;
|
|
49
|
+
ikona: string;
|
|
50
|
+
_match: RegExp;
|
|
51
|
+
_protected: boolean;
|
|
52
|
+
};
|
|
53
|
+
eksoti: {
|
|
54
|
+
vrsta: string;
|
|
55
|
+
ikona: string;
|
|
56
|
+
_match: RegExp;
|
|
57
|
+
_protected: boolean;
|
|
58
|
+
};
|
|
59
|
+
drobnica: {
|
|
60
|
+
vrsta: string;
|
|
61
|
+
ikona: string;
|
|
62
|
+
_match: RegExp;
|
|
63
|
+
_protected: boolean;
|
|
64
|
+
mozneKarence: string[];
|
|
65
|
+
rejna: boolean;
|
|
66
|
+
};
|
|
67
|
+
prašiči: {
|
|
68
|
+
vrsta: string;
|
|
69
|
+
ikona: string;
|
|
70
|
+
_match: RegExp;
|
|
71
|
+
_protected: boolean;
|
|
72
|
+
mozneKarence: string[];
|
|
73
|
+
rejna: boolean;
|
|
74
|
+
};
|
|
75
|
+
"pra\u0161i\u010Di-dru\u017Eni": {
|
|
76
|
+
vrsta: string;
|
|
77
|
+
ikona: string;
|
|
78
|
+
_match: RegExp;
|
|
79
|
+
_protected: boolean;
|
|
80
|
+
rejna: boolean;
|
|
81
|
+
};
|
|
82
|
+
govedo: {
|
|
83
|
+
vrsta: string;
|
|
84
|
+
ikona: string;
|
|
85
|
+
_match: RegExp;
|
|
86
|
+
_protected: boolean;
|
|
87
|
+
mozneKarence: string[];
|
|
88
|
+
rejna: boolean;
|
|
89
|
+
};
|
|
90
|
+
divjad: {
|
|
91
|
+
vrsta: string;
|
|
92
|
+
ikona: string;
|
|
93
|
+
_match: RegExp;
|
|
94
|
+
_protected: boolean;
|
|
95
|
+
mozneKarence: string[];
|
|
96
|
+
rejna: boolean;
|
|
97
|
+
};
|
|
98
|
+
čebele: {
|
|
99
|
+
vrsta: string;
|
|
100
|
+
ikona: string;
|
|
101
|
+
_match: RegExp;
|
|
102
|
+
_protected: boolean;
|
|
103
|
+
mozneKarence: string[];
|
|
104
|
+
rejna: boolean;
|
|
105
|
+
};
|
|
106
|
+
činčile: {
|
|
107
|
+
vrsta: string;
|
|
108
|
+
ikona: string;
|
|
109
|
+
_match: RegExp;
|
|
110
|
+
_protected: boolean;
|
|
111
|
+
};
|
|
112
|
+
budre: {
|
|
113
|
+
vrsta: string;
|
|
114
|
+
ikona: string;
|
|
115
|
+
_match: RegExp;
|
|
116
|
+
_protected: boolean;
|
|
117
|
+
};
|
|
118
|
+
hrčki: {
|
|
119
|
+
vrsta: string;
|
|
120
|
+
ikona: string;
|
|
121
|
+
_match: RegExp;
|
|
122
|
+
_protected: boolean;
|
|
123
|
+
};
|
|
124
|
+
konji: {
|
|
125
|
+
vrsta: string;
|
|
126
|
+
ikona: string;
|
|
127
|
+
_match: RegExp;
|
|
128
|
+
_protected: boolean;
|
|
129
|
+
mozneKarence: string[];
|
|
130
|
+
rejna: boolean;
|
|
131
|
+
};
|
|
132
|
+
"konji-dru\u017Eni": {
|
|
133
|
+
vrsta: string;
|
|
134
|
+
ikona: string;
|
|
135
|
+
_match: RegExp;
|
|
136
|
+
_protected: boolean;
|
|
137
|
+
rejna: boolean;
|
|
138
|
+
};
|
|
139
|
+
ostale: {
|
|
140
|
+
vrsta: string;
|
|
141
|
+
ikona: string;
|
|
142
|
+
_match: RegExp;
|
|
143
|
+
_protected: boolean;
|
|
144
|
+
};
|
|
145
|
+
perutnina: {
|
|
146
|
+
vrsta: string;
|
|
147
|
+
ikona: string;
|
|
148
|
+
_match: RegExp;
|
|
149
|
+
mozneKarence: string[];
|
|
150
|
+
_protected: boolean;
|
|
151
|
+
rejna: boolean;
|
|
152
|
+
};
|
|
153
|
+
"morski pra\u0161i\u010Dki": {
|
|
154
|
+
vrsta: string;
|
|
155
|
+
_match: RegExp;
|
|
156
|
+
_protected: boolean;
|
|
157
|
+
};
|
|
158
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Iskanje zdravil po imenu
|
|
3
|
+
*
|
|
4
|
+
* Omogoča iskanje zdravil iz registra po podobnosti imena.
|
|
5
|
+
*/
|
|
6
|
+
import type { Zdravilo } from "./types/Zdravilo";
|
|
7
|
+
import { ZdraviloZUtemeljitvijo } from "./types/ZdraviloZUtemeljitvijo";
|
|
8
|
+
/**
|
|
9
|
+
* Opcije za iskanje zdravil
|
|
10
|
+
*/
|
|
11
|
+
export interface UganiZdraviloOpts {
|
|
12
|
+
/** Maksimalno število rezultatov (privzeto 10) */
|
|
13
|
+
limit?: number;
|
|
14
|
+
/** Minimalna ocena podobnosti (privzeto MIN_OCENA_PODOBNOSTI) */
|
|
15
|
+
minOcena?: number;
|
|
16
|
+
/** Išči samo med zdravili s temi ID-ji */
|
|
17
|
+
isciMed?: number[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Poišči zdravila po podobnosti imena in vrni z utemeljitvami
|
|
21
|
+
*
|
|
22
|
+
* @param vhodniNaziv - Iskalni niz (ime zdravila)
|
|
23
|
+
* @param opts - Opcije iskanja (limit, minOcena, isciMed)
|
|
24
|
+
* @returns Seznam zdravil z utemeljitvami, sortirano po oceni padajoče
|
|
25
|
+
*/
|
|
26
|
+
export declare function uganiZdraviloInUtemelji(vhodniNaziv: string, opts?: UganiZdraviloOpts): ZdraviloZUtemeljitvijo[];
|
|
27
|
+
/**
|
|
28
|
+
* Poišče zdravila v registru zdravil po podobnosti imena.
|
|
29
|
+
* Vrne seznam `limit` najboljših zadetkov in, če obstaja, najboljši zadetek.
|
|
30
|
+
*
|
|
31
|
+
* Zadetek je najboljši, če je edini ali če ima edini najvišjo oceno.
|
|
32
|
+
*
|
|
33
|
+
* @param vhodniNaziv - Iskalni niz (ime zdravila)
|
|
34
|
+
* @param opts - Opcije iskanja (limit, minOcena, isciMed)
|
|
35
|
+
* @returns { zadetki, najboljsi }
|
|
36
|
+
*/
|
|
37
|
+
export declare function uganiZdravilo(vhodniNaziv: string, opts?: UganiZdraviloOpts): {
|
|
38
|
+
zadetki: {
|
|
39
|
+
zdravilo: Zdravilo;
|
|
40
|
+
ocena: number;
|
|
41
|
+
}[];
|
|
42
|
+
najboljsi: Zdravilo | undefined;
|
|
43
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Zdravilo } from "./types/Zdravilo";
|
|
2
|
+
/**
|
|
3
|
+
* Vrne seznam zdravil, ki se začnejo z dano atcVet kodo.
|
|
4
|
+
* Seznam je urejen po ATCvet kodah.
|
|
5
|
+
* @param atcVetKoda ATCvet koda ali njen prefiks (npr. "QJ01", "QJ01CA04")
|
|
6
|
+
* @returns Seznam zdravil z ustrezno ATCvet kodo, urejen po kodah
|
|
7
|
+
*/
|
|
8
|
+
export declare function zdravilaZaAtcVetKodo(atcVetKoda: string): Zdravilo[];
|