Fixes #1524 CCDA Warnings, Dependency resolution in modules (#2505)
commitdddd05bf546253c4af0f919216ba1f1ab652e290
authorStephen Nielson <stephen@nielson.org>
Tue, 25 Jun 2019 06:46:11 +0000 (25 02:46 -0400)
committerBrady Miller <brady.g.miller@gmail.com>
Tue, 25 Jun 2019 06:46:10 +0000 (24 23:46 -0700)
treedf9c80f7931b5951a90164b60fccc694c501726b
parent8cb517be0b77953437a190d5ab97a8fb922b61d8
Fixes #1524 CCDA Warnings, Dependency resolution in modules (#2505)

* Fixes #1524 CCDA Warnings, Dependency resolution

Fixed a bunch of warnings in the CareCoordination module and broken code.  We broke the dependency resolution when we made modules load from the database so I fixed that.

It looks like the preview of data in the CCDA import process was broken and quite a few areas just didn't load any data.  Improved that significantly so both the review and approve as well as the import process do much more than basic demographics. Detailed breakdown is listed below.

- Fix deprecation, warnings,bugs, in CCDA module.
- Several bug fixes, deprecation, and warning fixes to make the ccda work in modern PHP version.
- Fix count php warning in installer. If you emptied the number of enabled hooks it threw a warning.
- Made it so the rev and approve errors thrown are now fixed in the care coordination and syndromic surveillance code.
- Replaced a number of static calls that use the $this parameter with their instance equivalents.  Had to introduce the Documents plugin as a dependency
to CareCoordination which is ok since it was being called statically anyway.
- Fix broken dependency modules.
When we moved the loading of the modules to be database driven the detection of dependencies was no longer working.
It looks like ZH at one point wanted to use an INI file to read those but that wasn't being used at all.

Since we already have a module.config.php file I put the dependencies in the array of that file and key off that
in the InstModuleTable piece since it just returns an array as part of that file.

I originally wanted to go down the route of using the ModuleConfigController but instantiating that in the correct
namespace and everything else was a problem, plus future controllers could have injected dependencies which we can't
know about beforehand.  The config file seems to be the best place for this.  At some point we may be able to deprecate
the ModuleconfigController class alltogether.
12 files changed:
interface/modules/zend_modules/module/Application/src/Application/Controller/SendtoController.php
interface/modules/zend_modules/module/Carecoordination/config/module.config.php
interface/modules/zend_modules/module/Carecoordination/src/Carecoordination/Controller/CarecoordinationController.php
interface/modules/zend_modules/module/Carecoordination/src/Carecoordination/Model/CarecoordinationTable.php
interface/modules/zend_modules/module/Carecoordination/view/carecoordination/carecoordination/upload.phtml
interface/modules/zend_modules/module/Carecoordination/view/carecoordination/ccd/upload.phtml
interface/modules/zend_modules/module/Ccr/config/module.config.php
interface/modules/zend_modules/module/Ccr/view/ccr/ccr/index.phtml
interface/modules/zend_modules/module/Documents/src/Documents/Controller/DocumentsController.php
interface/modules/zend_modules/module/Installer/src/Installer/Controller/InstallerController.php
interface/modules/zend_modules/module/Installer/src/Installer/Model/InstModuleTable.php
interface/modules/zend_modules/module/Syndromicsurveillance/view/syndromicsurveillance/syndromicsurveillance/index.phtml