BingBong

From mn/ifi/inf5750
Revision as of 18:22, 20 November 2016 by Augusthh@uio.no (talk | contribs) (Kanban board)

Jump to: navigation, search

Group members

  • August Haug Hem
  • Åvald Åslaugson Sommervoll
  • Mahasty Assi

Summary of requirements

A Cleaning and Deduplication of Events

The DHIS2 Tracker module allows people to collect individual level data. These come in two forms:

1) “Singelton” cases that are recorded only once without registration or follow-up (e.g. Outpatient data). DHIS2 calls this a single event.

2) Events linked to a person (the DHIS2 term is a Tracked Entity Instance - TEI) where you first look up a person (or register a new) who is enrolled in a health program and then follow the patient over a period, with each visit to the doctor recorded as an event, linked to the program (e.g. a TB patient). However, patients often go to different clinics for the same thing, and a lot of data is collected offline, without the possibility to check if the patient is already in the system. Therefore, there is a need to A) identify duplicate people and B) reconcile the data belonging to the same person.

The task is to make a webapp which helps administrators to easily identify clear and potential duplicates (e.g. slight misspellings) and mark them for reconciliation (which the app could also assist in). A combination of automated and manual filtering/navigation. You can initially assume the number of persons and events is small enough to be handled in the client. For more advanced functionality, it is also interesting to link to server side procedures.

Understanding

We are to clean the DHIS2 Tracker module. This will be done by finding possible duplicate entries of a patient, and presenting these findings to an admin, who can then choose to mark them for reconciliation or dismiss the finding. We see that we can also assist in the reconciliation.

This app will basically be a 2-in-1, with one functionality to find duplicate TEIs, and one functionality for finding duplicate single events. The Tracked Entity Instances have identificators like name, birth date, village and so on in order to be identified, so using those parameters we should be able to find duplicates for that instance type. Single events however, do not have these identificators, and are mainly used for statistics and follow-up on a more general basis for the database. These are noted down from paper and due to basic human errors a single event may be documented multiple times. Our job in this case is to find such single events and list them up. For both functionalities a list of results will be shown in order for the admin to mark them for reconciliation.

To present the results we have discussed and planned on setting up a single page front-end UI consisting of multiple react components, and depending on the complexity and reusability of the data at hand we might introduce a flux structure to the project as well.

Architecture

Programs we will use

- react

- flux (redux/alt.js)

- html, css, and javascript (ofc)

- React-Bootstrap

Planning

  • Time schedule Group session: Thursday 10-12 Work time: planned hours that fit all three participants
  • Tasks See Kanban table
  • Screenshots and screen flows TBA
  • Documented learning during project TBA
  • Suggested improvements to APIs etc TBA
  • Sample web app TBA

Kanban board

Tasks Difficulty

(1, 2, 3)

In progress Testing Finished Comments
UI design 3 M
Grid skeleton for app App is already responsive, grid structure does not need to be implemented manually.
Add basic navbar(tabs to split TEIS and

singletons)

2 A M

Å

M
Add content to TEI tab 3 M

A

M

A

M

A

Grid structure might need some changes, but its working!
Add content to Singleton tab 3 A

Å

Split TEI and Single events in app 1 A A A Became a sub result of adding the TabBar
OrgUnit dropdown 2 A

M

note: for all dropdowns add a search element so user won't have to scroll too much
Program dropdown 2 A

M

Time period select 1 A M A
Implement favourite button 2 M M M Still requires functionality though!
Implement functionality for the favourite button A

M

Favourites area M for users to add a combination to favourites so they don't have to select everything anew.
Functional "Find results" button 1 M

A

M

A

A
Implement functionality for finding duplicates 3 Å

A

Results area 2 A A A Results area has been implemented, but could use some updated frontend design for consistency
Update Wiki N/A A M Å N/A
Find API url(s) for trackedEntityInstances 3 A

Å

A

Å

Still missing urls for dealing with spesific set of time periods
Find API url(s) for updating trackedEntityInstances

(Needed to merge TEIs together)

3 A
Find and implement actions for finding data elements 2 A A A Two functions has been implemented, 1 for finding all and 1 for finding a spesific set of elements
Find and implement actions for finding singleton

events

2 A A A few functional functions has been added, but still need to figure out how to use filter in the url

to ONLY fetch singleton events (currently it finds all events, including events linked to TEIs)

Link to repository

https://github.com/lax1n/INF5750-Project