塔楼 / 健康指标
此库允许您根据名称和单位生成健康指标,例如:体重/磅或千克。您可以配置存储位置,并通过用户名或其他令牌按日期收集其值。该库允许您生成图表或其他统计信息。它是完全可配置的,方法有良好的文档,并附带单元测试。
1.3.7
2017-02-11 13:47 UTC
Requires
- php: ^5.3.3|^7.0
- amenadiel/jpgraph: ^3.6
- illuminate/config: ~5.0
- symfony/finder: ~2.6
- vlucas/phpdotenv: ~2.2
README
- 此库允许您根据名称和单位生成健康指标,例如:体重/磅或千克。
- 您可以配置存储位置,并通过用户名或其他标识符按日期收集它们的值。
- 该库允许您生成图表或其他统计信息。它是完全可配置的,方法有良好的文档,并附带单元测试。
技术
健康指标使用多个开源项目以正常工作
- [PHP] - <= 5.3
- [illuminate/config] - 5 . 这是laravel 4.2等环境曾经使用的配置处理程序。
- [amenadiel/jpgraph"] - ^3.6 . 此人将所有jpgraph库移植到packagist,感谢。
安装
- composer require towerhouse/healthmeasures
- 包含自动加载器。
- 测试文件夹中的test-creation.php文件将为您提供一个快速了解库功能的概览。
- 合并您想要在环境中使用的.env.example中的值,或者只需将示例重命名为.env。
- 此包应该可以独立工作。
使用示例
在.env文件上选择您的存储方法
逐个输入您的指标或使用批量方法
//One by one $mm = new Measure("waist", "cm", "en"); $mm->save(); $mm2 = new Measure("imc", "kg/m2", "es"); $mm2->save(); $mm3 = new Measure("systole", "", "en"); $mm3->save(); //Using the bulk method with a CSV file that has a header //Don't worry about duplicates Measure::setDefaultLanguage('es'); //All my csv measures are in spanish $mm->bulkConstructor(__DIR__ . '/CSV/Measure.csv');
Measure.csv中的内容示例
name,unit
sistole,
diastole,
pulso,
peso,kilo
altura,cm
azucar en sangre,mg/dl
Saturación de oxígeno en sangre,SaO2
temperatura,ºC
现在输入您的值,它与指标相同,因此,为了简化,我们将使用批量方法
$v = new Value(); $v->bulkConstructor(__DIR__ . '/CSV/Value.csv'); //Again, don't worry about duplicates
Value.csv中的内容示例
measure_id,value,owner_id,created_at
2577a46ca60e3ff293ccb0113e6a59c0,97,1,2016-12-29 07:00:00
2577a46ca60e3ff293ccb0113e6a59c0,98,1,2016-12-30 08:00:00
2577a46ca60e3ff293ccb0113e6a59c0,98,1,2016-12-31 06:30:00
2577a46ca60e3ff293ccb0113e6a59c0,98,1,2017-01-01 07:00:00
2577a46ca60e3ff293ccb0113e6a59c0,98,1,2017-01-02 07:00:00
2577a46ca60e3ff293ccb0113e6a59c0,95,1,2017-01-10 11:00:00
2577a46ca60e3ff293ccb0113e6a59c0,95,1,2017-01-15 07:00:00
2577a46ca60e3ff293ccb0113e6a59c0,97,1,2017-01-25 11:00:00
请注意,owner_id来自外部系统,而measure_id属于Healthmeasures。在这种情况下,measure_id "2577a46ca60e3ff293ccb0113e6a59c0" 是"waist"指标的id。
最后,我们检索从"2016-01-01"开始到最新日期(否则您可以在另一个最后参数中指定它)的具有标识符1的人的腰围值。
$vals = $v->getValuesByDate(1, '2577a46ca60e3ff293ccb0113e6a59c0', "2016-01-01");
让我们创建一个Stats对象,并将值传递给它以生成线性图。您可以指定路径,图片将被保存在那里,否则它将通过浏览器渲染到客户端。
$stats = new Stats($vals);
$stats->image_path = "linear_sample.jpg";
$stats->generateDateMeasureGraph(Stats::GRAPH_LINEAR);
最后,您可以将包含所有详细信息的精美简单的HTML报告渲染到浏览器中。
$stats = new Stats($vals);
$stats->image_path = "linear_bar.jpg";
if (!file_exists("linear_bar.jpg")) {
$stats->generateDateMeasureGraph(Stats::GRAPH_LINEAR);
}
echo $stats->getHtmlReport();
这是我从HTML页面中获取的PDF。 https://github.com/towerhouse/Healthmeasures/tree/master/test/report.pdf
单元测试
我在此库中编写了一篇关于单元测试的文章,此处有记录:https://www.linkedin.com/pulse/unit-testing-activity-annoys-programmers-lucia-figueroa-tasca
