patient.blade.php 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575
  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 relative class="mcp-theme-1">
  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 class="mb-2">
  166. <select name="hcpProUid" class="form-control form-control-sm">
  167. <option value="">-- Select HCP Pro --</option>
  168. @foreach ($pros as $pro)
  169. <option
  170. value="{{$pro->uid}}">{{$pro->name_display}}</option>
  171. @endforeach
  172. </select>
  173. </div>
  174. <div class="mb-2">
  175. <select name="allyProUid" class="form-control form-control-sm">
  176. <option value="">-- Select Ally Pro --</option>
  177. @foreach ($pros as $pro)
  178. <option
  179. value="{{$pro->uid}}">{{$pro->name_display}}</option>
  180. @endforeach
  181. </select>
  182. </div>
  183. <div class="mb-2">
  184. <input type="text" name="title" placeholder="Title" class="form-control form-control-sm">
  185. </div>
  186. <div class="mb-2">
  187. <label class="text-secondary text-sm">Effective Date</label>
  188. <input type="date" name="effectiveDateEST" placeholder="Effective Date" class="form-control form-control-sm">
  189. </div>
  190. <div class="mb-2">
  191. <label class="text-secondary text-sm">Effective Time</label>
  192. <input type="time" name="effectiveTime" placeholder="Effective Time" class="form-control form-control-sm">
  193. </div>
  194. <div class="mb-2">
  195. <textarea name="freeTextHtml" id="" cols="30" rows="5" placeholder="Content" class="form-control form-control-sm"></textarea>
  196. </div>
  197. <div>
  198. <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
  199. <button cancel class="btn btn-sm btn-default">Cancel</button>
  200. </div>
  201. </form>
  202. </div>
  203. <button>Pt. Ed.</button>
  204. <button>Video</button>
  205. <div moe>
  206. <a start show>
  207. <!-- <i class="fa fa-plus-circle"></i> -->
  208. <button>+ Next Appointment</button>
  209. </a>
  210. <form url="/api/client/setNextAppointment" right>
  211. <input type="hidden" name="uid" value="{{$patient->uid}}">
  212. <div>
  213. <label for="" class="control-label text-left">Date</label>
  214. <input type="date" name="date">
  215. </div>
  216. <div>
  217. <label for="" class="control-label text-left">Is time specific</label>
  218. <input type="checkbox" name="isTimeSpecific">
  219. </div>
  220. <div>
  221. <label for="" class="control-label text-left">Time</label>
  222. <input type="time" name="time">
  223. </div>
  224. <div>
  225. <button submit>Submit</button>
  226. <button cancel>Cancel</button>
  227. </div>
  228. </form>
  229. </div>
  230. </section>
  231. </div>
  232. </div></div> <!-- z -->
  233. </div>
  234. <div class="card-header" style=display:none>
  235. @if($patient->is_duplicate)
  236. <div class="alert alert-danger">
  237. This chart is a duplicate of: __________
  238. </div>
  239. @endif
  240. <div class="d-flex">
  241. <div class="">
  242. <div class="d-flex">
  243. <div class="d-flex align-items-center">
  244. <div class="font-weight-bold" style="font-size: 1.4em">
  245. {{$patient->name_last}}, {{$patient->name_first}}
  246. </div>
  247. @if(!$patient->was_medicare_validation_successful)
  248. <div moe class="ml-2">
  249. <a href="" start show>
  250. <i class="fas fa-edit"></i>
  251. </a>
  252. <form url="/api/client/editName">
  253. <input type="hidden" name="uid" value="{{$patient->uid}}">
  254. <div class="form-group">
  255. Prefix: <input type="text" name="namePrefix"
  256. value="{{$patient->name_prefix}}"><br>
  257. First: <input type="text" name="nameFirst"
  258. value="{{$patient->name_first}}"><br>
  259. Middle: <input type="text" name="nameMiddle"
  260. value="{{$patient->name_middle}}"><br>
  261. Last: <input type="text" name="nameLast"
  262. value="{{$patient->name_last}}"><br>
  263. Suffix: <input type="text" name="nameSuffix"
  264. value="{{$patient->name_suffix}}"><br>
  265. Credential: <input type="text" name="nameCredential"
  266. value="{{$patient->name_credential}}"><br>
  267. Nickname: <input type="text" name="nameNickname"
  268. value="{{$patient->name_nickname}}"><br>
  269. Maiden: <input type="text" name="nameMaiden"
  270. value="{{$patient->name_maiden}}"><br>
  271. Previous: <input type="text" name="namePrevious"
  272. value="{{$patient->name_previous}}">
  273. </div>
  274. <div class="form-group">
  275. <button class="btn btn-success btn-sm" submit>Submit</button>
  276. <button class="btn btn-secondary btn-sm" cancel>Cancel</button>
  277. </div>
  278. </form>
  279. </div>
  280. @endif
  281. <span class="pl-2">
  282. {{$patient->dob}}
  283. {{$patient->age_in_years}} y.o. {{$patient->sex}}
  284. </span>
  285. @if(!$patient->was_medicare_validation_successful)
  286. <div moe class="ml-2">
  287. <a href="" start show>
  288. <i class="fas fa-edit"></i>
  289. </a>
  290. <form url="/api/client/editDob">
  291. <input type="hidden" name="uid" value="{{$patient->uid}}">
  292. <div class="form-group">
  293. <input type="date" class="" name="dob"
  294. value="{{$patient->dob}}">
  295. </div>
  296. <div class="form-group">
  297. <button class="btn btn-success btn-sm" submit>Submit</button>
  298. <button class="btn btn-secondary btn-sm" cancel>Cancel</button>
  299. </div>
  300. </form>
  301. </div>
  302. @endif
  303. </div>
  304. <div class="align-items-center d-flex">
  305. <i class="badge badge-info ml-3">
  306. #{{$patient->chart_number}}
  307. </i>
  308. </div>
  309. <div class="pl-3">
  310. <strong>PCP:</strong>
  311. @if($patient->mcp)
  312. {{$patient->mcp->name_display}}...
  313. @if($patient->has_mcp_done_onboarding_visit == 'YES')
  314. <strong>First E&M
  315. Visit:</strong> {{$patient->mcp_onboarding_visit_date}}...
  316. <strong>Last E&M Visit:</strong>
  317. {$patient->most_recent_mcp_em_visit_date}...
  318. <strong>Next E&M Visit:</strong> {$patient->next_mcp_em_visit_date}
  319. @else
  320. <span class="alert alert-success text-sm p-1">
  321. <i class="fa fa-exclamation-circle" aria-hidden="true"></i>
  322. Patient has not been seen yet!
  323. </span>
  324. @endif
  325. @else
  326. <div moe>
  327. none!
  328. <a href="" start show>
  329. <i class="fas fa-edit"></i>
  330. </a>
  331. <form url="/api/client/putMcp">
  332. <input type="hidden" name="uid" value="{{$patient->uid}}">
  333. <div class="form-group">
  334. <select name="mcpProUid" class="form-control">
  335. <option value="">-- select mcp --</option>
  336. @foreach ($pros as $pro)
  337. <option
  338. value="{{$pro->uid}}">{{$pro->name_display}}</option>
  339. @endforeach
  340. </select>
  341. </div>
  342. <div class="form-group">
  343. <button class="btn btn-success btn-sm" submit>Submit</button>
  344. <button class="btn btn-secondary btn-sm" cancel>Cancel</button>
  345. </div>
  346. </form>
  347. </div>
  348. @endif
  349. </div>
  350. </div>
  351. <div class="d-flex">
  352. <div>
  353. <strong>MCN:</strong>
  354. @if($patient->mcn)
  355. @if($patient->was_medicare_validation_successful)
  356. <span
  357. class="badge badge-{{$patient->is_part_b_primary == 'YES' ? 'success' : 'danger'}}">
  358. Valid #,
  359. @if($patient->is_part_b_primary == 'YES')
  360. Medicare Part B <i class="fa fa-check"></i>
  361. @else
  362. Not Medicare Part B <i class="fa fa-times"></i>
  363. @if($patient->is_medicare_advantage == 'YES')
  364. , Medicare Advantage,
  365. {{$patient->medicare_advantage_plan}}
  366. @endif
  367. @endif
  368. </span>
  369. @else
  370. <span class="badge badge-warning">
  371. {{$patient->mcn}}
  372. INVALID! <i class="fa fa-times"></i>
  373. </span>
  374. @endif
  375. @else
  376. None provided. <i class="fa fa-times"></i>
  377. @endif
  378. @if(!$patient->was_medicare_validation_successful)
  379. <div moe>
  380. <a href="" start show><i class="fas fa-edit"></i></a>
  381. <form url="/api/client/putMcn">
  382. <input type="hidden" name="uid" value="{{$patient->uid}}">
  383. <div class="form-group">
  384. <input type="text" name="mcn" value="{{$patient->mcn}}">
  385. </div>
  386. <div class="form-group">
  387. <button class="btn btn-success btn-sm" submit>Submit
  388. </button>
  389. <button class="btn btn-secondary btn-sm" cancel>Cancel
  390. </button>
  391. </div>
  392. </form>
  393. </div>
  394. @endif
  395. </div>
  396. <div class="d-flex">
  397. <div class="pl-3">
  398. <strong>MA:</strong>
  399. @if($patient->cm)
  400. {{$patient->cm->name_display}}
  401. @else
  402. <div>
  403. none!
  404. </div>
  405. @endif
  406. </div>
  407. </div>
  408. </div>
  409. <div class="d-flex">
  410. <div>
  411. <strong>
  412. Focus areas:
  413. </strong>
  414. T2DM, CAD, HTN, Weight Loss
  415. </div>
  416. <div class="pl-4">
  417. <strong>Ht:</strong> ___ in. <strong>Wt:</strong> ___ lbs. <strong>BMI:</strong>
  418. ___
  419. </div>
  420. </div>
  421. <div>
  422. <strong>
  423. Allergies:
  424. </strong>
  425. ...
  426. ...
  427. ...
  428. </div>
  429. </div>
  430. <div class="text-right flex-fill">
  431. <div moe>
  432. <a start show class="btn btn-primary btn-sm">
  433. <i class="fa fa-plus-circle"></i>
  434. Note
  435. </a>
  436. <form url="/api/note/create" right>
  437. <input type="hidden" name="clientUid" value="{{$patient->uid}}">
  438. <div class="row">
  439. <div class="col-md-6">
  440. <div class="form-group">
  441. <label for="" class="control-label">HCP Pro</label>
  442. <select name="hcpProUid" class="form-control">
  443. <option value="">-- select hcp pro --</option>
  444. @foreach ($pros as $pro)
  445. <option
  446. value="{{$pro->uid}}">{{$pro->name_display}}</option>
  447. @endforeach
  448. </select>
  449. </div>
  450. <div class="form-group">
  451. <label for="" class="control-label">Ally Pro</label>
  452. <select name="allyProUid" class="form-control">
  453. <option value="">-- select ally pro --</option>
  454. @foreach ($pros as $pro)
  455. <option
  456. value="{{$pro->uid}}">{{$pro->name_display}}</option>
  457. @endforeach
  458. </select>
  459. </div>
  460. <div class="form-group">
  461. <label for="" class="control-label text-left">Title</label>
  462. <input type="text" name="title" class="form-control">
  463. </div>
  464. <div class="form-group">
  465. <label for="" class="control-label text-left">Effective date</label>
  466. <input type="date" name="effectiveDateEST" class="form-control">
  467. </div>
  468. <div class="form-group">
  469. <label for="" class="control-label text-left">Effective time</label>
  470. <input type="time" name="effectiveTime" class="form-control">
  471. </div>
  472. </div>
  473. <div class="col-md-6">
  474. <div class="form-group">
  475. <label for="" class="control-label">reason1</label>
  476. <input type="text" name="reason1" class="form-control">
  477. </div>
  478. <div class="form-group">
  479. <label for="" class="control-label">reason2</label>
  480. <input type="text" name="reason2" class="form-control">
  481. </div>
  482. <div class="form-group">
  483. <label for="" class="control-label">reason3</label>
  484. <input type="text" name="reason3" class="form-control">
  485. </div>
  486. <div class="form-group">
  487. <label for="" class="control-label">reason3Plus</label>
  488. <input type="text" name="reason3Plus" class="form-control">
  489. </div>
  490. <div class="form-group">
  491. <label for="" class="control-label">serviceLocation</label>
  492. <input type="text" name="serviceLocation" class="form-control">
  493. </div>
  494. <div class="form-group">
  495. <label for="" class="control-label">category</label>
  496. <input type="text" name="category" class="form-control">
  497. </div>
  498. </div>
  499. <div class="col-md-12">
  500. <div class="form-group">
  501. <button class="btn btn-primary" submit>Submit</button>
  502. <button class="btn btn-danger" cancel>Cancel</button>
  503. </div>
  504. </div>
  505. </div>
  506. </form>
  507. </div>
  508. <br>
  509. <button class="btn btn-primary btn-sm mt-2">
  510. <i class="fa fa-book"></i>
  511. Education
  512. </button>
  513. </div>
  514. </div>
  515. {{-- go to patient's call page --}}
  516. <div class="p-3 border small mt-3 bg-white">
  517. <div class="mr-3 my-1">Online:
  518. <span class="font-weight-bold">
  519. <?= $patient->is_online ? '<span class="text-success">YES</span>' : '<span class="text-secondary">NO</span>' ?>
  520. </span>
  521. </div>
  522. <div class="mr-3 my-1">Video:
  523. <span class="font-weight-bold">
  524. <?= $patient->is_client_video_turned_on ? '<span class="text-success">ON</span>' : '<span class="text-secondary">OFF</span>' ?>
  525. </span>
  526. @if($patient->is_online && $patient->is_client_video_turned_on && count($patient->prosInMeetingWith()))
  527. <div class="my-1 font-weight-bold">Currently talking to:</div>
  528. @foreach($patient->prosInMeetingWith() as $inCallPro)
  529. <div class="d-block my-1">
  530. <i class="fa fa-chevron-right mr-1"></i>
  531. <a href="/pros/view/{{ $inCallPro->uid }}/SUB_dashboard"
  532. class="text-primary">
  533. {{ $inCallPro->name_display }}
  534. </a>
  535. </div>
  536. @endforeach
  537. @endif
  538. </div>
  539. <div>
  540. <a href="#"
  541. class="btn btn-sm btn-primary mt-2 font-weight-bold px-3"
  542. onclick="return openInRHS('/pro/meet/{{ $patient->uid }}')">
  543. <i class="fa fa-phone mr-1"></i>
  544. Go to the client's meeting page
  545. </a>
  546. </div>
  547. </div>
  548. </div>
  549. <div class="card-body">
  550. {{--<h1 class="h3">@yield('section-title')</h1>--}}
  551. <div class="mcp-theme-1">
  552. @yield('inner-content')
  553. </div>
  554. </div>
  555. </div>
  556. </main>
  557. </div>
  558. </div>
  559. @endsection