InstitutionModel.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. $info = DoctorModel::alias('d')
  55. ->join('doctor_class dc','dc.doctor_id=d.id and find_in_set("7", dc.doctor_class)')
  56. ->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."'")
  57. ->where('d.institution_id',$id)
  58. ->where('d.is_admin','1')
  59. ->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')
  60. ->select();
  61. if(empty(json_decode(json_encode($info),true))){
  62. $info = DoctorModel::alias('d')
  63. ->join('doctor_class dc','dc.doctor_id=d.id and find_in_set("7", dc.doctor_class)')
  64. ->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."'")
  65. ->where('d.institution_id',$id)
  66. ->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')
  67. ->select();
  68. }
  69. return $info;
  70. }
  71. }