Great to start this discussion. I just opened a separate talk post to discuss overall program modeling improvement ideas which I’d explore more in that thread. Regarding @ssmusoke’s use case, I share @mksd’s concerns about heavy use of workflows and states within programs, for a few main reasons:
-
Tooling / module support remains much less mature for program constructs than for Obs (htmlformentry, reporting, refapp widgets, etc) and can be more cumbersome to work with.
-
Linkages between patient_program/patient_state and encounter data do not exist. So if you have an encounter form where clinician records a regimen change and new treatment line (as Obs), and then you want to also track this longitudinally as state in a workflow, keeping these data points in sync is non-trivial and can lead to data quality issues (these data points will diverge).
That said, I’d also echo @ball’s suggestion that maybe consider a workflow with 3 states. FWIW, @ssmusoke, I believe in Rwanda we do this within our “HIV Program” → “Regimen Status” workflow.
I’d be interested to hear how @tanderson / @jberchmas / @jbyiringiro feel this has worked for them in that system.
Best, Mike