소스 검색

Manage eRx (wip)

Vijayakrishnan 3 년 전
부모
커밋
cb49f98fa1
24개의 변경된 파일2804개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      app/Http/Controllers/PatientController.php
  2. 32 0
      resources/views/app/patient/prescriptions-popup/client-status-form.blade.php
  3. 61 0
      resources/views/app/patient/prescriptions-popup/drug-form.blade.php
  4. 23 0
      resources/views/app/patient/prescriptions-popup/hcp-pro-form.blade.php
  5. 30 0
      resources/views/app/patient/prescriptions-popup/imaging-form.blade.php
  6. 5 0
      resources/views/app/patient/prescriptions-popup/index-popup.blade.php
  7. 5 0
      resources/views/app/patient/prescriptions-popup/index.blade.php
  8. 30 0
      resources/views/app/patient/prescriptions-popup/lab-form.blade.php
  9. 1158 0
      resources/views/app/patient/prescriptions-popup/list-popup.blade.php
  10. 59 0
      resources/views/app/patient/prescriptions-popup/logistics-form.blade.php
  11. 25 0
      resources/views/app/patient/prescriptions-popup/other-form.blade.php
  12. 89 0
      resources/views/app/patient/prescriptions-popup/pdf/DRUG.blade.php
  13. 203 0
      resources/views/app/patient/prescriptions-popup/pdf/IMAGING.blade.php
  14. 203 0
      resources/views/app/patient/prescriptions-popup/pdf/LAB.blade.php
  15. 203 0
      resources/views/app/patient/prescriptions-popup/pdf/OTHER.blade.php
  16. 203 0
      resources/views/app/patient/prescriptions-popup/pdf/REFERRAL.blade.php
  17. 203 0
      resources/views/app/patient/prescriptions-popup/pdf/SUPPLY.blade.php
  18. 13 0
      resources/views/app/patient/prescriptions-popup/pdf/pdf-preview-with-cover-sheet.blade.php
  19. 85 0
      resources/views/app/patient/prescriptions-popup/pdf/pdf-preview.blade.php
  20. 32 0
      resources/views/app/patient/prescriptions-popup/pro-status-form.blade.php
  21. 25 0
      resources/views/app/patient/prescriptions-popup/referral-form.blade.php
  22. 16 0
      resources/views/app/patient/prescriptions-popup/sign-as-hcp-form.blade.php
  23. 34 0
      resources/views/app/patient/prescriptions-popup/supply-form.blade.php
  24. 66 0
      resources/views/app/patient/prescriptions-popup/transmit-form.blade.php

+ 1 - 1
app/Http/Controllers/PatientController.php

@@ -446,7 +446,7 @@ class PatientController extends Controller
         if($request->input('noteUid')) {
             $note = Note::where('uid', $request->input('noteUid'))->first();
         }
-        return view('app.patient.prescriptions.list-popup', compact('patient', 'type', 'currentErx', 'note'));
+        return view('app.patient.prescriptions-popup.list-popup', compact('patient', 'type', 'currentErx', 'note'));
     }
 
     public function prescriptionsList(Request $request, Client $patient, String $type = '', String $currentErx = '') {

+ 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>

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

@@ -0,0 +1,1158 @@
+<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()">+ 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="newPrescription('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="newPrescription('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="newPrescription('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="newPrescription('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="newPrescription('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">
+                        <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() {
+                        let payload = {
+                            noteUid: '{{ @$note ? $note->uid : '' }}',
+                            clientUid: '{{$patient->uid}}',
+                            hcpProUid: '{{$pro->uid}}',
+                            erxCategory: 'DRUG'
+                        };
+                        $.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();
+                                        @if(@$note)
+                                        fastReload();
+                                        @else
+                                        fastLoad('/patients/view/{{$patient->uid}}/prescriptions/' + this.currentPrescriptionType.toLowerCase() + '/' + _data.data);
+                                        @endif
+                                    }
+                                }, 'json');
+                                break;
+                            case 'EDIT_CLINICAL':
+                                $.post('/api/erx/updateClinicalDetail', payload, _data => {
+                                    if(!hasResponseError(_data)) {
+                                        toastr.success('Prescription updated');
+                                        closeStagPopup();
+                                        fastReload();
+                                    }
+                                }, '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();
+                                fastReload();
+                            }
+                        }, '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();
+                                fastReload();
+                            }
+                        }, '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();
+                                fastReload();
+                            }
+                        }, '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() {
+                        debugger
+                        alert(1);
+                        let payload = JSON.parse(JSON.stringify(this.currentPrescriptionProStatus));
+                        $.post('/api/erx/updateProDeclaredStatus', payload, _data => {
+                            if(!hasResponseError(_data)) {
+                                toastr.success('Pro declared status updated');
+                                closeStagPopup();
+                                fastReload();
+                            }
+                        }, '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();
+                                fastReload();
+                            }
+                        }, '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();
+                                fastReload();
+                            }
+                        }, '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>

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.