123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- <?php
- use Illuminate\Database\Seeder;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Hash;
- use Illuminate\Support\Str;
- class MeasurementSeeder extends Seeder
- {
- /**
- * Run the database seeds.
- *
- * @return void
- */
- public function run()
- {
- // Device IDs and IMEIs
- // BP - 1 - 987987987983
- // WEIGHT - 2 - 987987987984
- $clientID = 1;
- $bpDeviceID = 1;
- $bpDeviceIMEI = '987987987983';
- $weightDeviceID = 2;
- $weightDeviceIMEI = '987987987984';
- // delete all
- DB::table('bdt_measurement')->truncate();
- DB::table('client_bdt_measurement')->truncate();
- DB::table('measurement')->truncate();
- // create dates for the last 90 days
- $dates = [];
- for ($i=90; $i>=0; $i--) {
- $d = date_sub(date_create(), date_interval_create_from_date_string($i . " day" . ($i === 1 ? '' : 's')));
- $dates[] = date_format($d, "Y-m-d");
- }
- $bdt_measurement_next_id = 1;
- $client_bdt_measurement_next_id = 1;
- $measurement_next_id = 1;
- // for each date, create measurements
- for ($i=0; $i<count($dates); $i++) {
- $date = $dates[$i];
- // -- BP -----------------------------------------------------------
- $sbp = rand(130, 145);
- $dbp = rand(75, 95);
- $pulse = rand(60, 70);
- // create bdt_measurement
- $bdt_measurement_id = DB::table('bdt_measurement')->insertGetId([
- 'id' => $bdt_measurement_next_id++,
- 'uid' => Str::uuid(),
- 'imei' => $bpDeviceIMEI,
- 'ts' => strtotime($date),
- 'battery_voltage' => '12',
- 'signal_strength' => '100',
- 'value_tare' => null,
- 'value_weight' => null,
- 'weight_in_pounds' => null,
- 'value_systolic' => round($sbp / 0.0075006),
- 'value_diastolic' => round($dbp / 0.0075006),
- 'value_pulse' => $pulse,
- 'value_unit' => null,
- 'value_irregular' => null,
- 'rssi' => null,
- 'device_id' => null,
- 'device_category' => 'BP',
- 'created_at' => null,
- 'created_by_session_id' => null,
- 'type' => 'BDTMeasurement',
- 'diastolic_bp_in_mm_hg' => $sbp,
- 'systolic_bp_in_mm_hg' => $dbp,
- ]);
- // create client_bdt_measurement
- $client_bdt_measurement_id = DB::table('client_bdt_measurement')->insertGetId([
- 'id' => $client_bdt_measurement_next_id++,
- 'uid' => Str::uuid(),
- 'client_id' => $clientID,
- 'bdt_measurement_id' => $bdt_measurement_id,
- 'status' => null,
- 'status_memo' => null,
- 'created_at' => null,
- 'created_by_session_id' => null,
- 'type' => 'ClientBDTMeasurement',
- 'measurement_id' => null, // to update at the end
- ]);
- // create measurement (1 parent and 2 children for BP)
- // parent BP measurement
- $parent_measurement_id = DB::table('measurement')->insertGetId([
- 'id' => $measurement_next_id++,
- 'created_at' => date('Y-m-d'),
- 'type' => 'Measurement',
- 'uid' => Str::uuid(),
- 'is_active' => true,
- 'removal_memo' => null,
- 'removed_at' => null,
- 'effective_date' => $date,
- 'label' => 'BP',
- 'memo' => null,
- 'value' => "$sbp/$dbp mmHg",
- 'created_by_session_id' => null,
- 'removed_by_session_id' => null,
- 'client_id' => 1,
- 'status' => null,
- 'status_memo' => null,
- 'numeric_value' => null,
- 'client_bdt_measurement_id' => $client_bdt_measurement_id,
- 'parent_measurement_id' => null,
- 'source' => 'Device',
- ]);
- // child SBP measurement
- $sbp_measurement_id = DB::table('measurement')->insertGetId([
- 'id' => $measurement_next_id++,
- 'created_at' => date('Y-m-d'),
- 'type' => 'Measurement',
- 'uid' => Str::uuid(),
- 'is_active' => true,
- 'removal_memo' => null,
- 'removed_at' => null,
- 'effective_date' => $date,
- 'label' => 'SBP',
- 'memo' => null,
- 'value' => $sbp,
- 'created_by_session_id' => null,
- 'removed_by_session_id' => null,
- 'client_id' => 1,
- 'status' => null,
- 'status_memo' => null,
- 'numeric_value' => $sbp,
- 'client_bdt_measurement_id' => $client_bdt_measurement_id,
- 'parent_measurement_id' => $parent_measurement_id,
- 'source' => 'Device',
- ]);
- // child DBP measurement
- $dbp_measurement_id = DB::table('measurement')->insertGetId([
- 'id' => $measurement_next_id++,
- 'created_at' => date('Y-m-d'),
- 'type' => 'Measurement',
- 'uid' => Str::uuid(),
- 'is_active' => true,
- 'removal_memo' => null,
- 'removed_at' => null,
- 'effective_date' => $date,
- 'label' => 'DBP',
- 'memo' => null,
- 'value' => $dbp,
- 'created_by_session_id' => null,
- 'removed_by_session_id' => null,
- 'client_id' => 1,
- 'status' => null,
- 'status_memo' => null,
- 'numeric_value' => $dbp,
- 'client_bdt_measurement_id' => $client_bdt_measurement_id,
- 'parent_measurement_id' => $parent_measurement_id,
- 'source' => 'Device',
- ]);
- // set measurement_id on client_bdt_measurement
- DB::table('client_bdt_measurement')
- ->where('id', $client_bdt_measurement_id)
- ->update([
- 'measurement_id' => $parent_measurement_id
- ]);
- // -- WEIGHT -----------------------------------------------------------
- $weight = rand(120, 145);
- // create bdt_measurement
- $bdt_measurement_id = DB::table('bdt_measurement')->insertGetId([
- 'id' => $bdt_measurement_next_id++,
- 'uid' => Str::uuid(),
- 'imei' => $weightDeviceIMEI,
- 'ts' => strtotime($date),
- 'battery_voltage' => '12',
- 'signal_strength' => '100',
- 'value_tare' => null,
- 'value_weight' => round($weight / 0.00220462),
- 'weight_in_pounds' => $weight,
- 'value_systolic' => null,
- 'value_diastolic' => null,
- 'value_pulse' => null,
- 'value_unit' => null,
- 'value_irregular' => null,
- 'rssi' => null,
- 'device_id' => null,
- 'device_category' => 'WEIGHT',
- 'created_at' => null,
- 'created_by_session_id' => null,
- 'type' => 'BDTMeasurement',
- 'diastolic_bp_in_mm_hg' => null,
- 'systolic_bp_in_mm_hg' => null,
- ]);
- // create client_bdt_measurement
- $client_bdt_measurement_id = DB::table('client_bdt_measurement')->insertGetId([
- 'id' => $client_bdt_measurement_next_id++,
- 'uid' => Str::uuid(),
- 'client_id' => $clientID,
- 'bdt_measurement_id' => $bdt_measurement_id,
- 'status' => null,
- 'status_memo' => null,
- 'created_at' => null,
- 'created_by_session_id' => null,
- 'type' => 'ClientBDTMeasurement',
- 'measurement_id' => null, // to update at the end
- ]);
- // create measurement (1 parent only)
- $parent_measurement_id = DB::table('measurement')->insertGetId([
- 'id' => $measurement_next_id++,
- 'created_at' => date('Y-m-d'),
- 'type' => 'Measurement',
- 'uid' => Str::uuid(),
- 'is_active' => true,
- 'removal_memo' => null,
- 'removed_at' => null,
- 'effective_date' => $date,
- 'label' => 'WEIGHT',
- 'memo' => null,
- 'value' => "$weight lbs",
- 'created_by_session_id' => null,
- 'removed_by_session_id' => null,
- 'client_id' => 1,
- 'status' => null,
- 'status_memo' => null,
- 'numeric_value' => $weight,
- 'client_bdt_measurement_id' => $client_bdt_measurement_id,
- 'parent_measurement_id' => null,
- 'source' => 'Device',
- ]);
- // set measurement_id on client_bdt_measurement
- DB::table('client_bdt_measurement')
- ->where('id', $client_bdt_measurement_id)
- ->update([
- 'measurement_id' => $parent_measurement_id
- ]);
- }
- }
- }
|