npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

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.

Namestitev

npm install cry-vetzdravila
# ali
bun add cry-vetzdravila

Nadgradnja

bun run update
bun run test
bun run build

Interaktivno iskanje

bun run interactive

Ukazi:

  • 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 podskupino

podobnaZdravilaPoUcinkovinah(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 enrofloksacinom

ATCvet 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>;

Licenca

CC-BY-NC-ND-4.0