Segment.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace App\Models;
  3. # use Illuminate\Database\Eloquent\Model;
  4. class Segment extends Model
  5. {
  6. protected $table = 'segment';
  7. public function segmentTemplate() {
  8. return $this->hasOne(SegmentTemplate::class, 'id', 'segment_template_id');
  9. }
  10. public function note() {
  11. return $this->hasOne(Note::class, 'id', 'note_id');
  12. }
  13. public function client() {
  14. return $this->hasOne(Client::class, 'id', 'client_id');
  15. }
  16. public function shortName(){
  17. return trim(array_reverse(explode('>', $this->display_title))[0]);
  18. }
  19. public function summarySuggestions()
  20. {
  21. return $this->hasMany(SegmentSummarySuggestion::class, 'segment_id', 'id')->orderBy('created_at', 'DESC');
  22. }
  23. public function summaryUpdates()
  24. {
  25. return $this->hasMany(SegmentSummaryUpdate::class, 'segment_id', 'id')->orderBy('created_at', 'DESC');;
  26. }
  27. public function currentSegmentSummarySuggestion() {
  28. return $this->hasOne(SegmentSummarySuggestion::class, 'id', 'current_segment_summary_suggestion_id');
  29. }
  30. public function currentSegmentSummaryChange() {
  31. return $this->hasOne(SegmentSummaryChange::class, 'id', 'current_segment_summary_change_id');
  32. }
  33. public function getRecalculatedHtml($performer){
  34. $pro = $performer->pro;
  35. $segment = $this;
  36. $segmentTemplate = $this->segmentTemplate;
  37. $note = $this->note;
  38. $patient = $note->client;
  39. $data = compact('performer', 'pro', 'segment', 'segmentTemplate', 'note', 'patient');
  40. $summaryHtml = view('app.patient.segment-templates.' . $segmentTemplate->internal_name . '/summary', $data)->render();
  41. $wizardPowered = [
  42. 'intake_medications',
  43. 'plan_medications',
  44. 'intake_problems',
  45. 'plan_problems',
  46. 'intake_goals',
  47. 'plan_goals',
  48. 'intake_allergies',
  49. 'plan_allergies',
  50. 'intake_care_team',
  51. 'plan_care_team',
  52. 'intake_supplements',
  53. 'plan_supplements'
  54. ];
  55. if(!in_array($segmentTemplate->internal_name, $wizardPowered)) {
  56. $editHtml = view('app.patient.segment-templates.' . $segmentTemplate->internal_name . '/edit', $data)->render();
  57. }
  58. return [
  59. 'summaryHtml'=> $summaryHtml ,
  60. 'editHtml' => $editHtml
  61. ];
  62. }
  63. }