eArztbrief verschwunden?!
Moderator: Forum Moderatoren
Forumsregeln
TM-Startforum - "offen für alle Themen".
Beiträge, die in einen anderen Bereich passen, werden bei Bedarf verschoben.
TM-Startforum - "offen für alle Themen".
Beiträge, die in einen anderen Bereich passen, werden bei Bedarf verschoben.
-
Jörg Stock
- Beiträge: 26
- Registriert: Donnerstag 21. Mai 2020, 05:44
- 6
- Hat sich bedankt: 5 mal
- Hat Dank erhalten: 8 mal
eArztbrief verschwunden?!
Gute Morgen,
mit dem aktuellen Update (26.2.2.6959) ist in KIM der eArztbrief plötzlich verschwunden. Habe ich an Änderung etwas verpasst oder ist dies ein Update Problem?
Danke an alle!
Viele Grüße aus Bad Schwartau, Jörg Stock
mit dem aktuellen Update (26.2.2.6959) ist in KIM der eArztbrief plötzlich verschwunden. Habe ich an Änderung etwas verpasst oder ist dies ein Update Problem?
Danke an alle!
Viele Grüße aus Bad Schwartau, Jörg Stock
Sie haben keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
PC Fuzzy
- Beiträge: 142
- Registriert: Mittwoch 21. Juni 2017, 07:31
- 8
- PVS: TurboMed
- Konnektortyp: Kocobox
- Hat sich bedankt: 14 mal
- Hat Dank erhalten: 43 mal
Re: eArztbrief verschwunden?!
@Jörg Stock, die Arztbriefe finden sie unter "Kommunikation/Nachrichtenverwaltungscenter". Warum diese unter eCOCKPIT nicht mehr zu sehen sind, entzieht sich meiner Kenntnis.
MfG PC Fuzzy
MfG PC Fuzzy
-
Jörg Stock
- Beiträge: 26
- Registriert: Donnerstag 21. Mai 2020, 05:44
- 6
- Hat sich bedankt: 5 mal
- Hat Dank erhalten: 8 mal
Re: eArztbrief verschwunden?!
Guten Morgen und Danke für die Antwort! In der Tat ist im Nachrichtenverwaltungscenter der eArztbrief noch vorhanden und funktionsfähig. So lässt sich entspannt weiter arbeiten und das eCockpit kann vernachlässigt weren. Vielen Dank!!
-
Frankolas
- Beiträge: 415
- Registriert: Sonntag 18. Januar 2009, 11:07
- 17
- Wohnort: Stralsund
- Hat sich bedankt: 94 mal
- Hat Dank erhalten: 64 mal
Re: eArztbrief verschwunden?!
Das ist mir auch schon aufgefallen. Die e-Arztbriefe waren im e-Cockpit nicht löschbar, tauchten immer wieder auf. Die e-Nachrichten hingegen kann man nach Erledigung markieren und löschen. Das finde ich sinnvoll, da ich darüber die Anforderungen der Pflegeheime via KIM bekomme. Sind die erledigt, werden diese gelöscht. Nur die Mails von Kollegen, die mir Briefe, Befunde oder irgendwelche PDFs senden, importiere ich dann über das Nachrichten-Verwaltungscenter patientenbezogen. Allerdings weiß ich immer noch nicht, ob die importierten e-Arztbriefe immer noch mein 2GB Mailpostfach bei CGM belasten, da ich diese auch nicht im Nachrichten-Verwaltungscenter löschen kann. Hmm ....?
- FortiSecond
- Beiträge: 1339
- Registriert: Dienstag 2. August 2022, 21:30
- 3
- Hat sich bedankt: 626 mal
- Hat Dank erhalten: 463 mal
Re: eArztbrief verschwunden?!
Es würde mich überraschen, wenn diese auf dem Server verblieben.
Denn bisher sah es immer so aus, dass TM sofort nach Abruf die Mails vom Server löscht.
Also nicht wie bei Thunderbird "Nachricht vom Server löschen, wenn im Posteingang gelöscht" oder so ähnlich.
Off-topic
Das kann umgekehrt auch ein echtes Ärgernis sein, z.B. wenn man archivieren oder parallel mit einem "richtigen" Mailclient arbeiten möchte. Dann MUSS man quasi TM den Zugriff per POP3 auf das Clientmodul entziehen, damit es einem nicht die Mails vorenthält - und dann nach einmal auch TM ranlassen. Oder sekündlich auf den KIM-Server mit POP3-Abrufen einhämmern, um TM zuvorzukommen.
In den Spezifikationen zu KIM und in den AGB bei CGM habe ich nichts von Rate Limiting gelesen. *hust*
Wenn ich so drüber nachdenke... das ist ganz schön mutig. Nicht, dass es nicht leicht rückverfolgbar wäre, aber eine gewisse DDOS-Vorsorge wäre hier in den Spezifikationen sicher nicht verkehrt.
Es gibt zwar noch einen anderen Weg, um 100% Abgriff vor einem Reingrätschen seitens TM zu ermöglichen, aber das dürfte den (rechtlichen) Rahmen sprengen, weil man dazu eventuelle einige Schwächen des Konzepts ausnutzen muss.
Aber es gibt ja noch den einfachen Weg, der alles abgreift: Einfach alle paar Minuten oder öfter eine Einwegspiegelung bestimmter Ordner von TM ausführen. Da liegen die KIM-Nachrichten ja auch herum. Entschlüsselt, wenn ich mich recht entsinne.
In den Spezifikationen zu KIM und in den AGB bei CGM habe ich nichts von Rate Limiting gelesen. *hust*
Wenn ich so drüber nachdenke... das ist ganz schön mutig. Nicht, dass es nicht leicht rückverfolgbar wäre, aber eine gewisse DDOS-Vorsorge wäre hier in den Spezifikationen sicher nicht verkehrt.
Es gibt zwar noch einen anderen Weg, um 100% Abgriff vor einem Reingrätschen seitens TM zu ermöglichen, aber das dürfte den (rechtlichen) Rahmen sprengen, weil man dazu eventuelle einige Schwächen des Konzepts ausnutzen muss.
Aber es gibt ja noch den einfachen Weg, der alles abgreift: Einfach alle paar Minuten oder öfter eine Einwegspiegelung bestimmter Ordner von TM ausführen. Da liegen die KIM-Nachrichten ja auch herum. Entschlüsselt, wenn ich mich recht entsinne.
--
42
42
-
pmortara
- Beiträge: 205
- Registriert: Donnerstag 12. April 2018, 09:09
- 8
- Wohnort: Frankfurt am Main
- Hat sich bedankt: 2 mal
- Hat Dank erhalten: 45 mal
- Kontaktdaten:
Re: eArztbrief verschwunden?!
Zu dem fehlenden Menüpunkt im eCockpit:
Der soll mit dem nächsten Update wieder zurück kommen!
Der soll mit dem nächsten Update wieder zurück kommen!
Patrick Mortara
Systemhaus Thomann GmbH
Systemhaus Thomann GmbH
-
turbotm
- Beiträge: 610
- Registriert: Montag 27. August 2012, 17:37
- 13
- Hat sich bedankt: 9 mal
- Hat Dank erhalten: 43 mal
Re: eArztbrief verschwunden?!
Falls es interessiert.
Ich arbeite auch lieber mit Thunderbird. Blöd ist aber, dass der TM Client die Mails auf dem Server löscht, d.h., wenn TM vor Thunderbird abruft, sind die Mails nicht im Thunderbird zu finden. Kann man anscheind auch nicht einstellen wie bei Thunderbird: Mails nach Abruf auf dem Server belassen...
Wir arbeiten bei uns mit einem zentralen Ordner, da werden die Faxe als PDF abgelegt, da landen die Laborergebnisse als PDF und auch die PDF (also die eigentlichen Briefe) der KIM Mails. So muss die Helferin nur an einem Ort scheuen, was es neues gibt.
TM legt die Briefe in den Ordner T:\TM\Daten\Var\earztbrief\Empfang
Auf dem Server läuft das kleine Programm "watchDirectory", das schaut jede Minute nach, ob es ein neues PDF gibt, und kopiert mir dieses in den zentralen Ordner.
Funktioniert seit 2 Jahren ganz gut.
Schönes Wochenende
Ich arbeite auch lieber mit Thunderbird. Blöd ist aber, dass der TM Client die Mails auf dem Server löscht, d.h., wenn TM vor Thunderbird abruft, sind die Mails nicht im Thunderbird zu finden. Kann man anscheind auch nicht einstellen wie bei Thunderbird: Mails nach Abruf auf dem Server belassen...
Wir arbeiten bei uns mit einem zentralen Ordner, da werden die Faxe als PDF abgelegt, da landen die Laborergebnisse als PDF und auch die PDF (also die eigentlichen Briefe) der KIM Mails. So muss die Helferin nur an einem Ort scheuen, was es neues gibt.
TM legt die Briefe in den Ordner T:\TM\Daten\Var\earztbrief\Empfang
Auf dem Server läuft das kleine Programm "watchDirectory", das schaut jede Minute nach, ob es ein neues PDF gibt, und kopiert mir dieses in den zentralen Ordner.
Funktioniert seit 2 Jahren ganz gut.
Schönes Wochenende
-
Landarzt21
- Beiträge: 231
- Registriert: Samstag 6. Februar 2021, 11:26
- 5
- Hat sich bedankt: 25 mal
- Hat Dank erhalten: 25 mal
Re: eArztbrief verschwunden?!
Danke @turbotm, dein Beitrag hat mich animiert mir die KI mal zur Hilfe zu holen um das mit einem AHK2 Script zu realisieren.
Ich muss es noch eine Weile testen und Benutzung wäre auf eigenes Risiko, aber auf den ersten Blick scheint es das zu machen was es soll.
Ich muss es noch eine Weile testen und Benutzung wäre auf eigenes Risiko, aber auf den ersten Blick scheint es das zu machen was es soll.
Sie haben keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- FortiSecond
- Beiträge: 1339
- Registriert: Dienstag 2. August 2022, 21:30
- 3
- Hat sich bedankt: 626 mal
- Hat Dank erhalten: 463 mal
Re: eArztbrief verschwunden?!
Danke.
Sehr beruhigend.
Stelle fest: Es fehlt an einem Kanal, wo der Geschäftsbereich transparent über solche Dinge aufklärt.
Sowas wie diese kaum rational nachvollziehbare Verstümmelung der Funktionalität ist leider wieder bezeichnend.
Eindruck: Anstatt Ressourcen in die Qualität zu stecken, lässt man hier den kleinen Bruder der Schulpraktikantin an der Oberfläche herumcoden. Aber ich kann´s verstehen, denn wenn er sich langweilt, ist er unausstehlich wegen seiner wackelnden Milchzähne. *scnr*
Ich warte auf den Tag, an dem man gefahrlos einfach mal 4.500 Zustellberichte im eCockpit löschen kann, ohne sein Abendbrot zu verpassen und ohne Cheats wie den Task-Manager weiterarbeiten zu können.
Vielleicht sollte ich mal anfangen, all diese Dinge nebenher in ein Diktiergerät abzuladen, um am Ende ein LLM ein kleines Büchlein über die lustigsten Turbomed-Momente verfassen zu lassen. Könnte ein satirisches Standardwerk für das Fach Software-Ergonomie werden.
"Nein, ich weigere mich, meinen Humor zu verlieren. Sonst müsste ich meinen Verstand gleich auch als abgängig vermelden."
--
42
42
-
Nervenarzt
- Beiträge: 316
- Registriert: Dienstag 14. Juli 2020, 13:26
- 5
- Hat sich bedankt: 36 mal
- Hat Dank erhalten: 11 mal
Re: eArztbrief verschwunden?!
Ah, das wusste ich noch nicht.turbotm hat geschrieben: ↑Mittwoch 13. Mai 2026, 18:00 Falls es interessiert.
Ich arbeite auch lieber mit Thunderbird. Blöd ist aber, dass der TM Client die Mails auf dem Server löscht, d.h., wenn TM vor Thunderbird abruft, sind die Mails nicht im Thunderbird zu finden. Kann man anscheind auch nicht einstellen wie bei Thunderbird: Mails nach Abruf auf dem Server belassen...
Wir arbeiten bei uns mit einem zentralen Ordner, da werden die Faxe als PDF abgelegt, da landen die Laborergebnisse als PDF und auch die PDF (also die eigentlichen Briefe) der KIM Mails. So muss die Helferin nur an einem Ort scheuen, was es neues gibt.
TM legt die Briefe in den Ordner T:\TM\Daten\Var\earztbrief\Empfang
Auf dem Server läuft das kleine Programm "watchDirectory", das schaut jede Minute nach, ob es ein neues PDF gibt, und kopiert mir dieses in den zentralen Ordner.
Funktioniert seit 2 Jahren ganz gut.
Schönes Wochenende
Kann ich dann den Inhalt dieses Verzeichnisses einfach löschen ? Bei mir sind da auch die ganzen Empfangsbestätigungen drin, die ich eigentlich regelmäßig über TM schon gelöscht habe ....
-
Landarzt21
- Beiträge: 231
- Registriert: Samstag 6. Februar 2021, 11:26
- 5
- Hat sich bedankt: 25 mal
- Hat Dank erhalten: 25 mal
Re: eArztbrief verschwunden?!
Hier das Skript, habe es nun einige Tage am laufen und scheint soweit das zu tun was ich will. Bitte vor Benutzung am Produktivsystem mal irgendwo mit Beispielordnern testen um zu sehen: Die Standardpfade müssen dann halt bei jedem angepasst werden. Es ist mit einer GUI, was eigentlich dann wenig sinn macht bzw. nur für die Erstkonfiguration der .ini, Ich habe es dann letztlich über die Windows Aufgabenplanung beim Systemstart eingebaut. Leider ist dadurch das Tray Icon später nicht zu sehen aber der Task Manager zeigt an dass es läuft und wenn es dies tut erscheinen im gewünschten Zielordner die PDF dateien... Aber alles ohne Gewähr und auf eigene Verantwortung. Die Globalen Variablen für ini File und HistoryFile müssen noch angepasst werden. Natürlich braucht man Autohotkey V2 auf dem Server.
Grüße Landarzt21
Code: Alles auswählen
#Requires AutoHotkey v2.0
#SingleInstance Force
SetWorkingDir(A_ScriptDir)
A_IconTip := "KIMSync - Arztbrief Überwachung" ; Der Text, der beim Drüberfahren erscheint
TraySetIcon("shell32.dll", 283) ; Ein Standard-Windows-Icon (z.B. ein kleines Dokument)
; --- Globale Variablen ---
global IniFile := "D:\Eigene Skripte\KIMSync\KIMSync.ini"
global HistoryFile := "D:\Eigene Skripte\KIMSync\KIMSync_History.txt"
global ProcessedFiles := Map()
global IsSyncing := false
try {
FileAppend(FormatTime(,"yyyy-MM-dd HH:mm:ss") . " - Skript gestartet.`n", A_ScriptDir "\debug.log")
} catch as e {
MsgBox("Konnte debug.log nicht schreiben: " . e.Message)
}
; Lade bereits verarbeitete Dateien aus der History
if FileExist(HistoryFile) {
Loop Read HistoryFile {
if (A_LoopReadLine != "") {
; Teilt die Zeile beim "|" Zeichen. Format: Pfad|Zeitstempel
parts := StrSplit(A_LoopReadLine, "|")
if (parts.Length == 2)
ProcessedFiles[parts[1]] := parts[2] ; Speichert Pfad + Zeitstempel
else
ProcessedFiles[A_LoopReadLine] := "ALT" ; Abwärtskompatibilität für alte History
}
}
}
; --- INI Initialisierung (Defaults) ---
If !FileExist(IniFile) {
IniWrite("D:\TurboMed\Daten\Var\eArztbrief\Empfang", IniFile, "Pfade", "Quelle")
IniWrite("\\fritz.nas\fritzbox\USB-SanDisk3-2Gen1-01\FRITZ\faxbox", IniFile, "Pfade", "Ziel")
IniWrite("pdf", IniFile, "Typen", "Alle")
IniWrite("pdf", IniFile, "Typen", "Aktiv")
IniWrite("0", IniFile, "Einstellungen", "ErledigtVerschieben")
IniWrite("1", IniFile, "Einstellungen", "InitBaseline") ; Standardmäßig Altbestand ignorieren
IniWrite("0", IniFile, "Einstellungen", "AutoStart") ; Standardmäßig Autostart aus
}
; --- Konfiguration laden ---
global QuellPfad := IniRead(IniFile, "Pfade", "Quelle", "D:\TurboMed\Daten\Var\eArztbrief\Empfang")
global ZielPfad := IniRead(IniFile, "Pfade", "Ziel", "\\muss\angepasst\werden")
global AlleTypen := IniRead(IniFile, "Typen", "Alle", "pdf")
global AktiveTypen := IniRead(IniFile, "Typen", "Aktiv", "pdf")
global MoveErledigt := IniRead(IniFile, "Einstellungen", "ErledigtVerschieben", "0")
global InitBaseline := IniRead(IniFile, "Einstellungen", "InitBaseline", "1")
global AutoStart := IniRead(IniFile, "Einstellungen", "AutoStart", "0")
; --- GUI Aufbau ---
MainGui := Gui("+Resize -MaximizeBox", "KIMSync - Verzeichnisüberwachung")
MainGui.OnEvent("Close", GuiClose)
; Sektion 1: Pfade & Hilfe
MainGui.Add("Text", "xm ym+4 w330", "Quellverzeichnis (Überwachung):")
MainGui.Add("Button", "x+5 ym w55 h24", "Hilfe").OnEvent("Click", ShowHelp)
global EdtQuelle := MainGui.Add("Edit", "xm y+5 w350", QuellPfad)
MainGui.Add("Button", "x+5 yp w40", "...").OnEvent("Click", (*) => SelectFolder(EdtQuelle))
MainGui.Add("Text", "xm y+15 w400", "Zielverzeichnis (Kopie):")
global EdtZiel := MainGui.Add("Edit", "xm y+5 w350", ZielPfad)
MainGui.Add("Button", "x+5 yp w40", "...").OnEvent("Click", (*) => SelectFolder(EdtZiel))
; Sektion 2: Dateitypen
MainGui.Add("Text", "xm y+20 w350", "Zu kopierende Dateitypen (mit Haken aktiv):")
global LV_Ext := MainGui.Add("ListView", "xm y+5 w350 r6 Checked -Multi", ["Dateiendung"])
; ListView Daten befüllen
AktiveMap := Map()
For Ext in StrSplit(AktiveTypen, ",")
if Trim(Ext) != ""
AktiveMap[StrLower(Trim(Ext))] := True
For Ext in StrSplit(AlleTypen, ",") {
cleanExt := StrLower(Trim(Ext))
if (cleanExt != "") {
RowId := LV_Ext.Add("", cleanExt)
if AktiveMap.Has(cleanExt)
LV_Ext.Modify(RowId, "Check")
}
}
; Werkzeuge für Dateitypen
MainGui.Add("Text", "xm y+10 w120", "Neue Endung (z.B. xml):")
global EdtNeuExt := MainGui.Add("Edit", "x+5 yp-3 w80", "")
global BtnAdd := MainGui.Add("Button", "x+10 yp w65", "Neu")
BtnAdd.OnEvent("Click", BtnAddExt)
global BtnDel := MainGui.Add("Button", "x+10 yp w65", "Löschen")
BtnDel.OnEvent("Click", BtnDelExt)
; Sektion 3: Einstellungen & Steuerung
global ChkBaseline := MainGui.Add("CheckBox", "xm y+25 " (InitBaseline ? "Checked" : ""), "Einmalig: Vorhandenen Altbestand ignorieren (nur künftige kopieren)")
global ChkErledigt := MainGui.Add("CheckBox", "xm y+5 " (MoveErledigt ? "Checked" : ""), "Nach Erfolg: Überordner in 'erledigt' verschieben")
global BtnStart := MainGui.Add("Button", "xm y+15 w150 h40 default", "Überwachung Starten")
BtnStart.OnEvent("Click", ToggleSync)
global SB := MainGui.Add("StatusBar",, " Bereit.")
MainGui.Show()
; --- Autostart Logik ---
; Wenn das Programm beim letzten Schließen aktiv war, starte die Überwachung sofort
if (AutoStart == "1") {
ToggleSync()
}
; --- Logik-Funktionen ---
ShowHelp(*) {
HelpText := (
"Guten Tag!`n`n"
"Dieses Programm arbeitet wie ein unsichtbarer, fleißiger Helfer im Hintergrund. "
"Sobald in TurboMed ein neuer Arztbrief ankommt, macht das Programm automatisch eine Kopie "
"davon und legt sie zur Sicherheit auf der FritzBox ab.`n`n"
"Hier ist die kurze Erklärung der Knöpfe und Felder:`n`n"
"1. Quellverzeichnis: Das ist der Ordner, in dem TurboMed die neuen Briefe ablegt.`n"
"2. Zielverzeichnis: Das ist das Ziel (z.B. die FritzBox), wo die Kopie sicher aufbewahrt wird.`n"
"3. Dateitypen: Hier steht, dass z.B. nur PDFs beachtet werden sollen.`n`n"
"WICHTIG - 'Vorhandenen Altbestand ignorieren':`n"
"Wenn Sie das Programm zum allerersten Mal starten, setzen Sie hier den Haken. Das Programm "
"merkt sich dann blitzschnell alle bisherigen alten Briefe, OHNE sie zu kopieren. Danach "
"werden nur noch brandneue Briefe kopiert. Der Haken verschwindet dann von selbst.`n`n"
"WICHTIG - 'Überordner in erledigt verschieben':`n"
"Setzen Sie diesen Haken, wenn das Programm nach dem Kopieren aufräumen soll. Der Ordner des "
"Arztbriefs wird dann in einen neuen Unterordner namens 'erledigt' verschoben. "
"So bleibt der TurboMed-Ordner immer schön aufgeräumt und übersichtlich.`n`n"
"Automatische Fortsetzung:`n"
"Wenn Sie das Programm abends schließen (oder der PC heruntergefahren wird), während die "
"Überwachung noch lief, merkt sich das Programm das! Beim nächsten Start legt es sofort "
"wieder automatisch los.`n`n"
"Bedienung:`n"
"Klicken Sie einfach auf 'Überwachung Starten' und lassen Sie das Fenster offen (Sie können "
"es klein machen). Das Programm passt nun von allein auf."
)
MsgBox(HelpText, "Anleitung & Hilfe", "Iconi")
}
SelectFolder(EditControl) {
SelectedPath := DirSelect(EditControl.Value, 3, "Bitte Ordner auswählen:")
if (SelectedPath != "")
EditControl.Value := SelectedPath
}
BtnAddExt(*) {
newExt := StrLower(StrReplace(Trim(EdtNeuExt.Value), ".", ""))
if (newExt != "") {
Loop LV_Ext.GetCount() {
if (LV_Ext.GetText(A_Index, 1) == newExt) {
EdtNeuExt.Value := ""
return
}
}
LV_Ext.Add("Check", newExt)
EdtNeuExt.Value := ""
}
}
BtnDelExt(*) {
RowNumber := 0
RowsToDelete := []
Loop {
RowNumber := LV_Ext.GetNext(RowNumber)
if not RowNumber
break
RowsToDelete.Push(RowNumber)
}
Loop RowsToDelete.Length {
idx := RowsToDelete.Length - A_Index + 1
LV_Ext.Delete(RowsToDelete[idx])
}
}
SaveConfig() {
IniWrite(EdtQuelle.Value, IniFile, "Pfade", "Quelle")
IniWrite(EdtZiel.Value, IniFile, "Pfade", "Ziel")
IniWrite(ChkErledigt.Value, IniFile, "Einstellungen", "ErledigtVerschieben")
IniWrite(ChkBaseline.Value, IniFile, "Einstellungen", "InitBaseline")
IniWrite((IsSyncing ? "1" : "0"), IniFile, "Einstellungen", "AutoStart")
AllArr := [], ActArr := []
Loop LV_Ext.GetCount() {
txt := LV_Ext.GetText(A_Index, 1)
AllArr.Push(txt)
if (LV_Ext.GetNext(A_Index - 1, "Checked") == A_Index)
ActArr.Push(txt)
}
IniWrite(Join(AllArr, ","), IniFile, "Typen", "Alle")
IniWrite(Join(ActArr, ","), IniFile, "Typen", "Aktiv")
}
Join(Arr, Sep) {
str := ""
For v in Arr
str .= (str == "" ? "" : Sep) v
return str
}
GuiClose(*) {
SaveConfig()
ExitApp
}
ToggleSync(*) {
global IsSyncing
SaveConfig()
if IsSyncing {
SetTimer(SyncRoutine, 0)
BtnStart.Text := "Überwachung Starten"
IsSyncing := false
SB.SetText(" Überwachung gestoppt.")
} else {
Q := EdtQuelle.Value
if !DirExist(Q) {
SB.SetText(" Fehler: Quellpfad nicht gefunden.")
return
}
if (ChkBaseline.Value) {
SB.SetText(" Erfasse Altbestand. Bitte warten...")
AktiveMap := Map()
Loop LV_Ext.GetCount() {
if (LV_Ext.GetNext(A_Index - 1, "Checked") == A_Index)
AktiveMap[StrLower(LV_Ext.GetText(A_Index, 1))] := True
}
Loop Files, Q "\*.*", "R" {
if InStr(A_LoopFilePath, Q "\erledigt\")
continue
if !AktiveMap.Has(StrLower(A_LoopFileExt))
continue
; Wenn Datei noch nicht bekannt ist ODER wenn das Änderungsdatum abweicht
if !ProcessedFiles.Has(A_LoopFilePath) || (ProcessedFiles[A_LoopFilePath] != "ALT" && ProcessedFiles[A_LoopFilePath] != A_LoopFileTimeModified) {
ProcessedFiles[A_LoopFilePath] := A_LoopFileTimeModified
FileAppend A_LoopFilePath "|" A_LoopFileTimeModified "`n", HistoryFile
}
}
ChkBaseline.Value := 0
SaveConfig()
}
SetTimer(SyncRoutine, 5000)
BtnStart.Text := "Überwachung Stoppen"
IsSyncing := true
SB.SetText(" Überwachung aktiv...")
SyncRoutine()
}
}
SyncRoutine() {
Q := EdtQuelle.Value
Z := EdtZiel.Value
if !DirExist(Q) || !DirExist(Z) {
SB.SetText(" Fehler: Quell- oder Zielpfad nicht gefunden.")
return
}
AktiveMap := Map()
RowId := 0
Loop {
RowId := LV_Ext.GetNext(RowId, "Checked")
if not RowId
break
AktiveMap[StrLower(LV_Ext.GetText(RowId, 1))] := True
}
FoldersToMove := Map()
Loop Files, Q "\*.*", "R" {
if InStr(A_LoopFilePath, Q "\erledigt\")
continue
if !AktiveMap.Has(StrLower(A_LoopFileExt))
continue
; PRÜFUNG: Ist die Datei schon bekannt UND hat sich das Datum NICHT geändert?
if ProcessedFiles.Has(A_LoopFilePath) {
; Wenn alter Eintrag ohne Datum ODER Datum ist exakt gleich -> überspringen
if (ProcessedFiles[A_LoopFilePath] == "ALT" || ProcessedFiles[A_LoopFilePath] == A_LoopFileTimeModified)
continue
}
try {
FreeMB := DriveGetSpaceFree(Z)
if (FreeMB < ((A_LoopFileSize / 1024 / 1024) + 10)) {
SB.SetText(" Fehler: Zielspeicher fast voll!")
continue
}
}
TargetFile := Z "\" A_LoopFileName
if FileExist(TargetFile) {
SplitPath A_LoopFileName, &NameNoExt, , &OutExt
c := 1
while FileExist(Z "\" NameNoExt "_" c "." OutExt)
c++
TargetFile := Z "\" NameNoExt "_" c "." OutExt
}
try {
FileCopy A_LoopFilePath, TargetFile
if FileExist(TargetFile) && (FileGetSize(TargetFile) == A_LoopFileSize) {
; Erfolgreich kopiert: Neuen Zeitstempel in die History aufnehmen
ProcessedFiles[A_LoopFilePath] := A_LoopFileTimeModified
FileAppend A_LoopFilePath "|" A_LoopFileTimeModified "`n", HistoryFile
if (ChkErledigt.Value) {
SplitPath A_LoopFilePath, , &FDir
if (FDir != Q)
FoldersToMove[FDir] := True
}
}
}
}
if (ChkErledigt.Value && FoldersToMove.Count > 0) {
ErledigtBase := Q "\erledigt"
if !DirExist(ErledigtBase)
DirCreate(ErledigtBase)
For FDir in FoldersToMove {
if !DirExist(FDir)
continue
SplitPath FDir, &DirName
TargetFolder := ErledigtBase "\" DirName
if DirExist(TargetFolder) {
c := 1
while DirExist(ErledigtBase "\" DirName "_" c)
c++
TargetFolder := ErledigtBase "\" DirName "_" c
}
try {
DirMove FDir, TargetFolder
}
}
}
}Wer ist online?
Mitglieder in diesem Forum: Ahrefs [Bot], Google [Bot], Semrush [Bot] und 12 Gäste