October

New Features
Forms
Forms get a new editor, conditional questions, new question types, and digital consent forms.
- Link forms and files to appointments — Forms you share or fill out internally at the appointment via "Create document" or the "Create forms" quick menu in the waiting room are linked to the appointment automatically. The appointment sidebar in the calendar shows them in the new "Formulare" block, and the form view shows the appointment. In the form view modal, the "Hochgeladene Dateien" card lists the patient's files. When you upload or edit a file in the patient record, you can choose an appointment. When you edit a form, you can set, change, or remove the appointment in the sidebar. Removing it also releases the appointment of the associated patient form.
- New editor — Forms now consist of steps. Steps can be filled out one after the other or all at once. In the editor, tabs, default names, and move menus now say "Step" instead of "Page" (button "Step", "Delete step", "Move to step"), and so does the navigation in the annotation view. Sections are repeatable. Field width is configurable per device. Missing required fields are flagged before submission.
- Conditional questions — Fields and sections show or hide based on previous answers. Hidden required fields don't block submission.
- New question types — Time, date with time, scale, and answer matrix. Answer options can allow free text or exclude each other. Quantities have selectable units.
- Thieme consent forms — Consent forms from Thieme Compliance can be imported and filled out digitally. A form can require several signatures. When reviewing before completion, the practitioner sees critical answers collected in one place and flagged. With the "Thieme usage" button under Journaling → Forms or in the form list, practices can see how many Thieme forms they used, had filled in, completed and printed blank in a period, and can print the overview or download it as Excel/CSV.
- Annotations in forms — Practitioners switch on annotation mode in a form, mark it freehand, and use the Text tool to place notes anywhere. This works before the form is filled out: the patient sees the annotations while filling it out. When sending by email, you can optionally include them with "Mit Anmerkungen". The printout and PDF download include the annotations.
- Bodycharts — Motifs, marker types, and the fields per marker type are configurable per company. Fields with the "Show in tooltip" switch appear in the marker's tooltip.
- Further improvements — Uploaded form files can be saved to the patient record. The view modal has an edit button, and textarea formatting is preserved. Date fields have a clear button. An image widget can replace a signature field in print.
Offisy Connect: a new app for lab devices
Offisy Connect is a standalone app for Windows 11 and macOS (Apple Silicon) that you install at your practice. It connects lab devices via GDT to offisy. You download the installer directly from the Help Center.
You send lab requests from the patient record to the lab device. Measurements and attachments come back and land automatically in the patient record when the match is unambiguous. You assign open results by hand in Offisy Connect.
You connect the installation to offisy once, using an activation code — you can connect it to multiple accounts if needed. If the internet goes down, no results are lost: Connect buffers locally and uploads once the connection is back.
This requires the Offisy Connect add-on; for lab requests you also need Lab Request (GDT).
OAuth API extended
The OAuth API is expanded in R4 with several new areas, for example inventory, tasks, reports, and customer groups. The full, current list of endpoints is in the API reference. All list endpoints now follow unified conventions for status filters, references, pagination, and sorting. GET /fee-note-services gets new filters (from, until, billStatus, treatingUserId, customerId) and new reference fields (treatingUser, insuranceService, appointment, resource). Also new are GET /appointments/{uuid}/references for the references of an appointment (forms, files), GET /forms/{uuid} and GET /forms/customers/{uuid} for the metadata of forms and sent forms, and the scope forms.
Breaking Changes
- Appointments (full view):
courseis a UUID instead of an embedded course object — load course data and attendees viaGET /courses/{uuid} - Appointments, customers, fee notes, and invoices now return deleted or canceled records without a
statusfilter too — only active records withstatus=active. Users additionally return thedeletedfield and the newstatusfilter - The same lists now sort by internal ID ascending when no filter is applied — appointments, customers, users, fee notes, and invoices
includeArchived,includeDeleted, andincludeDeletedAttendeesare removed, replaced bystatus- References to other records are now UUID strings (
"customer": "<uuid>") instead of embedded objects (R4 areas) - Customers:
groups[].idis now the UUID of the customer group instead of an internal number — matchingGET /customers/groupsand thegroupIdfilter - Customer notices, customer values, and service categories now live under
/customers/notices,/customers/values,/services/categories; the previous paths keep working for now and are deprecated - Dunning: the business filter is now called
dunningStatus;invoiceId/customerIdare nowinvoice/customer GET /invoices/{uuid}andGET /fee-notes/{uuid}now return deleted records with 200 instead of 404 (fielddeleted)- Todos:
isDeletedis nowdeleted(plusdeletedAt) - Reports: references (
treatingUser,customer,course,resource,insuranceService) are now UUIDs without names;resourceandinsuranceServicehave no lookup endpoint - Date parameters (including
from/until,dueDateFrom/dueDateTo,startDate/endDate) are now checked strictly — an impossible calendar date like2026-02-31returns400instead of a silent rollover - Date query parameters as well as
startanddueDateare checked strictly: accepted areYYYY-MM-DDorYYYY-MM-DDTHH:MM[:SS[.fff]]with an optional offsetZ,±HH:MM, or±HHMM. Zone names, single-digit values, and+02without minutes return400. All body fields that expect only a date (e.g.date,birthday,customDate) accept onlyYYYY-MM-DDas a real calendar date - With the Tenancies add-on, invoices, fee notes, cash revenues, and dunning notices return only records from tenancies the owning user has access to and where they hold the read permission. A single fetch outside those tenancies responds with
404, like an unknown UUID offset,limit, andmaxDayswith a value that is not an integer return400. Previously the value was silently converted to a number- If the owning user of an API access is disabled, the API responds with
401 invalid_client(token endpoint:400 invalid_grant). When the user is deleted, their API accesses are revoked: after that, the API responds permanently with403 client_revoked, and the token endpoint with400 unauthorized_client - If the owning user of an API access lacks permission in the OAuth client's company, the API now responds with
403 access_deniedinstead of checking against the user's home company GET /booking/available-slotsand/batch:endDatemust not be more than 365 days afterstartDate- Errors now always come back as JSON, including
404,405, and500; new codemethod_not_allowed GET /appointments: iffromis afteruntil, the API responds with400- Incoming referrals: the
datefield is removed from the request and response ofGET/POST /incoming-referrals; it was never stored - Turnover report:
billStatusaccepts a comma-separated list (OR) - Customer groups:
nameis trimmed; emoji and other 4-byte characters innameanddescriptionreturn400
Improvements
Calendar
- You sort saved views by drag and drop in the views list. Everyone orders their personal views; whoever may edit the calendar settings orders shared views. The view selector in the toolbar shows the same order
- Each view can have its own Intervall (interval). If it has none, your personal interval applies, otherwise your practice's default
- In the view editor, you use Typen (types) to choose which kinds of appointments a view shows, for example Kurstermine or Pausen. The calendar quick search respects the type filter of the active view
- The calendar colors courses automatically by status, regardless of the Kalenderfarben (calendar colors) setting: Abgesagt (canceled) red, Ausgebucht (fully booked) orange, Läuft gerade (running) green (details in Calendar settings)
- For individual breaks, you choose under Darstellung im Kalender whether the break appears Gestreift (striped) or in Vollfarbe (solid color) (see Individual breaks)
Backup
- New export types for medical patient data, forms and tasks, inventory data and stock movements, invoice-related payments, master data and configuration, and e-card, ELGA, ELDA, and DaMe data
- The selection when creating a backup is grouped by department, for example Kalender & Termine, Kasse, Medizinisch, and e-card & ELDA
BodyChart
- In the window for creating and editing, you zoom the bodychart in 25 % steps from 100 to 400 %. Learn more in Draw and zoom
- New Pfeil (arrow) tool in the bodychart
- The Bodychart widget in the patient record has a search and a provider filter
- When you continue a history or edit a saved entry, the editor shows the previous entry faded: markers and texts lighter, strokes gray. New and changed items are shown in full color. A legend below the image explains the display
- A marker's tooltip shows "Erfasst am" (captured on) with the date of the oldest entry in the history that contains it, or "Neu" (new). This applies in the editor and in the history view
Values
- New value types WHR (Taille/Hüfte) and WHtR (Taille/Größe): the ratio is calculated from the captured measurements and shown in the history and the value chart
- You capture a value type linked to the doctor's letter in the footer area of the letter. In text templates, the value type's block prints the value in readable form, and so does BMI
- In the print view of a value, BMI, WHR, and WHtR values now appear as readable text, e.g. "24.7 kg/m² (180 cm / 80 kg)", instead of raw technical data
- In the form builder, WHR and WHtR are available as a widget in the Values category and you can save them to the record
- OAuth API:
bmi,whr, andwhtrcan't be created viaPOST. When retrieved,valueis an object for these types
DaMe
- Two badges next to DaMe in the menu show how many reports in the Inbox are open (red) or in progress (yellow). The numbers update live. Clicking a badge opens the overview for that category, from the oldest received report to today
- New status filter in the overview with multi-select, grouped by category. With the new "Gesamter Zeitraum" preset, you see all reports
- In the DaMe settings, every status has a category: Offen, In Bearbeitung, or Abgeschlossen
- The default date range of the overview is the current month
e-Impfpass: Custom vaccines and vaccinations without e-Impfpass submission
- If a vaccine is missing from the ELGA catalog, create it as a custom vaccine for your practice, under vaccines. Custom vaccines carry the "Eigener Impfstoff" badge and are never submitted to the e-Impfpass
- "Impfung erfassen" (record vaccination) is also available without an active O-Card. The "Als e-Impfpass" switch lets you choose whether Offisy submits the vaccination or only saves it in Offisy
- Vaccinations saved only in Offisy have the status "Nicht übermittelt" and can be submitted later with "An e-Impfpass übermitteln". The status "Wird übermittelt" shows vaccinations that are being transmitted right now
- When you edit or delete, you choose whether the e-Impfpass entry changes too: when you delete a submitted vaccination, the "Den e-Impfpass-Eintrag ebenfalls stornieren" switch cancels the entry
- The printout includes the section "Nicht an den e-Impfpass übermittelt"
- On the "Impfstoffe" page you can scan a vaccine package: depending on the barcode, Offisy opens "Impfstoff hinzufügen" or "Eigenen Impfstoff erstellen" with prefilled data, or tells you the vaccine is already in the list
- Offisy also recognizes German packages with a Code 39 barcode and an 8-digit PZN when you scan
- If you scan a package in "Impfung erfassen" whose PZN is not in the vaccine catalog, you can create a custom vaccine right away: Offisy asks first, opens "Eigenen Impfstoff erstellen" with the PZN prefilled, and adds the new vaccine to the vaccination after you save. Your entries are kept
Customer appointments report
- Four new columns and filters: Insurance, Private supplementary insurance, Insurance type, and Supplementary insurances (requires the Medical add-on)
- "Select all" and "Select none" for the Customer, Service, Location, and Employee filters
- The last name column now shows the actual last name instead of the first name
- The address and created-at columns are now filled in
- The default date range on open is the current month instead of a single day
- Multi-day course appointments are no longer counted multiple times. This can change existing totals
- The status filter now starts empty instead of being pre-filtered to "Active"
- The list only shows entries you're also allowed to see in the calendar. If your appointment permission is limited to certain locations, employees, or clients, you see fewer rows than before
Goods report
- A bold Summe (total) row appears below the table. It covers all search results, including rows on other pages of the table
- The Excel file also ends with a Summe row
Paid dunning fees
- On the Bezahlte Gebühren (paid fees) tab under Journaling → Mahnungen, you see paid dunning fees by payment date, with a monthly overview. The date range filter applies to the payment date. Late payment interest is not included
Journaling billing services
- New Patient filter with multi-select and search. Each patient shows the number of their services, and Ohne Patient shows services without an assigned patient
Forms
- Patients jump through the annotations in the Anmerkungen window with Vorherige Anmerkung and Nächste Anmerkung. The bar shows, for example, "Anmerkung 1 von 3" (View annotations)
- In the editor, you move whole sections to another step: by dragging them onto the step's tab or with Auf Schritt verschieben (Steps and sections)
- With An Patient senden, you send a completed form back to the patient so they can keep filling it out with the existing values. Existing signatures expire (Forms journaling)
- Thieme consent forms have the Auflagenhistorie (edition history) action in the form list. It shows the editions, newest first, with the changed fields (View the edition history)
- New form setting Daten automatisch in die Akte übernehmen (card Datenübernahme): when the form is submitted, offisy transfers master data and values to the record. Empty form fields don't overwrite anything (Change form settings)
- Forms without a saved page flow setting are now filled out as a sequence of steps (stepper) instead of continuously. This also applies to existing forms. To show a form continuously, choose "Eine Seite" under form settings → Mehrseitige Formulare → Seitenfluss
- You set the font size of a heading in the Design tab, separately for desktop, tablet, and phone. The type (Überschrift 1–6, Paragraph) is also changed there and applies to all devices. Existing forms look unchanged
- If a form is sent back for editing, the patient has to sign it completely again — existing signatures are discarded
- Individual answer options for radio buttons and multi-select can now carry their own help text, shown as a "?" tooltip while filling out or as text below the option on the blank printout
- The change history in the form editor now names the kind of each change and shows readable field labels instead of technical names
- The preview mode switch is hidden when only one mode is available in the preview editor (e.g. only "Fill in" for Thieme consent forms)
- New form element "Body surface area (BSA)" calculates the body surface area automatically from height and weight
Outdated browser warning
- Warning banner when browser is older than the current or previous major version
- Dismissible for the current session, doesn't block access yet
Very outdated versions will lose support for security reasons in the future.
Billing
- You filter invoice drafts and quotes by Empfänger (recipient). The Empfänger column is optional and hidden by default
- Create an invoice directly from an invoice draft
- "Bill" action for billable appointments with an open status
- Draft list's date range preserved across reloads
- Invoice drafts no longer count toward history totals
Invoice templates
- Use the Anzeigen switch for Behandler (provider) to show a service's provider as its own column
- Fee note shows provider in addition to the service period
- You set custom column names for the internal number and the service date in the Spaltenname Interne Nummer and Spaltenname Leistungsdatum fields
Cash book
- Cash balance viewable for any period, not just the current day
- Period filter (default: Heute) with presets like Heute and Gestern, plus paging with +1 Tag and -1 Tag
- Summe Eingänge and Summe Ausgänge for the selected period
- Anfangssaldo and Endsaldo of the period at a glance
Accounting export
- For the BMD cash book, offisy fills in Steuercode and amounts automatically from the booking data
- New columns Nettobetrag, USt %, and USt Betrag
- The previous cash book columns USt, Bruttobetrag, and USt Betrag (veraltet) are grouped under Veraltet
Patient record
- New Galerie widget shows the record's files as a grid: images as previews, other files as icons. You add it under Patientenakte konfigurieren (Add widgets). The gallery shows the same files as the history. It has a search and a type filter. With multiple selection, you can send the files by email, download them as a ZIP file, compare them, or delete them. Learn more in Gallery. In the history configuration, the Thumbnails option shows images as previews (images only)
- The Bodychart widget is configurable in the record configuration: you choose the templates for the Erstellen menu (with Alle auswählen and Keine auswählen) and set their order by dragging. Learn more
- Duplicate detection with weighted ranking (social security number first), ignored duplicates stay saved
- BMI as an automatically calculated value
- Shared patients can be course participants
- Title and company name in the appointment booker tab
- History shows changes including field-level details
Products overview
- New Bestellung offen (open order) filter shows only products with an open order (only visible with inventory permission)
- Search field in the filter dropdowns (except Order)
e-card
- e-card status stays current when switching between customers
- WKS contact created automatically
- Understandable message instead of a technical error when a community is unreachable
"Invoice date" column in report overview
- Invoice date as its own column in the overview
Stability
- offisy now recovers on its own if reloading a part of the app fails, instead of getting stuck on a blank page