塔楼/健康指标

此库允许您根据名称和单位生成健康指标,例如:体重/磅或千克。您可以配置存储位置,并通过用户名或其他令牌按日期收集其值。该库允许您生成图表或其他统计信息。它是完全可配置的,方法有良好的文档,并附带单元测试。

1.3.7 2017-02-11 13:47 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:10:11 UTC


README

towerhousestudio

  • 此库允许您根据名称和单位生成健康指标,例如:体重/磅或千克。
  • 您可以配置存储位置,并通过用户名或其他标识符按日期收集它们的值。
  • 该库允许您生成图表或其他统计信息。它是完全可配置的,方法有良好的文档,并附带单元测试。

技术

健康指标使用多个开源项目以正常工作

  • [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

...这是图表的图片 Alt text

单元测试

我在此库中编写了一篇关于单元测试的文章,此处有记录:https://www.linkedin.com/pulse/unit-testing-activity-annoys-programmers-lucia-figueroa-tasca