feat(dekon): der Dekon-Platz ist nicht dokumentierbar — Dekon-P und Platzführung fehlen
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 10/100
Direzione di ricerca
This is a cross-cutting module spanning the listed Domain, persistence, sync, UI, master-data, PDF, and test files; first read the CO measurement module and the referenced related issues, especially #381, before proposing work. The issue identifies migration V21→V22, sync round-trip, ViewModel, acceptance render tests, and the screenshot requirement in AGENTS.md. Done requires resolving the scope and sequencing questions, then implementing and testing the agreed Dekon-P and site-management work; this is explicitly beyond a first-timer-sized contribution.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Rückmeldung aus der Praxis
Apropos... Doku für den Dekon Platz wäre auch noch etwas was wir integrieren
könnten. Aber dann wieder als extra Android App mit Datentransfer
Heute
Vom ABC-Einsatz kennt Lagebuch nichts.
grep -riE "dekon|kontamin|gefahrgut|gsg|strahlenschutz|messtrupp" \
src/ docs/*.md README.md ROADMAP.md CHANGELOG.md
→ kein Treffer. Der einzige Treffer im ganzen Repo ist ein Link-Name
„Gefahrgut" in einer Testfixture
(tests/LageBuch.AppLogic.Tests/LinksViewModelTests.cs:108).
Vier Dinge kommen nahe und reichen jeweils nicht:
- Atemschutz kennt den CSA-Trupp längst als eigenen Typ — 3 Personen,
kürzere Einsatzzeit:
Wer zu dekontaminieren ist, steht also schon namentlich in der Einsatzdatei:// src/LageBuch.Domain/Atemschutz/AtemschutzTrupp.cs public const string ChemicalTruppDesignation = "CSA-Trupp"; public const int DefaultChemicalMaxDurationMinutes = 20;
TruppMember(src/LageBuch.Domain/Atemschutz/TruppMember.cs) ist der
einzige Ort, an dem einzelne Personen modelliert sind. Was nach dem
Rückzug mit dem Trupp passiert, endet dort. - Kräfte sind Zahlen, keine Personen —
ForceUnitträgt
PersonnelCount,ScbaCount,OfficerCount. Ein Dekon-Platz schleust aber
Personen durch, keine Stärken. - Checklisten gibt es, aber genau eine je Richtung (Aufbau/Abbau) aus den
Stammdaten. Der Aufbau eines Dekon-Platzes ist eine eigene Liste, die nur in
der ABC-Lage gebraucht wird. - CO-Messung (
src/LageBuch.Domain/CoMeasurement/,
CoMessprotokollViewModel,CoMessprotokollSection) ist das einzige
vergleichbare Protokollmodul — und damit die Bauvorlage.
Die „extra Android App" gibt es schon — den Datentransfer auch
Die Android-App ist kein zweites Programm, sondern der Android-Head desselben
Codes (src/LageBuch.App.Android/, net10.0-android), und sie ist
ausdrücklich ein Begleitgerät:
Android kann beitreten, aber selbst keinen Einsatz freigeben. Die App ist
ein Begleitgerät.
—docs/datenschutz-und-sicherheit.md:211
Der „Datentransfer" ist die vorhandene Synchronisation: TLS mit
Trust-on-First-Use, vierstellige PIN, SignalR über Port 5859
(src/LageBuch.Sync/SyncProtocol.cs, src/LageBuch.Sync.Hosting/IncidentHost.cs).
Die Ansichten liegen ohnehin gemeinsam in LageBuch.App.Shared und laufen auf
beiden Köpfen.
Ein Tablet am Dekon-Platz braucht also kein neues Repo und keine zweite
App — es braucht einen Reiter DEKON in der vorhandenen, und der Weg der Daten
in den ELW ist bereits gebaut. Ein separates Programm hätte dagegen kein
Übergabeformat: .fwincident ist eine nackte SQLite-Datei mit einem
*.files/-Verzeichnis daneben, es gibt weder Einsatz-Import/-Export noch QR,
Bluetooth oder NFC.
Ein Haken bleibt: #381 — die veröffentlichte APK deklariert keine
INTERNET-Berechtigung, Beitreten kann damit gar nicht funktionieren. Solange
das offen ist, ist jedes Begleitgerät-Feature Theorie.
Vorschlag
Fachlich zwei Hälften: Dekon-P (Einsatzkräfte nach FwDV 500) und
Platzführung/Ressourcen. Dekon-V und Geräte-/Fahrzeugdekon bleiben
ausdrücklich draußen, siehe „Zu klären".
- Domain —
src/LageBuch.Domain/Dekon/nach dem Muster von
CoMeasurement/: eine Personenzeile (Name, Herkunft/Trupp, Dekon-Stufe,
angemeldet um, fertig um, Status, Bemerkung) und ein Platz-Kopf (Standort,
betriebsbereit ab, Stufe, verantwortliche Funktion, Personal am Platz).
Status als Enum, dessen Werte nur angehängt werden dürfen — Enums werden
ordinal persistiert (EtbDirection). Incident— neue Sammlung plus Mutationsmethoden mitEnsureOpen()und
automatischem ETB-Systemeintrag („Dekon-Platz betriebsbereit", „Trupp 2
dekontaminiert"). Achtung:Incident.Rehydrateist positional, die Signatur
und alle drei Aufrufer müssen mit.- Persistenz —
ApplyV22insrc/LageBuch.Persistence/Sqlite/Migrations.cs
(CurrentVersion21 → 22), Tabellendekon_platz/dekon_persons, in
IncidentRepository.Savelöschen-und-neuschreiben wie jede andere. - Sync — neue
[JsonDerivedType]-Kommandos inSyncCommand.cs, dazu
IIncidentSession,CommandApplier,LocalIncidentSession,
RemoteIncidentSession,IncidentSnapshotundSnapshotMapper. Das ist der
„Datentransfer" aus der Rückmeldung — er entsteht hier, nicht in einer
zweiten App. - UI —
DekonViewModel+DekonView.axaml, ein
<TabItem Header="DEKON">inIncidentWorkspaceView.axaml. Die Anmeldung
einer Person sollte die Atemschutztrupps als Quelle anbieten: die Namen
stehen dort bereits, abtippen am Dekon-Platz ist der falsche Ort. - Stammdaten — Dekon-Stufen und Vorgabezeiten als Felder in
IncidentSettings(src/LageBuch.Persistence/MasterData/MasterDataSet.cs),
mitsamtdocs/master-data.example.jsonund
docs/samples/demo-stammdaten.json. Eine eigene Dekon-Aufbau-Checkliste
wäre die zweite Stammdaten-Erweiterung. - Bericht — Flag in
IncidentPdfSections, Abschnitt unter
src/LageBuch.Documents/Sections/, Haken inPdfExportOptionsViewModel. - Tests — Domain, Migration V21→V22, Sync-Roundtrip, ViewModel und ein
Render-Test intests/LageBuch.Acceptance.Tests; für den PR gilt die
Screenshot-Pflicht ausAGENTS.md.
Größenordnung, ehrlich: das CO-Messprotokoll (955862d) waren rund 2000 Zeilen
über 38 Dateien. Das hier ist kein Feierabend-Issue.
Zu klären
- Reihenfolge. #381 muss vorher zu, sonst kann das Begleitgerät gar nicht
beitreten. Und die Roadmap sagt für v0.6 ausdrücklich „nichts Neues" und für
v0.7 Sicherheit — ein neues Modul kollidiert damit. Der ehrliche Platz ist
„Beyond 1.0" neben der Wasserförderung, oder direkt nach #351: vor dem
Formatfreeze darf eine neue Tabelle noch wandern, danach nicht mehr. - Reicht das Netz bis zum Dekon-Platz? Der Dekon-Platz liegt an der Grenze
des Absperrbereichs, der ELW steht woanders. Die Synchronisation braucht
LAN oder Tailscale, und ein beigetretener Client hält keine eigene Autorität
(RemoteIncidentSession) — reißt die Verbindung ab, kann am Dekon-Platz
nichts mehr geschrieben werden. Entweder man nimmt das in Kauf, oder das
Modul braucht Offline-Pufferung. Letzteres wäre ein eigenes, größeres Thema
und nicht Teil dieses Issues. - Dekon-V ist bewusst draußen. Die Dekon von Verletzten und Betroffenen
brächte Gesundheitsdaten (Art. 9 DSGVO) in eine Einsatzdatei, die heute
Einsatzkräfte und Bewohnernamen kennt. Das ist eine eigene Entscheidung mit
eigenem Datenschutzkapitel, kein Nachziehen. - Datenschutz auch bei Dekon-P. „Diese Person wurde dekontaminiert" ist
eine neue Kategorie personenbezogener Daten und muss in
docs/datenschutz-und-sicherheit.mdnachgetragen werden, samt Löschkonzept —
dieselbe Auflage wie bei #427. - Elf Reiter.
IncidentWorkspaceView.axamlhat heute zehn; auf einem
Android-Tablet ist das bereits eng. Ein Reiter, der nur in der ABC-Lage
gebraucht wird, sollte vielleicht nicht immer sichtbar sein — dieselbe Frage
stellt #405. - Welche Norm, und wo stehen die Zahlen? Dekon-Stufen und der Begriff
Dekon-P kommen aus der FwDV 500. Die Werte gehören in die Stammdaten, nicht
als Regel in den Code — genau die Lehre aus #398 und #418.
Verwandt: #381, #351, #399, #405, #418, #427.
- Lingua principale
- C#
- Stelle
- 1
- Fork
- 3
- Merge medio
- 4h 34m
- PR unite (30g)
- 182
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di CodeForFire/lagebuch
-
bug ux
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
CodeForFire/lagebuch#714 ·
I maintainer di solito rispondono entro 1 giorno
-
bug ux
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
CodeForFire/lagebuch#713 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
CodeForFire/lagebuch#405 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
CodeForFire/lagebuch#349 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
CodeForFire/lagebuch#348 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di CodeForFire/lagebuch
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
KnifeLemon/Filee#363 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
area-Native untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
dotnet/machinelearning#7837 ·
I maintainer di solito rispondono entro 2 giorni