Hopp til innhold
Bjarte Flø Lode
English

Tilbake til prosjekter

AvsluttetData og migrering

Migrering til nytt fagsystem

Bytte av fagsystem for rundt 150 ansatte og 60 AFT-deltakere. Jeg hentet ut, renset og overførte det leverandørens konvertering ikke fikk med, og konverterte alle dokumentmalene.

Kontekst
Jobb
Periode
2025
Omfang
~150 ansatte, ~60 deltakere
Kode
Kode i privat repo

Del 1 · For tjenesten

Ett klikk er aldri ett klikk

I 2025 byttet vi fagsystem. Den nye leverandøren hadde gjort konverteringen fra det samme kildesystemet mange ganger før, og konverteringen ble solgt som «ett klikk». Grunninformasjonen kom greit over. Men datamodellene var ulike, og mye av det vi trengte i hverdagen kom ikke med.

Fordi jeg kjenner både arbeidet og dataene, visste jeg hva som manglet og hva det skulle brukes til. Det gjorde det mulig å fylle hullene målrettet, i stedet for å registrere alt på nytt for hånd. Arbeidet var avklart med virksomheten.

Hva som manglet, og hva jeg gjorde

Data Problemet Løsningen
Arbeidspraksiser Annen datamodell, ikke en enkel kobling mellom tabeller Eksport, omforming i pandas og kuratert CSV-import
Pårørende Egne kontaktoppføringer før, to fritekstfelt nå Skript som formaterer til lesbar tekst, også ved flere enn to
Fravær Ikke med i konverteringen Uttrekk fra gammelt system og batch-registrering i nettleseren
Ukeplaner Strukturerte tider per dag og periode før, ett tekstfelt per ukedag nå Sted og tider slått sammen per dag, med periodeoverskrifter og nyeste først
Oppgaver Konverterte oppgaver uten ansvarlig, så ingen fikk dem opp Fant de berørte, erstattet oppgavene med riktige oppgavegrupper og logget unntak
Flere tiltak per person Én rad per tiltak i kilden, én deltaker i det nye systemet Gruppering per person og regler for hvilke datoer, tiltakstype og veileder som gjelder
Dokumentmaler Word-maler, mens det nye systemet bruker HTML Skriptbasert konvertering av alle malene fra docx til HTML

Del 2 · Under panseret

Fire steg

Leverandørens konvertering var utgangspunktet. Jeg beriket den i stedet for å erstatte den.

  1. Målrettede eksporter av det som manglet, fra det gamle systemet.
  2. Rensing og omforming i Python og pandas, fra gammel til ny datamodell.
  3. Kuraterte CSV-importer som beriket oppføringene leverandøren hadde konvertert.
  4. Batch-oppdateringer i nettleseren for det CSV ikke dekket, som fravær og arbeidspraksiser.

Eksempel: pårørende

I det gamle systemet var pårørende egne kontaktoppføringer koblet til personen. I det nye er det to fritekstfelt. Skriptet slo sammen oppføringene til pent formatert tekst, og la ekstra pårørende inn som nye linjer i det andre feltet når kildedataene hadde flere enn to.

Før: kontakt-tabell Etter: fritekstfelt
Kari Nordmann · mor · 900 00 001 Pårørende 1: Kari Nordmann (mor), tlf. 900 00 001
Ola Nordmann · bror · 900 00 002 Pårørende 2: Ola Nordmann (bror), tlf. 900 00 002
Per Hansen · verge · 900 00 003 (ny linje i pårørende 2) Per Hansen (verge), tlf. 900 00 003

Navnene og numrene er eksempeldata.

Slik jobbet jeg

Det CSV-importen ikke dekket, la jeg inn med skript kjørt i nettleseren mens jeg var innlogget. Skriptene gjorde det samme som en bruker gjør ved å klikke og fylle ut skjemaer i webappen, bare automatisert:

  • Egen innlogging og egne tilganger, avklart med virksomheten.
  • De samme skjemaene som i brukergrensesnittet, med appens egen CSRF-beskyttelse.
  • Sikkerhetskopi av eksisterende verdier før hver endring, slik at alt kunne rulles tilbake.
  • Logg over hva som lyktes og hva som feilet, med manuell kontroll av unntakene.

Hva jeg lærte

  • En datamodell er en tolkning. To systemer kan beskrive samme virkelighet helt ulikt.
  • Kjenn dataene. Å vite hva dataene brukes til avgjør hva som må med.
  • Berik, ikke erstatt. Bygg videre på det som fungerer, og fyll hullene målrettet.