Automating Body Temperature Collection in the Battle Against COVID-19

Share on facebook
Share on twitter
Share on linkedin
Share on email
Share on whatsapp
Share on telegram
Share on pocket

Since the Ministry of Health raised the DORSCON level from yellow to orange on 7 February, 2020, many organisations in Singapore have put in motion their business continuity plans. The National University of Singapore (NUS) is no exception. One of the measures in place requires all staff and students to take their temperature twice daily (morning and afternoon) and declare them in an online system.

As an office hosted in NUS, AI Singapore (AISG) has also complied with this measure to ensure the safety and well-being of the university community.

The online system consists of a login page which brings the user to another page where she keys in her recorded temperature, choosing the AM or PM time slot as appropriate.

In addition to this mandated data capture, AISG also found it useful to maintain a department level sheet which shows at a glance all the temperatures recorded by its personnel. This sheet can be customised as needed to show additional information like temperature ranges.

In order to reduce the tedium of getting into the system as well as doing double data entry, our RPA (robotic process automation) team came up with a TagUI workflow that does just that.

Now, all the user needs to do is maintain a small text file containing her name and password for the tool to access the system. When run, the tool will prompt her to provide her temperature at the start and thereafter run on its own to feed the data into both the NUS system as well as the department sheet.

The video below shows the tool in action.

If you are interested in the workflow code, you can view it below.

ask Enter your temperature in celsius:
user_temp = ask_result

js begin
date = new Date()
datestring = String(date.getDate()) + '/' + String(date.getMonth()) + '/' + String(date.getYear())
if (date.getHours() > 11) {
    amOrPm = 'P'
} else {
    amOrPm = 'A'
offsetToRight = 2 * (date.getDate() - 10)
if (date.getHours() > 11) {
    pmOffset = 1
} else {
    pmOffset = 0
offsetToRight =  offsetToRight + pmOffset
js finish

if exist('UserName')
    type UserName as nusstf\\`username`
    type Password as `password`[enter]
select tempDeclOn as `datestring`
select declFrequency as `amOrPm`
type temperature as `user_temp`
click Save

keyboard [win]r
wait 2
keyboard chrome[enter]
wait 2
keyboard [win][up]
wait 0.2
keyboard [ctrl][l]
keyboard [ctrl][v][enter]
wait 15
keyboard [ctrl]f
wait 0.5
keyboard `name`[enter]
wait 0.5
keyboard [esc]
keyboard [ctrl][right]
keyboard [right]
keyboard `user_temp`[enter]
wait 3

TagUI can be used to automate tasks like this which are mundane, repetitive and performed on a large scale. Imagine saving 3 minutes daily per person for an organisation of 10,000. This translates to 10,000 man-hours a month!

TagUI is a Brick (pre-built solutions) from AI Makerspace, a platform offered by AISG to help SMEs and start-ups accelerate the adoption of AI in Singapore.


  • Basil is the technical community manager and editor at AI Singapore, committed to bringing Singapore's AI ecosystem to new levels by working with communities, teams and individuals. Dream big or go home!

Leave a Comment


Can Your Problems Be Solved by AI?

A Better Visualization of L1 and L2 Regularization