瀏覽代碼

Merge branch 'dev' of rav.triplestart.com:jmudaka/stagfe2 into dev

Samson Mutunga 3 年之前
父節點
當前提交
52a7f41153
共有 81 個文件被更改,包括 8898 次插入2157 次删除
  1. 1 0
      app/Http/Controllers/HomeController.php
  2. 12 0
      app/Http/Controllers/NoteController.php
  3. 35 0
      app/Http/Controllers/PatientController.php
  4. 28 0
      app/Http/Controllers/PayerController.php
  5. 2 2
      app/Models/Client.php
  6. 3 0
      app/Models/ClientPrimaryCoverage.php
  7. 1 1
      config/app.php
  8. 24 4
      public/css/style.css
  9. 226 775
      resources/views/app/new-patient.blade.php
  10. 468 0
      resources/views/app/patient/client-primary-coverage-new-with-manual.blade.php
  11. 319 397
      resources/views/app/patient/client-primary-coverages.blade.php
  12. 147 0
      resources/views/app/patient/coverage-status.blade.php
  13. 669 0
      resources/views/app/patient/goals-center.blade.php
  14. 218 57
      resources/views/app/patient/medications-center.blade.php
  15. 89 0
      resources/views/app/patient/medications-reconcile.blade.php
  16. 43 33
      resources/views/app/patient/note/dashboard.blade.php
  17. 1 1
      resources/views/app/patient/note/segment.blade.php
  18. 32 0
      resources/views/app/patient/prescriptions-popup/client-status-form.blade.php
  19. 61 0
      resources/views/app/patient/prescriptions-popup/drug-form.blade.php
  20. 23 0
      resources/views/app/patient/prescriptions-popup/hcp-pro-form.blade.php
  21. 30 0
      resources/views/app/patient/prescriptions-popup/imaging-form.blade.php
  22. 5 0
      resources/views/app/patient/prescriptions-popup/index-popup.blade.php
  23. 5 0
      resources/views/app/patient/prescriptions-popup/index.blade.php
  24. 30 0
      resources/views/app/patient/prescriptions-popup/lab-form.blade.php
  25. 1152 0
      resources/views/app/patient/prescriptions-popup/list-popup.blade.php
  26. 59 0
      resources/views/app/patient/prescriptions-popup/logistics-form.blade.php
  27. 25 0
      resources/views/app/patient/prescriptions-popup/other-form.blade.php
  28. 89 0
      resources/views/app/patient/prescriptions-popup/pdf/DRUG.blade.php
  29. 203 0
      resources/views/app/patient/prescriptions-popup/pdf/IMAGING.blade.php
  30. 203 0
      resources/views/app/patient/prescriptions-popup/pdf/LAB.blade.php
  31. 203 0
      resources/views/app/patient/prescriptions-popup/pdf/OTHER.blade.php
  32. 203 0
      resources/views/app/patient/prescriptions-popup/pdf/REFERRAL.blade.php
  33. 203 0
      resources/views/app/patient/prescriptions-popup/pdf/SUPPLY.blade.php
  34. 13 0
      resources/views/app/patient/prescriptions-popup/pdf/pdf-preview-with-cover-sheet.blade.php
  35. 85 0
      resources/views/app/patient/prescriptions-popup/pdf/pdf-preview.blade.php
  36. 32 0
      resources/views/app/patient/prescriptions-popup/pro-status-form.blade.php
  37. 25 0
      resources/views/app/patient/prescriptions-popup/referral-form.blade.php
  38. 16 0
      resources/views/app/patient/prescriptions-popup/sign-as-hcp-form.blade.php
  39. 34 0
      resources/views/app/patient/prescriptions-popup/supply-form.blade.php
  40. 66 0
      resources/views/app/patient/prescriptions-popup/transmit-form.blade.php
  41. 25 6
      resources/views/app/patient/prescriptions/imaging-form.blade.php
  42. 5 0
      resources/views/app/patient/prescriptions/index-popup.blade.php
  43. 25 6
      resources/views/app/patient/prescriptions/lab-form.blade.php
  44. 457 96
      resources/views/app/patient/prescriptions/list.blade.php
  45. 32 33
      resources/views/app/patient/prescriptions/pdf/DRUG.blade.php
  46. 2 7
      resources/views/app/patient/prescriptions/pdf/IMAGING.blade.php
  47. 2 7
      resources/views/app/patient/prescriptions/pdf/LAB.blade.php
  48. 256 0
      resources/views/app/patient/primary-coverage-form.blade.php
  49. 381 0
      resources/views/app/patient/primary-coverage-manual-determination-commercial-modal.blade.php
  50. 155 0
      resources/views/app/patient/primary-coverage-manual-determination-medicaid-modal.blade.php
  51. 336 0
      resources/views/app/patient/primary-coverage-manual-determination-medicare-modal.blade.php
  52. 111 0
      resources/views/app/patient/primary-coverage-manual-determination-view-commercial.blade.php
  53. 43 0
      resources/views/app/patient/primary-coverage-manual-determination-view-medicaid.blade.php
  54. 117 0
      resources/views/app/patient/primary-coverage-manual-determination-view-medicare.blade.php
  55. 202 0
      resources/views/app/patient/primary-coverage-new-commercial.blade.php
  56. 120 0
      resources/views/app/patient/primary-coverage-new-medicaid.blade.php
  57. 45 0
      resources/views/app/patient/primary-coverage-new-medicare.blade.php
  58. 14 0
      resources/views/app/patient/primary-coverage-refresh.blade.php
  59. 121 0
      resources/views/app/patient/primary-coverage-view.blade.php
  60. 100 0
      resources/views/app/patient/primary-coverage.blade.php
  61. 537 0
      resources/views/app/patient/problems-center.blade.php
  62. 33 3
      resources/views/app/patient/segment-templates/_child_plan/edit-plan.php
  63. 37 3
      resources/views/app/patient/segment-templates/_child_review/edit-review.php
  64. 13 14
      resources/views/app/patient/segment-templates/intake_allergies/edit.blade.php
  65. 13 15
      resources/views/app/patient/segment-templates/intake_care_team/edit.blade.php
  66. 13 14
      resources/views/app/patient/segment-templates/intake_goals/edit.blade.php
  67. 0 7
      resources/views/app/patient/segment-templates/intake_interventions/edit.blade.php
  68. 13 15
      resources/views/app/patient/segment-templates/intake_medications/edit.blade.php
  69. 0 7
      resources/views/app/patient/segment-templates/intake_medications/edit_old.blade.php
  70. 13 15
      resources/views/app/patient/segment-templates/intake_problems/edit.blade.php
  71. 18 0
      resources/views/app/patient/segment-templates/medrisk_vigilence/summary.blade.php
  72. 13 14
      resources/views/app/patient/segment-templates/plan_allergies/edit.blade.php
  73. 13 14
      resources/views/app/patient/segment-templates/plan_care_team/edit.blade.php
  74. 13 14
      resources/views/app/patient/segment-templates/plan_goals/edit.blade.php
  75. 0 1
      resources/views/app/patient/segment-templates/plan_interventions/edit.blade.php
  76. 13 14
      resources/views/app/patient/segment-templates/plan_medications/edit.blade.php
  77. 13 14
      resources/views/app/patient/segment-templates/plan_problems/edit.blade.php
  78. 1 1
      resources/views/app/patient/tickets.blade.php
  79. 1 0
      resources/views/app/patients.blade.php
  80. 500 566
      resources/views/layouts/patient.blade.php
  81. 9 1
      routes/web.php

+ 1 - 0
app/Http/Controllers/HomeController.php

@@ -632,6 +632,7 @@ FROM measurement
 WHERE measurement.label NOT IN ('SBP', 'DBP')
   AND (measurement.is_cellular_zero = FALSE or measurement.is_cellular_zero IS NULL)
   AND measurement.is_removed IS FALSE
+  AND measurement.has_been_stamped_by_mcp IS FALSE
   AND measurement.ts IS NOT NULL
   AND measurement.client_bdt_measurement_id IS NOT NULL
   AND (measurement.status IS NULL OR (measurement.status <> 'ACK' AND measurement.status <> 'INVALID_ACK'))

+ 12 - 0
app/Http/Controllers/NoteController.php

@@ -312,6 +312,18 @@ class NoteController extends Controller
         return view('app.patient.medications-center', compact('patient', 'note'));
     }
 
+    public function medicationsReconcile(Request $request, Client $patient, Note $note) {
+        return view('app.patient.medications-reconcile', compact('patient', 'note'));
+    }
+
+    public function problemsCenter(Request $request, Client $patient, Note $note) {
+        return view('app.patient.problems-center', compact('patient', 'note'));
+    }
+
+    public function goalsCenter(Request $request, Client $patient, Note $note) {
+        return view('app.patient.goals-center', compact('patient', 'note'));
+    }
+
     // TODO move to utility
     private function callJava($request, $endPoint, $data, $guestAccessCode = null)
     {

+ 35 - 0
app/Http/Controllers/PatientController.php

@@ -438,6 +438,17 @@ class PatientController extends Controller
         return view('app.patient.prescriptions.index', compact('patient', 'type', 'currentErx'));
     }
 
+    public function prescriptionsPopup(Request $request, Client $patient, String $type = '', String $currentErx = '') {
+        if(!!$currentErx) {
+            $currentErx = Erx::where('uid', $currentErx)->first();
+        }
+        $note = null;
+        if($request->input('noteUid')) {
+            $note = Note::where('uid', $request->input('noteUid'))->first();
+        }
+        return view('app.patient.prescriptions-popup.list-popup', compact('patient', 'type', 'currentErx', 'note'));
+    }
+
     public function prescriptionsList(Request $request, Client $patient, String $type = '', String $currentErx = '') {
         if(!!$currentErx) {
             $currentErx = Erx::where('uid', $currentErx)->first();
@@ -531,6 +542,30 @@ class PatientController extends Controller
         return view('app.patient.client-primary-coverages', compact('patient', 'mbPayers'));
     }
 
+    public function primaryCoverage(Request $request, Client $patient) {
+        $mbPayers = MBPayer::all();
+        return view('app.patient.primary-coverage', compact('patient', 'mbPayers'));
+    }
+
+    public function primaryCoverageForm(Request $request, Client $patient) {
+        $mbPayers = MBPayer::all();
+        return view('app.patient.primary-coverage-form', compact('patient', 'mbPayers'));
+    }
+
+    public function primaryCoverageManualDeterminationModal(Request $request, Client $patient) {
+        if($patient->latestClientPrimaryCoverage->plan_type === 'MEDICARE'){
+            return view('app.patient.primary-coverage-manual-determination-medicare-modal', compact('patient'));
+        }
+        if($patient->latestClientPrimaryCoverage->plan_type === 'MEDICAID'){
+            return view('app.patient.primary-coverage-manual-determination-medicaid-modal', compact('patient'));
+        }
+        if($patient->latestClientPrimaryCoverage->plan_type === 'COMMERCIAL'){
+            return view('app.patient.primary-coverage-manual-determination-commercial-modal', compact('patient'));
+        }
+        
+        return "Plan Type is missing!";
+    }
+
     public function mbClaim(Request $request, MBClaim $mbClaim) {
         return view('app.patient.mb-claim-single', compact('mbClaim'));
     }

+ 28 - 0
app/Http/Controllers/PayerController.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Validator;
+
+use App\Models\Payer;
+use Illuminate\Support\Facades\DB;
+
+class PayerController extends Controller
+{
+	public function searchPayerV2JSON(Request $request)
+	{
+		$term = $request->input('term') ? trim($request->input('term')) : '';
+		if (empty($term)) return '';
+		$matches = DB::select(
+			"
+			SELECT id, uid, (name || ' (' || COALESCE(availity_payer_id, '--') || ')') as text FROM payer WHERE name ILIKE :term OR memo ILIKE :term", 
+			['term' => '%' . $term . '%']
+		);
+
+		return json_encode([
+			"success" => true,
+			"data" => $matches
+		]);
+	}
+}

+ 2 - 2
app/Models/Client.php

@@ -94,8 +94,8 @@ class Client extends Model
     public function prescriptions()
     {
         return $this->hasMany(Erx::class, 'client_id', 'id')
-            ->orderByRaw('note_id DESC NULLS LAST')
-            ->orderBy('created_at', 'desc');
+            ->orderBy('created_at', 'desc')
+            ->orderByRaw('note_id DESC NULLS LAST');
     }
 
     public function notesAscending()

+ 3 - 0
app/Models/ClientPrimaryCoverage.php

@@ -55,4 +55,7 @@ class ClientPrimaryCoverage extends Model
         return implode(" ", $parts);
     }
 
+    public function payer(){
+        return $this->hasOne(Payer::class, 'id', 'commercial_payer_id');
+    }
 }

+ 1 - 1
config/app.php

@@ -65,7 +65,7 @@ return [
 
     'hrm2_url' => env('HRM2_URL'),
 
-    'asset_version' => 13,
+    'asset_version' => 14,
 
     'temp_dir' => env('TEMP_DIR'),
 

+ 24 - 4
public/css/style.css

@@ -228,6 +228,9 @@ body>nav.navbar {
 [moe][large] form, [moe][large] [url] {
     width: 450px;
 }
+[moe][wide] form, [moe][wide] [url] {
+    width: 550px;
+}
 [moe][bottom] form {
     bottom: 100%;
 }
@@ -257,7 +260,7 @@ body>nav.navbar {
 .mcp-theme-1 [large] .form-control.form-control-sm {
     min-width: unset;
 }
-[wide] .form-control.form-control-sm {
+[wide] .form-control.form-control-sm:not(.min-width-unset) {
     min-width: 480px;
 }
 [moe][center] [url]:not([show]) {
@@ -1046,8 +1049,11 @@ body .node input[type="number"] {
 .stag-popup.min-height-unset>form {
     min-height: unset !important;
 }
+.stag-popup.medium>form, .stag-popup.medium>.stag-popup-content {
+    width: calc(80vw - 4rem);
+}
 .stag-popup.wide>form, .stag-popup.wide>.stag-popup-content {
-    width: calc(100% - 4rem);
+    width: calc(100vw - 4rem);
 }
 .stag-popup.tall>form, .stag-popup.tall>.stag-popup-content {
     height: 100%;
@@ -1347,6 +1353,11 @@ span.select2-container.select2-container--default.select2-container--open {
     background: #fff !important;
 }
 
+.form-check-label {
+  display: flex;
+  align-items: center;
+}
+
 #stagPdfViewer>form {
     padding: 0;
     background: #eee;
@@ -1975,10 +1986,13 @@ body.in-iframe .main-row > .sidebar {
     border-right: 1px solid #ddd;
     padding-top: 0.85rem;
     height: 300px;
-    overflow: overlay;
+    overflow: hidden;
     max-height: calc(100vh - 55px);
     background-color: #fff;
 }
+.note-container .note-lhs-tree:hover {
+    overflow: overlay;
+}
 .note-container .note-lhs-tree.fixed {
     position: fixed;
     top: 55px;
@@ -2032,6 +2046,12 @@ body.in-iframe .main-row > .sidebar {
     right: 0;
     z-index: 1;
 }
+.on-click-menu [menu][bottom] {
+    bottom: 100%;
+    top: auto;
+    left: 0;
+    right: auto;
+}
 .zero-height {
     height: 0 !important;
     padding: 0 !important;
@@ -2086,4 +2106,4 @@ body.in-iframe .main-row > .sidebar {
 }
 [open-in-stag-popup] * {
     pointer-events: none;
-}
+}

文件差異過大導致無法顯示
+ 226 - 775
resources/views/app/new-patient.blade.php


+ 468 - 0
resources/views/app/patient/client-primary-coverage-new-with-manual.blade.php

@@ -0,0 +1,468 @@
+<div class="ml-4 d-inline-flex justify-content-center">
+    <span class="mr-2">New w/ Manual:</span>
+    <div moe relative large>
+        <a href="" start show >+ MC</a>
+        <form url="/api/clientPrimaryCoverage/createNewCoverageForMedicareWithManualDetermination" right class="mcp-theme-1">
+            <input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
+            <div class="form-group">
+                <label for="" class="control-label">Subscriber Name First</label>
+                <input type="text" name="subscriberNameFirst" class="form-control input-sm" value="{{$patient->name_first}}"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Subscriber Name Last</label>
+                <input type="text" name="subscriberNameLast" class="form-control input-sm" value="{{$patient->name_last}}"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Subscriber Dob</label>
+                <input type="date" name="subscriberDob" class="form-control input-sm" value="{{$patient->dob}}"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Payer Member Identifier</label>
+                <input type="text" name="payerMemberIdentifier" class="form-control input-sm"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Date Of Service</label>
+                <input type="date" name="dateOfService" class="form-control input-sm" value="{{date('Y-m-d')}}"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Strategy</label>
+                <select  name="manualDeterminationStrategy" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="REVIEWED_ELECTRONIC">Reviewed electronic</option>
+                    <option value="CALLED_PAYER">Called payer</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Category</label>
+                <select  name="manualDeterminationCategory" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="COVERED">Covered</option>
+                    <option value="NOT_COVERED">Not Covered</option>
+                    <option value="INVALID">Invalid</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Category Memo</label>
+                <input type="text" name="manualDeterminationCategoryMemo" class="form-control input-sm"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Detail Json</label>
+                <input type="text" name="manualDetailJson" class="form-control input-sm"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Is Part B Primary</label>
+                <select  name="manualMedicareIsPartBPrimary" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Is Part B Active</label>
+                <select  name="manualMedicareIsPartBActive" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Is Part C Active</label>
+                <select  name="manualMedicareIsPartCActive" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Is Inpatient</label>
+                <select  name="manualMedicareIsInpatient" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Is Hospice Or Home Health</label>
+                <select  name="manualMedicareIsHospiceOrHomeHealth" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Is Msp</label>
+                <select  name="manualMedicareIsMsp" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Msp Memo</label>
+                <select  name="manualMedicareMspMemo" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Mpb Start Date</label>
+                <input type="date" name="manualMedicareMpbStartDate" class="form-control input-sm"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Mpb End Date</label>
+                <input type="date" name="manualMedicareMpbEndDate" class="form-control input-sm"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Mpb Deductible</label>
+                <input type="number" name="manualMedicareMpbDeductible" class="form-control input-sm"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Mpb Remaining</label>
+                <input type="number" name="manualMedicareMpbRemaining" class="form-control input-sm"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Mpb Insurance Type</label>
+                <input type="text" name="manualMedicareMpbInsuranceType" class="form-control input-sm"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Mpb Insurance Type Label</label>
+                <input type="text" name="manualMedicareMpbInsuranceTypeLabel" class="form-control input-sm"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Mpb Coinsurance Percent</label>
+                <input type="number" name="manualMedicareMpbCoinsurancePercent" class="form-control input-sm"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Mpb Info Valid Until</label>
+                <input type="date" name="manualMedicareMpbInfoValidUntil" class="form-control input-sm"/>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Medicare Mpb Info Valid Till</label>
+                <input type="date" name="manualMedicareMpbInfoValidTill" class="form-control input-sm"/>
+            </div>
+            <div class="form-group text-nowrap mb-0">
+                <button class="btn btn-sm btn-primary" submit>Submt</button>
+                <button class="btn btn-sm btn-default border" close>Close</button>
+            </div>
+        </form>
+    </div>
+    <span class="mx-2 text-secondary text-sm">|</span>
+    <div moe relative large>
+        <a href="" start show >+ Medicaid</a>
+        <form url="/api/clientPrimaryCoverage/createNewCoverageForMedicaidWithManualDetermination" right class="mcp-theme-1">
+            <input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Strategy</label>
+                <select  name="manualDeterminationStrategy" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="REVIEWED_ELECTRONIC">Reviewed electronic</option>
+                    <option value="CALLED_PAYER">Called payer</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Category</label>
+                <select  name="manualDeterminationCategory" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="COVERED">Covered</option>
+                    <option value="NOT_COVERED">Not Covered</option>
+                    <option value="INVALID">Invalid</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="form-control-label">Manual Determination Category Memo</label>
+                <input type="text" name="manualDeterminationCategoryMemo" class="form-control input-sm">
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Detail Json</label>
+                <input type="text" name="manualDetailJson" class="form-control input-sm">
+            </div>
+            <div class="form-group text-nowrap mb-0">
+                <button class="btn btn-sm btn-primary" submit>Submt</button>
+                <button class="btn btn-sm btn-default border" close>Close</button>
+            </div>
+        </form>
+    </div>
+    <span class="mx-2 text-secondary text-sm">|</span>
+    <div moe relative large>
+        <a href="" start show >+ Comm.</a>
+        <form url="/api/clientPrimaryCoverage/createNewCoverageForCommercialWithManualDetermination" right class="mcp-theme-1">
+            <input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
+            <div class="form-group">
+                <label class="control-label">Subscriber Name First</label>
+                <input type="text" name="subscriberNameFirst" class="form-control input-sm" value="{{$patient->name_first}}">
+            </div>
+            <div class="form-group">
+                <label class="control-label">Subscriber Name Last</label>
+                <input type="text" name="subscriberNameLast" class="form-control input-sm" value="{{$patient->name_last}}">
+            </div>
+            <div class="form-group">
+                <label class="control-label">Subscriber Dob</label>
+                <input type="date" name="subscriberDob" class="form-control input-sm" value="{{$patient->dob}}">
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Subscriber Sex</label>
+                <select  name="subscriberSex" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="M" {{$patient->sex === 'M' ? 'selected' : ''}}>M</option>
+                    <option value="F" {{$patient->sex === 'F' ? 'selected' : ''}}>F</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Payer Name</label>
+                <input type="text" name="payerName" class="form-control input-sm"/>
+            </div>
+            <div class="form-group">
+                <label class="control-label">Payer Member Identifier</label>
+                <input type="text" name="payerMemberIdentifier" class="form-control input-sm">
+            </div>
+            <div class="form-group">
+                <label class="control-label">Date Of Service</label>
+                <input type="date" name="dateOfService" class="form-control input-sm" value="{{date('Y-m-d')}}">
+            </div>
+
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Strategy</label>
+                <select  name="manualDeterminationStrategy" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="REVIEWED_ELECTRONIC">Reviewed electronic</option>
+                    <option value="CALLED_PAYER">Called payer</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Category</label>
+                <select  name="manualDeterminationCategory" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="COVERED">Covered</option>
+                    <option value="NOT_COVERED">Not Covered</option>
+                    <option value="INVALID">Invalid</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Category Memo</label>
+                <textarea name="manualDeterminationCategoryMemo" class="form-control input-sm"></textarea>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Detail Json</label>
+                <textarea name="manualDetailJson" class="form-control input-sm"></textarea>
+            </div>
+            <div class="form-group text-nowrap mb-0">
+                <button class="btn btn-sm btn-primary" submit>Submt</button>
+                <button class="btn btn-sm btn-default border" close>Close</button>
+            </div>
+        </form>
+    </div>
+    <span class="mx-2 text-secondary text-sm">|</span>
+    <div moe relative large>
+        <a href="" start show >+ Mcr Adv.</a>
+        <form url="/api/clientPrimaryCoverage/createNewCoverageForMcrAdvWithManualDetermination" right class="mcp-theme-1">
+            <input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
+            <div class="form-group">
+                <label class="control-label">Subscriber Name First</label>
+                <input type="text" name="subscriberNameFirst" class="form-control input-sm" value="{{$patient->name_first}}">
+            </div>
+            <div class="form-group">
+                <label class="control-label">Subscriber Name Last</label>
+                <input type="text" name="subscriberNameLast" class="form-control input-sm" value="{{$patient->name_last}}">
+            </div>
+            <div class="form-group">
+                <label class="control-label">Subscriber Dob</label>
+                <input type="date" name="subscriberDob" class="form-control input-sm" value="{{$patient->dob}}">
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Subscriber Sex</label>
+                <select  name="subscriberSex" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="M" {{$patient->sex === 'M' ? 'selected' : ''}}>M</option>
+                    <option value="F" {{$patient->sex === 'F' ? 'selected' : ''}}>F</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label class="control-label">Payer Member Identifier</label>
+                <input type="text" name="payerMemberIdentifier" class="form-control input-sm">
+            </div>
+            <div class="form-group">
+                <label class="control-label">Medicare Number</label>
+                <input type="text" name="mcrNumber" class="form-control input-sm">
+            </div>
+            <div class="form-group">
+                <label class="control-label">Date Of Service</label>
+                <input type="date" name="dateOfService" class="form-control input-sm" value="{{date('Y-m-d')}}">
+            </div>
+
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Strategy</label>
+                <select  name="manualDeterminationStrategy" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="REVIEWED_ELECTRONIC">Reviewed electronic</option>
+                    <option value="CALLED_PAYER">Called payer</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Category</label>
+                <select  name="manualDeterminationCategory" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="COVERED">Covered</option>
+                    <option value="NOT_COVERED">Not Covered</option>
+                    <option value="INVALID">Invalid</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Category Memo</label>
+                <textarea name="manualDeterminationCategoryMemo" class="form-control input-sm"></textarea>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Detail Json</label>
+                <textarea name="manualDetailJson" class="form-control input-sm"></textarea>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Is Payer Member Identifier Valid</label>
+                <select  name="manualIsPayerMemberIdentifierValid" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+
+            <div class="form-group">
+                <label for="" class="control-label">Manual Is Mcr Number Valid</label>
+                <select  name="manualIsMcrNumberValid" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+
+            <div class="form-group">
+                <label for="" class="control-label">Manual Is Mcr Part Bprimary</label>
+                <select  name="manualIsMcrPartBPrimary" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+
+            <div class="form-group">
+                <label for="" class="control-label">Manual Is Mcr Part C Active</label>
+                <select  name="manualIsMcrPartCActive" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group text-nowrap mb-0">
+                <button class="btn btn-sm btn-primary" submit>Submt</button>
+                <button class="btn btn-sm btn-default border" close>Close</button>
+            </div>
+        </form>
+    </div>
+
+    <span class="mx-2 text-secondary text-sm">|</span>
+    <div moe relative large>
+        <a href="" start show >+ Mcd Mco.</a>
+        <form url="/api/clientPrimaryCoverage/createNewCoverageForMcdMcoWithManualDetermination" right class="mcp-theme-1">
+            <input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
+            <div class="form-group">
+                <label class="control-label">Subscriber Name First</label>
+                <input type="text" name="subscriberNameFirst" class="form-control input-sm" value="{{$patient->name_first}}">
+            </div>
+            <div class="form-group">
+                <label class="control-label">Subscriber Name Last</label>
+                <input type="text" name="subscriberNameLast" class="form-control input-sm" value="{{$patient->name_last}}">
+            </div>
+            <div class="form-group">
+                <label class="control-label">Subscriber Dob</label>
+                <input type="date" name="subscriberDob" class="form-control input-sm" value="{{$patient->dob}}">
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Subscriber Sex</label>
+                <select  name="subscriberSex" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="M" {{$patient->sex === 'M' ? 'selected' : ''}}>M</option>
+                    <option value="F" {{$patient->sex === 'F' ? 'selected' : ''}}>F</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label class="control-label">Payer Member Identifier</label>
+                <input type="text" name="payerMemberIdentifier" class="form-control input-sm">
+            </div>
+            <div class="form-group">
+                <label class="control-label">Medicaid Number</label>
+                <input type="text" name="mcrNumber" class="form-control input-sm">
+            </div>
+            <div class="form-group">
+                <label class="control-label">Medicaid State</label>
+                <input type="text" name="mcdState" class="form-control input-sm">
+            </div>
+            <div class="form-group">
+                <label class="control-label">Date Of Service</label>
+                <input type="date" name="dateOfService" class="form-control input-sm" value="{{date('Y-m-d')}}">
+            </div>
+
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Strategy</label>
+                <select  name="manualDeterminationStrategy" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="REVIEWED_ELECTRONIC">Reviewed electronic</option>
+                    <option value="CALLED_PAYER">Called payer</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Category</label>
+                <select  name="manualDeterminationCategory" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="COVERED">Covered</option>
+                    <option value="NOT_COVERED">Not Covered</option>
+                    <option value="INVALID">Invalid</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Determination Category Memo</label>
+                <textarea name="manualDeterminationCategoryMemo" class="form-control input-sm"></textarea>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Detail Json</label>
+                <textarea name="manualDetailJson" class="form-control input-sm"></textarea>
+            </div>
+            <div class="form-group">
+                <label for="" class="control-label">Manual Is Mcd Number Valid</label>
+                <select  name="manualIsMcdNumberValid" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+
+            <div class="form-group">
+                <label for="" class="control-label">Manual Is Mcd Response Mco Active</label>
+                <select  name="manualIsMcdResponseMcoActive" class="form-control input-sm">
+                    <option value="">--select--</option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                    <option value="UNKNOWN">Unknown</option>
+                </select>
+            </div>
+            <div class="form-group text-nowrap mb-0">
+                <button class="btn btn-sm btn-primary" submit>Submt</button>
+                <button class="btn btn-sm btn-default border" close>Close</button>
+            </div>
+        </form>
+    </div>
+</div>

+ 319 - 397
resources/views/app/patient/client-primary-coverages.blade.php

@@ -4,31 +4,31 @@
 <div>
     <div class="mb-3 border rounded bg-light p-2">
         <div class="mb-2">
-            Latest Client Primary Coverage: 
+            Latest Client Primary Coverage:
             @if($patient->latestClientPrimaryCoverage)
                 <b>{{$patient->latestClientPrimaryCoverage->plan_type}}</b> (Member ID: {{$patient->latestClientPrimaryCoverage->payer_member_identifier}})
-            @else 
+            @else
                 -
             @endif
         </div>
         <div class="mb-2">Latest New Client Primary Coverage:
             @if($patient->latestNewClientPrimaryCoverage)
                 <b>{{$patient->latestNewClientPrimaryCoverage->plan_type}}</b> (Member ID: {{$patient->latestNewClientPrimaryCoverage->payer_member_identifier}})
-            @else 
+            @else
                 -
             @endif
         </div>
         <div class="mb-2">Latest Auto Refresh Client Primary Coverage:
             @if($patient->latestAutoRefreshClientPrimaryCoverage)
                 <b>{{$patient->latestAutoRefreshClientPrimaryCoverage->plan_type}}</b> (Member ID: {{$patient->latestAutoRefreshClientPrimaryCoverage->payer_member_identifier}})
-            @else 
+            @else
                 -
             @endif
         </div>
         <div class="">Latest Manual Client Primary Coverage:
             @if($patient->latestManualClientPrimaryCoverage)
                 <b>{{$patient->latestManualClientPrimaryCoverage->plan_type}}</b> (Member ID: {{$patient->latestManualClientPrimaryCoverage->payer_member_identifier}})
-            @else 
+            @else
                 -
             @endif
         </div>
@@ -38,7 +38,7 @@
         <div class="ml-auto d-inline-flex justify-content-center">
             <span class="mr-2">New w/o Manual:</span>
             <div moe relative large>
-                <a href="" start show>+ MC</a>
+                <a href="" start show>+ MCR</a>
                 <form url="/api/clientPrimaryCoverage/createNewCoverageForMedicareWithoutManualDetermination" right class="mcp-theme-1">
                     <input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
                     <div class="form-group">
@@ -104,7 +104,7 @@
                         <label for="" class="control-label">Date Of Service</label>
                         <input type="date" name="dateOfService" class="form-control input-sm" value="{{date('Y-m-d')}}">
                     </div>
-                   
+
                     <div class="form-group text-nowrap mb-0">
                         <button class="btn btn-sm btn-primary" submit>Submt</button>
                         <button class="btn btn-sm btn-default border" close>Close</button>
@@ -148,202 +148,51 @@
                         <label class="control-label">Date Of Service</label>
                         <input type="date" name="dateOfService" class="form-control input-sm" value="{{date('Y-m-d')}}">
                     </div>
-                    
+
                     <div class="form-group text-nowrap mb-0">
                         <button class="btn btn-sm btn-primary" submit>Submt</button>
                         <button class="btn btn-sm btn-default border" close>Close</button>
                     </div>
                 </form>
             </div>
-        </div>
-        <div class="ml-4 d-inline-flex justify-content-center">
-            <span class="mr-2">New w/ Manual:</span>
+            <span class="mx-2 text-secondary text-sm">|</span>
             <div moe relative large>
-                <a href="" start show >+ MC</a>
-                <form url="/api/clientPrimaryCoverage/createNewCoverageForMedicareWithManualDetermination" right class="mcp-theme-1">
+                <a href="" start show >+ Mcr Adv.</a>
+                <form url="/api/clientPrimaryCoverage/createNewCoverageForMcrAdvWithoutManualDetermination" right class="mcp-theme-1">
                     <input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
                     <div class="form-group">
-                        <label for="" class="control-label">Subscriber Name First</label>
-                        <input type="text" name="subscriberNameFirst" class="form-control input-sm" value="{{$patient->name_first}}"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Subscriber Name Last</label>
-                        <input type="text" name="subscriberNameLast" class="form-control input-sm" value="{{$patient->name_last}}"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Subscriber Dob</label>
-                        <input type="date" name="subscriberDob" class="form-control input-sm" value="{{$patient->dob}}"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Payer Member Identifier</label>
-                        <input type="text" name="payerMemberIdentifier" class="form-control input-sm"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Date Of Service</label>
-                        <input type="date" name="dateOfService" class="form-control input-sm" value="{{date('Y-m-d')}}"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Determination Strategy</label>
-                        <select  name="manualDeterminationStrategy" class="form-control input-sm">
-                            <option value="">--select--</option>
-                            <option value="REVIEWED_ELECTRONIC">Reviewed electronic</option>
-                            <option value="CALLED_PAYER">Called payer</option>
-                        </select>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Determination Category</label>
-                        <select  name="manualDeterminationCategory" class="form-control input-sm">
-                            <option value="">--select--</option>
-                            <option value="COVERED">Covered</option>
-                            <option value="NOT_COVERED">Not Covered</option>
-                            <option value="INVALID">Invalid</option>
-                            <option value="UNKNOWN">Unknown</option>
-                        </select>                        
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Determination Category Memo</label>
-                        <input type="text" name="manualDeterminationCategoryMemo" class="form-control input-sm"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Detail Json</label>
-                        <input type="text" name="manualDetailJson" class="form-control input-sm"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Is Part B Primary</label>
-                        <select  name="manualMedicareIsPartBPrimary" class="form-control input-sm">
-                            <option value="">--select--</option>
-                            <option value="YES">Yes</option>
-                            <option value="NO">No</option>
-                            <option value="UNKNOWN">Unknown</option>
-                        </select>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Is Part B Active</label>
-                        <select  name="manualMedicareIsPartBActive" class="form-control input-sm">
-                            <option value="">--select--</option>
-                            <option value="YES">Yes</option>
-                            <option value="NO">No</option>
-                            <option value="UNKNOWN">Unknown</option>
-                        </select>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Is Part C Active</label>
-                        <select  name="manualMedicareIsPartCActive" class="form-control input-sm">
-                            <option value="">--select--</option>
-                            <option value="YES">Yes</option>
-                            <option value="NO">No</option>
-                            <option value="UNKNOWN">Unknown</option>
-                        </select>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Is Inpatient</label>
-                        <select  name="manualMedicareIsInpatient" class="form-control input-sm">
-                            <option value="">--select--</option>
-                            <option value="YES">Yes</option>
-                            <option value="NO">No</option>
-                            <option value="UNKNOWN">Unknown</option>
-                        </select>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Is Hospice Or Home Health</label>
-                        <select  name="manualMedicareIsHospiceOrHomeHealth" class="form-control input-sm">
-                            <option value="">--select--</option>
-                            <option value="YES">Yes</option>
-                            <option value="NO">No</option>
-                            <option value="UNKNOWN">Unknown</option>
-                        </select>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Is Msp</label>
-                        <select  name="manualMedicareIsMsp" class="form-control input-sm">
-                            <option value="">--select--</option>
-                            <option value="YES">Yes</option>
-                            <option value="NO">No</option>
-                            <option value="UNKNOWN">Unknown</option>
-                        </select>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Msp Memo</label>
-                        <select  name="manualMedicareMspMemo" class="form-control input-sm">
-                            <option value="">--select--</option>
-                            <option value="YES">Yes</option>
-                            <option value="NO">No</option>
-                            <option value="UNKNOWN">Unknown</option>
-                        </select>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Mpb Start Date</label>
-                        <input type="date" name="manualMedicareMpbStartDate" class="form-control input-sm"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Mpb End Date</label>
-                        <input type="date" name="manualMedicareMpbEndDate" class="form-control input-sm"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Mpb Deductible</label>
-                        <input type="number" name="manualMedicareMpbDeductible" class="form-control input-sm"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Mpb Remaining</label>
-                        <input type="number" name="manualMedicareMpbRemaining" class="form-control input-sm"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Mpb Insurance Type</label>
-                        <input type="text" name="manualMedicareMpbInsuranceType" class="form-control input-sm"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Mpb Insurance Type Label</label>
-                        <input type="text" name="manualMedicareMpbInsuranceTypeLabel" class="form-control input-sm"/>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Mpb Coinsurance Percent</label>
-                        <input type="number" name="manualMedicareMpbCoinsurancePercent" class="form-control input-sm"/>
+                        <label class="control-label">Subscriber Name First</label>
+                        <input type="text" name="subscriberNameFirst" class="form-control input-sm" value="{{$patient->name_first}}">
                     </div>
                     <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Mpb Info Valid Until</label>
-                        <input type="date" name="manualMedicareMpbInfoValidUntil" class="form-control input-sm"/>
+                        <label class="control-label">Subscriber Name Last</label>
+                        <input type="text" name="subscriberNameLast" class="form-control input-sm" value="{{$patient->name_last}}">
                     </div>
                     <div class="form-group">
-                        <label for="" class="control-label">Manual Medicare Mpb Info Valid Till</label>
-                        <input type="date" name="manualMedicareMpbInfoValidTill" class="form-control input-sm"/>
-                    </div>
-                    <div class="form-group text-nowrap mb-0">
-                        <button class="btn btn-sm btn-primary" submit>Submt</button>
-                        <button class="btn btn-sm btn-default border" close>Close</button>
+                        <label class="control-label">Subscriber Dob</label>
+                        <input type="date" name="subscriberDob" class="form-control input-sm" value="{{$patient->dob}}">
                     </div>
-                </form>
-            </div>
-            <span class="mx-2 text-secondary text-sm">|</span>
-            <div moe relative large>
-                <a href="" start show >+ Medicaid</a>
-                <form url="/api/clientPrimaryCoverage/createNewCoverageForMedicaidWithManualDetermination" right class="mcp-theme-1">
-                    <input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
                     <div class="form-group">
-                        <label for="" class="control-label">Manual Determination Strategy</label>
-                        <select  name="manualDeterminationStrategy" class="form-control input-sm">
+                        <label for="" class="control-label">Subscriber Sex</label>
+                        <select  name="subscriberSex" class="form-control input-sm">
                             <option value="">--select--</option>
-                            <option value="REVIEWED_ELECTRONIC">Reviewed electronic</option>
-                            <option value="CALLED_PAYER">Called payer</option>
+                            <option value="M" {{$patient->sex === 'M' ? 'selected' : ''}}>M</option>
+                            <option value="F" {{$patient->sex === 'F' ? 'selected' : ''}}>F</option>
                         </select>
                     </div>
                     <div class="form-group">
-                        <label for="" class="control-label">Manual Determination Category</label>
-                        <select  name="manualDeterminationCategory" class="form-control input-sm">
-                            <option value="">--select--</option>
-                            <option value="COVERED">Covered</option>
-                            <option value="NOT_COVERED">Not Covered</option>
-                            <option value="INVALID">Invalid</option>
-                            <option value="UNKNOWN">Unknown</option>
-                        </select>                        
+                        <label class="control-label">Payer Member Identifier</label>
+                        <input type="text" name="payerMemberIdentifier" class="form-control input-sm">
                     </div>
                     <div class="form-group">
-                        <label for="" class="form-control-label">Manual Determination Category Memo</label>
-                        <input type="text" name="manualDeterminationCategoryMemo" class="form-control input-sm">
+                        <label class="control-label">Medicare Number</label>
+                        <input type="text" name="mcrNumber" class="form-control input-sm">
                     </div>
                     <div class="form-group">
-                        <label for="" class="control-label">Manual Detail Json</label>
-                        <input type="text" name="manualDetailJson" class="form-control input-sm">
+                        <label class="control-label">Date Of Service</label>
+                        <input type="date" name="dateOfService" class="form-control input-sm" value="{{date('Y-m-d')}}">
                     </div>
+
                     <div class="form-group text-nowrap mb-0">
                         <button class="btn btn-sm btn-primary" submit>Submt</button>
                         <button class="btn btn-sm btn-default border" close>Close</button>
@@ -352,8 +201,8 @@
             </div>
             <span class="mx-2 text-secondary text-sm">|</span>
             <div moe relative large>
-                <a href="" start show >+ Comm.</a>
-                <form url="/api/clientPrimaryCoverage/createNewCoverageForCommercialWithManualDetermination" right class="mcp-theme-1">
+                <a href="" start show >+ Mcd Mco.</a>
+                <form url="/api/clientPrimaryCoverage/createNewCoverageForMcdMcoWithoutManualDetermination" right class="mcp-theme-1">
                     <input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
                     <div class="form-group">
                         <label class="control-label">Subscriber Name First</label>
@@ -375,45 +224,24 @@
                             <option value="F" {{$patient->sex === 'F' ? 'selected' : ''}}>F</option>
                         </select>
                     </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Payer Name</label>
-                        <input type="text" name="payerName" class="form-control input-sm"/>
-                    </div>
+
                     <div class="form-group">
                         <label class="control-label">Payer Member Identifier</label>
                         <input type="text" name="payerMemberIdentifier" class="form-control input-sm">
                     </div>
                     <div class="form-group">
-                        <label class="control-label">Date Of Service</label>
-                        <input type="date" name="dateOfService" class="form-control input-sm" value="{{date('Y-m-d')}}">
-                    </div>
-                   
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Determination Strategy</label>
-                        <select  name="manualDeterminationStrategy" class="form-control input-sm">
-                            <option value="">--select--</option>
-                            <option value="REVIEWED_ELECTRONIC">Reviewed electronic</option>
-                            <option value="CALLED_PAYER">Called payer</option>
-                        </select>
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Manual Determination Category</label>
-                        <select  name="manualDeterminationCategory" class="form-control input-sm">
-                            <option value="">--select--</option>
-                            <option value="COVERED">Covered</option>
-                            <option value="NOT_COVERED">Not Covered</option>
-                            <option value="INVALID">Invalid</option>
-                            <option value="UNKNOWN">Unknown</option>
-                        </select>                        
+                        <label class="control-label">Medicaid Number</label>
+                        <input type="text" name="mcdNumber" class="form-control input-sm">
                     </div>
                     <div class="form-group">
-                        <label for="" class="control-label">Manual Determination Category Memo</label>
-                        <textarea name="manualDeterminationCategoryMemo" class="form-control input-sm"></textarea>
+                        <label class="control-label">Medicaid State</label>
+                        <input type="text" name="mcdState" class="form-control input-sm">
                     </div>
                     <div class="form-group">
-                        <label for="" class="control-label">Manual Detail Json</label>
-                        <textarea name="manualDetailJson" class="form-control input-sm"></textarea>
+                        <label class="control-label">Date Of Service</label>
+                        <input type="date" name="dateOfService" class="form-control input-sm" value="{{date('Y-m-d')}}">
                     </div>
+
                     <div class="form-group text-nowrap mb-0">
                         <button class="btn btn-sm btn-primary" submit>Submt</button>
                         <button class="btn btn-sm btn-default border" close>Close</button>
@@ -421,99 +249,11 @@
                 </form>
             </div>
         </div>
+
     </div>
 
     <table class="table table-sm table-bordered mt-3 mb-0">
-        <thead>
-            <tr>
-                <th></th>
-                <th>Creation Strategy</th>
-                <th>Auto Refresh Of Client Primary Coverage Id</th>
-                <th>Manual Determination Of Client Primary Coverage Id</th>
-                <th>Plan Type</th>
-                <th>Is Partbprimary</th>
-                <th>Is Manually Determined</th>
-                <th>Is Entry Error</th>
-                <th>Subscriber Name First</th>
-                <th>Subscriber Name Last</th>
-                <th>Subscriber Sex</th>
-                <th>Subscriber Dob</th>
-                <th>Payer Member Identifier</th>
-                <th>Payer Name</th>
-                <th>Date Of Service</th>
-                <th>Auto Is Payer Member Identifier Valid</th>
-                <th>Auto Detail Json</th>
-                <th>Auto Medicare Is Partbprimary</th>
-                <th>Auto Medicare Is Partbactive</th>
-                <th>Auto Medicare Is Partcactive</th>
-                <th>Auto Medicare Is Inpatient</th>
-                <th>Auto Medicare Is Hospice Or Home Health</th>
-                <th>Auto Medicare Is Msp</th>
-                <th>Auto Medicare Msp Memo</th>
-                <th>Auto Medicare Mpb Start Date</th>
-                <th>Auto Medicare Mpb End Date</th>
-                <th>Auto Medicare Mpb Deductible</th>
-                <th>Auto Medicare Mpb Remaining</th>
-                <th>Auto Medicare Mpb Insurance Type</th>
-                <th>Auto Medicare Mpb Insurance Type Label</th>
-                <th>Auto Medicare Mpb Coinsurance Percent</th>
-                <th>Auto Medicare Mpb Info Valid Until</th>
-                <th>Auto Medicare Mpb Info Valid Till</th>
-                <th>Auto Medicare Mpb Last Refreshed At</th>
-                <th>Was Successful</th>
-                <th>Reject Reason Code</th>
-                <th>Reject Reason Description</th>
-                <th>Follow Up Action Code</th>
-                <th>Follow Up Action Description</th>
-                <th>Details</th>
-                <th>Is Mcn Valid Number</th>
-                <th>Address Street Line1</th>
-                <th>Address Street Line2</th>
-                <th>Address City</th>
-                <th>Address State</th>
-                <th>Address Zip</th>
-                <th>Is Hospice</th>
-                <th>Mcn Response Detail</th>
-                <th>Billing Address</th>
-                <th>Reason Not Partb</th>
-                <th>Reason Not Partbmemo</th>
-                <th>Is Medicare Advantage</th>
-                <th>Medicare Advantage Plan</th>
-                <th>Mpb Active</th>
-                <th>Mpb Start Date</th>
-                <th>Mpb End Date</th>
-                <th>Mpb Deductible</th>
-                <th>Mpb Remaining</th>
-                <th>Mpb Insurance Type</th>
-                <th>Mpb Insurance Type Label</th>
-                <th>Mpb Coinsurance Percent</th>
-                <th>Mpb Info Valid Until</th>
-                <th>Mpb Info Valid Till</th>
-                <th>Mpb Last Refreshed At</th>
-                <th>Manual Determination Strategy</th>
-                <th>Manual Determination Category</th>
-                <th>Manual Determination Category Memo</th>
-                <th>Manual Detail Json</th>
-                <th>Manual Medicare Is Partbprimary</th>
-                <th>Manual Medicare Is Partbactive</th>
-                <th>Manual Medicare Is Partcactive</th>
-                <th>Manual Medicare Is Inpatient</th>
-                <th>Manual Medicare Is Hospice Or Home Health</th>
-                <th>Manual Medicare Is Msp</th>
-                <th>Manual Medicare Msp Memo</th>
-                <th>Manual Medicare Mpb Start Date</th>
-                <th>Manual Medicare Mpb End Date</th>
-                <th>Manual Medicare Mpb Deductible</th>
-                <th>Manual Medicare Mpb Remaining</th>
-                <th>Manual Medicare Mpb Insurance Type</th>
-                <th>Manual Medicare Mpb Insurance Type Label</th>
-                <th>Manual Medicare Mpb Coinsurance Percent</th>
-                <th>Manual Medicare Mpb Info Valid Until</th>
-                <th>Manual Medicare Mpb Info Valid Till</th>
-                <th>Manual Medicare Mpb Last Refreshed At</th>
-                <th>Auto Medicare Result Id</th>
-            </tr>
-        </thead>
+
         <tbody>
             @foreach($patient->primaryCoverages as $cpc)
             <tr>
@@ -533,7 +273,7 @@
                             </div>
                         </form>
                     </div>
-
+                    <hr/>
                     <div moe relative large>
                         <a href="" start show class="">Manual Determination</a>
 
@@ -555,7 +295,7 @@
                                     <option value="NOT_COVERED">Not Covered</option>
                                     <option value="INVALID">Invalid</option>
                                     <option value="UNKNOWN">Unknown</option>
-                                </select>                        
+                                </select>
                             </div>
                             <div class="form-group">
                                 <label for="" class="control-label">Manual Determination Category Memo</label>
@@ -670,7 +410,7 @@
                             </div>
                         </form>
                     </div>
-                    @endif 
+                    @endif
                     @if($cpc->plan_type == 'MEDICAID')
                     <div moe relative>
                         <a href="" start show class="">Refresh</a>
@@ -686,6 +426,7 @@
                             </div>
                         </form>
                     </div>
+                    <hr/>
                     <div moe relative large>
                         <a href="" start show class="">Manual Determination</a>
 
@@ -707,7 +448,7 @@
                                     <option value="NOT_COVERED">Not Covered</option>
                                     <option value="INVALID">Invalid</option>
                                     <option value="UNKNOWN">Unknown</option>
-                                </select>                        
+                                </select>
                             </div>
                             <div class="form-group">
                                 <label for="" class="control-label">Manual Determination Category Memo</label>
@@ -717,15 +458,15 @@
                                 <label for="" class="control-label">Manual Detail Json</label>
                                 <input type="text" name="manualDetailJson" class="form-control input-sm"/>
                             </div>
-                           
-                           
+
+
                             <div class="form-group text-nowrap mb-0">
                                 <button class="btn btn-sm btn-primary" submit>Submt</button>
                                 <button class="btn btn-sm btn-default border" close>Close</button>
                             </div>
                         </form>
                     </div>
-                    @endif 
+                    @endif
                     @if($cpc->plan_type == 'COMMERCIAL')
                     <div moe relative>
                         <a href="" start show class="">Refresh</a>
@@ -741,6 +482,7 @@
                             </div>
                         </form>
                     </div>
+                    <hr/>
                     <div moe relative large>
                         <a href="" start show class="">Manual Determination</a>
 
@@ -762,7 +504,7 @@
                                     <option value="NOT_COVERED">Not Covered</option>
                                     <option value="INVALID">Invalid</option>
                                     <option value="UNKNOWN">Unknown</option>
-                                </select>                        
+                                </select>
                             </div>
                             <div class="form-group">
                                 <label for="" class="control-label">Manual Determination Category Memo</label>
@@ -772,104 +514,284 @@
                                 <label for="" class="control-label">Manual Detail Json</label>
                                 <input type="text" name="manualDetailJson" class="form-control input-sm"/>
                             </div>
-                            
-                           
+
+
                             <div class="form-group text-nowrap mb-0">
                                 <button class="btn btn-sm btn-primary" submit>Submt</button>
                                 <button class="btn btn-sm btn-default border" close>Close</button>
                             </div>
                         </form>
                     </div>
-                    @endif 
+                    @endif
+                    @if($cpc->plan_type == 'MCR_ADV')
+                        <div moe relative>
+                            <a href="" start show class="">Refresh</a>
+
+                            <form url="/api/clientPrimaryCoverage/refreshCoverageForMcrAdv" class="mcp-theme-1">
+                                <input type="hidden" name="uid" value="{{$cpc->uid}}" class="form-control input-sm" />
+                                <div class="form-group">
+                                    <p>Refresh?</p>
+                                </div>
+                                <div class="form-group text-nowrap mb-0">
+                                    <button class="btn btn-sm btn-primary" submit>Submt</button>
+                                    <button class="btn btn-sm btn-default border" close>Close</button>
+                                </div>
+                            </form>
+                        </div>
+                        <hr/>
+                        <div moe relative large>
+                            <a href="" start show class="">Manual Determination</a>
+                            <form url="/api/clientPrimaryCoverage/manualDeterminationForMcrAdv" class="mcp-theme-1">
+                                <input type="hidden" name="uid" value="{{$cpc->uid}}" class="form-control input-sm" />
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Determination Strategy</label>
+                                    <select  name="manualDeterminationStrategy" class="form-control input-sm">
+                                        <option value="">--select--</option>
+                                        <option value="REVIEWED_ELECTRONIC">Reviewed electronic</option>
+                                        <option value="CALLED_PAYER">Called payer</option>
+                                    </select>
+                                </div>
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Determination Category</label>
+                                    <select  name="manualDeterminationCategory" class="form-control input-sm">
+                                        <option value="">--select--</option>
+                                        <option value="COVERED">Covered</option>
+                                        <option value="NOT_COVERED">Not Covered</option>
+                                        <option value="INVALID">Invalid</option>
+                                        <option value="UNKNOWN">Unknown</option>
+                                    </select>
+                                </div>
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Determination Category Memo</label>
+                                    <input type="text" name="manualDeterminationCategoryMemo" class="form-control input-sm"/>
+                                </div>
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Detail Json</label>
+                                    <input type="text" name="manualDetailJson" class="form-control input-sm"/>
+                                </div>
+
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Is Payer Member Identifier Valid</label>
+                                    <select  name="manualIsPayerMemberIdentifierValid" class="form-control input-sm">
+                                        <option value="">--select--</option>
+                                        <option value="YES">Yes</option>
+                                        <option value="NO">No</option>
+                                        <option value="UNKNOWN">Unknown</option>
+                                    </select>
+                                </div>
+
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Is Mcr Number Valid</label>
+                                    <select  name="manualIsMcrNumberValid" class="form-control input-sm">
+                                        <option value="">--select--</option>
+                                        <option value="YES">Yes</option>
+                                        <option value="NO">No</option>
+                                        <option value="UNKNOWN">Unknown</option>
+                                    </select>
+                                </div>
+
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Is Mcr Part Bprimary</label>
+                                    <select  name="manualIsMcrPartBPrimary" class="form-control input-sm">
+                                        <option value="">--select--</option>
+                                        <option value="YES">Yes</option>
+                                        <option value="NO">No</option>
+                                        <option value="UNKNOWN">Unknown</option>
+                                    </select>
+                                </div>
+
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Is Mcr Part C Active</label>
+                                    <select  name="manualIsMcrPartCActive" class="form-control input-sm">
+                                        <option value="">--select--</option>
+                                        <option value="YES">Yes</option>
+                                        <option value="NO">No</option>
+                                        <option value="UNKNOWN">Unknown</option>
+                                    </select>
+                                </div>
+
+                                <div class="form-group text-nowrap mb-0">
+                                    <button class="btn btn-sm btn-primary" submit>Submt</button>
+                                    <button class="btn btn-sm btn-default border" close>Close</button>
+                                </div>
+                            </form>
+                        </div>
+                    @endif
+                    @if($cpc->plan_type == 'MCD_MCO')
+                        <div moe relative>
+                            <a href="" start show class="">Refresh</a>
+
+                            <form url="/api/clientPrimaryCoverage/refreshCoverageForMcdMco" class="mcp-theme-1">
+                                <input type="hidden" name="uid" value="{{$cpc->uid}}" class="form-control input-sm" />
+                                <div class="form-group">
+                                    <p>Refresh?</p>
+                                </div>
+                                <div class="form-group text-nowrap mb-0">
+                                    <button class="btn btn-sm btn-primary" submit>Submt</button>
+                                    <button class="btn btn-sm btn-default border" close>Close</button>
+                                </div>
+                            </form>
+                        </div>
+                        <hr/>
+                        <div moe relative large>
+                            <a href="" start show class="">Manual Determination</a>
+                            <form url="/api/clientPrimaryCoverage/manualDeterminationForMcdMco" class="mcp-theme-1">
+                                <input type="hidden" name="uid" value="{{$cpc->uid}}" class="form-control input-sm" />
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Determination Strategy</label>
+                                    <select  name="manualDeterminationStrategy" class="form-control input-sm">
+                                        <option value="">--select--</option>
+                                        <option value="REVIEWED_ELECTRONIC">Reviewed electronic</option>
+                                        <option value="CALLED_PAYER">Called payer</option>
+                                    </select>
+                                </div>
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Determination Category</label>
+                                    <select  name="manualDeterminationCategory" class="form-control input-sm">
+                                        <option value="">--select--</option>
+                                        <option value="COVERED">Covered</option>
+                                        <option value="NOT_COVERED">Not Covered</option>
+                                        <option value="INVALID">Invalid</option>
+                                        <option value="UNKNOWN">Unknown</option>
+                                    </select>
+                                </div>
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Determination Category Memo</label>
+                                    <input type="text" name="manualDeterminationCategoryMemo" class="form-control input-sm"/>
+                                </div>
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Detail Json</label>
+                                    <input type="text" name="manualDetailJson" class="form-control input-sm"/>
+                                </div>
+
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Is Mcd Number Valid</label>
+                                    <select  name="manualIsMcdNumberValid" class="form-control input-sm">
+                                        <option value="">--select--</option>
+                                        <option value="YES">Yes</option>
+                                        <option value="NO">No</option>
+                                        <option value="UNKNOWN">Unknown</option>
+                                    </select>
+                                </div>
+
+                                <div class="form-group">
+                                    <label for="" class="control-label">Manual Is Mcd Response Mco Active</label>
+                                    <select  name="manualIsMcdResponseMcoActive" class="form-control input-sm">
+                                        <option value="">--select--</option>
+                                        <option value="YES">Yes</option>
+                                        <option value="NO">No</option>
+                                        <option value="UNKNOWN">Unknown</option>
+                                    </select>
+                                </div>
+
+                                <div class="form-group text-nowrap mb-0">
+                                    <button class="btn btn-sm btn-primary" submit>Submt</button>
+                                    <button class="btn btn-sm btn-default border" close>Close</button>
+                                </div>
+                            </form>
+                        </div>
+                    @endif
+                </td>
+                <td>
+                    <table class="table table-sm table-bordered table-condensed">
+                        <tr><td>creation_strategy</td><td>{{$cpc->creation_strategy}}</td></tr>
+                        <tr><td>auto_refresh_of_client_primary_coverage_id</td><td>{{$cpc->auto_refresh_of_client_primary_coverage_id}}</td></tr>
+                        <tr><td>manual_determination_of_client_primary_coverage_id</td><td>{{$cpc->manual_determination_of_client_primary_coverage_id}}</td></tr>
+                        <tr><td>plan_type</td><td>{{$cpc->plan_type}}</td></tr>
+                        <tr><td>is_partbprimary</td><td>{{$cpc->is_partbprimary}}</td></tr>
+                        <tr><td>is_manually_determined</td><td>{{$cpc->is_manually_determined}}</td></tr>
+                        <tr><td>is_entry_error</td><td>{{$cpc->is_entry_error}}</td></tr>
+                        <tr><td>subscriber_name_first</td><td>{{$cpc->subscriber_name_first}}</td></tr>
+                        <tr><td>subscriber_name_last</td><td>{{$cpc->subscriber_name_last}}</td></tr>
+                        <tr><td>subscriber_sex</td><td>{{$cpc->subscriber_sex}}</td></tr>
+                        <tr><td>subscriber_dob</td><td>{{$cpc->subscriber_dob}}</td></tr>
+                        <tr><td>payer_member_identifier</td><td>{{$cpc->payer_member_identifier}}</td></tr>
+                        <tr><td>payer_name</td><td>{{$cpc->payer_name}}</td></tr>
+                        <tr><td>date_of_service</td><td>{{$cpc->date_of_service}}</td></tr>
+                    </table>
+                </td>
+                <td>
+                    <table class="table table-sm table-bordered table-condensed">
+                        <tr><td>auto_is_payer_member_identifier_valid</td><td>{{$cpc->auto_is_payer_member_identifier_valid}}</td></tr>
+                        <tr><td>auto_medicare_is_partbprimary</td><td>{{$cpc->auto_medicare_is_partbprimary}}</td></tr>
+                        <tr><td>auto_medicare_is_partbactive</td><td>{{$cpc->auto_medicare_is_partbactive}}</td></tr>
+                        <tr><td>auto_medicare_is_partcactive</td><td>{{$cpc->auto_medicare_is_partcactive}}</td></tr>
+                        <tr><td>auto_medicare_is_inpatient</td><td>{{$cpc->auto_medicare_is_inpatient}}</td></tr>
+                        <tr><td>auto_medicare_is_hospice_or_home_health</td><td>{{$cpc->auto_medicare_is_hospice_or_home_health}}</td></tr>
+                        <tr><td>auto_medicare_is_msp</td><td>{{$cpc->auto_medicare_is_msp}}</td></tr>
+                        <tr><td>auto_medicare_msp_memo</td><td>{{$cpc->auto_medicare_msp_memo}}</td></tr>
+                        <tr><td>auto_medicare_mpb_start_date</td><td>{{$cpc->auto_medicare_mpb_start_date}}</td></tr>
+                        <tr><td>auto_medicare_mpb_end_date</td><td>{{$cpc->auto_medicare_mpb_end_date}}</td></tr>
+                        <tr><td>auto_medicare_mpb_deductible</td><td>{{$cpc->auto_medicare_mpb_deductible}}</td></tr>
+                        <tr><td>auto_medicare_mpb_remaining</td><td>{{$cpc->auto_medicare_mpb_remaining}}</td></tr>
+                        <tr><td>auto_medicare_mpb_insurance_type</td><td>{{$cpc->auto_medicare_mpb_insurance_type}}</td></tr>
+                        <tr><td>auto_medicare_mpb_insurance_type_label</td><td>{{$cpc->auto_medicare_mpb_insurance_type_label}}</td></tr>
+                        <tr><td>auto_medicare_mpb_coinsurance_percent</td><td>{{$cpc->auto_medicare_mpb_coinsurance_percent}}</td></tr>
+                        <tr><td>auto_medicare_mpb_info_valid_until</td><td>{{$cpc->auto_medicare_mpb_info_valid_until}}</td></tr>
+                        <tr><td>auto_medicare_mpb_info_valid_till</td><td>{{$cpc->auto_medicare_mpb_info_valid_till}}</td></tr>
+                        <tr><td>auto_medicare_mpb_last_refreshed_at</td><td>{{$cpc->auto_medicare_mpb_last_refreshed_at}}</td></tr>
+                        <tr><td>was_successful</td><td>{{$cpc->was_successful}}</td></tr>
+                        <tr><td>reject_reason_code</td><td>{{$cpc->reject_reason_code}}</td></tr>
+                        <tr><td>reject_reason_description</td><td>{{$cpc->reject_reason_description}}</td></tr>
+                        <tr><td>follow_up_action_code</td><td>{{$cpc->follow_up_action_code}}</td></tr>
+                        <tr><td>follow_up_action_description</td><td>{{$cpc->follow_up_action_description}}</td></tr>
+                        <tr><td>details</td><td>{{$cpc->details}}</td></tr>
+                        <tr><td>is_mcn_valid_number</td><td>{{$cpc->is_mcn_valid_number}}</td></tr>
+                        <tr><td>address_street_line1</td><td>{{$cpc->address_street_line1}}</td></tr>
+                        <tr><td>address_street_line2</td><td>{{$cpc->address_street_line2}}</td></tr>
+                        <tr><td>address_city</td><td>{{$cpc->address_city}}</td></tr>
+                        <tr><td>address_state</td><td>{{$cpc->address_state}}</td></tr>
+                        <tr><td>address_zip</td><td>{{$cpc->address_zip}}</td></tr>
+                        <tr><td>is_hospice</td><td>{{$cpc->is_hospice}}</td></tr>
+                        <tr><td>mcn_response_detail</td><td>{{$cpc->mcn_response_detail}}</td></tr>
+                        <tr><td>billing_address</td><td>{{$cpc->billing_address}}</td></tr>
+                        <tr><td>reason_not_partb</td><td>{{$cpc->reason_not_partb}}</td></tr>
+                        <tr><td>reason_not_partbmemo</td><td>{{$cpc->reason_not_partbmemo}}</td></tr>
+                        <tr><td>is_medicare_advantage</td><td>{{$cpc->is_medicare_advantage}}</td></tr>
+                        <tr><td>medicare_advantage_plan</td><td>{{$cpc->medicare_advantage_plan}}</td></tr>
+                        <tr><td>mpb_active</td><td>{{$cpc->mpb_active}}</td></tr>
+                        <tr><td>mpb_start_date</td><td>{{$cpc->mpb_start_date}}</td></tr>
+                        <tr><td>mpb_end_date</td><td>{{$cpc->mpb_end_date}}</td></tr>
+                        <tr><td>mpb_deductible</td><td>{{$cpc->mpb_deductible}}</td></tr>
+                        <tr><td>mpb_remaining</td><td>{{$cpc->mpb_remaining}}</td></tr>
+                        <tr><td>mpb_insurance_type</td><td>{{$cpc->mpb_insurance_type}}</td></tr>
+                        <tr><td>mpb_insurance_type_label</td><td>{{$cpc->mpb_insurance_type_label}}</td></tr>
+                        <tr><td>mpb_coinsurance_percent</td><td>{{$cpc->mpb_coinsurance_percent}}</td></tr>
+                        <tr><td>mpb_info_valid_until</td><td>{{$cpc->mpb_info_valid_until}}</td></tr>
+                        <tr><td>mpb_info_valid_till</td><td>{{$cpc->mpb_info_valid_till}}</td></tr>
+                        <tr><td>mpb_last_refreshed_at</td><td>{{$cpc->mpb_last_refreshed_at}}</td></tr>
+                        <tr><td>manual_determination_strategy</td><td>{{$cpc->manual_determination_strategy}}</td></tr>
+                        <tr><td>manual_determination_category</td><td>{{$cpc->manual_determination_category}}</td></tr>
+                        <tr><td>manual_determination_category_memo</td><td>{{$cpc->manual_determination_category_memo}}</td></tr>
+                        <tr><td>manual_detail_json</td><td>{{$cpc->manual_detail_json}}</td></tr>
+                        <tr><td>manual_medicare_is_partbprimary</td><td>{{$cpc->manual_medicare_is_partbprimary}}</td></tr>
+                        <tr><td>manual_medicare_is_partbactive</td><td>{{$cpc->manual_medicare_is_partbactive}}</td></tr>
+                        <tr><td>manual_medicare_is_partcactive</td><td>{{$cpc->manual_medicare_is_partcactive}}</td></tr>
+                        <tr><td>manual_medicare_is_inpatient</td><td>{{$cpc->manual_medicare_is_inpatient}}</td></tr>
+                        <tr><td>manual_medicare_is_hospice_or_home_health</td><td>{{$cpc->manual_medicare_is_hospice_or_home_health}}</td></tr>
+                        <tr><td>manual_medicare_is_msp</td><td>{{$cpc->manual_medicare_is_msp}}</td></tr>
+                        <tr><td>manual_medicare_msp_memo</td><td>{{$cpc->manual_medicare_msp_memo}}</td></tr>
+                        <tr><td>manual_medicare_mpb_start_date</td><td>{{$cpc->manual_medicare_mpb_start_date}}</td></tr>
+                        <tr><td>manual_medicare_mpb_end_date</td><td>{{$cpc->manual_medicare_mpb_end_date}}</td></tr>
+                        <tr><td>manual_medicare_mpb_deductible</td><td>{{$cpc->manual_medicare_mpb_deductible}}</td></tr>
+                        <tr><td>manual_medicare_mpb_remaining</td><td>{{$cpc->manual_medicare_mpb_remaining}}</td></tr>
+                        <tr><td>manual_medicare_mpb_insurance_type</td><td>{{$cpc->manual_medicare_mpb_insurance_type}}</td></tr>
+                        <tr><td>manual_medicare_mpb_insurance_type_label</td><td>{{$cpc->manual_medicare_mpb_insurance_type_label}}</td></tr>
+                        <tr><td>manual_medicare_mpb_coinsurance_percent</td><td>{{$cpc->manual_medicare_mpb_coinsurance_percent}}</td></tr>
+                        <tr><td>manual_medicare_mpb_info_valid_until</td><td>{{$cpc->manual_medicare_mpb_info_valid_until}}</td></tr>
+                        <tr><td>manual_medicare_mpb_info_valid_till</td><td>{{$cpc->manual_medicare_mpb_info_valid_till}}</td></tr>
+                        <tr><td>manual_medicare_mpb_last_refreshed_at</td><td>{{$cpc->manual_medicare_mpb_last_refreshed_at}}</td></tr>
+                        <tr><td>auto_medicare_result_id</td><td>{{$cpc->auto_medicare_result_id}}</td></tr>
+                    </table>
+                </td>
+                <td>
+                    <table>
+                        <tr><td>auto_detail_json</td><td><pre>{{$cpc->auto_detail_json}}</pre></td></tr>
+                    </table>
                 </td>
-                <td>{{$cpc->creation_strategy}}</td>
-                <td>{{$cpc->auto_refresh_of_client_primary_coverage_id}}</td>
-                <td>{{$cpc->manual_determination_of_client_primary_coverage_id}}</td>
-                <td>{{$cpc->plan_type}}</td>
-                <td>{{$cpc->is_partbprimary}}</td>
-                <td>{{$cpc->is_manually_determined}}</td>
-                <td>{{$cpc->is_entry_error}}</td>
-                <td>{{$cpc->subscriber_name_first}}</td>
-                <td>{{$cpc->subscriber_name_last}}</td>
-                <td>{{$cpc->subscriber_sex}}</td>
-                <td>{{$cpc->subscriber_dob}}</td>
-                <td>{{$cpc->payer_member_identifier}}</td>
-                <td>{{$cpc->payer_name}}</td>
-                <td>{{$cpc->date_of_service}}</td>
-                <td>{{$cpc->auto_is_payer_member_identifier_valid}}</td>
-                <td>{{$cpc->auto_detail_json}}</td>
-                <td>{{$cpc->auto_medicare_is_partbprimary}}</td>
-                <td>{{$cpc->auto_medicare_is_partbactive}}</td>
-                <td>{{$cpc->auto_medicare_is_partcactive}}</td>
-                <td>{{$cpc->auto_medicare_is_inpatient}}</td>
-                <td>{{$cpc->auto_medicare_is_hospice_or_home_health}}</td>
-                <td>{{$cpc->auto_medicare_is_msp}}</td>
-                <td>{{$cpc->auto_medicare_msp_memo}}</td>
-                <td>{{$cpc->auto_medicare_mpb_start_date}}</td>
-                <td>{{$cpc->auto_medicare_mpb_end_date}}</td>
-                <td>{{$cpc->auto_medicare_mpb_deductible}}</td>
-                <td>{{$cpc->auto_medicare_mpb_remaining}}</td>
-                <td>{{$cpc->auto_medicare_mpb_insurance_type}}</td>
-                <td>{{$cpc->auto_medicare_mpb_insurance_type_label}}</td>
-                <td>{{$cpc->auto_medicare_mpb_coinsurance_percent}}</td>
-                <td>{{$cpc->auto_medicare_mpb_info_valid_until}}</td>
-                <td>{{$cpc->auto_medicare_mpb_info_valid_till}}</td>
-                <td>{{$cpc->auto_medicare_mpb_last_refreshed_at}}</td>
-                <td>{{$cpc->was_successful}}</td>
-                <td>{{$cpc->reject_reason_code}}</td>
-                <td>{{$cpc->reject_reason_description}}</td>
-                <td>{{$cpc->follow_up_action_code}}</td>
-                <td>{{$cpc->follow_up_action_description}}</td>
-                <td>{{$cpc->details}}</td>
-                <td>{{$cpc->is_mcn_valid_number}}</td>
-                <td>{{$cpc->address_street_line1}}</td>
-                <td>{{$cpc->address_street_line2}}</td>
-                <td>{{$cpc->address_city}}</td>
-                <td>{{$cpc->address_state}}</td>
-                <td>{{$cpc->address_zip}}</td>
-                <td>{{$cpc->is_hospice}}</td>
-                <td>{{$cpc->mcn_response_detail}}</td>
-                <td>{{$cpc->billing_address}}</td>
-                <td>{{$cpc->reason_not_partb}}</td>
-                <td>{{$cpc->reason_not_partbmemo}}</td>
-                <td>{{$cpc->is_medicare_advantage}}</td>
-                <td>{{$cpc->medicare_advantage_plan}}</td>
-                <td>{{$cpc->mpb_active}}</td>
-                <td>{{$cpc->mpb_start_date}}</td>
-                <td>{{$cpc->mpb_end_date}}</td>
-                <td>{{$cpc->mpb_deductible}}</td>
-                <td>{{$cpc->mpb_remaining}}</td>
-                <td>{{$cpc->mpb_insurance_type}}</td>
-                <td>{{$cpc->mpb_insurance_type_label}}</td>
-                <td>{{$cpc->mpb_coinsurance_percent}}</td>
-                <td>{{$cpc->mpb_info_valid_until}}</td>
-                <td>{{$cpc->mpb_info_valid_till}}</td>
-                <td>{{$cpc->mpb_last_refreshed_at}}</td>
-                <td>{{$cpc->manual_determination_strategy}}</td>
-                <td>{{$cpc->manual_determination_category}}</td>
-                <td>{{$cpc->manual_determination_category_memo}}</td>
-                <td>{{$cpc->manual_detail_json}}</td>
-                <td>{{$cpc->manual_medicare_is_partbprimary}}</td>
-                <td>{{$cpc->manual_medicare_is_partbactive}}</td>
-                <td>{{$cpc->manual_medicare_is_partcactive}}</td>
-                <td>{{$cpc->manual_medicare_is_inpatient}}</td>
-                <td>{{$cpc->manual_medicare_is_hospice_or_home_health}}</td>
-                <td>{{$cpc->manual_medicare_is_msp}}</td>
-                <td>{{$cpc->manual_medicare_msp_memo}}</td>
-                <td>{{$cpc->manual_medicare_mpb_start_date}}</td>
-                <td>{{$cpc->manual_medicare_mpb_end_date}}</td>
-                <td>{{$cpc->manual_medicare_mpb_deductible}}</td>
-                <td>{{$cpc->manual_medicare_mpb_remaining}}</td>
-                <td>{{$cpc->manual_medicare_mpb_insurance_type}}</td>
-                <td>{{$cpc->manual_medicare_mpb_insurance_type_label}}</td>
-                <td>{{$cpc->manual_medicare_mpb_coinsurance_percent}}</td>
-                <td>{{$cpc->manual_medicare_mpb_info_valid_until}}</td>
-                <td>{{$cpc->manual_medicare_mpb_info_valid_till}}</td>
-                <td>{{$cpc->manual_medicare_mpb_last_refreshed_at}}</td>
-                <td>{{$cpc->auto_medicare_result_id}}</td>
             </tr>
             @endforeach
         </tbody>
     </table>
 </div>
-@endsection
+@endsection

+ 147 - 0
resources/views/app/patient/coverage-status.blade.php

@@ -0,0 +1,147 @@
+<div>
+    @php
+        $coverage = $patient->latestClientPrimaryCoverage;
+    @endphp
+    @if(!$coverage)
+        <span><b>No coverage info!</b></span>
+    @elseif($coverage->plan_type === 'MEDICARE')
+      @if($coverage->creation_strategy == 'NEW' || $coverage->creation_strategy == 'AUTO_REFRESH')
+      <table class="table table-sm table-bordered">
+        <tr>
+          <td class="font-weight-bold">Medicare Part B (Primary)</td>
+          <td>
+            @if($coverage->auto_medicare_is_partbprimary)
+              <span><i class="fas fa-check-circle text-success"></i> (auto)</span>
+            @elseif(!$coverage->auto_medicare_is_match_found)
+              <span><i class="fas fa-times text-danger"></i> record not found (auto)</span>
+            @else
+              <span><i class="fas fa-times text-danger"></i> not primary!</span> <br>
+              <span><i class="fas fa-check-circle text-success"></i> record found</span> <br>
+              <span><b>Part B:</b> {{$coverage->auto_medicare_is_partbactive}}</span> <br>
+              <span><b>Part C:</b> {{$coverage->auto_medicare_is_partcactive}}</span>
+            @endif
+          </td>
+        </tr>
+        @if($coverage->auto_medicare_is_partbactive)
+        <tr>
+          <td class="font-weight-bold">Part B Deductible</td>
+          <td>{{$coverage->auto_medicare_mpb_deductible ?? '-'}}</td>
+        </tr>
+        <tr>
+          <td class="font-weight-bold">Part B Remaining</td>
+          <td>{{$coverage->auto_medicare_mpb_remaining ?? '-'}}</td>
+        </tr>
+        @endif
+      </table>
+      @else
+      <table class="table table-sm table-bordered">
+        <tr>
+          <td class="font-weight-bold">Medicare Part B (Primary)</td>
+          <td>
+            @if($coverage->manual_medicare_is_partbprimary)
+              <span><i class="fas fa-check-circle text-success"></i>  ({{$coverage->manual_determination_strategy}})</span>
+            @elseif(!$coverage->manual_medicare_is_match_found)
+            <span><i class="fas fa-times text-danger"></i> record not found ({{$coverage->manual_determination_strategy}})</span>
+            @else
+            <span><i class="fas fa-times text-danger"></i> not primary! ({{$coverage->manual_determination_strategy}})</span> <br>
+            <span><i class="fas fa-check-circle text-success"></i> record found</span> <br>
+            <span><b>Part B:</b> {{$coverage->manual_medicare_is_partbactive}}</span> <br>
+            <span><b>Part C:</b> {{$coverage->manual_medicare_is_partcactive}}</span>
+            @endif
+          </td>
+        </tr>
+        @if($coverage->auto_medicare_is_partbactive)
+        <tr>
+          <td class="font-weight-bold">Part B Deductible</td>
+          <td>{{$coverage->auto_medicare_mpb_deductible ?? '-'}}</td>
+        </tr>
+        <tr>
+          <td class="font-weight-bold">Part B Remaining</td>
+          <td>{{$coverage->auto_medicare_mpb_remaining ?? '-'}}</td>
+        </tr>
+        @endif
+      </table>
+      @endif
+      <div class="w-50">
+        {{$coverage->manual_determination_category_memo}}
+      </div>
+
+    @elseif($coverage->plan_type === 'MEDICAID')
+      @if($coverage->creation_strategy == 'NEW' || $coverage->creation_strategy == 'AUTO_REFRESH')
+      <table class="table table-sm table-bordered">
+        <tr>
+          <td class="font-weight-bold">Medicaid (Primary):</td>
+          <td>
+            <span><b>{{$coverage->mcd_payer_name ?? '-'}}</b></span> <br>
+            <span><i class="fas fa-hourglass-half text-warning"></i> Pending Validation</span> <br>
+          </td>
+        </tr>
+        <tr>
+          <td class="font-weight-bold">Date Created:</td>
+          <td><span>{{date_format($coverage->created_at, 'm/d/Y')}}</span></td>
+        </tr>
+      </table>
+      @else
+        <table class="table table-sm table-bordered">
+          <tr>
+            <td class="font-weight-bold">Medicaid (Primary):</td>
+            <td>
+              <span><b>{{$coverage->mcd_payer_name ?? '-'}}</b></span> <br>
+              @if($coverage->manual_determination_category == 'COVERED')
+              <span><i class="fas fa-check-circle text-success"></i></span>
+              @elseif($coverage->manual_determination_category == 'NOT_COVERED')
+              <span><i class="fas fa-check-circle text-danger"></i> record found</span> <br>
+              <span><i class="fas fa-times text-danger"></i> not covered ({{$coverage->manual_determination_strategy}})</span>
+              @elseif($coverage->manual_determination_category == 'INVALID')
+              <span><i class="fas fa-times text-danger"></i> record not found ({{$coverage->manual_determination_strategy}})</span>
+              @else
+              <span><i class="fas fa-hourglass-half text-warning"></i> pending ({{$coverage->manual_determination_strategy}})</span>
+              @endif
+            </td>
+          </tr>
+        </table>
+      @endif
+      <div class="w-50">
+        {{$coverage->manual_determination_category_memo}}
+      </div>
+
+    @elseif($coverage->plan_type === 'COMMERCIAL')
+      @if($coverage->creation_strategy == 'NEW' || $coverage->creation_strategy == 'AUTO_REFRESH')
+      <table class="table table-sm table-bordered">
+        <tr>
+          <td class="font-weight-bold">Commercial (Primary):</td>
+          <td>
+            <span><b>{{$coverage->payer->name ?? '-'}}</b></span> <br>
+            <span><i class="fas fa-hourglass-half text-warning"></i> Pending Validation</span> <br>
+          </td>
+        </tr>
+        <tr>
+          <td class="font-weight-bold">Date Created:</td>
+          <td><span>{{date_format($coverage->created_at, 'm/d/Y')}}</span></td>
+        </tr>
+      </table>
+      @else
+        <table class="table table-sm table-bordered">
+          <tr>
+            <td class="font-weight-bold">Commercial (Primary):</td>
+            <td>
+              <span><b>{{$coverage->payer->name ?? '-'}}</b></span> <br>
+              @if($coverage->manual_determination_category == 'COVERED')
+              <span><i class="fas fa-check-circle text-success"></i></span>
+              @elseif($coverage->manual_determination_category == 'NOT_COVERED')
+              <span><i class="fas fa-check-circle text-danger"></i> record found</span> <br>
+              <span><i class="fas fa-times text-danger"></i> not covered ({{$coverage->manual_determination_strategy}})</span>
+              @elseif($coverage->manual_determination_category == 'INVALID')
+              <span><i class="fas fa-times text-danger"></i> record not found ({{$coverage->manual_determination_strategy}})</span>
+              @else
+              <span><i class="fas fa-hourglass-half text-warning"></i> pending ({{$coverage->manual_determination_strategy}})</span>
+              @endif
+            </td>
+          </tr>
+        </table>
+      @endif
+      <div class="w-50">
+        {{$coverage->manual_determination_category_memo}}
+      </div>
+    @endif
+</div>

+ 669 - 0
resources/views/app/patient/goals-center.blade.php

@@ -0,0 +1,669 @@
+<?php
+
+use App\Models\Point;
+use App\Models\Client;
+use App\Models\Note;
+use App\Models\Segment;
+
+/** @var Client $patient */
+/** @var Note $note */
+
+$points = Point
+    ::where('client_id', $patient->id)
+    ->where('category', 'GOAL')
+    ->where('is_removed_due_to_entry_error', false)
+    ->orderBy('category')
+    ->orderBy('is_removed')
+    ->orderBy('removal_effective_date', 'DESC')
+    ->orderBy('created_at')
+    ->get();
+foreach ($points as $point) {
+    if ($point->data) {
+        $point->data = json_decode($point->data);
+    }
+}
+$goals = $points;
+
+?>
+
+<div class="mt-3 p-3 border-top min-height-500px" id="goals-center-{{$note->id}}">
+    <div>
+
+        <table class="table table-sm table-bordered table-striped mb-0 bg-white mb-2">
+            <thead>
+            <tr class="">
+                <th class="border-bottom-0 text-secondary">Goal</th>
+                <th class="border-bottom-0 text-secondary">Category</th>
+                <th class="border-bottom-0 text-secondary">Active?</th>
+                <th class="border-bottom-0 text-secondary">Edit</th>
+                <th class="border-bottom-0 text-secondary">Delete</th>
+                <th class="border-bottom-0 text-secondary">Started</th>
+                <th class="border-bottom-0 text-secondary">Ended</th>
+                <th class="border-bottom-0 text-secondary">Last Review</th>
+                <th class="border-bottom-0 text-secondary">Last Plan</th>
+            </tr>
+            </thead>
+            <?php foreach($goals as $goal): ?>
+            <?php $point = $goal; ?>
+            <tr class="{{$goal->is_removed ? 'on-hover-opaque' : ''}}">
+                <td>
+                    <div class="d-flex align-items-baseline">
+                        @if($goal->is_removed)
+                            <i class="text-warning-mellow fa fa-circle text-sm on-hover-opaque mr-2"></i>
+                        @else
+                            <i class="text-success fa fa-circle text-sm on-hover-opaque mr-2"></i>
+                        @endif
+                        <div>
+                            <b><?= !!@($goal->data->goal) ? @($goal->data->goal) : '-' ?></b>
+                            @if(!$goal->is_removed && $goal->added_in_note_id === $note->id)
+                                <div class="mt-1 text-sm text-secondary">Added during this visit
+                                    @if($goal->addition_reason_category === 'ON_INTAKE')
+                                        (existing)
+                                    @elseif($goal->addition_reason_category === 'DURING_VISIT')
+                                        (new)
+                                    @endif
+                                </div>
+                            @endif
+                            @if($goal->is_removed && ($goal->added_in_note_id !== $note->id && $goal->removed_in_note_id === $note->id))
+                                <div class="mt-1 text-sm text-secondary">Discontinued during this visit</div>
+                            @endif
+                        </div>
+                    </div>
+                </td>
+                <td>
+                    <?= !!@($goal->data->category) ? @($goal->data->category) : '-' ?>
+                </td>
+                <td>
+                    @if($goal->is_removed)
+                        NO
+                    @else
+                        <b>YES</b>
+                    @endif
+                </td>
+                <td>
+                    @if($goal->added_in_note_id === $note->id)
+                        <div moe wide>
+                            <a start show href="#" title="Edit">Edit</a>
+                            <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1 frm-edit-goal">
+                                <input type="hidden" name="uid" value="<?= $goal->uid ?>">
+                                <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                                <p class="mb-2"><b>Update Goal</b></p>
+
+                                <input type="hidden" name="data">
+
+                                <input type="hidden" name="additionReasonCategory" value="{{@$goal->addition_reason_category}}">
+                                <input type="hidden" name="isRemoved" value="{{@$goal->is_removed}}">
+                                <input type="hidden" name="removalReasonCategory" value="{{@$goal->removal_reason_category}}">
+                                <input type="hidden" name="isRemovedDueToEntryError" value="{{@$goal->is_removed_due_to_entry_error}}">
+
+                                <div class="mb-2">
+                                    <label class="text-sm text-secondary mb-1">Category</label>
+                                    <select type="text" data-name="category" class="form-control form-control-sm">
+                                        <option value="">-- select --</option>
+                                        <option {{ @($goal->data->category) === 'NUTRITION' ? 'selected' : '' }} value="NUTRITION">NUTRITION</option>
+                                        <option {{ @($goal->data->category) === 'ACTIVITY' ? 'selected' : '' }} value="ACTIVITY">ACTIVITY</option>
+                                        <option {{ @($goal->data->category) === 'SLEEP' ? 'selected' : '' }} value="SLEEP">SLEEP</option>
+                                        <option {{ @($goal->data->category) === 'SOCIAL CONNECTION' ? 'selected' : '' }} value="SOCIAL CONNECTION">SOCIAL CONNECTION</option>
+                                        <option {{ @($goal->data->category) === 'STRESS REDUCTION' ? 'selected' : '' }} value="STRESS REDUCTION">STRESS REDUCTION</option>
+                                        <option {{ @($goal->data->category) === 'RISKY SUBSTANCE AVOIDANCE' ? 'selected' : '' }} value="RISKY SUBSTANCE AVOIDANCE">RISKY SUBSTANCE AVOIDANCE</option>
+                                        <option {{ @($goal->data->category) === 'OTHER' ? 'selected' : '' }} value="OTHER">OTHER</option>
+                                    </select>
+                                </div>
+
+                                <div class="bg-light border mb-2 p-2 help-text d-none" data-category="NUTRITION">
+                                    <div class="mb-1">Specific - What specific food would you like to add/change?</div>
+                                    <div class="mb-1">Measurable - How much or how many will you add or change?</div>
+                                    <div class="mb-1">Attainable - Do you have what it takes to follow through?</div>
+                                    <div class="mb-1">Realistic - What can you do? (improvement over perfection)</div>
+                                    <div class="mb-2">Time-Connected - How often or for how long will you make this change?</div>
+                                    <div class="font-italic"><b>Example:</b> "I will add 1 cup of berries to breakfast and a small apple or orange as an afternoon snack at least five days this week."</div>
+                                </div>
+
+                                <div class="bg-light border mb-2 p-2 help-text d-none" data-category="ACTIVITY">
+                                    <div class="mb-1">Specific - What specific activity would you like to add/change?</div>
+                                    <div class="mb-1">Measurable - How much activity, how many sessions?</div>
+                                    <div class="mb-1">Attainable - Do you have what it takes to follow through?</div>
+                                    <div class="mb-1">Realistic - What can you actually do? (know your limits, start small, build)</div>
+                                    <div class="mb-2">Time-Connected - How frequent or how long will you do the activity?</div>
+                                    <div class="font-italic"><b>Example:</b> "I will walk with a friend or family member for at least 20 minutes after dinner, every weekday for the next two months."</div>
+                                </div>
+
+                                <div class="bg-light border mb-2 p-2 help-text d-none" data-category="SLEEP">
+                                    <div class="mb-1">Specific - What are you going to do to improve your sleep quality/quantity?</div>
+                                    <div class="mb-1">Measurable - How much time, how many sessions?</div>
+                                    <div class="mb-1">Attainable - Do you have what it takes to follow through?</div>
+                                    <div class="mb-1">Realistic - What can you actually do? (improvement over perfection)</div>
+                                    <div class="mb-2">Time-Connected - How frequent? How long will you commit?</div>
+                                    <div class="font-italic"><b>Example:</b> "I will begin a new bedtime routine of shutting off the television and instead, read a book for at least 30 minutes before bed, four nights this week."</div>
+                                </div>
+
+                                <div class="bg-light border mb-2 p-2 help-text d-none" data-category="SOCIAL CONNECTION">
+                                    <div class="mb-1">Specific - What are you going to do to improve feelings of connectedness?</div>
+                                    <div class="mb-1">Measurable - How much time, how many sessions?</div>
+                                    <div class="mb-1">Attainable - Do you have what it takes to follow through?</div>
+                                    <div class="mb-1">Realistic - What can you actually do? (improvement over perfection)</div>
+                                    <div class="mb-2">Time-Connected - How frequent? How long will you commit?</div>
+                                    <div class="font-italic"><b>Example:</b> "I will increase my feeling of social connectedness by joining a group fitness class that meets for an hour, three nights of the week."</div>
+                                </div>
+
+                                <div class="bg-light border mb-2 p-2 help-text d-none" data-category="STRESS REDUCTION">
+                                    <div class="mb-1">Specific - What are you going to do to manage your stress?</div>
+                                    <div class="mb-1">Measurable - How much time, how many sessions?</div>
+                                    <div class="mb-1">Attainable - Do you have what it takes to follow through?</div>
+                                    <div class="mb-1">Realistic - What can you actually do? (improvement over perfection)</div>
+                                    <div class="mb-2">Time-Connected - How frequent? How long will you commit?</div>
+                                    <div class="font-italic"><b>Example:</b> "I will write about what I am thankful for at least 10 minutes three times per week."</div>
+                                </div>
+
+                                <div class="bg-light border mb-2 p-2 help-text d-none" data-category="RISKY SUBSTANCE AVOIDANCE">
+                                    <div class="mb-1">Specific - What are you going to do to decrease your substance use?</div>
+                                    <div class="mb-1">Measurable - How much will you reduce it by?</div>
+                                    <div class="mb-1">Attainable - Do you have what it takes to follow through?</div>
+                                    <div class="mb-1">Realistic - What can you actually do? (improvement over perfection)</div>
+                                    <div class="mb-2">Time-Connected - How frequent? How long will you commit?</div>
+                                    <div class="font-italic"><b>Example:</b> "I will swap my morning cigarette with chewing gum at least 5 days this week for the next four weeks. I will ask my partner to help keep me on track and use the free texting service for more support."</div>
+                                </div>
+
+                                <div class="bg-light border mb-2 p-2 help-text d-none" data-category="OTHER">
+                                    <div class="">Ensure that the goal is Specific, Measurable, Attainable, Realistic and Time-Connected.</div>
+                                </div>
+
+                                <div class="mb-2">
+                                    <label class="text-sm text-secondary mb-1">Goal</label>
+                                    <input type="text" class="form-control form-control-sm min-width-unset"
+                                           data-name="goal"
+                                           value="{{@$goal->data->goal}}">
+                                </div>
+
+                                <div class="mb-2">
+                                    <label class="text-sm text-secondary mb-0">Historic / Preexisting / New</label>
+                                    <select class="form-control form-control-sm additionReasonCategory_ui" name="additionReasonCategory_ui" required>
+                                        <option value="">-- select --</option>
+                                        <option value="HISTORIC" {{$goal->addition_reason_category === 'ON_INTAKE' && $goal->is_removed ? 'selected' : ''}}>Historic</option>
+                                        <option value="PRE_EXISTING" {{$goal->addition_reason_category === 'ON_INTAKE' && !$goal->is_removed ? 'selected' : ''}}>Preexisting</option>
+                                        <option value="NEW" {{$goal->addition_reason_category === 'DURING_VISIT' ? 'selected' : ''}}>New (Prescribed during this visit)</option>
+                                    </select>
+                                </div>
+
+                                <div class="d-flex align-items-start">
+                                    <div class="w-50 mb-2">
+                                        <div class="start_date_ui" style="display: none">
+                                            <label class="text-sm text-secondary mb-0">Start Date</label>
+                                            <input type="date"
+                                                   data-name="start_date"
+                                                   class="form-control form-control-sm min-width-unset">
+                                        </div>
+                                    </div>
+                                    <div class="w-50 pl-2 mb-2">
+                                        <div class="prescriber_ui" style="display: none">
+                                            <label class="text-sm text-secondary mb-0">Prescribed By</label>
+                                            <input type="text"
+                                                   data-name="prescriber"
+                                                   class="form-control form-control-sm min-width-unset">
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="d-flex align-items-start">
+                                    <div class="w-50 mb-2">
+                                        <div class="removalEffectiveDate_ui" style="display: none">
+                                            <label class="text-sm text-secondary mb-0">End Date</label>
+                                            <input type="date"
+                                                   name="removalEffectiveDate"
+                                                   class="form-control form-control-sm min-width-unset">
+                                        </div>
+                                    </div>
+                                    <div class="w-50 pl-2 mb-2">
+                                        <div class="removalReasonMemo_ui" style="display: none">
+                                            <label class="text-sm text-secondary mb-0">Removal By/Memo</label>
+                                            <input type="text"
+                                                   name="removalReasonMemo"
+                                                   class="form-control form-control-sm min-width-unset">
+                                        </div>
+                                    </div>
+                                </div>
+
+                                <div class="mb-2">
+                                    <label class="text-sm text-secondary mb-1">Description</label>
+                                    <textarea rows="1" data-name="description" class="form-control form-control-sm">{{@$goal->data->description}}</textarea>
+                                </div>
+
+                                <div>
+                                    <button type="submit" class="btn-save-goal btn btn-sm btn-primary mr-2">Save</button>
+                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                </div>
+                            </form>
+                        </div>
+                    @endif
+                </td>
+                <td>
+                    @if($goal->added_in_note_id === $note->id)
+                        <div moe>
+                            <a start show href="#" title="Delete">Delete</a>
+                            <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1">
+                                <input type="hidden" name="uid" value="<?= $goal->uid ?>">
+                                <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                                <input type="hidden" name="isRemoved" value="1">
+                                <input type="hidden" name="isRemovedDueToEntryError" value="1">
+                                <input type="hidden" name="removalReasonMemo" value="Entry Error">
+                                <input type="hidden" name="removalEffectiveDate" value="<?= date('Y-m-d') ?>">
+                                <p class="mb-2"><b>Delete this goal?</b></p>
+                                <div>
+                                    <button submit class="btn btn-sm btn-danger mr-2">Delete</button>
+                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                </div>
+                            </form>
+                        </div>
+                    @else
+                        @if(!$goal->is_removed)
+                            <div moe>
+                                <a start show href="#" title="Discontinue">Delete</a>
+                                <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1">
+                                    <input type="hidden" name="uid" value="<?= $goal->uid ?>">
+                                    <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                                    <input type="hidden" name="isRemoved" value="1">
+                                    <input type="hidden" name="isRemovedDueToEntryError" value="0">
+                                    <p class="mb-2"><b>Delete this goal?</b></p>
+                                    <div class="mb-2">
+                                        <label class="text-sm text-secondary mb-1">Already stopped / Stop now</label>
+                                        <select class="form-control form-control-sm" name="removalReasonCategory" required>
+                                            <option value="">-- select --</option>
+                                            <option value="ON_INTAKE">Already stopped (before this visit)</option>
+                                            <option value="DURING_VISIT">Stop now</option>
+                                        </select>
+                                    </div>
+                                    <div class="mb-2">
+                                        <label class="text-sm text-secondary mb-1">Removal Reason</label>
+                                        <textarea name="removalReasonMemo" class="form-control form-control-sm" rows="2"></textarea>
+                                    </div>
+                                    <div class="mb-2">
+                                        <label class="text-sm text-secondary mb-1">Removal Effective Date</label>
+                                        <input type="date" name="removalEffectiveDate"
+                                               value="<?= date('Y-m-d') ?>"
+                                               max="<?= date('Y-m-d') ?>"
+                                               class="form-control form-control-sm">
+                                    </div>
+                                    <div>
+                                        <button submit class="btn btn-sm btn-danger mr-2">Delete</button>
+                                        <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                    </div>
+                                </form>
+                            </div>
+                        @endif
+                    @endif
+                </td>
+                <td>
+                    <?= !!@($goal->data->start_date) ? @($goal->data->start_date) : '-' ?>
+                    @if(!!@($goal->data->prescriber))
+                        <div class="mt-1 text-sm text-secondary">By: <?= !!@($goal->data->prescriber) ? @($goal->data->prescriber) : '-' ?></div>
+                    @endif
+                </td>
+                <td>
+                    <?= !!@($goal->removal_effective_date) ? @($goal->removal_effective_date) : '-' ?>
+                    @if(!!@($goal->removal_reason_memo))
+                        <div class="mt-1 text-sm text-secondary">By: <?= !!@($goal->removal_reason_memo) ? @($goal->removal_reason_memo) : '-' ?></div>
+                    @endif
+                </td>
+                <td>
+                    <div class="d-flex align-items-start">
+                        <div class="flex-grow-1">
+                            <?php
+                            $point = $goal;
+                            include resource_path('views/app/patient/segment-templates/_child_review/last-review.php');
+                            ?>
+                        </div>
+                        <a class="px-2 view-review-log"
+                           native target="_blank"
+                           open-in-stag-popup
+                           popup-style="stag-popup-md"
+                           title="Review log<?= !!@($goal->data->goal) ? ' for ' . @($goal->data->goal) : '' ?>"
+                           href="/point/review-log/<?= $goal->uid ?>?popupmode=1">
+                            <i class="fa fa-history"></i>
+                        </a>
+                    </div>
+                </td>
+                <td>
+                    <div class="d-flex align-items-start">
+                        <div class="flex-grow-1">
+                            <?php
+                            include resource_path('views/app/patient/segment-templates/_child_plan/last-plan.php');
+                            ?>
+                        </div>
+                        <a class="px-2 view-review-log"
+                           native target="_blank"
+                           open-in-stag-popup
+                           popup-style="stag-popup-md"
+                           title="Plan log<?= !!@($goal->data->goal) ? ' for ' . @($goal->data->goal) : '' ?>"
+                           href="/point/plan-log/<?= $goal->uid ?>?popupmode=1">
+                            <i class="fa fa-history"></i>
+                        </a>
+                    </div>
+                </td>
+            </tr>
+            <?php endforeach; ?>
+        </table>
+
+        <div class="d-flex align-items-center">
+            <div class="mt-1 w-100 border p-2 bg-aliceblue border-info rounded">
+                <form action="/api/visitPoint/addTopLevel" class="mcp-theme-1 w-100" id="frm-add-goal">
+                    <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                    <input type="hidden" name="category" value="GOAL">
+                    <input type="hidden" name="data">
+
+                    <input type="hidden" name="additionReasonCategory">
+                    <input type="hidden" name="isRemoved">
+                    <input type="hidden" name="removalReasonCategory">
+                    <input type="hidden" name="isRemovedDueToEntryError">
+
+                    <p class="mb-2"><b>Add Goal</b></p>
+
+                    <div class="row">
+                        <div class="col-7">
+                            <div class="row mb-2">
+                                <div class="col-12">
+
+                                    <div class="mb-2">
+                                        <label class="text-sm text-secondary mb-1">Category</label>
+                                        <select type="text" data-name="category" class="form-control form-control-sm">
+                                            <option value="">-- select --</option>
+                                            <option value="NUTRITION">NUTRITION</option>
+                                            <option value="ACTIVITY">ACTIVITY</option>
+                                            <option value="SLEEP">SLEEP</option>
+                                            <option value="SOCIAL CONNECTION">SOCIAL CONNECTION</option>
+                                            <option value="STRESS REDUCTION">STRESS REDUCTION</option>
+                                            <option value="RISKY SUBSTANCE AVOIDANCE">RISKY SUBSTANCE AVOIDANCE</option>
+                                            <option value="OTHER">OTHER</option>
+                                        </select>
+                                    </div>
+
+                                    <div class="bg-light border mb-2 p-2 help-text d-none" data-category="NUTRITION">
+                                        <div class="mb-1">Specific - What specific food would you like to add/change?</div>
+                                        <div class="mb-1">Measurable - How much or how many will you add or change?</div>
+                                        <div class="mb-1">Attainable - Do you have what it takes to follow through?</div>
+                                        <div class="mb-1">Realistic - What can you do? (improvement over perfection)</div>
+                                        <div class="mb-2">Time-Connected - How often or for how long will you make this change?</div>
+                                        <div class="font-italic"><b>Example:</b> "I will add 1 cup of berries to breakfast and a small apple or orange as an afternoon snack at least five days this week."</div>
+                                    </div>
+
+                                    <div class="bg-light border mb-2 p-2 help-text d-none" data-category="ACTIVITY">
+                                        <div class="mb-1">Specific - What specific activity would you like to add/change?</div>
+                                        <div class="mb-1">Measurable - How much activity, how many sessions?</div>
+                                        <div class="mb-1">Attainable - Do you have what it takes to follow through?</div>
+                                        <div class="mb-1">Realistic - What can you actually do? (know your limits, start small, build)</div>
+                                        <div class="mb-2">Time-Connected - How frequent or how long will you do the activity?</div>
+                                        <div class="font-italic"><b>Example:</b> "I will walk with a friend or family member for at least 20 minutes after dinner, every weekday for the next two months."</div>
+                                    </div>
+
+                                    <div class="bg-light border mb-2 p-2 help-text d-none" data-category="SLEEP">
+                                        <div class="mb-1">Specific - What are you going to do to improve your sleep quality/quantity?</div>
+                                        <div class="mb-1">Measurable - How much time, how many sessions?</div>
+                                        <div class="mb-1">Attainable - Do you have what it takes to follow through?</div>
+                                        <div class="mb-1">Realistic - What can you actually do? (improvement over perfection)</div>
+                                        <div class="mb-2">Time-Connected - How frequent? How long will you commit?</div>
+                                        <div class="font-italic"><b>Example:</b> "I will begin a new bedtime routine of shutting off the television and instead, read a book for at least 30 minutes before bed, four nights this week."</div>
+                                    </div>
+
+                                    <div class="bg-light border mb-2 p-2 help-text d-none" data-category="SOCIAL CONNECTION">
+                                        <div class="mb-1">Specific - What are you going to do to improve feelings of connectedness?</div>
+                                        <div class="mb-1">Measurable - How much time, how many sessions?</div>
+                                        <div class="mb-1">Attainable - Do you have what it takes to follow through?</div>
+                                        <div class="mb-1">Realistic - What can you actually do? (improvement over perfection)</div>
+                                        <div class="mb-2">Time-Connected - How frequent? How long will you commit?</div>
+                                        <div class="font-italic"><b>Example:</b> "I will increase my feeling of social connectedness by joining a group fitness class that meets for an hour, three nights of the week."</div>
+                                    </div>
+
+                                    <div class="bg-light border mb-2 p-2 help-text d-none" data-category="STRESS REDUCTION">
+                                        <div class="mb-1">Specific - What are you going to do to manage your stress?</div>
+                                        <div class="mb-1">Measurable - How much time, how many sessions?</div>
+                                        <div class="mb-1">Attainable - Do you have what it takes to follow through?</div>
+                                        <div class="mb-1">Realistic - What can you actually do? (improvement over perfection)</div>
+                                        <div class="mb-2">Time-Connected - How frequent? How long will you commit?</div>
+                                        <div class="font-italic"><b>Example:</b> "I will write about what I am thankful for at least 10 minutes three times per week."</div>
+                                    </div>
+
+                                    <div class="bg-light border mb-2 p-2 help-text d-none" data-category="RISKY SUBSTANCE AVOIDANCE">
+                                        <div class="mb-1">Specific - What are you going to do to decrease your substance use?</div>
+                                        <div class="mb-1">Measurable - How much will you reduce it by?</div>
+                                        <div class="mb-1">Attainable - Do you have what it takes to follow through?</div>
+                                        <div class="mb-1">Realistic - What can you actually do? (improvement over perfection)</div>
+                                        <div class="mb-2">Time-Connected - How frequent? How long will you commit?</div>
+                                        <div class="font-italic"><b>Example:</b> "I will swap my morning cigarette with chewing gum at least 5 days this week for the next four weeks. I will ask my partner to help keep me on track and use the free texting service for more support."</div>
+                                    </div>
+
+                                    <div class="bg-light border mb-2 p-2 help-text d-none" data-category="OTHER">
+                                        <div class="">Ensure that the goal is Specific, Measurable, Attainable, Realistic and Time-Connected.</div>
+                                    </div>
+
+                                    <label class="text-sm text-secondary mb-0">Goal</label>
+                                    <input type="text"
+                                           data-name="goal"
+                                           class="form-control form-control-sm"
+                                           required>
+                                </div>
+                            </div>
+                            <div class="row mb-2">
+                                <div class="col-12">
+                                    <label class="text-sm text-secondary mb-0">Historic / Preexisting / New</label>
+                                    <select class="form-control form-control-sm additionReasonCategory_ui" name="additionReasonCategory_ui" required>
+                                        <option value="">-- select --</option>
+                                        <option value="HISTORIC">Historic</option>
+                                        <option value="PRE_EXISTING">Preexisting</option>
+                                        <option value="NEW">New (Prescribed during this visit)</option>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="d-flex align-items-start mb-2">
+                                <div class="w-25">
+                                    <div class="start_date_ui" style="display: none">
+                                        <label class="text-sm text-secondary mb-0">Start Date</label>
+                                        <input type="date"
+                                               data-name="start_date"
+                                               class="form-control form-control-sm min-width-unset">
+                                    </div>
+                                </div>
+                                <div class="w-25 pl-2">
+                                    <div class="prescriber_ui" style="display: none">
+                                        <label class="text-sm text-secondary mb-0">Prescribed By</label>
+                                        <input type="text"
+                                               data-name="prescriber"
+                                               class="form-control form-control-sm min-width-unset">
+                                    </div>
+                                </div>
+                                <div class="w-25 pl-2">
+                                    <div class="removalEffectiveDate_ui" style="display: none">
+                                        <label class="text-sm text-secondary mb-0">End Date</label>
+                                        <input type="date"
+                                               name="removalEffectiveDate"
+                                               class="form-control form-control-sm min-width-unset">
+                                    </div>
+                                </div>
+                                <div class="w-25 pl-2">
+                                    <div class="removalReasonMemo_ui" style="display: none">
+                                        <label class="text-sm text-secondary mb-0">Removal By/Memo</label>
+                                        <input type="text"
+                                               name="removalReasonMemo"
+                                               class="form-control form-control-sm min-width-unset">
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="col-5 border-left">
+
+                        </div>
+                    </div>
+
+                    <div class="d-flex align-items-center">
+                        <button type="submit" class="btn btn-sm btn-primary mr-2 my-1">Save Goal</button>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script>
+    (function() {
+        function init() {
+            let parentSegment = $('#goals-center-{{$note->id}}');
+
+            parentSegment.find('select[data-name="category"]')
+                .off('change')
+                .on('change', function() {
+                    $(this).closest('form').find('.help-text').addClass('d-none');
+                    $(this).closest('form').find('.help-text[data-category="' + this.value + '"]').removeClass('d-none');
+                })
+                .trigger('change');
+
+            parentSegment.find('.additionReasonCategory_ui')
+                .off('change')
+                .on('change', function() {
+
+                    let form = $(this).closest('form');
+
+                    // additionReasonCategory
+                    // isRemoved
+                    // removalReasonCategory
+                    form.find('[name="isRemovedDueToEntryError"]').val('0');
+
+                    form.find('.start_date_ui').hide();
+                    form.find('.prescriber_ui').hide();
+                    form.find('.removalEffectiveDate_ui').hide();
+                    form.find('.removalReasonMemo_ui').hide();
+
+                    if(this.value === 'HISTORIC') {
+                        form.find('[name="additionReasonCategory"]').val('ON_INTAKE');
+                        form.find('[name="isRemoved"]').val('1');
+                        form.find('.start_date_ui').show();
+                        form.find('.prescriber_ui').show();
+                        form.find('.removalEffectiveDate_ui').show();
+                        form.find('.removalReasonMemo_ui').show();
+                    }
+                    else if(this.value === 'PRE_EXISTING') {
+                        form.find('[name="additionReasonCategory"]').val('ON_INTAKE');
+                        form.find('[name="isRemoved"]').val('0');
+                        form.find('.start_date_ui').show();
+                        form.find('.prescriber_ui').show();
+                    }
+                    else if(this.value === 'NEW') {
+                        form.find('[name="additionReasonCategory"]').val('DURING_VISIT');
+                        form.find('[name="isRemoved"]').val('0');
+                        form.find('.start_date_ui').show().find('input').val('{{date('Y-m-d')}}');
+                        form.find('.prescriber_ui').show().find('input').val('{{$note->hcpPro->displayName()}}');
+                    }
+
+                });
+
+            parentSegment.find('#frm-add-goal')
+                .off('submit')
+                .on('submit', function () {
+
+                    let form = $(this);
+
+                    if (!form[0].checkValidity()) {
+                        form[0].reportValidity();
+                        return false;
+                    }
+
+                    // add [data-name] values to payload
+                    let dataField = form.find('[name="data"]').first();
+                    let parsed = null;
+                    if(dataField.val()) {
+                        parsed = JSON.parse(dataField.val());
+                    }
+                    form.find('[data-name]').each(function() {
+                        if(!parsed) parsed = {};
+
+                        let keys = $(this).attr('data-name').split('->');
+                        let currentNode = parsed;
+                        for (let i = 0; i < keys.length; i++) {
+                            if(i !== keys.length - 1) {
+                                if(typeof currentNode[keys[i]] === 'undefined') {
+                                    currentNode[keys[i]] = {};
+                                }
+                                currentNode = currentNode[keys[i]];
+                            }
+                            else {
+                                if($(this).is(':checkbox')) {
+                                    currentNode[keys[i]] = $(this).prop('checked');
+                                }
+                                else {
+                                    currentNode[keys[i]] = $(this).val();
+                                }
+                            }
+                        }
+
+                    });
+                    if(parsed) {
+                        dataField.val(JSON.stringify(parsed));
+                    }
+
+                    $.post(form.attr('action'), form.serialize(), _data => {
+                        if(!hasResponseError(_data)) {
+                            hideMask();
+                            refreshDynamicStagPopup();
+                            $('.visit-segment[data-segment-template-name="intake_goals"]').find('.refresh-segment').trigger('click');
+                        }
+                    }, 'json');
+                    return false;
+                });
+
+            parentSegment.find('.frm-edit-goal')
+                .off('submit')
+                .on('submit', function () {
+
+                    let form = $(this);
+
+                    if (!form[0].checkValidity()) {
+                        form[0].reportValidity();
+                        return false;
+                    }
+
+                    // add [data-name] values to payload
+                    let dataField = form.find('[name="data"]').first();
+                    let parsed = null;
+                    if(dataField.val()) {
+                        parsed = JSON.parse(dataField.val());
+                    }
+                    form.find('[data-name]').each(function() {
+                        if(!parsed) parsed = {};
+
+                        let keys = $(this).attr('data-name').split('->');
+                        let currentNode = parsed;
+                        for (let i = 0; i < keys.length; i++) {
+                            if(i !== keys.length - 1) {
+                                if(typeof currentNode[keys[i]] === 'undefined') {
+                                    currentNode[keys[i]] = {};
+                                }
+                                currentNode = currentNode[keys[i]];
+                            }
+                            else {
+                                if($(this).is(':checkbox')) {
+                                    currentNode[keys[i]] = $(this).prop('checked');
+                                }
+                                else {
+                                    currentNode[keys[i]] = $(this).val();
+                                }
+                            }
+                        }
+
+                    });
+                    if(parsed) {
+                        dataField.val(JSON.stringify(parsed));
+                    }
+
+                    $.post(form.attr('url'), form.serialize(), _data => {
+                        if(!hasResponseError(_data)) {
+                            hideMask();
+                            refreshDynamicStagPopup();
+                            $('.visit-segment[data-segment-template-name="intake_goals"]').find('.refresh-segment').trigger('click');
+                        }
+                    }, 'json');
+                    return false;
+                });
+
+            initStagSuggest();
+
+            $('.additionReasonCategory_ui').trigger('change');
+        }
+        addMCInitializer('goals-center-{{$note->id}}', init, '#goals-center-{{$note->id}}')
+    }).call(window);
+</script>

+ 218 - 57
resources/views/app/patient/medications-center.blade.php

@@ -50,7 +50,7 @@ $medications = $points;
                         @if($medication->is_removed)
                             <i class="text-warning-mellow fa fa-circle text-sm on-hover-opaque mr-2"></i>
                         @else
-                            <i class="text-success fa fa-circle text-sm on-hover-opaque mr-2"></i>
+                            <i class="text-success fa fa-circle text-sm on-hover-opaque mr-2 active-record"></i>
                         @endif
                         <div>
                             <b><?= !!@($medication->data->name) ? @($medication->data->name) : '-' ?></b>
@@ -95,6 +95,11 @@ $medications = $points;
                                 <input type="hidden" data-name="routedDosageFormMedId" value="{{@$medication->data->routedDosageFormMedId}}">
                                 <input type="hidden" data-name="gcnSeqno" value="{{@$medication->data->gcnSeqno}}">
 
+                                <input type="hidden" name="additionReasonCategory" value="{{@$medication->addition_reason_category}}">
+                                <input type="hidden" name="isRemoved" value="{{@$medication->is_removed}}">
+                                <input type="hidden" name="removalReasonCategory" value="{{@$medication->removal_reason_category}}">
+                                <input type="hidden" name="isRemovedDueToEntryError" value="{{@$medication->is_removed_due_to_entry_error}}">
+
                                 <div class="mb-2">
                                     <label class="text-sm text-secondary mb-1">Drug</label>
                                     <input type="text" class="form-control form-control-sm min-width-unset prescription-medication"
@@ -117,14 +122,52 @@ $medications = $points;
                                 </div>
 
                                 <div class="mb-2">
-                                    <label class="text-sm text-secondary mb-1">Existing / New</label>
-                                    <select class="form-control form-control-sm" name="additionReasonCategory" required>
+                                    <label class="text-sm text-secondary mb-0">Historic / Preexisting / New</label>
+                                    <select class="form-control form-control-sm additionReasonCategory_ui" name="additionReasonCategory_ui" required>
                                         <option value="">-- select --</option>
-                                        <option value="ON_INTAKE" {{$medication->addition_reason_category === 'ON_INTAKE' ? 'selected' : ''}}>Existing (Patient was already on this)</option>
-                                        <option value="DURING_VISIT" {{$medication->addition_reason_category === 'DURING_VISIT' ? 'selected' : ''}}>New (Prescribed during this visit)</option>
+                                        <option value="HISTORIC" {{$medication->addition_reason_category === 'ON_INTAKE' && $medication->is_removed ? 'selected' : ''}}>Historic</option>
+                                        <option value="PRE_EXISTING" {{$medication->addition_reason_category === 'ON_INTAKE' && !$medication->is_removed ? 'selected' : ''}}>Preexisting</option>
+                                        <option value="NEW" {{$medication->addition_reason_category === 'DURING_VISIT' ? 'selected' : ''}}>New (Prescribed during this visit)</option>
                                     </select>
                                 </div>
 
+                                <div class="d-flex align-items-start">
+                                    <div class="w-50 mb-2">
+                                        <div class="start_date_ui" style="display: none">
+                                            <label class="text-sm text-secondary mb-0">Start Date</label>
+                                            <input type="date"
+                                                   data-name="start_date"
+                                                   class="form-control form-control-sm min-width-unset">
+                                        </div>
+                                    </div>
+                                    <div class="w-50 pl-2 mb-2">
+                                        <div class="prescriber_ui" style="display: none">
+                                            <label class="text-sm text-secondary mb-0">Prescribed By</label>
+                                            <input type="text"
+                                                   data-name="prescriber"
+                                                   class="form-control form-control-sm min-width-unset">
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="d-flex align-items-start">
+                                    <div class="w-50 mb-2">
+                                        <div class="removalEffectiveDate_ui" style="display: none">
+                                            <label class="text-sm text-secondary mb-0">End Date</label>
+                                            <input type="date"
+                                                   name="removalEffectiveDate"
+                                                   class="form-control form-control-sm min-width-unset">
+                                        </div>
+                                    </div>
+                                    <div class="w-50 pl-2 mb-2">
+                                        <div class="removalReasonMemo_ui" style="display: none">
+                                            <label class="text-sm text-secondary mb-0">Removal By/Memo</label>
+                                            <input type="text"
+                                                   name="removalReasonMemo"
+                                                   class="form-control form-control-sm min-width-unset">
+                                        </div>
+                                    </div>
+                                </div>
+
                                 <div class="mb-2">
                                     <label class="text-sm text-secondary mb-1">Description</label>
                                     <textarea rows="1" data-name="description" class="form-control form-control-sm">{{@$medication->data->description}}</textarea>
@@ -139,25 +182,25 @@ $medications = $points;
                     @endif
                 </td>
                 <td>
-                    @if(!$medication->is_removed)
-                        @if($medication->added_in_note_id === $note->id)
-                            <div moe>
-                                <a start show href="#" title="Delete">Delete</a>
-                                <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1">
-                                    <input type="hidden" name="uid" value="<?= $medication->uid ?>">
-                                    <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
-                                    <input type="hidden" name="isRemoved" value="1">
-                                    <input type="hidden" name="isRemovedDueToEntryError" value="1">
-                                    <input type="hidden" name="removalReasonMemo" value="Entry Error">
-                                    <input type="hidden" name="removalEffectiveDate" value="<?= date('Y-m-d') ?>">
-                                    <p class="mb-2"><b>Delete this medication?</b></p>
-                                    <div>
-                                        <button submit class="btn btn-sm btn-danger mr-2">Delete</button>
-                                        <button cancel class="btn btn-sm btn-default border">Cancel</button>
-                                    </div>
-                                </form>
-                            </div>
-                        @else
+                    @if($medication->added_in_note_id === $note->id)
+                        <div moe>
+                            <a start show href="#" title="Delete">Delete</a>
+                            <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1">
+                                <input type="hidden" name="uid" value="<?= $medication->uid ?>">
+                                <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                                <input type="hidden" name="isRemoved" value="1">
+                                <input type="hidden" name="isRemovedDueToEntryError" value="1">
+                                <input type="hidden" name="removalReasonMemo" value="Entry Error">
+                                <input type="hidden" name="removalEffectiveDate" value="<?= date('Y-m-d') ?>">
+                                <p class="mb-2"><b>Delete this medication?</b></p>
+                                <div>
+                                    <button submit class="btn btn-sm btn-danger mr-2">Delete</button>
+                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                </div>
+                            </form>
+                        </div>
+                    @else
+                        @if(!$medication->is_removed)
                             <div moe>
                                 <a start show href="#" title="Discontinue">Discontinue</a>
                                 <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1">
@@ -258,47 +301,89 @@ $medications = $points;
                     <input type="hidden" data-name="routedDosageFormMedId">
                     <input type="hidden" data-name="gcnSeqno">
 
-                    <p class="mb-2"><b>Add Medication</b></p>
+                    <input type="hidden" name="additionReasonCategory">
+                    <input type="hidden" name="isRemoved">
+                    <input type="hidden" name="removalReasonCategory">
+                    <input type="hidden" name="isRemovedDueToEntryError">
 
-                    <div class="d-flex align-items-start">
+                    <p class="mb-2"><b>Add Medication</b></p>
 
-                        <div class="mb-2 w-25">
-                            <label class="text-sm text-secondary mb-1">Name</label>
-                            <input type="text"
-                                   data-name="name"
-                                   class="form-control form-control-sm"
-                                   stag-suggest
-                                   stag-suggest-bottom-left
-                                   stag-suggest-ep="/fdb-med-suggest-v2/json"
-                                   required>
-                        </div>
-                        <div class="mb-2 ml-2">
-                            <label class="text-sm text-secondary mb-1">Frequency</label>
-                            <input type="text" class="form-control form-control-sm" data-name="frequency"
-                                   data-option-list="frequency-options" autocomplete="off">
-                            <div id="frequency-options" class="data-option-list">
-                                <div>Once a day</div>
-                                <div>Twice a day</div>
+                    <div class="row">
+                        <div class="col-7">
+                            <div class="row mb-2">
+                                <div class="col-8 pr-0">
+                                    <label class="text-sm text-secondary mb-0">Name</label>
+                                    <input type="text"
+                                           data-name="name"
+                                           class="form-control form-control-sm"
+                                           stag-suggest
+                                           stag-suggest-bottom-left
+                                           stag-suggest-ep="/fdb-med-suggest-v2/json"
+                                           required>
+                                </div>
+                                <div class="col-4">
+                                    <label class="text-sm text-secondary mb-0">Frequency</label>
+                                    <input type="text" class="form-control form-control-sm" data-name="frequency"
+                                           data-option-list="frequency-options" autocomplete="off">
+                                    <div id="frequency-options" class="data-option-list">
+                                        <div>Once a day</div>
+                                        <div>Twice a day</div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="row mb-2">
+                                <div class="col-12">
+                                    <label class="text-sm text-secondary mb-0">Historic / Preexisting / New</label>
+                                    <select class="form-control form-control-sm additionReasonCategory_ui" name="additionReasonCategory_ui" required>
+                                        <option value="">-- select --</option>
+                                        <option value="HISTORIC">Historic</option>
+                                        <option value="PRE_EXISTING">Preexisting</option>
+                                        <option value="NEW">New (Prescribed during this visit)</option>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="d-flex align-items-start mb-2">
+                                <div class="w-25">
+                                    <div class="start_date_ui" style="display: none">
+                                        <label class="text-sm text-secondary mb-0">Start Date</label>
+                                        <input type="date"
+                                               data-name="start_date"
+                                               class="form-control form-control-sm min-width-unset">
+                                    </div>
+                                </div>
+                                <div class="w-25 pl-2">
+                                    <div class="prescriber_ui" style="display: none">
+                                        <label class="text-sm text-secondary mb-0">Prescribed By</label>
+                                        <input type="text"
+                                               data-name="prescriber"
+                                               class="form-control form-control-sm min-width-unset">
+                                    </div>
+                                </div>
+                                <div class="w-25 pl-2">
+                                    <div class="removalEffectiveDate_ui" style="display: none">
+                                        <label class="text-sm text-secondary mb-0">End Date</label>
+                                        <input type="date"
+                                               name="removalEffectiveDate"
+                                               class="form-control form-control-sm min-width-unset">
+                                    </div>
+                                </div>
+                                <div class="w-25 pl-2">
+                                    <div class="removalReasonMemo_ui" style="display: none">
+                                        <label class="text-sm text-secondary mb-0">Removal By/Memo</label>
+                                        <input type="text"
+                                               name="removalReasonMemo"
+                                               class="form-control form-control-sm min-width-unset">
+                                    </div>
+                                </div>
                             </div>
                         </div>
-                        <div class="mb-2 ml-2">
-                            <label class="text-sm text-secondary mb-1">Existing / New</label>
-                            <select class="form-control form-control-sm" name="additionReasonCategory" required>
-                                <option value="">-- select --</option>
-                                <option value="ON_INTAKE">Existing (Patient was already on this)</option>
-                                <option value="DURING_VISIT">New (Prescribed during this visit)</option>
-                            </select>
-                        </div>
-                        <div class="mb-2 ml-2 flex-grow-1">
-                            <label class="text-sm text-secondary mb-1">Description</label>
-                            <textarea rows="1" data-name="description" class="form-control form-control-sm"></textarea>
-                        </div>
+                        <div class="col-5 border-left">
 
+                        </div>
                     </div>
 
                     <div class="d-flex align-items-center">
-                        <button type="submit" class="btn btn-sm btn-primary mr-2">Submit</button>
-                        <button type="button" class="btn btn-sm btn-default bg-white border mr-2" onclick="closeStagPopup()">Close</button>
+                        <button type="submit" class="btn btn-sm btn-primary mr-2 my-1">Save Medication</button>
                     </div>
                 </form>
             </div>
@@ -320,6 +405,45 @@ $medications = $points;
                     return false;
                 });
 
+            parentSegment.find('.additionReasonCategory_ui')
+                .off('change')
+                .on('change', function() {
+
+                    let form = $(this).closest('form');
+
+                    // additionReasonCategory
+                    // isRemoved
+                    // removalReasonCategory
+                    form.find('[name="isRemovedDueToEntryError"]').val('0');
+
+                    form.find('.start_date_ui').hide();
+                    form.find('.prescriber_ui').hide();
+                    form.find('.removalEffectiveDate_ui').hide();
+                    form.find('.removalReasonMemo_ui').hide();
+
+                    if(this.value === 'HISTORIC') {
+                        form.find('[name="additionReasonCategory"]').val('ON_INTAKE');
+                        form.find('[name="isRemoved"]').val('1');
+                        form.find('.start_date_ui').show();
+                        form.find('.prescriber_ui').show();
+                        form.find('.removalEffectiveDate_ui').show();
+                        form.find('.removalReasonMemo_ui').show();
+                    }
+                    else if(this.value === 'PRE_EXISTING') {
+                        form.find('[name="additionReasonCategory"]').val('ON_INTAKE');
+                        form.find('[name="isRemoved"]').val('0');
+                        form.find('.start_date_ui').show();
+                        form.find('.prescriber_ui').show();
+                    }
+                    else if(this.value === 'NEW') {
+                        form.find('[name="additionReasonCategory"]').val('DURING_VISIT');
+                        form.find('[name="isRemoved"]').val('0');
+                        form.find('.start_date_ui').show().find('input').val('{{date('Y-m-d')}}');
+                        form.find('.prescriber_ui').show().find('input').val('{{$note->hcpPro->displayName()}}');
+                    }
+
+                });
+
             parentSegment.find('#frm-add-medication')
                 .off('submit')
                 .on('submit', function () {
@@ -429,6 +553,43 @@ $medications = $points;
                 });
 
             initStagSuggest();
+
+            $('.additionReasonCategory_ui').trigger('change');
+
+            // custom buttons on title bar
+            $('.button-container').remove();
+            let buttonContainer = $('<div/>').addClass('button-container ml-auto mr-3');
+            let titleElem = $('#medications-center-{{$note->id}}').closest('.stag-popup').find('.stag-popup-title>span');
+            titleElem.next().removeClass('ml-auto');
+            titleElem.parent().addClass('align-items-baseline');
+
+            // add button for "reconcile active medications"
+            if($('.active-record').length) {
+                $('.btn-reconcile-active').remove();
+                $('<a ' +
+                    'href="/medications-reconcile/{{$patient->uid}}/{{$note->uid}}" ' +
+                    'title="Reconcile Active Medications" ' +
+                    'update-parent ' +
+                    'open-in-stag-popup ' +
+                    'mc-initer="medications-reconcile-{{$note->id}}" ' +
+                    'popup-style="stag-popup-md" ' +
+                    'class="btn-reconcile-active btn btn-sm mr-2 btn-info text-white font-weight-bold">Reconcile Active Medications</a>')
+                    .appendTo(buttonContainer);
+            }
+
+            // add button for "eRx"
+            $('.btn-manage-erx').remove();
+            $('<a ' +
+                'href="/patients/view/{{$patient->uid}}/prescriptions-popup?noteUid={{$note->uid}}&erx_category=DRUG" ' +
+                'title="Manage eRx" ' +
+                'update-parent ' +
+                'open-in-stag-popup ' +
+                'mc-initer="prescriptions-popup-{{$patient->id}}" ' +
+                'popup-style="medium" ' +
+                'class="btn-manage-erx btn btn-sm mr-2 btn-info text-white font-weight-bold">Manage eRx</a>')
+                .appendTo(buttonContainer);
+
+            buttonContainer.insertAfter(titleElem);
         }
         addMCInitializer('medications-center-{{$note->id}}', init, '#medications-center-{{$note->id}}')
     }).call(window);

+ 89 - 0
resources/views/app/patient/medications-reconcile.blade.php

@@ -0,0 +1,89 @@
+<?php
+
+use App\Models\Point;
+use App\Models\Client;
+use App\Models\Note;
+
+/** @var Client $patient */
+/** @var Note $note */
+
+$points = Point
+    ::where('client_id', $patient->id)
+    ->where('category', 'MEDICATION')
+    ->where('is_removed_due_to_entry_error', false)
+    ->where('is_removed', false)
+    ->orderBy('created_at')
+    ->get();
+foreach ($points as $point) {
+    if ($point->data) {
+        $point->data = json_decode($point->data);
+    }
+}
+$medications = $points;
+?>
+
+<div class="mt-3 p-3 border-top" id="medications-reconcile-{{$note->id}}">
+    <div class="mb-2 font-weight-bold text-secondary">The following medications will be marked as reconciled</div>
+    <table class="table table-sm table-striped table-bordered">
+        <thead>
+        <tr>
+            <th class="border-bottom-0">Medication</th>
+            <th class="border-bottom-0">Review</th>
+        </tr>
+        </thead>
+        @foreach($medications as $medication)
+        <tr>
+            <td class="w-50">{{$medication->data->name}}</td>
+            <td class="p-0">
+                <input type="text" class="form-control form-control-sm border-0 rounded-0 shadow-none" data-point-uid="{{$medication->uid}}" value="Reconciled">
+            </td>
+        </tr>
+        @endforeach
+    </table>
+    <div class="d-flex align-items-center justify-content-center">
+        <button class="btn btn-sm btn-primary mr-2 btn-save-reviews">Save</button>
+        <button class="btn btn-sm btn-default border mr-2" onclick="closeStagPopup()">Cancel</button>
+    </div>
+</div>
+
+<script>
+    (function() {
+        function init() {
+            $('#medications-reconcile-{{$note->id}} .btn-save-reviews')
+                .off('click')
+                .on('click', function() {
+                    showMask();
+                    let payload = {
+                        noteUid: '{{$note->uid}}',
+                        reviews: []
+                    }
+                    $('#medications-reconcile-{{$note->id}} [data-point-uid]').each(function() {
+                         payload.reviews.push({
+                             parentPointUid: $(this).attr('data-point-uid'),
+                             data: JSON.stringify({
+                                 isReconciled: true,
+                                 value: $(this).val()
+                             })
+                         });
+                    });
+
+                    $.ajax({
+                        url: '/api/visitPoint/upsertChildReviewMulti',
+                        type:"POST",
+                        data: JSON.stringify(payload),
+                        contentType:"application/json; charset=utf-8",
+                        dataType:"json",
+                        success: function(_data) {
+                            if(!hasResponseError(_data)) {
+                                closeStagPopup();
+                            }
+                        }
+                    }).then(() => {
+                        hideMask();
+                    });
+
+                });
+        }
+        addMCInitializer('medications-reconcile-{{$note->id}}', init, '#medications-reconcile-{{$note->id}}')
+    }).call(window);
+</script>

+ 43 - 33
resources/views/app/patient/note/dashboard.blade.php

@@ -23,7 +23,7 @@
     $isVisitTemplateBased = !!$note->visitTemplate;
     ?>
 
-    <div id="note-single-header" class="pb-3 d-flex align-items-start screen-only">
+    <div id="note-single-header" class="pb-3 d-flex align-items-start screen-only zero-height">
         <h6 class="my-0 text-secondary d-flex align-items-center w-100">
             <a href="/patients/view/{{ $patient->uid }}/notes" class="small text-decoration-none mr-3">
                 <i class="fa fa-chevron-left"></i>
@@ -490,7 +490,7 @@
                     ?>
 
                     <hr>
-                        <div class="note-tree-node"><a native="" target="_top" data-non-segment-target="Prescriptions" href="#">Prescriptions</a></div>
+                        <div class="note-tree-node"><a native="" target="_top" data-non-segment-target="Prescriptions" href="#">ERx &amp; Orders</a></div>
                         <div class="note-tree-node"><a native="" target="_top" data-non-segment-target="CM Setup" href="#">CM Setup</a></div>
                         <div class="note-tree-node"><a native="" target="_top" data-non-segment-target="RM Setup" href="#">RM Setup</a></div>
                         <div class="note-tree-node"><a native="" target="_top" data-non-segment-target="Supply Orders Summary" href="#">Supply Orders Summary</a></div>
@@ -601,35 +601,7 @@
                             @endif
                         </div>
                     </div>
-                    @if($pro->pro_type === 'ADMIN')
-                        <div class="d-flex align-items-center">
-                            <span class="min-width-140px">CM Setup Claim:</span>
-                            <div class="d-inline-flex align-items-center flex-grow-1">
-                                @if(!!$note->cmSetupClaim)
-                                    <span class="text-nowrap text-success">
-                                        <i class="fa fa-check"></i>
-                                        <b>Created</b>
-                                    </span>
-                                @else
-                                    <span class="text-nowrap text-warning-mellow">
-                                        <i class="fa fa-times"></i>
-                                        <b>Not Created</b>
-                                    </span>
-                                    <div moe class="ml-3">
-                                        <a href="" show start>Generate</a>
-                                        <form url="/api/note/generateCmSetupClaim">
-                                            <input type="hidden" name="uid" value="{{$note->uid}}">
-                                            <p>Generate CM setup claim?</p>
-                                            <div class="mb-0">
-                                                <button class="btn btn-primary btn-sm" submit>Submit</button>
-                                                <button class="btn btn-default border btn-sm" cancel>Cancel</button>
-                                            </div>
-                                        </form>
-                                    </div>
-                                @endif
-                            </div>
-                        </div>
-                    @endif
+                    
                 </div>
 
                 <div class="p-3 border-bottom screen-only" data-non-segment-section="RM Setup">
@@ -2211,7 +2183,7 @@
 
                     @if($isVisitTemplateBased)
                     <div class="position-sticky note-bottom-toolbar border-top border-info p-0 bg-aliceblue d-flex align-items-stretch">
-                        <div class="nbt-container p-2 border-right border-info">
+                        <div class="nbt-container px-2 py-1 border-right border-info">
                             <!-- render mrv segment here -->
                             <?php $segment = null; ?>
                             @foreach($note->segments as $segment)
@@ -2228,7 +2200,7 @@
                                 @endif
                             @endforeach
                         </div>
-                        <div class="nbt-container p-2 border-right border-info d-inline-flex align-self-stretch">
+                        <div class="nbt-container px-2 py-1 border-right border-info d-inline-flex align-self-stretch">
                             <div native target="_blank"
                                  class="c-pointer d-inline-flex align-items-center"
                                  open-in-stag-popup
@@ -2240,6 +2212,44 @@
                                 <span>Rx</span>
                             </div>
                         </div>
+                        <div class="nbt-container px-2 py-1 border-right border-info d-inline-flex align-self-stretch">
+                            <div native target="_blank"
+                                 class="c-pointer d-inline-flex align-items-center"
+                                 open-in-stag-popup
+                                 mc-initer="problems-center-{{$note->id}}"
+                                 title="Problems Center"
+                                 popup-style="wide overflow-visible"
+                                 href="/problems-center/{{$patient->uid}}/{{$note->uid}}">
+                                <i class="fa fa-bolt mr-1"></i>
+                                <span>Dx</span>
+                            </div>
+                        </div>
+                        <div class="nbt-container px-2 py-1 border-right border-info d-inline-flex align-self-stretch">
+                            <div native target="_blank"
+                                 class="c-pointer d-inline-flex align-items-center"
+                                 open-in-stag-popup
+                                 mc-initer="goals-center-{{$note->id}}"
+                                 title="Goals Center"
+                                 popup-style="wide overflow-visible"
+                                 href="/goals-center/{{$patient->uid}}/{{$note->uid}}">
+                                <i class="fa fa-bolt mr-1"></i>
+                                <span>Goals</span>
+                            </div>
+                        </div>
+                        <div class="nbt-container px-2 py-1 border-right border-info d-inline-flex align-self-stretch">
+                            <div class="position-relative on-click-menu d-inline-flex align-items-center">
+                                <span class="">Lifestyle <i class="fa fa-caret-up"></i></span>
+                                <div menu bottom class="bg-white border">
+                                    <a href="#" class="ls-segment-trigger px-2 py-1 text-nowrap d-block" data-target="lifestyle_general">General</a>
+                                    <a href="#" class="ls-segment-trigger px-2 py-1 text-nowrap d-block" data-target="lifestyle_nutrition">Nutrition</a>
+                                    <a href="#" class="ls-segment-trigger px-2 py-1 text-nowrap d-block" data-target="lifestyle_physical_activity">Physical Activity</a>
+                                    <a href="#" class="ls-segment-trigger px-2 py-1 text-nowrap d-block" data-target="lifestyle_sleep">Sleep</a>
+                                    <a href="#" class="ls-segment-trigger px-2 py-1 text-nowrap d-block" data-target="lifestyle_social">Social Relationships</a>
+                                    <a href="#" class="ls-segment-trigger px-2 py-1 text-nowrap d-block" data-target="lifestyle_substances">Substance Use</a>
+                                    <a href="#" class="ls-segment-trigger px-2 py-1 text-nowrap d-block" data-target="lifestyle_stress">Stress</a>
+                                </div>
+                            </div>
+                        </div>
                     </div>
                     @endif
 

+ 1 - 1
resources/views/app/patient/note/segment.blade.php

@@ -82,7 +82,7 @@
                 <a class="segment-trigger ml-3"
                    href="#"
                    data-target="{{$targetSegment}}">
-                    Changes During this Visit
+                    Changes During this Visit (Plan)
                 </a>
             @endif
 

+ 32 - 0
resources/views/app/patient/prescriptions-popup/client-status-form.blade.php

@@ -0,0 +1,32 @@
+<div class="stag-popup stag-popup-sm mcp-theme-1 min-height-unset" stag-popup-key="pp-client-status-popup">
+    <form method="POST" action="" class="overflow-visible">
+        <h3 class="stag-popup-title mb-2">
+            <span>Client Declared Status</span>
+            <a href="#" class="ml-auto text-secondary"
+               onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
+        </h3>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Status</label>
+            <select class="form-control form-control-sm min-width-unset erx-hcp-pro-select"
+                    v-model="currentPrescriptionClientStatus.status">
+                <option value="">-- select --</option>
+                <option value="CREATED">Created</option>
+                <option value="SENT">Sent</option>
+                <option value="RECEIVED_BY_CLIENT">Received by client</option>
+                <option value="RECEIPT_CONFIRMED_BY_FACILITY">Receipt confirmed by facility</option>
+                <option value="CANCELLED">Cancelled</option>
+            </select>
+        </div>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Memo</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescriptionClientStatus.memo">
+        </div>
+        <div class="d-flex align-items-center justify-content-center mt-3">
+            <button type="button" class="btn btn-sm btn-primary mr-2" v-on:click.prevent="saveClientStatus()">Submit
+            </button>
+            <button type="button" class="btn btn-sm btn-default border" onclick="return closeStagPopup()">Cancel
+            </button>
+        </div>
+    </form>
+</div>

+ 61 - 0
resources/views/app/patient/prescriptions-popup/drug-form.blade.php

@@ -0,0 +1,61 @@
+<div class="stag-popup stag-popup-sm mcp-theme-1" stag-popup-key="pp-prescription-popup-DRUG">
+    <form method="POST" action="" class="overflow-visible">
+        <h3 class="stag-popup-title mb-2">
+            <span>Drug Prescription</span>
+            <a href="#" class="ml-auto text-secondary"
+               onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
+        </h3>
+
+        <input type="hidden" data-name="medId">
+        <input type="hidden" data-name="routedMedId">
+        <input type="hidden" data-name="routedDosageFormMedId">
+        <input type="hidden" data-name="gcnSeqno">
+
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Drug</label>
+            <input type="text" class="form-control form-control-sm min-width-unset prescription-medication"
+                   stag-suggest
+                   stag-suggest-ep="/fdb-med-suggest-v2/json">
+        </div>
+
+        <div class="row">
+            <div class="col-4 pr-0">
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">Frequency</label>
+                    <input type="text" class="form-control form-control-sm min-width-unset"
+                           data-option-list="frequency-options" data-field="frequency"
+                           v-model="currentPrescription_DRUG.clinicalDetailJson.frequency">
+                    <div id="frequency-options" class="data-option-list">
+                        <div>Once a day</div>
+                        <div>Twice a day</div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-4 pr-0">
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">Dispense</label>
+                    <input type="text" class="form-control form-control-sm min-width-unset"
+                           v-model="currentPrescription_DRUG.clinicalDetailJson.dispense">
+                </div>
+            </div>
+            <div class="col-4">
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">Refills</label>
+                    <input type="text" class="form-control form-control-sm min-width-unset"
+                           v-model="currentPrescription_DRUG.clinicalDetailJson.refills">
+                </div>
+            </div>
+        </div>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Purpose</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescription_DRUG.clinicalDetailJson.purpose">
+        </div>
+        <div class="d-flex align-items-center justify-content-center mt-3">
+            <button type="button" class="btn btn-sm btn-primary mr-2" v-on:click.prevent="savePrescription()">Submit
+            </button>
+            <button type="button" class="btn btn-sm btn-default border" onclick="return closeStagPopup()">Cancel
+            </button>
+        </div>
+    </form>
+</div>

+ 23 - 0
resources/views/app/patient/prescriptions-popup/hcp-pro-form.blade.php

@@ -0,0 +1,23 @@
+<div class="stag-popup stag-popup-sm mcp-theme-1 min-height-unset" stag-popup-key="pp-hcp-pro-popup">
+    <form method="POST" action="" class="overflow-visible">
+        <h3 class="stag-popup-title mb-2">
+            <span>HCP Pro</span>
+            <a href="#" class="ml-auto text-secondary"
+               onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
+        </h3>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">HCP Pro</label>
+            <select class="form-control form-control-sm min-width-unset erx-hcp-pro-select"
+                    provider-search
+                    :data-pro-uid="currentPrescriptionHcpPro.newHcpProUid ?? ''"
+                    v-model="currentPrescriptionHcpPro.newHcpProUid">
+            </select>
+        </div>
+        <div class="d-flex align-items-center justify-content-center mt-3">
+            <button type="button" class="btn btn-sm btn-primary mr-2" v-on:click.prevent="saveHcpPro()">Submit
+            </button>
+            <button type="button" class="btn btn-sm btn-default border" onclick="return closeStagPopup()">Cancel
+            </button>
+        </div>
+    </form>
+</div>

+ 30 - 0
resources/views/app/patient/prescriptions-popup/imaging-form.blade.php

@@ -0,0 +1,30 @@
+<div class="stag-popup stag-popup-sm mcp-theme-1" stag-popup-key="pp-prescription-popup-IMAGING">
+    <form method="POST" action="">
+        <h3 class="stag-popup-title mb-2">
+            <span>Imaging Prescription</span>
+            <a href="#" class="ml-auto text-secondary"
+               onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
+        </h3>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Test</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescription_IMAGING.clinicalDetailJson.test">
+        </div>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">ICDS</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescription_IMAGING.clinicalDetailJson.icds">
+        </div>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Memo</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescription_IMAGING.clinicalDetailJson.memo">
+        </div>
+        <div class="d-flex align-items-center justify-content-center mt-3">
+            <button type="button" class="btn btn-sm btn-primary mr-2" v-on:click.prevent="savePrescription()">Submit
+            </button>
+            <button type="button" class="btn btn-sm btn-default border" onclick="return closeStagPopup()">Cancel
+            </button>
+        </div>
+    </form>
+</div>

+ 5 - 0
resources/views/app/patient/prescriptions-popup/index-popup.blade.php

@@ -0,0 +1,5 @@
+@extends ('layouts.patient')
+
+@section('inner-content')
+    @include('app.patient.prescriptions-popup.list-popup')
+@endsection

+ 5 - 0
resources/views/app/patient/prescriptions-popup/index.blade.php

@@ -0,0 +1,5 @@
+@extends ('layouts.patient')
+
+@section('inner-content')
+    @include('app.patient.prescriptions-popup.list')
+@endsection

+ 30 - 0
resources/views/app/patient/prescriptions-popup/lab-form.blade.php

@@ -0,0 +1,30 @@
+<div class="stag-popup stag-popup-sm mcp-theme-1" stag-popup-key="pp-prescription-popup-LAB">
+    <form method="POST" action="">
+        <h3 class="stag-popup-title mb-2">
+            <span>Lab Prescription</span>
+            <a href="#" class="ml-auto text-secondary"
+               onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
+        </h3>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Test</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescription_LAB.clinicalDetailJson.test">
+        </div>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">ICDS</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescription_LAB.clinicalDetailJson.icds">
+        </div>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Memo</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescription_LAB.clinicalDetailJson.memo">
+        </div>
+        <div class="d-flex align-items-center justify-content-center mt-3">
+            <button type="button" class="btn btn-sm btn-primary mr-2" v-on:click.prevent="savePrescription()">Submit
+            </button>
+            <button type="button" class="btn btn-sm btn-default border" onclick="return closeStagPopup()">Cancel
+            </button>
+        </div>
+    </form>
+</div>

+ 1152 - 0
resources/views/app/patient/prescriptions-popup/list-popup.blade.php

@@ -0,0 +1,1152 @@
+<div id="prescriptions-popup-{{$patient->id}}" v-cloak class="mt-3 p-3 border-top">
+    <div class="d-flex align-items-baseline pb-2">
+        <h6 class="my-0 font-weight-bold text-secondary font-size-14">Prescriptions</h6>
+        @if(!request()->input('erx_category') || request()->input('erx_category') === 'DRUG')
+            <span class="mx-2 text-secondary on-hover-opaque">|</span>
+            <a href="#" v-on:click.prevent="newERx('DRUG')">+ New eRx</a>
+        @endif
+        @if(!request()->input('erx_category') || request()->input('erx_category') === 'LAB')
+            <span class="mx-2 text-secondary on-hover-opaque">|</span>
+            <a href="#" v-on:click.prevent="newERx('LAB')">+ Lab</a>
+        @endif
+        @if(!request()->input('erx_category') || request()->input('erx_category') === 'IMAGING')
+            <span class="mx-2 text-secondary on-hover-opaque">|</span>
+            <a href="#" v-on:click.prevent="newERx('IMAGING')">+ Imaging</a>
+        @endif
+        @if(!request()->input('erx_category') || request()->input('erx_category') === 'REFERRAL')
+            <span class="mx-2 text-secondary on-hover-opaque">|</span>
+            <a href="#" v-on:click.prevent="newERx('REFERRAL')">+ Referral</a>
+        @endif
+        @if(!request()->input('erx_category') || request()->input('erx_category') === 'SUPPLY')
+            <span class="mx-2 text-secondary on-hover-opaque">|</span>
+            <a href="#" v-on:click.prevent="newERx('SUPPLY')">+ Supply</a>
+        @endif
+        @if(!request()->input('erx_category') || request()->input('erx_category') === 'OTHER')
+            <span class="mx-2 text-secondary on-hover-opaque">|</span>
+            <a href="#" v-on:click.prevent="newERx('OTHER')">+ Other</a>
+        @endif
+    </div>
+    <div class="d-flex align-items-start">
+        <table class="table table-striped table-sm table-bordered mb-0 flex-grow-1">
+            <thead>
+            <tr>
+                <th class="px-2 text-secondary border-bottom-0">Created</th>
+                @if(!request()->input('erx_category'))
+                <th class="px-2 text-secondary border-bottom-0">Type</th>
+                @endif
+                <th class="px-2 text-secondary border-bottom-0 w-50">Clinical</th>
+                <th class="px-2 text-secondary border-bottom-0">Prescriber</th>
+                <th class="px-2 text-secondary border-bottom-0" v-if="!currentPrescription">Sign</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr v-for="(prescription, index) in prescriptions" :class="currentPrescription && currentPrescription.id === prescription.id ? 'bg-aliceblue' : ''">
+                <td class="px-2">
+                    <a href="#" v-on:click.prevent="setCurrentPrescription(prescription)"
+                       :class="currentPrescription && currentPrescription.id === prescription.id ? 'font-weight-bold' : ''">@{{prescription.created_at_friendly_short}}</a>
+                    @if(@$note)
+                        <div v-if="prescription.note_id === {{$note->id}}" class="text-info mt-1">* Create on this note</div>
+                    @endif
+                </td>
+                @if(!request()->input('erx_category'))
+                <td class="px-2">@{{prescription.erx_category}}</td>
+                @endif
+                <td class="px-2">
+                    <div class="d-flex align-items-baseline">
+                        {{--
+                        <a v-if="!prescription.has_hcp_pro_signed" class="mr-2" href="#" v-on:click.prevent="editClinicalDetails(prescription)"><i class="fa fa-edit on-hover-opaque"></i></a>
+                        <span v-else class="mr-2" title="Cannot edit. Prescription already signed."><i class="fa fa-edit on-hover-opaque text-secondary"></i></span>
+                        --}}
+                        <div v-if="prescription.clinical_detail_json" class="d-inline-flex align-items-baseline">
+                            <div class="" v-if="prescription.erx_category === 'DRUG'">
+                                <div class="d-flex align-items-baseline mb-1" v-for="drug in prescription.clinical_detail_json.items">
+                                    <b class="mr-2">@{{drug.medication ?? '-'}}</b>
+                                    <span class="text-secondary mr-1">@{{drug.frequency ?? ''}}</span>
+                                </div>
+                            </div>
+                            <div class="d-flex align-items-baseline" v-if="prescription.erx_category === 'LAB' || prescription.erx_category === 'IMAGING'">
+                                <b class="mr-2">@{{prescription.clinical_detail_json.test ?? '-'}}</b>
+                                <span class="text-secondary mr-1">@{{prescription.clinical_detail_json.icds ?? '-'}}</span>
+                            </div>
+                            <div class="d-flex align-items-baseline" v-if="prescription.erx_category === 'REFERRAL'">
+                                <b class="mr-2">@{{prescription.clinical_detail_json.to ?? '-'}}</b>
+                                <span class="text-secondary mr-1">@{{prescription.clinical_detail_json.memo ?? '-'}}</span>
+                            </div>
+                            <div class="d-flex align-items-baseline" v-if="prescription.erx_category === 'SUPPLY'">
+                                <b class="mr-2">@{{prescription.clinical_detail_json.item ?? '-'}}</b>
+                                <span class="text-secondary mr-1">@{{prescription.clinical_detail_json.quantity ?? '-'}}</span>
+                            </div>
+                            <div class="d-flex align-items-baseline" v-if="prescription.erx_category === 'OTHER'">
+                                <b class="mr-2">@{{prescription.clinical_detail_json.title ?? '-'}}</b>
+                                <span class="text-secondary mr-1">@{{prescription.clinical_detail_json.memo ?? '-'}}</span>
+                            </div>
+                        </div>
+                        <div v-else>-</div>
+                    </div>
+                </td>
+                <td class="px-2">
+                    <div class="d-flex align-items-baseline">
+                        {{--
+                        <a v-if="!prescription.has_hcp_pro_signed" class="mr-2" href="#" v-on:click.prevent="editHcpPro(prescription)"><i class="fa fa-edit on-hover-opaque"></i></a>
+                        <span v-else class="mr-2" title="Cannot edit. Prescription already signed."><i class="fa fa-edit on-hover-opaque text-secondary"></i></span>
+                        --}}
+                        <div>@{{prescription.hcpProDisplayName}}</div>
+                    </div>
+                </td>
+                <td class="px-2" v-if="!currentPrescription">
+                    <div v-if="prescription.has_hcp_pro_signed" class="d-flex align-items-baseline">
+                        <i class="text-secondary fa fa-check mr-1"></i>
+                        <span class="text-secondary">Signed</span>
+                    </div>
+                    {{--
+                    <div v-else>
+                        <a v-if="prescription.hcp_pro_id === {{$pro->id}}"
+                           href="#"
+                           v-on:click.prevent="signAsHcpPro(prescription)">Sign</a>
+                        <span v-else>-</span>
+                    </div>
+                    --}}
+                </td>
+            </tr>
+            </tbody>
+        </table>
+        <div v-if="currentPrescription" class="min-width-700px ml-2 border align-self-stretch p-3">
+            <div class="d-flex align-items-center">
+                <h3 class="font-size-16 m-0">
+                    <span class="mr-1 font-size-16">@{{ currentPrescription.erx_category }} / @{{ currentPrescription.created_at_friendly_short }}</span>
+                </h3>
+                <a class="ml-auto" href="#" v-on:click.prevent="setCurrentPrescription(null)">
+                    <i class="fa fa-times-circle on-hover-opaque"></i>
+                </a>
+            </div>
+            <hr class="my-3">
+            <div class="pb-2 d-flex align-items-start">
+                <span class="min-width-140px text-secondary text-sm">Created</span>
+                <div>
+                    <span>@{{currentPrescription.created_at_friendly}}</span>
+                    @if(@$note)
+                        <div v-if="currentPrescription.note_id === {{$note->id}}" class="text-info mt-1 font-weight-bold">* Create on this note</div>
+                    @endif
+                </div>
+            </div>
+            @if(!request()->input('erx_category'))
+            <div class="pb-2 d-flex align-items-center">
+                <span class="min-width-140px text-secondary text-sm">Type</span>
+                <span>@{{currentPrescription.erx_category}}</span>
+            </div>
+            @endif
+            <div class="pb-2 d-flex align-items-baseline" v-if="currentPrescription.erx_category !== 'DRUG'">
+                <span class="min-width-140px text-secondary text-sm">Clinical</span>
+                <div class="d-inline-flex align-items-baseline flex-grow-1">
+                    <a v-if="!currentPrescription.has_hcp_pro_signed" class="mr-2" href="#" v-on:click.prevent="editClinicalDetails(currentPrescription)"><i class="fa fa-edit on-hover-opaque"></i></a>
+                    <span v-else class="mr-2" title="Cannot edit. Prescription already signed."><i class="fa fa-edit on-hover-opaque text-secondary"></i></span>
+                    <div v-if="currentPrescription.clinical_detail_json" class="d-inline-flex align-items-baseline">
+                        <div class="" v-if="currentPrescription.erx_category === 'DRUG'">
+                            <div class="d-flex align-items-baseline mb-1" v-for="drug in currentPrescription.clinical_detail_json.items">
+                                <b class="mr-2">@{{drug.medication ?? '-'}}</b>
+                                <span class="text-secondary mr-1">@{{drug.frequency ?? ''}}</span>
+                            </div>
+                        </div>
+                        <div class="d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'LAB' || currentPrescription.erx_category === 'IMAGING'">
+                            <b class="mr-2">@{{currentPrescription.clinical_detail_json.test ?? '-'}}</b>
+                            <span class="text-secondary mr-1">@{{currentPrescription.clinical_detail_json.icds ?? '-'}}</span>
+                        </div>
+                        <div class="d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'REFERRAL'">
+                            <b class="mr-2">@{{currentPrescription.clinical_detail_json.to ?? '-'}}</b>
+                            <span class="text-secondary mr-1">@{{currentPrescription.clinical_detail_json.memo ?? '-'}}</span>
+                        </div>
+                        <div class="d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'SUPPLY'">
+                            <b class="mr-2">@{{currentPrescription.clinical_detail_json.item ?? '-'}}</b>
+                            <span class="text-secondary mr-1">@{{currentPrescription.clinical_detail_json.quantity ?? '-'}}</span>
+                        </div>
+                        <div class="d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'OTHER'">
+                            <b class="mr-2">@{{currentPrescription.clinical_detail_json.title ?? '-'}}</b>
+                            <span class="text-secondary mr-1">@{{currentPrescription.clinical_detail_json.memo ?? '-'}}</span>
+                        </div>
+                    </div>
+                    <div v-else>-</div>
+                </div>
+            </div>
+            <div class="pb-2 d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'DRUG'">
+                <span class="min-width-140px text-secondary text-sm">Medications</span>
+                <div class="flex-grow-1">
+
+                    <div v-if="currentPrescription.clinical_detail_json">
+                        <div class="d-flex align-items-baseline mb-1" v-for="drug in currentPrescription.clinical_detail_json.items">
+                            <a v-if="!currentPrescription.has_hcp_pro_signed" class="mr-2" href="#"
+                               v-on:click.prevent="removeDrugFromERx(drug.medication)">
+                                <i class="fa fa-trash-alt text-danger on-hover-opaque"></i>
+                            </a>
+                            <div>
+                                <div class="d-flex align-items-baseline">
+                                    <b class="mr-2">@{{drug.medication ?? '-'}}</b>
+                                    <span class="text-secondary ml-1">@{{drug.frequency ?? ''}}</span>
+                                </div>
+                                <div class="d-flex align-items-baseline">
+                                    <span class="text-secondary">Dispense:</span>
+                                    <span class="ml-1">@{{ drug.dispense ? drug.dispense : '-' }}</span>
+                                    <span class="text-secondary ml-2">Refills:</span>
+                                    <span class="ml-1">@{{ drug.refills ? drug.refills : '-' }}</span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="d-flex align-items-baseline" v-if="!currentPrescription.has_hcp_pro_signed">
+                        <a href="#" v-on:click.prevent="setAddMode('existing')">+ Existing Medication</a>
+                        <span class="mx-2">|</span>
+                        <a href="#" v-on:click.prevent="setAddMode('new')">+ New Medication</a>
+                    </div>
+                </div>
+            </div>
+
+            <div v-if="addDrugToErxMode === 'existing'" class="border border-info p-2 bg-aliceblue mb-2 rounded">
+                <div class="d-flex align-items-baseline mb-2">
+                    <label for="" class="text-secondary font-weight-bold m-0">Add From Existing Medications</label>
+                    <a href="#" v-on:click.prevent="setAddMode('')" class="ml-auto">Close</a>
+                </div>
+                <table class="m-0 table table-sm border bg-white table-hover">
+                    <tr>
+                        <th>Medication</th>
+                        <th>Dispense</th>
+                        <th>Refills</th>
+                        <th>&nbsp;</th>
+                    </tr>
+                    <tr v-for="drug in existingDrugs" v-if="notAlreadyAdded(drug.data.name)">
+                        <td class="min-width-200px">@{{ drug.data.name }}</td>
+                        <td class="width-70px py-0 pr-0"><input type="text" class="form-control form-control-sm min-width-unset rounded-0 border-top-0 border-bottom-0 border-right-0 shadow-none" v-model="drug.data.dispense"></td>
+                        <td class="width-70px py-0 pl-0"><input type="text" class="form-control form-control-sm min-width-unset rounded-0 border-top-0 border-bottom-0 shadow-none" v-model="drug.data.refills"></td>
+                        <td class="text-right">
+                            <a href="#" v-on:click.prevent="addExistingDrugToERx(drug.uid)" class="text-nowrap">Add to eRx</a>
+                        </td>
+                    </tr>
+                </table>
+            </div>
+
+            <div v-if="addDrugToErxMode === 'new'" class="border border-info p-2 bg-aliceblue mb-2 rounded">
+                <form action="/api/visitPoint/addTopLevel" class="mcp-theme-1 w-100" id="frm-add-medication-and-add-to-erx">
+                    <input type="hidden" name="noteUid" value="{{$note->uid}}">
+                    <input type="hidden" name="category" value="MEDICATION">
+                    <input type="hidden" name="data">
+
+                    <input type="hidden" data-name="medId">
+                    <input type="hidden" data-name="routedMedId">
+                    <input type="hidden" data-name="routedDosageFormMedId">
+                    <input type="hidden" data-name="gcnSeqno">
+
+                    <input type="hidden" name="additionReasonCategory" value="DURING_VISIT">
+                    <input type="hidden" name="isRemoved" value="0">
+                    <input type="hidden" name="removalReasonCategory">
+                    <input type="hidden" name="isRemovedDueToEntryError" value="0">
+
+                    <div class="d-flex align-items-baseline mb-2">
+                        <label for="" class="text-secondary font-weight-bold m-0">Add New Medication</label>
+                        <a href="#" v-on:click.prevent="setAddMode('')" class="ml-auto">Close</a>
+                    </div>
+
+                    <div class="row mb-2">
+                        <div class="col-8 pr-0">
+                            <label class="text-sm text-secondary mb-0">Name</label>
+                            <input type="text" data-name="name" class="form-control form-control-sm" stag-suggest="" stag-suggest-bottom-left="" stag-suggest-ep="/fdb-med-suggest-v2/json" required="" stag-suggest-initialized="1"><div class="stag-suggestions-container position-relative"><div class="suggestions-outer stag-suggestions position-absolute d-none"></div></div>
+                        </div>
+                        <div class="col-4">
+                            <label class="text-sm text-secondary mb-0">Frequency</label>
+                            <input type="text" class="form-control form-control-sm min-width-unset" data-name="frequency" data-option-list="frequency-options" autocomplete="off">
+                            <div id="frequency-options" class="data-option-list">
+                                <div>Once a day</div>
+                                <div>Twice a day</div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="row mb-2">
+                        <div class="col-4 pr-0">
+                            <label class="text-sm text-secondary mb-0">Dispense</label>
+                            <input type="text" class="form-control form-control-sm" name="dispense" autocomplete="off">
+                        </div>
+                        <div class="col-4 pr-0">
+                            <label class="text-sm text-secondary mb-0">Refills</label>
+                            <input type="text" class="form-control form-control-sm" name="refills" autocomplete="off">
+                        </div>
+                    </div>
+
+                    <div class="d-flex align-items-center">
+                        <button type="submit" class="btn btn-sm btn-primary mr-2 my-1">Save &amp; Add to eRx</button>
+                    </div>
+                </form>
+            </div>
+
+            <hr class="my-3">
+            <div class="pb-2 d-flex align-items-center">
+                <span class="min-width-140px text-secondary text-sm">Logistics</span>
+                <div class="d-inline-flex align-items-baseline flex-grow-1">
+                    <a class="mr-2" href="#" v-on:click.prevent="editLogisticsDetails(currentPrescription)"><i class="fa fa-edit on-hover-opaque"></i></a>
+                    <div v-if="currentPrescription.logistics_detail_json" class="d-flex align-items-baseline">
+                        <div class="d-flex align-items-baseline">
+                            <b class="mr-2">@{{currentPrescription.logistics_detail_json.facilityName ?? '-'}}</b>
+                            <span class="text-secondary mr-1">@{{currentPrescription.logistics_detail_json.facilityCity ?? '-'}}</span>
+                            <span class="text-secondary mr-1">@{{currentPrescription.logistics_detail_json.facilityState ?? '-'}}</span>
+                        </div>
+                    </div>
+                    <div v-else>-</div>
+                </div>
+            </div>
+            <div class="pb-2 d-flex align-items-center">
+                <span class="min-width-140px text-secondary text-sm">HCP Pro</span>
+                <div class="d-inline-flex align-items-baseline flex-grow-1">
+                    <a v-if="!currentPrescription.has_hcp_pro_signed" class="mr-2" href="#" v-on:click.prevent="editHcpPro(currentPrescription)"><i class="fa fa-edit on-hover-opaque"></i></a>
+                    <span v-else class="mr-2" title="Cannot edit. Prescription already signed."><i class="fa fa-edit on-hover-opaque text-secondary"></i></span>
+                    <div>@{{currentPrescription.hcpProDisplayName}}</div>
+                </div>
+            </div>
+            <div class="pb-2 d-flex align-items-center">
+                <span class="min-width-140px text-secondary text-sm">Sign</span>
+                <div v-if="currentPrescription.has_hcp_pro_signed" class="d-inline-flex align-items-baseline">
+                    <i class="text-secondary fa fa-check mr-1"></i>
+                    <span class="text-secondary">Signed</span>
+                </div>
+                <div v-else>
+                    <a v-if="currentPrescription.hcp_pro_id === {{$pro->id}}"
+                       href="#"
+                       v-on:click.prevent="signAsHcpPro(currentPrescription)">Sign</a>
+                    <span v-else>-</span>
+                </div>
+            </div>
+            <div class="pb-2 d-flex align-items-center">
+                <span class="min-width-140px text-secondary text-sm">Pro Status</span>
+                <div class="d-inline-flex align-items-baseline">
+                    <a class="mr-2" href="#" v-on:click.prevent="editProStatus(currentPrescription)"><i class="fa fa-edit on-hover-opaque"></i></a>
+                    <div v-if="currentPrescription.pro_declared_status" class="d-flex align-items-baseline">
+                        @{{ sanitizeStatus(currentPrescription.pro_declared_status) }}
+                    </div>
+                    <div v-else>-</div>
+                </div>
+            </div>
+            <div class="pb-2 d-flex align-items-center">
+                <span class="min-width-140px text-secondary text-sm">Client Status</span>
+                <div class="d-inline-flex align-items-baseline">
+                    <a class="mr-2" href="#" v-on:click.prevent="editClientStatus(currentPrescription)"><i class="fa fa-edit on-hover-opaque"></i></a>
+                    <div v-if="currentPrescription.client_declared_status" class="d-flex align-items-baseline">
+                        @{{ sanitizeStatus(currentPrescription.client_declared_status) }}
+                    </div>
+                    <div v-else>-</div>
+                </div>
+            </div>
+            <div class="pb-2 d-flex align-items-center">
+                <span class="min-width-140px text-secondary text-sm">PDF</span>
+                <div class="d-inline-flex align-items-baseline">
+                    <a class="pdf-viewer-trigger" native target="_blank"
+                       :href="'/prescription-download-as-pdf/' + currentPrescription.uid">View</a>
+                    <span class="mx-2 text-secondary">|</span>
+                    <a native target="_blank"
+                       :href="'/prescription-download-as-pdf/' + currentPrescription.uid">Download</a>
+                    <span class="mx-2 text-secondary">|</span>
+                    <a href="#" v-on:click.prevent="transmit(currentPrescription)">Transmit</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    @include('app.patient.prescriptions-popup.drug-form')
+    @include('app.patient.prescriptions-popup.lab-form')
+    @include('app.patient.prescriptions-popup.imaging-form')
+    @include('app.patient.prescriptions-popup.referral-form')
+    @include('app.patient.prescriptions-popup.supply-form')
+    @include('app.patient.prescriptions-popup.other-form')
+    @include('app.patient.prescriptions-popup.logistics-form')
+    @include('app.patient.prescriptions-popup.hcp-pro-form')
+    @include('app.patient.prescriptions-popup.sign-as-hcp-form')
+    @include('app.patient.prescriptions-popup.pro-status-form')
+    @include('app.patient.prescriptions-popup.client-status-form')
+    @include('app.patient.prescriptions-popup.transmit-form')
+</div>
+<script>
+    (function() {
+
+        <?php
+        $prescriptions = $patient->prescriptions;
+        $currentPrescription = null;
+        foreach ($prescriptions as $prescription) {
+            if($prescription->clinical_detail_json) {
+                $prescription->clinical_detail_json = json_decode($prescription->clinical_detail_json);
+            }
+            if($prescription->logistics_detail_json) {
+                $prescription->logistics_detail_json = json_decode($prescription->logistics_detail_json);
+            }
+            $prescription->created_at_friendly = friendlier_date_time($prescription->created_at);
+            $prescription->created_at_friendly_short = friendlier_date_time($prescription->created_at, false);
+            $prescription->hcpProDisplayName = $prescription->hcpPro ? $prescription->hcpPro->displayName() : '-';
+            $prescription->hcpProUid = $prescription->hcpPro ? $prescription->hcpPro->uid : '';
+
+            if(!!@$currentErx && $currentErx->uid === $prescription->uid) {
+                $currentPrescription = $prescription;
+            }
+        }
+
+        if(!!request()->input('erx_category')) {
+            $prescriptions = $prescriptions->filter(function($_p) {
+                return $_p->erx_category === request()->input('erx_category');
+            });
+        }
+
+        $existingActiveDrugs = \App\Models\Point
+            ::where('client_id', $patient->id)
+            ->where('category', 'MEDICATION')
+            ->where('is_removed_due_to_entry_error', false)
+            ->where('is_removed', false)
+            ->orderBy('created_at')
+            ->get();
+        foreach ($existingActiveDrugs as $point) {
+            if ($point->data) {
+                $point->data = json_decode($point->data);
+            }
+        }
+
+        ?>
+
+        function init() {
+
+            window.eRxAppPopup = new Vue({
+                el: '#prescriptions-popup-{{$patient->id}}',
+                delimiters: ['@{{', '}}'],
+                data: {
+
+                    prescriptions: <?= json_encode($prescriptions) ?>,
+
+                    currentPrescriptionAction: '',
+                    currentPrescriptionType: '',
+
+                    addDrugToErxMode: '',
+                    existingDrugs: <?= json_encode($existingActiveDrugs) ?>,
+                    existingDrugToAddUid: '',
+
+                    // selected
+                    currentPrescription:  <?= $currentPrescription ? json_encode($currentPrescription) : 'null' ?>,
+
+                    // for editing clinical details
+                    currentPrescription_DRUG: {
+                        noteUid: '{{ @$note ? $note->uid : '' }}',
+                        clientUid: '{{ $patient->uid }}',
+                        replacesCancelledErxUid: null, // TODO: step-2 support UI to mark a new one as replacing a cancelled one
+                        hcpProUid: '{{$pro->uid}}',
+                        erxCategory: 'DRUG',
+                        clinicalDetailJson: {
+                            items: [
+                                {
+                                    medication: '',
+                                    frequency: '',
+                                    dispense: '',
+                                    refills: '',
+                                    purpose: ''
+                                }
+                            ]
+                        }
+                    },
+                    currentPrescription_LAB: {
+                        noteUid: '{{ @$note ? $note->uid : '' }}',
+                        clientUid: '{{ $patient->uid }}',
+                        replacesCancelledErxUid: null, // TODO: step-2 support UI to mark a new one as replacing a cancelled one
+                        hcpProUid: '{{$pro->uid}}',
+                        erxCategory: 'LAB',
+                        clinicalDetailJson: {
+                            test: '',
+                            icds: '',
+                            memo: '',
+                        }
+                    },
+                    currentPrescription_IMAGING: {
+                        noteUid: '{{ @$note ? $note->uid : '' }}',
+                        clientUid: '{{ $patient->uid }}',
+                        replacesCancelledErxUid: null, // TODO: step-2 support UI to mark a new one as replacing a cancelled one
+                        hcpProUid: '{{$pro->uid}}',
+                        erxCategory: 'IMAGING',
+                        clinicalDetailJson: {
+                            test: '',
+                            icds: '',
+                            memo: '',
+                        }
+                    },
+                    currentPrescription_REFERRAL: {
+                        noteUid: '{{ @$note ? $note->uid : '' }}',
+                        clientUid: '{{ $patient->uid }}',
+                        replacesCancelledErxUid: null, // TODO: step-2 support UI to mark a new one as replacing a cancelled one
+                        hcpProUid: '{{$pro->uid}}',
+                        erxCategory: 'REFERRAL',
+                        clinicalDetailJson: {
+                            to: '',
+                            memo: '',
+                        }
+                    },
+                    currentPrescription_SUPPLY: {
+                        noteUid: '{{ @$note ? $note->uid : '' }}',
+                        clientUid: '{{ $patient->uid }}',
+                        replacesCancelledErxUid: null, // TODO: step-2 support UI to mark a new one as replacing a cancelled one
+                        hcpProUid: '{{$pro->uid}}',
+                        erxCategory: 'SUPPLY',
+                        clinicalDetailJson: {
+                            item: '',
+                            quantity: '',
+                            memo: '',
+                        }
+                    },
+                    currentPrescription_OTHER: {
+                        noteUid: '{{ @$note ? $note->uid : '' }}',
+                        clientUid: '{{ $patient->uid }}',
+                        replacesCancelledErxUid: null, // TODO: step-2 support UI to mark a new one as replacing a cancelled one
+                        hcpProUid: '{{$pro->uid}}',
+                        erxCategory: 'OTHER',
+                        clinicalDetailJson: {
+                            title: '',
+                            memo: '',
+                        }
+                    },
+
+                    // for editing logistics - common
+                    currentPrescriptionLogistics: {
+                        uid: '',
+                        logisticsDetailJson: {
+                            facilityName: '',
+                            facilityCity: '',
+                            facilityState: '',
+                            facilityAddressMemo: '',
+                            facilityPhone: '',
+                            facilityFax: '',
+                            facilityZip: '',
+                        }
+                    },
+
+                    // for editing hcp, sign, pro status & client status - common
+                    currentPrescriptionHcpPro: {
+                        uid: '',
+                        newHcpProUid: '',
+                    },
+                    currentPrescriptionSign: {
+                        uid: '',
+                        declaredVersionNumber: '',
+                    },
+                    currentPrescriptionProStatus: {
+                        uid: '',
+                        status: '',
+                        memo: '',
+                    },
+                    currentPrescriptionClientStatus: {
+                        uid: '',
+                        status: '',
+                        memo: '',
+                    },
+                    currentPrescriptionTransmit: {
+                        uid: '',
+                        logistics: '',
+                        toWho: '',
+                        toEmail: '',
+                        toFaxNumber: '',
+                        toFaxNumberAttentionLine: '',
+                        toFaxNumberCoverSheetMemo: '',
+                        copyToPatient: false,
+                        copyToPatientFaxNumber: '',
+                        copyToPatientEmail: '',
+                    }
+                },
+                methods: {
+
+                    // new eRx (only for popup-list)
+                    newERx: function(_type) {
+                        let payload = {
+                            noteUid: '{{ @$note ? $note->uid : '' }}',
+                            clientUid: '{{$patient->uid}}',
+                            hcpProUid: '{{$pro->uid}}',
+                            erxCategory: _type
+                        };
+                        $.post('/api/erx/create', payload, _data => {
+                            if(!hasResponseError(_data)) {
+                                refreshDynamicStagPopup();
+                            }
+                        }, 'json');
+                        return false;
+                    },
+
+                    // new/edit/save-clinical
+                    newPrescription: function(_type) {
+                        this.currentPrescriptionAction = 'ADD';
+                        this.currentPrescriptionType = _type;
+                        switch (_type) {
+                            case 'DRUG':
+                                this.currentPrescription_DRUG = {
+                                    noteUid: '{{ @$note ? $note->uid : '' }}',
+                                    clientUid: '{{ $patient->uid }}',
+                                    replacesCancelledErxUid: null, // TODO: step-2 support UI to mark a new one as replacing a cancelled one
+                                    hcpProUid: '{{$pro->uid}}',
+                                    erxCategory: _type,
+                                    clinicalDetailJson: {
+                                        items: [
+                                            {
+                                                medication: '',
+                                                frequency: '',
+                                                dispense: '',
+                                                refills: '',
+                                                purpose: ''
+                                            }
+                                        ]
+                                    }
+                                };
+                                break;
+                            case 'LAB':
+                            case 'IMAGING':
+                                this.currentPrescription_LAB = {
+                                    noteUid: '{{ @$note ? $note->uid : '' }}',
+                                    clientUid: '{{ $patient->uid }}',
+                                    replacesCancelledErxUid: null, // TODO: step-2 support UI to mark a new one as replacing a cancelled one
+                                    hcpProUid: '{{$pro->uid}}',
+                                    erxCategory: _type,
+                                    clinicalDetailJson: {
+                                        test: '',
+                                        icds: '',
+                                        memo: '',
+                                    }
+                                };
+                                break;
+                            case 'REFERRAL':
+                                this.currentPrescription_LAB = {
+                                    noteUid: '{{ @$note ? $note->uid : '' }}',
+                                    clientUid: '{{ $patient->uid }}',
+                                    replacesCancelledErxUid: null, // TODO: step-2 support UI to mark a new one as replacing a cancelled one
+                                    hcpProUid: '{{$pro->uid}}',
+                                    erxCategory: _type,
+                                    clinicalDetailJson: {
+                                        to: '',
+                                        memo: '',
+                                    }
+                                };
+                                break;
+                            case 'SUPPLY':
+                                this.currentPrescription_LAB = {
+                                    noteUid: '{{ @$note ? $note->uid : '' }}',
+                                    clientUid: '{{ $patient->uid }}',
+                                    replacesCancelledErxUid: null, // TODO: step-2 support UI to mark a new one as replacing a cancelled one
+                                    hcpProUid: '{{$pro->uid}}',
+                                    erxCategory: _type,
+                                    clinicalDetailJson: {
+                                        item: '',
+                                        quantity: '',
+                                        memo: '',
+                                    }
+                                };
+                                break;
+                            case 'OTHER':
+                                this.currentPrescription_LAB = {
+                                    noteUid: '{{ @$note ? $note->uid : '' }}',
+                                    clientUid: '{{ $patient->uid }}',
+                                    replacesCancelledErxUid: null, // TODO: step-2 support UI to mark a new one as replacing a cancelled one
+                                    hcpProUid: '{{$pro->uid}}',
+                                    erxCategory: _type,
+                                    clinicalDetailJson: {
+                                        title: '',
+                                        memo: '',
+                                    }
+                                };
+                                break;
+                        }
+                        Vue.nextTick(() => {
+                            showStagPopup('pp-prescription-popup-' + this.currentPrescriptionType, true);
+                            if(_type === 'DRUG') {
+                                $('[stag-suggest][stag-suggest-initialized]').removeAttr('stag-suggest-initialized');
+                                initStagSuggest();
+                                this.initFdbMedSuggest();
+                            }
+                        });
+                    },
+                    editClinicalDetails: function(_prescription) {
+                        this.currentPrescriptionAction = 'EDIT_CLINICAL';
+                        this.currentPrescriptionType = _prescription.erx_category;
+                        this['currentPrescription_' + this.currentPrescriptionType] = {
+                            uid: _prescription.uid,
+                            clinicalDetailJson: JSON.parse(JSON.stringify(_prescription.clinical_detail_json))
+                        };
+                        Vue.nextTick(() => {
+                            showStagPopup('pp-prescription-popup-' + this.currentPrescriptionType, true);
+                            if(this.currentPrescriptionType === 'DRUG') {
+                                $('[stag-suggest][stag-suggest-initialized]').removeAttr('stag-suggest-initialized');
+                                initStagSuggest();
+                                this.initFdbMedSuggest();
+
+                                // re-populate drug fields
+                                /*console.log(this.currentPrescription_DRUG);
+                                let parentSegment = $('#prescriptions-popup-{{$patient->id}} [stag-popup-key="prescription-popup-DRUG"]>form').first();
+                                parentSegment.find('input.prescription-medication').val(this.currentPrescription_DRUG.clinicalDetailJson.medication);
+                                parentSegment.find('select.prescription-route')
+                                    .empty()
+                                    .append($('<option/>').attr('value', 1).text(this.currentPrescription_DRUG.clinicalDetailJson.route))
+                                    .val(1);
+                                parentSegment.find('select.prescription-dose')
+                                    .empty()
+                                    .append($('<option/>').attr('value', 1).text(this.currentPrescription_DRUG.clinicalDetailJson.dose))
+                                    .val(1);
+                                parentSegment.find('select.prescription-strength')
+                                    .empty()
+                                    .append($('<option/>').attr('value', 1).text(this.currentPrescription_DRUG.clinicalDetailJson.strength))
+                                    .val(1);*/
+                            }
+                        });
+                    },
+                    savePrescription: function() {
+                        let payload = JSON.parse(JSON.stringify(this['currentPrescription_' + this.currentPrescriptionType]));
+                        payload.clinicalDetailJson = JSON.stringify(payload.clinicalDetailJson);
+                        switch (this.currentPrescriptionAction) {
+                            case 'ADD':
+                                $.post('/api/erx/create', payload, _data => {
+                                    if(!hasResponseError(_data)) {
+                                        toastr.success('Prescription added');
+                                        closeStagPopup();
+                                        refreshDynamicStagPopup();
+                                    }
+                                }, 'json');
+                                break;
+                            case 'EDIT_CLINICAL':
+                                $.post('/api/erx/updateClinicalDetail', payload, _data => {
+                                    if(!hasResponseError(_data)) {
+                                        toastr.success('Prescription updated');
+                                        closeStagPopup();
+                                        refreshDynamicStagPopup();
+                                    }
+                                }, 'json');
+                                break;
+                        }
+                    },
+
+                    // edit logistics
+                    editLogisticsDetails: function(_prescription) {
+                        this.currentPrescriptionAction = 'EDIT_LOGISTICS';
+                        this.currentPrescriptionLogistics = {
+                            uid: _prescription.uid,
+                            logisticsDetailJson: _prescription.logistics_detail_json ? JSON.parse(JSON.stringify(_prescription.logistics_detail_json)) : {
+                                facilityName: '',
+                                facilityCity: '',
+                                facilityState: '',
+                                facilityAddressMemo: '',
+                                facilityPhone: '',
+                                facilityFax: '',
+                                facilityZip: '',
+                            }
+                        }
+                        Vue.nextTick(() => {
+                            showStagPopup('pp-logistics-popup', true);
+                        });
+                    },
+                    saveLogistics: function() {
+                        let payload = JSON.parse(JSON.stringify(this.currentPrescriptionLogistics));
+                        payload.logisticsDetailJson = JSON.stringify(payload.logisticsDetailJson);
+                        $.post('/api/erx/updateLogisticsDetail', payload, _data => {
+                            if(!hasResponseError(_data)) {
+                                toastr.success('Logistics updated');
+                                closeStagPopup();
+                                refreshDynamicStagPopup();
+                            }
+                        }, 'json');
+                    },
+
+                    // edit hcp (ordering) pro
+                    editHcpPro: function(_prescription) {
+                        this.currentPrescriptionAction = 'EDIT_HCP_PRO';
+                        this.currentPrescriptionType = _prescription.erx_category;
+                        this.currentPrescriptionHcpPro = {
+                            uid: _prescription.uid,
+                            newHcpProUid: _prescription.hcpProUid
+                        };
+                        Vue.nextTick(() => {
+                            showStagPopup('pp-hcp-pro-popup', true);
+                            $('.erx-hcp-pro-select').removeAttr('pro-suggest-initialized');
+                            initProSuggest();
+                        });
+                    },
+                    saveHcpPro: function() {
+                        let payload = JSON.parse(JSON.stringify(this.currentPrescriptionHcpPro));
+                        $.post('/api/erx/updateHcpPro', payload, _data => {
+                            if(!hasResponseError(_data)) {
+                                toastr.success('HCP Pro updated');
+                                closeStagPopup();
+                                refreshDynamicStagPopup();
+                            }
+                        }, 'json');
+                    },
+
+                    // sign
+                    signAsHcpPro: function(_prescription) {
+                        this.currentPrescriptionAction = 'SIGN_AS_HCP';
+                        this.currentPrescriptionType = _prescription.erx_category;
+                        this.currentPrescriptionSign = {
+                            uid: _prescription.uid,
+                            declaredVersionNumber: _prescription.version_number
+                        };
+                        Vue.nextTick(() => {
+                            showStagPopup('pp-sign-as-hcp-popup', true);
+                        });
+                    },
+                    saveSignAsHcpPro: function() {
+                        let payload = JSON.parse(JSON.stringify(this.currentPrescriptionSign));
+                        $.post('/api/erx/signAsHcp', payload, _data => {
+                            if(!hasResponseError(_data)) {
+                                toastr.success('Signed');
+                                closeStagPopup();
+                                refreshDynamicStagPopup();
+                            }
+                        }, 'json');
+                    },
+
+                    // edit pro status
+                    editProStatus: function(_prescription) {
+                        this.currentPrescriptionAction = 'EDIT_PRO_DECLARED_STATUS';
+                        this.currentPrescriptionType = _prescription.erx_category;
+                        this.currentPrescriptionProStatus = {
+                            uid: _prescription.uid,
+                            status: _prescription.pro_declared_status,
+                            memo: _prescription.pro_declared_status_memo,
+                        };
+                        Vue.nextTick(() => {
+                            showStagPopup('pp-pro-status-popup', true);
+                        });
+                    },
+                    saveProStatus: function() {
+                        let payload = JSON.parse(JSON.stringify(this.currentPrescriptionProStatus));
+                        $.post('/api/erx/updateProDeclaredStatus', payload, _data => {
+                            if(!hasResponseError(_data)) {
+                                toastr.success('Pro declared status updated');
+                                closeStagPopup();
+                                refreshDynamicStagPopup();
+                            }
+                        }, 'json');
+                    },
+
+                    // edit client status
+                    editClientStatus: function(_prescription) {
+                        this.currentPrescriptionAction = 'EDIT_CLIENT_DECLARED_STATUS';
+                        this.currentPrescriptionType = _prescription.erx_category;
+                        this.currentPrescriptionClientStatus = {
+                            uid: _prescription.uid,
+                            status: _prescription.client_declared_status,
+                            memo: _prescription.client_declared_status_memo,
+                        };
+                        Vue.nextTick(() => {
+                            showStagPopup('pp-client-status-popup', true);
+                        });
+                    },
+                    saveClientStatus: function() {
+                        let payload = JSON.parse(JSON.stringify(this.currentPrescriptionClientStatus));
+                        $.post('/api/erx/updateClientDeclaredStatus', payload, _data => {
+                            if(!hasResponseError(_data)) {
+                                toastr.success('Client declared status updated');
+                                closeStagPopup();
+                                refreshDynamicStagPopup();
+                            }
+                        }, 'json');
+                    },
+
+                    // sane display status
+                    sanitizeStatus: function(_s) {
+                        _s = _s.toLowerCase().replaceAll('_', ' ');
+                        _s = _s[0].toUpperCase() + _s.substr(1);
+                        return _s;
+                    },
+
+                    // transmit
+                    transmit: function(_prescription) {
+                        this.currentPrescriptionTransmit = {
+                            uid: _prescription.uid,
+                            toWho: _prescription.logistics_detail_json ? _prescription.logistics_detail_json.facilityName : '',
+                            toEmail: '',
+                            toFaxNumber: _prescription.logistics_detail_json ? _prescription.logistics_detail_json.facilityFax : '',
+                            toFaxNumberAttentionLine: '',
+                            toFaxNumberCoverSheetMemo: '',
+                            copyToPatient: false,
+                            copyToPatientFaxNumber: '{{$patient->cell_number}}',
+                            copyToPatientEmail: '{{$patient->email_address}}',
+                            _token: '{{csrf_token()}}'
+                        };
+                        Vue.nextTick(() => {
+                            showStagPopup('pp-transmit-popup');
+                            this.transmitModalPDFPreview();
+                        });
+                    },
+                    transmitModalPDFPreview: function() {
+
+                        let _loadedPDF = null, _numPages = 1, _page = 1;
+
+                        function _load(_url) {
+
+                            _loadedPDF = null;
+                            _numPages = 1;
+                            _page = 1;
+
+                            $('#transmit-pdf-preview>canvas').remove();
+
+                            let url = _url;
+                            let pdfjsLib = window['pdfjs-dist/build/pdf'];
+                            pdfjsLib.GlobalWorkerOptions.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';
+                            let loadingTask = pdfjsLib.getDocument(url);
+                            loadingTask.promise.then(function (pdf) {
+                                _numPages = pdf.numPages;
+                                _loadedPDF = pdf;
+                                _page = 1;
+                                _render();
+                            }, function (reason) {
+                                // reason.message;
+                            });
+                        }
+                        function _render() {
+
+                            _loadedPDF.getPage(_page).then(function (page) {
+
+                                // create canvas
+                                let canvasElement = $('<canvas/>')
+                                    .addClass('pdf-viewer-page pdf-preview-page')
+                                    .appendTo('#transmit-pdf-preview');
+
+                                let canvas = canvasElement[0];
+                                let viewport = page.getViewport({scale: 0.75});
+                                let context = canvas.getContext('2d');
+                                canvas.height = viewport.height;
+                                canvas.width = viewport.width;
+                                const $canvas = $(canvas);
+                                let renderContext = {
+                                    canvasContext: context,
+                                    viewport: viewport
+                                };
+                                let renderTask = page.render(renderContext);
+                                renderTask.promise.then(function () {
+                                    if(_page < _numPages) {
+                                        _page++;
+                                        _render();
+                                    }
+                                });
+                            });
+                        }
+
+                        _load('/prescription-download-as-pdf/' + this.currentPrescriptionTransmit.uid);
+                    },
+                    doTransmit: function (_item) {
+                        let payload = JSON.parse(JSON.stringify(this.currentPrescriptionTransmit));
+                        $.post('/prescription-transmit/' + payload.uid, payload, _data => {
+                            if(!hasResponseError(_data)) {
+                                toastr.success('Transmission initiated');
+                                closeStagPopup();
+                                refreshDynamicStagPopup();
+                            }
+                        }, 'json');
+                        closeStagPopup();
+                    },
+
+                    // cancel, etc.
+
+                    initFdbMedSuggest: function() {
+
+                        let self = this;
+
+                        let parentSegment = $('#prescriptions-popup-{{$patient->id}} [stag-popup-key="prescription-popup-DRUG"]>form').first();
+
+                        parentSegment.find('input.prescription-medication').off('stag-suggest-selected');
+                        parentSegment.find('input.prescription-medication').on('stag-suggest-selected', (_e, _input, _data) => {
+
+                            // _input is the textbox
+                            // _data is {med_name_id: "50567", text: "Children's Tylenol"}
+
+                            // set vue values
+                            // self.currentPrescription_DRUG.clinicalDetailJson.medication = _data.text;
+
+                        });
+                    },
+                    notAlreadyAdded: function(_name) {
+                        if(!this.currentPrescription ||
+                            !this.currentPrescription.clinical_detail_json ||
+                            !this.currentPrescription.clinical_detail_json.items) return true;
+                        for (let i = 0; i < this.currentPrescription.clinical_detail_json.items.length; i++) {
+                            if(this.currentPrescription.clinical_detail_json.items[i].medication === _name) {
+                                return false;
+                            }
+                        }
+                        return true;
+                    },
+                    addExistingDrugToERx: function(_uid) {
+                        if(!this.currentPrescription.clinical_detail_json) {
+                            this.currentPrescription.clinical_detail_json = {};
+                        }
+                        if(!this.currentPrescription.clinical_detail_json.items) {
+                            this.currentPrescription.clinical_detail_json.items = [];
+                        }
+                        let existing = this.existingDrugs.filter(_x => {
+                            return _x.uid === _uid;
+                        });
+                        if(!existing || !existing.length) return false;
+                        existing = existing[0];
+                        this.currentPrescription.clinical_detail_json.items.push({
+                            medication: existing.data.name,
+                            frequency: existing.data.frequency,
+                            dispense: existing.data.dispense,
+                            refills: existing.data.refills,
+                        });
+                        this.currentPrescription.clinical_detail_json.items = JSON.parse(JSON.stringify(this.currentPrescription.clinical_detail_json.items));
+                        let temp = this.currentPrescription;
+                        this.currentPrescription = null;
+                        this.currentPrescription = temp;
+                        this.setCurrentPrescription(temp);
+
+                        // save erx
+                        $.post('/api/erx/updateClinicalDetail', {
+                            uid: this.currentPrescription.uid,
+                            clinicalDetailJson: JSON.stringify(this.currentPrescription.clinical_detail_json)
+                        }, _data => {
+                            if(!hasResponseError(_data)) {
+                                // nothing to do
+                            }
+                        }, 'json');
+                    },
+                    removeDrugFromERx: function(_name) {
+                        this.currentPrescription.clinical_detail_json.items = this.currentPrescription.clinical_detail_json.items.filter(_x => {
+                            return _x.medication !== _name;
+                        });
+                        let temp = this.currentPrescription;
+                        this.currentPrescription = null;
+                        this.currentPrescription = temp;
+
+                        // save erx
+                        $.post('/api/erx/updateClinicalDetail', {
+                            uid: this.currentPrescription.uid,
+                            clinicalDetailJson: JSON.stringify(this.currentPrescription.clinical_detail_json)
+                        }, _data => {
+                            if(!hasResponseError(_data)) {
+                                // nothing to do
+                            }
+                        }, 'json');
+                    },
+                    setCurrentPrescription: function(_prescription) {
+                        this.currentPrescription = _prescription;
+                    },
+                    setAddMode: function(_mode) {
+                        let self = this;
+                        this.addDrugToErxMode = _mode;
+                        if(this.addDrugToErxMode === 'new') {
+                            Vue.nextTick(() => {
+
+                                let parentSegment = $('#prescriptions-popup-{{$patient->id}}');
+
+                                parentSegment.find('[stag-suggest-initialized]').removeAttr('stag-suggest-initialized');
+                                initStagSuggest();
+
+                                parentSegment.find('input[stag-suggest][data-name="name"]')
+                                    .off('stag-suggest-selected')
+                                    .on('stag-suggest-selected', (_e, _input, _data) => {
+                                        $(_input).closest('form').find('input[data-name="routedMedId"]').val(_data.routed_med_id);
+                                        $(_input).closest('form').find('input[data-name="routedDosageFormMedId"]').val(_data.routed_dosage_form_med_id);
+                                        $(_input).closest('form').find('input[data-name="gcnSeqno"]').val(_data.gcn_seqno);
+                                        $(_input).closest('form').find('input[data-name="medId"]').val(_data.medid);
+                                        return false;
+                                    });
+
+                                // bind events for add-new-med and add-to-erx in one shot
+                                parentSegment.find('#frm-add-medication-and-add-to-erx')
+                                    .off('submit')
+                                    .on('submit', function () {
+
+                                        let form = $(this);
+
+                                        if (!form[0].checkValidity()) {
+                                            form[0].reportValidity();
+                                            return false;
+                                        }
+
+                                        // add [data-name] values to payload
+                                        let dataField = form.find('[name="data"]').first();
+                                        let parsed = null;
+                                        if (dataField.val()) {
+                                            parsed = JSON.parse(dataField.val());
+                                        }
+                                        form.find('[data-name]').each(function () {
+                                            if (!parsed) parsed = {};
+
+                                            let keys = $(this).attr('data-name').split('->');
+                                            let currentNode = parsed;
+                                            for (let i = 0; i < keys.length; i++) {
+                                                if (i !== keys.length - 1) {
+                                                    if (typeof currentNode[keys[i]] === 'undefined') {
+                                                        currentNode[keys[i]] = {};
+                                                    }
+                                                    currentNode = currentNode[keys[i]];
+                                                } else {
+                                                    if ($(this).is(':checkbox')) {
+                                                        currentNode[keys[i]] = $(this).prop('checked');
+                                                    } else {
+                                                        currentNode[keys[i]] = $(this).val();
+                                                    }
+                                                }
+                                            }
+
+                                        });
+                                        if (parsed) {
+                                            dataField.val(JSON.stringify(parsed));
+                                        }
+
+                                        let newERxItem = {
+                                            medication: form.find('[data-name="name"]').val(),
+                                            frequency: form.find('[data-name="frequency"]').val(),
+                                            dispense: form.find('[name="dispense"]').val(),
+                                            refills: form.find('[name="refills"]').val(),
+                                        };
+
+                                        $.post(form.attr('action'), form.serialize(), _data => {
+                                            if (!hasResponseError(_data)) {
+                                                hideMask();
+                                                // refreshDynamicStagPopup();
+                                                // $('.visit-segment[data-segment-template-name="intake_medications"]').find('.refresh-segment').trigger('click');
+
+                                                if(!self.currentPrescription.clinical_detail_json) {
+                                                    self.currentPrescription.clinical_detail_json = {};
+                                                }
+                                                if(!self.currentPrescription.clinical_detail_json.items) {
+                                                    self.currentPrescription.clinical_detail_json.items = [];
+                                                }
+                                                self.currentPrescription.clinical_detail_json.items.push(newERxItem);
+                                                self.currentPrescription.clinical_detail_json.items = JSON.parse(JSON.stringify(self.currentPrescription.clinical_detail_json.items));
+                                                let temp = self.currentPrescription;
+                                                self.currentPrescription = null;
+                                                self.currentPrescription = temp;
+                                                self.setCurrentPrescription(temp);
+
+                                                // save erx
+                                                $.post('/api/erx/updateClinicalDetail', {
+                                                    uid: self.currentPrescription.uid,
+                                                    clinicalDetailJson: JSON.stringify(self.currentPrescription.clinical_detail_json)
+                                                }, _data => {
+                                                    if(!hasResponseError(_data)) {
+                                                        // nothing to do
+
+                                                        self.setAddMode('');
+                                                    }
+                                                }, 'json');
+
+                                            }
+                                        }, 'json');
+                                        return false;
+                                    });
+
+                            });
+                        }
+                    }
+                },
+                mounted: function() {
+                    let self = this;
+                    $(document).on('pro-changed', '.erx-hcp-pro-select', function() {
+                        self.currentPrescriptionHcpPro.newHcpProUid = this.value;
+                    });
+
+                    // auto select latest prescription (if no current is set)
+                    Vue.nextTick(() => {
+                        if(!this.currentPrescription) {
+                            for(let x in this.prescriptions) {
+                                this.setCurrentPrescription(this.prescriptions[x]);
+                                break;
+                            }
+                        }
+                    });
+                }
+            });
+
+        }
+        addMCInitializer('prescriptions-popup-{{$patient->id}}', init, '#prescriptions-popup-{{$patient->id}}')
+    }).call(window);
+</script>

+ 59 - 0
resources/views/app/patient/prescriptions-popup/logistics-form.blade.php

@@ -0,0 +1,59 @@
+<div class="stag-popup stag-popup-sm mcp-theme-1" stag-popup-key="pp-logistics-popup">
+    <form method="POST" action="">
+        <h3 class="stag-popup-title mb-2">
+            <span>Logistics</span>
+            <a href="#" class="ml-auto text-secondary"
+               onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
+        </h3>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Business Name</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescriptionLogistics.logisticsDetailJson.facilityName">
+        </div>
+        <div class="row">
+            <div class="col-4 pr-0">
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">City</label>
+                    <input type="text" class="form-control form-control-sm min-width-unset"
+                           v-model="currentPrescriptionLogistics.logisticsDetailJson.facilityCity">
+                </div>
+            </div>
+            <div class="col-4 pr-0">
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">State</label>
+                    <input type="text" class="form-control form-control-sm min-width-unset"
+                           v-model="currentPrescriptionLogistics.logisticsDetailJson.facilityState">
+                </div>
+            </div>
+            <div class="col-4">
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">ZIP</label>
+                    <input type="text" class="form-control form-control-sm min-width-unset"
+                           v-model="currentPrescriptionLogistics.logisticsDetailJson.facilityZip">
+                </div>
+            </div>
+        </div>
+        <div class="row">
+            <div class="col-6 pr-0">
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">Phone</label>
+                    <input type="text" class="form-control form-control-sm min-width-unset"
+                           v-model="currentPrescriptionLogistics.logisticsDetailJson.facilityPhone">
+                </div>
+            </div>
+            <div class="col-6">
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">Fax</label>
+                    <input type="text" class="form-control form-control-sm min-width-unset"
+                           v-model="currentPrescriptionLogistics.logisticsDetailJson.facilityFax">
+                </div>
+            </div>
+        </div>
+        <div class="d-flex align-items-center justify-content-center mt-3">
+            <button type="button" class="btn btn-sm btn-primary mr-2" v-on:click.prevent="saveLogistics()">Submit
+            </button>
+            <button type="button" class="btn btn-sm btn-default border" onclick="return closeStagPopup()">Cancel
+            </button>
+        </div>
+    </form>
+</div>

+ 25 - 0
resources/views/app/patient/prescriptions-popup/other-form.blade.php

@@ -0,0 +1,25 @@
+<div class="stag-popup stag-popup-sm mcp-theme-1" stag-popup-key="pp-prescription-popup-OTHER">
+    <form method="POST" action="">
+        <h3 class="stag-popup-title mb-2">
+            <span>Other Prescription</span>
+            <a href="#" class="ml-auto text-secondary"
+               onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
+        </h3>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Title</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescription_OTHER.clinicalDetailJson.title">
+        </div>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Memo</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescription_OTHER.clinicalDetailJson.memo">
+        </div>
+        <div class="d-flex align-items-center justify-content-center mt-3">
+            <button type="button" class="btn btn-sm btn-primary mr-2" v-on:click.prevent="savePrescription()">Submit
+            </button>
+            <button type="button" class="btn btn-sm btn-default border" onclick="return closeStagPopup()">Cancel
+            </button>
+        </div>
+    </form>
+</div>

+ 89 - 0
resources/views/app/patient/prescriptions-popup/pdf/DRUG.blade.php

@@ -0,0 +1,89 @@
+<section style="padding-top: 0.1rem;">
+
+    <div style="margin: 0 0 1rem; font-weight: bold; "><span style="font-size: 16px">Specimen/Physician Information</span></div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px; margin-bottom: 1rem;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Order Date:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{date('Y-m-d h:i a')}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">NPI:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$prescription->hcpPro->hcp_npi}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Test Date:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Practice Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">202-935-1033</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Ordering Physician:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$prescription->hcpPro->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Practice Fax:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">202-935-1033</td>
+        </tr>
+    </table>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
+        <tr>
+            <td style="width: 70%">
+                <b>Patient Information</b>
+            </td>
+            <td style="">
+
+            </td>
+        </tr>
+    </table>
+
+    <div style="font-size: 14px; margin-top: 0.6rem; line-height: 1.4; opacity: 0.6">
+        <span>{{ $patient->displayName() }}, {{$patient->sex}}, {{$patient->age_in_years}} years old</span><br>
+        <?php
+        $addressParts = [];
+        if (!!$patient->mailing_address_line1) $addressParts[] = $patient->mailing_address_line1;
+        if (!!$patient->mailing_address_line2) $addressParts[] = $patient->mailing_address_line2;
+        $addressParts = implode(", ", $addressParts) . ", ";
+        $addressPart2 = [];
+        if (!!$patient->mailing_address_city) $addressPart2[] = $patient->mailing_address_city;
+        if (!!$patient->mailing_address_state) $addressPart2[] = $patient->mailing_address_state;
+        $addressParts .= implode(", ", $addressPart2);
+        ?>
+        <span>{!! $addressParts !!}</span>
+    </div>
+</section>
+
+<?php $clinical = json_decode($prescription->clinical_detail_json); ?>
+<div style="margin: 1.5rem 0 1rem; font-weight: bold; opacity: 0.5"><span style="font-size: 24px">R</span><span style="font-size: 16px">x</span></div>
+<section style="font-size: 15px;">
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
+        <tr>
+            <td style="width: 20px; vertical-align: top; opacity: 0.75; font-size: 14px">
+                <span>1. </span>
+            </td>
+            <td style="vertical-align: top">
+                <div>
+                    <p style="margin: 0 0 0.5rem;">
+                        <b>{{ $clinical->medication }} {{ $clinical->strength }}
+                            @if($clinical->route)
+                                - {{ $clinical->route }}
+                            @endif
+                        </b>
+                    </p>
+                    <div style="">
+                        @if($clinical->frequency)
+                            <p style="margin: 0.5rem 0;">Frequency: {{ $clinical->frequency }}</p>
+                        @endif
+                        @if($clinical->dispense)
+                            <p style="margin: 0.5rem 0;">Dispense: {{ $clinical->dispense }}</p>
+                        @endif
+                        @if($clinical->refills)
+                            <p style="margin: 0.5rem 0;">Refills: {{ $clinical->refills }}</p>
+                        @endif
+                        @if($clinical->purpose)
+                            <p style="margin: 0.5rem 0;">Purpose: <b>{{ $clinical->purpose }}</b></p>
+                        @endif
+                    </div>
+                </div>
+            </td>
+        </tr>
+    </table>
+</section>
+

+ 203 - 0
resources/views/app/patient/prescriptions-popup/pdf/IMAGING.blade.php

@@ -0,0 +1,203 @@
+<section style="padding-top: 0.1rem;">
+
+    <div style="margin: 0 0 1rem; font-weight: bold; opacity: 0.75"><span style="font-size: 16px">Specimen/Physician Information</span></div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Order Date:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{date('Y-m-d h:i a')}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">NPI:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$prescription->hcpPro->hcp_npi}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Test Date:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Practice Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">202-935-1033</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Ordering Physician:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$prescription->hcpPro->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Practice Fax:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">202-935-1033</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75"><span style="font-size: 16px">Patient Information</span></div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Patient Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->home_address_line1}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">DoB:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->dob}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->home_address_city}} {{$patient->home_address_state}} {{$patient->home_address_zip}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Gender:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->sex}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Mobile Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->cell_number ? $patient->cell_number : '-'}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Patient ID:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->chart_number ? $patient->chart_number : '-'}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Home Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->phone_home ? $patient->phone_home : '-'}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">SSN:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->ssn ? $patient->ssn : '-'}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Work Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Billing Information</span>
+        &nbsp;&nbsp;&nbsp;&nbsp;
+        <span style="font-size: 16px; opacity: 0.5;">Bill to: Patient</span>
+    </div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Primary Ins. Code:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Secondary Ins. Code:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Primary Ins. Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Secondary Ins. Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Worker's Comp:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Worker's Comp:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Policy #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Policy #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Group #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Group #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Emp/Group Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Emp/Group Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Insured:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Insured:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Guarantor Information</span>
+    </div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Relationship:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Self</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;"></td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;"></td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Order Information</span>
+    </div>
+
+    <?php $clinical = json_decode($prescription->clinical_detail_json); ?>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Fasting:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Yes&nbsp;&nbsp;/&nbsp;&nbsp;No</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">ICD Codes:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">
+                {{@$clinical->icds ?: ''}}
+            </td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Collect at Draw Site:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Yes&nbsp;&nbsp;/&nbsp;&nbsp;No</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;"></td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;"></td>
+        </tr>
+    </table>
+
+
+</section>
+
+
+<hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+<div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+    <span style="font-size: 16px">Studies/Imaging</span>
+</div>
+
+<section style="font-size: 15px;">
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
+        <?php $testIndex = 1; ?>
+        <tr>
+            <td style="width: 20px; vertical-align: top; opacity: 0.75; font-size: 14px">
+                <span>{{$testIndex++}}. </span>
+            </td>
+            <td style="vertical-align: top">
+                <div style="padding-bottom: 0.3rem;">{{$clinical->test}} <span style="padding-left: 15px; color: #666">{{$clinical->memo}}</span></div>
+            </td>
+        </tr>
+    </table>
+</section>
+

+ 203 - 0
resources/views/app/patient/prescriptions-popup/pdf/LAB.blade.php

@@ -0,0 +1,203 @@
+<section style="padding-top: 0.1rem;">
+
+    <div style="margin: 0 0 1rem; font-weight: bold; opacity: 0.75"><span style="font-size: 16px">Specimen/Physician Information</span></div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Order Date:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{date('Y-m-d h:i a')}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">NPI:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$prescription->hcpPro->hcp_npi}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Test Date:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Practice Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">202-935-1033</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Ordering Physician:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$prescription->hcpPro->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Practice Fax:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">202-935-1033</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75"><span style="font-size: 16px">Patient Information</span></div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Patient Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->home_address_line1}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">DoB:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->dob}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->home_address_city}} {{$patient->home_address_state}} {{$patient->home_address_zip}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Gender:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->sex}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Mobile Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->cell_number ? $patient->cell_number : '-'}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Patient ID:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->chart_number ? $patient->chart_number : '-'}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Home Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->phone_home ? $patient->phone_home : '-'}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">SSN:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->ssn ? $patient->ssn : '-'}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Work Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Billing Information</span>
+        &nbsp;&nbsp;&nbsp;&nbsp;
+        <span style="font-size: 16px; opacity: 0.5;">Bill to: Patient</span>
+    </div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Primary Ins. Code:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Secondary Ins. Code:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Primary Ins. Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Secondary Ins. Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Worker's Comp:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Worker's Comp:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Policy #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Policy #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Group #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Group #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Emp/Group Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Emp/Group Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Insured:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Insured:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Guarantor Information</span>
+    </div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Relationship:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Self</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;"></td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;"></td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Order Information</span>
+    </div>
+
+    <?php $clinical = json_decode($prescription->clinical_detail_json); ?>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Fasting:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Yes&nbsp;&nbsp;/&nbsp;&nbsp;No</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">ICD Codes:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">
+                {{@$clinical->icds ?: ''}}
+            </td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Collect at Draw Site:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Yes&nbsp;&nbsp;/&nbsp;&nbsp;No</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;"></td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;"></td>
+        </tr>
+    </table>
+
+
+</section>
+
+
+<hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+<div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+    <span style="font-size: 16px">Lab</span>
+</div>
+
+<section style="font-size: 15px;">
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
+        <?php $testIndex = 1; ?>
+        <tr>
+            <td style="width: 20px; vertical-align: top; opacity: 0.75; font-size: 14px">
+                <span>{{$testIndex++}}. </span>
+            </td>
+            <td style="vertical-align: top">
+                <div style="padding-bottom: 0.3rem;">{{$clinical->test}} <span style="padding-left: 15px; color: #666">{{$clinical->memo}}</span></div>
+            </td>
+        </tr>
+    </table>
+</section>
+

+ 203 - 0
resources/views/app/patient/prescriptions-popup/pdf/OTHER.blade.php

@@ -0,0 +1,203 @@
+<section style="padding-top: 0.1rem;">
+
+    <div style="margin: 0 0 1rem; font-weight: bold; opacity: 0.75"><span style="font-size: 16px">Specimen/Physician Information</span></div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Order Date:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{date('Y-m-d h:i a')}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">NPI:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$prescription->hcpPro->hcp_npi}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Test Date:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Practice Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">202-935-1033</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Ordering Physician:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$prescription->hcpPro->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Practice Fax:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">202-935-1033</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75"><span style="font-size: 16px">Patient Information</span></div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Patient Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->home_address_line1}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">DoB:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->dob}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->home_address_city}} {{$patient->home_address_state}} {{$patient->home_address_zip}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Gender:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->sex}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Mobile Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->cell_number ? $patient->cell_number : '-'}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Patient ID:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->chart_number ? $patient->chart_number : '-'}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Home Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->phone_home ? $patient->phone_home : '-'}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">SSN:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->ssn ? $patient->ssn : '-'}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Work Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Billing Information</span>
+        &nbsp;&nbsp;&nbsp;&nbsp;
+        <span style="font-size: 16px; opacity: 0.5;">Bill to: Patient</span>
+    </div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Primary Ins. Code:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Secondary Ins. Code:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Primary Ins. Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Secondary Ins. Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Worker's Comp:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Worker's Comp:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Policy #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Policy #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Group #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Group #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Emp/Group Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Emp/Group Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Insured:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Insured:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Guarantor Information</span>
+    </div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Relationship:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Self</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;"></td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;"></td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Order Information</span>
+    </div>
+
+    <?php $clinical = json_decode($prescription->clinical_detail_json); ?>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Fasting:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Yes&nbsp;&nbsp;/&nbsp;&nbsp;No</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">ICD Codes:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">
+                {{@$clinical->icds ?: ''}}
+            </td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Collect at Draw Site:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Yes&nbsp;&nbsp;/&nbsp;&nbsp;No</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;"></td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;"></td>
+        </tr>
+    </table>
+
+
+</section>
+
+
+<hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+<div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+    <span style="font-size: 16px">Details</span>
+</div>
+
+<section style="font-size: 15px;">
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
+        <?php $testIndex = 1; ?>
+        <tr>
+            <td style="width: 20px; vertical-align: top; opacity: 0.75; font-size: 14px">
+                <span>{{$testIndex++}}. </span>
+            </td>
+            <td style="vertical-align: top">
+                <div style="padding-bottom: 0.3rem;">{{$clinical->title}} <span style="padding-left: 15px; color: #666">{{$clinical->memo}}</span></div>
+            </td>
+        </tr>
+    </table>
+</section>
+

+ 203 - 0
resources/views/app/patient/prescriptions-popup/pdf/REFERRAL.blade.php

@@ -0,0 +1,203 @@
+<section style="padding-top: 0.1rem;">
+
+    <div style="margin: 0 0 1rem; font-weight: bold; opacity: 0.75"><span style="font-size: 16px">Specimen/Physician Information</span></div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Order Date:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{date('Y-m-d h:i a')}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">NPI:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$prescription->hcpPro->hcp_npi}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Test Date:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Practice Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">202-935-1033</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Ordering Physician:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$prescription->hcpPro->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Practice Fax:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">202-935-1033</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75"><span style="font-size: 16px">Patient Information</span></div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Patient Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->home_address_line1}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">DoB:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->dob}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->home_address_city}} {{$patient->home_address_state}} {{$patient->home_address_zip}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Gender:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->sex}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Mobile Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->cell_number ? $patient->cell_number : '-'}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Patient ID:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->chart_number ? $patient->chart_number : '-'}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Home Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->phone_home ? $patient->phone_home : '-'}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">SSN:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->ssn ? $patient->ssn : '-'}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Work Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Billing Information</span>
+        &nbsp;&nbsp;&nbsp;&nbsp;
+        <span style="font-size: 16px; opacity: 0.5;">Bill to: Patient</span>
+    </div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Primary Ins. Code:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Secondary Ins. Code:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Primary Ins. Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Secondary Ins. Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Worker's Comp:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Worker's Comp:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Policy #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Policy #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Group #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Group #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Emp/Group Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Emp/Group Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Insured:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Insured:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Guarantor Information</span>
+    </div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Relationship:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Self</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;"></td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;"></td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Order Information</span>
+    </div>
+
+    <?php $clinical = json_decode($prescription->clinical_detail_json); ?>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Fasting:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Yes&nbsp;&nbsp;/&nbsp;&nbsp;No</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">ICD Codes:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">
+                {{@$clinical->icds ?: ''}}
+            </td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Collect at Draw Site:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Yes&nbsp;&nbsp;/&nbsp;&nbsp;No</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;"></td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;"></td>
+        </tr>
+    </table>
+
+
+</section>
+
+
+<hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+<div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+    <span style="font-size: 16px">Referral Details</span>
+</div>
+
+<section style="font-size: 15px;">
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
+        <?php $testIndex = 1; ?>
+        <tr>
+            <td style="width: 20px; vertical-align: top; opacity: 0.75; font-size: 14px">
+                <span>{{$testIndex++}}. </span>
+            </td>
+            <td style="vertical-align: top">
+                <div style="padding-bottom: 0.3rem;">{{$clinical->to}} <span style="padding-left: 15px; color: #666">{{$clinical->memo}}</span></div>
+            </td>
+        </tr>
+    </table>
+</section>
+

+ 203 - 0
resources/views/app/patient/prescriptions-popup/pdf/SUPPLY.blade.php

@@ -0,0 +1,203 @@
+<section style="padding-top: 0.1rem;">
+
+    <div style="margin: 0 0 1rem; font-weight: bold; opacity: 0.75"><span style="font-size: 16px">Specimen/Physician Information</span></div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Order Date:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{date('Y-m-d h:i a')}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">NPI:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$prescription->hcpPro->hcp_npi}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Test Date:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Practice Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">202-935-1033</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Ordering Physician:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$prescription->hcpPro->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Practice Fax:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">202-935-1033</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75"><span style="font-size: 16px">Patient Information</span></div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Patient Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->home_address_line1}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">DoB:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->dob}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->home_address_city}} {{$patient->home_address_state}} {{$patient->home_address_zip}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Gender:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->sex}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Mobile Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->cell_number ? $patient->cell_number : '-'}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Patient ID:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->chart_number ? $patient->chart_number : '-'}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Home Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->phone_home ? $patient->phone_home : '-'}}</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">SSN:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->ssn ? $patient->ssn : '-'}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Work Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Billing Information</span>
+        &nbsp;&nbsp;&nbsp;&nbsp;
+        <span style="font-size: 16px; opacity: 0.5;">Bill to: Patient</span>
+    </div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Primary Ins. Code:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Secondary Ins. Code:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Primary Ins. Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Secondary Ins. Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Worker's Comp:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Worker's Comp:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Policy #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Policy #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Group #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Group #:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Emp/Group Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Emp/Group Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Insured:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75;">Insured:</td>
+            <td style="padding-bottom: 0.25rem; width: 25%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Guarantor Information</span>
+    </div>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Name:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">{{$patient->displayName()}}</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Relationship:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Self</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Address:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Phone:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">City, State, ZIP:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">-</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;"></td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;"></td>
+        </tr>
+    </table>
+
+    <hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+    <div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+        <span style="font-size: 16px">Order Information</span>
+    </div>
+
+    <?php $clinical = json_decode($prescription->clinical_detail_json); ?>
+
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; font-size: 14px;">
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Fasting:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Yes&nbsp;&nbsp;/&nbsp;&nbsp;No</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">ICD Codes:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">
+                {{@$clinical->icds ?: ''}}
+            </td>
+        </tr>
+        <tr>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">Collect at Draw Site:</td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Yes&nbsp;&nbsp;/&nbsp;&nbsp;No</td>
+            <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;"></td>
+            <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;"></td>
+        </tr>
+    </table>
+
+
+</section>
+
+
+<hr style="margin: 1rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+
+<div style="margin: 1.25rem 0 1rem; font-weight: bold; opacity: 0.75">
+    <span style="font-size: 16px">Supply Details</span>
+</div>
+
+<section style="font-size: 15px;">
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
+        <?php $testIndex = 1; ?>
+        <tr>
+            <td style="width: 20px; vertical-align: top; opacity: 0.75; font-size: 14px">
+                <span>{{$testIndex++}}. </span>
+            </td>
+            <td style="vertical-align: top">
+                <div style="padding-bottom: 0.3rem;">{{$clinical->item}} <span style="padding-left: 15px;">{{$clinical->quantity}}</span><span style="padding-left: 15px; color: #666">{{$clinical->memo}}</span></div>
+            </td>
+        </tr>
+    </table>
+</section>
+

文件差異過大導致無法顯示
+ 13 - 0
resources/views/app/patient/prescriptions-popup/pdf/pdf-preview-with-cover-sheet.blade.php


+ 85 - 0
resources/views/app/patient/prescriptions-popup/pdf/pdf-preview.blade.php

@@ -0,0 +1,85 @@
+<!doctype html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport"
+          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <?php
+    $note = null;
+    $hcpCompany = null;
+    $hcpCompanyProPayer = null;
+    $hcpCompanyLocation = null;
+    if(@$prescription->note) {
+        $note = $prescription->note;
+        $hcpCompany = $note->hcpCompany;
+        $hcpCompanyProPayer = $note->hcpCompanyProPayer;
+        $hcpCompanyLocation = $note->hcpCompanyLocation;
+    }
+    ?>
+    <title>{{$hcpCompany ? $hcpCompany->name : 'Prescription'}}</title>
+</head>
+<body>
+<div style="margin: 0; padding: 1rem; font-family: sans-serif">
+    <header style="padding: 0; border: 0; margin: 0 0 1rem;">
+        <div style="text-align: center">
+            <h3 style="margin-bottom: 1rem;">{{$hcpCompany ? $hcpCompany->name : 'Prescription'}}</h3>
+        </div>
+        <div style="margin-top: 1.5rem; font-size: 19px">{{ $prescription->hcpPro->name_prefix }} {{ $prescription->hcpPro->name_first }} {{ $prescription->hcpPro->name_last }} <span style="font-size: 13px; opacity: 0.75">{{ $prescription->hcpPro->name_suffix }}</span></div>
+        <div style="display: block;">
+            <table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
+                <tr>
+                    <td style="width: 70%">
+                        @if($hcpCompanyLocation)
+                            <div style="font-size: 14px; margin-top: 0.6rem; line-height: 1.4; opacity: 0.6">
+                                {{$hcpCompanyLocation->line1}} {{$hcpCompanyLocation->line2}}<br>
+                                {{$hcpCompanyLocation->city}} {{$hcpCompanyLocation->state}} {{$hcpCompanyLocation->zip}}
+                            </div>
+                        @endif
+                    </td>
+                    <td style="">
+                        <div style="text-align: right; font-size: 14px; margin-top: 0.6rem; line-height: 1.4; opacity: 0.6">PH: 202-935-1033<br>FAX: 202-935-1033</div>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </header>
+    <hr style="border-top: 2px solid #5ca4e8; border-bottom: 0; margin: 1rem 0;">
+
+    <?php
+    use App\Models\Erx;
+    /** @var Erx $prescription */
+    $patient = $prescription->patient;
+    ?>
+
+    @include('app.patient.prescriptions-popup.pdf.' . $prescription->erx_category)
+
+    <?php if($prescription->logistics_detail_json): ?>
+        <?php $logistics = json_decode($prescription->logistics_detail_json); ?>
+        <hr style="margin: 0.5rem 0; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+        <p><b>Logistics Information</b>:</p>
+        <div style="font-size: 14px; opacity: 0.75; ">
+            <p style="margin: 0.5rem 0;"><b>{{ $logistics->facilityName }}</b></p>
+            <p style="margin: 0.5rem 0;">{{$logistics->facilityCity}} {{$logistics->facilityState}} {{$logistics->facilityZip}}</p>
+            <p style="margin: 0.5rem 0;">Phone: {{$logistics->facilityPhone}}</p>
+            <p style="margin: 0.5rem 0;">Fax: {{$logistics->facilityFax}}</p>
+        </div>
+    <?php endif; ?>
+
+    <hr style="margin: 1rem 0 0.5rem; border-top-width: 0; border-bottom-width: 1px; border-color: #bbb">
+    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
+        <tr>
+            <td style="vertical-align: middle; white-space: nowrap; width: 100px;">
+                Authorizing Signature: Digital Signature Capture at <?= friendlier_date_time($prescription->created_at) ?>
+            </td>
+            <td style="vertical-align: middle;">
+                @if($prescription->hcpPro->signature_base_64)
+                    <img src="{{$prescription->hcpPro->signature_base_64}}" style="max-width: 180px;">
+                @endif
+            </td>
+        </tr>
+    </table>
+</div>
+</body>
+</html>
+

+ 32 - 0
resources/views/app/patient/prescriptions-popup/pro-status-form.blade.php

@@ -0,0 +1,32 @@
+<div class="stag-popup stag-popup-sm mcp-theme-1 min-height-unset" stag-popup-key="pp-pro-status-popup">
+    <form method="POST" action="" class="overflow-visible">
+        <h3 class="stag-popup-title mb-2">
+            <span>Pro Declared Status</span>
+            <a href="#" class="ml-auto text-secondary"
+               onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
+        </h3>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Status</label>
+            <select class="form-control form-control-sm min-width-unset erx-hcp-pro-select"
+                    v-model="currentPrescriptionProStatus.status">
+                <option value="">-- select --</option>
+                <option value="CREATED">Created</option>
+                <option value="SENT">Sent</option>
+                <option value="RECEIVED_BY_CLIENT">Received by client</option>
+                <option value="RECEIPT_CONFIRMED_BY_FACILITY">Receipt confirmed by facility</option>
+                <option value="CANCELLED">Cancelled</option>
+            </select>
+        </div>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Memo</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescriptionProStatus.memo">
+        </div>
+        <div class="d-flex align-items-center justify-content-center mt-3">
+            <button type="button" class="btn btn-sm btn-primary mr-2" v-on:click.prevent="saveProStatus()">Submit
+            </button>
+            <button type="button" class="btn btn-sm btn-default border" onclick="return closeStagPopup()">Cancel
+            </button>
+        </div>
+    </form>
+</div>

+ 25 - 0
resources/views/app/patient/prescriptions-popup/referral-form.blade.php

@@ -0,0 +1,25 @@
+<div class="stag-popup stag-popup-sm mcp-theme-1" stag-popup-key="pp-prescription-popup-REFERRAL">
+    <form method="POST" action="">
+        <h3 class="stag-popup-title mb-2">
+            <span>Referral Prescription</span>
+            <a href="#" class="ml-auto text-secondary"
+               onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
+        </h3>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Refer To</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescription_REFERRAL.clinicalDetailJson.to">
+        </div>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Memo</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescription_REFERRAL.clinicalDetailJson.memo">
+        </div>
+        <div class="d-flex align-items-center justify-content-center mt-3">
+            <button type="button" class="btn btn-sm btn-primary mr-2" v-on:click.prevent="savePrescription()">Submit
+            </button>
+            <button type="button" class="btn btn-sm btn-default border" onclick="return closeStagPopup()">Cancel
+            </button>
+        </div>
+    </form>
+</div>

+ 16 - 0
resources/views/app/patient/prescriptions-popup/sign-as-hcp-form.blade.php

@@ -0,0 +1,16 @@
+<div class="stag-popup stag-popup-sm mcp-theme-1 min-height-unset" stag-popup-key="pp-sign-as-hcp-popup">
+    <form method="POST" action="" class="overflow-visible">
+        <h3 class="stag-popup-title mb-2">
+            <span>Sign as HCP Pro</span>
+            <a href="#" class="ml-auto text-secondary"
+               onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
+        </h3>
+        <p>Sign as HCP Pro?</p>
+        <div class="d-flex align-items-center justify-content-center mt-3">
+            <button type="button" class="btn btn-sm btn-success mr-2" v-on:click.prevent="saveSignAsHcpPro()">Sign
+            </button>
+            <button type="button" class="btn btn-sm btn-default border" onclick="return closeStagPopup()">Cancel
+            </button>
+        </div>
+    </form>
+</div>

+ 34 - 0
resources/views/app/patient/prescriptions-popup/supply-form.blade.php

@@ -0,0 +1,34 @@
+<div class="stag-popup stag-popup-sm mcp-theme-1" stag-popup-key="pp-prescription-popup-SUPPLY">
+    <form method="POST" action="">
+        <h3 class="stag-popup-title mb-2">
+            <span>Supply Prescription</span>
+            <a href="#" class="ml-auto text-secondary"
+               onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
+        </h3>
+        <div class="mb-2">
+            <div class="row">
+                <div class="col-8 pr-0">
+                    <label class="text-sm text-secondary mb-1">Item</label>
+                    <input type="text" class="form-control form-control-sm min-width-unset"
+                           v-model="currentPrescription_SUPPLY.clinicalDetailJson.item">
+                </div>
+                <div class="col-4">
+                    <label class="text-sm text-secondary mb-1">Quanitity</label>
+                    <input type="text" class="form-control form-control-sm min-width-unset"
+                           v-model="currentPrescription_SUPPLY.clinicalDetailJson.quantity">
+                </div>
+            </div>
+        </div>
+        <div class="mb-2">
+            <label class="text-sm text-secondary mb-1">Memo</label>
+            <input type="text" class="form-control form-control-sm min-width-unset"
+                   v-model="currentPrescription_SUPPLY.clinicalDetailJson.memo">
+        </div>
+        <div class="d-flex align-items-center justify-content-center mt-3">
+            <button type="button" class="btn btn-sm btn-primary mr-2" v-on:click.prevent="savePrescription()">Submit
+            </button>
+            <button type="button" class="btn btn-sm btn-default border" onclick="return closeStagPopup()">Cancel
+            </button>
+        </div>
+    </form>
+</div>

+ 66 - 0
resources/views/app/patient/prescriptions-popup/transmit-form.blade.php

@@ -0,0 +1,66 @@
+<div class="stag-popup stag-popup-sm mcp-theme-1" stag-popup-key="pp-transmit-popup">
+    <form method="POST" class="overflow-visible">
+        <h3 class="stag-popup-title mb-2">
+            <span><i class="fa fa-fax text-secondary font-size-13"></i> Transmit via Fax or Secure Email</span>
+            <a href="#" class="ml-auto text-secondary"
+               onclick="return closeStagPopup()"><i class="fa fa-times"></i></a>
+        </h3>
+        <div class="mb-3 pb-3 border-bottom">
+            <p class="text-secondary text-sm mb-2 text-center">Document Preview</p>
+            <div id="transmit-pdf-preview">
+
+            </div>
+        </div>
+        <div class="mb-2">
+            <label class=" mb-1">To</label>
+            <input type="text" v-model="currentPrescriptionTransmit.toWho" class="form-control">
+        </div>
+        <div class="row mb-2">
+            <div class="col-6 pr-0">
+                <div class="">
+                    <label class=" mb-1">Email</label>
+                    <input type="text" v-model="currentPrescriptionTransmit.toEmail" class="form-control">
+                </div>
+            </div>
+            <div class="col-6">
+                <div class="">
+                    <label class=" mb-1">Fax Number</label>
+                    <input type="text" v-model="currentPrescriptionTransmit.toFaxNumber" class="form-control">
+                </div>
+            </div>
+        </div>
+        <div class="mb-2">
+            <label class=" mb-1">Fax Attention Line</label>
+            <input type="text" v-model="currentPrescriptionTransmit.toFaxNumberAttentionLine" class="form-control">
+        </div>
+        <div class="mb-2">
+            <label class=" mb-1">Fax Cover Sheet Memo</label>
+            <input type="text" v-model="currentPrescriptionTransmit.toFaxNumberCoverSheetMemo" class="form-control">
+        </div>
+        <div class="mb-2 pt-2">
+            <label class=" mb-1 d-inline-flex align-items-baseline">
+                <input type="checkbox" v-model="currentPrescriptionTransmit.copyToPatient" class="mr-2">
+                Transmit Copy to Patient
+            </label>
+        </div>
+        <div class="row mb-2" v-show="currentPrescriptionTransmit.copyToPatient">
+            <div class="col-6 pr-0">
+                <div class="">
+                    <label class=" mb-1">Patient Email</label>
+                    <input type="text" v-model="currentPrescriptionTransmit.copyToPatientEmail" class="form-control">
+                </div>
+            </div>
+            <div class="col-6">
+                <div class="">
+                    <label class=" mb-1">Patient Fax Number</label>
+                    <input type="text" v-model="currentPrescriptionTransmit.copyToPatientFaxNumber" class="form-control">
+                </div>
+            </div>
+        </div>
+
+        <div class="d-flex align-items-center justify-content-center mt-3">
+            <button type="button" class="btn btn-sm btn-primary mr-2" v-on:click.prevent="doTransmit()">Submit</button>
+            <button type="button" class="btn btn-sm btn-default border" onclick="return closeStagPopup()">Cancel</button>
+        </div>
+    </form>
+</div>

+ 25 - 6
resources/views/app/patient/prescriptions/imaging-form.blade.php

@@ -6,14 +6,33 @@
                onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
         </h3>
         <div class="mb-2">
-            <label class="text-sm text-secondary mb-1">Test</label>
-            <input type="text" class="form-control form-control-sm min-width-unset"
-                   v-model="currentPrescription_IMAGING.clinicalDetailJson.test">
+            <div class="d-flex align-items-baseline">
+                <label class="text-sm text-secondary mb-0">Tests</label>
+                <span class="mx-2 text-secondary text-sm"></span>
+                <a href="#" class="text-sm" v-on:click.prevent="currentPrescription_IMAGING.clinicalDetailJson.tests.push('')">+ Add</a>
+            </div>
+            <div v-for="(test, testIndex) in currentPrescription_IMAGING.clinicalDetailJson.tests">
+                <input type="text" class="form-control form-control-sm min-width-unset mb-1"
+                       v-model="currentPrescription_IMAGING.clinicalDetailJson.tests[testIndex]">
+            </div>
         </div>
         <div class="mb-2">
-            <label class="text-sm text-secondary mb-1">ICDS</label>
-            <input type="text" class="form-control form-control-sm min-width-unset"
-                   v-model="currentPrescription_IMAGING.clinicalDetailJson.icds">
+            <div class="d-flex align-items-baseline">
+                <label class="text-sm text-secondary mb-0">ICDs</label>
+                <span class="mx-2 text-secondary text-sm"></span>
+                <a href="#" class="text-sm" v-on:click.prevent="addICD('IMAGING')">+ Add</a>
+            </div>
+            <div v-for="(icd, icdIndex) in currentPrescription_IMAGING.clinicalDetailJson.icds" class="d-flex align-items-center">
+                <input type="text" class="form-control form-control-sm min-width-unset mb-1 flex-grow-1"
+                       data-field="icd" :data-index="icdIndex" data-category="IMAGING"
+                       v-model="currentPrescription_IMAGING.clinicalDetailJson.icds[icdIndex]">
+                <a v-if="icdIndex>0"
+                   href="#"
+                   class="px-2"
+                   v-on:click.prevent="currentPrescription_IMAGING.clinicalDetailJson.icds.splice(icdIndex, 1)">
+                    <i class="fa fa-trash-alt text-danger on-hover-opaque"></i>
+                </a>
+            </div>
         </div>
         <div class="mb-2">
             <label class="text-sm text-secondary mb-1">Memo</label>

+ 5 - 0
resources/views/app/patient/prescriptions/index-popup.blade.php

@@ -0,0 +1,5 @@
+@extends ('layouts.patient')
+
+@section('inner-content')
+    @include('app.patient.prescriptions.list-popup')
+@endsection

+ 25 - 6
resources/views/app/patient/prescriptions/lab-form.blade.php

@@ -6,14 +6,33 @@
                onclick="return closeStagPopup()"><i class="fa fa-times-circle"></i></a>
         </h3>
         <div class="mb-2">
-            <label class="text-sm text-secondary mb-1">Test</label>
-            <input type="text" class="form-control form-control-sm min-width-unset"
-                   v-model="currentPrescription_LAB.clinicalDetailJson.test">
+            <div class="d-flex align-items-baseline">
+                <label class="text-sm text-secondary mb-0">Tests</label>
+                <span class="mx-2 text-secondary text-sm"></span>
+                <a href="#" class="text-sm" v-on:click.prevent="currentPrescription_LAB.clinicalDetailJson.tests.push('')">+ Add</a>
+            </div>
+            <div v-for="(test, testIndex) in currentPrescription_LAB.clinicalDetailJson.tests">
+                <input type="text" class="form-control form-control-sm min-width-unset mb-1"
+                       v-model="currentPrescription_LAB.clinicalDetailJson.tests[testIndex]">
+            </div>
         </div>
         <div class="mb-2">
-            <label class="text-sm text-secondary mb-1">ICDS</label>
-            <input type="text" class="form-control form-control-sm min-width-unset"
-                   v-model="currentPrescription_LAB.clinicalDetailJson.icds">
+            <div class="d-flex align-items-baseline">
+                <label class="text-sm text-secondary mb-0">ICDs</label>
+                <span class="mx-2 text-secondary text-sm"></span>
+                <a href="#" class="text-sm" v-on:click.prevent="addICD('LAB')">+ Add</a>
+            </div>
+            <div v-for="(icd, icdIndex) in currentPrescription_LAB.clinicalDetailJson.icds" class="d-flex align-items-center">
+                <input type="text" class="form-control form-control-sm min-width-unset mb-1 flex-grow-1"
+                       data-field="icd" :data-index="icdIndex" data-category="LAB"
+                       v-model="currentPrescription_LAB.clinicalDetailJson.icds[icdIndex]">
+                <a v-if="icdIndex>0"
+                   href="#"
+                   class="px-2"
+                   v-on:click.prevent="currentPrescription_LAB.clinicalDetailJson.icds.splice(icdIndex, 1)">
+                    <i class="fa fa-trash-alt text-danger on-hover-opaque"></i>
+                </a>
+            </div>
         </div>
         <div class="mb-2">
             <label class="text-sm text-secondary mb-1">Memo</label>

+ 457 - 96
resources/views/app/patient/prescriptions/list.blade.php

@@ -1,28 +1,42 @@
 <div id="prescriptions-{{$patient->id}}" v-cloak>
     <div class="d-flex align-items-baseline py-2">
-        <h6 class="my-0 font-weight-bold text-secondary font-size-14">Prescriptions</h6>
-        <span class="mx-2 text-secondary on-hover-opaque">|</span>
-        <a href="#" v-on:click.prevent="newPrescription('DRUG')">+ Drug</a>
-        <span class="mx-2 text-secondary on-hover-opaque">|</span>
-        <a href="#" v-on:click.prevent="newPrescription('LAB')">+ Lab</a>
-        <span class="mx-2 text-secondary on-hover-opaque">|</span>
-        <a href="#" v-on:click.prevent="newPrescription('IMAGING')">+ Imaging</a>
-        <span class="mx-2 text-secondary on-hover-opaque">|</span>
-        <a href="#" v-on:click.prevent="newPrescription('REFERRAL')">+ Referral</a>
-        <span class="mx-2 text-secondary on-hover-opaque">|</span>
-        <a href="#" v-on:click.prevent="newPrescription('SUPPLY')">+ Supply</a>
-        <span class="mx-2 text-secondary on-hover-opaque">|</span>
-        <a href="#" v-on:click.prevent="newPrescription('OTHER')">+ Other</a>
+        <h6 class="my-0 font-weight-bold text-secondary font-size-14">ERx &amp; Orders</h6>
+        @if(!request()->input('erx_category') || request()->input('erx_category') === 'DRUG')
+            <span class="mx-2 text-secondary on-hover-opaque">|</span>
+            <a href="#" v-on:click.prevent="newERx('DRUG')">+ Drug</a>
+        @endif
+        @if(!request()->input('erx_category') || request()->input('erx_category') === 'LAB')
+            <span class="mx-2 text-secondary on-hover-opaque">|</span>
+            <a href="#" v-on:click.prevent="newERx('LAB')">+ Lab</a>
+        @endif
+        @if(!request()->input('erx_category') || request()->input('erx_category') === 'IMAGING')
+            <span class="mx-2 text-secondary on-hover-opaque">|</span>
+            <a href="#" v-on:click.prevent="newERx('IMAGING')">+ Imaging</a>
+        @endif
+        @if(!request()->input('erx_category') || request()->input('erx_category') === 'REFERRAL')
+            <span class="mx-2 text-secondary on-hover-opaque">|</span>
+            <a href="#" v-on:click.prevent="newERx('REFERRAL')">+ Referral</a>
+        @endif
+        @if(!request()->input('erx_category') || request()->input('erx_category') === 'SUPPLY')
+            <span class="mx-2 text-secondary on-hover-opaque">|</span>
+            <a href="#" v-on:click.prevent="newERx('SUPPLY')">+ Supply</a>
+        @endif
+        @if(!request()->input('erx_category') || request()->input('erx_category') === 'OTHER')
+            <span class="mx-2 text-secondary on-hover-opaque">|</span>
+            <a href="#" v-on:click.prevent="newERx('OTHER')">+ Other</a>
+        @endif
     </div>
     <div class="d-flex align-items-start">
         <table class="table table-striped table-sm table-bordered mb-0 flex-grow-1">
             <thead>
             <tr>
                 <th class="px-2 text-secondary border-bottom-0">Created</th>
-                <th class="px-2 text-secondary border-bottom-0">Type</th>
-                <th class="px-2 text-secondary border-bottom-0">Clinical</th>
+                @if(!request()->input('erx_category'))
+                    <th class="px-2 text-secondary border-bottom-0">Type</th>
+                @endif
+                <th class="px-2 text-secondary border-bottom-0 w-50">Clinical</th>
                 <th class="px-2 text-secondary border-bottom-0">Prescriber</th>
-                <th class="px-2 text-secondary border-bottom-0">Sign</th>
+                <th class="px-2 text-secondary border-bottom-0" v-if="!currentPrescription">Sign</th>
             </tr>
             </thead>
             <tbody>
@@ -34,7 +48,9 @@
                         <div v-if="prescription.note_id === {{$note->id}}" class="text-info mt-1">* Create on this note</div>
                     @endif
                 </td>
+                @if(!request()->input('erx_category'))
                 <td class="px-2">@{{prescription.erx_category}}</td>
+                @endif
                 <td class="px-2">
                     <div class="d-flex align-items-baseline">
                         {{--
@@ -42,13 +58,16 @@
                         <span v-else class="mr-2" title="Cannot edit. Prescription already signed."><i class="fa fa-edit on-hover-opaque text-secondary"></i></span>
                         --}}
                         <div v-if="prescription.clinical_detail_json" class="d-inline-flex align-items-baseline">
-                            <div class="d-flex align-items-baseline" v-if="prescription.erx_category === 'DRUG'">
-                                <b class="mr-2">@{{prescription.clinical_detail_json.medication ?? '-'}}</b>
-                                <span class="text-secondary mr-1">@{{prescription.clinical_detail_json.frequency ?? ''}}</span>
+                            <div class="" v-if="prescription.erx_category === 'DRUG'">
+                                <div class="d-flex align-items-baseline mb-1" v-for="drug in prescription.clinical_detail_json.items">
+                                    <b class="mr-2">@{{drug.medication ?? '-'}}</b>
+                                    <span class="text-secondary mr-1">@{{drug.frequency ?? ''}}</span>
+                                </div>
                             </div>
                             <div class="d-flex align-items-baseline" v-if="prescription.erx_category === 'LAB' || prescription.erx_category === 'IMAGING'">
-                                <b class="mr-2">@{{prescription.clinical_detail_json.test ?? '-'}}</b>
-                                <span class="text-secondary mr-1">@{{prescription.clinical_detail_json.icds ?? '-'}}</span>
+                                <div class="d-flex align-items-baseline mb-1" v-for="test in prescription.clinical_detail_json.tests">
+                                    <b class="mr-2">@{{test ?? '-'}}</b>
+                                </div>
                             </div>
                             <div class="d-flex align-items-baseline" v-if="prescription.erx_category === 'REFERRAL'">
                                 <b class="mr-2">@{{prescription.clinical_detail_json.to ?? '-'}}</b>
@@ -75,7 +94,7 @@
                         <div>@{{prescription.hcpProDisplayName}}</div>
                     </div>
                 </td>
-                <td class="px-2">
+                <td class="px-2" v-if="!currentPrescription">
                     <div v-if="prescription.has_hcp_pro_signed" class="d-flex align-items-baseline">
                         <i class="text-secondary fa fa-check mr-1"></i>
                         <span class="text-secondary">Signed</span>
@@ -92,34 +111,10 @@
             </tr>
             </tbody>
         </table>
-        <div v-if="currentPrescription" class="min-width-500px ml-2 border align-self-stretch p-3">
+        <div v-if="currentPrescription" class="min-width-700px ml-2 border align-self-stretch p-3">
             <div class="d-flex align-items-center">
                 <h3 class="font-size-16 m-0">
-                    <div v-if="currentPrescription.clinical_detail_json" class="d-inline-flex align-items-baseline">
-                        <div class="d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'DRUG'">
-                            <b class="mr-2 font-size-16">@{{currentPrescription.clinical_detail_json.medication ?? '-'}}</b>
-                            <!--<span class="text-secondary mr-1 font-size-16">@{{currentPrescription.clinical_detail_json.strength ?? '-'}}</span>
-                            <span class="text-secondary mr-1 font-size-16">@{{currentPrescription.clinical_detail_json.amount ?? '-'}}</span>
-                            <span class="text-secondary mr-1 font-size-16">@{{currentPrescription.clinical_detail_json.route ?? '-'}}</span>-->
-                        </div>
-                        <div class="d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'LAB' || currentPrescription.erx_category === 'IMAGING'">
-                            <b class="mr-2 font-size-16">@{{currentPrescription.clinical_detail_json.test ?? '-'}}</b>
-                            <span class="text-secondary mr-1 font-size-16">@{{currentPrescription.clinical_detail_json.icds ?? '-'}}</span>
-                        </div>
-                        <div class="d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'REFERRAL'">
-                            <b class="mr-2 font-size-16">@{{currentPrescription.clinical_detail_json.to ?? '-'}}</b>
-                            <span class="text-secondary mr-1 font-size-16">@{{currentPrescription.clinical_detail_json.memo ?? '-'}}</span>
-                        </div>
-                        <div class="d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'SUPPLY'">
-                            <b class="mr-2 font-size-16">@{{currentPrescription.clinical_detail_json.item ?? '-'}}</b>
-                            <span class="text-secondary mr-1 font-size-16">@{{currentPrescription.clinical_detail_json.quantity ?? '-'}}</span>
-                        </div>
-                        <div class="d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'OTHER'">
-                            <b class="mr-2 font-size-16">@{{currentPrescription.clinical_detail_json.title ?? '-'}}</b>
-                            <span class="text-secondary mr-1 font-size-16">@{{currentPrescription.clinical_detail_json.memo ?? '-'}}</span>
-                        </div>
-                    </div>
-                    <div v-else>-</div>
+                    <span class="mr-1 font-size-16">@{{ currentPrescription.erx_category }} / @{{ currentPrescription.created_at_friendly_short }}</span>
                 </h3>
                 <a class="ml-auto" href="#" v-on:click.prevent="currentPrescription=null">
                     <i class="fa fa-times-circle on-hover-opaque"></i>
@@ -135,25 +130,28 @@
                     @endif
                 </div>
             </div>
+            @if(!request()->input('erx_category'))
             <div class="pb-2 d-flex align-items-center">
                 <span class="min-width-140px text-secondary text-sm">Type</span>
                 <span>@{{currentPrescription.erx_category}}</span>
             </div>
-            <div class="pb-2 d-flex align-items-center">
+            @endif
+            <div class="pb-2 d-flex align-items-baseline" v-if="currentPrescription.erx_category !== 'DRUG'">
                 <span class="min-width-140px text-secondary text-sm">Clinical</span>
                 <div class="d-inline-flex align-items-baseline flex-grow-1">
                     <a v-if="!currentPrescription.has_hcp_pro_signed" class="mr-2" href="#" v-on:click.prevent="editClinicalDetails(currentPrescription)"><i class="fa fa-edit on-hover-opaque"></i></a>
                     <span v-else class="mr-2" title="Cannot edit. Prescription already signed."><i class="fa fa-edit on-hover-opaque text-secondary"></i></span>
                     <div v-if="currentPrescription.clinical_detail_json" class="d-inline-flex align-items-baseline">
-                        <div class="d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'DRUG'">
-                            <b class="mr-2">@{{currentPrescription.clinical_detail_json.medication ?? '-'}}</b>
-                            <!--<span class="text-secondary mr-1">@{{currentPrescription.clinical_detail_json.strength ?? '-'}}</span>
-                            <span class="text-secondary mr-1">@{{currentPrescription.clinical_detail_json.dispense ?? '-'}}</span>
-                            <span class="text-secondary mr-1">@{{currentPrescription.clinical_detail_json.refills ?? '-'}}</span>-->
+                        <div class="" v-if="currentPrescription.erx_category === 'DRUG'">
+                            <div class="d-flex align-items-baseline mb-1" v-for="drug in currentPrescription.clinical_detail_json.items">
+                                <b class="mr-2">@{{drug.medication ?? '-'}}</b>
+                                <span class="text-secondary mr-1">@{{drug.frequency ?? ''}}</span>
+                            </div>
                         </div>
                         <div class="d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'LAB' || currentPrescription.erx_category === 'IMAGING'">
-                            <b class="mr-2">@{{currentPrescription.clinical_detail_json.test ?? '-'}}</b>
-                            <span class="text-secondary mr-1">@{{currentPrescription.clinical_detail_json.icds ?? '-'}}</span>
+                            <div class="d-flex align-items-baseline mb-1" v-for="test in currentPrescription.clinical_detail_json.tests">
+                                <b class="mr-2">@{{test ?? '-'}}</b>
+                            </div>
                         </div>
                         <div class="d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'REFERRAL'">
                             <b class="mr-2">@{{currentPrescription.clinical_detail_json.to ?? '-'}}</b>
@@ -171,6 +169,119 @@
                     <div v-else>-</div>
                 </div>
             </div>
+            <div class="pb-2 d-flex align-items-baseline" v-if="currentPrescription.erx_category === 'DRUG'">
+                <span class="min-width-140px text-secondary text-sm">Medications</span>
+                <div class="flex-grow-1">
+
+                    <div v-if="currentPrescription.clinical_detail_json">
+                        <div class="d-flex align-items-baseline mb-1" v-for="drug in currentPrescription.clinical_detail_json.items">
+                            <a v-if="!currentPrescription.has_hcp_pro_signed" class="mr-2" href="#"
+                               v-on:click.prevent="removeDrugFromERx(drug.medication)">
+                                <i class="fa fa-trash-alt text-danger on-hover-opaque"></i>
+                            </a>
+                            <div>
+                                <div class="d-flex align-items-baseline">
+                                    <b class="mr-2">@{{drug.medication ?? '-'}}</b>
+                                    <span class="text-secondary ml-1">@{{drug.frequency ?? ''}}</span>
+                                </div>
+                                <div class="d-flex align-items-baseline">
+                                    <span class="text-secondary">Dispense:</span>
+                                    <span class="ml-1">@{{ drug.dispense ? drug.dispense : '-' }}</span>
+                                    <span class="text-secondary ml-2">Refills:</span>
+                                    <span class="ml-1">@{{ drug.refills ? drug.refills : '-' }}</span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+
+                    @if(@$note)
+                    <div class="d-flex align-items-baseline" v-if="!currentPrescription.has_hcp_pro_signed">
+                        <a href="#" v-on:click.prevent="setAddMode('existing')">+ Existing Medication</a>
+                        <span class="mx-2">|</span>
+                        <a href="#" v-on:click.prevent="setAddMode('new')">+ New Medication</a>
+                    </div>
+                    @endif
+                </div>
+            </div>
+
+            @if(@$note)
+            <div v-if="addDrugToErxMode === 'existing'" class="border border-info p-2 bg-aliceblue mb-2 rounded">
+                <div class="d-flex align-items-baseline mb-2">
+                    <label for="" class="text-secondary font-weight-bold m-0">Add From Existing Medications</label>
+                    <a href="#" v-on:click.prevent="setAddMode('')" class="ml-auto">Close</a>
+                </div>
+                <table class="m-0 table table-sm border bg-white table-hover">
+                    <tr>
+                        <th>Medication</th>
+                        <th>Dispense</th>
+                        <th>Refills</th>
+                        <th>&nbsp;</th>
+                    </tr>
+                    <tr v-for="drug in existingDrugs" v-if="notAlreadyAdded(drug.data.name)">
+                        <td class="min-width-200px">@{{ drug.data.name }}</td>
+                        <td class="width-70px py-0 pr-0"><input type="text" class="form-control form-control-sm min-width-unset rounded-0 border-top-0 border-bottom-0 border-right-0 shadow-none" v-model="drug.data.dispense"></td>
+                        <td class="width-70px py-0 pl-0"><input type="text" class="form-control form-control-sm min-width-unset rounded-0 border-top-0 border-bottom-0 shadow-none" v-model="drug.data.refills"></td>
+                        <td class="text-right">
+                            <a href="#" v-on:click.prevent="addExistingDrugToERx(drug.uid)" class="text-nowrap">Add to eRx</a>
+                        </td>
+                    </tr>
+                </table>
+            </div>
+
+            <div v-if="addDrugToErxMode === 'new'" class="border border-info p-2 bg-aliceblue mb-2 rounded">
+                <form action="/api/visitPoint/addTopLevel" class="mcp-theme-1 w-100" id="frm-add-medication-and-add-to-erx">
+                    <input type="hidden" name="noteUid" value="{{$note->uid}}">
+                    <input type="hidden" name="category" value="MEDICATION">
+                    <input type="hidden" name="data">
+
+                    <input type="hidden" data-name="medId">
+                    <input type="hidden" data-name="routedMedId">
+                    <input type="hidden" data-name="routedDosageFormMedId">
+                    <input type="hidden" data-name="gcnSeqno">
+
+                    <input type="hidden" name="additionReasonCategory" value="DURING_VISIT">
+                    <input type="hidden" name="isRemoved" value="0">
+                    <input type="hidden" name="removalReasonCategory">
+                    <input type="hidden" name="isRemovedDueToEntryError" value="0">
+
+                    <div class="d-flex align-items-baseline mb-2">
+                        <label for="" class="text-secondary font-weight-bold m-0">Add New Medication</label>
+                        <a href="#" v-on:click.prevent="setAddMode('')" class="ml-auto">Close</a>
+                    </div>
+
+                    <div class="row mb-2">
+                        <div class="col-8 pr-0">
+                            <label class="text-sm text-secondary mb-0">Name</label>
+                            <input type="text" data-name="name" class="form-control form-control-sm" stag-suggest="" stag-suggest-bottom-left="" stag-suggest-ep="/fdb-med-suggest-v2/json" required="" stag-suggest-initialized="1"><div class="stag-suggestions-container position-relative"><div class="suggestions-outer stag-suggestions position-absolute d-none"></div></div>
+                        </div>
+                        <div class="col-4">
+                            <label class="text-sm text-secondary mb-0">Frequency</label>
+                            <input type="text" class="form-control form-control-sm min-width-unset" data-name="frequency" data-option-list="frequency-options" autocomplete="off">
+                            <div id="frequency-options" class="data-option-list">
+                                <div>Once a day</div>
+                                <div>Twice a day</div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="row mb-2">
+                        <div class="col-4 pr-0">
+                            <label class="text-sm text-secondary mb-0">Dispense</label>
+                            <input type="text" class="form-control form-control-sm" name="dispense" autocomplete="off">
+                        </div>
+                        <div class="col-4 pr-0">
+                            <label class="text-sm text-secondary mb-0">Refills</label>
+                            <input type="text" class="form-control form-control-sm" name="refills" autocomplete="off">
+                        </div>
+                    </div>
+
+                    <div class="d-flex align-items-center">
+                        <button type="submit" class="btn btn-sm btn-primary mr-2 my-1">Save &amp; Add to eRx</button>
+                    </div>
+                </form>
+            </div>
+            @endif
+
+            <hr class="my-3">
             <div class="pb-2 d-flex align-items-center">
                 <span class="min-width-140px text-secondary text-sm">Logistics</span>
                 <div class="d-inline-flex align-items-baseline flex-grow-1">
@@ -275,11 +386,31 @@
                 $currentPrescription = $prescription;
             }
         }
+
+        if(!!request()->input('erx_category')) {
+            $prescriptions = $prescriptions->filter(function($_p) {
+                return $_p->erx_category === request()->input('erx_category');
+            });
+        }
+
+        $existingActiveDrugs = \App\Models\Point
+            ::where('client_id', $patient->id)
+            ->where('category', 'MEDICATION')
+            ->where('is_removed_due_to_entry_error', false)
+            ->where('is_removed', false)
+            ->orderBy('created_at')
+            ->get();
+        foreach ($existingActiveDrugs as $point) {
+            if ($point->data) {
+                $point->data = json_decode($point->data);
+            }
+        }
+
         ?>
 
         function init() {
 
-            new Vue({
+            window.eRxApp = new Vue({
                 el: '#prescriptions-{{$patient->id}}',
                 delimiters: ['@{{', '}}'],
                 data: {
@@ -289,6 +420,10 @@
                     currentPrescriptionAction: '',
                     currentPrescriptionType: '',
 
+                    addDrugToErxMode: '',
+                    existingDrugs: <?= json_encode($existingActiveDrugs) ?>,
+                    existingDrugToAddUid: '',
+
                     // selected
                     currentPrescription:  <?= $currentPrescription ? json_encode($currentPrescription) : 'null' ?>,
 
@@ -300,21 +435,15 @@
                         hcpProUid: '{{$pro->uid}}',
                         erxCategory: 'DRUG',
                         clinicalDetailJson: {
-                            medication: '',
-                            route: '',
-                            dose: '',
-                            strength: '',
-                            frequency: '',
-                            dispense: '',
-                            refills: '',
-                            purpose: '',
-
-                            // fdb specific
-                            medNameID: '',
-                            routedMedID: '',
-                            dosageFormMedID: '',
-                            gcnSeqno: '',
-                            medId: '',
+                            items: [
+                                {
+                                    medication: '',
+                                    frequency: '',
+                                    dispense: '',
+                                    refills: '',
+                                    purpose: ''
+                                }
+                            ]
                         }
                     },
                     currentPrescription_LAB: {
@@ -424,6 +553,22 @@
                 },
                 methods: {
 
+                    // new eRx (only for popup-list)
+                    newERx: function(_type) {
+                        let payload = {
+                            noteUid: '{{ @$note ? $note->uid : '' }}',
+                            clientUid: '{{$patient->uid}}',
+                            hcpProUid: '{{$pro->uid}}',
+                            erxCategory: _type
+                        };
+                        $.post('/api/erx/create', payload, _data => {
+                            if(!hasResponseError(_data)) {
+                                fastReload();
+                            }
+                        }, 'json');
+                        return false;
+                    },
+
                     // new/edit/save-clinical
                     newPrescription: function(_type) {
                         this.currentPrescriptionAction = 'ADD';
@@ -437,21 +582,15 @@
                                     hcpProUid: '{{$pro->uid}}',
                                     erxCategory: _type,
                                     clinicalDetailJson: {
-                                        medication: '',
-                                        route: '',
-                                        dose: '',
-                                        strength: '',
-                                        frequency: '',
-                                        dispense: '',
-                                        refills: '',
-                                        purpose: '',
-
-                                        // fdb specific
-                                        medNameID: '',
-                                        routedMedID: '',
-                                        dosageFormMedID: '',
-                                        gcnSeqno: '',
-                                        medId: '',
+                                        items: [
+                                            {
+                                                medication: '',
+                                                frequency: '',
+                                                dispense: '',
+                                                refills: '',
+                                                purpose: ''
+                                            }
+                                        ]
                                     }
                                 };
                                 break;
@@ -525,7 +664,12 @@
                         this.currentPrescriptionType = _prescription.erx_category;
                         this['currentPrescription_' + this.currentPrescriptionType] = {
                             uid: _prescription.uid,
-                            clinicalDetailJson: JSON.parse(JSON.stringify(_prescription.clinical_detail_json))
+                            clinicalDetailJson: _prescription.clinical_detail_json ?
+                                JSON.parse(JSON.stringify(_prescription.clinical_detail_json)) :
+                                {
+                                    tests: [''],
+                                    icds: ['']
+                                }
                         };
                         Vue.nextTick(() => {
                             showStagPopup('prescription-popup-' + this.currentPrescriptionType, true);
@@ -535,7 +679,7 @@
                                 this.initFdbMedSuggest();
 
                                 // re-populate drug fields
-                                console.log(this.currentPrescription_DRUG);
+                                /*console.log(this.currentPrescription_DRUG);
                                 let parentSegment = $('#prescriptions-{{$patient->id}} [stag-popup-key="prescription-popup-DRUG"]>form').first();
                                 parentSegment.find('input.prescription-medication').val(this.currentPrescription_DRUG.clinicalDetailJson.medication);
                                 parentSegment.find('select.prescription-route')
@@ -549,7 +693,10 @@
                                 parentSegment.find('select.prescription-strength')
                                     .empty()
                                     .append($('<option/>').attr('value', 1).text(this.currentPrescription_DRUG.clinicalDetailJson.strength))
-                                    .val(1);
+                                    .val(1);*/
+                            }
+                            else if(this.currentPrescriptionType === 'LAB' || this.currentPrescriptionType === 'IMAGING') {
+                                this.initICDAutoSuggest();
                             }
                         });
                     },
@@ -562,11 +709,7 @@
                                     if(!hasResponseError(_data)) {
                                         toastr.success('Prescription added');
                                         closeStagPopup();
-                                        @if(@$note)
                                         fastReload();
-                                        @else
-                                        fastLoad('/patients/view/{{$patient->uid}}/prescriptions/' + this.currentPrescriptionType.toLowerCase() + '/' + _data.data);
-                                        @endif
                                     }
                                 }, 'json');
                                 break;
@@ -818,16 +961,234 @@
                             // _data is {med_name_id: "50567", text: "Children's Tylenol"}
 
                             // set vue values
-                            self.currentPrescription_DRUG.clinicalDetailJson.medication = _data.text;
+                            //self.currentPrescription_DRUG.clinicalDetailJson.medication = _data.text;
 
                         });
-                    }
+                    },
+                    notAlreadyAdded: function(_name) {
+                        if(!this.currentPrescription ||
+                            !this.currentPrescription.clinical_detail_json ||
+                            !this.currentPrescription.clinical_detail_json.items) return true;
+                        for (let i = 0; i < this.currentPrescription.clinical_detail_json.items.length; i++) {
+                            if(this.currentPrescription.clinical_detail_json.items[i].medication === _name) {
+                                return false;
+                            }
+                        }
+                        return true;
+                    },
+                    addExistingDrugToERx: function(_uid) {
+                        if(!this.currentPrescription.clinical_detail_json) {
+                            this.currentPrescription.clinical_detail_json = {};
+                        }
+                        if(!this.currentPrescription.clinical_detail_json.items) {
+                            this.currentPrescription.clinical_detail_json.items = [];
+                        }
+                        let existing = this.existingDrugs.filter(_x => {
+                            return _x.uid === _uid;
+                        });
+                        if(!existing || !existing.length) return false;
+                        existing = existing[0];
+                        this.currentPrescription.clinical_detail_json.items.push({
+                            medication: existing.data.name,
+                            frequency: existing.data.frequency,
+                            dispense: existing.data.dispense,
+                            refills: existing.data.refills,
+                        });
+                        this.currentPrescription.clinical_detail_json.items = JSON.parse(JSON.stringify(this.currentPrescription.clinical_detail_json.items));
+                        let temp = this.currentPrescription;
+                        this.currentPrescription = null;
+                        this.currentPrescription = temp;
+                        this.setCurrentPrescription(temp);
+
+                        // save erx
+                        $.post('/api/erx/updateClinicalDetail', {
+                            uid: this.currentPrescription.uid,
+                            clinicalDetailJson: JSON.stringify(this.currentPrescription.clinical_detail_json)
+                        }, _data => {
+                            if(!hasResponseError(_data)) {
+                                // nothing to do
+                            }
+                        }, 'json');
+                    },
+                    removeDrugFromERx: function(_name) {
+                        this.currentPrescription.clinical_detail_json.items = this.currentPrescription.clinical_detail_json.items.filter(_x => {
+                            return _x.medication !== _name;
+                        });
+                        let temp = this.currentPrescription;
+                        this.currentPrescription = null;
+                        this.currentPrescription = temp;
+
+                        // save erx
+                        $.post('/api/erx/updateClinicalDetail', {
+                            uid: this.currentPrescription.uid,
+                            clinicalDetailJson: JSON.stringify(this.currentPrescription.clinical_detail_json)
+                        }, _data => {
+                            if(!hasResponseError(_data)) {
+                                // nothing to do
+                            }
+                        }, 'json');
+                    },
+                    setCurrentPrescription: function(_prescription) {
+                        this.currentPrescription = _prescription;
+                    },
+                    setAddMode: function(_mode) {
+                        let self = this;
+                        this.addDrugToErxMode = _mode;
+                        if(this.addDrugToErxMode === 'new') {
+                            Vue.nextTick(() => {
+
+                                let parentSegment = $('#prescriptions-popup-{{$patient->id}}');
+
+                                parentSegment.find('[stag-suggest-initialized]').removeAttr('stag-suggest-initialized');
+                                initStagSuggest();
+
+                                parentSegment.find('input[stag-suggest][data-name="name"]')
+                                    .off('stag-suggest-selected')
+                                    .on('stag-suggest-selected', (_e, _input, _data) => {
+                                        $(_input).closest('form').find('input[data-name="routedMedId"]').val(_data.routed_med_id);
+                                        $(_input).closest('form').find('input[data-name="routedDosageFormMedId"]').val(_data.routed_dosage_form_med_id);
+                                        $(_input).closest('form').find('input[data-name="gcnSeqno"]').val(_data.gcn_seqno);
+                                        $(_input).closest('form').find('input[data-name="medId"]').val(_data.medid);
+                                        return false;
+                                    });
+
+                                // bind events for add-new-med and add-to-erx in one shot
+                                parentSegment.find('#frm-add-medication-and-add-to-erx')
+                                    .off('submit')
+                                    .on('submit', function () {
+
+                                        let form = $(this);
+
+                                        if (!form[0].checkValidity()) {
+                                            form[0].reportValidity();
+                                            return false;
+                                        }
+
+                                        // add [data-name] values to payload
+                                        let dataField = form.find('[name="data"]').first();
+                                        let parsed = null;
+                                        if (dataField.val()) {
+                                            parsed = JSON.parse(dataField.val());
+                                        }
+                                        form.find('[data-name]').each(function () {
+                                            if (!parsed) parsed = {};
+
+                                            let keys = $(this).attr('data-name').split('->');
+                                            let currentNode = parsed;
+                                            for (let i = 0; i < keys.length; i++) {
+                                                if (i !== keys.length - 1) {
+                                                    if (typeof currentNode[keys[i]] === 'undefined') {
+                                                        currentNode[keys[i]] = {};
+                                                    }
+                                                    currentNode = currentNode[keys[i]];
+                                                } else {
+                                                    if ($(this).is(':checkbox')) {
+                                                        currentNode[keys[i]] = $(this).prop('checked');
+                                                    } else {
+                                                        currentNode[keys[i]] = $(this).val();
+                                                    }
+                                                }
+                                            }
+
+                                        });
+                                        if (parsed) {
+                                            dataField.val(JSON.stringify(parsed));
+                                        }
+
+                                        let newERxItem = {
+                                            medication: form.find('[data-name="name"]').val(),
+                                            frequency: form.find('[data-name="frequency"]').val(),
+                                            dispense: form.find('[name="dispense"]').val(),
+                                            refills: form.find('[name="refills"]').val(),
+                                        };
+
+                                        $.post(form.attr('action'), form.serialize(), _data => {
+                                            if (!hasResponseError(_data)) {
+                                                hideMask();
+                                                // refreshDynamicStagPopup();
+                                                // $('.visit-segment[data-segment-template-name="intake_medications"]').find('.refresh-segment').trigger('click');
+
+                                                if(!self.currentPrescription.clinical_detail_json) {
+                                                    self.currentPrescription.clinical_detail_json = {};
+                                                }
+                                                if(!self.currentPrescription.clinical_detail_json.items) {
+                                                    self.currentPrescription.clinical_detail_json.items = [];
+                                                }
+                                                self.currentPrescription.clinical_detail_json.items.push(newERxItem);
+                                                self.currentPrescription.clinical_detail_json.items = JSON.parse(JSON.stringify(self.currentPrescription.clinical_detail_json.items));
+                                                let temp = self.currentPrescription;
+                                                self.currentPrescription = null;
+                                                self.currentPrescription = temp;
+                                                self.setCurrentPrescription(temp);
+
+                                                // save erx
+                                                $.post('/api/erx/updateClinicalDetail', {
+                                                    uid: self.currentPrescription.uid,
+                                                    clinicalDetailJson: JSON.stringify(self.currentPrescription.clinical_detail_json)
+                                                }, _data => {
+                                                    if(!hasResponseError(_data)) {
+                                                        // nothing to do
+
+                                                        self.setAddMode('');
+                                                    }
+                                                }, 'json');
+
+                                            }
+                                        }, 'json');
+                                        return false;
+                                    });
+
+                            });
+                        }
+                    },
+                    addICD: function(_category) {
+                        this['currentPrescription_' + _category].clinicalDetailJson.icds.push('');
+                        Vue.nextTick(() => {
+                            this.initICDAutoSuggest();
+                        });
+                    },
+                    initICDAutoSuggest: function() {
+                        let self = this;
+                        let parentSegment = $('#prescriptions-{{$patient->id}}');
+                        parentSegment.find('input[type="text"][data-field="icd"]:not([ac-initialized])').each(function() {
+                            var elem = this,
+                                dynID = 'icd-' + Math.ceil(Math.random() * 1000000),
+                                vueIndex = $(this).attr('data-index'),
+                                category = $(this).attr('data-category');
+                            $(elem).attr('id', dynID);
+                            new window.Def.Autocompleter.Search(dynID,
+                                'https://clinicaltables.nlm.nih.gov/api/icd10cm/v3/search?sf=code,name&ef=name', {
+                                    tableFormat: true,
+                                    valueCols: [0],
+                                    colHeaders: ['Code', 'Name'],
+                                }
+                            );
+                            window.Def.Autocompleter.Event.observeListSelections(dynID, function() {
+                                let autocomp = elem.autocomp, acData = autocomp.getSelectedItemData();
+                                // self.data['next_cc']['list'][vueIndex].icd = acData[0].code;
+                                // self.data['next_cc']['list'][vueIndex].memo = acData[0].data['name'];
+                                self['currentPrescription_' + category].clinicalDetailJson.icds[vueIndex] = acData[0].code;
+                                return false;
+                            });
+                            $(elem).attr('ac-initialized', 1);
+                        });
+                    },
                 },
                 mounted: function() {
                     let self = this;
                     $(document).on('pro-changed', '.erx-hcp-pro-select', function() {
                         self.currentPrescriptionHcpPro.newHcpProUid = this.value;
                     });
+
+                    // auto select latest prescription (if no current is set)
+                    Vue.nextTick(() => {
+                        if(!this.currentPrescription) {
+                            for(let x in this.prescriptions) {
+                                this.currentPrescription = this.prescriptions[x];
+                                break;
+                            }
+                        }
+                    });
                 }
             });
 

+ 32 - 33
resources/views/app/patient/prescriptions/pdf/DRUG.blade.php

@@ -51,39 +51,38 @@
 </section>
 
 <?php $clinical = json_decode($prescription->clinical_detail_json); ?>
-<div style="margin: 1.5rem 0 1rem; font-weight: bold; opacity: 0.5"><span style="font-size: 24px">R</span><span style="font-size: 16px">x</span></div>
-<section style="font-size: 15px;">
-    <table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
-        <tr>
-            <td style="width: 20px; vertical-align: top; opacity: 0.75; font-size: 14px">
-                <span>1. </span>
-            </td>
-            <td style="vertical-align: top">
-                <div>
-                    <p style="margin: 0 0 0.5rem;">
-                        <b>{{ $clinical->medication }} {{ $clinical->strength }}
-                            @if($clinical->route)
-                                - {{ $clinical->route }}
+<?php if($clinical && @$clinical->items): ?>
+    <div style="margin: 1.5rem 0 1rem; font-weight: bold; opacity: 0.5"><span style="font-size: 24px">R</span><span style="font-size: 16px">x</span></div>
+    <section style="font-size: 15px;">
+        <?php $count = 0; ?>
+        <?php foreach ($clinical->items as $item): ?>
+        <table cellpadding="0" cellspacing="0" border="0" style="width: 100%; margin-bottom: 5pt">
+            <tr>
+                <td style="width: 20px; vertical-align: top; opacity: 0.75; font-size: 14px">
+                    <span>{{ ++$count }}. </span>
+                </td>
+                <td style="vertical-align: top">
+                    <div>
+                        <p style="margin: 0">
+                            <b>{{ $item->medication }}</b>
+                        </p>
+                        <div style="">
+                            @if(@$item->frequency)
+                                <p style="margin: 0.5rem 0;">Frequency: {{ $item->frequency }}</p>
+                            @endif
+                            @if(@$item->dispense)
+                                <p style="margin: 0.5rem 0;">Dispense: {{ $item->dispense }}</p>
+                            @endif
+                            @if(@$item->refills)
+                                <p style="margin: 0.5rem 0;">Refills: {{ $item->refills }}</p>
                             @endif
-                        </b>
-                    </p>
-                    <div style="">
-                        @if($clinical->frequency)
-                            <p style="margin: 0.5rem 0;">Frequency: {{ $clinical->frequency }}</p>
-                        @endif
-                        @if($clinical->dispense)
-                            <p style="margin: 0.5rem 0;">Dispense: {{ $clinical->dispense }}</p>
-                        @endif
-                        @if($clinical->refills)
-                            <p style="margin: 0.5rem 0;">Refills: {{ $clinical->refills }}</p>
-                        @endif
-                        @if($clinical->purpose)
-                            <p style="margin: 0.5rem 0;">Purpose: <b>{{ $clinical->purpose }}</b></p>
-                        @endif
+                        </div>
                     </div>
-                </div>
-            </td>
-        </tr>
-    </table>
-</section>
+                </td>
+            </tr>
+        </table>
+        <?php endforeach; ?>
+    </section>
+<?php endif; ?>
+
 

+ 2 - 7
resources/views/app/patient/prescriptions/pdf/IMAGING.blade.php

@@ -166,7 +166,7 @@
             <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Yes&nbsp;&nbsp;/&nbsp;&nbsp;No</td>
             <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">ICD Codes:</td>
             <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">
-                {{@$clinical->icds ?: ''}}
+                {{@$clinical->icds ? implode(", ", @$clinical->icds) : '-'}}
             </td>
         </tr>
         <tr>
@@ -177,7 +177,6 @@
         </tr>
     </table>
 
-
 </section>
 
 
@@ -189,13 +188,9 @@
 
 <section style="font-size: 15px;">
     <table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
-        <?php $testIndex = 1; ?>
         <tr>
-            <td style="width: 20px; vertical-align: top; opacity: 0.75; font-size: 14px">
-                <span>{{$testIndex++}}. </span>
-            </td>
             <td style="vertical-align: top">
-                <div style="padding-bottom: 0.3rem;">{{$clinical->test}} <span style="padding-left: 15px; color: #666">{{$clinical->memo}}</span></div>
+                {!! @$clinical->tests ? implode("<br>", @$clinical->tests) : '-' !!}
             </td>
         </tr>
     </table>

+ 2 - 7
resources/views/app/patient/prescriptions/pdf/LAB.blade.php

@@ -166,7 +166,7 @@
             <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">Yes&nbsp;&nbsp;/&nbsp;&nbsp;No</td>
             <td style="padding-bottom: 0.25rem; width: 20%; opacity: 0.75;">ICD Codes:</td>
             <td style="padding-bottom: 0.25rem; width: 30%; opacity: 0.75; font-weight: bold;">
-                {{@$clinical->icds ?: ''}}
+                {{@$clinical->icds ? implode(", ", @$clinical->icds) : '-'}}
             </td>
         </tr>
         <tr>
@@ -177,7 +177,6 @@
         </tr>
     </table>
 
-
 </section>
 
 
@@ -189,13 +188,9 @@
 
 <section style="font-size: 15px;">
     <table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
-        <?php $testIndex = 1; ?>
         <tr>
-            <td style="width: 20px; vertical-align: top; opacity: 0.75; font-size: 14px">
-                <span>{{$testIndex++}}. </span>
-            </td>
             <td style="vertical-align: top">
-                <div style="padding-bottom: 0.3rem;">{{$clinical->test}} <span style="padding-left: 15px; color: #666">{{$clinical->memo}}</span></div>
+                {!! @$clinical->tests ? implode("<br>", @$clinical->tests) : '-' !!}
             </td>
         </tr>
     </table>

+ 256 - 0
resources/views/app/patient/primary-coverage-form.blade.php

@@ -0,0 +1,256 @@
+<?php
+$medicaidStates = Config::get('constants.medicaid_states');
+?>
+	<div id="new-coverage-form-{{$patient->uid}}">
+		<div class="p-3">
+			<form :url="url" class="mcp-theme-1" @submit.prevent="submitForm">
+				<input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
+				<div class="row">
+					<div class="form-group col-md-12">
+						<p class="mb-1 font-weight-bold">Type of insurance card:</p>
+						<div class="form-check form-check-inline">
+							<label class="form-check-label"><input class="form-check-input" type="radio" v-model="insuranceCardType" @change="updateUrl" name="insuranceCardType" value="medicare">Medicare Part B (Primary)</label>
+						</div>
+						<div class="form-check form-check-inline">
+							<label class="form-check-label"><input class="form-check-input" type="radio" v-model="insuranceCardType" @change="updateUrl" name="insuranceCardType" value="medicaid">Medicaid (Primary)</label>
+						</div>
+						<div class="form-check form-check-inline">
+							<label class="form-check-label"><input class="form-check-input" type="radio" v-model="insuranceCardType" @change="updateUrl" name="insuranceCardType" value="commercial">Commercial / Third Party (Primary)</label>
+						</div>
+					</div>
+				</div>
+
+				<div class="row" v-show="insuranceCardType == 'commercial'">
+					<div class="form-group col-md-12">
+						<label for="" class="control-label">Commercial Payer</label>
+						<input name="commercialPayerUidSuggest" class="form-control input-sm" value="" stag-suggest stag-suggest-ep="/search-payer/json" />
+						<input type="hidden" name="commercialPayerUid" />
+					</div>
+					<div class="form-group col-md-6">
+						<label class="control-label">Patient Member Identifier</label>
+						<input type="text" name="commercialMemberIdentifier"  class="form-control input-sm">
+					</div>
+					<div class="form-group col-md-6">
+						<label class="control-label">Patient Group Number</label>
+						<input type="text" name="commercialGroupNumber"  class="form-control input-sm">
+					</div>
+				</div>
+
+
+				<div class="row" v-if="insuranceCardType">
+					<div class="col-md-12 bg-light p-3 mb-2">
+						<h5 class="m-0 font-weight-bold">Patient Name / Demographics:</h5>
+					</div>
+					<div class="form-group col-md-4">
+						<label class="control-label">Patient First Name</label>
+						<input type="text" name="patientNameFirst" value="{{$patient->name_first}}" class="form-control input-sm">
+					</div>
+					<div class="form-group col-md-4">
+						<label class="control-label">Patient Middle Name / MI</label>
+						<input type="text" name="patientNameMiddle" value="{{$patient->name_middle}}" class="form-control input-sm">
+					</div>
+					<div class="form-group col-md-4">
+						<label class="control-label">Patient Last Name</label>
+						<input type="text" name="patientNameLast" value="{{$patient->name_last}}" class="form-control input-sm">
+					</div>
+					<div class="form-group col-md-4">
+						<label class="control-label">Patient Suffix</label>
+						<input type="text" name="patientNameSuffix" value="{{$patient->name_suffix}}" class="form-control input-sm">
+					</div>
+					<div class="form-group col-md-4">
+						<label class="control-label">Patient Sex</label>
+						<select class="form-control input-sm" name="patientSex" select2>
+							<option value="">--</option>
+							<option value="M">Male</option>
+							<option value="F">Female</option>
+							<option value="UNKNOWN">Unknown</option>
+						</select>
+					</div>
+					<div class="form-group col-md-4">
+						<label class="control-label">Patient Dob</label>
+						<input type="date" name="patientDob" value="{{$patient->dob}}" class="form-control input-sm">
+					</div>
+					<div class="form-group col-md-6">
+						<label class="control-label">Date Of Service</label>
+						<input type="date" name="dateOfService" value="{{date('Y-m-d')}}" class="form-control input-sm">
+					</div>
+				</div>
+				<div class="row">
+					<div class="form-group col-md-12" v-if="insuranceCardType == 'medicaid' || insuranceCardType == 'commercial'">
+						<p class="mb-1 font-weight-bold">Is Patient The Subscriber?</p>
+						<div class="form-check form-check-inline">
+							<label class="form-check-label"><input class="form-check-input" type="radio" name="isPatientSubscriber" v-model="isPatientSubscriber" value="1">Yes</label>
+						</div>
+						<div class="form-check form-check-inline">
+							<label class="form-check-label"><input class="form-check-input" type="radio" name="isPatientSubscriber" v-model="isPatientSubscriber" value="0">No</label>
+						</div>
+					</div>
+				</div>
+
+				<div v-if="isPatientSubscriber == 0 && (insuranceCardType == 'medicaid' || insuranceCardType == 'commercial')" class="row">
+					<div class="col-md-12 bg-light p-3 mb-2">
+						<h5 class="m-0 font-weight-bold">Subscriber Details:</h5>
+					</div>
+					<div class="form-group col-md-4">
+						<label class="control-label">Subscriber First Name</label>
+						<input type="text" name="subscriberNameFirst" value="{{$patient->name_first}}" class="form-control input-sm">
+					</div>
+					<div class="form-group col-md-4">
+						<label class="control-label">Subscriber Middle Name / MI</label>
+						<input type="text" name="subscriberNameMiddle" value="{{$patient->name_middle}}" class="form-control input-sm">
+					</div>
+					<div class="form-group col-md-4">
+						<label class="control-label">Subscriber Last Name</label>
+						<input type="text" name="subscriberNameLast" value="{{$patient->name_last}}" class="form-control input-sm">
+					</div>
+					<div class="form-group col-md-4">
+						<label class="control-label">Subscriber Suffix</label>
+						<input type="text" name="subscriberNameSuffix" value="{{$patient->name_suffix}}" class="form-control input-sm">
+					</div>
+					<div class="form-group col-md-4">
+						<label class="control-label">Subscriber Sex</label>
+						<select class="form-control input-sm" name="subscriberSex">
+							<option value="">--</option>
+							<option value="M">Male</option>
+							<option value="F">Female</option>
+							<option value="UNKNOWN">Unknown</option>
+						</select>
+					</div>
+					<div class="form-group col-md-4">
+						<label class="control-label">Subscriber Dob</label>
+						<input type="date" name="subscriberDob" value="{{$patient->dob}}" class="form-control input-sm">
+					</div>
+					<div class="form-group col-md-6">
+						<label class="control-label">What is the patient's relationship to the subscriber?</label>
+						<select name="patientRelationshipToSubscriber" class="form-control input-sm">
+							<option value="">--</option>
+							<option value="SPOUSE">Spouse</option>
+							<option value="CHILD">Child</option>
+							<option value="EMPLOYEE">Employee</option>
+							<option value="ORGAN_DONOR">Organ Donor</option>
+							<option value="CADAVER_DONOR">Cadaver Donor</option>
+							<option value="LIFE_PARTNER">Life Partner</option>
+							<option value="OTHER_RELATIONSHIP">Other Relationship</option>
+							<option value="UNKNOWN">Unknown</option>
+						</select>
+					</div>
+				</div>
+				<div class="mb-1" v-if="insuranceCardType == 'commercial'">
+					<p>Does the patient also have either a Medicare or Medicaid #? (optional)</p>
+				</div>
+				<div class="row" v-if="insuranceCardType == 'medicaid' || insuranceCardType == 'commercial'">
+					<div class="col-md-12 bg-light p-3 mb-2">
+						<h5 class="m-0 font-weight-bold">Medicaid Information:</h5>
+					</div>
+					<div class="form-group col-md-6">
+						<label for="" class="control-label">Medicaid State</label>
+						<input class="form-control input-sm" list="mcdPayer" name="mcdPayerUid" id="mcdPayerUid">
+						<datalist id="mcdPayer">
+							<option value="">--</option>
+							@foreach($medicaidStates as $state)
+              <option>{{$state}}</option>
+              @endforeach
+						</datalist>
+					</div>
+
+					<div class="form-group col-md-6">
+						<label class="control-label">Medicaid Number</label>
+						<input type="text" name="mcdNumber" class="form-control input-sm">
+					</div>
+				</div>
+
+				<div class="row" v-if="insuranceCardType == 'medicare' || insuranceCardType == 'commercial'">
+					<div class="col-md-12 bg-light p-3 mb-2">
+						<h5 class="m-0 font-weight-bold">Medicare Information:</h5>
+					</div>
+					<div class="form-group col-md-6">
+						<label class="control-label">Medicare Number</label>
+						<input type="text" name="mcrNumber" class="form-control input-sm">
+					</div>
+
+				</div>
+
+				<div v-if="response" :class="response.success ? 'alert success' : 'alert alert-danger'">
+					@{{ response.message }}
+				</div>
+
+				<div class="form-group text-nowrap mb-0">
+					<button v-if="!processing" class="btn btn-sm btn-primary" type="submit" :disabled="url == ''">Submt</button>
+					<button v-else class="btn btn-sm btn-primary" type="button"><i class="fas fa-circle-notch fa-spin"></i> Processing...</button>
+				</div>
+			</form>
+		</div>
+	</div>
+	<script>
+		(function() {
+			function init() {
+				new Vue({
+					el: '#new-coverage-form-{{$patient->uid}}',
+					delimiters: ['@{{', '}}'],
+					data: {
+						url: '',
+						insuranceCardType: '',
+						isPatientSubscriber: 1,
+						processing: false,
+						response: null
+					},
+					methods: {
+						updateUrl: function() {
+							if (this.insuranceCardType == 'medicare') {
+								this.url = '/api/clientPrimaryCoverage/createNewCoverageForMedicare';
+							}
+							if (this.insuranceCardType == 'medicaid') {
+								this.url = '/api/clientPrimaryCoverage/createNewCoverageForMedicaid';
+							}
+							if (this.insuranceCardType == 'commercial') {
+								this.url = '/api/clientPrimaryCoverage/createNewCoverageForCommercial';
+							}
+						},
+						onCommercialPayerChange: function() {
+							var input = $('input[name=commercialPayerUidSuggest]');
+							var hiddenInput = $('input[name=commercialPayerUid]');
+							input
+								.off('stag-suggest-selected')
+								.on('stag-suggest-selected', (e, input, _data) => {
+									hiddenInput.val(_data.uid);
+								});
+
+						},
+						submitForm: function(evt) {
+							var self = this;
+							if(self.processing) return;
+							var form = evt.target;
+							var data = $(form).serializeArray();
+							var url = $(form).attr('url');
+							if (!url) {
+								self.response = {
+									success: false,
+									message: 'Invalid url'
+								};
+								return;
+							}
+
+							self.processing = true;
+							$.post(url, data, function(response) {
+								self.processing = false;
+								if (response.success) {
+									closeStagPopup();
+									fastReload();
+								} else {
+									self.response = response;
+								}
+							}, 'json');
+						},
+						init: function() {
+							initStagSuggest();
+							this.onCommercialPayerChange();
+						}
+					},
+					mounted: function() {
+						this.init();
+					}
+				});
+			}
+			addMCInitializer('new-coverage-form-{{$patient->uid}}', init, '#new-coverage-form-{{$patient->uid}}')
+		}).call(window);
+	</script>

+ 381 - 0
resources/views/app/patient/primary-coverage-manual-determination-commercial-modal.blade.php

@@ -0,0 +1,381 @@
+<div id="manual-determination-form-{{$patient->uid}}">
+	@php
+	$cpc = $patient->latestClientPrimaryCoverage;
+	@endphp
+	<div class="p-3">
+		<form @submit.prevent="submitForm" method="post" class="mcp-theme-1">
+			<input type="hidden" name="clientPrimaryCoverageUid" value="{{$cpc->uid}}" class="form-control input-sm" />
+			<div class="row">
+				<div class="form-group col-md-12">
+					<p class="mb-1">How did you manually check coverage?</p>
+					<div class="form-check form-check-inline">
+						<label class="form-check-label"><input class="form-check-input" type="radio" v-model="uiState.manualDeterminationStrategy" name="manualDeterminationStrategy" value="REVIEWED_ELECTRONIC" required>Reviewed Electronically</label>
+					</div>
+					<div class="form-check form-check-inline">
+						<label class="form-check-label"><input class="form-check-input" type="radio" v-model="uiState.manualDeterminationStrategy" name="manualDeterminationStrategy" value="CALLED_PAYER" required>Called Payer</label>
+					</div>
+				</div>
+			</div>
+			<div class="table-responsive">
+				<table class="table table-sm table-bordered table-striped">
+					<thead>
+						<tr>
+							<th></th>
+							<th>Automatic</th>
+							<th>Override</th>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>Record Found?</td>
+							<td>{{$cpc->auto_commercial_is_match_found ? 'YES' : 'NO'}}</td>
+							<td>
+								<div class="form-group">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualCommercialIsMatched" value="YES" @change="onInputChange">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualCommercialIsMatched" value="NO" @change="onInputChange">No</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Coverage Status?</td>
+							<td>UNKNOWN</td>
+							<td>
+								<select name="manualDeterminationCategory" class="form-control input-sm" @change="onInputChange">
+									<option value="">--select--</option>
+									<option value="COVERED" :selected="uiState.manualCommercialIsMatched == 'YES'">Covered</option>
+									<option value="NOT_COVERED">Not Covered</option>
+									<option value="INVALID" :selected="uiState.manualCommercialIsMatched == 'NO'">Invalid</option>
+									<option value="UNKNOWN">Unknown</option>
+								</select>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+
+				@if($cpc->mcd_number)
+				<h5 class="mt-2 font-weight-bold">Medicaid Information Provided:</h5>
+				<table class="table table-bordered table-striped table-sm">
+					<tbody>
+						<tr>
+							<td>Medicaid Number</td>
+							<td>{{$cpc->mcd_number ?? '-'}}</td>
+						</tr>
+						<tr>
+							<td>Medicaid State</td>
+							<td>{{$cpc->mcd_payer_name ?? '-'}}</td>
+						</tr>
+						<tr>
+							<td>Was Medicaid Record Found?</td>
+							<td>{{$cpc->auto_medicaid_is_match_found ? 'Yes' : 'No'}}</td>
+						</tr>
+					</tbody>
+				</table>
+				@endif
+
+				@if($cpc->mcr_number)
+				<h5 class="mt-2 font-weight-bold">Medicare Information Provided:</h5>
+				<table class="table table-bordered table-striped table-sm">
+					<thead>
+						<tr>
+							<th></th>
+							<th>Automatic</th>
+							<th>Override</th>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>Record Found?</td>
+							<td>{{$cpc->auto_medicare_is_match_found ? 'YES' : 'NO'}}</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMatched" value="YES" @click="onInputChange">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMatched" value="NO" @click="onInputChange">No</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Part B Active?</td>
+							<td>{{$cpc->auto_medicare_is_partbactive}}</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBActive" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBActive" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBActive" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Is Part B Primary?</td>
+							<td>{{$cpc->auto_medicare_is_partbprimary}}</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBPrimary" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBPrimary" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBPrimary" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Is Part C Active?</td>
+							<td>{{$cpc->auto_medicare_is_partcactive}}</td>
+							<td>
+								<div class="alert alert-danger" v-if="(cpc.auto_medicare_is_partcactive == 'YES' && cpc.auto_medicare_is_partbprimary == 'YES') || (uiState.manualMedicareIsPartBPrimary == 'YES' && uiState.manualMedicareIsPartCActive == 'YES')">
+									Oops! Patient Medicare Part B Primary is set to <b>Yes</b>.
+								</div>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartCActive" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartCActive" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartCActive" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Inpatient?</td>
+							<td>{{$cpc->auto_medicare_is_inpatient}}</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsInpatient" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsInpatient" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsInpatient" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Hospice?</td>
+							<td>UNKNOWN</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHospice" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHospice" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHospice" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Home Health?</td>
+							<td>UNKNOWN</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHomeHealth" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHomeHealth" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHomeHealth" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>MSP?</td>
+							<td>{{$cpc->auto_medicare_is_msp}}</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMsp" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMsp" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMsp" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+				@endif
+
+
+			</div>
+			<div class="row">
+				<div class="form-group col-md-12">
+					<label for="" class="control-label">Memo</label>
+					<textarea name="manualDeterminationCategoryMemo" class="form-control"></textarea>
+				</div>
+			</div>
+
+
+			<div v-if="response" :class="response.success ? 'alert success' : 'alert alert-danger'">
+				@{{ response.message }}
+			</div>
+
+			<div class="form-group text-nowrap mb-0">
+				<button v-if="!processing" class="btn btn-sm btn-primary" type="submit" :disabled="url == '' || disabled === true">Submt</button>
+				<button v-else class="btn btn-sm btn-primary" type="button"><i class="fas fa-circle-notch fa-spin"></i> Processing...</button>
+			</div>
+		</form>
+	</div>
+</div>
+<script>
+	(function() {
+			function init() {
+				new Vue({
+						el: '#manual-determination-form-{{$patient->uid}}',
+						delimiters: ['@{{', '}}'],
+						data: {
+							url: '/api/clientPrimaryCoverage/manualDeterminationForCommercial',
+							uiState: {
+								manualCommercialIsMatched: null,
+								manualDeterminationCategory: null,
+								manualMedicareIsPartBActive: null,
+								manualMedicareIsPartBPrimary: null,
+								manualMedicareIsPartCActive: null,
+								manualMedicareIsInpatient: null,
+								manualMedicareIsHospice: null,
+								manualMedicareIsHomeHealth: null,
+								manualMedicareIsMsp: null,
+
+								manualMedicareIsMatched: null,
+
+							},
+							cpc: <?= json_encode($cpc); ?>,
+							processing: false,
+							response: null,
+							disabled: false
+						},
+						methods: {
+							onInputChange: function(evt) {
+								var input = evt.target;
+								var name = input.name;
+								var nameLowerCase = name.toLowerCase();
+								var value = input.value;
+								this.uiState[name] = value;
+
+								if(/medicare/gi.test(nameLowerCase)){
+									if(value === 'YES') this.uiState.manualMedicareIsMatched = 'YES';
+								}
+
+								if (name === 'manualMedicareIsPartBPrimary') {
+									if (value === 'YES') this.uiState.manualMedicareIsPartBActive = 'YES';
+								}
+								if (name === 'manualMedicareIsPartCActive') {
+									if (value === 'YES') this.uiState.manualMedicareIsPartBActive = 'NO';
+								}
+								if (name === 'manualDeterminationCategory') {
+									if (value === 'INVALID' || value === 'UNKNOWN') {
+										this.setUiStateDefaultValue('NO');
+										return;
+									}
+								}
+
+								if (this.uiState.manualMedicareIsMatched === 'NO') {
+									this.setUiStateDefaultValue('NO', 'medicare');
+									return;
+								}
+
+								this.refreshUi();
+							},
+							setUiStateDefaultValue: function(value, type) {
+								var self = this;
+								for (var fieldName in self.uiState) {
+									if (type) {
+										var fieldNameLowerCase = fieldName.toLowerCase();
+										var typeRegex = RegExp(type, 'g');
+										var isMatchFound = typeRegex.test(fieldNameLowerCase);
+										if(isMatchFound){
+											self.uiState[fieldName] = value;
+										}
+										}
+										else {
+											self.uiState[fieldName] = value;
+										}
+									}
+									self.refreshUi();
+								},
+								submitForm: function(evt) {
+										var self = this;
+										if (self.processing) return;
+										var form = evt.target;
+										var data = $(form).serializeArray();
+										var url = self.url;
+										if (!url) {
+											self.response = {
+												success: false,
+												message: 'Invalid url'
+											};
+											return;
+										}
+
+										self.processing = true;
+										$.post(url, data, function(response) {
+											self.processing = false;
+											if (response.success) {
+												closeStagPopup();
+												fastReload();
+											} else {
+												self.response = response;
+											}
+										}, 'json');
+									},
+									refreshUi: function() {
+										var self = this;
+										$("input[type=radio]").prop('checked', false);
+										for (var fieldName in self.uiState) {
+											var value = self.uiState[fieldName];
+											if (value) {
+												$("input[name=" + fieldName + "][type=radio][value=" + value + "]").prop('checked', true);
+											}
+										}
+										self.disabled = (self.cpc.auto_medicare_is_partcactive == 'YES' && self.cpc.auto_medicare_is_partbprimary == 'YES') || (self.uiState.manualMedicareIsPartBPrimary == 'YES' && self.uiState.manualMedicareIsPartCActive == 'YES');
+									},
+							},
+							mounted: function() {
+								if (this.cpc.auto_medicare_is_partbprimary == 'YES') {
+									this.uiState.manualMedicareIsPartBPrimary = 'YES';
+									this.uiState.manualMedicareIsPartCActive = 'NO';
+									this.uiState.manualMedicareIsPartBActive = 'YES';
+								};
+								this.uiState.manualMedicareIsMatched = this.cpc.auto_medicare_is_partbactive;
+								this.uiState.manualCommercialIsMatched = this.cpc.auto_commercial_is_match_found ? 'YES' : 'NO';
+								if (this.cpc.auto_commercial_is_match_found === 'NO') {
+									this.uiState.manualDeterminationCategory = 'INVALID';
+								}
+								this.refreshUi();
+							}
+						});
+				}
+				addMCInitializer('manual-determination-form-{{$patient->uid}}', init, '#manual-determination-form-{{$patient->uid}}')
+			}).call(window);
+</script>

+ 155 - 0
resources/views/app/patient/primary-coverage-manual-determination-medicaid-modal.blade.php

@@ -0,0 +1,155 @@
+<div id="manual-determination-form-{{$patient->uid}}">
+	@php
+	$cpc = $patient->latestClientPrimaryCoverage;
+	@endphp
+	<div class="p-3">
+		<form @submit.prevent="submitForm" method="post" class="mcp-theme-1">
+			<input type="hidden" name="clientPrimaryCoverageUid" value="{{$cpc->uid}}" class="form-control input-sm" />
+			<div class="row">
+				<div class="form-group col-md-12">
+					<p class="mb-1">How did you manually check coverage?</p>
+					<div class="form-check form-check-inline">
+						<label class="form-check-label"><input class="form-check-input" type="radio" v-model="uiState.manualDeterminationStrategy" name="manualDeterminationStrategy" value="REVIEWED_ELECTRONIC" required>Reviewed Electronically</label>
+					</div>
+					<div class="form-check form-check-inline">
+						<label class="form-check-label"><input class="form-check-input" type="radio" v-model="uiState.manualDeterminationStrategy" name="manualDeterminationStrategy" value="CALLED_PAYER" required>Called Payer</label>
+					</div>
+				</div>
+			</div>
+			<div class="table-responsive">
+				<table class="table table-sm table-bordered table-striped">
+					<thead>
+						<tr>
+							<th></th>
+							<th>Automatic</th>
+							<th>Override</th>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>Record Found?</td>
+							<td>{{$cpc->auto_medicaid_is_match_found ? 'YES' : 'NO'}}</td>
+							<td>
+								<div class="form-group">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicaidIsMatched" value="YES" :checked="uiState.manualMedicaidIsMatched === 'YES'" @change="inputChange">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicaidIsMatched" value="NO" :checked="uiState.manualMedicaidIsMatched === 'NO'" @change="inputChange">No</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Coverage Status?</td>
+							<td>UNKNOWN</td>
+							<td>
+								<select name="manualDeterminationCategory" class="form-control input-sm" @change="inputChange">
+									<option value="">--select--</option>
+									<option value="COVERED" :selected="uiState.manualMedicaidIsMatched == 'YES'">Covered</option>
+									<option value="NOT_COVERED">Not Covered</option>
+									<option value="INVALID" :selected="uiState.manualMedicaidIsMatched == 'NO'">Invalid</option>
+									<option value="UNKNOWN">Unknown</option>
+								</select>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+			<div class="row">
+				<div class="form-group col-md-12">
+					<label for="" class="control-label">Memo</label>
+					<textarea name="manualDeterminationCategoryMemo" class="form-control"></textarea>
+				</div>
+			</div>
+
+
+			<div v-if="response" :class="response.success ? 'alert success' : 'alert alert-danger'">
+				@{{ response.message }}
+			</div>
+
+			<div class="form-group text-nowrap mb-0">
+				<button v-if="!processing" class="btn btn-sm btn-primary" type="submit" :disabled="url == ''">Submt</button>
+				<button v-else class="btn btn-sm btn-primary" type="button"><i class="fas fa-circle-notch fa-spin"></i> Processing...</button>
+			</div>
+		</form>
+	</div>
+</div>
+
+<script>
+	(function() {
+		function init() {
+			new Vue({
+				el: '#manual-determination-form-{{$patient->uid}}',
+				delimiters: ['@{{', '}}'],
+				data: {
+					url: '/api/clientPrimaryCoverage/manualDeterminationForMedicaid',
+					uiState: {},
+					cpc: <?= json_encode($cpc); ?>,
+					processing: false,
+					response: null
+				},
+				methods: {
+					inputChange: function(evt){
+						var self = this;
+						var input = evt.target;
+						var name = input.name;
+						var value = input.value;
+						self.uiState[name] = value;
+						if(name == 'manualDeterminationCategory') {
+							if(self.uiState.manualDeterminationCategory === 'COVERED'){
+								self.uiState.manualMedicaidIsMatched = "YES";
+							}
+							if(self.uiState.manualDeterminationCategory === 'INVALID'){
+								self.uiState.manualMedicaidIsMatched = "NO";
+							}
+						}
+
+						if(name === 'manualMedicaidIsMatched'){
+							if(value === 'YES') self.uiState.manualDeterminationCategory = 'COVERED';
+							if(value === 'NO') self.uiState.manualDeterminationCategory = 'INVALID';
+						}
+						self.$forceUpdate();
+
+					},
+					submitForm: function(evt) {
+						var self = this;
+						if (self.processing) return;
+						var form = evt.target;
+						var data = $(form).serializeArray();
+						var url = self.url;
+						if (!url) {
+							self.response = {
+								success: false,
+								message: 'Invalid url'
+							};
+							return;
+						}
+
+						self.processing = true;
+						$.post(url, data, function(response) {
+							self.processing = false;
+							if (response.success) {
+								closeStagPopup();
+								fastReload();
+							} else {
+								self.response = response;
+							}
+						}, 'json');
+					},
+					setDefaultData: function(){
+						var self = this;
+						self.uiState.manualMedicaidIsMatched = this.cpc.auto_medicaid_is_match_found ? 'YES' : 'NO';
+						self.$forceUpdate();
+						console.log({uiState: self.uiState});
+
+					},
+				},
+				mounted: function() {
+					this.setDefaultData();
+				}
+			});
+		}
+		addMCInitializer('manual-determination-form-{{$patient->uid}}', init, '#manual-determination-form-{{$patient->uid}}')
+	}).call(window);
+</script>

+ 336 - 0
resources/views/app/patient/primary-coverage-manual-determination-medicare-modal.blade.php

@@ -0,0 +1,336 @@
+<div id="manual-determination-form-{{$patient->uid}}">
+	@php
+	$cpc = $patient->latestClientPrimaryCoverage;
+	@endphp
+	<div class="p-3">
+		<form @submit.prevent="submitForm" method="post" class="mcp-theme-1">
+			<input type="hidden" name="clientPrimaryCoverageUid" value="{{$cpc->uid}}" class="form-control input-sm" />
+			<div class="row">
+				<div class="form-group col-md-12">
+					<p class="mb-1">How did you manually check coverage?</p>
+					<div class="form-check form-check-inline">
+						<label class="form-check-label"><input class="form-check-input" type="radio" v-model="uiState.manualDeterminationStrategy" name="manualDeterminationStrategy" value="REVIEWED_ELECTRONIC" required>Reviewed Electronically</label>
+					</div>
+					<div class="form-check form-check-inline">
+						<label class="form-check-label"><input class="form-check-input" type="radio" v-model="uiState.manualDeterminationStrategy" name="manualDeterminationStrategy" value="CALLED_PAYER" required>Called Payer</label>
+					</div>
+				</div>
+			</div>
+			<div class="table-responsive">
+				<table class="table table-sm table-bordered table-striped">
+					<thead>
+						<tr>
+							<th></th>
+							<th>Automatic</th>
+							<th>Override</th>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>Record Found?</td>
+							<td>{{$cpc->auto_medicare_is_match_found ? 'YES' : 'NO'}}</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio"  name="manualMedicareIsMatched" value="YES" @click="onInputChange">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMatched" value="NO" @click="onInputChange">No</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+
+
+
+						<tr>
+							<td>Part B Active?</td>
+							<td>{{$cpc->auto_medicare_is_partbactive}}</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBActive" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBActive" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBActive" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Is Part B Primary?</td>
+							<td>{{$cpc->auto_medicare_is_partbprimary}}</td>
+							<td>
+							<input type="hidden" name="manualDeterminationCategory" />
+
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBPrimary" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBPrimary" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBPrimary" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Is Part C Active?</td>
+							<td>{{$cpc->auto_medicare_is_partcactive}}</td>
+							<td>
+								<div class="alert alert-danger" v-if="(cpc.auto_medicare_is_partcactive == 'YES' && cpc.auto_medicare_is_partbprimary == 'YES') || (uiState.manualMedicareIsPartBPrimary == 'YES' && uiState.manualMedicareIsPartCActive == 'YES')">
+									Oops! Patient Medicare Part B Primary is set to <b>Yes</b>.
+								</div>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartCActive" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartCActive" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartCActive" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Inpatient?</td>
+							<td>{{$cpc->auto_medicare_is_inpatient}}</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsInpatient" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsInpatient" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsInpatient" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Hospice?</td>
+							<td>UNKNOWN</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHospice" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHospice" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHospice" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>Home Health?</td>
+							<td>UNKNOWN</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHomeHealth" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHomeHealth" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHomeHealth" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td>MSP?</td>
+							<td>{{$cpc->auto_medicare_is_msp}}</td>
+							<td>
+								<div class="form-group mb-0">
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMsp" @click="onInputChange" value="YES">Yes</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMsp" @click="onInputChange" value="NO">No</label>
+									</div>
+									<div class="form-check form-check-inline">
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMsp" @click="onInputChange" value="UNKNOWN">Unknown</label>
+									</div>
+								</div>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+			<div class="row">
+				<div class="form-group col-md-12">
+					<label for="" class="control-label">Memo</label>
+					<textarea name="manualDeterminationCategoryMemo" class="form-control"></textarea>
+				</div>
+			</div>
+
+
+			<div v-if="response" :class="response.success ? 'alert success' : 'alert alert-danger'">
+				@{{ response.message }}
+			</div>
+
+			<div class="form-group text-nowrap mb-0">
+				<button v-if="!processing" class="btn btn-sm btn-primary" type="submit" :disabled="url == '' || disabled === true">Submt</button>
+				<button v-else class="btn btn-sm btn-primary" type="button"><i class="fas fa-circle-notch fa-spin"></i> Processing...</button>
+			</div>
+		</form>
+	</div>
+</div>
+<script>
+	(function() {
+		function init() {
+			new Vue({
+				el: '#manual-determination-form-{{$patient->uid}}',
+				delimiters: ['@{{', '}}'],
+				data: {
+					url: '/api/clientPrimaryCoverage/manualDeterminationForMedicare',
+					uiState: {
+						manualMedicareIsMatched: null,
+						manualMedicareIsPartBActive: null,
+						manualMedicareIsPartBPrimary: null,
+						manualMedicareIsPartCActive: null,
+						manualMedicareIsInpatient: null,
+						manualMedicareIsHospice: null,
+						manualMedicareIsHomeHealth: null,
+						manualMedicareIsMsp: null,
+
+					},
+					cpc: <?= json_encode($cpc); ?>,
+					processing: false,
+					response: null,
+					disabled: false
+				},
+				methods: {
+					onInputChange: function(evt){
+						var input = evt.target;
+						var name = input.name;
+						var value = input.value;
+						this.uiState[name] = value;
+						if(value === 'YES') this.uiState.manualMedicareIsMatched = 'YES';
+
+						if(name === 'manualMedicareIsMatched'){
+							if(value === 'NO') this.setUiStateDefaultValue(value);
+						}
+
+						if(name === 'manualMedicareIsPartBActive'){
+							if(value === 'YES') {
+								this.uiState.manualMedicareIsMatched = 'YES';
+							}
+							if(value === 'NO') this.uiState.manualMedicareIsPartBPrimary = 'NO';
+							if(value === 'UNKNOWN') this.uiState.manualMedicareIsPartBPrimary = 'UNKNOWN';
+						}
+						if(name === 'manualMedicareIsPartBPrimary'){
+							if(value === 'YES') {
+								this.uiState.manualMedicareIsMatched = 'YES';
+								this.uiState.manualMedicareIsPartBActive = 'YES';
+							}
+						}
+
+
+						if(name === 'manualMedicareIsPartCActive'){
+							if(value === 'YES') this.uiState.manualMedicareIsPartBActive = 'NO';
+						}
+
+						if(this.uiState.manualMedicareIsMatched === 'NO') {
+							this.setUiStateDefaultValue('NO');
+							return;
+						}
+
+						this.refreshUi();
+					},
+					setUiStateDefaultValue: function(value){
+						var self = this;
+						for(var fieldName in self.uiState){
+							self.uiState[fieldName] = value;
+						}
+						self.refreshUi();
+					},
+					submitForm: function(evt) {
+						var self = this;
+						if (self.processing) return;
+						var form = evt.target;
+						var data = $(form).serializeArray();
+						var url = self.url;
+						if (!url) {
+							self.response = {
+								success: false,
+								message: 'Invalid url'
+							};
+							return;
+						}
+
+						self.processing = true;
+						$.post(url, data, function(response) {
+							self.processing = false;
+							if (response.success) {
+								closeStagPopup();
+								fastReload();
+							} else {
+								self.response = response;
+							}
+						}, 'json');
+					},
+					setDefaultData: function(){
+						this.uiState.manualMedicareIsMatched = this.cpc.auto_medicare_is_match_found ? 'YES':'NO';
+						this.uiState.manualMedicareIsPartBActive = this.cpc.auto_medicare_is_partbprimary;
+						this.refreshUi();
+					},
+					refreshUi: function(){
+						var self = this;
+						$("input[type=radio]").prop('checked', false);
+						for(var fieldName in self.uiState){
+							var value = self.uiState[fieldName];
+							if(value){
+								$("input[name="+ fieldName +"][type=radio][value=" + value + "]").prop('checked', true);
+							}
+						}
+
+						self.disabled = (self.cpc.auto_medicare_is_partcactive == 'YES' && self.cpc.auto_medicare_is_partbprimary == 'YES') || (self.uiState.manualMedicareIsPartBPrimary == 'YES' && self.uiState.manualMedicareIsPartCActive == 'YES');
+						self.setDefaultValueForManualDeterminationCategory();
+
+					},
+					setDefaultValueForManualDeterminationCategory: function(){
+						var self = this;
+						var input = $('input[name=manualDeterminationCategory]');
+						if(self.uiState.manualMedicareIsMatched === 'NO'){
+							input.val('INVALID');
+							return;
+						}
+						if(self.uiState.manualMedicareIsPartBPrimary === 'YES'){
+							input.val('COVERED');
+							return;
+						}
+						if(self.uiState.manualMedicareIsPartBPrimary === 'NO'){
+							input.val('NOT_COVERED');
+							return;
+						}
+						input.val('UNKNOWN');
+					},
+				},
+				mounted: function() {
+					this.setDefaultData();
+					this.uiState.manualMedicareIsPartBPrimary = this.cpc.auto_medicare_is_partbprimary;
+					if (this.cpc.auto_medicare_is_partbprimary == 'YES') {
+						this.uiState.manualMedicareIsPartCActive = 'NO';
+					};
+					this.refreshUi();
+
+				}
+			});
+		}
+		addMCInitializer('manual-determination-form-{{$patient->uid}}', init, '#manual-determination-form-{{$patient->uid}}')
+	}).call(window);
+</script>

+ 111 - 0
resources/views/app/patient/primary-coverage-manual-determination-view-commercial.blade.php

@@ -0,0 +1,111 @@
+<div id="primaryCoverageManualDeterminationView">
+	<div class="table-responsive">
+	<table class="table table-sm table-bordered table-striped">
+		<thead>
+			<tr>
+				<th></th>
+				<th>Automatic</th>
+				<th>Override</th>
+			</tr>
+		</thead>
+		<tbody>
+			<tr>
+				<td>Record Found?</td>
+				<td>{{$cpc->auto_commercial_is_match_found ? 'YES' : 'NO'}}</td>
+				<td>
+					<div class="form-group">
+						<p class="mb-1 text-secondary">Manual Determination Category</p>
+						<span>{{$cpc->manual_determination_category ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+
+			<tr>
+				<td>Part B Active?</td>
+				<td>{{$cpc->auto_medicare_is_partbactive}}</td>
+				<td>
+					<div class="form-group mb-0">
+						<p class="mb-1 text-secondary">Is Part B Active?</p>
+						<span>{{$cpc->manual_medicare_is_partbactive ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>Part B Primary?</td>
+				<td>{{$cpc->auto_medicare_is_partbprimary}}</td>
+				<td>
+					<div class="form-group">
+						<p class="mb-1 text-secondary">Manual Determination Category</p>
+						<span>{{$cpc->manual_determination_category  ?? '-'}}</span>
+					</div>
+					<div class="form-group mb-0">
+						<p class="mb-1 text-secondary">Is Part B Primary?</p>
+						<span>{{$cpc->manual_medicare_is_partbprimary ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>Part C Active?</td>
+				<td>{{$cpc->auto_medicare_is_partcactive}}</td>
+				<td>
+					<div class="form-group mb-0">
+						<div class="alert alert-danger" v-if="(cpc.auto_medicare_is_partcactive == 'YES' && cpc.auto_medicare_is_partbprimary == 'YES')">
+							Oops! Patient Medicare Part B Primary is set to <b>Yes</b>.
+						</div>
+						<p class="mb-1 text-secondary">Is Part C Active?</p>
+						<span>{{$cpc->manual_medicare_is_partcactive ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>Inpatient?</td>
+				<td>{{$cpc->auto_medicare_is_inpatient}}</td>
+				<td>
+					<div class="form-group mb-0">
+						<p class="mb-1 text-secondary">Inpatient?</p>
+						<span>{{$cpc->manual_medicare_is_inpatient ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>Hospice?</td>
+				<td>UNKNOWN</td>
+				<td>
+					<div class="form-group mb-0">
+						<p class="mb-1 text-secondary">Hospice?</p>
+						<span>UNKNOWN</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>Home Health?</td>
+				<td>UNKNOWN</td>
+				<td>
+					<div class="form-group mb-0">
+						<p class="mb-1 text-secondary">Home Health?</p>
+						<span>UNKNOWN</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>MSP?</td>
+				<td>{{$cpc->auto_medicare_is_msp}}</td>
+				<td>
+					<div class="form-group mb-0">
+						<p class="mb-1 text-secondary">MSP?</p>
+						<span>{{$cpc->manual_medicare_is_msp ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+		</tbody>
+	</table>
+</div>
+</div>
+<script type="text/javascript">
+	var primaryCoverageManualDeterminationView = new Vue({
+		el: '#primaryCoverageManualDeterminationView',
+		data: {
+			cpc: <?= json_encode($cpc); ?>,
+		}
+	})
+</script>

+ 43 - 0
resources/views/app/patient/primary-coverage-manual-determination-view-medicaid.blade.php

@@ -0,0 +1,43 @@
+<div id="primaryCoverageManualDeterminationView">
+	<div class="table-responsive">
+	<table class="table table-sm table-bordered table-striped">
+		<thead>
+			<tr>
+				<th></th>
+				<th>Automatic</th>
+				<th>Override</th>
+			</tr>
+		</thead>
+		<tbody>
+			<tr>
+				<td>Record Found?</td>
+				<td>{{$cpc->auto_medicaid_is_match_found ? 'YES' : 'NO'}}</td>
+				<td>
+					<div class="form-group">
+						<p class="mb-1 text-secondary">Is Matched?</p>
+						<span>{{$cpc->manual_medicaid_is_matched ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>Coverage Status?</td>
+				<td>UNKNOWN</td>
+				<td>
+					<div class="form-group">
+						<p class="mb-1 text-secondary">Manual Determination Category</p>
+						<span>{{$cpc->manual_determination_category ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+		</tbody>
+	</table>
+</div>
+</div>
+<script type="text/javascript">
+	var primaryCoverageManualDeterminationView = new Vue({
+		el: '#primaryCoverageManualDeterminationView',
+		data: {
+			cpc: <?= json_encode($cpc); ?>,
+		}
+	})
+</script>

+ 117 - 0
resources/views/app/patient/primary-coverage-manual-determination-view-medicare.blade.php

@@ -0,0 +1,117 @@
+<div id="primaryCoverageManualDeterminationView">
+	<div class="table-responsive">
+	<table class="table table-sm table-bordered table-striped">
+		<thead>
+			<tr>
+				<th></th>
+				<th>Automatic</th>
+				<th>Override</th>
+			</tr>
+		</thead>
+		<tbody>
+			<tr>
+				<td>Plan Type</td>
+				<td colspan="2">{{$cpc->plan_type}}</td>
+			</tr>
+			<tr>
+				<td>Record Found?</td>
+				<td>{{$cpc->auto_medicare_is_match_found ? 'YES' : 'NO'}}</td>
+				<td>
+					<div class="form-group">
+						<p class="mb-1 text-secondary">Is Matched?</p>
+						<span>{{$cpc->manual_medicare_is_matched ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+
+
+			<tr>
+				<td>Part B Active?</td>
+				<td>{{$cpc->auto_medicare_is_partbactive}}</td>
+				<td>
+					<div class="form-group mb-0">
+						<p class="mb-1 text-secondary">Is Part B Active?</p>
+						<span>{{$cpc->manual_medicare_is_partbactive ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>Part B Primary?</td>
+				<td>{{$cpc->auto_medicare_is_partbprimary}}</td>
+				<td>
+					<div class="form-group">
+						<p class="mb-1 text-secondary">Manual Determination Category</p>
+						<span>{{$cpc->manual_determination_category  ?? '-'}}</span>
+					</div>
+					<div class="form-group mb-0">
+						<p class="mb-1 text-secondary">Is Part B Primary?</p>
+						<span>{{$cpc->manual_medicare_is_partbprimary ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>Part C Active?</td>
+				<td>{{$cpc->auto_medicare_is_partcactive}}</td>
+				<td>
+					<div class="form-group mb-0">
+						<div class="alert alert-danger" v-if="cpc.auto_medicare_is_partcactive == 'YES' && cpc.auto_medicare_is_partbprimary == 'YES'">
+							Oops! Patient Medicare Part B Primary is set to <b>Yes</b>.
+						</div>
+						<p class="mb-1 text-secondary">Is Part C Active?</p>
+						<span>{{$cpc->manual_medicare_is_partcactive ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>Inpatient?</td>
+				<td>{{$cpc->auto_medicare_is_inpatient}}</td>
+				<td>
+					<div class="form-group mb-0">
+						<p class="mb-1 text-secondary">Inpatient?</p>
+						<span>{{$cpc->manual_medicare_is_inpatient ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>Hospice?</td>
+				<td>UNKNOWN</td>
+				<td>
+					<div class="form-group mb-0">
+						<p class="mb-1 text-secondary">Hospice?</p>
+						<span>{{ $cpc->is_hospice }}</span>
+					</div>
+				</td>
+			</tr>
+
+			<tr>
+				<td>Home Health?</td>
+				<td>UNKNOWN</td>
+				<td>
+					<div class="form-group mb-0">
+						<p class="mb-1 text-secondary">Home Health?</p>
+						<span>UNKNOWN</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>MSP?</td>
+				<td>{{$cpc->auto_medicare_is_msp}}</td>
+				<td>
+					<div class="form-group mb-0">
+						<p class="mb-1 text-secondary">MSP?</p>
+						<span>{{$cpc->manual_medicare_is_msp ?? '-'}}</span>
+					</div>
+				</td>
+			</tr>
+		</tbody>
+	</table>
+</div>
+</div>
+<script type="text/javascript">
+	var primaryCoverageManualDeterminationView = new Vue({
+		el: '#primaryCoverageManualDeterminationView',
+		data: {
+			cpc: <?= json_encode($cpc); ?>,
+		}
+	})
+</script>

+ 202 - 0
resources/views/app/patient/primary-coverage-new-commercial.blade.php

@@ -0,0 +1,202 @@
+<div moe relative wide>
+	<a href="" start show>
+		+ Commercial
+	</a>
+	<form id="commercialComponent" url="/api/clientPrimaryCoverage/createNewCoverageForCommercial" right class="mcp-theme-1">
+		<input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
+
+		<div class="row">
+			<div class="form-group col-md-12">
+				<label for="" class="control-label">Commercial Payer</label>
+				<select name="commercialPayerUid" id="" class="form-control input-sm">
+					<option value="">--</option>
+				</select>
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Member Identifier</label>
+				<input type="text" name="commercialMemberIdentifier"  class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Group Number</label>
+				<input type="text" name="commercialGroupNumber"  class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient First Name</label>
+				<input type="text" name="patientNameFirst" value="{{$patient->name_first}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Middle Name / MI</label>
+				<input type="text" name="patientNameMiddle" value="{{$patient->name_middle}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Last Name</label>
+				<input type="text" name="patientNameLast" value="{{$patient->name_last}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Suffix</label>
+				<input type="text" name="patientNameSuffix" value="{{$patient->name_suffix}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Dob</label>
+				<input type="date" name="patientDob" value="{{$patient->dob}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Sex</label>
+				<select class="form-control input-sm" name="patientSex">
+					<option value="">--</option>
+					<option value="M">Male</option>
+					<option value="F">Female</option>
+					<option value="UNKNOWN">Unknown</option>
+				</select>
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Date Of Service</label>
+				<input type="date" name="dateOfService" value="{{date('Y-m-d')}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-12">
+				<p class="mb-1">Is Patient The Subscriber?</p>
+				<label class="mr-2">
+					<input type="radio" name="isPatientSubscriber" v-model="isPatientSubscriber" value="1"> Yes
+				</label>
+				<label class="">
+					<input type="radio" name="isPatientSubscriber" v-model="isPatientSubscriber" value="0"> No
+				</label>
+			</div>
+		</div>
+
+		<div v-if="isPatientSubscriber == 0" class="row">
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Relationship To Subscriber</label>
+				<select name="patientRelationshipToSubscriber" class="form-control input-sm">
+					<option value="">--</option>
+					<option value="SPOUSE">Spouse</option>
+					<option value="CHILD">Child</option>
+					<option value="EMPLOYEE">Employee</option>
+					<option value="ORGAN_DONOR">Organ Donor</option>
+					<option value="CADAVER_DONOR">Cadaver Donor</option>
+					<option value="LIFE_PARTNER">Life Partner</option>
+					<option value="OTHER_RELATIONSHIP">Other Relationship</option>
+					<option value="UNKNOWN">Unknown</option>
+				</select>
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Subscriber First Name</label>
+				<input type="text" name="subscriberNameFirst" value="{{$patient->name_first}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Subscriber Middle Name / MI</label>
+				<input type="text" name="subscriberNameMiddle" value="{{$patient->name_middle}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Subscriber Last Name</label>
+				<input type="text" name="subscriberNameLast" value="{{$patient->name_last}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Subscriber Suffix</label>
+				<input type="text" name="subscriberNameSuffix" value="{{$patient->name_suffix}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Subscriber Sex</label>
+				<select class="form-control input-sm" name="subscriberSex">
+					<option value="">--</option>
+					<option value="MALE">Male</option>
+					<option value="FEMALE">Female</option>
+					<option value="UNKNOWN">Unknown</option>
+				</select>
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Subscriber Dob</label>
+				<input type="date" name="subscriberDob" value="{{$patient->dob}}" class="form-control input-sm">
+			</div>
+		</div>
+
+		<div class="row">
+			<div class="form-group col-md-6">
+				<label class="control-label">Medicare Number</label>
+				<input type="text" name="mcrNumber" class="form-control input-sm">
+			</div>
+
+			<div class="form-group col-md-6">
+				<label class="control-label">Medicaid Number</label>
+				<input type="text" name="mcdNumber"  class="form-control input-sm">
+			</div>
+
+			<div class="form-group col-md-12">
+				<label for="" class="control-label">Medicaid Payer</label>
+				<select name="mcdPayerName" id="" class="form-control input-sm">
+					<option value="">--</option>
+					<option>MEDICAID ALABAMA</option>
+					<option>MEDICAID ALASKA</option>
+					<option>MEDICAID ARIZONA</option>
+					<option>MEDICAID ARKANSAS</option>
+					<option>MEDICAID CALIFORNIA MEDI-CAL</option>
+					<option>MEDICAID COLORADO</option>
+					<option>MEDICAID CONNECTICUT</option>
+					<option>MEDICAID DELAWARE</option>
+					<option>MEDICAID DISTRICT OF COLUMBIA</option>
+					<option>MEDICAID FLORIDA</option>
+					<option>MEDICAID GEORGIA</option>
+					<option>MEDICAID HAWAII</option>
+					<option>MEDICAID IDAHO</option>
+					<option>MEDICAID ILLINOIS</option>
+					<option>MEDICAID INDIANA</option>
+					<option>MEDICAID IOWA</option>
+					<option>MEDICAID KANSAS</option>
+					<option>MEDICAID KENTUCKY</option>
+					<option>MEDICAID LOUISIANA</option>
+					<option>MEDICAID MAINE</option>
+					<option>MEDICAID MARYLAND</option>
+					<option>MEDICAID MARYLAND DHMH</option>
+					<option>MEDICAID MASSACHUSETTS</option>
+					<option>MEDICAID MICHIGAN</option>
+					<option>MEDICAID MINNESOTA</option>
+					<option>MEDICAID MISSISSIPPI</option>
+					<option>MEDICAID MISSISSIPPI</option>
+					<option>MEDICAID MISSOURI</option>
+					<option>MEDICAID MONTANA</option>
+					<option>MEDICAID NEBRASKA</option>
+					<option>MEDICAID NEVADA</option>
+					<option>MEDICAID NEW HAMPSHIRE</option>
+					<option>MEDICAID NEW JERSEY</option>
+					<option>MEDICAID NEW MEXICO</option>
+					<option>MEDICAID NEW YORK</option>
+					<option>MEDICAID NEW YORK</option>
+					<option>MEDICAID NORTH CAROLINA</option>
+					<option>MEDICAID NORTH DAKOTA</option>
+					<option>MEDICAID OHIO</option>
+					<option>MEDICAID OKLAHOMA</option>
+					<option>MEDICAID OREGON</option>
+					<option>MEDICAID OREGON (DHS OMAP)</option>
+					<option>MEDICAID PENNSYLVANIA</option>
+					<option>MEDICAID RHODE ISLAND</option>
+					<option>MEDICAID SOUTH CAROLINA</option>
+					<option>MEDICAID SOUTH DAKOTA</option>
+					<option>MEDICAID TENNESSEE</option>
+					<option>MEDICAID TEXAS</option>
+					<option>MEDICAID TEXAS AND TEXAS HEALTH STEPS</option>
+					<option>MEDICAID UTAH</option>
+					<option>MEDICAID VERMONT</option>
+					<option>MEDICAID VIRGINIA</option>
+					<option>MEDICAID WASHINGTON (PROVIDER ONE)</option>
+					<option>MEDICAID WEST VIRGINIA</option>
+					<option>MEDICAID WISCONSIN</option>
+					<option>MEDICAID WYOMING</option>
+				</select>
+			</div>
+		</div>
+
+		<div class="form-group text-nowrap mb-0">
+			<button class="btn btn-sm btn-primary" submit>Submt</button>
+			<button class="btn btn-sm btn-default border" cancel>Close</button>
+		</div>
+	</form>
+</div>
+
+<script type="text/javascript">
+	var commercialComponent = new Vue({
+		el: '#commercialComponent',
+		data: {
+			isPatientSubscriber: 1
+		}
+	})
+</script>

+ 120 - 0
resources/views/app/patient/primary-coverage-new-medicaid.blade.php

@@ -0,0 +1,120 @@
+<div moe relative wide>
+	<a href="" start show>
+		+ Medicaid
+	</a>
+	<form url="/api/clientPrimaryCoverage/createNewCoverageForMedicaid" right class="mcp-theme-1">
+		<input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
+
+		<div class="row">
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient First Name</label>
+				<input type="text" name="patientNameFirst" value="{{$patient->name_first}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Middle Name / MI</label>
+				<input type="text" name="patientNameMiddle" value="{{$patient->name_middle}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Last Name</label>
+				<input type="text" name="patientNameLast" value="{{$patient->name_last}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Suffix</label>
+				<input type="text" name="patientNameSuffix" value="{{$patient->name_suffix}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Sex</label>
+				<select class="form-control input-sm" name="patientSex">
+					<option value="">--</option>
+					<option value="M">Male</option>
+					<option value="F">Female</option>
+					<option value="UNKNOWN">Unknown</option>
+				</select>
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Dob</label>
+				<input type="date" name="patientDob" value="{{$patient->dob}}" class="form-control input-sm">
+			</div>
+
+			<div class="form-group col-md-6">
+				<label for="" class="control-label">Medicaid Payer</label>
+				<select name="mcdPayerName" id="" class="form-control input-sm">
+					<option value="">--</option>
+					<option>MEDICAID ALABAMA</option>
+					<option>MEDICAID ALASKA</option>
+					<option>MEDICAID ARIZONA</option>
+					<option>MEDICAID ARKANSAS</option>
+					<option>MEDICAID CALIFORNIA MEDI-CAL</option>
+					<option>MEDICAID COLORADO</option>
+					<option>MEDICAID CONNECTICUT</option>
+					<option>MEDICAID DELAWARE</option>
+					<option>MEDICAID DISTRICT OF COLUMBIA</option>
+					<option>MEDICAID FLORIDA</option>
+					<option>MEDICAID GEORGIA</option>
+					<option>MEDICAID HAWAII</option>
+					<option>MEDICAID IDAHO</option>
+					<option>MEDICAID ILLINOIS</option>
+					<option>MEDICAID INDIANA</option>
+					<option>MEDICAID IOWA</option>
+					<option>MEDICAID KANSAS</option>
+					<option>MEDICAID KENTUCKY</option>
+					<option>MEDICAID LOUISIANA</option>
+					<option>MEDICAID MAINE</option>
+					<option>MEDICAID MARYLAND</option>
+					<option>MEDICAID MARYLAND DHMH</option>
+					<option>MEDICAID MASSACHUSETTS</option>
+					<option>MEDICAID MICHIGAN</option>
+					<option>MEDICAID MINNESOTA</option>
+					<option>MEDICAID MISSISSIPPI</option>
+					<option>MEDICAID MISSISSIPPI</option>
+					<option>MEDICAID MISSOURI</option>
+					<option>MEDICAID MONTANA</option>
+					<option>MEDICAID NEBRASKA</option>
+					<option>MEDICAID NEVADA</option>
+					<option>MEDICAID NEW HAMPSHIRE</option>
+					<option>MEDICAID NEW JERSEY</option>
+					<option>MEDICAID NEW MEXICO</option>
+					<option>MEDICAID NEW YORK</option>
+					<option>MEDICAID NEW YORK</option>
+					<option>MEDICAID NORTH CAROLINA</option>
+					<option>MEDICAID NORTH DAKOTA</option>
+					<option>MEDICAID OHIO</option>
+					<option>MEDICAID OKLAHOMA</option>
+					<option>MEDICAID OREGON</option>
+					<option>MEDICAID OREGON (DHS OMAP)</option>
+					<option>MEDICAID PENNSYLVANIA</option>
+					<option>MEDICAID RHODE ISLAND</option>
+					<option>MEDICAID SOUTH CAROLINA</option>
+					<option>MEDICAID SOUTH DAKOTA</option>
+					<option>MEDICAID TENNESSEE</option>
+					<option>MEDICAID TEXAS</option>
+					<option>MEDICAID TEXAS AND TEXAS HEALTH STEPS</option>
+					<option>MEDICAID UTAH</option>
+					<option>MEDICAID VERMONT</option>
+					<option>MEDICAID VIRGINIA</option>
+					<option>MEDICAID WASHINGTON (PROVIDER ONE)</option>
+					<option>MEDICAID WEST VIRGINIA</option>
+					<option>MEDICAID WISCONSIN</option>
+					<option>MEDICAID WYOMING</option>
+				</select>
+			</div>
+
+			<div class="form-group col-md-6">
+				<label class="control-label">Medicaid Number</label>
+				<input type="text" name="mcdNumber"  class="form-control input-sm">
+			</div>
+
+			<div class="form-group col-md-6">
+				<label class="control-label">Date Of Service</label>
+				<input type="date" name="dateOfService" value="{{date('Y-m-d')}}" class="form-control input-sm">
+			</div>
+
+		</div>
+
+
+		<div class="form-group text-nowrap mb-0">
+			<button class="btn btn-sm btn-primary" submit>Submt</button>
+			<button class="btn btn-sm btn-default border" cancel>Close</button>
+		</div>
+	</form>
+</div>

+ 45 - 0
resources/views/app/patient/primary-coverage-new-medicare.blade.php

@@ -0,0 +1,45 @@
+<div moe relative wide>
+	<a href="" start show>
+		+ Medicare Part B (Primary)
+	</a>
+	<form url="/api/clientPrimaryCoverage/createNewCoverageForMedicare" right class="mcp-theme-1">
+		<input type="hidden" name="clientUid" value="{{$patient->uid}}" class="form-control input-sm" />
+		<div class="row">
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient First Name</label>
+				<input type="text" name="patientNameFirst" value="{{$patient->name_first}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Middle Name / MI</label>
+				<input type="text" name="patientNameMiddle" value="{{$patient->name_middle}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Last Name</label>
+				<input type="text" name="patientNameLast" value="{{$patient->name_last}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Suffix</label>
+				<input type="text" name="patientNameSuffix" value="{{$patient->name_suffix}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-6">
+				<label class="control-label">Patient Dob</label>
+				<input type="date" name="patientDob" value="{{$patient->dob}}" class="form-control input-sm">
+			</div>
+
+			<div class="form-group col-md-6">
+				<label class="control-label">Medicare Number</label>
+				<input type="text" name="mcrNumber" class="form-control input-sm">
+			</div>
+
+			<div class="form-group col-md-6">
+				<label class="control-label">Date Of Service</label>
+				<input type="date" name="dateOfService" value="{{date('Y-m-d')}}" class="form-control input-sm">
+			</div>
+		</div>
+
+		<div class="form-group text-nowrap mb-0">
+			<button class="btn btn-sm btn-primary" submit>Submt</button>
+			<button class="btn btn-sm btn-default border" cancel>Close</button>
+		</div>
+	</form>
+</div>

+ 14 - 0
resources/views/app/patient/primary-coverage-refresh.blade.php

@@ -0,0 +1,14 @@
+<div moe relative>
+	<a href="" start show class=""><i class="fas fa-sync"></i></a>
+
+	<form url="/api/clientPrimaryCoverage/{{$endpoint}}" class="mcp-theme-1">
+		<input type="hidden" name="uid" value="{{$cpc->uid}}" class="form-control input-sm" />
+		<div class="form-group">
+			<p>Refresh?</p>
+		</div>
+		<div class="form-group text-nowrap mb-0">
+			<button class="btn btn-sm btn-primary" submit>Submt</button>
+			<button class="btn btn-sm btn-default border" cancel>Close</button>
+		</div>
+	</form>
+</div>

+ 121 - 0
resources/views/app/patient/primary-coverage-view.blade.php

@@ -0,0 +1,121 @@
+<h4 class="font-weight-bold">Patient Name / Demographics</h4>
+<div class="table-responsive">
+	<table class="table table-sm table-bordered table-striped">
+		<tbody>
+			<tr>
+				<td>Patient First Name</td>
+				<td>{{$cpc->patient_name_first}}</td>
+			</tr>
+			<tr>
+				<td>Patient Middle Name / MI</td>
+				<td>{{$cpc->patient_name_middle}}</td>
+			</tr>
+			<tr>
+				<td>Patient Last Name</td>
+				<td>{{$cpc->patient_name_last}}</td>
+			</tr>
+			<tr>
+				<td>Patient Suffix</td>
+				<td>{{$cpc->patient_name_suffix}}</td>
+			</tr>
+			<tr>
+				<td>Patient Dob</td>
+				<td>{{$cpc->patient_dob ? date_format(date_create($cpc->patient_dob), 'm/d/Y') : '-'}}</td>
+			</tr>
+			<tr>
+				<td>Patient Sex</td>
+				<td>{{$cpc->patient_sex ?? '-'}}</td>
+			</tr>
+		</tbody>
+	</table>
+</div>
+
+<h4 class="font-weight-bold">Primary Coverage Information</h4>
+<div id="primaryCoverageLatestCoverage">
+	<div class="table-responsive">
+	<table class="table table-sm table-bordered table-striped">
+		<tbody>
+			<tr>
+				<td>Plan Type</td>
+				<td>{{$cpc->plan_type}}</td>
+			</tr>
+			<tr v-if="cpc.plan_type == 'COMMERCIAL'">
+				<td>Commercial Payer</td>
+				<td>{{$cpc->commercial_payer_id ? $cpc->payer->name : '-'}}</td>
+			</tr>
+			<tr v-if="cpc.plan_type == 'COMMERCIAL'">
+				<td>Patient Member Identifier</td>
+				<td>{{$cpc->commercial_member_identifier ?? '-'}}</td>
+			</tr>
+			<tr v-if="cpc.plan_type == 'COMMERCIAL'">
+				<td>Patient Group Name</td>
+				<td>{{$cpc->commercial_group_number ?? '-'}}</td>
+			</tr>
+			<tr>
+				<td>Date of Service</td>
+				<td>{{$cpc->date_of_service ? date_format(date_create($cpc->date_of_service), 'm/d/Y') : '-'}}</td>
+			</tr>
+			<tr v-if="cpc.plan_type == 'COMMERCIAL' || cpc.plan_type == 'MEDICAID'">
+				<td colspan="2">
+					<h5 class="font-weight-bold">Subscriber Details</h5>
+					<table class="table table-bordered table-striped">
+						<tbody>
+							<tr>
+								<td>Is Patient the subscriber?</td>
+								<td>{{$cpc->is_patient_subscriber ? 'Yes' : 'No'}}</td>
+							</tr>
+							@if(!$cpc->is_patient_subscriber)
+							<tr>
+								<td>First Name</td>
+								<td>{{$cpc->subscriber_name_first ?? '-'}}</td>
+							</tr>
+							<tr>
+								<td>Middle Name / MI</td>
+								<td>{{$cpc->subscriber_name_middle ?? '-'}}</td>
+							</tr>
+							<tr>
+								<td>Last Name</td>
+								<td>{{$cpc->subscriber_name_last ?? '-'}}</td>
+							</tr>
+							<tr>
+								<td>Suffix</td>
+								<td>{{$cpc->subscriber_name_suffix ?? '-'}}</td>
+							</tr>
+							<tr>
+								<td>Sex</td>
+								<td>{{$cpc->subscriber_sex ?? '-'}}</td>
+							</tr>
+							<tr>
+								<td>Dob</td>
+								<td>{{$cpc->subscriber_dob ? date_format(date_create($cpc->subscriber_dob), 'm/d/Y') : '-'}}</td>
+							</tr>
+							@endif
+						</tbody>
+					</table>
+				</td>
+			</tr>
+
+			<tr v-if="cpc.plan_type == 'MEDICAID' || (cpc.plan_type == 'COMMERCIAL' && cpc.mcd_number)">
+				<td>Medicaid State</td>
+				<td>{{$cpc->mcd_payer_id ?? '-'}}</td>
+			</tr>
+			<tr v-if="cpc.plan_type == 'MEDICAID' || (cpc.plan_type == 'COMMERCIAL' && cpc.mcd_number)">
+				<td>Medicaid Number</td>
+				<td>{{$cpc->mcd_number ?? '-'}}</td>
+			</tr>
+			<tr v-if="cpc.plan_type == 'MEDICARE' || (cpc.plan_type == 'COMMERCIAL' && cpc.mcr_number)">
+				<td>Medicare Number</td>
+				<td>{{$cpc->mcr_number ?? '-'}}</td>
+			</tr>
+		</tbody>
+	</table>
+</div>
+</div>
+<script type="text/javascript">
+	var primaryCoverageLatestCoverage = new Vue({
+		el: '#primaryCoverageLatestCoverage',
+		data: {
+			cpc: <?= json_encode($cpc); ?>,
+		}
+	})
+</script>

+ 100 - 0
resources/views/app/patient/primary-coverage.blade.php

@@ -0,0 +1,100 @@
+@extends ('layouts.patient')
+
+@section('inner-content')
+<div class="d-flex align-items-baseline">
+    <h4 class="font-weight-bold m-0 font-size-16 text-nowrap">Client Latest Coverage</h4>
+    <div class="ml-4 d-inline-flex justify-content-center">
+        <a native target="_blank"
+           open-in-stag-popup
+           mc-initer="new-coverage-form-{{$patient->uid}}"
+           title="New Primary Insurance Card"
+           href="/patients/view/primary-coverage-form/{{$patient->uid}}">
+            + New Primary Insurance Card
+        </a>
+    </div>
+</div>
+
+<div class="mt-2 pt-2">
+    @php
+        $cpc = $patient->latestClientPrimaryCoverage;
+    @endphp
+</div>
+    @if(!$cpc)
+        <div class="alert alert-info">No coverage for this client</div>
+    @else
+        @php
+            $cpc->auto_detail_json = json_decode($cpc->auto_detail_json);
+        @endphp
+        <div class="d-flex mb-2">
+            @if($cpc->plan_type == 'MEDICARE')
+                @include('app.patient.primary-coverage-refresh', ['endpoint'=>'refreshCoverageForMedicare'])
+                <span class="mx-2 text-secondary text-sm">|</span>
+                <a native target="_blank"
+                   open-in-stag-popup
+                   mc-initer="manual-determination-form-{{$patient->uid}}"
+                   title="Medicare Part B (Primary)"
+                   href="/patients/view/primary-coverage-manual-determination-modal/{{$patient->uid}}">
+                    Manual Determination for Medicare Part B (Primary)
+                </a>
+            @endif
+            @if($cpc->plan_type == 'MEDICAID')
+                @include('app.patient.primary-coverage-refresh', ['endpoint'=>'refreshCoverageForMedicaid'])
+                <span class="mx-2 text-secondary text-sm">|</span>
+                <a native target="_blank"
+                   open-in-stag-popup
+                   mc-initer="manual-determination-form-{{$patient->uid}}"
+                   title="Medicaid (Primary)"
+                   href="/patients/view/primary-coverage-manual-determination-modal/{{$patient->uid}}">
+                    Manual Determination for Medicaid (Primary)
+                </a>
+            @endif
+            @if($cpc->plan_type == 'COMMERCIAL')
+                @include('app.patient.primary-coverage-refresh', ['endpoint'=>'refreshCoverageForCommercial'])
+                <span class="mx-2 text-secondary text-sm">|</span>
+                <a native target="_blank"
+                   open-in-stag-popup
+                   mc-initer="manual-determination-form-{{$patient->uid}}"
+                   title="Commercial (Primary)"
+                   href="/patients/view/primary-coverage-manual-determination-modal/{{$patient->uid}}">
+                    Manual Determination for Commercial (Primary)
+                </a>
+            @endif
+        </div>
+
+        <div class="mt-4">
+          <div class="row">
+            <div class="col-md-9">
+
+              @include('app.patient.primary-coverage-view')
+
+              <h4 class="font-weight-bold">Manual Determination Information</h4>
+              @if($cpc->plan_type == 'MEDICARE')
+                @include('app.patient.primary-coverage-manual-determination-view-medicare')
+              @elseif($cpc->plan_type == 'MEDICAID')
+              @include('app.patient.primary-coverage-manual-determination-view-medicaid')
+              @elseif($cpc->plan_type == 'COMMERCIAL')
+              @include('app.patient.primary-coverage-manual-determination-view-commercial')
+              @else
+                No plan Type specified.
+              @endif
+            </div>
+          </div>
+
+            {{--
+              @php
+              dump(json_decode($cpc->toJson(JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)));
+              @endphp
+               --}}
+
+        </div>
+
+        <div>
+            {{--
+              @php
+                  dump($cpc->auto_detail_json);
+              @endphp
+              --}}
+        </div>
+    @endif
+</div>
+@endsection

+ 537 - 0
resources/views/app/patient/problems-center.blade.php

@@ -0,0 +1,537 @@
+<?php
+
+use App\Models\Point;
+use App\Models\Client;
+use App\Models\Note;
+use App\Models\Segment;
+
+/** @var Client $patient */
+/** @var Note $note */
+
+$points = Point
+    ::where('client_id', $patient->id)
+    ->where('category', 'PROBLEM')
+    ->where('is_removed_due_to_entry_error', false)
+    ->orderBy('is_removed')
+    ->orderBy('removal_effective_date', 'DESC')
+    ->orderBy('created_at')
+    ->get();
+foreach ($points as $point) {
+    if ($point->data) {
+        $point->data = json_decode($point->data);
+    }
+}
+$problems = $points;
+
+?>
+
+<div class="mt-3 p-3 border-top min-height-500px" id="problems-center-{{$note->id}}">
+    <div>
+
+        <table class="table table-sm table-bordered table-striped mb-0 bg-white mb-2">
+            <thead>
+            <tr class="">
+                <th class="border-bottom-0 text-secondary">Name</th>
+                <th class="border-bottom-0 text-secondary">Active?</th>
+                <th class="border-bottom-0 text-secondary">Edit</th>
+                <th class="border-bottom-0 text-secondary">Delete</th>
+                <th class="border-bottom-0 text-secondary">Started</th>
+                <th class="border-bottom-0 text-secondary">Ended</th>
+                <th class="border-bottom-0 text-secondary">Last Review</th>
+                <th class="border-bottom-0 text-secondary">Last Plan</th>
+            </tr>
+            </thead>
+            <?php foreach($problems as $problem): ?>
+            <?php $point = $problem; ?>
+            <tr class="{{$problem->is_removed ? 'on-hover-opaque' : ''}}">
+                <td>
+                    <div class="d-flex align-items-baseline">
+                        @if($problem->is_removed)
+                            <i class="text-warning-mellow fa fa-circle text-sm on-hover-opaque mr-2"></i>
+                        @else
+                            <i class="text-success fa fa-circle text-sm on-hover-opaque mr-2"></i>
+                        @endif
+                        <div>
+                            <b><?= !!@($problem->data->name) ? @($problem->data->name) : '-' ?></b>
+                            @if(!$problem->is_removed && $problem->added_in_note_id === $note->id)
+                                <div class="mt-1 text-sm text-secondary">Added during this visit
+                                    @if($problem->addition_reason_category === 'ON_INTAKE')
+                                        (existing)
+                                    @elseif($problem->addition_reason_category === 'DURING_VISIT')
+                                        (new)
+                                    @endif
+                                </div>
+                            @endif
+                            @if($problem->is_removed && ($problem->added_in_note_id !== $note->id && $problem->removed_in_note_id === $note->id))
+                                <div class="mt-1 text-sm text-secondary">Discontinued during this visit</div>
+                            @endif
+                        </div>
+                    </div>
+                </td>
+                <td>
+                    @if($problem->is_removed)
+                        NO
+                    @else
+                        <b>YES</b>
+                    @endif
+                </td>
+                <td>
+                    @if($problem->added_in_note_id === $note->id)
+                        <div moe wide>
+                            <a start show href="#" title="Edit">Edit</a>
+                            <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1 frm-edit-problem">
+                                <input type="hidden" name="uid" value="<?= $problem->uid ?>">
+                                <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                                <p class="mb-2"><b>Update Problem</b></p>
+
+                                <input type="hidden" name="data">
+
+                                <input type="hidden" data-name="dxid" value="{{@$problem->data->dxid}}">
+                                <input type="hidden" data-name="icd-type" value="{{@$problem->data->{'icd-type'} }}">
+
+                                <input type="hidden" name="additionReasonCategory" value="{{@$problem->addition_reason_category}}">
+                                <input type="hidden" name="isRemoved" value="{{@$problem->is_removed}}">
+                                <input type="hidden" name="removalReasonCategory" value="{{@$problem->removal_reason_category}}">
+                                <input type="hidden" name="isRemovedDueToEntryError" value="{{@$problem->is_removed_due_to_entry_error}}">
+
+                                <div class="mb-2">
+                                    <label class="text-sm text-secondary mb-1">Problem</label>
+                                    <input type="text" class="form-control form-control-sm min-width-unset"
+                                           data-name="name"
+                                           value="{{@$problem->data->name}}"
+                                           stag-suggest
+                                           stag-suggest-ep="/fdb-dx-suggest/json">
+                                </div>
+
+                                <div class="mb-2">
+                                    <label class="text-sm text-secondary mb-1">ICD</label>
+                                    <select data-name="icd"
+                                            class="form-control form-control-sm"
+                                            disabled>
+                                    </select>
+                                </div>
+
+                                <div class="mb-2">
+                                    <label class="text-sm text-secondary mb-0">Historic / Preexisting / New</label>
+                                    <select class="form-control form-control-sm additionReasonCategory_ui" name="additionReasonCategory_ui" required>
+                                        <option value="">-- select --</option>
+                                        <option value="HISTORIC" {{$problem->addition_reason_category === 'ON_INTAKE' && $problem->is_removed ? 'selected' : ''}}>Historic</option>
+                                        <option value="PRE_EXISTING" {{$problem->addition_reason_category === 'ON_INTAKE' && !$problem->is_removed ? 'selected' : ''}}>Preexisting</option>
+                                        <option value="NEW" {{$problem->addition_reason_category === 'DURING_VISIT' ? 'selected' : ''}}>New (Found during this visit)</option>
+                                    </select>
+                                </div>
+
+                                <div class="d-flex align-items-start">
+                                    <div class="w-50 mb-2">
+                                        <div class="start_date_ui" style="display: none">
+                                            <label class="text-sm text-secondary mb-0">Start Date</label>
+                                            <input type="date"
+                                                   data-name="start_date"
+                                                   class="form-control form-control-sm min-width-unset">
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="d-flex align-items-start">
+                                    <div class="w-50 mb-2">
+                                        <div class="removalEffectiveDate_ui" style="display: none">
+                                            <label class="text-sm text-secondary mb-0">End Date</label>
+                                            <input type="date"
+                                                   name="removalEffectiveDate"
+                                                   class="form-control form-control-sm min-width-unset">
+                                        </div>
+                                    </div>
+                                    <div class="w-50 pl-2 mb-2">
+                                        <div class="removalReasonMemo_ui" style="display: none">
+                                            <label class="text-sm text-secondary mb-0">Removal Memo</label>
+                                            <input type="text"
+                                                   name="removalReasonMemo"
+                                                   class="form-control form-control-sm min-width-unset">
+                                        </div>
+                                    </div>
+                                </div>
+
+                                <div class="mb-2">
+                                    <label class="text-sm text-secondary mb-1">Description</label>
+                                    <textarea rows="1" data-name="description" class="form-control form-control-sm">{{@$problem->data->description}}</textarea>
+                                </div>
+
+                                <div>
+                                    <button type="submit" class="btn-save-problem btn btn-sm btn-primary mr-2">Save</button>
+                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                </div>
+                            </form>
+                        </div>
+                    @endif
+                </td>
+                <td>
+                    @if($problem->added_in_note_id === $note->id)
+                        <div moe>
+                            <a start show href="#" title="Delete">Delete</a>
+                            <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1">
+                                <input type="hidden" name="uid" value="<?= $problem->uid ?>">
+                                <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                                <input type="hidden" name="isRemoved" value="1">
+                                <input type="hidden" name="isRemovedDueToEntryError" value="1">
+                                <input type="hidden" name="removalReasonMemo" value="Entry Error">
+                                <input type="hidden" name="removalEffectiveDate" value="<?= date('Y-m-d') ?>">
+                                <p class="mb-2"><b>Delete this problem?</b></p>
+                                <div>
+                                    <button submit class="btn btn-sm btn-danger mr-2">Delete</button>
+                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                </div>
+                            </form>
+                        </div>
+                    @else
+                        @if(!$problem->is_removed)
+                            <div moe>
+                                <a start show href="#" title="Discontinue">Discontinue</a>
+                                <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1">
+                                    <input type="hidden" name="uid" value="<?= $problem->uid ?>">
+                                    <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                                    <input type="hidden" name="isRemoved" value="1">
+                                    <input type="hidden" name="isRemovedDueToEntryError" value="0">
+                                    <p class="mb-2"><b>Delete this problem?</b></p>
+                                    <div class="mb-2">
+                                        <label class="text-sm text-secondary mb-1">Already inactive?</label>
+                                        <select class="form-control form-control-sm" name="removalReasonCategory" required>
+                                            <option value="">-- select --</option>
+                                            <option value="ON_INTAKE">Already inactive (before this visit)</option>
+                                            <option value="DURING_VISIT">Mark inactive now</option>
+                                        </select>
+                                    </div>
+                                    <div class="mb-2">
+                                        <label class="text-sm text-secondary mb-1">Removal Reason</label>
+                                        <textarea name="removalReasonMemo" class="form-control form-control-sm" rows="2"></textarea>
+                                    </div>
+                                    <div class="mb-2">
+                                        <label class="text-sm text-secondary mb-1">Removal Effective Date</label>
+                                        <input type="date" name="removalEffectiveDate"
+                                               value="<?= date('Y-m-d') ?>"
+                                               max="<?= date('Y-m-d') ?>"
+                                               class="form-control form-control-sm">
+                                    </div>
+                                    <div>
+                                        <button submit class="btn btn-sm btn-danger mr-2">Delete</button>
+                                        <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                    </div>
+                                </form>
+                            </div>
+                        @endif
+                    @endif
+                </td>
+                <td>
+                    <?= !!@($problem->data->start_date) ? @($problem->data->start_date) : '-' ?>
+                </td>
+                <td>
+                    <?= !!@($problem->removal_effective_date) ? @($problem->removal_effective_date) : '-' ?>
+                    @if(!!@($problem->removal_reason_memo))
+                        <div class="mt-1 text-sm text-secondary"><?= !!@($problem->removal_reason_memo) ? @($problem->removal_reason_memo) : '-' ?></div>
+                    @endif
+                </td>
+                <td>
+                    <div class="d-flex align-items-start">
+                        <div class="flex-grow-1">
+                            <?php
+                            $point = $problem;
+                            include resource_path('views/app/patient/segment-templates/_child_review/last-review.php');
+                            ?>
+                        </div>
+                        <a class="px-2 view-review-log"
+                           native target="_blank"
+                           open-in-stag-popup
+                           popup-style="stag-popup-md"
+                           title="Review log<?= !!@($problem->data->name) ? ' for ' . @($problem->data->name) : '' ?>"
+                           href="/point/review-log/<?= $problem->uid ?>?popupmode=1">
+                            <i class="fa fa-history"></i>
+                        </a>
+                    </div>
+                </td>
+                <td>
+                    <div class="d-flex align-items-start">
+                        <div class="flex-grow-1">
+                            <?php
+                            include resource_path('views/app/patient/segment-templates/_child_plan/last-plan.php');
+                            ?>
+                        </div>
+                        <a class="px-2 view-review-log"
+                           native target="_blank"
+                           open-in-stag-popup
+                           popup-style="stag-popup-md"
+                           title="Plan log<?= !!@($problem->data->name) ? ' for ' . @($problem->data->name) : '' ?>"
+                           href="/point/plan-log/<?= $problem->uid ?>?popupmode=1">
+                            <i class="fa fa-history"></i>
+                        </a>
+                    </div>
+                </td>
+            </tr>
+            <?php endforeach; ?>
+        </table>
+
+        <div class="d-flex align-items-center">
+            <div class="mt-1 w-100 border p-2 bg-aliceblue border-info rounded">
+                <form action="/api/visitPoint/addTopLevel" class="mcp-theme-1 w-100" id="frm-add-problem">
+                    <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                    <input type="hidden" name="category" value="PROBLEM">
+                    <input type="hidden" name="data">
+
+                    <input type="hidden" data-name="dxid">
+                    <input type="hidden" data-name="icd-type">
+
+                    <input type="hidden" name="additionReasonCategory">
+                    <input type="hidden" name="isRemoved">
+                    <input type="hidden" name="removalReasonCategory">
+                    <input type="hidden" name="isRemovedDueToEntryError">
+
+                    <p class="mb-2"><b>Add Problem</b></p>
+
+                    <div class="row">
+                        <div class="col-7">
+                            <div class="row mb-2">
+                                <div class="col-8 pr-0">
+                                    <label class="text-sm text-secondary mb-0">Name</label>
+                                    <input type="text"
+                                           data-name="name"
+                                           class="form-control form-control-sm"
+                                           stag-suggest
+                                           stag-suggest-bottom-left
+                                           stag-suggest-ep="/fdb-dx-suggest/json"
+                                           required>
+                                </div>
+                                <div class="col-4">
+                                    <label class="text-sm text-secondary mb-1">ICD</label>
+                                    <select data-name="icd"
+                                            class="form-control form-control-sm"
+                                            disabled>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="row mb-2">
+                                <div class="col-12">
+                                    <label class="text-sm text-secondary mb-0">Historic / Preexisting / New</label>
+                                    <select class="form-control form-control-sm additionReasonCategory_ui" name="additionReasonCategory_ui" required>
+                                        <option value="">-- select --</option>
+                                        <option value="HISTORIC">Historic</option>
+                                        <option value="PRE_EXISTING">Preexisting</option>
+                                        <option value="NEW">New (Found during this visit)</option>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="d-flex align-items-start mb-2">
+                                <div class="w-25">
+                                    <div class="start_date_ui" style="display: none">
+                                        <label class="text-sm text-secondary mb-0">Start Date</label>
+                                        <input type="date"
+                                               data-name="start_date"
+                                               class="form-control form-control-sm min-width-unset">
+                                    </div>
+                                </div>
+                                <div class="w-25 pl-2">
+                                    <div class="removalEffectiveDate_ui" style="display: none">
+                                        <label class="text-sm text-secondary mb-0">End Date</label>
+                                        <input type="date"
+                                               name="removalEffectiveDate"
+                                               class="form-control form-control-sm min-width-unset">
+                                    </div>
+                                </div>
+                                <div class="w-25 pl-2">
+                                    <div class="removalReasonMemo_ui" style="display: none">
+                                        <label class="text-sm text-secondary mb-0">Removal By/Memo</label>
+                                        <input type="text"
+                                               name="removalReasonMemo"
+                                               class="form-control form-control-sm min-width-unset">
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="col-5 border-left">
+
+                        </div>
+                    </div>
+
+                    <div class="d-flex align-items-center">
+                        <button type="submit" class="btn btn-sm btn-primary mr-2 my-1">Save Problem</button>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script>
+    (function() {
+        function init() {
+            let parentSegment = $('#problems-center-{{$note->id}}');
+            parentSegment.find('input[stag-suggest][data-name="name"]')
+                .off('stag-suggest-selected')
+                .on('stag-suggest-selected', (_e, _input, _data) => {
+                    $(_input).closest('form').find('input[data-name="dxid"]').val(_data.dxid);
+                    let icdSelect = $(_input).closest('form').find('[data-name="icd"]').empty().prop('disabled', true);
+                    $.get('/fdb-dx-icds-for-dxid?dxid=' + _data.dxid, _data => {
+                        icdSelect.empty().append('<option value="">-- select --</option>');
+                        for (let i = 0; i < _data.length; i++) {
+                            icdSelect.append('<option value="' + _data[i].search_icd_cd + '" data-icd-type="' + _data[i].icd_cd_type + '">' + _data[i].search_icd_cd + ' (' + (_data[i].icd_cd_type === '01' ? 'ICD-9' : 'ICD-10') + ') - ' + _data[i].icd_desc + '</option>')
+                        }
+                        icdSelect.prop('disabled', false);
+                        if (_data.length === 1) {
+                            icdSelect.val(_data[0].routed_med_id).trigger('change');
+                        }
+                    }, 'json');
+                });
+
+            // on route selection
+            parentSegment.find('input[data-name="icd"]')
+                .off('change')
+                .on('change', function () {
+                    $(this).closest('form').find('input[data-name="icd-type"]').val($(this).find('option:selected').attr('data-icd-type'));
+                });
+
+            parentSegment.find('.additionReasonCategory_ui')
+                .off('change')
+                .on('change', function() {
+
+                    let form = $(this).closest('form');
+
+                    // additionReasonCategory
+                    // isRemoved
+                    // removalReasonCategory
+                    form.find('[name="isRemovedDueToEntryError"]').val('0');
+
+                    form.find('.start_date_ui').hide();
+                    form.find('.removalEffectiveDate_ui').hide();
+                    form.find('.removalReasonMemo_ui').hide();
+
+                    if(this.value === 'HISTORIC') {
+                        form.find('[name="additionReasonCategory"]').val('ON_INTAKE');
+                        form.find('[name="isRemoved"]').val('1');
+                        form.find('.start_date_ui').show();
+                        form.find('.removalEffectiveDate_ui').show();
+                        form.find('.removalReasonMemo_ui').show();
+                    }
+                    else if(this.value === 'PRE_EXISTING') {
+                        form.find('[name="additionReasonCategory"]').val('ON_INTAKE');
+                        form.find('[name="isRemoved"]').val('0');
+                        form.find('.start_date_ui').show();
+                    }
+                    else if(this.value === 'NEW') {
+                        form.find('[name="additionReasonCategory"]').val('DURING_VISIT');
+                        form.find('[name="isRemoved"]').val('0');
+                        form.find('.start_date_ui').show().find('input').val('{{date('Y-m-d')}}');
+                    }
+
+                });
+
+            parentSegment.find('#frm-add-problem')
+                .off('submit')
+                .on('submit', function () {
+
+                    let form = $(this);
+
+                    if (!form[0].checkValidity()) {
+                        form[0].reportValidity();
+                        return false;
+                    }
+
+                    // add [data-name] values to payload
+                    let dataField = form.find('[name="data"]').first();
+                    let parsed = null;
+                    if(dataField.val()) {
+                        parsed = JSON.parse(dataField.val());
+                    }
+                    form.find('[data-name]').each(function() {
+                        if(!parsed) parsed = {};
+
+                        let keys = $(this).attr('data-name').split('->');
+                        let currentNode = parsed;
+                        for (let i = 0; i < keys.length; i++) {
+                            if(i !== keys.length - 1) {
+                                if(typeof currentNode[keys[i]] === 'undefined') {
+                                    currentNode[keys[i]] = {};
+                                }
+                                currentNode = currentNode[keys[i]];
+                            }
+                            else {
+                                if($(this).is(':checkbox')) {
+                                    currentNode[keys[i]] = $(this).prop('checked');
+                                }
+                                else {
+                                    currentNode[keys[i]] = $(this).val();
+                                }
+                            }
+                        }
+
+                    });
+                    if(parsed) {
+                        dataField.val(JSON.stringify(parsed));
+                    }
+
+                    $.post(form.attr('action'), form.serialize(), _data => {
+                        if(!hasResponseError(_data)) {
+                            hideMask();
+                            refreshDynamicStagPopup();
+                            $('.visit-segment[data-segment-template-name="intake_problems"]').find('.refresh-segment').trigger('click');
+                        }
+                    }, 'json');
+                    return false;
+                });
+
+            parentSegment.find('.frm-edit-problem')
+                .off('submit')
+                .on('submit', function () {
+
+                    let form = $(this);
+
+                    if (!form[0].checkValidity()) {
+                        form[0].reportValidity();
+                        return false;
+                    }
+
+                    // add [data-name] values to payload
+                    let dataField = form.find('[name="data"]').first();
+                    let parsed = null;
+                    if(dataField.val()) {
+                        parsed = JSON.parse(dataField.val());
+                    }
+                    form.find('[data-name]').each(function() {
+                        if(!parsed) parsed = {};
+
+                        let keys = $(this).attr('data-name').split('->');
+                        let currentNode = parsed;
+                        for (let i = 0; i < keys.length; i++) {
+                            if(i !== keys.length - 1) {
+                                if(typeof currentNode[keys[i]] === 'undefined') {
+                                    currentNode[keys[i]] = {};
+                                }
+                                currentNode = currentNode[keys[i]];
+                            }
+                            else {
+                                if($(this).is(':checkbox')) {
+                                    currentNode[keys[i]] = $(this).prop('checked');
+                                }
+                                else {
+                                    currentNode[keys[i]] = $(this).val();
+                                }
+                            }
+                        }
+
+                    });
+                    if(parsed) {
+                        dataField.val(JSON.stringify(parsed));
+                    }
+
+                    $.post(form.attr('url'), form.serialize(), _data => {
+                        if(!hasResponseError(_data)) {
+                            hideMask();
+                            refreshDynamicStagPopup();
+                            $('.visit-segment[data-segment-template-name="intake_problems"]').find('.refresh-segment').trigger('click');
+                        }
+                    }, 'json');
+                    return false;
+                });
+
+            initStagSuggest();
+
+            $('.additionReasonCategory_ui').trigger('change');
+        }
+        addMCInitializer('problems-center-{{$note->id}}', init, '#problems-center-{{$note->id}}')
+    }).call(window);
+</script>

+ 33 - 3
resources/views/app/patient/segment-templates/_child_plan/edit-plan.php

@@ -1,18 +1,48 @@
 <?php
 $currentValue = '';
+$previousValue = '';
+$previousChildPlan = null;
 if ($point->lastChildPlan && $point->last_child_plan_point_scoped_note_id === $note->id) {
     $parsedPlan = json_decode($point->lastChildPlan->data);
     $currentValue = $parsedPlan->value;
+    $previousChildPlan = \App\Models\Point::where('id', '<', $point->lastChildPlan->id)
+        ->where('category', 'PLAN')
+        ->where('parent_point_id', $point->id)
+        ->orderBy('id', 'DESC')
+        ->first();
+    if($previousChildPlan && $previousChildPlan->data) {
+        $parsedPlan = json_decode($previousChildPlan->data);
+        $previousValue = $parsedPlan->value;
+    }
+}
+else {
+    $previousChildPlan = \App\Models\Point::where('parent_point_id', $point->id)
+        ->where('category', 'PLAN')
+        ->orderBy('id', 'DESC')
+        ->first();
+    if($previousChildPlan && $previousChildPlan->data) {
+        $parsedPlan = json_decode($previousChildPlan->data);
+        $previousValue = $parsedPlan->value;
+    }
 }
 ?>
-<div visit-moe large relative>
-    <a start show href="#">Edit</a>
+<div visit-moe large relative class="d-inline">
+    <a start show href="#"><i class="fa fa-plus-square"></i></a>
     <form url="/api/visitPoint/upsertChildPlan" class="mcp-theme-1" right>
         <input type="hidden" name="uid" value="<?= $point->uid ?>">
         <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
         <input type="hidden" name="data">
 
-        <p class="mb-2"><b>Review</b></p>
+        <p class="mb-2"><b>Plan</b></p>
+
+        <?php if($previousValue): ?>
+        <div class="mb-2">
+            <div class="d-flex align-items-baseline mb-1">
+                <span class="text-sm text-secondary">Previous Plan / <?= friendlier_date($previousChildPlan->created_at) ?>) (click to copy)</span>
+            </div>
+            <div class="p-2 bg-light border inline-html-container click-to-copy"><?= $previousValue ?></div>
+        </div>
+        <?php endif; ?>
 
         <div class="mb-2">
             <div note-rte

+ 37 - 3
resources/views/app/patient/segment-templates/_child_review/edit-review.php

@@ -1,12 +1,37 @@
 <?php
 $currentValue = '';
+$previousValue = '';
+$previousChildReview = null;
 if ($point->lastChildReview && $point->last_child_review_point_scoped_note_id === $note->id) {
     $parsedReview = json_decode($point->lastChildReview->data);
-    $currentValue = $parsedReview->value;
+    if(@$parsedReview->value) {
+        $currentValue = $parsedReview->value;
+        $previousChildReview = \App\Models\Point::where('id', '<', $point->lastChildReview->id)
+            ->where('category', 'REVIEW')
+            ->where('parent_point_id', $point->id)
+            ->orderBy('id', 'DESC')
+            ->first();
+        if($previousChildReview && $previousChildReview->data) {
+            $parsedReview = json_decode($previousChildReview->data);
+            $previousValue = $parsedReview->value;
+        }
+    }
+}
+else {
+    $previousChildReview = \App\Models\Point::where('parent_point_id', $point->id)
+        ->where('category', 'REVIEW')
+        ->orderBy('id', 'DESC')
+        ->first();
+    if($previousChildReview && $previousChildReview->data) {
+        $parsedReview = json_decode($previousChildReview->data);
+        if(@$parsedReview->value) {
+            $previousValue = $parsedReview->value;
+        }
+    }
 }
 ?>
-<div visit-moe relative>
-    <a start show href="#">Edit</a>
+<div visit-moe relative class="d-inline">
+    <a start show href="#"><i class="fa fa-plus-square"></i></a>
     <form url="/api/visitPoint/upsertChildReview" class="mcp-theme-1" right>
         <input type="hidden" name="uid" value="<?= $point->uid ?>">
         <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
@@ -14,6 +39,15 @@ if ($point->lastChildReview && $point->last_child_review_point_scoped_note_id ==
 
         <p class="mb-2"><b>Review</b></p>
 
+        <?php if($previousValue): ?>
+            <div class="mb-2">
+                <div class="d-flex align-items-baseline mb-1">
+                    <span class="text-sm text-secondary">Previous Review / <?= friendlier_date($previousChildReview->created_at) ?>) (click to copy)</span>
+                </div>
+                <div class="p-2 bg-light border inline-html-container click-to-copy"><?= $previousValue ?></div>
+            </div>
+        <?php endif; ?>
+
         <div class="mb-2">
             <textarea data-name="value" class="form-control form-control-sm" rows="3"><?= $currentValue ?></textarea>
         </div>

+ 13 - 14
resources/views/app/patient/segment-templates/intake_allergies/edit.blade.php

@@ -21,7 +21,6 @@ $allergies = Point::getIntakePointsOfCategory($patient, 'ALLERGY', $note);
                 <th class="border-bottom-0">Allergy</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Review Today</th>
             </tr>
             </thead>
             <?php foreach($allergies as $allergy): ?>
@@ -91,14 +90,19 @@ $allergies = Point::getIntakePointsOfCategory($patient, 'ALLERGY', $note);
                                 include resource_path('views/app/patient/segment-templates/_child_review/last-review.php');
                                 ?>
                             </div>
-                            <a class="px-2 view-review-log"
-                               native target="_blank"
-                               open-in-stag-popup
-                               popup-style="stag-popup-md"
-                               title="Review log<?= !!@($allergy->data->name) ? ' for ' . @($allergy->data->name) : '' ?>"
-                               href="/point/review-log/<?= $allergy->uid ?>?popupmode=1">
-                                <i class="fa fa-history"></i>
-                            </a>
+                            <div class="d-inline-flex flex-nowrap">
+                                <a class="px-2 view-review-log"
+                                   native target="_blank"
+                                   open-in-stag-popup
+                                   popup-style="stag-popup-md"
+                                   title="Review log<?= !!@($allergy->data->name) ? ' for ' . @($allergy->data->name) : '' ?>"
+                                   href="/point/review-log/<?= $allergy->uid ?>?popupmode=1">
+                                    <i class="fa fa-history"></i>
+                                </a>
+                                <?php
+                                include resource_path('views/app/patient/segment-templates/_child_review/edit-review.php');
+                                ?>
+                            </div>
                         </div>
                     </td>
                     <td>
@@ -118,11 +122,6 @@ $allergies = Point::getIntakePointsOfCategory($patient, 'ALLERGY', $note);
                             </a>
                         </div>
                     </td>
-                    <td>
-                        <?php
-                        include resource_path('views/app/patient/segment-templates/_child_review/edit-review.php');
-                        ?>
-                    </td>
                 </tr>
             <?php endforeach; ?>
         </table>

+ 13 - 15
resources/views/app/patient/segment-templates/intake_care_team/edit.blade.php

@@ -22,7 +22,6 @@ $careTeamMembers = Point::getIntakePointsOfCategory($patient, 'CARE_TEAM_MEMBER'
                 <th class="border-bottom-0">Care Team Member</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Review Today</th>
             </tr>
             </thead>
             <?php foreach($careTeamMembers as $careTeamMember): ?>
@@ -114,14 +113,19 @@ $careTeamMembers = Point::getIntakePointsOfCategory($patient, 'CARE_TEAM_MEMBER'
                                 include resource_path('views/app/patient/segment-templates/_child_review/last-review.php');
                                 ?>
                             </div>
-                            <a class="px-2 view-review-log"
-                               native target="_blank"
-                               open-in-stag-popup
-                               popup-style="stag-popup-md"
-                               title="Review log<?= !!@($careTeamMember->data->name) ? ' for ' . @($careTeamMember->data->name) : '' ?>"
-                               href="/point/review-log/<?= $careTeamMember->uid ?>?popupmode=1">
-                                <i class="fa fa-history"></i>
-                            </a>
+                            <div class="d-inline-flex flex-nowrap">
+                                <a class="px-2 view-review-log"
+                                   native target="_blank"
+                                   open-in-stag-popup
+                                   popup-style="stag-popup-md"
+                                   title="Review log<?= !!@($careTeamMember->data->name) ? ' for ' . @($careTeamMember->data->name) : '' ?>"
+                                   href="/point/review-log/<?= $careTeamMember->uid ?>?popupmode=1">
+                                    <i class="fa fa-history"></i>
+                                </a>
+                                <?php
+                                include resource_path('views/app/patient/segment-templates/_child_review/edit-review.php');
+                                ?>
+                            </div>
                         </div>
                     </td>
                     <td>
@@ -142,12 +146,6 @@ $careTeamMembers = Point::getIntakePointsOfCategory($patient, 'CARE_TEAM_MEMBER'
                             </a>
                         </div>
                     </td>
-                    <td>
-                        <?php
-                        $point = $careTeamMember;
-                        include resource_path('views/app/patient/segment-templates/_child_review/edit-review.php');
-                        ?>
-                    </td>
                 </tr>
             <?php endforeach; ?>
         </table>

+ 13 - 14
resources/views/app/patient/segment-templates/intake_goals/edit.blade.php

@@ -23,7 +23,6 @@ $goals = Point::getIntakePointsOfCategory($patient, 'GOAL', $note);
                 <th class="border-bottom-0">Goal</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Review Today</th>
             </tr>
             </thead>
             <?php $previousCategory = null; ?>
@@ -167,14 +166,19 @@ $goals = Point::getIntakePointsOfCategory($patient, 'GOAL', $note);
                                 include resource_path('views/app/patient/segment-templates/_child_review/last-review.php');
                                 ?>
                             </div>
-                            <a class="px-2 view-review-log"
-                               native target="_blank"
-                               open-in-stag-popup
-                               popup-style="stag-popup-md"
-                               title="Review log<?= !!@($goal->data->name) ? ' for ' . @($goal->data->name) : '' ?>"
-                               href="/point/review-log/<?= $goal->uid ?>?popupmode=1">
-                                <i class="fa fa-history"></i>
-                            </a>
+                            <div class="d-inline-flex flex-nowrap">
+                                <a class="px-2 view-review-log"
+                                   native target="_blank"
+                                   open-in-stag-popup
+                                   popup-style="stag-popup-md"
+                                   title="Review log<?= !!@($goal->data->name) ? ' for ' . @($goal->data->name) : '' ?>"
+                                   href="/point/review-log/<?= $goal->uid ?>?popupmode=1">
+                                    <i class="fa fa-history"></i>
+                                </a>
+                                <?php
+                                include resource_path('views/app/patient/segment-templates/_child_review/edit-review.php');
+                                ?>
+                            </div>
                         </div>
                     </td>
                     <td>
@@ -194,11 +198,6 @@ $goals = Point::getIntakePointsOfCategory($patient, 'GOAL', $note);
                             </a>
                         </div>
                     </td>
-                    <td>
-                        <?php
-                        include resource_path('views/app/patient/segment-templates/_child_review/edit-review.php');
-                        ?>
-                    </td>
                 </tr>
                 <?php $previousCategory = $goal->data->category; ?>
                 <?php endif; ?>

+ 0 - 7
resources/views/app/patient/segment-templates/intake_interventions/edit.blade.php

@@ -22,7 +22,6 @@ $interventions = Point::getIntakePointsOfCategory($patient, 'INTERVENTION', $not
                 <th class="border-bottom-0">Intervention</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Review Today</th>
             </tr>
             </thead>
             <?php $previousCategory = null; ?>
@@ -133,12 +132,6 @@ $interventions = Point::getIntakePointsOfCategory($patient, 'INTERVENTION', $not
                             </a>
                         </div>
                     </td>
-                    <td>
-                        <?php
-                        $point = $intervention;
-                        include resource_path('views/app/patient/segment-templates/_child_review/edit-review.php');
-                        ?>
-                    </td>
                 </tr>
                 <?php $previousCategory = $intervention->data->category; ?>
             <?php endforeach; ?>

+ 13 - 15
resources/views/app/patient/segment-templates/intake_medications/edit.blade.php

@@ -22,7 +22,6 @@ $medications = Point::getIntakePointsOfCategory($patient, 'MEDICATION', $note);
                 <th class="border-bottom-0">Medication</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Review Today</th>
             </tr>
             </thead>
             <?php foreach($medications as $medication): ?>
@@ -130,14 +129,19 @@ $medications = Point::getIntakePointsOfCategory($patient, 'MEDICATION', $note);
                                 include resource_path('views/app/patient/segment-templates/_child_review/last-review.php');
                                 ?>
                             </div>
-                            <a class="px-2 view-review-log"
-                               native target="_blank"
-                               open-in-stag-popup
-                               popup-style="stag-popup-md"
-                               title="Review log<?= !!@($medication->data->name) ? ' for ' . @($medication->data->name) : '' ?>"
-                               href="/point/review-log/<?= $medication->uid ?>?popupmode=1">
-                                <i class="fa fa-history"></i>
-                            </a>
+                            <div class="d-inline-flex flex-nowrap">
+                                <a class="px-2 view-review-log"
+                                   native target="_blank"
+                                   open-in-stag-popup
+                                   popup-style="stag-popup-md"
+                                   title="Review log<?= !!@($medication->data->name) ? ' for ' . @($medication->data->name) : '' ?>"
+                                   href="/point/review-log/<?= $medication->uid ?>?popupmode=1">
+                                    <i class="fa fa-history"></i>
+                                </a>
+                                <?php
+                                include resource_path('views/app/patient/segment-templates/_child_review/edit-review.php');
+                                ?>
+                            </div>
                         </div>
                     </td>
                     <td>
@@ -158,12 +162,6 @@ $medications = Point::getIntakePointsOfCategory($patient, 'MEDICATION', $note);
                             </a>
                         </div>
                     </td>
-                    <td>
-                        <?php
-                        $point = $medication;
-                        include resource_path('views/app/patient/segment-templates/_child_review/edit-review.php');
-                        ?>
-                    </td>
                 </tr>
             <?php endforeach; ?>
         </table>

+ 0 - 7
resources/views/app/patient/segment-templates/intake_medications/edit_old.blade.php

@@ -21,7 +21,6 @@ $medications = Point::getIntakePointsOfCategory($patient, 'MEDICATION', $note);
                 <th class="border-bottom-0">Medication</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Review Today</th>
             </tr>
             </thead>
             <?php foreach($medications as $medication): ?>
@@ -82,12 +81,6 @@ $medications = Point::getIntakePointsOfCategory($patient, 'MEDICATION', $note);
                             </a>
                         </div>
                     </td>
-                    <td>
-                        <?php
-                        $point = $medication;
-                        include resource_path('views/app/patient/segment-templates/_child_review/edit-review.php');
-                        ?>
-                    </td>
                 </tr>
             <?php endforeach; ?>
         </table>

+ 13 - 15
resources/views/app/patient/segment-templates/intake_problems/edit.blade.php

@@ -22,7 +22,6 @@ $problems = Point::getIntakePointsOfCategory($patient, 'PROBLEM', $note);
                 <th class="border-bottom-0">Problem</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Review Today</th>
             </tr>
             </thead>
             <?php foreach($problems as $problem): ?>
@@ -103,14 +102,19 @@ $problems = Point::getIntakePointsOfCategory($patient, 'PROBLEM', $note);
                             include resource_path('views/app/patient/segment-templates/_review/problem/last-review.php');
                             ?>
                         </div>
-                        <a class="px-2 view-review-log"
-                           native target="_blank"
-                           open-in-stag-popup
-                           popup-style="stag-popup-md"
-                           title="Review log<?= !!@($problem->data->name) ? ' for ' . @($problem->data->name) : '' ?>"
-                           href="/point/review-log/<?= $problem->uid ?>?popupmode=1">
-                            <i class="fa fa-history"></i>
-                        </a>
+                        <div class="d-inline-flex flex-nowrap">
+                            <a class="px-2 view-review-log"
+                               native target="_blank"
+                               open-in-stag-popup
+                               popup-style="stag-popup-md"
+                               title="Review log<?= !!@($problem->data->name) ? ' for ' . @($problem->data->name) : '' ?>"
+                               href="/point/review-log/<?= $problem->uid ?>?popupmode=1">
+                                <i class="fa fa-history"></i>
+                            </a>
+                            <?php
+                            include resource_path('views/app/patient/segment-templates/_child_review/edit-review.php');
+                            ?>
+                        </div>
                     </div>
                 </td>
                 <td>
@@ -131,12 +135,6 @@ $problems = Point::getIntakePointsOfCategory($patient, 'PROBLEM', $note);
                         </a>
                     </div>
                 </td>
-                <td>
-                    <?php
-                    $point = $problem;
-                    include resource_path('views/app/patient/segment-templates/_review/problem/edit-review.php');
-                    ?>
-                </td>
             </tr>
             <?php endforeach; ?>
         </table>

+ 18 - 0
resources/views/app/patient/segment-templates/medrisk_vigilence/summary.blade.php

@@ -4,6 +4,24 @@
 $drugs = \App\Models\Point::getPointsOfCategory($patient, "MEDICATION");
 $allergies = \App\Models\Point::getPointsOfCategory($patient, "ALLERGY");
 
+// filter out drugs without fdb info on them
+$drugs = $drugs->filter(function($_drug) {
+    return @$_drug->data &&
+        $_drug->data->name &&
+        $_drug->data->medId &&
+        $_drug->data->routedMedId &&
+        $_drug->data->routedDosageFormMedId &&
+        $_drug->data->gcnSeqno;
+});
+
+// filter out allergies without fdb info on them
+$allergies = $allergies->filter(function($_allergy) {
+    return @$_allergy->data &&
+        $_allergy->data->name &&
+        $_allergy->data->damConceptId &&
+        $_allergy->data->damConceptIdType;
+});
+
 // side effects
 $sideeffects = side_effects_info($drugs);
 

+ 13 - 14
resources/views/app/patient/segment-templates/plan_allergies/edit.blade.php

@@ -22,7 +22,6 @@ $intakeOrVisit = 'PLAN';
                 <th class="border-bottom-0">Allergy</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Plan Today</th>
             </tr>
             </thead>
             <?php foreach($allergies as $allergy): ?>
@@ -110,21 +109,21 @@ $intakeOrVisit = 'PLAN';
                                 include resource_path('views/app/patient/segment-templates/_child_plan/last-plan.php');
                                 ?>
                             </div>
-                            <a class="px-2 view-review-log"
-                               native target="_blank"
-                               open-in-stag-popup
-                               popup-style="stag-popup-md"
-                               title="Plan log<?= !!@($allergy->data->name) ? ' for ' . @($allergy->data->name) : '' ?>"
-                               href="/point/plan-log/<?= $allergy->uid ?>?popupmode=1">
-                                <i class="fa fa-history"></i>
-                            </a>
+                            <div class="d-inline-flex flex-nowrap">
+                                <a class="px-2 view-review-log"
+                                   native target="_blank"
+                                   open-in-stag-popup
+                                   popup-style="stag-popup-md"
+                                   title="Plan log<?= !!@($allergy->data->name) ? ' for ' . @($allergy->data->name) : '' ?>"
+                                   href="/point/plan-log/<?= $allergy->uid ?>?popupmode=1">
+                                    <i class="fa fa-history"></i>
+                                </a>
+                                <?php
+                                include resource_path('views/app/patient/segment-templates/_child_plan/edit-plan.php');
+                                ?>
+                            </div>
                         </div>
                     </td>
-                    <td>
-                        <?php
-                        include resource_path('views/app/patient/segment-templates/_child_plan/edit-plan.php');
-                        ?>
-                    </td>
                 </tr>
             <?php endforeach; ?>
         </table>

+ 13 - 14
resources/views/app/patient/segment-templates/plan_care_team/edit.blade.php

@@ -22,7 +22,6 @@ $intakeOrVisit = 'PLAN';
                 <th class="border-bottom-0">Care Team Member</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Plan Today</th>
             </tr>
             </thead>
             <?php foreach($careTeamMembers as $careTeamMember): ?>
@@ -132,21 +131,21 @@ $intakeOrVisit = 'PLAN';
                                 include resource_path('views/app/patient/segment-templates/_child_plan/last-plan.php');
                                 ?>
                             </div>
-                            <a class="px-2 view-review-log"
-                               native target="_blank"
-                               open-in-stag-popup
-                               popup-style="stag-popup-md"
-                               title="Plan log<?= !!@($careTeamMember->data->name) ? ' for ' . @($careTeamMember->data->name) : '' ?>"
-                               href="/point/plan-log/<?= $careTeamMember->uid ?>?popupmode=1">
-                                <i class="fa fa-history"></i>
-                            </a>
+                            <div class="d-inline-flex flex-nowrap">
+                                <a class="px-2 view-review-log"
+                                   native target="_blank"
+                                   open-in-stag-popup
+                                   popup-style="stag-popup-md"
+                                   title="Plan log<?= !!@($careTeamMember->data->name) ? ' for ' . @($careTeamMember->data->name) : '' ?>"
+                                   href="/point/plan-log/<?= $careTeamMember->uid ?>?popupmode=1">
+                                    <i class="fa fa-history"></i>
+                                </a>
+                                <?php
+                                include resource_path('views/app/patient/segment-templates/_child_plan/edit-plan.php');
+                                ?>
+                            </div>
                         </div>
                     </td>
-                    <td>
-                        <?php
-                        include resource_path('views/app/patient/segment-templates/_child_plan/edit-plan.php');
-                        ?>
-                    </td>
                 </tr>
             <?php endforeach; ?>
         </table>

+ 13 - 14
resources/views/app/patient/segment-templates/plan_goals/edit.blade.php

@@ -23,7 +23,6 @@ $intakeOrVisit = 'PLAN';
                 <th class="border-bottom-0">Goal</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Plan Today</th>
             </tr>
             </thead>
             <?php $previousCategory = null; ?>
@@ -185,21 +184,21 @@ $intakeOrVisit = 'PLAN';
                                 include resource_path('views/app/patient/segment-templates/_child_plan/last-plan.php');
                                 ?>
                             </div>
-                            <a class="px-2 view-review-log"
-                               native target="_blank"
-                               open-in-stag-popup
-                               popup-style="stag-popup-md"
-                               title="Plan log<?= !!@($goal->data->name) ? ' for ' . @($goal->data->name) : '' ?>"
-                               href="/point/plan-log/<?= $goal->uid ?>?popupmode=1">
-                                <i class="fa fa-history"></i>
-                            </a>
+                            <div class="d-inline-flex flex-nowrap">
+                                <a class="px-2 view-review-log"
+                                   native target="_blank"
+                                   open-in-stag-popup
+                                   popup-style="stag-popup-md"
+                                   title="Plan log<?= !!@($goal->data->name) ? ' for ' . @($goal->data->name) : '' ?>"
+                                   href="/point/plan-log/<?= $goal->uid ?>?popupmode=1">
+                                    <i class="fa fa-history"></i>
+                                </a>
+                                <?php
+                                include resource_path('views/app/patient/segment-templates/_child_plan/edit-plan.php');
+                                ?>
+                            </div>
                         </div>
                     </td>
-                    <td>
-                        <?php
-                        include resource_path('views/app/patient/segment-templates/_child_plan/edit-plan.php');
-                        ?>
-                    </td>
                 </tr>
                 <?php $previousCategory = $goal->data->category; ?>
                 <?php endif; ?>

+ 0 - 1
resources/views/app/patient/segment-templates/plan_interventions/edit.blade.php

@@ -23,7 +23,6 @@ $intakeOrVisit = 'PLAN';
                 <th class="border-bottom-0">Intervention</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Plan Today</th>
             </tr>
             </thead>
             <?php $previousCategory = null; ?>

+ 13 - 14
resources/views/app/patient/segment-templates/plan_medications/edit.blade.php

@@ -22,7 +22,6 @@ $intakeOrVisit = 'PLAN';
                 <th class="border-bottom-0">Medication</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Plan Today</th>
             </tr>
             </thead>
             <?php foreach($medications as $medication): ?>
@@ -124,21 +123,21 @@ $intakeOrVisit = 'PLAN';
                                 include resource_path('views/app/patient/segment-templates/_child_plan/last-plan.php');
                                 ?>
                             </div>
-                            <a class="px-2 view-review-log"
-                               native target="_blank"
-                               open-in-stag-popup
-                               popup-style="stag-popup-md"
-                               title="Plan log<?= !!@($medication->data->name) ? ' for ' . @($medication->data->name) : '' ?>"
-                               href="/point/plan-log/<?= $medication->uid ?>?popupmode=1">
-                                <i class="fa fa-history"></i>
-                            </a>
+                            <div class="d-inline-flex flex-nowrap">
+                                <a class="px-2 view-review-log"
+                                   native target="_blank"
+                                   open-in-stag-popup
+                                   popup-style="stag-popup-md"
+                                   title="Plan log<?= !!@($medication->data->name) ? ' for ' . @($medication->data->name) : '' ?>"
+                                   href="/point/plan-log/<?= $medication->uid ?>?popupmode=1">
+                                    <i class="fa fa-history"></i>
+                                </a>
+                                <?php
+                                include resource_path('views/app/patient/segment-templates/_child_plan/edit-plan.php');
+                                ?>
+                            </div>
                         </div>
                     </td>
-                    <td>
-                        <?php
-                        include resource_path('views/app/patient/segment-templates/_child_plan/edit-plan.php');
-                        ?>
-                    </td>
                 </tr>
             <?php endforeach; ?>
         </table>

+ 13 - 14
resources/views/app/patient/segment-templates/plan_problems/edit.blade.php

@@ -22,7 +22,6 @@ $intakeOrVisit = 'PLAN';
                 <th class="border-bottom-0">Problem</th>
                 <th class="border-bottom-0">Most Recent Review</th>
                 <th class="border-bottom-0">Most Recent Plan</th>
-                <th class="border-bottom-0">Plan Today</th>
             </tr>
             </thead>
             <?php foreach($problems as $problem): ?>
@@ -120,21 +119,21 @@ $intakeOrVisit = 'PLAN';
                             include resource_path('views/app/patient/segment-templates/_child_plan/last-plan.php');
                             ?>
                         </div>
-                        <a class="px-2 view-review-log"
-                           native target="_blank"
-                           open-in-stag-popup
-                           popup-style="stag-popup-md"
-                           title="Plan log<?= !!@($problem->data->name) ? ' for ' . @($problem->data->name) : '' ?>"
-                           href="/point/plan-log/<?= $problem->uid ?>?popupmode=1">
-                            <i class="fa fa-history"></i>
-                        </a>
+                        <div class="d-inline-flex flex-nowrap">
+                            <a class="px-2 view-review-log"
+                               native target="_blank"
+                               open-in-stag-popup
+                               popup-style="stag-popup-md"
+                               title="Plan log<?= !!@($problem->data->name) ? ' for ' . @($problem->data->name) : '' ?>"
+                               href="/point/plan-log/<?= $problem->uid ?>?popupmode=1">
+                                <i class="fa fa-history"></i>
+                            </a>
+                            <?php
+                            include resource_path('views/app/patient/segment-templates/_child_plan/edit-plan.php');
+                            ?>
+                        </div>
                     </div>
                 </td>
-                <td>
-                    <?php
-                    include resource_path('views/app/patient/segment-templates/_child_plan/edit-plan.php');
-                    ?>
-                </td>
             </tr>
             <?php endforeach; ?>
         </table>

+ 1 - 1
resources/views/app/patient/tickets.blade.php

@@ -55,7 +55,7 @@
     <div class="alert alert-warning border-warning">
         <b>Deprecated:</b> 
         This ERx / Orders feature has been deprecated, and is now read-only. For new prescriptions, please use
-        <a href="{{ route('patients.view.patient-prescriptions', ['patient' => $patient]) }}" class="font-weight-bold">Prescriptions</a>.
+        <a href="{{ route('patients.view.patient-prescriptions', ['patient' => $patient]) }}" class="font-weight-bold">ERx &amp; Orders</a>.
     </div>
 
     <div id="ticketsApp" v-cloak>

+ 1 - 0
resources/views/app/patients.blade.php

@@ -193,6 +193,7 @@
                             @if($coverage)
                                 {{$coverage->toString()}}
                             @endif
+                            @include('app.patient.coverage-status')
                         </td>
                         <td>
                             {{ $patient->mcp ? $patient->mcp->displayName() : '-' }}

文件差異過大導致無法顯示
+ 500 - 566
resources/views/layouts/patient.blade.php


+ 9 - 1
routes/web.php

@@ -217,6 +217,9 @@ Route::middleware('pro.auth')->group(function () {
         Route::get('patients/view/eligible-refreshes/{patient}', 'PatientController@eligibleRefreshes')->name('patients.view.eligible-refreshes');
         Route::get('patients/view/insurance-coverage/{patient}', 'PatientController@insuranceCoverage')->name('patients.view.insurance-coverage');
         Route::get('patients/view/client-primarycoverages/{patient}', 'PatientController@clientPrimaryCoverages')->name('patients.view.client-primary-coverages');
+        Route::get('patients/view/primary-coverage/{patient}', 'PatientController@primaryCoverage')->name('patients.view.primary-coverage');
+        Route::get('patients/view/primary-coverage-form/{patient}', 'PatientController@primaryCoverageForm')->name('patients.view.primary-coverage-form');
+        Route::get('patients/view/primary-coverage-manual-determination-modal/{patient}', 'PatientController@primaryCoverageManualDeterminationModal')->name('patients.view.primary-coverage-manual-determination-modal');
     });
 
     Route::name('patients.view.')->prefix('patients/view/{patient}')->group(function () {
@@ -295,6 +298,7 @@ Route::middleware('pro.auth')->group(function () {
 
             // prescriptions (new)
             Route::get('prescriptions/{type?}/{currentErx?}', 'PatientController@prescriptions')->name('patient-prescriptions');
+            Route::get('prescriptions-popup/{type?}/{currentErx?}', 'PatientController@prescriptionsPopup')->name('patient-prescriptions-popup');
             Route::get('prescriptions-list/{type?}/{currentErx?}', 'PatientController@prescriptionsList')->name('patient-prescriptions-list');
 
             // appointments
@@ -317,6 +321,9 @@ Route::middleware('pro.auth')->group(function () {
     Route::get('/note/pdf/{note}', 'NoteController@downloadAsPdf')->name('note-pdf');
     Route::get('/segment-summary/{segment}', 'NoteController@segmentSummary')->name('segment-summary');
     Route::get('/medications-center/{patient}/{note}', 'NoteController@medicationsCenter')->name('medications-center');
+    Route::get('/medications-reconcile/{patient}/{note}', 'NoteController@medicationsReconcile')->name('medications-reconcile');
+    Route::get('/problems-center/{patient}/{note}', 'NoteController@problemsCenter')->name('problems-center');
+    Route::get('/goals-center/{patient}/{note}', 'NoteController@goalsCenter')->name('goals-center');
 
     //mb claim single view
     Route::get('mb-claims/view/{mbClaim}', 'PatientController@mbClaim')->name('mb-claim');
@@ -418,10 +425,11 @@ Route::middleware('pro.auth')->group(function () {
     Route::any('/fdb-drug-coadministration', 'FDBPGController@drugCoadministration');
     Route::any('/fdb-duplicate-therapy', 'FDBPGController@duplicateTherapy');
 
+    Route::get('/search-payer/json', 'PayerController@searchPayerV2JSON')->name('searchPayerV2JSON');
+
 });
 
 Route::post("/process_form_submit", 'NoteController@processFormSubmit')->name('process_form_submit');
 Route::get("/get-default-section-data/{patientID}/{sectionTemplateID}", 'NoteController@getDefaultValueForSection')->name('get_default_section_data');
 
 Route::get("/get-segment-html/{segmentUid}/{sessionKey}", 'NoteController@getHtmlForSegment')->name('get_segment_html');
-

部分文件因文件數量過多而無法顯示