<?php

use App\Models\Client;
use App\Models\Point;
use App\Models\Note;
/** @var Client $patient */
/** @var Note $note */

if(!@$note) {
    $note = $patient->coreNote;
}

$fields = [
    [
        "Head" => ["Trauma"],
        "Eyes" => ["Blindness", "Cataracts", "Glaucoma", "Wears glasses/contacts"],
        "Ears" => ["Hearing aids"],
        "Nose/Sinuses" => ["Allergic Rhinitis", "Sinus infections"],
        "Mouth/Throat/Teeth" => ["Dentures"],
        "Cardiovascular" => ["Aneurysm", "Angina", "DVT", "Dysrhythmia", "HTN", "Murmur", "Myocardial infarction", "Other heart disease"],
    ],
    [
        "Respiratory" => ["Asthma", "Bronchitis", "COPD - Bronchitis/Emphysema", "Pleuritis", "Pneumonia"],
        "Gastrointestinal" => ["Cirrhosis", "GERD", "Gallbladder disease", "Heartburn", "Hemorrhoids", "Hepatitis", "Hiatal hernia", "Jaundice", "Ulcer"],
        "Genitourinary" => ["Hernia", "Incontinence", "Nephrolithiasis", "Other kidney disease", "STDs", "UTI(s)"],
    ],
    [
        "Musculoskeletal" => ["Arthritis", "Gout", "M/S injury"],
        "Skin" => ["Dermatitis", "Mole(s)", "Other skin condition(s)", "Psoriasis"],
        "Neurological" => ["Epilepsy", "Seizures", "Severe headaches, migraines", "Stroke", "TIA"],
        "Psychiatric" => ["Bipolar disorder", "Depression", "Hallucinations, delusions", "Suicidal ideation", "Suicide attempts"],
    ],
    [
        "Endocrine" => ["Goiter", "Hyperlipidemia", "Hypothyroidism", "Thyroid disease", "Thyroiditis", "Type I DM", "Type II DM"],
        "Heme/Onc" => ["Anemia", "Cancer"],
        "Infectious" => ["HIV", "STDs", "Tuberculosis (dz)", "Tuberculosis (exposure)"],
    ]
];

$contentData = [
    "bloodType" => "",
    "bloodRH" => "",
    "common" => [],
    "customFields" => [],
    "comments" => "",
];
$isempty = false;

if(!@$sessionKey) {
    $sessionKey = request()->cookie('sessionKey');
}

$point = Point::getOrCreateOnlyTopLevelPointOfCategory($note, 'PAST_MEDICAL_HISTORY', $sessionKey, true);

$contentData = $parsed = false;

$rel = !!$point->relevanceToNote($note);

if ($point->lastChildReview && $point->lastChildReview->data && ($rel || $point->lastChildReview->added_in_note_id === $note->id)) {
    $point->lastChildReview->data = json_decode($point->lastChildReview->data, true);
    $contentData = $parsed = $point->lastChildReview->data;
}

if ($contentData) {

    $blood = [];
    if(isset($contentData['bloodType'])) {
        $blood[] = $contentData['bloodType'];
    }
    if(isset($contentData['bloodRH'])) {
        $blood[] = $contentData['bloodRH'];
    }
    $blood = implode(" ", $blood);
    if(!empty(trim($blood))) { ?>
        <div class="mb-2">
            <div>Blood Type &amp; RH: <b><?= $blood ?></b></div>
        </div>
    <?php }

	$commonMap = [];

    for ($i = 0; $i < count($fields); $i++):
        foreach($fields[$i] as $head => $values):
            for($k = 0; $k < count($values); $k++):
		$value = $values[$k];
                $fName = $head . '_' . sanitize_field_name($values[$k]);
		if(@$contentData['common'][$fName]) {
			if(!isset($commonMap[$head])) {
				$commonMap[$head] = [];
			}
			$commonMap[$head][] = ['value' => $value, 'fName' => $fName, 'comments' => @$contentData['common'][$fName.'__comments']];
		?>
                    <div class="d-none">
                        <?= ucwords($head) ?>
                        <i class="fa fa-arrow-right text-sm text-secondary"></i>
                        <span class="font-weight-bold"><?= $values[$k] ?></span>
                        <?php if(@$contentData['common'][$fName . '__comments']): ?>
                            <span class="text-sm ml-1 text-secondary">(<?= $contentData['common'][$fName . '__comments'] ?>)</span>
                        <?php endif; ?>
                    </div>
                <?php
                }
            endfor;
        endforeach;
    endfor;

	// var_dump(json_encode($commonMap));
	?> <table class="table-bordered table-xs table-cage mb-0"> <?php
	foreach($commonMap as $head => $set):
		?>
		<tr>
			<td class="font-weight-bold"><?= ucwords($head) ?></td>
			<td class="px-2">
			<?php $out = []; foreach($set as $item) { $out[] = '<span class="__font-weight-bold">' . $item['value'] . '</span>' . ($item['comments'] ? ('<span class="text-sm ml-1 text-secondary">(' . $item['comments'] . ')</span>') : ''); } echo implode(', ', $out); ?>
			</td>
			<td></td>
		</tr>
		<?php
	endforeach;
	?>

	<?php

    // custom fields

    if(isset($contentData['customFields']) && count($contentData['customFields'])):
        ?> <tr class=""> <?php
        for ($i = 0; $i < count($contentData['customFields']); $i++):
            $item = $contentData['customFields'][$i];
            if($item['value']): ?>
                <td>
                    <span class="font-weight-bold">Other</span>
                </td>
		<td>
		    <span class="__font-weight-bold"><?= $item['label'] ?></span>
                    <?php if($item['comments']): ?>
                        <span class="text-sm ml-1 text-secondary">(<?= $item['comments'] ?>)</span>
                    <?php endif; ?>
                </td>
		<td></td>
            <?php
            endif;
        endfor;
        ?> </tr> <?php
    endif;

	echo '</table>';

    if(isset($contentData['comments']) && !empty(trim($contentData['comments']))) { ?>
        <div class="mt-2 mb-1">
            <b>Comments: </b><?= $contentData['comments'] ?>
        </div>
    <?php }

} else {
    echo '<div class="text-secondary">-</div>';
}
?>

