刘桂岩 5 anos atrás
pai
commit
539ce8158c

+ 5 - 5
application/database.php

@@ -13,15 +13,15 @@ return [
     // 数据库类型
     'type'            => 'mysql',
     // 服务器地址
-    'hostname'        => '117.50.71.166',
+    'hostname'        => '47.104.6.21',
     // 数据库名
-    'database'        => 'pacsonline_pro',
+    'database'        => 'pacsonline',
     // 用户名
-    'username'        => 'pacs_pro',
+    'username'        => 'pacs',
     // 密码
-    'password'        => 'Zskk@2019~!@#',
+    'password'        => 'ZSKK@2017~!@#',
     // 端口
-    'hostport'        => '7001',
+    'hostport'        => '3306',
     // 连接dsn
     'dsn'             => '',
     // 数据库连接参数

+ 0 - 1
application/index/controller/Index.php

@@ -14,7 +14,6 @@ use think\Db;
 class Index extends Controller
 {
     public function  index(){
-        echo 'this is a test project';die;
         // echo "index";
         return $this->redirect('http://work.pacsonline.cn',302);
     }

+ 97 - 102
application/inter/controller/Application.php

@@ -16,37 +16,37 @@ use app\inter\service\WechatService;
 class Application extends Base
 {
     /**
- * 发起远程申请
- *
- * @ApiTitle            (发起远程申请)
- * @ApiSummary          (发起远程申请)
- * @ApiSector           (远程诊断)
- * @ApiMethod           (POST)
- * @ApiRoute            (/inter/application/index)
- * @ApiHeaders        (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders        (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders        (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams         (name="sessionid",                 type="string",      required=true,      description="参数json字符串")
- * @ApiParams         (name="param",                     type="string",      required=true,      description="参数json字符串")
- * @ApiParams         (name="is_remote",                 type="string",      required=true,      description="参数json字符串")
- * @ApiParams         (name="param[id]",                  type="string",      sample="",          description="预约登记exams表id值<必填>")
- * @ApiParams         (name="param[rid]",                  type="string",      sample="",          description="远程申请表id值<远程列表进入必填>")
- * @ApiReturnParams   (name="status",                      type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams   (name="code",                      type="integer",     required=true,      sample="0", description="返回状态码")
- * @ApiReturnParams   (name="info",                       type="string",      required=true,      sample="返回成功", description="返回信息")
- * @ApiReturnParams   (name="is_remote",                      type="object",      sample="{}",        description="是否为远程诊断进入")
- * @ApiReturnParams   (name="sessionid",                      type="object",      sample="{}",        description="缓存的数据key")
- * @ApiReturn   (data="
-{
-'status': ok,
-'code': '0000',
-'sessionid': 'a17z7a7a8f9g9rh9d89jio',
-'is_remote': 1,
-'info' : '',
-'rid' : ''
-}
- *")
- **/
+     * 发起远程申请
+     *
+     * @ApiTitle            (发起远程申请)
+     * @ApiSummary          (发起远程申请)
+     * @ApiSector           (远程诊断)
+     * @ApiMethod           (POST)
+     * @ApiRoute            (/inter/application/index)
+     * @ApiHeaders        (name="sign", type="string", required=true, description="请求头-校验key")
+     * @ApiHeaders        (name="nonce", type="string", required=true, description="请求头-随机数")
+     * @ApiHeaders        (name="timestamp", type=string, required=true, description="请求头-时间戳s")
+     * @ApiParams         (name="sessionid",                 type="string",      required=true,      description="参数json字符串")
+     * @ApiParams         (name="param",                     type="string",      required=true,      description="参数json字符串")
+     * @ApiParams         (name="is_remote",                 type="string",      required=true,      description="参数json字符串")
+     * @ApiParams         (name="param[id]",                  type="string",      sample="",          description="预约登记exams表id值<必填>")
+     * @ApiParams         (name="param[rid]",                  type="string",      sample="",          description="远程申请表id值<远程列表进入必填>")
+     * @ApiReturnParams   (name="status",                      type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
+     * @ApiReturnParams   (name="code",                      type="integer",     required=true,      sample="0", description="返回状态码")
+     * @ApiReturnParams   (name="info",                       type="string",      required=true,      sample="返回成功", description="返回信息")
+     * @ApiReturnParams   (name="is_remote",                      type="object",      sample="{}",        description="是否为远程诊断进入")
+     * @ApiReturnParams   (name="sessionid",                      type="object",      sample="{}",        description="缓存的数据key")
+     * @ApiReturn   (data="
+    {
+    'status': ok,
+    'code': '0000',
+    'sessionid': 'a17z7a7a8f9g9rh9d89jio',
+    'is_remote': 1,
+    'info' : '',
+    'rid' : ''
+    }
+     *")
+     **/
     public function  index(){
         try{
             $sessionid = $_REQUEST['sessionid'];
@@ -56,20 +56,15 @@ class Application extends Base
             if(isset($_REQUEST['is_remote']) && $_REQUEST['is_remote']==1){
                 $is_remote = 1;
             }
-            $info = DB::table('exams')->where('id',$id)->field('id,urgent,study_id,patient_id,exam_class,exam_sub_class,exam_project,device_name as device,exam_datetime,exam_status')->find();
+            $info = DB::table('exams')->where('id',$id)->field('id,urgent,study_id,patient_id,register_datetime,exam_class,exam_sub_class,exam_project,device,exam_datetime,exam_status')->find();
             $exam_class = DB::table('constant')->where('id',$info['exam_class'])->field('constant_value')->find();
-            $exam_subclass = DB::table('exam_subclass')->where('id',$info['exam_sub_class'])->find();
-            $exam_project = DB::table('exam_project')->where('id',$info['exam_project'])->find();
-            $device = DB::table('device')->where('id',$info['device'])->find();
-            if(empty($device)){
-                $deviceName = $info['device'];
-            }else{
-                $deviceName = $device['name'];
-            }
+            $exam_subclass = DB::table('exam_subclass')->where('id',$info['exam_sub_class'])->cache(300)->find();
+            $exam_project = DB::table('exam_project')->where('id',$info['exam_project'])->cache(300)->find();
+            $device = DB::table('device')->where('id',$info['device'])->cache(300)->find();
             $info['exam_class_name'] = $exam_class['constant_value'];
             $info['exam_subclass_name'] = $exam_subclass['name'];
             $info['exam_project_name'] = $exam_project['name'];
-            $info['device_name'] = $deviceName;
+            $info['device_name'] = $device['name'];
             $patient_info = DB::table('patient_infos')->where('id',$info['patient_id'])->field(['temp_patient_id','id','name','sex','age','birthday', 'phone'])->find();
             $info['pid'] = $patient_info['id'];
             $info['temp_patient_id'] = $patient_info['temp_patient_id'];
@@ -88,16 +83,16 @@ class Application extends Base
 
             // 特殊机构
             $special_doctors = Db::table('special_contact')
-            ->alias("sc")
-            ->join('doctors d', 'sc.did = d.id')
-            ->join('institution i', 'sc.hid = i.id')
-            ->join('special_remote sr', 'sc.sid = sr.id')
-            ->where('sr.status', 1)
-            ->where('sc.status', 1)
-            ->order('sr.sort asc')
-            ->order('sc.sort asc')
-            ->field('sc.hid, sc.did, sc.id, sc.cost, sc.describe, sr.id as sid, sr.name, sr.check, sr.color, d.realname as dname, i.name as hname')
-            ->select();
+                ->alias("sc")
+                ->join('doctors d', 'sc.did = d.id')
+                ->join('institution i', 'sc.hid = i.id')
+                ->join('special_remote sr', 'sc.sid = sr.id')
+                ->where('sr.status', 1)
+                ->where('sc.status', 1)
+                ->order('sr.sort asc')
+                ->order('sc.sort asc')
+                ->field('sc.hid, sc.did, sc.id, sc.cost, sc.describe, sr.id as sid, sr.name, sr.check, sr.color, d.realname as dname, i.name as hname')
+                ->select();
             $super_hospitals = array();
             // 特殊机构
             if(!empty($special_doctors)) {
@@ -143,13 +138,13 @@ class Application extends Base
             if($is_pay === 1) {
                 $super_hospitals = array();
                 $super_doctors = DB::table("remote_contact")
-                ->alias("rc1")
-                ->join('remote_cost rc2', 'rc1.hospital_id = rc2.hospital_id and rc1.super_hospital_id = rc2.super_hospital_id')
-                ->where('rc1.hospital_id', $institution_id)
-                ->where('rc2.exam_class', $info['exam_class'])
-                ->field('rc1.hospital_id, rc1.super_hospital_id, rc1.hospital_name, rc1.super_hospital_name, rc1.pay_type, rc2.super_doctor_id, rc2.super_doctor_name, rc2.exam_class, rc2.is_admin')
-                // ->fetchSql()
-                ->select();
+                    ->alias("rc1")
+                    ->join('remote_cost rc2', 'rc1.hospital_id = rc2.hospital_id and rc1.super_hospital_id = rc2.super_hospital_id')
+                    ->where('rc1.hospital_id', $institution_id)
+                    ->where('rc2.exam_class', $info['exam_class'])
+                    ->field('rc1.hospital_id, rc1.super_hospital_id, rc1.hospital_name, rc1.super_hospital_name, rc1.pay_type, rc2.super_doctor_id, rc2.super_doctor_name, rc2.exam_class, rc2.is_admin')
+                    // ->fetchSql()
+                    ->select();
                 // var_dump($super_doctors);
                 foreach($super_doctors as $v) {
                     if(!isset($super_hospitals[$v['hospital_id']])){
@@ -178,7 +173,7 @@ class Application extends Base
             } else {
                 $parent_hosp = explode(',',$hospital['parent_institution']);
                 foreach($parent_hosp as $v){
-                    $phname = DB::table("institution")->where('id',$v)->field(['id','name'])->find();
+                    $phname = DB::table("institution")->where('id',$v)->cache(300)->field(['id','name'])->find();
                     log::record('上级医院----'.json_encode($phname));
                     if(!isset($phname['id']) || empty($phname['id'])){
                         $phname['id'] = $v;
@@ -197,19 +192,19 @@ class Application extends Base
             //申请信息
             if(isset($param['rid']) && !empty($param['rid'])){
                 $rid = $param['rid'];
-                $application = DB::table('remote_application')->where('id',$rid)->field(['id,remote_institution_id,report_status,id,remote_doctor_id','application_desc','attachment','req_doctor_id','illness_desc','phys_sign','is_urgent','clin_symp','anamnesis','family_ill','remark','clin_diag'])->find();
+                $application = DB::table('remote_application')->where('id',$rid)->field(['id,report_status,id,remote_doctor_id','application_desc','attachment','req_doctor_id','illness_desc','phys_sign','is_urgent','clin_symp','anamnesis','family_ill','remark','clin_diag'])->find();
                 $aid = $application['id'];
             }else{
                 $rid = '';
-                $application = DB::table('remote_application')->where('exam_id',$id)->field(['id,remote_institution_id,report_status,id,remote_doctor_id','application_desc','attachment','req_doctor_id','illness_desc','phys_sign','clin_symp','is_urgent','anamnesis','family_ill','remark','clin_diag'])->find();
+                $application = DB::table('remote_application')->where('exam_id',$id)->field(['id,report_status,id,remote_doctor_id','application_desc','attachment','req_doctor_id','illness_desc','phys_sign','clin_symp','is_urgent','anamnesis','family_ill','remark','clin_diag'])->find();
                 $aid = $application['id'];
             }
             $remote_order =  DB::table('remote_order')
-            ->where('application_id', $application['id'])
-            ->where('status', 'neq', self::ORDER_STATUS['CANCEL'])
-            ->where('status', 'neq', self::ORDER_STATUS['REDUCE'])
-            ->field('id, status, exam_class, super_hospital_id, super_doctor_id')
-            ->find();
+                ->where('application_id', $application['id'])
+                ->where('status', 'neq', self::ORDER_STATUS['CANCEL'])
+                ->where('status', 'neq', self::ORDER_STATUS['REDUCE'])
+                ->field('id, status, exam_class, super_hospital_id, super_doctor_id')
+                ->find();
             if($remote_order) {
                 $info['remote_order'] = $remote_order;
             }
@@ -225,7 +220,7 @@ class Application extends Base
             }
             $info['department_name'] = $dep['department_name'];
             if(empty($application)){
-                $exam_application = DB::table('register')->where('exam_id',$id)->field(['illness_desc','phys_sign','clin_symp','clin_diag','anamnesis','family_ill'])->find();
+                $exam_application = DB::table('exams')->where('id',$id)->field(['illness_desc','phys_sign','clin_symp','remark','clin_diag','anamnesis','family_ill'])->find();
                 if(empty($exam_application['anamnesis'])){
                     $exam_application['anamnesis'] = '';
                 }else{
@@ -238,7 +233,7 @@ class Application extends Base
                 }
                 $exam_application['report_status'] = '';
                 $exam_application['remark'] = '';
-                $exam_application['remote_institution'] = '';
+                $exam_application['remote_institution'] = 
                 $info['application'] = $exam_application;
             }else{
                 $remote_name = DB::table('doctors')->where('id',$application['remote_doctor_id'])->field('realname')->find();
@@ -466,7 +461,7 @@ class Application extends Base
 //                $r = DB::table('remote_application')->where('exam_id',$param['id'])->field('id')->find();
 //                $aid = $r['id'];
 //            }
-            
+
             if(isset($param['apply']) && !empty($param['apply'])){
                 $institution_id = $doctor['institution_id'];
                 $lower_hospital = DB::table('institution')->where('id', $institution_id)->field('is_pay')->find();
@@ -498,23 +493,24 @@ class Application extends Base
                 if(!empty($sid) && empty($scid)) {
                     return json_encode(['status'=>'fail','code'=>'2016','msg'=> '请选择问诊医生']);
                 }
+
                 if($is_pay === 1 && empty($sid)) {
                     $cost = DB::table('remote_cost')
-                    ->where('hospital_id', $local_institution_id)
-                    ->where('super_hospital_id', $remote_institution_id)
-                    ->where('super_doctor_id', $remote_doctor_id)
-                    ->where('exam_class', $exam_info['exam_class'])
-                    ->field('money')
-                    ->find();
+                        ->where('hospital_id', $local_institution_id)
+                        ->where('super_hospital_id', $remote_institution_id)
+                        ->where('super_doctor_id', $remote_doctor_id)
+                        ->where('exam_class', $exam_info['exam_class'])
+                        ->field('money')
+                        ->find();
                     if(!$cost) {
                         return json_encode(['status'=>'ok','code'=>'2016','msg'=> '远程医生获取失败']);
                     }
                     if($cost['money'] !== 0) {
                         $contact = DB::table('remote_contact')
-                        ->where('hospital_id', $local_institution_id)
-                        ->where('super_hospital_id', $remote_institution_id)
-                        ->field('pay_type')
-                        ->find();
+                            ->where('hospital_id', $local_institution_id)
+                            ->where('super_hospital_id', $remote_institution_id)
+                            ->field('pay_type')
+                            ->find();
                         if(!$contact) {
                             return json_encode(['status'=>'ok','code'=>'2017','msg'=> '远程机构获取失败']);
                         }
@@ -555,6 +551,7 @@ class Application extends Base
                     DB::table('remote_application')->where('exam_id',$param['id'])->update(['report_status'=>4]);
                 }
                 // 添加messages信息
+
                 // $wechatService->pushWechatOrder($param['id']);
                 $t = '收到一条远程诊断申请';
                 $ins = DB::table('institution')->where('id',$doctor['institution_id'])->field('name')->find();
@@ -574,10 +571,10 @@ class Application extends Base
                 // if($dinfo['institution_id'] == '22100003' || $dinfo['send_sms'] == 1){ //魏庙
                 //     $repsone = send_message::sendSms2Apply($d_phone,$d_time,$d_name);
                 // }
-                    // $tel = '18910184804';
-                    // $type = '发起申请';
-                    // $content  = $aid;
-    //                $response = send_message::sendSms2Self($tel,$type,$content);
+                // $tel = '18910184804';
+                // $type = '发起申请';
+                // $content  = $aid;
+                //                $response = send_message::sendSms2Self($tel,$type,$content);
             }
             return json_encode(['status'=>'ok','code'=>'0000','sessionid'=>$sessionid,'aid'=>$aid]);
         }catch(\Exception $e){
@@ -617,11 +614,11 @@ class Application extends Base
         $water_why = self::WATER_WHY['REMOTEPAY'];
         try{
             $remote_order =  DB::table('remote_order')
-            ->where('application_id', $application_id)
-            ->where('status', 'neq', self::ORDER_STATUS['CANCEL'])
-            ->where('status', 'neq', self::ORDER_STATUS['REDUCE'])
-            ->field('id')
-            ->find();
+                ->where('application_id', $application_id)
+                ->where('status', 'neq', self::ORDER_STATUS['CANCEL'])
+                ->where('status', 'neq', self::ORDER_STATUS['REDUCE'])
+                ->field('id')
+                ->find();
             DB::table('remote_application')->where('id',$application_id)->update(['report_status'=>4]);
             if($remote_order) {
                 DB::commit();
@@ -630,9 +627,9 @@ class Application extends Base
                 return json_encode(['status'=>'fail','code'=>'2019','msg' => '已存在订单,请勿重复发起']);
             }
             $hospital = DB::table('institution')
-            ->where('id', $hospital_id)
-            ->field('min_money, current_money')
-            ->find();
+                ->where('id', $hospital_id)
+                ->field('min_money, current_money')
+                ->find();
             if(!$hospital) {
                 DB::rollback();
                 return json_encode(['status'=>'fail','code'=>'2017','msg' => '查找本地医院失败']);
@@ -645,7 +642,6 @@ class Application extends Base
             }
             DB::table('institution')->where('id',$hospital_id)->update(['current_money'=> $current_money - $order_money]);
             $order_id = UUIDs::uuid16();
-            var_dump(1);
             DB::table('remote_order')->insert([
                 'id' => $order_id,
                 'hospital_id' => $hospital_id,
@@ -660,7 +656,6 @@ class Application extends Base
                 'pay_way' => $pay_way,
                 'timestamp' => time(),
             ]);
-            var_dump(2);
             DB::table('remote_water')->insert([
                 'id' => UUIDs::uuid16(),
                 'hospital_id' => $hospital_id,
@@ -686,11 +681,11 @@ class Application extends Base
         DB::startTrans();
         try{
             $remote_order =  DB::table('remote_order')
-            ->where('application_id', $application_id)
-            ->where('status', 'neq', self::ORDER_STATUS['CANCEL'])
-            ->where('status', 'neq', self::ORDER_STATUS['REDUCE'])
-            ->field('id')
-            ->find();
+                ->where('application_id', $application_id)
+                ->where('status', 'neq', self::ORDER_STATUS['CANCEL'])
+                ->where('status', 'neq', self::ORDER_STATUS['REDUCE'])
+                ->field('id')
+                ->find();
             DB::table('remote_application')->where('id',$application_id)->update(['report_status'=>4]);
             if($remote_order) {
                 DB::commit();
@@ -731,9 +726,9 @@ class Application extends Base
         try{
             DB::table('remote_order')->where('id', $order_id)->update(["status" => self::ORDER_STATUS["REDUCE"]]);
             $hospital = DB::table('institution')
-            ->where('id', $hospital_id)
-            ->field('current_money')
-            ->find();
+                ->where('id', $hospital_id)
+                ->field('current_money')
+                ->find();
             $current_money = $hospital['current_money'];
             DB::table('institution')->where('id',$hospital_id)->update(['current_money'=> $current_money + $order_money]);
             DB::table('remote_water')->insert([
@@ -796,7 +791,7 @@ class Application extends Base
         "ALIPAY" => 12,
         "BANK" => 13
     ];
-   
+
     /**支付类型 微信 医院  */
     public const PAY_TYPE = [
         "PATIENT" => 0,

+ 24 - 24
application/inter/controller/Dcquery.php

@@ -49,12 +49,12 @@ class Dcquery extends Controller
 
                         $seriesData["seriesInstanceUid"]=$val["seriesuid"];
                         $seriesData["seriesDescription"]=$val["description"];
-                        $imgs=Db::table("images")->where("series_id",$val["id"])->field("id,columns,imageNumber,rows,sop_uid,url,metadata")->select();
+                        $imgs=Db::table("images")->where("series_id",$val["id"])->field("id,columns,image_number,rows,sop_uid,url,metadata")->select();
                         $imgsListData=array();
                         foreach($imgs as $ikey=>$ival){
                             $imgsData=array();
                             $imgsData["columns"]=$ival["columns"];
-                            $imgsData["instanceNumber"]=$ival["imageNumber"];
+                            $imgsData["instanceNumber"]=$ival["image_number"];
                             $imgsData["rows"]=$ival["rows"];
                             $imgsData["sopInstanceUid"]=$ival["sop_uid"];
                             $imgsData["url"]="dicomweb://dcm.pacsonline.cn/" . $ival["metadata"];
@@ -84,7 +84,7 @@ class Dcquery extends Controller
         $series_list = DB::table('series')->where('study_id',$study_id)->field('id,seriesuid,description')->select();
         $series = array();
         foreach($series_list as $k=>$v){
-            $image = DB::table('images')->where('series_id',$v['id'])->field('columns,imageNumber as instanceNumber,rows,imageId as sopInstanceUid,url,frame')->select();
+            $image = DB::table('images')->where('series_id',$v['id'])->field('columns,image_number as instanceNumber,rows,image_id as sopInstanceUid,url,frame')->select();
             foreach($image as $key=>$value){
                 $image[$key]['url'] = 'http://dcm.pacsonline.cn/'.$value['url'];
             }
@@ -118,21 +118,21 @@ class Dcquery extends Controller
      *")
      **/
     public function get_studiesinfo(){
-//        try{
+        try{
             $check_id = $_REQUEST['study_id']?? false;
             switch($check_id) {
                 case 'yyk_demo_ct':
                     $study_id = '0c803a0934dfa1d8';
-                break;
+                    break;
                 case 'yyk_demo_dr':
                     $study_id = 'e90deb4c054ce5d3';
-                break;
+                    break;
                 case 'yyk_demo_dsa':
                     $study_id = '116d4dbaa1c1cc29';
-                break;
+                    break;
                 default:
                     $study_id = $check_id;
-                break;
+                    break;
             }
             // if($study_id && Cache::get($study_id)){
             //     return Cache::get($study_id);
@@ -172,16 +172,16 @@ class Dcquery extends Controller
             $institution = DB::table('institution')->where('id',$patient_info['institution_id'])->field('name')->find();
             $info['patientName'] = $patient_info['name'];
             // 根据series_num排序
-            $series_list = DB::table('series')->where('study_id',$study_info['id'])->where('modality','not in','PR,SR')->field('id,seriesNum as series_num,seriesuid,seriesDescription as description,modality')->order('series_num asc')->select();
+            $series_list = DB::table('series')->where('study_id',$study_info['id'])->where('modality','not in','PR,SR')->field('id,series_num,seriesuid,description,modality')->order('series_num asc')->select();
             $series = array();
             $ids = array();
             foreach($series_list as $k=>$v){
                 $ids[] = $v['id'];
             }
             if($patient_info['institution_id'] == '15000004') {
-                $images_list = DB::table('images')->whereNotNull('imageNumber')->where('series_id','in',$ids)->field('frame,series_id,cineRate,remote_url,local_url,status,columns,imageNumber as instanceNumber,rows,imageId as sopInstanceUid,metadata,url')->order('imageNumber asc')->select();
+                $images_list = DB::table('images')->whereNotNull('image_number')->where('series_id','in',$ids)->field('frame,series_id,cineRate,remote_url,local_url,status,columns,image_number as instanceNumber,rows,image_id as sopInstanceUid,metadata,url')->order('image_number asc')->select();
             } else {
-                $images_list = DB::table('images')->where('series_id','in',$ids)->field('frame,series_id,cineRate,remote_url,local_url,status,columns,imageNumber as instanceNumber,rows,imageId as sopInstanceUid,metadata,url')->order('imageNumber asc')->select();
+                $images_list = DB::table('images')->where('series_id','in',$ids)->field('frame,series_id,cineRate,remote_url,local_url,status,columns,image_number as instanceNumber,rows,image_id as sopInstanceUid,metadata,url')->order('image_number asc')->select();
             }
             if(empty($images_list)){
                 return json_encode([
@@ -215,13 +215,13 @@ class Dcquery extends Controller
             switch($check_id) {
                 case 'yyk_demo_ct':
                     $this->handleYykInfo($info, $this->YYK_DEMO_PATIRENT['YYK_DEMO_CT']);
-                break;
+                    break;
                 case 'yyk_demo_dr':
                     $this->handleYykInfo($info, $this->YYK_DEMO_PATIRENT['YYK_DEMO_DR']);
-                break;
+                    break;
                 case 'yyk_demo_dsa':
                     $this->handleYykInfo($info, $this->YYK_DEMO_PATIRENT['YYK_DEMO_DSA']);
-                break;
+                    break;
             }
 
             $return['studies'][] = $info;
@@ -229,11 +229,11 @@ class Dcquery extends Controller
             Log::record('return');
             Log::record($return);
             return json_encode($return);
-//        }catch(Exception $e){
-//            Log::record('error');
-//            Log::record($e->getMessage());
-//            echo $e->getMessage();
-//        }
+        }catch(Exception $e){
+            Log::record('error');
+            Log::record($e->getMessage());
+            echo $e->getMessage();
+        }
     }
 
     private $YYK_DEMO_PATIRENT = [
@@ -292,7 +292,7 @@ class Dcquery extends Controller
     }*/
 
     /*public function generateSeriesSingle($serie, $url) {
-        $images_list = DB::table('images')->where('series_id',$serie['id'])->field('remote_url,local_url,status,columns,imageNumber as instanceNumber,rows,imageId as sopInstanceUid,metadata,url,frame')->order('imageNumber asc')->select();
+        $images_list = DB::table('images')->where('series_id',$serie['id'])->field('remote_url,local_url,status,columns,image_number as instanceNumber,rows,image_id as sopInstanceUid,metadata,url,frame')->order('image_number asc')->select();
         $series = array();
         $images = array();
         $seriesCount = 0;
@@ -376,12 +376,12 @@ class Dcquery extends Controller
         return  self::generateNormalUrl($url,$address);
     }
     public function generateIpUrl($url, $address, $remote_url, $local_url, $status,$metadata) {
-        
+
         if (strpos($url, "zskk-dcm.oss-cn-beijing.aliyuncs.com")){
             return str_replace('zskk-dcm.oss-cn-beijing.aliyuncs.com', $address.'/oss', $url);
         }
-        
-        
+
+
         if(empty($remote_url) && empty($local_url)){
             return 'dicomweb://'.$address.'/'.$metadata;
         }else{
@@ -394,7 +394,7 @@ class Dcquery extends Controller
             }
             if(in_array($ip,json_decode(LC_LAN_IPS,TRUE))) {
                 if($status & STATUS_LOCAL) {
-                //内网url有效
+                    //内网url有效
                     return "dicomweb://$address/$local_url";
                 }
                 if($status & STATUS_REMOTE) {

+ 1 - 1
application/inter/controller/Reciveremote.php

@@ -224,7 +224,7 @@ class Reciveremote extends Base
             } else {
                 $where2 = "(`ra`.`report_status` = '4' or `ra`.`report_status` = '6' or `ra`.`report_status` = '7' or `ra`.`report_status` = '8' or `ra`.`report_status` = '9') and (`ra`.`remote_doctor_id`= ? or `ra`.`remote_doctor_id` = '')";
             }
-            $filed = "`d`.`realname` as `report_doctor_id`, `ra`.`id` as `ra_id`, `ra`.`anamnesis`, `ra`.`application_desc`, `ra`.`attachment`, `ra`.`clin_diag`, `ra`.`clin_symp`, `ra`.`createdAt`, `ra`.`exam_id`, `ra`.`family_ill`, `ra`.`illness_desc`, `ra`.`is_urgent`, `ra`.`local_institution_id`,  `ra`.`phys_sign`, `ra`.`remark`, `ra`.`remote_doctor_id`, `ra`.`remote_institution_id`, `ra`.`report_status`, `ra`.`req_date_time`, `ra`.`req_doctor_id`, `ra`.`status`, `e`.`body_part`, `e`.`exam_class`, `e`.`exam_class` as `class_name`, `e`.`device_name`, `e`.`exam_datetime`, `e`.`id` as `exam_id`, `e`.`exam_status`, `e`.`exam_sub_class`, `e`.`id`, `e`.`severe`, `e`.`patient_id`, `r`.`report_datetime` as `rdatetime`, `r`.`report_datetime`, `r`.`report_doctor_id` as `r_report_doctor_id`, `r`.`id` as `report_id`, `r`.`report_result`, `pi`.`age`, `pi`.`name`, `pi`.`sex`, `pi`.`temp_patient_id`, `i`.`name` as `local_institution_name`, `ra`.`sid`";
+            $filed = "`d`.`realname` as `report_doctor_id`, `ra`.`id` as `ra_id`, `ra`.`anamnesis`, `ra`.`application_desc`, `ra`.`attachment`, `ra`.`clin_diag`, `ra`.`clin_symp`, `ra`.`createdAt`, `ra`.`exam_id`, `ra`.`family_ill`, `ra`.`illness_desc`, `ra`.`is_urgent`, `ra`.`local_institution_id`, `ra`.`marrital`, `ra`.`phys_sign`, `ra`.`remark`, `ra`.`remote_doctor_id`, `ra`.`remote_institution_id`, `ra`.`report_status`, `ra`.`req_date_time`, `ra`.`req_doctor_id`, `ra`.`status`, `e`.`body_part`, `e`.`exam_class`, `e`.`exam_class` as `class_name`, `e`.`device`, `e`.`exam_datetime`, `e`.`id` as `exam_id`, `e`.`exam_status`, `e`.`exam_sub_class`, `e`.`id`, `e`.`severe`, `e`.`patient_id`, `r`.`report_datetime` as `rdatetime`, `r`.`report_datetime`, `r`.`report_doctor_id` as `r_report_doctor_id`, `r`.`id` as `report_id`, `r`.`report_result`, `pi`.`age`, `pi`.`name`, `pi`.`sex`, `pi`.`temp_patient_id`, `i`.`name` as `local_institution_name`, `ra`.`sid`";
             $table = "`remote_application` `ra` left join `remote_order` `ro` on `ro`.`id` = (select `id` from `remote_order` `rot` where `rot`.`application_id` = `ra`.`id` order by `timestamp` desc limit 1) left join `exams` `e` on `ra`.`exam_id` = `e`.`id` left join `report` `r` on `ra`.`id` = `r`.`remote_application_id` left join `patient_infos` `pi` on `e`.`patient_id` = `pi`.`id` left join `institution` `i` on `ra`.`local_institution_id` = `i`.`id` left join `doctors` `d` on `r`.`report_doctor_id` = `d`.`id`";
             $where1 = "`ra`.`remote_institution_id` = ?";
             $where3 = "(`ro`.`status` is null or `ro`.`status` = 2 or `ro`.`status` = 3)";

+ 1 - 1
application/inter/controller/Registerlist.php

@@ -106,7 +106,7 @@ class Registerlist extends Base
                     }
                 }
             }
-            $sql1 = "SELECT e.id,e.study_id,e.accession_num,e.patient_num,e.institution_id,e.exam_datetime,e.exam_class,e.exam_project,e.exam_status,p.name,p.sex,p.age from exams as e ,patient_infos as p where e.institution_id='".$doctor['institution_id']."' and p.id=e.patient_id and e.status!=0";
+            $sql1 = "SELECT e.id,e.is_remote,e.study_id,e.accession_num,e.patient_num,e.institution_id,e.exam_datetime,e.exam_class,e.exam_project,e.exam_status,p.name,p.sex,p.age from exams as e ,patient_infos as p where e.institution_id='".$doctor['institution_id']."' and p.id=e.patient_id and e.status!=0";
             //
             if(isset($param['search']) && !empty($param['search'])){
                 // 姓名  病历号  检查号

+ 47 - 14
application/inter/controller/Report.php

@@ -165,7 +165,8 @@ class Report extends Base
 
                 $sql = '('.$sql1.') union ('.$sql2.') union ('.$sql3.')'.$limit;
             }else{*/
-            $sql = "SELECT a.id,a.severe,a.urgent,a.accession_num,a.patient_num,a.report_result,a.study_id,a.exam_datetime,a.exam_project,a.exam_status,a.exam_class,a.application_doctor,a.application_department,p.name,p.sex,p.age,ra.report_status FROM (exams as a,patient_infos as p) LEFT JOIN remote_application as ra on ra.exam_id=a.id where a.institution_id='".$doctor['institution_id']."' and p.id=a.patient_id and a.status=1 and a.exam_status>2 ".$where." order by a.createdAt desc".$limit;
+
+            $sql = "SELECT a.id,a.severe,a.urgent,a.is_remote,a.accession_num,a.patient_num,a.exam_report,a.study_id,a.exam_datetime,a.exam_project,a.exam_status,a.exam_class,a.application_doctor,a.application_department,p.name,p.sex,p.age,ra.report_status FROM (exams as a,patient_infos as p) LEFT JOIN remote_application as ra on ra.exam_id=a.id where a.institution_id='".$doctor['institution_id']."' and p.id=a.patient_id and a.status=1 and a.exam_status>2 ".$where." order by a.createdAt desc".$limit;
 //            }
             // if($doctor['institution_id'] == '13000003' and $page == 1 and empty($where)){
             //     if(Cache::get('13000003_2')){
@@ -191,22 +192,54 @@ class Report extends Base
                 }else{
                     $list[$k]['status'] = 0;
                 }
-                $remote_name = DB::table('institution')->where('id',$doctor['institution_id'])->field('name')->find();
-                $list[$k]['report_app_name'] = $remote_name['name'];
-                $project = DB::table('exam_project')->where('id',$v['exam_project'])->field('name')->find();
-                $list[$k]['exam_project_name'] = $project['name'];
-                $report = DB::table('report')->where('exam_id',$v['id'])->field('report_datetime,report_doctor_id,review_doctor_id')->find();
-                if($report){
-                    $report_doctor = DB::table('doctors')->where('id',$report['report_doctor_id'])->field('realname')->find();
-                    $review_doctor = DB::table('doctors')->where('id',$report['review_doctor_id'])->field('realname')->find();
-                    $list[$k]['review_doctor'] = $review_doctor['realname'];
-                    $list[$k]['report_doctor'] = $report_doctor['realname'];
-                    $list[$k]['report_datetime'] = $report['report_datetime'];
+                if($v['is_remote'] == 1){
+                    // 远程报告   获取发送的报告医院
+                    $remote = DB::table('remote_application')->where('exam_id',$v['id'])->field('remote_institution_id')->find();
+                    $remote_name = DB::table('institution')->where('id',$remote['remote_institution_id'])->cache(300)->field('name')->find();
+                    $project = DB::table('exam_project')->where('id',$v['exam_project'])->field('name')->find();
+                    $list[$k]['exam_project_name'] = $project['name'];
+                    $list[$k]['report_app_name'] = $remote_name['name'];
+                    $report = DB::table('report')->where('exam_id',$v['id'])->field('report_datetime,report_doctor_id,review_doctor_id')->find();
+                    if($report){
+                        $report_doctor = DB::table('doctors')->where('id',$report['report_doctor_id'])->field('realname')->find();
+                        $review_doctor = DB::table('doctors')->where('id',$report['review_doctor_id'])->field('realname')->find();
+                        $list[$k]['review_doctor'] = $review_doctor['realname'];
+                        $list[$k]['report_doctor'] = $report_doctor['realname'];
+                        $list[$k]['report_datetime'] = $report['report_datetime'];
+                    }
                 }else{
-                    $list[$k]['report_doctor'] = '';
-                    $list[$k]['report_datetime'] = '';
+                    $remote_name = DB::table('institution')->where('id',$doctor['institution_id'])->cache(300)->field('name')->find();
+                    $list[$k]['report_app_name'] = $remote_name['name'];
+                    $project = DB::table('exam_project')->where('id',$v['exam_project'])->field('name')->find();
+                    $list[$k]['exam_project_name'] = $project['name'];
+                    $report = DB::table('report')->where('exam_id',$v['id'])->field('report_datetime,report_doctor_id,review_doctor_id')->find();
+                    if($report){
+                        $report_doctor = DB::table('doctors')->where('id',$report['report_doctor_id'])->field('realname')->find();
+                        $review_doctor = DB::table('doctors')->where('id',$report['review_doctor_id'])->field('realname')->find();
+                        $list[$k]['review_doctor'] = $review_doctor['realname'];
+                        $list[$k]['report_doctor'] = $report_doctor['realname'];
+                        $list[$k]['report_datetime'] = $report['report_datetime'];
+                    }else{
+                        $list[$k]['report_doctor'] = '';
+                        $list[$k]['report_datetime'] = '';
+                    }
                 }
             }
+            /*if($is_urgent == 1){
+                //远程报告申请机构
+                $doctor = Cache::get('doctor');
+                //当前科室ID和name
+                $p_institution = DB::table('institution')->where('id',$doctor['institution_id'])->field(['id','name'])->find();
+                // 子科室ID name
+                $child_institution = DB::table('institution')->where('parent_institution',$doctor['institution_id'])->field(['id','name'])->select();
+                $institution[] = $p_institution;
+                if($child_institution){
+                    foreach ($child_institution as $k => $v) {
+                        $institution[] = $v;
+                    }
+                }
+                $list['institution'] = $institution;
+            }*/
             return json_encode(['status'=>'ok','code'=>'0000','count'=>$count[0]['count(1)'],'info'=>$list,'sessionid'=>$sessionid]);
         }catch(\Exception $e){
             return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]);

+ 8 - 8
application/inter/controller/Writereport.php

@@ -277,7 +277,7 @@ class Writereport extends Base
             $exam_info['bed_no']    = isset($param['bed_no']) ? $param['bed_no'] : '';
             $exam_info['film_type']    = $film_type;
             $exam_info['phone']    = isset($param['phone']) ? $param['phone'] : '';
-            $exam_info['report_result']    = isset($param['report_result']) ? $param['report_result'] : '';
+            $exam_info['exam_report']    = isset($param['report_result']) ? $param['report_result'] : '';
             if(isset($param['r_result']) && $param['r_result'] == 'true'){
                 $info['report_result'] = 2;
             }else{
@@ -542,7 +542,7 @@ class Writereport extends Base
             }else{
                 Message::read($doctor['id'],$report_info['remote_application_id'],4);
                 //远程
-                
+
                 $this->confirmReport($report_info['remote_application_id'],  $wechatService);
                 // DB::table('remote_application')->where('id',$report_info['remote_application_id'])->update(['report_status'=>'9']);
                 // 添加messages消息
@@ -615,10 +615,10 @@ class Writereport extends Base
             DB::table('remote_application')->where('id', $application_id)->update(['report_status'=>'9']);
             DB::table('remote_application')->where('id',$application_id)->update(['report_status'=>'9']);
             $remote_order = DB::table('remote_order')
-            ->where('status', Application::ORDER_STATUS['PAYCOMPLTET'])
-            ->where('application_id', $application_id)
-            ->field('order_money, id, super_hospital_id')
-            ->find();
+                ->where('status', Application::ORDER_STATUS['PAYCOMPLTET'])
+                ->where('application_id', $application_id)
+                ->field('order_money, id, super_hospital_id')
+                ->find();
             $hospital = DB::table('institution')->where('id', $remote_order['super_hospital_id'])->field('current_money')->find();
             if(!$remote_order) {
                 DB::commit();
@@ -632,7 +632,7 @@ class Writereport extends Base
             DB::table('remote_order')->where('id', $remote_order['id'])->update(['status' => Application::ORDER_STATUS['CONFIRM']]);
             $hospital_id = $remote_order['super_hospital_id'];
             $order_id = $remote_order['id'];
-            
+
             $type = Application::WATER_TYPE['ADD'];
             $why = Application::WATER_WHY['REMOTEINCOME'];
             $water_id = DB::table('remote_water')->insertGetId([
@@ -1033,7 +1033,7 @@ class Writereport extends Base
             $info['review_doctor'] = $review_doctor['realname'];
             $info['review_use_autograph'] = $review_doctor['is_use_autograph'];
             $info['review_autograph'] = $review_doctor['autograph'];
-            
+
             // $hospital = DB::table('institution')->where('id',$doctor['institution_id'])->field('name')->find();
             $hospital = DB::table('institution')->where('id',$report_doctor['institution_id'])->field('name')->find();
             $info['hospital'] = $hospital['name'];