Challenge Overview
Note - This challenge follows the new challenge template and the new iOS native scorecard.
Challenge Objectives
-
Native iOS app development
-
Frontend development only, no backend integration
-
5-10 screens
-
allows users (physicians) to track the order status and view order results for patients under their care
Project Background
-
The purpose of this project is to develop a mobile application that will be used by physicians to track order status and view order results for patients they have under their care.
-
Through the order results, the application will also assist physicians in determining which antibiotics to prescribe to patients.
-
The application will be used in doctors office and hospitals across the US.
Workflow
Please make sure your design incorporates this workflow.
Test Order Status Workflow:
-
Test is ordered by physician and goes through different phases, with different results
-
Preliminary
-
Test Ordered
-
Specimen Collected
-
Specimen Received in Lab
-
Specimen Gram Stain Result
-
Culture Preliminary Result
-
-
Final ID
-
Culture Final ID
-
-
Final Result
-
Culture AST Results
-
-
Users/Roles
Please make sure your design supports the following roles.
Physicians
-- Able to login and access data in app as per provided storyboardsX
Screens/Features
Please make sure your design includes the following screens:-
All screens must use the provided dummy JSON data in forums. If the data is not appropriate for any of the screens or needs changes, please bring it up in the forums for discussion.
-
App should be locked to Portrait mode (Landscape support is not required)
00_1_Login
-
Validate username & email for non-null
-
Validate email for format correctness
-
Forgot Password should be a dummy link
-
Please make sure valid credentials are configurable via plist
00_2_Login
-
Show error in case of invalid email or password
-
Main Screen where user will be landed after successfully login to the app
-
User will be able to search a patient name or ID, or scan patient code
-
The user will be able to navigate to separate pages displaying tests (similar to search results), for the following:
-
Recently Viewed (last 10 tests viewed by user)
-
Your Attending (tests in which the patient is being attended by user)
-
Your Ordered (tests ordered by user)
-
Your Admitted (tests in which the patient was admitted by user)
-
-
For each option, display the number of results
02_1_Search
-
Search will allow Type-ahead functionality (Auto complete suggestion)
-
Please ensure all auto-complete data is retrieved via JSON file
-
User will be able to search only patients for which they are attending, admitted, or have ordered a test
-
In the Search result, user will be able to see listing of patient name, ID, DOB, their tests, specimen type, current status, and estimated completion date/time
-
Under "Current Status", we need to show the patient status (which phase that already completed and not completed)
02_2_Search
-
Shows autocomplete search in action
02_3_scan to 02_5_scan
-
Shows the scan operation in action
-
Simulate the scan process for the purpose of this challenge
-
This screen will be used as a layout base for the following screens:
-
Recently Viewed (last 10 tests viewed by user)
-
Your Attending (tests in which the patient is being attended by user)
-
Your Ordered (tests ordered by user)
-
Your Admitted (tests in which the patient was admitted by user)
-
-
The appearance of this screen will almost similar with search result screens, only it will show different content
-
Allow sorting by ‘Last Updated’, ‘Patient Name’ and ‘DOB’
-
On this screen, all phases will be displayed, with a different color or highlighting distinction between the completed and yet to be completed phases
-
Upon selection of a test/order, user will be able to view the following:
-
Current status/phase
-
Estimated completion date for each phase (For ex, Innoculation, Gram Stain, Preliminary ID, Final ID, Organism AST, etc)
-
Patient information: Patient name, ascension #, and protocol (needs some hint)
-
Culture Data Results (i.e. "Specimen Received in Laboratory", "Moderate Gram Positive Cocci", "Light Growth Eschericia coli", etc.) will be displayed on the results page
-
Relevant/appropriate antibiogram for the current phase
-
The antibiograms will implement a heatmap covering the full range of the values
-
Time of last update, Also include expected time of completion for next phase/step
-
-
From the test results page, user will be able to toggle which phases they would like to receive alerts for
-
User will be able to leave a comment on the test results
-
Show the appropriate modals on hovering as shown in the storyboard
-
Once all phase complete, the application will show suggestion of “treatment advisories” to the user where user can see what kind of antibiotic prescription that suitable for the patients.
-
Please simulate all data shown on screen
Please make sure your design supports these form factors:
-
In-scope
-
Tablet portrait
-
-
Out of scope
-
Desktop portrait and landscape
-
Tablet landscape
-
Mobile portrait and landscape
-
Operating Systems
-
iOS only
Development Assets
-
User Interface Design (Provided in Forums)
-
Test Data (Provided in Forums)
Technology Stack
The following technology stack will be used as part of this challenge.
Swift 4.x
Scorecard Review
-
This submission will use the new iOS development scorecard.
-
Please review the scorecard carefully.
-
Your submission will be reviewed on these requirements:
-
Challenge Spec Requirements
-
Requirements Coverage
-
-
Coding Standards
-
Best Practices
-
Code Quality
-
-
Development Requirements
-
Localization
-
Testing
-
Performance
-
Security
-
Deployment
-
-
Organisation & App Architecture
-
Onboarding
-
Launch Screen
-
Search
-
Alerts
-
Scrolling
-
Tables
-
Alignment
-
-
User Interaction
-
Button Size
-
Page Controls
-
Pickers
-
Sliders
-
3D Touch
-
Feedback/Notifications
-
Progress Indication
-
Authentication
-
-
Visual Design
-
Typography
-
Legibility
-
Images
-
Text Fields
-
-
Final Submission Guidelines
Final Deliverables
-
All source code.
-
A brief write up explaining how to build, configure and deploy your code
-
Demo video of your app