Difference between revisions of "Three developers walk into a bar(code)"

From mn/ifi/inf5750
Jump to: navigation, search
(Implementation details)
(//Documented Learning throughout the Project)
Line 79: Line 79:
  
 
== Screenshot and Screen flows ==
 
== Screenshot and Screen flows ==
== //Documented Learning throughout the Project ==
+
== Documented Learning throughout the Project ==
 +
We have learnt a lot throughout this project, both about the DHIS system as a whole, but also generally about development, open-source development and some frameworks.
 +
 
 +
=== The system ===
 +
...
 +
 
 +
=== Open-source development ===
 +
Bla bla, something about using others' work instead of doing something that has been done before again. I.E. barcode generation
 +
 
 +
=== Frameworks ===
 +
Front-end dev, angular ....
 +
 
 
== Link to Repository ==
 
== Link to Repository ==
  

Revision as of 16:15, 5 December 2015

Patient IDs and bar code input and output

Group Members

Navn e-mail
Espen Bay Fevolden espenbf@ifi.uio.no
Vegard Søyseth vegardds@ifi.uio.no
Kjetil Bugge Kristoffersen kjetilbk@ifi.uio.no

Summary of Requirements

Features

  • The app should both scan and interpret a patient's personal bar code, that is used for identifying patients.
  • It should be able to find a patient in the database based on its bar code.
  • If there is no patient entry found after the bar code search, the system should make a new patient entry.
  • The app should exist as a web app, and also an android app.

Architecture

The new architecture for our application is an edited version of the Tracker Capture-application to support the barcode scan.

  • HTML/JS/CSS/JQuery + AngularJS
  • QuaggaJS to scan barcodes with a connected camera.
  • JSBarcode - an open source library to generate bar codes.

Time Schedule

  • Milestone 1: 8th Novemeber
    • Document Features and Architechture on the Wiki
    • Show understanding of DHIS2 web applications
    • Set up GIT-repostitory
    • Delegate the tasks
  • Milestone 2: 22th Novemeber
    • First bare-bone version
    • Uploadable as DHIS2 web application
  • Milestone 3: 4th December
    • Project should be finished
  • Final Delivery: 11th December

Task Delegation

We have met weekly to program together and agree on what needs to be done.

We have then delegated smaller parts of the project every week.

Implementation details

Our barcodes use the 11-character UID - the Tracked Entity Instance's unique ID - for generating barcodes. This is because this is an ID that can identify a patient with 100% accuracy, and is also accessible in every Organization Unit and Program.

A new barcode search field has been made on the main page of the Tracker Capture application. This field can be merged with the original search field if desired without much hassle.

When the barcode is scanned and the barcode search field is filled with the 11-character UID, the system calls the web API to find the user.

If found, the system fills the list of found patients with the found patient.

If not found, the system informs the user that this barcode doesn't exist on this server, and if the user wants to register a new patient. If the user says no, they are taken to the page they were at before the search started.

If the user says yes, the user is taken to an edited registration screen, that registers a new patient the same way as the original registration, but with a specified UID identical to the barcode that was scanned.

In addition to the search-and-registering-functionality described above, there is also a barcode generation on the patient dashboard page, where you can press the "Print barcode label" button, and a print page opens with the generated barcode based on the UID.

Suggested changes to the Tracker Capture App / API

We have no suggested changes to the API - it works really well.

We did, however, find a bug with the Tracker Capture app that we thought we had introduced, but after testing it, it seems that it is in the original app as well:

Here are steps that reproduce the bug:

  1. Press the "Register"-button
  2. Fill out the form
  3. Press "Register and add new"
  4. Fill out the form to register another patient
  5. Press "Register and Continue"
  6. Press the "Back"-button
  7. Only the last patient registered is now in the system. The first patient is not present.

This means that if someone wants to register several patients in one go, the system makes the person go back to the main page and press "Register" every time to not lose data.

Screenshot and Screen flows

Documented Learning throughout the Project

We have learnt a lot throughout this project, both about the DHIS system as a whole, but also generally about development, open-source development and some frameworks.

The system

...

Open-source development

Bla bla, something about using others' work instead of doing something that has been done before again. I.E. barcode generation

Frameworks

Front-end dev, angular ....

Link to Repository

Our barcode repo is located on Bitbucket.

We have tried e-mailing our teaching assistant to get information to give him access, but have so far not had a response.

Download link to Sample Web/Android Application