AppointmentView.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Relations\HasOne;
  4. # use Illuminate\Database\Eloquent\Model;
  5. class AppointmentView extends Model
  6. {
  7. protected $table = 'appointment_view';
  8. public function clientCoverage(){
  9. $coverageDetails = json_decode($this->client_primary_coverage);
  10. $coverage = @$coverageDetails[0];
  11. return $coverage;
  12. }
  13. public function getClientPrimaryCoverageStatus() {
  14. $coverage = $this->clientCoverage();
  15. $status = 'NO';
  16. // if medicare, check is_partbprimary
  17. if($coverage->plan_type === 'MEDICARE') {
  18. $status = $coverage->is_partbprimary;
  19. }
  20. else {
  21. if(!$coverage->is_manually_determined) {
  22. // AUTO determination of non-medicare not yet supported
  23. $status = 'NO';
  24. }
  25. else {
  26. switch($coverage->manual_determination_category) {
  27. case 'COVERED':
  28. $status = 'YES';
  29. break;
  30. case 'NOT_COVERED':
  31. case 'INVALID':
  32. $status = 'NO';
  33. break;
  34. default:
  35. $status = $coverage->manual_determination_category;
  36. break;
  37. }
  38. }
  39. }
  40. return $status;
  41. }
  42. public function insuranceDisplayName(){
  43. $coverageName = $this->insuranceNameToString();
  44. if(stripos($coverageName, 'medicare') !== false) return 'Medicare';
  45. if(stripos($coverageName, 'medicaid') !== false) return 'Medicaid';
  46. if(stripos($coverageName, 'commercial') !== false) return 'Commercial';
  47. return null;
  48. }
  49. public function insuranceNameToString() {
  50. $coverage = $this->clientCoverage();
  51. $parts = [];
  52. $parts[] = $coverage->plan_type;
  53. if($coverage->plan_type === 'MEDICARE') {
  54. if($coverage->is_partbprimary === 'YES') {
  55. $parts[] = 'Part B';
  56. }
  57. }
  58. else {
  59. if(@$coverage->plan_name) $parts[] = ' / ' . $coverage->plan_name;
  60. if(@$coverage->plan_identifier) $parts[] = ' / ' . $coverage->plan_identifier;
  61. }
  62. return implode(" ", $parts);
  63. }
  64. }