Produktuppdateringar

Versionsnyheter - 26 april 2026

Bartłomiej Głowacki · CAIO, ansvarig för AI & FoU
Versionsnyheter - 26 april 2026

För 19 dagar sedan lanserade vi en stor version med diagnosmodulen och prosodianalys. Sedan dess har teamet drivit igenom ytterligare 295 ändringar - och de är inte små. I den här versionen kan du spela in en ad hoc-session innan patienten ens har anlänt, dina anteckningar sammanfogas med AI-arbete och transkription sida vid sida i tre kolumner, den offentliga terapeutprofilen är tillbaka i full styrka, och mobilappen har nu ett mörkt tema. Under huven har vi genomfört en genomgång av SOC 2/HIPAA-härdning, en DDD-granskning och full pseudonymisering av patientdata på AI-sidan.

💚 Tack till teamet som drev fram denna version - genom rapporter, tester, kod och tålamod:

  • Bohdan - ad hoc-sessioner, paketgränser och respitperiod, DDD-granskning, KSeF-fakturor, dussintals fixar (SCRUM-756, 815, 1267, 1268, 1276, 1280-1290, 1293, 1309-1316, 1353-1357, 1366, 1388, 1391, 1392)
  • Bartek - trevägssammanfogning, 9 separata KBT-analyser, kognitiva förvrängningar, räknare för paketsessioner (SCRUM-1266, 1320, 1338, 1368-1375, 1385, 1386)
  • Ewa Cylwik / Ewa - Beck-PDF, en andra AITS-session för samma patient, mörkt tema och tomt tillstånd på mobil, flerspråkig utskick, UI-färger, unikhet för patientens e-post (SCRUM-883, 898, 902, 1089, 1094, 1297, 1304, 1307, 1319)
  • Joanna - återkommande kalender, dölja Zoom, avbokning i tid, självreflektion istället för betyg på sessionens kvalitet (SCRUM-789, 874, 918, 919, 1005)
  • Dessutom Bartlomiej för kognitiva förvrängningar och sessionsräknaren, som blev grunden för den nya prenumerationsmodellen

1. ⚡ Ad hoc-sessioner - spela in innan patienten anländer

Om du någon gång snabbt har behövt slå på en inspelning - eftersom en patient dök upp oanmäld, eftersom det är en engångskonsultation, eftersom det är ett möte med någon som ännu inte finns i din journal - löser den nya modulen för ad hoc-sessioner hela detta problem.

  • Snabbinspelningsknapp i webbpanelen, i PWA på telefonen och i MAUI-appen - ett klick startar inspelningen innan du ens fyller i patientens uppgifter
  • AdHoc-inkorg - en dedikerad brevlåda för otilldelade inspelningar tills du bestämmer vart de ska
  • AssignPatientModal - tilldela inspelningen till en befintlig patient eller skapa en ny direkt från inkorgen
  • Fortsätt / återgå till rummet - avsluta inspelningen av en session du började tidigare
  • Bevarande av föräldralösa poster + automatisk avslutning - sessioner som inte tilldelats inom X dagar avslutas automatiskt så att inkorgen hålls ren
  • Video “Starta utan patient” - i LiveKit-rummet kan du starta en session utan att krocka med en befintlig patient; ad hoc-sessionen hamnar sedan i inkorgen

Sektionen är dold bakom PromptyAI-koden i Inställningar - avstängd som standard, för användare som vill se resten först. Designad och levererad av Bohdan.

2. 📊 Paketgränser och respitperiod - transparent prenumeration

Prenumerationerna har fått en total genomgång. De gamla planerna Starter/Standard är avaktiverade, ersatta av Start / Practice / Pro - dimensionerade efter faktisk sessionsvolym per månad.

  • Sessionsräknare på instrumentpanelen - se hur många sessioner du har använt denna månad och hur många som återstår i paketet
  • Gränsvärde-mejl - automatiska aviseringar vid 80 % och 100 % användning
  • Uppgraderingsförslag - när du når gränsen får du ett vänligt förslag om planbyte istället för en hård blockering
  • Priser från Stripe + rabatter - priset du ser i appen kommer direkt från Stripe med aktiva rabatter tillämpade (betatestarkoden går inte ut)
  • Inbyggd uppsägning av prenumeration - säg upp direkt i appen, ingen anledning att mejla supporten
  • 14 dagars respitperiod - om en betalning misslyckas får du 14 dagar med åtkomst enbart till ditt eget konto (inga patientförhandsvisningar), med mejl vid T+0 och T+13. Verklig dataförlust inträffar först efter två veckor
  • Prenumerationsbanner - ett rent meddelande högst upp i appen utan tom bård mellan menyn och varningen
  • Simulator för sessionsgräns - i PromptyAI-panelen finns ett testläge där du kan se hur appen beter sig vid ett fullt paket

Gemensamt arbete av Bartlomiej (räknare och gränser, SCRUM-1266) och Bohdan (prenumeration, respit, uppgraderingsförslag - SCRUM-756, SCRUM-1366, SCRUM-1391, SCRUM-1392).

3. 📝 Trevägssammanfogning för anteckningar - terapeut, AI och transkription i en vy

Detta är en av de största arkitektoniska förändringarna under huven, men effekten på det dagliga arbetet är mycket synlig: varje anteckningsfält (Notes, SessionSummary, sektionerna för konceptualisering) kommer nu ihåg separat vad terapeuten skrev, vad AI genererade och vad som kom från diktafonen/transkriptionen.

  • Trevägs-anteckningar (Notes 3-way) - anteckningsvyn visar tre källor sida vid sida: din text, AI-förslag och automatisk transkription, och du väljer vad som ska behållas
  • SessionSummary 2-way + JSON-sammanfogning - i sessionssammanfattningen sammanfogar du ditt arbete med AI-analysen till ett enda sammanhängande dokument
  • Tidsstämpel-avgränsare - när du manuellt redigerar ett AI-fält lämnar systemet ett synligt spår av när och vems fragmentet är
  • [AI]-märkning från första genereringen - dina fält blandas inte med genererade
  • SourceBadge - en färgglad bricka med en ikon som visar var ett fragment kommer ifrån, istället för text i VERSALER
  • Ersättning av AI-sektion istället för tillägg - när du begär en ny generering av sammanfattningen ersätter AI sektionen istället för att stapla en till kopia under

Designad och levererad av Bartek (SCRUM-1320, SCRUM-1368-1375). Under huven: full i18n på 8 språk och nya DDD-kontexter.

4. 🔍 KBT-analyser - 9 separata rapporter på begäran

Den gamla monolitiska “generera KBT-analys” har delats upp i 9 separata delar som terapeuten kör när de faktiskt behövs. Mindre väntan, mer kontroll.

  • 9 oberoende analyser - varje genereras separat, på begäran
  • Kugghjul för promptredigering - klicka på kugghjulet bredvid varje analys för att se/ändra prompten AI kommer att använda
  • Sektionen KBT-ANALYSER bakom PromptyAI-kod - sektionen är tillgänglig efter att ha angett koden i Inställningar, för användare som testar nya funktioner

Kognitiva förvrängningar fick en egen vy (rapporterad av Bartlomiej, SCRUM-1385):

  • Datavy istället för AI-rapport - du ser konkreta citat från transkriptionen taggade av AI, inte en berättelse genererad från dem
  • Alla citat efter expandering - inget datumintervallfilter, expandering visar allt
  • Tillgänglig i huvudmenyn - under Konceptualisering v2

Den gamla prompten COGNITIVE_DISTORTIONS_INVENTORY har tagits bort (SCRUM-1386).

5. 🌐 Offentlig terapeutprofil - fullständig ombyggnad med redigeringspaneler

Den offentliga profilen under varumärket aitherapy.support har byggts om helt.

  • 3 nya redigeringspaneler - biografi, specialiseringar, kontaktuppgifter redigeras i eleganta sidopaneler
  • Ägarens redigeringsläge - när du visar din egen profil medan du är inloggad finns redigeringsknappar nära till hands
  • Antal år av erfarenhet - nytt fält YearsOfExperience synligt på den offentliga profilen
  • Färgombrandning - salvia/lavendel-palett under varumärket aitherapy.support
  • Sektionen “Din integritet” borttagen - den var överflödig; GDPR finns i sidfoten
  • Lucide-ikoner - modern, ren ikontypografi

Under huven lades en offentlig endpoint till, GET /api/public/therapists - som returnerar terapeuter med aktiva offentliga profiler. Grunden för en terapeutkatalog.

6. 🎥 Videosessioner - PiP, byta kameror, fixat bakgrundssuddighet

Video fick en uppsättning fixar som varje terapeut som kör sessioner via appen kommer att märka av.

  • PiP/minimera - minimera videorummet till en flytande miniplayer och kolla anteckningar i en annan flik utan att bryta anslutningen. Mikrofon och kamera fortsätter fungera
  • Byt kameror - byt vem som är i huvudvyn och vem som är i mini med ett klick
  • PiP-återupptagning - när du kommer tillbaka från minimering hoppar du över lobbyn (PreJoinLobby) och kommer direkt in i samtalet
  • Ljud per deltagare för diarisering - transkriptionen delar upp talare även i PiP
  • Bakgrundssuddighet fixad - CSP blockerade MediaPipe WASM; suddighet fungerar nu med ett klick
  • Renare AITS-sessions-UI - AI-assistenten försvann från verktygsfältet, mindre visuellt brus
  • Klickbar PiP-overlay - genom att ta bort pointerEvents:none och overflow:hidden reagerar PiP-knapparna på klick
  • Knappen “Anslut till session” - var dold av en CSS-överskrivning, är nu synlig
  • Föråldrad closure i handleMaximize - fixad; PiP-maximering kastar inte längre ett fel

7. 📐 Beck v2-konceptualisering och ABC - PDF, versionsväxling, promptredigering

  • Beck- och ABC v2-PDF - fixad formatering och automatiskt inkluderande i sessionsmaterial (rapporterat av Ewa, SCRUM-1297)
  • Beck-PDF - endast kantlinjer i sektionerna, färgglada specialiseringar, rena initialer, SVG-pil mellan sektioner
  • Växling mellan ABC v1/v2 i Konceptualisering v2 - välj vilken ABC-version som ska visas
  • Kugghjul för promptredigering i ABC v2 - ändra AI-prompten i fliken ABC v2
  • PDF-export för AI-analyser och ABC per session - enskilda analyser exporteras separat
  • Pluralisering av ABC-etiketter på 8 språk - konceptualiseringstabellen har korrekta pluralformer
  • Fix för tomma ABC-kolumner - backend returnerar korrekta egenskapsnamn i plural

8. 🧾 Fakturor och KSeF - val av betalningar + tillståndsmaskin

Faktureringssystemet har omarbetats för överensstämmelse med KSeF (Polens nationella system för e-fakturering).

  • Faktura från valda betalningar - välj betalningar och systemet skapar en enda faktura från dem (ögonblicksbild + Payment-nyckel)
  • Startpunkt “Utfärda faktura” i terapeutens ekonomivy - snabb åtkomst från instrumentpanelen
  • Borttagning av rader i fakturautfärdandets modalfönster - rätta till misstag i farten
  • Uppdelning av dev/prod för KSeF - sandlåda och produktion körs på separata autentiseringsuppgifter
  • Tillståndsmaskin för fakturor (SCRUM-1357 Bohdan) - Utkast → Utfärdad → Skickad → Avbruten, med en databasbegränsning mot otillåtna övergångar
  • AE KsefToken - KSeF-token krypterad med Always Encrypted

Gemensamt arbete av Bohdan (SCRUM-1357, SCRUM-1388).

9. 📅 Kalender, återkommande sessioner och platser

Vecko- och den återkommande kalendern fick dussintals mindre men synliga förbättringar - de flesta rapporterade av Joanna och Ewa.

  • Sessioner från 22:00 - var osynliga i veckorutnätet, visas nu till dagens slut
  • Alla timmar i rutnätet för återkommande tider (SCRUM-874, Joanna)
  • En avbokad session i tid - visas inte som “Obetald” (SCRUM-918, Joanna)
  • Etikett för återkommande mönster bredvid den återkommande tiden (SCRUM-919, Joanna) - du ser “varje vecka”, “varannan vecka” bredvid varje återkommande session
  • Dölja Zoom-integrationen från UI (SCRUM-789, Joanna) - Zoom stöds inte längre som en videokanal
  • Sessionspopup i kalendern - döljs inte längre utanför skärmen
  • TherapistAvailability - automatisk sparning vid varje ändring (debounce 800 ms), ingen sparknapp behövs
  • AddSessionModal - alternativet “skapa session utanför tillgänglighetstider” - undantag kan tvinga fram en tid
  • Status “Uteblivet besök” (NoShow=5) - ny status, kan ställas in även från en avslutad eller avbokad session
  • RecurringSessionsCalendar - sammanfattningsrutor ovanför förklaringen och rutnätet

Terapeutplatser fick online-mötekanaler per plats:

  • Läge på plats - adress- och stadsfält för fysiska platser
  • Växel för på plats/online istället för en kryssruta - tydligare lägesval
  • Onlinekanal per plats - olika platser kan ha olika kanaler (AITS, Google Meet, extern länk), sprids automatiskt till sessioner
  • Permanenta mötesrum per patient - varje patient har en permanent AITS-rumslänk och en separat extern länk synlig i patientinställningarna
  • Radering av plats - fixad (försvann från databasen men fanns kvar i UI-listan)

Och slutligen mötestyp i återkommande sessioner - fixad spridning av MeetingType och MeetingLink från konfigurationen av den återkommande serien till varje genererad session och till påminnelsemejl (SCRUM-902, Ewa).

10. 📱 Mobilapp - mörkt tema, AdHoc-inkorg, finslipning

Mobilen har gått över till version 1.5.0 (build 18) med en mängd användarsynliga ändringar och några signeringsjusteringar för App Store/Play Store.

  • Mörkt tema - fullt mörkt läge med läsbara gruppheaders (SCRUM-1089, Ewa + SCRUM-815)
  • Konfigurerbara påminnelser - välj när du vill ha en sessionsavisering
  • Mobilpåminnelse 15 min - 15 minuters förhandsvarning inför session + varning när systemaviseringar är avstängda (SCRUM-815, Bohdan)
  • Tomt tillstånd för sessionslistan - istället för en tom skärm, en rikare onboarding (SCRUM-1094, Ewa)
  • Banner för automatisk uppdatering - när appen upptäcker en uppdatering visar den en inbjudande uppdateringsbanner
  • AdHoc-inkorg + AssignPatient + snabbstart i MAUI (SCRUM-1289, Bohdan)
  • PWA-snabbstart på mobil för ad hoc-sessioner (SCRUM-1286, Bohdan)
  • Responsiv webbvy för telefon - desktop oförändrad, på telefonen anpassas layouten till den smala skärmen
  • Deep link-hanterare i iOS - använder BindingContext, registrering av URL-schema
  • NSLocation-syftesbeskrivningar i iOS - fixar ITMS-90683 (App Store avvisade byggen utan dessa)
  • Android AAB - explicit jarsigner-steg
  • Material för App Store Connect och Google Play - fullständigt paket plus en WCAG 2.2-granskning

11. 🔐 Säkerhet: SOC 2/HIPAA, MFA, full pseudonymisering av AI

Under produktlagret genomförde vi en full härdningsgenomgång enligt SOC 2 och HIPAA plus en DDD-granskning med fem konkreta leveranser.

  • Ny MFA-verifiering för kritiska åtgärder - för känsliga åtgärder (lösenordsbyte, dataexport) bekräftar du på nytt med MFA
  • Reservkoder för MFA - nödkoder om du tappar bort telefonen
  • IAnonymizedLlmGateway (SCRUM-1353, Bohdan) - alla AI-modellanrop går nu genom en pseudonymiserande gateway. Namn, datum, platser ersätts med pseudonymer innan de lämnar appen; AI får bara den anonymiserade versionen
  • Pseudonymisering av e-post-/SMS-aviseringar (SCRUM-1354) - meddelandemallar läcker inte heller patientdata vid utskick
  • OAuth-tokens Google/Zoom krypterade med Always Encrypted (SCRUM-1355) - integrationers åtkomsttokens är kolumnkrypterade
  • Flaggan Patient.PendingConsent (SCRUM-1356) - patienter utan aktivt samtycke får ett tvingande flöde + en badge på frontend
  • Tillståndsmaskin för fakturor (SCRUM-1357) - fakturastatusar är oföränderliga i ogiltiga riktningar, tillämpat på databasnivå
  • Oföränderlighet i granskningsloggen + användarinstantögonblick i 3 granskningstabeller - åtgärdsloggen kan inte ändras i efterhand
  • DeanonymizationAuditLog - varje användning av patientdata efter avpseudonymisering loggas tillsammans med en ögonblicksbild av e-post och visningsnamn för den användare som utförde den
  • Hårdkodade hemligheter borttagna - alla nycklar och lösenord från appsettings.json flyttade till Azure Key Vault
  • Always Encrypted för all textdata från användare (ADR-0018) - arkitektonisk riktning godkänd; fler tabeller migreras i nästa version
  • Analys av efterlevnadsluckor enligt ISO/IEC - 95 luckor kartlagda över 9 standarder, med en åtgärdsplan

Understött av en full DDD-granskning (sessioner 1-8, faserna 1-6) - omstrukturering av domänkontexter, arkitekturdokumentation, ADR:er, mermaid + tester, playbooks, integration med Confluence.

12. 👤 Patientportal - analyser under Mål, material, bättre förhandsvisning

  • Beck-konceptualisering i patientens flik “Mål” - när du publicerar konceptualiseringen ser patienten den i sin portal
  • Publicering av analyser till patientportalen + aviseringspreferenser (SCRUM-1338, Bartlomiej) - styr vad och när patienten tar emot
  • PDF-förhandsvisning i portalen - iframe istället för embed, CSP tillåter blob: (PDF:er laddas)
  • Förhandsvisning av patientportalen från terapeutens vy - se vad patienten ser (ram i wrapper, instrumentpanel 1:1)
  • Sessionsmaterial i Azure Blob Storage - SessionMaterial som blob, inget lokalt filsystem längre
  • Sektion för samtycke/dokument + registreringskälla i patientinställningarna
  • Global unikhet för patientens e-post (SCRUM-898) - en andra patient med samma e-post får ett 409-fel och modalen stängs (SCRUM-898, Ewa)
  • Seeder för aviseringsmallar för SK, CA, RU, UK, LT (SCRUM-883, Joanna) - fullt flerspråkigt utskick
  • Resolver-reserv till plattformens standard - när en terapeut inte har åsidosatt mallen skickas standardmallen på flera språk (SCRUM-883)

13. 🎙️ Transkription - pålitlig inspelning, tillägg, realtid med diarisering

  • Tillägg till befintlig transkription - fortsätt spela in i samma session; segment läggs till (avsikten överlever en sidladdning)
  • Ljud per deltagare för diarisering - videotranskription delar upp talare på oberoende spår
  • Transkription överlever PiP - att minimera rummet bryter inte inspelningen
  • Transkriptionsspråk från sessionsinställningarna - STT använder det språk du ställt in för patienten
  • Automatisk uppdatering av transkription vid focus/visibilitychange/återgång från video
  • Bekräftelse vid stopp av inspelning < 2 s - skydd mot en tom WAV-fil från ett feltryck
  • Statusmärke “Skickar” i sessionslistan - du ser när en inspelning håller på att laddas upp
  • Realtid med diarisering i videosession - startade inte tidigare; fungerar nu
  • OPFS-säkerhetskopiering + 48 kbps Opus - inspelningen sparas också lokalt i OPFS som reserv, ljudparametrar harmoniserade
  • Direkt SAS-uppladdning av ljud (SCRUM-1276, Bohdan) - ljud går direkt till Azure via en SAS-URL, förbi backend
  • m4a nativt till Azure Speech - m4a hanteras nativt, ingen konvertering
  • Formatdetektion via magiska byte (SCRUM-1311, Bohdan) - när Content-Type är application/octet-stream detekteras formatet från filens innehåll
  • Hub utan text i databasen - SignalR-realtidshubben lagrar inte längre text i databasen; finishPending använder multipart POST som MAUI
  • Fix för SignalR 1006 - tog bort skipNegotiation så att Azure SignalR fungerar + justering av keep-alive
  • [AI]-märkning från första genereringen + pålitlig sökning efter märkning

14. 💬 Aviseringar, patientinställningar, mindre UX-detaljer

  • NotificationTemplatesAdmin - HTML/Text-växel i e-postredigeraren
  • NotificationSettings - e-postförhandsvisning renderar HTML med reservlösning
  • PromptEditModal - ombyggd: flikar, modellväljare, obligatoriska versionsnamn
  • Återställning av flaggan Hide_dev_ui vid utloggning - utvecklarflaggor följer inte med mellan sessioner
  • Testpatient Ann Fauler - engelsk 1:1-motsvarighet till den polska Anna Pełnialska för demos enbart på engelska
  • Växel för presentationsläge i dev-UI - snabb växling till presentationsläge
  • Felrapportering - Jira-bilagor + etikett för rapportören + centrerad “Skicka”-knapp
  • Fixad loop för autentiseringsförnyelse - avbryt förfrågningar och gå tillbaka till inloggning vid 401
  • Banner “Servern startar” - vid kallstart (scale-to-zero) visar vi ett meddelande istället för en tom sida
  • Betygsskala för session - självreflektion istället för kvalitetsbetyg + ansvarsfriskrivning (SCRUM-1005, Joanna)
  • Färgen på knappen “Minimera” ändrad till kobolt-violett (SCRUM-1307, Ewa)
  • Färgen på etiketten “Transkription” ändrad från röd till grön (SCRUM-1304, Ewa)
  • “Spela in nu” → “Spela in AdHoc-session” - mer korrekt knappnamn
  • Sandlåda med grönt band i övre vänstra hörnet + prefixet [SANDBOX] i titeln - för att undvika förvirring om miljö, plus en repeterbar klonprocess PROD → Sandbox (Azure IaC + skript)

✅ QA-checklista - vad som ska verifieras efter driftsättning

FunktionVerifiera
Ad hoc-session - SnabbinspelningKlicka på Snabbinspelning på instrumentpanelen eller i PWA - inspelningen startar omedelbart, sessionen hamnar i AdHoc-inkorgen
AssignPatient i AdHoc-inkorgÖppna en ad hoc-inspelning - du kan tilldela den till en befintlig patient eller skapa en ny
PaketgränsInstrumentpanelen visar sessionsräknaren för den aktuella månaden och hur många som återstår i paketet
Respitperiod efter misslyckad betalningPrenumerationssimulator i PromptyAI - framtvinga en misslyckad betalning, du får åtkomst enbart till kontot i 14 dagar
Trevägssammanfogning av anteckningarI sessionsdetaljerna visar fältet Anteckningar tre källor sida vid sida (terapeut/AI/transkription); du kan välja vad som ska behållas
9 KBT-analyserFliken för KBT-analyser visar 9 separata delar; varje genereras på begäran; varje har ett kugghjul för promptredigering
Offentlig profil - panelerÖppna din egen offentliga profil medan du är inloggad - redigeringspaneler för biografi, specialisering, kontakt är synliga
Video-PiPKlicka på minimera under en videosession - fönstret fälls ihop till en miniplayer, mikrofonen fungerar fortfarande, du återgår utan lobby
BakgrundssuddighetAktivera bakgrundssuddighet i videolobbyn - fungerar direkt, inga CSP-fel
PDF för Beck-konceptualiseringGenerera PDF för konceptualiseringen - visas också i sessionsmaterialen
ABC v1/v2-växelI konceptualisering v2 kan du växla ABC-källan mellan version 1 och 2
Faktura från valda betalningarVälj några betalningar och klicka på “Utfärda faktura” - en enda faktura skapas från ögonblicksbilden
Återkommande session med Google MeetDen andra och tredje sessionen i serien har korrekt inställd Google Meet och mejlet innehåller rätt länk
Sessioner från 22:00Veckokalendern visar sessioner schemalagda från 22:00 och senare
Statusen “Uteblivet besök”I en avslutad/avbokad session kan du ändra status till “Uteblivet besök”
Mörkt tema på mobilVäxla till mörkt tema i mobilappen - gruppheaders är läsbara
AdHoc-inkorg på mobilMobilen visar ad hoc-inkorgen och låter dig tilldela en patient
Ny MFA-verifieringVid lösenordsbyte ber appen om MFA igen
Pseudonymisering av AII loggarna ser du att patientdata går till AI som pseudonymer
Sessionsmaterial som blobLadda upp en fil till sessionsmaterial - den hamnar i Azure Blob Storage, inte på lokal disk
Global unikhet för patientens e-postLägg till en andra patient med samma e-post - du får ett 409-fel och modalen stängs
Banner “Servern startar”Efter en längre tids inaktivitet visar appens ingång bannern istället för en tom sida

🛠️ Vad vi har fixat - i finstilt

Utöver de stora funktionerna löstes cirka 80 rapporter från testare och användare. Höjdpunkter:

  • PiP-overlayn var inte klickbar - fixad
  • Föråldrad closure i handleMaximize - PiP-maximering kastar inte längre ett fel
  • PiP behåller anslutningen - tidigare utlöstes room.disconnect() vid övergången mellan helskärm och PiP
  • Knappen “Anslut till session” var dold av en CSS-överskrivning - avslöjad
  • En andra AITS-session för samma patient (SCRUM-1319, Ewa) - tog bort UNIQUE INDEX på Session.VideoInviteToken
  • Sessionsnumrering i konceptualiseringen hoppar över avbokade (SCRUM-1267, Bohdan)
  • Null-säker åtkomst till Payment i GetSessionDetailsAsync (SCRUM-1268, Bohdan)
  • Testsessionskrock mellan Anna Pełnialska och Jan kl. 14:00 - fixad i seedern
  • Nedsaktning av instrumentpanelen - null-säker mappning i GetTodaySessionsAsync och GetSessionDetailsAsync
  • Automatisk uppdatering efter avslutad mikrofoninspelning - fungerar
  • Batchreserv skriver inte över text från tidigare inspelningar eller blockerar UI:t med status Bearbetar
  • Transkriptionsspråk från sessionsinställningarna - STT respekterar patientens preferens
  • CSP - tillåter *.clarity.ms, blob: i connect-src, analys i script-src
  • Loop för autentiseringsförnyelse - avbryter förfrågningar efter 401 och går tillbaka till inloggning
  • CSP MediaPipe WASM - bakgrundssuddighet fungerar
  • DEV/SANDBOX-bandet även på Azures FQDN, inte bara på den egna domänen
  • Falsk toast “Transkription misslyckades” vid sessionsstart - borttagen
  • Toast istället för röd banner vid misslyckad transkription + borttagen “Resample”-knapp
  • Realtid med diarisering i videosession - startar korrekt
  • AI-strömning - AbortController per hanterare istället för delad (BodyStreamBuffer was aborted)
  • Nginx non-root + Azure Container Apps - flera iterationer för att få det att fungera
  • Distribuerat lås (sp_getapplock) - startmigreringar kolliderar inte längre vid parallella driftsättningar
  • DbUpdateConcurrencyException i batch-transkriptionens poller (SCRUM-1313, Bohdan)
  • BlobNotFound som förväntat tillstånd (SCRUM-1314, Bohdan)
  • Icke-JSON-nyttolaster i Stripe-webhooken (skannrar/botar) - hanteras tyst (SCRUM-1315, Bohdan)
  • Formatdetektion för ljud via magiska byte (SCRUM-1311, Bohdan)
  • Robust ljuduppladdning + defensiv Content-Type (SCRUM-1293, Bohdan)
  • FK-migrering ActiveEmbeddingModelId → ON DELETE NO ACTION
  • Dev-klientens driftsättning - CACHE_BUST=github.sha tvingar fram en ombyggnad av frontend

Det här är den största, tätaste versionen denna vår. Om en funktion känns bekant - är det för att det var din önskan eller ditt ärende. Tack för varje rapport och varje skärmdump.

Artikeln är sammanställd av Therapy Support-teamet

Therapy Support · Kom igång redan idag

Ta tillbaka tid för dig själv
och dina patienter

Är du KBT-terapeut?
Se hur plattformen stödjer ditt dagliga arbete.
Sessionssammanfattningar som ordnar det kliniska materialet. Administration som inte står i vägen.