CodeIgniter Forums
CI and electronic patiend record app - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived General Discussion (https://forum.codeigniter.com/forumdisplay.php?fid=21)
+--- Thread: CI and electronic patiend record app (/showthread.php?tid=2069)



CI and electronic patiend record app - El Forum - 07-14-2007

[eluser]Unknown[/eluser]
Hi,
I was landed with a project involving an electrinic patiend record.
We have a software that manages the patients based on Inoformix that is lacking the epr functionalities.
My boss decided to implement these new functionalities and I suggested the use of php and mysql, accessing informix data using odbc.
Since there will be only me working on the project I am looking at a way to save time and was wandering if CI could be right for me.
I have knowledge of php and sql but not a big knowledge of OOP even if I use adodb classes and complitely new to framworks
Also a big part of the project will be authorization (I was looking at liveuser but it seems quite difficult and not very well documented) and I understand that CI can use FreakAuth lite.
How long will it take to learn CI (considering I could spend 4-6 hours a day doing this)?
Was also looking at cakephp but it seems more complicated even if there is ACL built into it.
Thanks and excuse me for my long post and my poor English
Luca


CI and electronic patiend record app - El Forum - 07-14-2007

[eluser]Glen Swinfield[/eluser]
If you don't know anything about OO, or rather about PHP OO, then it might be a tall order. But you're best positioned to guage your own capacity for learning. Personally I would give myself 2 days of hardcore learning and if I'm not getting it, write it off as a bad job.

Worst case scenario: you waste 2 days.

Best case scenario: you learn a new programming technique and get on with your project.

Your call.


CI and electronic patiend record app - El Forum - 07-15-2007

[eluser]esra[/eluser]
Some thoughts...

If you wrap your mind around it, I think its possible to migrate from procedural coding to OOP by relating what you already know to the MVC approach and OOP in general. The deadline pressures of working on a true project will force you to learn OOP more quickly.

I would design the database schema first. Based on the schema, you can determine the number of modules (MVC triads) required to build the user interface for the electronic patient record system. If you were developing the system using procedural PHP coding practices, you would have to do something similar so you can relate what you already know about programming up to this point. You might consider downloading an existing application like Bamboo Invoice to learn how the developer separated controller, model and view code into separate files and compare that to what you might have done to do the same in procedural programming.

You might think about selecting one of the simple modules for your EPR user interface and attempt to build it using MVC. Keep an open mind while doing this and try to learn OOP as you proceed. You can always return later to refactor your code if your first attempt does not meet your expectations. One of the nice advantages of MVC is that it promotes code reuse and uses modular approaches to application creation. Thus, it becomes reasonably easy to return later to optimize your code to take advantage of the skills and approaches you learn later in the project.

If you plan to use CI, you might do some searches first on 'Base Controller' to learn how to construct a main controller which all of your other controllers can inheirit from. By using this approach, common reusable code can be integrated into the base controller and would be inheirited by sibling controllers. This will lead you in the direction of maximizing your reuse of code. Code reuse minimizes code redundance the obviously leads to faster application speed.

Regarding the use of ADODB, CI's database library is somewhat similar to ADODB in syntax. You can use the CI Active Record approach or use ANSI queries; or you can use the existing solution on the wiki to integrate the ADODB library. There is an ADODB integration project on ciforge.com. If you do use ADODB, the phpGACL (Generic Access Control List) library is an option for system authorization. This is a fine-grained Access Control List system based on nested sets. Rather than using the sample phpGACL admin user interface included with the package, build a new admin user interface based on Thunder's Nested Sets Model (also on the wiki). This would take a bit of work, but its feasible. There are other ACL and RBAC solutions under development by others, so FreakAuth is not your sole option. You can always develop around the need for authorization until later when more options become available.

I think you will find CI to be a better solution in your case, especially if you are on a learning curve. The community here is very helpful and the CI docs are excellent.


CI and electronic patiend record app - El Forum - 07-21-2007

[eluser]jetzkr8[/eluser]
Just an add on question to this topic. I am also new (and charged up) at learning CI. OO concept is totally new to me, I always end up trying to figure how it would be procedurally (the memory structure etc).

I have worked quite a bit with Joomla! and know many things inside it is already made up and applying modules here and there, menu systems already setup etc.

My question is, would applying CI to handle core functionalities and using Joomla! as front-end be practical?

Possibly, are there any full-fledged examples starting off from scratch using Ci alone into a complete application? I could learn fast enough with such example. CI is well documented as reference to concept and classes; There exist a very good blog example video but this does not cover the basics of a full-fledge application - header, footer, template, user authentication, sessions setup and handling etc. Sorry if this is a tall order, but such an example will be most welcome.


CI and electronic patiend record app - El Forum - 07-21-2007

[eluser]esra[/eluser]
[quote author="jetzkr8" date="1185044307"] Just an add on question to this topic. I am also new (and charged up) at learning CI. OO concept is totally new to me, I always end up trying to figure how it would be procedurally (the memory structure etc).

I have worked quite a bit with Joomla! and know many things inside it is already made up and applying modules here and there, menu systems already setup etc.

My question is, would applying CI to handle core functionalities and using Joomla! as front-end be practical? [/quote]

Joomla 1.0.x uses OOP approaches but does not use an MVC architecture. Joomla 1.5 beta on the other hand uses a custom MVC framework based on the 1.0.x component/module/plugin models. Intermixing two completely different MVC frameworks seems senseless, since the base libraries for both frameworks are essentially attempting to provide similar if not identical services. If you want to stick with Joomla, you might consider using CI and its documentation as a tool for learning MVC, then migrate to using Joomla 1.5 afterwards. It would be difficult with your current skills to jump right into Joomla 1.5 without completed documentation. However, you might be able to use Joomla 1.5 core modules as sample code for developing your own applications.

[quote author="jetzkr8" date="1185044307"]Possibly, are there any full-fledged examples starting off from scratch using Ci alone into a complete application? I could learn fast enough with such example. CI is well documented as reference to concept and classes; There exist a very good blog example video but this does not cover the basics of a full-fledge application - header, footer, template, user authentication, sessions setup and handling etc. Sorry if this is a tall order, but such an example will be most welcome. [/quote]

I believe that Derek Allard recently updated his Bamboo Invoice application.

http://www.bambooinvoice.org/


CI and electronic patiend record app - El Forum - 07-21-2007

[eluser]jetzkr8[/eluser]
[quote author="esra" date="1185056545"]............
Joomla 1.0.x uses OOP approaches but does not use an MVC architecture. Joomla 1.5 beta on the other hand uses a custom MVC framework based on the 1.0.x component/module/plugin models. Intermixing two completely different MVC frameworks seems senseless, since the base libraries for both frameworks are essentially attempting to provide similar if not identical services. If you want to stick with Joomla, you might consider using CI and its documentation as a tool for learning MVC, then migrate to using Joomla 1.5 afterwards. It would be difficult with your current skills to jump right into Joomla 1.5 without completed documentation. However, you might be able to use Joomla 1.5 core modules as sample code for developing your own applications. ..............[/quote]
I will heed your advice not to mix the two frameworks. A little more study before I determine I can build my small project using CI or revert to using Joomla! 1.5. I have skimmed through the CI user guide and it is very well documented. I am simply not confident of building a complete application using CI at this stage. Stand-alone sub-applications is no problem for me as I have been doing this using normal php. I simply need to integrate a user authentication scheme, housekeeping, template/menu and other organizing stuff, which i find Joomla! will provide pre-built. Nevertheless, I believe I will dive into CI to pick into OOP programming.

Quote:....... I believe that Derek Allard recently updated his Bamboo Invoice application.

http://www.bambooinvoice.org/
Yes, I read through and seems Derek has put in some great effort for CI. I will certainly be looking at BambooInvoice.

Thanks for the reply.