From 651d50329c4217b4b9edadd4ea5bd7b595961708 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 10:59:49 +0100 Subject: [PATCH 01/38] CU-8699nk284: Update requirements to v2 --- medcat-service/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/requirements.txt b/medcat-service/requirements.txt index 7ff331a61..04fce7341 100644 --- a/medcat-service/requirements.txt +++ b/medcat-service/requirements.txt @@ -6,7 +6,7 @@ setuptools==78.1.1 simplejson==3.19.3 werkzeug==3.1.3 setuptools-rust==1.11.0 -medcat==1.16.0 +medcat[meta-cat,spacy] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.11.2#subdirectory=medcat-v2 # pinned because of issues with de-id models and past models (it will not do any de-id) transformers>=4.34.0,<5.0.0 requests==2.32.4 \ No newline at end of file From d8caef79e372e799f84cc789a6d7b519791c43d1 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 11:02:23 +0100 Subject: [PATCH 02/38] CU-8699nk284: Add DeID requirement --- medcat-service/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/requirements.txt b/medcat-service/requirements.txt index 04fce7341..c26bf8828 100644 --- a/medcat-service/requirements.txt +++ b/medcat-service/requirements.txt @@ -6,7 +6,7 @@ setuptools==78.1.1 simplejson==3.19.3 werkzeug==3.1.3 setuptools-rust==1.11.0 -medcat[meta-cat,spacy] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.11.2#subdirectory=medcat-v2 +medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.11.2#subdirectory=medcat-v2 # pinned because of issues with de-id models and past models (it will not do any de-id) transformers>=4.34.0,<5.0.0 requests==2.32.4 \ No newline at end of file From 238502a1a3cb674a4157e5f5ea2116e342edb7dd Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 11:11:09 +0100 Subject: [PATCH 03/38] CU-8699nk284: Update code to be in line with v2 --- .../nlp_processor/medcat_processor.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/medcat-service/medcat_service/nlp_processor/medcat_processor.py b/medcat-service/medcat_service/nlp_processor/medcat_processor.py index 73dadac42..690bfb0f4 100644 --- a/medcat-service/medcat_service/nlp_processor/medcat_processor.py +++ b/medcat-service/medcat_service/nlp_processor/medcat_processor.py @@ -10,8 +10,8 @@ from medcat.cat import CAT from medcat.cdb import CDB from medcat.config import Config -from medcat.meta_cat import MetaCAT -from medcat.utils.ner.deid import DeIdModel +from medcat.components.addons.meta_cat import MetaCATAddon +from medcat.components.ner.trf.deid import DeIdModel from medcat.vocab import Vocab @@ -330,18 +330,21 @@ def _create_cat(self): if os.getenv("APP_MODEL_META_PATH_LIST", None) is not None: self.log.debug("Loading META annotations ...") for model_path in os.getenv("APP_MODEL_META_PATH_LIST").split(":"): - m = MetaCAT.load(model_path) + m = MetaCATAddon.deserialise_from(model_path) meta_models.append(m) - if cat: - meta_models.extend(cat._meta_cats) + # if cat: + # meta_models.extend(cat._meta_cats) if self.app_model.lower() in [None, "unknown"]: self.app_model = cdb.config.version.id config.general["log_level"] = os.getenv("LOG_LEVEL", logging.INFO) - cat = CAT(cdb=cdb, config=config, vocab=vocab, meta_cats=meta_models) + cat = CAT(cdb=cdb, config=config, vocab=vocab) + # add MetaCATs + for mc in meta_models: + cat.add_addon(mc) self._populate_model_card_info(cat.config) From f18b216d22f4c5cc030fcfabf9d8af79c551fec5 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 11:13:40 +0100 Subject: [PATCH 04/38] CU-8699nk284: Update README with v2 link --- medcat-service/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/README.md b/medcat-service/README.md index 67899a4bd..e9cc1025d 100644 --- a/medcat-service/README.md +++ b/medcat-service/README.md @@ -327,4 +327,4 @@ The main settings that can be used to improve the performance when querying larg ## MedCAT library MedCAT parameters are defined in selected `envs/env_medcat*` file. -For details on available MedCAT parameters please refer to [the official GitHub repository](https://github.com/CogStack/MedCAT/). +For details on available MedCAT parameters please refer to [the official GitHub repository](https://github.com/CogStack/cogstack-nlp/blob/main/medcat-v2/). From 35fe531fd850cc356a93d274f77073d6e6b3faf6 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 11:14:43 +0100 Subject: [PATCH 05/38] CU-8699nk284: Update README with v2 link (2nd place) --- medcat-service/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/README.md b/medcat-service/README.md index e9cc1025d..89694dfc5 100644 --- a/medcat-service/README.md +++ b/medcat-service/README.md @@ -1,6 +1,6 @@ # Introduction -This project implements the [MedCAT](https://github.com/CogStack/MedCAT/) NLP application as a service behind a REST API. The general idea is to be able send the text to MedCAT NLP service and receive back the annotations. The REST API is built using [Flask](https://flask.palletsprojects.com/). +This project implements the [MedCAT](https://github.com/CogStack/cogstack-nlp/blob/main/medcat-v2/) NLP application as a service behind a REST API. The general idea is to be able send the text to MedCAT NLP service and receive back the annotations. The REST API is built using [Flask](https://flask.palletsprojects.com/). Git Branches: - devel: development branch, latest updates and features, might be unstable. From 87893fecc7257b34090147a099560f60fc551a77 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 11:16:46 +0100 Subject: [PATCH 06/38] CU-8699nk284: Fix examples tutorial link --- medcat-service/models/examples/examples.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/models/examples/examples.md b/medcat-service/models/examples/examples.md index fca65eebe..89445110a 100644 --- a/medcat-service/models/examples/examples.md +++ b/medcat-service/models/examples/examples.md @@ -2,7 +2,7 @@ ## [example-medcat-v1-model-pack][(models/examples/example-medcat-v1-model-pack.zip) - This model pack is built by running the MedCAT V1 Tutorial Part 3.1. -- https://github.com/CogStack/MedCATtutorials/blob/5a07e4d77da404631cc16b47d3f1c6bd028de396/notebooks/introductory/Part_3_1_Building_a_Concept_Database_and_Vocabulary.ipynb +- https://github.com/CogStack/cogstack-nlp/blob/main/medcat-v1-tutorials/notebooks/introductory/Part_3_1_Building_a_Concept_Database_and_Vocabulary.ipynb It isn't a trained model, but has the concepts "Kidney Failure" and "Failure of Kidneys" built in From 4b2d5f2b8d3048b64afe555a9c47cf8bad65224e Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 12:00:18 +0100 Subject: [PATCH 07/38] CU-8699nk284: Update model card stuff for v2 compatibility --- .../medcat_service/nlp_processor/medcat_processor.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/medcat-service/medcat_service/nlp_processor/medcat_processor.py b/medcat-service/medcat_service/nlp_processor/medcat_processor.py index 690bfb0f4..401352e86 100644 --- a/medcat-service/medcat_service/nlp_processor/medcat_processor.py +++ b/medcat-service/medcat_service/nlp_processor/medcat_processor.py @@ -10,6 +10,7 @@ from medcat.cat import CAT from medcat.cdb import CDB from medcat.config import Config +from medcat.cofig_meta_cat import ConfigMetaCAT from medcat.components.addons.meta_cat import MetaCATAddon from medcat.components.ner.trf.deid import DeIdModel from medcat.vocab import Vocab @@ -239,11 +240,12 @@ def _populate_model_card_info(self, config: Config): Args: config (Config): MedCAT configuration object. """ - self.model_card_info["ontologies"] = config.version.ontology \ - if (isinstance(config.version.ontology, list)) else str(config.version.ontology) - self.model_card_info["meta_cat_model_names"] = [i["Category Name"] for i in config.version.meta_cats] \ - if (isinstance(config.version.meta_cats, list)) else str(config.version.meta_cats) - self.model_card_info["model_last_modified_on"] = str(config.version.last_modified) + self.model_card_info["ontologies"] = config.meta.ontology \ + if (isinstance(config.meta.ontology, list)) else str(config.meta.ontology) + self.model_card_info["meta_cat_model_names"] = [ + cnf.category_name for cnf in config.components.addons + if (isinstance(cnf, ConfigMetaCAT))] + self.model_card_info["model_last_modified_on"] = str(config.meta.last_saved) # helper MedCAT methods # From 0f9cfc2b6363bbfa58bdf38c6ec22eaaa9fca942 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 12:01:31 +0100 Subject: [PATCH 08/38] CU-8699nk284: Avoid running docker hub push on pull requets --- .github/workflows/medcat-service_docker.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/medcat-service_docker.yml b/.github/workflows/medcat-service_docker.yml index df69668ec..e58d2d4f2 100755 --- a/.github/workflows/medcat-service_docker.yml +++ b/.github/workflows/medcat-service_docker.yml @@ -5,10 +5,6 @@ on: branches: [ main ] tags: - 'medcat-service/v*.*.*' # e.g., medcat-serice/v0.1.1 - pull_request: - paths: - - 'medcat-service/**' - - '.github/workflows/medcat-service**' release: types: [published] From 3740d4c914d4e3d0ea6d1750c18be48a0a7af3de Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 12:14:07 +0100 Subject: [PATCH 09/38] CU-8699nk284: Fix typo in import path --- medcat-service/medcat_service/nlp_processor/medcat_processor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/medcat_service/nlp_processor/medcat_processor.py b/medcat-service/medcat_service/nlp_processor/medcat_processor.py index 401352e86..069998052 100644 --- a/medcat-service/medcat_service/nlp_processor/medcat_processor.py +++ b/medcat-service/medcat_service/nlp_processor/medcat_processor.py @@ -10,7 +10,7 @@ from medcat.cat import CAT from medcat.cdb import CDB from medcat.config import Config -from medcat.cofig_meta_cat import ConfigMetaCAT +from medcat.config.cofig_meta_cat import ConfigMetaCAT from medcat.components.addons.meta_cat import MetaCATAddon from medcat.components.ner.trf.deid import DeIdModel from medcat.vocab import Vocab From d3b0f9ca98b3d9e80bc17deebe0dd17e5df3325e Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 12:34:32 +0100 Subject: [PATCH 10/38] CU-8699nk284: Fix further typo --- medcat-service/medcat_service/nlp_processor/medcat_processor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/medcat_service/nlp_processor/medcat_processor.py b/medcat-service/medcat_service/nlp_processor/medcat_processor.py index 069998052..a0477c73f 100644 --- a/medcat-service/medcat_service/nlp_processor/medcat_processor.py +++ b/medcat-service/medcat_service/nlp_processor/medcat_processor.py @@ -10,7 +10,7 @@ from medcat.cat import CAT from medcat.cdb import CDB from medcat.config import Config -from medcat.config.cofig_meta_cat import ConfigMetaCAT +from medcat.config.config_meta_cat import ConfigMetaCAT from medcat.components.addons.meta_cat import MetaCATAddon from medcat.components.ner.trf.deid import DeIdModel from medcat.vocab import Vocab From 3689b4d12b4f82b5b2b406dd53009064b1a9f184 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 12:49:22 +0100 Subject: [PATCH 11/38] CU-8699nk284: Fix access path for MetaCAT config categery name --- medcat-service/medcat_service/nlp_processor/medcat_processor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/medcat_service/nlp_processor/medcat_processor.py b/medcat-service/medcat_service/nlp_processor/medcat_processor.py index a0477c73f..f96b79e16 100644 --- a/medcat-service/medcat_service/nlp_processor/medcat_processor.py +++ b/medcat-service/medcat_service/nlp_processor/medcat_processor.py @@ -243,7 +243,7 @@ def _populate_model_card_info(self, config: Config): self.model_card_info["ontologies"] = config.meta.ontology \ if (isinstance(config.meta.ontology, list)) else str(config.meta.ontology) self.model_card_info["meta_cat_model_names"] = [ - cnf.category_name for cnf in config.components.addons + cnf.general.category_name for cnf in config.components.addons if (isinstance(cnf, ConfigMetaCAT))] self.model_card_info["model_last_modified_on"] = str(config.meta.last_saved) From b6434dfcdcfa3951135b04aadbce32c5ae6ec2ea Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 13:05:07 +0100 Subject: [PATCH 12/38] CU-8699nk284: Update to latest medcat v2 release --- medcat-service/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/requirements.txt b/medcat-service/requirements.txt index c26bf8828..0851c6cb5 100644 --- a/medcat-service/requirements.txt +++ b/medcat-service/requirements.txt @@ -6,7 +6,7 @@ setuptools==78.1.1 simplejson==3.19.3 werkzeug==3.1.3 setuptools-rust==1.11.0 -medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.11.2#subdirectory=medcat-v2 +medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.12.0#subdirectory=medcat-v2 # pinned because of issues with de-id models and past models (it will not do any de-id) transformers>=4.34.0,<5.0.0 requests==2.32.4 \ No newline at end of file From 273ce6a24f00f6564e188d25326f305d3e116b97 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 14:15:34 +0100 Subject: [PATCH 13/38] CU-8699nk284: Bump supported version to latest (to fix legacy CDB conversion) --- medcat-service/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/requirements.txt b/medcat-service/requirements.txt index 0851c6cb5..c214ccaae 100644 --- a/medcat-service/requirements.txt +++ b/medcat-service/requirements.txt @@ -6,7 +6,7 @@ setuptools==78.1.1 simplejson==3.19.3 werkzeug==3.1.3 setuptools-rust==1.11.0 -medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.12.0#subdirectory=medcat-v2 +medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.12.1#subdirectory=medcat-v2 # pinned because of issues with de-id models and past models (it will not do any de-id) transformers>=4.34.0,<5.0.0 requests==2.32.4 \ No newline at end of file From 289923d3369b993bbeaf88fd1d376bc54fb49e34 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 14:34:22 +0100 Subject: [PATCH 14/38] U-8699nk284: Fix some config access --- .../medcat_service/nlp_processor/medcat_processor.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/medcat-service/medcat_service/nlp_processor/medcat_processor.py b/medcat-service/medcat_service/nlp_processor/medcat_processor.py index f96b79e16..094079192 100644 --- a/medcat-service/medcat_service/nlp_processor/medcat_processor.py +++ b/medcat-service/medcat_service/nlp_processor/medcat_processor.py @@ -307,13 +307,13 @@ def _create_cat(self): spacy_model = os.getenv("SPACY_MODEL", "") if spacy_model != "": - cdb.config.general["spacy_model"] = spacy_model + cdb.config.general.nlp.modelname = spacy_model else: logging.warning("SPACY_MODEL environment var not set" + ", attempting to load the spacy model found within the CDB : " - + cdb.config.general["spacy_model"]) + + cdb.config.general.nlp.modelname) - if cdb.config.general["spacy_model"] == "": + if cdb.config.general.nlp.modelname == "": raise ValueError("No SPACY_MODEL env var declared, the CDB loaded does not have a\ spacy_model set in the config variable! \ To solve this declare the SPACY_MODEL in the env_medcat file.") From 0b60b34e26373ba59d311cdf2f9c7aab04d3366b Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 14:34:59 +0100 Subject: [PATCH 15/38] U-8699nk284: Fix some more config access --- medcat-service/medcat_service/nlp_processor/medcat_processor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/medcat_service/nlp_processor/medcat_processor.py b/medcat-service/medcat_service/nlp_processor/medcat_processor.py index 094079192..374b17884 100644 --- a/medcat-service/medcat_service/nlp_processor/medcat_processor.py +++ b/medcat-service/medcat_service/nlp_processor/medcat_processor.py @@ -341,7 +341,7 @@ def _create_cat(self): if self.app_model.lower() in [None, "unknown"]: self.app_model = cdb.config.version.id - config.general["log_level"] = os.getenv("LOG_LEVEL", logging.INFO) + config.general.log_level = os.getenv("LOG_LEVEL", logging.INFO) cat = CAT(cdb=cdb, config=config, vocab=vocab) # add MetaCATs From f3666c7e33a8448484eb46c9880aaa379ce665dc Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 16:15:33 +0100 Subject: [PATCH 16/38] CU-8699nk284: Bump dependency to latest --- medcat-service/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/requirements.txt b/medcat-service/requirements.txt index c214ccaae..33d0760ba 100644 --- a/medcat-service/requirements.txt +++ b/medcat-service/requirements.txt @@ -6,7 +6,7 @@ setuptools==78.1.1 simplejson==3.19.3 werkzeug==3.1.3 setuptools-rust==1.11.0 -medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.12.1#subdirectory=medcat-v2 +medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.12.2#subdirectory=medcat-v2 # pinned because of issues with de-id models and past models (it will not do any de-id) transformers>=4.34.0,<5.0.0 requests==2.32.4 \ No newline at end of file From 2ac04e42f814966bd71631dfa347e391d470fe43 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 17:08:02 +0100 Subject: [PATCH 17/38] CU-8699nk284: Update to latest v2 version --- medcat-service/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/requirements.txt b/medcat-service/requirements.txt index 33d0760ba..74773fa59 100644 --- a/medcat-service/requirements.txt +++ b/medcat-service/requirements.txt @@ -6,7 +6,7 @@ setuptools==78.1.1 simplejson==3.19.3 werkzeug==3.1.3 setuptools-rust==1.11.0 -medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.12.2#subdirectory=medcat-v2 +medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.12.3#subdirectory=medcat-v2 # pinned because of issues with de-id models and past models (it will not do any de-id) transformers>=4.34.0,<5.0.0 requests==2.32.4 \ No newline at end of file From c80ca1523f558621ca1f54d097fdd59a988a674d Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 20:12:07 +0100 Subject: [PATCH 18/38] CU-8699nk284: Bump to latest medcat version again (this time finally, I hope) --- medcat-service/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/requirements.txt b/medcat-service/requirements.txt index 74773fa59..e2907257c 100644 --- a/medcat-service/requirements.txt +++ b/medcat-service/requirements.txt @@ -6,7 +6,7 @@ setuptools==78.1.1 simplejson==3.19.3 werkzeug==3.1.3 setuptools-rust==1.11.0 -medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.12.3#subdirectory=medcat-v2 +medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.12.4#subdirectory=medcat-v2 # pinned because of issues with de-id models and past models (it will not do any de-id) transformers>=4.34.0,<5.0.0 requests==2.32.4 \ No newline at end of file From cb9d356c63ca7659f90bf341c11936914cbb7d0e Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 20:29:03 +0100 Subject: [PATCH 19/38] CU-8699nk284: Fix config access --- medcat-service/medcat_service/nlp_processor/medcat_processor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/medcat_service/nlp_processor/medcat_processor.py b/medcat-service/medcat_service/nlp_processor/medcat_processor.py index 374b17884..c6fb5c0f4 100644 --- a/medcat-service/medcat_service/nlp_processor/medcat_processor.py +++ b/medcat-service/medcat_service/nlp_processor/medcat_processor.py @@ -339,7 +339,7 @@ def _create_cat(self): # meta_models.extend(cat._meta_cats) if self.app_model.lower() in [None, "unknown"]: - self.app_model = cdb.config.version.id + self.app_model = cdb.config.meta.hash config.general.log_level = os.getenv("LOG_LEVEL", logging.INFO) From 03706411a296893192c7632fbe7b9dc93a0e4a4b Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 21:01:48 +0100 Subject: [PATCH 20/38] CU-8699nk284: Mock CDB load during test to use en_core_web_md instead of en_core_sci_lg --- medcat-service/medcat_service/test/test_service.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/medcat-service/medcat_service/test/test_service.py b/medcat-service/medcat_service/test/test_service.py index a0d9f349d..2c082a956 100644 --- a/medcat-service/medcat_service/test/test_service.py +++ b/medcat-service/medcat_service/test/test_service.py @@ -61,7 +61,19 @@ def _setup_medcat_processor(cls, config=None): def _setup_flask_app(cls): # TODO: this method may need later need to be tailored to create a custom MedCAT Flask app # with a custom MedCAT Service + Processor - cls.app = medcat_app.create_app() + from unittest import mock + from medcat import cdb + orig_method = cdb.CDB.load + + def load(path, *args, **kwargs): + cdb = orig_method(path, *args, **kwargs) + if cdb.config.general.nlp.modelname == 'en_core_sci_lg': + print("Changing spacy model from 'en_core_sci_lg' to 'en_core_web_md'") + cdb.config.general.nlp.modelname = 'en_core_web_md' + return cdb + + with mock.patch.object(cdb.CDB, "load", side_effect=load): + cls.app = medcat_app.create_app() cls.app.testing = True cls.client = cls.app.test_client() From 2e44eec533e40c7f45c33bf87734de1b018c54e2 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 21:18:58 +0100 Subject: [PATCH 21/38] CU-8699nk284: [TEMP] Add debug output --- medcat-service/medcat_service/test/test_service.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/medcat-service/medcat_service/test/test_service.py b/medcat-service/medcat_service/test/test_service.py index 2c082a956..8d3cf4bb2 100644 --- a/medcat-service/medcat_service/test/test_service.py +++ b/medcat-service/medcat_service/test/test_service.py @@ -30,6 +30,7 @@ def setUpClass(cls): The Flask app instance is created only once when starting all the unit tests. :return: """ + print("SETUP EVERYTHING...START") cls._setup_logging(cls) cls._setup_medcat_processor(cls) cls._setup_flask_app(cls) @@ -61,19 +62,24 @@ def _setup_medcat_processor(cls, config=None): def _setup_flask_app(cls): # TODO: this method may need later need to be tailored to create a custom MedCAT Flask app # with a custom MedCAT Service + Processor + print("SETUP Flask app now") from unittest import mock from medcat import cdb orig_method = cdb.CDB.load def load(path, *args, **kwargs): + print("Call for mock load method") cdb = orig_method(path, *args, **kwargs) if cdb.config.general.nlp.modelname == 'en_core_sci_lg': print("Changing spacy model from 'en_core_sci_lg' to 'en_core_web_md'") cdb.config.general.nlp.modelname = 'en_core_web_md' + print("Now got config with model:", cdb.config.general.nlp.modelname) return cdb + print("Mocking CDB.load...") with mock.patch.object(cdb.CDB, "load", side_effect=load): cls.app = medcat_app.create_app() + print("App created!") cls.app.testing = True cls.client = cls.app.test_client() From 63081e5b751ad1ec031b7dc287a34eb1e16ac4a8 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 21:53:21 +0100 Subject: [PATCH 22/38] CU-8699nk284: Add client test within mocked / changed spacy model context manager --- medcat-service/medcat_service/test/test_service.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/medcat-service/medcat_service/test/test_service.py b/medcat-service/medcat_service/test/test_service.py index 8d3cf4bb2..6b5f7725e 100644 --- a/medcat-service/medcat_service/test/test_service.py +++ b/medcat-service/medcat_service/test/test_service.py @@ -79,10 +79,10 @@ def load(path, *args, **kwargs): print("Mocking CDB.load...") with mock.patch.object(cdb.CDB, "load", side_effect=load): cls.app = medcat_app.create_app() - print("App created!") + print("App created!") - cls.app.testing = True - cls.client = cls.app.test_client() + cls.app.testing = True + cls.client = cls.app.test_client() @staticmethod def _setup_logging(cls): From 14798c45d019f27e91fc3c5390a51eff233b2b30 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 4 Jul 2025 21:53:49 +0100 Subject: [PATCH 23/38] CU-8699nk284: [TEMP] Add debug (more) output --- medcat-service/medcat_service/test/test_service.py | 1 + 1 file changed, 1 insertion(+) diff --git a/medcat-service/medcat_service/test/test_service.py b/medcat-service/medcat_service/test/test_service.py index 6b5f7725e..4be61a666 100644 --- a/medcat-service/medcat_service/test/test_service.py +++ b/medcat-service/medcat_service/test/test_service.py @@ -83,6 +83,7 @@ def load(path, *args, **kwargs): cls.app.testing = True cls.client = cls.app.test_client() + print("Test DONE") @staticmethod def _setup_logging(cls): From d9becbdd659b09a2af1f36bda708ed6777afd530 Mon Sep 17 00:00:00 2001 From: mart-r Date: Mon, 7 Jul 2025 09:32:17 +0100 Subject: [PATCH 24/38] CU-8699nk284: Mock a different method and more generally during testing --- .../medcat_service/test/test_service.py | 48 +++++++++++-------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/medcat-service/medcat_service/test/test_service.py b/medcat-service/medcat_service/test/test_service.py index 4be61a666..3bc72b1e2 100644 --- a/medcat-service/medcat_service/test/test_service.py +++ b/medcat-service/medcat_service/test/test_service.py @@ -30,11 +30,35 @@ def setUpClass(cls): The Flask app instance is created only once when starting all the unit tests. :return: """ + cls._start_mock() print("SETUP EVERYTHING...START") cls._setup_logging(cls) cls._setup_medcat_processor(cls) cls._setup_flask_app(cls) + @classmethod + def _start_mock(cls): + print("SETUP Flask app now") + from unittest import mock + from medcat.pipeline import Pipeline + orig_method = Pipeline._init_tokenizer + + def init_tokenizer(pipe: Pipeline): + print("Call for mock init_tokenizer method") + if pipe.cdb.config.general.nlp.modelname == 'en_core_sci_lg': + print("Changing spacy model from 'en_core_sci_lg' to 'en_core_web_md'") + pipe.cdb.config.general.nlp.modelname = 'en_core_web_md' + orig_method(pipe) + print("Now got config with model:", pipe.cdb.config.general.nlp.modelname) + + print("Mocking Pipe._init_tokenizer ...") + cls._patcher = mock.patch.object(Pipeline, "_init_tokenizer", side_effect=init_tokenizer) + cls._patcher.start() + + @classmethod + def tearDownClass(cls): + cls._patcher.stop() + @staticmethod def _setup_medcat_processor(cls, config=None): # TODO: these parameters need to be externalized into config file and a custom MedCAT processor created here @@ -62,28 +86,10 @@ def _setup_medcat_processor(cls, config=None): def _setup_flask_app(cls): # TODO: this method may need later need to be tailored to create a custom MedCAT Flask app # with a custom MedCAT Service + Processor - print("SETUP Flask app now") - from unittest import mock - from medcat import cdb - orig_method = cdb.CDB.load + cls.app = medcat_app.create_app() - def load(path, *args, **kwargs): - print("Call for mock load method") - cdb = orig_method(path, *args, **kwargs) - if cdb.config.general.nlp.modelname == 'en_core_sci_lg': - print("Changing spacy model from 'en_core_sci_lg' to 'en_core_web_md'") - cdb.config.general.nlp.modelname = 'en_core_web_md' - print("Now got config with model:", cdb.config.general.nlp.modelname) - return cdb - - print("Mocking CDB.load...") - with mock.patch.object(cdb.CDB, "load", side_effect=load): - cls.app = medcat_app.create_app() - print("App created!") - - cls.app.testing = True - cls.client = cls.app.test_client() - print("Test DONE") + cls.app.testing = True + cls.client = cls.app.test_client() @staticmethod def _setup_logging(cls): From dc0df31a4d6fa6ae291f82ea4c37652c605c76a7 Mon Sep 17 00:00:00 2001 From: mart-r Date: Mon, 7 Jul 2025 09:46:40 +0100 Subject: [PATCH 25/38] CU-8699nk284: Fix import during testing --- medcat-service/medcat_service/test/test_service.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/medcat_service/test/test_service.py b/medcat-service/medcat_service/test/test_service.py index 3bc72b1e2..fed6ae89a 100644 --- a/medcat-service/medcat_service/test/test_service.py +++ b/medcat-service/medcat_service/test/test_service.py @@ -40,7 +40,7 @@ def setUpClass(cls): def _start_mock(cls): print("SETUP Flask app now") from unittest import mock - from medcat.pipeline import Pipeline + from medcat.pipeline.pipeline import Pipeline orig_method = Pipeline._init_tokenizer def init_tokenizer(pipe: Pipeline): From 015205d032068385b5c2931855ecca83be8396cf Mon Sep 17 00:00:00 2001 From: mart-r Date: Mon, 7 Jul 2025 13:24:43 +0100 Subject: [PATCH 26/38] CU-8699nk284: Remove (most of) the debug output --- .../medcat_service/test/test_service.py | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/medcat-service/medcat_service/test/test_service.py b/medcat-service/medcat_service/test/test_service.py index fed6ae89a..a0d9f349d 100644 --- a/medcat-service/medcat_service/test/test_service.py +++ b/medcat-service/medcat_service/test/test_service.py @@ -30,35 +30,10 @@ def setUpClass(cls): The Flask app instance is created only once when starting all the unit tests. :return: """ - cls._start_mock() - print("SETUP EVERYTHING...START") cls._setup_logging(cls) cls._setup_medcat_processor(cls) cls._setup_flask_app(cls) - @classmethod - def _start_mock(cls): - print("SETUP Flask app now") - from unittest import mock - from medcat.pipeline.pipeline import Pipeline - orig_method = Pipeline._init_tokenizer - - def init_tokenizer(pipe: Pipeline): - print("Call for mock init_tokenizer method") - if pipe.cdb.config.general.nlp.modelname == 'en_core_sci_lg': - print("Changing spacy model from 'en_core_sci_lg' to 'en_core_web_md'") - pipe.cdb.config.general.nlp.modelname = 'en_core_web_md' - orig_method(pipe) - print("Now got config with model:", pipe.cdb.config.general.nlp.modelname) - - print("Mocking Pipe._init_tokenizer ...") - cls._patcher = mock.patch.object(Pipeline, "_init_tokenizer", side_effect=init_tokenizer) - cls._patcher.start() - - @classmethod - def tearDownClass(cls): - cls._patcher.stop() - @staticmethod def _setup_medcat_processor(cls, config=None): # TODO: these parameters need to be externalized into config file and a custom MedCAT processor created here From 49af0dc4287e31e5b8df0696efa10c2c79b2e5ae Mon Sep 17 00:00:00 2001 From: mart-r Date: Mon, 7 Jul 2025 13:53:13 +0100 Subject: [PATCH 27/38] CU-8699nk284: Bump requirements to latest --- medcat-service/requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/medcat-service/requirements.txt b/medcat-service/requirements.txt index e2907257c..f0ac9f06d 100644 --- a/medcat-service/requirements.txt +++ b/medcat-service/requirements.txt @@ -6,7 +6,7 @@ setuptools==78.1.1 simplejson==3.19.3 werkzeug==3.1.3 setuptools-rust==1.11.0 -medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.12.4#subdirectory=medcat-v2 +medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.12.5#subdirectory=medcat-v2 # pinned because of issues with de-id models and past models (it will not do any de-id) transformers>=4.34.0,<5.0.0 -requests==2.32.4 \ No newline at end of file +requests==2.32.4 From 913086415986e8c5417911043290a16e96ff9b77 Mon Sep 17 00:00:00 2001 From: mart-r Date: Mon, 7 Jul 2025 14:28:55 +0100 Subject: [PATCH 28/38] CU-8699nk284: Update ultiprocessing method to v2 --- .../medcat_service/nlp_processor/medcat_processor.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/medcat-service/medcat_service/nlp_processor/medcat_processor.py b/medcat-service/medcat_service/nlp_processor/medcat_processor.py index c6fb5c0f4..4d1cbb0ed 100644 --- a/medcat-service/medcat_service/nlp_processor/medcat_processor.py +++ b/medcat-service/medcat_service/nlp_processor/medcat_processor.py @@ -198,9 +198,9 @@ def process_content_bulk(self, content): ann_res = self.cat.deid_multi_texts(MedCatProcessor._generate_input_doc(content, invalid_doc_ids), redact=self.DEID_REDACT) else: - ann_res = self.cat.multiprocessing_batch_char_size( + ann_res = self.cat.get_entities_multi_texts( MedCatProcessor._generate_input_doc(content, invalid_doc_ids), nproc=self.bulk_nproc) - + ann_res = {ann_id: res for ann_id, res in ann_res} except Exception as e: self.log.error(repr(e)) From a62f92f6f70efd640227f58194827eb8138946e4 Mon Sep 17 00:00:00 2001 From: mart-r Date: Mon, 7 Jul 2025 14:50:15 +0100 Subject: [PATCH 29/38] CU-8699nk284: Fix keyword argument name --- medcat-service/medcat_service/nlp_processor/medcat_processor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/medcat_service/nlp_processor/medcat_processor.py b/medcat-service/medcat_service/nlp_processor/medcat_processor.py index 4d1cbb0ed..318dbc67c 100644 --- a/medcat-service/medcat_service/nlp_processor/medcat_processor.py +++ b/medcat-service/medcat_service/nlp_processor/medcat_processor.py @@ -199,7 +199,7 @@ def process_content_bulk(self, content): redact=self.DEID_REDACT) else: ann_res = self.cat.get_entities_multi_texts( - MedCatProcessor._generate_input_doc(content, invalid_doc_ids), nproc=self.bulk_nproc) + MedCatProcessor._generate_input_doc(content, invalid_doc_ids), n_process=self.bulk_nproc) ann_res = {ann_id: res for ann_id, res in ann_res} except Exception as e: self.log.error(repr(e)) From 05b02a5cdc0fe928b3e228d390714923d8c7daf9 Mon Sep 17 00:00:00 2001 From: mart-r Date: Mon, 7 Jul 2025 18:50:39 +0100 Subject: [PATCH 30/38] CU-8699nk284: Update multiprocessing --- .../nlp_processor/medcat_processor.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/medcat-service/medcat_service/nlp_processor/medcat_processor.py b/medcat-service/medcat_service/nlp_processor/medcat_processor.py index 318dbc67c..72d69f2bc 100644 --- a/medcat-service/medcat_service/nlp_processor/medcat_processor.py +++ b/medcat-service/medcat_service/nlp_processor/medcat_processor.py @@ -189,7 +189,7 @@ def process_content_bulk(self, content): # use generators both to provide input documents and to provide resulting annotations # to avoid too many mem-copies invalid_doc_ids = [] - ann_res = [] + ann_res = {} start_time_ns = time.time_ns() @@ -198,11 +198,14 @@ def process_content_bulk(self, content): ann_res = self.cat.deid_multi_texts(MedCatProcessor._generate_input_doc(content, invalid_doc_ids), redact=self.DEID_REDACT) else: - ann_res = self.cat.get_entities_multi_texts( - MedCatProcessor._generate_input_doc(content, invalid_doc_ids), n_process=self.bulk_nproc) - ann_res = {ann_id: res for ann_id, res in ann_res} + text_input = MedCatProcessor._generate_input_doc(content, invalid_doc_ids) + ann_res = { + ann_id: res for ann_id, res in + self.cat.get_entities_multi_texts( + text_input, n_process=self.bulk_nproc) + } except Exception as e: - self.log.error(repr(e)) + self.log.error("Unable to process data", exc_info=e) additional_info = {"elapsed_time": str((time.time_ns() - start_time_ns) / 10e8)} From bf677cc28e27b4083dc6ef251a655a383482aa68 Mon Sep 17 00:00:00 2001 From: mart-r Date: Mon, 7 Jul 2025 19:26:24 +0100 Subject: [PATCH 31/38] CU-8699nk284: Update to latest MedCAT version --- medcat-service/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/requirements.txt b/medcat-service/requirements.txt index f0ac9f06d..c6acd1e68 100644 --- a/medcat-service/requirements.txt +++ b/medcat-service/requirements.txt @@ -6,7 +6,7 @@ setuptools==78.1.1 simplejson==3.19.3 werkzeug==3.1.3 setuptools-rust==1.11.0 -medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.12.5#subdirectory=medcat-v2 +medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.13.1#subdirectory=medcat-v2 # pinned because of issues with de-id models and past models (it will not do any de-id) transformers>=4.34.0,<5.0.0 requests==2.32.4 From ea9834c58a6fe89b92cecba6759470262f987824 Mon Sep 17 00:00:00 2001 From: mart-r Date: Tue, 8 Jul 2025 12:35:01 +0100 Subject: [PATCH 32/38] CU-8699nk284: Update to latest requirements --- medcat-service/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/requirements.txt b/medcat-service/requirements.txt index c6acd1e68..e517b7bf4 100644 --- a/medcat-service/requirements.txt +++ b/medcat-service/requirements.txt @@ -6,7 +6,7 @@ setuptools==78.1.1 simplejson==3.19.3 werkzeug==3.1.3 setuptools-rust==1.11.0 -medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.13.1#subdirectory=medcat-v2 +medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.13.2#subdirectory=medcat-v2 # pinned because of issues with de-id models and past models (it will not do any de-id) transformers>=4.34.0,<5.0.0 requests==2.32.4 From 43a9e286732df5aef46d3743e2a09292f6e70f03 Mon Sep 17 00:00:00 2001 From: mart-r Date: Tue, 8 Jul 2025 13:05:08 +0100 Subject: [PATCH 33/38] CU-8699nk284: Use newer python in workflow --- .github/workflows/medcat-service_run-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/medcat-service_run-tests.yml b/.github/workflows/medcat-service_run-tests.yml index f98802f9d..3be28ee82 100755 --- a/.github/workflows/medcat-service_run-tests.yml +++ b/.github/workflows/medcat-service_run-tests.yml @@ -29,7 +29,7 @@ jobs: - name: Install Python 3 uses: actions/setup-python@v5 with: - python-version: 3.9 + python-version: 3.11 cache: 'pip' # caching pip dependencies - name: Install dependencies From 0ce5060c6fa3bd375fc945ed3035aa5e9af625b7 Mon Sep 17 00:00:00 2001 From: mart-r Date: Tue, 8 Jul 2025 16:13:38 +0100 Subject: [PATCH 34/38] CU-8699nk284: Bump requirements to latest --- medcat-service/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/requirements.txt b/medcat-service/requirements.txt index e517b7bf4..9c763b308 100644 --- a/medcat-service/requirements.txt +++ b/medcat-service/requirements.txt @@ -6,7 +6,7 @@ setuptools==78.1.1 simplejson==3.19.3 werkzeug==3.1.3 setuptools-rust==1.11.0 -medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.13.2#subdirectory=medcat-v2 +medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.13.3#subdirectory=medcat-v2 # pinned because of issues with de-id models and past models (it will not do any de-id) transformers>=4.34.0,<5.0.0 requests==2.32.4 From e792b207b5a7d8a08bb6316f7f90506ce893e735 Mon Sep 17 00:00:00 2001 From: mart-r Date: Wed, 9 Jul 2025 14:09:26 +0100 Subject: [PATCH 35/38] CU-8699nk284: Bump requirements to latest --- medcat-service/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/requirements.txt b/medcat-service/requirements.txt index 9c763b308..6b31d46e7 100644 --- a/medcat-service/requirements.txt +++ b/medcat-service/requirements.txt @@ -6,7 +6,7 @@ setuptools==78.1.1 simplejson==3.19.3 werkzeug==3.1.3 setuptools-rust==1.11.0 -medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.13.3#subdirectory=medcat-v2 +medcat[meta-cat,spacy,deid] @ git+https://github.com/CogStack/cogstack-nlp.git@refs/tags/medcat/v0.13.5#subdirectory=medcat-v2 # pinned because of issues with de-id models and past models (it will not do any de-id) transformers>=4.34.0,<5.0.0 requests==2.32.4 From d014bb9edf247ddd0e5f0d79abed092293ff2924 Mon Sep 17 00:00:00 2001 From: mart-r Date: Wed, 9 Jul 2025 14:39:31 +0100 Subject: [PATCH 36/38] Revert "CU-8699nk284: Avoid running docker hub push on pull requets" This reverts commit 0f9cfc2b6363bbfa58bdf38c6ec22eaaa9fca942. --- .github/workflows/medcat-service_docker.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/medcat-service_docker.yml b/.github/workflows/medcat-service_docker.yml index e58d2d4f2..df69668ec 100755 --- a/.github/workflows/medcat-service_docker.yml +++ b/.github/workflows/medcat-service_docker.yml @@ -5,6 +5,10 @@ on: branches: [ main ] tags: - 'medcat-service/v*.*.*' # e.g., medcat-serice/v0.1.1 + pull_request: + paths: + - 'medcat-service/**' + - '.github/workflows/medcat-service**' release: types: [published] From 803d4170973d808c0bc09737371a3079368775a2 Mon Sep 17 00:00:00 2001 From: mart-r Date: Wed, 9 Jul 2025 15:01:53 +0100 Subject: [PATCH 37/38] CU-8699nk284: Fix Dockerfile for GitHub URL-based installs --- medcat-service/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/medcat-service/Dockerfile b/medcat-service/Dockerfile index cbb779b30..ec0703caf 100644 --- a/medcat-service/Dockerfile +++ b/medcat-service/Dockerfile @@ -6,6 +6,9 @@ ENV CRYPTOGRAPHY_DONT_BUILD_RUST=1 WORKDIR /cat COPY ./requirements.txt /cat +# NOTE: need git for URL based installs +RUN apt-get update && apt-get install -y git + # Install Python dependencies ARG USE_CPU_TORCH=true # NOTE: Allow building without GPU so as to lower image size (GPU is disabled by default) From 04919d91b1b01bb831da048c342f4edee3571cc9 Mon Sep 17 00:00:00 2001 From: mart-r Date: Wed, 9 Jul 2025 15:55:33 +0100 Subject: [PATCH 38/38] CU-8699nk284: Fix hash attribute path --- medcat-service/medcat_service/nlp_processor/medcat_processor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-service/medcat_service/nlp_processor/medcat_processor.py b/medcat-service/medcat_service/nlp_processor/medcat_processor.py index 72d69f2bc..b75f26b6b 100644 --- a/medcat-service/medcat_service/nlp_processor/medcat_processor.py +++ b/medcat-service/medcat_service/nlp_processor/medcat_processor.py @@ -286,7 +286,7 @@ def _create_cat(self): cat.cdb.filter_by_cui(cuis_to_keep) if self.app_model.lower() in ["", "unknown", "medmen"]: - self.app_model = cat.config.version.id + self.app_model = cat.config.meta.hash self._populate_model_card_info(cat.config)