Files
fast_response/digital_doctor/application/api/controller/Ttmedicalreport.php
2025-03-17 10:56:09 +08:00

664 lines
22 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\api\controller;
use think\Db;
use app\common\model\TabConf;
use wanghua\general_utility_tools_php\file\upload\FileUpload;
use wanghua\general_utility_tools_php\http\Curl;
use wanghua\general_utility_tools_php\tool\Tools;
use wanghua\general_utility_tools_php\Validate;
use think\Controller;
class Ttmedicalreport extends BaseHttpApi
{
protected $controller_comments = '疼痛科病历报告(听译问诊)(一个基本信息对应一个报告)';
/**
* desc获取疼痛科病历报告一个基本信息对应一个报告
*
* api/Ttmedicalreport/getTtmedicalreportDetail
*
* 参数:
* hdruserbaseinfo_id 统一基本信息 统一基本信息 必须
*
* 所有字段说明<span style="color: gray">(可能有部分额外字段未在此体现)</span>
* id ID
* userbaseid 基本信息ID
* doctor 所属医生
* username 病人
* report_content 报告内容
* name 病人姓名
* phone 病人电话
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊
* create_time 生成时间
* ticket 对话票据(数据隔离)
* hdruserbaseinfo_id 统一基本信息
* authorwh
*/
function getTtmedicalreportDetail(){
Tools::log_to_write_txt(['获取疼痛科病历报告(一个基本信息对应一个报告) 入参:'=>input()]);
$api_desc = '获取疼痛科病历报告(一个基本信息对应一个报告)';
try {
$hdruserbaseinfo_id = input('hdruserbaseinfo_id');
if(empty($hdruserbaseinfo_id)){
return json(Tools::set_fail('hdruserbaseinfo_id参数错误'));
}
$model_obj = Db::table(TabConf::$fa_tt_medical_report);
if(input('hdruserbaseinfo_id')){
$model_obj->where('hdruserbaseinfo_id',input('hdruserbaseinfo_id'));
}
$item = $model_obj->find();
$data = $item;
return json(Tools::set_ok('ok',$data));
}catch(\Exception $e){
Tools::log_to_write_txt([
'error'=>'获取疼痛科病历报告(一个基本信息对应一个报告).异常.'.$e->getMessage(),
'参数'=>input(),
'error_info'=>$e->getTraceAsString()
]);
return json(Tools::set_res(500,'操作异常',[]));
}
}
/**
* desc根据id查询报告
*
* reportid 报告id
*
* api/Ttmedicalreport/getTtmedicalreportDetailbyId
* authorwh
*/
function getTtmedicalreportDetailbyId(){
Tools::log_to_write_txt(['根据id查询报告 入参:'=>input()]);
$api_desc = '根据id查询报告';
try {
$reportid = input('reportid');
if(empty($reportid)){
return json(Tools::set_fail('reportid参数错误'));
}
$model_obj = Db::table(TabConf::$fa_tt_medical_report);
$model_obj->where('id',$reportid);
$item = $model_obj->find();
$data = $item;
return json(Tools::set_ok('ok',$data));
}catch(\Exception $e){
Tools::log_to_write_txt([
'error'=>'根据id查询报告.异常.'.$e->getMessage(),
'参数'=>input(),
'error_info'=>$e->getTraceAsString()
]);
return json(Tools::set_res(500,'操作异常',[]));
}
}
/**
* desc获取疼痛科病历报告(听译问诊)(一个基本信息对应一个报告)
*
* api/Ttmedicalreport/getTtmedicalreportList
*
* 参数:
* 带分页
* current_page 当前页码
* list_rows 每页显示条数 默认15
* userbaseid 基本信息ID
* doctor 所属医生
* username 病人
* report_content 报告内容
* name 病人姓名
* phone 病人电话
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊
* hdruserbaseinfo_id 统一基本信息
* hdrdepartment_id 科室
*
* 所有字段说明<span style="color: gray">(可能有部分额外字段未在此体现)</span>
* id ID
* userbaseid 基本信息ID
* doctor 所属医生
* username 病人
* report_content 报告内容
* name 病人姓名
* phone 病人电话
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊
* create_time 生成时间
* ticket 对话票据(数据隔离)
* hdruserbaseinfo_id 统一基本信息
* hdrdepartment_id 科室
* authorwh
*/
function getTtmedicalreportList(){
Tools::log_to_write_txt(['获取疼痛科病历报告(听译问诊)(一个基本信息对应一个报告) 入参:'=>input()]);
$api_desc = '获取疼痛科病历报告(听译问诊)(一个基本信息对应一个报告)';
try {
$userbaseid = input('userbaseid');
$doctor = input('doctor');
$username = input('username');
$report_content = input('report_content');
$name = input('name');
$phone = input('phone');
$from = input('from');
$hdruserbaseinfo_id = input('hdruserbaseinfo_id');
$hdrdepartment_id = input('hdrdepartment_id');
$status = input('status');
$model_obj = Db::table(TabConf::$fa_tt_medical_report);
if(input('userbaseid')){
$model_obj->where('userbaseid',input('userbaseid'));
}
if(isset($status)){
$model_obj->where('status',$status);
}
if(input('doctor')){
$model_obj->where('doctor',input('doctor'));
}
if(input('username')){
$model_obj->where('username',input('username'));
}
if(input('report_content')){
$model_obj->where('report_content',input('report_content'));
}
if(input('name')){
$model_obj->where('name',input('name'));
}
if(input('phone')){
$model_obj->where('phone',input('phone'));
}
if(input('from')){
$model_obj->where('from',input('from'));
}
if(input('hdruserbaseinfo_id')){
$model_obj->where('hdruserbaseinfo_id',input('hdruserbaseinfo_id'));
}
if(input('hdrdepartment_id')){
$model_obj->where('hdrdepartment_id',input('hdrdepartment_id'));
}
$data = $model_obj->paginate(['page'=>input('current_page',1),'list_rows'=>input('list_rows',15)])
->each(function($item, $key){
return $item;
});
Tools::log_to_write_txt(['查询sql:'=>$model_obj->getLastSql()]);
// ['total'] => int(30)
// ['per_page'] => int(15)
// ['current_page'] => int(1)
// ['last_page''] => int(2)
$data = $data->toArray();//包含 data列表
return json(Tools::set_ok('ok',$data));
}catch(\Exception $e){
Tools::log_to_write_txt([
'error'=>'获取疼痛科病历报告(听译问诊)(一个基本信息对应一个报告).异常.'.$e->getMessage(),
'参数'=>input(),
'error_info'=>$e->getTraceAsString()
]);
return json(Tools::set_res(500,'操作异常',[]));
}
}
/**
* 新增疼痛科病历报告(听译问诊)(一个基本信息对应一个报告)
*
* 参数:
* userbaseid 基本信息ID
* doctor 所属医生 【必须】
* username 医生电话(账号) 【必须】
* report_content 报告内容
* name 病人姓名 【必须】
* phone 病人电话 【必须】
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊,doc_add=医生添加 【必须】
* ticket 对话票据(数据隔离) 【必须】
* qa_type 问答模式:free=自由问答,fix=固定问答 【必须】
* hdruserbaseinfo_id 统一基本信息 【必须】
* hdrdepartment_id 科室 【必须】
* uniqueid 唯一ID 【必须】
* api/Ttmedicalreport/addTtmedicalreport
*/
function addTtmedicalreport(){
Tools::log_to_write_txt(['新增疼痛科病历报告(听译问诊)(一个基本信息对应一个报告)'=>input()]);
$api_desc = '新增疼痛科病历报告(听译问诊)(一个基本信息对应一个报告)';
Db::startTrans();
try {
$userbaseid = input('userbaseid');
$doctor = input('doctor');
if(empty($doctor)){
return json(Tools::set_fail('参数错误.1',['error_msg'=>'错误信息doctor错误']));
}
$username = input('username');
if(empty($username)){
return json(Tools::set_fail('参数错误.2',['error_msg'=>'错误信息username错误']));
}
$report_content = input('report_content');
$name = input('name');
if(empty($name)){
return json(Tools::set_fail('参数错误.4',['error_msg'=>'错误信息name错误']));
}
$phone = input('phone');
if(empty($phone)){
return json(Tools::set_fail('参数错误.5',['error_msg'=>'错误信息phone错误']));
}
$from = input('from');
if(empty($from)){
return json(Tools::set_fail('参数错误.6',['error_msg'=>'错误信息from错误']));
}
$ticket = input('ticket');
if(empty($ticket)){
return json(Tools::set_fail('参数错误.7',['error_msg'=>'错误信息ticket错误']));
}
$qa_type = input('qa_type');
if(empty($qa_type)){
return json(Tools::set_fail('参数错误.8',['error_msg'=>'错误信息qa_type错误']));
}
$hdruserbaseinfo_id = input('hdruserbaseinfo_id');
if(empty($hdruserbaseinfo_id)){
return json(Tools::set_fail('参数错误.9',['error_msg'=>'错误信息hdruserbaseinfo_id错误']));
}
$hdrdepartment_id = input('hdrdepartment_id');
if(empty($hdrdepartment_id)){
return json(Tools::set_fail('参数错误.10',['error_msg'=>'错误信息hdrdepartment_id错误']));
}
$uniqueid = input('uniqueid');
if(empty($uniqueid)){
return json(Tools::set_fail('参数错误.11',['error_msg'=>'错误信息uniqueid错误']));
}
$gender = input('gender');
if(empty($gender)){
return json(Tools::set_fail('参数错误.5',['error_msg'=>'错误信息gender错误']));
}
$age = input('age');
if(empty($age)){
return json(Tools::set_fail('参数错误.6',['error_msg'=>'错误信息age错误']));
}
$data = [
'userbaseid'=>$userbaseid?:'',
'doctor'=>$doctor?:'',
'username'=>$username?:'',
'report_content'=>$report_content?:'',
'name'=>$name?:'',
'phone'=>$phone?:'',
'from'=>$from?:'',
'ticket'=>$ticket?:'',
'qa_type'=>$qa_type?:'',
'hdruserbaseinfo_id'=>$hdruserbaseinfo_id?:'',
'hdrdepartment_id'=>$hdrdepartment_id?:'',
'uniqueid'=>$uniqueid?:'',
'gender'=>$gender?:'',
'age'=>$age?:''
];
$dataid = Db::table(TabConf::$fa_tt_medical_report)->insertGetId($data);
//$this->operateLog('新增疼痛科病历报告(听译问诊)(一个基本信息对应一个报告)',api_user_info('id'));
Db::commit();
return json(Tools::set_ok('ok',$dataid));
}catch (\Exception $e){
Db::rollback();
Tools::log_to_write_txt([
'error'=>'新增疼痛科病历报告(听译问诊)(一个基本信息对应一个报告).异常.'.$e->getMessage(),
'input'=>input(),
'error_info'=>$e->getTraceAsString()
]);
return json(Tools::set_fail());
}
}
/**
* 根据报告ID修改报告
* 参数:
* id ID 【必须】
* doctor 所属医生
* username 医生电话(账号)
* report_content 报告内容
* name 病人姓名
* phone 病人电话
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊,doc_add=医生添加
* qa_type 问答模式:free=自由问答,fix=固定问答
* hdruserbaseinfo_id 统一基本信息
* hdrdepartment_id 科室
* hdrdepartment 科室名称
* gender 病人性别
* age 病人年龄
* edu 教育程度
* career_year 职业及年限
* power 体力要求
* satisfaction 经济满意度
* old_career_year 过往职业及年限
* old_career_power 过往职业体力要求
* support 社会支持度
* marriage 婚姻状况
* live 居住情况
* home 家庭关系
* address 地址
* wechat_no 微信号
* is_flow 是否接受随访:yes=是,no=否
* diagnosis 诊断
* main_complaint 主诉
* medical_history 病史
* past_history 既往史
* allergy_history 过敏史
* family_history 家族史
* personal_history 个人史
* menstrual_marital_history 月经婚育史
* treatment 医嘱
* api/Ttmedicalreport/updateTtReportById
*
*/
function updateTtReportById(){
Tools::log_to_write_txt(['根据报告ID修改报告'=>input()]);
$api_desc = '根据报告ID修改报告';
Db::startTrans();
try {
$doctor = input('doctor');
$username = input('username');
$report_content = input('report_content');
$name = input('name');
$phone = input('phone');
$from = input('from');
$qa_type = input('qa_type');
$hdruserbaseinfo_id = input('hdruserbaseinfo_id');
$hdrdepartment_id = input('hdrdepartment_id');
$hdrdepartment = input('hdrdepartment');
$gender = input('gender');
$age = input('age');
$edu = input('edu');
$career_year = input('career_year');
$power = input('power');
$satisfaction = input('satisfaction');
$old_career_year = input('old_career_year');
$old_career_power = input('old_career_power');
$support = input('support');
$marriage = input('marriage');
$live = input('live');
$home = input('home');
$address = input('address');
$wechat_no = input('wechat_no');
$is_flow = input('is_flow');
$diagnosis = input('diagnosis');
$main_complaint = input('main_complaint');
$medical_history = input('medical_history');
$past_history = input('past_history');
$allergy_history = input('allergy_history');
$family_history = input('family_history');
$personal_history = input('personal_history');
$menstrual_marital_history = input('menstrual_marital_history');
$treatment = input('treatment');
if(empty(input('id'))){
return json(Tools::set_fail('参数错误。0',['error_msg'=>'错误信息id错误']));
}
//存在则修改
$data = [];
if($doctor){
$data['doctor'] = $doctor;
}
if($username){
$data['username'] = $username;
}
if($name){
$data['name'] = $name;
}
if($phone){
$data['phone'] = $phone;
}
if($from){
$data['from'] = $from;
}
if($qa_type){
$data['qa_type'] = $qa_type;
}
if($hdruserbaseinfo_id){
$data['hdruserbaseinfo_id'] = $hdruserbaseinfo_id;
}
if($hdrdepartment_id){
$data['hdrdepartment_id'] = $hdrdepartment_id;
}
if($hdrdepartment){
$data['hdrdepartment'] = $hdrdepartment;
}
if($gender){
$data['gender'] = $gender;
}
if($age){
$data['age'] = $age;
}
if($edu){
$data['edu'] = $edu;
}
if($career_year){
$data['career_year'] = $career_year;
}
if($power){
$data['power'] = $power;
}
if($satisfaction){
$data['satisfaction'] = $satisfaction;
}
if($old_career_year){
$data['old_career_year'] = $old_career_year;
}
if($old_career_power){
$data['old_career_power'] = $old_career_power;
}
if($support){
$data['support'] = $support;
}
if($marriage){
$data['marriage'] = $marriage;
}
if($live){
$data['live'] = $live;
}
if($home){
$data['home'] = $home;
}
if($address){
$data['address'] = $address;
}
if($wechat_no){
$data['wechat_no'] = $wechat_no;
}
if($is_flow){
$data['is_flow'] = $is_flow;
}
if($main_complaint){
$data['main_complaint'] = $main_complaint;
// $report_content .= <<<EOF
//\n【主诉】$main_complaint
//EOF;
// }else{
// $report_content .= <<<EOF
//\n【主诉】
//EOF;
}
if($medical_history){
$data['medical_history'] = $medical_history;
// $report_content .= <<<EOF
//\n【病史】$medical_history
//EOF;
// }else{
// $report_content .= <<<EOF
//\n【病史】
//EOF;
}
if($personal_history){
$data['personal_history'] = $personal_history;
// $report_content .= <<<EOF
//\n【个人史】$personal_history
//EOF;
// }else{
// $report_content .= <<<EOF
//\n【个人史】
//EOF;
}
if($menstrual_marital_history){
$data['menstrual_marital_history'] = $menstrual_marital_history;
// $report_content .= <<<EOF
//\n【婚姻史】$menstrual_marital_history
//EOF;
// }else{
// $report_content .= <<<EOF
//\n【婚姻史】
//EOF;
}
if($family_history){
$data['family_history'] = $family_history;
// $report_content .= <<<EOF
//\n【家族史】$family_history
//EOF;
// }else{
// $report_content .= <<<EOF
//\n【家族史】
//EOF;
}
if($diagnosis){
$data['diagnosis'] = $diagnosis;
// $report_content .= <<<EOF
//\n【诊断】$diagnosis
//EOF;
// }else{
// $report_content .= <<<EOF
//\n【诊断】
//EOF;
}
if($past_history){
$data['past_history'] = $past_history;
// $report_content .= <<<EOF
//\n【既往史】$past_history
//EOF;
// }else{
// $report_content .= <<<EOF
//\n【既往史】
//EOF;
}
if($allergy_history){
$data['allergy_history'] = $allergy_history;
// $report_content .= <<<EOF
//\n【过敏史】$allergy_history
//EOF;
// }else{
// $report_content .= <<<EOF
//\n【过敏史】
//EOF;
}
if($treatment){
$data['treatment'] = $treatment;
}
if($report_content){
$data['report_content'] = $report_content;
}
$dataid = Db::table(TabConf::$fa_tt_medical_report)
->data($data)
->where('id',input('id'))
->update();
//$this->operateLog('根据报告ID修改报告',api_user_info('id'));
Db::commit();
//if($hdruserbaseinfo_id){
// $data['id'] = $hdruserbaseinfo_id;
// $url = request()->domain().'/api/Hdruserbaseinfo/updateHdruserbaseinfoById';
// Tools::log_to_write_txt(['修改基本信息'=>$data,'url'=>$url]);
// $res = Curl::curl_post($url,$data);
// Tools::log_to_write_txt(['修改基本信息返回,结束'=>$res]);
//}
return json(Tools::set_ok('ok',$dataid));
}catch (\Exception $e){
Db::rollback();
Tools::log_to_write_txt([
'error'=>'根据报告ID修改报告.异常.'.$e->getMessage(),
'input'=>input(),
'error_info'=>$e->getTraceAsString()
]);
return json(Tools::set_fail());
}
}
}