cry-vetzdravila
v1.0.22
Published
Knjižnica veterinarskih zdravil registriranih v Sloveniji in šifrant ATCvet.
Downloads
1,493
Readme
cry-vetzdravila
Knjižnica veterinarskih zdravil registriranih v Sloveniji in šifrant ATCvet.
- cry-vetzdravila
Namestitev
npm install cry-vetzdravila
# ali
bun add cry-vetzdravilaNadgradnja
bun run update
bun run test
bun run buildInteraktivno iskanje
bun run interactiveUkazi:
- 1-20: nastavi limit rezultatov
- 200-2000: nastavi minimalno oceno
- u: vklopi/izklopi prikaz utemeljitev
- r: vklopi/izklopi prikaz razčlemb
- o: izpiši opis ATCvet kode prvega zadetka
- p: izpiši vse podatke ATCvet kode prvega zadetka
- =: izpiši podobna zdravila (po ATCvet kodi)
- +/-: dvigni/spusti ATCvet nivo in izpiši podobna
- f: izpiši podobna zdravila (po učinkovinah)
- Qxxxx: prikaži nivoje ATCvet kode (npr. QJ01CA04)
- Qxxxx...: prikaži zdravila z ATCvet kodo (npr. QJ01...)
- Enter: ponovi zadnje iskanje
- q: izhod
Uporaba
import {
// Podatki
registerZdravil,
AtcVet,
// Iskanje
uganiZdravilo,
uganiZdraviloInUtemelji,
oblikujRezultatIskanja,
zdravilaZaAtcVetKodo,
// Normalizacija
normalizirajNaziv,
razcleniNaziv,
oceniPodobnost,
// Vakcine
zdraviloJeVakcinaZa,
// Podobna zdravila
podobnaZdravilaPoATC,
podobnaZdravilaPoUcinkovinah,
// ATCvet
podatkiATCvetKode,
opisATCvetKode,
pomeniNivojevATCvet,
} from "cry-vetzdravila";API
Surovi podatki
registerZdravil: Map<number, RegZdravilo>
Register vseh veterinarskih zdravil. Ključ je numerični ID zdravila.
// Pridobi zdravilo po ID-ju
const zdravilo = registerZdravil.get(123456);
// Iteriraj čez vsa zdravila
for (const [id, zdravilo] of registerZdravil) {
console.log(zdravilo.ime);
}AtcVet: AtcvetRow[]
Šifrant ATCvet klasifikacije.
const atc = AtcVet.find(a => a.code === "QJ01CA04");
// { code: "QJ01CA04", level: 5, desc_en: "amoxicillin", desc_si: "amoksicilin" }Iskanje zdravil
uganiZdravilo(ime: string, opts?: UganiZdraviloOpts)
Poišče zdravila po imenu. Vrne seznam zadetkov in najboljši zadetek (če je enolično določen).
const { zadetki, najboljsi } = uganiZdravilo("citramox 500");
// zadetki: { zdravilo: RegZdravilo, ocena: number }[]
// najboljsi: RegZdravilo | undefined
// Z opcijami
const { zadetki } = uganiZdravilo("baytril", { limit: 10, minOcena: 600 });Opcije (UganiZdraviloOpts):
limit: maksimalno število rezultatov (privzeto 10)minOcena: minimalna ocena podobnosti (privzeto 500)isciMed: išči samo med zdravili s temi ID-ji
uganiZdraviloInUtemelji(ime: string, opts?: UganiZdraviloOpts)
Enako kot uganiZdravilo, vendar vrne polne utemeljitve za vsak zadetek.
const rezultati = uganiZdraviloInUtemelji("baytril 50", { limit: 5 });
for (const r of rezultati) {
console.log(r.zdravilo.ime, r.utemeljitev.ocena);
// Delne ocene: ocenaPrvihBesed, ocenaDoze, ocenaZivalskihVrst, ...
}oblikujRezultatIskanja(rezultati)
Pretvori rezultate iskanja v poenostavljeno obliko z določenim najboljšim zadetkom.
const rezultati = uganiZdraviloInUtemelji("citramox");
const { zadetki, najboljsi } = oblikujRezultatIskanja(rezultati);zdravilaZaAtcVetKodo(atcVetKoda: string)
Vrne seznam zdravil z dano ATCvet kodo ali prefiksom. Seznam je urejen po ATCvet kodah.
// Vsa zdravila z amoksicilinom
const zdravila = zdravilaZaAtcVetKodo("QJ01CA04");
// Vsa zdravila za sistemsko zdravljenje bakterijskih infekcij
const antibiotiki = zdravilaZaAtcVetKodo("QJ01");Normalizacija in analiza imen
normalizirajNaziv(naziv: string)
Normalizira ime zdravila za primerjavo (male črke, enote, teže, decimalne vejice...).
normalizirajNaziv("AMOXICILLIN 50,5 mg/ml za pse");
// "amoxicillin 50.5mg/ml pse"razcleniNaziv(naziv: string)
Razčleni ime zdravila na komponente.
razcleniNaziv("BAYTRIL 50 mg/ml za pse in mačke 7tbl");
// {
// izvorni_naziv: "BAYTRIL 50 mg/ml za pse in mačke 7tbl",
// normaliziran_naziv: "baytril 50mg/ml pse mačke 7tbl",
// besede: ["baytril"],
// doze: ["50mg/ml"],
// teza: null,
// kolicina: "7tbl",
// zivalskeVrste: ["pse", "mačke"]
// }oceniPodobnost(razclembaVhoda, razclembaRegistra)
Oceni podobnost med dvema razčlenjenima nazivoma zdravil.
const vhod = razcleniNaziv("baytril 50");
const register = razcleniNaziv("BAYTRIL 50 mg/ml raztopina za injiciranje");
const ocena = oceniPodobnost(vhod, register);
// ocena.ocena = skupna ocena podobnosti
// ocena.ocenaPrvihBesed, ocena.ocenaDoze, ocena.ocenaZivalskihVrst, ...Vakcine
zdraviloJeVakcinaZa(zdravilo, zival)
Preveri, ali je zdravilo vakcina za določeno živalsko vrsto. Vrne seznam bolezni ali false.
const rabisin = registerZdravil.get(123);
const bolezni = zdraviloJeVakcinaZa(rabisin, "psi");
if (bolezni) {
console.log(bolezni); // ["steklina"]
}Podobna zdravila
podobnaZdravilaPoATC(zdravilo, nivo?)
Vrne zdravila z enako ATCvet kodo na danem nivoju. Seznam je urejen po podobnosti z vhodnim zdravilom.
Nivoji ATCvet:
- 1: anatomska glavna skupina
- 2: terapevtska podskupina
- 3: farmakološka podskupina
- 4: kemijska podskupina
- 5: kemijska učinkovina (privzeto)
const zdravilo = registerZdravil.get(123);
const podobna = podobnaZdravilaPoATC(zdravilo, 4);
// Vrne zdravila z enako kemijsko podskupinopodobnaZdravilaPoUcinkovinah(zdravilo)
Vrne zdravila, ki imajo vsaj eno skupno učinkovino. Seznam je urejen po podobnosti.
const baytril = registerZdravil.get(123);
const podobna = podobnaZdravilaPoUcinkovinah(baytril);
// Vrne zdravila z enrofloksacinomATCvet klasifikacija
podatkiATCvetKode(koda: string)
Vrne opise vseh nivojev za dano ATCvet kodo.
podatkiATCvetKode("QJ01CA04");
// [
// { nivo: 0, pomenNivoja: "veterinarska uporaba", opisNivoja: "Veterinarska zdravila" },
// { nivo: 1, pomenNivoja: "anatomska glavna skupina", opisNivoja: "ZDRAVILA ZA SISTEMSKO ZDRAVLJENJE INFEKCIJ" },
// { nivo: 2, pomenNivoja: "terapevtska podskupina", opisNivoja: "ZDRAVILA ZA SISTEMSKO ZDRAVLJENJE BAKTERIJSKIH INFEKCIJ" },
// { nivo: 3, pomenNivoja: "farmakološka podskupina", opisNivoja: "Betalaktamski antibiotiki, penicilini" },
// { nivo: 4, pomenNivoja: "kemijska podskupina", opisNivoja: "Širokospektralni penicilini" },
// { nivo: 5, pomenNivoja: "kemijska učinkovina", opisNivoja: "amoksicilin" }
// ]opisATCvetKode(koda: string)
Vrne opis posamezne ATCvet kode (najvišji nivo).
opisATCvetKode("QJ01CA04");
// { nivo: 5, pomenNivoja: "kemijska učinkovina", opisNivoja: "amoksicilin" }pomeniNivojevATCvet
Seznam pomenov nivojev ATCvet klasifikacije.
// [
// [0, "veterinarska uporaba"],
// [1, "anatomska glavna skupina"],
// [2, "terapevtska podskupina"],
// [3, "farmakološka podskupina"],
// [4, "kemijska podskupina"],
// [5, "kemijska učinkovina"]
// ]Tipi
interface RegZdravilo {
id: number; // ID zdravila (hash imena)
ime: string; // Ime zdravila
imetnikDovoljenja: string; // Imetnik dovoljenja za promet
sproscanjeZdravila: string; // Podatki o sproščanju
stevilkaDovoljenja: string; // Številka dovoljenja za promet
datumVeljavnosti: string | null; // Datum veljavnosti dovoljenja
rezimIzdaje: string; // Režim izdaje (npr. Rp)
atcKoda: string; // ATCvet koda
potiUporabe: PotUporabeZdravila[]; // Poti uporabe
farmacevtskaOblika: string; // Farmacevtska oblika
pakiranja: string; // Opis pakiranj
enotaKolicine: string; // Enota količine za sestavo
ucinkovine: UcinkovinaZdravila[]; // Seznam učinkovin
pomocneSnovi: string[]; // Pomožne snovi
ciljneVrste: string[]; // Ciljne živalske vrste
karence: KarencaZdravila[]; // Karenca po vrstah
vakcinaZa?: string[]; // Če je vakcina, proti čemu varuje
}
interface UganiZdraviloOpts {
limit?: number; // Maksimalno število rezultatov (privzeto 10)
minOcena?: number; // Minimalna ocena podobnosti (privzeto 500)
isciMed?: number[]; // Išči samo med temi ID-ji
}
interface RazclenjeniNaziv {
izvorni_naziv: string;
normaliziran_naziv: string;
besede: string[];
doze: string[];
teza: string | null;
kolicina: string | null;
zivalskeVrste: string[];
}
interface UtemeljitevOcene {
ocena: number;
ocenaPrvihBesed: number;
ocenaVelikosti: number;
ocenaDoze: number;
ocenaZivalskihVrst: number;
ocenaTeze: number;
ocenaKolicine: number;
ocenaBesed: number;
steviloBesed: number;
razclembaRegistra: RazclenjeniNaziv;
}
interface RazlagaATCvetKode {
nivo: number;
pomenNivoja: string;
opisNivoja: string;
}
interface AtcvetRow {
code: string;
level: number;
desc_en: string;
desc_si: string;
}
type RegisterZdravil = Map<number, RegZdravilo>;