patient.blade.php 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711
  1. @extends(request()->input('popupmode') ? 'layouts.empty' : 'layouts.template')
  2. <?php
  3. /** @var \App\Models\Client $patient */
  4. ?>
  5. <?php
  6. $trimLayout = true;
  7. $routeName = request()->route()->getName();
  8. $isVisitNote = ($routeName === 'pros.view.notes.view.dashboard' && @$note && !!$note->visitTemplate);
  9. $isOldClient = (date_diff(date_create(config('app.point_impl_date')), date_create($patient->created_at))->invert === 1);
  10. function cleanStatus($_status)
  11. {
  12. return ucwords(strtolower(str_replace("_", " ", $_status)));
  13. }
  14. $postHiringStages = [
  15. "Accepted_by_HR__Send_Offer",
  16. "Offer_Sent",
  17. "Offer_Signed__Awaiting_Countersign",
  18. "Offer_Signing_Problem",
  19. "Offer_Signed_And_Countersigned",
  20. "Payroll_And_Credentialing_Submitted",
  21. "Payroll_Verified",
  22. "Credentialing_Verified",
  23. "Payroll_Or_Credentialing_Problem",
  24. "Background_Check_Cleared",
  25. "Training_Needed",
  26. "Training_Scheduled",
  27. "Trained",
  28. "Working",
  29. ];
  30. ?>
  31. <?php
  32. /** @var \App\Models\Client $patient */
  33. $availableHrTags = \App\Models\AdminThing::where('is_removed', false)->where('category', 'HR_TAG')->pluck('value')->toArray();
  34. $clientTags = $patient->clientTags->pluck('tag')->toArray();
  35. $availableHrTags = array_values(array_diff($availableHrTags, $clientTags));
  36. ?>
  37. <style media="screen">
  38. .pt-name {
  39. font-size: 1.5rem !important;
  40. }
  41. </style>
  42. @section('content')
  43. <div class="container-fluid h-100">
  44. <div class="main-row h-100 {{ !request()->input('popupmode') ? '' : 'px-0' }} {{$isVisitNote ? 'autohide-leftnav' : ''}}">
  45. @if(!request()->input('popupmode'))
  46. <nav id="sidebarMenu" class="d-block bg-light sidebar collapse px-0">
  47. <div class="sidebar-sticky pt-3">
  48. <ul class="nav flex-column mcp-theme-1">
  49. <li class="nav-item">
  50. <a class="nav-link {{ strpos($routeName, 'pros.view.dashboard') === 0 ? 'active' : '' }}"
  51. href="{{ route('pros.view.dashboard', ['patient' => $patient]) }}">Dashboard</a>
  52. </li>
  53. <li class="nav-item">
  54. <a class="nav-link {{ strpos($routeName, 'pros.view.calendar') === 0 ? 'active' : '' }}"
  55. href="{{ route('pros.view.calendar', ['patient' => $patient]) }}">Calendar</a>
  56. </li>
  57. <li class="nav-item">
  58. <a class="nav-link {{ strpos($routeName, 'pros.view.appointments') === 0 ? 'active' : '' }}"
  59. href="{{ route('pros.view.appointments', ['patient' => $patient, 'forPro' => 'all', 'status' => 'all']) }}">Appointments</a>
  60. </li>
  61. <li class="nav-item">
  62. <a class="nav-link {{ strpos($routeName, 'pros.view.notes') === 0 ? 'active' : '' }}"
  63. href="{{ route('pros.view.notes', ['patient' => $patient]) }}">Notes</a>
  64. </li>
  65. <li class="nav-item">
  66. <a class="nav-link {{ strpos($routeName, 'pros.view.handouts') === 0 ? 'active' : '' }}"
  67. href="{{ route('pros.view.handouts', ['patient' => $patient]) }}">Handouts</a>
  68. </li>
  69. <li class="nav-item">
  70. <a class="nav-link {{ $routeName === 'pros.view.sms' ? 'active' : '' }}"
  71. href="{{ route('pros.view.sms', ['patient' => $patient]) }}">SMS</a>
  72. </li>
  73. <li class="nav-item">
  74. <a class="nav-link {{ strpos($routeName, 'pros.view.sms-numbers') === 0 ? 'active' : '' }}"
  75. href="{{ route('pros.view.sms-numbers', ['patient' => $patient]) }}">SMS Numbers</a>
  76. </li>
  77. <li class="nav-item">
  78. <a class="nav-link {{ strpos($routeName, 'pros.view.settings') === 0 ? 'active' : '' }}"
  79. href="{{ route('pros.view.settings', ['patient' => $patient]) }}">Settings</a>
  80. </li>
  81. <li class="nav-item">
  82. <a class="nav-link {{ strpos($routeName, 'pros.view.sms-reminders') === 0 ? 'active' : '' }}"
  83. href="{{ route('pros.view.sms-reminders', ['patient' => $patient]) }}">SMS Reminders</a>
  84. </li>
  85. <li class="nav-item">
  86. <a class="nav-link {{ strpos($routeName, 'pros.view.pros') === 0 ? 'active' : '' }}"
  87. href="{{ route('pros.view.pros', ['patient' => $patient]) }}">Pros</a>
  88. </li>
  89. @if($performer->pro->pro_type == 'ADMIN')
  90. <li class="nav-item">
  91. <a class="nav-link {{ strpos($routeName, 'pros.view.client-pro-access') === 0 ? 'active' : '' }}"
  92. href="{{ route('pros.view.client-pro-access', ['patient' => $patient]) }}">Client Pro Access</a>
  93. </li>
  94. @endif
  95. </ul>
  96. <div class="mt-3 mcp-theme-1">
  97. @yield('left-nav-content')
  98. </div>
  99. </div>
  100. </nav>
  101. @endif
  102. <main role="main" class="w-100 {{$trimLayout || $isVisitNote ? 'p-0' : ''}}">
  103. <div class="card {{$trimLayout || $isVisitNote ? 'card m-0 border-0 rounded-0' : 'my-3'}}" id="patient-header">
  104. <div id="patient-header-content">
  105. <div class="card-header @if($patient->client_engagement_status_category == 'DUMMY') alert-warning @endif py-1 hide-inside-ticket-popup">
  106. <?php
  107. $thumbnail = $patient->profile_picture_base64;
  108. $initials = !$thumbnail ? substr($patient->name_first, 0, 1) . substr($patient->name_last, 0, 1) : '';
  109. $online = $patient->is_online ? 'online' : '';
  110. $patientName = implode(', ', array_filter([$patient->name_last, $patient->name_first]));
  111. $confirmedCell = empty($patient->cell_number) ? '-' : $patient->cell_number;
  112. $confirmedEmail = empty($patient->email_address) ? '-' : $patient->email_address;
  113. $location = implode(', ', array_filter([$patient->home_address_city, $patient->home_address_state]));
  114. $location = empty($location) ? '-' : $location;
  115. $mcpName = $patient->mcp ? implode(', ', array_filter([$patient->mcp->name_last, $patient->mcp->name_first])) : null;
  116. $cmName = $patient->cm ? implode(', ', array_filter([$patient->cm->name_last, $patient->cm->name_first])) : null;
  117. $memberSince = date_diff(date_create($patient->created_at), date_create('now'))->days;
  118. if ($memberSince > 30) $memberSince = date('F, Y', strtotime($patient->created_at));
  119. else if ($memberSince > 1) $memberSince .= ' days ago';
  120. else if ($memberSince === 1) $memberSince = 'yesterday';
  121. else if ($memberSince === 0) $memberSince = 'today';
  122. ?>
  123. <div class=z>
  124. <div class=header>
  125. @if($patient->is_duplicate)
  126. <div class="alert alert-secondary border-dark mcp-theme-1 screen-only">
  127. <span class="text-dark">This chart is a duplicate of&nbsp;</span>
  128. <a class="font-weight-bold"
  129. href="/patients/view/{{ $patient->duplicateOf->uid }}">
  130. {{ $patient->duplicateOf->displayName() }}
  131. </a>
  132. </div>
  133. @endif
  134. <div class="hbox mr-auto">
  135. <section class="mt-2">
  136. <div class="hbox">
  137. <h4 class="pt-name">{{$patientName}}</h4>
  138. <div class="screen-only mr-1 patient-presence-indicator thumbnail {{$online}}"
  139. data-patient-uid="{{$patient->uid}}"
  140. style="background-image:<?=$thumbnail?>"><?=$initials?></div>
  141. <div class="d-inline-flex align-items-baseline">
  142. <i class="chart mr-2">#{{$patient->chart_number}}</i>
  143. <span class="on-hover-show d-inline-block on-hover-opaque">
  144. <i class="fa fa-info-circle ml-1 text-primary"></i>
  145. <div class="on-hover-content py-2 pl-3 text-nowrap">
  146. Joined <?=$memberSince?>
  147. <div class="mt-1">
  148. Created by <b>{{$patient->creator ? $patient->creator->displayName() : '-'}}</b>
  149. </div>
  150. <div class="mt-1">
  151. Created on <b>{{friendly_date_time($patient->created_at)}}</b>
  152. </div>
  153. </div>
  154. </span>
  155. </div>
  156. </div>
  157. <div class="d-inline-block">
  158. <span>Joined <?= $memberSince ?></span>
  159. <i class="chart mr-2">[#{{$patient->chart_number}}]</i>
  160. <a native target="_blank" href="{{config('app.stagc_url')}}/log-in-as/{{$performer->session_key}}/{{$patient->shadowOfPro->uid}}" class="mr-2">
  161. <i class="fa fa-sign-in-alt"></i>
  162. </a>
  163. <div moe relative>
  164. <a start show class="font-weight-bold">
  165. <i class="fa fa-key"></i>
  166. </a>
  167. <form url="/api/proHrPortalAccess/createAndSendEmail" class="mcp-theme-1" right>
  168. <input type="hidden" name="proUid" value="{{$patient->shadowOfPro->uid}}">
  169. <div class="mb-2">
  170. <label class="text-secondary text-sm">Email Address</label>
  171. <input type="text" class="form-control form-control-sm" name="emailAddress" value="{{$patient->shadowOfPro->email_address}}">
  172. </div>
  173. <div>
  174. <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
  175. <button cancel class="btn btn-sm btn-default border">Cancel</button>
  176. </div>
  177. </form>
  178. </div>
  179. </div>
  180. <div>
  181. <label class="text-secondary">HR Spec:</label>
  182. {{$patient->shadowOfPro && $patient->shadowOfPro->hrSpecialist ? $patient->shadowOfPro->hrSpecialist->displayName() : '-'}}
  183. @if($patient->shadowOfPro)
  184. <div moe class="ml-2">
  185. <a start show><i class="fa fa-edit"></i></a>
  186. <form url="/api/pro/putHrRepPro" class="mcp-theme-1">
  187. <input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
  188. <div class="mb-2">
  189. <label class="text-secondary text-sm">MCP Pro</label>
  190. <select name="hrRepProUid" provider-search data-pro-uid="{{ @$patient->shadowOfPro->hrSpecialist->uid }}" class="form-control form-control-sm">
  191. <option value=""> --select--</option>
  192. </select>
  193. </div>
  194. <div>
  195. <button submit class="btn btn-sm btn-primary mr-1">
  196. Submit
  197. </button>
  198. <button cancel class="btn btn-sm btn-default border">
  199. Cancel
  200. </button>
  201. </div>
  202. </form>
  203. </div>
  204. @endif
  205. </div>
  206. <div>
  207. <label class="text-secondary">Clinical Super:</label>
  208. {{$patient->shadowOfPro && $patient->shadowOfPro->clinicalSupervisor ? $patient->shadowOfPro->clinicalSupervisor->displayName() : '-'}}
  209. @if($patient->shadowOfPro)
  210. <div moe class="ml-2">
  211. <a start show><i class="fa fa-edit"></i></a>
  212. <form url="/api/pro/putSupervisingHcpPro" class="mcp-theme-1">
  213. <input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
  214. <div class="mb-2">
  215. <label class="text-secondary text-sm">MCP Pro</label>
  216. <select name="supervisingHcpProUid" provider-search data-pro-uid="{{ @$patient->shadowOfPro->clinicalSupervisor->uid }}" class="form-control form-control-sm">
  217. <option value=""> --select--</option>
  218. </select>
  219. </div>
  220. <div>
  221. <button submit class="btn btn-sm btn-primary mr-1">
  222. Submit
  223. </button>
  224. <button cancel class="btn btn-sm btn-default border">
  225. Cancel
  226. </button>
  227. </div>
  228. </form>
  229. </div>
  230. @endif
  231. </div>
  232. <div class=separators>
  233. <div class="screen-only">
  234. <label>Status:</label>
  235. <b>{{$patient->client_engagement_status_category ? ucwords(strtolower(str_replace('_', ' ', $patient->client_engagement_status_category == 'DUMMY' ? 'Test Chart' : $patient->client_engagement_status_category))) : '-'}}</b>
  236. </div>
  237. </div>
  238. <div>
  239. @if($patient->stability_interaction_client_memo_id)
  240. Next convo: {{friendly_date($patient->stable_until_date)}}<br>
  241. Last convo: {{friendly_date_time($patient->stabilityInteractionClientMemo->created_at)}}
  242. @else
  243. No conversations yet.
  244. @endif
  245. </div>
  246. </section>
  247. <section class="vbox ml-2 align-self-start mt-2 ml-4">
  248. <div>
  249. <div moe relative>
  250. <button class="col-1-button" start show><i class="fa fa-plus text-sm text-secondary"></i>&nbsp;SMS
  251. </button>
  252. <form url="/api/clientSms/createOutgoing" right class="mcp-theme-1">
  253. <input type="hidden" name="uid" value="{{ $patient->uid }}">
  254. <div class="mb-2">
  255. <label for="" class="text-sm text-secondary mb-1">Cell
  256. Number</label>
  257. <input type="text" class="form-control form-control-sm" name="cellNumber" value="{{$patient->shadowOfPro->cell_number}}">
  258. </div>
  259. <div class="mb-2">
  260. <label for="" class="text-sm text-secondary mb-1">Message</label>
  261. <textarea type="text" class="form-control form-control-sm" name="message"></textarea>
  262. </div>
  263. <div class="d-flex align-items-center">
  264. <button class="btn btn-sm btn-primary mr-2" submit>Send</button>
  265. <button class="btn btn-sm btn-default mr-2 border" cancel>
  266. Cancel
  267. </button>
  268. </div>
  269. </form>
  270. </div>
  271. </div>
  272. <div>
  273. <span moe relative class="">
  274. <button class="col-1-button" start show title="SMS check-in link to the patient"><i class="on-hover-opaque fa fa-paper-plane text-secondary"></i> Send</button>
  275. <form url="/api/client/sendCheckInTokenViaSmsOrEmail" right class="mcp-theme-1">
  276. <input type="hidden" name="uid" value="{{ $patient->uid }}">
  277. <p class="small min-width-200px mb-2">Send Check-In link to patient?</p>
  278. <div class="mb-2">
  279. <label for="" class="text-sm text-secondary mb-1">Cell Number</label>
  280. <input type="text" class="form-control input-sm" name="cellNumber" value="{{$patient->cell_number}}">
  281. </div>
  282. <div class="mb-2">
  283. <label for="" class="text-sm text-secondary mb-1">Email address</label>
  284. <input type="text" class="form-control input-sm" name="emailAddress" value="{{$patient->email_address}}">
  285. </div>
  286. <div class="d-flex align-items-center">
  287. <button class="btn btn-sm btn-primary mr-2" submit>Send</button>
  288. <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
  289. </div>
  290. </form>
  291. </span>
  292. </div>
  293. @if($performer->pro->pro_type == 'ADMIN')
  294. <div>
  295. <button class="col-1-button" onclick="return openInRHS('/pro/check-video/{{ $patient->uid }}')"> <i class="fas fa-video text-secondary"></i> Check</button>
  296. </div>
  297. @endif
  298. <div>
  299. <button class="col-1-button" onclick="return openInRHS('/pro/meet/{{ $patient->uid }}')"><i class="fas fa-video text-secondary"></i> Join</button>
  300. </div>
  301. </section>
  302. <section class="vbox ml-2 mt-2">
  303. <?php
  304. $map = null;
  305. if ($patient->shadowOfPro->hr_section_map) {
  306. $map = json_decode($patient->shadowOfPro->hr_section_map);
  307. $map = $map && isset($map->{'profession'}) ? $map->{'profession'} : null;
  308. if ($map) {
  309. $map = $map->proposedData;
  310. if ($map) {
  311. $map = json_decode($map);
  312. } else {
  313. $map = null;
  314. }
  315. }
  316. }
  317. $hcpMismatchClass = '';
  318. if (!!$patient->shadowOfPro->is_hcp !== !!(@$map->is_hcp)) {
  319. $hcpMismatchClass = 'text-danger';
  320. }
  321. ?>
  322. <div class="d-flex align-items align-self-stretch my-0 pl-4 mcp-theme-1">
  323. Is HCP:&nbsp;<b class="{{$hcpMismatchClass}}"><?= $patient->shadowOfPro->is_hcp ? 'Yes' : 'No' ?></b>
  324. @if( $patient->shadowOfPro->is_hcp)
  325. <div moe class="ml-2">
  326. <a start show href='#' class='font-weight-normal text-sm'>
  327. <i class='fa fa-circle'></i>&nbsp;<span>Mark as Non-HCP</span>
  328. </a>
  329. <form url="/api/pro/setIsHcpToFalse" class="width-200px">
  330. <input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
  331. <p>Set Is Hcp To False?</p>
  332. <div class="">
  333. <button class="btn btn-sm btn-primary px-3 mr-2" submit>Yes</button>
  334. <button class="btn btn-sm btn-default border px-3" cancel>No</button>
  335. </div>
  336. </form>
  337. </div>
  338. @else
  339. <div moe class="ml-2">
  340. <a start show href='#' class='font-weight-normal text-sm'>
  341. <i class='fa fa-circle'></i>&nbsp;<span>Mark as HCP</span>
  342. </a>
  343. <form url="/api/pro/setIsHcpToTrue" class="width-200px">
  344. <input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
  345. <p>Set Is Hcp To True?</p>
  346. <div class="">
  347. <button class="btn btn-sm btn-primary px-3 mr-2" submit>Yes</button>
  348. <button class="btn btn-sm btn-default border px-3" cancel>No</button>
  349. </div>
  350. </form>
  351. </div>
  352. @endif
  353. </div>
  354. <div class="d-flex align-items align-self-stretch my-0 pl-4 mcp-theme-1">
  355. Enrolled as MCP:&nbsp;<b><?= $patient->shadowOfPro->is_enrolled_as_mcp ? 'Yes' : 'No' ?></b>
  356. @if( $patient->shadowOfPro->is_enrolled_as_mcp)
  357. <div moe class="ml-2">
  358. <a start show href='#' class='font-weight-normal text-sm'>
  359. <i class='fa fa-circle'></i>&nbsp;<span>Toggle</span>
  360. </a>
  361. <form url="/api/pro/setIsEnrolledAsMcpToFalse" class="width-200px">
  362. <input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
  363. <p>Set Enrolled as MCP To False?</p>
  364. <div class="">
  365. <button class="btn btn-sm btn-primary px-3 mr-2" submit>Yes</button>
  366. <button class="btn btn-sm btn-default border px-3" cancel>No</button>
  367. </div>
  368. </form>
  369. </div>
  370. @else
  371. <div moe class="ml-2">
  372. <a start show href='#' class='font-weight-normal text-sm'>
  373. <i class='fa fa-circle'></i>&nbsp;<span>Toggle</span>
  374. </a>
  375. <form url="/api/pro/setIsEnrolledAsMcpToTrue" class="width-200px">
  376. <input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
  377. <p>Set Enrolled as MCP To True?</p>
  378. <div class="">
  379. <button class="btn btn-sm btn-primary px-3 mr-2" submit>Yes</button>
  380. <button class="btn btn-sm btn-default border px-3" cancel>No</button>
  381. </div>
  382. </form>
  383. </div>
  384. @endif
  385. </div>
  386. @if($map)
  387. <div class="d-inline-flex align-self-center my-0 mcp-theme-1 pl-4 w-100">
  388. <span>HR Profile > HCP:</span>
  389. <span class="ml-1 font-weight-bold {{$hcpMismatchClass}}">{{ @$map->is_hcp ? 'Yes' : 'No' }}</span>
  390. </div>
  391. <div class="d-inline-flex align-self-center my-0 mcp-theme-1 pl-4 w-100">
  392. <span>HR Profile > NPI:</span>
  393. <span class="ml-1 font-weight-bold text-secondary" npi-lookup>
  394. <span>{{@$map->individual_npi ? $map->individual_npi : '-'}}</span>
  395. </span>
  396. </div>
  397. <div class="d-inline-flex align-self-center my-0 mcp-theme-1 pl-4 w-100">
  398. <span>HR Profile > Cred:</span>
  399. <span class="ml-1 font-weight-bold text-secondary">
  400. <span>{{@$patient->shadowOfPro->hrp_primary_credential ? $patient->shadowOfPro->hrp_primary_credential : '-'}}</span>
  401. </span>
  402. </div>
  403. @else
  404. <div class="d-inline-flex align-self-center my-0 mcp-theme-1 pl-4 w-100">
  405. <span>HR Profile > HCP:</span>
  406. <span class="ml-1 font-weight-bold text-secondary">No</span>
  407. </div>
  408. @endif
  409. @if($hcpMismatchClass !== '')
  410. <div class="my-1 alert-danger ml-4 border border-danger rounded font-weight-bold p-2">
  411. <i class="fa fa-exclamation-triangle"></i>
  412. HCP status mismatch
  413. </div>
  414. @endif
  415. </section>
  416. <section class="mr-4 align-self-start mt-2 ml-auto">
  417. <div id="hr-stage-heading" class="hr-steps-container">
  418. <span>HR Stage:</span> <b>{{ucwords(implode(' ', explode('_', $patient->shadowOfPro->new_hr_stage)))}}</b>
  419. </div>
  420. <div>
  421. Video HR Rep:
  422. @if($patient->shadowOfPro->videoHrRep)
  423. {{$patient->shadowOfPro->videoHrRep->name_first}} {{$patient->shadowOfPro->videoHrRep->name_last}}
  424. @include('app.patient.partials.ob_forms.undoAssignVideoHrRep')
  425. @else
  426. @include('app.patient.partials.ob_forms.assignVideoHrRep')
  427. @endif
  428. </div>
  429. <div>
  430. Training Rep:
  431. @if($patient->shadowOfPro->trainingRep)
  432. {{$patient->shadowOfPro->trainingRep->name_first}} {{$patient->shadowOfPro->trainingRep->name_last}}
  433. @include('app.patient.partials.ob_forms.undoAssignTrainingRep')
  434. @else
  435. @include('app.patient.partials.ob_forms.assignTrainingRep')
  436. @endif
  437. </div>
  438. <div>
  439. Success Rep:
  440. @if($patient->shadowOfPro->successRep)
  441. {{$patient->shadowOfPro->successRep->name_first}} {{$patient->shadowOfPro->successRep->name_last}}
  442. @include('app.patient.partials.ob_forms.undoAssignSuccessRep')
  443. @else
  444. @include('app.patient.partials.ob_forms.assignSuccessRep')
  445. @endif
  446. </div>
  447. <div>
  448. <div moe relative>
  449. <a href="#" start show>
  450. <div class="d-flex align-items-center">
  451. <span class="mr-2 text-dark">Non Responsive:</span>
  452. <div class="custom-control custom-switch">
  453. <input type="checkbox" class="custom-control-input" id="is_non_responsive-switch"
  454. {{$patient->shadowOfPro->is_non_responsive ? 'checked':'' }} />
  455. <label class="custom-control-label" for="is_non_responsive-switch">&nbsp;</label>
  456. </div>
  457. </div>
  458. </a>
  459. <form url="/api/proHr/{{$patient->shadowOfPro->is_non_responsive ? 'setIsNonResponsiveToFalse':'setIsNonResponsiveToTrue' }}" right>
  460. <input type="hidden" name="uid" value="{{ $patient->shadowOfPro->uid }}">
  461. <div class="form-group">
  462. <label for="" class="control-label">Are you sure?</label>
  463. </div>
  464. <div class="">
  465. <button type="button" class="btn btn-sm btn-primary" submit>Submit</button>
  466. <button type="button" class="btn btn-sm btn-default border" cancel>Cancel</button>
  467. </div>
  468. </form>
  469. </div>
  470. </div>
  471. @if(!in_array($patient->shadowOfPro->new_hr_stage, $postHiringStages))
  472. <div>
  473. <div moe relative>
  474. <a href="#" start show>
  475. <div class="d-flex align-items-center">
  476. <span class="mr-2 text-dark">Problem w/ Application:</span>
  477. <div class="custom-control custom-switch">
  478. <input type="checkbox" class="custom-control-input" id="is_problem_with_application-switch"
  479. {{$patient->shadowOfPro->is_problem_with_application ? 'checked':'' }} />
  480. <label class="custom-control-label" for="is_problem_with_application-switch">&nbsp;</label>
  481. </div>
  482. </div>
  483. </a>
  484. <form url="/api/proHr/{{$patient->shadowOfPro->is_problem_with_application ? 'setIsProblemWithApplicationToFalse':'setIsProblemWithApplicationToTrue' }}" right>
  485. <input type="hidden" name="uid" value="{{ $patient->shadowOfPro->uid }}">
  486. <div class="form-group">
  487. <label for="" class="control-label">Are you sure?</label>
  488. </div>
  489. <div class="">
  490. <button type="button" class="btn btn-sm btn-primary" submit>Submit</button>
  491. <button type="button" class="btn btn-sm btn-default border" cancel>Cancel</button>
  492. </div>
  493. </form>
  494. </div>
  495. </div>
  496. @endif
  497. <div>
  498. <label>Sticky Note:</label> <span class="text-secondary">{{$patient->sticky_note ?? '-' }}</span>
  499. <div moe relative wide class="ml-2 hide-inside-popup">
  500. <a start show><i class="fa fa-edit"></i></a>
  501. <form url="/api/client/updateStickyNote" class="mcp-theme-1" right>
  502. <input type="hidden" name="uid" value="{{$patient->uid}}">
  503. <div class="mb-2">
  504. <label class="text-secondary text-sm">Sticky Note</label>
  505. <textarea name="stickyNote" class="form-control" rows="8" cols="80">{{$patient->sticky_note}}</textarea>
  506. </div>
  507. <div>
  508. <button submit class="btn btn-sm btn-primary mr-1">Submit
  509. </button>
  510. <button cancel class="btn btn-sm btn-default border">
  511. Cancel
  512. </button>
  513. </div>
  514. </form>
  515. </div>
  516. </div>
  517. </section>
  518. <ul class="vbox mt-2 align-self-start patient-header-address ">
  519. @if($patient->cell_number)
  520. <li>
  521. <span class="aligned-icon">
  522. <i class="fa fa-phone-alt" aria-hidden="true"></i>
  523. </span>
  524. {{$patient->shadowOfPro->cell_number}}
  525. </li>
  526. @endif
  527. <li class="d-flex align-items-baseline">
  528. <div class="">
  529. {{$patient->shadowOfPro->email_address}}
  530. </div>
  531. </li>
  532. <li class="d-flex align-items-baseline">
  533. <div>
  534. <div moe relative>
  535. <a href="#" start show class="d-flex align-items-baseline">Send SMS</span></a>
  536. <form url="/api/clientSms/createOutgoing" right class="mcp-theme-1" noreload>
  537. <input type="hidden" name="uid" value="{{ $patient->uid }}">
  538. <div class="mb-2">
  539. <label for="" class="text-sm text-secondary mb-1">Cell
  540. Number</label>
  541. <input type="text" class="form-control form-control-sm"
  542. name="cellNumber" value="{{$patient->cell_number}}">
  543. </div>
  544. <div class="mb-2">
  545. <label for=""
  546. class="text-sm text-secondary mb-1">Message</label>
  547. <textarea type="text" class="form-control form-control-sm"
  548. name="message"></textarea>
  549. </div>
  550. <div class="d-flex align-items-center">
  551. <button class="btn btn-sm btn-primary mr-2" submit>Send</button>
  552. <button class="btn btn-sm btn-default mr-2 border" cancel>
  553. Cancel
  554. </button>
  555. </div>
  556. </form>
  557. </div>
  558. </div>
  559. </li>
  560. <li class="d-flex align-items-baseline">
  561. <div class="d-inline-flex screen-only">
  562. @include('app.patient.send_email')
  563. </div>
  564. </li>
  565. </ul>
  566. </div>
  567. </div>
  568. </div> <!-- z -->
  569. </div>
  570. </div>
  571. @if($pro->pro_type === 'ADMIN')
  572. <div class="screen-only card-header py-2 d-flex align-items-center mcp-theme-1 bg-aliceblue hide-inside-popup">
  573. <b class="">Tags ({{count($patient->clientTags)}}):</b>
  574. @foreach($patient->clientTags as $tag)
  575. <div class="d-inline-flex align-items-center ml-2 py-1 px-2 rounded bg-aliceblue text-info">
  576. <span class="text-sm">{{$tag->tag}}</span>
  577. <div moe relative class="ml-2">
  578. <a href="" start show><i class="fa fa-times text-secondary on-hover-opaque"></i></a>
  579. <form url="/api/clientTag/cancel" class="mcp-theme-1 min-width-200px">
  580. <input type="hidden" name="uid" value="{{$tag->uid}}">
  581. <p class="text-nowrap text-dark">Cancel this tag?</p>
  582. <div>
  583. <button submit class="btn btn-sm btn-primary mr-2">Submit</button>
  584. <button cancel class="btn btn-sm btn-default border">Cancel</button>
  585. </div>
  586. </form>
  587. </div>
  588. </div>
  589. @endforeach
  590. <div moe relative class="ml-2">
  591. <a href="" start show class="text-sm">+ Add</a>
  592. <form url="/api/clientTag/create" class="mcp-theme-1">
  593. <input type="hidden" name="clientUid" value="{{$patient->uid}}">
  594. <div class="mb-2">
  595. <label class="text-secondary text-sm">Tag</label>
  596. <input type="text" class="form-control form-control-sm"
  597. name="tag"
  598. placeholder="Tag" required>
  599. </div>
  600. <div>
  601. <button submit class="btn btn-sm btn-primary mr-2">Submit</button>
  602. <button cancel class="btn btn-sm btn-default border">Cancel</button>
  603. </div>
  604. </form>
  605. </div>
  606. </div>
  607. @endif
  608. {{--<div class="text-container border-bottom d-flex align-items-center mcp-theme-1 px-3">
  609. @if($patient->mcp_pro_id !== $pro->id && $patient->active_mcp_request_id)
  610. <div moe relative class="ml-2">
  611. <a href="" start show class="btn btn-sm btn-success text-white font-weight-bold small">Claim as MCP</a>
  612. <form url="/api/mcpRequest/claim" class="mcp-theme-1" right>
  613. <input type="hidden" name="clientUid" value="{{$patient->uid}}">
  614. <p>Claim this patient?</p>
  615. <div>
  616. <button submit class="btn btn-sm btn-primary mr-2">Yes</button>
  617. <button cancel class="btn btn-sm btn-default border">Cancel</button>
  618. </div>
  619. </form>
  620. </div>
  621. @endif
  622. </div>--}}
  623. <div class="card-body {{$routeName === 'pros.view.notes.view.dashboard' ? 'p-0' : ''}}">
  624. {{--<h1 class="h3">@yield('section-title')</h1>--}}
  625. <div class="mcp-theme-1">
  626. @yield('inner-content')
  627. </div>
  628. </div>
  629. </div>
  630. </main>
  631. </div>
  632. </div>
  633. <script>
  634. (function() {
  635. function init() {
  636. $('.note-method-select').change(function() {
  637. let form = $(this).closest('form');
  638. if(this.value === 'IN_CLINIC') {
  639. form.find('.if-in-clinic').show();
  640. }
  641. else {
  642. form.find('.if-in-clinic').hide();
  643. }
  644. });
  645. $('.note-method-select').each(function() {
  646. let form = $(this).closest('form');
  647. if(this.value === 'IN_CLINIC') {
  648. form.find('.if-in-clinic').show();
  649. }
  650. else {
  651. form.find('.if-in-clinic').hide();
  652. }
  653. });
  654. }
  655. addMCInitializer('patient-add-note-popup', init, '#patient-header')
  656. }).call(window);
  657. </script>
  658. <script>
  659. (function() {
  660. function init() {
  661. $('#sidebarMenu')
  662. .off('scroll')
  663. .on('scroll', function() {
  664. localStorage.sidebarMenuScrollTop = $(this).scrollTop();
  665. });
  666. if(localStorage.sidebarMenuScrollTop) {
  667. $('#sidebarMenu').scrollTop(+localStorage.sidebarMenuScrollTop);
  668. }
  669. }
  670. addMCInitializer('sidebarMenu', init, '#sidebarMenu')
  671. }).call(window);
  672. </script>
  673. @endsection