Integraation helpottamiseksi useisiin Vardan tietoihin on mahdollista viitata lähdejärjestelmän ja tunnisteen avulla. Tämän mekanismin avulla lähdejärjestelmän ei välttämättä tarvitse pitää kirjaa Vardan sisäisistä ID:stä ja viittaukset voi hoitaa lähdejärjestelmän käyttämillä tunnisteilla.
Jokaisella lähdejärjestelmällä on oma lähdejärjestelmäkoodi, jota tulisi käyttää tietojen siirrossa. Lähdejärjestelmät ovat näkyvissä Vardan julkisella sivulla: https://virkailija.opintopolku.fi/varda/julkinen/koodistot/vardalahdejarjestelma.
Lähdejärjestelmä on tuetuissa tietosisällöissä pakollinen tieto, kun taas tunnisteen voi tallentaa vapaaehtoisesti.
Seuraavat tietosisällöt tukevat lähdejärjestelmää ja tunnistetta:
- Toimipaikka
- Toiminnallinen painotus
- Kielipainotus
- Lapsi
- Varhaiskasvatuspäätös
- Varhaiskasvatussuhde
- Maksutieto
- Työntekijä
- Palvelussuhde
- Työskentelypaikka
- Pidempi poissaolo
- Täydennyskoulutus
- Vuokrattu henkilöstö
Tunnisteen rajoitukset
Tunnisteeseen kohdistuu seuraavat rajoitukset:
- Tunnisteen on oltava merkkijono
- Maksimipituus 120 merkkiä
- Voi sisältää isoja ja pieniä kirjaimia (a-z), numeroita, pisteitä ., väliviivoja - ja alaviivoja _
- Ei voi olla henkilötunnus
Tietojen haku
Objekteja voi hakea Vardan rajapinnasta käyttämällä lähdejärjestelmä:tunniste-paria.
Esimerkiksi, lapsi tallennetaan seuraavasti:
{
"vakatoimija_oid": "1.2.246.562.10.34683023489",
"henkilo_oid": "1.2.246.562.24.47279942111",
"lahdejarjestelma": "1",
"tunniste": "tunniste"
}
Rajapinnan vastauksessa lapsi on saanut ID:n 1.
Luotuun lapseen voi kohdistaa GET-, PUT-, PATCH- ja DELETE-kutsuja joko käyttäen ID:tä tai lähdejärjestelmän ja tunnisteen yhdistelmää:
- /api/v1/lapset/1/
- /api/v1/lapset/1:tunniste/
Tietojen tallennus
Tietoja tallennettaessa on mahdollista URL-muotoisen suoran linkin sijaan viitata objektiin käyttäen sen tunnistetta. Tässä tapauksessa viitatun objektin täytyy olla tallennettu käyttäen samaa lähdejärjestelmäkoodia, kuin luotava objekti.
Esimerkiksi lapsi tallennetaan seuraavasti:
{
"vakatoimija_oid": "1.2.246.562.10.34683023489",
"henkilo_oid": "1.2.246.562.24.47279942111",
"lahdejarjestelma": "1",
"tunniste": "lapsi-tunniste"
}
Lapsen varhaiskasvatuspäätöksen voi tallentaa seuraavasti:
{
"lapsi_tunniste": "lapsi-tunniste",
"tuntimaara_viikossa": "37.5",
"jarjestamismuoto_koodi": "jm01",
"hakemus_pvm": "2021-01-02",
"alkamis_pvm": "2021-01-02",
"tilapainen_vaka_kytkin": false,
"vuorohoito_kytkin": false,
"paivittainen_vaka_kytkin": true,
"kokopaivainen_vaka_kytkin": true,
"lahdejarjestelma": "1",
"tunniste": "paatos-tunniste"
}
Varhaiskasvatuspäätökseen liittyvän varhaiskasvatussuhteen voi tallentaa seuraavasti:
{
"varhaiskasvatuspaatos_tunniste": "paatos-tunniste",
"toimipaikka_oid": "1.2.246.562.10.9395737548810",
"alkamis_pvm": "2021-01-02",
"lahdejarjestelma": "1"
}
Tietoja ei voi tallentaa käyttäen ristiin eri lähdejärjestelmiä.
Esimerkiksi lapsi tallennetaan seuraavasti:
{
...
"lahdejarjestelma": "1",
"tunniste": "lapsi-tunniste"
}
Varhaiskasvatuspäätöstä yritetään tallentaa seuraavasti:
{
...
"lapsi_tunniste": "lapsi-tunniste",
"lahdejarjestelma": "2",
"tunniste": "paatos-tunniste"
}
Tallennus epäonnistuu, koska lasta ei löydy lähdejärjestelmäkoodilla 2 (tallennettu koodilla 1).