Discussion: Introducing an MVC framework

matthewvita wrote on Saturday, June 25, 2016:

NOTE: This is an off-topic comment. Certainly don’t want to derail the important MVC/refactor discussion. Will start a new thread if justified.

Brady, I wanted to touch on your point “the project barely keeps head above water from a resource perspective”.

This is a serious issue for such a high-impact project such as OpenEMR. I wouldn’t be opposed to start to talk about how we can form a committee of sorts to fix this problem. Here are some initial questions/thoughts:

  • Do we need to engage the greater OSS community better?
  • Are there any obvious barriers-of-entry for passionate developers to hop on the project?
  • Would using a more modern Jira or Trello style platform allow for easier contributions?
  • Although I am a fan of Github (and it is the defacto OSS host now-a-days), this project seems to work well on Sourceforge because of the forum engagement… having the repo mirrors on Github seem to be good enough for attracting folks over there… right? Do we need to do more?
  • It is not uncommon for OSS major project updates to be posted on HackerNews. For example Dolphin had a nice, carefully written major release changelog yesterday and it garnered a lot of positive attention on the site (https://news.ycombinator.com/item?id=11970445) - maybe OpenEMR can do this moving forward?
  • When we pick from the designer candidates for the new website design… perhaps we can have some text specifically addressing the OSS community on how/why to contribute.

You’ve been doing this (OSS community engagement/management) a lot longer than me, so don’t take any of my above questions as criticism. Just want to help solve problems… I am an engineer after all :slight_smile:

mdsupport wrote on Saturday, June 25, 2016:

Looks like we can significantly expand pool of testers if we add a central Selenium server to the demo infrastructure and see if user community can do remote testing on any of the versions using a central test script repository. All we will be asking for is their time, few addons on their browser and attention to detail.

matthewvita wrote on Saturday, June 25, 2016:

Definately a perk.

bradymiller wrote on Sunday, June 26, 2016:

Hi Matthew,

These are very good questions and thoughts. The project has evolved over time in this regard.

There was actually a time when we were using cvs and project was only on sourceforge until the glorious conversion to git:
http://www.open-emr.org/wiki/index.php/Git_Migration

To get an idea of the amount of code contributors now involved in the project, the following site gives a good idea:
https://www.openhub.net/p/openemr/factoids/
(38 developers over last 12 months)

Can even see a listing of those developers here:
https://www.openhub.net/p/openemr/contributors?sort=latest_commit&time_span=12+months

That’s a really large number. About 3 years ago, it was probably 15, 2 years ago probably 20, 1 year ago probably 30(note I am just estimated here). At this point, there are actually quite a few developers where the bottleneck has now become the code review process, which we are trying to address here:
https://sourceforge.net/p/openemr/discussion/202506/thread/2a61babe/

And although it’s a large number, the resources are still slim. This is because many of the contributions are feature based and sponsored by a client. This has actually changed a bit over the last year, where there have been larger groups whom have actually spent resources on non-feature related improvement. Good examples of this are:
Practice Providers work to make OpenEMR compliant with PHP7
Matrix work to convert to InnoDB
(seeing these types of improvements are actually very exciting for myself, because in the past these types of things rarely happened, and serves as flags/evidence that the project is becoming more used and more popular)

That being said, we always need to keep thinking of ways to entice new developers and make it as easy as possible for new developers to get involved in the project; and this should be via any and all possible mechanisms. And the real hope is that some of the developers will go on to perform code reviews, take on administrative roles in the project, and participate in the non-profit OEMR organization. Along with the project surpassing a critical point in number of developers contributing over the last year, what will likely follow is the project surpassing a critical point where more than a select few will be required to run/administer the project.

There is no such thing as over-engaging the OSS community or over-marketing OpenEMR. Marketing and anything else related to this are welcome. When I had more time available, did track some marketing stuff here:
http://www.open-emr.org/wiki/index.php/OpenEMR_Wiki_Home_Page#OpenEMR_Articles_and_Presentations

Github has worked very well. Although the central codebase is on sourceforge, the project utilizes github pull requests essentially making it appear to a developer to work like any other github project.

Release steps are here:
http://www.open-emr.org/wiki/index.php/Steps_for_an_official_release
(at the bottom are list of places where announce it; would be easy to add more, but note the release details using current release methodology are rather sparse to say the least :slight_smile: : http://www.open-emr.org/wiki/index.php/QA/Release_Process#Release_Statement )

On the new website, a Developers link in main menu or blurb sounds like a good idea. The initial marketing plan was to convince users to go open source, but agree must also have something in there to entice new developers:
http://www.open-emr.org/wiki/index.php/General_openemr_marketing

Sorry for the wordy reply. Hope this helps to explain things a bit,
-brady
OpenEMR

robertdown wrote on Sunday, June 26, 2016:

Sounds good!

robertdown wrote on Sunday, June 26, 2016:

Would you suggest an Encounter model to begin with? The first module we do should be (relatively) easy as it will act as a base for other developers to start migrating other code

bradymiller wrote on Sunday, June 26, 2016:

Hi,

Let me look at the codebase a bit to find a simple place to start. Would converting something that is already in a smarty model be an option?

-brady
OpenEMR

robertdown wrote on Sunday, June 26, 2016:

Sure, I don’t see why not.

mdsupport wrote on Sunday, June 26, 2016:

How about creating a separate application like administrator workbench? That can be a completely standalone, parallel and simple module. It will also have least impact on production in case something goes wrong. If it works well, main application will have a single link as gateway to the workbench.

bradymiller wrote on Monday, June 27, 2016:

Hi,

How about a model for Pharmacy?


-brady
OpenEMR

bradymiller wrote on Monday, June 27, 2016:

Hi MD Support,
Regarding administrator workbench, are there any quick examples we can look at to see what you mean?
-brady
OpenEMR

bradymiller wrote on Monday, June 27, 2016:

Hi,

I posted a roadmap of the ongoing modernization project here (it’s in the Roadmaps section on the wiki):
http://www.open-emr.org/wiki/index.php/Modernization_Roadmap

The goal here is to have a central place showing the ongoing plan/status of the ongoing multiple related projects. It’s just a starting point and please feel free to modify and improve it.

-brady
OpenEMR

matthewvita wrote on Tuesday, June 28, 2016:

UPDATE: It took me hours to create a basic test to create a new patient encounter (this was just the happy path). Getting selenium to understand iframes within iframes, fancybox-frames within iframes, and popup windows is not a trivial task. What I’m getting at is that there may actually not be a huge ROI with this because writing the Selenium tests with the coverage we’d need may take an eternity.

Maybe just having well-defined manual test cases will do the trick. Do these currently exist? If not, I’d be happy to start building them up.

I’m also concerned that I may be concluding that this is not worth the effort having just started it. I wonder if focusing on near 100% unit test code coverage with the refactor and having well-defined manual test cases will be sufficient.

I’d like to ask for Brady, MD Support, and Robert to comment on these initial thoughts.

matthewvita wrote on Tuesday, June 28, 2016:

Brady,

Thanks for the reply and sorry for the late response.

Here are some follow-up thoughts:

  • The new home page should definately include a concise blurb on how to start contributing. This should include a link to the projects page and to the developers section of the forum to introduce one-self. (?)
  • This was in the wiki page you referenced, but I’d like to reference the stats from http://www.openhealthnews.com/hotnews/openemr-continues-grow-popularity-and-use on the new home page to really show that OpenEMR is a high impact project. This may encourage folks to contribute and it shines a light on the EMR in general.
  • I think something like this http://www.openhealthnews.com/hotnews/openemr-v412-planned-release is perfect for major releases. This can definately be shown off on popular OSS sites and healthcare IT sites.

Thanks,
Matthew

mdsupport wrote on Tuesday, June 28, 2016:

I do not have any specific examples in place. But idea is to migrate current set functions accessed through Admin menu options as well as few other areas like ZH’s module configuration etc. to new ‘Administration’ module. This will give developers a blank slate to showcase benefits of modern interface. Since ‘Practice’ covers entities like Insurance Companies etc, it gets everyone to see simpler models, views and components.

As suggested originally, this can be a completely parallel interface without any impact on current menu. This will let everyone see ‘before’ and ‘after’ with minimal interruption potential for end users.

bradymiller wrote on Tuesday, June 28, 2016:

Hi MD Support,
Sounds interesting. Will leave it up to Robert since he’s doing the work :slight_smile:
-brady

bradymiller wrote on Tuesday, June 28, 2016:

Hi Matthew,

Agreed.

Note Peter Groen runs the http://www.openhealthnews.com/ site and he has always been open to the OpenEMR/OEMR community sending in articles. We have definitely not been taking advantage of these opportunities (basically because of lack of resources and/or nobody has been interested in spending time pursuing this); ideally. in addition to releases, all big projects should get an article, such as the Peace Corps project and the IPPF project… The stats from that article on OpenEMR’s growth/popularity are a bit dubious, but it does drive home the potential use/impact of OpenEMR. Note that was in 2012 and I think OpenEMR has become more popular (especially internationally) since then.

-brady
OpenEMR

bradymiller wrote on Tuesday, June 28, 2016:

Actually, it looks like Peter Groen may of retired since then:
http://www.openhealthnews.com/authors/peter-groen
(hopefully the site is still actively advocating open source emr’s as it did in the past)

bradymiller wrote on Tuesday, June 28, 2016:

Hi,

Possibly it’s just a very steep learning curve and will then be smooth sailing :slight_smile:

If either it doesn’t get easier or you don’t want to do it (this is why volunteering is so great; we get to do the stuff we want to do :slight_smile: ), then manual test cases would be far better than nothing. We don’t have any well-defined manual test cases. If you take this on, just let us know if you need input and folks could definitely throw out some typical workflows.

Will there be any code infrastructure needed for the unit tests?

-brady
OpenEMR

matthewvita wrote on Wednesday, June 29, 2016:

Cool. I just updated http://open-emr.org/wiki/index.php/Steps_for_an_official_release#11._Announce_Release with more details – feel free to review.

Good stuff.