The dynamic MeSH optionset will query internal database tables for descriptors matching the user input. The plugin is meant to be used with RDMO's autocomplete field and its server-side search capabilities.
Please visit the RDMO documentation for detailed information on plugin.
Install the plugin in your RDMO virtual environment using pip (directly from GitHub):
pip install git+https://github.com/rdmorganiser/rdmo-plugins-mesh
Add the rdmo_mesh
app to your INSTALLED_APPS
in config/settings/local.py
:
from . import INSTALLED_APPS
INSTALLED_APPS = ['rdmo_mesh'] + INSTALLED_APPS
Add the plugin to the OPTIONSET_PROVIDERS
in config/settings/local.py
:
OPTIONSET_PROVIDERS = [
...
('mesh', _('Medical Subject Headings (MeSH)'), 'rdmo_mesh.providers.MeSHProvider'),
]
Optionally, a REST API for the MeSH data can be activated by adding the following to config/urls.py
:
urlpatterns = [
...
path('api/v1/mesh/', include('rdmo_mesh.urls')), # before the regular RDMO API!
path('api/v1/', include('rdmo.core.urls.v1')),
...
]
Add the locaton of the source xml files to config/settings/local.py
as well:
MESH_DESCRIPTOR_URL = 'ftp://nlmpubs.nlm.nih.gov/online/mesh/MESH_FILES/xmlmesh/desc2021.xml'
MESH_QUALIFIER_URL = 'ftp://nlmpubs.nlm.nih.gov/online/mesh/MESH_FILES/xmlmesh/qual2021.xml'
MESH_PATH = '/path/to/where/the/xml/files/are/store/locally'
Since the plugin uses its own models, run the migrations:
python manage.py migrate
Import the MeSH data:
python manage.py import_mesh
After restarting RDMO, the MeSHProvider
should be selectable as a provider option for option sets. Those optionsets should be used with a question using the autocomplete
widget.