瀏覽代碼

Measurement dummy data seeder

Vijayakrishnan 4 年之前
父節點
當前提交
b765c7db80
共有 1 個文件被更改,包括 250 次插入0 次删除
  1. 250 0
      database/seeds/MeasurementSeeder.php

+ 250 - 0
database/seeds/MeasurementSeeder.php

@@ -0,0 +1,250 @@
+<?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(125, 150);
+            $dbp = rand(75, 100);
+            $pulse = rand(60, 95);
+
+            // 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_removed' => false,
+                '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_removed' => false,
+                '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_removed' => false,
+                '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(110, 190);
+
+            // 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_removed' => false,
+                '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' => null,
+                '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
+                ]);
+
+        }
+
+    }
+}