Opgradering af en app til overvågning af strålingseksponering

Innowise har opgraderet en app til overvågning af strålingseksponering, hvilket har forbedret responstiden med 3,3 gange og lagt grunden til en opskalering af softwarefunktionaliteten.

Kunde

Industri
Sundhedspleje
Region
EU
Kunde siden
2024

Vores kunde er en europæisk konsulent- og teknologivirksomhed med speciale i strålebeskyttelse, kvalitets- og sikkerhedsstyring. Virksomheden støtter virksomheder i sundheds-, transport- og energiindustrien og hjælper dem med at overholde regionale regler for strålebeskyttelse og internationale standarder, herunder ISO 9001, ISO 14001 og ISO 19443.

Et af deres flagskibsprodukter, en omfattende SaaS-platform, bruges dagligt af over 200 virksomheder til at overvåge personalets strålingseksponering og sundhedstilstand. Webappen har til formål at forbedre medarbejdernes sikkerhed og trivsel og giver mulighed for at beregne strålingseksponeringsniveauer baseret på manuel indtastning af dosimetridata. Appen indeholder også overvågning af medarbejdernes sundhedsdata, personlige sundhedstjek og proaktiv medicinsk risikovurdering for dem, der arbejder i potentielt farlige miljøer.

Detaljerede oplysninger om klienten kan ikke videregives i henhold til bestemmelserne i NDA.

Udfordring

Dybtliggende app-problemer hindrer virksomhedens vækst

Applikationen til overvågning af strålingseksponering har allerede været på markedet i mere end 10 år, men kodebasen havde ikke gennemgået nogen væsentlige opdateringer eller omskrivninger i den periode. Efterhånden som kundens forretning voksede, voksede også behovet for en mere robust og skalerbar løsning.

De ønskede at modernisere softwaren, rette fejl og løse flere systemiske problemer, der havde påvirket ydeevnen og den generelle brugervenlighed:

  • Utilstrækkelig ydeevne. Applikationen blev betydeligt langsommere, når flere slutkunder sendte forespørgsler samtidig, hvilket nogle gange resulterede i ventetider på over 500 ms og efterlod brugerne frustrerede. Da kunden havde planer om at udvide forretningen og forventede, at brugerbasen ville vokse, var det tydeligt ud fra præstationsmålingerne, at appen ikke kunne håndtere den øgede belastning.
  • Begrænsede muligheder. I løbet af årene indså kunden, at appen manglede flere vigtige funktioner, der var nødvendige for bedre at kunne opfylde kundernes krav. De ønskede at udvide løsningen til overvågning af strålingseksponering med ny, avanceret funktionalitet.
  • Dårlig applikationsarkitektur. Den oprindelige arkitektur var ikke designet med skalerbarhed for øje, så kunden var bekymret for, at den ikke kunne rumme yderligere vækst.
  • Fragmenteret dokumentation. En stor del af appens dokumentation var enten forældet eller ufuldstændig. For at strømline app-opgraderinger og onboarding af nye brugere havde kunden brug for at afspejle alle aspekter af den eksisterende løsning i en grundig projektdokumentation.
På det tidspunkt blev appen til overvågning af strålingseksponering vedligeholdt af et outsourcet team, som ikke kunne løse disse problemer hurtigt nok. Så kunden var på udkig efter en erfaren sundhedspersonale Partner til softwareudvikling til at overtage fornyelsen af applikationen til overvågning af strålingseksponering.

Løsning

Dybdegående app-revision, modernisering og refaktorering

Innowise's team begyndte projektet med en dybdegående revision af appen til overvågning af strålingseksponering for at forstå de grundlæggende årsager til de problemer, der påvirker systemet. Her er, hvad vi fandt:
  • Forældet teknologi. Appen brugte ældre versioner af programmeringssprog, herunder Node.js og Angular.js, samt forskellige versioner af sprog i hele appen.
  • Ineffektive SQL-forespørgsler. Der var en række anti-mønstre i den måde, SQL-forespørgsler blev skrevet på, som bidrog til dårlig applikationsydelse.
  • Problemer med versionsstyring. Programmet led under en ineffektiv praksis for softwareversionskontrol med forældede filer, tredjepartsplugins og eksekverbare filer, der var gemt under kildekontrol.
  • Uorganiserede arkiver. Strukturen i arkiverne og projekterne var ikke intuitiv, hvilket gjorde det svært at navigere og administrere kodebasen.
  • Manuel udrulning. Applikationen blev implementeret manuelt uden en CI/CD-pipeline, hvilket øgede forretningsrisikoen og førte til potentielle menneskelige fejl.
  • Ingen backup- eller gendannelsesmekanismer. Der var ingen mekanismer på plads til at sikkerhedskopiere applikationsdata eller gendanne appen, hvis noget gik galt.

På baggrund af revisionsresultaterne udarbejdede Innowise's projektteam en klar køreplan for de forbedringer, der var afgørende for stabiliteten, ydeevnen og skalerbarheden af appen til overvågning af strålingseksponering. Efter at kunden havde givet grønt lys for vores plan, gik vi i gang med de løbende forbedringer. 

Kunden ønskede, at app-udviklingen skulle ske så gnidningsløst som muligt, så vi gjorde ændringerne usynlige for slutbrugerne og sikrede, at der ikke var nogen afbrydelser i forretningen. På bare 3 måneder indførte Innowise's team følgende ændringer i applikationen til overvågning af strålingseksponering.

Containerisering af applikationer

For at øge ydeevnen og understøtte fremtidige skaleringsbehov opdelte vi applikationen i flere nøglekomponenter: frontend, backend, rapporteringsmoduler, lognings- og overvågningsmodul og database. Derefter containeriserede vores team hver komponent og migrerede dem til separate virtuelle maskiner. Disse ændringer understøttede den voksende arbejdsbyrde, som kunden forventede.

Modernisering af teknisk stak

Vi opgraderede appens tekniske stak ved at opdatere forældede frameworks og værktøjer, løse fejl og sikre, at systemet kunne understøtte fremtidige forbedringer. Det gav applikationen et tiltrængt løft i ydeevne og vedligeholdelsesevne.

Refaktorering af databaser

Innowise's team refactorerede app-databasen til overvågning af strålingseksponering ved at forbedre databaseforespørgsler, tilføje indekser og indføre fremmednøgler. Vores omfattende tilgang øgede databasens ydeevne 1,5-3 gange efter refaktoriseringen.

Implementering af CI/CD-pipeline

Vi indførte en kontinuerlig integrations- og udrulningspipeline (CI/CD) for at erstatte den manuelle udrulningsproces. Med denne nye tilgang automatiserede vores team udrulningsprocessen og sikrede hurtigere og mere pålidelige opdateringer. Vi implementerede også systemlogning og -overvågning ved hjælp af Prometheus og Grafana for at spore og visualisere systemets ydeevne og problemer i realtid.

Sikkerhedskopier og disaster recovery

Innowise's team brugte Infrastructure as Code (IaC) til katastrofegendannelse, hvilket betyder, at hele appen nu kan genindsættes i et nyt miljø på bare 15 minutter. Vi oprettede også robuste backup-procedurer for at sikre, at dataene er sikre og hurtigt kan gendannes, hvis det bliver nødvendigt.

Dokumentation for ansøgning

Sideløbende med refaktoriseringen arbejdede Innowise's team omhyggeligt med at skabe dokumentation for appen til overvågning af strålingseksponering, herunder alle ændringer i arkitekturen og systemet.

Kommende udvikling og redesign af brugergrænsefladen

Efter at vi havde lagt grunden til udviklingen af en app til overvågning af strålingseksponering, gik vi videre til udvikling af funktioner og redesign af brugergrænsefladen. Her er de fremtidige forbedringer, som vores team allerede har planlagt:
  • Forbedringer af rapporteringen. Vi vil forbedre rapporteringsfunktionerne, tilføje nye typer af lægeundersøgelser og indføre flere rapportformater.
  • Redesign af brugergrænseflade. Vi vil redesign af brugergrænsefladen at være mere intuitiv og tilpasse sig forskellige enheder og skærmstørrelser, hvilket giver en bedre slutbrugeroplevelse
  • Yderligere forbedringer af arkitekturen. Baseret på data og præstationsmålinger vil Innowise fortsætte med at forbedre appens arkitektur for at sikre, at den kan skaleres effektivt.

Teknologier

Frontend

Angular

Backend

Node.js, WinDev

Cloud

OVHcloud

Database

MySQL

DevOps

Terraform, Bitbucket, Grafana, Prometheus, Docker, Docker Compose

Proces

Da kunden ønskede fleksibilitet i projektets omfang, blev vi enige om en Time & Material-prismodel, hvilket betyder, at vi estimerede projekttimerne på forhånd, men kun opkrævede kunden for de faktisk brugte timer. Når kunden havde brug for at udvide projektets omfang, leverede vores projektleder yderligere beregninger, så kunden nemt kunne spore udgifterne og projektets fremskridt.

Vi anvendte en iterativ projektstyringsmetode, hvor vi opdelte projektet i sprints og definerede klare milepæle for hver fase. Hver uge holdt vores projektteam møder med kundens interessenter for at dele fremskridt og resultater, hvilket forbedrede den overordnede teamtilpasning.

Hold

1

Projektleder

1

Leder af levering

1

Forretningsanalytiker

1

Løsningsarkitekt

1

Backend-udvikler

1

Front-end udvikler

1

DevOps Engineer

1

QA Engineer

1

Penetrationstestning Engineer

Resultater

Bedre ydeevne og robust app-arkitektur

Nu, kun tre måneder efter, har kunden en meget mere robust, skalerbar og vedligeholdelsesvenlig applikation til overvågning af strålingseksponering. Vi har med succes moderniseret softwareinfrastrukturen, løst problemer med ydeevnen og sikret, at arkitekturen kan håndtere fremtidig vækst. Innowise's team har også lagt en klar køreplan for kommende udvikling af funktioner og systemforbedringer, som vil bidrage til at forbedre brugeroplevelsen og driftseffektiviteten yderligere.

I løbet af de næste par måneder vil vores team udføre de planlagte opgraderinger for at hjælpe kunden med at opfylde de skiftende brugerbehov.

Projektets varighed
  • December 2024 - Løbende

3.3

gange hurtigere app-responstid

1.5-3

gange bedre databaseydelse

    Kontakt os

    Book et opkald eller udfyld formularen nedenfor, så vender vi tilbage til dig, når vi har behandlet din anmodning.

    Send os en talebesked
    Vedhæft dokumenter
    Upload fil

    Du kan vedhæfte 1 fil på op til 2 MB. Gyldige filformater: pdf, jpg, jpeg, png.

    Ved at klikke på Send accepterer du, at Innowise behandler dine personlige data i henhold til vores Politik for beskyttelse af personlige oplysninger for at give dig relevante oplysninger. Ved at indsende dit telefonnummer accepterer du, at vi kan kontakte dig via taleopkald, sms og beskedapps. Opkalds-, besked- og datatakster kan være gældende.

    Du kan også sende os din anmodning
    til contact@innowise.com

    Hvad sker der nu?

    1

    Når vi har modtaget og behandlet din anmodning, vender vi tilbage til dig for at beskrive dine projektbehov og underskriver en NDA for at sikre fortrolighed.

    2

    Når vi har undersøgt dine ønsker, behov og forventninger, udarbejder vores team et projektforslag med forslag med arbejdets omfang, teamstørrelse, tids- og omkostningsoverslag.

    3

    Vi arrangerer et møde med dig for at diskutere tilbuddet og få detaljerne på plads.

    4

    Til sidst underskriver vi en kontrakt og begynder at arbejde på dit projekt med det samme.

    pil