Files
VulneraDoc/README.md
T

10 KiB

VulneraDoc

VulneraDoc ist eine native Android-Anwendung zur strukturierten, offlinefähigen Wunddokumentation.

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


Features

Patientenverwaltung

  • Patienten anlegen und bearbeiten
  • Stammdatenverwaltung:
    • Vor- und Nachname
    • Geburtsdatum
    • Adresse
    • bis zu drei Telefonnummern
  • Patienten durchsuchen
  • Datum der letzten Wunddokumentation anzeigen

Wunddokumentation

Eine Wunddokumentation besteht aus mehreren datengetriebenen Dokumentationsblöcken.

Jeder Block kann enthalten:

  • vordefinierte Checkboxen
  • Freitext
  • automatische Speicherung bei Änderungen

Zwischen den Dokumentationsblöcken kann auf Smartphone und Tablet navigiert werden.

Bestehende Dokumentationen können:

  • bearbeitet
  • gelöscht
  • als Grundlage einer neuen Dokumentation fortgesetzt

werden.

Beim Fortsetzen wird eine neue Dokumentation aus dem vorherigen Stand erzeugt. Die ursprüngliche Dokumentation bleibt unverändert erhalten.

Autosave

VulneraDoc benötigt keinen klassischen Speichern-Button.

Änderungen an Checkboxen werden unmittelbar persistiert. Freitexte werden nach einem kurzen Debounce automatisch gespeichert.

Die lokale Datenbank bildet jederzeit den maßgeblichen persistierten Stand der Dokumentation.

Fotos

Einer Dokumentation können mehrere Fotos hinzugefügt werden.

Der Import erfolgt über den Android Photo Picker.

Importierte Bilder werden in den internen App-Speicher kopiert und dadurch unabhängig von der ursprünglichen Datei in der Galerie verwaltet.

Digitale Unterschriften

Dokumentationen können direkt auf dem Android-Gerät per Finger oder Stylus unterschrieben werden.

Das Datenmodell unterstützt mehrere Unterschriften pro Dokumentation, beispielsweise für unterschiedliche Wundversorger.

PDF-Export

Aus einer Dokumentation kann ein PDF erzeugt werden.

Dabei werden ausschließlich tatsächlich bearbeitete Dokumentationsblöcke ausgegeben.

Das PDF enthält:

  1. Patienten- und Dokumentationsinformationen
  2. bearbeitete Dokumentationsblöcke
  3. vorhandene Unterschriften
  4. angehängte Fotos

Anschließend kann das PDF mit einem installierten PDF-Reader geöffnet oder über den Android Sharesheet geteilt werden.

Das Dateinamensschema lautet:

Erstelldatum_Patientenname_Geburtsdatum.pdf

Beispiel:

2026-08-19_Max_Mustermann_1980-03-14.pdf

Offline First

VulneraDoc ist als vollständig offlinefähige Anwendung konzipiert.

Für die Kernfunktionen ist keine Internetverbindung erforderlich:

  • Patientenverwaltung
  • Dokumentationen erstellen und bearbeiten
  • Autosave
  • Fotos
  • Signaturen
  • Suche
  • PDF-Erzeugung

Eine optionale Synchronisation mehrerer Geräte innerhalb eines lokalen WLANs ist für eine spätere Version vorgesehen, aber nicht Bestandteil von Version 1.


Tech Stack

Bereich Technologie


Sprache Kotlin UI Jetpack Compose Design Material 3 UI-State ViewModel + StateFlow Asynchronität Kotlin Coroutines Persistenz Room Datenbank SQLite Navigation Navigation Compose Fotos Android Photo Picker PDF android.graphics.pdf.PdfDocument Dateifreigabe Android FileProvider


Architektur

VulneraDoc verwendet eine bewusst schlanke Schichtenarchitektur:

Jetpack Compose UI
        │
        ▼
    ViewModel
        │
        ▼
    Repository
        │
        ▼
       DAO
        │
        ▼
      Room
        │
        ▼
     SQLite

UI

Jetpack Compose stellt den aktuellen Zustand dar und leitet Benutzeraktionen an das jeweilige ViewModel weiter.

Die UI enthält keine SQL-, Datei- oder PDF-Logik.

ViewModel

ViewModels verwalten den UI-State über StateFlow und koordinieren Benutzeraktionen.

Repository

Repositories bilden die zentrale Datenzugriffsschicht und koordinieren DAOs sowie bei Bedarf lokale Dateien.

DAO

DAOs enthalten ausschließlich Room-/SQLite-bezogene Datenbankoperationen.

Domain Model

Fachliche Datenmodelle sind von Room und Compose getrennt.

Room-spezifische Entities werden ausschließlich für die Persistenz verwendet.


Datenmodell

Die wichtigsten Relationen sind:

Patient
   │
   │ 1:n
   ▼
Documentation
   │
   ├── 1:n ── BlockState
   │              │
   │              └── 1:n ── CheckItemState
   │
   ├── 1:n ── Photo
   │
   └── 1:n ── Signature

Als Primärschlüssel werden UUIDs verwendet.

Dies erleichtert insbesondere eine mögliche spätere Synchronisation zwischen mehreren Geräten.


Historische Dokumentationen

Die Struktur einer neuen Wunddokumentation wird durch einen zentralen DocumentationCatalog definiert.

Beim Erstellen einer Dokumentation werden die verwendeten:

  • Blocktitel
  • Checkboxtexte
  • Reihenfolgen

als Snapshot persistiert.

DocumentationCatalog
        │
        │ neue Dokumentation
        ▼
persistierter Snapshot
        │
        ▼
historische Dokumentation

Dadurch verändern spätere Änderungen des Dokumentationskatalogs nicht rückwirkend bereits vorhandene Dokumentationen.


Projektstruktur

Die Anwendung orientiert sich an folgender Struktur:

app/
├── data/
│   ├── database/
│   ├── dao/
│   ├── entity/
│   ├── mapper/
│   └── repository/
│
├── domain/
│   └── model/
│
├── ui/
│   ├── documentation/
│   ├── patients/
│   ├── components/
│   ├── navigation/
│   └── theme/
│
├── media/
│   ├── photo/
│   └── signature/
│
├── pdf/
├── di/
└── MainActivity.kt

Dependency Injection wird zunächst ohne zusätzliches Framework über einen zentralen AppContainer umgesetzt.


Datenschutz und lokale Speicherung

VulneraDoc verarbeitet sensible personenbezogene und medizinische Daten.

Daher gelten unter anderem folgende Architekturentscheidungen:

  • Patientendaten werden lokal gespeichert.
  • Fotos, Signaturen und PDFs werden bevorzugt im internen App-Speicher abgelegt.
  • Bilder werden nicht als BLOB in SQLite gespeichert.
  • Es werden keine Patientendaten in normalen Logs ausgegeben.
  • Es werden keine Analytics-Dienste verwendet.
  • Cloud-/Android-Backups werden deaktiviert bzw. bewusst eingeschränkt.
  • Unnötige Android-Berechtigungen werden vermieden.
  • FLAG_SECURE verhindert Screenshots und Recent-Apps-Vorschaubilder.
  • Dateien werden extern ausschließlich gezielt über FileProvider und content://-URIs freigegeben.

PDF und Schreibschutz

VulneraDoc erzeugt in Version 1 ein statisches PDF ohne interaktive Formularfelder.

Mit „schreibgeschützt" ist derzeit kein kryptographischer Manipulationsschutz gemeint.

Insbesondere sind in Version 1 nicht vorgesehen:

  • PDF-Owner-Passwort
  • Berechtigungsschutz
  • kryptographische PDF-Signatur

Die PDF-Erzeugung wird hinter einem DocumentationPdfExporter abstrahiert, sodass die konkrete PDF-Implementierung später ausgetauscht werden kann.


Entwicklung

Voraussetzungen

  • Android Studio
  • Android SDK
  • JDK über Android Studio
  • Android-Gerät oder Android Emulator

Projekt öffnen

Repository klonen:

git clone <repository-url>
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:

Gradle Sync
    ↓
Build / Make Project
    ↓
Android-Gerät oder Emulator auswählen
    ↓
Run

Projektphasen

Phase 1 -- Architektur

  • Projektarchitektur
  • Datenmodell
  • Datenbankschema
  • Navigation
  • PDF-Konzept
  • Autosave-Konzept
  • Medien- und Signaturkonzept

Phase 2 -- Projektgrundgerüst

  • Android-Projekt
  • Room-Datenbank
  • Entities
  • DAOs
  • Repositories
  • Navigation
  • ViewModels

Phase 3 -- Kernfunktionalität

  • Patientenverwaltung
  • Patientenliste
  • Wunddokumentationsliste
  • Dokumentation erstellen
  • Dokumentationsblöcke
  • Blocknavigation
  • Autosave
  • Dokumentation bearbeiten
  • Dokumentation fortsetzen

Phase 4 -- Medien

  • Fotoimport
  • Bildverwaltung
  • Digitale Signatur
  • Mehrere Signaturen

Phase 5 -- PDF

  • PDF-Exporter
  • Dokumentationsblöcke
  • Signaturen
  • Fotoanhang
  • PDF anzeigen
  • PDF teilen

Phase 6 -- Qualität und Stabilität

  • Unit Tests
  • Room Tests
  • UI Tests
  • Fehlerbehandlung
  • Tablet-Optimierung
  • Datenschutz-Review

Dokumentation

Die ausführliche technische Architektur befindet sich in der Projektdokumentation:

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.