Samson Mutunga 3 년 전
부모
커밋
afdde3e66e
22개의 변경된 파일668개의 추가작업 그리고 55개의 파일을 삭제
  1. 25 2
      app/Http/Controllers/PracticeManagementController.php
  2. 18 0
      app/Models/VisitTemplateSegmentTemplate.php
  3. 0 1
      public/css/style.css
  4. 2 2
      resources/views/app/patient/segment-templates/covid_follow-up/edit.blade.php
  5. 0 49
      resources/views/app/practice-management/segment-templates.blade.php
  6. 27 0
      resources/views/app/practice-management/segment-templates/activate-deactivate.blade.php
  7. 17 0
      resources/views/app/practice-management/segment-templates/create.blade.php
  8. 81 0
      resources/views/app/practice-management/segment-templates/index.blade.php
  9. 19 0
      resources/views/app/practice-management/segment-templates/update-memo.blade.php
  10. 18 0
      resources/views/app/practice-management/segment-templates/update.blade.php
  11. 27 0
      resources/views/app/practice-management/visit-templates/activate-deactivate.blade.php
  12. 17 0
      resources/views/app/practice-management/visit-templates/create.blade.php
  13. 81 0
      resources/views/app/practice-management/visit-templates/index.blade.php
  14. 19 0
      resources/views/app/practice-management/visit-templates/update-memo.blade.php
  15. 18 0
      resources/views/app/practice-management/visit-templates/update.blade.php
  16. 27 0
      resources/views/app/practice-management/visit-templates/visit-template-segment-templates/activate-deactivate.blade.php
  17. 79 0
      resources/views/app/practice-management/visit-templates/visit-template-segment-templates/create.blade.php
  18. 143 0
      resources/views/app/practice-management/visit-templates/visit-template-segment-templates/index.blade.php
  19. 19 0
      resources/views/app/practice-management/visit-templates/visit-template-segment-templates/update-memo.blade.php
  20. 28 0
      resources/views/app/practice-management/visit-templates/visit-template-segment-templates/update.blade.php
  21. 1 1
      resources/views/layouts/template.blade.php
  22. 2 0
      routes/web.php

+ 25 - 2
app/Http/Controllers/PracticeManagementController.php

@@ -44,6 +44,8 @@ use DateTime;
 use DateTimeZone;
 use Illuminate\Http\Request;
 use App\Models\SegmentTemplate;
+use App\Models\VisitTemplate;
+use App\Models\VisitTemplateSegmentTemplate;
 
 class PracticeManagementController extends Controller
 {
@@ -2457,10 +2459,31 @@ ORDER BY c.name_last, c.name_first
     public function segmentTemplates(Request $request){
         $segmentTemplates = SegmentTemplate::query();
         $segmentTemplates = $segmentTemplates->orderBy('created_at', 'DESC');
-        $segmentTemplates = $segmentTemplates->paginate(20);
-        return view('app.practice-management.segment-templates', compact('segmentTemplates'));
+        
+        $responseType = $request->get('response_type');
+        if($responseType && $responseType == 'json'){
+            $segmentTemplates = $segmentTemplates->get();
+            return $this->pass($segmentTemplates);
+        }
+
+        $segmentTemplates = $segmentTemplates->paginate(30);
+        return view('app.practice-management.segment-templates.index', compact('segmentTemplates'));
     }
 
+    public function visitTemplates(Request $request){
+        $visitTemplates = VisitTemplate::query();
+        $visitTemplates = $visitTemplates->orderBy('created_at', 'DESC');
+        $visitTemplates = $visitTemplates->paginate(30);
+        return view('app.practice-management.visit-templates.index', compact('visitTemplates'));
+    }
+
+    public function visitTemplate(Request $request, VisitTemplate $visitTemplate){
+        $visitTemplateSegmentTemplates = VisitTemplateSegmentTemplate::query();
+        $visitTemplateSegmentTemplates = $visitTemplateSegmentTemplates->where('visit_template_id', $visitTemplate->id);
+        $visitTemplateSegmentTemplates = $visitTemplateSegmentTemplates->orderBy('position_index', 'DESC');
+        $visitTemplateSegmentTemplates = $visitTemplateSegmentTemplates->paginate(30);
+        return view('app.practice-management.visit-templates.visit-template-segment-templates.index', compact('visitTemplate','visitTemplateSegmentTemplates'));
+    }
 
     public function clientCcmRmStatus(Request $request){
         $filters = $request->all();

+ 18 - 0
app/Models/VisitTemplateSegmentTemplate.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace App\Models;
+
+# use Illuminate\Database\Eloquent\Model;
+
+class VisitTemplateSegmentTemplate extends Model
+{
+    protected $table = 'visit_template_segment_template';
+
+    public function segmentTemplate(){
+        return $this->hasOne(SegmentTemplate::class, 'id', 'segment_template_id');
+    }
+
+    public function visitTemplate(){
+        return $this->hasOne(VisitTemplate::class, 'id', 'visit_template_id');
+    }
+}

+ 0 - 1
public/css/style.css

@@ -2932,7 +2932,6 @@ body .vakata-context .vakata-context-separator>a {
 
 .phq .btn-select {
     padding: 5px 13px;
-    border-radius: 100%;
 }
 
 .phq .btn-blank {

+ 2 - 2
resources/views/app/patient/segment-templates/covid_follow-up/edit.blade.php

@@ -271,14 +271,14 @@ if (!!@$point->data) {
                                                 <tbody>
                                                         <tr>
                                                                 <td>1. Little interest or pleasure in doing things</td>
-                                                                <td class="text-center"><button type="button" class="btn btn-blank">0</button></td>
+                                                                <td class="text-center"><button type="button" onclick="onValueChange(this, 'no_interest', 'phq2')" class="no_interest_phq2 btn btn-select zero_phq2 {{ @$contentData['no_interest_phq2'] === 0 ? 'active':'' }}" data-id="0">0</button></td>
                                                                 <td class="text-center"><button type="button" onclick="onValueChange(this, 'no_interest', 'phq2')" class="no_interest_phq2 btn btn-select one_phq2 {{ @$contentData['no_interest_phq2'] == 1 ? 'active':'' }}" data-id="1">1</button></td>
                                                                 <td class="text-center"><button type="button" onclick="onValueChange(this, 'no_interest', 'phq2')" class="no_interest_phq2 btn btn-select two_phq2 {{ @$contentData['no_interest_phq2'] == 2 ? 'active':'' }}" data-id="2">2</button></td>
                                                                 <td class="text-center"><button type="button" onclick="onValueChange(this, 'no_interest', 'phq2')" class="no_interest_phq2 btn btn-select three_phq2 {{ @$contentData['no_interest_phq2'] == 3 ? 'active':'' }}" data-id="3">3</button></td>
                                                         </tr>
                                                         <tr>
                                                                 <td>2. Feeling down, depressed, or hopeless</td>
-                                                                <td class="text-center"><button type="button" class="btn btn-blank">0</button></td>
+                                                                <td class="text-center"><button type="button" onclick="onValueChange(this, 'depressed', 'phq2')" class="depressed_phq2 btn btn-select zero_phq2 {{ @$contentData['depressed_phq2'] === 0 ? 'active':'' }}" data-id="0">0</button></td>
                                                                 <td class="text-center"><button type="button" onclick="onValueChange(this, 'depressed', 'phq2')" class="depressed_phq2 btn btn-select one_phq2 {{ @$contentData['depressed_phq2'] == 1 ? 'active':'' }}" data-id="1">1</button></td>
                                                                 <td class="text-center"><button type="button" onclick="onValueChange(this, 'depressed', 'phq2')" class="depressed_phq2 btn btn-select two_phq2 {{ @$contentData['depressed_phq2'] == 2 ? 'active':'' }}" data-id="2">2</button></td>
                                                                 <td class="text-center"><button type="button" onclick="onValueChange(this, 'depressed', 'phq2')" class="depressed_phq2 btn btn-select three_phq2 {{ @$contentData['depressed_phq2'] == 3 ? 'active':'' }}" data-id="3">3</button></td>

+ 0 - 49
resources/views/app/practice-management/segment-templates.blade.php

@@ -1,49 +0,0 @@
-@extends ('layouts/template')
-
-@section('content')
-<div class="p-3 mcp-theme-1" id="patients-list">
-    <div class="card">
-
-        <div class="card-header border-bottom-0 px-1 py-2 d-flex align-items-center">
-            <strong class="mr-4">
-                <i class="fas fa-notes-medical"></i>
-                Segment Templates
-            </strong>
-        </div>
-
-        <div class="card-body p-0">
-            <table class="table table-sm table-striped border-top p-0 m-0">
-                <thead class="bg-light">
-                    <tr>
-                        <th class="border-0">Category</th>
-                        <th class="border-0">Patient</th>
-                        <th class="border-0">MCP</th>
-                        <th class="border-0 w-25">Summary</th>
-                        <th class="border-0">Created</th>
-                        <th class="border-0 delete-column">&nbsp;</th>
-                    </tr>
-                </thead>
-                <tbody>
-                    @foreach($segmentTemplates as $memo)
-                    <tr>
-                        <td></td>
-                        
-                    </tr>
-                    @endforeach
-
-                    @if(count($segmentTemplates) === 0)
-                    <tr>
-                        <td colspan="5">No records found!</td>
-                    </tr>
-                    @endif
-                </tbody>
-
-            </table>
-
-        </div>
-    </div>
-    <div class="mt-3">
-        {{ $segmentTemplates->appends(request()->input())->links() }}
-    </div>
-</div>
-@endsection

+ 27 - 0
resources/views/app/practice-management/segment-templates/activate-deactivate.blade.php

@@ -0,0 +1,27 @@
+<div moe>
+		<a start show href="#">
+			@if($template->is_active)
+				<span class="text-danger">Deactivate</span>
+			@else
+			<span class="text-success">Reactivate</span>
+			@endif
+		</a>
+		<form url="{{ $template->is_active ? '/api/segmentTemplate/deactivate' : '/api/segmentTemplate/reactivate' }}" class="mt-2" right>
+			<input type="hidden" name="uid" value="{{ $template->uid }}">
+			<div class="mb-2 w-100">
+				<label>Are you sure?</label>
+			</div>
+			<div class="mb-2 w-100">
+				<label>Memo</label>
+				<textarea name="memo" class="form-control"><?= $template->is_active ? $template->deactivation_memo: $template->reactivation_memo ?></textarea>
+			</div>
+			<div class="mt-3">
+				@if($template->is_active)
+				<button submit class="btn btn-sm btn-danger mr-2">Deactivate</button>
+				@else
+				<button submit class="btn btn-sm btn-primary mr-2">Reactivate</button>
+				@endif
+				<button cancel class="btn btn-default border">Cancel</button>
+			</div>
+		</form>
+	</div>

+ 17 - 0
resources/views/app/practice-management/segment-templates/create.blade.php

@@ -0,0 +1,17 @@
+<div moe>
+	<a class="" href="" show start>+ Create</a>
+	<form url="/api/segmentTemplate/create"> 
+		<div class="mb-2">
+			<label>Internal Name<sup class="text-danger">*</sup></label>
+			<input type="text" name="internalName" class="form-control" required/>
+		</div>
+		<div class="mb-2">
+			<label>Default Display Title<sup class="text-danger">*</sup></label>
+			<input type="text" name="defaultDisplayTitle" class="form-control" required/>
+		</div>
+		<div class="mb-0">
+			<button class="btn btn-success btn-sm" submit>Create</button>
+			<button class="btn btn-default border btn-sm" cancel>Cancel</button>
+		</div>
+	</form>
+</div>

+ 81 - 0
resources/views/app/practice-management/segment-templates/index.blade.php

@@ -0,0 +1,81 @@
+@extends ('layouts/template')
+
+@section('content')
+<div class="p-3 mcp-theme-1" id="patients-list">
+    <div class="card">
+
+        <div class="card-header border-bottom-0 px-1 py-2 d-flex align-items-center">
+            <strong class="mr-4">
+                <i class="fas fa-notes-medical"></i>
+                Segment Templates
+            </strong>
+            @include('app.practice-management.segment-templates.create')
+        </div>
+
+        <div class="card-body p-0">
+            <table class="table table-sm table-striped border-top p-0 m-0">
+                <thead class="bg-light">
+                    <tr>
+                        <th class="border-0">Internal Name</th>
+                        <th class="border-0">Default Display Title</th>
+                        <th class="border-0">Created At</th>
+                        <th class="border-0">Status</th>
+                        <th class="border-0">&nbsp;</th>
+                    </tr>
+                </thead>
+                <tbody>
+                    @foreach($segmentTemplates as $template)
+                    <tr>
+                        <td>{{ $template->internal_name }}</td>
+                        <td>{{ $template->default_display_title }}</td>
+                        <td>{{ friendly_date_time($template->created_at) }}</td>
+                        <td>
+                            <div>
+                                @if($template->is_active)
+                                    <span class="text-success">ACTIVE</span>
+                                    @if($template->reactivation_memo)
+                                        <div style="width:300px;">
+                                            <small class="text-muted"><b>Memo: </b>{{ $template->reactivation_memo }}</small>
+                                            @include('app.practice-management.segment-templates.update-memo')
+                                        </div>
+                                    @endif
+                                @else
+                                    <span class="text-danger">INACTIVE</span>
+                                    @if($template->deactivation_memo)
+                                        <div style="width:300px;">
+                                            <small class="text-muted"><b>Memo: </b>{{ $template->deactivation_memo }}</small>
+                                            @include('app.practice-management.segment-templates.update-memo')
+                                        </div>
+                                    @endif
+                                @endif
+                            </div>
+                        </td>
+                        <td>
+                            <div class="d-flex align-items-center">
+                                <div class="mr-2">
+                                @include('app.practice-management.segment-templates.update')
+                                </div>
+                                <div>
+                                @include('app.practice-management.segment-templates.activate-deactivate')
+                                </div>
+                            </div>
+                        </td>                
+                    </tr>
+                    @endforeach
+
+                    @if(count($segmentTemplates) === 0)
+                    <tr>
+                        <td colspan="5">No records found!</td>
+                    </tr>
+                    @endif
+                </tbody>
+
+            </table>
+
+        </div>
+    </div>
+    <div class="mt-3">
+        {{ $segmentTemplates->appends(request()->input())->links() }}
+    </div>
+</div>
+@endsection

+ 19 - 0
resources/views/app/practice-management/segment-templates/update-memo.blade.php

@@ -0,0 +1,19 @@
+<div moe>
+		<a start show href="#">
+			<i class="far fa-edit"></i>
+		</a>
+		<form url="{{ $template->is_active ? '/api/segmentTemplate/update-reactivation-memo' : '/api/segmentTemplate/update-deactivation-memo' }}" class="mt-2">
+			<input type="hidden" name="uid" value="{{ $template->uid }}">
+			<div class="mb-2 w-100">
+				<label>Are you sure?</label>
+			</div>
+			<div class="mb-2 w-100">
+				<label>Memo</label>
+				<textarea name="memo" class="form-control"><?= $template->is_active ? $template->reactivation_memo: $template->deactivation_memo ?></textarea>
+			</div>
+			<div class="mt-3">
+				<button submit class="btn btn-sm btn-primary mr-2">Update</button>
+				<button cancel class="btn btn-default border">Cancel</button>
+			</div>
+		</form>
+	</div>

+ 18 - 0
resources/views/app/practice-management/segment-templates/update.blade.php

@@ -0,0 +1,18 @@
+<div moe>
+	<a class="" href="" show start><i class="far fa-edit"></i></a>
+	<form url="/api/segmentTemplate/updateBasic" right> 
+	<input type="hidden" name="uid" value="{{ $template->uid }}" />
+		<div class="mb-2">
+			<label>Internal Name<sup class="text-danger">*</sup></label>
+			<input type="text" name="internalName" class="form-control" value="{{ $template->internal_name }}" required/>
+		</div>
+		<div class="mb-2">
+			<label>Default Display Title<sup class="text-danger">*</sup></label>
+			<input type="text" name="defaultDisplayTitle" class="form-control" value="{{ $template->default_display_title }}" required/>
+		</div>
+		<div class="mb-0">
+			<button class="btn btn-success btn-sm" submit>Update</button>
+			<button class="btn btn-default border btn-sm" cancel>Cancel</button>
+		</div>
+	</form>
+</div>

+ 27 - 0
resources/views/app/practice-management/visit-templates/activate-deactivate.blade.php

@@ -0,0 +1,27 @@
+<div moe>
+		<a start show href="#">
+			@if($template->is_active)
+				<span class="text-danger">Deactivate</span>
+			@else
+			<span class="text-success">Reactivate</span>
+			@endif
+		</a>
+		<form url="{{ $template->is_active ? '/api/visitTemplate/deactivate' : '/api/visitTemplate/reactivate' }}" class="mt-2" <?= @$leftPosition ? '':'right' ?>>
+			<input type="hidden" name="uid" value="{{ $template->uid }}">
+			<div class="mb-2 w-100">
+				<label>Are you sure?</label>
+			</div>
+			<div class="mb-2 w-100">
+				<label>Memo</label>
+				<textarea name="memo" class="form-control"><?= $template->is_active ? $template->deactivation_memo: $template->reactivation_memo ?></textarea>
+			</div>
+			<div class="mt-3">
+				@if($template->is_active)
+				<button submit class="btn btn-sm btn-danger mr-2">Deactivate</button>
+				@else
+				<button submit class="btn btn-sm btn-primary mr-2">Reactivate</button>
+				@endif
+				<button cancel class="btn btn-default border">Cancel</button>
+			</div>
+		</form>
+	</div>

+ 17 - 0
resources/views/app/practice-management/visit-templates/create.blade.php

@@ -0,0 +1,17 @@
+<div moe>
+	<a class="" href="" show start>+ Create</a>
+	<form url="/api/visitTemplate/create"> 
+		<div class="mb-2">
+			<label>Internal Name<sup class="text-danger">*</sup></label>
+			<input type="text" name="internalName" class="form-control" required/>
+		</div>
+		<div class="mb-2">
+			<label>Title<sup class="text-danger">*</sup></label>
+			<input type="text" name="title" class="form-control" required/>
+		</div>
+		<div class="mb-0">
+			<button class="btn btn-success btn-sm" submit>Create</button>
+			<button class="btn btn-default border btn-sm" cancel>Cancel</button>
+		</div>
+	</form>
+</div>

+ 81 - 0
resources/views/app/practice-management/visit-templates/index.blade.php

@@ -0,0 +1,81 @@
+@extends ('layouts/template')
+
+@section('content')
+<div class="p-3 mcp-theme-1" id="patients-list">
+    <div class="card">
+
+        <div class="card-header border-bottom-0 px-1 py-2 d-flex align-items-center">
+            <strong class="mr-4">
+                <i class="fas fa-notes-medical"></i>
+                Visit Templates
+            </strong>
+            @include('app.practice-management.visit-templates.create')
+        </div>
+
+        <div class="card-body p-0">
+            <table class="table table-sm table-striped border-top p-0 m-0">
+                <thead class="bg-light">
+                    <tr>
+                        <th class="border-0">Internal Name</th>
+                        <th class="border-0">Title</th>
+                        <th class="border-0">Created At</th>
+                        <th class="border-0">Status</th>
+                        <th class="border-0">&nbsp;</th>
+                    </tr>
+                </thead>
+                <tbody>
+                    @foreach($visitTemplates as $template)
+                    <tr>
+                        <td><a href="{{ route('practice-management.visitTemplate', $template) }}">{{ $template->internal_name }}</a></td>
+                        <td>{{ $template->title }}</td>
+                        <td>{{ friendly_date_time($template->created_at) }}</td>
+                        <td>
+                            <div>
+                                @if($template->is_active)
+                                    <span class="text-success">ACTIVE</span>
+                                    @if($template->reactivation_memo)
+                                        <div style="width:300px;">
+                                            <small class="text-muted"><b>Memo: </b>{{ $template->reactivation_memo }}</small>
+                                            @include('app.practice-management.visit-templates.update-memo')
+                                        </div>
+                                    @endif
+                                @else
+                                    <span class="text-danger">INACTIVE</span>
+                                    @if($template->deactivation_memo)
+                                        <div style="width:300px;">
+                                            <small class="text-muted"><b>Memo: </b>{{ $template->deactivation_memo }}</small>
+                                            @include('app.practice-management.visit-templates.update-memo')
+                                        </div>
+                                    @endif
+                                @endif
+                            </div>
+                        </td>
+                        <td>
+                            <div class="d-flex align-items-center">
+                                <div class="mr-2">
+                                @include('app.practice-management.visit-templates.update')
+                                </div>
+                                <div>
+                                @include('app.practice-management.visit-templates.activate-deactivate')
+                                </div>
+                            </div>
+                        </td>                
+                    </tr>
+                    @endforeach
+
+                    @if(count($visitTemplates) === 0)
+                    <tr>
+                        <td colspan="5">No records found!</td>
+                    </tr>
+                    @endif
+                </tbody>
+
+            </table>
+
+        </div>
+    </div>
+    <div class="mt-3">
+        {{ $visitTemplates->appends(request()->input())->links() }}
+    </div>
+</div>
+@endsection

+ 19 - 0
resources/views/app/practice-management/visit-templates/update-memo.blade.php

@@ -0,0 +1,19 @@
+<div moe>
+		<a start show href="#">
+			<i class="far fa-edit"></i>
+		</a>
+		<form url="{{ $template->is_active ? '/api/visitTemplate/update-reactivation-memo' : '/api/visitTemplate/update-deactivation-memo' }}" class="mt-2">
+			<input type="hidden" name="uid" value="{{ $template->uid }}">
+			<div class="mb-2 w-100">
+				<label>Are you sure?</label>
+			</div>
+			<div class="mb-2 w-100">
+				<label>Memo</label>
+				<textarea name="memo" class="form-control"><?= $template->is_active ? $template->reactivation_memo: $template->deactivation_memo ?></textarea>
+			</div>
+			<div class="mt-3">
+				<button submit class="btn btn-sm btn-primary mr-2">Update</button>
+				<button cancel class="btn btn-default border">Cancel</button>
+			</div>
+		</form>
+	</div>

+ 18 - 0
resources/views/app/practice-management/visit-templates/update.blade.php

@@ -0,0 +1,18 @@
+<div moe>
+	<a class="" href="" show start><i class="far fa-edit"></i></a>
+	<form url="/api/visitTemplate/updateBasic" right> 
+	<input type="hidden" name="uid" value="{{ $template->uid }}" />
+		<div class="mb-2">
+			<label>Internal Name<sup class="text-danger">*</sup></label>
+			<input type="text" name="internalName" class="form-control" value="{{ $template->internal_name }}" required/>
+		</div>
+		<div class="mb-2">
+			<label>Title<sup class="text-danger">*</sup></label>
+			<input type="text" name="title" class="form-control" value="{{ $template->title }}" required/>
+		</div>
+		<div class="mb-0">
+			<button class="btn btn-success btn-sm" submit>Update</button>
+			<button class="btn btn-default border btn-sm" cancel>Cancel</button>
+		</div>
+	</form>
+</div>

+ 27 - 0
resources/views/app/practice-management/visit-templates/visit-template-segment-templates/activate-deactivate.blade.php

@@ -0,0 +1,27 @@
+<div moe>
+		<a start show href="#">
+			@if($template->is_active)
+				<span class="text-danger">Deactivate</span>
+			@else
+			<span class="text-success">Reactivate</span>
+			@endif
+		</a>
+		<form url="{{ $template->is_active ? '/api/visitTemplateSegmentTemplate/deactivate' : '/api/visitTemplateSegmentTemplate/reactivate' }}" class="mt-2" right>
+			<input type="hidden" name="uid" value="{{ $template->uid }}">
+			<div class="mb-2 w-100">
+				<label>Are you sure?</label>
+			</div>
+			<div class="mb-2 w-100">
+				<label>Memo</label>
+				<textarea name="memo" class="form-control"><?= $template->is_active ? $template->deactivation_memo: $template->reactivation_memo ?></textarea>
+			</div>
+			<div class="mt-3">
+				@if($template->is_active)
+				<button submit class="btn btn-sm btn-danger mr-2">Deactivate</button>
+				@else
+				<button submit class="btn btn-sm btn-primary mr-2">Reactivate</button>
+				@endif
+				<button cancel class="btn btn-default border">Cancel</button>
+			</div>
+		</form>
+	</div>

+ 79 - 0
resources/views/app/practice-management/visit-templates/visit-template-segment-templates/create.blade.php

@@ -0,0 +1,79 @@
+<div id="createVisitTemplateSegmentTemplate" class="d-inline">
+	<div moe>
+		<a class="" href="" show start>+ Create</a>
+		<form url="/api/visitTemplateSegmentTemplate/create">
+			<div id="createVisitTemplateSegmentTemplateComponent" v-cloak>
+				<input type="hidden" name="visitTemplateUid" value="{{ $visitTemplate->uid }}" />
+				<div class="mb-2">
+					<label>Segment Template<sup class="text-danger">*</sup></label>
+					<select name="segmentTemplateUid" class="form-control" select-2 required>
+						<option value=""></option>
+						<option v-for="t in segmentTemplates" v-bind:value="t.uid">@{{ t.default_display_title }}</option>
+					</select>
+				</div>
+				<div class="mb-2">
+					<label>Position Index<sup class="text-danger">*</sup></label>
+					<input type="number" name="positionIndex" class="form-control" required />
+				</div>
+				<div class="mb-2">
+					<label>Heading</label>
+					<input type="text" name="heading" class="form-control" />
+				</div>
+				<div class="mb-2">
+					<label>Sub-heading</label>
+					<input type="text" name="subheading" class="form-control" />
+				</div>
+				<div class="mb-2">
+					<label>Display title<sup class="text-danger">*</sup></label>
+					<input type="text" name="displayTitle" class="form-control" required />
+				</div>
+			</div>
+			<div class="mb-0">
+				<button class="btn btn-success btn-sm" submit>Create</button>
+				<button class="btn btn-default border btn-sm" cancel>Cancel</button>
+			</div>
+		</form>
+	</div>
+</div>
+
+<script>
+	var visitTemplateComponent = null;
+	(function() {
+		function init() {
+			visitTemplateComponent = new Vue({
+				el: '#createVisitTemplateSegmentTemplateComponent',
+				data: {
+					segmentTemplates:[]
+				},
+				methods: {
+					initSelect2: function(){
+						var self = this;
+						$('[select-2]').select2();
+					},
+					loadSegmentTemplates: function() {
+						var self = this;
+						$.get("{{ route('practice-management.segmentTemplates') }}", {response_type:'json'}, function(response) {
+							self.segmentTemplates = response.data;
+						}, 'json');
+					},
+					getSegmentTemplates: function(){
+						return this.segmentTemplates;
+					},
+					init: function() {
+						this.loadSegmentTemplates();
+					}
+				},
+				mounted: function() {
+					this.init();
+				},
+				updated: function(){
+					var self = this;
+					self.$nextTick(function(){
+						self.initSelect2();
+					});
+				}
+			});
+		}
+		addMCInitializer('createVisitTemplateSegmentTemplate', init);
+	})();
+</script>

+ 143 - 0
resources/views/app/practice-management/visit-templates/visit-template-segment-templates/index.blade.php

@@ -0,0 +1,143 @@
+@extends ('layouts/template')
+
+@section('content')
+<link href="/select2/select2.min.css" rel="stylesheet" />
+<script src="/select2/select2.min.js"></script>
+
+<style>
+    #visit-template-segment-template-list .select2-container {
+        width: 100% !important;
+    }
+</style>
+
+<div class="p-3 mcp-theme-1" id="visit-template-segment-template-list">
+    <a href="{{ route('practice-management.visitTemplates') }}" class="d-block mb-1"><i class="fas fa-arrow-left"></i> Back to Visit Templates</a>
+    <div class="card mb-3">
+        <div class="card-header">
+            <div class="d-flex align-items-center justify-content-between">
+            <strong>{{ $visitTemplate->title }}</strong>
+            <div>
+            @include('app.practice-management.visit-templates.update', ['template' => $visitTemplate ])
+            </div>
+            </div>
+        </div>
+        <div class="card-body">
+                <div class="d-flex align-items-start">
+                    <span class="mr-3"><b>Internal Name:</b> {{ $visitTemplate->internal_name }}</span>
+                    <span class="mr-3"><b>Title:</b> {{ $visitTemplate->title }}</span>
+                    <span class="mr-3"><b>Created At:</b> {{ friendly_date_time($visitTemplate->created_at) }}</span>
+                    <span class="mr-3">
+                        <b>Status:</b> 
+                    @if($visitTemplate->is_active)
+                        <span class="text-success mr-2">ACTIVE</span>
+                    @else
+                        <span class="text-danger mr-2">INACTIVE</span>
+                    @endif
+                    @include('app.practice-management.visit-templates.activate-deactivate', ['template' => $visitTemplate, 'leftPosition' => true ])
+                    </span>
+
+                    <div class="mr-3 d-flex align-items-start">
+                    @if($visitTemplate->is_active)
+                        @if($visitTemplate->reactivation_memo)
+                            <span class="mr-3"><b>Reactivation Memo:</b></span>
+                            <div style="width:300px;">
+                                <small class="text-muted"><b>Memo: </b>{{ $visitTemplate->reactivation_memo }}</small>
+                                @include('app.practice-management.visit-templates.update-memo', ['template' => $visitTemplate ])
+                            </div>
+                        @endif
+                    @else
+                        @if($visitTemplate->deactivation_memo)
+                            <span class="mr-3"><b>Deactivation Memo:</b></span>
+                            <div style="width:300px;">
+                                <small class="text-muted"><b>Memo: </b>{{ $visitTemplate->deactivation_memo }}</small>
+                                @include('app.practice-management.visit-templates.update-memo', ['template' => $visitTemplate ])
+                            </div>
+                        @endif
+                    @endif
+                    </div>
+                </div>
+        </div>
+    </div>
+    <div class="card">
+
+        <div class="card-header border-bottom-0 px-1 py-2 d-flex align-items-center">
+            <strong class="mr-4">
+                <i class="fas fa-notes-medical"></i>
+                Visit Template Segment Templates
+            </strong>
+            @include('app.practice-management.visit-templates.visit-template-segment-templates.create')
+        </div>
+
+        <div class="card-body p-0">
+            <table class="table table-sm table-striped border-top p-0 m-0">
+                <thead class="bg-light">
+                    <tr>
+                        <th class="border-0">Display title</th>
+                        <th class="border-0">Heading</th>
+                        <th class="border-0">Sub-heading</th>
+                        <th class="border-0">Position Index</th>
+                        <th class="border-0">Segment Template</th>
+                        <th class="border-0">Created At</th>
+                        <th class="border-0">Status</th>
+                        <th class="border-0">&nbsp;</th>
+                    </tr>
+                </thead>
+                <tbody>
+                    @foreach($visitTemplateSegmentTemplates as $template)
+                    <tr>
+                        <td>{{ $template->display_title }}</td>
+                        <td>{{ $template->heading }}</td>
+                        <td>{{ $template->subheading }}</td>
+                        <td>{{ $template->position_index }}</td>
+                        <td>{{ $template->segmentTemplate ? $template->segmentTemplate->default_display_title : '---' }}</td>
+                        <td>{{ friendly_date_time($template->created_at) }}</td>
+                        <td>
+                            <div>
+                                @if($template->is_active)
+                                    <span class="text-success">ACTIVE</span>
+                                    @if($template->reactivation_memo)
+                                        <div style="width:300px;">
+                                            <small class="text-muted"><b>Memo: </b>{{ $template->reactivation_memo }}</small>
+                                            @include('app.practice-management.visit-templates.visit-template-segment-templates.update-memo')
+                                        </div>
+                                    @endif
+                                @else
+                                    <span class="text-danger">INACTIVE</span>
+                                    @if($template->deactivation_memo)
+                                        <div style="width:300px;">
+                                            <small class="text-muted"><b>Memo: </b>{{ $template->deactivation_memo }}</small>
+                                            @include('app.practice-management.visit-templates.visit-template-segment-templates.update-memo')
+                                        </div>
+                                    @endif
+                                @endif
+                            </div>
+                        </td>
+                        <td>
+                            <div class="d-flex align-items-center">
+                                <div class="mr-2">
+                                @include('app.practice-management.visit-templates.visit-template-segment-templates.update')
+                                </div>
+                                <div>
+                                @include('app.practice-management.visit-templates.visit-template-segment-templates.activate-deactivate')
+                                </div>
+                            </div>
+                        </td>                
+                    </tr>
+                    @endforeach
+
+                    @if(count($visitTemplateSegmentTemplates) === 0)
+                    <tr>
+                        <td colspan="8">No records found!</td>
+                    </tr>
+                    @endif
+                </tbody>
+
+            </table>
+
+        </div>
+    </div>
+    <div class="mt-3">
+        {{ $visitTemplateSegmentTemplates->appends(request()->input())->links() }}
+    </div>
+</div>
+@endsection

+ 19 - 0
resources/views/app/practice-management/visit-templates/visit-template-segment-templates/update-memo.blade.php

@@ -0,0 +1,19 @@
+<div moe>
+		<a start show href="#">
+			<i class="far fa-edit"></i>
+		</a>
+		<form url="{{ $template->is_active ? '/api/visitTemplateSegmentTemplate/update-reactivation-memo' : '/api/visitTemplateSegmentTemplate/update-deactivation-memo' }}" class="mt-2">
+			<input type="hidden" name="uid" value="{{ $template->uid }}">
+			<div class="mb-2 w-100">
+				<label>Are you sure?</label>
+			</div>
+			<div class="mb-2 w-100">
+				<label>Memo</label>
+				<textarea name="memo" class="form-control"><?= $template->is_active ? $template->reactivation_memo: $template->deactivation_memo ?></textarea>
+			</div>
+			<div class="mt-3">
+				<button submit class="btn btn-sm btn-primary mr-2">Update</button>
+				<button cancel class="btn btn-default border">Cancel</button>
+			</div>
+		</form>
+	</div>

+ 28 - 0
resources/views/app/practice-management/visit-templates/visit-template-segment-templates/update.blade.php

@@ -0,0 +1,28 @@
+<div moe>
+	<a class="" href="" show start><i class="far fa-edit"></i></a>
+	<form url="/api/visitTemplateSegmentTemplate/updateBasic" right>
+		<div>
+			<input type="hidden" name="uid" value="{{ $template->uid }}" />
+			<div class="mb-2">
+				<label>Position Index<sup class="text-danger">*</sup></label>
+				<input type="number" name="positionIndex" class="form-control" value="{{ $template->position_index }}" required />
+			</div>
+			<div class="mb-2">
+				<label>Heading</label>
+				<input type="text" name="heading" class="form-control" value="{{ $template->heading }}" />
+			</div>
+			<div class="mb-2">
+				<label>Sub-heading</label>
+				<input type="text" name="subheading" class="form-control" value="{{ $template->subheading }}" />
+			</div>
+			<div class="mb-2">
+				<label>Display title<sup class="text-danger">*</sup></label>
+				<input type="text" name="displayTitle" class="form-control" required value="{{ $template->display_title }}" />
+			</div>
+		</div>
+		<div class="mb-0">
+			<button class="btn btn-success btn-sm" submit>Update</button>
+			<button class="btn btn-default border btn-sm" cancel>Cancel</button>
+		</div>
+	</form>
+</div>

+ 1 - 1
resources/views/layouts/template.blade.php

@@ -181,7 +181,7 @@
                             <a class="dropdown-item" href="{{ route('practice-management.clientsBdtDevices') }}">Clients BDT Devices</a>
                             <a class="dropdown-item" href="{{ route('practice-management.memos') }}">Memos</a>
                             <a class="dropdown-item" href="{{ route('practice-management.segmentTemplates') }}">Segment Templates</a>
-
+                            <a class="dropdown-item" href="{{ route('practice-management.visitTemplates') }}">Visit Templates</a>
                         @elseif($pro->is_enrolled_as_mcp && $pro->is_considered_for_mcp_assignment)
 
                             <a class="dropdown-item" href="{{ route('practice-management.financialTransactions') }}">Financial Transactions</a>

+ 2 - 0
routes/web.php

@@ -253,6 +253,8 @@ Route::middleware('pro.auth')->group(function () {
         Route::get('clients-bdt-devices', 'PracticeManagementController@clientsBdtDevices')->name('clientsBdtDevices');
         Route::get('memos', 'PracticeManagementController@memos')->name('memos');
         Route::get('segment-templates', 'PracticeManagementController@segmentTemplates')->name('segmentTemplates');
+        Route::get('visit-templates', 'PracticeManagementController@visitTemplates')->name('visitTemplates');
+        Route::get('visit-template/{visitTemplate}', 'PracticeManagementController@visitTemplate')->name('visitTemplate');
         Route::get('client-ccm-rm-status', 'PracticeManagementController@clientCcmRmStatus')->name('client-ccm-rm-status');
 
         Route::get('hcp-note-activity', 'PracticeManagementController@hcpNoteActivity')->name('hcp-note-activity');