Explorar o código

vitals_may21 - v1

Vijayakrishnan %!s(int64=4) %!d(string=hai) anos
pai
achega
1c9de38f0d

+ 10 - 0
resources/views/app/patient/canvas-sections/vitals_may21/default.php

@@ -0,0 +1,10 @@
+<?php
+
+$canvasData = [];
+if ($patient->canvas_data) {
+    $canvasData = json_decode($patient->canvas_data, true);
+    if (isset($canvasData["vitals_may21"])) {
+        $canvasData = $canvasData["vitals_may21"];
+    }
+}
+$contentData = $canvasData;

+ 375 - 0
resources/views/app/patient/canvas-sections/vitals_may21/form.blade.php

@@ -0,0 +1,375 @@
+<?php
+$cdFormat = [
+    "effectiveDate" => (@$note ? friendlier_date($note->effective_dateest) : date('Y-m-d')),
+    "note_uid" => (@$note ? $note->uid : ''),
+    "temperature" => [
+        "value" => '',
+        "baseline" => '',
+        "deviceRemarks" => [
+            "hasDevice" => null,
+            "issues" => null,
+            "other" => null,
+        ]
+    ],
+    "bp" => [
+        "valueSystolic" => '',
+        "valueDiastolic" => '',
+        "baselineSystolicMin" => '',
+        "baselineSystolicMax" => '',
+        "baselineDiastolicMin" => '',
+        "baselineDiastolicMax" => '',
+        "deviceRemarks" => [
+            "hasDevice" => null,
+            "issues" => null,
+            "other" => null,
+        ]
+    ],
+    "pulse" => [
+        "value" => '',
+        "baseline" => '',
+        "deviceRemarks" => [
+            "hasDevice" => null,
+            "issues" => null,
+            "other" => null,
+        ]
+    ],
+    "spO2" => [
+        "value" => '',
+        "baseline" => '',
+        "deviceRemarks" => [
+            "hasDevice" => null,
+            "issues" => null,
+            "other" => null,
+        ]
+    ],
+    "weight" => [
+        "value" => '',
+        "baselineMin" => '',
+        "baselineMax" => '',
+        "isCHF" => null,
+        "deviceRemarks" => [
+            "hasDevice" => null,
+            "issues" => null,
+            "other" => null,
+        ]
+    ],
+    "height" => [
+        "valueFeet" => '',
+        "valueInches" => '',
+        "baselineFeet" => '',
+        "baselineInches" => '',
+        "isCHF" => null,
+        "deviceRemarks" => [
+            "hasDevice" => null,
+            "issues" => null,
+            "other" => null,
+        ]
+    ],
+    "other" => null,
+];
+if(!$contentData) {
+    $contentData = $cdFormat;
+}
+else {
+    foreach ($cdFormat as $k => $v) {
+        if(!isset($contentData[$k])) {
+            $contentData[$k] = $v;
+        }
+    }
+}
+$formID = rand(0, 100000);
+?>
+<div id="vitalsMay21Section">
+
+    <input type="hidden" name="data" value="{{json_encode($contentData)}}">
+
+    <table class="table table-sm table-bordered mb-2 table-edit-sheet">
+        <thead class="bg-light text-secondary font-weight-bold">
+        <tr>
+            <th class="border-bottom-0">&nbsp;</th>
+            <th class="border-bottom-0">Value ({{@$note ? friendlier_date($note->effective_dateest) : date('Y-m-d')}})</th>
+            <th class="border-bottom-0">Baseline</th>
+            <th class="border-bottom-0">Device Remarks</th>
+        </tr>
+        </thead>
+        <tbody class="bg-white">
+        <!--temp-->
+        <tr>
+            <td class="text-secondary font-weight-bold px-2 py-1 bg-white">Temperature</td>
+            <td>
+                <div class="px-2 text-sm text-secondary my-1">Value (℉)</div>
+                <input class="form-control form-control-sm border-top border-bottom-0" type="text" v-model="data.temperature.value">
+            </td>
+            <td>
+                <div class="px-2 text-sm text-secondary my-1">Baseline (℉)</div>
+                <input class="form-control form-control-sm border-top border-bottom-0" type="text" v-model="data.temperature.baseline">
+            </td>
+            <td class="pt-1">
+                <label class="d-flex align-items-center px-2">
+                    <input type="checkbox" v-model="data.temperature.deviceRemarks.hasDevice">
+                    <span class="py-1 ml-1">Has device at home?</span>
+                </label>
+                <div v-if="data.temperature.deviceRemarks.hasDevice">
+                    <div class="text-sm text-secondary my-1 px-2">Any issues?</div>
+                    <input class="form-control form-control-sm" type="text" v-model="data.temperature.deviceRemarks.issues">
+                    <div class="text-sm text-secondary my-1 px-2">Other</div>
+                    <input class="form-control form-control-sm border-bottom-0" type="text" v-model="data.temperature.deviceRemarks.other">
+                </div>
+            </td>
+        </tr>
+
+        <!--bp-->
+        <tr>
+            <td class="text-secondary font-weight-bold px-2 py-1 bg-white">BP</td>
+            <td>
+                <div class="d-flex align-items-center">
+                    <div class="w-50 border-right">
+                        <div class="px-2 text-sm text-secondary my-1">Systolic (mmHg)</div>
+                        <input class="form-control form-control-sm border-top" type="text" v-model="data.bp.valueSystolic">
+                    </div>
+                    <div class="w-50">
+                        <div class="px-2 text-sm text-secondary my-1">Diastolic (mmHg)</div>
+                        <input class="form-control form-control-sm border-top" type="text" v-model="data.bp.valueDiastolic">
+                    </div>
+                </div>
+            </td>
+            <td>
+                <div class="d-flex align-items-center">
+                    <div class="w-50 border-right">
+                        <div class="px-2 text-sm text-secondary my-1">Systolic Min (mmHg)</div>
+                        <input class="form-control form-control-sm border-top" type="text" v-model="data.bp.baselineSystolicMin">
+                    </div>
+                    <div class="w-50">
+                        <div class="px-2 text-sm text-secondary my-1">Diastolic Min (mmHg)</div>
+                        <input class="form-control form-control-sm border-top" type="text" v-model="data.bp.baselineDiastolicMin">
+                    </div>
+                </div>
+                <div class="d-flex align-items-center mt-2">
+                    <div class="w-50 border-right">
+                        <div class="px-2 text-sm text-secondary my-1">Systolic Max (mmHg)</div>
+                        <input class="form-control form-control-sm border-top border-bottom-0" type="text" v-model="data.bp.baselineSystolicMax">
+                    </div>
+                    <div class="w-50">
+                        <div class="px-2 text-sm text-secondary my-1">Diastolic Max (mmHg)</div>
+                        <input class="form-control form-control-sm border-top border-bottom-0" type="text" v-model="data.bp.baselineDiastolicMax">
+                    </div>
+                </div>
+            </td>
+            <td class="pt-1">
+                <label class="d-flex align-items-center px-2">
+                    <input type="checkbox" v-model="data.bp.deviceRemarks.hasDevice">
+                    <span class="py-1 ml-1">Has device at home?</span>
+                </label>
+                <div v-if="data.bp.deviceRemarks.hasDevice">
+                    <div class="text-sm text-secondary my-1 px-2">Any issues?</div>
+                    <input class="form-control form-control-sm" type="text" v-model="data.bp.deviceRemarks.issues">
+                    <div class="text-sm text-secondary my-1 px-2">Other</div>
+                    <input class="form-control form-control-sm border-bottom-0" type="text" v-model="data.bp.deviceRemarks.other">
+                </div>
+            </td>
+        </tr>
+
+        <!--pulse-->
+        <tr>
+            <td class="text-secondary font-weight-bold px-2 py-1 bg-white">Pulse</td>
+            <td>
+                <div class="px-2 text-sm text-secondary my-1">Value (bpm)</div>
+                <input class="form-control form-control-sm border-top border-bottom-0" type="text" v-model="data.pulse.value">
+            </td>
+            <td>
+                <div class="px-2 text-sm text-secondary my-1">Baseline (bpm)</div>
+                <input class="form-control form-control-sm border-top border-bottom-0" type="text" v-model="data.pulse.baseline">
+            </td>
+            <td class="pt-1">
+                <label class="d-flex align-items-center px-2">
+                    <input type="checkbox" v-model="data.pulse.deviceRemarks.hasDevice">
+                    <span class="py-1 ml-1">Has device at home?</span>
+                </label>
+                <div v-if="data.pulse.deviceRemarks.hasDevice">
+                    <div class="text-sm text-secondary my-1 px-2">Any issues?</div>
+                    <input class="form-control form-control-sm" type="text" v-model="data.pulse.deviceRemarks.issues">
+                    <div class="text-sm text-secondary my-1 px-2">Other</div>
+                    <input class="form-control form-control-sm border-bottom-0" type="text" v-model="data.pulse.deviceRemarks.other">
+                </div>
+            </td>
+        </tr>
+
+        <!--spO2-->
+        <tr>
+            <td class="text-secondary font-weight-bold px-2 py-1 bg-white">SpO2</td>
+            <td>
+                <div class="px-2 text-sm text-secondary my-1">Value (%)</div>
+                <input class="form-control form-control-sm border-top border-bottom-0" type="text" v-model="data.spO2.value">
+            </td>
+            <td>
+                <div class="px-2 text-sm text-secondary my-1">Baseline (%)</div>
+                <input class="form-control form-control-sm border-top border-bottom-0" type="text" v-model="data.spO2.baseline">
+            </td>
+            <td class="pt-1">
+                <label class="d-flex align-items-center px-2">
+                    <input type="checkbox" v-model="data.spO2.deviceRemarks.hasDevice">
+                    <span class="py-1 ml-1">Has device at home?</span>
+                </label>
+                <div v-if="data.spO2.deviceRemarks.hasDevice">
+                    <div class="text-sm text-secondary my-1 px-2">Any issues?</div>
+                    <input class="form-control form-control-sm" type="text" v-model="data.spO2.deviceRemarks.issues">
+                    <div class="text-sm text-secondary my-1 px-2">Other</div>
+                    <input class="form-control form-control-sm border-bottom-0" type="text" v-model="data.spO2.deviceRemarks.other">
+                </div>
+            </td>
+        </tr>
+
+        <!--weight-->
+        <tr>
+            <td class="text-secondary font-weight-bold px-2 py-1 bg-white">Weight</td>
+            <td>
+                <div class="px-2 text-sm text-secondary my-1">Value (lbs)</div>
+                <input class="form-control form-control-sm border-top" type="text" v-model="data.weight.value">
+            </td>
+            <td>
+                <div class="d-flex align-items-center">
+                    <div class="w-50 border-right">
+                        <div class="px-2 text-sm text-secondary my-1">Baseline Min (lbs)</div>
+                        <input class="form-control form-control-sm border-top" type="text" v-model="data.weight.baselineMin">
+                    </div>
+                    <div class="w-50">
+                        <div class="px-2 text-sm text-secondary my-1">Baseline Max (lbs)</div>
+                        <input class="form-control form-control-sm border-top" type="text" v-model="data.weight.baselineMax">
+                    </div>
+                </div>
+                <label class="my-2 text-left px-2">
+                    <input type="checkbox" v-model="data.weight.isCHF">
+                    Is CHF?
+                </label>
+            </td>
+            <td class="pt-1">
+                <label class="d-flex align-items-center px-2">
+                    <input type="checkbox" v-model="data.weight.deviceRemarks.hasDevice">
+                    <span class="py-1 ml-1">Has device at home?</span>
+                </label>
+                <div v-if="data.weight.deviceRemarks.hasDevice">
+                    <div class="text-sm text-secondary my-1 px-2">Any issues?</div>
+                    <input class="form-control form-control-sm" type="text" v-model="data.weight.deviceRemarks.issues">
+                    <div class="text-sm text-secondary my-1 px-2">Other</div>
+                    <input class="form-control form-control-sm border-bottom-0" type="text" v-model="data.weight.deviceRemarks.other">
+                </div>
+            </td>
+        </tr>
+
+        <!--height-->
+        <tr>
+            <td class="text-secondary font-weight-bold px-2 py-1 bg-white">Height</td>
+            <td>
+                <div class="d-flex align-items-center">
+                    <div class="w-50 border-right">
+                        <div class="px-2 text-sm text-secondary my-1">Feet</div>
+                        <input class="form-control form-control-sm border-top border-bottom-0" type="text" v-model="data.height.valueFeet">
+                    </div>
+                    <div class="w-50">
+                        <div class="px-2 text-sm text-secondary my-1">Inches</div>
+                        <input class="form-control form-control-sm border-top border-bottom-0" type="text" v-model="data.height.valueInches">
+                    </div>
+                </div>
+            </td>
+            <td>
+                <div class="d-flex align-items-center">
+                    <div class="w-50 border-right">
+                        <div class="px-2 text-sm text-secondary my-1">Baseline Feet</div>
+                        <input class="form-control form-control-sm border-top border-bottom-0" type="text" v-model="data.height.baselineFeet">
+                    </div>
+                    <div class="w-50">
+                        <div class="px-2 text-sm text-secondary my-1">Baseline Inches</div>
+                        <input class="form-control form-control-sm border-top border-bottom-0" type="text" v-model="data.height.baselineInches">
+                    </div>
+                </div>
+            </td>
+            <td class="pt-1">
+                <label class="d-flex align-items-center px-2">
+                    <input type="checkbox" v-model="data.height.deviceRemarks.hasDevice">
+                    <span class="py-1 ml-1">Has device at home?</span>
+                </label>
+                <div v-if="data.height.deviceRemarks.hasDevice">
+                    <div class="text-sm text-secondary my-1 px-2">Any issues?</div>
+                    <input class="form-control form-control-sm" type="text" v-model="data.height.deviceRemarks.issues">
+                    <div class="text-sm text-secondary my-1 px-2">Other</div>
+                    <input class="form-control form-control-sm border-bottom-0" type="text" v-model="data.height.deviceRemarks.other">
+                </div>
+            </td>
+        </tr>
+
+        <!--other-->
+        <tr>
+            <td class="text-secondary font-weight-bold px-2 py-1 bg-white">Other</td>
+            <td colspan="3"><input class="form-control form-control-sm" type="text" v-model="data.other"></td>
+        </tr>
+        </tbody>
+    </table>
+</div>
+<script>
+    (function() {
+        function init() {
+            window.clientVitalsMay21App = new Vue({
+                el: '#vitalsMay21Section',
+                data: {
+                    data: <?= json_encode($contentData) ?>
+                },
+                mounted: function() {
+                    // $(this.$el).closest('#vitalsMay21Section').find('[name="data"]').val(
+                    //     JSON.stringify(this.cleanObject(this.data))
+                    // );
+                },
+                watch: {
+                    data: {
+                        handler: function(val, oldVal) {
+                            $(this.$el).closest('#vitalsMay21Section').find('[name="data"]').val(
+                                JSON.stringify(this.cleanObject(this.data))
+                            );
+                        },
+                        deep: true
+                    },
+                },
+                computed: {
+                    // bmi: function () {
+                    //     let result = '';
+                    //     let h = this.items.heightInInches, w = this.items.weightPounds;
+                    //     if(!h || !w) {
+                    //         return result;
+                    //     }
+                    //     h = h.value;
+                    //     w = w.value;
+                    //     try {
+                    //         h = parseFloat(h);
+                    //         w = parseFloat(w);
+                    //         if(!h || !w) {
+                    //             this.items.bmi.value = '';
+                    //             return result;
+                    //         }
+                    //         let result = (w / [ h * h]) * 703;
+                    //         return result.toFixed(1);
+                    //     }
+                    //     catch (e) {
+                    //         return result;
+                    //     }
+                    // }
+                },
+                methods: {
+                    cleanObject: function(_source) {
+                        let plObject = {};
+                        for (let y in _source) {
+                            if(_source.hasOwnProperty(y)) {
+                                plObject[y] = _source[y];
+                            }
+                        }
+                        plObject.bmi = {
+                            label: "BMI (kg/m²)",
+                            value: this.bmi,
+                            date: this.bmi ? this.today : '',
+                        };
+                        return plObject;
+                    }
+                }
+            });
+        }
+        addMCInitializer('client-vitals-may21', init, '#vitalsMay21Section');
+    })();
+</script>

+ 277 - 0
resources/views/app/patient/canvas-sections/vitals_may21/summary.php

@@ -0,0 +1,277 @@
+<?php
+use App\Models\Note;
+use App\Models\Client;
+/** @var Note $note */
+/** @var Client $patient */
+if(!@$contentData) {
+    $contentData = [
+        "effectiveDate" => (@$note ? friendlier_date($note->effective_dateest) : date('Y-m-d')),
+        "note_uid" => (@$note ? $note->uid : ''),
+        "temperature" => [
+            "value" => '',
+            "baseline" => '',
+            "deviceRemarks" => [
+                "hasDevice" => null,
+                "issues" => null,
+                "other" => null,
+            ]
+        ],
+        "bp" => [
+            "valueSystolic" => '',
+            "valueDiastolic" => '',
+            "baselineSystolicMin" => '',
+            "baselineSystolicMax" => '',
+            "baselineDiastolicMin" => '',
+            "baselineDiastolicMax" => '',
+            "deviceRemarks" => [
+                "hasDevice" => null,
+                "issues" => null,
+                "other" => null,
+            ]
+        ],
+        "pulse" => [
+            "value" => '',
+            "baseline" => '',
+            "deviceRemarks" => [
+                "hasDevice" => null,
+                "issues" => null,
+                "other" => null,
+            ]
+        ],
+        "spO2" => [
+            "value" => '',
+            "baseline" => '',
+            "deviceRemarks" => [
+                "hasDevice" => null,
+                "issues" => null,
+                "other" => null,
+            ]
+        ],
+        "weight" => [
+            "value" => '',
+            "baselineMin" => '',
+            "baselineMax" => '',
+            "isCHF" => null,
+            "deviceRemarks" => [
+                "hasDevice" => null,
+                "issues" => null,
+                "other" => null,
+            ]
+        ],
+        "height" => [
+            "valueFeet" => '',
+            "valueInches" => '',
+            "baselineFeet" => '',
+            "baselineInches" => '',
+            "isCHF" => null,
+            "deviceRemarks" => [
+                "hasDevice" => null,
+                "issues" => null,
+                "other" => null,
+            ]
+        ],
+        "other" => null,
+    ];
+    if ($patient->canvas_data) {
+        $canvasData = json_decode($patient->canvas_data, true);
+        if (isset($canvasData["vitals_may21"])) {
+            if (isset($canvasData["vitals_may21"]["note_uid"]) && $canvasData["vitals_may21"]["note_uid"] === @$note->uid) {
+                $contentData = $canvasData["vitals_may21"];
+            }
+        }
+    }
+}
+?>
+<table class="table table-sm table-bordered mb-2">
+    <thead>
+    <tr class="text-secondary font-weight-bold">
+        <td class="border-bottom-0">&nbsp;</td>
+        <td class="border-bottom-0">Value (<?= @$note ? friendlier_date($note->effective_dateest) : date('Y-m-d') ?>)</td>
+        <td class="border-bottom-0">Baseline</td>
+        <td class="border-bottom-0">Device Remarks</td>
+    </tr>
+    </thead>
+    <tbody>
+    <!--temp-->
+    <?php if (isset($contentData["temperature"])): ?>
+        <tr>
+            <td class="bg-white text-secondary font-weight-bold">Temperature</td>
+            <td><?= @$contentData["temperature"]["value"] ? $contentData["temperature"]["value"] . ' ℉' : '-' ?></td>
+            <td><?= @$contentData["temperature"]["baseline"] ? $contentData["temperature"]["baseline"] . ' ℉' : '-' ?></td>
+            <td>
+                <?php if (isset($contentData["temperature"]["deviceRemarks"]["hasDevice"])): ?>
+                    Has device: <b><?= $contentData["temperature"]["deviceRemarks"]["hasDevice"] ? 'Yes' : 'No ' ?></b>
+                    <?php if ($contentData["temperature"]["deviceRemarks"]["hasDevice"]): ?>
+                        <?php if (isset($contentData["temperature"]["deviceRemarks"]["issues"])): ?>
+                            <div class="text-sm">
+                                Issues: <?= $contentData["temperature"]["deviceRemarks"]["issues"] ?></div>
+                        <?php endif; ?>
+                        <?php if (isset($contentData["temperature"]["deviceRemarks"]["other"])): ?>
+                            <div class="text-sm">
+                                Other: <?= $contentData["temperature"]["deviceRemarks"]["other"] ?></div>
+                        <?php endif; ?>
+                    <?php endif; ?>
+                <?php else: ?>
+                    -
+                <?php endif; ?>
+            </td>
+        </tr>
+    <?php endif; ?>
+
+    <!--bp-->
+    <?php if (isset($contentData["bp"])): ?>
+        <tr>
+            <td class="bg-white text-secondary font-weight-bold">BP</td>
+            <td><?= $contentData["bp"]["valueSystolic"] . '/' . $contentData["bp"]["valueDiastolic"] . ' mmHg' ?></td>
+            <td>
+                <div>
+                    Systolic: <?= @$contentData["bp"]["baselineSystolicMin"] . ' - ' . $contentData["bp"]["baselineSystolicMax"] . 'mmHg' ?>
+                </div>
+                <div>
+                    Diastolic: <?= @$contentData["bp"]["baselineDiastolicMin"] . ' - ' . $contentData["bp"]["baselineDiastolicMax"] . 'mmHg' ?>
+                </div>
+            </td>
+            <td>
+                <?php if (isset($contentData["bp"]["deviceRemarks"]["hasDevice"])): ?>
+                    Has device: <b><?= $contentData["bp"]["deviceRemarks"]["hasDevice"] ? 'Yes' : 'No ' ?></b>
+                    <?php if ($contentData["bp"]["deviceRemarks"]["hasDevice"]): ?>
+                        <?php if (isset($contentData["bp"]["deviceRemarks"]["issues"])): ?>
+                            <div class="text-sm">
+                                Issues: <?= $contentData["bp"]["deviceRemarks"]["issues"] ?></div>
+                        <?php endif; ?>
+                        <?php if (isset($contentData["bp"]["deviceRemarks"]["other"])): ?>
+                            <div class="text-sm">
+                                Other: <?= $contentData["bp"]["deviceRemarks"]["other"] ?></div>
+                        <?php endif; ?>
+                    <?php endif; ?>
+                <?php else: ?>
+                    -
+                <?php endif; ?>
+            </td>
+        </tr>
+    <?php endif; ?>
+
+    <!--pulse-->
+    <?php if (isset($contentData["pulse"])): ?>
+        <tr>
+            <td class="bg-white text-secondary font-weight-bold">Pulse</td>
+            <td><?= @$contentData["pulse"]["value"] ? $contentData["pulse"]["value"] . ' bpm' : '-' ?></td>
+            <td><?= @$contentData["pulse"]["baseline"] ? $contentData["pulse"]["baseline"] . ' bpm' : '-' ?></td>
+            <td>
+                <?php if (isset($contentData["pulse"]["deviceRemarks"]["hasDevice"])): ?>
+                    Has device: <b><?= $contentData["pulse"]["deviceRemarks"]["hasDevice"] ? 'Yes' : 'No ' ?></b>
+                    <?php if ($contentData["pulse"]["deviceRemarks"]["hasDevice"]): ?>
+                        <?php if (isset($contentData["pulse"]["deviceRemarks"]["issues"])): ?>
+                            <div class="text-sm">
+                                Issues: <?= $contentData["pulse"]["deviceRemarks"]["issues"] ?></div>
+                        <?php endif; ?>
+                        <?php if (isset($contentData["pulse"]["deviceRemarks"]["other"])): ?>
+                            <div class="text-sm">
+                                Other: <?= $contentData["pulse"]["deviceRemarks"]["other"] ?></div>
+                        <?php endif; ?>
+                    <?php endif; ?>
+                <?php else: ?>
+                    -
+                <?php endif; ?>
+            </td>
+        </tr>
+    <?php endif; ?>
+
+    <!--spO2-->
+    <?php if (isset($contentData["spO2"])): ?>
+        <tr>
+            <td class="bg-white text-secondary font-weight-bold">SpO2</td>
+            <td><?= @$contentData["spO2"]["value"] ? $contentData["spO2"]["value"] . ' %' : '-' ?></td>
+            <td><?= @$contentData["spO2"]["baseline"] ? $contentData["spO2"]["baseline"] . ' %' : '-' ?></td>
+            <td>
+                <?php if (isset($contentData["spO2"]["deviceRemarks"]["hasDevice"])): ?>
+                    Has device: <b><?= $contentData["spO2"]["deviceRemarks"]["hasDevice"] ? 'Yes' : 'No ' ?></b>
+                    <?php if ($contentData["spO2"]["deviceRemarks"]["hasDevice"]): ?>
+                        <?php if (isset($contentData["spO2"]["deviceRemarks"]["issues"])): ?>
+                            <div class="text-sm">
+                                Issues: <?= $contentData["spO2"]["deviceRemarks"]["issues"] ?></div>
+                        <?php endif; ?>
+                        <?php if (isset($contentData["spO2"]["deviceRemarks"]["other"])): ?>
+                            <div class="text-sm">
+                                Other: <?= $contentData["spO2"]["deviceRemarks"]["other"] ?></div>
+                        <?php endif; ?>
+                    <?php endif; ?>
+                <?php else: ?>
+                    -
+                <?php endif; ?>
+            </td>
+        </tr>
+    <?php endif; ?>
+
+    <!--weight-->
+    <?php if (isset($contentData["weight"])): ?>
+        <tr>
+            <td class="bg-white text-secondary font-weight-bold">Weight</td>
+            <td><?= @$contentData["weight"]["value"] ? $contentData["weight"]["value"] . ' lbs' : '-' ?></td>
+            <td>
+                <?= @$contentData["weight"]["baselineMin"] . ' - ' . $contentData["weight"]["baselineMax"] . 'lbs' ?>
+                <div>
+                    CHF: <?= @$contentData["weight"]["isCHF"] ? 'Yes' : 'No' ?>
+                </div>
+            </td>
+            <td>
+                <?php if (isset($contentData["weight"]["deviceRemarks"]["hasDevice"])): ?>
+                    Has device: <b><?= $contentData["weight"]["deviceRemarks"]["hasDevice"] ? 'Yes' : 'No ' ?></b>
+                    <?php if ($contentData["weight"]["deviceRemarks"]["hasDevice"]): ?>
+                        <?php if (isset($contentData["weight"]["deviceRemarks"]["issues"])): ?>
+                            <div class="text-sm">
+                                Issues: <?= $contentData["weight"]["deviceRemarks"]["issues"] ?></div>
+                        <?php endif; ?>
+                        <?php if (isset($contentData["weight"]["deviceRemarks"]["other"])): ?>
+                            <div class="text-sm">
+                                Other: <?= $contentData["weight"]["deviceRemarks"]["other"] ?></div>
+                        <?php endif; ?>
+                    <?php endif; ?>
+                <?php else: ?>
+                    -
+                <?php endif; ?>
+            </td>
+        </tr>
+    <?php endif; ?>
+
+    <!--height-->
+    <?php if (isset($contentData["height"])): ?>
+        <tr>
+            <td class="bg-white text-secondary font-weight-bold">Height</td>
+            <td>
+                <?= @$contentData["height"]["valueFeet"] . ' ft ' . @$contentData["height"]["valueInches"] . ' in' ?>
+            </td>
+            <td>
+                <?= @$contentData["height"]["baselineFeet"] . ' ft ' . $contentData["height"]["baselineInches"] . ' in' ?>
+            </td>
+            <td>
+                <?php if (isset($contentData["height"]["deviceRemarks"]["hasDevice"])): ?>
+                    Has device: <b><?= $contentData["height"]["deviceRemarks"]["hasDevice"] ? 'Yes' : 'No ' ?></b>
+                    <?php if ($contentData["height"]["deviceRemarks"]["hasDevice"]): ?>
+                        <?php if (isset($contentData["height"]["deviceRemarks"]["issues"])): ?>
+                            <div class="text-sm">
+                                Issues: <?= $contentData["height"]["deviceRemarks"]["issues"] ?></div>
+                        <?php endif; ?>
+                        <?php if (isset($contentData["height"]["deviceRemarks"]["other"])): ?>
+                            <div class="text-sm">
+                                Other: <?= $contentData["height"]["deviceRemarks"]["other"] ?></div>
+                        <?php endif; ?>
+                    <?php endif; ?>
+                <?php else: ?>
+                    -
+                <?php endif; ?>
+            </td>
+        </tr>
+    <?php endif; ?>
+
+    <!--other-->
+    <?php if (isset($contentData["other"])): ?>
+        <tr>
+            <td class="bg-white text-secondary font-weight-bold">Other</td>
+            <td colspan="3"><?= @$contentData["other"] ?></td>
+        </tr>
+    <?php endif; ?>
+    </tbody>
+    </thead>
+</table>
+