InstitutionModel.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace app\api\model\institution;
  3. use app\api\model\doctor\DoctorModel;
  4. use app\api\model\rcontact\RcontactModel;
  5. use app\api\model\scontant\ScontantModel;
  6. use app\api\model\sremote\SremoteModel;
  7. use app\api\model\ZskkDefaultModel;
  8. use app\api\response\ServerResponse;
  9. use think\facade\Log;
  10. use app\api\model\patient\PatientModel;
  11. use app\api\model\ExamModel;
  12. class InstitutionModel extends ZskkDefaultModel {
  13. protected $table= 'institution';
  14. protected $logName = "InstitutionModel";
  15. protected $model = null;
  16. public function getInfo($id,$field)
  17. {
  18. $info = $this->where('id',$id)->field($field)->find();
  19. return $info;
  20. }
  21. public function getPayType($local,$super)
  22. {
  23. $type = RcontactModel::where('hospital_id',$local)->where('super_hospital_id',$super)->value('pay_type');
  24. return $type;
  25. }
  26. public function getSpecialDoctor($id)
  27. {
  28. $info = ScontantModel::alias('sc')
  29. ->join('doctors d', 'sc.did = d.id')
  30. ->join('institution i', 'sc.hid = i.id')
  31. ->join('doctor_class dc', 'dc.doctor_id=d.id and find_in_set("7", dc.doctor_class)')
  32. ->where('sc.sid',$id)
  33. ->where('sc.status',1)
  34. ->order('sc.sort asc')
  35. ->field('sc.id AS scid,sc.sid,sc.did AS id,sc.hid, convert(sc.cost/100,decimal(10,2)) AS cost, sc.describe AS introduce,i.name AS institution_name, d.realname')
  36. ->select();
  37. return $info;
  38. }
  39. public function getRemoteIns($id)
  40. {
  41. $info = RcontactModel::where('hospital_id',$id)->column('super_hospital_id');
  42. return $info;
  43. }
  44. public function getSpecialIns()
  45. {
  46. $info = SremoteModel::where('status',1)
  47. ->order('sort asc')
  48. ->field('id, name AS hospital_name,1 AS is_special')
  49. ->select();
  50. return $info;
  51. }
  52. public function getDoctor($id,$class,$remote)
  53. {
  54. return [];
  55. $info = DoctorModel::alias('d')
  56. ->join('doctor_class dc','dc.doctor_id=d.id and find_in_set("7", dc.doctor_class)')
  57. ->join('remote_cost rc',"rc.super_doctor_id=d.id and rc.exam_class='".$class."' and super_hospital_id=d.institution_id and hospital_id='".$remote."'")
  58. ->where('d.institution_id',$id)
  59. ->where('d.is_admin','1')
  60. ->field('d.id,d.institution_id AS hid,d.realname,convert(rc.money/100,decimal(10,2)) AS cost,introduce,null AS scid,null AS sid')
  61. ->select();
  62. if(empty(json_decode(json_encode($info),true))){
  63. $info = DoctorModel::alias('d')
  64. ->join('doctor_class dc','dc.doctor_id=d.id and find_in_set("7", dc.doctor_class)')
  65. ->join('remote_cost rc',"rc.super_doctor_id=d.id and rc.exam_class='".$class."' and super_hospital_id=d.institution_id and hospital_id='".$remote."'")
  66. ->where('d.institution_id',$id)
  67. ->field('d.id,d.institution_id AS hid,realname,d.introduce,convert(rc.money/100,decimal(10,2)) AS cost,null AS scid,null AS sid')
  68. ->select();
  69. }
  70. return $info;
  71. }
  72. }