diff --git a/CHANGELOG-organ-page-fixes.md b/CHANGELOG-organ-page-fixes.md new file mode 100644 index 0000000000..a0217c70db --- /dev/null +++ b/CHANGELOG-organ-page-fixes.md @@ -0,0 +1,4 @@ +- Ensure ovary and fallopian tube organ pages are properly populated with left/right laterality datasets. +- Ensure urinary bladder organ page includes Bladder datasets. +- Ensure bladder organ icon displays appropriately. +- Ensure cell population plot controls drawer does not overlap the app bar. diff --git a/context/app/organ/fallopian-tube.yaml b/context/app/organ/fallopian-tube.yaml index 9a46f3e434..f26ea6d08d 100644 --- a/context/app/organ/fallopian-tube.yaml +++ b/context/app/organ/fallopian-tube.yaml @@ -8,4 +8,6 @@ description: Initial section of the oviduct through which the ova pass from the to the uterus. icon: https://cdn.jsdelivr.net/gh/cns-iu/md-icons@main/other-icons/organs/ico-organs-fallopian-tube-left.svg has_iu_component: true -search: [] \ No newline at end of file +search: + - Fallopian Tube (Left) + - Fallopian Tube (Right) diff --git a/context/app/organ/ovary.yaml b/context/app/organ/ovary.yaml index b89c43f065..1fe6feefde 100644 --- a/context/app/organ/ovary.yaml +++ b/context/app/organ/ovary.yaml @@ -7,4 +7,6 @@ asctb: ovary-v1.2 description: The gonad of a female organism which contains germ cells. icon: https://cdn.jsdelivr.net/gh/cns-iu/md-icons@main/other-icons/organs/ico-organs-ovaries.svg has_iu_component: true -search: [] \ No newline at end of file +search: + - Ovary (Left) + - Ovary (Right) diff --git a/context/app/organ/urinary-bladder.yaml b/context/app/organ/urinary-bladder.yaml index ea99fb158f..8d4786a356 100644 --- a/context/app/organ/urinary-bladder.yaml +++ b/context/app/organ/urinary-bladder.yaml @@ -8,4 +8,5 @@ description: Distensible musculomembranous organ situated in the anterior part o the pelvic cavity in which urine collects before excretion[MP]. icon: https://cdn.jsdelivr.net/gh/cns-iu/md-icons@main/other-icons/organs/ico-organs-bladder.svg has_iu_component: true -search: [] \ No newline at end of file +search: + - Bladder diff --git a/context/app/routes_file_based.py b/context/app/routes_file_based.py index aca5cbb3c1..191739c025 100644 --- a/context/app/routes_file_based.py +++ b/context/app/routes_file_based.py @@ -7,7 +7,7 @@ import frontmatter -from .utils import get_default_flask_data, make_blueprint, get_organs +from .utils import get_default_flask_data, get_organ_name_mapping, make_blueprint, get_organs blueprint = make_blueprint(__name__) @@ -80,13 +80,15 @@ def organ_details_view(name): @blueprint.route('/organ/.json') def get_organ_details(name): organs = get_organs() + organ_names = get_organ_name_mapping() # Remove all spaces, underscores, and any text in parentheses normalized_name = name.lower().strip() normalized_name = normalized_name.split('(')[0].strip().replace( ' ', '-').replace('_', '-') - if normalized_name not in organs: + safe_organ_name = organ_names.get(normalized_name) + if safe_organ_name not in organs: return {} - filename = Path(dirname(__file__)) / 'organ' / f'{secure_filename(normalized_name)}.yaml' + filename = Path(dirname(__file__)) / 'organ' / f'{secure_filename(safe_organ_name)}.yaml' organ = safe_load(filename.read_text()) return organ diff --git a/context/app/utils.py b/context/app/utils.py index 310ea563c9..49c6125e6b 100644 --- a/context/app/utils.py +++ b/context/app/utils.py @@ -66,6 +66,18 @@ def get_organs(): return organs +def get_organ_name_mapping(): + organs = get_organs() + organ_file_names = {k: k for k, _ in organs.items()} + # Add search field for each organ as additional keys + for k, v in organs.items(): + search = v['search'] + if len(search) > 0: + for s in search: + organ_file_names[s.lower()] = k + return organ_file_names + + # Redirect to primary dataset if this entity is # - non-existent # - a support entity (e.g. an image pyramid) diff --git a/context/package-lock.json b/context/package-lock.json index 012e1ecfac..5602b53f61 100644 --- a/context/package-lock.json +++ b/context/package-lock.json @@ -40,7 +40,7 @@ "@visx/text": "^3.3.0", "@visx/tooltip": "^3.3.0", "@xyflow/react": "^12.0.3", - "cellpop": "^0.0.12", + "cellpop": "^0.0.13", "chart.js": "^4.4.2", "d3": "^7.9.0", "d3-array": "^3.2.4", @@ -15876,9 +15876,9 @@ } }, "node_modules/cellpop": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/cellpop/-/cellpop-0.0.12.tgz", - "integrity": "sha512-yZ3luOyh336kVBNbvfOqhYPbGGCVH13usIdTzy1y2+DmXWIytkhJDqRG1qdpASuNO0SQQ1bmy0ZvDuurIzcjwg==", + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/cellpop/-/cellpop-0.0.13.tgz", + "integrity": "sha512-bghfl0GLXvBYm2mO7yjHox2zB+Popeb0CLsfBSihRIbeuhjS9k2sRL2qBvyoQBZhNXJYo+Cgirr9aqka5/RVBg==", "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", diff --git a/context/package.json b/context/package.json index 8f15ff9951..288329393e 100644 --- a/context/package.json +++ b/context/package.json @@ -33,7 +33,7 @@ "@visx/text": "^3.3.0", "@visx/tooltip": "^3.3.0", "@xyflow/react": "^12.0.3", - "cellpop": "^0.0.12", + "cellpop": "^0.0.13", "chart.js": "^4.4.2", "d3": "^7.9.0", "d3-array": "^3.2.4",