File Coverage

blib/lib/WHO/GrowthReference/Table.pm
Criterion Covered Total %
statement 14 188 7.4
branch 0 78 0.0
condition 0 6 0.0
subroutine 5 8 62.5
pod 1 1 100.0
total 20 281 7.1


line stmt bran cond sub pod time code
1             package WHO::GrowthReference::Table;
2              
3 1     1   313104 use 5.010001;
  1         4  
4 1     1   5 use strict;
  1         2  
  1         39  
5 1     1   4 use warnings;
  1         3  
  1         59  
6              
7 1     1   4 use Exporter qw(import);
  1         3  
  1         7095  
8              
9             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
10             our $DATE = '2024-07-17'; # DATE
11             our $DIST = 'WHO-GrowthReference-Table'; # DIST
12             our $VERSION = '0.013'; # VERSION
13              
14             our @ISA = qw(Exporter);
15             our @EXPORT_OK = qw(
16             get_who_growth_reference
17             );
18             our %SPEC;
19              
20             ##### BEGIN DATA #####
21              
22             ### HEIGHT BOY ###
23              
24             # BEGIN FRAGMENT id=meta-growth_ref_who_height_age_boy_0_5y_pct varname=meta_height_boy_0_5y_pct
25             # note: This fragment's content is generated by a script. Do not edit manually!
26             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_boy_0_5y_pct/meta.yaml
27             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
28             # generate-date: Sat Jan 16 13:47:35 2021 UTC
29             # generated-by: update-fragments-in-perl-module
30             our $meta_height_boy_0_5y_pct = {
31             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Aug 21 09:04:02 2018 UTC",
32             fields => {
33             Day => { pos => 0, schema => "str*", sortable => 1, summary => "Day", unique => 1 },
34             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
35             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
36             P01 => { pos => 4, schema => "str*", sortable => 1, summary => "P01", unique => 0 },
37             P1 => { pos => 5, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
38             P10 => { pos => 8, schema => "str*", sortable => 1, summary => "P10", unique => 0 },
39             P15 => { pos => 9, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
40             P25 => { pos => 10, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
41             P3 => { pos => 6, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
42             P5 => { pos => 7, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
43             P50 => { pos => 11, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
44             P75 => { pos => 12, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
45             P85 => { pos => 13, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
46             P90 => { pos => 14, schema => "str*", sortable => 1, summary => "P90", unique => 0 },
47             P95 => { pos => 15, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
48             P97 => { pos => 16, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
49             P99 => { pos => 17, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
50             P999 => { pos => 18, schema => "str*", sortable => 1, summary => "P999", unique => 0 },
51             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
52             },
53             header => 1,
54             pk => "Day",
55             summary => "(Summary here)",
56             };
57             # END FRAGMENT id=meta-growth_ref_who_height_age_boy_0_5y_pct
58             # BEGIN FRAGMENT id=data-growth_ref_who_height_age_boy_0_5y_pct varname=data_height_boy_0_5y_pct
59             # note: This fragment's content is generated by a script. Do not edit manually!
60             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_boy_0_5y_pct/data.tsv
61             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
62             # generate-date: Sat Jan 16 13:47:35 2021 UTC
63             # generated-by: update-fragments-in-perl-module
64             our $data_height_boy_0_5y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_height_age_boy_0_5y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
65             # END FRAGMENT id=data-growth_ref_who_height_age_boy_0_5y_pct
66              
67             # BEGIN FRAGMENT id=meta-growth_ref_who_height_age_boy_0_5y_z varname=meta_height_boy_0_5y_z
68             # note: This fragment's content is generated by a script. Do not edit manually!
69             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_boy_0_5y_z/meta.yaml
70             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
71             # generate-date: Sat Jan 16 13:47:35 2021 UTC
72             # generated-by: update-fragments-in-perl-module
73             our $meta_height_boy_0_5y_z = {
74             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Fri Jan 15 05:18:04 2021 UTC",
75             fields => {
76             Day => { pos => 0, schema => "str*", sortable => 1, summary => "Day", unique => 1 },
77             SD0 => { pos => 5, schema => "str*", sortable => 1, summary => "SD0", unique => 0 },
78             SD1 => { pos => 6, schema => "str*", sortable => 1, summary => "SD1", unique => 0 },
79             SD1neg => { pos => 4, schema => "str*", sortable => 1, summary => "SD1neg", unique => 0 },
80             SD2 => { pos => 7, schema => "str*", sortable => 1, summary => "SD2", unique => 0 },
81             SD2neg => { pos => 3, schema => "str*", sortable => 1, summary => "SD2neg", unique => 0 },
82             SD3 => { pos => 8, schema => "str*", sortable => 1, summary => "SD3", unique => 0 },
83             SD3neg => { pos => 2, schema => "str*", sortable => 1, summary => "SD3neg", unique => 0 },
84             SD4 => { pos => 9, schema => "str*", sortable => 1, summary => "SD4", unique => 0 },
85             SD4neg => { pos => 1, schema => "str*", sortable => 1, summary => "SD4neg", unique => 0 },
86             },
87             header => 1,
88             pk => "Day",
89             summary => "(Summary here)",
90             };
91             # END FRAGMENT id=meta-growth_ref_who_height_age_boy_0_5y_z
92             # BEGIN FRAGMENT id=data-growth_ref_who_height_age_boy_0_5y_z varname=data_height_boy_0_5y_z
93             # note: This fragment's content is generated by a script. Do not edit manually!
94             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_boy_0_5y_z/data.tsv
95             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
96             # generate-date: Sat Jan 16 13:47:35 2021 UTC
97             # generated-by: update-fragments-in-perl-module
98             our $data_height_boy_0_5y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_height_age_boy_0_5y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
99             # END FRAGMENT id=data-growth_ref_who_height_age_boy_0_5y_z
100              
101             # BEGIN FRAGMENT id=meta-growth_ref_who_height_age_boy_5_19y_pct varname=meta_height_boy_5_19y_pct
102             # note: This fragment's content is generated by a script. Do not edit manually!
103             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_boy_5_19y_pct/meta.yaml
104             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
105             # generate-date: Sat Jan 16 13:47:36 2021 UTC
106             # generated-by: update-fragments-in-perl-module
107             our $meta_height_boy_5_19y_pct = {
108             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Aug 21 09:04:11 2018 UTC",
109             fields => {
110             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
111             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
112             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
113             P01 => { pos => 5, schema => "str*", sortable => 1, summary => "P01", unique => 0 },
114             P1 => { pos => 6, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
115             P10 => { pos => 9, schema => "str*", sortable => 1, summary => "P10", unique => 0 },
116             P15 => { pos => 10, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
117             P25 => { pos => 11, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
118             P3 => { pos => 7, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
119             P5 => { pos => 8, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
120             P50 => { pos => 12, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
121             P75 => { pos => 13, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
122             P85 => { pos => 14, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
123             P90 => { pos => 15, schema => "str*", sortable => 1, summary => "P90", unique => 0 },
124             P95 => { pos => 16, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
125             P97 => { pos => 17, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
126             P99 => { pos => 18, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
127             P999 => { pos => 19, schema => "str*", sortable => 1, summary => "P999", unique => 0 },
128             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
129             StDev => { pos => 4, schema => "str*", sortable => 1, summary => "StDev", unique => 0 },
130             },
131             header => 1,
132             pk => "Month",
133             summary => "(Summary here)",
134             };
135             # END FRAGMENT id=meta-growth_ref_who_height_age_boy_5_19y_pct
136             # BEGIN FRAGMENT id=data-growth_ref_who_height_age_boy_5_19y_pct varname=data_height_boy_5_19y_pct
137             # note: This fragment's content is generated by a script. Do not edit manually!
138             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_boy_5_19y_pct/data.tsv
139             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
140             # generate-date: Sat Jan 16 13:47:36 2021 UTC
141             # generated-by: update-fragments-in-perl-module
142             our $data_height_boy_5_19y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_height_age_boy_5_19y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
143             # END FRAGMENT id=data-growth_ref_who_height_age_boy_5_19y_pct
144              
145             # BEGIN FRAGMENT id=meta-growth_ref_who_height_age_boy_5_19y_z varname=meta_height_boy_5_19y_z
146             # note: This fragment's content is generated by a script. Do not edit manually!
147             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_boy_5_19y_z/meta.yaml
148             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
149             # generate-date: Sat Jan 16 13:47:36 2021 UTC
150             # generated-by: update-fragments-in-perl-module
151             our $meta_height_boy_5_19y_z = {
152             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Fri Jan 15 05:18:54 2021 UTC",
153             fields => {
154             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
155             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
156             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
157             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
158             SD0 => { pos => 10, schema => "str*", sortable => 1, summary => "SD0", unique => 0 },
159             SD1 => { pos => 11, schema => "str*", sortable => 1, summary => "SD1", unique => 0 },
160             SD1neg => { pos => 9, schema => "str*", sortable => 1, summary => "SD1neg", unique => 0 },
161             SD2 => { pos => 12, schema => "str*", sortable => 1, summary => "SD2", unique => 0 },
162             SD2neg => { pos => 8, schema => "str*", sortable => 1, summary => "SD2neg", unique => 0 },
163             SD3 => { pos => 13, schema => "str*", sortable => 1, summary => "SD3", unique => 0 },
164             SD3neg => { pos => 7, schema => "str*", sortable => 1, summary => "SD3neg", unique => 0 },
165             SD4 => { pos => 14, schema => "str*", sortable => 1, summary => "SD4", unique => 0 },
166             SD4neg => { pos => 6, schema => "str*", sortable => 1, summary => "SD4neg", unique => 0 },
167             SD5neg => { pos => 5, schema => "str*", sortable => 1, summary => "SD5neg", unique => 0 },
168             StDev => { pos => 4, schema => "str*", sortable => 1, summary => "StDev", unique => 0 },
169             },
170             header => 1,
171             pk => "Month",
172             summary => "(Summary here)",
173             };
174             # END FRAGMENT id=meta-growth_ref_who_height_age_boy_5_19y_z
175             # BEGIN FRAGMENT id=data-growth_ref_who_height_age_boy_5_19y_z varname=data_height_boy_5_19y_z
176             # note: This fragment's content is generated by a script. Do not edit manually!
177             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_boy_5_19y_z/data.tsv
178             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
179             # generate-date: Sat Jan 16 13:47:36 2021 UTC
180             # generated-by: update-fragments-in-perl-module
181             our $data_height_boy_5_19y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_height_age_boy_5_19y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
182             # END FRAGMENT id=data-growth_ref_who_height_age_boy_5_19y_z
183              
184              
185             ### HEIGHT GIRL ###
186              
187             # BEGIN FRAGMENT id=meta-growth_ref_who_height_age_girl_0_5y_pct varname=meta_height_girl_0_5y_pct
188             # note: This fragment's content is generated by a script. Do not edit manually!
189             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_girl_0_5y_pct/meta.yaml
190             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
191             # generate-date: Sat Jan 16 13:47:36 2021 UTC
192             # generated-by: update-fragments-in-perl-module
193             our $meta_height_girl_0_5y_pct = {
194             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Aug 21 09:04:13 2018 UTC",
195             fields => {
196             Day => { pos => 0, schema => "str*", sortable => 1, summary => "Day", unique => 1 },
197             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
198             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
199             P01 => { pos => 4, schema => "str*", sortable => 1, summary => "P01", unique => 0 },
200             P1 => { pos => 5, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
201             P10 => { pos => 8, schema => "str*", sortable => 1, summary => "P10", unique => 0 },
202             P15 => { pos => 9, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
203             P25 => { pos => 10, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
204             P3 => { pos => 6, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
205             P5 => { pos => 7, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
206             P50 => { pos => 11, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
207             P75 => { pos => 12, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
208             P85 => { pos => 13, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
209             P90 => { pos => 14, schema => "str*", sortable => 1, summary => "P90", unique => 0 },
210             P95 => { pos => 15, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
211             P97 => { pos => 16, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
212             P99 => { pos => 17, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
213             P999 => { pos => 18, schema => "str*", sortable => 1, summary => "P999", unique => 0 },
214             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
215             },
216             header => 1,
217             pk => "Day",
218             summary => "(Summary here)",
219             };
220             # END FRAGMENT id=meta-growth_ref_who_height_age_girl_0_5y_pct
221             # BEGIN FRAGMENT id=data-growth_ref_who_height_age_girl_0_5y_pct varname=data_height_girl_0_5y_pct
222             # note: This fragment's content is generated by a script. Do not edit manually!
223             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_girl_0_5y_pct/data.tsv
224             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
225             # generate-date: Sat Jan 16 13:47:36 2021 UTC
226             # generated-by: update-fragments-in-perl-module
227             our $data_height_girl_0_5y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_height_age_girl_0_5y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
228             # END FRAGMENT id=data-growth_ref_who_height_age_girl_0_5y_pct
229              
230             # BEGIN FRAGMENT id=meta-growth_ref_who_height_age_girl_0_5y_z varname=meta_height_girl_0_5y_z
231             # note: This fragment's content is generated by a script. Do not edit manually!
232             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_girl_0_5y_z/meta.yaml
233             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
234             # generate-date: Sat Jan 16 13:47:36 2021 UTC
235             # generated-by: update-fragments-in-perl-module
236             our $meta_height_girl_0_5y_z = {
237             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Fri Jan 15 05:19:49 2021 UTC",
238             fields => {
239             Day => { pos => 0, schema => "str*", sortable => 1, summary => "Day", unique => 1 },
240             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
241             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
242             P01 => { pos => 4, schema => "str*", sortable => 1, summary => "P01", unique => 0 },
243             P1 => { pos => 5, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
244             P10 => { pos => 8, schema => "str*", sortable => 1, summary => "P10", unique => 0 },
245             P15 => { pos => 9, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
246             P25 => { pos => 10, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
247             P3 => { pos => 6, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
248             P5 => { pos => 7, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
249             P50 => { pos => 11, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
250             P75 => { pos => 12, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
251             P85 => { pos => 13, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
252             P90 => { pos => 14, schema => "str*", sortable => 1, summary => "P90", unique => 0 },
253             P95 => { pos => 15, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
254             P97 => { pos => 16, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
255             P99 => { pos => 17, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
256             P999 => { pos => 18, schema => "str*", sortable => 1, summary => "P999", unique => 0 },
257             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
258             },
259             header => 1,
260             pk => "Day",
261             summary => "(Summary here)",
262             };
263             # END FRAGMENT id=meta-growth_ref_who_height_age_girl_0_5y_z
264             # BEGIN FRAGMENT id=data-growth_ref_who_height_age_girl_0_5y_z varname=data_height_girl_0_5y_z
265             # note: This fragment's content is generated by a script. Do not edit manually!
266             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_girl_0_5y_z/data.tsv
267             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
268             # generate-date: Sat Jan 16 13:47:36 2021 UTC
269             # generated-by: update-fragments-in-perl-module
270             our $data_height_girl_0_5y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_height_age_girl_0_5y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
271             # END FRAGMENT id=data-growth_ref_who_height_age_girl_0_5y_z
272              
273             # BEGIN FRAGMENT id=meta-growth_ref_who_height_age_girl_5_19y_pct varname=meta_height_girl_5_19y_pct
274             # note: This fragment's content is generated by a script. Do not edit manually!
275             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_girl_5_19y_pct/meta.yaml
276             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
277             # generate-date: Sat Jan 16 13:47:36 2021 UTC
278             # generated-by: update-fragments-in-perl-module
279             our $meta_height_girl_5_19y_pct = {
280             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Aug 21 09:04:15 2018 UTC",
281             fields => {
282             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
283             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
284             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
285             P01 => { pos => 5, schema => "str*", sortable => 1, summary => "P01", unique => 0 },
286             P1 => { pos => 6, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
287             P10 => { pos => 9, schema => "str*", sortable => 1, summary => "P10", unique => 0 },
288             P15 => { pos => 10, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
289             P25 => { pos => 11, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
290             P3 => { pos => 7, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
291             P5 => { pos => 8, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
292             P50 => { pos => 12, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
293             P75 => { pos => 13, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
294             P85 => { pos => 14, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
295             P90 => { pos => 15, schema => "str*", sortable => 1, summary => "P90", unique => 0 },
296             P95 => { pos => 16, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
297             P97 => { pos => 17, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
298             P99 => { pos => 18, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
299             P999 => { pos => 19, schema => "str*", sortable => 1, summary => "P999", unique => 0 },
300             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
301             StDev => { pos => 4, schema => "str*", sortable => 1, summary => "StDev", unique => 0 },
302             },
303             header => 1,
304             pk => "Month",
305             summary => "(Summary here)",
306             };
307             # END FRAGMENT id=meta-growth_ref_who_height_age_girl_5_19y_pct
308             # BEGIN FRAGMENT id=data-growth_ref_who_height_age_girl_5_19y_pct varname=data_height_girl_5_19y_pct
309             # note: This fragment's content is generated by a script. Do not edit manually!
310             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_girl_5_19y_pct/data.tsv
311             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
312             # generate-date: Sat Jan 16 13:47:36 2021 UTC
313             # generated-by: update-fragments-in-perl-module
314             our $data_height_girl_5_19y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_height_age_girl_5_19y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
315             # END FRAGMENT id=data-growth_ref_who_height_age_girl_5_19y_pct
316              
317             # BEGIN FRAGMENT id=meta-growth_ref_who_height_age_girl_5_19y_z varname=meta_height_girl_5_19y_z
318             # note: This fragment's content is generated by a script. Do not edit manually!
319             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_girl_5_19y_z/meta.yaml
320             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
321             # generate-date: Sat Jan 16 13:47:36 2021 UTC
322             # generated-by: update-fragments-in-perl-module
323             our $meta_height_girl_5_19y_z = {
324             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Fri Jan 15 05:20:23 2021 UTC",
325             fields => {
326             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
327             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
328             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
329             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
330             SD0 => { pos => 10, schema => "str*", sortable => 1, summary => "SD0", unique => 0 },
331             SD1 => { pos => 11, schema => "str*", sortable => 1, summary => "SD1", unique => 0 },
332             SD1neg => { pos => 9, schema => "str*", sortable => 1, summary => "SD1neg", unique => 0 },
333             SD2 => { pos => 12, schema => "str*", sortable => 1, summary => "SD2", unique => 0 },
334             SD2neg => { pos => 8, schema => "str*", sortable => 1, summary => "SD2neg", unique => 0 },
335             SD3 => { pos => 13, schema => "str*", sortable => 1, summary => "SD3", unique => 0 },
336             SD3neg => { pos => 7, schema => "str*", sortable => 1, summary => "SD3neg", unique => 0 },
337             SD4 => { pos => 14, schema => "str*", sortable => 1, summary => "SD4", unique => 0 },
338             SD4neg => { pos => 6, schema => "str*", sortable => 1, summary => "SD4neg", unique => 0 },
339             SD5neg => { pos => 5, schema => "str*", sortable => 1, summary => "SD5neg", unique => 0 },
340             StDev => { pos => 4, schema => "str*", sortable => 1, summary => "StDev", unique => 0 },
341             },
342             header => 1,
343             pk => "Month",
344             summary => "(Summary here)",
345             };
346             # END FRAGMENT id=meta-growth_ref_who_height_age_girl_5_19y_z
347             # BEGIN FRAGMENT id=data-growth_ref_who_height_age_girl_5_19y_z varname=data_height_girl_5_19y_z
348             # note: This fragment's content is generated by a script. Do not edit manually!
349             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_height_age_girl_5_19y_z/data.tsv
350             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
351             # generate-date: Sat Jan 16 13:47:36 2021 UTC
352             # generated-by: update-fragments-in-perl-module
353             our $data_height_girl_5_19y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_height_age_girl_5_19y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
354             # END FRAGMENT id=data-growth_ref_who_height_age_girl_5_19y_z
355              
356              
357             ### WEIGHT BOY ###
358              
359             # BEGIN FRAGMENT id=meta-growth_ref_who_weight_age_boy_0_5y_pct varname=meta_weight_boy_0_5y_pct
360             # note: This fragment's content is generated by a script. Do not edit manually!
361             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_boy_0_5y_pct/meta.yaml
362             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
363             # generate-date: Sat Jan 16 13:47:36 2021 UTC
364             # generated-by: update-fragments-in-perl-module
365             our $meta_weight_boy_0_5y_pct = {
366             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Aug 21 09:04:17 2018 UTC",
367             fields => {
368             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
369             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
370             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
371             P01 => { pos => 4, schema => "str*", sortable => 1, summary => "P01", unique => 0 },
372             P1 => { pos => 5, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
373             P10 => { pos => 8, schema => "str*", sortable => 1, summary => "P10", unique => 0 },
374             P15 => { pos => 9, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
375             P25 => { pos => 10, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
376             P3 => { pos => 6, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
377             P5 => { pos => 7, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
378             P50 => { pos => 11, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
379             P75 => { pos => 12, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
380             P85 => { pos => 13, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
381             P90 => { pos => 14, schema => "str*", sortable => 1, summary => "P90", unique => 0 },
382             P95 => { pos => 15, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
383             P97 => { pos => 16, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
384             P99 => { pos => 17, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
385             P999 => { pos => 18, schema => "str*", sortable => 1, summary => "P999", unique => 0 },
386             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
387             },
388             header => 1,
389             pk => "Month",
390             summary => "(Summary here)",
391             };
392             # END FRAGMENT id=meta-growth_ref_who_weight_age_boy_0_5y_pct
393             # BEGIN FRAGMENT id=data-growth_ref_who_weight_age_boy_0_5y_pct varname=data_weight_boy_0_5y_pct
394             # note: This fragment's content is generated by a script. Do not edit manually!
395             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_boy_0_5y_pct/data.tsv
396             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
397             # generate-date: Sat Jan 16 13:47:36 2021 UTC
398             # generated-by: update-fragments-in-perl-module
399             our $data_weight_boy_0_5y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_weight_age_boy_0_5y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
400             # END FRAGMENT id=data-growth_ref_who_weight_age_boy_0_5y_pct
401              
402             # BEGIN FRAGMENT id=meta-growth_ref_who_weight_age_boy_0_5y_z varname=meta_weight_boy_0_5y_z
403             # note: This fragment's content is generated by a script. Do not edit manually!
404             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_boy_0_5y_z/meta.yaml
405             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
406             # generate-date: Sat Jan 16 13:47:37 2021 UTC
407             # generated-by: update-fragments-in-perl-module
408             our $meta_weight_boy_0_5y_z = {
409             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Fri Jan 15 05:24:16 2021 UTC",
410             fields => {
411             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
412             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
413             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
414             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
415             SD0 => { pos => 7, schema => "str*", sortable => 1, summary => "SD0", unique => 0 },
416             SD1 => { pos => 8, schema => "str*", sortable => 1, summary => "SD1", unique => 0 },
417             SD1neg => { pos => 6, schema => "str*", sortable => 1, summary => "SD1neg", unique => 0 },
418             SD2 => { pos => 9, schema => "str*", sortable => 1, summary => "SD2", unique => 0 },
419             SD2neg => { pos => 5, schema => "str*", sortable => 1, summary => "SD2neg", unique => 0 },
420             SD3 => { pos => 10, schema => "str*", sortable => 1, summary => "SD3", unique => 0 },
421             SD3neg => { pos => 4, schema => "str*", sortable => 1, summary => "SD3neg", unique => 0 },
422             },
423             header => 1,
424             pk => "Month",
425             summary => "(Summary here)",
426             };
427             # END FRAGMENT id=meta-growth_ref_who_weight_age_boy_0_5y_z
428             # BEGIN FRAGMENT id=data-growth_ref_who_weight_age_boy_0_5y_z varname=data_weight_boy_0_5y_z
429             # note: This fragment's content is generated by a script. Do not edit manually!
430             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_boy_0_5y_z/data.tsv
431             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
432             # generate-date: Sat Jan 16 13:47:37 2021 UTC
433             # generated-by: update-fragments-in-perl-module
434             our $data_weight_boy_0_5y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_weight_age_boy_0_5y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
435             # END FRAGMENT id=data-growth_ref_who_weight_age_boy_0_5y_z
436              
437             # BEGIN FRAGMENT id=meta-growth_ref_who_weight_age_boy_5_10y_pct varname=meta_weight_boy_5_10y_pct
438             # note: This fragment's content is generated by a script. Do not edit manually!
439             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_boy_5_10y_pct/meta.yaml
440             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
441             # generate-date: Sat Jan 16 13:47:37 2021 UTC
442             # generated-by: update-fragments-in-perl-module
443             our $meta_weight_boy_5_10y_pct = {
444             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Aug 21 09:04:19 2018 UTC",
445             fields => {
446             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
447             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
448             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
449             P01 => { pos => 4, schema => "str*", sortable => 1, summary => "P01", unique => 0 },
450             P1 => { pos => 5, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
451             P10 => { pos => 8, schema => "str*", sortable => 1, summary => "P10", unique => 0 },
452             P15 => { pos => 9, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
453             P25 => { pos => 10, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
454             P3 => { pos => 6, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
455             P5 => { pos => 7, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
456             P50 => { pos => 11, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
457             P75 => { pos => 12, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
458             P85 => { pos => 13, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
459             P90 => { pos => 14, schema => "str*", sortable => 1, summary => "P90", unique => 0 },
460             P95 => { pos => 15, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
461             P97 => { pos => 16, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
462             P99 => { pos => 17, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
463             P999 => { pos => 18, schema => "str*", sortable => 1, summary => "P999", unique => 0 },
464             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
465             },
466             header => 1,
467             pk => "Month",
468             summary => "(Summary here)",
469             };
470             # END FRAGMENT id=meta-growth_ref_who_weight_age_boy_5_10y_pct
471             # BEGIN FRAGMENT id=data-growth_ref_who_weight_age_boy_5_10y_pct varname=data_weight_boy_5_10y_pct
472             # note: This fragment's content is generated by a script. Do not edit manually!
473             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_boy_5_10y_pct/data.tsv
474             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
475             # generate-date: Sat Jan 16 13:47:37 2021 UTC
476             # generated-by: update-fragments-in-perl-module
477             our $data_weight_boy_5_10y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_weight_age_boy_5_10y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
478             # END FRAGMENT id=data-growth_ref_who_weight_age_boy_5_10y_pct
479              
480             # BEGIN FRAGMENT id=meta-growth_ref_who_weight_age_boy_5_10y_z varname=meta_weight_boy_5_10y_z
481             # note: This fragment's content is generated by a script. Do not edit manually!
482             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_boy_5_10y_z/meta.yaml
483             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
484             # generate-date: Sat Jan 16 13:47:37 2021 UTC
485             # generated-by: update-fragments-in-perl-module
486             our $meta_weight_boy_5_10y_z = {
487             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Fri Jan 15 05:24:57 2021 UTC",
488             fields => {
489             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
490             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
491             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
492             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
493             SD0 => { pos => 8, schema => "str*", sortable => 1, summary => "SD0", unique => 0 },
494             SD1 => { pos => 9, schema => "str*", sortable => 1, summary => "SD1", unique => 0 },
495             SD1neg => { pos => 7, schema => "str*", sortable => 1, summary => "SD1neg", unique => 0 },
496             SD2 => { pos => 10, schema => "str*", sortable => 1, summary => "SD2", unique => 0 },
497             SD2neg => { pos => 6, schema => "str*", sortable => 1, summary => "SD2neg", unique => 0 },
498             SD3 => { pos => 11, schema => "str*", sortable => 1, summary => "SD3", unique => 0 },
499             SD3neg => { pos => 5, schema => "str*", sortable => 1, summary => "SD3neg", unique => 0 },
500             SD4 => { pos => 12, schema => "str*", sortable => 1, summary => "SD4", unique => 0 },
501             SD4neg => { pos => 4, schema => "str*", sortable => 1, summary => "SD4neg", unique => 0 },
502             },
503             header => 1,
504             pk => "Month",
505             summary => "(Summary here)",
506             };
507             # END FRAGMENT id=meta-growth_ref_who_weight_age_boy_5_10y_z
508             # BEGIN FRAGMENT id=data-growth_ref_who_weight_age_boy_5_10y_z varname=data_weight_boy_5_10y_z
509             # note: This fragment's content is generated by a script. Do not edit manually!
510             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_boy_5_10y_z/data.tsv
511             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
512             # generate-date: Sat Jan 16 13:47:37 2021 UTC
513             # generated-by: update-fragments-in-perl-module
514             our $data_weight_boy_5_10y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_weight_age_boy_5_10y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
515             # END FRAGMENT id=data-growth_ref_who_weight_age_boy_5_10y_z
516              
517              
518             ### WEIGHT GIRL ###
519              
520             # BEGIN FRAGMENT id=meta-growth_ref_who_weight_age_girl_0_5y_pct varname=meta_weight_girl_0_5y_pct
521             # note: This fragment's content is generated by a script. Do not edit manually!
522             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_girl_0_5y_pct/meta.yaml
523             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
524             # generate-date: Sat Jan 16 13:47:37 2021 UTC
525             # generated-by: update-fragments-in-perl-module
526             our $meta_weight_girl_0_5y_pct = {
527             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Aug 21 09:04:21 2018 UTC",
528             fields => {
529             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
530             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
531             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
532             P01 => { pos => 4, schema => "str*", sortable => 1, summary => "P01", unique => 0 },
533             P1 => { pos => 5, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
534             P10 => { pos => 8, schema => "str*", sortable => 1, summary => "P10", unique => 0 },
535             P15 => { pos => 9, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
536             P25 => { pos => 10, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
537             P3 => { pos => 6, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
538             P5 => { pos => 7, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
539             P50 => { pos => 11, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
540             P75 => { pos => 12, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
541             P85 => { pos => 13, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
542             P90 => { pos => 14, schema => "str*", sortable => 1, summary => "P90", unique => 0 },
543             P95 => { pos => 15, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
544             P97 => { pos => 16, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
545             P99 => { pos => 17, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
546             P999 => { pos => 18, schema => "str*", sortable => 1, summary => "P999", unique => 0 },
547             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
548             },
549             header => 1,
550             pk => "Month",
551             summary => "(Summary here)",
552             };
553             # END FRAGMENT id=meta-growth_ref_who_weight_age_girl_0_5y_pct
554             # BEGIN FRAGMENT id=data-growth_ref_who_weight_age_girl_0_5y_pct varname=data_weight_girl_0_5y_pct
555             # note: This fragment's content is generated by a script. Do not edit manually!
556             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_girl_0_5y_pct/data.tsv
557             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
558             # generate-date: Sat Jan 16 13:47:37 2021 UTC
559             # generated-by: update-fragments-in-perl-module
560             our $data_weight_girl_0_5y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_weight_age_girl_0_5y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
561             # END FRAGMENT id=data-growth_ref_who_weight_age_girl_0_5y_pct
562              
563             # BEGIN FRAGMENT id=meta-growth_ref_who_weight_age_girl_0_5y_z varname=meta_weight_girl_0_5y_z
564             # note: This fragment's content is generated by a script. Do not edit manually!
565             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_girl_0_5y_z/meta.yaml
566             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
567             # generate-date: Sat Jan 16 13:47:37 2021 UTC
568             # generated-by: update-fragments-in-perl-module
569             our $meta_weight_girl_0_5y_z = {
570             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Fri Jan 15 08:27:49 2021 UTC",
571             fields => {
572             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
573             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
574             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
575             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
576             SD0 => { pos => 7, schema => "str*", sortable => 1, summary => "SD0", unique => 0 },
577             SD1 => { pos => 8, schema => "str*", sortable => 1, summary => "SD1", unique => 0 },
578             SD1neg => { pos => 6, schema => "str*", sortable => 1, summary => "SD1neg", unique => 0 },
579             SD2 => { pos => 9, schema => "str*", sortable => 1, summary => "SD2", unique => 0 },
580             SD2neg => { pos => 5, schema => "str*", sortable => 1, summary => "SD2neg", unique => 0 },
581             SD3 => { pos => 10, schema => "str*", sortable => 1, summary => "SD3", unique => 0 },
582             SD3neg => { pos => 4, schema => "str*", sortable => 1, summary => "SD3neg", unique => 0 },
583             },
584             header => 1,
585             pk => "Month",
586             summary => "(Summary here)",
587             };
588             # END FRAGMENT id=meta-growth_ref_who_weight_age_girl_0_5y_z
589             # BEGIN FRAGMENT id=data-growth_ref_who_weight_age_girl_0_5y_z varname=data_weight_girl_0_5y_z
590             # note: This fragment's content is generated by a script. Do not edit manually!
591             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_girl_0_5y_z/data.tsv
592             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
593             # generate-date: Sat Jan 16 13:47:37 2021 UTC
594             # generated-by: update-fragments-in-perl-module
595             our $data_weight_girl_0_5y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_weight_age_girl_0_5y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
596             # END FRAGMENT id=data-growth_ref_who_weight_age_girl_0_5y_z
597              
598             # BEGIN FRAGMENT id=meta-growth_ref_who_weight_age_girl_5_10y_pct varname=meta_weight_girl_5_10y_pct
599             # note: This fragment's content is generated by a script. Do not edit manually!
600             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_girl_5_10y_pct/meta.yaml
601             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
602             # generate-date: Sat Jan 16 13:47:37 2021 UTC
603             # generated-by: update-fragments-in-perl-module
604             our $meta_weight_girl_5_10y_pct = {
605             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Aug 21 09:04:23 2018 UTC",
606             fields => {
607             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
608             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
609             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
610             P01 => { pos => 4, schema => "str*", sortable => 1, summary => "P01", unique => 0 },
611             P1 => { pos => 5, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
612             P10 => { pos => 8, schema => "str*", sortable => 1, summary => "P10", unique => 0 },
613             P15 => { pos => 9, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
614             P25 => { pos => 10, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
615             P3 => { pos => 6, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
616             P5 => { pos => 7, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
617             P50 => { pos => 11, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
618             P75 => { pos => 12, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
619             P85 => { pos => 13, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
620             P90 => { pos => 14, schema => "str*", sortable => 1, summary => "P90", unique => 0 },
621             P95 => { pos => 15, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
622             P97 => { pos => 16, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
623             P99 => { pos => 17, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
624             P999 => { pos => 18, schema => "str*", sortable => 1, summary => "P999", unique => 0 },
625             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
626             },
627             header => 1,
628             pk => "Month",
629             summary => "(Summary here)",
630             };
631             # END FRAGMENT id=meta-growth_ref_who_weight_age_girl_5_10y_pct
632             # BEGIN FRAGMENT id=data-growth_ref_who_weight_age_girl_5_10y_pct varname=data_weight_girl_5_10y_pct
633             # note: This fragment's content is generated by a script. Do not edit manually!
634             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_girl_5_10y_pct/data.tsv
635             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
636             # generate-date: Sat Jan 16 13:47:37 2021 UTC
637             # generated-by: update-fragments-in-perl-module
638             our $data_weight_girl_5_10y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_weight_age_girl_5_10y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
639             # END FRAGMENT id=data-growth_ref_who_weight_age_girl_5_10y_pct
640              
641             # BEGIN FRAGMENT id=meta-growth_ref_who_weight_age_girl_5_10y_z varname=meta_weight_girl_5_10y_z
642             # note: This fragment's content is generated by a script. Do not edit manually!
643             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_girl_5_10y_z/meta.yaml
644             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
645             # generate-date: Sat Jan 16 13:47:37 2021 UTC
646             # generated-by: update-fragments-in-perl-module
647             our $meta_weight_girl_5_10y_z = {
648             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Fri Jan 15 08:28:18 2021 UTC",
649             fields => {
650             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
651             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
652             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
653             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
654             SD0 => { pos => 8, schema => "str*", sortable => 1, summary => "SD0", unique => 0 },
655             SD1 => { pos => 9, schema => "str*", sortable => 1, summary => "SD1", unique => 0 },
656             SD1neg => { pos => 7, schema => "str*", sortable => 1, summary => "SD1neg", unique => 0 },
657             SD2 => { pos => 10, schema => "str*", sortable => 1, summary => "SD2", unique => 0 },
658             SD2neg => { pos => 6, schema => "str*", sortable => 1, summary => "SD2neg", unique => 0 },
659             SD3 => { pos => 11, schema => "str*", sortable => 1, summary => "SD3", unique => 0 },
660             SD3neg => { pos => 5, schema => "str*", sortable => 1, summary => "SD3neg", unique => 0 },
661             SD4 => { pos => 12, schema => "str*", sortable => 1, summary => "SD4", unique => 0 },
662             SD4neg => { pos => 4, schema => "str*", sortable => 1, summary => "SD4neg", unique => 0 },
663             },
664             header => 1,
665             pk => "Month",
666             summary => "(Summary here)",
667             };
668             # END FRAGMENT id=meta-growth_ref_who_weight_age_girl_5_10y_z
669             # BEGIN FRAGMENT id=data-growth_ref_who_weight_age_girl_5_10y_z varname=data_weight_girl_5_10y_z
670             # note: This fragment's content is generated by a script. Do not edit manually!
671             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_weight_age_girl_5_10y_z/data.tsv
672             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
673             # generate-date: Sat Jan 16 13:47:37 2021 UTC
674             # generated-by: update-fragments-in-perl-module
675             our $data_weight_girl_5_10y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_weight_age_girl_5_10y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
676             # END FRAGMENT id=data-growth_ref_who_weight_age_girl_5_10y_z
677              
678              
679             ### BMI BOY ###
680              
681             # BEGIN FRAGMENT id=meta-growth_ref_who_bmi_age_boy_0_2y_pct varname=meta_bmi_boy_0_2y_pct
682             # note: This fragment's content is generated by a script. Do not edit manually!
683             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_boy_0_2y_pct/meta.yaml
684             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
685             # generate-date: Sat Jan 16 13:47:37 2021 UTC
686             # generated-by: update-fragments-in-perl-module
687             our $meta_bmi_boy_0_2y_pct = {
688             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Jan 5 08:32:12 2021 UTC",
689             fields => {
690             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
691             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
692             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
693             P1 => { pos => 4, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
694             P15 => { pos => 7, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
695             P25 => { pos => 8, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
696             P3 => { pos => 5, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
697             P5 => { pos => 6, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
698             P50 => { pos => 9, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
699             P75 => { pos => 10, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
700             P85 => { pos => 11, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
701             P95 => { pos => 12, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
702             P97 => { pos => 13, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
703             P99 => { pos => 14, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
704             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
705             },
706             header => 1,
707             pk => "Month",
708             summary => "(Summary here)",
709             };
710             # END FRAGMENT id=meta-growth_ref_who_bmi_age_boy_0_2y_pct
711             # BEGIN FRAGMENT id=data-growth_ref_who_bmi_age_boy_0_2y_pct varname=data_bmi_boy_0_2y_pct
712             # note: This fragment's content is generated by a script. Do not edit manually!
713             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_boy_0_2y_pct/data.tsv
714             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
715             # generate-date: Sat Jan 16 13:47:37 2021 UTC
716             # generated-by: update-fragments-in-perl-module
717             our $data_bmi_boy_0_2y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_bmi_age_boy_0_2y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
718             # END FRAGMENT id=data-growth_ref_who_bmi_age_boy_0_2y_pct
719              
720             # BEGIN FRAGMENT id=meta-growth_ref_who_bmi_age_boy_0_2y_z varname=meta_bmi_boy_0_2y_z
721             # note: This fragment's content is generated by a script. Do not edit manually!
722             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_boy_0_2y_z/meta.yaml
723             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
724             # generate-date: Sat Jan 16 13:47:37 2021 UTC
725             # generated-by: update-fragments-in-perl-module
726             our $meta_bmi_boy_0_2y_z = {
727             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Jan 5 08:32:12 2021 UTC",
728             fields => {
729             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
730             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
731             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
732             P1 => { pos => 4, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
733             P15 => { pos => 7, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
734             P25 => { pos => 8, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
735             P3 => { pos => 5, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
736             P5 => { pos => 6, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
737             P50 => { pos => 9, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
738             P75 => { pos => 10, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
739             P85 => { pos => 11, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
740             P95 => { pos => 12, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
741             P97 => { pos => 13, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
742             P99 => { pos => 14, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
743             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
744             },
745             header => 1,
746             pk => "Month",
747             summary => "(Summary here)",
748             };
749             # END FRAGMENT id=meta-growth_ref_who_bmi_age_boy_0_2y_z
750             # BEGIN FRAGMENT id=data-growth_ref_who_bmi_age_boy_0_2y_z varname=data_bmi_boy_0_2y_z
751             # note: This fragment's content is generated by a script. Do not edit manually!
752             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_boy_0_2y_z/data.tsv
753             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
754             # generate-date: Sat Jan 16 13:47:37 2021 UTC
755             # generated-by: update-fragments-in-perl-module
756             our $data_bmi_boy_0_2y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_bmi_age_boy_0_2y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
757             # END FRAGMENT id=data-growth_ref_who_bmi_age_boy_0_2y_z
758              
759             # BEGIN FRAGMENT id=meta-growth_ref_who_bmi_age_boy_2_5y_pct varname=meta_bmi_boy_2_5y_pct
760             # note: This fragment's content is generated by a script. Do not edit manually!
761             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_boy_2_5y_pct/meta.yaml
762             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
763             # generate-date: Sat Jan 16 13:47:38 2021 UTC
764             # generated-by: update-fragments-in-perl-module
765             our $meta_bmi_boy_2_5y_pct = {
766             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Jan 5 08:32:18 2021 UTC",
767             fields => {
768             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
769             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
770             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
771             P1 => { pos => 4, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
772             P15 => { pos => 7, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
773             P25 => { pos => 8, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
774             P3 => { pos => 5, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
775             P5 => { pos => 6, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
776             P50 => { pos => 9, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
777             P75 => { pos => 10, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
778             P85 => { pos => 11, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
779             P95 => { pos => 12, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
780             P97 => { pos => 13, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
781             P99 => { pos => 14, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
782             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
783             },
784             header => 1,
785             pk => "Month",
786             summary => "(Summary here)",
787             };
788             # END FRAGMENT id=meta-growth_ref_who_bmi_age_boy_2_5y_pct
789             # BEGIN FRAGMENT id=data-growth_ref_who_bmi_age_boy_2_5y_pct varname=data_bmi_boy_2_5y_pct
790             # note: This fragment's content is generated by a script. Do not edit manually!
791             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_boy_2_5y_pct/data.tsv
792             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
793             # generate-date: Sat Jan 16 13:47:38 2021 UTC
794             # generated-by: update-fragments-in-perl-module
795             our $data_bmi_boy_2_5y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_bmi_age_boy_2_5y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
796             # END FRAGMENT id=data-growth_ref_who_bmi_age_boy_2_5y_pct
797              
798             # BEGIN FRAGMENT id=meta-growth_ref_who_bmi_age_boy_2_5y_z varname=meta_bmi_boy_2_5y_z
799             # note: This fragment's content is generated by a script. Do not edit manually!
800             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_boy_2_5y_z/meta.yaml
801             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
802             # generate-date: Sat Jan 16 13:47:38 2021 UTC
803             # generated-by: update-fragments-in-perl-module
804             our $meta_bmi_boy_2_5y_z = {
805             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Fri Jan 15 03:16:56 2021 UTC",
806             fields => {
807             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
808             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
809             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
810             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
811             SD0 => { pos => 7, schema => "str*", sortable => 1, summary => "SD0", unique => 0 },
812             SD1 => { pos => 8, schema => "str*", sortable => 1, summary => "SD1", unique => 0 },
813             SD1neg => { pos => 6, schema => "str*", sortable => 1, summary => "SD1neg", unique => 0 },
814             SD2 => { pos => 9, schema => "str*", sortable => 1, summary => "SD2", unique => 0 },
815             SD2neg => { pos => 5, schema => "str*", sortable => 1, summary => "SD2neg", unique => 0 },
816             SD3 => { pos => 10, schema => "str*", sortable => 1, summary => "SD3", unique => 0 },
817             SD3neg => { pos => 4, schema => "str*", sortable => 1, summary => "SD3neg", unique => 0 },
818             },
819             header => 1,
820             pk => "Month",
821             summary => "(Summary here)",
822             };
823             # END FRAGMENT id=meta-growth_ref_who_bmi_age_boy_2_5y_z
824             # BEGIN FRAGMENT id=data-growth_ref_who_bmi_age_boy_2_5y_z varname=data_bmi_boy_2_5y_z
825             # note: This fragment's content is generated by a script. Do not edit manually!
826             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_boy_2_5y_z/data.tsv
827             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
828             # generate-date: Sat Jan 16 13:47:38 2021 UTC
829             # generated-by: update-fragments-in-perl-module
830             our $data_bmi_boy_2_5y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_bmi_age_boy_2_5y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
831             # END FRAGMENT id=data-growth_ref_who_bmi_age_boy_2_5y_z
832              
833             # BEGIN FRAGMENT id=meta-growth_ref_who_bmi_age_boy_5_19y_pct varname=meta_bmi_boy_5_19y_pct
834             # note: This fragment's content is generated by a script. Do not edit manually!
835             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_boy_5_19y_pct/meta.yaml
836             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
837             # generate-date: Sat Jan 16 13:47:38 2021 UTC
838             # generated-by: update-fragments-in-perl-module
839             our $meta_bmi_boy_5_19y_pct = {
840             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Jan 5 11:31:41 2021 UTC",
841             fields => {
842             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
843             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
844             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
845             P01 => { pos => 4, schema => "str*", sortable => 1, summary => "P01", unique => 0 },
846             P1 => { pos => 5, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
847             P10 => { pos => 8, schema => "str*", sortable => 1, summary => "P10", unique => 0 },
848             P15 => { pos => 9, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
849             P25 => { pos => 10, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
850             P3 => { pos => 6, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
851             P5 => { pos => 7, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
852             P50 => { pos => 11, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
853             P75 => { pos => 12, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
854             P85 => { pos => 13, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
855             P90 => { pos => 14, schema => "str*", sortable => 1, summary => "P90", unique => 0 },
856             P95 => { pos => 15, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
857             P97 => { pos => 16, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
858             P99 => { pos => 17, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
859             P999 => { pos => 18, schema => "str*", sortable => 1, summary => "P999", unique => 0 },
860             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
861             },
862             header => 1,
863             pk => "Month",
864             summary => "(Summary here)",
865             };
866             # END FRAGMENT id=meta-growth_ref_who_bmi_age_boy_5_19y_pct
867             # BEGIN FRAGMENT id=data-growth_ref_who_bmi_age_boy_5_19y_pct varname=data_bmi_boy_5_19y_pct
868             # note: This fragment's content is generated by a script. Do not edit manually!
869             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_boy_5_19y_pct/data.tsv
870             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
871             # generate-date: Sat Jan 16 13:47:38 2021 UTC
872             # generated-by: update-fragments-in-perl-module
873             our $data_bmi_boy_5_19y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_bmi_age_boy_5_19y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
874             # END FRAGMENT id=data-growth_ref_who_bmi_age_boy_5_19y_pct
875              
876             # BEGIN FRAGMENT id=meta-growth_ref_who_bmi_age_boy_5_19y_z varname=meta_bmi_boy_5_19y_z
877             # note: This fragment's content is generated by a script. Do not edit manually!
878             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_boy_5_19y_z/meta.yaml
879             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
880             # generate-date: Sat Jan 16 13:47:38 2021 UTC
881             # generated-by: update-fragments-in-perl-module
882             our $meta_bmi_boy_5_19y_z = {
883             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Sat Jan 16 13:47:14 2021 UTC",
884             fields => {
885             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
886             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
887             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
888             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
889             SD0 => { pos => 8, schema => "str*", sortable => 1, summary => "SD0", unique => 0 },
890             SD1 => { pos => 9, schema => "str*", sortable => 1, summary => "SD1", unique => 0 },
891             SD1neg => { pos => 7, schema => "str*", sortable => 1, summary => "SD1neg", unique => 0 },
892             SD2 => { pos => 10, schema => "str*", sortable => 1, summary => "SD2", unique => 0 },
893             SD2neg => { pos => 6, schema => "str*", sortable => 1, summary => "SD2neg", unique => 0 },
894             SD3 => { pos => 11, schema => "str*", sortable => 1, summary => "SD3", unique => 0 },
895             SD3neg => { pos => 5, schema => "str*", sortable => 1, summary => "SD3neg", unique => 0 },
896             SD4 => { pos => 12, schema => "str*", sortable => 1, summary => "SD4", unique => 0 },
897             SD4neg => { pos => 4, schema => "str*", sortable => 1, summary => "SD4neg", unique => 0 },
898             },
899             header => 1,
900             pk => "Month",
901             summary => "(Summary here)",
902             };
903             # END FRAGMENT id=meta-growth_ref_who_bmi_age_boy_5_19y_z
904             # BEGIN FRAGMENT id=data-growth_ref_who_bmi_age_boy_5_19y_z varname=data_bmi_boy_5_19y_z
905             # note: This fragment's content is generated by a script. Do not edit manually!
906             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_boy_5_19y_z/data.tsv
907             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
908             # generate-date: Sat Jan 16 13:47:38 2021 UTC
909             # generated-by: update-fragments-in-perl-module
910             our $data_bmi_boy_5_19y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_bmi_age_boy_5_19y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
911             # END FRAGMENT id=data-growth_ref_who_bmi_age_boy_5_19y_z
912              
913              
914             ### BMI GIRL ###
915              
916             # BEGIN FRAGMENT id=meta-growth_ref_who_bmi_age_girl_0_2y_pct varname=meta_bmi_girl_0_2y_pct
917             # note: This fragment's content is generated by a script. Do not edit manually!
918             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_girl_0_2y_pct/meta.yaml
919             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
920             # generate-date: Sat Jan 16 13:47:38 2021 UTC
921             # generated-by: update-fragments-in-perl-module
922             our $meta_bmi_girl_0_2y_pct = {
923             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Jan 5 11:59:15 2021 UTC",
924             fields => {
925             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
926             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
927             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
928             P1 => { pos => 4, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
929             P15 => { pos => 7, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
930             P25 => { pos => 8, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
931             P3 => { pos => 5, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
932             P5 => { pos => 6, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
933             P50 => { pos => 9, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
934             P75 => { pos => 10, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
935             P85 => { pos => 11, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
936             P95 => { pos => 12, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
937             P97 => { pos => 13, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
938             P99 => { pos => 14, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
939             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
940             },
941             header => 1,
942             pk => "Month",
943             summary => "(Summary here)",
944             };
945             # END FRAGMENT id=meta-growth_ref_who_bmi_age_girl_0_2y_pct
946             # BEGIN FRAGMENT id=data-growth_ref_who_bmi_age_girl_0_2y_pct varname=data_bmi_girl_0_2y_pct
947             # note: This fragment's content is generated by a script. Do not edit manually!
948             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_girl_0_2y_pct/data.tsv
949             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
950             # generate-date: Sat Jan 16 13:47:38 2021 UTC
951             # generated-by: update-fragments-in-perl-module
952             our $data_bmi_girl_0_2y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_bmi_age_girl_0_2y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
953             # END FRAGMENT id=data-growth_ref_who_bmi_age_girl_0_2y_pct
954              
955             # BEGIN FRAGMENT id=meta-growth_ref_who_bmi_age_girl_0_2y_z varname=meta_bmi_girl_0_2y_z
956             # note: This fragment's content is generated by a script. Do not edit manually!
957             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_girl_0_2y_z/meta.yaml
958             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
959             # generate-date: Sat Jan 16 13:47:38 2021 UTC
960             # generated-by: update-fragments-in-perl-module
961             our $meta_bmi_girl_0_2y_z = {
962             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Fri Jan 15 04:56:20 2021 UTC",
963             fields => {
964             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
965             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
966             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
967             SD0 => { pos => 7, schema => "str*", sortable => 1, summary => "SD0", unique => 0 },
968             SD1 => { pos => 8, schema => "str*", sortable => 1, summary => "SD1", unique => 0 },
969             SD1neg => { pos => 6, schema => "str*", sortable => 1, summary => "SD1neg", unique => 0 },
970             SD2 => { pos => 9, schema => "str*", sortable => 1, summary => "SD2", unique => 0 },
971             SD2neg => { pos => 5, schema => "str*", sortable => 1, summary => "SD2neg", unique => 0 },
972             SD3 => { pos => 10, schema => "str*", sortable => 1, summary => "SD3", unique => 0 },
973             SD3neg => { pos => 4, schema => "str*", sortable => 1, summary => "SD3neg", unique => 0 },
974             Week => { pos => 0, schema => "str*", sortable => 1, summary => "Week", unique => 1 },
975             },
976             header => 1,
977             pk => "Week",
978             summary => "(Summary here)",
979             };
980             # END FRAGMENT id=meta-growth_ref_who_bmi_age_girl_0_2y_z
981             # BEGIN FRAGMENT id=data-growth_ref_who_bmi_age_girl_0_2y_z varname=data_bmi_girl_0_2y_z
982             # note: This fragment's content is generated by a script. Do not edit manually!
983             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_girl_0_2y_z/data.tsv
984             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
985             # generate-date: Sat Jan 16 13:47:38 2021 UTC
986             # generated-by: update-fragments-in-perl-module
987             our $data_bmi_girl_0_2y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_bmi_age_girl_0_2y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
988             # END FRAGMENT id=data-growth_ref_who_bmi_age_girl_0_2y_z
989              
990             # BEGIN FRAGMENT id=meta-growth_ref_who_bmi_age_girl_2_5y_pct varname=meta_bmi_girl_2_5y_pct
991             # note: This fragment's content is generated by a script. Do not edit manually!
992             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_girl_2_5y_pct/meta.yaml
993             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
994             # generate-date: Sat Jan 16 13:47:38 2021 UTC
995             # generated-by: update-fragments-in-perl-module
996             our $meta_bmi_girl_2_5y_pct = {
997             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Jan 5 08:32:21 2021 UTC",
998             fields => {
999             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
1000             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
1001             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
1002             P1 => { pos => 4, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
1003             P15 => { pos => 7, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
1004             P25 => { pos => 8, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
1005             P3 => { pos => 5, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
1006             P5 => { pos => 6, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
1007             P50 => { pos => 9, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
1008             P75 => { pos => 10, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
1009             P85 => { pos => 11, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
1010             P95 => { pos => 12, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
1011             P97 => { pos => 13, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
1012             P99 => { pos => 14, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
1013             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
1014             },
1015             header => 1,
1016             pk => "Month",
1017             summary => "(Summary here)",
1018             };
1019             # END FRAGMENT id=meta-growth_ref_who_bmi_age_girl_2_5y_pct
1020             # BEGIN FRAGMENT id=data-growth_ref_who_bmi_age_girl_2_5y_pct varname=data_bmi_girl_2_5y_pct
1021             # note: This fragment's content is generated by a script. Do not edit manually!
1022             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_girl_2_5y_pct/data.tsv
1023             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
1024             # generate-date: Sat Jan 16 13:47:38 2021 UTC
1025             # generated-by: update-fragments-in-perl-module
1026             our $data_bmi_girl_2_5y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_bmi_age_girl_2_5y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
1027             # END FRAGMENT id=data-growth_ref_who_bmi_age_girl_2_5y_pct
1028              
1029             # BEGIN FRAGMENT id=meta-growth_ref_who_bmi_age_girl_2_5y_z varname=meta_bmi_girl_2_5y_z
1030             # note: This fragment's content is generated by a script. Do not edit manually!
1031             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_girl_2_5y_z/meta.yaml
1032             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
1033             # generate-date: Sat Jan 16 13:47:38 2021 UTC
1034             # generated-by: update-fragments-in-perl-module
1035             our $meta_bmi_girl_2_5y_z = {
1036             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Fri Jan 15 04:57:10 2021 UTC",
1037             fields => {
1038             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
1039             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
1040             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
1041             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
1042             SD0 => { pos => 7, schema => "str*", sortable => 1, summary => "SD0", unique => 0 },
1043             SD1 => { pos => 8, schema => "str*", sortable => 1, summary => "SD1", unique => 0 },
1044             SD1neg => { pos => 6, schema => "str*", sortable => 1, summary => "SD1neg", unique => 0 },
1045             SD2 => { pos => 9, schema => "str*", sortable => 1, summary => "SD2", unique => 0 },
1046             SD2neg => { pos => 5, schema => "str*", sortable => 1, summary => "SD2neg", unique => 0 },
1047             SD3 => { pos => 10, schema => "str*", sortable => 1, summary => "SD3", unique => 0 },
1048             SD3neg => { pos => 4, schema => "str*", sortable => 1, summary => "SD3neg", unique => 0 },
1049             },
1050             header => 1,
1051             pk => "Month",
1052             summary => "(Summary here)",
1053             };
1054             # END FRAGMENT id=meta-growth_ref_who_bmi_age_girl_2_5y_z
1055             # BEGIN FRAGMENT id=data-growth_ref_who_bmi_age_girl_2_5y_z varname=data_bmi_girl_2_5y_z
1056             # note: This fragment's content is generated by a script. Do not edit manually!
1057             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_girl_2_5y_z/data.tsv
1058             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
1059             # generate-date: Sat Jan 16 13:47:39 2021 UTC
1060             # generated-by: update-fragments-in-perl-module
1061             our $data_bmi_girl_2_5y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_bmi_age_girl_2_5y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
1062             # END FRAGMENT id=data-growth_ref_who_bmi_age_girl_2_5y_z
1063              
1064             # BEGIN FRAGMENT id=meta-growth_ref_who_bmi_age_girl_5_19y_pct varname=meta_bmi_girl_5_19y_pct
1065             # note: This fragment's content is generated by a script. Do not edit manually!
1066             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_girl_5_19y_pct/meta.yaml
1067             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
1068             # generate-date: Sat Jan 16 13:47:39 2021 UTC
1069             # generated-by: update-fragments-in-perl-module
1070             our $meta_bmi_girl_5_19y_pct = {
1071             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Tue Jan 5 11:06:44 2021 UTC",
1072             fields => {
1073             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
1074             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
1075             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
1076             P01 => { pos => 4, schema => "str*", sortable => 1, summary => "P01", unique => 0 },
1077             P1 => { pos => 5, schema => "str*", sortable => 1, summary => "P1", unique => 0 },
1078             P10 => { pos => 8, schema => "str*", sortable => 1, summary => "P10", unique => 0 },
1079             P15 => { pos => 9, schema => "str*", sortable => 1, summary => "P15", unique => 0 },
1080             P25 => { pos => 10, schema => "str*", sortable => 1, summary => "P25", unique => 0 },
1081             P3 => { pos => 6, schema => "str*", sortable => 1, summary => "P3", unique => 0 },
1082             P5 => { pos => 7, schema => "str*", sortable => 1, summary => "P5", unique => 0 },
1083             P50 => { pos => 11, schema => "str*", sortable => 1, summary => "P50", unique => 0 },
1084             P75 => { pos => 12, schema => "str*", sortable => 1, summary => "P75", unique => 0 },
1085             P85 => { pos => 13, schema => "str*", sortable => 1, summary => "P85", unique => 0 },
1086             P90 => { pos => 14, schema => "str*", sortable => 1, summary => "P90", unique => 0 },
1087             P95 => { pos => 15, schema => "str*", sortable => 1, summary => "P95", unique => 0 },
1088             P97 => { pos => 16, schema => "str*", sortable => 1, summary => "P97", unique => 0 },
1089             P99 => { pos => 17, schema => "str*", sortable => 1, summary => "P99", unique => 0 },
1090             P999 => { pos => 18, schema => "str*", sortable => 1, summary => "P999", unique => 0 },
1091             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
1092             },
1093             header => 1,
1094             pk => "Month",
1095             summary => "(Summary here)",
1096             };
1097             # END FRAGMENT id=meta-growth_ref_who_bmi_age_girl_5_19y_pct
1098             # BEGIN FRAGMENT id=data-growth_ref_who_bmi_age_girl_5_19y_pct varname=data_bmi_girl_5_19y_pct
1099             # note: This fragment's content is generated by a script. Do not edit manually!
1100             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_girl_5_19y_pct/data.tsv
1101             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
1102             # generate-date: Sat Jan 16 13:47:39 2021 UTC
1103             # generated-by: update-fragments-in-perl-module
1104             our $data_bmi_girl_5_19y_pct = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_bmi_age_girl_5_19y_pct"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
1105             # END FRAGMENT id=data-growth_ref_who_bmi_age_girl_5_19y_pct
1106              
1107             # BEGIN FRAGMENT id=meta-growth_ref_who_bmi_age_girl_5_19y_z varname=meta_bmi_girl_5_19y_z
1108             # note: This fragment's content is generated by a script. Do not edit manually!
1109             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_girl_5_19y_z/meta.yaml
1110             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
1111             # generate-date: Sat Jan 16 13:47:39 2021 UTC
1112             # generated-by: update-fragments-in-perl-module
1113             our $meta_bmi_girl_5_19y_z = {
1114             _note => "Automatically generated by gen-meta-yaml-from-data-tsv on Fri Jan 15 05:17:08 2021 UTC",
1115             fields => {
1116             L => { pos => 1, schema => "str*", sortable => 1, summary => "L", unique => 0 },
1117             M => { pos => 2, schema => "str*", sortable => 1, summary => "M", unique => 0 },
1118             Month => { pos => 0, schema => "str*", sortable => 1, summary => "Month", unique => 1 },
1119             S => { pos => 3, schema => "str*", sortable => 1, summary => "S", unique => 0 },
1120             SD0 => { pos => 8, schema => "str*", sortable => 1, summary => "SD0", unique => 0 },
1121             SD1 => { pos => 9, schema => "str*", sortable => 1, summary => "SD1", unique => 0 },
1122             SD1neg => { pos => 7, schema => "str*", sortable => 1, summary => "SD1neg", unique => 0 },
1123             SD2 => { pos => 10, schema => "str*", sortable => 1, summary => "SD2", unique => 0 },
1124             SD2neg => { pos => 6, schema => "str*", sortable => 1, summary => "SD2neg", unique => 0 },
1125             SD3 => { pos => 11, schema => "str*", sortable => 1, summary => "SD3", unique => 0 },
1126             SD3neg => { pos => 5, schema => "str*", sortable => 1, summary => "SD3neg", unique => 0 },
1127             SD4 => { pos => 12, schema => "str*", sortable => 1, summary => "SD4", unique => 0 },
1128             SD4neg => { pos => 4, schema => "str*", sortable => 1, summary => "SD4neg", unique => 0 },
1129             },
1130             header => 1,
1131             pk => "Month",
1132             summary => "(Summary here)",
1133             };
1134             # END FRAGMENT id=meta-growth_ref_who_bmi_age_girl_5_19y_z
1135             # BEGIN FRAGMENT id=data-growth_ref_who_bmi_age_girl_5_19y_z varname=data_bmi_girl_5_19y_z
1136             # note: This fragment's content is generated by a script. Do not edit manually!
1137             # src-file: /home/u1/repos/gudangdata/bin/../table/growth_ref_who_bmi_age_girl_5_19y_z/data.tsv
1138             # src-revision: bc4ab07e4280ceb3f7b9b2ca762c464683125c1b (Fri Jan 15 15:29:11 2021 +0700)
1139             # generate-date: Sat Jan 16 13:47:39 2021 UTC
1140             # generated-by: update-fragments-in-perl-module
1141             our $data_bmi_girl_5_19y_z = do { require Data::Section::Seekable::Reader; require Text::CSV; our $dss; $dss //= Data::Section::Seekable::Reader->new; my $ct = $dss->read_part("growth_ref_who_bmi_age_girl_5_19y_z"); my $aoa = Text::CSV::csv(in => \$ct); $aoa };
1142             # END FRAGMENT id=data-growth_ref_who_bmi_age_girl_5_19y_z
1143              
1144             ##### END DATA #####
1145              
1146             my %percentiles = (
1147             P01 => 0.1,
1148             P1 => 1,
1149             P3 => 3,
1150             P5 => 5,
1151             P10 => 10,
1152             P15 => 15,
1153             P25 => 25,
1154             P50 => 50,
1155             P75 => 75,
1156             P85 => 85,
1157             P90 => 90,
1158             P95 => 95,
1159             P97 => 97,
1160             P99 => 99,
1161             P999 => 99.9,
1162             );
1163             my %zscores = (
1164             SD4neg => -4,
1165             SD3neg => -3,
1166             SD2neg => -2,
1167             SD1neg => -1,
1168             SD0 => 0,
1169             SD1 => 1,
1170             SD2 => 2,
1171             SD3 => 3,
1172             SD4 => 4,
1173             );
1174              
1175             sub _interpolate {
1176 0     0     my ($x, $x1, $y1, $x2, $y2) = @_;
1177 0           sprintf "%.1f", $y1 + ($y2-$y1)/($x2-$x1)*($x-$x1);
1178             }
1179              
1180             sub _get_value_at_pct {
1181 0     0     my ($row, $meta, $pct) = @_;
1182 0 0         if ($pct < 0.1) { undef }
  0 0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
1183 0           elsif ($pct <= 1 ) { _interpolate( $pct, 0.1 => $row->[ $meta->{fields}{P01}{pos} ], 1 => $row->[ $meta->{fields}{P1}{pos} ]) }
1184 0           elsif ($pct <= 3 ) { _interpolate( $pct, 1 => $row->[ $meta->{fields}{P1}{pos} ], 3 => $row->[ $meta->{fields}{P3}{pos} ]) }
1185 0           elsif ($pct <= 5 ) { _interpolate( $pct, 3 => $row->[ $meta->{fields}{P3}{pos} ], 5 => $row->[ $meta->{fields}{P5}{pos} ]) }
1186 0           elsif ($pct <= 10 ) { _interpolate( $pct, 5 => $row->[ $meta->{fields}{P5}{pos} ], 10 => $row->[ $meta->{fields}{P10}{pos} ]) }
1187 0           elsif ($pct <= 15 ) { _interpolate( $pct, 10 => $row->[ $meta->{fields}{P10}{pos} ], 15 => $row->[ $meta->{fields}{P15}{pos} ]) }
1188 0           elsif ($pct <= 25 ) { _interpolate( $pct, 15 => $row->[ $meta->{fields}{P15}{pos} ], 25 => $row->[ $meta->{fields}{P25}{pos} ]) }
1189 0           elsif ($pct <= 50 ) { _interpolate( $pct, 25 => $row->[ $meta->{fields}{P25}{pos} ], 50 => $row->[ $meta->{fields}{P50}{pos} ]) }
1190 0           elsif ($pct <= 75 ) { _interpolate( $pct, 50 => $row->[ $meta->{fields}{P50}{pos} ], 75 => $row->[ $meta->{fields}{P75}{pos} ]) }
1191 0           elsif ($pct <= 85 ) { _interpolate( $pct, 75 => $row->[ $meta->{fields}{P75}{pos} ], 85 => $row->[ $meta->{fields}{P85}{pos} ]) }
1192 0           elsif ($pct <= 90 ) { _interpolate( $pct, 85 => $row->[ $meta->{fields}{P85}{pos} ], 90 => $row->[ $meta->{fields}{P90}{pos} ]) }
1193 0           elsif ($pct <= 95 ) { _interpolate( $pct, 90 => $row->[ $meta->{fields}{P90}{pos} ], 95 => $row->[ $meta->{fields}{P95}{pos} ]) }
1194 0           elsif ($pct <= 97 ) { _interpolate( $pct, 95 => $row->[ $meta->{fields}{P95}{pos} ], 97 => $row->[ $meta->{fields}{P97}{pos} ]) }
1195 0           elsif ($pct <= 99 ) { _interpolate( $pct, 97 => $row->[ $meta->{fields}{P97}{pos} ], 99 => $row->[ $meta->{fields}{P99}{pos} ]) }
1196 0           elsif ($pct <= 99.9) { _interpolate( $pct, 99 => $row->[ $meta->{fields}{P99}{pos} ], 99.9 => $row->[ $meta->{fields}{P999}{pos} ]) }
1197 0           else { undef }
1198             }
1199              
1200             $SPEC{get_who_growth_reference} = {
1201             v => 1.1,
1202             summary => 'Lookup height/weight in the WHO growth chart (a.k.a. growth reference, growth standards)',
1203             description => <<'_',
1204              
1205             Caveats:
1206              
1207             Currently the z-zcore line values (e.g. height_Z1, height_Z-1, etc) are
1208             calculated using linear interpolation.
1209              
1210             _
1211             args => {
1212             gender => {
1213             schema => ['str*', in=>['M', 'F']],
1214             req => 1,
1215             pos => 0,
1216             cmdline_aliases => {
1217             boy => {is_flag=>1, summary=>'Shortcut for --gender=M', code=>sub { $_[0]{gender} = 'M' }},
1218             girl => {is_flag=>1, summary=>'Shortcut for --gender=F', code=>sub { $_[0]{gender} = 'F' }},
1219             male => {is_flag=>1, summary=>'Shortcut for --gender=M', code=>sub { $_[0]{gender} = 'M' }},
1220             female => {is_flag=>1, summary=>'Shortcut for --gender=F', code=>sub { $_[0]{gender} = 'F' }},
1221             m => {is_flag=>1, summary=>'Shortcut for --gender=M', code=>sub { $_[0]{gender} = 'M' }},
1222             f => {is_flag=>1, summary=>'Shortcut for --gender=F', code=>sub { $_[0]{gender} = 'F' }},
1223             },
1224             },
1225             now => {
1226             summary => 'Assume now is this date, instead of current date',
1227             schema => 'date*',
1228             },
1229             dob => {
1230             schema => ['date*'],
1231             pos => 1,
1232             },
1233             age => {
1234             schema => ['duration*'],
1235             },
1236             height => {
1237             summary => 'Specify height to calculate percentile',
1238             schema => ['float*', xmin=>0],
1239             cmdline_aliases => {H=>{}},
1240             },
1241             weight => {
1242             summary => 'Specify weight to calculate percentile',
1243             schema => ['float*', xmin=>0],
1244             cmdline_aliases => {W=>{}},
1245             },
1246             },
1247             args_rels => {
1248             req_one => ['dob', 'age'],
1249             dep_any => ['now', ['dob']],
1250             },
1251             examples => [
1252             {
1253             summary => 'Get weight/height information for a boy that is born on May 4, 2017',
1254             args => {gender => 'M', dob => '2017-05-04'},
1255             },
1256             {
1257             summary => 'Get weight/height information for a 6.5yo girl',
1258             args => {gender => 'F', age => '6.5y'},
1259             },
1260             {
1261             summary => 'See percentiles/z-scores for a 6yo boy weighing 17kg and having a height of 102cm',
1262             args => {gender => 'M', age => '6y', weight=>17, height=>102},
1263             },
1264             ],
1265             };
1266             sub get_who_growth_reference {
1267 1     1   14 no strict 'refs'; ## no critic: TestingAndDebugging::ProhibitNoStrict
  1         2  
  1         2451  
1268 0     0 1   require Data::TableData::Lookup;
1269              
1270 0           my %args = @_;
1271 0           my $gender = $args{gender};
1272              
1273 0           my ($days, $months, $months_f);
1274 0 0         if ($args{dob}) {
    0          
1275 0           my $dob = $args{dob};
1276 0   0       my $now = $args{now} // time();
1277 0           $days = int(($now - $dob)/86400);
1278 0           $months = int(($now - $dob)/86400/30.4375);
1279 0           $months_f = sprintf "%.1f", $months;
1280             } elsif ($args{age}) {
1281 0           my $age = $args{age};
1282 0           $days = int($age / 86400);
1283 0           $months = int($age / 86400/30.4375);
1284 0           $months_f = sprintf "%.1f", $months;
1285             } else {
1286 0           return [400, "Please specify age or dob"];
1287             }
1288              
1289 0 0         return [412, "Negative age entered"] if $days < 0;
1290 0 0         return [412, "Over 19 years of age"] if $months > 19*12;
1291              
1292 0           my $res = [200, "OK", {}];
1293              
1294 0           $res->[2]{gender} = $gender;
1295 0           $res->[2]{age} = "$months_f month(s)";
1296              
1297             GET_HEIGHT_FOR_AGE: {
1298 0 0         my $name = "height_".($gender eq 'M' ? 'boy' : 'girl');
  0            
1299 0           my $name_potential = $name;
1300 0           my $idx;
1301 0 0         if ($days > 1856) {
1302 0           $name .= '_5_19y';
1303 0           $idx = $months - 61;
1304             } else {
1305 0           $name .= "_0_5y";
1306 0           $idx = $days;
1307             }
1308 0           $name_potential .= '_5_19y';
1309              
1310 0           my $data_potential = ${"data_${name_potential}_pct"};
  0            
1311 0           my $row_potential = $data_potential->[-1];
1312              
1313             GET_PCT: {
1314 0           my $meta = ${"meta_${name}_pct"};
  0            
  0            
1315 0           my $data = ${"data_${name}_pct"};
  0            
1316              
1317 0           my $row = $data->[$idx];
1318              
1319 0           $res->[2]{height_mean} = $row->[ $meta->{fields}{P50}{pos} ];
1320              
1321 0           for (keys %percentiles) {
1322             $res->[2]{"height_$_"} = $row->[ $meta->{fields}{$_}{pos} ]
1323 0 0         if $meta->{fields}{$_};
1324             }
1325 0 0         last unless defined $args{height};
1326             my $pct = Data::TableData::Lookup::table_vlookup(
1327             table => [map { [
1328             $row->[ $meta->{fields}{$_}{pos} ],
1329 0           $percentiles{$_},
1330 0           ] } grep { $meta->{fields}{$_} }
1331 0           sort {$percentiles{$a} <=> $percentiles{$b}}
1332             keys %percentiles],
1333             lookup_value => $args{height},
1334 0           lookup_field => 0,
1335             result_field => 1,
1336             approx => 1,
1337             interpolate => 1,
1338             );
1339 0           $res->[2]{height_percentile} = $pct;
1340 0           $res->[2]{height_potential_SD0} = $row_potential->[ $meta->{fields}{P50}{pos} ];
1341             $res->[2]{height_potential} = Data::TableData::Lookup::table_vlookup(
1342             table => [map { [
1343             $percentiles{$_},
1344 0           $row_potential->[ $meta->{fields}{$_}{pos} ],
1345 0           ] } grep { $meta->{fields}{$_} }
1346 0           sort {$percentiles{$a} <=> $percentiles{$b}}
  0            
1347             keys %percentiles],
1348             lookup_value => $pct,
1349             lookup_field => 0,
1350             result_field => 1,
1351             approx => 1,
1352             interpolate => 1,
1353             );
1354             }
1355             GET_Z: {
1356 0           my $meta = ${"meta_${name}_z"};
  0            
  0            
1357 0           my $data = ${"data_${name}_z"};
  0            
1358              
1359 0           my $row = $data->[$idx];
1360              
1361 0           for (keys %zscores) {
1362             $res->[2]{"height_$_"} = $row->[ $meta->{fields}{$_}{pos} ]
1363 0 0         if $meta->{fields}{$_};
1364             }
1365 0 0         last unless defined $args{height};
1366             my $z = Data::TableData::Lookup::table_vlookup(
1367             table => [map { [
1368             $row->[ $meta->{fields}{$_}{pos} ],
1369 0           $zscores{$_},
1370 0           ] } grep { $meta->{fields}{$_} }
1371 0           sort {$zscores{$a} <=> $zscores{$b}}
1372             keys %zscores],
1373             lookup_value => $args{height},
1374 0           lookup_field => 0,
1375             result_field => 1,
1376             approx => 1,
1377             interpolate => 1,
1378             );
1379 0           $res->[2]{height_zscore} = $z;
1380             }
1381             }
1382              
1383             GET_WEIGHT_FOR_AGE: {
1384 0 0         my $name = "weight_".($gender eq 'M' ? 'boy' : 'girl');
  0            
1385 0           my $name_potential = $name;
1386 0           my $idx;
1387 0 0         if ($months > 60) {
1388 0           $name .= '_5_10y';
1389 0           $idx = $months - 61;
1390             } else {
1391 0           $name .= "_0_5y";
1392 0           $idx = $months;
1393             }
1394 0           $name_potential .= '_5_10y';
1395              
1396 0           my $data_potential = ${"data_${name_potential}_pct"};
  0            
1397 0           my $row_potential = $data_potential->[-1];
1398              
1399             GET_PCT: {
1400 0           my $meta = ${"meta_${name}_pct"};
  0            
  0            
1401 0           my $data = ${"data_${name}_pct"};
  0            
1402              
1403 0           my $row = $data->[$idx];
1404              
1405 0           $res->[3]{'func.raw_weight'} = $row;
1406 0           $res->[2]{weight_mean} = $row->[ $meta->{fields}{P50}{pos} ];
1407              
1408 0           for (keys %percentiles) {
1409             $res->[2]{"weight_$_"} = $row->[ $meta->{fields}{$_}{pos} ]
1410 0 0         if $meta->{fields}{$_};
1411             }
1412 0 0         last unless defined $args{weight};
1413             my $pct = Data::TableData::Lookup::table_vlookup(
1414             table => [map { [
1415             $row->[ $meta->{fields}{$_}{pos} ],
1416 0           $percentiles{$_},
1417 0           ] } grep { $meta->{fields}{$_} }
1418 0           sort {$percentiles{$a} <=> $percentiles{$b}}
1419             keys %percentiles],
1420             lookup_value => $args{weight},
1421 0           lookup_field => 0,
1422             result_field => 1,
1423             approx => 1,
1424             interpolate => 1,
1425             );
1426 0           $res->[2]{weight_percentile} = $pct;
1427             }
1428             GET_Z: {
1429 0           my $meta = ${"meta_${name}_z"};
  0            
  0            
1430 0           my $data = ${"data_${name}_z"};
  0            
1431              
1432 0           my $row = $data->[$idx];
1433              
1434 0           for (keys %zscores) {
1435             $res->[2]{"weight_$_"} = $row->[ $meta->{fields}{$_}{pos} ]
1436 0 0         if $meta->{fields}{$_};
1437             }
1438 0 0         last unless defined $args{weight};
1439             my $z = Data::TableData::Lookup::table_vlookup(
1440             table => [map { [
1441             $row->[ $meta->{fields}{$_}{pos} ],
1442 0           $zscores{$_},
1443 0           ] } grep { $meta->{fields}{$_} }
1444 0           sort {$zscores{$a} <=> $zscores{$b}}
1445             keys %zscores],
1446             lookup_value => $args{weight},
1447 0           lookup_field => 0,
1448             result_field => 1,
1449             approx => 1,
1450             interpolate => 1,
1451             );
1452 0           $res->[2]{weight_zscore} = $z;
1453             }
1454             }
1455              
1456             GET_BMI_FOR_AGE: {
1457 0 0         my $name = "bmi_".($gender eq 'M' ? 'boy' : 'girl');
  0            
1458 0           my $idx;
1459 0 0         if ($months > 60) {
    0          
1460 0           $name .= '_5_19y';
1461 0           $idx = $months - 61;
1462             } elsif ($months > 24) {
1463 0           $name .= '_2_5y';
1464 0           $idx = $months - 24;
1465             } else {
1466 0           $name .= "_0_2y";
1467 0           $idx = $months;
1468             }
1469              
1470 0           my $bmi;
1471 0 0 0       if (defined $args{height} && defined $args{weight}) {
1472 0           $bmi = $args{weight} / ($args{height}/100)**2;
1473 0           $res->[2]{bmi} = $bmi;
1474             }
1475              
1476             GET_PCT: {
1477 0           my $meta = ${"meta_${name}_pct"};
  0            
  0            
1478 0           my $data = ${"data_${name}_pct"};
  0            
1479              
1480 0           my $row = $data->[$idx];
1481              
1482 0           $res->[2]{bmi_mean} = $row->[ $meta->{fields}{P50}{pos} ];
1483              
1484 0           for (keys %percentiles) {
1485             $res->[2]{"bmi_$_"} = $row->[ $meta->{fields}{$_}{pos} ]
1486 0 0         if $meta->{fields}{$_};
1487             }
1488 0 0         last unless defined $bmi;
1489             my $pct = Data::TableData::Lookup::table_vlookup(
1490             table => [map { [
1491             $row->[ $meta->{fields}{$_}{pos} ],
1492 0           $percentiles{$_},
1493 0           ] } grep { $meta->{fields}{$_} }
1494 0           sort {$percentiles{$a} <=> $percentiles{$b}}
  0            
1495             keys %percentiles],
1496             lookup_value => $bmi,
1497             lookup_field => 0,
1498             result_field => 1,
1499             approx => 1,
1500             interpolate => 1,
1501             );
1502 0           $res->[2]{bmi_percentile} = $pct;
1503             }
1504             GET_Z: {
1505 0           my $meta = ${"meta_${name}_z"};
  0            
  0            
1506 0           my $data = ${"data_${name}_z"};
  0            
1507              
1508 0           my $row = $data->[$idx];
1509              
1510 0           for (keys %zscores) {
1511             $res->[2]{"bmi_$_"} = $row->[ $meta->{fields}{$_}{pos} ]
1512 0 0         if $meta->{fields}{$_};
1513             }
1514 0 0         last unless defined $bmi;
1515              
1516             my $z = Data::TableData::Lookup::table_vlookup(
1517             table => [map { [
1518             $row->[ $meta->{fields}{$_}{pos} ],
1519 0           $zscores{$_},
1520 0           ] } grep { $meta->{fields}{$_} }
1521 0           sort {$zscores{$a} <=> $zscores{$b}}
  0            
1522             keys %zscores],
1523             lookup_value => $bmi,
1524             lookup_field => 0,
1525             result_field => 1,
1526             approx => 1,
1527             interpolate => 1,
1528             );
1529 0           $res->[2]{bmi_zscore} = $z;
1530             }
1531             }
1532              
1533 0           $res;
1534             }
1535              
1536             1;
1537             # ABSTRACT: Lookup height/weight in the WHO growth chart (a.k.a. growth reference, growth standards)
1538              
1539             =pod
1540              
1541             =encoding UTF-8
1542              
1543             =head1 NAME
1544              
1545             WHO::GrowthReference::Table - Lookup height/weight in the WHO growth chart (a.k.a. growth reference, growth standards)
1546              
1547             =head1 VERSION
1548              
1549             This document describes version 0.013 of WHO::GrowthReference::Table (from Perl distribution WHO-GrowthReference-Table), released on 2024-07-17.
1550              
1551             =head1 SYNOPSIS
1552              
1553             use WHO::GrowthReference::Table qw(get_who_growth_reference);
1554              
1555             # get mean height & weight of a 3-year old girl
1556              
1557             my $res = get_who_growth_reference(gender => "F", dob => time() - 3*365.25*86400);
1558             # => [200, "OK", {
1559             # age => "36.0 month(s)",
1560             # height_mean => 95.034, # cm
1561             # weight_mean => 13.9, # kg
1562             # height_P01 => ..., # height at 0.1% percentile
1563             # height_P1 => ..., # height at 1% percentile
1564             # height_Z-3 => ..., # height at -3 SD
1565             # height_Z-2 => ..., # height at -2 SD
1566             # ...
1567             # }]
1568              
1569             # you have a 3.5-year old boy weighing at 14.8kg and with a height of 102cm,
1570             # calculate the percentiles
1571              
1572             my $res = get_who_growth_reference(gender => "M", dob => time() - 3.5*365.25*86400, weight=>14.8, height=>102);
1573             # => [200, "OK", {
1574             # age => "42.0 month(s)",
1575             # height_mean => 99.844, # cm
1576             # height_percentile => 70.2, # your boy's height is above world average, about 70.2% of boys of the same age are shorter than your boy
1577             # height_zscore => ...,
1578             # weight_mean => 15.3, # kg
1579             # weight_percentile => 39.6, # your boy's weight is below world average, about 39.6% of boys of the same age weigh less than your boy
1580             # weight_zscore => ...,
1581             # height_P01 => ...,
1582             # ...
1583             # height_potential => ...,
1584             # height_potential_Z0 => ...,
1585             # weight_potential_10y => ...,
1586             # weight_potential_10y_Z0 => ...,
1587             # }]
1588              
1589             =head1 DESCRIPTION
1590              
1591             =head1 FUNCTIONS
1592              
1593              
1594             =head2 get_who_growth_reference
1595              
1596             Usage:
1597              
1598             get_who_growth_reference(%args) -> [$status_code, $reason, $payload, \%result_meta]
1599              
1600             Lookup heightEweight in the WHO growth chart (a.k.a. growth reference, growth standards).
1601              
1602             Examples:
1603              
1604             =over
1605              
1606             =item * Get weightEheight information for a boy that is born on May 4, 2017:
1607              
1608             get_who_growth_reference(gender => "M", dob => "2017-05-04");
1609              
1610             Result:
1611              
1612             [
1613             200,
1614             "OK",
1615             {
1616             age => "86.0 month(s)",
1617             bmi_mean => 15.521,
1618             bmi_P01 => 12.198,
1619             bmi_P1 => 12.861,
1620             bmi_P10 => 13.917,
1621             bmi_P15 => 14.194,
1622             bmi_P25 => 14.627,
1623             bmi_P3 => 13.288,
1624             bmi_P5 => 13.528,
1625             bmi_P50 => 15.521,
1626             bmi_P75 => 16.55,
1627             bmi_P85 => 17.17,
1628             bmi_P90 => 17.622,
1629             bmi_P95 => 18.343,
1630             bmi_P97 => 18.848,
1631             bmi_P99 => 19.896,
1632             bmi_P999 => 22.044,
1633             bmi_SD0 => 15.521,
1634             bmi_SD1 => 17.106,
1635             bmi_SD1neg => 14.236,
1636             bmi_SD2 => 19.116,
1637             bmi_SD2neg => 13.171,
1638             bmi_SD3 => 21.763,
1639             bmi_SD3neg => 12.272,
1640             bmi_SD4 => 24.409,
1641             bmi_SD4neg => 11.373,
1642             gender => "M",
1643             height_mean => 122.675,
1644             height_P01 => 106.154,
1645             height_P1 => 110.238,
1646             height_P10 => 115.824,
1647             height_P15 => 117.134,
1648             height_P25 => 119.069,
1649             height_P3 => 112.62,
1650             height_P5 => 113.881,
1651             height_P50 => 122.675,
1652             height_P75 => 126.281,
1653             height_P85 => 128.216,
1654             height_P90 => 129.526,
1655             height_P95 => 131.469,
1656             height_P97 => 132.73,
1657             height_P99 => 135.112,
1658             height_P999 => 139.196,
1659             height_SD0 => 122.675,
1660             height_SD1 => 128.021,
1661             height_SD1neg => 117.329,
1662             height_SD2 => 133.367,
1663             height_SD2neg => 111.983,
1664             height_SD3 => 138.714,
1665             height_SD3neg => 106.636,
1666             height_SD4 => 144.06,
1667             height_SD4neg => 101.29,
1668             weight_mean => 23.303,
1669             weight_P01 => 15.771,
1670             weight_P1 => 17.259,
1671             weight_P10 => 19.65,
1672             weight_P15 => 20.281,
1673             weight_P25 => 21.268,
1674             weight_P3 => 18.224,
1675             weight_P5 => 18.767,
1676             weight_P50 => 23.303,
1677             weight_P75 => 25.635,
1678             weight_P85 => 27.03,
1679             weight_P90 => 28.038,
1680             weight_P95 => 29.636,
1681             weight_P97 => 30.746,
1682             weight_P99 => 33.014,
1683             weight_P999 => 37.512,
1684             weight_SD0 => 23.303,
1685             weight_SD1 => 26.885,
1686             weight_SD1neg => 20.377,
1687             weight_SD2 => 31.33,
1688             weight_SD2neg => 17.958,
1689             weight_SD3 => 36.936,
1690             weight_SD3neg => 15.937,
1691             weight_SD4 => 42.542,
1692             weight_SD4neg => 13.915,
1693             },
1694             {
1695             "func.raw_weight" => [
1696             86,
1697             -0.4594,
1698             23.3029,
1699             0.13838,
1700             15.771,
1701             17.259,
1702             18.224,
1703             18.767,
1704             19.65,
1705             20.281,
1706             21.268,
1707             23.303,
1708             25.635,
1709             27.03,
1710             28.038,
1711             29.636,
1712             30.746,
1713             33.014,
1714             37.512,
1715             ],
1716             },
1717             ]
1718              
1719             =item * Get weightEheight information for a 6.5yo girl:
1720              
1721             get_who_growth_reference(gender => "F", age => "6.5y");
1722              
1723             Result:
1724              
1725             [
1726             200,
1727             "OK",
1728             {
1729             age => "78.0 month(s)",
1730             bmi_mean => 15.32,
1731             bmi_P01 => 11.645,
1732             bmi_P1 => 12.365,
1733             bmi_P10 => 13.525,
1734             bmi_P15 => 13.832,
1735             bmi_P25 => 14.315,
1736             bmi_P3 => 12.832,
1737             bmi_P5 => 13.096,
1738             bmi_P50 => 15.32,
1739             bmi_P75 => 16.492,
1740             bmi_P85 => 17.206,
1741             bmi_P90 => 17.728,
1742             bmi_P95 => 18.57,
1743             bmi_P97 => 19.165,
1744             bmi_P99 => 20.41,
1745             bmi_P999 => 23.013,
1746             bmi_SD0 => 15.32,
1747             bmi_SD1 => 17.131,
1748             bmi_SD1neg => 13.879,
1749             bmi_SD2 => 19.482,
1750             bmi_SD2neg => 12.704,
1751             bmi_SD3 => 22.668,
1752             bmi_SD3neg => 11.725,
1753             bmi_SD4 => 25.855,
1754             bmi_SD4neg => 10.746,
1755             gender => "F",
1756             height_mean => 117.977,
1757             height_P01 => 101.611,
1758             height_P1 => 105.657,
1759             height_P10 => 111.19,
1760             height_P15 => 112.488,
1761             height_P25 => 114.405,
1762             height_P3 => 108.016,
1763             height_P5 => 109.266,
1764             height_P50 => 117.977,
1765             height_P75 => 121.549,
1766             height_P85 => 123.466,
1767             height_P90 => 124.764,
1768             height_P95 => 126.688,
1769             height_P97 => 127.938,
1770             height_P99 => 130.297,
1771             height_P999 => 134.343,
1772             height_SD0 => 117.977,
1773             height_SD1 => 123.273,
1774             height_SD1neg => 112.681,
1775             height_SD2 => 128.569,
1776             height_SD2neg => 107.385,
1777             height_SD3 => 133.865,
1778             height_SD3neg => 102.089,
1779             height_SD4 => 139.161,
1780             height_SD4neg => 96.793,
1781             weight_mean => 21.227,
1782             weight_P01 => 13.932,
1783             weight_P1 => 15.333,
1784             weight_P10 => 17.626,
1785             weight_P15 => 18.239,
1786             weight_P25 => 19.206,
1787             weight_P3 => 16.252,
1788             weight_P5 => 16.773,
1789             weight_P50 => 21.227,
1790             weight_P75 => 23.591,
1791             weight_P85 => 25.028,
1792             weight_P90 => 26.077,
1793             weight_P95 => 27.761,
1794             weight_P97 => 28.945,
1795             weight_P99 => 31.399,
1796             weight_P999 => 36.41,
1797             weight_SD0 => 21.227,
1798             weight_SD1 => 24.877,
1799             weight_SD1neg => 18.333,
1800             weight_SD2 => 29.572,
1801             weight_SD2neg => 15.998,
1802             weight_SD3 => 35.757,
1803             weight_SD3neg => 14.087,
1804             weight_SD4 => 41.942,
1805             weight_SD4neg => 12.175,
1806             },
1807             {
1808             "func.raw_weight" => [
1809             78,
1810             -0.5185,
1811             21.2274,
1812             0.1523,
1813             13.932,
1814             15.333,
1815             16.252,
1816             16.773,
1817             17.626,
1818             18.239,
1819             19.206,
1820             21.227,
1821             23.591,
1822             25.028,
1823             26.077,
1824             27.761,
1825             28.945,
1826             31.399,
1827             36.41,
1828             ],
1829             },
1830             ]
1831              
1832             =item * See percentilesEz-scores for a 6yo boy weighing 17kg and having a height of 102cm:
1833              
1834             get_who_growth_reference(gender => "M", age => "6y", height => 102, weight => 17);
1835              
1836             Result:
1837              
1838             [
1839             200,
1840             "OK",
1841             {
1842             age => "72.0 month(s)",
1843             bmi => 16.3398692810458,
1844             bmi_mean => 15.306,
1845             bmi_P01 => 12.066,
1846             bmi_P1 => 12.733,
1847             bmi_P10 => 13.773,
1848             bmi_P15 => 14.042,
1849             bmi_P25 => 14.459,
1850             bmi_P3 => 13.157,
1851             bmi_P5 => 13.393,
1852             bmi_P50 => 15.306,
1853             bmi_P75 => 16.258,
1854             bmi_P85 => 16.819,
1855             bmi_P90 => 17.221,
1856             bmi_P95 => 17.854,
1857             bmi_P97 => 18.291,
1858             bmi_P99 => 19.176,
1859             bmi_P999 => 20.91,
1860             bmi_percentile => 76.4593454731863,
1861             bmi_SD0 => 15.306,
1862             bmi_SD1 => 16.761,
1863             bmi_SD1neg => 14.083,
1864             bmi_SD2 => 18.52,
1865             bmi_SD2neg => 13.04,
1866             bmi_SD3 => 20.689,
1867             bmi_SD3neg => 12.141,
1868             bmi_SD4 => 22.858,
1869             bmi_SD4neg => 11.242,
1870             bmi_zscore => 0.71056307975653,
1871             gender => "M",
1872             height_mean => 115.951,
1873             height_P01 => 100.726,
1874             height_P1 => 104.49,
1875             height_P10 => 109.637,
1876             height_P15 => 110.845,
1877             height_P25 => 112.628,
1878             height_P3 => 106.685,
1879             height_P5 => 107.847,
1880             height_P50 => 115.951,
1881             height_P75 => 119.274,
1882             height_P85 => 121.057,
1883             height_P90 => 122.265,
1884             height_P95 => 124.055,
1885             height_P97 => 125.217,
1886             height_P99 => 127.412,
1887             height_P999 => 131.176,
1888             height_percentile => 0.404622741764081,
1889             height_potential => 155.876968650372,
1890             height_potential_SD0 => 176.543,
1891             height_SD0 => 115.951,
1892             height_SD1 => 120.878,
1893             height_SD1neg => 111.024,
1894             height_SD2 => 125.804,
1895             height_SD2neg => 106.097,
1896             height_SD3 => 130.731,
1897             height_SD3neg => 101.171,
1898             height_SD4 => 135.658,
1899             height_SD4neg => 96.244,
1900             height_zscore => -2.83170929760455,
1901             weight_mean => 20.514,
1902             weight_P01 => 13.913,
1903             weight_P1 => 15.248,
1904             weight_P10 => 17.361,
1905             weight_P15 => 17.912,
1906             weight_P25 => 18.768,
1907             weight_P3 => 16.105,
1908             weight_P5 => 16.585,
1909             weight_P50 => 20.514,
1910             weight_P75 => 22.48,
1911             weight_P85 => 23.637,
1912             weight_P90 => 24.467,
1913             weight_P95 => 25.767,
1914             weight_P97 => 26.661,
1915             weight_P99 => 28.464,
1916             weight_P999 => 31.948,
1917             weight_percentile => 7.67396907216494,
1918             weight_SD0 => 20.514,
1919             weight_SD1 => 23.517,
1920             weight_SD1neg => 17.996,
1921             weight_SD2 => 27.129,
1922             weight_SD2neg => 15.87,
1923             weight_SD3 => 31.508,
1924             weight_SD3neg => 14.063,
1925             weight_SD4 => 35.888,
1926             weight_SD4neg => 12.256,
1927             weight_zscore => -1.46848541862653,
1928             },
1929             {
1930             "func.raw_weight" => [
1931             72,
1932             -0.318,
1933             20.5137,
1934             0.13372,
1935             13.913,
1936             15.248,
1937             16.105,
1938             16.585,
1939             17.361,
1940             17.912,
1941             18.768,
1942             20.514,
1943             22.48,
1944             23.637,
1945             24.467,
1946             25.767,
1947             26.661,
1948             28.464,
1949             31.948,
1950             ],
1951             },
1952             ]
1953              
1954             =back
1955              
1956             Caveats:
1957              
1958             Currently the z-zcore line values (e.g. height_Z1, height_Z-1, etc) are
1959             calculated using linear interpolation.
1960              
1961             This function is not exported by default, but exportable.
1962              
1963             Arguments ('*' denotes required arguments):
1964              
1965             =over 4
1966              
1967             =item * B => I
1968              
1969             (No description)
1970              
1971             =item * B => I
1972              
1973             (No description)
1974              
1975             =item * B* => I
1976              
1977             (No description)
1978              
1979             =item * B => I
1980              
1981             Specify height to calculate percentile.
1982              
1983             =item * B => I
1984              
1985             Assume now is this date, instead of current date.
1986              
1987             =item * B => I
1988              
1989             Specify weight to calculate percentile.
1990              
1991              
1992             =back
1993              
1994             Returns an enveloped result (an array).
1995              
1996             First element ($status_code) is an integer containing HTTP-like status code
1997             (200 means OK, 4xx caller error, 5xx function error). Second element
1998             ($reason) is a string containing error message, or something like "OK" if status is
1999             200. Third element ($payload) is the actual result, but usually not present when enveloped result is an error response ($status_code is not 2xx). Fourth
2000             element (%result_meta) is called result metadata and is optional, a hash
2001             that contains extra information, much like how HTTP response headers provide additional metadata.
2002              
2003             Return value: (any)
2004              
2005             =head1 HOMEPAGE
2006              
2007             Please visit the project's homepage at L.
2008              
2009             =head1 SOURCE
2010              
2011             Source repository is at L.
2012              
2013             =head1 SEE ALSO
2014              
2015             L uses this module to make growth charts.
2016              
2017             For CLI frontends for this module and more, see L.
2018              
2019             Source data is from L. Note that
2020             CDC also publishes growth standards; I might write
2021             L too someday.
2022              
2023             =head1 AUTHOR
2024              
2025             perlancar
2026              
2027             =head1 CONTRIBUTING
2028              
2029              
2030             To contribute, you can send patches by email/via RT, or send pull requests on
2031             GitHub.
2032              
2033             Most of the time, you don't need to build the distribution yourself. You can
2034             simply modify the code, then test via:
2035              
2036             % prove -l
2037              
2038             If you want to build the distribution (e.g. to try to install it locally on your
2039             system), you can install L,
2040             L,
2041             L, and sometimes one or two other
2042             Dist::Zilla- and/or Pod::Weaver plugins. Any additional steps required beyond
2043             that are considered a bug and can be reported to me.
2044              
2045             =head1 COPYRIGHT AND LICENSE
2046              
2047             This software is copyright (c) 2024, 2022, 2021, 2018 by perlancar .
2048              
2049             This is free software; you can redistribute it and/or modify it under
2050             the same terms as the Perl 5 programming language system itself.
2051              
2052             =head1 BUGS
2053              
2054             Please report any bugs or feature requests on the bugtracker website L
2055              
2056             When submitting a bug or request, please include a test-file or a
2057             patch to an existing test-file that illustrates the bug or desired
2058             feature.
2059              
2060             =cut
2061              
2062             __DATA__