 All right guys, so welcome to this first session for the conference. So as Kristen said, this is really the most fun and popular session of the week. And today we're going to talk about what's new in the DHS2 software. And we're going to focus on the latest two releases, so you're going to see all of the good new stuff that came up in those releases. We have a lot of great things for you this afternoon. There's a lot of improvements across new visualization types. There's plenty of new apps. We have a lot of performance improvements. There's usability improvements and of course stability and platform enhancements as well. So for this session I'll be going to have basically four sections. There's going to be analytics which is led by Scott Ruspatrick who is the product manager for the analytics product. For the tracker section we're going to have Marcus presenting. Marcus is the team lead for Tracker. And then for the Android app we're going to have Marta Villa and Jose Munoz from Spain presenting on the Android app. And then there's going to be Austin Magui who is the sort of lead architect and also now deputy tech lead for the DHS2 to get it with me to present on the platform enhancements. And then we're going to have a few minutes towards the end for questions. So if you have any questions there will be a chance to ask those towards the end. So with that I'm just going to turn it over to you Scott to start talking about the analytics part. Great thanks for the introduction Lars. Let me just make sure I get my screen shared here. Let me know when you can see it please. Yep I can see it. And you're looking at the slide deck correct? Yes. Okay fantastic. Well it's amazing to see so many close friends and colleagues tuning in. Nothing presentation okay. Yeah I'm going to go back and forth. Yeah just a little easier this way. We have a tremendous number of analytics features to try to highlight for you. We're actually not going to be able to get through everything that was in the 35 and 36 release. We're just going to get the highlights. But before I get started I do just want to say please don't leave this without any without if you have any questions without those questions being answered. You can track me down on this community practice. You can find me in Gather. You can virtually walk right up to me and let's talk. So I'm going to have to go quite quickly. But again please do reach out if you have any questions. All right let's start with the dashboards. Lots of cool stuff coming in the dashboards app in the 35 and 36. The first thing we're going to look at is dashboard printing. Now it's very easy to print a dashboard. We also have filter settings now. Fairly popular requests that we've been able to put in. We have a full screen dashboard item presentation mode that makes it much easier to view analytics and share analytics from one screen. And highly anticipated. Very happy to announce and share with you all the mobile or cell phone friendly dashboard application. So let's just go over to DHIS 2. The first thing that we're going to look at is dashboard printing. Now this is very simple. On the dashboard app we just need to go to the more button and we go down to the final option which is print. And you see that we have two print options. We have dashboard layout print and a single item per page. Let's just take a look at the dashboard layout print. And when I do this you'll see that the dashboard print layout is coming in the same layout that I have on the standard dashboard. Of course there are we are putting in page breaks. It's a standard A4 size piece of paper. We're putting in page breaks but you can configure your dashboard so that it's fairly printer friendly meaning that all of your dashboard items fit onto a single piece of paper so that it makes sense. Right now you're just seeing an example of DHIS 2 kind of auto rendering it. But again you can configure your dashboard to be more printer friendly. If I click the print button in the top right corner of course I get all of my various print options. I can save it as a PDF. I can attach it to an email send it out as kind of a routine report. If I exit the print preview and go back to my print options once again I'm going to go to my single item per page just to let you see what that looks like. So this is what this is going to put every single dashboard item to take up a full page and you can see those coming now and essentially this makes it so it's a little bit easier to share data. You can print this out use it in a meeting pass it around just makes it a little bit easier to understand and interpret the analytics that you have presented on your dashboard. All right moving right along it has been a long request to us that the folks who are making dashboards are saying that all of these filter options that you have on each one of the dashboards is not always that useful. Sorry we're just waiting for DHIS 2 to load and you're telling us that not all of the dashboards need all of these different filter options. Well now you can actually edit which filter options are available per dashboard. So I'm going to go to the edit and in the edit we now see a filter settings button. If I click on the filter settings button we have two options we can allow all filter dimensions or we can just select a few and when I do that you see that the available filter dimensions are on the left the selected ones are on the right. Let's say for this dashboard just for example or unit double click it turn it off click confirm save my changes go back to my filter button and look now all we see is period. So you can turn off those filters that they are not useful to those dashboards that you have. The next thing that we need to look at is within each dashboard item we have this three dot expanded option menu. So I click on that now and you can see that I have all of my standard options for each dashboard item that we've had for a long time. We have a new one now here at the bottom as well and that's view full screen. So if I click on view full screen it makes the dashboard item take up the entire screen again makes it much easier to everyone to huddle around a computer screen to project a dashboard directly through on a PowerPoint projection or not PowerPoint but through a projector and and you know let me just get out of this you get out of it by going to the top right corner and the next thing that we are going to do over quite quickly here is the mobile friendly dashboard app. So we have been working very hard to bring all of the power of the DHIS2 dashboard onto your cell phone and I think that we're getting very very close to having all of the future sets there. What I'm going to show with you first now is what we released in the 236 so you can actually see that I'm logged into the play instance of 236. I'm on my cell phone you're actually seeing my live cell phone right now and we're looking at the same dashboard on the web browser as well as on my cell phone and you can see as I scroll down I'm currently in portrait mode and you see each one of the dashboard items is stacked on top of each other. If I go up I can see that I can move in between my various dashboards at the top. If I click on case malaria for example I see my dashboard opening. If I go to view full screen on this first map I can of course interact with it zoom in have all the same powerful functionality that I have on a dashboard just directly on my phone go down into you know super low places click on individual cases and perform all the kinds of analyses that I would standardly do on the web browser but now on my cell phone if I switch my phone over to landscape mode there you go you notice that the dashboard layout changes and now it actually looks the same as it looks on the web browser so the same order and and layout of the of the dashboard but I also have some additional features that are showing up so I can edit my dashboard I can change basically anything about my dashboard here on my cell phone I can add my filters and again I have my more options I can show descriptions and looks like they might have lost Scott temporarily if you'd like to move on to the next presenter okay do you want me to go ahead with the tracker part Max and we'll take yeah we can catch up with Scott when he's back okay yes hey I'm Marcus Beckham I'm gonna share my screen with you in a moment there I think you should see my presentation on the tracker team we are we don't have as many features this time we have three main undertakings that I'm gonna focus on in this presentation and the first one is performance improvements during the last year there are a lot of our resources has been going into performance improvements to be able to support larger and larger scale of trackers the other main part we are for focusing on and working on the tracker team is the new capture app we are replacing the old tracker capture with a new modern web app that we call the new capture app so I will be showing you some updates on the capture app as well the last point I will focus on main point I will focus on is the re-implemented services for tracker and this is this is a bit going into the performance improvements these re-implemented services are our long-term strategy for going to even bigger scale than is possible today and so with that I will go into the first topic which is improvements to performance we had this as one of the key as the key tracker focus from all stakeholders in the prioritization and alignment process then over a year ago and improving performance is and have been our main focus for at least the last year one aspect that has given us extra fuel in this endeavor is the global scale up that has been driven by covid and vaccination programs especially covid vaccination has been a driver for these improvements we had a webinar releasing the covid vaccination package and the main question that was posted us from the participants of the webinar was whether we would be able to drive this into scale and whether the countries would be able to track their entire population in vaccination programs so we have been working on better and more formalized framework for performance testing on large-scale vaccine setups which has been really useful the last year in terms of making better decisions and making better code and improving improving the performance we have also been working directly with some of the bigger instances and removing bottlenecks and helping them to scale up these improvements have been made in trees versions simultaneously in 234 35 and 36 so even though the work has been ongoing through 35 and 36 the improvements have been have been merged on all these three versions and they were released in 234.4 234.5.2 and 236.0 and we have been going out saying that if you're scaling a tracker you should probably be on one of these three versions we know that the best among these three is 236 and the second best is 235 and 234 is the lowest performer among the three optimized versions here I'm going to show you some numbers now comparing 234.3 and 234.4 which is not the biggest jump but it's very descriptive of the performance increase you would be seeing between 235.1 and 235.2 and as well in 236 you would have the same improvements that I'm going to show you plus a little bit more so this first slide shows the median response time running tests for 10 minutes with low concurrency this is an instance running three million track dental instances three million persons and six million enrollments about 20 000 users and 20 000 organets and as you can see in the blue here we see the low performing 234.3 and the red is the much better performing 234.4 one thing to mark here is the android sync which is a very heavy operation syncing a lot of data at least in these tests they are syncing a lot of tracked dental instances at once and it could take up to 60 seconds before and now with the optimized code it will take around five the other calls is reducing response times from seconds to milliseconds here is a performance test performed with concurrency and as we can see with 100 concurrent users doing operations two to three operations per minute the request per second for the 234.3 the old blue line here is starting at around three and with concurrency it deteriorates and at 500 concurrent users it's no longer responding we with 234.4 with improvements and remove bottlenecks we see that the request per second is increasing up until around 300 concurrent users requesting data from the server or sending requests to the server and then it starts deteriorating but it's still usable with much higher higher user counts and I'm going to give you a quick side-by-side demo here and I'm I'm doing this in in two versions of 234 to the left you will see the faster 234.4 and to the right you will see the old 234.3 and keep in mind that these improvements are also present in 235 and 236 the database I'm running on is is the same as three million people tracked and six million enrollments there's the 20 000 or units in the database and I'm showing you now what it looks like on my server on the performance test servers I now switched sharing so I hope you can see the side-by-side the two trackers side-by-side here and to show one comparison I'm going to refresh both of these lists and this this is working lists that lists over 600 000 tract entry instances which in the improved version will take around four seconds we can see to the left that it will be around four seconds before we see the list and reminding you this is 600 000 tract entry instances being filtered and ordered which is not a very efficient list but I still wanted to show you that it's able we are able to load so big lists to the right the the older or older 234.3 will still be working for a while and it will take around one minute and 30 seconds and I'm going to prepare a search instead and search for my demo user and I'm going to prepare the search in both places and I'm going to start it in in the upgraded 34.4 to the left and also at the same time to the right in the not improved version and you can see that in the improved version the search in three million records is taking around two three seconds it will take six to seven in the not improved version to the right one last thing to show you from these performance test environments is it's visible here if you change the value as you know in the tracker capture you will see the field turning yellow while the request is being done and green when the request is finished so if I start in the slower and optimized environment you can see the field stays yellow for a while and it turns green it will take a second or two whereas in the upgraded 34.4 you will see it turning green almost immediately and this represents the server spending much less data on each request okay so I will share my presentation again some numbers from the ground they have been supporting and learning from some of the bigger immunization campaigns in Bangladesh there was a campaign that number four weeks in 400 000 sites with 34 million vaccinations and scaling this application we found some bottlenecks that were removed and we found optimizations that were helping this succeed. Sri Lanka has a vaccination program with where they are entering around 60 000 entries per day this is a large number of users working to enter all this data and they have 16 million people tracked in that database some numbers from Rwanda where they have a covid case surveillance tracking 1.5 million people as well as a vaccination instance that is scaling and this is still being scaled they have a target of three million by the end of 2021 and seven million by July 2022 all right so next topic is the capture app and I want to show you some some improvements that we have done there in the capture app as you know we are implementing functionality for tracking people in the same way as we had to do in the tracker capture app which is the old version of the app so now in the in the new capture app I will show you some of the improvements that has been released in 236 and let's see if I can just share the light screen there now I trust you can see my my my capture app which is the which is the next part of the demo I'm going to show you how to register new tracked entry instances how to search for tracked entry instances and how to list and filter to take the last point first in the capture app it has been possible for a while to filter event programs and right now I'm looking at one event program and the filter that has been there for a while the new functionality is that I can now select the tracker program and have the same sort of filter with working lists and also other filters that I can apply to work with the data in in my org units and for example I can go to my new demo that is here and I can click at this track entry instance down here and open the record and as you will see when I click is that I will be taken to the old tracking capture app this page here is the one we are working on and going to release in 237 in the capture app but right now we are taking to the tracker capture app when you open the record like this and we can fix the data that was missing and go back if I click the back button now I will be taken back to the same list in the capture app so the integration between these apps is built to be as seamless as possible and we hope you can now direct your users to use the only the capture app for both tracker and event programs even though you will be sent into the old app for some operations if I click new here I could have added a new focus area in malaria focus investigation directly or I can use the new dot dot dot which is the more of the wizard for adding something here I could for example I've added a new person into the database without enrolling into a new program what I'm going to do right now however is to change to malaria focus and add a focus investigation like so when I save it you see that I will be taken to the old capture again and this is where I would have to enter event data for 236 again for 237 this is going to change and there will be a new UI also for this part of the capture app I can then go back and potentially if I'm working with cases as well I might add the case I might add a relationship to the foci that we just added I copied the ID here and I can link my case to the foci in the same app oops if I also add this report date and save I will see my event data here and I can switch between the vent and foci the last button I wanted to show you was the search button here and in the same way we can go directly to search for a focus area since that was the program we had selected or we could have gone to the search wizard which is allowing also search for entities directly when I go to focus investigation and search I can in the same way as always we use these parameters in search and in the same way as we did in the old tracker capture you will get a fallback if you don't find anything in the program you're searching in there will be an automatic fallback to prevent duplicates in the to find searches from older programs and here we see I found my search with the keyword test there I will change my presentation again and we hope this changes here will allow you in 236 to be able to use the capture app as the starting point for all these operations and both event and tracker programs and there has been some usability enhancements in the capture app and one of them is this one this year selector in the date picker for birth dates and some other kinds of dates the year selector is important to quickly go to the right right year and we also have some enhancements on the workflow generally and the context selector so as you might have noticed the program came before the organette and we have some new functionality in the buttons for new and search to help the workflow in working with tracker and event data and some of the changes that is not so visible is that the metadata cache is now optimized and this means that it does not download more data or more often than it needs to but it downloads the data that it needs to as long as you update the version number of your programs you will not have to tell your users to run the cache cleaner anymore we know that the cache cleaner has a bit of a therapeutic effect with users so you can choose whether or not to tell this to your users but it should not be necessary anymore to use the cache cleaner as long as you update your program version that is some smaller enhancements to the tracker capture app the notes will now contain the full name not the username there was some settings where the username was not really telling the users who entered the record if the username is a number for example it might not be so easy to see who actually entered the notes from the username and then we also have enhanced the tracker to have a keyboard only the data entry you will not have to use the mouse anymore to select the options and radio buttons some enhancements to the program rules the biggest one might be the the first one here the expression validation and i'll give you a quick demo there the here you see the maintenance app and the program rule screen and if i go to the expression here you can see now that we have this green check mark and we have a description of the of the expression at the bottom and if you change anything maybe if you change the name of a program rule variable you will be warned if this program rule variable is not existing it will be warned if the expression is not well formed and you will be warned if you try to use a function that does not exist so we hope that this feature will help users making program rules and avoid mistakes which can be costly and hard to find in the expressions and there's also a new variable for completed dating expressions that can be useful if you're sending messages for example to to your people that came into a visit and completed a visit you might want to send them a message a few days after they came to the clinic and it can be that the completed date can be what you need to send this message in the right at the right dates and there is an expert lounge for program rules on the at Wednesday at four so if you're interested in this topic please join us there we will Pablo and me will do a lounge and answer questions the last topic that i'm going to go through today is the re-implemented services for tracker and the re-implemented services you say what is that we have actually for the last several releases we have been spending a lot of resources on a full re-implementation of the tracker services and the implementation the re-implementation is is a little bit different from the performance and enhancements that i showed you in the first part of the session the re-implementation aims to we have rewritten and re-implemented the services from the ground up on a much better architecture which is going to be more maintainable and have a greater potential for optimization and we hope this is the way to take tracker to even higher scales than is possible today and we can we also have implemented more functionality in the new tracker services the services now run program rules for validation and and also calculation and and there is a lot of new options and possibilities with the new tracker that we could not build into the old one the endpoint is released in 236 and the reason for releasing it now is that we will allow integration for apps and scripts so if you have an app or a script it might be a good idea to start looking at the new endpoint and testing your app with a new endpoint because the old endpoint is going to be replaced in a future release api 239 question mark we are not totally sure when we are releasing it it should not be before 239 at least and it is also great if you have any any dependencies that you reach out to us and let us know the new tracker endpoints is pretty similar to the old ones in in terms of how they look on the outside and what you have to send in and how they behave and the main change in the new endpoints is how they are built so we have built this new endpoint from the ground up to be more optimized for the future and this is my last slide so i will hand it over to the next speaker i'm not sure if Scott got his internet back for whether we are going to android now we're going to android yeah i think it's me so um yeah hi everyone uh good morning evening or afternoon let me um share my screen i think you can see my screen right um okay so my name is josega here i am part of the android management team and i am representing android in this in this session so yeah i'm going to talk about what is new in android for the less for the last year but first of all let's talk about the the adoption the dhs 200 adoption as we can see in this chart we uh we can see the the number of active users from august 2019 till june 2021 and by an active user we mean the android users that are using the application at least once in the previous 30 days so as we can see here there are like a big increase between the february 2020 and april 2020 of around the 300 percent and this is because many implementations and countries organizations they change their priorities in order to track the covid cases so this basically due to covid and we and we see that how these numbers they was maintaining over time and and then we can see like in november from november of 2020 many implementations many parties that were delayed they started to be reactivated like i can think of for example some of in a year or a big campaign uh immunization campaign in mangladesh or other places in togo so we have seen here experience a big increase as well uh of android usage and then uh in march of april there is also a big peak over here that represents the mini organizations we're starting to use the android application to track the covid vaccination delivery and overall we can see like over the last two years we are experiencing an exponential growth of more than 700 percent uh this represents the countries that is actually that are actually using the android application we can see that android application is being used in most of the african countries and also in several of asia especially in the south south east asia and we're starting some new projects in america in latin america as well uh yura is the country with more active users in this time representing more than 20 000 active users in the last 28 days okay and this is one is what is happening right now in the last 30 minutes so we can see there are like almost 1500 active users uh that's 75 percent of using a mobile device 25 percent a tablet device and we can see that they they are more now in the located in east africa and west africa okay now talking more about the the futures what is new in android in the latest version so uh yeah it's compatible with all the h2 versions from 230 and now in this version we are starting to use a new platform to track like the usage stats of android so it's called matomo it is open source and you can track how the user is using your your application and this is what's a big requirement from the community so now in any organization or any country they can have their own matomo instance and they and then they need to configure the the the attitude server in a way that all android devices will send will send information the usage information to their matomo instance i'm going to show how in the next 15 minutes and also in the life in the latest version we are able to users are able to log in in the app using the they don't use they don't need to use user names or password anymore they can use google accounts or microsoft accounts either have configured the open aid in the server well this is going to be ready when the the next patch release of the web is coming up into the 236.2 in the coming months so also we have changed we have revamped all the navigation menus across the the main screens of the of the application that now they look much more modern now so let me show you how it looks so hopefully now you can see my android device otherwise please let me know so if i am like selecting for instance the child program i can see that it opens by default the the least view of the ti's but then i can navigate to the map view over here like other way of representing my ti's in my device okay and while loading we need to remember that we are going to show in the map all the ti's that has associated any gps coordinates as it is here okay so now let's go back to my list view and i'm going to select this this ti and by opening the ti i can see the the enrollment information and all the events as usual but now i can navigate the different parts of the ti for instance the relationship using this this navigation menu in the bottom here i have the relationships and here i have the i have the nodes okay and this behavior we can see this behavior also in the event dashboards and in data sets as well okay so other feature that has been very it was a big requirement from the community is the possibility of having offline analytics offline analytics is like the for us is how we can represent analyze the data storing the device using charts or tables or and so forth so this local data is data storage in my device that maybe is not yet synchronized with the server okay this is a big one this is a big task so the the we need to follow up an approach of dividing this task in different phases so for the the first phase that is what we're going to see now we are just entering in the ti analytics so the scope is the enrollment okay and we are going to see how we can render like bar charts line charts or even w2 growth charts in the scope or tables in the scope of the of the enrollment so let's see how this looks like in in in my android application so i am in the same ti just before uh ryan campbell here so uh now if i can click on this bottom on this tab so i can see that we have information about the feedback this is the new we have the feedback in the previous versions but then hr sign indicators these are program indicators these these values over here but now also we can see that there is kind of this line chart with a uh infant weight this represents the values of that element that belongs to a repeatable problem stage okay and this of course this data needs to be numeric okay we also have the evolution of the hate that is also a data element that belongs to repeatable program stage and these are the values how the values evolves over time we can change the the the renderization here uh i can say okay i would like to see this as a as a as a bar chart or i can see this one as a table okay or i can see this one as a as a value so in this case i am only showing the apple is it is only showing the latest value that has been recorded all right so let's continue let's move on so maps uh we in android we have maps since a year and a half ago uh but so far we were only able to display uh attributes sorry coordinates di coordinates enrollment coordinates and event coordinates and in this version we are also able to display uh attributes and data elements which value type is coordinate and so we are going to display we are going to be able to to know what is the current location of the user uh that is quite important uh when the user needs to navigate to any other specific location so let's see again how this looks like in android so in this case i'm going to open this program the malaria case diagnosis treatment and investigation uh within this program i am recording the uh the malaria cases and yeah i'm going to open the the the map view okay and then i am going to select the just the ti's the cases that has been recorded this month so here in my filter i can select this month okay and now i can see uh well you can see the blue the blue dot that is what i am located right now okay so and basically these are all the the malaria cases that are registered in in my area in next example uh this your position can be like the household where this person lives okay but now as we have we have the possibility of rendering here in a map like attributes as well so in mind that in your configuration you can have an attribute that represents the look the work location of the of the of the person so how can i do that so in this case i need to go to the to the layer over here and then select the work location this is an attribute so like i said the work location in this case there is only one ti of those five that has been added that value for that attribute okay and this represents if i select this one so it seems that this ti is obligated but one is the attribute the work location where these people actually work where this person actually works and this represents where the person actually lives okay we can also have as you know we can also render let me go back to my previous setup we can also render a satellite view if we want okay in this case we have we have my view of the city where i'm living right now and then we can like let me change this we can render also relationships so it's a select this is not new but i think it's worth it to mention as well in these two cases so then i can see the different relationships that we have so we can see that this in this this is in this case of these two two cases over here this is valid of course this is a malaria use case but this is valid as well for covid as well but now what happens in mind that i am a health worker and i need to visit this ti this person over here that lives over here in order to conduct an investigation or to facilitate a test so now if i am selecting this person and i can select here in my in this card in this carousel card over here so i can click on the navigation button and this will show up all the maps up that i have installed in my device in my case i have google maps and maps me so i'm going to use map maps me because it is an app that allows me to work offline to navigate offline okay so i'm going to click on this one it is going to take a little bit to render but here we go this blue spot spot represent the where the ti is where the person is living where where is the household so now i can take in the route to in this button and then the application is going to tell me the the best path to get to it to that place okay and it's the same with google maps so i'm not going to do i'm not going to the demo with google maps i believe you all know how to use google maps um okay let's continue with more features that we have um so also working list working lists are filters that has been defined in the in the server so this is very useful for the for the under users because allows them to have different views of their data so in mind that we can have a list of events and a list of events they can it can be like tasks tasks that need to be conducted like today or tomorrow or the or tasks that has been conducted in the previous month okay so let's let's see an example so i'm going to open this the malaraki registration okay and basically these are all the events that has recorded that have been recorded so but now if when i'm clicking on the filter bottom i can see here my working list okay this my views okay so i can see the events as has been assigned to anyone the events that has been assigned to me okay let me okay and that i see that i have four but then i can have to see the events that has been assigned today sorry to me that needs to be conducted today so these are like my tasks that need to be conducted today and i can show them also as i said before in a map so we have now i i i would like to say we have now a nice way to render in a map what are the tasks that a person needs to conduct and i can select the place that they want to go and click on the navigation button so they they can have then they can they can see what is the best path to go to the household or the pacing as well okay let's continue so also we have other things that we have our features that we have are legends for data elements program indicator for events and indicator for data sets let's do a quick example a quick demo with this so let's open this program i'm going to select like any any event over here okay we can see the legends we're 68 years old we can see how the legends are being displayed there and also now in the events we have the same aberration button as we have seen for the ti's and now we have here this this bottom for the for the analysis and what we can do is like to display the value of the program indicator so in this case we only have one program indicator and this one this value is displayed here and for data sets let me navigate to one data set the child health for instance and now we can see like the this is for immunizations we can see that we have a list of indicators here we have two indicators and these values are being the total of bb those is given and total pcb those is given are being calculated on the fly okay complete on the okay so let's now change topics now and in android we have like a other product that is what we call the android settings web app we you can like download this web app has been there for at least eight months i believe and you can download this web app from the from the dh2 app okay what this this app does is gives you more possibilities regarding the configuration of your android devices so let's run a quick demo as well on this so let me then sorry i'm going now to be using the so i guess now you're seeing the my dh2 the dh2 server so i have installed that that app in my in my dh2 server so i'm going to navigate through it okay this is a the general menu and an overview and what we can see is like in the general settings we have now two new text fields okay and in these text fields is where you have to uh introduce the url of your matomo instance so if you want to track the the user the usage of of android in your implementation and you have a matomo instance you need to place the url here okay and whenever you connect to url you need to start a project and then the project id it will like uh you you need to fill the project id here okay so if you have these two fields properly filled then any actions that are happening with your android devices is going to be tracked in your matomo instance okay we also have sms gateways this is not new but maybe just a quick reminder sms gateways if you want to to to to allow sms synchronizations as well and then encrypt that device database this is quite important because if you mark this all the devices that are going to that are synchronizing with the server the database are going to be encrypted this is important when when in your implementation you need to manage like sensitive data as hib as in h as as an hib project okay this is not new this has been there for the last eight months but just a quick reminder that in the synchronization we can synchronize how often the metadata and data will sync and also the problems how many ti's we want to synchronize with what is the maximum number of ti's to synchronize the time period the maximum event to the load and within which time period any time period last month last three months last two months so this is going to give you like a lot of granularity a lot of power in order to configure your android setup in your implementations the same for data sets what is new in this version is this section about the appearance and analytics okay so let's go through through this section so before that we have as you know we have like a different filter options in our android applications we have them in the home screen and also if if i open a program we can see that there are like different filters over here in this case six filters um so the committee is telling us that this sometimes is very complicated because the end users they normally don't need to have all these filters but then we listen of other implementations that they really need to have these filters so what can be like a long term solution here so basically what we have tried to do to do is like this now in the appearance section we are going to be able to define what are the filters that we would like to show in the home screen for the programs or for data sets so i'm going to run a quick example let's say that i am all interested in the enrollment date as a filter so i'm going to remove these these filters over here okay and also i can have i can define this for a specific program let's say that this is my uh general behavior but for this particular program the child program i just want to have two filters enrollment date and the event date okay so let's save it save it and then i'm going to synchronize in a moment to see how it looks like we have the same for data sets in the case of data sets we only have three filters that we can like turn on or switch off okay but then the analytics the analytics here is where you can define the items that the the end users will see okay so what happened if for instance you would like to see like the uh a wto chart growth chart so this is not possible to to be specialized right now for the tis in the web but what we can do here is that uh we we can just select the program you know that this is and this is uh the scope is enrollment so we need to set a program and then a repeatable program stage in this case we only have one repeatable program stage and then i am going to uh create this chart chart by jose this is optional this field over here i am going to select the the nutrition chart okay i need to sorry i need to select the name i mean the wto nutrition chart and then i can select i'm going to select we have three options here wait for hate i'm going to select this one and now uh every nutrition chart at wto they need to you need to select the the gender so here you need to select which is the attribute that represents your gender the gender in your configuration so in this case it's gender and then the option codes for females in this case female the option code for males and then what then what i will have to represent in my horizontal axis so it's a data element or a program indicator in my case it's a data element and it's going to be the height and the vertical axis is going to be a data element uh as well i'm going to represent here the the weight okay so i'm going to add this and i'm going to save it okay and now what i need to do is like i need to like synchronize my uh my device so let's do it okay and while this is happening just to mention that what are you seeing is pretty new in fact the these menus over here penis analytics has not been released yet but they're going to be released for sure during the next couple of days okay so if you would like to play with this application just stay tuned and then let us know how it works for you okay and now let me see if this has been done with it not yet but almost there and also the the users that needs that can use this application as i was supposed to mention they need to be super users they need to have the all authority linked to to them okay so okay this has finished the the the the synchronization now i'm going back to my home screen and let's see how uh the program so these are my uh the setup for for the filters that they have so if i open now the Malaya technology treatment and investigation okay now i can see that i only have one one filter over here however if i open the the because we have to remember that we have an specific settings for this particular program so for the chat program we have the enrollment date at the end date so let's see if this is what is happening okay yes we only have this to the event date and date of enrollment okay and now what happened with my chart the chart that i have defined in the under settings app so if i open now this ti okay i'm going to to my analytic tab and in fact here we go now we can see this w2 nutrition chart with this i can like zoom a little bit to see the values and the the values are there okay so just finishing my presentation let me go back let me just some resources so under updates everything is in the web you can use this link over here please let us know any question for that there is an andrew community of practice in this link the andrew sdk is is there any developers in the room uh if you are interested in creating a new andrew application that is compatible with vh2 we strongly recommend to use the andrew sdk and we're going to have a session of an an introduction for the sdk on wednesday at three pm okay so stay tuned and that's all from my side thank you very much and i think it's good yeah back online laures am i ready to go now yes go ahead okay great can you see my screen yep great and let it be known that it was a zoom that crashed not dhs2 dhs2 is doing fine i kept on going even without you guys but now we're all back together and i'm sorry for the disturbance there i'm going to jump right back into where i think i left off with you and that is talking about some of the new features in the data visualizer app i broken this into two parts uh so the first part here is going through the ability now to have visualization type menu we also have a universal data item search in the data visualizer app we also now allow for combination charts as well as multi-axis charts so let's just have a quick look at these the data item selection menu or excuse me excuse me the the the the the the chart or visualization selection menu now you see that we have 20 different chart types available that includes pivot tables as well and each one of these comes with a little bit of text with it to give you a little bit more information about what's how the best way to use this particular chart is and some recommendations for example if we look at the line we see that we have track or compare changes over time right that's the appropriate use of a line chart and we tell you a little bit about we recommend that you put period as your category so a little bit of clue you into what's the most optimal um layout or configuration for this chart um to help folks avoid mistakes or to use inappropriate chart types for different kinds of data okay so we're going to still leave this at column chart and then I am going to now go to my data and sorry let me just catch up on my there we go um and in my data I am going to turn on I'm going to search for A and C and you'll notice that when I search for A and C now with our new universal search in the data item selection um we are seeing any data item that has A and C in the name so here we see a data element just below that we see an indicator if we scroll down a little bit we start to see some event data items and here we even see some program indicators so now we're seeing all data items there in the list based upon your search results um this practically means that users when they're using dhs2 analytics don't have to know the difference between a program indicator uh a a data element an event data item or a standard indicator they can just search by the name and it will show up based upon what they search so I'm going to turn on um A and C coverage one two and three as well as A and C visits one two and three click update and so I'm getting this bar chart now and we're seeing that our A and C visits are the big talk um bars and our coverages are basically can't see them because they're percentages well we can do something to address this now if we go to the series tab into options menu we can now move our coverage indicators over to a line so now we can toggle between lines and bars for um uh in column and bar charts so we'll move these coverages over to lines and let's make it a little bit easier let's actually move these to the second axis so now you actually see in data visualizer that we support up to four axes and I'll move these over to the axis number two click update and there you go so now we see our A and C visits on the left in blue our total counts and we see our coverages at lines on top of those on axis uh axis two um and so it's you know practically speaking in this situation we're easily able to show total counts or total number of patients total number of vaccinations any kind of regular data element and then over that we're easily able to show um vaccination rates coverage rates um case load rates any kind of indicator all right let's move on to our second round of data visualizer and this one we're going to talk about two category charts we're going to talk about uh chart color sets bar and column chart legends text styling in our charts as well as show you the brand new scatter plots that includes outlier detection so a bunch of cool stuff I'm going to go ahead and start with a blank chart here I am going to now turn on again some A and C but I'm just going to turn on my A and C coverage one two and three click update I'm going to change this to an area chart update again all right so now we have a nice little area chart showing the last 12 months for our coverage so we can see a bit of a trend analysis here let's now say well what if we wanted to filter by some of our additional dimensions you see we have some of dimensions here with these little green dots and of course these green dots are telling us that dhi's two has identified that this dimension is available to be to disaggregate your data so let's do that let's turn on facility types so we have community health posts clinics hospitals let's turn all of these on and let's add them to our category dimension I'm going to move it just so it's in front of period click update again all right and so now we have all of our various community our various facility types showing A and C one two and three coverages over the last 12 months so we can quickly do some trend analysis or some comparative analysis between our different facility types we can see some crazy stuff is going over in some hospitals with an A and C two coverage of nearly 250 percent it's probably the data quality issue and and but we can see you know some nice you know comparative analysis here with our two category charts one really cool thing now that we also have if we go to our style tab in our options menu we have different color sets available so most of you have grown up using our standard dhi's two color set for the last 15 years we have introduced quite a few additional ones so now we have a bright option a dark option a gray one for colorblind and patterns as well so let's just take a look at the colorblind just for an example all right so now you see the same chart different colors for your data items that are suitable for those who are colorblind okay I am going to change this to a column chart still leave the same layout now under bar and column charts we have a legends tab so you notice this legends tab is showing up in our options menu I'm going to click on that click display legend and then I'm going to say use us that we have two options use predefined legend per data item or select a single legend for the entire visual visualization I'm going to choose this the second option for the entire visualization and I'm going to select my legend and go of course these are predefined legends I'm going to click update and now you see that all of my bars have changed colors based upon the legend that based upon the values that the bar is showing in accordance with the legend that's been applied so if I hover over one of these you see that this value 161.4 is showing up in the legend class greater than 100 which is this blue color and I can quickly see some places where performance is quite poor they're showing up in red this area is 37.3 and that's following into the 30 to 40 color class in this legend okay if I continue in the options menu we are now able to style virtually all text on on a chart and just to give you an example of that if I go to style now I can choose a custom chart title I'm going to give it the name title I'm going to make it extra large I'm going to show it up on the left let's change it to this outrageous pink blue or pink purple color let's make it bold and italics click update and now you see my title is huge in this ridiculous color and and and easily able to be read you can essentially do this for all text on the dashboard or excuse me in the data visualizer app and of course when you save it it shows up on the dashboard as you see it here the next thing to show in the data visualizer app is the new scatter plots a really exciting new chart type here you see it's it's it's filled in our menu to give us a nice even 20 different visualization types so I'll click on chart I'm going to remove my ANC coverage so my vertical axis I'm going to add let's just keep with the trend here ANC one visits on my horizontal I'm going to put in ANC two visits and you notice that the layout of the layout menu has changed based upon the chart type that I've selected so dynamically rendered there and so what happened I did click update and we just see one point and that's just showing up for the country so my org units is just at country level let's drill down two facilities click update and now we see all of the facilities in Sierra Leone and we see that each each point here represents a individual facility and the values for ANC one and ANC two are intersecting based upon the horizontal and vertical axis there so this is this is fun you can do a lot of cool analysis with this one of the best ones to do is in the again in the options menu if I can go to outliers go to the outliers tab and I can apply outlier analysis and in our outlier analysis we have three different outlier methods now at this level we are going to try to see how we can use the different outlier methods that are offered to us in this area that is how we can take for example the standard score but we recommend you to use first the option that is offered to you so when I choose the first option you will see that there is a case that is offered to me and now this is a case that I can fill threshold factor that's kind of considered the normal threshold factor for detecting outliers for a particular methodology for example if I change it to modify z score it goes to three if I change it back to interquartile range it will go back to 1.5 and then we also have another option to apply extreme lines essentially extreme lines will put a line a dotted line over a certain percentage of the total national figures that'll make sense here just in a second once I turn it on all right so here we have outlier analysis so we see a bold black line running through the middle this is our median or our linear regression line and then we have on either side of that our threshold lines again using interquartile range and then everything that falls in between that is green everything that falls outside is showing up red and we also have our extreme lines going horizontally and vertically so again this is essentially this vertical horizontal extreme line is showing the one percent value of total a and c one visits in the country so anything that's beyond these extreme lines are considered extreme outliers meaning that they're throwing off more than one percent of the total national figures they're skewing national figures one cool thing that we also have with with scatter plots is you see everything here is kind of clustered together and that's normal you'd expect a lot of clustering for facilities of similar size and if I want to zoom in on these I can click and hold down and drag this blue box over that area let go and now it automatically zooms in and I can keep zooming in until I can see each individual facility to reset the zoom it's just top right corner zoom reset and now I'm back okay so that's not everything that was added to the data visualizer app just some highlights I've got to move on for the sake of time to the maps app so in the maps app a lot of new additions as well we've added bubble maps because of a request from the countries that are implementing DHS to for covid we have event data tables for your event maps or event layers we also are dealing now with no data handling we also have event status filters and very excited we have population maps provided through google earth engine based upon world pop population estimates so I'll just demo the bubble maps event tables and the population just for the sake of time so I'm going to go to the maps app I'm going to add a thematic layer I'm going to choose data element let's go down to our immunization okay and then I'm going to choose bcg doses given then I'm going to leave period or unit and filter untouched go over select to my style go over to bubble map click update and here you go so now you see a bubble map showing total bcg doses given per district here so nice easy way to demonstrate a lot of data quickly of course the size and color of the bubble is proportional to the value measured against the the legend here all right let's remove this layer now let's add an event layer I am going to go to my inpatient morbidity and mortality program I'm going to leave period untouched or units is going to be fine I'm going to go over to style and let's style by a data element none of this is actually new features these were demoed last year I'm going to now style by gender and here comes my map of all events recorded in the inpatient morbidity and mortality program come back over here and let's show our data table so you see our data table is now showing up below the map and let's and each one of these columns is filterable so let's say I just want to see those patients who had the discharge of died and maybe let's say those that are under five so now I see all the all the died here listed under five and you see that my map automatically updated based upon the filters that I was setting in the data table so just a really quick way to filter out a lot of data that's shown on a map and and really kind of zoom in or specify exactly what you're looking for or find which exactly what you're looking for okay the next thing I'm going to do is turn on some of these new population maps so we've been working very close with world pop who has very advanced population estimate estimating methodologies and pushes a lot of maps that are widely used by by you know folks all around the world and through the Google Earth engine we're now able to pull these into dhi's too so I am going to turn on the population age layer and essentially they they are able to provide population estimates for sex as well as age groups uh so let's say let's turn on all under fives so we're going to turn on men zero to one men one to four and let's go down women zero to one one to four we're going to leave our aggregation method to some and mean that it's fine for now you can change this there's additional options available um organizational units and period we'll keep the same style we'll keep that the same organizational units right now it's at the district let's add this so right what is doing right now is it's pulling data from the Google Earth engine so it's going to take probably somewhere between five to 15 seconds to load depending upon your country how much data it's going to be pulling so right now it's pulling all Sierra Leone here it comes and so what we actually see let's just close the data table what we see is a heat map of population we zoom in a little bit we start to become a little bit more granular or the resolution improves a bit um and if i click on this district for example you can see that my it's giving me some totals based upon the world pop estimates we have a mean under five population of 4.08 per hectare and a total under five population in that district of 87 526 so that's pretty cool usable actionable information hopefully um now what if you're doing some kind of facility-based outreach program vaccination campaigns one cool thing that we can also do with this is if we go to our at our facility layer and let's say we want to reach all children that are within a five kilometer radius of the health facility just for for example so i'm going to come over to style make sure my buffers turn done leave this to 5000 meters or five kilometers click update and again it's going to it's pulling a lot of the data from world pop right now so it's going to take just a few seconds still loading here it comes all right here are our facilities and if we zoom in we can see we have that five kilometer buffer we click on it then we can see for this facility has a mean population per hectare of 7.3 and a total under five population within its five kilometers of it of three thousand three hundred and three now i think that is all i have time to show for maps the only thing to point out is that we have a technical session on maps tomorrow as well as an expert lounge on maps so please do come with any maps questions if you want more detail on these functionalities i went through them very quickly i do show up for those sessions and we're we're happy to answer any and all questions that you have so with that i'll hand it over to austin and lars who will take us through the last presentation on platforms all right all right thanks very much scott a lot of exciting features there so we are running a bit late but we'll try to cover now the platform products in the last section here so it'll be myself and austin presenting here so in in 236 we came out with a few new apps the sms app was completely rewritten based on the new sort of reacts text stack that we have and the new app is quite a lot nicer we removed some of the quirks and sort of not working functionality that we had in the old one and replace it with a much better looking much more user-friendly app so just to give you a super quick glimpse into how that works if you go to leech s2 you can search for sms the previous app was called mobile this one is called sms and it's mainly dealing with or only dealing with sms related functionality so so here we can see we can add the gateway configurations for for sms gateways you can define different commands for instance we can define key value parsers and so on and here we have detailed information right reply message wrongmost message formats no user message and then we can add you know the keywords for the different data elements to submitted over sms and so on so so pretty much the same sort of functionality but much better looking much more user-friendly UI here we have the descent and the received sms over here okay we also included a new version of the import export application and again it's a same functionality except that we made it a lot more user-friendly looks better and we also exposed a lot of the options that we have in the api in the user interface so in this case the api actually had kind of outpaced the UI quite a bit there was a lot of you know options that we haven't exposed in the app that's not that is now exposed in the in the user interface so by having a look here we can see that we support we have an input section we have an export section there's there's data imports there's event imports gml metadata in fact in the instance and so on so on and you can see here that we have a lot more of the options that we support like the strategy for for how to import different types of data how to import you know different types of metadata how to handle errors import strategy merge modes and so on so on there's also advanced options down here so a lot of the options for you available now in the input export application okay then in the later versions we also spent a lot of efforts on improving you know sort of data quality support in dhs2 and that goes for data sort of validation rules it goes for outlier detections scott just showed you how you can use scatter plots with you know lines to identify outlier outliers in 236 we also had the ability to do set score based outlier detection so set score basically means the number of time deviations a value is from the mean right so and and this is a very sort of typical and popular method and statistics for finding outliers and datasets so the good thing with a new functionality that outliers is basically ordered by the absolute deviation from the mean so basically how far the the value is above or below the mean and they also basically ranked the values by the deviation from the mean and the good thing here is that we can actually then identify the values easily which impact the aggregate analytics the most previously the problem was that we only had you know all outliers returned without any significance or order and that made it very hard to kind of fix the problems that actually impact the the sort of aggregate analytics which is what we basically want to do at the end of the day so if we go to the data quality app we can now see that there's a there's a section called outlier detection so we can go here we can change we can select the dataset we can select the organizational unit or just keep it at the national level it's also quite a lot faster now so you can basically do larger datasets in one go we can select the start dates so we can just leave it there by default it's three months before the current date in terms of the algorithm we can either decide to use the set score based methods or we can use min max values min max values have been there for a long time this is basically a way to inject custom values into the database we can support we can select the threshold we can say max results and we can also as an advanced option we can also set the startup and date for the data period so this is essentially the start and date for the output report period and this can be the start and date for the underlying data to be analyzed and then importantly we can also then sort the results by absolute deviation from the mean or or set score so by running this it takes about three seconds on the demo database we basically get back a list which is now ordered according to the deviation from the mean so so as an example we can see here that's wait for agent or about middle line here we have a value of 1500 we can see that the mean is 147 so this is quite obviously an outlier and the deviation from the mean is then essentially 1300 something so so this is a way to quickly find the outliers that actually impact your data and then fix them and that way sort of clean up and make your aggregates analytics more reliable okay another thing we added in in 235 um we'll support for something called open-indie connect so some of you know what it is uh to those who don't open-indie connect is basically a standard that's based on OAuth 2 which is an open authorization protocol it's basically a standard for internet users to basically grant third-party applications access to their information without giving out your password so it's typically those cases where you say something like you know login with google or login with facebook that you probably all have seen so open-indie connect is an authentication or identity layer built on top of OAuth 2 and it basically provides more modern sort of programming experience with a RESTful JSON API and the use of something called json that tokens so the benefit of this functionality would basically be to allow for single sign-on across multiple systems so if you have a identity provider using let's say google or asher ad connect sorry asher active directory or facebook or whatever you can now have a single sign-on across all your systems in in your organization so that means that there's no need to go and sign in everywhere you can sign in one place and then automatically be signed in into DHSD and there's also no need to to maintain yet another dedicated password for DHS2 users you can just reuse what you already have to do this you need to map your existing users using the open ID field on the user so that one has to match the sort of identity of the record you have in your registry we do support many sort of providers out of the box some of them we have made special providers those include google microsoft asher ad and something called vso2 we also have a generic provider so it works with pretty much most popular providers out there and this is very carefully documented in the installation guide so have a look there if you'd like to enable this okay we also did a couple of improvements around users so you can now set user account expiration so in the user screen now if you go to user app the ad or edit user we can now set an expiration date for the user so that's very good for the cases where you'd like to employ some sort of security policy that says for instance you know users that haven't logged in or people you would like to basically create user accounts which expire at a specific date and this is great for for instance guest users if you have a guest user in your in your organization you can give the person basically a temporary account that expires at the given dates we also have a new job in the scheduler application for automatically disabling users which haven't logged in for a certain number of months so this is good to comply with you know security policies sometimes you would like to say that people haven't logged that haven't logged in for you know three or six or nine or four months they should automatically be disabled from the system and require kind of explicit enabling to get back in and this is good to avoid kind of dead user accounts and having user accounts that kind of retain the system for a very long time yeah I'm just going to mention a couple of sysadmin or administrator improvements in the system as well we have a new option now in the dshaskon configuration file for disabling the changelog or the audit log this can be quite helpful when you have a centralized system that acts as a central data warehouse essentially for multiple upstream systems so when you have lots of sort of let's say country or province systems reporting into a central instance you don't really want all these changelog to be building up because they just you know add a lot of spend a lot of disk size on your server for no reason really because the audit will still be there in the in the upstream systems so now there's an easy way to basically disable those we have another option for disabling server side parameters which can be quite helpful to debug you know stability issues performance issues and so on when it comes to the user apis we also realized that the user's endpoint was a little bit too open for many many people flaking and especially if you got a few security audits that they wanted us to make it more strictly so we now essentially have two endpoints for users one is the user lookup one which is open which requires no authentication but only provides very limited info like the name username and so on this is for applications that need access to this like the messaging app for instance and for the main users endpoint we now require a specific authority called few users to be able to see this one so this allows you to basically lock down sensitive data around users in your applications um you added data sharing for sql views meaning you can now distinguish between people who should be able to read or or change the sql view and people that should be able to view the underlying data for the sql view and finally the improved the performance of the integrity checks quite a lot previously was it was getting quite slow as we have seen very large instances with a lot of metadata it got slow to the point of almost being unusable we have redone the entire underlying solution now so it's using database sql queries to a much bigger extent which makes the thing a lot faster when it comes to translations we now have a lot of new entities and properties being translatable this particularly came through as part of the metadata packages work so now things like visualization access labels target lines subtitle title and so on can be translated tracked into instance event filters can be translated and also fields within validation rule like the instructions program description of report on the dentates program rule warnings and error messages and also app names can now be translated there was as well to provide a complete sort of internationalized experience to end users all right and with that i'll turn it over to to austin to talk a little bit about the platform improvements that we have i just let you guys know we have about two minutes left so hopefully this is quick thanks lars hi we'll try to make this very quick okay hi everyone my name is awesome e i'm going to be talking a little bit about some of the application platform improvements that we've seen in 235 and 236 the main one of those is called continuous application delivery and this was introduced in 235 and improved in 236 and it's been kind of a silent feature because we haven't seen much use of it yet but you'll be seeing more of this so we wanted to really make sure that it was well well introduced and basically what continuous application delivery means is that bundled applications in the dhs2 core can now be overridden by installed applications and this allows the core team to build and deploy applications on a more regular cadence and deploy those through the app hub to dhs2 instances that can upgrade those applications without necessarily needing to upgrade their server which is a much more complex and time consuming process and apps are now starting also support multiple dhs2 server versions so we'll be able to introduce features to those applications that can be used on 235 and 236 for instance not only 236 and in practice this means that implementations get new app features and fixes faster and and you'll see more and more of the core applications coming on to the app hub soon just a very very quick demo of that you can see here that I have installed in a 235 server a new version of the dashboard application which I can open up and at the same url where you would normally find your dashboard application I now have this version that has a different title and has implemented some features that were not in the version that's bundled in 235 so all the links and everything to this application continue to work I can also do additional overrides of other applications for instance I can override the app management app which is the one we're looking at here this will take a moment and I will show you that renewed interface which will be a completely new interface of that application in just a moment while that is loading I'm going to talk a little bit about the dhs2 app hub which has been completely redesigned this is a much nicer interface for searching viewing applications that developers across the world have uploaded and have been vetted by a review board at the ui ui o core team we are reviewing application submissions on a weekly basis we've published a set of guidelines that you can find at developers.dhs2.org and those get those guidelines implement some certain requirements for apps that are uploaded to this app hub so you can be have a little bit more confidence in in what the the quality of those applications are so those apps should all be useful and appropriate for dhs2 they should be generic and be open source so you can always see what source code is used to build those applications they should be well designed and documented and they should be secure and performant and so we have a session on this tomorrow at two o'clock central european time if you want to learn more I'm going to go now very quickly to show this application that I just installed so I just overrode the the app management app so I'm going to refresh this and you'll see that there's a completely new interface for the app management app that is going to be loaded here in this 235 instance uh this is a a version of the app management app that has a very nice interface for searching apps on the app hub for seeing the apps that are available with updates from the app hub including the core applications that are bundled with dhs2 and again this is a 235 server with an updated version of the app management app that it was not bundled with and it can be used to update other versions as well so you'll see more of this coming soon. The final slide that I have here is about improvements to the application platform which if you're not sure what that is it's a common framework that we're using for all core applications in dhs2 we're at about 70 percent of the core applications that are now have now adopted this platform in 236 and should reach 100 percent shortly. A number of new components have been added to the UI library in the last year and here's a few of them shown on the screen here we've also introduced the ability to detect the server version that you're talking to automatically so that you can have an application that that is able to work with multiple versions of dhs2 core. We have a standardized app alert service and we've also been developing our developer community with the introduction of a developer advocate in Deborah one of our one new team members who joined us in January and has been doing a great job leading trainings, academies, and meetups for developers. You can learn more about all of that at developers.dhs2.org as well as a session that will be running at three o'clock p.m. on Wednesday Central European Time. I think that's it for me. I will open it up for questions but I think we might be out of time so I think that's it for the session. Yeah I'd just like to say that if you have additional questions for the software team you're welcome to add those in my community practice thread. We do have quite a number that are been asked in chat and are posting those answers there as well for the record so that people can see the discussion and continue it from now on. And with that I think we need to move on to the next presentation since we're a few minutes over time so I'm going to pass it over to Elaine.