patient.blade.php 73 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924
  1. @extends(request()->input('popupmode') ? 'layouts.empty' : 'layouts.template')
  2. <?php
  3. /** @var \App\Models\Client $patient */
  4. ?>
  5. @section('content')
  6. <div class="container-fluid h-100">
  7. <div class="main-row h-100 {{ !request()->input('popupmode') ? '' : 'px-0' }}">
  8. @if(!request()->input('popupmode'))
  9. <nav id="sidebarMenu" class="d-md-block bg-light sidebar collapse px-0">
  10. <div class="sidebar-sticky pt-3">
  11. <ul class="nav flex-column mcp-theme-1">
  12. <?php $routeName = request()->route()->getName(); ?>
  13. <li class="nav-item">
  14. <a class="nav-link {{ strpos($routeName, 'patients.view.dashboard') === 0 ? 'active' : '' }}"
  15. href="{{ route('patients.view.dashboard', ['patient' => $patient]) }}">Dashboard</a>
  16. </li>
  17. <li class="nav-item">
  18. <a class="nav-link {{ strpos($routeName, 'patients.view.calendar') === 0 ? 'active' : '' }}"
  19. href="{{ route('patients.view.calendar', ['patient' => $patient]) }}">Calendar</a>
  20. </li>
  21. <li class="nav-item">
  22. <a class="nav-link {{ strpos($routeName, 'patients.view.appointments') === 0 ? 'active' : '' }}"
  23. href="{{ route('patients.view.appointments', ['patient' => $patient, 'forPro' => 'all', 'status' => 'all']) }}">Appointments</a>
  24. </li>
  25. <li class="nav-item">
  26. <a class="nav-link {{ strpos($routeName, 'patients.view.programs') === 0 ? 'active' : '' }}"
  27. href="{{ route('patients.view.programs', ['patient' => $patient]) }}">Programs</a>
  28. </li>
  29. <li class="nav-item">
  30. <a class="nav-link {{ strpos($routeName, 'patients.view.flowsheets') === 0 ? 'active' : '' }}"
  31. href="{{ route('patients.view.flowsheets', ['patient' => $patient]) }}">Flowsheets</a>
  32. </li>
  33. <li class="nav-item">
  34. <a class="nav-link {{ strpos($routeName, 'patients.view.vitals-graph') === 0 ? 'active' : '' }}"
  35. href="{{ route('patients.view.vitals-graph', ['patient' => $patient]) }}">Vitals Graph</a>
  36. </li>
  37. <li class="nav-item">
  38. <a class="nav-link {{ strpos($routeName, 'patients.view.care-months') === 0 ? 'active' : '' }}"
  39. href="{{ route('patients.view.care-months', ['patient' => $patient]) }}">Care Months</a>
  40. </li>
  41. <li class="nav-item">
  42. <a class="nav-link {{ strpos($routeName, 'patients.view.devices') === 0 ? 'active' : '' }}"
  43. href="{{ route('patients.view.devices', ['patient' => $patient]) }}">Devices</a>
  44. </li>
  45. <li class="nav-item">
  46. <a class="nav-link {{ strpos($routeName, 'patients.view.measurements') === 0 ? 'active' : '' }}"
  47. href="{{ route('patients.view.measurements', ['patient' => $patient]) }}">Measurements</a>
  48. </li>
  49. <li class="nav-item">
  50. <a class="nav-link {{ strpos($routeName, 'patients.view.notes') === 0 ? 'active' : '' }}"
  51. href="{{ route('patients.view.notes', ['patient' => $patient]) }}">Notes</a>
  52. </li>
  53. <li class="nav-item">
  54. <a class="nav-link {{ strpos($routeName, 'patients.view.sections') === 0 ? 'active' : '' }}"
  55. href="{{ route('patients.view.sections', ['patient' => $patient]) }}">Sections</a>
  56. </li>
  57. <li class="nav-item">
  58. <a class="nav-link {{ strpos($routeName, 'patients.view.handouts') === 0 ? 'active' : '' }}"
  59. href="{{ route('patients.view.handouts', ['patient' => $patient]) }}">Handouts</a>
  60. </li>
  61. <?php /* <li class="nav-item">
  62. <a class="nav-link d-flex align-items-center {{ strpos($routeName, 'patients.view.action-items') === 0 ? 'active' : '' }}"
  63. native onclick="return false">
  64. <span class="text-dark">ERx/Orders</span>
  65. </a>
  66. <ul class="m-0 p-0 nav-child-list">
  67. <li class="nav-item">
  68. <a class="nav-link {{ strpos($routeName, 'patients.view.action-items-erx') === 0 ? 'active' : '' }}"
  69. href="{{ route('patients.view.action-items-erx', ['patient' => $patient]) }}">ERx</a>
  70. </li>
  71. <li class="nav-item">
  72. <a class="nav-link {{ strpos($routeName, 'patients.view.action-items-lab') === 0 ? 'active' : '' }}"
  73. href="{{ route('patients.view.action-items-lab', ['patient' => $patient]) }}">Lab</a>
  74. </li>
  75. <li class="nav-item">
  76. <a class="nav-link {{ strpos($routeName, 'patients.view.action-items-imaging') === 0 ? 'active' : '' }}"
  77. href="{{ route('patients.view.action-items-imaging', ['patient' => $patient]) }}">Imaging</a>
  78. </li>
  79. <li class="nav-item">
  80. <a class="nav-link {{ strpos($routeName, 'patients.view.action-items-equipment') === 0 ? 'active' : '' }}"
  81. href="{{ route('patients.view.action-items-equipment', ['patient' => $patient]) }}">Equipment</a>
  82. </li>
  83. </ul>
  84. </li> */ ?>
  85. <li class="nav-item">
  86. <a class="nav-link {{ strpos($routeName, 'patients.view.patient-tickets') === 0 ? 'active' : '' }}"
  87. href="{{ route('patients.view.patient-tickets', ['patient' => $patient]) }}">ERx / Orders</a>
  88. <ul class="m-0 p-0 nav-child-list">
  89. <li class="nav-item">
  90. <a class="nav-link {{ strpos($routeName, 'patients.view.patient-tickets') === 0 && @$type === '' ? 'active' : '' }}"
  91. href="{{ route('patients.view.patient-tickets', ['patient' => $patient, 'type' => '']) }}">All</a>
  92. </li>
  93. <li class="nav-item">
  94. <a class="nav-link {{ strpos($routeName, 'patients.view.patient-tickets') === 0 && @$type === 'erx' ? 'active' : '' }}"
  95. href="{{ route('patients.view.patient-tickets', ['patient' => $patient, 'type' => 'erx']) }}">ERx</a>
  96. </li>
  97. <li class="nav-item">
  98. <a class="nav-link {{ strpos($routeName, 'patients.view.patient-tickets') === 0 && @$type === 'lab' ? 'active' : '' }}"
  99. href="{{ route('patients.view.patient-tickets', ['patient' => $patient, 'type' => 'lab']) }}">Lab</a>
  100. </li>
  101. <li class="nav-item">
  102. <a class="nav-link {{ strpos($routeName, 'patients.view.patient-tickets') === 0 && @$type === 'imaging' ? 'active' : '' }}"
  103. href="{{ route('patients.view.patient-tickets', ['patient' => $patient, 'type' => 'imaging']) }}">Imaging</a>
  104. </li>
  105. </ul>
  106. </li>
  107. <li class="nav-item">
  108. <a class="nav-link {{ strpos($routeName, 'patients.view.supply-orders') === 0 ? 'active' : '' }}"
  109. href="{{ route('patients.view.supply-orders', ['patient' => $patient]) }}">Supply Orders</a>
  110. </li>
  111. <li class="nav-item">
  112. <a class="nav-link {{ strpos($routeName, 'patients.view.shipments') === 0 ? 'active' : '' }}"
  113. href="{{ route('patients.view.shipments', ['patient' => $patient]) }}">Shipments</a>
  114. </li>
  115. <li class="nav-item">
  116. <a class="nav-link {{ strpos($routeName, 'patients.view.incoming-reports') === 0 ? 'active' : '' }}"
  117. href="{{ route('patients.view.incoming-reports', ['patient' => $patient]) }}">Incoming Reports</a>
  118. </li>
  119. <li class="nav-item">
  120. <a class="nav-link {{ strpos($routeName, 'patients.view.allergies') === 0 ? 'active' : '' }}"
  121. href="{{ route('patients.view.allergies', ['patient' => $patient]) }}">Allergies</a>
  122. </li>
  123. <li class="nav-item">
  124. <a class="nav-link {{ strpos($routeName, 'patients.view.medications') === 0 ? 'active' : '' }}"
  125. href="{{ route('patients.view.medications', ['patient' => $patient]) }}">Medications</a>
  126. </li>
  127. <li class="nav-item">
  128. <a class="nav-link {{ strpos($routeName, 'patients.view.dx-and-focus-areas') === 0 ? 'active' : '' }}"
  129. href="{{ route('patients.view.dx-and-focus-areas', ['patient' => $patient]) }}">Dx and
  130. Focus Areas</a>
  131. </li>
  132. <li class="nav-item">
  133. <a class="nav-link {{ strpos($routeName, 'patients.view.care-team') === 0 ? 'active' : '' }}"
  134. href="{{ route('patients.view.care-team', ['patient' => $patient]) }}">Care Team</a>
  135. </li>
  136. <li class="nav-item">
  137. <a class="nav-link {{ strpos($routeName, 'patients.view.history') === 0 ? 'active' : '' }}"
  138. href="{{ route('patients.view.history', ['patient' => $patient]) }}">History</a>
  139. </li>
  140. <li class="nav-item">
  141. <a class="nav-link {{ strpos($routeName, 'patients.view.memos') === 0 ? 'active' : '' }}"
  142. href="{{ route('patients.view.memos', ['patient' => $patient]) }}">Memos</a>
  143. </li>
  144. <li class="nav-item">
  145. <a class="nav-link {{ $routeName === 'patients.view.sms' ? 'active' : '' }}"
  146. href="{{ route('patients.view.sms', ['patient' => $patient]) }}">SMS</a>
  147. </li>
  148. <li class="nav-item">
  149. <a class="nav-link {{ strpos($routeName, 'patients.view.sms-numbers') === 0 ? 'active' : '' }}"
  150. href="{{ route('patients.view.sms-numbers', ['patient' => $patient]) }}">SMS Numbers</a>
  151. </li>
  152. <li class="nav-item">
  153. <a class="nav-link {{ strpos($routeName, 'patients.view.documents') === 0 ? 'active' : '' }}"
  154. href="{{ route('patients.view.documents', ['patient' => $patient]) }}">Documents</a>
  155. </li>
  156. <li class="nav-item">
  157. <a class="nav-link {{ strpos($routeName, 'patients.view.settings') === 0 ? 'active' : '' }}"
  158. href="{{ route('patients.view.settings', ['patient' => $patient]) }}">Settings</a>
  159. </li>
  160. <li class="nav-item">
  161. <a class="nav-link {{ strpos($routeName, 'patients.view.pros') === 0 ? 'active' : '' }}"
  162. href="{{ route('patients.view.pros', ['patient' => $patient]) }}">Pros</a>
  163. </li>
  164. <li class="nav-item">
  165. <a class="nav-link" href="/patients/view/{{ $patient->uid }}/intake">Intake</a>
  166. </li>
  167. @if($performer->pro->pro_type == 'ADMIN')
  168. <li class="nav-item">
  169. <a class="nav-link {{ strpos($routeName, 'patients.view.mcp-requests') === 0 ? 'active' : '' }}"
  170. href="{{ route('patients.view.mcp-requests', $patient) }}">MCP Requests</a>
  171. </li>
  172. <li class="nav-item">
  173. <a class="nav-link {{ strpos($routeName, 'patients.view.eligible-refreshes') === 0 ? 'active' : '' }}"
  174. href="{{ route('patients.view.eligible-refreshes', $patient) }}">Eligible Refreshes</a>
  175. </li>
  176. <li class="nav-item">
  177. <a class="nav-link {{ strpos($routeName, 'patients.view.insurance-coverage') === 0 ? 'active' : '' }}"
  178. href="{{ route('patients.view.insurance-coverage', $patient) }}">Insurance Coverage</a>
  179. </li>
  180. <li class="nav-item">
  181. <a class="nav-link {{ strpos($routeName, 'patients.view.claims-resolver') === 0 ? 'active' : '' }}"
  182. href="{{ route('patients.view.claims-resolver', $patient) }}">Claims Resolver</a>
  183. </li>
  184. @endif
  185. </ul>
  186. <div class="mt-3 mcp-theme-1">
  187. @yield('left-nav-content')
  188. </div>
  189. </div>
  190. </nav>
  191. @endif
  192. <main role="main" class="w-100">
  193. @if(!count($pro->companyProPayers) || /* pro has no assoc with any payer */
  194. ($patient->is_part_b_primary !== 'YES' && !$patient->non_mc_primary_payer_id) || /* patient is not part_b and has no primary non-mc payer */
  195. ($patient->is_part_b_primary === 'YES' && !$pro->isAssociatedWithMCPayer()) || /* patient is part_b but pro has no mc payer assoc */
  196. ($patient->is_part_b_primary !== 'YES' && $patient->non_mc_primary_payer_id && /* patient is not part_b and has non-mc-primary, but pro has no assoc with that payer */
  197. !$pro->isAssociatedWithNonMCPayer($patient->non_mc_primary_payer_id))
  198. )
  199. <div class="alert alert-warning mt-3 mcp-theme-1 p-3 hide-inside-ticket-popup">
  200. <div class="font-size-14 font-weight-bold">
  201. <i class="fa fa-exclamation-triangle text-warning-mellow"></i>
  202. This patient may not be covered for this visit. Please check with practice administrator.
  203. </div>
  204. </div>
  205. @endif
  206. @if($pro->is_enrolled_as_mcp && !$patient->mcp)
  207. <div class="alert alert-info bg-white mt-3 mcp-theme-1 p-3 hide-inside-ticket-popup">
  208. <div class="font-size-16">
  209. <i class="fa fa-exclamation-triangle text-warning-mellow"></i>
  210. This patient currently does not have an MCP assigned.
  211. </div>
  212. <div class="mt-3 d-flex align-items-center">
  213. <button class="btn btn-info" onclick="$('.in-conv-confirmed').removeClass('d-none').addClass('d-inline-flex')">I am currently seeing or talking to this patient</button>
  214. <div class="in-conv-confirmed d-none align-items-center">
  215. <i class="fa fa-chevron-right mx-3 text-secondary"></i>
  216. <div moe>
  217. <a href="" start show class="btn btn-primary font-weight-bold text-white">
  218. Assign myself as the MCP for this patient
  219. </a>
  220. <form url="/api/client/putMcp" class="mcp-theme-1">
  221. <input type="hidden" name="uid" value="{{$patient->uid}}">
  222. <input type="hidden" name="mcpProUid" value="{{$pro->uid}}">
  223. <p>Are you sure?</p>
  224. <div>
  225. <button submit class="btn btn-sm btn-primary mr-2">
  226. Submit
  227. </button>
  228. <button cancel class="btn btn-sm btn-default border">
  229. Cancel
  230. </button>
  231. </div>
  232. </form>
  233. </div>
  234. </div>
  235. </div>
  236. </div>
  237. @endif
  238. @if($patient->has_mcp_done_onboarding_visit !== 'YES' && $patient->is_mcp_onboarding_active === 'NO')
  239. <div class="alert alert-warning mt-3 mcp-theme-1 p-3 hide-inside-ticket-popup">
  240. <div class="font-weight-bold text-dark font-size-16">MCP onboarding is not active for this patient.</div>
  241. <div class="text-secondary p-2 border mt-2 bg-light">
  242. <div class="font-weight-bold">{{$patient->why_is_mcp_onboarding_not_active_category}}</div>
  243. <div>{{$patient->why_is_mcp_onboarding_not_active_memo}}</div>
  244. </div>
  245. </div>
  246. @endif
  247. <div class="card mt-3">
  248. <div class="card-header py-1 hide-inside-ticket-popup">
  249. <?php
  250. $thumbnail = $patient->profile_picture_base64;
  251. $initials = !$thumbnail ? substr($patient->name_first, 0, 1) . substr($patient->name_last, 0, 1) : '';
  252. $online = $patient->is_online ? 'online' : '';
  253. $patientName = implode(', ', array_filter([$patient->name_last, $patient->name_first]));
  254. $confirmedCell = empty($patient->cell_number) ? '-' : $patient->cell_number;
  255. $confirmedEmail = empty($patient->email_address) ? '-' : $patient->email_address;
  256. $location = implode(', ', array_filter([$patient->home_address_city, $patient->home_address_state]));
  257. $location = empty($location) ? '-' : $location;
  258. $mcpName = $patient->mcp ? implode(', ', array_filter([$patient->mcp->name_last, $patient->mcp->name_first])) : null;
  259. $cmName = $patient->cm ? implode(', ', array_filter([$patient->cm->name_last, $patient->cm->name_first])) : null;
  260. $memberSince = date_diff(date_create($patient->created_at), date_create('now'))->days;
  261. if ($memberSince > 30) $memberSince = date('F, Y', strtotime($patient->created_at));
  262. else if ($memberSince > 1) $memberSince .= ' days ago';
  263. else if ($memberSince === 1) $memberSince = 'yesterday';
  264. else if ($memberSince === 0) $memberSince = 'today';
  265. ?>
  266. <div class=z>
  267. <div class=header>
  268. @if($patient->is_duplicate)
  269. <div class="alert alert-secondary border-dark mcp-theme-1">
  270. <span class="text-dark">This chart is a duplicate of&nbsp;</span>
  271. <a class="font-weight-bold"
  272. href="/patients/view/{{ $patient->duplicateOf->uid }}">
  273. {{ $patient->duplicateOf->displayName() }}
  274. </a>
  275. </div>
  276. @endif
  277. <div class=hbox>
  278. <div class="mr-1 patient-presence-indicator thumbnail {{$online}}"
  279. data-patient-uid="{{$patient->uid}}"
  280. style="background-image:<?=$thumbnail?>"><?=$initials?></div>
  281. {{--<div>
  282. <div @if($patient->is_microphone_available)style="color:green" @else style="color:gray" @endif>
  283. <i class="fa fa-microphone"></i>
  284. </div>
  285. <div @if($patient->is_camera_available)style="color:green" @else style="color:gray" @endif>
  286. <i class="fa fa-video"></i>
  287. </div>
  288. </div>--}}
  289. <section>
  290. <div class=hbox>
  291. <h4>{{$patientName}}</h4>
  292. <i class=chart>[#{{$patient->chart_number}}]</i>
  293. </div>
  294. <div class=separators>
  295. <div>{{friendly_date_time($patient->dob, false)}}({{$patient->age_in_years}}
  296. y.o {{$patient->sex}})
  297. </div>
  298. <div>
  299. @if($patient->is_coverage_manually_verified || ($patient->was_medicare_validation_successful && $patient->is_part_b_primary == 'YES'))
  300. Covered <span style="color:green"><i class="fa fa-check-circle"></i> </span>
  301. @elseif($patient->was_medicare_validation_successful)
  302. <span>
  303. @if($patient->is_part_b_primary == 'YES')
  304. Medicare Part B
  305. @else
  306. Not Medicare Part B <i class="fa fa-times"></i>
  307. @if($patient->is_medicare_advantage == 'YES')
  308. , Medicare Advantage,
  309. {{$patient->medicare_advantage_plan}}
  310. @endif
  311. @endif
  312. </span>
  313. @else
  314. <div moe>
  315. <a href="" start show>
  316. @if($patient->mcn)
  317. {{$patient->mcn}} Invalid MCN <i
  318. class="fa fa-times"></i>
  319. @elseif($patient->is_coverage_manually_verified)
  320. {{$patient->coverage_manual_verification_memo}} <span style="color:green"><i class="fa fa-check-circle"></i>
  321. @else
  322. No Info Provided
  323. @endif
  324. </a>
  325. <form url="/api/client/putMedicareInfo" class="mcp-theme-1">
  326. <input type="hidden" name="uid" value="{{$patient->uid}}">
  327. <div class="mb-2">
  328. <input type="text" class="form-control form-control-sm"
  329. name="nameFirst"
  330. value="{{$patient->name_first}}"
  331. placeholder="First Name">
  332. </div>
  333. <div class="mb-2">
  334. <input type="text" class="form-control form-control-sm"
  335. name="nameLast"
  336. value="{{$patient->name_last}}"
  337. placeholder="Last Name">
  338. </div>
  339. <div class="mb-2">
  340. <input type="date" class="form-control form-control-sm"
  341. name="dob"
  342. value="{{$patient->dob}}"
  343. placeholder="Date of Birth">
  344. </div>
  345. <div class="mb-2">
  346. <input type="text" class="form-control form-control-sm"
  347. name="mcn"
  348. value="{{$patient->mcn}}"
  349. placeholder="Medicare Number">
  350. </div>
  351. <div>
  352. <button submit class="btn btn-sm btn-primary mr-2">
  353. Submit
  354. </button>
  355. <button cancel class="btn btn-sm btn-default border">
  356. Cancel
  357. </button>
  358. </div>
  359. </form>
  360. </div>
  361. @endif
  362. @if(!$patient->was_medicare_validation_successful)
  363. @if(!$patient->is_coverage_manually_verified)
  364. <div moe relative class="ml-2">
  365. <a start show class="font-weight-bold">Manually verify coverage</a>
  366. <form url="/api/client/markCoverageAsManuallyVerified" class="mcp-theme-1" right>
  367. <input type="hidden" name="uid" value="{{$patient->uid}}">
  368. <div class="form-group">
  369. <textarea name="memo" class="fom-control"></textarea>
  370. </div>
  371. <div>
  372. <button submit class="btn btn-sm btn-success mr-1">Yes</button>
  373. <button cancel class="btn btn-sm btn-default border">No</button>
  374. </div>
  375. </form>
  376. </div>
  377. @endif
  378. {{--@if($patient->is_coverage_manually_verified)
  379. <div moe relative class="ml-2">
  380. <a start show class="font-weight-bold">Undo manual verification</a>
  381. <form url="/api/client/undoMarkCoverageAsManuallyVerified" class="mcp-theme-1" right>
  382. <input type="hidden" name="uid" value="{{$patient->uid}}">
  383. <p>Undo coverage verification</p>
  384. <div>
  385. <button submit class="btn btn-sm btn-success mr-1">Yes</button>
  386. <button cancel class="btn btn-sm btn-default border">No</button>
  387. </div>
  388. </form>
  389. </div>
  390. @endif--}}
  391. @endif
  392. </div>
  393. </div>
  394. <div class=separators>
  395. <div>Joined <?=$memberSince?></div>
  396. <div><label>MCP:</label> {{$mcpName}}
  397. @if($patient->has_mcp_done_onboarding_visit !== 'YES' && $pro->pro_type == 'ADMIN')
  398. <div moe class="ml-2">
  399. <a start show><i class="fa fa-edit"></i></a>
  400. <form url="/api/client/putMcp" class="mcp-theme-1">
  401. <input type="hidden" name="uid" value="{{$patient->uid}}">
  402. <div class="mb-2">
  403. <label class="text-secondary text-sm">MCP Pro</label>
  404. <select name="mcpProUid" provider-search data-pro-uid="{{ @$patient->mcp->uid }}"
  405. class="form-control form-control-sm">
  406. <option value=""> --select--</option>
  407. @foreach($pros as $iPro)
  408. <option
  409. value="{{$iPro->uid}}" {{ $patient->mcp && $iPro->uid === $patient->mcp->uid ? 'selected' : '' }}>{{$iPro->displayName()}}</option>
  410. @endforeach
  411. </select>
  412. </div>
  413. <div>
  414. <button submit class="btn btn-sm btn-primary mr-1">
  415. Submit
  416. </button>
  417. <button cancel class="btn btn-sm btn-default border">
  418. Cancel
  419. </button>
  420. </div>
  421. </form>
  422. </div>
  423. @if($patient->mcp)
  424. <div moe class="ml-2">
  425. <a start show><i class="fa fa-times"></i></a>
  426. <form url="/api/client/removeMcp" class="mcp-theme-1">
  427. <input type="hidden" name="uid" value="{{$patient->uid}}">
  428. <div class="mb-2">
  429. <label class="text-secondary text-sm">Remove MCP Pro</label>
  430. </div>
  431. <div>
  432. <button submit class="btn btn-sm btn-primary mr-1">Submit
  433. </button>
  434. <button cancel class="btn btn-sm btn-default border">
  435. Cancel
  436. </button>
  437. </div>
  438. </form>
  439. </div>
  440. @endif
  441. @endif
  442. </div>
  443. </div>
  444. <div>
  445. @if($patient->has_mcp_done_onboarding_visit !== 'YES')
  446. <span class="text-dark d-inline-flex align-items-center">
  447. <span class="mr-2">
  448. <i class="fa fa-exclamation-triangle"></i>
  449. MCP Onboarding Visit Pending
  450. </span>
  451. </span>
  452. <span moe>
  453. <a start show><i class="fa fa-edit"></i></a>
  454. <form url="/api/client/updateMcpOnboardingVisitInfo" class="mcp-theme-1">
  455. <input type="hidden" name="uid" value="{{$patient->uid}}">
  456. <div class="mb-2">
  457. <select name="hasMcpDoneOnboardingVisit"
  458. class="form-control form-control-sm"
  459. onchange="toggleDisabledAsNeeded(this, 'YES', 'if-visit-done')">
  460. <option value="">-- Select Status --</option>
  461. <option value="YES" {{ $patient->has_mcp_done_onboarding_visit === 'YES' ? 'selected' : '' }}>YES</option>
  462. <option value="NO" {{ $patient->has_mcp_done_onboarding_visit === 'NO' ? 'selected' : '' }}>NO</option>
  463. <option value="UNKNOWN" {{ $patient->has_mcp_done_onboarding_visit === 'UNKNOWN' ? 'selected' : '' }}>UNKNOWN</option>
  464. </select>
  465. </div>
  466. <div class="mb-2">
  467. <input type="date"
  468. class="if-visit-done form-control form-control-sm" disabled
  469. name="mcpOnboardingVisitDate" value="{{ date('Y-m-d') }}"
  470. max="{{ date('Y-m-d') }}">
  471. </div>
  472. <div class="mb-2">
  473. <select name="mcpOnboardingVisitNoteUid" disabled
  474. class="form-control form-control-sm if-visit-done"
  475. onchange="if(this.value === '-- create --') createNewNote('{{$patient->uid}}', '{{$pro->uid}}', '{{date('Y-m-d')}}');">
  476. <option value="">-- Visit Note --</option>
  477. <?php $notes = \App\Models\Note::where('client_id', $patient->id)->get() ?>
  478. @foreach ($notes as $note)
  479. @if(!empty($note->title) && $note->client_id === $patient->id && !$note->is_cancelled)
  480. <option
  481. {{ $patient->mcp_onboarding_visit_note_id === $note->id ? 'selected' : '' }}
  482. value="{{$note->uid}}">{{$note->title}} ({{friendly_date_time($note->effective_dateest, false)}})</option>
  483. @endif
  484. @endforeach
  485. {{--<option value="-- create --">-- Create Note --</option>--}}
  486. </select>
  487. </div>
  488. <div class="mb-2 if-note-outside-system">
  489. <textarea class="form-control form-control-sm"
  490. name="reasonOnboardingVisitNoteOutsideSystem"
  491. placeholder="Visit note outside the system reason"
  492. spellcheck="false" data-gramm="false"></textarea>
  493. </div>
  494. <div>
  495. <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
  496. <button cancel class="btn btn-sm btn-default border">Cancel</button>
  497. </div>
  498. </form>
  499. </span>
  500. @else
  501. <span class="text-dark d-inline-flex align-items-center">
  502. <span class="mr-2 text-secondary">
  503. <i class="fa fa-check text-sm"></i>
  504. MCP Onboarding Visit Completed
  505. </span>
  506. </span>
  507. @endif
  508. </div>
  509. <div>
  510. <label>Physician:</label> {{$patient->pcp ? $patient->pcp->displayName() : '-' }}
  511. @if($pro->pro_type == 'ADMIN')
  512. <div moe class="ml-2">
  513. <a start show><i class="fa fa-edit"></i></a>
  514. <form url="/api/client/putPhysicianPro" class="mcp-theme-1">
  515. <input type="hidden" name="uid" value="{{$patient->uid}}">
  516. <div class="mb-2">
  517. <label class="text-secondary text-sm">Physician Pro</label>
  518. <select provider-search data-pro-uid="{{ @$patient->pcp->uid }}"
  519. name="physicianProUid"
  520. class="form-control form-control-sm">
  521. <option value=""> --select--</option>
  522. @foreach($pros as $iPro)
  523. <option
  524. value="{{$iPro->uid}}" {{ $patient->pcp && $iPro->uid === $patient->pcp->uid ? 'selected' : '' }}>{{$iPro->displayName()}}</option>
  525. @endforeach
  526. </select>
  527. </div>
  528. <div>
  529. <button submit class="btn btn-sm btn-primary mr-1">Submit
  530. </button>
  531. <button cancel class="btn btn-sm btn-default border">
  532. Cancel
  533. </button>
  534. </div>
  535. </form>
  536. </div>
  537. @if($patient->pcp)
  538. <div moe class="ml-2">
  539. <a start show><i class="fa fa-times"></i></a>
  540. <form url="/api/client/removePhysicianPro" class="mcp-theme-1">
  541. <input type="hidden" name="uid" value="{{$patient->uid}}">
  542. <div class="mb-2">
  543. <label class="text-secondary text-sm">Remove Physician Pro</label>
  544. </div>
  545. <div>
  546. <button submit class="btn btn-sm btn-primary mr-1">Submit
  547. </button>
  548. <button cancel class="btn btn-sm btn-default border">
  549. Cancel
  550. </button>
  551. </div>
  552. </form>
  553. </div>
  554. @endif
  555. @endif
  556. </div>
  557. <div>
  558. <label>Default NA:</label> {{$patient->defaultNaPro ? $patient->defaultNaPro->displayName() : '-' }}
  559. @if($pro->pro_type == 'ADMIN')
  560. <div moe class="ml-2">
  561. <a start show><i class="fa fa-edit"></i></a>
  562. <form url="/api/client/putDefaultNaPro" class="mcp-theme-1">
  563. <input type="hidden" name="uid" value="{{$patient->uid}}">
  564. <div class="mb-2">
  565. <label class="text-secondary text-sm">Default NA Pro</label>
  566. <select provider-search data-pro-uid="{{ @$patient->defaultNaPro->uid }}"
  567. name="defaultNaProUid"
  568. class="form-control form-control-sm">
  569. <option value=""> --select--</option>
  570. @foreach($pros as $iPro) <?php continue; ?>
  571. <option
  572. value="{{$iPro->uid}}" {{ $patient->defaultNaPro && $iPro->uid === $patient->defaultNaPro->uid ? 'selected' : '' }}>{{$iPro->displayName()}}</option>
  573. @endforeach
  574. </select>
  575. </div>
  576. <div>
  577. <button submit class="btn btn-sm btn-primary mr-1">Submit
  578. </button>
  579. <button cancel class="btn btn-sm btn-default border">
  580. Cancel
  581. </button>
  582. </div>
  583. </form>
  584. </div>
  585. @if($patient->defaultNaPro)
  586. <div moe class="ml-2">
  587. <a start show><i class="fa fa-times"></i></a>
  588. <form url="/api/client/removeDefaultNaPro" class="mcp-theme-1">
  589. <input type="hidden" name="uid" value="{{$patient->uid}}">
  590. <div class="mb-2">
  591. <label class="text-secondary text-sm">Remove Default NA Pro</label>
  592. </div>
  593. <div>
  594. <button submit class="btn btn-sm btn-primary mr-1">Submit
  595. </button>
  596. <button cancel class="btn btn-sm btn-default border">
  597. Cancel
  598. </button>
  599. </div>
  600. </form>
  601. </div>
  602. @endif
  603. @endif
  604. </div>
  605. </section>
  606. {{--<section>
  607. <div>
  608. <label>Next Appt:</label>
  609. <?php
  610. $nextAppointment = $patient->nextMcpAppointment();
  611. $startTime = false;
  612. $endTime = false;
  613. if($nextAppointment) {
  614. $startTime = date('H:i', strtotime($nextAppointment->start_time));
  615. $endTime = date('H:i', strtotime($nextAppointment->end_time));
  616. $nextAppointment = date('Y-m-d', strtotime($nextAppointment->start_time));
  617. }
  618. ?>
  619. {{$nextAppointment ? friendly_date_time($nextAppointment . ($startTime ? ' ' . $startTime : ''), true, '') : '-'}}
  620. <span moe relative class="ml-1">
  621. <a start show><i class="fa fa-edit"></i></a>
  622. <form url="/api/appointment/create" class="mcp-theme-1" right>
  623. <input type="hidden" name="clientUid" value="{{$patient->uid}}">
  624. <input type="hidden" name="title" value="MCP Appointment">
  625. <div class="mb-2">
  626. <label class="text-secondary text-sm">Pro</label>
  627. <select name="proUid" class="form-control form-control-sm">
  628. <option value=""> --select-- </option>
  629. @foreach($pros as $iPro)
  630. <option value="{{$iPro->uid}}" {{ $iPro->uid === $pro->uid ? 'selected' : '' }}>{{$iPro->displayName()}}</option>
  631. @endforeach
  632. </select>
  633. </div>
  634. <div class="mb-2">
  635. <label class="text-secondary text-sm">Date</label>
  636. <input type="date" name="date" min="{{ date('Y-m-d') }}"
  637. value="{{ $nextAppointment ? $nextAppointment : date('Y-m-d') }}"
  638. class="form-control form-control-sm">
  639. </div>
  640. <div class="mb-2">
  641. <label class="text-secondary text-sm">Start Time</label>
  642. <input type="time" name="startTime" class="form-control form-control-sm"
  643. value="{{ $startTime ? $startTime : '' }}">
  644. </div>
  645. <div class="mb-2">
  646. <label class="text-secondary text-sm">End Time</label>
  647. <input type="time" name="endTime" class="form-control form-control-sm"
  648. value="{{ $endTime ? $endTime : '' }}">
  649. </div>
  650. <div>
  651. <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
  652. <button cancel class="btn btn-sm btn-default border">Cancel</button>
  653. </div>
  654. </form>
  655. </span>
  656. </div>
  657. <div>
  658. <label>CM:</label> {{ $patient->is_enrolled_in_cm === 'YES' ? 'Yes' : 'No' }}
  659. <label class="ml-2">RM:</label> {{ $patient->is_enrolled_in_rm === 'YES' ? 'Yes' : 'No' }}
  660. </div>
  661. </section>--}}
  662. <section class="vbox mt-2 align-self-start ml-4">
  663. <div moe>
  664. <button start show><i class="fa fa-plus text-sm text-secondary"></i>&nbsp;Note
  665. </button>
  666. <form url="/api/note/createUsingTemplate"
  667. redir="/patients/view/{{$patient->uid}}/notes/view/[data]"
  668. class="mcp-theme-1">
  669. <input type="hidden" name="clientUid" value="{{$patient->uid}}">
  670. <input type="hidden" name="hcpProUid" value="{{$pro->uid}}">
  671. <input type="hidden" name="effectiveDateEST" value="{{date("Y-m-d")}}">
  672. <input type="hidden" name="effectiveTime" value="{{date("h:i")}}">
  673. <input type="hidden" name="title" id="note-create-title" value="">
  674. <div class="form-group mb-2">
  675. <label for="" class="text-secondary text-sm mb-1">Note Template
  676. *</label>
  677. <select name="noteTemplateUid" class="form-control form-control-sm"
  678. onchange="$('#note-create-title').val($(this).find('option:selected').text())"
  679. required>
  680. <option value=""> --select--</option>
  681. @foreach($pro->noteTemplates as $noteTemplate)
  682. <?php $nT = $noteTemplate->template(); ?>
  683. <option value="{{$nT->uid}}">{{$nT->title}}</option>
  684. @endforeach
  685. </select>
  686. </div>
  687. <div class="form-group m-0">
  688. <button submit class="btn btn-primary btn-sm">submit</button>
  689. </div>
  690. </form>
  691. </div>
  692. <div>
  693. <div moe relative>
  694. <button start show><i class="fa fa-plus text-sm text-secondary"></i>&nbsp;SMS
  695. </button>
  696. <form url="/api/clientSms/createOutgoing" right class="mcp-theme-1">
  697. <input type="hidden" name="uid" value="{{ $patient->uid }}">
  698. <div class="mb-2">
  699. <label for="" class="text-sm text-secondary mb-1">Cell
  700. Number</label>
  701. <input type="text" class="form-control form-control-sm"
  702. name="cellNumber" value="{{$patient->cell_number}}">
  703. </div>
  704. <div class="mb-2">
  705. <label for=""
  706. class="text-sm text-secondary mb-1">Message</label>
  707. <textarea type="text" class="form-control form-control-sm"
  708. name="message"></textarea>
  709. </div>
  710. <div class="d-flex align-items-center">
  711. <button class="btn btn-sm btn-primary mr-2" submit>Send</button>
  712. <button class="btn btn-sm btn-default mr-2 border" cancel>
  713. Cancel
  714. </button>
  715. </div>
  716. </form>
  717. </div>
  718. </div>
  719. <div>
  720. <span moe relative class="">
  721. <button start show title="SMS check-in link to the patient">Send&nbsp;<i
  722. class="on-hover-opaque fa fa-paper-plane text-secondary"></i></button>
  723. <form url="/api/client/sendCheckInTokenViaSmsOrEmail" right
  724. class="mcp-theme-1">
  725. <input type="hidden" name="uid" value="{{ $patient->uid }}">
  726. <p class="small min-width-200px mb-2">Send Check-In link to patient?</p>
  727. <div class="mb-2">
  728. <label for=""
  729. class="text-sm text-secondary mb-1">Cell Number</label>
  730. <input type="text" class="form-control input-sm" name="cellNumber"
  731. value="{{$patient->cell_number}}">
  732. </div>
  733. <div class="mb-2">
  734. <label for=""
  735. class="text-sm text-secondary mb-1">Email address</label>
  736. <input type="text" class="form-control input-sm" name="emailAddress"
  737. value="{{$patient->email_address}}">
  738. </div>
  739. <div class="d-flex align-items-center">
  740. <button class="btn btn-sm btn-primary mr-2" submit>Send</button>
  741. <button class="btn btn-sm btn-default mr-2 border"
  742. cancel>Cancel</button>
  743. </div>
  744. </form>
  745. </span>
  746. </div>
  747. </section>
  748. <section class="vbox mt-2 align-self-start ml-1">
  749. @if($performer->pro->pro_type == 'ADMIN')
  750. <div>
  751. <button class="col-2-button" onclick="return openInRHS('/pro/check-video/{{ $patient->uid }}')">Check Video</button>
  752. </div>
  753. @endif
  754. <div>
  755. <button class="col-2-button" onclick="return openInRHS('/pro/meet/{{ $patient->uid }}')">Join Video</button>
  756. </div>
  757. <div class="">
  758. @if($pro->isWorkingOnClient($patient))
  759. {{-- stop work on client --}}
  760. <div moe>
  761. <form url="/api/proClientWork/KillRunningWorkForSelf"
  762. class="mcp-theme-1" show>
  763. <input type="hidden" name="uid" value="{{$patient->uid}}">
  764. <div>
  765. <button class="col-2-button" submit><i class="fa fa-stop text-secondary"></i>&nbsp;Work:
  766. Stop
  767. </button>
  768. </div>
  769. </form>
  770. </div>
  771. @else
  772. {{-- start work on client --}}
  773. <div moe>
  774. <form url="/api/proClientWork/create" class="mcp-theme-1" show>
  775. <input type="hidden" name="clientUid" value="{{$patient->uid}}">
  776. <div>
  777. <button class="col-2-button" submit><i class="fa fa-play text-secondary"></i>&nbsp;Work:
  778. Start
  779. </button>
  780. </div>
  781. </form>
  782. </div>
  783. @endif
  784. </div>
  785. <div class="mr-auto">
  786. @if($pro->isWorkingOnClient($patient))
  787. <div class="d-flex align-items-center">
  788. @if($patient->active_mcp_request_id)
  789. {{-- kill mcp request for client --}}
  790. <div moe relative class="">
  791. <button href="" start show class="col-2-button"><i
  792. class="fa fa-times text-danger"></i>&nbsp;MCP Req.
  793. </button>
  794. <form url="/api/mcpRequest/kill" class="mcp-theme-1" right>
  795. <input type="hidden" name="clientUid"
  796. value="{{$patient->uid}}">
  797. <p>Kill the MCP Request for this patient?</p>
  798. <div>
  799. <button submit class="btn btn-sm btn-primary mr-2">
  800. Yes
  801. </button>
  802. <button cancel
  803. class="btn btn-sm btn-default border">Cancel
  804. </button>
  805. </div>
  806. </form>
  807. </div>
  808. @else
  809. {{-- create mcp request for client --}}
  810. <div moe relative class="">
  811. <button href="" start show class="col-2-button"><i
  812. class="fa fa-plus text-sm text-secondary"></i>&nbsp;MCP
  813. Req.
  814. </button>
  815. <form url="/api/mcpRequest/createAsPro" class="mcp-theme-1"
  816. right>
  817. <p>Create an MCP Request for this patient?</p>
  818. <div>
  819. <button submit class="btn btn-sm btn-primary mr-2">
  820. Yes
  821. </button>
  822. <button cancel
  823. class="btn btn-sm btn-default border">Cancel
  824. </button>
  825. </div>
  826. </form>
  827. </div>
  828. @endif
  829. </div>
  830. @endif
  831. </div>
  832. </section>
  833. <ul class="vbox ml-auto mt-2 align-self-start patient-header-address">
  834. <li class="d-flex align-items-start">
  835. <span class="aligned-icon"><i class="fa fa-map-marker-alt"
  836. aria-hidden="true"></i></span>
  837. <div class="position-relative">
  838. <?php
  839. $addressParts = [];
  840. if (!!$patient->mailing_address_line1) $addressParts[] = $patient->mailing_address_line1;
  841. if (!!$patient->mailing_address_line2) $addressParts[] = $patient->mailing_address_line2;
  842. $addressParts = implode(", ", $addressParts) . "<br/>";
  843. $addressPart2 = [];
  844. if (!!$patient->mailing_address_city) $addressPart2[] = $patient->mailing_address_city;
  845. if (!!$patient->mailing_address_state) $addressPart2[] = $patient->mailing_address_state;
  846. $addressParts .= implode(", ", $addressPart2);
  847. echo $addressParts;
  848. ?>
  849. {{ $patient->mailing_address_zip ? $patient->mailing_address_zip : '' }}
  850. @if($patient->mailing_address_memo)
  851. <span
  852. class="position-relative c-pointer text-center stag-tooltip ml-2">
  853. <i class="fa fa-info-circle"></i>
  854. <div
  855. class="position-absolute bg-white border rounded p-2 stag-tooltip-content">
  856. <div class="text-left font-weight-bold pb-1">Special Instructions</div>
  857. <div
  858. class="text-left font-weight-normal">{{$patient->mailing_address_memo}}</div>
  859. </div>
  860. </span>
  861. @endif
  862. </div>
  863. </li>
  864. @if($patient->cell_number)
  865. <li>
  866. <span class="aligned-icon"><i class="fa fa-phone-alt"
  867. aria-hidden="true"></i></span>
  868. {{$patient->cell_number}}<span
  869. class="small text-secondary ml-1">{{ $patient->cell_number_memo ? '(' . $patient->cell_number_memo . ')' : '' }}</span>
  870. </li>
  871. @endif
  872. @if($patient->phone_home)
  873. <li>
  874. <span class="aligned-icon"><i class="fa fa-home" aria-hidden="true"></i></span>
  875. {{$patient->phone_home}}
  876. </li>
  877. @endif
  878. <li>
  879. <span class="aligned-icon"><i class="fa fa-envelope" aria-hidden="true"></i></span>
  880. {{$confirmedEmail}}
  881. </li>
  882. </ul>
  883. </div>
  884. </div>
  885. </div> <!-- z -->
  886. </div>
  887. {{--<div class="text-container border-bottom d-flex align-items-center mcp-theme-1 px-3">
  888. @if($patient->mcp_pro_id !== $pro->id && $patient->active_mcp_request_id)
  889. <div moe relative class="ml-2">
  890. <a href="" start show class="btn btn-sm btn-success text-white font-weight-bold small">Claim as MCP</a>
  891. <form url="/api/mcpRequest/claim" class="mcp-theme-1" right>
  892. <input type="hidden" name="clientUid" value="{{$patient->uid}}">
  893. <p>Claim this patient?</p>
  894. <div>
  895. <button submit class="btn btn-sm btn-primary mr-2">Yes</button>
  896. <button cancel class="btn btn-sm btn-default border">Cancel</button>
  897. </div>
  898. </form>
  899. </div>
  900. @endif
  901. </div>--}}
  902. <div class="card-body">
  903. {{--<h1 class="h3">@yield('section-title')</h1>--}}
  904. <div class="mcp-theme-1">
  905. @yield('inner-content')
  906. </div>
  907. </div>
  908. </div>
  909. </main>
  910. </div>
  911. </div>
  912. @endsection