patient.blade.php 40 KB

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