patient.blade.php 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574
  1. @extends('layouts.template')
  2. @section('content')
  3. <div class="container-fluid">
  4. <div class="row">
  5. <nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-light sidebar collapse">
  6. <div class="sidebar-sticky pt-3">
  7. <ul class="nav flex-column">
  8. <li class="nav-item"><a class="nav-link"
  9. href="{{ route('patients.view.dashboard', ['patient' => $patient]) }}">Dashboard</a>
  10. </li>
  11. <li class="nav-item"><a class="nav-link"
  12. href="{{ route('patients.view.care-plan', ['patient' => $patient]) }}">Care
  13. Plan</a></li>
  14. <li class="nav-item"><a class="nav-link"
  15. href="{{ route('patients.view.medications', ['patient' => $patient]) }}">Medications</a>
  16. </li>
  17. <li class="nav-item"><a class="nav-link"
  18. href="{{ route('patients.view.dx-and-focus-areas', ['patient' => $patient]) }}">Dx
  19. and Focus Areas</a></li>
  20. <li class="nav-item"><a class="nav-link"
  21. href="{{ route('patients.view.care-team', ['patient' => $patient]) }}">Care
  22. Team</a></li>
  23. <li class="nav-item"><a class="nav-link"
  24. href="{{ route('patients.view.measurements', ['patient' => $patient]) }}">Measurements</a>
  25. </li>
  26. <li class="nav-item"><a class="nav-link"
  27. href="{{ route('patients.view.labs-and-studies', ['patient' => $patient]) }}">Labs
  28. and Studies</a></li>
  29. <li class="nav-item"><a class="nav-link"
  30. href="{{ route('patients.view.history', ['patient' => $patient]) }}">History</a>
  31. </li>
  32. <li class="nav-item"><a class="nav-link"
  33. href="{{ route('patients.view.immunizations', ['patient' => $patient]) }}">Immunizations</a>
  34. </li>
  35. <li class="nav-item"><a class="nav-link"
  36. href="{{ route('patients.view.allergies', ['patient' => $patient]) }}">Allergies</a>
  37. </li>
  38. <li class="nav-item"><a class="nav-link"
  39. href="{{ route('patients.view.notes', ['patient' => $patient]) }}">Notes</a>
  40. </li>
  41. <li class="nav-item"><a class="nav-link"
  42. href="{{ route('patients.view.flowsheets', ['patient' => $patient]) }}">Flowsheets</a>
  43. </li>
  44. <li class="nav-item"><a class="nav-link"
  45. href="{{ route('patients.view.demographics', ['patient' => $patient]) }}">Demographics</a>
  46. </li>
  47. <li class="nav-item"><a class="nav-link"
  48. href="{{ route('patients.view.account', ['patient' => $patient]) }}">Account</a>
  49. </li>
  50. <li class="nav-item"><a class="nav-link"
  51. href="{{ route('patients.view.care-checklist', ['patient' => $patient]) }}">Care
  52. Checklist</a></li>
  53. <li class="nav-item"><a class="nav-link"
  54. href="{{ route('patients.view.documents', ['patient' => $patient]) }}">Documents</a>
  55. </li>
  56. <li class="nav-item"><a class="nav-link"
  57. href="{{ route('patients.view.education', ['patient' => $patient]) }}">Education</a>
  58. </li>
  59. <li class="nav-item"><a class="nav-link"
  60. href="{{ route('patients.view.messaging', ['patient' => $patient]) }}">Messaging</a>
  61. </li>
  62. <li class="nav-item"><a class="nav-link"
  63. href="{{ route('patients.view.duplicate', ['patient' => $patient]) }}">Duplicate</a>
  64. </li>
  65. </ul>
  66. </div>
  67. </nav>
  68. <main role="main" class="col-md-9 ml-sm-auto col-lg-10 px-md-4">
  69. <div class="card mt-3">
  70. <div class=card-header>
  71. <?php
  72. $thumbnail = $patient->profile_picture_base64;
  73. $initials = !$thumbnail ? substr($patient->name_first, 0, 1).substr($patient->name_last, 0, 1) : '';
  74. $online = $patient->is_online ? 'online' : '';
  75. $patientName = implode(', ', array_filter([$patient->name_last, $patient->name_first]));
  76. $confirmedCell = $patient->is_cell_number_confirmed ? $patient->cell_number : null;
  77. $confirmedEmail = $patient->is_email_address_confirmed ? $patient->email_address : null;
  78. $location = implode(', ', array_filter([$patient->home_address_city, $patient->home_address_state]));
  79. $mcpName = implode(', ', array_filter([$patient->mcp->name_last, $patient->mcp->name_first]));
  80. $cmName = $patient->cm ? implode(', ', array_filter([$patient->cm->name_last, $patient->cm->name_first])) : null;
  81. $memberSince = date_diff(date_create($patient->created_at), date_create('now'))->days;
  82. if ($memberSince > 30) $memberSince = date('F, Y', strtotime($patient->created_at));
  83. else if ($memberSince > 1) $memberSince .= ' days ago';
  84. else if ($memberSince === 1) $memberSince = 'yesterday';
  85. else if ($memberSince === 0) $memberSince = 'today';
  86. ?>
  87. <div class=z><div class=header>
  88. @if($patient->is_duplicate)
  89. <h5>This chart is a duplicate of <a href=javascript:void(0)>Cooper, Amiele</a>.</h5><br>
  90. @endif
  91. <div class=hbox>
  92. <div class="thumbnail {{$online}}" style="background-image:<?=$thumbnail?>"><?=$initials?></div>
  93. <section>
  94. <div class=hbox>
  95. <h4>{{$patientName}}</h4>
  96. <i class=chart>[#{{$patient->chart_number}}]</i>
  97. </div>
  98. <div class=separators>
  99. <div>{{$patient->dob}} ({{$patient->age_in_years}} y.o {{$patient->sex}})</div>
  100. <div>
  101. <label>MCN:</label>
  102. @if($patient->was_medicare_validation_successful)
  103. <span>
  104. Valid #,
  105. @if($patient->is_part_b_primary == 'YES')
  106. Medicare Part B
  107. @else
  108. Not Medicare Part B <i class="fa fa-times"></i>
  109. @if($patient->is_medicare_advantage == 'YES')
  110. , Medicare Advantage,
  111. {{$patient->medicare_advantage_plan}}
  112. @endif
  113. @endif
  114. </span>
  115. @else
  116. <div moe>
  117. <a href="" start show>
  118. @if($patient->mcn)
  119. {{$patient->mcn}} INVALID! <i class="fa fa-times"></i>
  120. @else
  121. None provided.
  122. @endif
  123. </a>
  124. <form url="/api/client/putMcn">
  125. <input type="hidden" name="uid" value="{{$patient->uid}}">
  126. <input type="text" name="name_first" value="{{$patient->name_first}}">
  127. <input type="text" name="name_last" value="{{$patient->name_last}}">
  128. <input type="text" name="dob" value="{{$patient->dob}}">
  129. <input type="text" name="mcn" value="{{$patient->mcn}}">
  130. <div>
  131. <button submit>Submit</button>
  132. <button cancel>Cancel</button>
  133. </div>
  134. </form>
  135. </div>
  136. @endif
  137. </div>
  138. </div>
  139. <ul class=hbox>
  140. <li><i class="fa fa-phone-alt" aria-hidden="true"></i> {{$confirmedCell}}</li>
  141. <li><i class="fa fa-envelope" aria-hidden="true"></i> {{$confirmedEmail}}</li>
  142. <li><i class="fa fa-map-marker-alt" aria-hidden="true"></i> {{$location}}</li>
  143. </ul>
  144. <div class=separators>
  145. <div>Joined <?=$memberSince?></div>
  146. <div><label>PCP:</label> {{$mcpName}}</div>
  147. <div><label>MA:</label> {{$cmName}}</div>
  148. </div>
  149. </section>
  150. <section>
  151. <div><label>Allergies:</label> Grass, Pollen, Latex</div>
  152. <div><label>Next Appt:</label> {{$patient->mcp_onboarding_visit_date}}</div>
  153. </section>
  154. <section class=vbox>
  155. <div moe>
  156. <a start show>
  157. <!-- <i class="fa fa-plus-circle"></i> -->
  158. <button>+ Note</button>
  159. </a>
  160. <form url="/api/note/create" right>
  161. <input type="hidden" name="clientUid" value="{{$patient->uid}}">
  162. <div>
  163. <label for="" class="control-label">HCP Pro</label>
  164. <select name="hcpProUid">
  165. <option value="">-- select hcp pro --</option>
  166. @foreach ($pros as $pro)
  167. <option
  168. value="{{$pro->uid}}">{{$pro->name_display}}</option>
  169. @endforeach
  170. </select>
  171. </div>
  172. <div>
  173. <label for="">Ally Pro</label>
  174. <select name="allyProUid">
  175. <option value="">-- select ally pro --</option>
  176. @foreach ($pros as $pro)
  177. <option
  178. value="{{$pro->uid}}">{{$pro->name_display}}</option>
  179. @endforeach
  180. </select>
  181. </div>
  182. <div>
  183. <label for="" class="control-label text-left">Title</label>
  184. <input type="text" name="title">
  185. </div>
  186. <div>
  187. <label for="" class="control-label text-left">Effective date</label>
  188. <input type="date" name="effectiveDateEST">
  189. </div>
  190. <div>
  191. <label for="" class="control-label text-left">Effective time</label>
  192. <input type="time" name="effectiveTime">
  193. </div>
  194. <div>
  195. <button submit>Submit</button>
  196. <button cancel>Cancel</button>
  197. </div>
  198. </form>
  199. </div>
  200. <button>Pt. Ed.</button>
  201. <button>Video</button>
  202. <div moe>
  203. <a start show>
  204. <!-- <i class="fa fa-plus-circle"></i> -->
  205. <button>+ Next Appointment</button>
  206. </a>
  207. <form url="/api/client/setNextAppointment" right>
  208. <input type="hidden" name="uid" value="{{$patient->uid}}">
  209. <div>
  210. <label for="" class="control-label text-left">Date</label>
  211. <input type="date" name="date">
  212. </div>
  213. <div>
  214. <label for="" class="control-label text-left">Is time specific</label>
  215. <input type="checkbox" name="isTimeSpecific">
  216. </div>
  217. <div>
  218. <label for="" class="control-label text-left">Time</label>
  219. <input type="time" name="time">
  220. </div>
  221. <div>
  222. <button submit>Submit</button>
  223. <button cancel>Cancel</button>
  224. </div>
  225. </form>
  226. </div>
  227. </section>
  228. </div>
  229. </div></div> <!-- z -->
  230. </div>
  231. <div class="card-header" style=display:none>
  232. @if($patient->is_duplicate)
  233. <div class="alert alert-danger">
  234. This chart is a duplicate of: __________
  235. </div>
  236. @endif
  237. <div class="d-flex">
  238. <div class="">
  239. <div class="d-flex">
  240. <div class="d-flex align-items-center">
  241. <div class="font-weight-bold" style="font-size: 1.4em">
  242. {{$patient->name_last}}, {{$patient->name_first}}
  243. </div>
  244. @if(!$patient->was_medicare_validation_successful)
  245. <div moe class="ml-2">
  246. <a href="" start show>
  247. <i class="fas fa-edit"></i>
  248. </a>
  249. <form url="/api/client/editName">
  250. <input type="hidden" name="uid" value="{{$patient->uid}}">
  251. <div class="form-group">
  252. Prefix: <input type="text" name="namePrefix"
  253. value="{{$patient->name_prefix}}"><br>
  254. First: <input type="text" name="nameFirst"
  255. value="{{$patient->name_first}}"><br>
  256. Middle: <input type="text" name="nameMiddle"
  257. value="{{$patient->name_middle}}"><br>
  258. Last: <input type="text" name="nameLast"
  259. value="{{$patient->name_last}}"><br>
  260. Suffix: <input type="text" name="nameSuffix"
  261. value="{{$patient->name_suffix}}"><br>
  262. Credential: <input type="text" name="nameCredential"
  263. value="{{$patient->name_credential}}"><br>
  264. Nickname: <input type="text" name="nameNickname"
  265. value="{{$patient->name_nickname}}"><br>
  266. Maiden: <input type="text" name="nameMaiden"
  267. value="{{$patient->name_maiden}}"><br>
  268. Previous: <input type="text" name="namePrevious"
  269. value="{{$patient->name_previous}}">
  270. </div>
  271. <div class="form-group">
  272. <button class="btn btn-success btn-sm" submit>Submit</button>
  273. <button class="btn btn-secondary btn-sm" cancel>Cancel</button>
  274. </div>
  275. </form>
  276. </div>
  277. @endif
  278. <span class="pl-2">
  279. {{$patient->dob}}
  280. {{$patient->age_in_years}} y.o. {{$patient->sex}}
  281. </span>
  282. @if(!$patient->was_medicare_validation_successful)
  283. <div moe class="ml-2">
  284. <a href="" start show>
  285. <i class="fas fa-edit"></i>
  286. </a>
  287. <form url="/api/client/editDob">
  288. <input type="hidden" name="uid" value="{{$patient->uid}}">
  289. <div class="form-group">
  290. <input type="date" class="" name="dob"
  291. value="{{$patient->dob}}">
  292. </div>
  293. <div class="form-group">
  294. <button class="btn btn-success btn-sm" submit>Submit</button>
  295. <button class="btn btn-secondary btn-sm" cancel>Cancel</button>
  296. </div>
  297. </form>
  298. </div>
  299. @endif
  300. </div>
  301. <div class="align-items-center d-flex">
  302. <i class="badge badge-info ml-3">
  303. #{{$patient->chart_number}}
  304. </i>
  305. </div>
  306. <div class="pl-3">
  307. <strong>PCP:</strong>
  308. @if($patient->mcp)
  309. {{$patient->mcp->name_display}}...
  310. @if($patient->has_mcp_done_onboarding_visit == 'YES')
  311. <strong>First E&M
  312. Visit:</strong> {{$patient->mcp_onboarding_visit_date}}...
  313. <strong>Last E&M Visit:</strong>
  314. {$patient->most_recent_mcp_em_visit_date}...
  315. <strong>Next E&M Visit:</strong> {$patient->next_mcp_em_visit_date}
  316. @else
  317. <span class="alert alert-success text-sm p-1">
  318. <i class="fa fa-exclamation-circle" aria-hidden="true"></i>
  319. Patient has not been seen yet!
  320. </span>
  321. @endif
  322. @else
  323. <div moe>
  324. none!
  325. <a href="" start show>
  326. <i class="fas fa-edit"></i>
  327. </a>
  328. <form url="/api/client/putMcp">
  329. <input type="hidden" name="uid" value="{{$patient->uid}}">
  330. <div class="form-group">
  331. <select name="mcpProUid" class="form-control">
  332. <option value="">-- select mcp --</option>
  333. @foreach ($pros as $pro)
  334. <option
  335. value="{{$pro->uid}}">{{$pro->name_display}}</option>
  336. @endforeach
  337. </select>
  338. </div>
  339. <div class="form-group">
  340. <button class="btn btn-success btn-sm" submit>Submit</button>
  341. <button class="btn btn-secondary btn-sm" cancel>Cancel</button>
  342. </div>
  343. </form>
  344. </div>
  345. @endif
  346. </div>
  347. </div>
  348. <div class="d-flex">
  349. <div>
  350. <strong>MCN:</strong>
  351. @if($patient->mcn)
  352. @if($patient->was_medicare_validation_successful)
  353. <span
  354. class="badge badge-{{$patient->is_part_b_primary == 'YES' ? 'success' : 'danger'}}">
  355. Valid #,
  356. @if($patient->is_part_b_primary == 'YES')
  357. Medicare Part B <i class="fa fa-check"></i>
  358. @else
  359. Not Medicare Part B <i class="fa fa-times"></i>
  360. @if($patient->is_medicare_advantage == 'YES')
  361. , Medicare Advantage,
  362. {{$patient->medicare_advantage_plan}}
  363. @endif
  364. @endif
  365. </span>
  366. @else
  367. <span class="badge badge-warning">
  368. {{$patient->mcn}}
  369. INVALID! <i class="fa fa-times"></i>
  370. </span>
  371. @endif
  372. @else
  373. None provided. <i class="fa fa-times"></i>
  374. @endif
  375. @if(!$patient->was_medicare_validation_successful)
  376. <div moe>
  377. <a href="" start show><i class="fas fa-edit"></i></a>
  378. <form url="/api/client/putMcn">
  379. <input type="hidden" name="uid" value="{{$patient->uid}}">
  380. <div class="form-group">
  381. <input type="text" name="mcn" value="{{$patient->mcn}}">
  382. </div>
  383. <div class="form-group">
  384. <button class="btn btn-success btn-sm" submit>Submit
  385. </button>
  386. <button class="btn btn-secondary btn-sm" cancel>Cancel
  387. </button>
  388. </div>
  389. </form>
  390. </div>
  391. @endif
  392. </div>
  393. <div class="d-flex">
  394. <div class="pl-3">
  395. <strong>MA:</strong>
  396. @if($patient->cm)
  397. {{$patient->cm->name_display}}
  398. @else
  399. <div>
  400. none!
  401. </div>
  402. @endif
  403. </div>
  404. </div>
  405. </div>
  406. <div class="d-flex">
  407. <div>
  408. <strong>
  409. Focus areas:
  410. </strong>
  411. T2DM, CAD, HTN, Weight Loss
  412. </div>
  413. <div class="pl-4">
  414. <strong>Ht:</strong> ___ in. <strong>Wt:</strong> ___ lbs. <strong>BMI:</strong>
  415. ___
  416. </div>
  417. </div>
  418. <div>
  419. <strong>
  420. Allergies:
  421. </strong>
  422. ...
  423. ...
  424. ...
  425. </div>
  426. </div>
  427. <div class="text-right flex-fill">
  428. <div moe>
  429. <a start show class="btn btn-primary btn-sm">
  430. <i class="fa fa-plus-circle"></i>
  431. Note
  432. </a>
  433. <form url="/api/note/create" right>
  434. <input type="hidden" name="clientUid" value="{{$patient->uid}}">
  435. <div class="row">
  436. <div class="col-md-6">
  437. <div class="form-group">
  438. <label for="" class="control-label">HCP Pro</label>
  439. <select name="hcpProUid" class="form-control">
  440. <option value="">-- select hcp pro --</option>
  441. @foreach ($pros as $pro)
  442. <option
  443. value="{{$pro->uid}}">{{$pro->name_display}}</option>
  444. @endforeach
  445. </select>
  446. </div>
  447. <div class="form-group">
  448. <label for="" class="control-label">Ally Pro</label>
  449. <select name="allyProUid" class="form-control">
  450. <option value="">-- select ally pro --</option>
  451. @foreach ($pros as $pro)
  452. <option
  453. value="{{$pro->uid}}">{{$pro->name_display}}</option>
  454. @endforeach
  455. </select>
  456. </div>
  457. <div class="form-group">
  458. <label for="" class="control-label text-left">Title</label>
  459. <input type="text" name="title" class="form-control">
  460. </div>
  461. <div class="form-group">
  462. <label for="" class="control-label text-left">Effective date</label>
  463. <input type="date" name="effectiveDateEST" class="form-control">
  464. </div>
  465. <div class="form-group">
  466. <label for="" class="control-label text-left">Effective time</label>
  467. <input type="time" name="effectiveTime" class="form-control">
  468. </div>
  469. </div>
  470. <div class="col-md-6">
  471. <div class="form-group">
  472. <label for="" class="control-label">reason1</label>
  473. <input type="text" name="reason1" class="form-control">
  474. </div>
  475. <div class="form-group">
  476. <label for="" class="control-label">reason2</label>
  477. <input type="text" name="reason2" class="form-control">
  478. </div>
  479. <div class="form-group">
  480. <label for="" class="control-label">reason3</label>
  481. <input type="text" name="reason3" class="form-control">
  482. </div>
  483. <div class="form-group">
  484. <label for="" class="control-label">reason3Plus</label>
  485. <input type="text" name="reason3Plus" class="form-control">
  486. </div>
  487. <div class="form-group">
  488. <label for="" class="control-label">serviceLocation</label>
  489. <input type="text" name="serviceLocation" class="form-control">
  490. </div>
  491. <div class="form-group">
  492. <label for="" class="control-label">category</label>
  493. <input type="text" name="category" class="form-control">
  494. </div>
  495. </div>
  496. <div class="col-md-12">
  497. <div class="form-group">
  498. <button class="btn btn-primary" submit>Submit</button>
  499. <button class="btn btn-danger" cancel>Cancel</button>
  500. </div>
  501. </div>
  502. </div>
  503. </form>
  504. </div>
  505. <br>
  506. <button class="btn btn-primary btn-sm mt-2">
  507. <i class="fa fa-book"></i>
  508. Education
  509. </button>
  510. </div>
  511. </div>
  512. {{-- go to patient's call page --}}
  513. <div class="p-3 border small mt-3 bg-white">
  514. <div class="mr-3 my-1">Online:
  515. <span class="font-weight-bold">
  516. <?= $patient->is_online ? '<span class="text-success">YES</span>' : '<span class="text-secondary">NO</span>' ?>
  517. </span>
  518. </div>
  519. <div class="mr-3 my-1">Video:
  520. <span class="font-weight-bold">
  521. <?= $patient->is_client_video_turned_on ? '<span class="text-success">ON</span>' : '<span class="text-secondary">OFF</span>' ?>
  522. </span>
  523. @if($patient->is_online && $patient->is_client_video_turned_on && count($patient->prosInMeetingWith()))
  524. <div class="my-1 font-weight-bold">Currently talking to:</div>
  525. @foreach($patient->prosInMeetingWith() as $inCallPro)
  526. <div class="d-block my-1">
  527. <i class="fa fa-chevron-right mr-1"></i>
  528. <a href="/pros/view/{{ $inCallPro->uid }}/SUB_dashboard"
  529. class="text-primary">
  530. {{ $inCallPro->name_display }}
  531. </a>
  532. </div>
  533. @endforeach
  534. @endif
  535. </div>
  536. <div>
  537. <a href="#"
  538. class="btn btn-sm btn-primary mt-2 font-weight-bold px-3"
  539. onclick="return openInRHS('/pro/meet/{{ $patient->uid }}')">
  540. <i class="fa fa-phone mr-1"></i>
  541. Go to the client's meeting page
  542. </a>
  543. </div>
  544. </div>
  545. </div>
  546. <div class="card-body">
  547. {{--<h1 class="h3">@yield('section-title')</h1>--}}
  548. <div class="mcp-theme-1">
  549. @yield('inner-content')
  550. </div>
  551. </div>
  552. </div>
  553. </main>
  554. </div>
  555. </div>
  556. @endsection