 So as Primal mentioned, today we'll be discussing program indicators, so we'll be doing a quick walkthrough about how we can turn the data that are being captured by the tracker program into meaningful nap counts that we can use for analysis. So the learning objectives, just to briefly summarize, was first that we'll be describing the concept of a program indicator, then describing the individual components that are part of program indicators as well. So the aggregation type, the analytics type, the expression and filter, and discussing a bit about what each of these components of a program indicator actually in unit practice. Then we will create program indicators in DHIs too together, so we'll do some walkthrough and basics and then it will be a user led experience in creating program indicators. And hopefully if we get to it at the end of the session where we will also create combined program indicators or combined indicators, and that's indicators using multiple data sources in DHIs too. So these might be combining a program indicator from a tracker program with a population denominator that's entered through an aggregate program for example. And these can be really useful in a particular in public health use cases to understand service utilization and other things like that. So we'll be talking a bit about these percentage indicators as well. So just conceptually what exactly is a program indicator and why are we discussing here. Program indicators essentially allow for the creation of values based on data elements or attributes belonging to events or tracker programs. So what this means is that you can actually take the individual data items within an event or tracker program and then create some type of aggregate value that can be used in analysis. And this can be done at the district or facility level if you're going to be aggregating up a monthly or annual count. Or you could also create a value to sort of summarize and an individual enrollment or profile. And we'll be getting a bit into examples of all of these for aggravating up your organization, you know, hierarchy, or calculating a value for the, for the individual client through program indicators. So there are two typical scenarios in which you might want to use program indicators. The first is to perform and display a calculation within or across events. So for example, a percent of calculation in which all of the values are in the same event or enrollment, or a change in value across an enrollment. So for example, a nutrition program where you have the enter the age, the weight and the height of the infant. Now you can use a program indicator to calculate the, the BMI, the body mass index of that infant using the weight and height, and using Z scores as well you could also. Or you could calculate the Z score as well using the age of the infant as well to see if they are the correct weight and height for their age. You could also use this to calculate across events as well so you could also measure the percent weight gain across the enrollment. Okay, first initially entered the program until their, their latest checking what's been the change of the infant's weight during that time. You could also create an aggregation within an event or enrollment as well. So that can mean count the number of cases that have a certain lab confirmed diagnosis, for example, or the number of a specific lab tests that were performed. It could be a count that you do for within an individual so you could say, for example, the number of lab tests that a woman has received in an antenatal care program. Or it could just be the number of the number of ANC cases that have hypertension across the entire facility or district right. So there are different ways that you can use aggregation within an event or a month as well. And so I got a bit into this earlier but as well you can create an aggregation across an entire program or enrollment. And this might be how you use program indicators to do routine reports. So for example, you might do have a program indicator for how many children in the child immunization program have been fully immunized. You can look across the child's entire record or their entire enrollment and see if they have all of the required immunizations. As described earlier can also create aggregations to see how many individuals had a positive difference in weight between the start and end of treatment. Or you can also find other cases that would meet filtered criteria across multiple program stages. And you can see how many people in a HIV case surveillance program are male and over 15 years of age, and also are TB positive. And maybe these are all attributes or they are in a follow up stage or in an initial case report stage. But you can use program indicators to combine all of those data from different program stages or attributes to to to see if that case meets a certain criteria. So here's one example, and we can look at our event report here for this TV program that we are familiar with. So we might remember that there is this disease site in the TV program. And so when we initially record the TV case, we say whether this is extra pulmonary or pulmonary. So, say for example, we want to find out how many patients enrolled in the program have extra pulmonary TV, then we can use program indicators. So if we have these five cases here. Right. All with a initial report date in 2021. And we wanted to calculate this for parents for hospital, then a value of three is what should be returned for the number of patients with extra pulmonary TV. So this is essentially what a program indicator is doing in this case. It is filtering all of the cases that meet this criteria, extra pulmonary TV, and it's returning a value which is the number of enrollments that meet this criteria. Right. So, very briefly, we'll be talking about some of the different components of a program indicator. And those components that are using combination to make this evaluation are the aggregation type, the analytics type, the expression and any filters that are also added. So this determines how these program indicator will be evaluated against your tracker data. So we will explain all these in detail throughout the demo. And the demo will be done on our demo instance, because we have existing dummy data which have been uploaded there. But to get started, I will just exit out of this presentation here and walk you through the first example, and then I'll come back and explain what each of these, each of these parts mean in a bit more detail. Okay. So for the first example, is that we're going to be looking at our TV program, our TV treatment card program again. And I already have an example here, but I'm going to create another one that looks at the extra pulmonary TV for the patient. So I'm going to create a new program indicator here. By the way, you can access this by going to maintenance. And then under indicator, you will find program indicator and filter to TV treating card. Okay. And then we can add a plus here to create a new, a new program indicator. So just to conceptualize what we want to do here. Remember from the previous slide, we were trying to count the number of extra pulmonary TV cases. And this is found in the TVC TV disease site data element, right. So, what this means is that we're going to have to think about where that where that data is stored what the data element is, and what stage that data element is captured in. And we essentially just want to count the number of events that have that criteria. So, just as a very basic name, going to make this the extra pulmonary TV, and because we have, we have existing one already I'll make it new, but I'll call it EP TV to EP TV to make sure that when you are going through this yourself. Please be sure to add your initials to the beginning of your program indicator. That way we can. We can make sure that you've done your correct work and also because these mandatory fields also required to be unique. So we make sure there's no clashes with other things. I've added the name, short name and code here. We'll get into a bit more detail maybe later on in the session about, you know, good approaches for naming these program indicators because it's important that you name them something meaningful. So that when you are using your analytics apps, you know exactly what this program indicator expresses. But for now we will, we will just call this the EP TV program indicator. The color and icon you can leave blank for now these relate to some Android features which are not yet developed, but so don't worry about that. For the description, it's, you can make this fairly, fairly basic for right now because again this is just the very first one. So, we will be saying that this is a count of cases worth extra. Once we've added that there. Now we see the decimals in data output. This you can also leave blank because one will be counting cases which is an integer and also there's already default settings for decimals and data output. And now here we get to one of our first, our first major questions which is what is the aggregation type for this program indicator. So, essentially, the aggregation type is essentially lets us summarize all of the different program indicator values that come out of this program indicator. So examples is if we're counting the number of events then we can use aggregation type of count to count the number of events that are returned. If our expression calculates the weight change per enrollments, then we might aggregate the average right we don't want to count the number of averages that have been that have been calculated already. But we want to take a an average of all of the weight changes per enrollment to get a sense of our. Our cohorts weight change right so sometimes a an average or account or a some might all might all be appropriate depending on how you are expressing the value of your program indicator. But for this case, I'm just going to make the aggregation types count, because we are going to be counting number of events. The next thing to consider them is the analytics type. And so, usually this will be based on whether or not the data that you are considering for your, for your case, or for your program indicator all comes from one discrete event within an enrollment, or if they're taken from multiple events within the program. So for this right now we're just going to call this an event because we know that this data element is just found in a single discrete event that's non repeatable in our program. And we are going to see that as soon as we select the event analytics type, then we have analytics period boundaries automatically generated. I'm not going to go into detail on analytics period boundaries because of time during this session. But if there are lots of things that you can do with analytics period boundaries, once you get more into into details about program indicators. So you can use these to calculate cohorts of patients, say that were enrolled 12 months ago, you want to know their current status this month. Or you can do like a cumulative count of the number of the number of enrolled patients and you can drop one analytics period boundary. But we won't go into a lot of detail about how you might use those right now and I will direct you to the documentation to explore more about that or the slack of the additional questions. So the last things here we won't really discuss our how to use legends category option combos and attribute option combinations. Sometimes we use this for connecting to an aggregate data export for example, or legend we won't discuss that, and we'll come back to display inform later. So the next part that we need to consider is our, our expression. I skipped over the variation type. Here's the expression. So the expression is a mathematical expression that can contain various operators. So this might look a lot like program rules, for example, how you can use different expressions to say what the final value of your program indicator should be. So all the indicator is actually being calculated. And these can contain references to a number of different entities within the, within the tracker enrollment. But if we are to look at what we have available here on the right, just ignore the column icon at the top here. But you'll see that this looks a lot like the program rules boxes that you were just exploring earlier. So you can use some, some expressions and functions here to say like the number of days between two events, for example. But in most cases, I would say that there would be two variables that you should keep in mind. And so the primary one that we are going to use here you see that we have our each of our stages with each of its data elements listed on the side, as well as attributes. Diagnosis and a treatment continuation attributes, and then variables down here. So, in most cases, the, the expression part of your program indicator will be either the event count or the enrollment count. And in this case, you know, based off of the description of the program indicator from earlier, we're counting the number of events that have extra preliminary TV. So our expression, the final value of this output should be the event count. So for each individual who has extra preliminary TV, their final count will be one, right. There's no additional mathematical operation that you're doing. And finally the filter. So, remember when we said earlier where the data element comes from, and it comes from the comes from the disease site data element. So the disease site data element is also as we saw here in the event report where you could also look at this in the tracker capture app. But this is an option set. In the picture in this data we see that it's has both extra pulmonary and pulmonary. So this is an option set, which means that the value might be stored in a code that's associated with each option in the option set. So we'll go to our options that management. Again, just like you were doing for exploring program rules going into options that's here. We can then search for these for the options that was associated with this data. So in this case it's TV disease. And we can see that the code for each option is actually the same as the name of the option as well. So the code for extra pulmonary is extra pulmonary. So I'm going to copy this. I'm going to say that this filter will filter for all events where the TV disease site in the initial diagnosis stage is recorded as being extra pulmonary. Okay. So, finally I'm going to hit save on this program indicator. So again when I look at this, when I look at this after it's been saved, I'm counting the number of events. Total number of events each one were each one with an expression of one per event. The number of events where the initial diagnosis at the TV disease site was extra pulmonary. So I'm going to go into event reports and just look at the, the number that were extra pulmonary last year. This might give us a sense. We have pulmonary pulmonary disease site. Last year can see there's 28 records here that are extra pulmonary. And also if I were to go into. If I were to go into the pivot tables app. I can compare this. This program indicator that we just created with the, with the correct program indicator that was previously created. So if I go to the program indicators here and pivot tables and select TV treatment card. Now I can see all the program indicators that are associated with my program. For example, I'm going to say this one that I just created and the one that should be created earlier extra pulmonary TV. I'm going to say years last year nationally and say update. And you can see that I have created this program indicator correctly, both with the count that we found in the event reports and the previously generated program indicator. And that's 28 cases with extra pulmonary TV in 2021. Okay, so for this section, I want all of you to, to go through the same exercise yourself and create a program indicator for extra pulmonary TV. So here might be additional details in the, in the middle, but let me share a screen on that one second. So here's the your learner's guide that's found on the middle for creating program indicators. Again, we're going to use the demo system so not the config system there's no data there for your programs. But if you use the demo system, maybe I can see on. I have this already question questions about this so people can post the link to the demo system there. But you're going to go through the first guided exercise for creating an indicator for extra pulmonary TV. Maybe give you five minutes to do that and then we'll come back and we'll go through the rest of the of the event type program indicators. But just to go through some music I'm seeing from the chat here. How do you edit an option, you need to go into the option set itself, but the, and then add in another option there so if it's age go to options, and then you could click add an option here. The options are kind of fixed as soon as you create them just so that the data values don't have any issues, but you can change the name of an option set here as well. So to make sure that an event count is completed active for other choices. You can also see within the within the program indicator filter as well that there are some other options in values. So just go back to the one that we made before in the filter. You'll see that here in the variables. There's also a variable for event status. There's an enrollment status. There should be one for for event status as well. So you can also say the status or status. So, so for the filter. Once again, this is excluding all of the events or enrollments from the program indicator. And before you, before you make the calculations on them. So, in the program indicator details, we saw that we had analytics period boundaries. So this is only looking at events that are from the start of reporting period, and before the end of the reporting period. So that's one way that we were doing a filter. So here in this edit the filter, we are excluding all of the events that do not meet this criteria. So we're excluding all events that have not actually said that the TV disease site is extra pulmonary. Once we've removed all of those, all of those events, then we can edit the expression here for the event account. And once we are aggregating that up with the expression. From there, once we've decided that the event count for is our expression that the final value for this single event is one as in the one event. So we're aggregating up from there. And for the in this case the aggregation type is count, because we are just counting the number of events in a month at a district or facility level that meet those criteria. We'll go again into more detail about the difference between event enrollment analytics type, but essentially what you need to know is that at this point right now. So one of the data that you want to use in the expression or filter of your program indicator is found within a single event. Then you should use the event analytics type. And we will show you some more examples of this later. So it's been about five or 10 minutes I can see that we now have about 13 people who created a or EPTB. So about 13 people who created a extra pulmonary TB. So those of you who are having issues creating this program indicator because I know we have quite a few more people. So please either enter into the chat or into the Slack channel and we can help you because I think it's important to get this one basic program indicator completed before we proceed to more advanced ones. I want to see Khadija's question here. Again for finding what the option code is. We went to the option set here. And we found the options that that was associated with this data element, which was the TB patient type. Oh, sorry, not the patient type the TB site, TB disease site. And here we saw that that was pulmonary and extra pulmonary. So, and because this data element uses the option code for the value, then we need to use the code here. But here we can see that the name of the option that you see during data entry is the exact same thing as the code. So this is an important step to take if you are using using a data element value that has an option set associated with it. When you're constructing your program indicator. You can also go to the data element disease site and see that this is using an option set called TB disease site. So we have a few more people have entered an extra pulmonary. Just one second and we'll wrap up the program indicator that you're currently developing. And if you've already finished developing and testing. Then, then come back to the session because we will be talking about two more event. Program indicators, and then you can try more on your own. I think we are, we're back now. Yeah. So, those of you who created a program indicator for extra pulmonary TB, thank you and well done. We'll be talking about two additional use cases now for new and pulmonary TB cases and failure or treatment outcome failure or died. So hold off on creating any more for these exercises also walk through how to create them with you. And then, at the end of the live demo, then you can also take your turn to create them as well. So for this first one here for new and pulmonary TB cases. I want us to go back to the tracker capture program itself. A quick, a very quick new enrollment in this TB treatment card program. I'm just a new person who's also touched to and looking at the initial diagnosis stage here. We can see that there is a section for type of patients and the data element for patient type. And we can also see that there's this disease site data element with the option set for pulmonary and extra pulmonary, which we just saw an example of earlier with our discussion on the program indicator for extra pulmonary. So for a, let's say for example, that we actually don't just want to get the total number of patients who are extra pulmonary that have been enrolled in the program. But we do want to know all of the new TV cases. So now people who were relapse or found after lost a follow up, but people who have just been diagnosed as a new patient, and have pulmonary TB. So this is a sort of combination of two different data element values within the same program stage in the same event. So, if I were again to go into event reports, I could, you know, look and see how many people were. I guess someone has been changed earlier. Extra pulmonary, but we could see earlier about like the number of extra pulmonary cases, right. But we want to create a program indicator to look at these new and pulmonary cases. So I'm going to go down here again, this plus icon to create a new program indicator. And select the TV treatment program. So now I'm going to name this initials, then new pulmonary TV. And I'll say, give it another short name, new pulmonary TV and a code that's of this same. Or just new PTB would also work. Right. Again, we'll skip the color and icon buttons in the description, maybe we can give a bit more elaborate so counts the number of new cases that have pulmonary TV. And then we'll skip the decimals in the data output. And we can think about that this is adding essentially a second data element to our, our filter for the number of events that meet the criteria. And but so the rest of these, the rest of these components for the program indicator are actually pretty much the same as our previous program indicator. So again, we are still counting the events, right, we're still counting the events that have new, a new case, and also our pulmonary TV now. Right. So these are essentially very similar program indicators. The aggregation type is count, and the analytics type is event. So again, I will leave the rest of these blank, we do not want to display this in the tracker capture form just yet. When I go over to the expression. Again, I've the, the actual calculation for the, the output is, is still going to be, we go to our variables here. And that is the final output of the program indicator when it's evaluated for every one of the events that meet these criteria. So the final output is just give me the count of the events, which in this case is one event. Now we get to our filter. And this, this one again will be a bit more involved, but you've already worked with the program rules. And you now have created a program indicator as well. So hopefully you're starting to get the hang of the syntax for doing working with program rules and program indicators. So the variables that we are going to include in the filter include the disease site. Once again, we'll click that. So I think we can check and see what the option actually is for this, but I think we remember from before that it's pulmonary. Right. And now we want to combine this with another, another criteria as well. And so just similar to program rules, we have not and or or operators. So you can either click and and it will have in these two ampersands next to each other, or you can also just type in lowercase and and that will also work. If you add something else after that, then you should see the track was green right. So either one of them work. In this case, we just click and so the second one after this is we don't just want to pulmonary TV, but we also want a patient who is new. So the patient type equals. And then in single quotes, new. So we're just going to check really quickly that the options that code also matches new and we see their patient TV patients type options, new code, new. So here again, it doesn't matter, but it's good practice just to double check the option codes. So, here we have a program indicator, that's going to filter all of the events where the disease site is pulmonary. And the patient type is new. And these are two drop down option sets. So it's going to filter for all those events. And the final expression will count one for the event count. And as we aggregate up all of those ones, we're just going to count all of them. So it's going to be one count. Right. So I'm going to click save. And now I have my program indicator here, the new pulmonary TV. Okay. Now let's check if this matches the new pulmonary TV. Oh, I think I need to refresh this. Yeah, you can see some new pulmonary TV and new pulmonary TV, click update. We can see that this program indicator worked. So these are calculated on the fly. We have new pulmonary TV, 1706. And this new one I just created also gets the same result, 1706. Okay, so that was the, the second example that we have, we will now combine data elements or two separate data elements from the same event, and calculating an event type program indicator from that. And for this last exercise, just on the event type program indicators, we're going to do something a little bit, a little bit more different. So if we go back to our latest guide here, we want to see treatment outcome failure or died. Right. You'll notice here that this is no longer new and, but this is failure or right. So let me go back to our, our tracker capture here. We added new kind of treatment. So treatment outcome is either treatment failure. We're done. So these are two different options in our treatment outcome data element. So I'm going to do this is one more exercise and then it's, we'll do another interactive one. So I can also filter here, TV treatment card point to add a new one. And I'm going to call this something quite simple again, just make this treatment outcome. I'm going to add my initials there. And then I'm going to say, so in the description, it can be a little bit more explanatory, we can say, this is all treatment outcomes of death. Now we're conceptualizing this program indicator again. So once again, we have the aggregation type and analytics type. So we're going to continue to aggregate up this program indicator. And that would be the count of the number of, sorry, just the count of the number of cases that are either on facility or community based DOT. And that would mean that that would just be the final stage for this program would be would be either failure or death. So we're going to continue counting. And this type is also just going to be the event because this data is only found in one stage in the program. And this stage is not repeated. So we're just going to be counting the number of events that meet this criteria. Okay. Again, to get more into analytics period batteries directly to the documentation. Let's go back to the expression here. And once again, we can see that all of our variables and other types of other types of data elements from the program can be found on the right. But we're going to go down to the event count, because the final output for this calculation should just be the event count. So that's the one. So we can filter. Now it gets a bit more tricky again. We remember from the program rules discussion that we can also use, or in our program rules, and a very similar logic applies to program indicators and expressions and filters as well. So when we say treatment failure is either death. The outcome is either death or failure. Then we'll go to the end of treatment stage, and you'll see treatment outcome. And we will say this is death. And now here's the key we will add or just these two little pipes here treatment on this either death, or I'll just copy that one again to treatment outcome. Failure. So just to double check here. Just go back to your TB treatment outcome. So this is actually died or treatment failure. It's not as I expected. So I checked the options died or treatment failure. So now we're, we will include in this program indicator through the through the filter, all of the events where the value for the data element of treatment outcome was either died or treatment failure. Okay. So the value for treatment outcome was either died, or it was treatment failure. In the previous example we showed two different values from two different data elements. Now these are both possible values of the same data element. So I'm going to click save there. Again, I'm going to go into my pivot tables and just select. Just to test this out. So I'm going to say, you know, treatment outcome failure or death, and then say treatment outcome failure or death. Okay, then I'm going to click update. And you can see that I get the same value for treatment outcome failure death 37 as the correct program indicator that's been prebuilt, which is 37 treatment outcome failure. So now I'm going to leave it to you all to go through the exercises that are included in your guided exercise review. Again, the program that you'll be looking at is the TV treatment card and I'll be looking at new pulmonary TV cases and treatment outcome failure or diet. So when you come back from that, then we're going to talk about how to do additional filterings on the same program indicators, but for example using the attributes as well. So the sex and age. Okay. So, I'll leave it to you there I will pause my share. And if you have any additional questions, please feel free to mention them in the chat. Welcome back. So, I see that a number of you have been able to create both of these indicators for not just treatment outcome for treatment outcome failure or death, and also for new pulmonary cases. We're going to go to a break in a short minute, but I want to quickly walk through this last part that's in the manner's guide as well, which is creating a copy of the failure or died program indicator, but filtering out to make sure that you're only including cases where the sex is male, and the age is under 60. So, this is quite common operation with program indicators, you are given a, you're given a program indicator to count for typical data elements that have been entered for your, for your health program, for example, in this case the number of deaths, and then they want this broken down by a number of additional disaggregations based on demographics. So they don't just want to know. You don't just want to know the number of deaths but you want to know number of deaths broken down by by sex and by age ranges. And this is possible to do in program indicators as as I'll show briefly. After the discussion during the break, or you can do it some other time. But this is just as a, as an example so let's say coming back to my, to my earlier program indicator for treatment outcome failure or death. Let's say that I wanted this to be broken down by sex equals male and age under 60. So the easy things are a little trick is instead of creating the same indicator from scratch all over again. I can actually go into this actions in the right side here, and then I can click clone. And what this is going to do you can see the URL is clone. So here in the program indicator, it's included all of the same details from the earlier program indicator that I just created. But now I can tweak this just a little bit, and then save it as a different program indicator. So in this example, I'm going to change this at the very end, just so that we have some consistency with the naming I'm just going to keep the beginning of the name exactly the same. Then I'm going to change the name to male. I think it was actually age over 60. So male age over 60. So here we have the short name I'm also going to change to over 60. And then here, I might actually give the code it's a bit easier to use codes with this underscores age 60 plus and then description describe a bit more. Remember treatment outcome of failure of death for male TV cases over 60 years of age. And so now I'm going to keep the same aggregation type and the same analytics type. I'm also going to edit, I'm not going to edit the expression, I'm going to keep that as event count. But when we're thinking about this, we should consider like the, that the number of cases of males who are over 60 and resulted in failure or death is going to be smaller than the total number of cases, right. And so we're going to actually be adding to our filter here. Some additional, some additional sub expressions or components should area. So I'm going to keep these this or condition and put that in parentheses, because after this I actually want to add two more and conditions. And join to it to additional conditions, right. So I'm going to say that the attribute for sex. Oops, right. equals male in all caps. That's the how the option is included. So I'm going to add. And the age at enrollment is over 60. So this might actually consider as well that if the age is exactly 60. Because this is a. This is a integer value for age, right. So, it might actually be over or equals to 60 as well depends on how you're dividing your boundaries of your indicator. So if people are 60 years and six months, they could also be included in this as well. But for now I'm just going to keep it as 61 years of age or older. Okay. So I hope that this part makes sense here is that you have cloned these indicator for treatment outcome failure or death. The other things that we've changed are the name short name code, and then added on to this filter with two additional components of our criteria. So male and age over 60. So I'm going to save that, and you can see that it saved an additional program indicator here for male over 60. I go into the pivot tables. There we are. No treatment outcome failure death over 60. Over 60, and I can compare that to. I'm sure you created, we can see that this one is now for right. So I have also configured this program indicator correctly. And you might need to do this operation for a number of different age and sex range disaggregations. Unfortunately, there's no easy way in DHS to core to do this right now so essentially if you wanted to do this for male under 60 then you could, you know, clone this one and then change the greater than to less than in every case, or you could continue doing this for females as well. So it's a little bit of work but there are quicker ways to do this by cloning the program indicator. And if you have a very long list of disaggregations that you want to do you might consider talking to a database administrator or data scientist to to script out a solution for that where you're just creating a all possible combinations. But we won't go into that right now it's just a just a little tip if you're trying to create a further disaggregations of your program. Okay. So any additional questions, feel free to jump over into the into the chat or into the slack questions channel and monitor that there. We're going to take a short break you can create this disaggregation program indicator and do it yourself. We're grab a cup of coffee, and we'll we'll get back to you in, let's say 15 minutes. Can someone set a clock please.