Giter VIP home page Giter VIP logo

sveder's People

Contributors

glusk avatar

Watchers

 avatar

sveder's Issues

Dodaj nov razred "Šifra"

Čeprav so šifre v preglednicah: <ImeZavoda>UrnCD.xlsx tipično cela števila, se lahko nekdo zatipka ali pa namerno (lahko da je tak dogovor znotraj zavoda) vnese niz.

Dodaj razred Sifra, ki bo znal prebrati šifro kot niz ali kot numerično vrednost. Primerjava šifer naj bo odslej primerjava nizov. Popravi tudi kodo tako, da vsepovsod, kjer pričakujemo šifro tipa Number, odslej lahko podamo tip Sifra.

Napaka v dokumentaciji

Popravi tudi imena testnih datotek da bodo bolj dosledna in natančneje odsevala vsebino.

Dokumentiraj paket iskanje

Povej, da lahko ordinacije vedno filtriramo ročno, da pa je smiselno zapakirati nekatere poizvedbe (tiste, za katere predvidevamo, da bodo pogoste) v svoj razred.

Odstrani razred UrlOvoj

Razreda UrlOvoj v resnici sploh ne potrebujemo. Vsepovsod, kjer se pojavi, ga lahko nadomestimo z:

() -> new URL(/* url niz */)

IndexOutOfBoundsException - napaka pri branju URL-ja preglednice zavoda

Spletna stran zavoda, ki ne objavi preglednice lahko vrne:

V slednjem primeru se torej lahko zgodi, da bomo iskali ujemanje URL-ja preglednice z regularnim izrazom na spletni strani, ki ne vsebuje URL-ja preglednice. new RegularniIzraz(/**/).ujemanja().get() v tem primeru vrže IndexOutOfBoundsException.

Popravi teste za ZdravstveniZavod

Datoteka: TestZdravstveniZavod.java...

Tole ni v redu, ker se ob vsakem poganjanju testa odpremo TCP povezavo do ZZZZS strežnika. Sploh pa je vsa logika, ki se tu testira, že testirana v TestUrlNaStrani.java.

// ....
@Test
public void vrnePreglednicoZavodaZgrajenegaIzZzzsStevilke() {
    assertDoesNotThrow(() ->
        new ZdravstveniZavod(6189896).preglednica()
    );
}

Dodaj:

// .... 
@Test
public void neMeceIzjemeCeNeNajdeStraniSPreglednico() {
    assertDoesNotThrow(() ->
        new ZdravstveniZavod(() -> new FileNotFoundException()).preglednica()
    );
}

najdeZdravnikaVPreglednici() - ta test ni potreben.

Pripravi knjižnico za iskanje in izpis osnove strukture

Za dano:

  • šifro zdravnika
  • šifro dejavnosti

vrni:

{
  "ordinacija": {
    "id_izvajalec": "number",
    "zdravnik": {
      "id_zdravnik": "number",
      "ime_priimek": "string"
    },
    "id_dejavnost": "number",
    "doseganje_povprecja": "number",
  }
}

Preuredi API

Podatki, ki jih želimo izluščiti, so razpršeni po več različnih mestih. Iz nobenega posameznega vira ne dobimo vseh podatkov, ki bi si jih želeli.

V paketu com.github.glusk.sveder je preveč tipov. Vse kar v resnici potrebujemo je en tip, ki naj ima metodo json().

Namesto da poskušamo zgraditi drevesno strukturo različnih tipov, ki so definirani v paketu com.github.glusk.sveder, raje definirajmo posamezne preslikave. Na ta način razbijemo naš "scraper" na manjše kose, katere lahko enostavneje testiramo in vzdržujemo.

Preslikave

P1

Vhod

Seznam aktivnih zobzdravnikov (ZOB_dd_mm_yyyy.xls)

Izhod

{
  "ordinacija": {
    "sifra_izvajalca": "string",
    "zdravnik": {
      "sifra": "string",
      "ime_priimek": "string"
    },
    "dejavnost": {
      "sifra": "string",
      "naziv": "string"
    },
    "doseganje_povprecja": "number"
  },
  // ...
}

P2

Vhod

Šifra izvajalca, šifra dejavnosti, šifra zdravnika, šifra lokacije
Šifra izvajalca -> seznam zavodov
Vsaj en zavod (tipično, a ne vedno :/) objavi preglednico <Ime_zavoda>UrnČD.xlsx. V njej so podatki o urnikih
ordinacij na posamezni lokaciji.

Izhod

"urnik": {
  "razpored": [
    {
      "dan": "pon",
      "od": "string",
      "do": "string"
    },
    {
      "dan": "tor",
      "od": "string",
      "do": "string"
    },
    {
      "dan": "sre",
      "od": "string",
      "do": "string"
    },
    {
      "dan": "cet",
      "od": "string",
      "do": "string"
    },
    {
      "dan": "pet",
      "od": "string",
      "do": "string"
    },
    {
      "dan": "sob",
      "od": "string",
      "do": "string"
    },
  ],
  "opombe": "string"
}

Izvajalci, ki ne objavljajo preglednic zavoda v standardnem formatu

Izvajalec Link do seznama zavodov Format objave podatkov o zavodu
3401 api.zzzs.si/...3401... Excel preglednica tip 2
3481 api.zzzs.si/...3481... Excel preglednica tip 2
3521 api.zzzs.si/...3521... Excel preglednica tip 2
3561 api.zzzs.si/...3561... Excel preglednica tip 2
7883 api.zzzs.si/...7883... Wordow dokument

Sveder trenutno ne podpira avtomatskega branja podatkov o lokacijah zobozdravnikov, ki so zaposleni pri gornjih izvajalcih!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.