Selaa lähdekoodia

Merge branch 'pro' of http://code.pacsonline.cn/zskk_bg/yuanchengpasc into pro

fuyu 5 vuotta sitten
vanhempi
commit
ef7fe55d57

+ 59 - 16
application/manage/controller/Counts.php

@@ -31,38 +31,50 @@ class Counts extends Base {
         $params = $request->param();
         $where = [];
         $where[] = ' e.film_type=2';
+        $datetime = 1;
+        if(isset($params['upload1']) && ($params['upload1'] == $params['upload2']) && !empty($params['upload1'])){
+            $where[] = ' s.createdAt > \''.$params['upload1'].' 00:00:00\' ';
+            $where[] = ' s.createdAt < \''.$params['upload2'].' 23:59:59\' ';
+            $datetimme = 2;
+        }
+        $examtime = 1;
+        if(isset($params['exam1']) && ($params['exam1'] == $params['exam2']) && !empty($params['exam1'])){
+            $exam1 = str_replace('-', '', $params['exam1']);
+            $where[] = ' s.studydate = \''.$exam1.'\' ';
+            $examtime = 2;
+        }
         foreach ($params as $k=>$v) {
+            if(empty($v)){
+                continue;
+            }
             switch($k){
                 case 'upload1':
-                    if($params['upload1'] == null){
-                        continue 2;
+                    if($datetime == 2){
+                        break;
                     }
                     $where[] = ' s.createdAt > \''.$params['upload1'].'\' ';
                     break;
                 case 'upload2':
-                    if($params['upload2'] == null){
-                        continue 2;
+                    if($datetime == 2){
+                        break;
                     }
                     $where[] = ' s.createdAt < \''.$params['upload2'].'\' ';
                     break;
                 case 'exam1':
-                    if($params['exam1'] == null){
-                        continue 2;
+                    if($examtime == 2){
+                        break;
                     }
                     $exam1 = str_replace('-', '', $params['exam1']);
                     $where[] = ' s.studydate > \''.$exam1.'\' ';
                     break;
                 case 'exam2':
-                    if($params['exam2'] == null){
-                        continue 2;
+                    if($examtime == 2){
+                        break;
                     }
                     $exam2 = str_replace('-', '', $params['exam2']);
                     $where[] = ' s.studydate < \''.$exam2.'\' ';
                     break;
                 case 'exam_class':
-                    if($params['exam_class'] == null){
-                        continue 2;
-                    }
                     $where[] = 's.modality=\''.$params['exam_class'].'\' ';
                     break;
             }
@@ -107,7 +119,7 @@ class Counts extends Base {
             ->where($institution_where)
             ->where($search)
             ->page($page, $pagesize)
-            ->field('p.name,p.age,p.sex,s.studydate,s.createdAt,s.modality,u.exam_id,ins.name as institution_name')
+            ->field('p.name,p.age,p.sex,s.studydate,s.createdAt,s.modality,u.exam_id,ins.name as institution_name,e.accession_num')
             ->order('s.createdAt desc')
             ->select();
         $data["total"] = $count;
@@ -119,25 +131,55 @@ class Counts extends Base {
     public function out() {
         $admin = Session::get('session_manager');
         $institution_id = $admin['institution_id'];
+        $institution = explode(',',$institution_id);
         $request = Request::instance();
         $params = $request->param();
+        if(isset($params['institution']) && $params['institution'] != null){
+            $institution_where['s.institution_id'] = $params['institution'];
+        }else{
+            $institution_where['s.institution_id'] = ['in',$institution];
+        }
         $where[] = ' e.film_type=2';
+        $datetime = 1;
+        if(($params['upload_datetime1'] == $params['upload_datetime2']) && !empty($params['upload_datetime1'])){
+            $where[] = ' s.createdAt > \''.$params['upload_datetime1'].' 00:00:00\' ';
+            $where[] = ' s.createdAt < \''.$params['upload_datetime2'].' 23:59:59\' ';
+            $datetime = 2;
+        }
+        $examtime = 1;
+        if(($params['exam_datetime1'] == $params['exam_datetime1']) && !empty($params['exam_datetime1'])){
+            $exam1 = str_replace('-', '', $params['exam_datetime1']);
+            $where[] = ' s.studydate = \''.$exam1.'\' ';
+            $examtime = 2;
+        }
         foreach ($params as $k=>$v) {
             if(empty($v)){
                 continue;
             }
             switch($k){
                 case 'upload_datetime1':
+                    if($datetime == 2){
+                        break;
+                    }
                     $where[] = ' s.createdAt > \''.$params['upload_datetime1'].'\' ';
                     break;
                 case 'upload_datetime2':
+                    if($datetime == 2){
+                        break;
+                    }
                     $where[] = ' s.createdAt < \''.$params['upload_datetime2'].'\' ';
                     break;
                 case 'exam_datetime1':
+                    if($examtime == 2){
+                        break;
+                    }
                     $exam1 = str_replace('-', '', $params['exam_datetime1']);
                     $where[] = ' s.studydate > \''.$exam1.'\' ';
                     break;
                 case 'exam_datetime2':
+                    if($examtime == 2){
+                        break;
+                    }
                     $exam2 = str_replace('-', '', $params['exam_datetime2']);
                     $where[] = ' s.studydate < \''.$exam2.'\' ';
                     break;
@@ -157,11 +199,12 @@ class Counts extends Base {
             ->alias('s')
             ->distinct(true)
             ->join(['patient_infos'=>'p'],'p.id=s.patient_id')
-            ->join(['exams'=>'e'],'e.patient_id=p.id')
+            ->join(['exams'=>'e'],'e.study_id=s.id')
             ->join(['user_bind'=>'u'],'u.patient_id=s.patient_id','left')
-            ->where('s.institution_id='.$institution_id)
+            ->join(['institution'=>'ins'],'ins.id=e.institution_id','left')
+            ->where($institution_where)
             ->where($search)
-            ->field('p.name,p.age,p.sex,s.studydate,s.createdAt,s.modality,u.exam_id')
+            ->field('p.name,p.age,p.sex,s.studydate,s.createdAt,s.modality,u.exam_id,ins.name as institution_name,e.accession_num')
             ->order('s.createdAt desc')
             ->select();
         //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
@@ -187,7 +230,7 @@ class Counts extends Base {
             }
         }
         $filename = time()."数据统计表";
-        $headArr = array("患者姓名","患者年龄", "患者性别","检查时间", "上传时间", "患者类型",  "是否绑定微信");
+        $headArr = array("患者姓名","患者年龄", "患者性别","检查时间", "上传时间", "患者类型",  "是否绑定微信","科室检查号");
         $this->getExcel($filename, $headArr, $data);
     }
     public function getExcel($fileName, $headArr, $data) {

+ 5 - 5
application/manage/controller/Exam.php

@@ -77,7 +77,7 @@ class Exam extends Base {
         $sortArr=array();
         $sortArr["register_datetime"]="desc";
         
-        $rs = Db::table("exam")->where($wheres)->order($sortArr)->page($page, $pagesize)->select();
+        $rs = Db::table("exams")->where($wheres)->order($sortArr)->page($page, $pagesize)->select();
         if (!empty($rs)) {
             foreach ($rs as $key => $val) {
                 if (isset($insMap[$val["institution_id"]])) {
@@ -119,7 +119,7 @@ class Exam extends Base {
                 array_push($resultArr, $val);
             }
         }
-        $count = Db::table("exam")->where($wheres)->count();
+        $count = Db::table("exams")->where($wheres)->count();
         $data = array();
         $data["total"] = $count;
         $data["rows"] = $resultArr;
@@ -135,7 +135,7 @@ class Exam extends Base {
         $id = is_string($_GET["id"]) ? $_GET["id"] : null;
         if ($id != null) {
             // 查询检查表
-            $exam = Db::table("exam")->where("id", $id)->find();
+            $exam = Db::table("exams")->where("id", $id)->find();
 
             // 以下追加名称字段
             $exam = self::appendName($exam, "technician", "doctors", "username"); // 技师
@@ -194,9 +194,9 @@ class Exam extends Base {
             $data = array();
             $data["status"] = $status;
 
-            Db::table("exam")->where("id", $id)->update($data);
+            Db::table("exams")->where("id", $id)->update($data);
 
-            $exam = Db::table("exam")->where("id", $id)->find();
+            $exam = Db::table("exams")->where("id", $id)->find();
 
             SysLogs::log("exam", "U", "id = " . $id . " " . json_encode($data));
         }

+ 1 - 0
application/manage/view/counts/index.html

@@ -110,6 +110,7 @@
                     {field:'age',title:'患者年龄', hidden:true,width:115  },
                     {field:'modality',title:'检查类型',width:135  },
                     {field:'studydate',title:'检查时间',width:200  },
+                    {field:'accession_num',title:'检查号',width:200 },
                     {field:'createdAt',title:'上传时间',width:200 },
                     {field:'exam_id',title:'是否绑定微信',width:115  , formatter:pfromFormatter  },
                 ]],

+ 1 - 1
application/manage/view/exam/index.html

@@ -109,7 +109,7 @@
                     {field:'patient_id',title:'患者',width:"150",align:'left' },
                     {field:'dept_id',title:'科室', hidden:true,width:100},
                     {field:'dept_name',title:'科室名称',width:100},
-                    {field:'exam_datetime',title:'检查日期',width:115 , formatter:dateFormatter }, ]],
+                    {field:'exam_datetime',title:'检查日期',width:115 }, ]],
                     columns:[[
                             {field:'patient_num',title:'病历号',width:"120",align:'left'},
                             {field:'accession_num',title:'科室检查号',width:100 },

+ 3 - 3
application/manage/view/patientinfo/index.html

@@ -47,7 +47,7 @@
         function sexFormatter(mode){
             if(mode == 'F'){ return "女";
             }else if(mode=="M"){ return "男";
-            }else{ return "--";
+            }else{ return mode;
             }
         }
         function marryFormatter(mode){
@@ -70,10 +70,10 @@
                     {field:'name',title:'患者姓名',align: 'center',width:100},
                     {field:'institution_id',title:'所在机构', hidden:true, align: 'center',width:80},
                     {field:'institution_name',title:'所在机构',align: 'left',width:150},
-                    {field:'sex',title:'性别',width:"80",align: 'center'},
+                    {field:'sex',title:'性别',width:"80",align: 'center',formatter:sexFormatter},
                     {field:'card_num',title:'身份证号',width:180,align: 'center'},
                     {field:'phone',title:'手机号',width:"100",align: 'center'},
-                    {field:'birthday',title:'生日',align: 'center', width:135, formatter:dateFormatter },
+                    {field:'birthday',title:'生日',align: 'center', width:135 },
                     {field:'age',title:'年龄',width:"50",align: 'center'},
                     {field:'card_type',title:'证件类型',width:"100",align: 'center' },
                     {field:'nationality',title:'国籍',width:"100",align: 'center' },