TCMSOFT – Inhalt

Protokolle und Diagnose

Diese Seite zeigt, wo TCMSOFT, der Update-Dienst und die Agenten mitschreiben, was sie tun, und wie Sie den Zustand prüfen. Sie brauchen sie, bevor Sie einen Fehler beheben oder an den TCMSOFT-Support weitergeben. Was eine einzelne Meldung bedeutet, steht unter Meldungen und ihre Bedeutung. Schrittfolgen für häufige Fehler stehen unter Typische Supportfälle.

In den Befehlen steht <Datenordner> für den Ordner auf dem Server, den Sie bei der Einrichtung angelegt haben,

    1. /volume1/docker/tcmsoft (Synology) oder /var/lib/tcmsoft (Mikroserver). <Server> steht für die Adresse des Servers im Praxisnetz.

Welche Quelle wofür

Frage Erste Quelle Wo
Läuft TCMSOFT überhaupt? docker ps -a, Gesundheitsprüfung /health Server (SSH), Browser
Warum startet TCMSOFT nicht? docker logs tcmsoft Server (SSH)
Was hat das letzte Update gemacht? Glocke, Karte Programmversion und Updates, docker logs tcmsoft-updater TCMSOFT, Server
Warum ist ein Update gescheitert? <Datenordner>/updater/protokoll/ Server (SSH)
Läuft gerade ein Update? <Datenordner>/updater/vorgang.json, Karte Programmversion und Updates Server, TCMSOFT
Warum druckt ein Arbeitsplatz nicht? Protokoll des Print Agent, Stammdaten › Drucker Arbeitsplatz, TCMSOFT
Warum kommt ein Befund oder Scan nicht an? Protokoll des Prismamed Agent, Stammdaten › Agenten Arbeitsplatz, TCMSOFT
Warum druckt der Server-Drucker nicht? docker logs tcmsoft, docker exec tcmsoft lpstat -v Server (SSH)
Ist die Installation TCMSOFT oder Salvia Software? Anmeldeseite („TCMSOFT“ oder „Salvia Software“), docker logs tcmsoft; ob die Zeile Produkt im Container angekommen ist: docker exec tcmsoft printenv Produkt Browser, Server (SSH)

Auf dem Server

Zugang

Alle Befehle auf dieser Seite laufen per SSH auf der NAS bzw. dem Server. Auf einer Synology melden Sie sich als Administrator an und wechseln vorher mit sudo -i zum Benutzer root.

Woran Sie den Erfolg erkennen: docker ps -a listet die Container. Meldet der Befehl einen Fehler beim Zugriff auf Docker, prüfen Sie, ob Sie mit sudo -i zu root gewechselt haben.

Zustand der Container

docker ps -a

Im Normalbetrieb gibt es die ersten beiden Container; die anderen beiden gibt es nur vorübergehend:

Container Bedeutung
tcmsoft TCMSOFT mit Datenbank, Drucksystem und Print Agent des Servers
tcmsoft-updater der Update-Dienst
tcmsoft-vorher nur während eines Updates: die bisherige Version. Steht er außerhalb eines Updates da, räumt der Update-Dienst ihn bei seinem nächsten Start weg oder benennt ihn zurück.
tcmsoft-updater-neu nur während der Update-Dienst sich selbst aktualisiert (höchstens 3 Minuten)

Ob TCMSOFT „gesund“ ist (Anwendung und Datenbank antworten):

docker inspect --format '{{.State.Health.Status}}' tcmsoft

Wie oft Docker den Container schon neu gestartet hat:

docker inspect --format '{{.RestartCount}}' tcmsoft

Genau diese beiden Werte wertet auch der Update-Dienst aus. Ab 3 Neustarts gilt eine neue Version als abgestürzt.

Welche Versionen als Image auf dem Server liegen:

docker image ls tcmsoft
docker image ls tcmsoft-updater

Der Update-Dienst behält die laufende und die vorige Version von TCMSOFT. Ältere entfernt er nach einem gelungenen Update selbst. Löschen Sie Images nicht von Hand (siehe Typische Supportfälle).

Protokoll des Update-Dienstes

docker logs --tail 200 tcmsoft-updater

Mit -f statt --tail 200 läuft die Anzeige mit; beenden mit Strg+C.

Jede Zeile beginnt mit [updater], Datum und Uhrzeit. Typische Zeilen:

Zeile (Anfang) Bedeutung
„TCMSOFT-Updater … startet: Datenordner …, Prüfung täglich um …“ Der Dienst startet. Hier stehen seine Version, der Datenordner und die Uhrzeit der nächtlichen Prüfung.
„Einstellungen für TCMSOFT angelegt: …/tcmsoft.env“ Die Datei tcmsoft.env fehlte und wurde mit Standardwerten angelegt.
„TCMSOFT … wird heruntergeladen …“ (Einrichtung) bzw. „Version … wird heruntergeladen …“ (Update), „Download …: 10 %“ Ein Image wird geladen.
„Update auf Version … wird vorbereitet …“, „TCMSOFT wird für das Update beendet …“, „Datenbank wird gesichert …“, „Version … startet - die Datenbank wird bei Bedarf angepasst …“ Die Schritte eines Updates.
„Vorherige Version wird wiederhergestellt …“, „Datenbank auf den Stand vor dem Update zurückgesetzt.“ Ein Rückfall läuft.
„Das Update von … auf … wurde unterbrochen (Stand: …).“ Beim Start fand der Dienst ein unterbrochenes Update und schließt es ab oder rollt zurück.
„Versionsprüfung fehlgeschlagen: …“ Der Download-Server war nicht erreichbar.
„Prüfung auf einen neuen Update-Dienst fehlgeschlagen: …“ Dasselbe für das Selbst-Update des Dienstes.
„Neuer Update-Dienst … gestartet - er löst diesen ab.“, „Neuer Update-Dienst … übernimmt.“ Der Dienst aktualisiert sich selbst.
„Nach dem Update: … ist fehlgeschlagen (…) - wird beim nächsten Start bzw. Update nachgeholt.“ Das Aufräumen nach einem gelungenen Update hat nicht geklappt. Die neue Version läuft trotzdem.

Jedes Ergebnis, das in der Glocke erscheint, steht hier auch als Zeile „Titel: Text“, z. B. „Update auf Version …: TCMSOFT wurde auf Version … aktualisiert.“ Fehler beim Start des Dienstes stehen als letzte Zeile vor dem Neustart; Docker startet den Dienst nach 30 Sekunden neu. Die Bedeutung dieser Zeilen steht unter Meldungen und ihre Bedeutung.

Docker begrenzt das Protokoll eines Containers, den der Update-Dienst selbst anlegt, auf 5 Dateien zu je 20 MB. Das gilt nur, wenn Docker Protokolle als Datei führt (Protokolltreiber json-file oder local). Der von Hand angelegte erste tcmsoft-updater hat diese Begrenzung nicht. Sie kommt erst mit seinem ersten Selbst-Update.

Protokoll von TCMSOFT

docker logs --tail 300 tcmsoft

Darin stehen mehrere Arten von Zeilen:

Ein normaler Start sieht so aus (Auszug, in dieser Reihenfolge):

Produkt beim Start: Ob die Installation TCMSOFT oder Salvia Software ist, entscheidet der Start. Was er entschieden hat, steht in den Zeilen der Anwendung, nicht in den [tcmsoft]-Zeilen. Eine neue Installation mit Produkt=Salvia in tcmsoft.env zeigt beim ersten Start nacheinander:

Eine TCMSOFT-Installation ohne die Zeile Produkt schreibt dazu nichts. Gezielt suchen:

docker logs tcmsoft 2>&1 | grep -E 'Produkt|Salvia|Praxisart'

Auch bei Salvia Software heißen Container, Datenordner und tcmsoft.env „tcmsoft“, und die übrigen Zeilen sprechen von TCMSOFT. Alle Einträge zum Produkt, ihre Bedeutung und was zu tun ist: Meldungen und ihre Bedeutung, Hintergrund und Rückweg unter Produkt und Praxisart.

Welchen Treiber der Print Agent des Servers für einen Drucker gewählt hat, steht in den Zeilen „Printer … added with …“. Kopplungsversuche des Prismamed Agent stehen hier als „Kopplung fehlgeschlagen von …“ und „Agent-Schnittstelle: ungültiger Schlüssel von …“, jeweils mit der IP-Adresse des Arbeitsplatzes.

Der Ordner updater/ im Datenordner

TCMSOFT und der Update-Dienst verständigen sich nur über Dateien in <Datenordner>/updater/. Im TCMSOFT-Container heißt derselbe Ordner /data/updater.

Datei Inhalt Von Hand ändern?
status.json Stand des Update-Dienstes, Versionen, letzter Fehler, die letzten 20 Ergebnisse nein, nur lesen
vorgang.json nur während eines Updates: von welcher auf welche Version und in welcher Phase nie löschen
anforderung „pruefen“ oder „aktualisieren“ von der Backup-Seite; der Dienst holt sie binnen Sekunden ab nein
sperre liegt da, solange eine Datenübernahme läuft; TCMSOFT erneuert sie alle 30 Sekunden, nach 5 Minuten ohne Erneuerung gilt sie als verwaist nein
gemeldet Kennungen der Ergebnisse, die schon in der Glocke standen nein
fehlgeschlagen-tcmsoft.txt TCMSOFT-Versionen, die hier gescheitert sind, eine je Zeile. Sie werden nie wieder eingespielt. nur nach Absprache mit dem Support (siehe Typische Supportfälle)
fehlgeschlagen-updater.txt dasselbe für Versionen des Update-Dienstes nur nach Absprache mit dem Support
download/ Image-Dateien während des Ladens; der Dienst löscht sie nach dem Laden nein
protokoll/tcmsoft-<Version>.log die letzten 500 Zeilen des Protokolls einer TCMSOFT-Version, die nach einem Update nicht anlief für den Support kopieren
protokoll/updater-<Version>.log die letzten 300 Zeilen eines neuen Update-Dienstes, der nicht übernommen hat für den Support kopieren

status.json lesen

cat <Datenordner>/updater/status.json

Die Datei ist lesbar formatiert, Umlaute stehen im Klartext.

Feld Bedeutung
UpdaterVersion Version des Update-Dienstes
TcmsoftVersion zuletzt gelaufene TCMSOFT-Version. Fehlt der Container, legt der Dienst ihn mit genau dieser Version neu an (ab Update-Dienst 2026.10.7.1).
Uhrzeit Uhrzeit der nächtlichen Prüfung
LetztePruefung wann zuletzt beim Download-Server nachgesehen wurde
VerfuegbareVersion, Changelog eine neuere Version, die eingespielt werden kann, und ihr Kurztext
LaeuftGerade, Schritt ob gerade etwas läuft und welcher Schritt
LetzterFehler warum die letzte Prüfung nichts einspielen konnte; erscheint auch als Warnkarte auf der Backup-Seite
Stand wann der Dienst die Datei zuletzt geschrieben hat
Ergebnisse die letzten 20 Ergebnisse mit Id, Art (erfolg, warnung, fehler), Titel, Text und Zeit

Im Leerlauf schreibt der Dienst die Datei mindestens einmal pro Minute. Ist Stand älter als 5 Minuten und steht LaeuftGerade auf false, läuft er nicht. Die Backup-Seite zeigt dann „Der Update-Dienst meldet sich nicht …“. Während eines langen Schritts (z. B. eines Downloads) schreibt der Dienst die Datei nur beim Wechsel des Schritts. Dann kann dieselbe Warnung neben dem laufenden Schritt erscheinen, obwohl er arbeitet (aus dem Code abgeleitet, nicht getestet).

Nur die Version des Update-Dienstes:

grep UpdaterVersion <Datenordner>/updater/status.json

vorgang.json lesen

Die Datei gibt es nur, solange ein Update läuft oder unterbrochen wurde. Sie enthält Von, Nach, Changelog, Beginn und Phase als Zahl:

Phase Bedeutung Was der Dienst nach einem Neustart tut
0 Neues Image geladen, am laufenden TCMSOFT noch nichts geändert TCMSOFT läuft einfach weiter
1 Alte Version beendet und in tcmsoft-vorher umbenannt zurück zur alten Version
2 Datenbank gesichert zurück zur alten Version
3 Neue Version angelegt abwarten, ob sie gesund wird; sonst zurück

Löschen Sie vorgang.json nie von Hand. Ohne sie weiß der Dienst nach einem Neustart nicht mehr, dass er zurückrollen muss.

Gesundheitsprüfung im Browser

Rufen Sie im Browser auf:

http://<Server>:8085/health

Auf dem Mikroserver lauscht TCMSOFT nur auf 127.0.0.1:5000. Dort prüfen Sie per SSH mit curl http://127.0.0.1:5000/health.

Antwort Bedeutung
ok Anwendung und Datenbank antworten.
Datenbank antwortet nicht Die Anwendung läuft, die Datenbank nicht. docker logs tcmsoft lesen.
keine Antwort Die Anwendung läuft nicht (oder lauscht auf einem anderen Port). docker ps -a und docker logs tcmsoft lesen.

Haben Sie den Port in tcmsoft.env geändert, verwenden Sie den neuen Port.

Programmprotokoll in TCMSOFT

TCMSOFT schreibt sein Programmprotokoll zusätzlich in die Datenbank der Praxis (patient) und löscht dort Einträge nach 90 Tagen, Debug-Einträge nach 7 Tagen. Angezeigt wird es im Reiter Logs des versteckten Servermanagements, das sich nur mit dem Support-Konto öffnet (siehe Servermanagement). Ohne Support-Konto lesen Sie das Protokoll mit docker logs tcmsoft.

Datenbank neu initialisieren, Demodaten installieren und die Datenübernahme löschen das Programmprotokoll mit, Backup wiederherstellen ersetzt es durch den Stand der Sicherung. Frühere Einträge stehen dann nur noch in docker logs tcmsoft, und dort nur, bis der Container neu angelegt wird (bei jedem Update).

Bis TCMSOFT 2026.10.7.1 stand das Programmprotokoll in der Datenbank tcmsoft. Diese alten Einträge zeigt der Reiter Logs nicht, und TCMSOFT räumt sie dort nicht auf.

Datenbank-Konsole

Für den Support gibt es im Container eine Konsole, die sich selbst mit dem Datenbank-Passwort dieser Installation anmeldet:

docker exec -it tcmsoft tcmsoft-mongosh

Die Konsole ist nur zum Lesen gedacht. Für Änderungen gibt es keine freigegebene Anleitung. Ändern Sie dort nichts ohne Absprache mit der TCMSOFT-Entwicklung. Lesen oder kopieren Sie nie die Datei keys/mongo-passwort.

An den Arbeitsplätzen

Beide Agenten haben im Menü den Eintrag Protokoll öffnen. Er öffnet immer den richtigen Ordner. Das ist der einfachste Weg. Unter Windows öffnet die rechte Maustaste auf das Symbol im Infobereich das Menü, am Mac ein Klick auf das Symbol in der Menüleiste.

Je Tag entsteht eine Datei. Es bleiben die letzten 30 Dateien.

Prismamed Agent

System Protokoll Zustand des Selbst-Updates
Windows %ProgramData%\Prismamed\Agent\logs\agent-<JJJJMMTT>.txt (für alle Windows-Konten gemeinsam) %LocalAppData%\Prismamed\Agent\selbstupdate.json (je Windows-Konto)
Mac ~/Library/Application Support/Prismamed/Agent/logs/agent-<JJJJMMTT>.txt (je Benutzerkonto) ~/Library/Application Support/Prismamed/Agent/selbstupdate.json
System Protokoll
Windows %ProgramData%\Prismamed\PrintAgent\logs\log<JJJJMMTT>.txt
Mac ~/Library/Application Support/Prismamed/PrintAgent/logs/log<JJJJMMTT>.txt
Server (im TCMSOFT-Container) <Datenordner>/printagent/logs/log<JJJJMMTT>.txt, dazu docker logs tcmsoft

Was in den Agent-Protokollen steht

Geben Sie die Dateien agent.json (enthält den Schlüssel, mit dem sich der Prismamed Agent bei TCMSOFT ausweist) und pairings.json (Kopplung des Print Agent) nicht weiter. Für den Support genügen die Protokolle.

Im Browser

Der Browser am Arbeitsplatz ist oft das schnellste Prüfwerkzeug:

Prüfung Aufruf Erwartet
Ist TCMSOFT erreichbar und gesund? http://<Server>:8085/health ok
Vertraut der Arbeitsplatz dem Zertifikat? die HTTPS-Adresse von TCMSOFT keine Zertifikatswarnung des Browsers
Darf die Seite den Print Agent suchen? Symbol links neben der Adresse › Website-Einstellungen Zugriff auf Geräte im lokalen Netzwerk ist zugelassen
Läuft der Print Agent an diesem Rechner? http://127.0.0.1:9632/api/print-agent/discover eine kurze JSON-Antwort mit agentId, machineName und isPaired (aus dem Code abgeleitet, als Prüfweg nicht getestet)
Welche TCMSOFT-Version wird angeboten? https://downloads.tcmsoft.de/docker/tcmsoft-x64.json (ARM-Server: tcmsoft-arm64.json) JSON mit Version, Architektur, Datei, Sha256, Datum, Changelog, Signatur
Welche Version des Update-Dienstes wird angeboten? https://downloads.tcmsoft.de/docker/tcmsoft-updater-x64.json wie oben
Welche Agent-Fassung steht zum Herunterladen bereit? https://downloads.tcmsoft.de/agent/aktuell-windows.txt bzw. https://downloads.tcmsoft.de/printagent/aktuell-windows.txt der Dateiname des aktuellen Setups mit Versionsnummer

Für Mac-Fassungen heißen die Zeigerdateien aktuell-mac-arm64.txt und aktuell-mac-x64.txt.

In TCMSOFT selbst

Wo Was Sie dort sehen
Glocke unten links Ergebnisse von Updates und Backups, Fehler von Hintergrunddiensten. Die Nachrichten gelten für alle Benutzer. Alle löschen löscht sie für alle.
Stammdaten › Backup, Karte Programmversion und Updates Installierte Version, Verfügbare Version, Letzte Prüfung, Prüfung täglich um, Neu in dieser Version, den letzten Fehler und den laufenden Schritt. Die Karte erscheint nur im Docker-Betrieb.
Stammdaten › Agenten (ab TCMSOFTpro) je Prismamed Agent Version, Status und Letzte Meldung; die Liste lädt sich alle 30 Sekunden neu
Stammdaten › Drucker je Print Agent Status („Online“, „Offline seit …“, „Nie verbunden“), Version, Update-Hinweis; Reiter Drucker und Druck-Warteschlange

Was der TCMSOFT-Support braucht

Sammeln Sie vor dem Anruf:

  1. die Versionen: Installierte Version von der Backup-Seite und UpdaterVersion aus status.json,
  2. die Ausgabe von docker ps -a,
  3. die letzten Zeilen von docker logs tcmsoft und docker logs tcmsoft-updater,
  4. bei einem gescheiterten Update die Datei aus <Datenordner>/updater/protokoll/,
  5. bei einem Arbeitsplatzproblem das Agent-Protokoll des betreffenden Tages und den Text der Meldung.

Senden Sie nie den Ordner keys/, die Datei keys/mongo-passwort, agent.json oder pairings.json.