I'm new to the CommCare world and am struggling a bit to understand and
edit an application that was created by a predecessor a couple years ago.
First, some background:
Among several functions, the application is being used to register and
track tuberculosis patients at three clinics. The two forms I will focus on
here are the Register Patient Form (used to register patients) and an Appointment
Form (used to record relevant patient information during appointments).
The register patient form is only used once per patient (a patient can only
be registered once), while the appointment form is used and updated
multiple times -- every time the patient comes to the clinic for an
appointment.
We are now requiring the nurses at the clinics to schedule the patients for
their first appointment when they register the patient. Therefore, we added
a new question called "first_poc_appointment" to the register patient
form. When the nurse gets to this question, they select an appointment date
using the calendar. So, now the patient is registered and their first
appointment is scheduled.
Now we move to the appointment form. Within this form, the nurse is also
asked to schedule the patient's next appointment. This question is called "
next_poc_appointment." Within this form, we are also able to see the
patient's most recent appointment. We know this because we have mapped the
"next_poc_appointment" case value onto a hidden value called "
prev_poc_appointment." This case value mapping allows us to know, at any
point, when the patient's most recent scheduled appointment was.
In fact, the first question on our Appointment Form (question #1) is a
label, saying "The patient's most recent appointment was scheduled for:
<output value="/data/prev_poc_appt_date" /> " Therefore, the nurse knows
right away when the patient's most recent appointment was scheduled for.
Finally, the actual problem. Say we have a patient who was registered in
the patient registration form, and their "first_poc_appt" was set.
However, this patient hasn't actually attended their first appointment yet,
so the "next_poc_appointment" and "prev_poc_appointment" values are not yet
relevant to them. BUT we still want their most recent scheduled appointment
to appear within the appointment form in question #1. Currently, I don't
see how we can do this.
One initial solution/thought I had was to copy and paste the
“next_poc_appointment” question from the Appointment form into the
Registration form. But unfortunately, CommCare says I need a unique
question ID and can’t just drop “next_poc_appointment” into the patient
registration form. So for now, the value within the patient registration
form is still referred to as: “first_poc_appointment”
Ideally, if it is the patient’s first scheduled appointment,
“first_poc_appointment” would map onto “ prev_poc_appointment" . But if it
is not the first appointment, “next poc appointment” would map onto
prev_poc_appointment.
Is this at all possible? Are there any solutions I am overlooking? Happy to
provide screen shots if helpful.
Thanks in advance!
Alexandra