Skip to main content

Changelog

Stay up to date with our latest changes and improvements.

Notes in the calendar

A calendar holds more than appointments with patients. A team meeting, an afternoon off, a reminder to call someone back: until now, you put those in Flux as an appointment without a type. From now on, you make it a note.

The week of Monday 2 to Friday 6 March 2026 with yellow notes between the appointments, such as Team meeting: go through the new rosters, a blue note on Wednesday, and in the bar above the calendar Manual therapy course over three days and Sven's afternoon off on Friday
Notes in the calendar

Create a note in seconds

Click or drag in the calendar as you would for an appointment and choose 'Note' at the top of the card. Or hold your pointer over the calendar and press N. Type your text, formatted if you like, and close the card: the note is in. Notes are yellow by default, like a sticky note, and you read their text right on the calendar.

For an hour, a day or a whole week

A note sits at a time or runs across whole days, for a course or a holiday for example. Notes for whole days sit in the bar above the calendar. Dragging, making a note longer or shorter, cutting, copying and pasting work as they do for appointments.

On the whole team's calendar

A note can be on several colleagues' calendars. Put a team meeting on everyone's calendar at once, or move a note to a colleague's calendar.

In the color you want

Everyone picks their own note color in their calendar settings. Should one note stand out? Give that note a color of its own, which everyone sees.

Nothing gets lost

Every note shows who created, changed or moved it, and when. Deleted one by mistake? Click 'Undo', or restore the note later from the Trash.

Good to know

A note does not block time: patients can still book an appointment at that time through online scheduling. To keep time free, change your availability.

Everything about notes is in the Notes manual.

  • New (5)
    • Notes in the calendar, at a time or for whole days
    • Notes on several colleagues' calendars
    • A color per note, and your own note color in your calendar settings
    • Shortcut N to create a note
    • Deleted notes in the Trash, ready to restore
  • Improvements (5)
    • A new appointment already looks like a real appointment while you create it, in its appointment type's color
    • The side panel shows an appointment with its title and close button, and Save stays in view at the bottom
    • An appointment's quick card gets more room and may overlap the bar for whole days
    • Short appointments are easier to read: the handle for changing their length no longer covers their text
    • Emoji show in your own device's colors everywhere

New appointment card

Between two patients you want to move an appointment or add a note quickly, without it costing you time. That is what the new appointment card is made for. You click an appointment, change what you need and click away. Flux saves your changes straight away: you no longer need a save button.

Appointment card for Thijs Brouwer: Booked, Thursday 05/11/2026 from 10:00 to 10:30, practitioner Sanne Bakker, type Treatment at City Centre Clinic, a note, and at the bottom the planned reminder and 1 email sent
The new appointment card

Click, change, done

The card opens next to the appointment, with everything in one column: the patient, the time, the practitioner, the type and location, your notes and the emails the patient gets. You change everything right in the card. When you're done, click anywhere else in the calendar, press Esc or click the cross to close it. The card disappears at once and Flux saves in the background, without you waiting for a loading spinner. That way you work through one appointment after another.

Nothing gets lost

If a save ever fails, Flux tells you and you choose whether to try again or discard your changes. If the appointment doesn't have a practitioner yet, Flux asks whether you want to add one first. Changed something you didn't mean to? Choose 'Undo changes' in the ⋯ menu before you close the card.

Series and reminders

If the appointment is part of a series, the arrows in the card take you through the previous and next appointments. At the bottom you see when the patient gets a reminder. Don't need it? Switch it off with the cross, and back on with the plus. Hover over the sent emails to see what the patient has already received.

See straight away whether it fits

While you plan, the card keeps an eye on whether the appointment fits. If it overlaps another appointment, the practitioner isn't available at that time or location, or the patient already has an appointment that day, you see it right in the card. The same goes for a missing appointment type or a warning on one of the patient's labels. Every notice also tells you what you can do about it, like picking another time or practitioner. That way you sort it out before the patient is at the desk.

All details

Want to see more, like the insurance or the activity on the appointment? Open 'All details' at the top right of the card. There you also choose whether an appointment without a patient is 'Public' or 'Private'. If you prefer working with the side panel open, an appointment opens straight there, with a button to save. And from the ⋯ menu, or with ⌘ + D, you can duplicate an appointment.

Everything about the appointment card is in the Calendar manual.

New calendar

The calendar has a new layout. Every appointment has a new card that shows its status at a glance. You scroll sideways through the days, collapse both sidebars and choose which hours you see, the contrast, the grid lines, the weekends and whether patient names are visible. This cycle we also fixed over fifty issues, from invoicing to integrations.

Appointment cards

Seven appointment cards: a first appointment with a star, an arrived patient, a patient running late, an appointment without an appointment type, a no-show, a cancelled and a deleted appointment
The new appointment cards, with their statuses and markers

The name sits at the top of the card, the time below it, and a narrow bar on the left shows the appointment's colour. Markers sit in the top right, together with the status icon once an appointment has moved past booked. A short appointment fits on a single line.

A cancelled appointment is hatched and struck through, a deleted one has a dashed outline and is struck through, and a no-show is red. Status icons look the same everywhere in Flux.

In the Week and 2 Weeks views the columns are narrow. There the card keeps the status icon, the time and the markers in view first, and leaves out the name when there is no room for it.

New on the card:

  • Patient's first appointment: a star on a patient's first appointment, so the front desk can give that patient extra attention.
  • No appointment type selected: a warning icon on an appointment with a patient but no appointment type. When you save one, Flux asks if you are sure. 'Save anyway' goes ahead.
  • Running late: a new status for a patient who has let you know they will be late.
The message No appointment type: This appointment has a patient but no appointment type. Are you sure you want to save it without an appointment type? With the buttons Cancel and Save anyway
The question when you save an appointment with a patient but no appointment type

Dragging appointments is smoother, and the calendar responds straight away to the first click, scroll or drag after opening.

Continuous

Next to Day, Week and the other views there is now Continuous. You scroll sideways through the days instead of paging week by week. The day header with week numbers stays at the top.

The Day view now scrolls sideways too when you select many practitioners. Columns no longer get so narrow that appointments become unreadable.

Full screen

You can now collapse the left sidebar too, with the arrow at the left of the header or with [. Collapse the right panel as well, with ], and the calendar fills the whole screen. Flux remembers your choice on this device.

Display

Under Display above the calendar:

  • Privacy mode: the card shows the appointment type instead of the patient's name, without birthday and description. For when a patient can see your screen.
  • Weekends: hide Saturday and Sunday in the Week, 2 Weeks and 5 Days views. If a hidden weekend holds appointments, a narrow column shows how many. Click it to show the weekend. With 'Start on today' on, the 5 Days view now moves exactly five days, without skipping any.
  • Show availability: turn off the available times and locations above the columns.

In your profile, under Calendar settings, you set the visible hours. The calendar then shows only those hours, so you no longer scroll past the night. If an appointment falls outside them, the calendar extends so you still see it. To change the hours on one device, use 'Day starts at' and 'Day ends at' under Display.

Under Settings → User → Display you turn on High contrast. Grid lines, off-hours shading, column headers, free slots, appointments, location strips and the current-time line then become easier to see. Only the calendar changes, and the setting applies on this device.

Also in your profile, Grid lines sets how often a line is drawn in the calendar: every hour, or every 30, 15 or 10 minutes.

  • New (16)
    • New appointment cards with clear statuses
    • Continuous view: scroll sideways through the days
    • High contrast for the calendar schedule
    • Privacy mode that hides patient names in the calendar
    • Hide weekends in the Week, 2 Weeks and 5 Days views
    • Collapse the left sidebar, for a full-screen calendar
    • Running late status for an appointment
    • Marker for a patient's first appointment
    • Warning for an appointment with a patient but no appointment type
    • Visible hours: the calendar shows only the hours you set
    • Grid lines every hour or every 30, 15 or 10 minutes
    • A profile page for every user, through 'My profile' or 'View profile'
    • Send PREMs in bulk for treatment processes that can still have one
    • SIRSI questionnaire
    • FABQ can be sent as a questionnaire
    • Red flags specific to speech therapy
  • Shortcuts (4)
    • P turns privacy mode on or off
    • [ collapses or expands the calendar's left sidebar
    • ⌘ + [ collapses or expands the sidebar with the main menu (Ctrl + [ on Windows or Linux), instead of [; this also works while you are in a text field
    • When you click an appointment, the arrow keys carry on from that appointment's day
  • Improvements (35)
    • Availability and locations above the calendar can be turned off
    • More space between the top bar and the calendar header
    • A faster calendar: less memory and smoother dragging
    • Closed treatment processes no longer show up when choosing one for a later appointment
    • Appointments in the calendar feed (.ics) are marked as private
    • A chosen patient shows in the appointment form straight away
    • A patient's appointment overview loads faster
    • Better and faster patient name search
    • The patient's phone number on worklist items for an open treatment process without an appointment
    • The close action was removed from the worklist
    • Filter the medical feed on favourites
    • Diagnosis codes on the body location
    • Admins can edit treatment plan templates
    • A default responsible practitioner for a treatment process
    • Updated PREM requirements
    • Treatment processes without treatments are no longer sent to Nivel and LDF
    • Clearer, more consistent terms throughout Flux
    • Better grammar for the location placeholder in email templates
    • Copy an invoice number with one click
    • An overview of claims per diagnosis
    • Crediting only the rejected lines of a collection invoice marks both the credit and debit invoice as handled
    • The appointments table opens with the most used settings, without a default filter on appointments without an invoice
    • Filter revenue on blocked appointments and treatment processes
    • Filter and group on the diagnosis body location
    • A companies column in patient data
    • Hours in the planning analysis with one decimal
    • Practitioners are sorted better on the analysis page
    • An option to show appointment duration in hours
    • Choose in the settings which revenue allocations are active
    • Excel exports from the data explorer and Analysis are built on the server
    • Mediquest login details are verified
    • GDS801 validation updated to Vektis u29
    • Service code list for chiropractors
    • PDF document classification on a newer AI model
    • Technical maintenance
  • Fixed (50)
    • The calendar ignored the first click, scroll or drag after opening
    • The 5 Days view skipped two days with 'Start on today' on and weekends shown
    • Day view columns became too narrow with many practitioners
    • A practitioner's pop-up in the calendar got in the way
    • The tooltip on a user's avatar in the calendar stayed after a click
    • The practitioner select was invisible when every user is a planner
    • A planner was selected while only practitioners should be shown
    • The online planner sometimes showed availability where an appointment was already booked
    • A patient could appear twice in an appointment proposal
    • Times and buttons in appointment suggestions were cut off
    • The notification setting for appointment proposals did not work for automatically accepted proposals
    • The appointment overview email could not be viewed
    • The treatment count on the patient card included an intake until it was invoiced
    • Resending a questionnaire did not work without a treatment process
    • Placeholders were sometimes taken from the wrong update
    • The consent checkbox for direct mail disappeared while it was still required to send
    • An error on invalid content in the text editor
    • Searching AGB healthcare professionals gave inconsistent results
    • Searching the ZorgMail address book with special characters failed
    • Removing a Physitrack connection failed when it was already gone
    • An error processing a response to a personal data request
    • An invoice was not always created when an appointment was completed
    • Automatically merging invoices gave a different result than merging by hand
    • Insurance coverage could be out of date after a COV check
    • Invalid correction invoices counted as revenue
    • A user AGB code was required on a product invoice, even when not needed
    • A patient's default invoice type was not saved
    • Some invoice dashboard figures were not filtered by user
    • The subscription invoices tab did not load
    • An error while finalising an invoice went unreported
    • Yuki missed some payments
    • Twinfield: errors on an expired or unreachable connection
    • Mollie: errors on an unknown payment
    • An error when a healthcare provider had no KvK number on a date
    • The last day was cut off in some analyses
    • A doctor could not open the analysis page
    • Analysis data was not always updated
    • Analysis data for invoice lines stopped after the first page
    • Patient data in Analysis was not available offline
    • Worked hours per day gave an error
    • Opening a page from the login page could freeze the tab
    • Features outside your plan were reachable through a direct link
    • When you edited a patient from the patient list, the patient was missing from the navigation at the top
    • The invitation email had no button
    • A refused change on the email settings and salutation pages went unreported
    • An import was recorded in a user's name instead of the system's
    • A visual glitch in filters
    • Typos in Flux
    • User details were not refreshed properly after changing practice settings
    • Several technical issues fixed

Flux Analysis

Good decisions begin with the right question. How is capacity developing? Where is drop-off occurring? Which locations, practitioners, or appointment types need attention? And what is really behind that one striking number on your dashboard?

With Analysis, Flux gives you a powerful new way to answer those questions yourself. Business Intelligence is now Analysis: a place where you turn practice data into insight that helps you make decisions.

Not only to look back, but above all to steer ahead.

From a signal to an answer

A dashboard shows you what is happening. Analysis helps you understand why.

Do you see appointment numbers changing, a quieter schedule at one location, or more cancellations? Open the result and investigate what is behind it. You start with the same context as your dashboard, then build from there around the question that matters to you.

Understand what is moving in your practice

Analysis is built for the questions that arise in everyday work. Not just for reporting on the past, but for the conversations and decisions that matter today and tomorrow.

Use Analysis, for example, to see:

  • how capacity is developing by location or period;
  • where differences emerge between practitioners, appointment types, or patient groups;
  • whether cancellations and no-shows are part of a temporary pattern or something more structural;
  • how workload, capacity, and activity relate to one another; and
  • where a small adjustment in planning or ways of working could make the biggest difference.

You can view and compare a result from different angles. That makes visible what you might otherwise only discover much later: a pattern that is building, a difference between teams or locations, or an approach that is clearly working.

Start a better conversation with your team

Team meetings are stronger when everyone starts from the same view.

Instead of discussing how busy things ‘feel’, you can see together how the previous weeks have gone. Instead of guessing where there is room in the schedule, you can investigate where capacity is available. And when something stands out, you can decide together whether action is needed and what that action should be.

Analysis gives care providers, planners, and practice owners a shared starting point. It helps connect experiences from day-to-day work with what the data shows. That does not make decisions less human; it makes them better informed.

Your practice, your question

Every practice works differently. That is why Analysis does not start with one fixed report, but with the question that matters right now.

Want to know how workload is developing? Investigate it. Want to understand why a number is changing? Go a layer deeper. Want to discuss a trend in a monthly meeting? Bring exactly that context into view.

Analysis gives you the freedom to view practice data from the perspective that helps you move forward. From planning and capacity to care, operations, and financial insights.

From insight to next step

Sometimes an insight is the beginning of a conversation. Sometimes it is a reason to make a change. And sometimes you want to take a result into a meeting or work with it further.

That is why you can export an analysis directly as a CSV or Excel file. You take exactly the selection you investigated with you, including its breakdown and totals. If you then need the individual records behind a result, you can continue in Data Explorer. The flow is simple: first understand what is happening, then decide what is needed.

Analysis is here

With Analysis, Flux takes a major step forward. You no longer have to wait for a standard report or a separate export to understand what is happening in your practice.

Start with a signal. Ask the question. Discover what is behind it. Open Analytics, select a dashboard card, and run your practice with insight. Analysis: from data to direction.

Easy and secure sign-in

Login made simple in Flux

A Flux account gives access to confidential information about patients, treatments, appointments and business operations. Securing that account is therefore an important part of handling health data carefully. Information security is built around three principles: data should only be accessible to authorized people, it must remain accurate and complete, and it must be available when a care provider needs it. These principles are also known as confidentiality, integrity and availability.

An insufficiently secured account can affect all of these areas. An unauthorized person could view data, change information or disrupt access to an account. That is why we have further strengthened sign-in with support for passkeys, better protection against automated login attempts and more insight into the security status of user accounts.

Sign in with a passkey

Flux now supports passkeys. With a passkey, you sign in through the security of your own device, for example with face recognition, a fingerprint or the passcode of your phone or computer. You do not need to enter a traditional password. The secret key stays on your device and is not shared with Flux.

Passkeys are less vulnerable to phishing because they only work for the website or application they were created for. They cannot easily be guessed, intercepted or reused for another service. At the same time, they make daily sign-in faster because you use the same security you already use to unlock your device.

You can activate a passkey through Settings and then User. Under the security settings, you can now add a passkey alongside two-factor authentication. Depending on your device and password manager, a passkey can be synchronized between devices such as your laptop and phone.

Always enable 2FA

A password alone does not provide enough protection for an account with access to health data. Passwords can be stolen through phishing, malware, a data breach or because the same password is also used for other services. With multifactor authentication, usually called MFA/2FA, a second check is required in addition to the password. A stolen password therefore does not immediately give access to the account.

We therefore recommend enabling MFA/2FA or, where possible, adding a passkey for every user account. Do not use shared accounts either: every employee should have their own account. That keeps it clear who accessed information and makes it possible to adjust permissions when an employee changes role or leaves the organization.

Passkeys make secure sign-in easier and can replace a separate verification code in many situations. Always check which security method is active for the account. Not every device or browser supports passkeys in the same way, which means MFA/2FA remains an important additional security layer.

Better protection for the sign-in screen

The sign-in screen is now better protected with smarter CAPTCHA security and improved rate limiting. CAPTCHA helps distinguish real users from automated traffic. The check is mainly used when a login attempt shows signs that may indicate abuse, so regular users have to take as few extra steps as possible.

Rate limiting restricts how many login attempts can be made within a certain period. This helps protect against attacks where large numbers of passwords are tried automatically. After many failed or suspicious attempts, following login attempts can be temporarily delayed or blocked.

These measures work together with passwords, MFA/2FA and passkeys. By combining multiple security layers, an account remains protected when one measure is bypassed.

More insight into account security

In user management, the MFA/2FA status of user accounts is now clearer. Administrators can therefore check more quickly which accounts are additionally secured and which users still need to take action. This is especially important for accounts with administrator rights, because these often provide access to more data and settings.

We recommend that administrators check this status regularly and actively remind employees when MFA/2FA has not yet been enabled. Also check whether accounts of former employees have been closed and whether users still only have access to the parts they need for their work.

Good account security is not a one-time setting, but a recurring part of information security. Flux provides the technical options for this, but real protection only happens when organizations and users apply them consistently.

  • New (7)
    • Support for signing in with passkeys
    • Passkey autosuggestions on supported devices and browsers
    • Monthly export for Zorgtopics
    • Extra templates in the referral-letter picker
    • Extra gender option for online appointments
    • Insight into MFA/2FA status in administration
    • Activities Meter questionnaire
  • Improvements (8)
    • Smarter CAPTCHA security on the sign-in screen
    • Better rate limiting for login attempts
    • More reliable passkey configuration across different environments
    • Easier bulk rate creation
    • Better cleanup of old invoices from Twinfield synchronization
    • Further improvements to BI, filter and interface building blocks
    • PCM questionnaire expanded with ODDI score
    • Continued development of revenue insights, dashboards and exports
  • Bugs (5)
    • Fixed an issue where automatic logout after inactivity did not work correctly
    • Fixed multiple error messages around patient data and exports
    • Fixes for BI overviews and global date filters
    • Fixes for integrations and synchronizations, including Twinfield and Nivel
    • Fixed several regressions in frontend behavior and forms

Update spring 2026

Over the past months we have shipped a lot of work across Flux. Some of it is immediately visible in daily workflows: better planning, clearer invoicing, more filters, extra questionnaires and more useful overviews. Other improvements sit behind the scenes: more stable integrations, better exports, newer technical foundations and stronger error handling.

This update brings together the largest improvements from the spring.

More insight into your practice

We expanded several overviews so you can find the right information faster. In the data explorer you can now filter more precisely by start date, diagnosis code and patient information. We also added filters for invoices, subscriptions, questionnaires and patients who require postal invoices.

Reporting received a lot of attention, especially the Nivel export. We reviewed and improved the export, including new indicators, more referral coverage and better handling of questionnaire data. The LDF export was improved as well by using precomputed aanspraak codes.

Several overviews are now sorted more logically, including insurer contracts, appointments that still need to be invoiced and lists of letters and documents.

Planning and waiting lists

The planner received several day-to-day improvements. We added hotkeys, better warnings for unavailable locations, a removable side panel and horizontal calendar scrolling. When copying and pasting appointments, Flux can now suggest a better location based on availability.

Waiting lists were improved as well. Existing waiting list descriptions are easier to update, waiting lists can be removed and duplicate appointments on the same day are handled more clearly through worklist items.

Appointments without consults now create worklist items, and those items were refined further. This makes missing consults easier to catch without manually checking lists.

Finance and accounting

Many small and large finance improvements landed in this update. Invoice, payment and declaration statuses are clearer. We added extra filters, made POS payments easier to reach and improved visibility for patients without an email address or without a sent invoice email.

The accounting integrations received a lot of maintenance. We worked on Twinfield, Exact Online, Moneybird, Yuki, Payt, Mollie and GGN. Synchronisation is more stable, errors are stored more clearly and webhook handling has improved.

We also worked on automatic Twinfield syncing, better Exact Online master data, Moneybird webhooks and pruning failed accounting sync attempts. For users, that means less manual recovery work and more predictable accounting flows.

Care content and documents

The medical feed and letters received multiple improvements. Treatment trajectory names or conclusions can now be included more consistently in letters, evaluations and final evaluations. Document names can be edited, and Google Drive documents are easier to attach to a patient.

For ZorgDomein, we improved patient creation, phone number handling, GP information and duplicate prevention. We also updated flows around AGB Raadpleegdienst v3, CZN, Zorgtopics and Qualiview.

We also worked on templates, document rendering and PDF regression testing. This helps catch differences between editor content, templates and generated PDFs earlier.

Questionnaires

We added many questionnaires and improved existing questionnaire flows, so questionnaires now have their own section.

Searching for questionnaires is also easier thanks to aliases. Questionnaires can now be found through short names, common variants and abbreviations, such as SHIM, IIEF-5 and short, mini or quick naming variants.

We also fixed bugs in scoring, exports, completed questionnaire handling, intake questionnaires and medical feed filters. This included work around STarT MSK, ACL-RSI, Constant Score, PSK, NPRS and Nivel exports.

Technical stability and security

A large part of this release happened under the hood. We updated dependencies, improved pipelines, cleaned up tooling and added more regression testing. The frontend foundation was strengthened with new primitives for popovers, menus, listboxes, tooltips, presence and interactive component variants. This makes the interface more consistent and easier to extend.

Error handling and logging also improved. More handled exceptions now create worklist items, webhook failures are easier to inspect and domain messages have better storage and ordering.

  • Questionnaires
    • WRITIC questionnaire.
    • WHO-5 questionnaire.
    • IPSS as a sendable questionnaire.
    • SF-MPQ questionnaire.
    • EFA questionnaire, Elbow Functional Assessment scale.
    • Osteoporosis questionnaires: PROMIS-10, osteoporosis baseline questionnaire, osteoporosis questionnaire and FES-I short version.
    • CBBDQ5-12 and CBBDQ12-18 questionnaires.
    • Rivermead Post Concussion Questionnaire.
    • VISA-P and VISA-A questionnaires.
    • FES-I questionnaire.
    • NESA Clinics questionnaires: FSDSR, DSQ-PEM, FunCap27, DN4, PSS and PDI.
    • DASH questionnaire.
    • RA questionnaires: HAQ-DI, RA-QoL, WPAI, IPAQ-SF, PSG and NRS fatigue.
    • Questionnaire aliases, including SHIM/IIEF-5 and short/mini/quick variants.
    • Nivel export indicators for questionnaires.
    • STarT MSK response mapping.
    • ACL-RSI scoring.
    • Constant Score calculation.
    • Nivel export handling for questionnaire kinderprom.
    • PSK patient questionnaires require all three questions.
    • QuestionnaireIsAlreadyCompletedException.
    • QuestionnaireIsAlreadyCompletedException.
    • Referral ID mismatch with questionnaire response request.
    • Filter for specific questionnaires on the medical feed.
    • User manual improvements for Intake Questionnaires.
    • Gracefully handle questionnaires in schemas the user can no longer access.
    • NPRS questionnaire version 1.1 missing Nivel codelist mapping.
    • Questionnaire response request disappears after selecting it in an appointment.
  • Improvements

    Planning, calendar and waiting lists

    • Worklist item for appointments without consults.
    • Improve AppointmentWithoutConsult worklist item.
    • Change description of existing waitlist entry.
    • Remove waiting lists.
    • User setting for drag-and-drop timestep.
    • Removable side panel and horizontal calendar scrolling.
    • Suggest a new location based on availability when copy-pasting appointments.
    • Show unavailable location warning when manually editing appointment time.
    • Drag and drop appointments across practitioner calendars.
    • Show more relevant therapist results when booking an appointment.
    • Add expiry date for worklist item double appointments on the same day.
    • Start from the last entered time when setting availability.
    • Rename availability page from settings to availability.
    • Use a more neutral color for notes without appointment type.
    • Custom patient label planner warning.
    • Add practitioner to iCal link.

    Finance, invoicing and accounting

    • Undelete referrals from the patient finance tab.
    • Filter separate invoices by practitioner.
    • Filter by "is not" practitioner X.
    • Add appointment type column to the packages overview.
    • Automate Twinfield syncing.
    • Sort insurer contracts more logically.
    • Show partially approved rate for partially approved lines.
    • Fix Payt webhook and add webhook test trigger.
    • Clarify sending invoices to multiple email addresses.
    • Customize recall email subject.
    • Add filters for patients without email and without sent invoice email.
    • Add POS payment option to the invoice page "More" menu.
    • Also change start date when aanspraak start date changes.
    • Subscribe to Moneybird webhooks.
    • Add bank account name to default invoice email.
    • Process more Exact transaction lines.
    • Improve more Exact Online master data.
    • Add WERO to button text.
    • Add missing AGB error details.
    • Add option to always enable VAT on company invoices.
    • Prune failed accounting system sync attempts.
    • Add filter for subscription table on patient page.

    Data, reporting and exports

    • Nivel v12.
    • Export treatment trajectory.
    • Rework Nivel export.
    • Include more relevant referrals in Nivel export.
    • Use precomputed aanspraak codes in LDF export.
    • Add diagnosis code filter in referral data explorer.
    • Filter referrals by start date in data explorer.
    • Add created_at DataView filter for patients.
    • Filter patients requiring postal invoices.
    • Allow listing patients for company.
    • Make patient UUID non-nullable.
    • Create new tenant template with additional base templates.

    Care content, documents and communication

    • Allow editing healthcare type for imported referrals.
    • Investigate whether the email template editor can better reflect example emails.
    • Add table support to PortableText.
    • Add treatment trajectory name or conclusion to medical feed item letter.
    • Add treatment trajectory name or conclusion to evaluation letter.
    • Add treatment trajectory name or conclusion to final evaluation letter.
    • Add GPE to evaluation.
    • Add creation time to letter overview.
    • Make consult creation from feed item consistent with page flow.
    • Make document names editable.
    • Make it easier to add Google Drive documents to a patient.
    • Remove CZN actions if the user does not have CZN.
    • Do not show missing referral warning in calendar for future intake.
    • Upgrade AGB Raadpleegdienst to v3 API.
    • Clarify documentation for when an integration party must be contacted.
    • Include phone number and GP information when creating patients from ZorgDomein messages.
    • Show deleted letters.
    • Redo SOAs.
    • Stop using Fysiotherapeutische nazorg.

    Website, UI and platform

    • New app logos.
    • Usable Devcontainer workflow.
    • Export NEN logs to a shared place.
    • Upgrade Postgres to 18 in pipelines and dev environment.
    • Add locale switch to command menu.
    • Improve modal icon alignment for long text.
    • Add back button when creating a new invoice.
    • Pin Node/npm versions everywhere.
    • Update ADRs.
    • Small FRM scraper fixes.
    • Prestatiecode fuzzy search on tariffs.
    • Setup for Claude Code web.
    • Sanity.io content graph for blog.
    • Improve Claude Code context.
    • Reduce website spam with a honeypot.
    • PDF rendering regression testing.
    • Handling for URLs without #.
    • PHPStan rule for command identifier format.
    • Extend explanation for auto_accept_proposal setting.
    • Improve recurring appointment performance.
    • Harmonize domain message storage.
    • Resolve service worker issues.
    • Add ordered event_id to domainmessage tables.
    • Upgrade Vue Router to v5.
    • Replace wkhtmltopdf.
    • Upgrade to Zod v4.
    • Small oxlint cleanup.
    • Tooltip wrapper around Tooltip primitive.
    • Native Popover-backed Menu primitive.
    • Rename SortedRegistry.refresh() to revalidate().
    • Menu / Dropdown wrapper around Menu primitive.
    • Update backend JS build tools.
    • Enable TypeScript noUncheckedIndexedAccess.
    • Storybook dark-mode toolbar theming.
    • Listbox primitive.
    • Typed variant recipes for styled interactive components.
    • Required flag for date of birth field.
    • Add storybook-static to .gitignore.
    • Tooltip primitive.
    • Platform-gap helpers for interactive primitives.
    • Presence primitive for overlay exit animations.
    • Native Popover / Overlay bridge primitives.
    • Stabilize website CI E2E and Lighthouse gates.
    • Fix MetaLink typing.
    • Sort frontend imports.
    • Storybook interactive playground for UI primitives.
  • Fixed bugs

    Questionnaires, medical data and exports

    • Referral ID mismatch with questionnaire response request.
    • STarT MSK answer score mapping.
    • Constant Score calculation bug.
    • Long PSK text breaks intake.
    • Response is not a valueCoding array.
    • ACL-RSI scoring.
    • PSK should be empty for a new referral.
    • Diagnosis snippet not working in intake.
    • Placeholders [GP name] and [reason for visit] often do not work.
    • Zorgtopics data exchange fix.
    • Zorgvergoeding support for unlimited amount.
    • Referral zorgtopics_code is required.
    • Qualiview mobile number required.
    • PSK patient questionnaires require all three questions.
    • Nivel export could not process questionnaire kinderprom.
    • Bechterew diagnosis code is broken.
    • Questionnaire response request disappears after selecting it in appointment.
    • Questionnaire already completed exception.
    • Questionnaire already completed exception.
    • Nivel export missing data in streaming mode.
    • Nivel export broken.
    • LDF issues.

    Finance, declarations and payments

    • Could not declare invoice.
    • Race condition with GDS collection invoice.
    • Send email for invoice type not implemented / uncollectible.
    • InvoiceUpdatedEvent max attempts exceeded.
    • NoPrestatiecodeServiceForCareType: podiatrist.
    • Company division does not appear correctly on invoice.
    • Mollie no terminal ID specified.
    • Mollie payment token not found.
    • Prestatie codelijst not found.
    • No VAT code found for healthcare provider.
    • Refunds are not implemented.
    • Mollie no terminal ID specified.
    • Driver [mollie] not supported.
    • Previous declaration return message shows first instead of last.
    • Mollie payments do not work for uncollectible invoices.
    • Reminder email should only contain outstanding amount.
    • Invoice entry created for wrong referral not changed after refresh.
    • InvoiceHasIncorrectStatusException.
    • Mollie application fee amount too high.
    • Mollie application fee amount too high.
    • Product description not filled after code selection.
    • InvoicePDFGenerated unreliable finalize/event.
    • Missing invoice_total_unpaid.
    • ReconcileInvoicePaymentsForInvoiceCommand invoiceNumber int/string.
    • SyncInvoiceJob max attempts exceeded.
    • ProductNotFoundException.
    • DSW contract tariff fix.
    • Exact server error 500.
    • Missing healthcare_provider_bank_account_name.
    • ImportJournalEntriesFromAccountingSystemJob max attempts exceeded.
    • Merge collection draft invoices same contract exception.
    • InvoiceNotFoundException.
    • No VAT code found for healthcare provider 148.
    • Collection draft invoices should not merge invoices with different contracts.
    • Exact Online payment syncing is not properly disabled for collection invoices.
    • Moneybird external sales invoice not found.
    • Twinfield date outside period.
    • MoneybirdNotAuthenticatedException.
    • Chargeback received for unknown invoicePayment / Mollie transaction.

    Integrations, messages and external services

    • COV check unknown error / could not connect to host.
    • SoapFault: Could not connect to host.
    • COV check does not show error message.
    • SoapFault: Error Fetching http headers.
    • COV Check does not display error message.
    • Mediquest SOAP error value must be greater than zero.
    • Twinfield undefined array key twf.clusterUrl.
    • Add logging to GGN services.
    • Moneybird contacts 422.
    • Yuki sales taxcode cannot be found.
    • Mollie payment method not available.
    • Exact message expired.
    • Yuki daily limit exceeded.
    • Exact unexpected response exception.
    • Undefined column context of referrals.
    • Qualiview respondent must have insurance.
    • install-webhook too many arguments.
    • ZorgDomein create flow double creation / autofill.
    • FileNotReadyForDownloadException.
    • ALB routing fix.
    • Archived patient causes generatebatch crash.
    • PerformGeneralAppointmentImportJob max attempts exceeded.
    • ExecuteOutgoingWebhookJob max attempts exceeded.
    • AxiosError request failed 403.

    Planning, patients and workflow

    • Deceased filter in patient list broken.
    • Some patients are not deduplicated.
    • Appointment notifications refinement.
    • Tried to remove unpersisted appointment.
    • Deceased icon disappeared.
    • PatientNotFoundException.
    • Deceased icon not yet visible for old cases.
    • Appointment type not filled in appointment tab.
    • Planner role has no permission to check duplicate patients.
    • Worklist permissions incorrect for Flux basic.
    • Zorgmail radio button disabled for invalid address.
    • Cannot remove date of death.
    • Show appointment for planner.
    • Copy/paste availability awkward flow.
    • Edit description waitlist entry broken.
    • Patient create button stays loading.
    • Month sometimes not visible on appointment with invoices filter bar.
    • Many availability slots cause scrollbars / disappearing name.
    • Archived patients appear in duplicate worklist item.
    • Adding twin patients impossible due to duplicate check.
    • NoReferralForTenantAndIdException.
    • Cannot edit recall.
    • Import examples dialog stuck on patients.
    • ZodError.
    • NoReferralForTenantAndIdException.
    • Referral already attached.
    • Form needs idle/view state to start editing appointment.

    Interface, content and technical errors

    • Tab titles visible through snippet list.
    • NotFoundError: The object can not be found here.
    • "Appointment" does not fit in English new invoice flow.
    • Locale switcher bug.
    • Expected coding, got number.
    • Visual bugs in website header.
    • RangeError: position out of range.
    • Object Not Found Matching Id update.
    • UUID validation bug.
    • Range is empty.
    • ZodError.
    • Missing translations.
    • DecryptException: invalid payload.
    • Multi-select incorrect border color.
    • Invalid time zone ETC/UNKNOWN.
    • PDO::ATTR_PREFETCH error for NEN logs in data explorer.
    • Merge simple duplicates incorrect command identifier.
    • Value is not an integer.
    • Failed to serialize SendQueuedNotifications / Closure not allowed.
    • Race condition with tenant migrations.
    • Request failed with status 403.
    • Whitespace in tiptap template differs from PDF.
    • Sent mail icon is clock instead of paper plane.
    • Rare login problem.
    • Missing translation admin.apps.data_exchange.
    • "arts" should be "behandelaar".
    • Email must have To/Cc/Bcc header.
    • Manuele behandelingen shows NaN in Zorgvergoeding modal.
    • ZodError.
    • Autosave interaction with appointment/referral selection for medical update.
    • Replace Laravel Excel as import engine.
    • NULL non-null expected.
    • Cannot cancel form in idle state.
    • GenderEnum backing value bug.
    • PHP incomplete class.
    • Error payload in accounting system failures.
    • Recall email template is empty.
    • Disable batch download button for collection invoice in invoice table.
    • NULL expected string.
    • FileNotFoundException invoices zip.
    • Better status when access rights are missing.
    • Cached plan must not change result type.
    • ARRAY not integer/castable.
    • ZodError.
    • Newlines in letter differ from template/PDF.
    • NULL expected string.
    • Typo in PSK activity.
    • Untranslated placeholder.
    • Appointment export does not correctly display times.
    • Fix synchronous calls that are too slow.
    • Console RuntimeException missing id.
    • Improve logging for Exact error messages.
    • e.showModal is not a function.
    • Zorgvergoedingen shows AV instead of BV for exception-only coverage.
    • Text can be pasted in onlyIntegerInput.
    • NoPrestatiecodeServiceForCareType: acupuncturist.
    • External start date is not edited correctly.
    • ViewException syntax error unexpected identifier "planner".
    • routes.admin.account title fix.
    • ZIS number in route contains #referrals.
    • DatetimeException.
    • TypstCompilationException expected comma.