Gå til hovedinnhold

Behandle søknader om permisjon

info
  • Ikke validert: Prosessen er ennå ikke validert/standardisert. Siden viser enten: 1) Dokumentasjon av gjeldende praksis; 2) En prosess som er identifisert, men ikke dokumentert. 3) Prosessen er under vurdering.
  • Denne prosessbeskrivelsen er ment som dokumentasjon av gjeldende praksis. Prosessen er ennå ikke standardisert.

Studenter som av ulike årsaker har behov for et opphold i studiet, kan søke om permisjon. FS har ikke støtte til denne prosessen utover at innvilgede permisjoner kan registereres i FS-klienten: Felles studentsystem: Student / Innvilget permisjon

Prosessbeskrivelse fra UiO

Student søker via kryptert nettskjema og får opprettet sak i arkiv. Vedtak om permisjon registreres fortsatt manuelt i FS.

Prosessbeskrivelse fra UiA

Permisjonsperiode registreres av RPA

Juridisk grunnlag

Studenter har rett til permisjon fra studiene etter universitets- og høyskoleloven ved gravididet, fødsel og omsorg for barn §4-3 c og ved gjennomføring av førstegangstjeneste, verv i studentpolitiske organer, og når det foreligger andre særlige grunner [§4-3 d]

API-støtte i FS GraphQL API

Denne prosessen er støttet av FS GraphQL API. Her er et eksempel på hvordan prosessen kan gjennomføres:

funksjonalitet i på eksperimentell/beta-kontrakt

Denne beskrivelsen viser til funksjonalitet som fortsatt er på eksperimentell- og/eller beta-kontrakt. Endringer kan derfor forekomme. Ta kontakt med FS-support dersom du ønsker å ta denne funksjonaliteten i bruk i produksjon.

FS behandler bare innvilgede permisjoner. Vi forutsetter derfor at selve søknaden om permisjon blir registrert og ferdigbehandlet i et eksternt system. Den innvilgede permisjonen kan så registreres i FS.

1 Nødvendige bakgrunnsdata

Det eksterne systemet trenger noen nødvendige bakgrunnsdata for å kunne kommunisere med FS GraphQL API.

Student og studieprogram

For å kunne registrere en søknad om ekstra vurderingsforsøk, trenger du FS-plattformens ID for studenten som har søkt. Hvordan du finner IDen, avhenger av hvordan studenten er identifisert i det systemet der søknaden blir registrert. FS GraphQL API støtter oppslag på studenter på fødselsnummer, personrløpenummer, studentnummer og feide-brukernavn. I dette eksempelet bruker vi feide-brukernavn.

Dersom studenten er registrert med studierett på studieprogrammet, kan du hente ut ID for studieprogrammet samtidig med at du henter ID for studenten. Her henter vi studentens ID, studieprogrammets ID, samt navn på studieprogrammet for eventuell fremvisning i det eksterne systemet for student/og eller saksbehandler. Her har vi også valgt å filtrere studierettene slik at bare aktive og fremtidige studieretter kommer med:

query StudentForFeideBruker {
studenterGittFeideBrukere(
eierInstitusjonsnummer: "1234"
feideBrukere: "14545390087@spusers.feide.no"
) {
id
programStudieretter(aktivStatus: [AKTIV, FREMTIDIG]) {
studieprogram {
id
navnAlleSprak {
nb
nn
en
}
}
}
}
}

Som vi ser, har studenten bare én studierett som samsvarer med søkekriteriet:

{
"data": {
"studenterGittFeideBrukere": [
{
"id": "OTk6MTIzNCw4OTE",
"programStudieretter": [
{
"studieprogram": {
"id": "MTA2OjEyMzQsQU1ILU1VUzE",
"navnAlleSprak": {
"nb": "Bachelorprogram i musikk (avansert)",
"nn": "Bachelorprogram i musikk ",
"en": "Bachelor's Programme in Music"
}
}
}
]
}
]
}
}

Forventet nytt kull og forventet ny klasse

Dersom du ønsker å oppgi forventet nytt kull og forventet ny klasse for studenten etter endt permisjon, må du sjekke hvilke kull og klasser som finnes for dette studieprogrammet. Du kan gjøre dette allerede i den første spørringen ved å utvide studentspørringen over:

query StudentForFeideBruker {
studenterGittFeideBrukere(
eierInstitusjonsnummer: "1234"
feideBrukere: "14545390087@spusers.feide.no"
) {
id
feideBruker
programStudieretter(aktivStatus: [AKTIV, FREMTIDIG]) {
studieprogram {
id
navnAlleSprak {
nb
nn
en
}
kull {
id
navnAlleSprak {
no
en
}
klasser {
id
navnAlleSprak {
und
}
}
}
}
}
}
}

Her ber vi om å få alle kull og klasser for studieprogrammene studenten har studierett på, og vi henter ut navn og ID hvert kull og hver klasse:

{
"data": {
"studenterGittFeideBrukere": [
{
"id": "OTk6MTIzNCw4OTE",
"feideBruker": "14545390087@spusers.feide.no",
"programStudieretter": [
{
"studieprogram": {
"id": "MTA2OjEyMzQsQU1ILU1VUzE",
"navnAlleSprak": {
"nb": "Bachelorprogram i musikk (avansert)",
"nn": "Bachelorprogram i musikk ",
"en": "Bachelor's Programme in Music"
},
"kull": [
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDExLEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2011-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDEzLEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2013-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDE0LEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2014-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDIxLEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2021-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDEwLEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2010-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDE2LEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2016-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDE1LEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2016-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDE3LEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2017-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDIyLEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2022-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDE4LEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2018-HØST",
"en": null
},
"klasser": []
}
]
}
}
]
}
]
}
}

Her ser vi at ingen av de etterspurte kullene har klasser. Det er ikke uvanlig, da bruken av klasser varierer fra institusjon til institusjon og fra studieprogram til studieprogram.

Dersom du ikke har behov for disse dataene samtidig som du henter studenten, kan du bruke studieprogramIden til å hente kull og klasser via studieprogramspørringen når du får behov for det slik:

query KullOgKlasserForStudieprogram {
node(id: "MTA2OjEyMzQsQU1ILU1VUzE") {
... on Studieprogram {
id
kull {
id
navnAlleSprak {
no
en
}
klasser {
id
navnAlleSprak {
und
}
}
}
}
}
}

Her har vi hentet de samme dataene som i det forrige eksempelet:

{
"data": {
"node": {
"id": "MTA2OjEyMzQsQU1ILU1VUzE",
"kull": [
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDIxLEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2021-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDI0LFbDhVI",
"navnAlleSprak": {
"no": "Våren 2024",
"en": "Spring 2024"
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDI0LEjDmFNU",
"navnAlleSprak": {
"no": "Høsten 2024",
"en": "Høsten 2024"
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDEwLEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2010-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDE2LEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2016-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDE1LEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2016-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDE3LEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2017-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDIyLEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2022-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDE4LEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2018-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDExLEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2011-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDEzLEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2013-HØST",
"en": null
},
"klasser": []
},
{
"id": "NTg6MTIzNCxBTUgtTVVTMSwyMDE0LEjDmFNU",
"navnAlleSprak": {
"no": "Studiekull 2014-HØST",
"en": null
},
"klasser": []
}
]
}
}
}

Vi noterer oss IDen for kullet "Høsten 2024", som vi skal bruke videre.

Fraværsårsaker

Det er mulig å registrere årsak til fraværet samtidig med at du registrerer permisjonen. Dette gjør du slik:

query HentFravaersarsaker {
fravarsarsaker(eierInstitusjonsnummer: "1234") {
edges {
node {
id
navnAlleSprak {
und
}
}
}
}
}

Her får du følgende respons:

{
"data": {
"fravarsarsaker": {
"edges": [
{
"node": {
"id": "MTYzOjEyMzQsQU5ORU4",
"navnAlleSprak": {
"und": "Annen årsak"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsQVJCRUlERkFH",
"navnAlleSprak": {
"und": "Arbeid av faglige årsaker"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsQVJCRUlEw5hL",
"navnAlleSprak": {
"und": "Arbeid av økonomiske årsaker"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsQkFSTg",
"navnAlleSprak": {
"und": "Barnepass"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsQkFSTiA",
"navnAlleSprak": {
"und": "Barnepass"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsRk9SU0tOUEVSTQ",
"navnAlleSprak": {
"und": "Forskningspermisjon"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsRsOYRFNFTA",
"navnAlleSprak": {
"und": "Fødsel"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsR0xFTVQ",
"navnAlleSprak": {
"und": "Glemt å betale semesteravgift"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsTUlMU0lW",
"navnAlleSprak": {
"und": "Militærtjeneste/Sivilarbeidstjeneste"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsT01TVEFSVA",
"navnAlleSprak": {
"und": "Sluttet å studere tidligere"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsU0lSS0VM",
"navnAlleSprak": {
"und": "Fulgt underv. ved en universitetssirkel"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsU1RVRERPSw",
"navnAlleSprak": {
"und": "Studier andre norske l.steder"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsU1RVRFVET0s",
"navnAlleSprak": {
"und": "Studier andre norske l.steder"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsU1RVRFVUTA",
"navnAlleSprak": {
"und": "Studier i utlandet"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsU1lLRE9N",
"navnAlleSprak": {
"und": "Sykdom (egen eller i familien)"
}
}
},
{
"node": {
"id": "MTYzOjEyMzQsVUtKRU5U",
"navnAlleSprak": {
"und": "Ukjent fraværsårsak"
}
}
}
]
}
}
}

I dette tilfellet velger vi oss IDen for "Studier i utlandet", som vi skal bruke videre.

2 Registrer permisjonen

For å registrere permisjonen, bruker du mutasjonen registrerPermisjonForStudenter:

mutation RegistrerPermisjon {
registrerPermisjonForStudenter(
input: {
studentVedInstitusjonId: "OTk6MTIzNCw4OTE",
studieprogramId: "MTA2OjEyMzQsQU1ILU1VUzE",
fraDato: "2024-01-01",
tilDato: "2024-06-30",
permisjonsprosent: 100,
forventetNyttKullId: "NTg6MTIzNCxBTUgtTVVTMSwyMDI0LEjDmFNU",
fravarsarsakId: "MTYzOjEyMzQsU1RVRFVUTA",
journalnummer: "23/0202114",
merknadUnd: "Registrert via FS GraphQL API"
}
) {
errors {
... on UgyldigInput {
__typename
message
path
}
... on UgyldigPermisjonsperiode {
__typename
message
path
}
}
permisjoner {
id
}
}
}

I dette tilfellet velger vi å bare få tilbake IDen til den opprettede permisjonen, men vi kunne også tatt med oss andre data dersom vi hadde ønsket det. Vi ber om å få tilbake feilmeldingene UgyldigInput og UgyldigPermisjonsperiodeForPhdStudenterError tilbake dersom de oppstår. Responsen ser slik ut:

{
"data": {
"registrerPermisjonForStudenter": {
"errors": null,
"permisjoner": [
{
"id": "MTYyOjEyMzQsQU1ILU1VUzEsODkxLDIwMjQtMDEtMDE"
}
]
}
}
}

3 Vedlikeholde eksisterende permisjoner

I noen tilfeller kan det være nødvendig å endre på en tidligere registrert permisjon. Til dette formålet kan vi bruke mutasjonen endrePermisjoner. I dette tilfellet ønsker vi å avslutte permisjonen en måned tidligere enn planlagt:

mutation EndrePermisjon {
endrePermisjoner(
input: {
id: "MTYyOjEyMzQsQU1ILU1VUzEsODkxLDIwMjQtMDEtMDE",
tilDato: "2024-05-31",
merknadUnd: "Avslutter permisjonen en måned tidligere enn planlagt"
}
) {
permisjoner {
id
}
errors {
... on UgyldigPermisjonsperiode {
__typename
message
path
}
... on UgyldigInput {
__typename
message
path
}
}
}
}

Vi får følgende respons:

{
"data": {
"endrePermisjoner": {
"permisjoner": [
{
"id": "MTYyOjEyMzQsQU1ILU1VUzEsODkxLDIwMjQtMDEtMDE"
}
],
"errors": null
}
}
}

Hvis man har feilregistrert en permisjon i FS, er det mulig å slette den igjen. Da bruker du mutasjonen slettPermisjoner. Vi bruker IDen vi fikk tilbake da vi opprettet permisjonen til å identifisere permisjonen som skal slettes:

mutation MyMutation {
slettPermisjoner(input: {id: "MTYyOjEyMzQsQU1ILU1VUzEsODkxLDIwMjQtMDEtMDE"}) {
errors {
... on UgyldigInput {
__typename
message
path
}
}
ider
}
}

Vi ber om å få tilbake feilmeldinger som kan oppstå, og ID for den slettede permisjonen. Responsen blir slik:

{
"data": {
"slettPermisjoner": {
"errors": null,
"ider": [
"MTYyOjEyMzQsQU1ILU1VUzEsODkxLDIwMjQtMDEtMDE"
]
}
}
}