Releases: CogStack/cogstack-nlp
MedCAT v2.7.0
🩺 MedCAT v2.7 Release Notes
This release focuses on usability improvements, pipeline observability, and several bug fixes across MedCAT components, including fixes for RelCAT and MetaCAT behaviour.
🚀 New Features & Enhancements
- Pipeline Timing / Speed Metrics – Added options to report the time spent in different pipeline stages, including:
- Tokenisation
- NER
- Entity linking
- Individual addon components
This helps users understand performance bottlenecks in their MedCAT pipelines.
- Shorthand DeID Imports – Added a simplified import path for the DeID model:
This replaces the longer internal import path previously required.
from medcat.deid import DeIdModel
- Australian Model Bundle Support – Added explicit support for AU model bundles, enabling easier building and distribution of Australian clinical models.
🐛 Bug Fixes
- RelCAT Usability Fix – Fixed a typo that prevented RelCAT (relation extraction) from functioning correctly.
- MetaCAT Shuffle Fix – Corrected an issue where shuffling could still occur even when shuffle was disabled.
- RelCAT Typing Fix – Resolved typing issues affecting RelCAT components.
- Supervised Training Improvements – Improved the way supervised training synchronises entities in documents with expected dataset annotations.
This simplifies batched training workflows for some linker implementations (e.g. embedding linker) and prevents edge cases where batched annotations could remain unprocessed.
🧰 Other Improvements
- Documentation Migration – MedCAT documentation has been migrated to MkDocs, improving maintainability and navigation.
- Tutorial & Script Automation – Fixed issues with the script used to automatically update tutorial and script versions.
This release improves pipeline transparency, training robustness, and component usability, while continuing to stabilise the MedCAT v2 ecosystem.
What's Changed
- issue(medcat): CU-869c5kge0 Fix the script for automated bumps of tutorials / scripts. by @mart-r in #343
- feature(medcat): CU-869c7cxh7 Add shorthand import for deid by @mart-r in #346
- issue(medcat): CU-869c87tt9 Fix typo in relcat. by @mart-r in #349
- docs(medcat): Switch Medcat to Mkdocs by @alhendrickson in #361
- feat(medcat):CU-869cgny1k Add pipe speed options by @mart-r in #369
- feat(medcat): CU-869ccxgj7 Add AU model bundle support by @mart-r in #371
- feat(medcat): CU-869cgny1k Add pipe tokenizer speed by @mart-r in #370
- Pushing bug fix for shuffle by @shubham-s-agarwal in #381
- bug(medcat): CU-869cqnmtk Fix RelCAT typing issue by @mart-r in #388
- bug(medcat): CU-869ckx6dr Allow for better supervised training by @mart-r in #374
New Contributors
- @github-actions[bot] made their first contribution in #342
Full Changelog: MedCAT/v2.6.0...medcat/v2.7.0
MedCAT v1.16.12 patch release
This patch release addresses a few minor issues:
- Fix setuptools for MedCAT (#331)
- Fix issue with missing
pkg_resources(#336) - Fix data shuffle issue in MetaCAT test/train split (#381)
Full Changelog: medcat/v1.16.8...medcat/v1.16.12
medcat-service/v1.3.0
What's Changed
- fix(medcat-service): Metrics API not registering when demo is enabled by @alhendrickson in #348
- chore(medcat-service): CU-869ckmu2r bump medcat to 2.6.0 by @mart-r in #372
- build(medcat-service): CU-869ckmuga automate medcat dependency bumps by @mart-r in #373
New Contributors
- @github-actions[bot] made their first contribution in #342
Full Changelog: medcat-service/v1.2.0...medcat-service/v1.3.0
MedCAT-den v0.5.3
This is a MedCAT den patch release, mostly focusing on model card adaption for legacy / fake models (#352).
What's Changed
- build(medcat-den): CU-869c7zhpv Avoid using newly introduced rules for ruff by @mart-r in #347
- issue(medcat-den): CU-869c96xwg Improve model card adaption by @mart-r in #352
Full Changelog: medcat-den/v0.5.2...medcat-den/v0.5.3
medcat/v2.6.0
🩺 MedCAT v2.6 Release Notes
This release focuses on plugin ecosystem maturity, distribution clean-up, and improved usability around plugins and scripts, alongside a small number of bug fixes and documentation updates.
🚀 New Features & Enhancements
- Plugin Catalogue & Auto-Installation – Introduced a plugin catalogue that defines known plugins and how they are distributed.
MedCAT can now automatically install missing plugins via:
python -m medcat install-plugins <plugin_name>
This significantly simplifies setup when loading models that depend on external plugins.
- Missing Plugin Download Support – When loading a model that requires plugins not currently installed, MedCAT can now offer a command for the user to use to download / install them.
- Embedding Linker as a Standalone Plugin – The embedding-based linker has been extracted from the core library and released as a separate PyPI project.
This reduces core dependencies and aligns with the new plugin-first architecture. - GLiNER Plugin Public Release – The GLiNER-based NER implementation has been migrated into a publicly available standalone plugin and added to the plugin catalogue.
⚠️ Breaking / Behavioural Changes
- Embedding Linker & GLiNER Removed from Core –
Both the embedding linker and GLiNER are no longer shipped as part of the MedCAT core package:- They must now be installed explicitly as plugins
This is technically a breaking change, but is unlikely to affect users as v2 adoption is still limited and this was an optional extra.
🐛 Bug Fixes
- Embedding Linker Disambiguation – Fixed an issue in embedding linker disambiguation logic that could lead to incorrect candidate selection.
- Improved Stability on Windows & macOS – Addressed platform-specific stability issues uncovered in CI.
🧰 Other Improvements
- Documentation Updates
- Added a dedicated section describing key differences between MedCAT v1 and v2
- Documented script downloads via the MedCAT library
- Added links to
medcat-scriptsin tutorials - Removed references to v1 models from the README
- medcat-scripts UX Improvements – Improved messaging during script installation, including clearer dependency installation instructions.
- Release & Packaging Cleanups
- Migrated internal GLiNER implementation to a public project
- Updated internal version references
- CI & Stability Improvements – Additional fixes to ensure stable behaviour across platforms and environments.
This release continues the transition toward a modular, plugin-driven MedCAT v2 ecosystem, with clearer separation of concerns, leaner core dependencies, and better tooling for managing optional components.
What's Changed
- CU-869bxf6ht: Add a paragraph on v2 differences in the docs by @mart-r in #310
- feat(medcat): CU-869bydfx8 Allow downloading missing plugins by @mart-r in #311
- bug(medcat): CU-869c0g9f7 Fix embedding linker disambiguation by @mart-r in #314
- Update medcat version to 2.5.0 in requirements by @mart-r in #318
- cocs(medcat-scripts): CU-869c25ux2 Document scripts download through medcat lib by @mart-r in #320
- docs(medcat-tutorials): CU-869c25t6a Add link to medcat scripts by @mart-r in #319
- CU-869c3t2kk: Remove v1 models from README by @mart-r in #330
- chore(medcat-gliner): CU-869c3bvm0 Migrate gliner implementation to public by @mart-r in #328
- issue(medcat): CU-869c43hgw Show requirement installation message upon scripts install by @mart-r in #332
- chore(medcat-plugin-embedding-linker): CU-869c36ruk Separate embedding linker to its own project by @mart-r in #327
- Fix medcat-gliner release in plugin catalog by @mart-r in #339
- Issue(medcat):CU-869c570zv stability on windows and macos by @mart-r in #338
Full Changelog: medcat/v2.5.3...MedCAT/v2.6.0
medcat-trainer/v3.5.0 - Revamped admin pages
For the majority of users the Django admin page can now be ignored. The trainer project-admin page should now be used to setup, maintain and modify new and existing projects.
The django-admin is still accessible.
Further bug fixes / improvements for trainer in cloud based deployments.
What's Changed
- medcat-trainer: Admin Page by @tomolopolis in #312
- build(medcat-trainer): Pin setuptools version as pkg_resources remove… by @alhendrickson in #323
- feat(medcat-trainer): Bootstrap admin user can be defined by env vars by @alhendrickson in #322
- fix(medcat-trainer): CU-869c1h5qh Model pack saving error fix by updating kwargs by @alhendrickson in #326
- chore(medcat-trainer): update deps by @tomolopolis in #325
Full Changelog: medcat-service/v1.2.0...medcat-trainer/v3.5.0
medcat-service/v1.2.0 FastAPI and Cloud improvements
This release rewrites medcat service to run on FastAPI instead of Flask. It adds improvements useful for running in cloud environments and includes bug fixes and integration testing
Rewrite to FastAPI
- Migrated to FastAPI framework instead of Flask
- Added Pydantic for improved type safety
- Added types to Health and Info APIs
- Added input types for all APIs
- Added root_path support using Pydantic settings
New Features
- Observability with Prometheus metrics and OpenTelemetry tracing
- Create a demo interface for MedCAT and AnonCAT using Gradio
- Added Kubernetes liveness and readiness health check endpoints
What's Changed
- feat(medcat-service): Create liveness and readiness APIs for use by K8s by @alhendrickson in #41
- refactor(medcat-service): Add pydantic. Add types to Health and Info APIs by @alhendrickson in #51
- CU-8699vq0he: refactor(medcat-service): add input types for APis by @alhendrickson in #56
- CU-8699wvj3d refactor(medcat-service): Add FastAPI framework by @alhendrickson in #57
- feat(medcat-service): Add root_path support using pydantic settings by @alhendrickson in #60
- feat(medcat-service): Add Gradio UI to show a demo of the model by @alhendrickson in #59
- build(medcat-service): Fix latest tag in docker getting set on a release by @alhendrickson in #63
- CU-8699xagnz bug(medcat-service): Add test showing that meta_anns_filters in payload errors out by @alhendrickson in #58
- bug(medcat-service): Fix DeID mode fails with PydanticSerializationError by @alhendrickson in #98
- test(medcat-service): 869a17yed Create integration test for DeID Function by @alhendrickson in #100
- bug(medcat-service): DeID bulk processing fix by @alhendrickson in #104
- bug(medcat-service): Fix Gradio settings by @alhendrickson in #136
- Medcat service rev1 by @vladd-bit in #137
- Medcat service rev2 by @vladd-bit in #139
- fix(medcat-service) - Fix access log format not being set using uvicorn worker by @alhendrickson in #199
- fix(medcat-service): Add thread safety to medcat processor dependency by @alhendrickson in #200
- feat(medcat-service): Add Gunicorn CLI args for max requests, jitter, and any other input from env by @alhendrickson in #201
- build(medcat-service): CU-869b2zjay Clean runner to free up space for docker builds by @mart-r in #216
- feat(medcat-service): Add optional metrics instrumentation with prometheus by @alhendrickson in #207
- fix(medcat-service): Fix Prometheus metrics and add unit tests for it by @alhendrickson in #221
- feat(medcat-service): Run MCP server for medcat using gradio by @alhendrickson in #253
- feat(medcat-service): Enable Opentelemetry Tracing by @alhendrickson in #257
- perf(medcat-service): CU-869a6r2uz Improve Deid performance by not calling get_entities twice by @alhendrickson in #258
- feat(medcat-service): Medcat Demo and AnonCAT demo uplift in Gradio by @alhendrickson in #279
- refactor(medcat-service): Demo app code improvements by @alhendrickson in #317
Full Changelog: MedCATservice/v1.1.1...medcat-service/v1.2.0
medcat-trainer/v3.4.2 - patch for remote model service timeouts
What's Changed
- chore(medcat-trainer): update compose for latest patch release by @tomolopolis in #308
- feat(medcat-trainer): configurable remote model service timeout by @tomolopolis in #309
Full Changelog: medcat-trainer/v3.4.1...medcat-trainer/v3.4.2
medcatrainer/v3.4.1 - patch release
What's Changed
- fix(medcat-trainer): Postgres load_examples fails on unique constraint by @alhendrickson in #299
- fix(medcat-trainer): Pass kwargs to ModelPack.save to stay consistent by @alhendrickson in #300
- fix(medcat-trainer): Make VITE_ env vars mandatory only when VITE_USE_OIDC is set to true by @jocelyneholdbrook in #301
- build(medcat-trainer): Improve dockerfile layer caching by @alhendrickson in #304
- build(medcat-trainer): Consolidate github flows into one. Use standardised github actions for docker by @alhendrickson in #302
Full Changelog: medcat-trainer/v3.4.0...medcat-trainer/v3.4.1
MedCAT v1.16.8 patch release
This patch release delivers some RelCAT fixes from #297
Full Changelog: medcat/v1.16.7...medcat/v1.16.8