eAU-Reparatur relaunched

Fragen, Anregungen oder Tipps und Tricks? Hier ist der erste Anlaufpunkt.
Nicht sicher, wo ein Thema hingehört? Hier hinein - wir kümmern uns! :)

Moderator: Forum Moderatoren

Forumsregeln
TM-Startforum - "offen für alle Themen".
Beiträge, die in einen anderen Bereich passen, werden bei Bedarf verschoben.
Antworten
ralph.mertens
Beiträge: 18
Registriert: Donnerstag 14. Juli 2011, 06:52
14
Wohnort: Bismarckstr. 54, 10627 Berlin
Hat sich bedankt: 2 mal
Hat Dank erhalten: 7 mal
Kontaktdaten:

eAU-Reparatur relaunched

Beitrag von ralph.mertens »

Nachdem ich und viele meiner Kollegen mit dem Update auf Turbomed 24.1.1 eine böse Überraschung hinsichtlich der Programmstabilität beim Bearbeiten und Drucken von eAUs und eRezepten erlitten hatte, machte ich mich im Forum auf die Suche nach einer Lösung, um bei ca. 8 Programmabstürzen zumindest einigermaßen den Praxisarbeitstag mit 8 Arbeitsplätzen zu überstehen und nicht ständig die betroffenen Rechner neu starten zu müssen.

Ich fand die Lösung in dem Beitrag von FortiSecond eAU-Reparatur Nummer 2 aus dem Jahre 2022. Eines der Probleme von Turbomed ist die grottenschlechte Schnittstellenprogrammierung der TI-Funktionalitäten über Java. Stürzt TM ab, bleibt der verweiste Rest der Java-Applikation (meist) hängen und kann bei einem Neustart nicht wieder sauber aufgerufen werden. Die Tipps der freundlichen Callcenter-Mitarbeiter von TM: nach Programmstart den User wieder abmelden und neu anmelden, etc. helfen leider auch nur bedingt.

Ich habe den Programmcode von FortiSecond genommen und nur ein wenig aufgepimpt. Die Batchdatei löscht die verwaisten Java-Programme und startet ggf. TM neu. Sie muss NICHT, wie in dem Beitrag beschrieben, im Administratormodus aufgerufen werden.

Da ich gerne über die Taskleiste meine Programme aufrufe habe ich noch folgende Anpassungen vorgenommen (siehe auch Ordner an die Taskleiste anheften).
  • Link von der Batch-Datei (z.B. auf dem Desktop) anlegen
  • mit Rechts-Klick auf den Link auf Eigenschaften gehen
  • in "Ziel" vor den Programmpfad "explorer.exe" einfügen und den gesamten Programmpfad in Anführungszeichen setzen ("").
  • (optional) Programmicon ändern (ich habe das schöne alte von c:\TurboMed\Programm\TSConfig.exe genommen)
  • per Rechts-Klick "An Taskleiste anheften"
  • Fertig!
Ich starte TM nur noch über die Batchdatei. Sollte einmal die eAU/eRezept-Funktionalität nicht mehr funktionieren, ohne dass TM abstürzt, kann man einfach die Batch-Datei aufrufen. Diese löscht Java wieder und schaut, ob TM bereits läuft. Die von mir ausmarkierten ":: Pause", können natürlich auch wieder aktiviert werden.

Hier nun der Code. Prosit (möge es nützen)!

Code: Alles auswählen

:: rm 24.02.24
:: OS-Abfrage optimiert
:: Variablen umbenannt x -> TmInst, TmPfad -> TmLW
:: plugpath korrigiert
:: Ausgabe korrigiert
:: Pausen gelöscht
:: Turbomed-Autostart eingefügt (optional)

@echo off
::Auslesen der Windowsversion
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS=32BIT || set OS=64BIT
if %OS%==32BIT (
@for /f "tokens=2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\TurboMed EDV GmbH\TURBOMED\Current" /v Path') do @Set "TmInst=%%~j"
echo Win32
) else (
@for /f "tokens=2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\TurboMed EDV GmbH\TURBOMED\Current" /v Path') do @Set "TMInst=%%~j"
echo Win64
)

echo TurboMed Installation: %TmInst%
set TmLW=%TmInst:~0,2%
echo TM Laufwerk: %TmLW%
echo Die Variable wurden aus der Registry ausgelesen
echo %TmLW% als Variable TmLW gesetzt

set plugpath=%TmInst%Programm\communicator\plugins\
echo PlugPath=%plugpath% gesetzt
:: Pause
wmic process where ExecutablePath='%TmLW%\\TurboMed\\Programm\\communicator\\jre\\bin\\javaw.exe' delete
:: pause
del /s /q %plugpath%AeND
del /s /q %plugpath%ArminPlugin
del /s /q %plugpath%CgmAssist
del /s /q %plugpath%Clickdoc
del /s /q %plugpath%Connectdiagnostic
del /s /q %plugpath%CubePlugin
del /s /q %plugpath%DaleUV
del /s /q %plugpath%DaleUVCommunication
del /s /q %plugpath%DigaStore
del /s /q %plugpath%eInvoice
del /s /q %plugpath%EPrescription
del /s /q %plugpath%EVaccinationCertificateService
del /s /q %plugpath%IdentityProvider
del /s /q %plugpath%JesajaNetPlugin
del /s /q %plugpath%KomLePlugin
del /s /q %plugpath%KvCommunicationsPlugin
del /s /q %plugpath%MedDataPlugin
del /s /q %plugpath%Privadis
del /s /q %plugpath%ReadinessCheck
del /s /q %plugpath%SaniQPlugin
del /s /q %plugpath%SecureFileTransfer
del /s /q %plugpath%SecureMailClient
del /s /q %plugpath%SimpleFileTransfer
del /s /q %plugpath%SmartUpdate
del /s /q %plugpath%TelematikPlugin
del /s /q %plugpath%vitaphone
del /s /q %plugpath%WebService
:: pause
set Programm=TurboMed

tasklist |find /i "%Programm%" >nul  
if %errorlevel% == 0 (
echo Das Programm "%Programm%" laeuft gerade!  
) else (
echo Das Programm "%Programm%" laeuft gerade nicht!
start %TMInst%Programm\TurboMed.exe
)
:: pause
:: ********************************************************************************************************
Dr. med. Ralph E. Mertens
FA für Allgemeinmedizin
Bismarckstr. 54
10627 Berlin
https://dr-mertens.de
Benutzeravatar
Thomas
Beiträge: 720
Registriert: Dienstag 27. Februar 2007, 09:24
18
Hat sich bedankt: 45 mal
Hat Dank erhalten: 66 mal
Kontaktdaten:

Re: eAU-Reparatur relaunched

Beitrag von Thomas »

Ich habe am Ende den TM-Programmaufruf noch für Terminalserver angepasst. Ein einfaches Tasklist genügt da nicht, denn es gibt ja noch die anderen User. Außerdem würde ich das Programm unter einem Terminalserver auf jeden Fall als Admin laufen lassen, damit es auch die Java-Instanzen anderer User töten kann, bevor es die Verzeichnisse leert.

Code: Alles auswählen

:: rm 24.02.24, 03.03.24
:: OS-Abfrage optimiert
:: Variablen umbenannt x -> TmInst, TmPfad -> TmLW
:: plugpath korrigiert
:: Ausgabe korrigiert
:: Pausen gelöscht
:: Turbomed-Autostart eingefügt (optional)
:: Turbomed-Autostart für Terminalserver angepasst (Thomas, 03.03.24)

@echo off
::Auslesen der Windowsversion
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS=32BIT || set OS=64BIT
if %OS%==32BIT (
@for /f "tokens=2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\TurboMed EDV GmbH\TURBOMED\Current" /v Path') do @Set "TmInst=%%~j"
echo Win32
) else (
@for /f "tokens=2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\TurboMed EDV GmbH\TURBOMED\Current" /v Path') do @Set "TMInst=%%~j"
echo Win64
)

echo TurboMed Installation: %TmInst%
set TmLW=%TmInst:~0,2%
echo TM Laufwerk: %TmLW%
echo Die Variable wurden aus der Registry ausgelesen
echo %TmLW% als Variable TmLW gesetzt

set plugpath=%TmInst%Programm\communicator\plugins\
echo PlugPath=%plugpath% gesetzt
:: Pause
wmic process where ExecutablePath='%TmLW%\\TurboMed\\Programm\\communicator\\jre\\bin\\javaw.exe' delete
:: pause
del /s /q %plugpath%AeND
del /s /q %plugpath%ArminPlugin
del /s /q %plugpath%CgmAssist
del /s /q %plugpath%Clickdoc
del /s /q %plugpath%Connectdiagnostic
del /s /q %plugpath%CubePlugin
del /s /q %plugpath%DaleUV
del /s /q %plugpath%DaleUVCommunication
del /s /q %plugpath%DigaStore
del /s /q %plugpath%eInvoice
del /s /q %plugpath%EPrescription
del /s /q %plugpath%EVaccinationCertificateService
del /s /q %plugpath%IdentityProvider
del /s /q %plugpath%JesajaNetPlugin
del /s /q %plugpath%KomLePlugin
del /s /q %plugpath%KvCommunicationsPlugin
del /s /q %plugpath%MedDataPlugin
del /s /q %plugpath%Privadis
del /s /q %plugpath%ReadinessCheck
del /s /q %plugpath%SaniQPlugin
del /s /q %plugpath%SecureFileTransfer
del /s /q %plugpath%SecureMailClient
del /s /q %plugpath%SimpleFileTransfer
del /s /q %plugpath%SmartUpdate
del /s /q %plugpath%TelematikPlugin
del /s /q %plugpath%vitaphone
del /s /q %plugpath%WebService
:: pause
set Programm=TurboMed

tasklist /FI "USERNAME eq %username%" | find /i "%Programm%" >nul 2>&1
if %errorlevel% == 0 (
echo Das Programm "%Programm%" laeuft gerade!  
) else (
echo Das Programm "%Programm%" laeuft gerade nicht!
start %TMInst%Programm\TurboMed.exe
)
:: pause
:: ********************************************************************************************************
Zuletzt geändert von Thomas am Sonntag 3. März 2024, 21:02, insgesamt 1-mal geändert.
Benutzeravatar
FortiSecond
Beiträge: 986
Registriert: Dienstag 2. August 2022, 21:30
3
Hat sich bedankt: 450 mal
Hat Dank erhalten: 328 mal

Re: eAU-Reparatur relaunched

Beitrag von FortiSecond »

Raffiniert - und wieder ein Beweis, dass Schwarmintelligenz und Open Source eine tolle Kombination bilden.
"Nutzen first", egal ob zehn oder 10.000 Zeilen.

Danke!
--
Hinweis: Die Kraft kehrt zurück...
Antworten

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot], Bing [Bot], Google [Bot], Semrush [Bot] und 4 Gäste