Zum Inhalt

Export & DatenExport & data

Deine Einnahmen als Tabelle, die dein Arzt lesen kann.Your intakes as a table your doctor can read.

CapsPlan exportiert deinen Verlauf als CSV für Excel & Co. oder als PDF-Arztbericht. Hier siehst du, wie diese Dateien aufgebaut sind, an einem vier Monate langen Beispiel zum Durchscrollen. Alle Daten sind erfunden und mit dem echten Export-Code der App erzeugt.CapsPlan exports your history as CSV for Excel & co. or as a PDF doctor's report. Here is how these files are built, using a four-month example you can scroll through. All data is fictional and was generated with the app's real export code.

Drei Formate, drei ZweckeThree formats, three purposes

Im Verlauf tippst du oben auf das Teilen-Symbol und wählst das Format. Der Export ist ein Premium-Feature und enthält genau das, was du im Verlauf mit den aktuellen Filtern siehst.In History, tap the share icon at the top and pick a format. Export is a Premium feature and contains exactly what History shows with your current filters.

CSV

EreignislisteEvent list

Eine Zeile pro Einnahme, Notiz oder Ausschleich-Ereignis. Ideal für eigene Auswertungen, Pivot-Tabellen oder Skripte.One row per intake, note or tapering event. Ideal for your own analysis, pivot tables or scripts.

capsplan_YYYYMMDD.csv

CSV

TagesmatrixDay matrix

Eine Zeile pro Kalendertag, eine Spalte pro Medikament mit ✓ / ✗ / ⏰. Auf einen Blick lesbar, sehr übersichtlich in Excel.One row per calendar day, one column per medication with ✓ / ✗ / ⏰. Readable at a glance, very clear in Excel.

capsplan_YYYYMMDD_matrix.csv

PDF

ArztberichtDoctor's report

Übersicht mit Einnahmetreue, eine Tabelle pro Präparat mit den tatsächlichen Einnahmezeiten und eine Notizen-Seite. Zum Ausdrucken oder Mailen.Overview with adherence, one table per medication with the actual intake times and a notes page. For printing or emailing.

capsplan_bericht_YYYYMMDD.pdf

Das Beispiel: Anna und ihre TherapieThe example: Anna and her therapy

Anna (fiktiv, 38) hat seit drei Jahren eine Myasthenia gravis. Sie nimmt ihre Medikamente seit dem 1. Juni mit CapsPlan. Am 26. September exportiert sie alles für den Kontrolltermin beim Neurologen.Anna (fictional, 38) has had myasthenia gravis for three years. She has been logging her medication in CapsPlan since June 1. On September 26 she exports everything for her check-up with the neurologist.

Feste EinnahmenScheduled intakes

Mestinon 60 mg · 07 / 11 / 15 / 19 Azathioprin 100 mg 08:00 · 50 mg 20:00 Vitamin D3 + K2 · 08:00

Bei BedarfAs needed

Thomapyrin (Migräne) Ibuprofen 400 mg Vitamin C 1000 mg
Fiktives Beispiel zur Veranschaulichung des Formats. Es ist keine medizinische Empfehlung und zeigt keine Therapieentscheidung. Die Dosierung legt immer dein Arzt fest.Fictional example to illustrate the format. It is not medical advice and shows no therapy decision. Dosage is always set by your doctor.
117Tage dokumentiertdays documented
840Einnahme-Einträgeintake entries
19Dosen übersprungendoses skipped
20Notizen im Verlaufnotes in history

Was in diesen Monaten passiertWhat happens in these months

  • Meist im Rhythmus, manchmal eine Stunde zu spät oder zu früh.Mostly on schedule, sometimes an hour late or early.
  • Ein Städtetrip bringt die Routine durcheinander.A city trip disrupts the routine.
  • Migräne-Tage, ein Infekt, eine Impfung.Migraine days, an infection, a vaccination.
  • Notizen zu Symptomen und Arztterminen.Notes on symptoms and doctor visits.

Erleben: dein Verlauf als DateiExplore: your history as a file

Tippe auf einen Tag im Kalender oder folge der Führung. Die Tabelle darunter ist die echte Datei, nichts ist nachgebaut.Tap a day in the calendar or follow the guided tour. The table below is the real file, nothing is mocked up. The notes are in German, as the fictional user wrote them.

alles im Rhythmuson schedule zu früh/spät oder verschobenearly/late or snoozed Dosis übersprungendose skipped ⚪ Notiznote ▲ Bedarfsmedikationas-needed

⬇ capsplan_beispiel_ereignisliste.csv

Dokumentation der FormateFormat documentation

Für alle, die die Dateien weiterverarbeiten wollen. Stand: CapsPlan 1.9.For anyone who wants to process the files further. As of CapsPlan 1.9.

Grundlagen (gilt für beide CSV-Dateien)
  • Kodierung UTF-8, Trennzeichen Komma, Zeilenende \n, Felder mit Komma, Anführungszeichen oder Zeilenumbruch stehen in "…" (RFC 4180).
  • Datum YYYY-MM-DD, Uhrzeit HH:mm in der lokalen Zeit des Geräts, ohne Zeitzone. Zahlen mit Punkt als Dezimaltrenner.
  • Die Spaltenüberschriften sind deutsch, die Werte in Typ und Status sind englische Schlüsselwörter und stabil.
  • Sortierung: neueste Einträge zuerst. Die Datei enthält, was im Verlauf mit den aktuellen Filtern angezeigt wird (Präparat, Status, Zeitraum).
Ereignisliste: Aufbau

Die Datei beginnt mit einem kurzen Zusammenfassungs-Block (eine Zeile pro Präparat), dann eine Leerzeile, dann die eigentliche Tabelle.

Präparat,Erste dokumentierte Einnahme,Letzte dokumentierte Einnahme,Ausschleichen gestartet,Ausschleichen abgeschlossen
Mestinon,2026-06-01,2026-09-25,,

Datum,Uhrzeit,Medikament,Typ,Dosis,Status,Notiz
2026-09-25,15:00,Mestinon,tablet,60,skipped,
2026-09-23,10:50,,,,note,"Migräne nach einem langen Arbeitstag. …"
SpalteBedeutung
Datum, UhrzeitBei geplanten Einnahmen die geplante Zeit (auch wenn später bestätigt wurde). Bei Bedarfsmedikation der Zeitpunkt der Einnahme. Bei Notizen die Erstellzeit. Bei Ausschleich-Ereignissen ist die Uhrzeit leer.
MedikamentName des Präparats. Leer bei Notizen.
Typtablet, liquid, drops, capsule, injection, patch, inhaler, powder
DosisTatsächlich eingenommene Menge als Zahl, in der Einheit des Präparats (z. B. mg). Die Einheit steht nicht in der Datei.
Statusconfirmed (eingenommen), skipped (übersprungen), snoozed (verschoben und nicht mehr bestätigt), pending (offen), note (Notiz), tapering_started / tapering_completed (Ausschleichen gestartet / abgeschlossen)
NotizFreitext der Verlaufsnotiz, nur bei note.
Tagesmatrix: Aufbau
Datum,Mestinon,Azathioprin,Vitamin D3 + K2,Thomapyrin,Ibuprofen,Vitamin C,Notizen
2026-06-02,19:00 ✓; 15:00 ✓; 11:00 ✓; 07:00 ✓,20:00 ✓; 08:00 ✓,08:00 ✓,,,,"Abends ab ca. 19 Uhr Doppelbilder…"
  • Eine Zeile pro Kalendertag vom ersten bis zum letzten Eintrag, auch Tage ohne Eintrag.
  • Pro Medikament eine Spalte. Zelle: HH:mm ✓ eingenommen, HH:mm ✗ übersprungen, HH:mm ⏰ verschoben, HH:mm … offen. Mehrere Einträge am Tag mit ; getrennt. Zeiten sind die geplanten Zeiten.
  • Die Spalte Notizen fasst alle Notizen des Tages mit | zusammen. Ausschleich-Ereignisse stehen als Text in der Zelle des Präparats.
Arztbericht (PDF): Aufbau
  • Seite 1: Übersicht mit Einnahmetreue (eingenommen ÷ eingenommen + übersprungen), Anzahl eingenommen, übersprungen und Präparate.
  • Danach pro Präparat eine Tabelle mit Datum, Uhrzeit, Status, Dosis. Bei eingenommenen Dosen steht die tatsächliche Uhrzeit, bei übersprungenen die geplante. Erste und letzte Einnahme und ein eventuelles Ausschleichen stehen unter dem Namen.
  • Zum Schluss eine Seite mit allen Notizen (nur wenn welche im Zeitraum liegen).
  • Bedarfsmedikation ist dabei, hat aber keine geplante Zeit und zählt nicht in die Einnahmetreue.
Pro Präparat zeigt das PDF höchstens die 200 neuesten Zeilen. Für lange Zeiträume mit vielen Einnahmen (hier: Mestinon mit 4 Dosen pro Tag) nutze die CSV, sie enthält alles.
Wichtige Hinweise und Grenzen
  • Verspätet oder verfrüht: Die CSV-Dateien enthalten nur die geplante Zeit. Die tatsächliche Zeit einer Bestätigung steht nur im PDF.
  • Notizen sind nur im Export, wenn im Verlauf weder ein Präparat noch ein Status gefiltert ist.
  • Ausschleich-Zeilen fehlen, sobald ein Statusfilter aktiv ist.
  • Premium: Der Export ist Premium vorbehalten. Ohne Premium zeigt der Verlauf nur die letzten 30 Tage.
  • Das PDF nutzt die Standardschrift des PDF-Formats und stellt nur westeuropäische Zeichen sicher dar.
CSV in Excel, Numbers oder Google Sheets öffnen
  • Excel: nicht doppelklicken, sondern Daten → Aus Text/CSV, Dateiursprung 65001: Unicode (UTF-8), Trennzeichen Komma. Sonst werden Umlaute und ✓ ✗ ⏰ falsch angezeigt. Deutsche Excel-Versionen erwarten sonst Semikolon.
  • Numbers / Google Sheets: öffnen und importieren, UTF-8 wird erkannt.
  • Die Ereignisliste hat einen Zusammenfassungs-Block oben. Beim Import ab Zeile Datum,Uhrzeit,… beginnen (im Beispiel Zeile 9).
import pandas as pd
df = pd.read_csv("capsplan.csv", skiprows=8)      # Zusammenfassung und Leerzeile überspringen
df = df[df["Status"] == "skipped"]                # z. B. alle übersprungenen Dosen
print(df.groupby("Medikament").size())
Basics (both CSV files)
  • UTF-8 encoding, comma separator, line ending \n, fields containing a comma, quote or line break are wrapped in "…" (RFC 4180).
  • Date YYYY-MM-DD, time HH:mm in the device's local time, no time zone. Numbers use a dot as decimal separator.
  • Column headers are in German. The values in Typ (type) and Status are stable English keywords.
  • Sorted newest first. The file contains what History shows with your current filters (medication, status, period).
Event list: structure

The file starts with a short summary block (one row per medication), then a blank line, then the actual table.

Präparat,Erste dokumentierte Einnahme,Letzte dokumentierte Einnahme,Ausschleichen gestartet,Ausschleichen abgeschlossen
Mestinon,2026-06-01,2026-09-25,,

Datum,Uhrzeit,Medikament,Typ,Dosis,Status,Notiz
2026-09-25,15:00,Mestinon,tablet,60,skipped,
2026-09-23,10:50,,,,note,"Migraine after a long working day. …"
ColumnMeaning
Datum, UhrzeitFor scheduled intakes the planned time (even if confirmed later). For as-needed medication the time it was taken. For notes the creation time. Empty time for tapering events.
MedikamentMedication name. Empty for notes.
Typtablet, liquid, drops, capsule, injection, patch, inhaler, powder
DosisAmount actually taken as a number, in the medication's own unit (e.g. mg). The unit is not in the file.
Statusconfirmed, skipped, snoozed (postponed and never confirmed), pending (open), note, tapering_started / tapering_completed
NotizFree text of the history note, only for note.
Day matrix: structure
Datum,Mestinon,Azathioprin,Vitamin D3 + K2,Thomapyrin,Ibuprofen,Vitamin C,Notizen
2026-06-02,19:00 ✓; 15:00 ✓; 11:00 ✓; 07:00 ✓,20:00 ✓; 08:00 ✓,08:00 ✓,,,,"…"
  • One row per calendar day from the first to the last entry, including days without entries.
  • One column per medication. Cell: HH:mm ✓ taken, HH:mm ✗ skipped, HH:mm ⏰ snoozed, HH:mm … open. Several entries per day are joined with ; . Times are the planned times.
  • The Notizen (notes) column joins all notes of the day with | . Tapering events appear as text in the medication's cell.
Doctor's report (PDF): structure
  • Page 1: overview with adherence (taken ÷ taken + skipped), counts of taken, skipped and medications.
  • Then one table per medication with date, time, status, dose. For taken doses the actual time is shown, for skipped ones the planned time. First and last intake and any tapering are shown under the name.
  • A final page lists all notes (only if there are any in the period).
  • As-needed medication is included, but has no planned time and does not count towards adherence.
The PDF shows at most the 200 newest rows per medication. For long periods with many intakes (here: Mestinon at 4 doses a day) use the CSV, which contains everything.
Important notes and limits
  • Late or early: the CSV files only contain the planned time. The actual time of a confirmation is only in the PDF.
  • Notes are only exported when History is not filtered by medication or status.
  • Tapering rows are omitted while a status filter is active.
  • Premium: export requires Premium. Without it, History shows the last 30 days only.
  • The PDF uses the standard PDF font and only reliably displays Western European characters.
Opening the CSV in Excel, Numbers or Google Sheets
  • Excel: don't double-click. Use Data → From Text/CSV, file origin 65001: Unicode (UTF-8), delimiter comma. Otherwise umlauts and ✓ ✗ ⏰ display wrongly. Some regional Excel versions expect semicolons.
  • Numbers / Google Sheets: open and import, UTF-8 is detected.
  • The event list starts with a summary block. When importing, start at the line Datum,Uhrzeit,… (line 9 in the example).
import pandas as pd
df = pd.read_csv("capsplan.csv", skiprows=8)      # skip summary block and blank line
df = df[df["Status"] == "skipped"]                # e.g. all skipped doses
print(df.groupby("Medikament").size())