Hello everyone, I’m currently exploring the Dynamic EHR GSoC project, mentored by @nethmi . Since the requirement document is quite limited Doc , I could really use some guidance
Goal : Show relevant UI elements on the O3 home page and other Pages based on User Location, currenting displayed Visit / Encounter etc.
-
There is this Pr “ O3-4931: Add ability to evaluate expressions in extensions by CynthiaKamau · Pull Request #1422 · openmrs/openmrs-esm-core · GitHub “ raised by CynthiaKamau . i guess this pr implemented some features what the project asks for. For instance, It implements expression-based display conditions for extensions. In broader context the project is asking for implementing this feature to navigations , pages right ?
-
in this particular pr is using Store-level evaluation, the question is whether i should follow this same pattern (centralized store-level evaluation) or need something different .
or Hybrid approach :
- This means the filtering will become:
- Store level: privilege check, feature flags
- Component level: expression evaluation with full context → final filtering
- This means the filtering will become:
observation:
// This slot's expressions CAN access patientUuid
<ExtensionSlot name="patient-chart-widgets" state={{ patientUuid, visit }} />
// This slot's expressions CANNOT — no state passed
<ExtensionSlot name="homepage-widgets" />
So even though evaluation happens at the store level, the context data enters through the component level.
- could you please explain a bit more what “reduced set of JavaScript expressions“ mentioned in the doc ? Is there an existing spec.
refrences
Would really appreciate any guidance here. Thanks a lot!