Produktopdateringer

Release Notes — 26. april 2026

Bartłomiej Głowacki · CAIO, AI & R&D-ansvarlig
Release Notes — 26. april 2026

For 19 dage siden lancerede vi en stor udgivelse med diagnosemodulet og prosodianalyse. Siden da har teamet skubbet yderligere 295 ændringer — og de er ikke små. I denne udgivelse kan du optage en ad hoc-session, før patienten overhovedet ankommer, dine notater fletter med AI-arbejde og transskription side om side i tre kolonner, den offentlige terapeutprofil er tilbage med fuld styrke, og mobilappen har nu et mørkt tema. Under motorhjelmen har vi gennemgået en SOC 2/HIPAA-hærdning, en DDD-revision og fuld pseudonymisering af patientdata på AI-siden.

💚 Tak til teamet, der drev denne udgivelse frem — gennem rapporter, tests, kode og tålmodighed:

  • Bohdan — ad hoc-sessioner, pakkegrænser og henstandsperiode, DDD-revision, KSeF-fakturaer, snesevis af rettelser (SCRUM-756, 815, 1267, 1268, 1276, 1280-1290, 1293, 1309-1316, 1353-1357, 1366, 1388, 1391, 1392)
  • Bartek — 3-vejs-flet, 9 separate KAT-analyser, kognitive forvrængninger, pakkesessionstæller (SCRUM-1266, 1320, 1338, 1368-1375, 1385, 1386)
  • Ewa Cylwik / Ewa — Beck-PDF, anden AITS-session for samme patient, mørkt tema på mobil og tom tilstand, flersproget udsendelse, UI-farver, unikhed af patient-e-mail (SCRUM-883, 898, 902, 1089, 1094, 1297, 1304, 1307, 1319)
  • Joanna — tilbagevendende kalender, skjul Zoom, rettidig aflysning, selvrefleksion i stedet for vurdering af sessionskvalitet (SCRUM-789, 874, 918, 919, 1005)
  • Plus Bartlomiej for kognitive forvrængninger og sessionstælleren, som blev grundlaget for den nye abonnementsmodel

1. ⚡ Ad hoc-sessioner — optag før patienten ankommer

Hvis du nogensinde har skullet tænde en optager i en fart — fordi en patient dukkede uanmeldt op, fordi det er en engangskonsultation, fordi det er et møde med nogen, der endnu ikke er i dine journaler — så løser det nye ad hoc-sessionsmodul hele det problem.

  • Hurtig optageknap i webdashboardet, i PWA’en på telefonen og i MAUI-appen — ét klik starter optagelsen, før du overhovedet har udfyldt patientens data
  • Ad hoc-indbakke — en dedikeret bakke til utildelte optagelser, indtil du beslutter, hvor de skal hen
  • AssignPatientModal — tildel optagelsen til en eksisterende patient eller opret en ny direkte fra indbakken
  • Genoptag / gå ind i rummet igen — afslut optagelsen af en session, du startede tidligere
  • Efterladt bevaring + auto-afslutning — sessioner, der ikke er tildelt i X dage, lukkes automatisk, så indbakken holdes ryddelig
  • Video “Start uden patient” — i LiveKit-rummet kan du starte en session uden at kollidere med en eksisterende patient; ad hoc-sessionen lander bagefter i indbakken

Sektionen er spærret bag PromptyAI-koden i Indstillinger — slået fra som standard, til brugere der først vil se resten. Designet og leveret af Bohdan.

2. 📊 Pakkegrænser og henstandsperiode — gennemsigtigt abonnement

Abonnementerne har fået en fuld overhaling. De gamle Starter/Standard-planer er deaktiveret, erstattet af Start / Practice / Pro — dimensioneret efter det faktiske sessionsvolumen per måned.

  • Sessionstæller på dashboardet — se hvor mange sessioner du har brugt denne måned, og hvor mange der er tilbage i din pakke
  • Grænse-e-mails — automatiske notifikationer ved 80% og 100% forbrug
  • Opgraderingsprompt — når du rammer grænsen, får du et blidt forslag om planskift i stedet for en hård blokering
  • Priser fra Stripe + rabatter — prisen du ser i appen kommer direkte fra Stripe med aktive rabatter anvendt (betatester-koden udløber ikke)
  • Native opsigelse af abonnement — opsig direkte i appen, ingen grund til at maile support
  • 14 dages henstandsperiode — hvis en betaling mislykkes, får du 14 dage med adgang kun til din egen konto (ingen patientforhåndsvisninger), med e-mails på T+0 og T+13. Reelt datatab indtræder først efter to uger
  • Abonnementsbanner — ren besked øverst i appen uden tom bjælke mellem menuen og advarslen
  • Sessionsgrænse-simulator — i PromptyAI-panelet er der en testtilstand, hvor du kan se, hvordan appen opfører sig ved en fuld pakke

Fælles arbejde af Bartlomiej (tæller og grænser, SCRUM-1266) og Bohdan (abonnement, henstand, opgraderingsprompt — SCRUM-756, SCRUM-1366, SCRUM-1391, SCRUM-1392).

3. 📝 3-vejs-flet af notater — terapeut, AI og transskription i én visning

Dette er en af de største arkitektoniske ændringer under motorhjelmen, men effekten på det daglige arbejde er meget synlig: hvert notatfelt (Notater, Sessionsresumé, konceptualiseringsafsnit) husker nu separat, hvad terapeuten skrev, hvad AI genererede, og hvad der kom fra diktafonen/transskriptionen.

  • Notater 3-vejs — notatvisningen viser tre kilder side om side: din tekst, AI-forslag og automatisk transskription, og du vælger, hvad der skal beholdes
  • Sessionsresumé 2-vejs + JSON-flet — i sessionsresuméet fletter du dit eget arbejde med AI-analysen til ét sammenhængende dokument
  • Tidsstempel-separator — når du redigerer et AI-felt manuelt, efterlader systemet et synligt spor af hvornår og hvis fragment det er
  • [AI]-mærkat fra første generering — dine felter blandes ikke sammen med genererede felter
  • SourceBadge — farverig pille med et ikon, der viser, hvor et fragment kommer fra, i stedet for tekst med STORE BOGSTAVER
  • Erstatning af AI-afsnit i stedet for at tilføje — når du beder om regenerering af resuméet, erstatter AI afsnittet i stedet for at lægge endnu en kopi nedenunder

Designet og leveret af Bartek (SCRUM-1320, SCRUM-1368-1375). Under motorhjelmen: fuld i18n på 8 sprog og nye DDD-kontekster.

4. 🔍 KAT-analyser — 9 separate rapporter efter behov

Den gamle monolitiske “generér KAT-analyse” er blevet opdelt i 9 separate elementer, som terapeuten kører, når de reelt har brug for dem. Mindre ventetid, mere kontrol.

  • 9 uafhængige analyser — hver genereret separat, efter behov
  • Prompt-redigeringstandhjul — klik på tandhjulet ved siden af hver analyse for at se/ændre den prompt, AI vil bruge
  • Sektionen KAT-ANALYSER bag PromptyAI-koden — sektionen er tilgængelig, når koden indtastes i Indstillinger, til brugere der tester nye funktioner

Kognitive forvrængninger har fået deres egen visning (indrapporteret af Bartlomiej, SCRUM-1385):

  • Datavisning i stedet for en AI-rapport — du ser konkrete citater fra transskriptionen mærket af AI, ikke en narrativ tekst genereret ud fra dem
  • Alle citater efter udvidelse — intet datointervalfilter, udvidelse afslører alt
  • Tilgængelig i hovedmenuen — under Konceptualisering v2

Den gamle prompt COGNITIVE_DISTORTIONS_INVENTORY er fjernet (SCRUM-1386).

5. 🌐 Offentlig terapeutprofil — fuld renovering med redigeringspaneler

Den offentlige profil under mærket aitherapy.support er blevet fuldstændig genopbygget.

  • 3 nye redigeringspaneler — bio, specialiseringer, kontaktoplysninger redigeres i elegante sidepaneler
  • Ejer-redigeringstilstand — når du ser din egen profil, mens du er logget ind, er redigeringsknapperne lige ved hånden
  • Års erfaring — nyt felt YearsOfExperience synligt på den offentlige profil
  • Farve-rebranding — sage/lavendel-palette under mærket aitherapy.support
  • Sektionen “Dit privatliv” fjernet — den var overflødig; GDPR er i footeren
  • Lucide-ikoner — moderne, ren ikontypografi

Under motorhjelmen er der tilføjet et offentligt endpoint GET /api/public/therapists — der returnerer terapeuter med aktive offentlige profiler. Grundlag for en terapeutkatalog.

6. 🎥 Videosessioner — PiP, kameraskift, rettet baggrundssløring

Video har fået en række rettelser, som enhver terapeut, der afholder sessioner gennem appen, vil bemærke.

  • PiP/minimer — minimer videorummet til en flydende mini-afspiller og tjek notater i en anden fane uden at bryde forbindelsen. Mikrofon og kamera fortsætter med at virke
  • Skift kameraer — skift hvem der er i hovedvisningen, og hvem der er i mini, med ét klik
  • PiP-genoptagelse — når du vender tilbage fra minimering, springer du lobbyen (PreJoinLobby) over og går direkte ind i samtalen
  • Lyd per deltager til diarisering — transskriptionen adskiller talere selv i PiP
  • Baggrundssløring rettet — CSP blokerede MediaPipe WASM; sløring virker nu med ét klik
  • Renere AITS-sessions-UI — AI-assistenten forsvandt fra værktøjslinjen, mindre visuel støj
  • PiP-overlay klikbar — ved at fjerne pointerEvents:none og overflow:hidden reagerer PiP-knapperne nu på klik
  • Knappen “Deltag i session” — var skjult af en CSS-override, nu synlig
  • Forældet closure i handleMaximize — rettet; PiP-maksimering kaster ikke længere en fejl

7. 📐 Beck v2-konceptualisering og ABC — PDF, versionsskift, prompt-redigering

  • Beck- og ABC v2-PDF — rettet formatering og automatisk inkludering i sessionsmaterialer (indrapporteret af Ewa, SCRUM-1297)
  • Beck-PDF — afsnit kun med kant, farverige specialiseringer, rene initialer, SVG-pil mellem afsnit
  • ABC v1/v2-skift i Konceptualisering v2 — vælg hvilken ABC-version der skal vises
  • Prompt-redigeringstandhjul i ABC v2 — ændr AI-prompten i ABC v2-fanen
  • PDF-eksport for AI-analyser og ABC per session — individuelle analyser eksporteres separat
  • Flertalsbøjning af ABC-mærkater på 8 sprog — konceptualiseringstabellen har korrekte flertalsformer
  • Rettelse af tomme ABC-kolonner — backend returnerer korrekte flertalsegenskabsnavne

8. 🧾 Fakturaer og KSeF — betalingsvalg + tilstandsmaskine

Faktureringssystemet er blevet omstruktureret for overensstemmelse med KSeF (det polske nationale e-faktureringssystem).

  • Faktura fra valgte betalinger — vælg betalinger, og systemet opretter én faktura ud fra dem (snapshot + Payment FK)
  • Indgangspunkt “Udsted faktura” i terapeutens finansvisning — hurtig adgang fra dashboardet
  • Fjernelse af poster i modalen til fakturaudstedelse — ret fejl på farten
  • Adskillelse af KSeF dev/prod — sandbox og produktion arbejder med separate legitimationsoplysninger
  • Tilstandsmaskine for fakturaer (SCRUM-1357 Bohdan) — Kladde → Udstedt → Sendt → Annulleret, med et databasekonstraint på ulovlige overgange
  • AE KsefToken — KSeF-token krypteret med Always Encrypted

Fælles arbejde af Bohdan (SCRUM-1357, SCRUM-1388).

9. 📅 Kalender, tilbagevendende sessioner og lokationer

Den ugentlige og tilbagevendende kalender har fået snesevis af små, men synlige forbedringer — de fleste indrapporteret af Joanna og Ewa.

  • Sessioner fra kl. 22:00 — var usynlige i det ugentlige gitter, vises nu til dagens afslutning
  • Alle timer i gitteret for tilbagevendende tider (SCRUM-874, Joanna)
  • Rettidigt aflyst session — vises ikke som “Ubetalt” (SCRUM-918, Joanna)
  • Gentagelsesmærkat ved siden af det tilbagevendende tidsrum (SCRUM-919, Joanna) — du ser “ugentligt”, “hver anden uge” ved siden af hver gentagende session
  • Skjul Zoom-integration fra UI (SCRUM-789, Joanna) — Zoom understøttes ikke længere som en videokanal
  • Sessionspopover i kalenderen — skjuler sig ikke længere uden for skærmen
  • TherapistAvailability — auto-gem ved hver ændring (debounce 800 ms), ingen gem-knap nødvendig
  • AddSessionModal — mulighed for “opret session uden for tilgængelighedstider” — undtagelser kan tvinge et tidsrum igennem
  • Status “Udeblivelse” (NoShow=5) — ny status, kan sættes selv fra afsluttede eller aflyste sessioner
  • RecurringSessionsCalendar — sammenfatningsfliser over forklaringen og gitteret

Terapeutlokationer har fået online mødekanaler per lokation:

  • Fysisk tilstand — adresse- og byfelter for fysiske lokationer
  • Fysisk/online-skifter i stedet for en afkrydsningsboks — tydeligere valg af tilstand
  • Online kanal per lokation — forskellige lokationer kan have forskellige kanaler (AITS, Google Meet, ekstern link), automatisk videreført til sessioner
  • Permanente mødelokaler per patient — hver patient har et permanent AITS-rumlink og et separat eksternt link synligt i patientindstillinger
  • Sletning af lokation — rettet (forsvandt fra databasen, men blev stående på UI-listen)

Og endelig mødetype i tilbagevendende sessioner — rettet videreførelse af MeetingType og MeetingLink fra konfigurationen af den tilbagevendende serie til hver genereret session og til påmindelses-e-mails (SCRUM-902, Ewa).

10. 📱 Mobilapp — mørkt tema, ad hoc-indbakke, finpudsning

Mobilen er gået til version 1.5.0 (build 18) med en masse brugersynlige ændringer og et par touch omkring signering til App Store/Play Store.

  • Mørkt tema — fuld mørk tilstand med læselige gruppeoverskrifter (SCRUM-1089, Ewa + SCRUM-815)
  • Konfigurerbare påmindelser — vælg hvornår du vil have en sessionsnotifikation
  • Mobilpåmindelse 15 min — 15-minutters før-session-påmindelse + advarsel når systemnotifikationer er slået fra (SCRUM-815, Bohdan)
  • Tom tilstand for sessionsliste — i stedet for en tom skærm, en rigere onboarding (SCRUM-1094, Ewa)
  • Auto-opdater-banner — når appen registrerer en opdatering, viser den et indbydende opdateringsbanner
  • Ad hoc-indbakke + AssignPatient + hurtigstart i MAUI (SCRUM-1289, Bohdan)
  • PWA mobil-hurtigstart til ad hoc-sessioner (SCRUM-1286, Bohdan)
  • Responsiv webvisning til telefon — desktop uændret, på telefon tilpasser layoutet sig til den smalle skærm
  • Deep-link-håndtering i iOS — bruger BindingContext, URL scheme-registrering
  • iOS NSLocation purpose strings — retter ITMS-90683 (App Store afviste build uden disse)
  • Android AAB — eksplicit jarsigner-trin
  • App Store Connect- og Google Play-materialer — fuld pakke plus WCAG 2.2-revision

11. 🔐 Sikkerhed: SOC 2/HIPAA, MFA, fuld AI-pseudonymisering

Under produktlaget har vi gennemført en fuld SOC 2- og HIPAA-hærdning plus en DDD-revision med fem konkrete leverancer.

  • MFA-genverificering ved kritiske operationer — ved følsomme handlinger (skift af adgangskode, dataeksport) bekræfter du igen med MFA
  • Backup-koder til MFA — nødkoder hvis du mister din telefon
  • IAnonymizedLlmGateway (SCRUM-1353, Bohdan) — alle kald til AI-modeller går nu gennem en pseudonymiserende gateway. Navne, datoer, steder erstattes med pseudonymer, før de forlader appen; AI får kun den anonymiserede version
  • Pseudonymisering af e-mail-/sms-notifikationer (SCRUM-1354) — beskedskabeloner lækker heller ikke patientdata ved afsendelse
  • OAuth-tokens Google/Zoom krypteret med Always Encrypted (SCRUM-1355) — adgangstokens til integrationer er kolonnekrypteret
  • Flaget Patient.PendingConsent (SCRUM-1356) — patienter uden aktivt samtykke får et håndhævelsesflow + frontend-badge
  • Tilstandsmaskine for fakturaer (SCRUM-1357) — fakturastatusser er uforanderlige i ugyldige retninger, håndhævet på databaseniveau
  • Uforanderlig revision + brugersnapshot i 3 revisionstabeller — handlingsloggen kan ikke ændres i efterhånden
  • DeanonymizationAuditLog — hver brug af patientdata efter afanonymisering logges sammen med e-mail- og displayName-snapshottet af den bruger, der udførte det
  • Hårdkodede hemmeligheder fjernet — alle nøgler og adgangskoder fra appsettings.json flyttet til Azure Key Vault
  • Always Encrypted til alle brugertekstdata (ADR-0018) — arkitektonisk retning godkendt; flere tabeller migreres i næste udgivelse
  • ISO/IEC-overensstemmelses-gapanalyse — 95 huller på tværs af 9 standarder kortlagt, med en afhjælpningsplan

Underbygget af en fuld DDD-revision (sessioner 1-8, faser 1-6) — omstrukturering af domænekontekster, arkitekturdokumentation, ADR’er, mermaid + tests, playbooks, Confluence-integration.

12. 👤 Patientportal — analyser i Mål, materialer, bedre forhåndsvisning

  • Beck-konceptualisering i patientens fane “Mål” — når du publicerer konceptualiseringen, ser patienten den i sin portal
  • Publicering af analyser til patientportalen + notifikationspræferencer (SCRUM-1338, Bartlomiej) — styr hvad og hvornår patienten modtager
  • PDF-forhåndsvisning i portaleniframe i stedet for embed, CSP tillader blob: (PDF’er indlæses)
  • Forhåndsvisning af patientportal fra terapeutens visning — se hvad patienten ser (chrome i wrapper, dashboard 1:1)
  • Sessionsmaterialer i Azure Blob Storage — SessionMaterial som blob, ikke længere lokalt filsystem
  • Sektion for samtykke/dokumenter + registreringskilde i patientindstillinger
  • Global unikhed af patient-e-mail (SCRUM-898) — en anden patient med samme e-mail får en 409 og modalen lukkes (SCRUM-898, Ewa)
  • Seeder til notifikationsskabeloner for SK, CA, RU, UK, LT (SCRUM-883, Joanna) — fuld flersproget udsendelse
  • Resolver-fallback til platformens standard — når en terapeut ikke har tilsidesat skabelonen, sendes den flersprogede standard (SCRUM-883)

13. 🎙️ Transskription — pålidelig optagelse, tilføjelse, realtid med diarisering

  • Tilføjelse til eksisterende transskription — fortsæt med at optage ind i samme session; segmenter tilføjes (hensigten overlever en gensidindlæsning af siden)
  • Lyd per deltager til diarisering — videotransskription adskiller talere på uafhængige spor
  • Transskription overlever PiP — minimering af rummet bryder ikke optagelsen
  • Transskriptionssprog fra sessionsindstillinger — STT bruger det sprog, du har sat for patienten
  • Auto-opdatering af transskription ved fokus/visibilitychange/tilbage fra video
  • Bekræftelse ved stop af optagelse < 2s — beskyttelse mod en tom WAV-fil fra et fejlklik
  • Badge “Sender” i sessionslisten — du ser, når en optagelse er under upload
  • Realtid med diarisering i videosession — startede ikke før; virker nu
  • OPFS-backup + 48 kbps Opus — optagelsen gemmes også lokalt til OPFS som fallback, lydparametre er ensrettet
  • SAS direkte upload af lyd (SCRUM-1276, Bohdan) — lyd går direkte til Azure via SAS-URL, uden om backend
  • m4a native til Azure Speech — m4a håndteres nativt, ingen konvertering
  • Formatgenkendelse via magic bytes (SCRUM-1311, Bohdan) — når Content-Type er application/octet-stream, genkendes formatet ud fra filens indhold
  • Hub uden DB-tekst — SignalR-realtidshubben gemmer ikke længere tekst i databasen; finishPending bruger multipart POST ligesom MAUI
  • SignalR 1006-rettelse — fjernede skipNegotiation, så Azure SignalR fungerer + finjustering af keep-alive
  • [AI]-mærkat fra første generering + pålidelig mærkat-opslag

14. 💬 Notifikationer, patientindstillinger, mindre UX

  • NotificationTemplatesAdmin — HTML/tekst-skifter i e-mail-editoren
  • NotificationSettings — forhåndsvisning af e-mail renderer HTML med fallback
  • PromptEditModal — genopbygget: faner, modelvælger, påkrævede versionsnavne
  • Nulstilling af flaget Hide_dev_ui ved log ud — udviklerflag følger ikke med på tværs af sessioner
  • Testpatient Ann Fauler — engelsk 1:1-udgave af den polske Anna Pełnialska til rene EN-demoer
  • Skifter til dev UI-præsentationstilstand — hurtigt skift til præsentationstilstand
  • Fejlrapport — Jira-vedhæftninger + rapportørmærkat + centreret “Send”-knap
  • Auth-refresh-loop rettet — afbryd forespørgsler og vend tilbage til login ved 401
  • Banner “Serveren starter” — ved koldstart (scale-to-zero) viser vi en meddelelse i stedet for en tom side
  • Sessionsvurderingsskala — selvrefleksion i stedet for kvalitetsvurdering + ansvarsfraskrivelse (SCRUM-1005, Joanna)
  • Farven på knappen “Minimer” ændret til koboltviolet (SCRUM-1307, Ewa)
  • Farven på mærkatet “Transskription” ændret fra rød til grøn (SCRUM-1304, Ewa)
  • “Optag nu” → “Optag ad hoc-session” — mere præcist knapnavn
  • Sandbox med grønt bånd i øverste venstre hjørne + præfikset [SANDBOX] i titlen — for at undgå forveksling af miljøer, plus en gentagelig PROD → Sandbox-klon (Azure IaC + scripts)

✅ QA-tjekliste — hvad du skal verificere efter deploy

FunktionVerificér
Ad hoc-session — hurtig optagelseKlik på hurtig optagelse på dashboardet eller i PWA’en — optagelsen starter med det samme, sessionen lander i ad hoc-indbakken
AssignPatient i ad hoc-indbakkeÅbn en ad hoc-optagelse — du kan tildele den til en eksisterende patient eller oprette en ny
PakkegrænseDashboardet viser sessionstælleren for den nuværende måned, og hvor mange der er tilbage i pakken
Henstandsperiode efter mislykket betalingAbonnementssimulator i PromptyAI — fremtving en mislykket betaling, du får kun kontoadgang i 14 dage
3-vejs-flet af notaterI sessionsdetaljer viser notatfeltet tre kilder side om side (terapeut/AI/transskription); du kan vælge, hvad der skal beholdes
9 KAT-analyserFanen KAT-analyser viser 9 separate elementer; hver genereret efter behov; hver har et prompt-redigeringstandhjul
Offentlig profil — panelerÅbn din egen offentlige profil, mens du er logget ind — redigeringspaneler til bio, specialisering, kontakt er synlige
Video-PiPUnder en videosession klik på minimer — vinduet mindskes til mini-afspiller, mikrofonen virker stadig, du vender tilbage uden lobby
BaggrundssløringI videolobbyen aktivér baggrundssløring — virker med det samme, ingen CSP-fejl
PDF for Beck-konceptualiseringGenerér konceptualiserings-PDF’en — den vises også i sessionsmaterialer
ABC v1/v2-skiftI konceptualisering v2 kan du skifte ABC-kilden mellem version 1 og 2
Faktura fra valgte betalingerVælg et par betalinger og klik på “Udsted faktura” — én faktura oprettes ud fra snapshottet
Tilbagevendende session med Google MeetDen anden og tredje session i serien har Google Meet korrekt sat, og e-mailen indeholder det rigtige link
Sessioner fra kl. 22:00Den ugentlige kalender viser sessioner planlagt til kl. 22:00 og senere
Status “Udeblivelse”I en afsluttet/aflyst session kan du ændre status til “Udeblivelse”
Mørkt tema på mobilSkift til mørkt tema i mobilappen — gruppeoverskrifter er læselige
Ad hoc-indbakke på mobilMobilen viser ad hoc-indbakken og lader dig tildele en patient
MFA-genverificeringVed skift af adgangskode beder appen om MFA igen
AI-pseudonymiseringI logfilerne ser du, at patientdata sendes til AI som pseudonymer
Sessionsmaterialer som blobUpload en fil til sessionsmaterialer — den lander i Azure Blob Storage, ikke på lokal disk
Global unikhed af patient-e-mailTilføj en anden patient med samme e-mail — du får en 409, og modalen lukkes
Banner “Serveren starter”Efter en længere periode uden aktivitet viser appens indgang banneret i stedet for en tom side

🛠️ Hvad vi rettede — de finere detaljer

Ud over de store funktioner blev cirka 80 rapporter fra testere og brugere løst. Højdepunkter:

  • PiP-overlay var ikke klikbart — rettet
  • Forældet closure i handleMaximize — PiP-maksimering kaster ikke længere en fejl
  • PiP bevarer forbindelsen — tidligere blev room.disconnect() udløst ved overgangen fuldskærm↔PiP
  • Knappen “Deltag i session” var skjult af en CSS-override — afdækket
  • Anden AITS-session for samme patient (SCRUM-1319, Ewa) — fjern UNIQUE INDEX på Session.VideoInviteToken
  • Sessionsnummerering i konceptualisering springer aflyste over (SCRUM-1267, Bohdan)
  • Null-sikker Payment-adgang i GetSessionDetailsAsync (SCRUM-1268, Bohdan)
  • Testsessionskollision mellem Anna Pełnialska og Jan kl. 14:00 — rettet i seederen
  • Langsomt dashboard — null-sikker mapping i GetTodaySessionsAsync og GetSessionDetailsAsync
  • Auto-opdatering efter afsluttet mikrofonoptagelse — virker
  • Batch-fallback overskriver ikke tekst fra tidligere optagelser eller blokerer UI’en med status “Behandler”
  • Transskriptionssprog fra sessionsindstillinger — STT respekterer patientens præference
  • CSP — tillader *.clarity.ms, blob: i connect-src, analytics i script-src
  • Auth-refresh-loop — afbryder forespørgsler efter 401 og vender tilbage til login
  • CSP MediaPipe WASM — baggrundssløring virker
  • DEV/SANDBOX-bånd også på Azure FQDN, ikke kun på tilpasset domæne
  • Falsk toast “Transskription mislykkedes” ved indgang til session — fjernet
  • Toast i stedet for rødt banner ved mislykket transskription + knappen “Resample” fjernet
  • Realtid med diarisering i videosession — starter korrekt
  • AI-streaming — AbortController per handler i stedet for delt (BodyStreamBuffer was aborted)
  • Nginx non-root + Azure Container Apps — flere iterationer for at få det til at virke
  • Distribueret lås (sp_getapplock) — opstartsmigreringer er ikke længere i konflikt ved parallelle udrulninger
  • DbUpdateConcurrencyException i batch-transskriptionspolleren (SCRUM-1313, Bohdan)
  • BlobNotFound som forventet tilstand (SCRUM-1314, Bohdan)
  • Ikke-JSON-nyttelast i Stripe-webhook (scannere/bots) — håndteres uden fejl (SCRUM-1315, Bohdan)
  • Genkendelse af lydformat via magic bytes (SCRUM-1311, Bohdan)
  • Robust lydupload + defensiv Content-Type (SCRUM-1293, Bohdan)
  • FK-migrering ActiveEmbeddingModelId → ON DELETE NO ACTION
  • Dev-klientudrulning — CACHE_BUST=github.sha tvinger frontend-genopbygning

Dette er den største, mest komprimerede udgivelse i dette forår. Hvis en funktion virker bekendt — er det fordi det var din anmodning eller dit ticket. Tak for hver rapport og hvert skærmbillede.

Artikel udarbejdet af Therapy Support-teamet

Therapy Support · Kom i gang allerede i dag

Få tiden tilbage til dig selv
og dine patienter

Er du KAT-terapeut?
Se, hvordan platformen understøtter dit daglige arbejde.
Sessionsopsummeringer, der organiserer det kliniske materiale. Administration, der ikke er i vejen.