2022-03-17: O3: Forms Schema Community Discussion

We’d like to have a community call to come together around the idea of a shared form schema.

A number of us would like to share how we’ve been experimenting with this by re-purposing the Ampath Forms schema over the last 9 months, since we last proposed this idea in the June 25 Lightning Talks on Form Engines. For example, UCSF has a number of extensions to the schema that they’d like to propose, as they’ve run into additional use cases while working on OHRI.

Goal: we’d like to solidify the decision to move forward with a given schema.

Interested? Please Pick a Time!

Select an option that works best for you in this doodle poll:

:star: https://doodle.com/meeting/organize/id/1aMK0PBd :star:

We look forward to this discussion together!

Background Information

  • Recent Work w Ampath Forms: Ampath, Mekom, and UCSF have been moving ahead with Ampath Forms within 3.x, because of the existing forms tooling that made the Ampath Schema a quick-win to adopt. (See Image 1 & 2 below for an example of how a simple form was created, by using the current Ampath Form builder tool UI, which builds the content within the schema for the user.)
    • Side note; Ampath is happy for this schema to become recognized as an OMRS community asset.
  • Existing Documentation: Significant documentation work has been done to outline the Ampath Schema in great detail (kudos to @dkigen). (See Image 3 below for an example.) Full documentation here: https://ampath-forms.vercel.app/
  • Example of Schema Value: In the June 2021 call, one of the major points was that establishing a shared schema would allow forms to be shared even if tools used end up being different in some places.
    • When UCSF started experimenting with Ampath forms, no Carbon/3.x-UI-style rendering tool was available. UCSF has used the shared schema to create a form renderer running on the new OHRI Forms Engine. So, I can paste the schema from Image 1&2, and see what it would look like if used in the OHRI Forms Engine, which is a bit different from the Ampath Form Engine but uses the same schema. (Shown in Image 4.) (Welcome to @eudson to add/clarify further details as well.)

Image 1: Example of a Generic Demo Form in the 3.x RefApp

Image 2: The Behind the Scenes: How the form was created - using the shared schema + Ampath Form Builder tool

Image 3: Current Schema Documentation Example. Explore more yourself here.

Image 4: Form Render Test - different Form Engine, but using same Ampath Schema and same exact JSON as shown in Image 1 & 2


For folks interested, here’s the full JSON from the screenshot examples in Image 1, 2, and 4:

JSON Example
{
	"name": "Generic Demo Form",
	"pages": [
		{
			"label": "Text Questions",
			"sections": [
				{
					"label": "Text Questions",
					"isExpanded": "true",
					"questions": [
						{
							"label": "This is a short text field.",
							"type": "obs",
							"questionOptions": {
								"rendering": "text",
								"concept": "928def39-33c1-4ddb-8430-165db28448c8"
							},
							"id": "text-field-text-field"
						},
						{
							"label": "This is a longer text field. ",
							"type": "obs",
							"questionOptions": {
								"rendering": "textarea",
								"concept": "3bc3c902-78cc-41c6-b1f5-ce4e889eea01",
								"rows": ""
							},
							"id": "text-area-text-area"
						}
					]
				}
			]
		},
		{
			"label": "Option Questions",
			"sections": [
				{
					"label": "Option Questions",
					"isExpanded": "true",
					"questions": [
						{
							"label": "This is a radio question example. ",
							"type": "obs",
							"questionOptions": {
								"rendering": "radio",
								"concept": "3ecf9beb-21ed-400b-a46a-96155ee2a900"
							},
							"id": "radio-radio"
						}
					]
				}
			]
		}
	],
	"processor": "EncounterFormProcessor",
	"uuid": "xxxx",
	"referencedForms": []
}

Note: Once we’ve had this community Schema call, we will also have a 2nd call to evaluate Form Engine options for the OMRS 3.x RefApp.

CC: @mseaton @dkayiwa @eudson @samuel34 @burke @jdick @achachiez @ibacher @bistenes @zacbutko @mksrom @mogoodrich @angshuonline @mayanja @ssmusoke @aojwang @kmakombe @ningosi @wanyee @christine & please tag others you think may be interested :slight_smile:

1 Like

Thanks for advancing this very important effort, @grace! I’m looking forward to the discussion.

It’s critical that we ensure the form schema and tooling around it leverage concept mappings as the preferred approach (i.e., support UUIDs, but favor mappings). This will be critical to allow us to support forms that can be shared across implementations. Ideally, all of our OMRS3 forms would be referencing concepts in the form CIEL:856 instead of 856AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.

1 Like

@manuel I’m curious about the implications of storing concepts via mappings rather than UUIDs for the offline tooling in 3.x.

Update: Based on the doodle results:

The Forms Schema community discussion will be this coming Thursday, March 17, at 5pm EAT / 3pm CET / 7am PDT / 10am EDT / 7:30pm IST.

GCal Event: Google Calendar - Sign in to Access & Edit Your Schedule

Link: Launch Meeting - Zoom

Hope you all can make it :slight_smile:

1 Like

Here are notes from the 2022-03-17 call on Community Forms Schema

4 Likes