HeaderSIS.jpg

Difference between revisions of "Final wiki"

From IS480
Jump to navigation Jump to search
(Created page with "400px|center <!---------------START of header ----------------------> {| style="border-collapse: separate; border-spacing: 0; border-width: 3px; bor...")
 
 
(27 intermediate revisions by 2 users not shown)
Line 20: Line 20:
  
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">Project Progress Summary</font></div>==
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">Project Progress Summary</font></div>==
Download our mid-term presentation slides: [[Media:Codeblue_midtermsV7.pdf|midterm slides]]
+
Download our Final presentation slides: [[Media:codeblue_finals_v9.pdf|Final_codeblue slides]]
 
<br/><br/>
 
<br/><br/>
 
<b>Step 1:</b> Go to deployed site: [http://dynamicqueuemanagement-smusis.rhcloud.com/ dynamicqueuemanagement-smusis.rhcloud.com/]<br/>
 
<b>Step 1:</b> Go to deployed site: [http://dynamicqueuemanagement-smusis.rhcloud.com/ dynamicqueuemanagement-smusis.rhcloud.com/]<br/>
<b>Step 2:</b> Login to the site with your given credential.<br/>
+
<b>Step 2:</b> Login with your given credential.<br/>
<br/>
 
 
 
  
 
=== <span style="color:#000066;">Project Highlights</span> ===
 
=== <span style="color:#000066;">Project Highlights</span> ===
 
#Following are the summary of the new scope added during the course of project.
 
#Following are the summary of the new scope added during the course of project.
##Login function was implemented - the reason for implementing the login feature is to allow each user to have control over their setting and data. Previously, without this feature, users of them system ended up overriding previous settings.
+
##Login -Login feature is to allow user to have control over their setting and data. Previously without this feature, users of the system ended up overriding previous settings.
##User management(admin) - Management of the user includes the basic CRUD features(Create,read,update and delete). This feature is to allow our client to give access to users whom are interesting in the product.
+
##User management(admin) - This includes the basic CRUD features(Create,read,update and delete). This feature is to allow our client to give access to users whom are interested in the product.
##Treatment Configuration(admin) - This is allow the admin to key in the tests that will be populated in user's dropdown as well as to select the tests that he/she wants to appear as default in user's profile.This is to ensure users do not re-enter tests name and legitimate tests.
+
##Treatment Configuration(admin) - This is allow the admin to key in the tests that will be populated in user's dropdown as well as to select tests that he/she wants to appear as default in user's profile.This is to ensure users do not re-enter tests name and enters in legitimate tests.
##Datatable view of text file -  
+
##Datatable view of text file - Instead of uploading text file for data feeding,this new in-built excel type data table in our system allows users to copy paste data in.This feature would no longer require our client to share sensitive data file to users.Everything is in-built now !
 
+
##Run all strategies-comparison report -Previously,users could only run one strategy at a time with their parameters.That means they have to run 4 different simulations if they wanted to pick the best out of the 4 strategies. We wanted to enable users to run all the strategies at a single button and show them the results of it.Users can then pick the best strategy at a glance.
##Seeds configuration checkbox - Seeds played a big part in  simulation as it affects the reproducibility and fairness of simulation results. With the seeds currently being hardcoded, this new feature gives users to fix/unfix random seeds.  
+
##Favourites - During a dialogue session with our client,we realised our client typically uses a particular setting over a period of time to run simulations.In order to save her from entering in the parameters such us test types and data reapeatedly ,the favourites feature was created to help her save time.One click and all the previous data be populated accordingly.
 
+
##Seeds configuration checkbox - Seeds play a big part in  simulation as it affects the reproducibility and fairness of simulation results. With the seeds currently being hardcoded, this new feature gives users to fix/unfix random seeds.  
 
#Significant time spent in database changeover and in exploring visualisation libraries
 
#Significant time spent in database changeover and in exploring visualisation libraries
 
##Database was changed from MySQL to MongoDB - the reason for this changeover was we realised the bulk of the data we are storing are non-relational in nature, and therefore, it does make more sense in using a document-oriented database over a relational database. In addition, as the amount of data that will be stored are large, there is also the significance performance saving in terms of each write and read operations.  
 
##Database was changed from MySQL to MongoDB - the reason for this changeover was we realised the bulk of the data we are storing are non-relational in nature, and therefore, it does make more sense in using a document-oriented database over a relational database. In addition, as the amount of data that will be stored are large, there is also the significance performance saving in terms of each write and read operations.  
 
##Due to the steep learning of D3 data visualization library, team explores other alternatives such as Highchart, Chart.js, nvd3, Google Chart before finally settling on C3.js for data visualization.
 
##Due to the steep learning of D3 data visualization library, team explores other alternatives such as Highchart, Chart.js, nvd3, Google Chart before finally settling on C3.js for data visualization.
#Overhaul of Simulation interface
+
#User interface went 4 major overhauls
##Based on the user testing prior to acceptance, common feedbacks was the main interface showing the simulation animation was unable to display all information in a screen (without scrolling), therefore, effort was put in to re-structure the layout of the elements.
+
##After each user test and internal review,we get feedback and suggestions to improve the flow.Right from the start,our aim was to give the best UI possible to our client.From portal based UI to step by step approach UI during midterms,we have finally designed a aesthetically pleasing UI that relates with users intuitively.Users can jump tabs and run simulation at a click.
#Implementation of speed toggling for simulation with animation.
+
#Simulation modelling
#Behind schedule for reporting module
+
##The purpose of this animation is to allow non-technical users to visualise and see the bottleneck at a glance.User can playback to any timeframe and find out about patients status(happy,sad,satisfied),type of patients(entrant or retrants),their position and queue size at the hospital.
## only 2 out of the 4 charts was implemented. The other 2 charts was pushed back.
+
#Reporting tools
 +
##Each of the 4 charts presented here are the key performance indicators healthcare practitioners would look out for.We want our  charts to help them in their decision making and based on feedback from our users we have happy to have met that goal.
 +
#Real users
 +
##We were lucky to get healthcare practitioners as testers for our User test.One of the main takeaway was that the system is far from maturity.Hospitals would want a realistic setting instead of current randomness.However,they are willing and have shown interest to take on this project for further development.  
  
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">Project Management</font></div>==
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">Project Management</font></div>==
  
 
=== <span style="color:#000066; font-size:25px">Schedule</span> ===
 
=== <span style="color:#000066; font-size:25px">Schedule</span> ===
 +
 +
<p> Click on this link to view our full
 +
[https://docs.google.com/a/smu.edu.sg/spreadsheet/pub?key=0AisITGQ7LXVIdFlQNlhMLWlkV2tKWThwUVE4SEZpZnc&single=true&gid=2&output=html project schedule] . </p>
 +
 
<p> '''Planned Vs. Actual project plan.''' </p>
 
<p> '''Planned Vs. Actual project plan.''' </p>
[[File:planVactual-project.jpg|800px|center]]
+
[[File:Final_planVsActual.png|800px|center]]
[[File:Legend-project.png|500px|center]]
+
<p> The chart above show the overview of our project schedule, which we were slightly delayed in 3 different iterations marked by the red regions; namely iteration 5, iteration 7 and iteration 10. For every delay in our iterations, we will need to push our schedule slightly behind by a day or two, highlighted in the regions colored in purple. How we manage our schedule would be to use our breaks (colored in yellow) interchangeably with our buffer days. This means that the more buffer days we use the less number of days for breaks we will have. In total we have 13 buffer days, from the start of the school term to the last day of our project (poster day).  
<p> '''Project Iteration Overview.''' </p>
+
<br />
[[File:Project_Iteration_Overview.png|1100px|center]]
+
<br />Iteration 5:
<p> Below is a  screenshot of the detailed project schedule (our current iteration in progress). Click on the link to view our full
+
<br />During iteration 5, we saw a 1 day delay due to the change of our database from MySQL to MongoDB. There was a little difficulty with our integration with MongoDB as we are more accustomed to the syntax used in MySQL, which we use it more often when doing other projects.
[https://docs.google.com/a/smu.edu.sg/spreadsheet/pub?key=0AisITGQ7LXVIdFlQNlhMLWlkV2tKWThwUVE4SEZpZnc&single=true&gid=2&output=html project schedule] . </p>
+
<br />
[[File:Project-schedule-sample.jpg|1000px|center]]
+
<br />Iteration 7:
 +
<br />We had to stretch the iteration by 2 more days. One of the reason was because the industry users (in the hospital) had limited available dates to test our application. Another reason was due to a bug in our application, which appeared when we tried to implement other queue strategies in addition to the FIFO strategy we had for our simulation. To revive the crashed system, we took longer in the implementation / integration of the queue strategies than expected.
 +
<br />
 +
<br />Iteration 10:
 +
<br />Our schedule was delayed by 1 day, mainly because our user test had to stretch across a few dates so that we can gather different users (professors, student, hospital practitioners/ staff) to help us test the application. In addition, all the members were very busy in meeting deadlines for other modules due in week 13 and week 14 of the school term.
 +
</p>
 +
 
 +
<p> '''Project Iteration Overview '''- Summarised List of Completed Tasks </p>
 +
[[File:TaskList_Overview.png|1000px|center]]
  
 
=== <span style="color:#000066;"> <big>Metrics</big></span> ===
 
=== <span style="color:#000066;"> <big>Metrics</big></span> ===
 +
'''Schedule Metrics'''
 +
{|width="100%"
 +
|-
 +
| [[File:Schedule-metrics.jpg|550px|center]]
 +
| [[File:Final_schedule_metrics.png|520px|center]]
 +
|}
 +
<p>Refer to our schedule planned Vs. actual for the overview. The delays results in scores under 100, but were not major that would require functions to be dropped. Metric score for iteration 11 is a forecast value, as we are confident our project will end smoothly on poster day.</p>
 
<br/>
 
<br/>
[[File:Schedule-table.png|800px|center]]
+
'''Bug Metrics'''
<br/>
+
[[File:Bug-explain.png|580px|left]]
<br/>
+
{|width="100%"
[[File:Schedule-metrics.jpg|800px|center]]
+
|-
<br/>
+
| [[File:Final_bug_metrics.png|700px|center]]
<br/>
+
| [[File:Final_bug_score.png|380px|center]]
[[File:Bugs-metrics.png|800px|center]]
+
|}
<br/>
+
<p></p>
<br/>
+
<p>For the detailed log of our bugs recorded on Mantis Bug Tracker, you can access this [http://issues-smusis.rhcloud.com/mantisbt link] with the credentials provided: <br/>
[[File:Bug-explain.png|800px|center]]
+
<b>Username:</b> guest
<br/>
+
<b>Password:</b> guest$1
<br/>
+
</p>
[[File:Bug-breakdown.png|800px|center]]
 
<br/>
 
 
<br/>
 
<br/>
 +
'''RACI Matrix'''
 
[[File:Raci-metric.jpg|800px|center]]
 
[[File:Raci-metric.jpg|800px|center]]
 
<br/>
 
<br/>
<p>RACI metric - we use this metric so that every member in the team is in-charge-of at least one major module or task throughout the entire project. This helped to organise the way we keep one another updated with our progress and be more efficient during meetings. How it helps us to be more efficient is when, we  can work simultaneously in smaller groups on tasks categorised by the modules in the table.  </p>
+
<p> '''R'''esponsible. '''A'''ssist. '''C'''onsulted. '''I'''nformed.<br/>
 +
RACI Matrix - we use this metric so that every member in the team is in-charge-of at least one major module or task throughout the entire project. This helped to organise the way we keep one another updated with our progress and be more efficient during meetings. How it helps us to be more efficient is when, we  can work simultaneously in smaller groups on tasks categorised by the modules in the table.  </p>
  
 
<p><br>Refer to the first responsibility in the table: <br/>
 
<p><br>Refer to the first responsibility in the table: <br/>
 
For example, '''Basith''' as the Project Manager is responsible for organising meetings with supervisor, sponsor and industry users for application testing. '''Clarice''' will assist him in checking the internal deadlines for the project. And he will have to consult '''Chun Yang''', our lead developer, if our development progress is good before we present our work to the stakeholders. '''Syafi''', who is the business analyst needs to make make sure our application on production side is running well (90% bugs free). Not forgetting to always involve everyone in the team, '''Nigel''' and '''Faris''' will be kept in the loop, while they can still focus on their coding tasks.</p>
 
For example, '''Basith''' as the Project Manager is responsible for organising meetings with supervisor, sponsor and industry users for application testing. '''Clarice''' will assist him in checking the internal deadlines for the project. And he will have to consult '''Chun Yang''', our lead developer, if our development progress is good before we present our work to the stakeholders. '''Syafi''', who is the business analyst needs to make make sure our application on production side is running well (90% bugs free). Not forgetting to always involve everyone in the team, '''Nigel''' and '''Faris''' will be kept in the loop, while they can still focus on their coding tasks.</p>
 
=== <span style="color:#000066;">Change Management</span> ===
 
After User test,new functionalites and ideas were suggested to us by both student testers,professors and healthcare practitioners.The team used its change management process to validate each function and ranked them.We met our client (kar way) to validate our priority against hers and decided to include the following functions into our project scope.
 
 
[[Image:Change-management.jpg|800px|center]]
 
 
We had difficulties evaluating the two pending functions and consulted our supervisor for advice.He acknowledged the complexity involved and advised us to make a decision after getting a good understanding and more details of them.We will spend some time discussing the feasibility with relevant stakeholders after midterms and make a decision.As of the now,the pending functions are not included in our project plan.
 
  
 
=== <span style="color:#000066;">Risk Assessment & Mitigation</span> ===
 
=== <span style="color:#000066;">Risk Assessment & Mitigation</span> ===
  
 +
The following are the summary of our risk we faced during the course of project:
  
 
+
<b>1: </b>: Unable to acquire data for predictive modelling<br>
<b><center>Past Risk</center></b><br>
 
 
 
The team faced several challenges over the course from Acceptance to Midterms and was put to the test of managing both identified and unidentified risks.
 
 
 
<b>Identified risk 1</b>: Unable to acquire data for predictive modelling<br>
 
 
As expected due to strict PDPA controls over sensitive data,our client was not able to provide us with the huge chunks of data for analysis purposes.Because we already forecast this possibility,it enabled us to quickly drop the predictive model and move onto prescriptive models which we had brainstormed to cover our scope in the event of no data.
 
As expected due to strict PDPA controls over sensitive data,our client was not able to provide us with the huge chunks of data for analysis purposes.Because we already forecast this possibility,it enabled us to quickly drop the predictive model and move onto prescriptive models which we had brainstormed to cover our scope in the event of no data.
  
<b>Identified risk 2</b>: First hand experience on building simulator<br>
+
<b>2:</b>: First hand experience on building simulator<br>
 
The team faced problems debugging errors the simulator was producing.Uncle google was not able to provide us with much help ,hence the team relatively took more than planned time to.
 
The team faced problems debugging errors the simulator was producing.Uncle google was not able to provide us with much help ,hence the team relatively took more than planned time to.
  
<b>Identified risk 3</b>: No prior knowledge on MongoDB<br>
+
<b>3:</b>: No prior knowledge on MongoDB<br>
 
We allocated a team member to research on MondoDB before implementation period.While implementating this team member was able to share his expertise and mentored fellow team members.Despite this effort,this new unexplored database took us more than the planned time causing the iteration to delay.
 
We allocated a team member to research on MondoDB before implementation period.While implementating this team member was able to share his expertise and mentored fellow team members.Despite this effort,this new unexplored database took us more than the planned time causing the iteration to delay.
  
<b>Identified risk 4</b>:New semantic UI<br>
+
<b>4:</b>:New semantic UI(new framework)<br>
 
Initially the team was skeptical with Semantic  due to its low maturity,but the library was powerful enough to support us with the functions we needed.
 
Initially the team was skeptical with Semantic  due to its low maturity,but the library was powerful enough to support us with the functions we needed.
  
<b>Unidentified risk 5</b>:Tasks were not assigned based on competency and availability<br>
+
<b>5:</b>:Tasks were not assigned based on competency and availability<br>
 
Even though the team members were taking 4 modules in average,some members had other commitments such as Inter-University sports competition.This ate into their time and as a result hindered them from completing thier tasks on time.Also,team members were not able to cope with the complexity involved in their assigned task.To tackle this,a informal dialogue chat is held at the start of every meeting to update PM on their personnal schedule and preference.This helps the PM to allocate task more appropriately.
 
Even though the team members were taking 4 modules in average,some members had other commitments such as Inter-University sports competition.This ate into their time and as a result hindered them from completing thier tasks on time.Also,team members were not able to cope with the complexity involved in their assigned task.To tackle this,a informal dialogue chat is held at the start of every meeting to update PM on their personnal schedule and preference.This helps the PM to allocate task more appropriately.
  
<b><center>Future Risk</center></b><br>
+
<b>6:</b>:Increase in the number of inputs leading to scope creep<br>
 +
We have been getting alot of suggestions from healthcare practitioners and the team wants to use this suggestions to improve the projects.The team is overwhelmed with ideas and has the tendency to attempt implementation of such ideas since its coming from the industry.However,the team  discussed with the client and implemented those within capacity.
  
[[Image:Future_risk_cb.jpg|800px|center]]
+
<b>7:</b>:Tendency to implement subsets of complex functions<br>
 +
The team came out with ideas to implement subsets of a complex model due to time constraints.However,such a model might not meet user needs and the feature might not be worth the time.The team took time to discuss and the PM made sure such a simplified model meets users needs before development
  
(More explanation on future risks)<br>
+
<b>8:</b>:Underestimate effort required to playback function<br>
 +
The client needs a playback function that will enable to fast forward and backwards her simulation.Again this domain is unexplored and team might struggle with the complexity.To tackle this,we immediately started on this function after midterms.So even if it delays,we still would have time to complete it.
  
<b>Risk 1:</b>
+
<b>9:</b>:Increasing workload towards the end of the semester<br>
We have been getting alot of suggestions from healthcare practitioners and the team wants to use this suggestions to improve the projects.The team is overwhelmed with ideas and has the tendency to attempt implementation of such ideas since its coming from the industry.However,the team has to discuss with the client and implement those within its capacity.
+
Despite the huge commitment and time FYP takes,we students cannot afford to lose focus on other modules as a result.The peak weeks are from week 10 onwards and students generally get busy with other projects.In view of this,the PM identified each members deadlines and tailored tasks individually.For instance ,The PM pushed faris to complete all his tasks by week 11 since he had 3 deadlines on week 12.<br>
 
 
<b>Risk 2:</b>
 
The team came out with ideas to implement subsets of a complex model due to time constraints.However,such a model might not meet user needs and the feature might not be worthwhile the effort.
 
 
 
<b>Risk 3:</b>
 
The client needs a playback function that will enable to fast forward and backwards her simulation.Again this domain is unexplored and team might struggle with the complexity.
 
  
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">User Test</font></div>==
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">User Test</font></div>==
  
User 2 documents at [[https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2014T1_Code_Blue_doc Main wiki]]<br><br>
+
[[Media:cb_study.docx| Click here for UT 3 Study Tasks Template]]
<b>Goals of User testing 2:</b><br>
+
[[Media:cb_userQ.docx| Click here for UT 3 User Questionnaire]]
1) Functionality test to validate systems parameters<br>
+
[[Media:cb_results.xlsx| Click here for UT 3 compiled results]]
2) Usability test to get feedback on the flow of events and intuitiveness.<br>
 
3) Feedback/comments on the practicability of the system<br>
 
  
 +
<b>Goals of User testing 3:</b><br>
 +
<b>1)</b> Professors and Healthcare Industry Personnel: To evaluate the current state of the system (simulation model, reporting tool, and playback features). Gather feedback on how to further develop the application to make it an application that is mature enough for practical adoption by local hospitals as part of a project in the future. <br><br>
 +
<b>2)</b> Students: To test vigorously on the usability of the application based on “Nielsen’s 10 Heuristics” so as to improve the user experience of the application.
 +
<br>
  
 
<b>Some of our participants:</b>
 
<b>Some of our participants:</b>
 
{|
 
{|
|[[Image:User1_ut2_cb.jpg|thumb|500px| <b>Student Testers</b>!]]
+
|[[Image:cb_student.jpg|thumb|500px| <b>Student Testers</b>!]]
|[[Image:User2_ut2_cb.jpg|thumb|500px| <b>Student Testers</b>!]]
+
|[[Image:cb_karway.jpg|thumb|500px| <b>Our Client-Prof Kar way </b>!]]
  
 
|}
 
|}
  
 
{|
 
{|
|[[Image:User3_ut2_cb.jpg|thumb|500px|<b>Prof Wee leong</b>!]]
+
|[[Image:cb_WeeLeong.jpg|thumb|500px|<b>Prof Wee leong</b>!]]
|[[Image:User4_ut2_cb.jpg|thumb|900px| <b>Not able to disclose identity of our industry practitioners</b>!]]
+
|[[Image:cb_Venky.jpg|thumb|500px| <b>Prof Venky</b>!]]
 
|}
 
|}
  
<b>User test 2 was conducted mainly between 3 groups of users.This were the main results from the test.</b>
+
<b>User test 3 was conducted mainly between 3 groups of users.This were the main results from the test.</b>
  
 
{| border="1"
 
{| border="1"
Line 158: Line 166:
  
 
|| Students
 
|| Students
|| Consists of smu students from SIS and business
+
|| Consists of 10 SIS students who have or is currently taking IDP
|| Students were tasked to complete a simple task and were asked stress test the system.(in other words crash the system)
+
|| Students were given study tasks to do and they are asked to evaluate mainly on the usability of the system based on “Nielsen’s 10 Heuristics”
|| 1. System error on input of special characters<br>2. System not able to react to decimal inputs<br>3. Back button was not functioning<br>4. Error output not obvious<br>5. Empty rows are not validated<br>6. Unlimited length of input for fields
+
|| 1.Student’s find it hard to understand the tasks. Context and explanation has to be given. However, base on our observations, the student testers is able to complete the tasks rather easily. <br>2.Gave several constructive feedback on the usability and also, recommended changes to improve the UI. Team has incorporated it to the list of changes to be implemented. <br>
  
 
|-
 
|-
  
|| Domain Experts
+
|| Healthcare Industry Personnel
|| Consists of healthcare practitioners whom have prior knowledge.
+
||Consists of healthcare practitioners from SGH and another local hospital
|| Testers were asked if the system is capable of assisting them in decision making in the future.
+
|| Testers were asked to evaluate the current state of the application and how the application needs to be further developed to be mature enough for practical adoption
|| 1. The idea of editing data in text file is a minus<br>2. Simulation is slow and there is a need for playback control.<br>3. KPI weighted score to reflect simulation performance<br>
+
|| 1.Excellent feeback on the interface and usability of the application. They like the clean layout of the various parts of the application (simulation parameters, results page etc)<br>2.However, more can be done to validate the model. Suggest doing multi-site/hospital studies to validate the model. Willing to collaborate with future teams on this project to provide relevant data from SGH on this aspect<br>3.Members of the local hospotal suggested showing results on “Door to doctor” and having “95th percentile and 50th Percentile” as these are additional things that the hospitals normally track. Overall, He is able to visualize how this application will be able to help their “Specialist Outpatient Clinic” operations<br>
 
|-
 
|-
  
 
|| Non-Domain Experts
 
|| Non-Domain Experts
||Consists of professors whom have no prior knowledge.
+
||Professor Lee Wee Leong, Professor Venky and Professor Lian Chee.  
|| Generic feedback on system's usability
+
|| Generic feedback on system's usability and model of which the simulation is built upon.
|| 1. visualization tools to drill down to the profile of patients.Ex.80% of  patients whom did not meet target were more than 80 years old<br>2. Can the system simulate my current resources and prescribe me a better solution?<br>3. Re-entrant emoticons are misleading.
+
|| 1.Minor usability comments to improve the UI. Team has already incorporated it to the list of changes to be implemented. <br>2.Questions the model of simulation, especially on distribution of patients and the treatments that they are ordered to undergo. Suggest using past data to provide a more accurate model here. <br>3.Recommends an export function for the simulation results to allow further analysis on MS excel.  
 
 
 
|-
 
|-
  
 
|}
 
|}
 
[[Media:UserTest2_results_cb.xlsx| Click here for detailed user results]]
 
 
<br><br>
 
<br><br>
<b>Follow up actions</b>
+
<b>List of changes to be implemented after User Test 3</b>
  
 
{| border="1"
 
{| border="1"
 
|- style="background:blue; color:white"  
 
|- style="background:blue; color:white"  
||Name?''
 
|align="center"|Changes
 
|align="center"|Prototype
 
 
|-
 
 
|| Table view form
 
|| User will get to upload text file and will be able to get data table view to edit figures.This enables them the change the no of doctors allocated on a day to day basis.
 
|| [[Image:Change3_cb.jpg|500px|center]]
 
  
|-
 
|| Change in flow
 
|| To relocate the animation mode buttons for intuitive navigation.Users were unsure if the 'no animation' would really mean no animation.In actual fact,they can backtrack and view animation if they want to.
 
|| [[Image:Change5_cb.jpg|500px|center]]
 
|-
 
  
|| Change of Re-entrant icons
+
|align="center"|category
|| The current re-entrant emoticons are misleading and giving users a wrong impression..The changed emoticons will allow users to intuitively relate to it.
+
|align="center"|changes
||[[Image:Change1_cb.jpg|500px|center]]
 
 
|-
 
|-
 +
|| Minor UI changes to be implemented:
 +
|| 1.Changing the “Arrival rates” from the tabs to “Patients Arrival Rates”. In addition, the “Arrval Rate” header in the data table to be “Arrival rate(average)” <br><br>[[Image:Cb 1.png|500px|center]]<br>2.‘Next button’ to navigate around the simulation parameter tabs. <br><br>3.Take away the “Day” column in the data table as it is redundant, since there are day tabs below.<br><br>[[Image:Cb 2.png|500px|center]]<br> <br>4.Minimizing the size of the graphs<br><br>[[Image:Cb 3.png|500px|center]]<br> <br> 5.Axes labels from numbers to day names<br><br>[[Image:Cb 4.png|500px|center]]<br>
  
|| Display of real time simulation information
 
|| Several counters will be added onto the simulation screen to monitor the movements of patients.This counters will help users track the no. of exits and their statues.
 
|| [[Image:Change2_cb.jpg|500px|center]]
 
|-
 
|| New performance indicator
 
|| To include a KPIs weighted score for each simulation run to enable users to easily gauge the strategy's performance.While this may not be good indicator,users would like them to give a rough idea.
 
|| [[Image:Change4_cb.jpg|500px|center]]
 
 
|-
 
|-
  
 +
|| Other changes:
 +
|| 1.Export the result from simulation to a csv format file for further analysis by users of application<br>2.Displaying a ‘Door-to-Doctor’ graph in results page. <br>3.Change the Length-Of-Stay(LOS) chart to a line chart and the Resource Utilization chart to a bar chart in the results page. <br>
 +
4.Change the option of toogling percentiles to 95th and 50th percentile.<br>5.Display the different charts together to allow the users to compare the various strategies and their effects.
 
|-
 
|-
 
+
|}<br>
 
+
<b>Takeaway from the User Test 3 :</b><br>
|}
+
<b>1)</b> The current state of the user interface and layout of the results page is in good condition base on the comments from student testers, professors and industry personnel. <br><br>
 
+
<b>2)</b> Due to the lack of historical and existing patient data from hospitals to implement a more accurate framework of assigning the treatments to the various patients and also, to validate the whole model, it is important to acknowledge that this application will continue to be a work-in-progress towards practical adoption. <br><br>
 +
<b>3)</b> Going forward, SGH has expressed interest in collaborating with future groups on improving the model by providing them with the necessary data. The application and the model can then be further developed upon and refined to be mature enough to be used by the local hospitals.
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">Technical Complexities</font></div>==
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">Technical Complexities</font></div>==
  
=== <span style="color:#000066;">Java to JavaScript</span> ===
+
=== <span style="color:#000066;">Understanding Simulation Model</span> ===
  
One of the requirements for this project is to have a real-time animation visualization of the simulation run, similar to what most commercial simulation software is capable of providing. As the team has decided our project output is going to be a web-based simulator, we decided to leverage the capabilities of SVG for the development of the real-time animation visualization.<br><br>
+
This is undoubtable one of the most complex challenges the team has faced when working on the project. All members are novice in the world of simulation and have absolutely no experiences. Therefore, much effort was required to be spent on understanding the following questions:<br>
Therefore, it is impractical for the team to continue with the inherited simulation model written in Java, as rendering of the animation visualization would require constant communication with the server. With that, the team decided to re-write the entire simulation model using JavaScript, which would run on the client’s browser.<br><br>
+
<ul>a.How does simulation work?</ul>
This further adds on to the challenges that the team has as not only do we have to understand how does the simulation model was programmed with the current codebase architecture currently, we need to implement it using Javascript. It was a difficult task as most of us are not well-versed with the scripting languages, and our only experience with it was utilizing it for client-side validation. In order to develop a simulation model with it, the team needs to understand how prototypal pattern works, how can we emulate “class” like what we have in Java, even though it is a classless language.<br><br>
+
<ul>b.What is the difference between Discrete Event Simulation and other types of simulation?</ul>
In addition, similar to writing codes in Java, there is also the issue of how do we structure our javascript code to have it maintainable. As all javascript code is included on the same page, we also have to be careful of not polluting the global namespace, which may cause naming conflict and cause code to break. The usage of module pattern (component-based development) is also a first-hand experience for many of us.<br><br>
+
<ul>c.How do we model one programmatically?</ul>
Lastly, as JavaScript is slow in nature, we also need to explore ways where we could optimize our javascript code to have it performance-friendly. In doing so also requires the team to have an understanding of how javascript variable scoping and lookup works.
+
<ul>d.How does one calculate the randomness factor using various kind of statistical probability distribution using historical data?</ul>
  
=== <span style="color:#000066;">Synchronize patient’s current X and Y position between events’ tween</span> ===
+
=== <span style="color:#000066;">Usage of Design Patterns</span> ===
Animation of the patient follows the following steps:<br>
+
Design pattern was used in this project to achieve maintainability, flexibility and scalability of our code architecture. On the server-side, DAO design pattern such as the Abstract Factory pattern was used to achieve easy migration of data source in the future, if there is a need to.<br>
  
When an event is triggered, get the tween to move the patient to a particular destination. For e.g. A StartConsult event will animate the patient to a particular doctor’s room.<br>
+
On the client-side, a variation of the popular JavaScript module pattern, in which we used the Revealing Module Pattern, is applied to enable modularization of code and to avoid conflicts in javascript files. This is especially important since we are developing a large scale javascript application, and are also using a number of 3rd party libraries. Usage of the pattern could also enable us to have an easier time maintaining and debugging our JavaScript code.<br>
  
<ul>a.Get the patient current X and Y position.</ul>
+
=== <span style="color:#000066;">Hacking 3rd party framework and libraries</span> ===
<ul>b.Calculate the dX and dY using destination’s coordinates and patient’s current X, Y.</ul>
+
In the project, our team makes use of a new UI framework, Semantic-UI. As Semantic-UI is currently still at beta version, there are times where we need to make some custom hack at the libraries to achieve what we wanted. Some of the libraries we are using are also not properly documented due to being new, as such; we have to look at the uncompressed javascript file to explore the API that the libraries offered.<br>
<ul>c.Construct the tween using the dX and dY calculated.</ul>
 
<ul>d.Add the tween into the patient timeline for execution.</ul>
 
The issues arose when intervals between 2 events are too close; the reason for it is because the simulation clock is always running faster than the animation clock
 
  
 
+
=== <span style="color:#000066;">Calculation of coordinates for animation</span> ===
{| border="1"
+
Due to the way SVG animation works, co-ordinates for the final position are not stored for the object being animated, rather they stored the transform_x and transform_y of the object, which is how many pixel have the object being moved X and moved Y. Therefore, calculations have to be made to find out where the object is on the screen at the point before it is being animated. Positions for the objects are also dynamic, which means object should try not to overlap with each other.<br>
|- style="background:blue; color:white"  
 
||Simulation Time''
 
|align="center"|Event Triggered
 
|align="center"|Function Call
 
|align="center"|what does it does?
 
|-
 
 
 
||20
 
||StartConsult
 
||Get tween method is called
 
||Animation clock start, takes 3 seconds to complete. Gradually change patient X and Y to destination coordinates.
 
 
 
|-
 
 
 
||30
 
||EndConsult
 
||Get tween method is called
 
||Get wrong current X and Y coordinates as previous tween is still altering the coordinates.
 
|-
 
|}
 
<br>
 
The solution here is to construct a tween object with no dX and dY value, and making use of an undocumented attributes and callback in the GreenSock library, we calculate and update the current X and Y before the tween is executed.
 
  
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">Learning Outcome</font></div>==
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">Learning Outcome</font></div>==
  
<b>Chun Yang</b> - It was under my impression in the past that javascript was only capable of doing client-side validation, like what it was used for during our software engineering module. But after this project experience, it has allowed me to see endless possibilities of what I could do with javascript. <br/>
+
<b>Chun Yang</b> - This project gave me the platform to push myself.I had the opportunities to try out new technologies to build onto the development capabilities that I was already possessed with. The nature of this project was different from what we were taught and that gave me a tough yet worthwhile experience <br/>
<br/><b>Faris</b> - I always believe there are always alternative solutions to a problem. As long as we do not stop exploring, we will find out there are vast resources and information that could help one in their problem. When we talk about data visualization, one of the most commonly tools that is associated to it will be D3.js.  One of the problems that i faced with D3.js was the steep learning curve. It seems that i would require three times the time assigned to me just to pick this up. However, after spending some time researching and consulting, there are other data visualization tools that are much simplified. After trying out and testing some tools, we find something that fits our competency. That's how we ended up with C3.js.
+
<br/><b>Faris</b> - This is480 journey is definitely a memorable one. Personally, I've learned a lot of interesting things in both technical and non-technical aspects. For the technical side, one of the takeaways is about data visualization principles where we learnt how to present data in the most effective way. As for the non-technical side, I've gained alot of experience on client and supervisor management - on how we present our progress as well as gathering of feedback and requirements. Also, through this project, I was given the opportunity to explore new skills such as designing a poster and also developing a video pitch. We've finally come to the end of the project and though it is not near maturity, what's important is that we know we've put in our best to make it a success.
 
<br/>
 
<br/>
 
<br/><b>Nigel</b> - Uncertainties are the only constant in this project. Be it in the development or project management phase, we all have to deal with it. I believe that i am coping much better with uncertainties compared to day one of this project. i think we have managed to mitigate some of these uncertainties by being extremely critical and reviewing our project frequently from the perspectives of our clients and other stakeholders.<br/>
 
<br/><b>Nigel</b> - Uncertainties are the only constant in this project. Be it in the development or project management phase, we all have to deal with it. I believe that i am coping much better with uncertainties compared to day one of this project. i think we have managed to mitigate some of these uncertainties by being extremely critical and reviewing our project frequently from the perspectives of our clients and other stakeholders.<br/>
<br/><b>Clarice</b> - I hope that with our application, our sponsor’s research thesis would be easier for hospitals to understand, and eventually it can be fully developed and used by practitioners <br/>
+
<br/><b>Clarice</b> - As a group, we have learnt to adapt well meeting requirements from the sponsor and initial changes to improve the application, which helped to create the application we have today. <br/>
<br/><b>Syafi</b> - I’m amazed at how a project can grow and develop in ways which we never really anticipated as a team. So many angles to consider in terms of the project’s business capabilities! I look forward to finding ways to improve our application better so that it will be of relevance to both our clients as well as future users .
+
<br/><b>Syafi</b> - I’m amazed at how a project has grown in ways which we never really anticipated as a team. So many angles have been considered in terms of the project’s business capabilities!
 
<br/>
 
<br/>
<br/><b>Basith</b> - It’s heartwarming to see how the how the project has progressed over the past 7 weeks.Our aim was actually to build a visualization tool but it’s now crossed over to abit of decision support tool. We hope to push on and exceed our client’s expectation.<br/>
+
<br/><b>Basith</b> - Apart from keeping your supervisor and client happy,one has to make sure the team is happy ,driven and motivated as well. Practice flexibility,give them the space and breaks and most importantly read between the lines.After all,like machines humans can break down too!!So Project management is not just about having great plans, proper metrics and meeting deadlines. <br/>
  
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">X-FACTOR</font></div>==
 
==<div style="background: #000066; padding: 12px; font-weight: bold; font-size: 100%; line-height: 0.5em;"><font face="Arial" color="white">X-FACTOR</font></div>==
[[File:Our-X-factor.png|800px|center]]
+
[[File:X-factor1.png|500px|center]]
 +
[[File:X-factor_2.png|500px|center]]
 +
<p>Our group has successfully developed an simulation and reporting tool tailored to the needs of local hospitals.
 +
<br />
 +
<br /> '''When Less is More'''
 +
<br />Currently, most established simulation software (examples provided above) are able to provide users with ample features even in their most basic package. However, most of the features are not utilised by the hospitals as they do not require them. To quote the head of healthcare analytic department at a local hospital, he praised us for building an application which is easier to use with features specifically cater to the needs of the hospitals. With only the essential features, users will not be overwhelmed by the links, buttons and ribbons, but they would be able to navigate and run their simulations easily.
 +
<br />
 +
<br /> '''Potential of our Application'''
 +
<br />Though our application still has rooms for improvement, we managed to lower the learning curve of using a simulation tool. This would be especially useful for doctors and healthcare practitioners whom are not trained or apt at using such tools. Hence, there is a lot of potential for our application to be adopted by the local hospitals.
 +
<br/>
 +
<br />Lastly, our application is unique as it is equipped with different queuing strategies (FIFO, SCON, SREM, MIXED) that can be used to simulate patients' activities at the ambulatory care, where their queue priorities are dynamically managed based on the algorithms. And special credits goes to or sponsor (Prof. Tan Kar Way), for the algorithms are based on her research paper.
 +
</p>

Latest revision as of 09:15, 27 November 2014

Code Blue 1.jpg
Home The Team Project Overview Project Management Project Documentation Project Resources

Project Progress Summary

Download our Final presentation slides: Final_codeblue slides

Step 1: Go to deployed site: dynamicqueuemanagement-smusis.rhcloud.com/
Step 2: Login with your given credential.

Project Highlights

  1. Following are the summary of the new scope added during the course of project.
    1. Login -Login feature is to allow user to have control over their setting and data. Previously without this feature, users of the system ended up overriding previous settings.
    2. User management(admin) - This includes the basic CRUD features(Create,read,update and delete). This feature is to allow our client to give access to users whom are interested in the product.
    3. Treatment Configuration(admin) - This is allow the admin to key in the tests that will be populated in user's dropdown as well as to select tests that he/she wants to appear as default in user's profile.This is to ensure users do not re-enter tests name and enters in legitimate tests.
    4. Datatable view of text file - Instead of uploading text file for data feeding,this new in-built excel type data table in our system allows users to copy paste data in.This feature would no longer require our client to share sensitive data file to users.Everything is in-built now !
    5. Run all strategies-comparison report -Previously,users could only run one strategy at a time with their parameters.That means they have to run 4 different simulations if they wanted to pick the best out of the 4 strategies. We wanted to enable users to run all the strategies at a single button and show them the results of it.Users can then pick the best strategy at a glance.
    6. Favourites - During a dialogue session with our client,we realised our client typically uses a particular setting over a period of time to run simulations.In order to save her from entering in the parameters such us test types and data reapeatedly ,the favourites feature was created to help her save time.One click and all the previous data be populated accordingly.
    7. Seeds configuration checkbox - Seeds play a big part in simulation as it affects the reproducibility and fairness of simulation results. With the seeds currently being hardcoded, this new feature gives users to fix/unfix random seeds.
  2. Significant time spent in database changeover and in exploring visualisation libraries
    1. Database was changed from MySQL to MongoDB - the reason for this changeover was we realised the bulk of the data we are storing are non-relational in nature, and therefore, it does make more sense in using a document-oriented database over a relational database. In addition, as the amount of data that will be stored are large, there is also the significance performance saving in terms of each write and read operations.
    2. Due to the steep learning of D3 data visualization library, team explores other alternatives such as Highchart, Chart.js, nvd3, Google Chart before finally settling on C3.js for data visualization.
  3. User interface went 4 major overhauls
    1. After each user test and internal review,we get feedback and suggestions to improve the flow.Right from the start,our aim was to give the best UI possible to our client.From portal based UI to step by step approach UI during midterms,we have finally designed a aesthetically pleasing UI that relates with users intuitively.Users can jump tabs and run simulation at a click.
  4. Simulation modelling
    1. The purpose of this animation is to allow non-technical users to visualise and see the bottleneck at a glance.User can playback to any timeframe and find out about patients status(happy,sad,satisfied),type of patients(entrant or retrants),their position and queue size at the hospital.
  5. Reporting tools
    1. Each of the 4 charts presented here are the key performance indicators healthcare practitioners would look out for.We want our charts to help them in their decision making and based on feedback from our users we have happy to have met that goal.
  6. Real users
    1. We were lucky to get healthcare practitioners as testers for our User test.One of the main takeaway was that the system is far from maturity.Hospitals would want a realistic setting instead of current randomness.However,they are willing and have shown interest to take on this project for further development.

Project Management

Schedule

Click on this link to view our full project schedule .

Planned Vs. Actual project plan.

Final planVsActual.png

The chart above show the overview of our project schedule, which we were slightly delayed in 3 different iterations marked by the red regions; namely iteration 5, iteration 7 and iteration 10. For every delay in our iterations, we will need to push our schedule slightly behind by a day or two, highlighted in the regions colored in purple. How we manage our schedule would be to use our breaks (colored in yellow) interchangeably with our buffer days. This means that the more buffer days we use the less number of days for breaks we will have. In total we have 13 buffer days, from the start of the school term to the last day of our project (poster day).

Iteration 5:
During iteration 5, we saw a 1 day delay due to the change of our database from MySQL to MongoDB. There was a little difficulty with our integration with MongoDB as we are more accustomed to the syntax used in MySQL, which we use it more often when doing other projects.

Iteration 7:
We had to stretch the iteration by 2 more days. One of the reason was because the industry users (in the hospital) had limited available dates to test our application. Another reason was due to a bug in our application, which appeared when we tried to implement other queue strategies in addition to the FIFO strategy we had for our simulation. To revive the crashed system, we took longer in the implementation / integration of the queue strategies than expected.

Iteration 10:
Our schedule was delayed by 1 day, mainly because our user test had to stretch across a few dates so that we can gather different users (professors, student, hospital practitioners/ staff) to help us test the application. In addition, all the members were very busy in meeting deadlines for other modules due in week 13 and week 14 of the school term.

Project Iteration Overview - Summarised List of Completed Tasks

TaskList Overview.png

Metrics

Schedule Metrics

Schedule-metrics.jpg
Final schedule metrics.png

Refer to our schedule planned Vs. actual for the overview. The delays results in scores under 100, but were not major that would require functions to be dropped. Metric score for iteration 11 is a forecast value, as we are confident our project will end smoothly on poster day.


Bug Metrics

Bug-explain.png
Final bug metrics.png
Final bug score.png

For the detailed log of our bugs recorded on Mantis Bug Tracker, you can access this link with the credentials provided:
Username: guest Password: guest$1


RACI Matrix

Raci-metric.jpg


Responsible. Assist. Consulted. Informed.
RACI Matrix - we use this metric so that every member in the team is in-charge-of at least one major module or task throughout the entire project. This helped to organise the way we keep one another updated with our progress and be more efficient during meetings. How it helps us to be more efficient is when, we can work simultaneously in smaller groups on tasks categorised by the modules in the table.


Refer to the first responsibility in the table:
For example, Basith as the Project Manager is responsible for organising meetings with supervisor, sponsor and industry users for application testing. Clarice will assist him in checking the internal deadlines for the project. And he will have to consult Chun Yang, our lead developer, if our development progress is good before we present our work to the stakeholders. Syafi, who is the business analyst needs to make make sure our application on production side is running well (90% bugs free). Not forgetting to always involve everyone in the team, Nigel and Faris will be kept in the loop, while they can still focus on their coding tasks.

Risk Assessment & Mitigation

The following are the summary of our risk we faced during the course of project:

1: : Unable to acquire data for predictive modelling
As expected due to strict PDPA controls over sensitive data,our client was not able to provide us with the huge chunks of data for analysis purposes.Because we already forecast this possibility,it enabled us to quickly drop the predictive model and move onto prescriptive models which we had brainstormed to cover our scope in the event of no data.

2:: First hand experience on building simulator
The team faced problems debugging errors the simulator was producing.Uncle google was not able to provide us with much help ,hence the team relatively took more than planned time to.

3:: No prior knowledge on MongoDB
We allocated a team member to research on MondoDB before implementation period.While implementating this team member was able to share his expertise and mentored fellow team members.Despite this effort,this new unexplored database took us more than the planned time causing the iteration to delay.

4::New semantic UI(new framework)
Initially the team was skeptical with Semantic due to its low maturity,but the library was powerful enough to support us with the functions we needed.

5::Tasks were not assigned based on competency and availability
Even though the team members were taking 4 modules in average,some members had other commitments such as Inter-University sports competition.This ate into their time and as a result hindered them from completing thier tasks on time.Also,team members were not able to cope with the complexity involved in their assigned task.To tackle this,a informal dialogue chat is held at the start of every meeting to update PM on their personnal schedule and preference.This helps the PM to allocate task more appropriately.

6::Increase in the number of inputs leading to scope creep
We have been getting alot of suggestions from healthcare practitioners and the team wants to use this suggestions to improve the projects.The team is overwhelmed with ideas and has the tendency to attempt implementation of such ideas since its coming from the industry.However,the team discussed with the client and implemented those within capacity.

7::Tendency to implement subsets of complex functions
The team came out with ideas to implement subsets of a complex model due to time constraints.However,such a model might not meet user needs and the feature might not be worth the time.The team took time to discuss and the PM made sure such a simplified model meets users needs before development

8::Underestimate effort required to playback function
The client needs a playback function that will enable to fast forward and backwards her simulation.Again this domain is unexplored and team might struggle with the complexity.To tackle this,we immediately started on this function after midterms.So even if it delays,we still would have time to complete it.

9::Increasing workload towards the end of the semester
Despite the huge commitment and time FYP takes,we students cannot afford to lose focus on other modules as a result.The peak weeks are from week 10 onwards and students generally get busy with other projects.In view of this,the PM identified each members deadlines and tailored tasks individually.For instance ,The PM pushed faris to complete all his tasks by week 11 since he had 3 deadlines on week 12.

User Test

Click here for UT 3 Study Tasks Template Click here for UT 3 User Questionnaire Click here for UT 3 compiled results

Goals of User testing 3:
1) Professors and Healthcare Industry Personnel: To evaluate the current state of the system (simulation model, reporting tool, and playback features). Gather feedback on how to further develop the application to make it an application that is mature enough for practical adoption by local hospitals as part of a project in the future.

2) Students: To test vigorously on the usability of the application based on “Nielsen’s 10 Heuristics” so as to improve the user experience of the application.

Some of our participants:

Student Testers!
Our Client-Prof Kar way !
Prof Wee leong!
Prof Venky!

User test 3 was conducted mainly between 3 groups of users.This were the main results from the test.

Group of Users Profile Type of testing Main feedback
Students Consists of 10 SIS students who have or is currently taking IDP Students were given study tasks to do and they are asked to evaluate mainly on the usability of the system based on “Nielsen’s 10 Heuristics” 1.Student’s find it hard to understand the tasks. Context and explanation has to be given. However, base on our observations, the student testers is able to complete the tasks rather easily.
2.Gave several constructive feedback on the usability and also, recommended changes to improve the UI. Team has incorporated it to the list of changes to be implemented.
Healthcare Industry Personnel Consists of healthcare practitioners from SGH and another local hospital Testers were asked to evaluate the current state of the application and how the application needs to be further developed to be mature enough for practical adoption 1.Excellent feeback on the interface and usability of the application. They like the clean layout of the various parts of the application (simulation parameters, results page etc)
2.However, more can be done to validate the model. Suggest doing multi-site/hospital studies to validate the model. Willing to collaborate with future teams on this project to provide relevant data from SGH on this aspect
3.Members of the local hospotal suggested showing results on “Door to doctor” and having “95th percentile and 50th Percentile” as these are additional things that the hospitals normally track. Overall, He is able to visualize how this application will be able to help their “Specialist Outpatient Clinic” operations
Non-Domain Experts Professor Lee Wee Leong, Professor Venky and Professor Lian Chee. Generic feedback on system's usability and model of which the simulation is built upon. 1.Minor usability comments to improve the UI. Team has already incorporated it to the list of changes to be implemented.
2.Questions the model of simulation, especially on distribution of patients and the treatments that they are ordered to undergo. Suggest using past data to provide a more accurate model here.
3.Recommends an export function for the simulation results to allow further analysis on MS excel.



List of changes to be implemented after User Test 3

category changes
Minor UI changes to be implemented: 1.Changing the “Arrival rates” from the tabs to “Patients Arrival Rates”. In addition, the “Arrval Rate” header in the data table to be “Arrival rate(average)”

Cb 1.png

2.‘Next button’ to navigate around the simulation parameter tabs.

3.Take away the “Day” column in the data table as it is redundant, since there are day tabs below.

Cb 2.png


4.Minimizing the size of the graphs

Cb 3.png


5.Axes labels from numbers to day names

Cb 4.png

Other changes: 1.Export the result from simulation to a csv format file for further analysis by users of application
2.Displaying a ‘Door-to-Doctor’ graph in results page.
3.Change the Length-Of-Stay(LOS) chart to a line chart and the Resource Utilization chart to a bar chart in the results page.

4.Change the option of toogling percentiles to 95th and 50th percentile.
5.Display the different charts together to allow the users to compare the various strategies and their effects.


Takeaway from the User Test 3 :
1) The current state of the user interface and layout of the results page is in good condition base on the comments from student testers, professors and industry personnel.

2) Due to the lack of historical and existing patient data from hospitals to implement a more accurate framework of assigning the treatments to the various patients and also, to validate the whole model, it is important to acknowledge that this application will continue to be a work-in-progress towards practical adoption.

3) Going forward, SGH has expressed interest in collaborating with future groups on improving the model by providing them with the necessary data. The application and the model can then be further developed upon and refined to be mature enough to be used by the local hospitals.

Technical Complexities

Understanding Simulation Model

This is undoubtable one of the most complex challenges the team has faced when working on the project. All members are novice in the world of simulation and have absolutely no experiences. Therefore, much effort was required to be spent on understanding the following questions:

    a.How does simulation work?
    b.What is the difference between Discrete Event Simulation and other types of simulation?
    c.How do we model one programmatically?
    d.How does one calculate the randomness factor using various kind of statistical probability distribution using historical data?

Usage of Design Patterns

Design pattern was used in this project to achieve maintainability, flexibility and scalability of our code architecture. On the server-side, DAO design pattern such as the Abstract Factory pattern was used to achieve easy migration of data source in the future, if there is a need to.

On the client-side, a variation of the popular JavaScript module pattern, in which we used the Revealing Module Pattern, is applied to enable modularization of code and to avoid conflicts in javascript files. This is especially important since we are developing a large scale javascript application, and are also using a number of 3rd party libraries. Usage of the pattern could also enable us to have an easier time maintaining and debugging our JavaScript code.

Hacking 3rd party framework and libraries

In the project, our team makes use of a new UI framework, Semantic-UI. As Semantic-UI is currently still at beta version, there are times where we need to make some custom hack at the libraries to achieve what we wanted. Some of the libraries we are using are also not properly documented due to being new, as such; we have to look at the uncompressed javascript file to explore the API that the libraries offered.

Calculation of coordinates for animation

Due to the way SVG animation works, co-ordinates for the final position are not stored for the object being animated, rather they stored the transform_x and transform_y of the object, which is how many pixel have the object being moved X and moved Y. Therefore, calculations have to be made to find out where the object is on the screen at the point before it is being animated. Positions for the objects are also dynamic, which means object should try not to overlap with each other.

Learning Outcome

Chun Yang - This project gave me the platform to push myself.I had the opportunities to try out new technologies to build onto the development capabilities that I was already possessed with. The nature of this project was different from what we were taught and that gave me a tough yet worthwhile experience

Faris - This is480 journey is definitely a memorable one. Personally, I've learned a lot of interesting things in both technical and non-technical aspects. For the technical side, one of the takeaways is about data visualization principles where we learnt how to present data in the most effective way. As for the non-technical side, I've gained alot of experience on client and supervisor management - on how we present our progress as well as gathering of feedback and requirements. Also, through this project, I was given the opportunity to explore new skills such as designing a poster and also developing a video pitch. We've finally come to the end of the project and though it is not near maturity, what's important is that we know we've put in our best to make it a success.

Nigel - Uncertainties are the only constant in this project. Be it in the development or project management phase, we all have to deal with it. I believe that i am coping much better with uncertainties compared to day one of this project. i think we have managed to mitigate some of these uncertainties by being extremely critical and reviewing our project frequently from the perspectives of our clients and other stakeholders.

Clarice - As a group, we have learnt to adapt well meeting requirements from the sponsor and initial changes to improve the application, which helped to create the application we have today.

Syafi - I’m amazed at how a project has grown in ways which we never really anticipated as a team. So many angles have been considered in terms of the project’s business capabilities!

Basith - Apart from keeping your supervisor and client happy,one has to make sure the team is happy ,driven and motivated as well. Practice flexibility,give them the space and breaks and most importantly read between the lines.After all,like machines humans can break down too!!So Project management is not just about having great plans, proper metrics and meeting deadlines.

X-FACTOR

X-factor1.png
X-factor 2.png

Our group has successfully developed an simulation and reporting tool tailored to the needs of local hospitals.

When Less is More
Currently, most established simulation software (examples provided above) are able to provide users with ample features even in their most basic package. However, most of the features are not utilised by the hospitals as they do not require them. To quote the head of healthcare analytic department at a local hospital, he praised us for building an application which is easier to use with features specifically cater to the needs of the hospitals. With only the essential features, users will not be overwhelmed by the links, buttons and ribbons, but they would be able to navigate and run their simulations easily.

Potential of our Application
Though our application still has rooms for improvement, we managed to lower the learning curve of using a simulation tool. This would be especially useful for doctors and healthcare practitioners whom are not trained or apt at using such tools. Hence, there is a lot of potential for our application to be adopted by the local hospitals.

Lastly, our application is unique as it is equipped with different queuing strategies (FIFO, SCON, SREM, MIXED) that can be used to simulate patients' activities at the ambulatory care, where their queue priorities are dynamically managed based on the algorithms. And special credits goes to or sponsor (Prof. Tan Kar Way), for the algorithms are based on her research paper.