new-patient.blade.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. @extends ('layouts.template')
  2. @section('content')
  3. <?php
  4. $patients = [1, 2, 3, 4];
  5. $medicaidStates = Config::get('constants.medicaid_states');
  6. ?>
  7. <style media="screen">
  8. .form-control {
  9. border-radius: 0;
  10. }
  11. </style>
  12. <div class="p-3 mcp-theme-1" id="newPatientContainer" v-cloak>
  13. <div class="col-12">
  14. <div class="card d-block mb-3" moe="">
  15. <div class="card-header">
  16. <strong>
  17. <i class="fas fa-user-plus"></i>
  18. New Patient
  19. </strong>
  20. </div>
  21. <div class="card-body">
  22. <form id="createNewPatientForm" show url="/api/client/create" class="px-2 pb-1 primary-form" redir="patients/view/[data]">
  23. @if (session('message'))
  24. <div class="alert alert-danger">{{ session('message') }}</div>
  25. @endif
  26. <div class="row">
  27. <div class="border-lighter col-md-6 px-0">
  28. <div class="px-3">
  29. @include('app.patient.create-patient.demographics-form')
  30. </div>
  31. @if($pro->pro_type === 'ADMIN')
  32. <div>
  33. @include('app.patient.create-patient.insurance-coverage-form')
  34. </div>
  35. @endif
  36. </div>
  37. <div class="col-md-6">
  38. <div class="border-lighter">
  39. @if($pro->pro_type === 'ADMIN')
  40. @include('app.patient.create-patient.create-patient-script-templates')
  41. @else
  42. @include('app.patient.create-patient.insurance-coverage-form')
  43. @endif
  44. </div>
  45. </div>
  46. </div>
  47. </form>
  48. </div>
  49. <div class="card-footer text-center">
  50. <button class="btn btn-primary" submit>Create New Patient</button>
  51. </div>
  52. </div>
  53. </div>
  54. </div>
  55. <link href="/select2/select2.min.css" rel="stylesheet" />
  56. <script src="/select2/select2.min.js"></script>
  57. <script src="/inputmask-5.x/dist/inputmask.js"></script>
  58. <script>
  59. (function() {
  60. function init() {
  61. let im = new Inputmask("(999) 999-9999").mask('[stag-input-phone]');
  62. $(document)
  63. .off('change.insurance', '.insurance')
  64. .on('change.insurance', '.insurance', function() {
  65. $('[data-insurance]').addClass('d-none');
  66. $('[data-insurance="' + $(this).val() + '"]').removeClass('d-none');
  67. $(this).closest('form').attr('url', '/api/client/' + ($(this).val() === 'medicare' ? 'create' : 'createNonMcn'))
  68. $(this).closest('[moe]').removeAttr('initialized');
  69. initMoes();
  70. return false;
  71. });
  72. $('.select2').select2({
  73. width: '100%'
  74. });
  75. }
  76. addMCInitializer('new-patient', init, '#newPatientContainer');
  77. }).call(window);
  78. var newPatientContainer = new Vue({
  79. el: '#newPatientContainer',
  80. data: {
  81. form: {},
  82. planType: 'MEDICARE',
  83. isPatientSubscriber: true
  84. },
  85. methods: {
  86. hpnToCpn: function() {
  87. this.form.cellNumber = this.form.homeNumber;
  88. this.form.homeNumber = null;
  89. },
  90. cpnToHpn: function() {
  91. this.form.homeNumber = this.form.cellNumber;
  92. this.form.cellNumber = null;
  93. },
  94. swapHpnCpn: function() {
  95. var data = $.extend({}, this.form);
  96. this.form.homeNumber = data.cellNumber;
  97. this.form.cellNumber = data.homeNumber;
  98. },
  99. onCommercialPayerChange: function() {
  100. var input = $('input[name=commercialPayerUidSuggest]');
  101. var hiddenInput = $('input[name=commercialPayerUid]');
  102. input
  103. .off('stag-suggest-selected')
  104. .on('stag-suggest-selected', (e, input, _data) => {
  105. hiddenInput.val(_data.uid);
  106. });
  107. },
  108. initOnInputChange: function() {
  109. var form = $('#createNewPatientForm');
  110. form.find('input[type=text],textarea').change(function() {
  111. var value = this.value.replace(/\s\s+/g, ' ');
  112. value = value.trim();
  113. $(this).val(value);
  114. });
  115. },
  116. init: function() {
  117. this.initOnInputChange();
  118. this.onCommercialPayerChange();
  119. }
  120. },
  121. mounted: function() {
  122. this.init();
  123. }
  124. });
  125. </script>
  126. @endsection