diff --git a/README.md b/README.md index b9e49d8..d4b64b2 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Die App ermöglicht die Verwaltung von Patienten und Wunddokumentationen, unterstützt Fotos und digitale Unterschriften und erzeugt aus abgeschlossenen Dokumentationen PDF-Dateien. -> **Projektstatus:** In Entwicklung +> **Projektstatus:** beta1.1 ------------------------------------------------------------------------ @@ -344,32 +344,6 @@ werden kann. - JDK über Android Studio - Android-Gerät oder Android Emulator -### Projekt öffnen - -Repository klonen: - -``` bash -git clone -cd VulneraDoc -``` - -Anschließend den Projektordner in Android Studio öffnen. - -Android Studio führt beim ersten Öffnen einen Gradle-Sync durch und lädt -die benötigten Dependencies. - -Danach: - -``` text -Gradle Sync - ↓ -Build / Make Project - ↓ -Android-Gerät oder Emulator auswählen - ↓ -Run -``` - ------------------------------------------------------------------------ ## Projektphasen @@ -387,40 +361,40 @@ Run ### Phase 2 -- Projektgrundgerüst - [x] Android-Projekt -- [ ] Room-Datenbank -- [ ] Entities -- [ ] DAOs -- [ ] Repositories -- [ ] Navigation -- [ ] ViewModels +- [x] Room-Datenbank +- [x] Entities +- [x] DAOs +- [x] Repositories +- [x] Navigation +- [x] ViewModels ### Phase 3 -- Kernfunktionalität -- [ ] Patientenverwaltung -- [ ] Patientenliste -- [ ] Wunddokumentationsliste -- [ ] Dokumentation erstellen -- [ ] Dokumentationsblöcke -- [ ] Blocknavigation -- [ ] Autosave -- [ ] Dokumentation bearbeiten -- [ ] Dokumentation fortsetzen +- [x] Patientenverwaltung +- [x] Patientenliste +- [x] Wunddokumentationsliste +- [x] Dokumentation erstellen +- [x] Dokumentationsblöcke +- [x] Blocknavigation +- [x] Autosave +- [x] Dokumentation bearbeiten +- [x] Dokumentation fortsetzen ### Phase 4 -- Medien -- [ ] Fotoimport -- [ ] Bildverwaltung -- [ ] Digitale Signatur -- [ ] Mehrere Signaturen +- [x] Fotoimport +- [x] Bildverwaltung +- [x] Digitale Signatur +- [x] Mehrere Signaturen ### Phase 5 -- PDF -- [ ] PDF-Exporter -- [ ] Dokumentationsblöcke -- [ ] Signaturen -- [ ] Fotoanhang -- [ ] PDF anzeigen -- [ ] PDF teilen +- [x] PDF-Exporter +- [x] Dokumentationsblöcke +- [x] Signaturen +- [x] Fotoanhang +- [x] PDF anzeigen +- [x] PDF teilen ### Phase 6 -- Qualität und Stabilität @@ -431,29 +405,15 @@ Run - [ ] Tablet-Optimierung - [ ] Datenschutz-Review ------------------------------------------------------------------------- +### Phase 7 -- Multi-Device-Synchronisation -## Dokumentation - -Die ausführliche technische Architektur befindet sich in der -Projektdokumentation: - -``` text -docs/ -└── Architekturplanung.md -``` - -Dort werden unter anderem Datenmodell, Datenbankschema, -Navigationskonzept, Autosave, PDF-Erzeugung und Medienverwaltung -detailliert beschrieben. - ------------------------------------------------------------------------- - -## Status - -**VulneraDoc befindet sich aktuell in Entwicklung und ist nicht für den -produktiven Einsatz freigegeben.** - -Insbesondere bei der Verarbeitung realer Patientendaten müssen vor einem -Produktiveinsatz die rechtlichen, datenschutzrechtlichen und -sicherheitstechnischen Anforderungen abschließend geprüft werden. +- [ ] Geräteidentität und Pairing +- [ ] Automatische Geräteerkennung im WLAN +- [ ] Differenzabgleich / Sync-Protokoll +- [ ] Patienten synchronisieren +- [ ] Wunddokumentationen synchronisieren +- [ ] Fotos synchronisieren +- [ ] Konflikterkennung und Konfliktauflösung +- [ ] Automatische Synchronisation +- [ ] Sync-Status und manueller Fallback +- [ ] Multi-Device- und Recovery-Tests diff --git a/app/src/main/java/de/medapp/wunddoku/ui/documentation/edit/DocumentationEditScreen.kt b/app/src/main/java/de/medapp/wunddoku/ui/documentation/edit/DocumentationEditScreen.kt index 073c005..cbf76c9 100644 --- a/app/src/main/java/de/medapp/wunddoku/ui/documentation/edit/DocumentationEditScreen.kt +++ b/app/src/main/java/de/medapp/wunddoku/ui/documentation/edit/DocumentationEditScreen.kt @@ -22,6 +22,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons @@ -446,8 +447,28 @@ private fun DocumentationEditContent( onDeleteSignatureRequested: (signatureId: String) -> Unit, loadSignatureBitmap: suspend (documentationId: String, fileName: String) -> Bitmap?, ) { + val listState = rememberLazyListState() + + // Änderungswunsch: Beim Aufklappen eines Blocks dorthin scrollen, damit sein erster Eintrag + // sichtbar wird - wichtig bei langen Formularen, wenn ein weiter unten liegender Block + // aufgeklappt wird und sein Inhalt sonst unterhalb des sichtbaren Bereichs läge. Reagiert + // NUR auf tatsächliches Aufklappen (expandedBlockId wechselt zu einer konkreten Block-ID), + // nicht auf das Zuklappen (expandedBlockId wird null) - dort gibt es nichts, wohin gescrollt + // werden müsste. Da jeder Block GENAU EIN LazyColumn-Element ist (Kopfzeile + bei Bedarf + // aufgeklappter Inhalt gemeinsam, s. [BlockAccordionItem]) und die Block-Liste die ERSTEN + // Elemente der LazyColumn sind, landet der Block-Index 1:1 auf dem passenden + // LazyColumn-Index - der Block erscheint dadurch ganz oben im sichtbaren Bereich, sein + // erster Eintrag direkt darunter. + LaunchedEffect(expandedBlockId) { + val targetIndex = blocks.indexOfFirst { it.blockStateId == expandedBlockId } + if (targetIndex >= 0) { + listState.animateScrollToItem(targetIndex) + } + } + LazyColumn( modifier = modifier, + state = listState, contentPadding = PaddingValues(16.dp), verticalArrangement = Arrangement.spacedBy(12.dp), ) {