Browse Source

电力医院修改视图同步和列表权限

hnsdlyy
zhangye 4 days ago
parent
commit
f689dbe4e9
  1. 54
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/dao/OracleViewDao.java
  2. 13
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/DockService.java
  3. 145
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/DockServiceImpl.java
  4. 174
      ruisi_java/ruisi-system/src/main/resources/mapper/system/OracleViewDao.xml
  5. 20
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java
  6. 55
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/scheduled/SyncHospitalViwe.java
  7. 4
      ruisi_java/ruisi-web-client/src/main/resources/application-dev.yml
  8. 23
      ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/PmsPatientDao.xml
  9. 21
      ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/RmsDao.xml

54
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/dao/OracleViewDao.java

@ -1,5 +1,7 @@
package com.ccsens.system.persist.dao;
import com.ccsens.common.annotation.DataSource;
import com.ccsens.common.enums.DataSourceType;
import com.ccsens.system.domain.vo.DockVo;
import org.apache.ibatis.annotations.Param;
@ -13,52 +15,22 @@ import java.util.Map;
*/
public interface OracleViewDao {
/**
* 查询部门信息视图
* @param startTime 开始时间
* @param endTime 结束时间
* @return 部门信息列表
*/
List<DockVo.DeptInfo> getDeptView(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
@DataSource(value = DataSourceType.ORACLE)
List<DockVo.DeptInfo> getDeptView();
/**
* 查询员工信息视图
* @param startTime 开始时间
* @param endTime 结束时间
* @return 员工信息列表
*/
List<DockVo.EmplInfo> getEmplView(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
@DataSource(value = DataSourceType.ORACLE)
List<DockVo.EmplInfo> getEmplView();
/**
* 查询患者基本信息视图
* @param startTime 开始时间
* @param endTime 结束时间
* @return 患者基本信息列表
*/
List<DockVo.PatientBasicInfo> getPatientBasicView(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
@DataSource(value = DataSourceType.ORACLE)
List<DockVo.PatientBasicInfo> getPatientBasicView(@Param("patientNoList") List<String> patientNoList);
/**
* 查询患者就诊信息视图
* @param startTime 开始时间
* @param endTime 结束时间
* @return 患者就诊信息列表
*/
@DataSource(value = DataSourceType.ORACLE)
List<DockVo.PatientVisitInfo> getPatientVisitView(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
/**
* 查询诊断信息视图
* @param startTime 开始时间
* @param endTime 结束时间
* @return 诊断信息列表
*/
List<DockVo.DiagnosisInfo> getDiagnosisView(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
@DataSource(value = DataSourceType.ORACLE)
List<DockVo.DiagnosisInfo> getDiagnosisView(@Param("visitNoList") List<String> visitNoList);
/**
* 查询用药信息视图
* @param startTime 开始时间
* @param endTime 结束时间
* @return 用药信息列表
*/
List<DockVo.MedicationInfo> getMedicationView(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
@DataSource(value = DataSourceType.ORACLE)
List<DockVo.MedicationInfo> getMedicationView(@Param("visitNoList") List<String> visitNoList);
}

13
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/DockService.java

@ -7,6 +7,7 @@ import com.ccsens.system.domain.vo.DockVo;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* @Author zzc
@ -40,15 +41,17 @@ public interface DockService {
List<DockVo.EmplInfo> getEmplView();
void syncEmplView(List<DockVo.EmplInfo> sysEmpls);
List<DockVo.PatientBasicInfo> getPatientBasicView();
List<DockVo.PatientBasicInfo> getPatientBasicView(List<String> patientNos);
void syncPatientBasicView(List<DockVo.PatientBasicInfo> sysPatients);
List<DockVo.PatientVisitInfo> getPatientVisitView();
void syncPatientVisitView(List<DockVo.PatientVisitInfo> sysVisits);
List<DockVo.PatientVisitInfo> getPatientVisitView(Date startTime);
List<DockVo.PatientVisitInfo> syncPatientVisitView(List<DockVo.PatientVisitInfo> sysVisits);
List<DockVo.DiagnosisInfo> getDiagnosisView();
List<DockVo.DiagnosisInfo> getDiagnosisView(List<String> visitNos);
void syncDiagnosisView(List<DockVo.DiagnosisInfo> sysDiagnosis);
List<DockVo.MedicationInfo> getMedicationView();
List<DockVo.MedicationInfo> getMedicationView(List<String> visitNos);
void syncMedicationView(List<DockVo.MedicationInfo> sysMedications);
Date getPatientVisitLastDate();
}

145
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/DockServiceImpl.java

@ -36,10 +36,7 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -925,17 +922,20 @@ public class DockServiceImpl implements DockService {
@Override
public List<DockVo.DeptInfo> getDeptView() {
// 当前时间
Date endTime = new Date();
// 一小时前的时间
Date startTime = new Date(System.currentTimeMillis() - 60 * 60 * 1000);
return oracleViewDao.getDeptView(startTime, endTime);
return oracleViewDao.getDeptView();
}
@Override
public void syncDeptView(List<DockVo.DeptInfo> sysDepts) {
if(CollUtil.isNotEmpty(sysDepts)){
for (DockVo.DeptInfo sysDept : sysDepts) {
//根据code和名称查询部门是否存在
DockDeptExample example = new DockDeptExample();
example.createCriteria().andDeptCodeEqualTo(sysDept.getDeptCode()).andDeptNameEqualTo(sysDept.getDeptName());
long l = dockDeptMapper.countByExample(example);
if(l>0){
continue;
}
DockDept dockDept = new DockDept();
dockDept.setDeptName(sysDept.getDeptName());
dockDept.setDeptCode(sysDept.getDeptCode());
@ -947,15 +947,20 @@ public class DockServiceImpl implements DockService {
@Override
public List<DockVo.EmplInfo> getEmplView() {
Date endTime = new Date();
Date startTime = new Date(System.currentTimeMillis() - 60 * 60 * 1000);
return oracleViewDao.getEmplView(startTime, endTime);
return oracleViewDao.getEmplView();
}
@Override
public void syncEmplView(List<DockVo.EmplInfo> sysEmpls) {
if(CollUtil.isNotEmpty(sysEmpls)){
for (DockVo.EmplInfo sysEmpl : sysEmpls) {
//根据工号查询员工是否存在
DockEmplExample example = new DockEmplExample();
example.createCriteria().andEmplCodeEqualTo(sysEmpl.getEmplCode());
long l = dockEmplMapper.countByExample(example);
if(l>0){
continue;
}
DockEmpl dockEmpl = new DockEmpl();
dockEmpl.setEmplName(sysEmpl.getEmplName());
dockEmpl.setEmplCode(sysEmpl.getEmplCode());
@ -970,54 +975,27 @@ public class DockServiceImpl implements DockService {
}
@Override
public List<DockVo.PatientBasicInfo> getPatientBasicView() {
Date endTime = new Date();
Date startTime = new Date(System.currentTimeMillis() - 60 * 60 * 1000);
return oracleViewDao.getPatientBasicView(startTime, endTime);
}
@Override
public void syncPatientBasicView(List<DockVo.PatientBasicInfo> sysPatients) {
if(CollUtil.isNotEmpty(sysPatients)){
for (DockVo.PatientBasicInfo sysPatient : sysPatients) {
DockPatientBaseInfo dockPatientBase = new DockPatientBaseInfo();
dockPatientBase.setName(sysPatient.getName());
dockPatientBase.setPatientNo(sysPatient.getPatientNo());
dockPatientBase.setIdCard(sysPatient.getIdCard());
dockPatientBase.setPhone(sysPatient.getPhone());
dockPatientBase.setSex(sysPatient.getSex());
dockPatientBase.setBirthday(sysPatient.getBirthday());
dockPatientBase.setEducationalStatus(sysPatient.getEducationalStatus());
dockPatientBase.setCareer(sysPatient.getCareer());
dockPatientBase.setMaritalStatus(sysPatient.getMaritalStatus());
dockPatientBase.setNation(sysPatient.getNation());
dockPatientBase.setNativePlace(sysPatient.getNativePlace());
dockPatientBase.setAddress(sysPatient.getAddress());
dockPatientBase.setDwellingState(sysPatient.getDwellingState());
dockPatientBase.setContactName(sysPatient.getContactName());
dockPatientBase.setContactMobile(sysPatient.getContactMobile());
dockPatientBase.setContactRelation(sysPatient.getContactRelation());
dockPatientBase.setAboBloodType(sysPatient.getAboBloodType());
dockPatientBase.setRhBloodType(sysPatient.getRhBloodType());
dockPatientBase.setBelief(sysPatient.getBelief());
dockPatientBase.setHobby(sysPatient.getHobby());
dockPatientBase.setSync(String.valueOf(0));
dockPatientBaseInfoMapper.insertSelective(dockPatientBase);
}
public List<DockVo.PatientVisitInfo> getPatientVisitView(Date startTime) {
if(ObjectUtil.isNull(startTime)){
//如果是空,取一年前的时间
startTime = DateUtil.offset(new Date(), DateField.YEAR, -1);
}
}
@Override
public List<DockVo.PatientVisitInfo> getPatientVisitView() {
Date endTime = new Date();
Date startTime = new Date(System.currentTimeMillis() - 60 * 60 * 1000);
return oracleViewDao.getPatientVisitView(startTime, endTime);
}
@Override
public void syncPatientVisitView(List<DockVo.PatientVisitInfo> sysVisits) {
public List<DockVo.PatientVisitInfo> syncPatientVisitView(List<DockVo.PatientVisitInfo> sysVisits) {
List<DockVo.PatientVisitInfo> visitList = new ArrayList<>();
if(CollUtil.isNotEmpty(sysVisits)){
for (DockVo.PatientVisitInfo sysVisit : sysVisits) {
//根据就诊流水号查询就诊信息是否存在
DockPatientVisitInfoExample example = new DockPatientVisitInfoExample();
example.createCriteria().andVisitNoEqualTo(sysVisit.getVisitNo());
long l = dockPatientVisitInfoMapper.countByExample(example);
if(l>0){
continue;
}
DockPatientVisitInfo dockPatientVisit = new DockPatientVisitInfo();
dockPatientVisit.setVisitNo(sysVisit.getVisitNo());
dockPatientVisit.setPatientNo(sysVisit.getPatientNo());
@ -1058,15 +1036,53 @@ public class DockServiceImpl implements DockService {
dockPatientVisit.setAllergyDrug(sysVisit.getAllergyDrug());
dockPatientVisit.setSync(String.valueOf(0));
dockPatientVisitInfoMapper.insertSelective(dockPatientVisit);
visitList.add(sysVisit);
}
}
return visitList;
}
@Override
public List<DockVo.DiagnosisInfo> getDiagnosisView() {
Date endTime = new Date();
Date startTime = new Date(System.currentTimeMillis() - 60 * 60 * 1000);
return oracleViewDao.getDiagnosisView(startTime, endTime);
public List<DockVo.PatientBasicInfo> getPatientBasicView(List<String> patientNos) {
return oracleViewDao.getPatientBasicView(patientNos);
}
@Override
public void syncPatientBasicView(List<DockVo.PatientBasicInfo> sysPatients) {
if(CollUtil.isNotEmpty(sysPatients)){
for (DockVo.PatientBasicInfo sysPatient : sysPatients) {
DockPatientBaseInfo dockPatientBase = new DockPatientBaseInfo();
dockPatientBase.setName(sysPatient.getName());
dockPatientBase.setPatientNo(sysPatient.getPatientNo());
dockPatientBase.setIdCard(sysPatient.getIdCard());
dockPatientBase.setPhone(sysPatient.getPhone());
dockPatientBase.setSex(sysPatient.getSex());
dockPatientBase.setBirthday(sysPatient.getBirthday());
dockPatientBase.setEducationalStatus(sysPatient.getEducationalStatus());
dockPatientBase.setCareer(sysPatient.getCareer());
dockPatientBase.setMaritalStatus(sysPatient.getMaritalStatus());
dockPatientBase.setNation(sysPatient.getNation());
dockPatientBase.setNativePlace(sysPatient.getNativePlace());
dockPatientBase.setAddress(sysPatient.getAddress());
dockPatientBase.setDwellingState(sysPatient.getDwellingState());
dockPatientBase.setContactName(sysPatient.getContactName());
dockPatientBase.setContactMobile(sysPatient.getContactMobile());
dockPatientBase.setContactRelation(sysPatient.getContactRelation());
dockPatientBase.setAboBloodType(sysPatient.getAboBloodType());
dockPatientBase.setRhBloodType(sysPatient.getRhBloodType());
dockPatientBase.setBelief(sysPatient.getBelief());
dockPatientBase.setHobby(sysPatient.getHobby());
dockPatientBase.setSync(String.valueOf(0));
dockPatientBaseInfoMapper.insertSelective(dockPatientBase);
}
}
}
@Override
public List<DockVo.DiagnosisInfo> getDiagnosisView(List<String> visitNos) {
return oracleViewDao.getDiagnosisView(visitNos);
}
@Override
@ -1087,10 +1103,8 @@ public class DockServiceImpl implements DockService {
}
@Override
public List<DockVo.MedicationInfo> getMedicationView() {
Date endTime = new Date();
Date startTime = new Date(System.currentTimeMillis() - 60 * 60 * 1000);
return oracleViewDao.getMedicationView(startTime, endTime);
public List<DockVo.MedicationInfo> getMedicationView(List<String> visitNos) {
return oracleViewDao.getMedicationView(visitNos);
}
@Override
@ -1109,4 +1123,15 @@ public class DockServiceImpl implements DockService {
}
}
@Override
public Date getPatientVisitLastDate() {
DockPatientVisitInfoExample example = new DockPatientVisitInfoExample();
example.setOrderByClause("admission_date desc limit 1");
List<DockPatientVisitInfo> dockPatientVisitInfos = dockPatientVisitInfoMapper.selectByExample(example);
if(CollUtil.isNotEmpty(dockPatientVisitInfos)){
return dockPatientVisitInfos.get(0).getAdmissionDate();
}
return null;
}
}

174
ruisi_java/ruisi-system/src/main/resources/mapper/system/OracleViewDao.xml

@ -6,160 +6,144 @@
<select id="getDeptView" resultType="com.ccsens.system.domain.vo.DockVo$DeptInfo">
select
dept_name as deptName,
dept_code as deptCode,
update_time as updateTime
dept_code as deptCode
from bs_his.V_LNPG_KSXX
<where>
<if test="startTime != null and endTime != null">
and update_time >= #{startTime}
and update_time &lt;= #{endTime}
</if>
</where>
order by update_time desc
</select>
<!-- 员工信息查询 -->
<select id="getEmplView" resultType="com.ccsens.system.domain.vo.DockVo$EmplInfo">
select
empl_name as emplName,
empl_code as emplCode,
empl_type as emplType,
dept_code as deptCode,
role_power as rolePower,
data_power as dataPower,
update_time as updateTime
empl_name as emplName,
empl_code as emplCode,
empl_type as emplType,
dept_code as deptCode,
role_power as rolePower,
case
when substr(empl_code, 1, 1) = '6' then data_power_bq
else data_power_ks
end as dataPower
from bs_his.V_LNPG_YGXX
<where>
<if test="startTime != null and endTime != null">
and update_time >= #{startTime}
and update_time &lt;= #{endTime}
</if>
</where>
order by update_time desc
</select>
<!-- 患者基本信息查询 -->
<select id="getPatientBasicView" resultType="com.ccsens.system.domain.vo.DockVo$PatientBasicInfo">
select
name,
patient_no as patientNo,
id_card as idCard,
phone,
sex,
birthday,
educational_status as educationalStatus,
career,
marital_status as maritalStatus,
nation,
native_place as nativePlace,
address,
dwelling_state as dwellingState,
contact_name as contactName,
contact_mobile as contactMobile,
contact_relation as contactRelation,
abo_blood_type as aboBloodType,
rh_blood_type as rhBloodType,
belief,
hobby,
update_time as updateTime
name,
patient_no as patientNo,
idcard as idCard,
phone,
sex,
birthday,
educationalstatus as educationalStatus,
career,
maritalstatus as maritalStatus,
nation,
nativeplace as nativePlace,
address,
dwellingstate as dwellingState,
contactname as contactName,
contactmobile as contactMobile,
contactrelation as contactRelation,
abobloodtype as aboBloodType,
rhbloodtype as rhBloodType,
belief,
hobby
from bs_his.V_LNPG_BASICINFORMATION
<where>
<if test="startTime != null and endTime != null">
and update_time >= #{startTime}
and update_time &lt;= #{endTime}
<if test="patientNoList != null and patientNoList.size() > 0">
patient_no in
<foreach collection="patientNoList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
order by update_time desc
</select>
<!-- 患者就诊信息查询 -->
<select id="getPatientVisitView" resultType="com.ccsens.system.domain.vo.DockVo$PatientVisitInfo">
select
visit_no as visitNo,
visittype as visitType,
visitno as visitNo,
patient_no as patientNo,
id_card as idCard,
visit_type as visitType,
age,
department,
doctor,
admission_date as admissionDate,
admission_count as admissionCount,
bed_number as bedNumber,
discharge_date as dischargeDate,
admission_method as admissionMethod,
discharge_method as dischargeMethod,
admissiondate as admissionDate,
admissioncount as admissionCount,
bednumber as bedNumber,
dischargedate as dischargeDate,
admissionmethod as admissionMethod,
dischargemethod as dischargeMethod,
height,
weight,
tz,
temperature,
blood_pressure_shrink as bloodPressureShrink,
blood_pressure_diastole as bloodPressureDiastole,
bloodpressureshrink as bloodPressureShrink,
bloodpressurediastole as bloodPressureDiastole,
pulse,
creatinine,
oxygen_saturation as oxygenSaturation,
oxygensaturation as oxygenSaturation,
albumin,
total_protein as totalProtein,
vitamin_d3 as vitaminD3,
totalprotein as totalProtein,
vitamind3 as vitaminD3,
hematocrit,
dimer,
smoking_history as smokingHistory,
smoking_year as smokingYear,
smoking_quit as smokingQuit,
smoking_quit_year as smokingQuitYear,
drink_history as drinkHistory,
drink_year as drinkYear,
drink_quit as drinkQuit,
drink_quit_year as drinkQuitYear,
has_allergy as hasAllergy,
allergy_drug as allergyDrug,
update_time as updateTime
smokinghistory as smokingHistory,
smokingyear as smokingYear,
smokingquit as smokingQuit,
smokingquityear as smokingQuitYear,
drinkhistory as drinkHistory,
drinkyear as drinkYear,
drinkquit as drinkQuit,
drinkquityear as drinkQuitYear,
hasallergy as hasAllergy,
allergydrug as allergyDrug
from bs_his.V_LNPG_HZJZXX
<where>
<if test="startTime != null and endTime != null">
and update_time >= #{startTime}
and update_time &lt;= #{endTime}
and admissiondate >= #{startTime}
and admissiondate &lt;= #{endTime}
</if>
</where>
order by update_time desc
</select>
<!-- 诊断信息查询 -->
<select id="getDiagnosisView" resultType="com.ccsens.system.domain.vo.DockVo$DiagnosisInfo">
select
visit_no as visitNo,
diagnosis_type as diagnosisType,
is_main_diagnosis as isMainDiagnosis,
diagnosis_name as diagnosisName,
diagnosis_code as diagnosisCode,
diagnosis_date as diagnosisDate,
update_time as updateTime
visitno as visitNo,
diagnosistype as diagnosisType,
ismaindiagnosis as isMainDiagnosis,
diagnosisname as diagnosisName,
diagnosiscode as diagnosisCode,
diagnosisdate as diagnosisDate
from bs_his.V_LNPG_ZDXX
<where>
<if test="startTime != null and endTime != null">
and update_time >= #{startTime}
and update_time &lt;= #{endTime}
<if test="visitNoList != null and visitNoList.size() > 0">
visitno in
<foreach collection="visitNoList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
order by update_time desc
</select>
<!-- 用药信息查询 -->
<select id="getMedicationView" resultType="com.ccsens.system.domain.vo.DockVo$MedicationInfo">
select
visit_no as visitNo,
drug_name as drugName,
visitno as visitNo,
drugname as drugName,
dose,
unit,
frequency,
update_time as updateTime
frequency
from bs_his.V_LNPG_YYXX
<where>
<if test="startTime != null and endTime != null">
and update_time >= #{startTime}
and update_time &lt;= #{endTime}
<if test="visitNoList != null and visitNoList.size() > 0">
visitno in
<foreach collection="visitNoList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
order by update_time desc
</select>
</mapper>

20
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java

@ -61,16 +61,6 @@ public class PmsController extends BaseController {
@ApiOperation("获取患者信息列表")
@PostMapping("/queryList")
public JsonResponse<PageInfo<PmsPatientVo.PatientList>> queryPatientList(@RequestBody @Validated BaseDto<PmsPatientDto.QueryPatient> dto) {
// List<PmsPatientVo.PatientList> list = new ArrayList<>();
// PmsPatientDto.QueryPatient param = dto.getParam();
// if (StrUtil.isNotEmpty(param.getSearchValue()) && param.getSearchValue().length() == 10) {
// //关键字不为空,且长度等于10,先查询院内his信息
// List<PmsPatientVo.PatientList> hisList = ltHisConnectionService.queryHisPatient(param.getSearchValue());
// if (CollUtil.isNotEmpty(hisList)) {
// list.addAll(hisList);
// }
// }
//获取用户的权限
LoginUser loginUser = SecurityUtils.getLoginUser();
@ -86,16 +76,6 @@ public class PmsController extends BaseController {
startPageOvertop(dto);
List<PmsPatientVo.PatientList> serverList = patientService.queryPatientList(dto.getParam(), dataScope, loginUser.getUserId(), loginUser.getUsername());
// if (CollUtil.isNotEmpty(serverList)) {
// list.addAll(serverList);
// }
// // 创建一个 TreeSet,通过 Comparator 根据 patientId 去重
// Set<PmsPatientVo.PatientList> uniqueSet = new TreeSet<>(
// Comparator.comparing(PmsPatientVo.PatientList::getPatientId)
// );
// uniqueSet.addAll(list);
// List<PmsPatientVo.PatientList> uniqueList = new ArrayList<>(uniqueSet);
return JsonResponse.ok(new PageInfo<>(serverList));
}

55
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/scheduled/SyncHospitalViwe.java

@ -11,7 +11,11 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author zy
@ -24,45 +28,40 @@ public class SyncHospitalViwe {
@Resource
private DockService dockService;
@DataSource(value = DataSourceType.ORACLE)
// @Scheduled(cron = "0 */10 * * * ?")
// @Scheduled(cron = "0 */1 * * * ?")
public void getDeptView() {
List<DockVo.DeptInfo> sysDepts = dockService.getDeptView();
syncDeptView(sysDepts);
}
@DataSource(value = DataSourceType.ORACLE)
// @Scheduled(cron = "0 */10 * * * ?")
// @Scheduled(cron = "0 */1 * * * ?")
public void getEmplView() {
List<DockVo.EmplInfo> sysEmpls = dockService.getEmplView();
syncEmplView(sysEmpls);
}
@DataSource(value = DataSourceType.ORACLE)
// @Scheduled(cron = "0 */10 * * * ?")
// @Scheduled(cron = "0 */1 * * * ?")
public void getPatientBasicView() {
List<DockVo.PatientBasicInfo> sysPatients = dockService.getPatientBasicView();
//先查询当前就诊信息最后的时间
Date startTime = dockService.getPatientVisitLastDate();
//先通过时间查询就诊信息
List<DockVo.PatientVisitInfo> sysVisits = dockService.getPatientVisitView(startTime);
//同步就诊信息
List<DockVo.PatientVisitInfo> visitList = syncPatientVisitView(sysVisits);
//去除所有的患者编号,去重
Set<String> patientNos = visitList.stream().map(DockVo.PatientVisitInfo::getPatientNo).collect(Collectors.toSet());
//取出所有的就诊号,去重
Set<String> visitNos = visitList.stream().map(DockVo.PatientVisitInfo::getVisitNo).collect(Collectors.toSet());
//根据患者编号查基本信息
List<DockVo.PatientBasicInfo> sysPatients = dockService.getPatientBasicView(new ArrayList<>(patientNos));
syncPatientBasicView(sysPatients);
}
@DataSource(value = DataSourceType.ORACLE)
// @Scheduled(cron = "0 */10 * * * ?")
public void getPatientVisitView() {
List<DockVo.PatientVisitInfo> sysVisits = dockService.getPatientVisitView();
syncPatientVisitView(sysVisits);
}
@DataSource(value = DataSourceType.ORACLE)
// @Scheduled(cron = "0 */10 * * * ?")
public void getDiagnosisView() {
List<DockVo.DiagnosisInfo> sysDiagnosis = dockService.getDiagnosisView();
//根据就诊号查诊断信息
List<DockVo.DiagnosisInfo> sysDiagnosis = dockService.getDiagnosisView(new ArrayList<>(visitNos));
syncDiagnosisView(sysDiagnosis);
}
@DataSource(value = DataSourceType.ORACLE)
// @Scheduled(cron = "0 */10 * * * ?")
public void getMedicationView() {
List<DockVo.MedicationInfo> sysMedications = dockService.getMedicationView();
//根据就诊号查用药信息
List<DockVo.MedicationInfo> sysMedications = dockService.getMedicationView(new ArrayList<>(visitNos));
syncMedicationView(sysMedications);
}
@ -82,8 +81,8 @@ public class SyncHospitalViwe {
}
@DataSource(value = DataSourceType.SLAVE)
public void syncPatientVisitView(List<DockVo.PatientVisitInfo> sysVisits) {
dockService.syncPatientVisitView(sysVisits);
public List<DockVo.PatientVisitInfo> syncPatientVisitView(List<DockVo.PatientVisitInfo> sysVisits) {
return dockService.syncPatientVisitView(sysVisits);
}
@DataSource(value = DataSourceType.SLAVE)

4
ruisi_java/ruisi-web-client/src/main/resources/application-dev.yml

@ -19,10 +19,6 @@ spring:
url: jdbc:mysql://127.0.0.1:3306/ruisi_cga_yf?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
# driverClassName: oracle.jdbc.driver.OracleDriver
# url: jdbc:oracle:thin:@200.1.8.115:1521:hisdb
# username: interface_lnpg
# password: interface_lnpg
oracle:
# 从数据源开关/默认关闭
enabled: true

23
ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/PmsPatientDao.xml

@ -71,10 +71,25 @@
<if test="idcard != null and idcard != ''">
and (pp.idcard = #{idcard} or pp.idcard = #{idcardEncrypt})
</if>
<!-- 权限 总测评师和测评师都是本部门及以下 -->
and uu.dept_id IN ( SELECT d.dept_id FROM ums_user u LEFT JOIN ums_dept d on (d.dept_id = u.dept_id or FIND_IN_SET(u.dept_id,ancestors))
WHERE user_id = #{userId}
)
<!-- &lt;!&ndash; 权限 总测评师和测评师都是本部门及以下 &ndash;&gt;-->
<!-- and uu.dept_id IN ( SELECT d.dept_id FROM ums_user u LEFT JOIN ums_dept d on (d.dept_id = u.dept_id or FIND_IN_SET(u.dept_id,ancestors))-->
<!-- WHERE user_id = #{userId}-->
<!-- )-->
<!--电力医院查看自己关联的部门信息-->
AND (
EXISTS (
SELECT 1 FROM ums_user WHERE user_id = #{userId} AND data_power = 'ALL'
)
OR
(
FIND_IN_SET(uu.dept_id,
(SELECT
CONCAT(dept_id, ',', data_power)
FROM ums_user
WHERE user_id = #{userId})
)
)
)
<!-- <choose>-->
<!-- &lt;!&ndash; 测评师查看自己的患者 &ndash;&gt;-->

21
ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/RmsDao.xml

@ -1204,9 +1204,24 @@ group by ee.id
pp.idcard like CONCAT('%',#{dto.searchValue},'%')
)
</if>
<!-- 权限 总测评师和测评师都是本部门及以下 -->
and uu.dept_id IN ( SELECT d.dept_id FROM ums_user u LEFT JOIN ums_dept d on (d.dept_id = u.dept_id or FIND_IN_SET(u.dept_id,ancestors))
WHERE user_id = #{userId}
<!-- &lt;!&ndash; 权限 总测评师和测评师都是本部门及以下 &ndash;&gt;-->
<!-- and uu.dept_id IN ( SELECT d.dept_id FROM ums_user u LEFT JOIN ums_dept d on (d.dept_id = u.dept_id or FIND_IN_SET(u.dept_id,ancestors))-->
<!-- WHERE user_id = #{userId}-->
<!-- )-->
<!--电力医院查看自己关联的部门信息-->
AND (
EXISTS (
SELECT 1 FROM ums_user WHERE user_id = #{userId} AND data_power = 'ALL'
)
OR
(
FIND_IN_SET(uu.dept_id,
(SELECT
CONCAT(dept_id, ',', data_power)
FROM ums_user
WHERE user_id = #{userId})
)
)
)
group by ee.id
order by ee.create_time desc

Loading…
Cancel
Save