# 导检系统部署和安装
### 一、导检屏幕环境准备
#### 网络环境
1. 体检系统服务器,需要开通 `9502` 端口
2. 导检屏幕需要配置好网络(有线,无线均可),配置好屏幕的IP(一般由医院信息科室统一配置)
3. 确保导检屏幕的机子,能正常访问体检系统,可以用屏幕浏览器打开体检系统,是否可以正常访问
### 二、后台启动服务
启动前,确保swoole扩展是否可以正常使用,执行该如下`check_queue_server.sh`脚本启动服务

添加守护进程任务
```
*/1 * * * *{path}/check_queue_server.sh
```
### 三、添加定时任务
```
0 23 * * * curl http://{host}/manager/queueapi/crontab/init > /dev/null
*/1 * * * * curl http://{host}/manager/crontab/cron_queue_subtract_list > /dev/null
*/1 * * * * curl http://{host}/manager/queueapi/crontab/refresh_queue_person_num
*/1 * * * * curl http://{host}/manager/queueapi/crontab/cancel_order_to_quit_queue
*/1 * * * * curl http://{host}/manager/queueapi/crontab/handle_add_union
*/1 * * * * curl http://{host}/manager/queueapi/crontab/handle_sub_union
*/1 * * * * curl http://{host}/manager/queueapi/crontab/handle_queue_wait_order > /dev/null
*/5 * * * * curl http://{host}/manager/crontab/dept_workload_middle > /dev/null
```
### 四、安装导检APP
准备一台电脑(自己电脑,医院电脑都可以),只要能`ping` 通屏幕IP即可,电脑安装好`adb`工具,安装方式不同操作系统安装方式不一样,百度下adb在不同操作系统下安装方式
### 版本下载地址
http://apk.yunyii.cn/uzpj
#### 安装命令操作
1. 链接导检屏命令
````
adb connect $ip:5555
````
2. 安装app命令
````
adb install $apk_path
`````
3. 安装成功后,断开链接,重复1,2,3步骤安装其他屏幕
```
adb disconnect $ip
```
#### 批量安装脚本操作
> #放开注释,并填写要IP地址,设置APK的路径,然后保存`install.sh`执行该脚步即可
```
#!/bin/bash
ip_arr=(
#'10.0.114.91'
#'10.0.114.92'
#'10.0.114.93'
#'10.0.114.94'
#'10.0.114.95'
#'10.0.114.96'
#'10.0.114.97'
#'10.0.114.98'
# 前台屏
#'10.0.114.193'
# DR屏
#'10.0.114.205'
# 彩超
#'10.0.114.79'
# 广州市一
'10.0.2.14'
)
# apk路径
apk_path='/Applications/MAMP/htdocs/QueueSystem/app/build/outputs/apk/release/app-release.apk'
# 应用包名
package='com.daishu.queueSystem'
echo -e "导检屏批量安装\n"
adb disconnect
for ip in "${ip_arr[@]}"
do
echo '开始安装'$ip'导检屏的应用'
adb connect $ip':5555'
adb uninstall $package
adb install $apk_path
echo $ip' install success!'
echo '正在启动应用...'
adb shell am start -n $package'/'$package'.view.SettingActivity'
adb disconnect $ip
echo -e '应用启动成功!\n'
done
```
#### 批量重启屏幕 `reboot.sh`
````
#!/bin/bash
ip_arr=(
'172.30.10.58'
'172.30.10.55'
)
# 应⽤包名
echo -e "导检屏批量重启\n"
adb disconnect
for ip in "${ip_arr[@]}"
do
echo '开始重启'$ip'导检屏的应⽤'
adb connect $ip':5555'
echo '正在启动应⽤...'
adb reboot
adb disconnect $ip
echo -e '应⽤启动成功!\n'
done
````
> 注意:如果是Windows系统,把adb配置到环境变量中,并安装git在git bash命令控制台下运行shell脚本
````
./reboot.sh
````
### 五、配置APP
在开展此工作前,先和医院确定好队列需求后,并配置好体检后台的队列设置,以及分科账号分配导检科室
#### 服务器地址
填体检系统域名或者IP即可,注意主机地址后不要带其他路径的
#### 科室配置
单队列无窗口:只能选一个科室
多队列无窗口:可以多选几个科室,建议不要超过3个
单队列多窗口:只能选一个队列,多窗口需要导后台配置好
### 六、启动app
```
adb shell am start -n com.daishu.queueSystem/com.daishu.queueSystem.view.SettingActivity
```
### 七、日志抓取
```
adb logcat -v time *:E | find "com.daishu.queueSystem" >log.text
```
* 星号`*`代表日志任意`tag`都只输出`Error`级别以上日志;
* MacOS 命令行直接使用`*:E`会报错`no matches found: *:E`,所以需要添加双引号或转义符来解决:`"*:E"`或`\*:E`
