 Welcome everyone to this Android Implementation Academy. We did have a day zero, which was actually the first day, but today is day one of the content. This day zero is an introduction and I will have a quick overview in a minute about what we said there. I wanna remind you that we use OpenEDX as a platform for training and Slack for communications. So if you have questions, either about the Academy or about the platform, OpenEDX, the Android app, please use the channel named Questions on Slack. We always ask you to use the channel and not direct messages because then whatever will respond, it's available for everyone. So please use the channels and then I'm gonna start already sharing my screen. Sorry, I thought I was sharing already. So here we go. Okay. If no one says anything, I'm gonna assume that's working. Okay, thank you, Martin. And then let's start with a quick overview of what we said in day zero. Very quick, just to say that the times for the Academy every day, all right. This is a five plus two days Academy, which means that we will go through all the content from today Monday to Friday. And then we start today at 10 30, but the rest of the days we start at 10 a.m. and I'm using Oslo time, but it means 30 minutes before whatever your time zone is. And then we finish around 2 p.m. Oslo time, but it's in general four hours after we start. And then the last day is a bit shorter. So sorry about the time zone confusion, but there is no way to say differently. And then we will have the content, right? So we have today, welcome. Today you will see the metadata and today you will have exercises to get your Android app prepared with your metadata, the server configuration and everything later with Jaime and Victoria. And then tomorrow you will see program rules and you will see how to configure the Android app to look nicer, more intuitive and colorful and user friendly. And then on day three, we will see program indicators. We will learn how to use legends. We will see how the data sets, the aggregated data entry works. And you will also learn about the Android settings web app, which is a web app that we use in the server to configure our Android application. Don't worry if I go fast now because there are specific sessions for each one of these topics. Therefore, you will see everything related to maps, also relationships and the new feature of the Android app in this version. This version, this academy that gets version 2.5 of the app. And this version is the first one with analytics, with tables and charts. So you will see that on Thursday. And then on Friday, we leave the application itself and we talk about what does it take to have mobile devices in a DHS2 implementation or any, but we talk about DHS2. So you will see the different aspects that you need to keep in mind for going into an implementation from planning, management or security. And then we have the exam. After the exam, we will have a short version for lifecycle and communications to explain you and share resources with you for you to understand how the app evolves based on the feedback from the community. So now the academy could finish there. However, we know you are combining this academy with work and with other commitments and responsibilities and sometimes it's difficult to make it to day five with all the exercises completed and the exam and take the exam. So we are giving two extra days, Monday, Tuesday of the following week for which we have not defined the content because you will define it when you request it. We will ask you along the week, what would you like to see in day six and day seven Monday, Tuesday, next week? So we will kind of refresh the content, go through exercises. It really depends on what you wanna do. And on Wednesday, we will take the exam again. If it's not that you could take the exam on Friday and if you fail, you take the exam on Wednesday. That's not how it works. I think you can do it, I may correct me if I'm wrong, but in principle, you have to choose when you take the exam. If you don't feel prepared for the first call, then wait, refresh Monday, Tuesday and then take it on Wednesday. So it's five days if you have time and can finish everything on time. If not, it's a bit longer. So we hope this way we can accommodate to the different rhythms and the different responsibilities and time availability for the participants. So I already explained this. Yeah, Marta, sorry. Yes, yes, to add to that at one point because in case you're wondering about the exam, yes, to let you know that by Thursday probably or Wednesday, Thursday, we'll submit something on open edX where you will have to mark which exam are you taking. Okay. So I don't know if this was clear also when I explained day zero. So don't rush, don't worry. At one point you will be asked during this week to choose exam day either Friday or Wednesday. Exactly. And then if at that point you'd feel, okay, I need some more time, then you say Wednesday. Thank you, Jaime. No, I think you explained it and I forgot. Thank you. So the purpose of the Academy is that you know all the functionalities of the Android application and that you know how to configure your DHS2 server to make it, I mean, it will work but to make it look nice and to make the most of the features of the Android app. We assume you know already DHS2, all models aggregate event tracker and that's why you had to complete a form for registering because we start from there. So it's like, you know how to configure DHS2 and now we wanna show you the tricks to make it look better than Android. So I already went through the sessions. I'm gonna pass these slides a bit fast. And then this isn't general the structure or for every day, there are three sessions. We will keep 30 minutes theory, 15 minutes exercise for practice and then you have short breaks. And then at the end of the day, there are break up rooms which are optional. If you don't need them, again, you don't have to say but that's the place where we divide you in small groups to have more closer contact and support you with the exercises. All these were set in day zero. Sorry for those that joined and this felt repeated but we knew we will have more participants today so we wanted to do a quick recap. So this is today. This is where we are today and today's a bit different. This session is not 30, 15, it's 35 for the content and I have already used seven and then we will have at the end 10 minutes for questions. So this session will run until 11, 15 of the time, 10 plus two and then we will move to a break. Then you will see your metadata for the workshop which is based on the COVID data model and then another break, longer and then you will start the exercises. So today is quite practical from 12 p.m., one hour and a half from now, one hour, 15. It will be exercises to configure your server, install the Android app. So at the end of the day, today you will be ready to start playing with the app tomorrow. So this is what I said already. This session is about the Android app. We are gonna go through all the content of the Android app and then you will have time for questions. So these are the areas that we are gonna cover. You will see that these slides are full of content and it's because we want you to keep them as a resource as well. Some kind of documentation, of course not the official documentation which is more detailed and I'll share the link. It's also in the last slide. But for you as a reference or even if you conduct trainings in the future. So we will go through login, homepage, filtering, inserting, analytics, the three models, data set event program, tracker program for data entry, expand the meeting tracker because it's the most, I don't wanna say complex, but yeah, has a lot of options. And then a few words on the settings. So this is the login screen. There are different ways to login and I will tell you later in the demo but we try to facilitate the login. So we have the QR code and also the fingerprint, you will see later. So we try to reduce the typing at least for the URL, for the users. And this is how the homepage looks. So I'm gonna, okay, not yet. This is how the homepage looks. You have here a list of, this is everything either data sets, tracker programs or event programs. They look all the same for the user. This is a small icon and color that you configure in the server. You will learn that tomorrow. Once you open one program, the app will take the color that you have assigned. So it gives the context, visual context to the user. Now to differentiate what is a tracker program and event program or a data set, you need to look at this work, right? If it says data sets, then that's easy. This is an event program and then for tracker programs, it will be the name of the track entity type. So there are 16% registered here or 66 Malaria entity. This is a different track entity type. And then the data sets and programs that show up here are those which are configured as can capture and view or can view only for the data. Metadata, it doesn't matter. It focuses on the data. And if you have a program or data set that you don't want to be seen by your users in the Android app, then you will say no access in data and then it will not show up. The app will not download it. The icons that you will see all over the applications are these ones. You can keep this as a reference. These ones are for the sync status. Data is synced. It's not synced. It was a warning. There was an error. You will see now in the demo. And then we have this set of five icons for the status of events or data sets. It can be complete. It can be open in case of data sets or events. And then in tracker, an event can also be scheduled, overdue, or canceled. If the user can only view, you will find this more high here. It means view only. And then this is the icon for track entity instances that we have marked as follow up. You will see it later too. So now in the home page, what we see is a list that I told you. This hamburger menu brings you to settings. We will see this in the end. But then here we open filtering and sorting. There are nine types of filters, but not all display in all environments. Let's say like, for example, enrollment date, a filter to filter tracking the instances based on enrollment date that will only be available in a tracker program because it doesn't make sense in the other. So it's dynamic. It will adjust to the model of the program or the data set. So this is the list of filters and this is where they appear. You can have a look later in the slides, but there are some that are based on configuration. So if we have a category combination that is configured to be an attribute, then it will appear in the data entry for data sets, events, or tracker. And the same for assigned to me. You know, I hope that some programs, the event, you can say, okay, this event can be assigned to a user. If that is triggered in the program, then the filter assigned to me will appear. And then follow up will appear only in tracker programs because it's to filter out tracking the instances that have been marked to follow up. So now we have few slides to explain the different types of filtering. So we have filters based on dates, which will be the period event date or enrollment date. We have filters based in our unit, which is always the reporting or unit. We will see it in a demo in a moment. And then we have filters based on status. These ones are for selecting tick, tick, tick. And there can be the sync status as you see here. Event status open schedule complete, same for data sets or enrollment status. So I wanna see the track entity instances that are active, completed, canceled. And then we have some that are toggle. So the toggle ones are assigned to me. So if you have a program that is configured for events to be assigned, this filter will appear. If not, it will not. And then the follow up, this is to filter out the track entity instances that are followed up, marked to be followed up. And then another type of filtering are the working lists. So a working list, as you might know, is a filter that is saved and named, right? So I wanna see the events that are assigned to me tomorrow. So you filter out and you save it. So all this is done on the web. You set interface. So if in your program, you have any working list saved, then the Android app will download it and offer it here as part of the filtering. And we will see that this example in a minute. And then I think we can move to a demo. I don't wanna confuse you more. So let me show you the app. Okay. Okay, here it is. So login. We said, I don't wanna internet. I hope we don't. So this is the login screen. So as I said, for the URL, you can open the camera and read a QR code. I'm not gonna do that now. Or if you have logged in before, you can also use the fingerprint. So I'm gonna do that. So that just makes it easier for the user not typing the URL. Here you see the programs and events that we have set before and the filtering. So this is how filters work. The ones based on date, I'm in the home screen. So right now, the filters that appear are the ones that apply to datasets, events and tracker programs, the ones in common. So you can choose to filter in the present, to date this week, this month, in the past, yesterday, last week, last month, or in the future, this will only work for scheduled events. Tomorrow, next week, next month. You can also set an interval from two or just a specific date. If you say anytime, that's all, all events. So the calendar looks like this. There is a spinner, but you can also change it to calendar view if it's more comfortable for the users. And that will remember whatever the user has selected. Okay, so now we are filtering. We don't have, yeah, we have two track identity instances that have data from the day that I entered, which was 8th of March. So now with this small arrow, I can clear up the filters. And there is a bubble here. Let's try now these ones, the tick ones. So I wanna see the data which reported an error when syncing. Okay, so no data, but this is very useful to find what failed and try again. This bubble is telling us that there is one filter applied. And then the org units one works like this. You can either search for the org unit, if you know the name, then you select and add it, or you can open the tree, the hierarchy, the org unit hierarchy, and then select. And then the toggled ones, in this case, they assign to me to just have to. This is here because there is at least one program which is configured to assign. That's right. Now I'm going to go to the malaria case registration to show you how the working lists look. You see? These are working lists that were created on the web. And now when I select one, for example, events today, this filter is using a filter based on the date, which is today. So we are weighing out and telling you this is in use. The user cannot change it because this list is applied, but you can add more. Okay, but the ones that were synced or the ones from today that have errors, right? So you can combine filters based on your events assigned to me on your working list. And now it's this one, the one applied. And again, it can clear. There is another functionality that you can do with the filters, which is sorting. So for example, we can sort ascending or descending by date, done, or remove it. For the ones that are for selection, we don't allow for any sorting, but for the unit we do, and it will be sorted in alphabetical order in this case. So I think that's it from now and let's continue. So there is something very interesting on the Android Settings web app, which is this web application that you will learn on Wednesday that allows you for centrally configuring certain aspects of the Android app that will apply to all your users. So one of them is that all the filters that I have been displaying now might be too much for your use case. Depending on your users or how they use the data or the application. You can decide which filters do you want to be visible or you want to hide. So you will be able to decide if you wanna show or hide all filters in the home screen and on each one of the programs or datasets. So you can decide what to display to your user using the Android application web. In case all filters are a bit overwhelming for the users. And then we are gonna move now to analytics. So that was all about filtering and sorting. Analytics is a new feature of 2.5 and the most exciting one. So what is analytics? Analytics is a comment, you will have a session, full session on analytics on Thursday. But in a quick intro, analytics are charts and tables and single values that are displayed and calculated with the data that is available in the device. So it works offline. You can be one month offline in your facility and your tables and charts will keep on updating with the data that you have collected. The moment where it needs internet as the rest of the application is in the first synchronization to download the configuration. And the configuration is made on the website. So using the web app again, Android Settings web app, you decide which tables and charts you want to be available for your user. So let's go to, yeah, I think, all right. I think here is fine. So this bottom bar, the navigation bar is gonna be present all along the application or across the application. And it depends on where you are, home screen, program screen, track entity instance, dashboard, the options will provide. And it also depends on your configuration. For example, I do have analytics configured for the home screen. So then I have this option here. If I would not have analytics, then this would not be here. Probably there would be no bar because I can only do data entry. And this applies for all the app. Like the app is adjusting to your configuration. So let's have a look at the analytics. Again, you configure them. This is the user interface that you will see on the web app. So you can make groups of analytics. For example, I'm in the home screen now. And maybe my user works in and use the app for the antenatal care clinic, but also for the malaria program. So I want to group the analytics to help the user looking at the information that is relevant at that moment by topic. So I create a group called antenatal clinic. And then I have assigned a few charts and tables there. I have created another group, which is malaria program where I have added charts for malaria. And you can make as many groups as you want. And if your user doesn't need groups because only works in one program or because you are inside a program already, then you can also not to add any group and then the charts will just appear on the tables. You can have and configure analytics in the home screen in your data sets and in the program. So you can have analytics almost everywhere or nowhere or only in one place. It all depends on how you configure it. So now the analytics, this is how the tables look. You can see here. And then you can change the view of our chart, line chart, you could also do single value or go back to the table. And then you can filter here either by period. So let's say today, there is no data for today. Or by our unit, which is very similar. So I want to make a selection and I want to see only the data from Yandama, which I don't know if that's it. Yeah. So it adjusted the data to the filter. Right. And the same for charts. So you can do, the user can do the same. This, the user can do it, right? You configure what is available, but then they are the ones who can play and change the visualization or filter out the data. Same here. So for some charts, we don't offer the possibility to change the view because as you know, the pie charts are configured differently than our chart or line charts. So in this case, if you decided that this is a pie chart, it will stay a pie chart, but they can display that as a label. We don't have data. Okay. So that's analytics. You will have a session on Thursday and then we are going to move now to data. So the app looks more or less the same for data entry for all their common things for all, for datasets and programs. So one common thing is the navigation bar at the bottom that you will see in a minute. Another common thing is the header. You will always find the name of the program or the dataset. And then in this case, the reporting period and the org unit. Let me show you here quickly. So this is how. Sorry, I'm already here. Reproductive health. Must be. So this is the list of datasets reported. If we open one. Name of dataset reporting period or unit. These are your sections on each section. You can have more than one table. If you go to details, you find the icon status open, completed. And then the reporting period and your unit reporting or unit. You can play with the size of the columns. And then just enter the date. And then you will see the list of events. We do have validation rules. You will see this. I think tomorrow. Or Wednesday. Now let's go to events. This is an event program. And as you see, it looks more or less the same. Differenties. Again, list of a list of events. So, but now you are seeing some information here. So this is the list of events. Marked as display list. So if you collapse, you only see the values. So this should be configured in a way that it makes sense for the user. What is displayed here. But if they expand. Then they can see the name of the detail element and the value name. Name value. Of course, filtering and all that that we saw before here is where you want to apply it. And then this icon is telling you that the event is completed. And then you can see that you have selected one. And you can see that you have selected one. And you see by default, it's going to put today. Because that's the most common use case. It can be changed, of course. I'm not going to change it. And then the unit now that I have selected one, it will remind it for the next time. And if the user only had one configured, it will be redefined. Okay. So this is how they tend to look. So this is where you enter values. Different value types. This is visual data entry that you will learn tomorrow. There are. Program rules. For example, if it's male, we don't ask for the pregnancy. You don't know. The rules already. This is how a data set looks. If it has more than. 15 options. 11. I don't remember, but you will see it. 10. Okay. Thank you. The mode of discharge again, visual. So she was. Discharge in healthy mode. Same day. That wasn't. And now we save. So here is asking me if I want to complete. I'm going to complete. So here is my event. So here is my event. So here is my event. So here is my event. So here is my event. So here is my event. So here is my event. So here is my event. So I don't know if you know this, then I forgot to tell you, but there was a. A completion spinner as I was completing. The event. So if I remove one. So this is, this is kind of. Helping the user. I don't know how far they have gone. In completing the. The data set. And then again, we do have. Details. Details. I cannot see them now, but there are also details where you have. You can change your report date. Or coordinates. So. Now we're done with events. And track it. This one. Take a bit more time, but. A tracker program. Everything looks the same events are very similar to what you would expect. So. The difference is that now we have track entities. And we have. Track entity instance dashboard. And then inside the dashboard, you will find the events. So we are going to use the child program. And then. Let me show you. I think it's faster if I explain them. So. This is our child program. So as you see, when I open the child program, let's open it. It opens the list. Directly of track entity instances that is based on. This. Parameter on the, on the configuration of the program. Exactly as the tracker capture app. So if you don't click display from page list. Then the app will open directly. With. The search form. For example. I think this one. Yeah, this one. There is no display from page list. Data protection reasons or. So. You always open with. Searching. In the other programs where we do have. The list. Then. To search, you have to click here. And the parameters that you find here, the attributes that you find here are the ones that are marked as searchable. When you configure your program. So you can see that in the next slide. This is not corresponding. No, I think it is because the unique ID, it's always searchable in this case, because we made it unique in the system. Then it appears by default to be set. So. This is how you decide that your attributes will be available for searching. And then. The display in list. Decides. Sorry. Which attributes are you going to display in the list. So. The attributes that you select to display in list will appear here. And if you have more. They will come when you. Expand. Now, if the track entity has an attribute of type image. Then the first attribute of type image will be used. As a profile picture. In this list. So. Something that is also available here before going to the track entity instance is that you can change. Now we are inside the child program. This is a demo server. So we have a lot of programs. Usually it is not this complex, but you could change the program. Or you could search across all programs by track entity type. And then if you select that. What you are going to see in your search. And then you will see all of these attributes are the track entity type attributes. The ones that are common for all the programs on this. That entity type. Now, if you, if we stay on our own program, you will say, okay, now I want to create a track entity instance. So for now. The Android app has an integrated search and registration. Which means that to create a TI, I have to search. This is to avoid duplicates and users don't really like it. So I just make a search. I'm going to search for myself. So now I'm saying, I'm not there. So now I can create it. You see the button that appears now. Where here. But yeah. So I'm enrolled date of enrollment. This will read the labels that you put in the configuration. So I was enrolled today. So this is the date of enrollment birthday. This is based on the program configuration. I selected your unit. Now we go to the attributes. I could enter a unique ID. And then this is the important part. The, the, the values that I entered in the search, because the search didn't work. I'd already populated here. So it's an integrated registration. You can explain the users that when they are searching, they are already somehow registering. They don't have to type it again. I was typed in the search will be already populated. And this is how you add a profile picture. So I'm going to take a picture of my friend here. Yeah. So this is how it looks. Let's save it. Now, because the, the program is configured to enter directly the birth event. It's opening straight, but I'm not going to complete that now. I'm going to move to the track entity dashboard. So this is the track entity dashboard. What do we have here? I'm going to move to the next one and I'll go back. Yes. So here we see the first three attributes. Martha's displaying list. Martha Villa, female. That's based on configuration. You see the enrollment status. Which is open. You could mark this to follow up. So it will be filtered out later. And then you have also here the. This is enrollment date. This one. And then enrolling our unit. What you also have here is. You see this bottom bar, the navigation bar that we have all across the application. So these are the details of your TI. These are the analytics. I didn't enter any data. So it's empty, but you can also configure this analytics using the Android application. These are the relationships. If I had links with siblings or mother, they will be listed here. And here we can add notes. So this is how we navigate. Through them. Through the dashboard. And then. This one we have seen already. Something that is also important. You could delete if you have, if the user has permissions could delete the track entity instance or the enrollment. This menu here. Or change the display of events. That's an important one because right now they are grouped by stage. There is one. Of type births once one event. One stage. And one of type post metal. They were pre-generated based on configuration. But we could. If there were many or we want to have a different. Display we could just show them as a list. They will order chronologically. So it really depends on the program. Sometimes it makes sense to group them. Sometimes it makes sense to list them. And then. More options. Delete TI delete enrollment. If the user has permissions, you can change the status of the enrollment. You can complete an enrollment or deactivate from here. And then you can see the program enrollment. So. This is where we move a bit up. And we see the, the, the TI. As a whole. We could enroll the TI in another program. Or we could open. And then. And then the last thing is how to create events. If the stage is repeatable. Then you create them here. You can a new, you can schedule. This one is scheduled seven days from birth. Or refer. To another facility. So. Well, we will see if, for example, this smart pavilion was enrolled in the child program, but also in the API program for immunization, it will be here and I could move from one enrollment to the other. So. Whoops. Yeah, this is how I moved to the next, but I didn't want to hide this. Yes. To see the details or edit the details of your TI, you come here. See details. And this is going to take you. To this, if you need to modify. This information. So now the enrollment list. I already explained you how to go to the enrollment list in case you use one TI with different enrollments. And then the maps. So the maps are just a list of. TI so in, and they will appear only if the program is configured to have coordinates. So I just want to show you how it looks. I'm a bit out of time at this moment, but when you open a map. It will load the track and the instance, but have been recorded. And then you can navigate them. Just by moving the cards. You can change also or decide what you want to see. If there were relationships, or if you want to see a different attribute, you can change the background as well. And you can open a TI from the map. There are also maps in the relationships. So if you want to say, okay, how far are these two track and the instances, then you click here in this case, there are no relationships, but there are also maps. And then the only thing I wanted to say about settings, and you will also see this across the, I mean, to open the settings, you go to this menu settings. Here is where the user can see the synchronization, the reserve values, the error log. This is more like a management screen. And I think we are going to leave it here because we don't have time. And we can go to the questions, but we are already a bit late.