Features #423
öppenIntegrera VARA som lokal SQLite-katalog med månatliga appuppdateringar
40%
Beskrivning
Syfte
Använd VARA lokalt i Medicin Dags för sökning och förifyllnad av produktuppgifter. Appen hämtar aldrig exporten från SFTP och skickar inte användarsökningar eller personliga läkemedelsuppgifter till VARA eller MedicTime-servrar.
Genomfört
- Importverktyg för VARA XML 8 validerar exportens XSD och bygger en separat sökbar SQLite-katalog.
- Android-appen har separat Room-katalog, lokal sökning, produktgranskning och säker installation/ersättning.
- Månatlig beredning jämför aktuell katalog med föregående och skriver release-review.json.
- Releasebygget kräver SQLite-katalog och månadsrapport, verifierar schema och matchande SHA-256 och bäddar in databasen i appens assets.
- Septemberkatalogen byggdes in i releasevarianten; APK-innehållets filstorlek och kontrollsumma verifierades.
- Granskningsvyn erbjuder frivilligt förpackningsval och visar VARA:s förpackningstext, varunummer och streckkod. Valet sparas som snapshot med NPLPACK-id och källdatum; läkemedelskortet återger uppgifterna. Doseringslogiken påverkas inte. Databasen migreras till schema 13.
- Läkemedelssökningen kan starta kameraskanning efter att användaren begärt den och beviljat behörighet. CameraX och en lokalt paketerad ML Kit-modell analyserar på enheten. En rörlig horisontell linje visar att läsaren väntar på en kod.
- Skannade EAN-8, EAN-13, UPC-A, ITF och Code 128-koder slås upp lokalt bland VARA-förpackningar, inklusive GTIN-14-nollutfyllnad. Vid flera matchningar visas produkt, styrka, form och förpackning för uttryckligt användarval; inga läkemedelsuppgifter väljs automatiskt. Namnsökning/manuell registrering finns kvar. Kamerabilder skickas inte eller sparas.
- VARA:s detaljerade läkemedelsformer mappas till appens bredare formkategorier (t.ex. Filmdragerad tablett → Tablett); den ursprungliga VARA-beskrivningen bevaras. Okända former ligger kvar som Annan form.\r\n- Kotlin-kompilering, enhetstester och debug-APK-bygge passerar. Emulatorverifiering visar behörighetsflöde, kameraförhandsvisning och den animerade skanningslinjen. Exakt GTIN-14-uppslag kontrollerades mot septemberkatalogen.
Kvar före extern release
- Skanna fysisk förpackning med riktig enhet och verifiera kamerabeteende på stödda enheter.
- Sakkunnig granskning av produkturval samt produkt- och förpackningsstatuspresentation.
- Granska skillnaderna för aktuell månad före varje release.
- Manuell tillgänglighets- och fysisk enhetsverifiering, inklusive Android 14, TalkBack, fokus/tangentbord och orientering.
- Signera och distribuera en appversion med en godkänd månadsfil.
Teknisk status: lokal VARA-katalog, val av förpackning och kamerabaserat streckkodssökflöde implementerade. Ärendet hålls öppet tills innehållsgranskning, fysisk provskanning och återstående releasekontroller är klara.
Acceptanskriterier
Månadsvis VARA 8-export valideras mot XSD och jämförs med föregående SQLite-katalog. Release paketeras endast med SQLite vars SHA-256 matchar månadsrapporten. Sökningen sker lokalt och appen ansluter inte till SFTP. I läkemedelssökningen ligger streckkodsikon intill inmatningsfältet och förstoringsglas skickar in manuell text (även tangentbordets Sök). Avläst streckkod ger direkt lokalt uppslag; tvetydiga träffar visas för uttryckligt val av produkt, styrka, form och förpackning. Kamerabilder sparas inte eller skickas. Före Done krävs sakkunnig granskning samt fysisk enhets- och hjälpmedelsverifiering.
Testresultat
Android :app:compileDebugKotlin och :app:compileDebugAndroidTestKotlin passerar. Riktade CatalogMedicationDialogTest på Android 15-emulator: 5 tester, 0 fel; verifierar skanningsikonens tillgängliga namn, sökikon, explicit manuell sökning, resultatgranskning och att äldre sökning avbryts. Emulatorförhandsvisning av kameraflöde och rörlig linje kontrollerades tidigare. GTIN-14-uppslag verifierades mot septemberkatalogen. Fysisk streckkodsskanning, Android 14-enhet, TalkBack/orientering och sakkunnig granskning återstår. Regressionstest för VARA-formmappning tillagt: 84 enhetstester passerar, inklusive tabletter, injektionsformer, droppar, inhalationspulver och okända former. :app:compileDebugAndroidTestKotlin och :app:assembleDebug passerar.