病案示踪优化

master
linjj 2 years ago
parent 2bf01b0116
commit 17508414e7

@ -187,12 +187,6 @@ public class beHospitaledController {
doctorTime = (Date) map.get("FINISHED_DATE_TIME");
nurseTime = (Date) map.get("MR_COMMIT_NURSE_DATE_TIME");
lastTime = (Date) map.get("FIRST_PAGE_FINISHED_SAVE_TIME");
System.out.println("医生文书提交时间(视图)"+doctorTime);
System.out.println("医生文书提交时间(提交)"+c1);
System.out.println("护士文书提交时间(视图)"+nurseTime);
System.out.println("医生文书提交时间(提交)"+c2);
System.out.println("首页文书提交时间(视图)"+lastTime);
System.out.println("医生文书提交时间(提交)"+c9);
if (doctorTime!=null && nurseTime!=null && lastTime!=null ) {
if (c1.compareTo(doctorTime) < 0) {
result1 = "①检查文书有过修改,麻烦医生在电子病历系统重新提交医生文书";
@ -204,12 +198,6 @@ public class beHospitaledController {
result3 = "③检查首页有过修改,麻烦医生在电子病历系统重新提交首页";
}
result = result1 + result2 + result3;
System.out.println("result1"+result1);
System.out.println("result2"+result2);
System.out.println("result3"+result3);
System.out.println("医生文书"+c2.compareTo(nurseTime));
System.out.println("护士文书"+c2.compareTo(nurseTime));
System.out.println("首页"+c9.compareTo(lastTime));
if (result.equals("")) {
if (flagNum == 0) {
try {

@ -270,15 +270,11 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
@Override
public List<Archive_Master_Vo> selectBeHospitalByColumn(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) {
//判断并设置查询是否打印权限
//setIdByPrintNum(archiveMasterVo);
//根据条件查询记录
if(null != offset && null != limit) {
PageHelper.offsetPage(offset, limit);
}
List<Archive_Master_Vo> list = archiveMasterMapper.selectByColumn(archiveMasterVo);
//获取科室列表
Emr_Dictionary dic = new Emr_Dictionary();
dic.setEffective(1);
@ -622,42 +618,91 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
@Override
public List<Archive_Master_Vo> selectByUnfileAndColumn(Archive_Master_Vo archiveMasterVo,Integer offset, Integer limit) {
//判断并设置查询是否打印权限
//setIdByPrintNum(archiveMasterVo);
//根据条件查询记录
if(null != offset && null != limit) {
PageHelper.offsetPage(offset, limit);
}
List<Archive_Master_Vo> list = archiveMasterMapper.selectByUnfileNew(archiveMasterVo);
//获取科室列表
Emr_Dictionary dic = new Emr_Dictionary();
dic.setEffective(1);
dic.setTypecode("dept_code");
//科室列表
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
for (Archive_Master_Vo archiveMaster:list)
//转换科室
for (int k = 0; k < dicList.size(); k++) {
if(StringUtils.isNotBlank(archiveMaster.getDeptName())){
String deptName = archiveMaster.getDeptName();
if (deptName.equals(dicList.get(k).getCode())) {
//出院科室
deptName = deptName.replace(deptName, dicList.get(k).getName());
archiveMaster.setDeptName(deptName);
}
Map<String, Emr_Dictionary> codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String deptCode = p.getDeptName();
String deptAdmissionCode = p.getDeptAdmissionTo();
if(StringUtils.isNotBlank(deptCode) && codeMap.containsKey(deptCode)){
String deptName = codeMap.get(deptCode).getName();
p.setDeptName(deptName);
}
if (StringUtils.isNotBlank(archiveMaster.getDeptAdmissionTo())){
String dept2 = archiveMaster.getDeptAdmissionTo();
if(dept2 != null && dept2.equals(dicList.get(k).getCode())) {
//入院科室dept_admission_to
dept2 = dept2.replace(dept2, dicList.get(k).getName());
archiveMaster.setDeptAdmissionTo(dept2);
}
if(StringUtils.isNotBlank(deptAdmissionCode) && codeMap.containsKey(deptAdmissionCode)){
String deptAdmissionTo = codeMap.get(deptAdmissionCode).getName();
p.setDeptAdmissionTo(deptAdmissionTo);
}
});
//masterIds集合
List<String> masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getId);
//转成逗号拼接
String ids = String.join(",", masterIds);
//获取医生缺陷数量
List<Archive_Master_Vo> doctorDefectNum = archiveMasterMapper.getDoctorDefectNum(ids);
//医生是否有缺陷
Map<String, Archive_Master_Vo> doctorMap = ListUtils.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String doctorId = p.getId();
if (doctorMap.containsKey(doctorId)){
String faultDoctorNum = doctorMap.get(doctorId).getFaultDoctorNum();
p.setFaultDoctorNum(faultDoctorNum);
p.setNumb(1);
}
});
//获取护士缺陷数量
List<Archive_Master_Vo> nurseDefectNum = archiveMasterMapper.getNurseDefectNum(ids);
//护士是否有缺陷
Map<String, Archive_Master_Vo> nurseMap = ListUtils.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId);
//判断是否有缺陷就填入
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String nurseId = p.getId();
if (nurseMap.containsKey(nurseId)){
String faultNurseNum = nurseMap.get(nurseId).getFaultNurseNum();
p.setFaultNurseNum(faultNurseNum);
p.setNumb(1);
}
});
//设置医生、护士名称和打印标识、科室、是否退回医生、是否退回护士
setNameAndPrintFlagNew(archiveMasterVo, list);
if(list!=null && list.size()>0) {
JSONArray powerUsers = powerUserService.getPowerUserList("1");
List<JSONObject> powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class);
if (powerUserList != null){
Map<String,JSONObject> mappedMovies = Maps.uniqueIndex(powerUserList, new Function<JSONObject,String>() {
@Override
public String apply(JSONObject temp) {
return temp.getString("userName");
}});
for (Archive_Master_Vo emr_fault_vo : list) {
// emr_fault_vo.setBackFee(priceVal);
//主管医生
JSONObject userInfo = mappedMovies.get(emr_fault_vo.getDoctorInCharge());
if (userInfo == null) {
emr_fault_vo.setDoctorInCharge(emr_fault_vo.getDoctorInCharge());
} else {
emr_fault_vo.setDoctorInCharge(userInfo.getString("name"));
}
//退回人
userInfo = mappedMovies.get(emr_fault_vo.getCreater());
if (userInfo == null) {
emr_fault_vo.setCreater(emr_fault_vo.getCreater());
} else {
emr_fault_vo.setCreater(userInfo.getString("name"));
}
}
}
}
//设置医生、护士名称和打印标识
setNameAndPrintFlag(archiveMasterVo, list);
return list;
}

@ -1,5 +1,6 @@
package com.emr.service.ipml;
import cn.org.bjca.seal.esspdf.client.message.ChannelMessage;
import cn.org.bjca.seal.esspdf.client.message.RectangleBean;
import cn.org.bjca.seal.esspdf.client.tools.AnySignClientTool;

@ -794,32 +794,47 @@
</select>
<select id="selectByUnfileNew" parameterType="com.emr.entity.Archive_Master_Vo" resultMap="BaseResultMap2">
select m.id,m.patient_id,m.inp_no,m.visit_id,m.name,m.sex,m.dept_name
,CONVERT(varchar(10),m.discharge_date_time, 120) discharge_date_time,m.ArchiveState,CONVERT(varchar(10),m.admission_date_time, 120) admission_date_time,m.dept_admission_to
,m.check_doctor,m.checked_datetime,m.checked_doctor,m.LockInfo,m.DOCTOR_IN_CHARGE,m.ID_NO,m.DISCHARGE_DISPOSITION,m.dept_code_lend,m.isscaned,
m.cmt_doctor,m.cmt_nurse,m.doctor_name,m.nurse_name,m.cmt_doctor_date,m.cmt_nurse_date,m.emr_doctor_cmt,m.emr_nure_cmt,m.death_flag,m.is_scanning,
m.bed_number,ISNULL(s.numb, 0) numb,ISNULL(amf.num, 5) checkFlag
,ISNULL(sDoctor.numb, 0) faultDoctorNum,ISNULL(sNurse.numb, 0) faultNurseNum,ISNULL(m.print_flag, 0) printNum
from archive_master m
LEFT JOIN(SELECT amfa.id ,amfa.master_id, amfa.following_type num FROM Archive_Master_Following amfa left join
(SELECT amfb.master_id ida,max(handle_time) t FROM Archive_Master_Following amfb GROUP BY master_id) amfc
on amfa.master_id = amfc.ida
AND amfa.handle_time = amfc.t
WHERE ida is not NULL
AND t is not null
AND following_type in (5,9)) amf
on m.id=amf.master_id
LEFT JOIN(select archive_detail_id,count(*) numb from emr_fault_detail where 1=1 and back_flag in ('1','5') GROUP BY archive_detail_id) sDoctor
on m.id=sDoctor.archive_detail_id
LEFT JOIN(select archive_detail_id,count(*) numb from emr_fault_detail where 1=1 and back_flag in ('2','6') GROUP BY archive_detail_id) sNurse
on m.id=sNurse.archive_detail_id
LEFT JOIN(select archive_detail_id,count(*) numb from emr_fault_detail where 1=1 and back_flag is not null GROUP BY archive_detail_id) s
on m.id=s.archive_detail_id
LEFT JOIN (select MasterID,COUNT(*) num from archive_printInfo group by MasterID) printTable
on m.id=printTable.MasterID
where 1=1
and patindex('%B%',m.inp_no) in (0,1)
and m.ArchiveState not in('作废','已封存') and m.Is_Valid!=1 and inp_no not like 'LG%'
SELECT
m.id,
m.patient_id,
m.inp_no,
m.visit_id,
m.name,
m.sex,
m.dept_name,
discharge_date_time,
m.ArchiveState,
admission_date_time,
m.dept_admission_to,
m.check_doctor,
m.checked_datetime,
m.checked_doctor,
m.LockInfo,
m.DOCTOR_IN_CHARGE,
m.ID_NO,
m.DISCHARGE_DISPOSITION,
m.dept_code_lend,
m.isscaned,
m.cmt_doctor,
m.cmt_nurse,
m.doctor_name,
m.nurse_name,
m.cmt_doctor_date,
m.cmt_nurse_date,
m.emr_doctor_cmt,
m.emr_nure_cmt,
m.death_flag,
m.is_scanning,
m.bed_number,
ISNULL( m.print_flag, 0 ) printNum
FROM
archive_master m
WHERE
1 = 1
AND patindex( '%B%', m.inp_no ) IN ( 0, 1 )
AND m.ArchiveState NOT IN ( '作废', '已封存' )
AND m.Is_Valid != 1
AND inp_no NOT LIKE 'LG%'
<if test="printNum != null and printNum != ''">
<choose>
<when test="printNum == 1">

@ -3382,20 +3382,6 @@
return html;
}
},
// {
// title: '科主任是否审核',
// field: 'checkFlag',
// align: 'center',
// formatter: function (value, row, index) {
// var a = "";
// if (value == 9) {
// a = '<span style="color:red;"><i class="glyphicon glyphicon-ban-circle" aria-hidden="true"></i>未审核</span>';
// } else {
// a = '<span style="color:orange;"><i class="glyphicon glyphicon-ok-circle" aria-hidden="true"></i>已审核</span>';
// }
// return a;
// }
// },
{
title: '状态',
field: 'archivestate',
@ -3460,13 +3446,16 @@
}
if (index.indexOf("qxSel") != -1) {
var redFlag = row.numb;
var redFlagDoc = row.faultDoctorNum;
var redFlagNur = row.faultNurseNum;
//有缺陷
if (redFlag != 0) {
//有退回给医生的缺陷
if(row.faultDoctorNum!= 0){
if(redFlagDoc!= 0 && redFlagDoc!= null){
html = html + '<button type="button" class="btn btn-sm btn-info getQXDoctorInfo">医生查看缺陷</button>';
}
//有退回给护士的缺陷
if(row.faultNurseNum!= 0){
if(redFlagNur!= 0 && redFlagNur!= null){
html = html + '<button type="button" class="btn btn-sm btn-info getQXNurseInfo">护士查看缺陷</button>';
}
}

Loading…
Cancel
Save