Thank you for your leadership on this, @adam.butler and @xiphware!
Is there a "table of contents" for conversations and documents related to improving longitudinal data workflows somewhere? Building up that context and history would be helpful, I think. There have also been unrelated conversations that have veered into related territory like the one about the ${entity#...}
syntax for XLSForm. If this doesn’t exist, I’d be happy to build it up.
In particular, the user stories document that was generated some time ago provides helpful context for this thread. I would also appreciate a sense of who participated in which conversations and what the conversation/document's status is. For example, I was on maternity leave when the user stories reached their current state and so I don’t have a good sense of how much discussion happened around them and what conclusions were drawn (e.g. how the grayed out stories became grayed out).
At a high level, I believe the stories that remain black can be summarized as:
- Linking of form definitions through specific fields
- Synchronization of datasets between server and clients
- Tasking enumerators
This thread is mostly about the first theme with a bit of the second and it focuses on the implementation strategy. The roadmap issue also focuses on implementation. I would find it very helpful to see more detail from an idealized user experience perspective. How project managers will set up projects, how analysts will view data, how enumerators will pick entities, how conflicts will be resolved will all impact the spec design. Has that been done somewhere? Here are some examples of the types of questions that would be answered by this:
-
“As an administrator I want to be able to designate a particular form (“patient form”) as a source of entities for a record form (“visit form”)”
- Does the user need to enter a server-side “mode” distinct from the current disconnected forms mode? Do they need to designate which field in each of these forms should be the key or is that done in the form design (as this conversation assumes)?
- Is “entity” a concept explicitly surfaced to the administrator? Is it a separate concept from “project”?
-
“As an administrator I want to be able to view records by entity”
- Are viewing by entity and by form both possible?
- How are different values collected during different encounters for the same property represented on view/export? Is only the latest provided? Are they all made available?
- What happens if two enumerators create the same entity while offline? (the de-duping story is grayed out but something has to happen)
- Is there a difference made between a correction to a mistake made about a fixed property and a new value for a changing property?
-
“As an enumerator, I want to be able to select an entity from a list before I begin a record form”
- What will the enumerator see in order to make that choice (e.g. just the entity ID? I believe an “identifying fields” concept has previously been mentioned)
- Is only one kind of entity available at a time or does the enumerator first have to pick an entity type?
- Is picking an entity a different client “mode” than picking a blank form to fill?
To more explicitly tie these back to the question that started this thread -- where is the “entity” concept visible to the form designer, the project manager, the data manager and the enumerator?