diff --git a/dataConfig/广东省中医院住院电子病历采集-homeQualitySet.json b/dataConfig/广东省中医院住院电子病历采集-homeQualitySet.json
index 0f272cc..09c95e8 100644
--- a/dataConfig/广东省中医院住院电子病历采集-homeQualitySet.json
+++ b/dataConfig/广东省中医院住院电子病历采集-homeQualitySet.json
@@ -21,7 +21,8 @@
"filetitle":"FILENAME",
//医生提交时间
"doctorSubmitTime":"SUBMIT_TIME",
-
+ //封存id
+ "sealId":"SEAL_ID",
//下载地址,&代表多个选其一
"downurl":"PDF_PATH",
//电子病历排序时间
@@ -38,6 +39,8 @@
"filestoragetype":1,
//上传接口
"uploadConnector":"http://192.9.100.171:9291/api/downplatform/report",
+ //封存上传接口
+ "sealUpload":"",
//基本数据存放处,根节点不填,最后一层为基本信息存放标签与doubleBasic配合
"basicDirectory":[""],
//可能存在存储基本数据不同情况的标签
diff --git a/src/main/java/com/docus/bgts/entity/CqcSubmitState.java b/src/main/java/com/docus/bgts/entity/CqcSubmitState.java
new file mode 100644
index 0000000..bf18947
--- /dev/null
+++ b/src/main/java/com/docus/bgts/entity/CqcSubmitState.java
@@ -0,0 +1,32 @@
+package com.docus.bgts.entity;
+
+import lombok.Data;
+
+/**
+ * @description 病案提交状态
+ * @author zhengkai.blog.csdn.net
+ * @date 2022-08-17
+ */
+@Data
+public class CqcSubmitState {
+
+ private static final long serialVersionUID = 1L;
+
+
+ /**
+ * 病案主键
+ */
+ private String patientId;
+
+ /**
+ * 医生提交状态(0:未提交,1:已提交)
+ */
+ private Integer doctorState;
+
+ /**
+ * 护士提交状态
+ */
+ private Integer nurseState;
+
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/docus/bgts/entity/ReportDownPatientDto.java b/src/main/java/com/docus/bgts/entity/ReportDownPatientDto.java
index 8509d86..8ac1376 100644
--- a/src/main/java/com/docus/bgts/entity/ReportDownPatientDto.java
+++ b/src/main/java/com/docus/bgts/entity/ReportDownPatientDto.java
@@ -7,4 +7,10 @@ import lombok.Data;
public class ReportDownPatientDto {
@ApiModelProperty(value = "记帐号")
private String jzh;
+
+ @ApiModelProperty(value = "封存id")
+ private String sealId;
+
+ @ApiModelProperty(value = "主键")
+ private String patientid;
}
diff --git a/src/main/java/com/docus/bgts/entity/TBasic.java b/src/main/java/com/docus/bgts/entity/TBasic.java
new file mode 100644
index 0000000..45c0c3c
--- /dev/null
+++ b/src/main/java/com/docus/bgts/entity/TBasic.java
@@ -0,0 +1,465 @@
+package com.docus.bgts.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *
+ * 病案基本信息
+ *
+ *
+ * @author jiashi
+ * @since 2021-04-14
+ */
+@Data
+@EqualsAndHashCode
+@ApiModel(value="TBasic对象", description="病案基本信息")
+public class TBasic implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "病案主键")
+ @TableId(value = "patient_id", type = IdType.ASSIGN_ID)
+ private String patientId;
+
+
+ /**
+ * 住院次数
+ */
+ @ApiModelProperty("住院次数")
+ private Integer admissTimes;
+
+ /**
+ * 病案号
+ */
+ @ApiModelProperty("病案号")
+ private String inpatientNo;
+
+ /**
+ * 住院id号
+ */
+ @ApiModelProperty("住院id号")
+ private String admissId;
+
+ /**
+ * 患者姓名
+ */
+ @ApiModelProperty("患者姓名")
+ private String name;
+
+ /**
+ * 盘号
+ */
+ @ApiModelProperty("盘号")
+ private String ph;
+
+ /**
+ * 患者姓名首拼
+ */
+ @ApiModelProperty("患者姓名首拼")
+ private String nameSpell;
+
+ /**
+ * 性别
+ */
+ @ApiModelProperty("性别")
+ private String sex;
+
+ /**
+ * 年龄_岁
+ */
+ @ApiModelProperty("年龄_岁")
+ private Integer age;
+
+ /**
+ * 年龄_月
+ */
+ @ApiModelProperty("年龄_月")
+ private Integer ageMonth;
+
+ /**
+ * 年龄_天
+ */
+ @ApiModelProperty("年龄_天")
+ private Integer ageDay;
+
+ /**
+ * 身份证
+ */
+ @ApiModelProperty("身份证")
+ private String idCard;
+
+ /**
+ * 手机号码
+ */
+ @ApiModelProperty("手机号码")
+ private String telphone;
+
+ /**
+ * 住院日期
+ */
+ @ApiModelProperty("住院日期")
+ private Date admissDate;
+
+ /**
+ * 住院科室
+ */
+ @ApiModelProperty("住院科室")
+ private String admissDept;
+
+ /**
+ * 住院科室名称
+ */
+ @ApiModelProperty("住院科室名称")
+ private String admissDeptName;
+
+ /**
+ * 出院日期
+ */
+ @ApiModelProperty("出院日期")
+ private Date disDate;
+
+ /**
+ * 出院科室
+ */
+ @ApiModelProperty("出院科室")
+ private String disDept;
+
+ /**
+ * 出院科室名称
+ */
+ @ApiModelProperty("出院科室名称")
+ private String disDeptName;
+
+ /**
+ * 实际住院天数
+ */
+ @ApiModelProperty("实际住院天数")
+ private Integer admissDays;
+
+ /**
+ * 主管医生
+ */
+ @ApiModelProperty("主管医生")
+ private String attending;
+
+ /**
+ * 主管医生名称
+ */
+ @ApiModelProperty("主管医生名称")
+ private String attendingName;
+
+ /**
+ * 主要诊断编码
+ */
+ @ApiModelProperty("主要诊断编码")
+ private String mainDiagCode;
+
+ /**
+ * 主要诊断名称
+ */
+ @ApiModelProperty("主要诊断名称")
+ private String mainDiagName;
+
+ /**
+ * 主要手术编码
+ */
+ @ApiModelProperty("主要手术编码")
+ private String mainOperateCode;
+
+ /**
+ * 主要手术名称
+ */
+ @ApiModelProperty("主要手术名称")
+ private String mainOperateName;
+
+ /**
+ * 是否死亡
+ */
+ @ApiModelProperty("是否死亡")
+ private Integer isDead;
+
+ /**
+ * 是否作废(0:否,1:是)
+ */
+ @ApiModelProperty("是否作废(0:否,1:是)")
+ private Integer isCancel;
+
+ /**
+ * 签收时间
+ */
+ @ApiModelProperty("签收时间")
+ private Date signTime;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ /**
+ * 修改时间
+ */
+ @ApiModelProperty("修改时间")
+ private Date updateTime;
+
+ /**
+ * 是否归档 1:已归档,0:未归档
+ */
+ @ApiModelProperty("是否归档 1:已归档,0:未归档")
+ private Integer isArchive;
+
+ /**
+ * 归档时间
+ */
+ @ApiModelProperty("归档时间")
+ private Date archiveTime;
+
+ /**
+ * 1 归档采集(pdf),2 异地扫描(图片),3 现场扫描(pdf),4 其他来源
+ */
+ @ApiModelProperty("1 归档采集(pdf),2 异地扫描(图片),3 现场扫描(pdf),4 其他来源")
+ private Integer fileSource;
+
+ /**
+ * 完整性描述
+ */
+ @ApiModelProperty("完整性描述")
+ private String integrityDesc;
+
+ /**
+ * 扫描生产软件-视频脑电图号
+ */
+ @ApiModelProperty("扫描生产软件-视频脑电图号")
+ private String bColumn1;
+
+ /**
+ * 扫描生产软件-ep号
+ */
+ @ApiModelProperty("扫描生产软件-ep号")
+ private String bColumn2;
+
+ /**
+ * 茂名流水号
+ */
+ @ApiModelProperty("茂名流水号")
+ private String bColumn3;
+
+ /**
+ * 扫描生产软件-门诊号
+ */
+ @ApiModelProperty("扫描生产软件-门诊号")
+ private String bColumn4;
+
+ /**
+ * b_column5
+ */
+ @ApiModelProperty("b_column5")
+ private String bColumn5;
+
+ /**
+ * b_column6
+ */
+ @ApiModelProperty("b_column6")
+ private Integer bColumn6;
+
+ /**
+ * b_column7
+ */
+ @ApiModelProperty("b_column7")
+ private Integer bColumn7;
+
+ /**
+ * b_column8
+ */
+ @ApiModelProperty("b_column8")
+ private Integer bColumn8;
+
+ /**
+ * b_column9
+ */
+ @ApiModelProperty("b_column9")
+ private Integer bColumn9;
+
+ /**
+ * b_column10
+ */
+ @ApiModelProperty("b_column10")
+ private Integer bColumn10;
+
+ /**
+ * 性别名称
+ */
+ @ApiModelProperty("性别名称")
+ private String sexName;
+
+ /**
+ * 记账号(省中医患者主索引id)
+ */
+ @ApiModelProperty("记账号(省中医患者主索引id)")
+ private String jzh;
+
+ /**
+ * 患者主索引号(省中医记账号)
+ */
+ @ApiModelProperty("患者主索引号(省中医记账号)")
+ private String empId;
+
+ /**
+ * visit_type_code
+ */
+ @ApiModelProperty("visit_type_code")
+ private String visitTypeCode;
+
+ /**
+ * visit_type_name
+ */
+ @ApiModelProperty("visit_type_name")
+ private String visitTypeName;
+
+ /**
+ * tcm_diag_code
+ */
+ @ApiModelProperty("tcm_diag_code")
+ private String tcmDiagCode;
+
+ /**
+ * tcm_diag_name
+ */
+ @ApiModelProperty("tcm_diag_name")
+ private String tcmDiagName;
+
+ /**
+ * ward_palce
+ */
+ @ApiModelProperty("ward_palce")
+ private String wardPalce;
+
+ /**
+ * 床号位
+ */
+ @ApiModelProperty("床号位")
+ private String bedNum;
+
+ /**
+ * 接收时间,目前澄海人医 使用
+ */
+ @ApiModelProperty("接收时间,目前澄海人医 使用")
+ private Date receiveTime;
+
+ /**
+ * 状态 1:封存,3:锁定
+ */
+ @ApiModelProperty("状态 1:封存,3:锁定")
+ private Integer state;
+
+ /**
+ * 是否扫描 2否 1是
+ */
+ @ApiModelProperty("是否扫描 2否 1是")
+ private String scanSource;
+
+ /**
+ * 暂缓审核配置id ,隔开
+ */
+ @ApiModelProperty("暂缓审核配置id ,隔开")
+ private String cqcDeferAuditConfigId;
+
+ /**
+ * 病案是否批注 0:没有批注 1:有批注
+ */
+ @ApiModelProperty("病案是否批注 0:没有批注 1:有批注")
+ private Integer commentStatus;
+
+ /**
+ * 医生提交状态(0:未提交,1:已提交)
+ */
+ @ApiModelProperty("医生提交状态(0:未提交,1:已提交)")
+ private Integer doctorState;
+
+ /**
+ * 护士提交状态
+ */
+ @ApiModelProperty("护士提交状态")
+ private Integer nurseState;
+
+ /**
+ * 纸质签收 0:未签收 1:已签收
+ */
+ @ApiModelProperty("纸质签收 0:未签收 1:已签收")
+ private Integer cqcSigninfo;
+
+ /**
+ * 责任护士
+ */
+ @ApiModelProperty("责任护士")
+ private String dutyNurse;
+
+ /**
+ * 审核状态 0:否 1:是
+ */
+ @ApiModelProperty("审核状态 0:否 1:是")
+ private Integer tagState;
+
+ /**
+ * 是否手术
+ */
+ @ApiModelProperty("是否手术")
+ private String isOper;
+
+ /**
+ * 现住址
+ */
+ @ApiModelProperty("现住址")
+ private String homeAddr;
+
+ /**
+ * 损伤中毒
+ */
+ @ApiModelProperty("损伤中毒")
+ private String poisoningName;
+
+ /**
+ * 病理诊断
+ */
+ @ApiModelProperty("病理诊断")
+ private String pathologyName;
+
+ /**
+ * 其他诊断
+ */
+ @ApiModelProperty("其他诊断")
+ private String otherDiagName;
+
+ /**
+ * 联系方式
+ */
+ @ApiModelProperty("联系方式")
+ private String homeTel;
+
+ public TBasic() {}
+
+ /**
+ * 特殊处理 y:n
+ * @param isDead
+ */
+ public void setIsDead(String isDead) {
+ this.isDead = isDead!=null&&isDead.toLowerCase().equals("y")?1:0;
+ }
+
+ public Integer getIsDead() {
+ return isDead;
+ }
+
+// public void setIsDead(Integer isDead) {
+// this.isDead = isDead;
+// }
+}
diff --git a/src/main/java/com/docus/bgts/enums/Codes.java b/src/main/java/com/docus/bgts/enums/Codes.java
index 2f25910..7d9e173 100644
--- a/src/main/java/com/docus/bgts/enums/Codes.java
+++ b/src/main/java/com/docus/bgts/enums/Codes.java
@@ -12,6 +12,8 @@ public enum Codes {
DIRECTORY("1000","directory"),
//上传接口地址
UPLOAD("0","uploadConnector"),
+ //封存上传接口地址
+ SEALUPLOAD("0","sealUpload"),
REPOAL("0","repoalConnector"),
assortid("assortid","assortidKey"),
collectorid("collectorid","collectoridKey"),
diff --git a/src/main/java/com/docus/bgts/facade/IAfCollectTaskService.java b/src/main/java/com/docus/bgts/facade/IAfCollectTaskService.java
index 9fd2549..b1233bc 100644
--- a/src/main/java/com/docus/bgts/facade/IAfCollectTaskService.java
+++ b/src/main/java/com/docus/bgts/facade/IAfCollectTaskService.java
@@ -22,12 +22,21 @@ public interface IAfCollectTaskService extends IService {
*/
String getpatientIdByEmpId(String empId);
+ /**
+ * 通过封存id获取patient_id
+ * @param sealId
+ * @return
+ */
+ String getpatientIdBysealId(String sealId);
+
String getNameByPatientId(String patientId);
String getOutpatientIdByJzhel(String jzh);
void insert(ReportDownDto reportDownDto);
+ void insertSeal(ReportDownDto reportDownDto);
+
void insertOut(ReportDownDto reportDownDto);
void updateInterfaceCollect(String collectSubId, int state);
diff --git a/src/main/java/com/docus/bgts/handler/TBasicWebService.java b/src/main/java/com/docus/bgts/handler/TBasicWebService.java
index 122bd95..3423f97 100644
--- a/src/main/java/com/docus/bgts/handler/TBasicWebService.java
+++ b/src/main/java/com/docus/bgts/handler/TBasicWebService.java
@@ -104,6 +104,8 @@ public class TBasicWebService implements ITBasicWebService {
String sortingTimeKey = String.valueOf(FileUtils.getJsonByName("sortingTime"));
// 获取患者主索引号
String empId = String.valueOf(FileUtils.getJsonByName(Codes.EMP_ID.getMessage()));
+ //电子病历封存id
+ String seal = String.valueOf(FileUtils.getJsonByName("sealId"));
//判断是否为撤销
String isJudge = String.valueOf(FileUtils.getJsonByName("isJudge"));
if (StringUtils.isBlank(isJudge) || isJudge.equals("0")) {
@@ -119,7 +121,6 @@ public class TBasicWebService implements ITBasicWebService {
logger.info("------新增/修改------");
} else if (judgeIndexElement.getText().equals("1")) {
logger.info("---------撤回--------");
-
CanlcelDto canlcelDto = new CanlcelDto();
String serialnum = String.valueOf(FileUtils.getJsonByName("serialnum"));
String serialnumElement = getElementText(elementRoot, serialnum.split(","));
@@ -144,10 +145,10 @@ public class TBasicWebService implements ITBasicWebService {
String sortingTime;
String assortid;
String collectorid = String.valueOf(FileUtils.getJsonByName("collectorid"));
- if(collectorid.equals("1")){
+ if (collectorid.equals("1")) {
assortid = String.valueOf(FileUtils.getJsonByName("assortid"));
- }else {
- assortid = getAssortid(elementRoot);
+ } else {
+ assortid = getAssortid(elementRoot);
}
reportDownDto = new ReportDownDto();
@@ -158,9 +159,80 @@ public class TBasicWebService implements ITBasicWebService {
reportDownPatientDto = new ReportDownPatientDto();
//获取jzh
String empIdText = getElementText(elementRoot, empId.split(","));
+ //获取封存id
+ String sealId = getElementTextCanBeEmpty(elementRoot, seal.split(","));
+ if (null != sealId && !"".equals(sealId)) {
+ reportDownPatientDto.setJzh(empIdText);
+ reportDownPatientDto.setSealId(sealId);
+ logger.info("封存患者jzh : " + empIdText);
+ reportDownDto.setPatient(reportDownPatientDto);
+ List elementList = xmlUtils.getJsonByName(elementRoot);
+ for (Element element : elementList) {
+ filetitle = getElementText(element, filetitleKey.split(","));
+ downurl = getElementText(element, downurlKey.split(","));
+ //downurl = handleDownUrl(downurl);
+ //添加护理提交时间
+ if (collectorid.equals("1")) {
+ nurseSubmitTime = getElementText(element, nurseSubmitTime.split(","));
+ afCollectTaskService.updateNurseSubmitTime(reportDownDto, nurseSubmitTime);
+ afCollectTaskService.insertNurseState(reportDownDto, nurseSubmitTime);
+ }
+ //获取电子病历排序时间
+ sortingTime = getElementTextCanBeEmpty(element, sortingTimeKey.split(","));
+ //获取采集流水号
+ serialnum = getElementText(element, serialnmnKey.split(","));
+ reportDownScanFileDto = new ReportDownScanFileDto();
+ reportDownScanFileDto.setDownurl(downurl);
+ reportDownScanFileDto.setFiletitle(filetitle);
+ reportDownScanFileDto.setSerialnum(serialnum);
+ reportDownScanFileDto.setSortdate(sortingTime);
+ reportDownScanFileDto.setFilesource(Integer.parseInt(String.valueOf(FileUtils.getJsonByName("filesource"))));
+ reportDownScanFileDto.setFilestoragetype(Integer.parseInt(String.valueOf(FileUtils.getJsonByName("filestoragetype"))));
+ //判断是否为base64
+ if (reportDownScanFileDto.getDownurl().length() > 200) {
+ reportDownScanFileDto.setFiletype(2);
+ }
+ reportDownDtoArr.add(reportDownScanFileDto);
+ }
+ if (reportDownDtoArr.size() <= 0) {
+ throw new RuntimeException("不存在必要的基本信息");
+ } else {
+ reportDownDto.setScanfiles(reportDownDtoArr);
+ }
+
+ afCollectTaskService.insertSeal(reportDownDto);
+
+
+ String post = "";
+ logger.info("--------执行上传功能----------");
+
+ Map params = JSON.parseObject(JSON.toJSONString(reportDownDto), Map.class);
+ if (reportDownDto.getScanfiles().get(0).getFiletype() == 1) {
+ logger.info("封存id--"+reportDownDto.getPatient().getSealId()+ ": 上传参数:" + params);
+ }
+ long l = System.currentTimeMillis();
+ post = HttpUtils.post(String.valueOf(FileUtils.getJsonByName(Codes.SEALUPLOAD.getMessage())), headMap, params);
+ long l1 = System.currentTimeMillis();
+ logger.info("封存id--"+reportDownDto.getPatient().getSealId()+"请求下载耗时----------" + (l1 - l));
+
+ if (StringUtils.isBlank(post)) {
+ logger.info("封存id--"+reportDownDto.getPatient().getSealId()+"--------上传时出现错误,可能是文件服务没有启动----------");
+ throw new RuntimeException("封存id--"+reportDownDto.getPatient().getSealId()+"上传时出现错误,可能是文件服务没有启动");
+ }
+ Map resMap = JSON.parseObject(post, Map.class);
+ long l7 = System.currentTimeMillis();
+ logger.info("接口总耗时--------" + (l7 - l6));
+ if (String.valueOf(resMap.get("code")).equals("500")) {
- //病理没有就诊流水号的根据住院号和检查申请日期时间匹配患者
-// String empIdText = getElementTextCanBeEmpty(elementRoot, empId.split(","));
+ logger.info("封存id--"+reportDownDto.getPatient().getSealId()+ "--------上传失败!" + resMap.get("msg"));
+ throw new RuntimeException("封存id--"+reportDownDto.getPatient().getSealId()+ "上传失败:" + resMap.get("msg"));
+ } else {
+ logger.info("----------执行成功-----------");
+ return ResultUtils.success().asXML();
+ }
+ }else {
+ //病理没有就诊流水号的根据住院号和检查申请日期时间匹配患者
+ // String empIdText = getElementTextCanBeEmpty(elementRoot, empId.split(","));
// if (null==empIdText||empIdText.equals("")){
// String examApplyDates = getElementText(elementRoot, examApplyDate.split(","));
// String inPatientNos = getElementText(elementRoot, inPatientNo.split(","));
@@ -177,143 +249,137 @@ public class TBasicWebService implements ITBasicWebService {
// }
-
- // doctorSubmitTime = getElementText(elementRoot, doctorSubmitTime.split(","));
-
- /**
- * 删除电子病历数据
- */
-
- long l2 = System.currentTimeMillis();
- String patientId = afCollectTaskService.getpatientIdByEmpId(empIdText);
- long l3 = System.currentTimeMillis();
- logger.info("查询patient_id耗时"+(l3-l2));
- //删除af_downfile表数据
-// long l4 = System.currentTimeMillis();
-// int i = afCollectTaskService.deleteByPatientIdAndCollectorId(patientId, collectorid);
-// long l5 = System.currentTimeMillis();
-// logger.info("删除"+empIdText+"af_downfile表"+i+"条数据耗时-----"+(l5-l4));
-// //删除t_scan_assort表数据
-// long l8 = System.currentTimeMillis();
-// int i1 = afCollectTaskService.deleteByPatientIdAndAssortId(patientId, assortid);
-// long l11 = System.currentTimeMillis();
-// logger.info("删除"+empIdText+"t_scan_assort表"+i1+"条数据耗时-----"+(l11-l8));
-// //删除af_collect_task表数据
-// long l9 = System.currentTimeMillis();
-// int i2 = afCollectTaskService.deleteByPatientIdAndSysFlag(patientId, collectorid);
-// long l10 = System.currentTimeMillis();
-// logger.info("删除"+empIdText+"af_collect_task表"+i2+"条数据耗时-----"+(l10-l9));
-//
-
- reportDownPatientDto.setJzh(empIdText);
- logger.info("患者主索引号:" + empIdText);
- reportDownDto.setPatient(reportDownPatientDto);
- List elementList = xmlUtils.getJsonByName(elementRoot);
- for (Element element : elementList) {
- filetitle = getElementText(element, filetitleKey.split(","));
- downurl = getElementText(element, downurlKey.split(","));
- //downurl = handleDownUrl(downurl);
- //添加护理提交时间
-// if (filetitle.equals("体温单")||filetitle.equals("护理记录单(通用)")||filetitle.equals("首次护理记录单(通用)")){
-// nurseSubmitTime = getElementText(element, nurseSubmitTime.split(","));
-// afCollectTaskService.updateNurseSubmitTime(reportDownDto, nurseSubmitTime);
-// afCollectTaskService.insertNurseState(reportDownDto,nurseSubmitTime);
-// }
-
-
- //获取电子病历排序时间
- sortingTime = getElementTextCanBeEmpty(element,sortingTimeKey.split(","));
- //获取采集流水号
- serialnum = getElementText(element, serialnmnKey.split(","));
- reportDownScanFileDto = new ReportDownScanFileDto();
- reportDownScanFileDto.setDownurl(downurl);
- reportDownScanFileDto.setFiletitle(filetitle);
- reportDownScanFileDto.setSerialnum(serialnum);
- reportDownScanFileDto.setSortdate(sortingTime);
- reportDownScanFileDto.setFilesource(Integer.parseInt(String.valueOf(FileUtils.getJsonByName("filesource"))));
- reportDownScanFileDto.setFilestoragetype(Integer.parseInt(String.valueOf(FileUtils.getJsonByName("filestoragetype"))));
- //判断是否为base64
- if (reportDownScanFileDto.getDownurl().length() > 200) {
- reportDownScanFileDto.setFiletype(2);
+ // doctorSubmitTime = getElementText(elementRoot, doctorSubmitTime.split(","));
+
+ /**
+ * 删除电子病历数据
+ */
+
+// long l2 = System.currentTimeMillis();
+// String patientId = afCollectTaskService.getpatientIdByEmpId(empIdText);
+// long l3 = System.currentTimeMillis();
+// logger.info("查询patient_id耗时" + (l3 - l2));
+// //删除af_downfile表数据
+// long l4 = System.currentTimeMillis();
+// int i = afCollectTaskService.deleteByPatientIdAndCollectorId(patientId, collectorid);
+// long l5 = System.currentTimeMillis();
+// logger.info("删除" + empIdText + "af_downfile表" + i + "条数据耗时-----" + (l5 - l4));
+// //删除t_scan_assort表数据
+// long l8 = System.currentTimeMillis();
+// int i1 = afCollectTaskService.deleteByPatientIdAndAssortId(patientId, assortid);
+// long l11 = System.currentTimeMillis();
+// logger.info("删除" + empIdText + "t_scan_assort表" + i1 + "条数据耗时-----" + (l11 - l8));
+// //删除af_collect_task表数据
+// long l9 = System.currentTimeMillis();
+// int i2 = afCollectTaskService.deleteByPatientIdAndSysFlag(patientId, collectorid);
+// long l10 = System.currentTimeMillis();
+// logger.info("删除" + empIdText + "af_collect_task表" + i2 + "条数据耗时-----" + (l10 - l9));
+ reportDownPatientDto.setJzh(empIdText);
+ logger.info("患者主索引号:" + empIdText);
+ reportDownDto.setPatient(reportDownPatientDto);
+ List elementList = xmlUtils.getJsonByName(elementRoot);
+ for (Element element : elementList) {
+ filetitle = getElementText(element, filetitleKey.split(","));
+ downurl = getElementText(element, downurlKey.split(","));
+ //downurl = handleDownUrl(downurl);
+ //添加护理提交时间
+ if (collectorid.equals("1")) {
+ nurseSubmitTime = getElementText(element, nurseSubmitTime.split(","));
+ afCollectTaskService.updateNurseSubmitTime(reportDownDto, nurseSubmitTime);
+ afCollectTaskService.insertNurseState(reportDownDto, nurseSubmitTime);
+ }
+ //获取电子病历排序时间
+ // sortingTime = getElementTextCanBeEmpty(element, sortingTimeKey.split(","));
+ //获取采集流水号
+ serialnum = getElementText(element, serialnmnKey.split(","));
+ reportDownScanFileDto = new ReportDownScanFileDto();
+ reportDownScanFileDto.setDownurl(downurl);
+ reportDownScanFileDto.setFiletitle(filetitle);
+ reportDownScanFileDto.setSerialnum(serialnum);
+ // reportDownScanFileDto.setSortdate(sortingTime);
+ reportDownScanFileDto.setFilesource(Integer.parseInt(String.valueOf(FileUtils.getJsonByName("filesource"))));
+ reportDownScanFileDto.setFilestoragetype(Integer.parseInt(String.valueOf(FileUtils.getJsonByName("filestoragetype"))));
+ //判断是否为base64
+ if (reportDownScanFileDto.getDownurl().length() > 200) {
+ reportDownScanFileDto.setFiletype(2);
+ }
+ reportDownDtoArr.add(reportDownScanFileDto);
+ }
+ if (reportDownDtoArr.size() <= 0) {
+ throw new RuntimeException("不存在必要的基本信息");
+ } else {
+ reportDownDto.setScanfiles(reportDownDtoArr);
+ }
+ if (collectorid.equals("22")) {
+ //查询正式住院患者信息
+ TBasic tBasic = tBasicMapper.selectByjzh(empIdText);
+ if (null != tBasic) {
+ //查询预住院患者信息
+ TBasicExtend tBasicExtend = tBasicExtendMapper.selectByPatientId(tBasic.getPatientId());
+ if (null != tBasicExtend) {
+ TBasic tBasicPre = tBasicMapper.selectByjzh(tBasicExtend.getPreJzh());
+ if (null != tBasicPre) {
+ int pre = tScanAssortMapper.updateByPatientId(tBasic.getPatientId(), tBasicPre.getPatientId());
+ if (pre <= 0) {
+ logger.info("当前预住院没有文件!");
+ } else {
+ logger.info("本次预住院合并" + pre + "份报告");
+ }
+ } else {
+ logger.info("未查询到预住院患者信息!");
+ }
+ }
+ }
}
- reportDownDtoArr.add(reportDownScanFileDto);
- }
- if (reportDownDtoArr.size() <= 0) {
- throw new RuntimeException("不存在必要的基本信息");
- } else {
- reportDownDto.setScanfiles(reportDownDtoArr);
- }
-// if (collectorid.equals("22")){
-// //查询正式住院患者信息
-// TBasic tBasic = tBasicMapper.selectByjzh(empIdText);
-// if (null!=tBasic){
-// //查询预住院患者信息
-// TBasicExtend tBasicExtend = tBasicExtendMapper.selectByPatientId(tBasic.getPatientId());
-// if (null!=tBasicExtend){
-// TBasic tBasicPre = tBasicMapper.selectByjzh(tBasicExtend.getPreJzh());
-// if (null!=tBasicPre){
-// int pre = tScanAssortMapper.updateByPatientId(tBasic.getPatientId(), tBasicPre.getPatientId());
-// if (pre <= 0) {
-// logger.info("当前预住院没有文件!");
-// }else {
-// logger.info("本次预住院合并"+pre+"份报告");
-// }
-// }else {
-// logger.info("未查询到预住院患者信息!");
-// }
-// }
-// }
-// }
- //插入医生提交时间
- // afCollectTaskService.updateDoctorSubmitTime(reportDownDto, doctorSubmitTime);
- //插入医生提交状态
- // afCollectTaskService.insertDoctorState(reportDownDto,doctorSubmitTime);
- //插入文件af_collect_task表数据
+ //插入医生提交时间
+ // afCollectTaskService.updateDoctorSubmitTime(reportDownDto, doctorSubmitTime);
+ //插入医生提交状态
+ // afCollectTaskService.insertDoctorState(reportDownDto, doctorSubmitTime);
+ //插入文件af_collect_task表数据
// synchronized (lock) {
- // System.err.println(reportDownDto);
- afCollectTaskService.insert(reportDownDto);
-
-
+ // System.err.println(reportDownDto);
+ afCollectTaskService.insert(reportDownDto);
// }
- String post = "";
- logger.info("--------执行上传功能----------");
-
-
- Map params = JSON.parseObject(JSON.toJSONString(reportDownDto), Map.class);
- if (reportDownDto.getScanfiles().get(0).getFiletype() == 1) {
- logger.info("上传参数:" + params);
- }
- long l = System.currentTimeMillis();
- post = HttpUtils.post(String.valueOf(FileUtils.getJsonByName(Codes.UPLOAD.getMessage())), headMap, params);
- long l1 = System.currentTimeMillis();
- logger.info("请求下载耗时----------"+(l1-l));
+ String post = "";
+ logger.info("--------执行上传功能----------");
+ Map params = JSON.parseObject(JSON.toJSONString(reportDownDto), Map.class);
+ if (reportDownDto.getScanfiles().get(0).getFiletype() == 1) {
+ logger.info(reportDownDto.getPatient().getJzh() + ": 上传参数:" + params);
+ }
+ long l = System.currentTimeMillis();
+ post = HttpUtils.post(String.valueOf(FileUtils.getJsonByName(Codes.UPLOAD.getMessage())), headMap, params);
+ long l1 = System.currentTimeMillis();
+ logger.info("请求下载耗时----------" + (l1 - l));
// String post = HttpUtils.post(String.valueOf(FileUtils.getJsonByName(Codes.UPLOAD.getMessage())), map, headMap);
- if (StringUtils.isBlank(post)) {
- logger.info("--------上传时出现错误,可能是文件服务没有启动----------");
- throw new RuntimeException("上传时出现错误,可能是文件服务没有启动");
- }
- Map resMap = JSON.parseObject(post, Map.class);
- long l7 = System.currentTimeMillis();
- logger.info("接口总耗时--------"+(l7-l6));
- if (String.valueOf(resMap.get("code")).equals("500")) {
- throw new RuntimeException(String.valueOf(resMap.get("msg")));
- } else {
- logger.info("----------执行成功-----------");
- return ResultUtils.success().asXML();
+ if (StringUtils.isBlank(post)) {
+ logger.info("--------上传时出现错误,可能是文件服务没有启动----------");
+ throw new RuntimeException("上传时出现错误,可能是文件服务没有启动");
+ }
+ Map resMap = JSON.parseObject(post, Map.class);
+ long l7 = System.currentTimeMillis();
+ logger.info("接口总耗时--------" + (l7 - l6));
+ if (String.valueOf(resMap.get("code")).equals("500")) {
+ logger.info(reportDownDto.getPatient().getJzh() + "--------上传失败!" + resMap.get("msg"));
+ throw new RuntimeException(reportDownDto.getPatient().getJzh() + "上传失败:" + resMap.get("msg"));
+ } else {
+ logger.info("----------执行成功-----------");
+ return ResultUtils.success().asXML();
+ }
}
+
} catch (RuntimeException e) {
e.printStackTrace();
- // mrReportErrorService.insert(xml);
+ // mrReportErrorService.insert(xml);
logger.error(e.getMessage());
-// String stackTrace = ExceptionUtils.getStackTrace(e);
-// logger.info("错误信息----------"+stackTrace);
+ String stackTrace = ExceptionUtils.getStackTrace(e);
+ logger.info("错误信息----------" + stackTrace);
return ResultUtils.fail(e.getMessage());
} catch (Exception e) {
- // mrReportErrorService.insert(xml);
+ // mrReportErrorService.insert(xml);
logger.error(e.getMessage());
-// String stackTrace = ExceptionUtils.getStackTrace(e);
-// logger.info("错误信息----------"+stackTrace);
+ String stackTrace = ExceptionUtils.getStackTrace(e);
+ logger.info("错误信息----------" + stackTrace);
e.printStackTrace();
return ResultUtils.fail(e.getMessage());
}
@@ -322,6 +388,7 @@ public class TBasicWebService implements ITBasicWebService {
/**
* 肇庆门急诊报告接收
+ *
* @param xml
* @return
*/
@@ -356,7 +423,7 @@ public class TBasicWebService implements ITBasicWebService {
String serialnum;
String filetitle;
String downurl;
- // String sortingTime;
+ // String sortingTime;
int filetype = Integer.parseInt(String.valueOf(FileUtils.getJsonByName("filetype")));
String collectorid = String.valueOf(FileUtils.getJsonByName("collectorid"));
@@ -379,7 +446,7 @@ public class TBasicWebService implements ITBasicWebService {
downurl = getElementText(element, downurlKey.split(","));
serialnum = getElementText(element, serialnmnKey.split(","));
reportDownScanFileDto = new ReportDownScanFileDto();
- reportDownScanFileDto.setDownurl(downurl.substring(1,downurl.length() - 1));
+ reportDownScanFileDto.setDownurl(downurl.substring(1, downurl.length() - 1));
reportDownScanFileDto.setFiletitle(filetitle);
reportDownScanFileDto.setSerialnum(serialnum);
reportDownScanFileDto.setFiletype(filetype);
@@ -397,7 +464,7 @@ public class TBasicWebService implements ITBasicWebService {
reportDownDto.setScanfiles(reportDownDtoArr);
}
- // System.err.println(reportDownDto);
+ // System.err.println(reportDownDto);
afCollectTaskService.insertOut(reportDownDto);
@@ -409,7 +476,7 @@ public class TBasicWebService implements ITBasicWebService {
long l = System.currentTimeMillis();
post = HttpUtils.post(String.valueOf(FileUtils.getJsonByName(Codes.UPLOAD.getMessage())), headMap, params);
long l1 = System.currentTimeMillis();
- logger.info("请求下载耗时----------"+(l1-l));
+ logger.info("请求下载耗时----------" + (l1 - l));
if (StringUtils.isBlank(post)) {
logger.info("--------上传时出现错误,可能是文件服务没有启动----------");
@@ -417,7 +484,7 @@ public class TBasicWebService implements ITBasicWebService {
}
Map resMap = JSON.parseObject(post, Map.class);
long l7 = System.currentTimeMillis();
- logger.info("接口总耗时--------"+(l7-l6));
+ logger.info("接口总耗时--------" + (l7 - l6));
if (String.valueOf(resMap.get("code")).equals("500")) {
throw new RuntimeException(String.valueOf(resMap.get("msg")));
} else {
@@ -459,7 +526,7 @@ public class TBasicWebService implements ITBasicWebService {
return url;
}
} catch (Exception e) {
- e.printStackTrace();
+ e.printStackTrace();
}
return "";
}
@@ -684,10 +751,9 @@ public class TBasicWebService implements ITBasicWebService {
}
}
-// public static void main(String[] args) {
-// depdf();
-// }
-
+ public static void main(String[] args) {
+ depdf();
+ }
}
diff --git a/src/main/java/com/docus/bgts/mapper/AfCollectTaskMapper.java b/src/main/java/com/docus/bgts/mapper/AfCollectTaskMapper.java
index 1464052..aaea674 100644
--- a/src/main/java/com/docus/bgts/mapper/AfCollectTaskMapper.java
+++ b/src/main/java/com/docus/bgts/mapper/AfCollectTaskMapper.java
@@ -29,6 +29,13 @@ public interface AfCollectTaskMapper extends BaseMapper {
*/
String getpatientIdByEmpId(@Param("jzh") String empId);
+ /**
+ * 通过封存id获取patient_id
+ * @param sealId
+ * @return
+ */
+ String getPatientIdBysealId(@Param("sealId") String sealId);
+
String selectJzh(@Param("inPatientNo") String inPatientNo,@Param("examApplyDate") String examApplyDate);
diff --git a/src/main/java/com/docus/bgts/mapper/TBasicMapper.java b/src/main/java/com/docus/bgts/mapper/TBasicMapper.java
index 940d697..b675645 100644
--- a/src/main/java/com/docus/bgts/mapper/TBasicMapper.java
+++ b/src/main/java/com/docus/bgts/mapper/TBasicMapper.java
@@ -16,4 +16,6 @@ public interface TBasicMapper extends BaseMapper {
TBasic selectByjzh(String jzh);
TBasic selectByPatientId(String patientId);
+
+ int update(TBasic tbasic);
}
diff --git a/src/main/java/com/docus/bgts/service/AfCollectTaskServiceImpl.java b/src/main/java/com/docus/bgts/service/AfCollectTaskServiceImpl.java
index 8030f98..eb1098f 100644
--- a/src/main/java/com/docus/bgts/service/AfCollectTaskServiceImpl.java
+++ b/src/main/java/com/docus/bgts/service/AfCollectTaskServiceImpl.java
@@ -7,10 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.docus.bgts.entity.*;
import com.docus.bgts.enums.Codes;
import com.docus.bgts.facade.IAfCollectTaskService;
-import com.docus.bgts.mapper.AfCollectTaskMapper;
-import com.docus.bgts.mapper.AfInterfaceCollectMapper;
-import com.docus.bgts.mapper.AfInterfaceCollectSubMapper;
-import com.docus.bgts.mapper.TBasicExtendMapper;
+import com.docus.bgts.mapper.*;
import com.docus.bgts.utils.FileUtils;
import com.docus.bgts.utils.HttpUtils;
import com.docus.bgts.utils.ResultUtils;
@@ -52,12 +49,20 @@ public class AfCollectTaskServiceImpl extends ServiceImpl scanfiles = reportDownDto.getScanfiles();
+ for (ReportDownScanFileDto scanfile : scanfiles) {
+ long l = System.currentTimeMillis();
+
+ // 判断任务是否已存在
+ afCollectTask = afCollectTaskMapper.selectOne(new QueryWrapper().eq("C1", scanfile.getSerialnum()).eq("sysflag", reportDownDto.getCollectorid()));
+ if (afCollectTask == null || afCollectTask.getId() == null) {
+ //不存在 新增
+ afCollectTask = new AfCollectTask();
+ afCollectTask.setPatientId(patientId);
+ afCollectTask.setSysflag(reportDownDto.getCollectorid());
+ afCollectTask.setState("0");
+ afCollectTask.setSyncTime(date);
+ afCollectTask.setC1(scanfile.getSerialnum());
+ afCollectTask.setC2(scanfile.getFiletitle());
+ afCollectTask.setC3(reportDownDto.getPatient().getJzh());
+ save = afCollectTaskMapper.insert(afCollectTask);
+
+ } else {
+
+ //存在就修改
+ afCollectTask.setPatientId(patientId);
+ afCollectTask.setSysflag(reportDownDto.getCollectorid());
+ afCollectTask.setState("0");
+ afCollectTask.setSyncTime(date);
+ afCollectTask.setC1(scanfile.getSerialnum());
+ afCollectTask.setC2(scanfile.getFiletitle());
+ afCollectTask.setC3(reportDownDto.getPatient().getJzh());
+ save = afCollectTaskMapper.updateById(afCollectTask);
+ }
+
+ if (save <= 0) {
+ log.info("封存任务表操作出错");
+ throw new RuntimeException("封存插入病案任务表数据出错");
+ }
+ if (afCollectTask.getId() != null) {
+ scanfile.setTaskid(afCollectTask.getId());
+ } else {
+ log.info("封存插入任务id为空!");
+ throw new RuntimeException("封存插入任务id为空");
+ }
+ }
+ reportDownDto.setScanfiles(scanfiles);
+ }
+
@Override
public void updateInterfaceCollect(String collectSubId, int state) {
AfInterfaceCollectSub afInterfaceCollectSub = afInterfaceCollectSubMapper.selectById(collectSubId);
@@ -367,57 +430,58 @@ public class AfCollectTaskServiceImpl extends ServiceImpl 0) {
+ log.info("护士提交状态修改成功!");
+ }else {
+ log.info("护士提交状态修改失败!");
+ }
} else {
- if (null != nurseSubmitTime && !("").equals(nurseSubmitTime)) {
- cqcSubmitState1.setNurseState(1);
- } else {
- cqcSubmitState1.setNurseState(0);
+ tBasic.setNurseState(0);
+ int update = tBasicMapper.update(tBasic);
+ if (update > 0) {
+ log.info("护士提交状态修改成功!");
+ }else {
+ log.info("护士提交状态修改失败!");
}
- afCollectTaskMapper.updateDoctorState(cqcSubmitState1);
}
}
@Override
public void insertDoctorState(ReportDownDto reportDownDto, String doctorSubmitTime) {
- String patientId = getpatientIdByEmpId(reportDownDto.getPatient().getJzh());
- if (StringUtils.isBlank(patientId)) {
+ TBasic tBasic = tBasicMapper.selectByjzh(reportDownDto.getPatient().getJzh());
+ if (null == tBasic) {
throw new RuntimeException("操作的病案信息不存在");
}
- CqcSubmitState cqcSubmitState1 = afCollectTaskMapper.selectByPatientId(patientId);
- if (null == cqcSubmitState1) {
- CqcSubmitState cqcSubmitState = new CqcSubmitState();
- cqcSubmitState.setPatientId(patientId);
- if (null != doctorSubmitTime && !("").equals(doctorSubmitTime)) {
- cqcSubmitState.setDoctorState(1);
- } else {
- cqcSubmitState.setDoctorState(0);
- }
- afCollectTaskMapper.insertDoctorState(cqcSubmitState);
- } else {
if (null != doctorSubmitTime && !("").equals(doctorSubmitTime)) {
- cqcSubmitState1.setDoctorState(1);
+ tBasic.setDoctorState(1);
+ int update = tBasicMapper.update(tBasic);
+ if (update > 0) {
+ log.info("医生提交状态修改成功!");
+ }else {
+ log.info("医生提交状态修改失败!");
+ }
} else {
- cqcSubmitState1.setDoctorState(0);
+ tBasic.setDoctorState(0);
+ int update = tBasicMapper.update(tBasic);
+ if (update > 0) {
+ log.info("医生提交状态修改成功!");
+ }else {
+ log.info("医生提交状态修改失败!");
+ }
}
- afCollectTaskMapper.updateDoctorState(cqcSubmitState1);
- }
+
+
+
}
diff --git a/src/main/resources/mapper/AfCollectTaskMapper.xml b/src/main/resources/mapper/AfCollectTaskMapper.xml
index a13b053..23ff72e 100644
--- a/src/main/resources/mapper/AfCollectTaskMapper.xml
+++ b/src/main/resources/mapper/AfCollectTaskMapper.xml
@@ -108,5 +108,8 @@ where patient_id=#{patientId}
select creater_name from docus_medicalrecord.cqc_back_info_log where patient_id=#{patientId} and create_time in
(select max(create_time) from docus_medicalrecord.cqc_back_info_log where patient_id=#{patientId})
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/TBasicMapper.xml b/src/main/resources/mapper/TBasicMapper.xml
index a309095..b22360c 100644
--- a/src/main/resources/mapper/TBasicMapper.xml
+++ b/src/main/resources/mapper/TBasicMapper.xml
@@ -3,61 +3,74 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
- update docus_medicalrecord.t_basic
-
-
- IPAddress=#{pcmachine.ipaddress},
-
-
- LastOnline=#{pcmachine.lastonline},
-
-
- PCStatus=#{pcmachine.pcstatus}
-
-
- IPAddress=#{pcmachine.ipaddress},
-
-
- LastOnline=#{pcmachine.lastonline},
-
-
- PCStatus=#{pcmachine.pcstatus}
-
-
- IPAddress=#{pcmachine.ipaddress},
-
-
- LastOnline=#{pcmachine.lastonline},
-
-
- PCStatus=#{pcmachine.pcstatus}
-
-
- IPAddress=#{pcmachine.ipaddress},
-
-
- LastOnline=#{pcmachine.lastonline},
-
-
- PCStatus=#{pcmachine.pcstatus}
-
-
- IPAddress=#{pcmachine.ipaddress},
-
-
- LastOnline=#{pcmachine.lastonline},
-
-
- PCStatus=#{pcmachine.pcstatus}
-
-
- where id=#{pcmachine.id}
-
+
+ update docus_medicalrecord.t_basic
+
+
+ IPAddress=#{pcmachine.ipaddress},
+
+
+ LastOnline=#{pcmachine.lastonline},
+
+
+ PCStatus=#{pcmachine.pcstatus}
+
+
+ IPAddress=#{pcmachine.ipaddress},
+
+
+ LastOnline=#{pcmachine.lastonline},
+
+
+ PCStatus=#{pcmachine.pcstatus}
+
+
+ IPAddress=#{pcmachine.ipaddress},
+
+
+ LastOnline=#{pcmachine.lastonline},
+
+
+ PCStatus=#{pcmachine.pcstatus}
+
+
+ IPAddress=#{pcmachine.ipaddress},
+
+
+ LastOnline=#{pcmachine.lastonline},
+
+
+ PCStatus=#{pcmachine.pcstatus}
+
+
+ IPAddress=#{pcmachine.ipaddress},
+
+
+ LastOnline=#{pcmachine.lastonline},
+
+
+ PCStatus=#{pcmachine.pcstatus}
+
+
+ where id=#{pcmachine.id}
+
+
+
+ UPDATE docus_medicalrecord.t_basic
+
+ doctor_state = #{doctorState},
+ nurse_state = #{nurseState},
+
+ WHERE patient_id = #{patientId}
+
\ No newline at end of file