Requirements
The requirement includes three Dotnetnuke function modules and some design about Dotnetnuke Skin/Container.
The first module is to rewrite a module to query and view the physicians' specific information. To ensure each physician can access to the system, the physicians' information are required to be associated with Dotnetnuke user account.
The 2nd Module is a referral module, an referral system that is similar to email system ¨C send referrals for the patient and accept/reject the referrals between physicians themselves, and between physicians and clinics as well. Whether the physicians accept or reject the referral, this module needs to send email as notifications To Whom It May Concern.
The third module is to implement registration and login supported by windows authentication.
System Architecture
As the database used in the modules was not Dotnetnuke Website's own database, we decided to establish a Web Service as a DAL layer, and use the transaction Scheduling Mechanisms of the Dotnetnuke and the Web Service provided by the client to achieve data synchronization. Meanwhile we designed the special interface to associate account with physicians' information.
You can see the system Architecture in <a href ="http://www.dotnetoutsource.com/Case_Studies/Cases/Custom_DotNetNuke_Site_for_Medical_Profession.aspx">http://www.dotnetoutsource.com/Case_Studies/Cases/Custom_DotNetNuke_Site_for_Medical_Profession.aspx</a>
The main function of the first module is to query the physicians, add information for new physicians and associate the physicians' information with the DNN user. We combined Web Service and UserInfo API of DotNetNuke Framework to achieve this module.
In the second module, the client had a high-level and very strict requirement on the interface, such as displaying information and pop-up with ToolTip. To obtain the purpose we wrote a lot of JavaScript, refactored some ASP.NET Controls and established the flow model to control it.
Some technical Difficulties existed in the third module-windows authentication module. Although the skin module was built-in windows authentication on Dotnetnuke 4.8, it wasn't in line with the client's interface and requirements. Hereby we refactored the module on the existing skin module and rewrote it to a standard Dotnetnuke module.