Should Fast Data Entry app support both React and Angular form-engines

Hi Team!

Considering the Fix the Fast Data Entry initiative (GSOC 2025), where efforts are focused on improving workflows in the FDE app, we are adopting the React Form Engine.

Are there users still relying on openmrs-ngx-formentry who may not migrate to openmrs-esm-form-engine-lib anytime soon? If so, should the goal of this project be to have FDE exclusively support the React engine, or should it accommodate both engines?

This will help us define the project’s scope clearly. Looking forward to your thoughts!

Looking forward to your thoughts!

CC @samuel34 , @zacbutko , @grace , @dennis

Hi Enock!

Are there users still relying on openmrs-ngx-formentry who may not migrate to openmrs-esm-form-engine-lib anytime soon?

Yes! It’s likely implementations like ICRC are consuming this feature using AFE.

If so, should the goal of this project be to have FDE exclusively support the React engine, or should it accommodate both engines?

Imagine a world where switching between the form-engine libraries is as simple as updating the importmap! In general, there should be loose coupling between the FDE app and the underlying form-engine lib. The goal of this project is to ensure that the RFE lib has the necessary apparatus to support FDE; not the other way round.

2 Likes

Thanks @samuel34 , this helped a lot!

Here again, @samuel34 !

I’d like to revisit this discussion considering the following:

  1. The need forSeamless Switching between form-engine libraries.
  2. The fact that the RFE library should the necessary apparatus to support FDE, but not the other way around.

Current Observations:

  1. @openmrs/esm-form-engine-lib does not export lifecycle functions, and it’s unlikely we’d want to modify this.
  2. @openmrs/esm-form-engine-app primarily supports forms rendered in workspaces (clinical forms), which may not align with the FDE workflow.

Given these points, I imagine us having a new wrapper module that equips the RFE library with the tools needed to support FDE. This approach would:

  • Keep both the React Engine and FDE reusable.
  • Minimize disruptions to existing workflows.

Question: Does introducing a new wrapper module align with the goals and scope of this project? I’d appreciate your thoughts and any alternative suggestions.

Thanks!

Ideally, I think, we can just export something from the form-engine-app. I don’t see why we’d need a whole new app for this feature. We only needed minor modifications to the AFE app to support FDE, so, ideally, it shouldn’t be any harder than that.

2 Likes

Nice Idea, Thanks!