Web Development, Interception with mobile devices, payment gateways
Web, Palm OS, Android, iOS
Working with one of the worlds largest pharmaceuticals companies, this customised system was developed to aid in the promotion and dispensing of medicines to consumers in the global marketplace. Quite a large and complex coded system, it relied on many technologies working seamlessly together - from the admin system, to the servers to the websites and PDA's in use at each individual chemist store.
This project is a good example of our ability to work in collaboration with other companies in system development, and produce large-scale systems and applications. Our coded system relied in part on some components developed by third parties, meaning we cannot claim full responsibility for the completion of the project ourselves here at WDevs.
This pharmaceuticals system is very complicated. Three dedicated servers hold and transmit all of the information which includes stock levels, reporting, ordering, sales, system management and more. The system owner allows permissions to the pharmaceuticals companies who then use the system to ensure their medicine levels always remain at the appropriate level for consumers. This diagram below explains the flow of the system for all types of users:
Perl was chosen as the main backend language for two main reasons. The first of which was to let the HTTP server communicate with the Net Update server using the same programming language. Secondly, the loading on the server is very high for this project and we used threads to handle the clients requests to the server.
he system is based on three dedicated servers, one of which receives requests from mobile devices and is used to synchronize mobile applications with the main system database using 'Net Update' module, developed by another company. The other two servers used for the work (a database (DB) server and HTTP server) were developed by us.
The DB server used a mySQL database to store the broad assortment of products from the pharmaceutical company. The front/back end server is an HTTP server that provides the system administrators with the ability to handle the base depot/ warehouse by keeping track of items and their assortment in the store.
Users of the system are authorised personnel or attorneys from the pharmaceutical company. Usually, attorneys are the owners of drug stores and are authorised to enter new attorneys in the system. Attorneys provide "floating" pharmacists access to the system to let them see medical goods available to them.
There are different types of floating pharmacists who are authorised to do different kinds of work for the system. Floating pharmacists visits patients to provide them with consultations, to sell pharmaceuticals or to provide them with nursing services. They immediately record all the services provided via the PDA application or via the back-end admin interface using a computer connected to the Internet. The floating pharmacists are able to prescribe medicines via PDA to end consumers.
Drugstores reserve required quantities of medicines. Every time the inventory falls below a specified level, the goods are replenished to the required quantity. The system also provides a credit system to let some drugstores order products using an "after sold" payment method.
Detailed reports are available to let the company keep track of key sales data and the most profitable drugstores as well as help devise strategies to incentivise drugstores.
In the subsequent phase of the project that we are working on now, the customer would like to allow the system to include multiple drug manufacturers. This is a complicated phase of the project, where we have to cater for a much higher system loading than at present. The basis for granting rights and privileges/powers for different users will also be much more complicated than it is now. Besides allowing members to work with different drug manufacturers, the latter will also be able to set their own price for the services offered by the floating pharmacists. However, the price bracket will be set by the main system administrator.