-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Extended appointment filters test with Episodes and created new Appoi…
…ntmentFilter types for #378
- Loading branch information
Showing
23 changed files
with
1,187 additions
and
179 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
<?php | ||
|
||
/** | ||
* | ||
* @package Gems | ||
* @subpackage Agenda\Filter | ||
* @author Matijs de Jong <mjong@magnafacta.nl> | ||
* @copyright Copyright (c) 2018, Erasmus MC and MagnaFacta B.V. | ||
* @license New BSD License | ||
*/ | ||
|
||
namespace Gems\Agenda\Filter; | ||
|
||
use Gems\Agenda\FilterModelDependencyAbstract; | ||
|
||
/** | ||
* | ||
* @package Gems | ||
* @subpackage Agenda\Filter | ||
* @copyright Copyright (c) 2018, Erasmus MC and MagnaFacta B.V. | ||
* @license New BSD License | ||
* @since Class available since version 1.8.4 30-Oct-2018 15:35:50 | ||
*/ | ||
class JsonDiagnosisDependency extends FilterModelDependencyAbstract | ||
{ | ||
/** | ||
* A ModelAbstract->setOnSave() function that returns the input | ||
* date as a valid date. | ||
* | ||
* @see \MUtil_Model_ModelAbstract | ||
* | ||
* @param mixed $value The value being saved | ||
* @param boolean $isNew True when a new item is being saved | ||
* @param string $name The name of the current field | ||
* @param array $context Optional, the other values being saved | ||
* @return string | ||
*/ | ||
public function calcultateName($value, $isNew = false, $name = null, array $context = array()) | ||
{ | ||
$filter[] = $context['gaf_filter_text1']; | ||
$filter[] = $context['gaf_filter_text2']; | ||
$filter[] = $context['gaf_filter_text3']; | ||
$filter = array_filter($filter); | ||
|
||
if ($filter) { | ||
if (1 == count($filter)) { | ||
return sprintf( | ||
$this->_('Episode diagnosis contains %s after key: %s'), | ||
$context['gaf_filter_text4'], | ||
reset($filter) | ||
); | ||
} else { | ||
return sprintf( | ||
$this->_('Episode diagnosis contains %s after keys: %s'), | ||
$context['gaf_filter_text4'], | ||
implode(', ', $filter) | ||
); | ||
} | ||
} else { | ||
return sprintf($this->_('Diagnosis data contains %s'), $context['gaf_filter_text4']); | ||
} | ||
} | ||
|
||
/** | ||
* Get the class name for the filters, the part after *_Agenda_Filter_ | ||
* | ||
* @return string | ||
*/ | ||
public function getFilterClass() | ||
{ | ||
return 'JsonDiagnosisEpisodeFilter'; | ||
} | ||
|
||
/** | ||
* Get the name for this filter class | ||
* | ||
* @return string | ||
*/ | ||
public function getFilterName() | ||
{ | ||
return $this->_('Diagnosis Data match'); | ||
} | ||
|
||
/** | ||
* Get the settings for the gaf_filter_textN fields | ||
* | ||
* Fields not in this array are not shown in any way | ||
* | ||
* @return array gaf_filter_textN => array(modelFieldName => fieldValue) | ||
*/ | ||
public function getTextSettings() | ||
{ | ||
$description = sprintf($this->_( | ||
"Use the %%-sign to search for zero or more random characters and an _ for a single random character." | ||
)); | ||
|
||
return [ | ||
'gaf_filter_text1' => [ | ||
'label' => $this->_('1st optional key'), | ||
'description' => $description, | ||
'required' => false, | ||
], | ||
'gaf_filter_text2' => [ | ||
'label' => $this->_('2nd optional key'), | ||
'description' => $description, | ||
'required' => false, | ||
], | ||
'gaf_filter_text3' => [ | ||
'label' => $this->_('3rd optional key'), | ||
'description' => $description, | ||
'required' => false, | ||
], | ||
'gaf_filter_text4' => [ | ||
'label' => $this->_('Data value'), | ||
'description' => $description, | ||
'required' => true, | ||
], | ||
]; | ||
} | ||
} |
Oops, something went wrong.