初次提交

master
zengwh 5 years ago
commit c2e722b3be

4
.gitignore vendored

@ -0,0 +1,4 @@
/target/
/.idea/
/out/
emr_medical_record.iml

@ -0,0 +1,545 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.emr</groupId>
<artifactId>emr_medical_record</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>emr_medical_record Maven Webapp</name>
<url>http://www.example.com</url>
<properties>
<!-- begin 全局设置,被子工程继承 -->
<skipTest>true</skipTest>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 跳过 必须依赖正式版本的检查 -->
<skipRequireRelease>true</skipRequireRelease>
<!-- begin 框架版本 -->
<framework.version>1.0.0</framework.version>
<!-- end -->
<!-- begin 其它第三方开源版本定义 -->
<portable.maven.version>1.1.5</portable.maven.version>
<junit.version>4.12</junit.version>
<jdk.version>1.8</jdk.version>
<mockito.version>1.9.5</mockito.version>
<!--<spring.version>3.2.2.RELEASE</spring.version>-->
<shiro.version>1.2.2</shiro.version>
<quartz.version>2.2.1</quartz.version>
<jetty.version>7.6.11.v20130520</jetty.version>
<servlet.version>2.4</servlet.version>
<jsp.version>2.1</jsp.version>
<jstl.version>1.2</jstl.version>
<hibernate-validator.version>5.0.1.Final</hibernate-validator.version>
<postgresql.version>9.2-1004-jdbc4</postgresql.version>
<activiti.version>5.17.0</activiti.version>
<groovy.version>2.3.6</groovy.version>
<aliyun-sdk-oss.version>2.2.1</aliyun-sdk-oss.version>
<alipay-sdk.version>1.1.1</alipay-sdk.version>
<bropen-api.version>3.5.0</bropen-api.version>
<spring.version>5.0.2.RELEASE</spring.version>
<mybatis.version>3.2.8</mybatis.version>
<mybatis.spring.version>1.2.2</mybatis.spring.version>
<mybatis.paginator.version>1.2.15</mybatis.paginator.version>
<mysql.version>5.1.32</mysql.version>
<slf4j.version>1.6.4</slf4j.version>
<json-lib.version>2.4</json-lib.version>
<jackson.version>2.9.4</jackson.version>
<druid.version>1.0.9</druid.version>
<httpclient.version>4.3.5</httpclient.version>
<servlet-api.version>2.5</servlet-api.version>
<jsp-api.version>2.0</jsp-api.version>
<joda-time.version>2.5</joda-time.version>
<commons-lang3.version>3.3.2</commons-lang3.version>
<commons-io.version>1.3.2</commons-io.version>
<commons-net.version>3.3</commons-net.version>
<pagehelper.version>3.4.3</pagehelper.version>
<jsqlparser.version>0.9.1</jsqlparser.version>
<commons-fileupload.version>1.3.1</commons-fileupload.version>
<jedis.version>2.7.2</jedis.version>
<solrj.version>4.10.3</solrj.version>
<aspectj.version>1.8.13</aspectj.version>
<aspectjrt.version>1.8.13</aspectjrt.version>
<image2pdf.version>2.1.7</image2pdf.version>
<cxf.version>3.1.8</cxf.version>
<poi.version>3.9</poi.version>
<itext.version>2.1.7</itext.version>
</properties>
<!-- maven依赖 -->
<dependencies>
<!-- Apache工具组件 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>${commons-net.version}</version>
</dependency>
<!--json-->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>${json-lib.version}</version>
<classifier>jdk15</classifier>
</dependency>
<!-- Jackson Json处理工具包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- 日志处理 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.spring.version}</version>
</dependency>
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>${mybatis.paginator.version}</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<!-- Hex -->
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<!-- 导入DES对称加密包 -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId>
<version>1.46</version>
</dependency>
<!-- Java Mail邮件 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.5</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.4</version>
</dependency>
<!-- 引入pageHelper分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet-api.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp-api.version}</version>
</dependency>
<!-- 文件上传组件 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons-fileupload.version}</version>
</dependency>
<!-- SECURITY begin :进行用户认证以及授予权限的时候,通过各种各样的拦截器来控制权限的访问,从而实现安全 -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-ehcache</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql.version}</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!--json-->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>${json-lib.version}</version>
<classifier>jdk15</classifier>
</dependency>
<!-- Jackson Json处理工具包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<!--简化单元测试的书写-->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<!-- 使用JDOM操作XML-->
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom</artifactId>
<version>1.1</version>
</dependency>
<!--客户端发送Http请求变得容易而且也方便了开发人员测试接口-->
<!--<dependency>-->
<!--<groupId>org.apache.httpcomponents</groupId>-->
<!--<artifactId>httpclient</artifactId>-->
<!--<version>4.5.1</version>-->
<!--</dependency>-->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</dependency>
<!--<dependency>-->
<!--<groupId>org.mybatis.generator</groupId>-->
<!--<artifactId>mybatis-generator-core</artifactId>-->
<!--<version>1.3.5</version>-->
<!--</dependency>-->
<!--简化单元测试的书写-->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<!--非web项目实现文件下载使用apache的httpmime工具进行相关的http请求操作-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.5</version>
</dependency>
<!-- 使用JDOM操作XML-->
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</dependency>
<!--apache poi-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${poi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
</dependency>
<!--图片转pdf-->
<dependency>
<groupId>org.eclipse.birt.runtime.3_7_1</groupId>
<artifactId>com.lowagie.text</artifactId>
<version>${image2pdf.version}</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.7</version>
</dependency>
<!--webService-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.50</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.12</version>
</dependency>
<!--<dependency>-->
<!--<groupId>commons-logging</groupId>-->
<!--<artifactId>commons-logging</artifactId>-->
<!--<version>1.2</version>-->
<!--</dependency>-->
<!-- 客户端 -->
<!-- axis 1.4 jar start -->
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.2</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis-jaxrpc</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>${itext.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<finalName>emr_medical_record</finalName>
<plugins>
<!-- 资源文件拷贝插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<!-- java编译插件 -->
<plugin>
<!-- 指定maven编译的jdk版本,如果不指定,maven3默认用jdk 1.5 maven2默认用jdk1.3 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<!-- 一般而言target与source是保持一致的但是有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk源代码中不能使用低版本jdk中不支持的语法)会存在target不同于source的情况 -->
<source>1.8</source> <!-- 源代码使用的JDK版本 -->
<target>1.8</target> <!-- 需要生成的目标class文件的编译版本 -->
<encoding>UTF-8</encoding><!-- 字符集编码 -->
<verbose>true</verbose>
<showWarnings>true</showWarnings>
<fork>true</fork><!-- 要使compilerVersion标签生效还需要将fork设为true用于明确表示编译版本配置的可用 -->
<executable><!-- path-to-javac --></executable><!-- 使用指定的javac命令例如<executable>${JAVA_1_4_HOME}/bin/javac</executable> -->
<!--<compilerVersion>1.3</compilerVersion>--><!-- 指定插件将使用的编译器的版本 -->
<meminitial>128m</meminitial><!-- 编译器使用的初始内存 -->
<maxmem>512m</maxmem><!-- 编译器使用的最大内存 -->
<!-- <compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument> 这个选项用来传递编译器自身不包含但是却支持的参数选项 -->
</configuration>
</plugin>
<!-- mybatis-generator自动生成代码插件 -->
<!--<plugin>-->
<!--<groupId>org.mybatis.generator</groupId>-->
<!--<artifactId>mybatis-generator-maven-plugin</artifactId>-->
<!--<version>1.3.5</version>-->
<!--<configuration>-->
<!--<verbose>true</verbose>-->
<!--<overwrite>false</overwrite>-->
<!--</configuration>-->
<!--</plugin>-->
</plugins>
<!--<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>-->
</build>
</project>

@ -0,0 +1,12 @@
package com.emr.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface DataSource {
String dataSource() default "";
}

@ -0,0 +1,36 @@
package com.emr.annotation;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
@Aspect
@Component
public class DataSourceAspect {
//配置接入点
@Pointcut("@annotation(com.emr.annotation.DataSource)")
private void controllerAspect(){}//定义一个切入点
@Before("controllerAspect()")
public void dataSwitch(JoinPoint joinPoint){
Signature signature = joinPoint.getSignature();
MethodSignature methodSignature =(MethodSignature) signature;
Method method = methodSignature.getMethod();
DataSource data = null;
String dataSource = "";
if(method != null){
data = method.getAnnotation(DataSource.class);
if(data != null){
dataSource = data.dataSource();
if(dataSource != null){
DynamicDataSource.setDataSourceKey(dataSource);
}
}
}
}
}

@ -0,0 +1,14 @@
package com.emr.annotation;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
public class DynamicDataSource extends AbstractRoutingDataSource {
private static final ThreadLocal<String> dataSourceKey = new InheritableThreadLocal<String>();
public static void setDataSourceKey(String dataSource){
dataSourceKey.set(dataSource);
}
@Override
protected Object determineCurrentLookupKey() {
return dataSourceKey.get();
}
}

@ -0,0 +1,103 @@
package com.emr.controller;
import com.emr.entity.Archive_Master_Vo;
import com.emr.entity.OffsetLimitPage;
import com.emr.service.ipml.ArchiveFlowInfoService;
import com.emr.util.ExportExcelUtil1;
import com.emr.vo.ArchiveFlowInfoVo;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/5/25 16:18
* @UpdateUser:
* @UpdateDate: 2020/5/25 16:18
* @UpdateRemark:
* @Version: 1.0
*/
@Controller
@RequestMapping("flowInfo/")
public class ArchiveFlowInfoController {
@Autowired
private ArchiveFlowInfoService flowInfoService;
/**
*
* @return
*/
@RequestMapping("list")
public String toList(){
return "flowInfo/flowInfoList";
}
/**
*
* @param offset
* @param limit
* @param flowInfoVo
* @param isSearch
* @return
* @throws Exception
*/
@RequestMapping(value = "selectFlowInfoList")
@ResponseBody
public OffsetLimitPage selectFlowInfoList(Integer offset, Integer limit, ArchiveFlowInfoVo flowInfoVo,Integer isSearch) throws Exception{
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
flowInfoVo.setDisStartDate(null);
flowInfoVo.setDisEndDate(null);
flowInfoVo.setStartDate(null);
flowInfoVo.setEndDate(null);
}
PageHelper.offsetPage(offset,limit);
List<ArchiveFlowInfoVo> list = flowInfoService.selectFlowInfoList(flowInfoVo,null);
return new OffsetLimitPage((Page) list);
}
/**
*
* @param response
* @param flowInfoVo
* @param sql
* @param isSearch
* @throws Exception
*/
@RequestMapping("exportExcel")
@ResponseBody
public void exportExcel(HttpServletResponse response, ArchiveFlowInfoVo flowInfoVo,String sql, Integer isSearch) throws Exception{
//全部明细
String tableThNames = "";
String fieldCns = "";
//流程明细
tableThNames = "审核工号,审核姓名,当前操作,审核日期,下个审核节点,患者姓名,住院号,出院科室,出院日期,批注内容,审核用时";
fieldCns = "userName,checkName,sumbitName,createTimeCn,targetStep,name,inpNo,deptName,dischargeDateTime,remark,useTime";
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
flowInfoVo.setDisStartDate(null);
flowInfoVo.setDisEndDate(null);
flowInfoVo.setStartDate(null);
flowInfoVo.setEndDate(null);
}
List<ArchiveFlowInfoVo> list = flowInfoService.selectFlowInfoList(flowInfoVo,sql);
//文件名
String fileName = "审核流程明细(" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ").xls";
//ExportExcelUtil
ExportExcelUtil1 exportExcelUtil = new ExportExcelUtil1();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames,fieldCns,list,fileName,response);
}
}

@ -0,0 +1,33 @@
package com.emr.controller;
import com.alibaba.fastjson.JSON;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.util.UUID;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2019/9/17 14:59
* @UpdateUser:
* @UpdateDate: 2019/9/17 14:59
* @UpdateRemark:
* @Version: 1.0
*/
@Controller
@RequestMapping("contant/")
public class ContantController {
@RequestMapping("getUuid")
@ResponseBody
public String getUuid(HttpServletRequest request){
String formToken = UUID.randomUUID().toString();
request.getSession().setAttribute("formToken",formToken);
return JSON.toJSONString(formToken);
}
}

@ -0,0 +1,125 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/8/9 16:12
* Description:
*/
package com.emr.controller;
import com.emr.entity.Emr_Dictionary;
import com.emr.service.Emr_DictionaryService;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/dictionary")
public class DictionaryController {
@Autowired
private Emr_DictionaryService emrDictionaryService;
@RequestMapping(value = "/dictionarys")
public String inHospitals(Model model) {
return "dictionaryDir/dictionary";
}
@ResponseBody
@RequestMapping(value = "/dicList")
public List<Emr_Dictionary> dicList(Emr_Dictionary emrDictionary) {
return emrDictionaryService.dicByClo(emrDictionary);
}
@ResponseBody
@RequestMapping(value = "/delById")
public int delById(Integer id) {
int bol = 0;
if (id != null) {
//删除
bol = emrDictionaryService.delById(id);
}
return bol;
}
@ResponseBody
@RequestMapping(value = "/saveInfo")
public String saveInfo(Emr_Dictionary emrDictionary) {
String result="";
int bol=0;
Emr_Dictionary dic2 = new Emr_Dictionary();
// 从session获取用户名
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
String username = (String) session.getAttribute("userSession");//获取前面登录的用户名
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = format1.format(new Date());
if(emrDictionary.getId()!=null){
//判断类别代码或代码是否已经存在
//存在修改
emrDictionary.setUpdater(username);
emrDictionary.setUpdateTime(nowTime);
try{
bol=emrDictionaryService.updateCloById(emrDictionary);
}catch (Exception e){
e.printStackTrace();
}
if (bol == 1) {
result = "修改成功!";
} else {
result = "修改失败!";
}
}else{
emrDictionary.setCreater(username);
emrDictionary.setCreateTime(nowTime);
//判断类别代码或代码是否已经存在
if(emrDictionary.getCode()!=null && emrDictionary.getCode()!=""){
dic2.setCode(emrDictionary.getCode());
dic2.setParentId(emrDictionary.getParentId());
//根据代码查询该父类下是否存在是否已经存在
List<Emr_Dictionary> list = emrDictionaryService.dicByClo(dic2);
//添加叶子节点
if(list.size()<=0){
//添加叶子
bol = emrDictionaryService.insertSel(emrDictionary);
if(bol==1){
result = "添加成功!";
}else{
result = "添加失败!";
}
}else{
result="代码已存在!";
}
}else{
dic2.setTypecode(emrDictionary.getTypecode());
//根据代码查询是否已经存在
List<Emr_Dictionary> list = emrDictionaryService.dicByClo(dic2);
//添加叶子节点
if (list.size() <= 0) {
//emrDictionary.setEffective(1);
//添加类别
bol = emrDictionaryService.insertSel(emrDictionary);
if (bol == 1) {
result = "添加成功!";
} else {
result = "添加失败!";
}
} else {
result = "代码已存在!";
}
}
}
return result;
}
}

@ -0,0 +1,296 @@
package com.emr.controller;
import com.alibaba.fastjson.JSON;
import com.emr.dao.Emr_DictionaryMapper;
import com.emr.entity.*;
import com.emr.service.Archive_DetailService;
import com.emr.service.Archive_MasterService;
import com.emr.service.ipml.TPrintinfoService;
import com.emr.service.ipml.ZdAssortService;
import com.emr.util.Msg;
import net.sf.json.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @author zwh
* */
@Controller
@RequestMapping("font/")
public class FontController {
@Value("${pdfWater}")
private String pdfWater;
@Value("${allAddortIds}")
private String allAddortIds;
@Value("${POWER_URLHEAD}")
private String powerUrlHead;
@Autowired
private TPrintinfoService printinfoService;
@Autowired
private Archive_DetailService archiveDetailService;
@Autowired
private Archive_MasterService archiveMasterService;
@Autowired
private Emr_DictionaryMapper dictionaryMapper;
@Autowired
private ZdAssortService assortService;
@RequestMapping("selectIsPrintByPatienId")
@ResponseBody
public Msg selectIsPrintByPatienId(String patientId){
if(StringUtils.isBlank(patientId)){
return Msg.fail("参数patientId不能为空");
}
return printinfoService.selectIsPrintByPatienId(patientId);
}
/***************************提供第三方按多个分段id和记账号查询病历pdf***********************************/
/**
* idpdf
* */
@RequestMapping("showRecordByPatientId")
public String showRecordByPatientId(String userName, String assortIds, String patientId, Model model) throws Exception{
//判断各参数
if(StringUtils.isBlank(userName)){
return retrunErrorPage(model,"工号不能为空!");
}
if(StringUtils.isBlank(assortIds)){
return retrunErrorPage(model,"病案分类Id不能为空!");
}
if(StringUtils.isBlank(patientId)){
return retrunErrorPage(model,"记账号不能为空!");
}
List<Archive_Master> list = new ArrayList<>();
//判断工号是否存在
String checkUserName = checkUserName(userName);
if(StringUtils.isNotBlank(checkUserName)){
return retrunErrorPage(model,checkUserName);
}
//判断分类id是否存在,协商assortIds = "00000000"为查询全部
if(!allAddortIds.equals(assortIds)) {
String checkAssortIds = checkAssortIds(assortIds);
if (StringUtils.isNotBlank(checkAssortIds)) {
return retrunErrorPage(model, checkAssortIds);
}
}
//判断记账号是否存在
Archive_Master master = new Archive_Master();
master.setPatientId(patientId);
list = archiveMasterService.selectByObject(master);
if(null == list || list.isEmpty()){
return retrunErrorPage(model,"记账号不存在!");
}
model.addAttribute("patientId",list.get(0).getId());
model.addAttribute("assortIds",assortIds);
return "font/showRecord";
}
/**
*
*/
private String checkUserName(String userName) throws Exception{
String resultString = "";
String url = powerUrlHead + "/font/checkUserName?userName=" + userName;
// 执行请求
CloseableHttpResponse response = HttpClients.createDefault().execute(new HttpGet(url));
// 判断返回状态是否为200
int temp = 200;
if (response.getStatusLine().getStatusCode() == temp) {
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
}
if (StringUtils.isNoneBlank(resultString)) {
JSONObject jsonObject = JSONObject.fromObject(resultString);
Integer code = jsonObject.getInt("code");
//code==200有错误信息
if(code == temp){
JSONObject extendObject1 = JSONObject.fromObject(jsonObject);
return extendObject1.getString("msg");
}
}
return null;
}
/**
* id
* */
private String checkAssortIds(String assortIds){
Zd_Assort assort = new Zd_Assort();
assort.setPrintFlag("0");
List<Zd_Assort> assortList = assortService.selectAll(assort);
if(null != assortList && !assortList.isEmpty()){
String[] split = assortIds.split(",");
for (int i = 0; i < split.length; i++) {
//定义分类存在
boolean exist = false;
if(StringUtils.isNotBlank(split[i])){
for (int j = 0; j < assortList.size(); j++) {
if(split[i].equals(assortList.get(j).getAssortId())){
exist = true;
break;
}
}
}
if(!exist){
return "病案分类Id有误!";
}
}
}else{
return "病案分类Id有误!";
}
return null;
}
/**
* showRecordIframe
* */
@RequestMapping("showRecordIframe")
public String showRecordIframe(){
return "font/showRecordIframe";
}
/**
*
* @param masterId
* @return
*/
@ResponseBody
@RequestMapping(value = "/getRecord")
public String getPdfToPdf(String masterId) throws Exception{
Archive_Master archiveMaster = archiveMasterService.selectByPrimaryKey(masterId);
//转换科室数据字典
if(StringUtils.isNotBlank(archiveMaster.getDeptName())){
Emr_Dictionary dictionary = new Emr_Dictionary();
dictionary.setCode(archiveMaster.getDeptName());
dictionary.setTypecode("dept_code");
List<Emr_Dictionary> dictionaries = dictionaryMapper.dicByTypeCode(dictionary);
if(null != dictionaries && !dictionaries.isEmpty()){
archiveMaster.setDeptName(dictionaries.get(0).getName());
}
//判断出院日期
String dischargeDateTime = archiveMaster.getDischargeDateTime();
if(StringUtils.isNotBlank(dischargeDateTime)){
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
String time = fmt.format(fmt.parse(dischargeDateTime));
if("1801-02-03".equals(time)){
archiveMaster.setDischargeDateTime(null);
}
}
}
return JSON.toJSONString(archiveMaster);
}
/**
* masterid
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/getRecordTypeTree")
public String getRecordTypeTree(String patientId,String assortIds){
List<AssortTypeTree> treeList = new ArrayList<>();
if(StringUtils.isNotBlank(patientId) && StringUtils.isNotBlank(assortIds)){
List<Archive_Detail> list = new ArrayList<>();
//assortIds等于协商的全查的分类id全查
if(allAddortIds.equals(assortIds)){
list = archiveDetailService.selectTypeTreeByPatientIdAndAssortIds(patientId, null);
}else{
//否则按条件查
//分类id分别以单引号隔开
String assortIdStr = "";
String[] split = assortIds.split(",");
for (int i = 0; i < split.length; i++) {
assortIdStr += "'" + split[i] + "',";
}
//去掉最后一个逗号
assortIdStr = assortIdStr.substring(0,assortIdStr.length()-1);
list = archiveDetailService.selectTypeTreeByPatientIdAndAssortIds(patientId,assortIdStr);
}
if(null != list && !list.isEmpty()){
Set<String> assortList = new LinkedHashSet<>();
//分类去重
for(Archive_Detail detail : list){
assortList.add(detail.getSubassort());
}
//组织树
int id = 1;
//定义第一层的id为第二层父id
int oneParentId = 0;
//定义第二层的id为第三层父id
int twoParentId = 0;
AssortTypeTree tree = new AssortTypeTree();
//第一层,根目录全部影像资料
tree.setId(id);
tree.setParentId(0);
tree.setName("全部影像资料");
tree.setChecked("true");
treeList.add(tree);
oneParentId = id;
id++;
for(String assortName : assortList){
AssortTypeTree tree1 = new AssortTypeTree();
//第二层,分类名称
tree1.setId(id);
tree1.setParentId(oneParentId);
twoParentId = id;
id++;
//定义该类的数量
int count = 0;
for(Archive_Detail detail : list){
if(StringUtils.isNotBlank(detail.getSubassort()) && assortName.equals(detail.getSubassort())){
AssortTypeTree tree2 = new AssortTypeTree();
//第三层,资料名称
count++;
tree2.setId(id);
tree2.setParentId(twoParentId);
tree2.setName(detail.getTitle());
tree2.setSelfId(detail.getId());
tree2.setChecked("true");
treeList.add(tree2);
id++;
}
}
tree1.setName(assortName + "("+count+")");
tree1.setChecked("true");
treeList.add(tree1);
}
}
}
return JSON.toJSONString(treeList);
}
/**
* idPDFpdf
* @param response
* @param detailIds
* @param masterId
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/getPdfToPdf/{masterId}/{detailIds}")
public void getPdfToPdf(HttpServletResponse response,@PathVariable("detailIds") String detailIds, @PathVariable("masterId") String masterId){
archiveDetailService.selectPdfPathByIds(response, detailIds, masterId,pdfWater);
}
/**
*
* */
private String retrunErrorPage(Model model,String errorMsg){
model.addAttribute("errorMsg",errorMsg);
return "font/error";
}
}

@ -0,0 +1,31 @@
package com.emr.controller;
import org.apache.commons.lang3.StringUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2019/9/17 14:20
* @UpdateUser:
* @UpdateDate: 2019/9/17 14:20
* @UpdateRemark:
* @Version: 1.0
*/
public class FormTokenFlagUtil {
public static boolean isFlag(HttpServletRequest request) {
HttpSession session = request.getSession();
String sesionToken = (String) session.getAttribute("formToken");
String token = request.getParameter("formToken");
if (StringUtils.isNoneBlank(token) && !(token.equals(sesionToken))) {
return false;
}
session.removeAttribute("formToken");
return true;
}
}

@ -0,0 +1,59 @@
package com.emr.controller;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/5/15 16:14
* @UpdateUser:
* @UpdateDate: 2020/5/15 16:14
* @UpdateRemark:
* @Version: 1.0
*/
import com.alibaba.fastjson.support.spring.FastJsonJsonView;
import org.apache.log4j.Logger;
import org.apache.shiro.authz.UnauthorizedException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.HashMap;
import java.util.Map;
@ControllerAdvice
public class GlobalExceptionHandler {
private static Logger log = Logger.getLogger("errorMsg");
@ExceptionHandler(value = Exception.class)//指定拦截的异常
public ModelAndView errorHandler(Exception e){
return returnMv(e,"服务器出错了,请联系系统管理员");
}
@ExceptionHandler(value = RuntimeException.class)//指定拦截的异常
public ModelAndView runtimeHandler(Exception e){
return returnMv(e,"服务器出错了,请联系系统管理员");
}
@ExceptionHandler(value = UnauthorizedException.class)//指定拦截的异常
public ModelAndView unauthorizedHandler(Exception e){
return returnMv(e,"您权限验证出错了,请联系系统管理员");
}
private ModelAndView returnMv(Exception e,String msg){
ModelAndView mv = new ModelAndView();
/* 使用FastJson提供的FastJsonJsonView视图返回不需要捕获异常 */
FastJsonJsonView view = new FastJsonJsonView();
Map<String, Object> attributes = new HashMap<>(1);
attributes.put("code", "500");
attributes.put("msg", msg);
view.setAttributesMap(attributes);
mv.setView(view);
//方法名
ByteArrayOutputStream baos = new ByteArrayOutputStream();
e.printStackTrace(new PrintStream(baos));
String exception = baos.toString();
log.error(exception);
e.printStackTrace();
return mv;
}
}

@ -0,0 +1,45 @@
package com.emr.controller;
import com.emr.entity.EmrHolidaySetVo;
import com.emr.entity.OffsetLimitPage;
import com.emr.service.ipml.HolidaySetService;
import com.emr.util.Msg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("holidaySet/")
public class HolidaySetController {
@Autowired
private HolidaySetService holidaySetService;
@RequestMapping("holidaySetList")
public String holidaySetList(){
return "holidaySetDir/holidaySetList";
}
@ResponseBody
@RequestMapping(value = "getHolidaySetList")
public OffsetLimitPage getHolidaySetList(EmrHolidaySetVo holidaySetVo) {
return holidaySetService.selectByColumn(holidaySetVo);
}
@RequestMapping("save")
@ResponseBody
public Msg save(String startTime,String endTime,String checkBoxes,Integer flag) throws Exception{
holidaySetService.update(startTime, endTime, checkBoxes, flag);
return Msg.success();
}
@RequestMapping("update")
@ResponseBody
public Msg update(Integer flag,Integer id) throws Exception{
if(flag != null) {
holidaySetService.update(flag, id);
return Msg.success();
}else{
return Msg.fail("工作日状态不能为空!");
}
}
}

@ -0,0 +1,55 @@
package com.emr.controller;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.CXFBusFactory;
import org.apache.cxf.endpoint.EndpointImplFactory;
import org.apache.cxf.endpoint.dynamic.DynamicClientFactory;
import org.apache.cxf.jaxws.support.JaxWsEndpointImplFactory;
import java.util.List;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2019/9/11 16:15
* @UpdateUser:
* @UpdateDate: 2019/9/11 16:15
* @UpdateRemark:
* @Version: 1.0
*/
public class JAXDynamicClientFactory extends DynamicClientFactory {
protected JAXDynamicClientFactory(Bus bus) {
super(bus);
}
@Override
protected EndpointImplFactory getEndpointImplFactory() {
return JaxWsEndpointImplFactory.getSingleton();
}
@Override
protected boolean allowWrapperOps() {
return true;
}
public static JAXDynamicClientFactory newInstance(Bus b) {
return new JAXDynamicClientFactory(b);
}
public static JAXDynamicClientFactory newInstance() {
Bus bus = CXFBusFactory.getThreadDefaultBus();
return new JAXDynamicClientFactory(bus);
}
@Override
public boolean compileJavaSrc(String classPath, List srcList, String dest) {
org.apache.cxf.common.util.Compiler javaCompiler
= new org.apache.cxf.common.util.Compiler();
javaCompiler.setEncoding("UTF-8");
javaCompiler.setClassPath(classPath);
javaCompiler.setOutputDir(dest);
javaCompiler.setTarget("1.8");
return javaCompiler.compileFiles(srcList);
}
}

@ -0,0 +1,72 @@
package com.emr.controller;
import com.emr.entity.Power_User;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.cxf.endpoint.Client;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
/**
* @author HJL
* @create 2019/4/29
*/
@Controller
public class LoginController {
@Value("${POWER_URLHEAD}")
private String POWER_URLHEAD;
@Value("${POWER_JSP}")
private String POWER_JSP;
@Value("${powerUrl}")
private String powerUrl;
@RequestMapping(value = "/toLogin")
public String toLogin(Model model) {
return "redirect:/login.jsp";
}
//实现用户登录@PathVariable("username")
@RequestMapping(value = "/login")
public String login(Model model, HttpServletRequest request) throws Exception{
String token = request.getParameter("token");
if(StringUtils.isNoneBlank(token)){
JAXDynamicClientFactory dcf = JAXDynamicClientFactory.newInstance();
Client client = dcf.createClient(POWER_URLHEAD + "/WebService/PowerWebService?wsdl");
Object[] objects = client.invoke("getInfosByUserId", token, "emr_medical_record");
ObjectMapper mapper = new ObjectMapper();
Power_User powerUser = mapper.readValue(objects[0].toString(), Power_User.class);
//设置进session
request.getSession().setAttribute("CURRENT_USER", powerUser);
if (null == powerUser.getUserId()) {
return "redirect:/emr_medical_record/error.jsp";
}
String userName = request.getParameter("userName");
UsernamePasswordToken userToken = new UsernamePasswordToken(userName, "123456");
Subject subject = SecurityUtils.getSubject();
subject.login(userToken);
model.addAttribute("POWER_URLHEAD", POWER_JSP);
request.getSession().setAttribute("token", token);
}else{
return "redirect:"+POWER_URLHEAD+"/login";
}
return "index";
}
@RequestMapping(value = "/index")
public String Login() {
return "index";
}
}

@ -0,0 +1,90 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 14:39
* Description:退
*/
package com.emr.controller;
import com.emr.dao.Archive_MasterMapper;
import com.emr.entity.*;
import com.emr.service.Archive_MasterService;
import com.emr.service.ipml.ArchiveCallbackInfoService;
import com.emr.util.ExportExcelUtil;
import com.emr.util.Msg;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@PropertySource(value = "classpath:config/jdbc.properties", encoding = "UTF-8")
@Controller
@RequestMapping("/medicalRecall")
public class MedicalRecallController {
@Autowired
private Archive_MasterMapper archiveMasterMapper;
@Autowired
private Archive_MasterService archiveMasterService;
@Autowired
private ArchiveCallbackInfoService callbackInfoService;
@Value("${recallReason}")
private String recallReason;
@RequestMapping(value = "/recall")
public String recall() {
return "medicalRecallDir/medicalRecallList";
}
/**
* 退
* */
@ResponseBody
@RequestMapping(value = "/recallList")
public OffsetLimitPage recallList(Archive_Master_Vo master, Integer offset, Integer limit) {
//查询已归档记录
return archiveMasterService.selectFiled(master, offset, limit);
}
@ResponseBody
@RequestMapping(value = "/exportExcel")
public void exportExcel(HttpServletResponse response, Archive_Master_Vo master) throws Exception {
String tableThNames = "住院号,住院次数,名字,性别,入院科室,入院日期,出院科室,出院日期,上次召回状态,归档状态";
String fieldCns = "inpNo,visitId,name,sex,deptAdmissionTo,admissionDateTime,deptName,dischargeDateTime,status,archivestate";
List<Archive_Master_Vo> list = archiveMasterMapper.selectFiled(master);
//文件名
String fileName = "归档记录" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
//ExportExcelUtil
ExportExcelUtil exportExcelUtil = new ExportExcelUtil();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames,fieldCns,list,fileName,response);
}
@ResponseBody
@RequestMapping(value = "/updateState")
public Msg updateState(HttpServletRequest request,ArchiveCallbackInfo callbackInfo) throws Exception{
boolean flag = FormTokenFlagUtil.isFlag(request);
if (!flag) {
return Msg.fail("请不要重复提交!");
}
if(StringUtils.isBlank(callbackInfo.getCallbackReason())){
callbackInfo.setCallbackReason(recallReason);
}
callbackInfoService.insertCallbackInfoService(callbackInfo);
return Msg.success();
}
}

@ -0,0 +1,310 @@
package com.emr.controller;
import com.emr.entity.Archive_Master_Vo;
import com.emr.entity.OffsetLimitPage;
import com.emr.service.ipml.StatisticsService;
import com.emr.util.ExportExcelUtil1;
import com.emr.vo.FinalAndFirstStatistics;
import com.emr.vo.TUuInfoVo;
import com.emr.vo.TUuPrintSearch;
import com.emr.vo.TUuPrintVo;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/1/8 14:52
* @UpdateUser:
* @UpdateDate: 2020/1/8 14:52
* @UpdateRemark:
* @Version: 1.0
*/
@Controller
@RequestMapping("statistics/")
public class StatisticsController {
@Autowired
private StatisticsService statisticsService;
//终审按天统计
@RequestMapping("finalStatistics")
public String finalStatistics(){
return "statistics/finalStatistics";
}
//终审明细
@RequestMapping("finalStatisticsDetail")
public String finalStatisticsDetail(){
return "statistics/finalStatisticsDetail";
}
//初审按天统计
@RequestMapping("firstStatistics")
public String firstStatistics(){
return "statistics/firstStatistics";
}
//初审终审明细
@RequestMapping("statisticsDetail")
public String statisticsDetail(){
return "statistics/statisticsDetail";
}
//复印记录报表
@RequestMapping("printCount")
public String printCount(){
return "statistics/printCount";
}
//复印记录明细
@RequestMapping("printInfo")
public String printInfo(){
return "statistics/printInfo";
}
//扫描上传记录报表
@RequestMapping("scanCount")
public String scanCount(){
return "statistics/scanCount";
}
//扫描上传明细
@RequestMapping("scanInfo")
public String scanInfo(){
return "statistics/scanInfo";
}
//终审按天统计
@RequestMapping("getFinalStatistics")
@ResponseBody
public OffsetLimitPage getFinalStatistics(HttpServletRequest request,Integer offset, Integer limit, String startDate, String endDate,Integer isSearch){
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
startDate = null;
endDate = null;
}
List<FinalAndFirstStatistics> list = statisticsService.getFinalStatistics(offset, limit, startDate, endDate,null);
return new OffsetLimitPage((Page)list);
}
//初审按天统计
@RequestMapping("getFirstStatistics")
@ResponseBody
public OffsetLimitPage getFirstStatistics(HttpServletRequest request,Integer offset, Integer limit, String startDate, String endDate,Integer isSearch){
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
startDate = null;
endDate = null;
}
List<FinalAndFirstStatistics> list = statisticsService.getFirstStatistics(request, offset, limit, startDate, endDate,null);
return new OffsetLimitPage((Page) list);
}
//审核明细
@RequestMapping("getStatisticsDetail")
@ResponseBody
public OffsetLimitPage getStatisticsDetail(Integer offset, Integer limit,String disStartDate, String disEndDate, Archive_Master_Vo archiveMasterVo,Integer flag,Integer isSearch){
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
disStartDate = null;
disEndDate = null;
archiveMasterVo.setStartDate(null);
archiveMasterVo.setEndDate(null);
}
return statisticsService.getStatisticsDetail(offset,limit,disStartDate,disEndDate,archiveMasterVo,flag);
}
//导出终审统计
@RequestMapping("exportExcelFinalStatistics")
@ResponseBody
public void exportExcelFinalStatistics(HttpServletResponse response,Integer offset, Integer limit, String startDate, String endDate,String sql,Integer isSearch) throws Exception{
//全部明细
String tableThNames = "工号,姓名,终审日期,终审数量";
String fieldCns = "checkCode,checkName,createTime,count";
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
startDate = null;
endDate = null;
}
List<FinalAndFirstStatistics> list = statisticsService.getFinalStatistics(offset, limit, startDate, endDate,sql);
//文件名
String fileName = "终审记录统计报表(" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ").xls";
//ExportExcelUtil
ExportExcelUtil1 exportExcelUtil = new ExportExcelUtil1();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames,fieldCns,list,fileName,response);
}
//导出初审统计
@RequestMapping("exportExcelFirstStatistics")
@ResponseBody
public void exportExcelFirstStatistics(HttpServletRequest request,HttpServletResponse response,Integer offset, Integer limit, String startDate, String endDate,String sql,Integer isSearch) throws Exception{
//全部明细
String tableThNames = "工号,姓名,审核日期,审核数量";
String fieldCns = "checkCode,checkName,createTime,count";
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
startDate = null;
endDate = null;
}
List<FinalAndFirstStatistics> list = statisticsService.getFirstStatistics(request, offset, limit, startDate, endDate,sql);
//文件名
String fileName = "病案室审核记录统计表(" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ").xls";
//ExportExcelUtil
ExportExcelUtil1 exportExcelUtil = new ExportExcelUtil1();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames,fieldCns,list,fileName,response);
}
//导出审核明细
@RequestMapping("exportExcelDetail")
@ResponseBody
public void exportExcelDetail(HttpServletResponse response,String disStartDate, String disEndDate, Archive_Master_Vo archiveMasterVo, Integer flag,String sql,Integer isSearch) throws Exception{
//全部明细
String tableThNames = "";
String fieldCns = "";
if(flag == 2){
tableThNames = "初审工号,初审姓名,初审日期,终审工号,终审姓名,终审日期,患者姓名,住院号,出院科室,出院日期,入院科室,入院日期,住院天数";
fieldCns = "checkDoctor,checkName,checkDatetime,checkedDoctor,checkedName,checkedDatetime,name,inpNo,deptName,dischargeDateTime,deptAdmissionTo,admissionDateTime,days";
}else{
//终审明细
tableThNames = "终审工号,终审姓名,终审日期,患者姓名,住院号,出院科室,出院日期,入院科室,入院日期,住院天数";
fieldCns = "checkedDoctor,checkedName,checkedDatetime,name,inpNo,deptName,dischargeDateTime,deptAdmissionTo,admissionDateTime,days";
}
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
disStartDate = null;
disEndDate = null;
archiveMasterVo.setStartDate(null);
archiveMasterVo.setEndDate(null);
}
List<Archive_Master_Vo> list = statisticsService.getDetailList(disStartDate, disEndDate, archiveMasterVo,flag,sql);
//文件名
String fileName = "病案室审核记录明细报表(" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ").xls";
//ExportExcelUtil
ExportExcelUtil1 exportExcelUtil = new ExportExcelUtil1();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames,fieldCns,list,fileName,response);
}
//复印记录报表
@RequestMapping("getPrintCount")
@ResponseBody
public OffsetLimitPage getPrintCount(Integer offset, Integer limit, TUuPrintSearch search){
if(null != offset && null != limit){
PageHelper.offsetPage(offset, limit);
}
List<TUuPrintVo> list = statisticsService.getPrintCount(search);
return new OffsetLimitPage((Page)list);
}
//复印记录明细
@RequestMapping("getPrintInfo")
@ResponseBody
public OffsetLimitPage getPrintInfo(Integer offset, Integer limit,TUuPrintSearch search){
if(null != offset && null != limit){
PageHelper.offsetPage(offset, limit);
}
List<TUuPrintVo> list = statisticsService.getPrintInfo(search);
return new OffsetLimitPage((Page)list);
}
//扫描记录报表
@RequestMapping("getScanCount")
@ResponseBody
public OffsetLimitPage getScanCount(Integer offset, Integer limit,TUuPrintSearch search){
if(null != offset && null != limit){
PageHelper.offsetPage(offset, limit);
}
List<TUuInfoVo> list = statisticsService.getScanCount(search);
return new OffsetLimitPage((Page)list);
}
//扫描记录明细
@RequestMapping("getScanInfo")
@ResponseBody
public OffsetLimitPage getScanInfo(Integer offset, Integer limit,TUuPrintSearch search){
if(null != offset && null != limit){
PageHelper.offsetPage(offset, limit);
}
List<TUuInfoVo> list = statisticsService.getScanInfo(search);
return new OffsetLimitPage((Page)list);
}
//导出复印记录报表
@RequestMapping("exportExcelPrintCount")
@ResponseBody
public void exportExcelPrintCount(HttpServletResponse response,TUuPrintSearch search) throws Exception{
//全部明细
String tableThNames = "记账号,住院号,住院次数,患者,复印日期,操作人,复印次数";
String fieldCns = "patientId,inpNo,visitId,hzname,printTime,cpyuser,printCount";
List<TUuPrintVo> list = statisticsService.getPrintCount(search);
//文件名
String fileName = "复印记录报表(" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ").xls";
//ExportExcelUtil
ExportExcelUtil1 exportExcelUtil = new ExportExcelUtil1();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames,fieldCns,list,fileName,response);
}
//导出复印记录明细
@RequestMapping("exportExcelPrintInfo")
@ResponseBody
public void exportExcelPrintInfo(HttpServletResponse response,TUuPrintSearch search) throws Exception{
//全部明细
String tableThNames = "记账号,住院号,住院次数,患者姓名,性别,入院时间,出院时间,出院科室,主管医生,复印内容,操作人,复印日期,修改标志";
String fieldCns = "patientId,inpNo,visitId,hzname,sex,admissionDateTime,dischargeDateTime,name,doctorInCharge,filetitle,cpyuser,printTime,flagCn";
List<TUuPrintVo> list = statisticsService.getPrintInfo(search);
//文件名
String fileName = "复印记录明细(" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ").xls";
//ExportExcelUtil
ExportExcelUtil1 exportExcelUtil = new ExportExcelUtil1();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames,fieldCns,list,fileName,response);
}
//导出扫描记录报表
@RequestMapping("exportExcelScanCount")
@ResponseBody
public void exportExcelScanCount(HttpServletResponse response,TUuPrintSearch search) throws Exception{
//全部明细
String tableThNames = "扫描人,扫描日期,扫描次数";
String fieldCns = "uuname,uploaddatetime,scanCount";
List<TUuInfoVo> list = statisticsService.getScanCount(search);
//文件名
String fileName = "扫描上传记录报表(" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ").xls";
//ExportExcelUtil
ExportExcelUtil1 exportExcelUtil = new ExportExcelUtil1();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames,fieldCns,list,fileName,response);
}
//导出扫描记录明细
@RequestMapping("exportExcelScanInfo")
@ResponseBody
public void exportExcelScanInfo(HttpServletResponse response,TUuPrintSearch search) throws Exception{
//全部明细
String tableThNames = "记账号,住院号,住院次数,患者姓名,性别,入院时间,出院时间,出院科室,主管医生,扫描人,扫描时间";
String fieldCns = "patientId,inpNo,visitId,hzname,sex,admissionDateTime,dischargeDateTime,doctorDept,doctorInCharge,uuname,uploaddatetime";
List<TUuInfoVo> list = statisticsService.getScanInfo(search);
//文件名
String fileName = "扫描上传记录明细(" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ").xls";
//ExportExcelUtil
ExportExcelUtil1 exportExcelUtil = new ExportExcelUtil1();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames,fieldCns,list,fileName,response);
}
}

@ -0,0 +1,118 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/10 17:09
* Description:
*/
package com.emr.controller;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
@Controller
@RequestMapping(value = "/Upload")
public class UploadFilesController {
private Logger logger = Logger.getLogger(UploadFilesController.class);
/**
* app
*
* @param
* @return
* @throws IOException
*/
@RequestMapping(value = "/uploadImg", method = RequestMethod.POST)
public void uploadImg(HttpServletResponse resp, HttpServletRequest request, @RequestParam(value = "file", required = false) MultipartFile file) throws IOException {
resp.setContentType("text/json");
resp.setCharacterEncoding("utf-8");
PrintWriter pw = null;
pw = resp.getWriter();
if (!file.isEmpty()) {
logger.info("成功获取照片");
String fileName = file.getOriginalFilename();
String path = null;
String type = null;
if (fileName != null) {
type = fileName.contains(".") ? fileName.substring(fileName.lastIndexOf(".") + 1) : null;
}
logger.info("图片初始名称为:" + fileName + " 类型为:" + type);
if (type != null) {
if ("PDF".equals(type.toUpperCase())) {
// 项目在容器中实际发布运行的根路径
String realPath = request.getSession().getServletContext().getRealPath("/");
// 自定义的文件名称
String trueFileName = System.currentTimeMillis() + fileName;
// 设置存放图片文件的路径
path = realPath + "/static/img/uploads/" + trueFileName;
logger.info("存放图片文件的路径:" + path);
file.transferTo(new File(path));
logger.info("文件成功上传到指定目录下");
} else {
logger.info("不是PDF文件类型,请按要求重新上传");
pw.print("文件类型有误,请重新上传");
}
} else {
logger.info("文件类型为空");
pw.print("文件类型为空");
}
} else {
logger.info("没有找到相对应的文件");
pw.print("没有找到相对应的文件");
}
pw.flush();
}
@ResponseBody
@RequestMapping("upload")
public String upload(HttpServletRequest request, @RequestParam(value = "file", required = false) MultipartFile file) throws IOException {
request.setCharacterEncoding("UTF-8");
logger.info("执行图片上传");
String userId = request.getParameter("userId");
logger.info("userId:" + userId);
if (!file.isEmpty()) {
logger.info("成功获取照片");
String fileName = file.getOriginalFilename();
String path = null;
String type = null;
if (fileName != null) {
type = fileName.contains(".") ? fileName.substring(fileName.lastIndexOf(".") + 1) : null;
}
logger.info("图片初始名称为:" + fileName + " 类型为:" + type);
if (type != null) {
if ("GIF".equals(type.toUpperCase()) || "PNG".equals(type.toUpperCase()) || "JPG".equals(type.toUpperCase())) {
// 项目在容器中实际发布运行的根路径
String realPath = request.getSession().getServletContext().getRealPath("/");
// 自定义的文件名称
String trueFileName = System.currentTimeMillis() + fileName;
// 设置存放图片文件的路径
path = realPath + "/uploads/" + trueFileName;
logger.info("存放图片文件的路径:" + path);
file.transferTo(new File(path));
logger.info("文件成功上传到指定目录下");
} else {
logger.info("不是我们想要的文件类型,请按要求重新上传");
return "error";
}
} else {
logger.info("文件类型为空");
return "error";
}
} else {
logger.info("没有找到相对应的文件");
return "error";
}
return "success";
}
}

@ -0,0 +1,57 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/8/22 13:49
* Description:
*/
package com.emr.controller;
import com.emr.entity.Power_User;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.cxf.endpoint.Client;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UrlInterceptor implements HandlerInterceptor {
@Value("${POWER_URLHEAD}")
private String POWER_URLHEAD;
@Value("${powerUrl}")
private String powerUrl;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o){
String url = request.getServletPath();
String token = (String) request.getSession().getAttribute("token");
if (!"/login".equals(url) && StringUtils.isNoneBlank(token)) {
try {
JAXDynamicClientFactory dcf = JAXDynamicClientFactory.newInstance();
Client client = dcf.createClient(POWER_URLHEAD + "/WebService/PowerWebService?wsdl");
Object[] objects = client.invoke("getInfosByUserId", token, "emr_medical_record");
ObjectMapper mapper = new ObjectMapper();
Power_User powerUser = mapper.readValue(objects[0].toString(), Power_User.class);
//设置进session
request.getSession().setAttribute("CURRENT_USER", powerUser);
if (null == powerUser.getUserId()) {
response.sendRedirect( "/emr_medical_record/error.jsp");
return false;
}
} catch (Exception e) {
try {
response.sendRedirect("/emr_medical_record/error.jsp");
}catch (Exception e1){}
e.printStackTrace();
return false;
}
}
return true;
}
}

@ -0,0 +1,248 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 14:39
* Description:
*/
package com.emr.controller;
import com.emr.dao.Archive_MasterMapper;
import com.emr.entity.*;
import com.emr.service.*;
import com.emr.util.ExportExcelUtil;
import com.emr.util.ExportExcelUtil1;
import com.emr.vo.DeptStatistics;
import com.emr.vo.DoctorStatistics;
import com.emr.vo.V_CountVo;
import org.apache.shiro.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.*;
@Controller
@RequestMapping("vCount")
public class VCountController {
@Autowired
private V_CountService v_countService;
@Autowired
private Archive_MasterService archiveMasterService;
@Autowired
private Emr_DictionaryService emrDictionaryService;
@Autowired
private Archive_MasterMapper archiveMasterMapper;
@RequestMapping(value = "/vCounts")
public String faults(){
return "vCountDir/vCountList";
}
@ResponseBody
@RequestMapping(value = "/vCountList")
public OffsetLimitPage faultList(V_CountVo vCount, Integer offset, Integer limit) {
return v_countService.selectPageByClo(vCount,offset, limit);
}
@ResponseBody
@RequestMapping(value = "/vCountNumList")
public List<V_Count> medicalCountDayList(V_CountVo vCount){
//统计列表
return v_countService.selectByCol(vCount);
}
@ResponseBody
@RequestMapping(value = "/exportExcel")
public void exportExcel(HttpServletResponse response, V_CountVo vCount) throws Exception {
String tableThNames = "科室代码,科室名称,出院人数,已归档,未归档,死亡人数,归档率(%),2日率(%),3日率(%),7日率(%)";
String fieldCns = "deptCode,deptName,outNum,fileNum,unfileNum,deathNum,fileRate,day2Rate,day3Rate,day7Rate";
//构造excel的数据
List<V_Count> list = v_countService.selectByCol(vCount);
if(null != list && !list.isEmpty()){
for (V_Count count : list) {
Double fileRate = Double.valueOf(count.getFileRate())*100;
Double day2Rate = Double.valueOf(count.getDay2Rate())*100;
Double day3Rate = Double.valueOf(count.getDay3Rate())*100;
Double day7Rate = Double.valueOf(count.getDay7Rate())*100;
count.setFileRate(fileRate.intValue()+"%");
count.setDay2Rate(day2Rate.intValue()+"%");
count.setDay3Rate(day3Rate.intValue()+"%");
count.setDay7Rate(day7Rate.intValue()+"%");
}
}
//文件名
String fileName = "统计数据" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ".xls";
//ExportExcelUtil
ExportExcelUtil1 exportExcelUtil = new ExportExcelUtil1();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response);
}
@ResponseBody
@RequestMapping(value = "/exportExcel2")
public void exportExcel(HttpServletResponse response, Archive_Master_Vo archiveMasterVo) throws Exception {
String tableThNames = "名字,入院科室,入院日期,出院科室,出院日期,主管医生";
String fieldCns = "name,deptAdmissionTo,admissionDateTime,deptName,dischargeDateTime,doctorInCharge";
//构造excel的数据
List<Archive_Master_Vo> list = archiveMasterService.selectByUnfile(archiveMasterVo);
Emr_Dictionary dic = new Emr_Dictionary();
dic.setEffective(1);
dic.setTypecode("dept_code");
//科室列表
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
for (int i = 0; i < list.size(); i++) {
//替换科室
for (int k = 0; k < dicList.size(); k++) {
String deptName = list.get(i).getDeptName();
//入院科室dept_admission_to
String dept2 = list.get(i).getDeptAdmissionTo();
if ((deptName != null && deptName.equals(dicList.get(k).getCode())) || (dept2 != null && dept2.equals(dicList.get(k).getCode()))) {
//出院科室
if(deptName != null) {
deptName = deptName.replace(deptName, dicList.get(k).getName());
list.get(i).setDeptName(deptName);
}
dept2 = dept2.replace(dept2, dicList.get(k).getName());
list.get(i).setDeptAdmissionTo(dept2);
}
}
}
//文件名
String fileName = "未归档病历列表" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
//ExportExcelUtil
ExportExcelUtil exportExcelUtil = new ExportExcelUtil();
response.setContentType("application/ms-excel;charset=gbk");
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response);
}
//跳转医生统计页面
@RequestMapping("/doctorFileList")
public String doctorFileList(){
return "vCountDir/doctorFileList";
}
//加载医生统计表格iframe
@RequestMapping("/getDoctorFileInfoIframe")
public String getDoctorFileInfoIframe(String deptCode,String doctor,String startTime,String endTime,Model model){
//科室医师明细
List<DoctorStatistics> list = archiveMasterMapper.getDoctorFileInfo(deptCode, doctor, startTime, endTime);
//定义返回结果
List<DeptStatistics> deptList = new ArrayList<>();
if(null != list && !list.isEmpty()){
//定义科室集合
Map<String,String> deptMap = new LinkedHashMap<>();
for (DoctorStatistics info:list) {
deptMap.put(info.getDeptName(),info.getDeptName());
}
if(!CollectionUtils.isEmpty(deptMap)){
for(Map.Entry<String,String> dept:deptMap.entrySet()){
DeptStatistics deptStatistics = new DeptStatistics();
//设置科室总住院天数
int deptAdmissDay = 0;
//设置科室总逾期天数
int deptOverDays = 0;
//设置科室总份数
int deptCount = 0;
//设置科室总逾期份数
int deptOverCount = 0;
//定义科室结合
List<DoctorStatistics> deptDoctorList = new ArrayList<>();
//定义不重复医生集合
Map<String,String> doctorMap = new LinkedHashMap<>();
for (DoctorStatistics info:list) {
if(dept.getKey().equals(info.getDeptName())){
//统计住院总天数
deptAdmissDay += info.getAdmissDays();
//统计逾期天数
deptOverDays += info.getOverDays();
//统计总份数
deptCount++;
//统计总逾期份数
if(info.getOverDays() > 0){
deptOverCount++;
}
deptDoctorList.add(info);
doctorMap.put(info.getDoctor(),info.getDoctor());
}
}
//定义医生集合
List<DoctorStatistics> doctorList = new ArrayList<>();
//组织统计医生归档情况
if(!CollectionUtils.isEmpty(deptDoctorList)){
if(!CollectionUtils.isEmpty(doctorMap)){
for(Map.Entry<String,String> doctorKey:doctorMap.entrySet()){
DoctorStatistics doctorStatistics = new DoctorStatistics();
String deptName = "";
//设置总住院天数
int admissDay = 0;
//设置总逾期天数
int overDays = 0;
//设置总份数
int count = 0;
//设置总逾期份数
int overCount = 0;
for (DoctorStatistics info:list) {
if (doctorKey.getKey().equals(info.getDoctor())) {
deptName = info.getDeptName();
//统计总天数
admissDay += info.getAdmissDays();
//统计逾期天数
overDays += info.getOverDays();
//统计总份数
count++;
//统计总逾期份数
if(info.getOverDays() > 0){
overCount++;
}
}
}
//设置科室名称
doctorStatistics.setDeptName(deptName);
//设置医生名称
doctorStatistics.setDoctor(doctorKey.getKey());
//设置总住院天数
doctorStatistics.setAdmissDays(admissDay);
//设置总逾期天数
doctorStatistics.setOverDays(overDays);
//设置总份数
doctorStatistics.setRecordCount(count);
//设置总逾期份数
doctorStatistics.setRecordOverCount(overCount);
doctorList.add(doctorStatistics);
}
}
}
//设置科室名
deptStatistics.setDeptName(dept.getValue());
//设置科室总住院天数
deptStatistics.setDeptAdmissDay(deptAdmissDay);
//设置科室总逾期天数
deptStatistics.setDeptOverDays(deptOverDays);
//设置科室总份数
deptStatistics.setDeptCount(deptCount);
//设置科室总逾期份数
deptStatistics.setDeptOverCount(deptOverCount);
//设置医生集合
deptStatistics.setDoctorData(doctorList);
deptList.add(deptStatistics);
}
}
}
model.addAttribute("deptList",deptList);
return "vCountDir/doctorFileListIframe";
}
}

@ -0,0 +1,279 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 14:38
* Description:
*/
package com.emr.controller;
import com.emr.dao.ArchiveFlowRoleMapper;
import com.emr.entity.ArchiveFlowRole;
import com.emr.entity.Archive_Master;
import com.emr.entity.Archive_Master_Vo;
import com.emr.entity.OffsetLimitPage;
import com.emr.service.Archive_MasterService;
import com.emr.service.ipml.ArchiveFlowInfoService;
import com.emr.util.ExportExcelUtil;
import com.emr.util.Msg;
import com.emr.util.OracleConnect;
import com.emr.vo.ArchiveFlowInfoVo;
import org.apache.commons.lang3.StringUtils;
import org.apache.cxf.endpoint.Client;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/beHosp")
public class beHospitaledController {
@Autowired
private Archive_MasterService archiveMasterService;
@Value("${HomepageDictionary}")
private String HomepageDictionary;
@Value("${HomepageMethod}")
private String HomepageMethod;
@Autowired
private ArchiveFlowRoleMapper flowRoleMapper;
@Autowired
private ArchiveFlowInfoService flowInfoService;
@RequestMapping(value = "/beHosps")
public String inHospitals(){
return "beHospitaledDir/beHospList";
}
@RequestMapping("getChecker")
@ResponseBody
public Msg getChecker(){
Msg role = archiveMasterService.getRole();
return Msg.success().add("checker",role.getCode());
}
/**
* code
* @return
*/
@RequestMapping("/getCurrentCodes")
@ResponseBody
public Msg getCurrentCodes(){
String result = "";
Integer roleIndex = 0;
Msg role = new Msg();
role = archiveMasterService.getRole();
String currentCodes = role.getMsg();
if(StringUtils.isNotBlank(currentCodes)){
//查询集合
//查询审核角色集合根据有效进行计算状态code
List<ArchiveFlowRole> archiveFlowRoles = flowRoleMapper.selectAll();
//code转成id
String[] codes = currentCodes.split(",");
for(String code : codes){
if(StringUtils.isNotBlank(code)) {
for (ArchiveFlowRole flowRole : archiveFlowRoles) {
if (StringUtils.isNotBlank(flowRole.getCode()) && code.equals(flowRole.getCode())) {
result += flowRole.getId() + ",";
roleIndex = flowRole.getStepIndex();
break;
}
}
}
}
if(result.endsWith(",")){
result = result.substring(0,result.length()-1);
role.setMsg(result);
}
}
role.setCode(roleIndex);
return role;
}
@ResponseBody
@RequestMapping(value = "/beHospList")
public OffsetLimitPage beHospList(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit,Integer isSearch) {
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
archiveMasterVo.setStartDateTo(null);
archiveMasterVo.setEndDateTo(null);
}
return archiveMasterService.selectByColumn(archiveMasterVo, offset, limit);
}
@ResponseBody
@RequestMapping(value = "/exportExcel")
public void exportExcel(HttpServletResponse response, Archive_Master_Vo archiveMasterVo,Integer isSearch) throws Exception {
String tableThNames = "住院号,住院次数,名字,性别,出院科室,出院日期,主管医生,状态";
String fieldCns = "inpNo,visitId,name,sex,deptName,dischargeDateTime,doctorInCharge,status";
//构造excel的数据
if(isSearch == 0){
archiveMasterVo.setStartDateTo(null);
archiveMasterVo.setEndDateTo(null);
}
List<Archive_Master_Vo> list = archiveMasterService.selectByColumn(archiveMasterVo);
//文件名
String fileName = "出院浏览" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
//ExportExcelUtil
ExportExcelUtil exportExcelUtil = new ExportExcelUtil();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames,fieldCns,list,fileName,response);
}
/**
*
* @param master
* @return
*/
@ResponseBody
@RequestMapping(value = "/updateStateByArchivId")
public Msg updateStateByArchivId(HttpServletRequest request,Archive_Master_Vo master) throws Exception{
boolean flag = FormTokenFlagUtil.isFlag(request);
if (!flag) {
return Msg.fail("请不要重复提交!");
}
return archiveMasterService.updateStateByArchivId(master);
}
/*
@ResponseBody
@RequestMapping(value = "/updateStateByArchivId")
public String updateStateByArchivId(Emr_Fault_Detail emrFaultDetail) {
String result = "";
try{
//result = checkSuccessMethod(emrFaultDetail.getArchiveDetailId());
// 从session获取用户名
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
String username = (String) session.getAttribute("userSession");//获取前面登录的用户名
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(result.equals("完整")) {
//修改病案归档状态
Archive_Master archiveMaster = new Archive_Master();
archiveMaster.setId(emrFaultDetail.getArchiveDetailId());
archiveMaster.setArchivestate(emrFaultDetail.getState());
//设置审核时间
archiveMaster.setCheckDatetime(format1.format(new Date()));
//设置审核人
archiveMaster.setCheckDoctor(username);
archiveMaster.setLockinfo(result);
int bol = archiveMasterService.updateByClo(archiveMaster);
//添加初审内容
if (bol == 1) {
String nowTime = format1.format(new Date());
//参数输入
emrFaultDetail.setCreater(username);
emrFaultDetail.setCreateTime(nowTime);
emrFaultDetail.setState("未召回");
bol = emrFaultDetailService.insertSel(emrFaultDetail);
}
}else{
//修改病案归档完整内容Lockinfo
Archive_Master archiveMaster = new Archive_Master();
archiveMaster.setId(emrFaultDetail.getArchiveDetailId());
//设置审核时间
archiveMaster.setCheckDatetime(format1.format(new Date()));
//设置审核人
archiveMaster.setCheckDoctor(username);
archiveMaster.setLockinfo(result);
archiveMasterService.updateByClo(archiveMaster);
}
return result;
}catch (Exception e){
e.printStackTrace();
}
return result;
}
*/
//校验完整性方法
//校验完整性
@ResponseBody
@RequestMapping(value = "/checkSuccess")
private String checkSuccessMethod(String archiveDetailId) throws Exception{
String result = "";
String endpoint = HomepageDictionary;
//String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl";
String method = HomepageMethod;
JAXDynamicClientFactory factory = JAXDynamicClientFactory.newInstance();
Client client = factory.createClient(endpoint);
Object[] res = null;
res = client.invoke(method, archiveDetailId);
result = (String) res[0];
//更新master表完整性字段
if(StringUtils.isNotBlank(result)){
//更新表
Archive_Master master = new Archive_Master();
master.setId(archiveDetailId);
master.setLockinfo(result);
archiveMasterService.updateByClo(master);
}
return result;
}
/*@ResponseBody
@RequestMapping(value = "/forceWZ")
public String forceWZ(Emr_Fault_Detail emrFaultDetail) {
//修改病案归档状态
Archive_Master archiveMaster = new Archive_Master();
archiveMaster.setId(emrFaultDetail.getArchiveDetailId());
archiveMaster.setArchivestate("初审");
archiveMaster.setLockinfo(emrFaultDetail.getContent());
try{
int bol = archiveMasterService.updateByClo(archiveMaster);
// 从session获取用户名
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
String username = (String) session.getAttribute("userSession");//获取前面登录的用户名
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = format1.format(new Date());
//参数输入
emrFaultDetail.setCreater(username);
emrFaultDetail.setCreateTime(nowTime);
emrFaultDetail.setState("未召回");
bol = emrFaultDetailService.insertSel(emrFaultDetail);
}catch (Exception e){
e.printStackTrace();
}
return "1";
}*/
//出院初审先查询his是否医生护士全部提交
@RequestMapping("getInfoFromHis")
@ResponseBody
//@DataSource(dataSource = "dataSource1")
public int getInfoFromHis(String patientId) throws Exception{
String sql = "select fpatno from pacs.v_emrpatient where fpatno = '"+patientId+"'";
String str = OracleConnect.select(sql);
if(StringUtils.isNoneBlank(str)){
return 1;
}else{
return 0;
}
}
/**
*
* @param master
* @param model
* @return
*/
@RequestMapping("toShowFlowInfo")
private String toShowFlowInfo(Archive_Master_Vo master,Model model){
model.addAttribute("master",master);
//查询流程信息集合
List<ArchiveFlowInfoVo> list = flowInfoService.selectFlowInfoByMasterId(master.getId());
model.addAttribute("list",list);
return "beHospitaledDir/timeLine";
}
}

@ -0,0 +1,64 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 14:39
* Description:
*/
package com.emr.controller;
import com.emr.entity.*;
import com.emr.service.Emr_Fault_DetailService;
import com.emr.util.ExportExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("fault")
public class faultController {
@Autowired
private Emr_Fault_DetailService emrFaultDetailService;
@RequestMapping(value = "/faults")
public String faults(){
return "faultDir/faultList";
}
@ResponseBody
@RequestMapping(value = "/faultList")
public OffsetLimitPage faultList(Integer isSearch, Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) {
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
emrFaultVo.setStartDate(null);
emrFaultVo.setEndDate(null);
}
return emrFaultDetailService.selectByCol(emrFaultVo,offset, limit);
}
@ResponseBody
@RequestMapping(value = "/exportExcel")
public void exportExcel(HttpServletResponse response, Emr_Fault_Vo emrFaultVo,Integer isSearch) throws Exception{
String tableThNames = "住院号,住院次数,姓名,出院科室,出院日期,归档状态,评分,回退内容,缺陷选项,缺陷内容,创建时间,创建人";
String fieldCns = "inpNo,visitId,name,deptName,dischargeDateTime,archivestate,score,backContent,assortId,content,createTime,creater";
//构造excel的数据
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
emrFaultVo.setStartDate(null);
emrFaultVo.setEndDate(null);
}
List<Emr_Fault_Vo> list = emrFaultDetailService.selectByCol(emrFaultVo);
//文件名
String fileName = "缺陷信息数据" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
//ExportExcelUtil
ExportExcelUtil exportExcelUtil = new ExportExcelUtil();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response);
}
}

@ -0,0 +1,66 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:32
* Description:
*/
package com.emr.controller;
import com.emr.entity.Emr_Fault_Type;
import com.emr.service.Emr_Fault_TypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
@RequestMapping("/faultType")
public class faultTypeController {
@Autowired
private Emr_Fault_TypeService emrFaultTypeService;
@RequestMapping(value = "/faultTypes")
public String faultTypes() {
return "faultTypeDir/faultTypeList";
}
@ResponseBody
@RequestMapping(value = "/faultTypeList")
public List<Emr_Fault_Type> faultTypeList(Emr_Fault_Type emrFaultType) {
return emrFaultTypeService.selectByCol(emrFaultType);
}
@ResponseBody
@RequestMapping(value = "/updateByClo")
public int updateByClo(Emr_Fault_Type emrFaultType) {
int bol=0;
//判断id是否存在
if(emrFaultType.getId()!=null){
//判断是否存在记录
if (emrFaultTypeService.selectById(emrFaultType.getId()) != null) {
bol = emrFaultTypeService.updateByClo(emrFaultType);
}
}else{
//不存在则添加缺陷类别记录
bol= emrFaultTypeService.insertClo(emrFaultType);
}
return bol;
}
@ResponseBody
@RequestMapping(value = "/delById")
public int delById(Integer id) {
int bol = 0;
//判断id是否存在
if (id!= null) {
//判断是否存在记录
bol = emrFaultTypeService.delById(id);
}
return bol;
}
}

@ -0,0 +1,898 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 14:39
* Description:
*/
package com.emr.controller;
import com.emr.entity.*;
import com.emr.service.Archive_DetailService;
import com.emr.service.Archive_MasterService;
import com.emr.service.Emr_DictionaryService;
import com.emr.service.Emr_PictureService;
import com.emr.service.ipml.ZdAssortService;
import com.emr.util.ExportExcelUtil;
import com.emr.util.Jpg2PdfUtil;
import com.emr.util.PrintToPdfUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/inHosp")
public class inHospitalController {
//private Logger logger = Logger.getLogger(inHospitalController.class);
@Value("${pdfWater}")
private String pdfWater;
@Value("${nurseAssortIds}")
private String NURSEASSORTIDS;
@Autowired
private Archive_MasterService archiveMasterService;
@Autowired
private Emr_DictionaryService emrDictionaryService;
@Autowired
private Archive_DetailService archiveDetailService;
@Autowired
private Emr_PictureService emrPictureService;
@Autowired
private ZdAssortService zdAssortService;
@Value("${pictureUrl}")
private String pictureUrl;
@Value("${picSrc}")
private String picSrc;
@RequestMapping(value = "/inHospitals")
public String inHospitals() {
return "inHospitalDir/inHositalList";
}
@ResponseBody
@RequestMapping(value = "/inHospitalList")
public OffsetLimitPage inHospitalList(Integer isSearch, Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) {
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
archiveMasterVo.setStartDateTo(null);
archiveMasterVo.setEndDateTo(null);
}
return archiveMasterService.selectByCol(archiveMasterVo, offset, limit);
}
@ResponseBody
@RequestMapping(value = "/exportExcel")
public void exportExcel(HttpServletResponse response, Archive_Master_Vo archiveMasterVo,Integer isSearch) throws Exception {
String tableThNames = "住院号,住院次数,姓名,性别,入院科室,入院日期,主管医生,状态";
String fieldCns = "inpNo,visitId,name,sex,deptAdmissionTo,admissionDateTime,doctorInCharge,archivestate";
//构造excel的数据
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
archiveMasterVo.setStartDateTo(null);
archiveMasterVo.setEndDateTo(null);
}
List<Archive_Master> list = archiveMasterService.selectByCol(archiveMasterVo);
//文件名
String fileName = "在院浏览" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
//ExportExcelUtil
ExportExcelUtil exportExcelUtil = new ExportExcelUtil();
response.setContentType("application/ms-excel;charset=gbk");
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response);
}
@ResponseBody
@RequestMapping(value = "/getDept")
public List<Emr_Dictionary> getDept(Emr_Dictionary emrDictionary){
emrDictionary.setEffective(1);
emrDictionary.setTypecode("dept_code");
return emrDictionaryService.dicByTypeCode(emrDictionary);
}
@ResponseBody
@RequestMapping(value = "/getAssort")
public List<Archive_Detail_Vo> getAssort(Archive_Detail_Vo archiveDetailVo){
//分段列表
//checker 当前角色为护士2从配置的护士分类查询
Integer checker = archiveDetailVo.getChecker();
if(null != checker && checker == 2){
archiveDetailVo.setAssortid(NURSEASSORTIDS);
}
return archiveDetailService.selectByClo(archiveDetailVo);
}
@ResponseBody
@RequestMapping(value = "/getZdAssort")
public List<Zd_Assort> getZdAssort(){
//分段列表
Zd_Assort assort = new Zd_Assort();
assort.setPrintFlag("0");
return zdAssortService.selectAll(assort);
}
@ResponseBody
@RequestMapping(value = "/getAssortdetail")
public OffsetLimitPage getAssortdetail(Archive_Detail_Vo archiveDetailVo, Integer offset, Integer limit){
//分段详情列表分页
Integer checker = archiveDetailVo.getChecker();
if(null != checker && checker == 2){
archiveDetailVo.setAssortName(NURSEASSORTIDS);
}
return archiveDetailService.detailByClo(archiveDetailVo, offset, limit);
}
@ResponseBody
@RequestMapping(value = "/updateState")
public int updateState(HttpServletRequest request,HttpServletResponse response, Archive_Detail archiveDetail) throws Exception{
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
archiveDetail.setFlag("1");
//修改状态分段信息
return archiveDetailService.updateCloById(archiveDetail);
}
@ResponseBody
@RequestMapping(value = "/updateStateAll")
public int updateStateAll(HttpServletRequest request,HttpServletResponse response, Archive_Detail archiveDetail) throws Exception {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
int bol=0;
String idStr=archiveDetail.getId();
if(idStr.length()>0){
String[] idArr = idStr.split(",");
//archiveDetail.setFlag("1");
for(int i=0;i<idArr.length;i++){
archiveDetail.setId(idArr[i]);
//修改状态分段信息
bol=archiveDetailService.updateCloById(archiveDetail);
}
}
return bol;
}
@ResponseBody
@RequestMapping(value = "/saveInfo")
public String saveInfo(HttpServletRequest request,HttpServletResponse response, Archive_Detail archiveDetail) throws Exception {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String result="";
//判断id是否为空
if(archiveDetail.getId()==null || archiveDetail.getId()==""){
//生成id
//插入记录
int bol= archiveDetailService.insertSel(archiveDetail);
if(1==bol){
result="添加成功!";
}else{
result = "添加失败!";
}
}else{
//根据id查找是否存在记录
Archive_Detail entity= archiveDetailService.selectByid(archiveDetail.getId());
if(entity!=null){
//修改记录
int bol = archiveDetailService.updateCloById(archiveDetail);
if (1 == bol) {
result = "修改成功!";
} else {
result = "修改失败!";
}
} else {
result = "该记录不存在!";
}
}
return result;
}
/**
* idPDFpdf
*
* @param response
* @param imgStr
* @param masterId
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/getPdfToPdf/{masterId}/{imgStr}")
public void getPdfToPdf(HttpServletResponse response,@PathVariable("imgStr") String imgStr, @PathVariable("masterId") String masterId){
archiveDetailService.getPdfToPdf(response,imgStr, masterId,pdfWater);
}
/*
@ResponseBody
@RequestMapping(value = "/getPdfToPdf")
public String getPdfToPdf(HttpServletResponse response, HttpServletRequest request, String imgStr, String masterId) throws Exception {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String result = "";
// 项目在容器中实际发布运行的根路径
String realPath = request.getSession().getServletContext().getRealPath("/");
realPath = realPath.split("target")[0] + pictureUrl+"\\static\\img\\";
//pdf名称
String pdfFileName = String.valueOf(System.currentTimeMillis());
//病案号文件夹
if (masterId != "" && masterId != null) {
//判断文件夹是否存在
File fileDic = new File(realPath + masterId + "\\");
if (!fileDic.exists() && !fileDic.isDirectory()) {
fileDic.mkdirs();
}
//病案号/类别/id文件夹(图片路径下的子文件夹名称)
//生成pdf(图片路径pdf生成路径图片路径文件夹列表)
List imgList = new ArrayList();
if (imgStr != "" && imgStr != null) {
String[] imgArr = imgStr.split(",");
if (imgArr.length > 0) {
for (int i = 0; i < imgArr.length; i++) {
imgList.add(imgArr[i]);
}
}
}
// if(imgList.size()==1){
// result= masterId.trim() + "/"+ imgList.get(0) +"/"+ imgList.get(0)+".pdf";
// }else{
String pdfPath = realPath+"pdfFiles\\" + "typesPdf\\"+ pdfFileName + ".pdf";
String imgPath= realPath + "pdfFiles\\"+masterId.trim()+"\\";
//获取废除的pdf文件名列表archive_detail
List pdfList=new ArrayList();
Archive_Detail archiveDetail = new Archive_Detail();
archiveDetail.setFlag("0");
archiveDetail.setMasterid(masterId.trim());
archiveDetail.setTitle(imgStr);
List<Archive_Detail> arList=archiveDetailService.selectByCol(archiveDetail);
if(arList!=null) {
for (int m = 0; m < arList.size(); m++) {
String str = arList.get(m).getPdfPath();
if (str.indexOf("..\\static\\img\\pdfFiles\\") != -1) {
str = str.split("pdfFiles")[1];
str = realPath + "pdfFiles" + str;
}
// str= str.substring(str.lastIndexOf("\\") + 1);
pdfList.add(str);
}
}
//PrintToPdfUtil.pdtToPdf(imgPath,pdfPath, imgList,pdfList);
PDFUtils.getPdf(pdfPath, pdfList);
result = "typesPdf/"+pdfFileName + ".pdf";
// }
} else {
result = "a000000.pdf";
}
return result;
}
*/
/**
* idPDFpdf
* @param response
* @param request
* @param imgStr
* @param masterId
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/getPdf")
public String getPdf(HttpServletResponse response, HttpServletRequest request,String imgStr, String masterId) throws Exception {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String result="";
// 项目在容器中实际发布运行的根路径
String realPath = request.getSession().getServletContext().getRealPath("/");
//pdf名称
String pdfFile = String.valueOf(System.currentTimeMillis());
String pdfPath = pictureUrl + "\\" + pdfFile + ".pdf";
//病案号文件夹
if(StringUtils.isNotBlank(masterId)){
realPath = realPath+ masterId+"\\";
//判断文件夹是否存在
File fileDic = new File(realPath );
if (!fileDic.exists() && !fileDic.isDirectory()) {
fileDic.mkdirs();
}
//病案号/类别/id文件夹(图片路径下的子文件夹名称)
//生成pdf(图片路径pdf生成路径图片路径文件夹列表)
List imgList=new ArrayList();
if(StringUtils.isNotBlank(imgStr)) {
String[] imgArr = imgStr.split(",");
if (imgArr.length > 0) {
for (int i = 0; i < imgArr.length; i++) {
imgList.add(imgArr[i]);
}
}
}
//imgList.add(imgStr.split())imgStr.split(","));
PrintToPdfUtil.toPdf(realPath, pdfPath, imgList);
result= pdfFile + ".pdf";
}else{
result="a000000.pdf";
}
return result;
}
/**
* idPDFpdf
*
* @param response
* @param request
* @param idStr *
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/getPdfById/{idStr}")
public void getPdfById(HttpServletResponse response, HttpServletRequest request, @PathVariable("idStr") String idStr) throws Exception {
Archive_Detail detail=new Archive_Detail();
detail.setTitle(idStr);
//根据所有id获取PDF列表
List<Archive_Detail> arList = archiveDetailService.selectByIdStr(detail);
//获取废除的pdf文件名列表archive_detail
List pdfList = new ArrayList();
//将所有记录的pdf数组里面\static\img\pdfFiles\typesPdf
if(arList!=null && arList.size()>0){
for(int m=0;m<arList.size();m++){
String str = arList.get(m).getPdfPath();
if(StringUtils.isNotBlank(str)){
pdfList.add(str);
}
}
//对所有地址的pdf进行合成
Jpg2PdfUtil.mulFile2One(response,pdfList,pdfWater);
}
}
/*
@ResponseBody
@RequestMapping(value = "/getPdfById")
public String getPdfById(HttpServletResponse response, HttpServletRequest request, @Param("id") String idStr) throws Exception {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String result = "";
// 项目在容器中实际发布运行的根路径
String realPath = request.getSession().getServletContext().getRealPath("/");
realPath = realPath.split("target")[0] + pictureUrl + "\\static\\img\\";
//pdf名称
String pdfFile = String.valueOf(System.currentTimeMillis());
String pdfPath = realPath + "pdfFiles\\typesPdf\\" + pdfFile + ".pdf";
Archive_Detail detail=new Archive_Detail();
detail.setTitle(idStr);
//根据所有id获取PDF列表
List<Archive_Detail> arList = archiveDetailService.selectByIdStr(detail);
//获取废除的pdf文件名列表archive_detail
List pdfList = new ArrayList();
//将所有记录的pdf数组里面\static\img\pdfFiles\typesPdf
if(arList!=null && arList.size()>0){
for(int m=0;m<arList.size();m++){
String str = arList.get(m).getPdfPath();
if(str.indexOf("..\\static\\img\\pdfFiles\\") != -1) {
str = str.split("pdfFiles")[1];
str = realPath + "pdfFiles" + str;
}
pdfList.add(str);
}
//对所有地址的pdf进行合成
PrintToPdfUtil.mergePdfFiles(pdfList, pdfPath);
result = pdfFile + ".pdf";
}else{
result="";
}
return result;
}
*/
@ResponseBody
@RequestMapping(value = "/delPdf")
public String delPdf(HttpServletResponse response, HttpServletRequest request,String pdfName) throws Exception {
String msg = "";
// 项目在容器中实际发布运行的根路径
String realPath= pictureUrl + "\\" + pdfName + ".pdf";
//将之前文件删除
File file1 = new File(realPath);
if (file1.exists() && file1.isFile()) {
file1.delete();
msg="删除成功";
}
return msg;
}
@ResponseBody
@RequestMapping(value = "/delImg")
public String delImg(HttpServletResponse response, HttpServletRequest request,Emr_Picture emrPicture) throws Exception {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String msg = "";
int bol =0;
String id = emrPicture.getId();
if (StringUtils.isNotBlank(id) && !"-1".equals(id)) {
//判断记录是否存在
Emr_Picture entity=emrPictureService.selectByid(emrPicture.getId());
if(entity!=null){
String realPath = request.getSession().getServletContext().getRealPath("/");
realPath = realPath.split("target")[0] + pictureUrl;
String imgPath=entity.getMaxPicture().replace("..",realPath);
//将之前图片文件删除
File file1 = new File(imgPath);
if (file1.exists() && file1.isFile()) {
file1.delete();
// 设置存放图片文件的路径
String path2 = "\\static\\img\\uploads\\";
//病案号
if (entity.getRelationId() != null && entity.getRelationId() != "") {
path2 = path2 + entity.getRelationId() + "\\";
}
//类型
if (entity.getAssortId() != null && entity.getAssortId() != "") {
path2 = path2 + entity.getAssortId() + "\\";
}
String pdfPath= pictureUrl + "\\pdfFiles\\" + entity.getRelationId() + "\\" + entity.getAssortId()+"\\"+ entity.getAssortId() + ".pdf";
//将之前文件删除
File file = new File(pdfPath);
if (file1.exists() && file1.isFile()) {
file1.delete();
}
//重新生成pdf
//读取指定路径下的文件名和目录名
List arr = new ArrayList();
//arr.add(pathType);
//图片转PDF(病案号文件夹+类别文件夹)
PrintToPdfUtil.toPdf(realPath + path2 , pdfPath , arr);
}
//存在删除
bol = emrPictureService.deleteById(emrPicture.getId());
}
}
if(bol==1) {
msg = "删除成功!";
}else{
msg = "删除失败!";
}
return msg;
}
/**
*
* @param response
* @param
* @param emrPicture
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/getPicList")
public List<Emr_Picture> getPicList(HttpServletResponse response, Emr_Picture emrPicture){
return emrPictureService.selectByClo(emrPicture);
}
/**
*
*
* @param resp
* @param request
* @param
* @return
* @throws IOException
*/
@ResponseBody
@RequestMapping(value = "/uploadImgS", method = RequestMethod.POST)
public String uploadImgS(HttpServletResponse resp, HttpServletRequest request, @RequestParam MultipartFile[] imgs) throws Exception {
resp.setContentType("text/json");
resp.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
String firstFile =request.getParameter("fileName");
String list = request.getParameter("list");
String masterId = request.getParameter("masterID");
int t = 0;
JSONArray fileObj = JSONArray.fromObject(list);
String result = "";
if (StringUtils.isNotBlank(masterId)) {
// 项目在容器中实际发布运行的根路径
// 设置存放图片文件的路径
String path2 = "img\\";
//病案号
if (StringUtils.isNotBlank(masterId)) {
path2 += masterId + "\\";
}
// 从session获取用户名
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
String username = (String) session.getAttribute("userSession");//获取前面登录的用户名
//类循环
if (fileObj != null && fileObj.size() > 0) {
for (int x = 0; x < fileObj.size(); x++) {
JSONObject obj = fileObj.getJSONObject(x);
//类别
String pathType = "";
if (obj.get("selectVal") != null && obj.get("selectVal") != "") {
pathType = obj.get("selectVal") + "\\";
//判断文件夹是否存在
File fileDic = new File(pictureUrl+path2 + pathType);
if (!fileDic.exists() && !fileDic.isDirectory()) {
fileDic.mkdirs();
}
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = format1.format(new Date());
//创建时间id
String idTime = String.valueOf(System.currentTimeMillis());
String trueFileName ="";
//将其路径及文件名类型以及参数保存图片相关信息到分段详细表
Emr_Picture entity = new Emr_Picture();
entity.setRelationId(masterId);
entity.setAssortId(obj.get("selectVal").toString());
entity.setUpdateTime(nowTime);
entity.setUpdater(username);
int bol = 0;
String id= obj.get("id").toString();
if (StringUtils.isNotBlank(id) && !"-1".equals(id)) {
Emr_Picture picList = emrPictureService.selectByid(id);
//判断记录是否已经存在
if (picList!=null) {
entity.setId(id);
//图片是否有改动有改动则删除之前重新上传
if(!picList.getAssortId().equals(entity.getAssortId()) || !picList.getRelationId().equals(entity.getRelationId())){
if(!picList.getMaxPicture().contains(path2 + pathType)){
// 移动图片
String startPath= picList.getMaxPicture();
startPath = startPath.substring(startPath.indexOf("\\"), startPath.length());
String endPath= pictureUrl + path2 + pathType;
PrintToPdfUtil.moveTotherFolders(pictureUrl + startPath, endPath);
String[] oldName= picList.getMaxPicture().split("\\\\");
//新的图片地址
entity.setMaxPicture(picSrc + path2 + pathType + oldName[oldName.length - 1]);
}
//被修改的类别重新生成pdf查询出pdf记录
//根据病案号和类别查询是否存在
Archive_Detail detail = new Archive_Detail();
detail.setMasterid(masterId);
detail.setAssortid(picList.getAssortId());
List<Archive_Detail> detailList = archiveDetailService.selectByColm(detail);
//判断pdf是否存在将之前文件删除
File file1 = new File(detailList.get(0).getPdfPath());
if (file1.exists() && file1.isFile()) {
file1.delete();
}
//读取指定路径下的文件名和目录名
List arr = new ArrayList();
arr.add(picList.getAssortId());
//图片转PDF(病案号文件夹+类别文件夹)
PrintToPdfUtil.toPdf(pictureUrl + path2 + picList.getAssortId(), detailList.get(0).getPdfPath(), arr);
//判断pdf文件大小等于了则删除并删除pdf记录
File file = new File(detailList.get(0).getPdfPath());
if (file.exists() && file.isFile()) {
if(file.length()==0){
String pdfPathVal = pictureUrl + "\\pdfFiles\\"+ detail.getMasterid() +"\\"+ picList.getAssortId() + "\\" + picList.getAssortId() + ".pdf";
detail.setPdfPath(pdfPathVal);
archiveDetailService.deleteByClo(detail);
file.delete();
detail.setPdfPath("");
}
}
//根据id修改记录
bol = emrPictureService.updateCloByIdOrFlay(entity);
//}
if (bol == 1) {
result = "批量上传成功!";
} else {
result = "批量上传失败!";
}
}
} else {
//得到图片名
String oldName = imgs[t].getOriginalFilename();// 如apple1.jpg
String lasName = oldName.substring(oldName.lastIndexOf(".") + 1);
if ("GIF".equals(lasName.toUpperCase()) || "JPEG".equals(lasName.toUpperCase()) || "PNG".equals(lasName.toUpperCase()) || "JPG".equals(lasName.toUpperCase())) {
// 自定义的文件名称String.valueOf(System.currentTimeMillis())
trueFileName = firstFile + idTime + oldName;
//上传图片
imgs[t].transferTo(new File( pictureUrl+path2 + pathType + trueFileName));
entity.setId(idTime);
entity.setCreater(username);
entity.setCreateTime(nowTime);
entity.setEffective(1);
entity.setMaxPicture(picSrc + path2 + pathType + trueFileName);
//插入记录
bol = emrPictureService.insertSel(entity);
}
t++;
}
} else {
//得到图片名
String oldName = imgs[t].getOriginalFilename();// 如apple1.jpg
String lasName= null;
if (oldName != null) {
lasName = oldName.substring(oldName.lastIndexOf(".") + 1);
}
if (lasName != null && ("GIF".equals(lasName.toUpperCase()) || "JPEG".equals(lasName.toUpperCase()) || "PNG".equals(lasName.toUpperCase()) || "JPG".equals(lasName.toUpperCase()))) {
// 自定义的文件名称String.valueOf(System.currentTimeMillis())
trueFileName = firstFile + idTime + oldName;
//上传图片
imgs[t].transferTo(new File(pictureUrl + path2 + pathType + trueFileName));
//新的图片地址
entity.setMaxPicture(picSrc + path2 + pathType + trueFileName);
entity.setId(idTime);
entity.setCreater(username);
entity.setCreateTime(nowTime);
entity.setEffective(1);
//插入记录
bol = emrPictureService.insertSel(entity);
}
t = t + 1;
}
//根据类别生成pdf:pathType(String.valueOf(System.currentTimeMillis()) )
String pdfFile = pathType.replace("\\", "") + ".pdf";
//根据病案号和类别查询是否存在
Archive_Detail detail = new Archive_Detail();
detail.setMasterid(masterId);
detail.setAssortid(pathType.replace("\\",""));
detail.setPdfPath(pictureUrl + "\\pdfFiles\\" + masterId + "\\"+ pathType.replace("\\", "")+"\\" + pathType.replace("\\", ".pdf"));
List<Archive_Detail> voList=archiveDetailService.selectByColm(detail);
//pdf存在则删除记录和文件
if(voList.size()<=0){
//不存在添加记录和转换pdf
detail.setFlag("0");//显示
detail.setSource("后台");
detail.setSys("emr_medical_record");
detail.setUploaddatetime(nowTime);
detail.setPdfPath(pictureUrl + "\\pdfFiles\\" + masterId + "\\" + pathType + pdfFile);
int b = archiveDetailService.insertSel(detail);
}
//判断pdf是否存在将之前文件删除
File file1 = new File(pictureUrl + "\\pdfFiles\\" + masterId + "\\" + pathType + pdfFile);
if (file1.exists() && file1.isFile()) {
file1.delete();
}
//读取指定路径下的文件名和目录名
List arr = new ArrayList();
arr.add(pathType.replace("\\", ""));
//图片转PDF(病案号文件夹+类别文件夹)
PrintToPdfUtil.toPdf(pictureUrl + path2 + pathType, pictureUrl + "\\pdfFiles\\" + masterId + "\\" + pathType + pdfFile, arr);
result = "批量上传成功!";
} else {
result = "没有找到相对应的文件!";
}
}
}
}
return result;
}
/**
*
* @param resp
* @param request
* @param file
* @return
* @throws IOException
*/
@ResponseBody
@RequestMapping(value = "/uploadImg", method = RequestMethod.POST)
public String uploadImg(HttpServletResponse resp, HttpServletRequest request, @RequestParam(value = "file", required = false) MultipartFile file) throws IOException {
resp.setContentType("text/json");
resp.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
String firstFile = request.getParameter("fileName");
String id = request.getParameter("id");
String masterId = request.getParameter("masterID");
String assortId = request.getParameter("assortID");
String result = "";
if (!file.isEmpty()) {
// logger.info("成功获取照片");
String fileName = file.getOriginalFilename();
String path = null;
String type = null;
if (fileName != null) {
type = fileName.contains(".") ? fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()) : null;
}
//logger.info("图片初始名称为:" + fileName + " 类型为:" + type);
if (type != null) {
if ("GIF".equals(type.toUpperCase()) || "JPEG".equals(type.toUpperCase())|| "PNG".equals(type.toUpperCase()) || "JPG".equals(type.toUpperCase())) {
// 项目在容器中实际发布运行的根路径
String realPath = request.getSession().getServletContext().getRealPath("/");
realPath = realPath.split("target")[0] + pictureUrl;
//创建时间id
String idTime = String.valueOf(System.currentTimeMillis());
// 自定义的文件名称String.valueOf(System.currentTimeMillis())
String trueFileName = firstFile+ idTime + fileName.split(".")[1];
// 设置存放图片文件的路径
String path2 = "\\static\\img\\uploads\\" ;
//病案号
if (StringUtils.isNotBlank(masterId)) {
path2= path2+masterId + "\\";
}
//类别
if(StringUtils.isNotBlank(assortId)){
path2= path2+ assortId+"\\";
}
//图片id
if (id != null && id != "") {
path2 = path2 + id + "\\";
}else{
path2 = path2 + idTime + "\\";
}
//判断文件夹是否存在
File fileDic = new File(realPath +path2);
if (!fileDic.exists() && !fileDic.isDirectory()){
fileDic.mkdirs();
}
path= realPath + path2 + trueFileName;
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = format1.format(new Date());
//将其路径及文件名类型以及参数保存图片相关信息到分段详细表
Emr_Picture entity = new Emr_Picture();
entity.setRelationId(masterId);
entity.setAssortId(assortId);
entity.setUpdateTime(nowTime);
entity.setMaxPicture(".."+ path2 + trueFileName);
// 从session获取用户名
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
String username = (String) session.getAttribute("userSession");//获取前面登录的用户名
entity.setUpdater(username);
int bol = 0;
if (StringUtils.isNotBlank(id)) {
Emr_Picture pic = new Emr_Picture();
pic.setTypeFlag(id);
List<Emr_Picture> list = emrPictureService.selectByClo(pic);
entity.setTypeFlag(id);
if(list.size()>0){
//将之前文件删除
File file1 = new File(realPath + "/static" + list.get(0).getMaxPicture().split("static")[1]);
if (file1.exists() && file1.isFile()) {
file1.delete();
}
//根据id修改记录
bol = emrPictureService.updateCloByIdOrFlay(entity);
}else{
entity.setId(idTime);
entity.setCreater(username);
entity.setCreateTime(nowTime);
entity.setEffective(1);
//插入记录
bol = emrPictureService.insertSel(entity);
}
} else {
entity.setId(idTime);
entity.setCreater(username);
entity.setCreateTime(nowTime);
entity.setEffective(1);
//插入记录
bol = emrPictureService.insertSel(entity);
}
if (bol == 1) {
//文件成功上传到指定目录下
file.transferTo(new File(path));
result = entity.getMaxPicture();
} else {
result = "保存文件信息失败!";
}
} else {
result = "文件类型有误,请重新上传!";
}
} else {
result = "文件类型为空!";
}
} else {
result = "没有找到相对应的文件!";
}
return result;
}
/**
* Pdf
*
* @param resp
* @param request
* @param file
* @return
* @throws IOException
*/
@RequestMapping(value = "/uploadPdf", method = RequestMethod.POST)
public String uploadPdf(HttpServletResponse resp, HttpServletRequest request, @RequestParam(value = "file", required = false) MultipartFile file) throws IOException {
resp.setContentType("text/json");
resp.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
String firstFile = request.getParameter("fileName");
String id = request.getParameter("id");
String masterId = request.getParameter("masterID");
String assortId = request.getParameter("assortID");
String result = "";
if (!file.isEmpty()) {
// 成功获取照片原名字
String fileName = file.getOriginalFilename();
String path = null;
String type = null;
if (fileName != null) {
type = fileName.contains(".") ? fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()) : null;
}
//logger.info("图片初始名称为:" + fileName + " 类型为:" + type);
if (type != null) {
if ("PDF".equals(type.toUpperCase())) {
// 项目在容器中实际发布运行的根路径
String realPath = request.getSession().getServletContext().getRealPath("/");
realPath = realPath.split("target")[0] + pictureUrl;
// 自定义的文件名称String.valueOf(System.currentTimeMillis())
String trueFileName = firstFile + fileName;
// 设置存放图片文件的路径
path = realPath + "\\static\\img\\uploads\\" + trueFileName;
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = format1.format(new Date());
//将其路径及文件名类型以及参数保存图片相关信息到分段详细表
Archive_Detail entity = new Archive_Detail();
entity.setMasterid(masterId);
entity.setAssortid(assortId);
entity.setUploaddatetime(nowTime);
entity.setPdfPath("../static/img/uploads/" + trueFileName);
Archive_Detail detail = new Archive_Detail();
int bol = 0;
if (StringUtils.isNotBlank(id)) {
entity.setId(id);
detail = archiveDetailService.selectByid(id);
if (detail != null) {
//根据id修改记录
bol = archiveDetailService.updateCloById(entity);
}
} else {
//插入记录
bol = archiveDetailService.insertSel(entity);
}
if (bol == 1) {
//将之前文件删除
File file1 = new File(realPath + "/static/uploads/" + detail.getPdfPath().split("/")[3]);
if (file1.exists() && file1.isFile()) {
file1.delete();
}
file.transferTo(new File(path));
//文件成功上传到指定目录下
result = entity.toString();
} else {
result = "保存文件信息失败!";
}
} else {
result = "文件类型有误,请重新上传!";
}
} else {
result = "文件类型为空!";
}
} else {
result = "没有找到相对应的文件!";
}
return result;
}
}

@ -0,0 +1,159 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/8/8 12:46
* Description:
*/
package com.emr.controller;
import com.emr.entity.*;
import com.emr.service.Archive_MasterService;
import com.emr.service.Emr_Fault_DetailService;
import com.emr.service.Emr_Fault_TypeService;
import com.emr.util.ExportExcelUtil;
import com.emr.util.Msg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("lastVerify")
public class lastVerifyController {
@Autowired
private Archive_MasterService archiveMasterService;
@Autowired
private Emr_Fault_TypeService emrFaultTypeService;
@Autowired
private Emr_Fault_DetailService emrFaultDetailService;
@RequestMapping(value = "/lastVerifys")
public String faults(Model model){
return "lastVerifyDir/lastVerifyList";
}
/**
*
* */
@ResponseBody
@RequestMapping(value = "/lastVerifyList")
public OffsetLimitPage lastVerifyList(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit,Integer isSearch) {
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
archiveMasterVo.setStartDateTo(null);
archiveMasterVo.setEndDateTo(null);
}
OffsetLimitPage result = archiveMasterService.selectByLast(archiveMasterVo, offset, limit);
return result;
}
@ResponseBody
@RequestMapping(value = "/exportExcel")
public void exportExcel(HttpServletResponse response, Archive_Master_Vo archiveMasterVo,Integer isSearch) throws Exception {
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
archiveMasterVo.setStartDateTo(null);
archiveMasterVo.setEndDateTo(null);
}
String tableThNames = "住院号,住院次数,名字,性别,出院科室,出院日期,主管医生,状态";
String fieldCns = "inpNo,visitId,name,sex,deptName,dischargeDateTime,doctorInCharge,status";
//构造excel的数据
List<Archive_Master_Vo> list = archiveMasterService.selectLastVerifyList(archiveMasterVo);
//文件名
String fileName = "病案室终审" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
//ExportExcelUtil
ExportExcelUtil exportExcelUtil = new ExportExcelUtil();
response.setContentType("application/ms-excel;charset=gbk");
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response);
}
@ResponseBody
@RequestMapping(value = "/getFaultType")
public List<Emr_Fault_Type> getFaultType(Emr_Fault_Type emrFaultType) {
return emrFaultTypeService.selectByCol(emrFaultType);
}
@ResponseBody
@RequestMapping(value = "/getDetailByArchId")
public Emr_Fault_Detail getDetailByArchId(Emr_Fault_Detail emrFaultDetail) {
return emrFaultDetailService.selectByArchiveDetailId(emrFaultDetail);
}
/**
* 退
* @param request
* @param emrFaultDetail
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/updateDetailByArchivId")
public Msg updateDetailByArchivId(HttpServletRequest request,Emr_Fault_Detail_Vo emrFaultDetail) throws Exception{
boolean flag = FormTokenFlagUtil.isFlag(request);
if (!flag) {
return Msg.fail("请不要重复提交!");
}
archiveMasterService.updateReturn(emrFaultDetail);
return Msg.success();
}
/*
@ResponseBody
@RequestMapping(value = "/updateDetailByArchivId")
public int updateDetailByArchivId(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) {
//修改病案归档状态:复审退回
Archive_Master archiveMaster = new Archive_Master();
archiveMaster.setId(emrFaultDetail.getArchiveDetailId());
archiveMaster.setArchivestate("复审退回");
int bol = archiveMasterService.updateByClo(archiveMaster);
//修改复审内容
if (bol == 1) {
// 从session获取用户名
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
String username = (String) session.getAttribute("userSession");//获取前面登录的用户名
//参数输入
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = format1.format(new Date());
emrFaultDetail.setUpdater(username);
emrFaultDetail.setUpdateTime(nowTime);
//修改复审内容
//1、查询出该病案的创建时间最近的缺陷记录
Emr_Fault_Detail entity= emrFaultDetailService.selectByArchiveDetailId(emrFaultDetail);
emrFaultDetail.setId(entity.getId());
//2、修改缺陷记录
bol = emrFaultDetailService.updateCloByPrimaryKey(emrFaultDetail);
}
return bol;
}
*/
//终审
@ResponseBody
@RequestMapping(value = "/updateStateByArchivId")
public Msg updateStateByArchivId(HttpServletRequest request,Archive_Master_Vo master) throws Exception{
boolean flag = FormTokenFlagUtil.isFlag(request);
if (!flag) {
return Msg.fail("请不要重复提交!");
}
archiveMasterService.updateFiled(master);
return Msg.success();
}
}

@ -0,0 +1,83 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 14:39
* Description:
*/
package com.emr.controller;
import com.alibaba.fastjson.JSON;
import com.emr.entity.OffsetLimitPage;
import com.emr.service.ipml.ArchiveCallbackInfoService;
import com.emr.util.ExportExcelUtil;
import com.emr.vo.ArchiveCallbackInfoVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/recallDate")
public class medicalRecallDateController {
@Autowired
private ArchiveCallbackInfoService callbackInfoService;
@RequestMapping(value = "/recallDates")
public String recallDates() {
return "medicalRecallDateDir/recallDateList";
}
/**
*
* @param callbackInfo
* @param offset
* @param limit
* @return
*/
@ResponseBody
@RequestMapping(value = "/recallDateList")
public OffsetLimitPage recallDateList(ArchiveCallbackInfoVo callbackInfo, Integer offset, Integer limit) {
return callbackInfoService.selectAll(callbackInfo,offset,limit);
}
@ResponseBody
@RequestMapping(value = "/exportExcel")
public void exportExcel(HttpServletResponse response,ArchiveCallbackInfoVo callbackInfo) throws Exception {
String tableThNames = "住院号,住院次数,姓名,出院科室,召回人,召回时间,召回原因,状态,归档状态";
String fieldCns = "inpNo,visitId,name,deptName,callbackUserName,startDate,callbackReason,status,archivestate";
List<ArchiveCallbackInfoVo> list = callbackInfoService.selectCallBackInfo(callbackInfo);
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(!CollectionUtils.isEmpty(list)){
for(ArchiveCallbackInfoVo callbackInfoVo : list){
Date callbackTime = callbackInfoVo.getCallbackTime();
if(null != callbackTime){
String date = fmt.format(callbackTime);
callbackInfoVo.setStartDate(date);
}
}
}
//文件名
String fileName = "召回记录" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
//ExportExcelUtil
ExportExcelUtil exportExcelUtil = new ExportExcelUtil();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames,fieldCns,list,fileName,response);
}
@ResponseBody
@RequestMapping(value = "/lastBylogTitle")
public String lastBylogTitle(String id) {
ArchiveCallbackInfoVo vo = new ArchiveCallbackInfoVo();
vo.setMasterId(id);
List<ArchiveCallbackInfoVo> callbackInfoVos = callbackInfoService.selectCallBackInfo(vo);
return JSON.toJSONString(callbackInfoVos.get(0));
}
}

@ -0,0 +1,66 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 14:40
* Description:
*/
package com.emr.controller;
import com.emr.entity.Archive_Master_Vo;
import com.emr.entity.OffsetLimitPage;
import com.emr.service.Archive_MasterService;
import com.emr.util.ExportExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/unfile")
public class unfileMedicalController {
@Autowired
private Archive_MasterService archiveMasterService;
@RequestMapping(value = "/unfileMedicals")
public String faults() {
return "unfileMedicalDir/unfileMedicalList";
}
@ResponseBody
@RequestMapping(value = "/unfileList")
public OffsetLimitPage unfileList(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit,Integer isSearch) {
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
archiveMasterVo.setStartDateTo(null);
archiveMasterVo.setEndDateTo(null);
}
return archiveMasterService.selectByUnfile(archiveMasterVo, offset, limit);
}
@ResponseBody
@RequestMapping(value = "/exportExcel")
public void exportExcel(HttpServletResponse response, Archive_Master_Vo archiveMasterVo,Integer isSearch) throws Exception {
String tableThNames = "住院号,住院次数,姓名,性别,入院科室,入院日期,出院科室,出院日期,主管医生,状态";
String fieldCns = "inpNo,visitId,name,sex,deptAdmissionTo,admissionDateTime,deptName,dischargeDateTime,doctorInCharge,status";
//构造excel的数据
//判断是否是初始化查询,是初始化查询把开始结束时间置空
if(isSearch == 0){
archiveMasterVo.setStartDateTo(null);
archiveMasterVo.setEndDateTo(null);
}
List<Archive_Master_Vo> list = archiveMasterService.selectByUnfile(archiveMasterVo);
//文件名
String fileName = "未归档病历列表" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
//ExportExcelUtil
ExportExcelUtil exportExcelUtil = new ExportExcelUtil();
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response);
}
}

@ -0,0 +1,20 @@
package com.emr.dao;
import com.emr.entity.ArchiveCallbackInfo;
import com.emr.vo.ArchiveCallbackInfoVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ArchiveCallbackInfoMapper {
int insert(ArchiveCallbackInfo record);
int insertSelective(ArchiveCallbackInfo record);
List<ArchiveCallbackInfoVo> selectAll(ArchiveCallbackInfoVo callbackInfoVo);
/**
* masterId
* */
ArchiveCallbackInfoVo lastBylogTitle(@Param("masterId")String masterId);
}

@ -0,0 +1,26 @@
package com.emr.dao;
import com.emr.entity.ArchiveFlowInfo;
import com.emr.vo.ArchiveFlowInfoVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ArchiveFlowInfoMapper {
int deleteByPrimaryKey(Integer id);
int insert(ArchiveFlowInfo record);
int insertSelective(ArchiveFlowInfo record);
ArchiveFlowInfo selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(ArchiveFlowInfo record);
int updateByPrimaryKey(ArchiveFlowInfo record);
List<ArchiveFlowInfo> selectPreInfo(@Param("masterId")String masterId,@Param("targetStep")String targetStep);
List<ArchiveFlowInfoVo> selectFlowInfoByMasterId(@Param("masterId")String masterId);
List<ArchiveFlowInfoVo> selectFlowInfoList(@Param("record")ArchiveFlowInfo record,@Param("sql")String sql);
}

@ -0,0 +1,21 @@
package com.emr.dao;
import com.emr.entity.ArchiveFlowRole;
import java.util.List;
public interface ArchiveFlowRoleMapper {
int deleteByPrimaryKey(Integer id);
int insert(ArchiveFlowRole record);
int insertSelective(ArchiveFlowRole record);
ArchiveFlowRole selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(ArchiveFlowRole record);
int updateByPrimaryKey(ArchiveFlowRole record);
List<ArchiveFlowRole> selectAll();
}

@ -0,0 +1,37 @@
package com.emr.dao;
import com.emr.entity.Archive_Detail;
import com.emr.entity.Archive_Detail_Vo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface Archive_DetailMapper {
int deleteByPrimaryKey(String id);
int deleteByClo(Archive_Detail record);
int insert(Archive_Detail record);
int insertSel(Archive_Detail record);
Archive_Detail selectByid(String id);
int updateCloById(Archive_Detail record);
int updateByPrimaryKey(Archive_Detail record);
List<Archive_Detail> selectByColm(Archive_Detail record);
List<Archive_Detail> selectByCol(Archive_Detail record);
List<Archive_Detail_Vo> selectByClo(Archive_Detail_Vo record);
List<Archive_Detail_Vo> detailByClo(Archive_Detail_Vo record);
List<Archive_Detail> selectByIdStr(Archive_Detail record);
List<Archive_Detail> selectTypeTreeByPatientIdAndAssortIds(@Param("patientId")String patientId,@Param("assortIds")String assortIds);
List<Archive_Detail> selectPdfPathByIds(@Param("masterId")String masterId,@Param("detailIds")String detailIds);
}

@ -0,0 +1,42 @@
package com.emr.dao;
import com.emr.entity.Archive_Master;
import com.emr.entity.Archive_Master_Vo;
import com.emr.vo.DoctorStatistics;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface Archive_MasterMapper {
int deleteByPrimaryKey(String id);
int insert(Archive_Master record);
int insertSelective(Archive_Master record);
Archive_Master selectByPrimaryKey(String id);
List<Archive_Master> selectByCol(Archive_Master_Vo record);
List<Archive_Master_Vo> selectByColumn(Archive_Master_Vo record);
List<Archive_Master_Vo> selectByLast(Archive_Master_Vo record);
List<Archive_Master_Vo> selectByUnfile(Archive_Master_Vo record);
int updateByClo(Archive_Master record);
int updateById(Archive_Master record);
List<DoctorStatistics> getDoctorFileInfo(@Param("deptCode")String deptCode,@Param("doctor")String doctor,@Param("startTime")String startTime,@Param("endTime")String endTime);
/**
*
* */
List<Archive_Master> selectByObject(Archive_Master master);
/**
*
* */
List<Archive_Master_Vo> selectFiled(Archive_Master_Vo master);
}

@ -0,0 +1,34 @@
package com.emr.dao;
import com.emr.entity.EmrHolidaySet;
import com.emr.entity.EmrHolidaySetVo;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
public interface EmrHolidaySetMapper {
int deleteByPrimaryKey(Integer id);
int insert(EmrHolidaySet record);
int insertSelective(EmrHolidaySet record);
EmrHolidaySet selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(EmrHolidaySet record);
int updateByPrimaryKey(EmrHolidaySet record);
List<EmrHolidaySet> selectAllByDates(@Param("startTime")String startTime, @Param("endTime")String endTime);
int SampleInsert(@Param("list")List<EmrHolidaySet> list);
int SampleUpdate(@Param("list")List<EmrHolidaySet> list);
List<EmrHolidaySetVo> selectByColumn(EmrHolidaySetVo record);
int selectColByTableName(@Param("tableName")String tableName);
int selectHolidayByDate(@Param("startDate") Date startDate);
}

@ -0,0 +1,17 @@
package com.emr.dao;
import com.emr.entity.EmrOvertimeSet;
public interface EmrOvertimeSetMapper {
int deleteByPrimaryKey(Integer id);
int insert(EmrOvertimeSet record);
int insertSelective(EmrOvertimeSet record);
EmrOvertimeSet selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(EmrOvertimeSet record);
int updateByPrimaryKey(EmrOvertimeSet record);
}

@ -0,0 +1,7 @@
package com.emr.dao;
import org.apache.ibatis.annotations.Param;
public interface EmrPatientMapper {
int selectExistByPatient(@Param("fpatno") String fpatno);
}

@ -0,0 +1,17 @@
package com.emr.dao;
import com.emr.entity.Emr_Archive_Detail;
public interface Emr_Archive_DetailMapper {
int deleteByPrimaryKey(Integer id);
int insert(Emr_Archive_Detail record);
int insertSelective(Emr_Archive_Detail record);
Emr_Archive_Detail selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(Emr_Archive_Detail record);
int updateByPrimaryKey(Emr_Archive_Detail record);
}

@ -0,0 +1,42 @@
package com.emr.dao;
import com.emr.entity.Emr_Dictionary;
import java.util.List;
public interface Emr_DictionaryMapper {
/**
*
* @param emrDictionary
* @return
*/
List<Emr_Dictionary> dicByTypeCode(Emr_Dictionary emrDictionary);
/**
*
* @param emrDictionary
* @return
*/
List<Emr_Dictionary> dicByClo(Emr_Dictionary emrDictionary);
/**
*
* @param emrDictionary
* @return
*/
int insertSel(Emr_Dictionary emrDictionary);
/**
* id
* @param id
* @return
*/
int delById(Integer id);
/**
* id
* @param emrDictionary
* @return
*/
int updateCloById(Emr_Dictionary emrDictionary);
}

@ -0,0 +1,24 @@
package com.emr.dao;
import com.emr.entity.Emr_Fault_Detail;
import com.emr.entity.Emr_Fault_Vo;
import java.util.List;
public interface Emr_Fault_DetailMapper {
int deleteByPrimaryKey(Integer id);
int insert(Emr_Fault_Detail record);
int insertSel(Emr_Fault_Detail record);
Emr_Fault_Detail selectByPrimaryKey(Integer id);
int updateCloByPrimaryKey(Emr_Fault_Detail record);
int updateByPrimaryKey(Emr_Fault_Detail record);
List<Emr_Fault_Vo> selectByCol(Emr_Fault_Vo record);
Emr_Fault_Detail selectByArchiveDetailId(Emr_Fault_Detail record);
}

@ -0,0 +1,22 @@
package com.emr.dao;
import com.emr.entity.Emr_Fault_Type;
import java.util.List;
public interface Emr_Fault_TypeMapper {
int delById(Integer id);
int insert(Emr_Fault_Type record);
int insertClo(Emr_Fault_Type record);
List<Emr_Fault_Type> selectByCol(Emr_Fault_Type record);
int updateByClo(Emr_Fault_Type record);
int updateByPrimaryKey(Emr_Fault_Type record);
Emr_Fault_Type selectById(Integer id);
}

@ -0,0 +1,22 @@
package com.emr.dao;
import com.emr.entity.Emr_Log;
import com.emr.entity.Emr_Log_Vo;
import java.util.List;
public interface Emr_LogMapper {
int deleteByPrimaryKey(Integer logId);
int insert(Emr_Log record);
int insertSelective(Emr_Log record);
Emr_Log lastBylogTitle(String logTitle);
int updateByPrimaryKeySelective(Emr_Log record);
int updateByPrimaryKey(Emr_Log record);
List<Emr_Log_Vo> selectByCol(Emr_Log_Vo record);
}

@ -0,0 +1,21 @@
package com.emr.dao;
import com.emr.entity.Emr_Picture;
import java.util.List;
public interface Emr_PictureMapper {
int deleteById(String id);
int insert(Emr_Picture record);
int insertSel(Emr_Picture record);
Emr_Picture selectByid(String id);
int updateCloByIdOrFlay(Emr_Picture record);
int updateByPrimaryKey(Emr_Picture record);
List<Emr_Picture> selectByClo(Emr_Picture record);
}

@ -0,0 +1,18 @@
package com.emr.dao;
import com.emr.entity.Archive_Master_Vo;
import com.emr.vo.FinalAndFirstStatistics;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface StatisticsMapper {
//终审按天统计
List<FinalAndFirstStatistics> finalStatistics(@Param("startDate")String startDate,@Param("endDate")String endDate,@Param("sql")String sql);
//初审按天统计
List<FinalAndFirstStatistics> firstStatistics(@Param("startDate")String startDate,@Param("endDate")String endDate,@Param("sql")String sql);
//审核明细
List<Archive_Master_Vo> statistics(@Param("disStartDate")String disStartDate,@Param("disEndDate")String disEndDate,@Param("record")Archive_Master_Vo record,@Param("flag")Integer flag,@Param("sql")String sql);
}

@ -0,0 +1,16 @@
package com.emr.dao;
import com.emr.entity.TPrintinfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TPrintinfoMapper {
int insert(TPrintinfo record);
int insertSelective(TPrintinfo record);
List<TPrintinfo> selectIsPrintByPatienId(@Param("patientId")String patientId);
TPrintinfo selectLockByPatienId(@Param("patientId")String patientId);
}

@ -0,0 +1,18 @@
package com.emr.dao;
import com.emr.entity.TUuInfo;
import com.emr.vo.TUuInfoVo;
import com.emr.vo.TUuPrintSearch;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TUuInfoMapper {
int insert(TUuInfo record);
int insertSelective(TUuInfo record);
List<TUuInfoVo> getScanCount(TUuPrintSearch record);
List<TUuInfoVo> getScanInfo(TUuPrintSearch record);
}

@ -0,0 +1,18 @@
package com.emr.dao;
import com.emr.entity.TUuPrint;
import com.emr.vo.TUuPrintSearch;
import com.emr.vo.TUuPrintVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TUuPrintMapper {
int insert(TUuPrint record);
int insertSelective(TUuPrint record);
List<TUuPrintVo> getPrintCount(TUuPrintSearch record);
List<TUuPrintVo> getPrintInfo(TUuPrintSearch record);
}

@ -0,0 +1,19 @@
package com.emr.dao;
import com.emr.entity.V_Count;
import com.emr.vo.V_CountVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface V_CountMapper {
List<V_Count> selectByCol(V_CountVo record);
// /**
// * 根据条件查找统计列表分页
// *
// * @param record
// * @return
// */
// List<V_Count> selectPageByClo(V_Count record);
}

@ -0,0 +1,13 @@
package com.emr.dao;
import com.emr.entity.Zd_Assort;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface Zd_AssortMapper {
/**
*
* */
List<Zd_Assort> selectAll(@Param("record") Zd_Assort record);
}

@ -0,0 +1,78 @@
package com.emr.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
public class ArchiveCallbackInfo implements Serializable {
private String masterId;
private String callbackUserName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date callbackTime;
private String callbackReason;
private String ip;
private static final long serialVersionUID = 1L;
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
public String getMasterId() {
return masterId;
}
public void setMasterId(String masterId) {
this.masterId = masterId == null ? null : masterId.trim();
}
public String getCallbackUserName() {
return callbackUserName;
}
public void setCallbackUserName(String callbackUserName) {
this.callbackUserName = callbackUserName == null ? null : callbackUserName.trim();
}
public Date getCallbackTime() {
return callbackTime;
}
public void setCallbackTime(Date callbackTime) {
this.callbackTime = callbackTime;
}
public String getCallbackReason() {
return callbackReason;
}
public void setCallbackReason(String callbackReason) {
this.callbackReason = callbackReason == null ? null : callbackReason.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", masterId=").append(masterId);
sb.append(", callbackUserName=").append(callbackUserName);
sb.append(", callbackTime=").append(callbackTime);
sb.append(", callbackReason=").append(callbackReason);
sb.append("]");
return sb.toString();
}
}

@ -0,0 +1,172 @@
package com.emr.entity;
import java.io.Serializable;
import java.util.Date;
public class ArchiveFlowInfo implements Serializable {
private Integer id;
private String masterId;
private Integer stepIndex;
private Integer startStepId;
private String startStep;
private String sumbitName;
private Integer targetStepId;
private String targetStep;
private Short operRole;
private Long useSeconds;
private String remark;
private String userName;
private Date sumbitTime;
private Date createtime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getMasterId() {
return masterId;
}
public void setMasterId(String masterId) {
this.masterId = masterId == null ? null : masterId.trim();
}
public Integer getStepIndex() {
return stepIndex;
}
public void setStepIndex(Integer stepIndex) {
this.stepIndex = stepIndex;
}
public Integer getStartStepId() {
return startStepId;
}
public void setStartStepId(Integer startStepId) {
this.startStepId = startStepId;
}
public String getStartStep() {
return startStep;
}
public void setStartStep(String startStep) {
this.startStep = startStep == null ? null : startStep.trim();
}
public String getSumbitName() {
return sumbitName;
}
public void setSumbitName(String sumbitName) {
this.sumbitName = sumbitName == null ? null : sumbitName.trim();
}
public Integer getTargetStepId() {
return targetStepId;
}
public void setTargetStepId(Integer targetStepId) {
this.targetStepId = targetStepId;
}
public String getTargetStep() {
return targetStep;
}
public void setTargetStep(String targetStep) {
this.targetStep = targetStep == null ? null : targetStep.trim();
}
public Short getOperRole() {
return operRole;
}
public void setOperRole(Short operRole) {
this.operRole = operRole;
}
public Long getUseSeconds() {
return useSeconds;
}
public void setUseSeconds(Long useSeconds) {
this.useSeconds = useSeconds;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark == null ? null : remark.trim();
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName == null ? null : userName.trim();
}
public Date getSumbitTime() {
return sumbitTime;
}
public void setSumbitTime(Date sumbitTime) {
this.sumbitTime = sumbitTime;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", masterId=").append(masterId);
sb.append(", stepIndex=").append(stepIndex);
sb.append(", startStepId=").append(startStepId);
sb.append(", startStep=").append(startStep);
sb.append(", sumbitName=").append(sumbitName);
sb.append(", targetStepId=").append(targetStepId);
sb.append(", targetStep=").append(targetStep);
sb.append(", operRole=").append(operRole);
sb.append(", useSeconds=").append(useSeconds);
sb.append(", remark=").append(remark);
sb.append(", userName=").append(userName);
sb.append(", sumbitTime=").append(sumbitTime);
sb.append(", createtime=").append(createtime);
sb.append("]");
return sb.toString();
}
}

@ -0,0 +1,94 @@
package com.emr.entity;
import java.io.Serializable;
public class ArchiveFlowRole implements Serializable {
private Integer id;
private String code;
private String name;
private String sumbitName;
private Short effective;
private Integer stepIndex;
private Short role;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code == null ? null : code.trim();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public String getSumbitName() {
return sumbitName;
}
public void setSumbitName(String sumbitName) {
this.sumbitName = sumbitName == null ? null : sumbitName.trim();
}
public Short getEffective() {
return effective;
}
public void setEffective(Short effective) {
this.effective = effective;
}
public Integer getStepIndex() {
return stepIndex;
}
public void setStepIndex(Integer stepIndex) {
this.stepIndex = stepIndex;
}
public Short getRole() {
return role;
}
public void setRole(Short role) {
this.role = role;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", code=").append(code);
sb.append(", name=").append(name);
sb.append(", sumbitName=").append(sumbitName);
sb.append(", effective=").append(effective);
sb.append(", stepIndex=").append(stepIndex);
sb.append(", role=").append(role);
sb.append("]");
return sb.toString();
}
}

@ -0,0 +1,103 @@
package com.emr.entity;
public class Archive_Detail {
private String id;
private String pdfPath;
private String masterid;
private String uploaddatetime;
private String assortid;
private String source;
private String subassort;
private String title;
private String flag;
private String sys;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id == null ? null : id.trim();
}
public String getPdfPath() {
return pdfPath;
}
public void setPdfPath(String pdfPath) {
this.pdfPath = pdfPath == null ? null : pdfPath.trim();
}
public String getMasterid() {
return masterid;
}
public void setMasterid(String masterid) {
this.masterid = masterid == null ? null : masterid.trim();
}
public String getUploaddatetime() {
return uploaddatetime;
}
public void setUploaddatetime(String uploaddatetime) {
this.uploaddatetime = uploaddatetime == null ? null : uploaddatetime.trim();
}
public String getAssortid() {
return assortid;
}
public void setAssortid(String assortid) {
this.assortid = assortid == null ? null : assortid.trim();
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source == null ? null : source.trim();
}
public String getSubassort() {
return subassort;
}
public void setSubassort(String subassort) {
this.subassort = subassort == null ? null : subassort.trim();
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title == null ? null : title.trim();
}
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag == null ? null : flag.trim();
}
public String getSys() {
return sys;
}
public void setSys(String sys) {
this.sys = sys == null ? null : sys.trim();
}
}

@ -0,0 +1,30 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/29 15:02
* Description:
*/
package com.emr.entity;
import lombok.Data;
@Data
public class Archive_Detail_Vo extends Archive_Detail{
private String assortName;
private Short assortSort;
private String printFlag;
private String patientId;
private String scanPage;
private int pageNum;
private Integer checker;
private String assortId;
}

@ -0,0 +1,233 @@
package com.emr.entity;
public class Archive_Master {
private String id;
private String patientId;
private String inpNo;
private String visitId;
private String name;
private String sex;
private String deptName;
private String dischargeDateTime;
private String archivestate;
private String admissionDateTime;
private String deptAdmissionTo;
private String checkDoctor;
private String checkDatetime;
private String checkedDoctor;
private String checkedDatetime;
private String lockinfo;
private String doctorInCharge;
private String idNo;
private String dischargeDisposition;
private String deptCodeLend;
private String returntoRole;
private String returnOperUsername;
private String changeReason;
public String getChangeReason() {
return changeReason;
}
public void setChangeReason(String changeReason) {
this.changeReason = changeReason;
}
public String getReturntoRole() {
return returntoRole;
}
public void setReturntoRole(String returntoRole) {
this.returntoRole = returntoRole;
}
public String getReturnOperUsername() {
return returnOperUsername;
}
public void setReturnOperUsername(String returnOperUsername) {
this.returnOperUsername = returnOperUsername;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id == null ? null : id.trim();
}
public String getPatientId() {
return patientId;
}
public void setPatientId(String patientId) {
this.patientId = patientId == null ? null : patientId.trim();
}
public String getInpNo() {
return inpNo;
}
public void setInpNo(String inpNo) {
this.inpNo = inpNo == null ? null : inpNo.trim();
}
public String getVisitId() {
return visitId;
}
public void setVisitId(String visitId) {
this.visitId = visitId == null ? null : visitId.trim();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex == null ? null : sex.trim();
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName == null ? null : deptName.trim();
}
public String getDischargeDateTime() {
return dischargeDateTime;
}
public void setDischargeDateTime(String dischargeDateTime) {
this.dischargeDateTime = dischargeDateTime == null ? null : dischargeDateTime.trim();
}
public String getArchivestate() {
return archivestate;
}
public void setArchivestate(String archivestate) {
this.archivestate = archivestate == null ? null : archivestate.trim();
}
public String getAdmissionDateTime() {
return admissionDateTime;
}
public void setAdmissionDateTime(String admissionDateTime) {
this.admissionDateTime = admissionDateTime == null ? null : admissionDateTime.trim();
}
public String getDeptAdmissionTo() {
return deptAdmissionTo;
}
public void setDeptAdmissionTo(String deptAdmissionTo) {
this.deptAdmissionTo = deptAdmissionTo == null ? null : deptAdmissionTo.trim();
}
public String getCheckDoctor() {
return checkDoctor;
}
public void setCheckDoctor(String checkDoctor) {
this.checkDoctor = checkDoctor == null ? null : checkDoctor.trim();
}
public String getCheckDatetime() {
return checkDatetime;
}
public void setCheckDatetime(String checkDatetime) {
this.checkDatetime = checkDatetime == null ? null : checkDatetime.trim();
}
public String getCheckedDoctor() {
return checkedDoctor;
}
public void setCheckedDoctor(String checkedDoctor) {
this.checkedDoctor = checkedDoctor == null ? null : checkedDoctor.trim();
}
public String getCheckedDatetime() {
return checkedDatetime;
}
public void setCheckedDatetime(String checkedDatetime) {
this.checkedDatetime = checkedDatetime == null ? null : checkedDatetime.trim();
}
public String getLockinfo() {
return lockinfo;
}
public void setLockinfo(String lockinfo) {
this.lockinfo = lockinfo == null ? null : lockinfo.trim();
}
public String getDoctorInCharge() {
return doctorInCharge;
}
public void setDoctorInCharge(String doctorInCharge) {
this.doctorInCharge = doctorInCharge == null ? null : doctorInCharge.trim();
}
public String getIdNo() {
return idNo;
}
public void setIdNo(String idNo) {
this.idNo = idNo == null ? null : idNo.trim();
}
public String getDischargeDisposition() {
return dischargeDisposition;
}
public void setDischargeDisposition(String dischargeDisposition) {
this.dischargeDisposition = dischargeDisposition == null ? null : dischargeDisposition.trim();
}
public String getDeptCodeLend() {
return deptCodeLend;
}
public void setDeptCodeLend(String deptCodeLend) {
this.deptCodeLend = deptCodeLend == null ? null : deptCodeLend.trim();
}
}

@ -0,0 +1,44 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/26 17:51
* Description:
*/
package com.emr.entity;
import lombok.Data;
import java.util.List;
@Data
public class Archive_Master_Vo extends Archive_Master{
private String startDateTo;
private String endDateTo;
private String startDate;
private String endDate;
private List<String> deptList;
private Float days;
private String checkName;
private String checkedName;
private String btns;//拼接按钮
private String status;//转换中文状态
private String remark;//审核内容
private Integer roleCode;//审核角色stepIndex,步骤编码
private Integer role;//操作角色1,2,4
private Integer infoId;//流转流程的id
}

@ -0,0 +1,28 @@
package com.emr.entity;
import lombok.Data;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/4/22 17:40
* @UpdateUser:
* @UpdateDate: 2020/4/22 17:40
* @UpdateRemark:
* @Version: 1.0
*/
@Data
public class AssortTypeTree {
private Integer id;
private Integer parentId;
private String name;
private String selfId;
private String checked;
}

@ -0,0 +1,61 @@
package com.emr.entity;
import java.io.Serializable;
public class EmrHolidaySet implements Serializable {
private Integer id;
private String date;
private Short flag;
private String updateTime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date == null ? null : date.trim();
}
public Short getFlag() {
return flag;
}
public void setFlag(Short flag) {
this.flag = flag;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime == null ? null : updateTime.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", date=").append(date);
sb.append(", flag=").append(flag);
sb.append(", updateTime=").append(updateTime);
sb.append("]");
return sb.toString();
}
}

@ -0,0 +1,53 @@
package com.emr.entity;
public class EmrHolidaySetVo extends EmrHolidaySet {
private String startTime;
private String endTime;
private int offset;
private int limit;
private String flagCh;
public String getFlagCh() {
return flagCh;
}
public void setFlagCh(String flagCh) {
this.flagCh = flagCh;
}
public int getOffset() {
return offset;
}
public void setOffset(int offset) {
this.offset = offset;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
}

@ -0,0 +1,39 @@
package com.emr.entity;
import java.io.Serializable;
public class EmrOvertimeSet implements Serializable {
private Integer id;
private Integer days;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getDays() {
return days;
}
public void setDays(Integer days) {
this.days = days;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", days=").append(days);
sb.append("]");
return sb.toString();
}
}

@ -0,0 +1,49 @@
package com.emr.entity;
public class EmrPatient {
private String fpatno; //记账号,
private String fpatfilen;//住院号
private String fpattimes;//住院次数
private String fpatname;//姓名
private String farchieve_dt;//最后更改时间
public String getFpatno() {
return fpatno;
}
public void setFpatno(String fpatno) {
this.fpatno = fpatno;
}
public String getFpatfilen() {
return fpatfilen;
}
public void setFpatfilen(String fpatfilen) {
this.fpatfilen = fpatfilen;
}
public String getFpattimes() {
return fpattimes;
}
public void setFpattimes(String fpattimes) {
this.fpattimes = fpattimes;
}
public String getFpatname() {
return fpatname;
}
public void setFpatname(String fpatname) {
this.fpatname = fpatname;
}
public String getFarchieve_dt() {
return farchieve_dt;
}
public void setFarchieve_dt(String farchieve_dt) {
this.farchieve_dt = farchieve_dt;
}
}

@ -0,0 +1,103 @@
package com.emr.entity;
public class Emr_Archive_Detail {
private Integer id;
private String archiveDetailId;
private String assortId;
private Integer parentId;
private String title;
private String creater;
private String createTime;
private String updater;
private String updateTime;
private String remaker;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getArchiveDetailId() {
return archiveDetailId;
}
public void setArchiveDetailId(String archiveDetailId) {
this.archiveDetailId = archiveDetailId == null ? null : archiveDetailId.trim();
}
public String getAssortId() {
return assortId;
}
public void setAssortId(String assortId) {
this.assortId = assortId == null ? null : assortId.trim();
}
public Integer getParentId() {
return parentId;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title == null ? null : title.trim();
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater == null ? null : creater.trim();
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime == null ? null : createTime.trim();
}
public String getUpdater() {
return updater;
}
public void setUpdater(String updater) {
this.updater = updater == null ? null : updater.trim();
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime == null ? null : updateTime.trim();
}
public String getRemaker() {
return remaker;
}
public void setRemaker(String remaker) {
this.remaker = remaker == null ? null : remaker.trim();
}
}

@ -0,0 +1,183 @@
package com.emr.entity;
public class Emr_Dictionary {
private Integer id;
private String typecode;
private String typename;
private String code;
private String name;
private String pyCode;
private String wbCode;
private String zipCode;
private String gbCode;
private Short flag;
private String cComment;
private String parentId;
private Integer effective;
private String updater;
private String updateTime;
private String creater;
private String createTime;
private String remark;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTypecode() {
return typecode;
}
public void setTypecode(String typecode) {
this.typecode = typecode == null ? null : typecode.trim();
}
public String getTypename() {
return typename;
}
public void setTypename(String typename) {
this.typename = typename == null ? null : typename.trim();
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code == null ? null : code.trim();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public String getPyCode() {
return pyCode;
}
public void setPyCode(String pyCode) {
this.pyCode = pyCode == null ? null : pyCode.trim();
}
public String getWbCode() {
return wbCode;
}
public void setWbCode(String wbCode) {
this.wbCode = wbCode == null ? null : wbCode.trim();
}
public String getZipCode() {
return zipCode;
}
public void setZipCode(String zipCode) {
this.zipCode = zipCode == null ? null : zipCode.trim();
}
public String getGbCode() {
return gbCode;
}
public void setGbCode(String gbCode) {
this.gbCode = gbCode == null ? null : gbCode.trim();
}
public Short getFlag() {
return flag;
}
public void setFlag(Short flag) {
this.flag = flag;
}
public String getcComment() {
return cComment;
}
public void setcComment(String cComment) {
this.cComment = cComment == null ? null : cComment.trim();
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
public Integer getEffective() {
return effective;
}
public void setEffective(Integer effective) {
this.effective = effective;
}
public String getUpdater() {
return updater;
}
public void setUpdater(String updater) {
this.updater = updater == null ? null : updater.trim();
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime == null ? null : updateTime.trim();
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater == null ? null : creater.trim();
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime == null ? null : createTime.trim();
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark == null ? null : remark.trim();
}
}

@ -0,0 +1,145 @@
package com.emr.entity;
import java.math.BigDecimal;
public class Emr_Fault_Detail {
private Integer id;
private String archiveDetailId;
private String assortId;
private Integer parentId;
private String content;
private BigDecimal score;
private String backContent;
private String firstTrial;
private String state;
private String recallReason;
private String creater;
private String createTime;
private String updater;
private String updateTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getArchiveDetailId() {
return archiveDetailId;
}
public void setArchiveDetailId(String archiveDetailId) {
this.archiveDetailId = archiveDetailId == null ? null : archiveDetailId.trim();
}
public String getAssortId() {
return assortId;
}
public void setAssortId(String assortId) {
this.assortId = assortId == null ? null : assortId.trim();
}
public Integer getParentId() {
return parentId;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content == null ? null : content.trim();
}
public BigDecimal getScore() {
return score;
}
public void setScore(BigDecimal score) {
this.score = score;
}
public String getBackContent() {
return backContent;
}
public void setBackContent(String backContent) {
this.backContent = backContent == null ? null : backContent.trim();
}
public String getFirstTrial() {
return firstTrial;
}
public void setFirstTrial(String firstTrial) {
this.firstTrial = firstTrial == null ? null : firstTrial.trim();
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state == null ? null : state.trim();
}
public String getRecallReason() {
return recallReason;
}
public void setRecallReason(String recallReason) {
this.recallReason = recallReason == null ? null : recallReason.trim();
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater == null ? null : creater.trim();
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime == null ? null : createTime.trim();
}
public String getUpdater() {
return updater;
}
public void setUpdater(String updater) {
this.updater = updater == null ? null : updater.trim();
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime == null ? null : updateTime.trim();
}
}

@ -0,0 +1,63 @@
package com.emr.entity;
public class Emr_Fault_Detail_Vo extends Emr_Fault_Detail {
private String returntoRole;
private String returnOperUsername;
private String checkedDateTime;
private String changeReason;
private String status;
private Integer targetCode;
public Integer getTargetCode() {
return targetCode;
}
public void setTargetCode(Integer targetCode) {
this.targetCode = targetCode;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getChangeReason() {
return changeReason;
}
public void setChangeReason(String changeReason) {
this.changeReason = changeReason;
}
public String getCheckedDateTime() {
return checkedDateTime;
}
public void setCheckedDateTime(String checkedDateTime) {
this.checkedDateTime = checkedDateTime;
}
public String getReturntoRole() {
return returntoRole;
}
public void setReturntoRole(String returntoRole) {
this.returntoRole = returntoRole;
}
public String getReturnOperUsername() {
return returnOperUsername;
}
public void setReturnOperUsername(String returnOperUsername) {
this.returnOperUsername = returnOperUsername;
}
}

@ -0,0 +1,113 @@
package com.emr.entity;
public class Emr_Fault_Type {
private Integer id;
private String archiveDetailId;
private String typeFlag;
private String typeName;
private Integer typeSort;
private Integer effective;
private String remark;
private String creater;
private String createTime;
private String updater;
private String updateTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getArchiveDetailId() {
return archiveDetailId;
}
public void setArchiveDetailId(String archiveDetailId) {
this.archiveDetailId = archiveDetailId;
}
public String getTypeFlag() {
return typeFlag;
}
public void setTypeFlag(String typeFlag) {
this.typeFlag = typeFlag == null ? null : typeFlag.trim();
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName == null ? null : typeName.trim();
}
public Integer getTypeSort() {
return typeSort;
}
public void setTypeSort(Integer typeSort) {
this.typeSort = typeSort;
}
public Integer getEffective() {
return effective;
}
public void setEffective(Integer effective) {
this.effective = effective;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark == null ? null : remark.trim();
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater == null ? null : creater.trim();
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime == null ? null : createTime.trim();
}
public String getUpdater() {
return updater;
}
public void setUpdater(String updater) {
this.updater = updater == null ? null : updater.trim();
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime == null ? null : updateTime.trim();
}
}

@ -0,0 +1,315 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/22 12:06
* Description:
*/
package com.emr.entity;
import java.math.BigDecimal;
public class Emr_Fault_Vo {
private Integer id;
private String archiveDetailId;
private String assortId;
private Integer parentId;
private String content;
private BigDecimal score;
private String backContent;
private String firstTrial;
private String state;
private String recallReason;
private String creater;
private String createTime;
private String updater;
private String updateTime;
private String inpNo;
private String visitId;
private String name;
private String deptName;
private String dischargeDateTime;
private String archivestate;
private String startDate;
private String endDate;
private String admissionDateTime;
private String deptAdmissionTo;
private String sex;
private String idNo;
private String dischargeDisposition;
private String startDateTo;
private String endDateTo;
private String patientId;
public String getPatientId() {
return patientId;
}
public void setPatientId(String patientId) {
this.patientId = patientId;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getArchiveDetailId() {
return archiveDetailId;
}
public void setArchiveDetailId(String archiveDetailId) {
this.archiveDetailId = archiveDetailId == null ? null : archiveDetailId.trim();
}
public String getAssortId() {
return assortId;
}
public void setAssortId(String assortId) {
this.assortId = assortId == null ? null : assortId.trim();
}
public Integer getParentId() {
return parentId;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content == null ? null : content.trim();
}
public BigDecimal getScore() {
return score;
}
public void setScore(BigDecimal score) {
this.score = score;
}
public String getBackContent() {
return backContent;
}
public void setBackContent(String backContent) {
this.backContent = backContent == null ? null : backContent.trim();
}
public String getFirstTrial() {
return firstTrial;
}
public void setFirstTrial(String firstTrial) {
this.firstTrial = firstTrial == null ? null : firstTrial.trim();
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state == null ? null : state.trim();
}
public String getRecallReason() {
return recallReason;
}
public void setRecallReason(String recallReason) {
this.recallReason = recallReason == null ? null : recallReason.trim();
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater == null ? null : creater.trim();
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime == null ? null : createTime.trim();
}
public String getUpdater() {
return updater;
}
public void setUpdater(String updater) {
this.updater = updater == null ? null : updater.trim();
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime == null ? null : updateTime.trim();
}
public String getInpNo() {
return inpNo;
}
public void setInpNo(String inpNo) {
this.inpNo = inpNo == null ? null : inpNo.trim();
}
public String getVisitId() {
return visitId;
}
public void setVisitId(String visitId) {
this.visitId = visitId == null ? null : visitId.trim();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName == null ? null : deptName.trim();
}
public String getDischargeDateTime() {
return dischargeDateTime;
}
public void setDischargeDateTime(String dischargeDateTime) {
this.dischargeDateTime = dischargeDateTime == null ? null : dischargeDateTime.trim();
}
public String getArchivestate() {
return archivestate;
}
public void setArchivestate(String archivestate) {
this.archivestate = archivestate == null ? null : archivestate.trim();
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate == null ? null : startDate.trim();
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate == null ? null : endDate.trim();
}
public String getAdmissionDateTime() {
return admissionDateTime;
}
public void setAdmissionDateTime(String admissionDateTime) {
this.admissionDateTime = admissionDateTime == null ? null : admissionDateTime.trim();
}
public String getDeptAdmissionTo() {
return deptAdmissionTo;
}
public void setDeptAdmissionTo(String deptAdmissionTo) {
this.deptAdmissionTo = deptAdmissionTo == null ? null : deptAdmissionTo.trim();
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex == null ? null : sex.trim();
}
public String getIdNo() {
return idNo;
}
public void setIdNo(String idNo) {
this.idNo = idNo == null ? null : idNo.trim();
}
public String getDischargeDisposition() {
return dischargeDisposition;
}
public void setDischargeDisposition(String dischargeDisposition) {
this.dischargeDisposition = dischargeDisposition == null ? null : dischargeDisposition.trim();
}
public String getStartDateTo() {
return startDateTo;
}
public void setStartDateTo(String startDateTo) {
this.startDateTo = startDateTo == null ? null : startDateTo.trim();
}
public String getEndDateTo() {
return endDateTo;
}
public void setEndDateTo(String endDateTo) {
this.endDateTo = endDateTo == null ? null : endDateTo.trim();
}
}

@ -0,0 +1,93 @@
package com.emr.entity;
public class Emr_Log {
private Integer logId;
private String logTitle;
private String logContent;
private String ip;
private Integer sysId;
private String sysFlag;
private String creater;
private String createDate;
private String remark;
public Integer getLogId() {
return logId;
}
public void setLogId(Integer logId) {
this.logId = logId;
}
public String getLogTitle() {
return logTitle;
}
public void setLogTitle(String logTitle) {
this.logTitle = logTitle == null ? null : logTitle.trim();
}
public String getLogContent() {
return logContent;
}
public void setLogContent(String logContent) {
this.logContent = logContent == null ? null : logContent.trim();
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public Integer getSysId() {
return sysId;
}
public void setSysId(Integer sysId) {
this.sysId = sysId;
}
public String getSysFlag() {
return sysFlag;
}
public void setSysFlag(String sysFlag) {
this.sysFlag = sysFlag == null ? null : sysFlag.trim();
}
public String getCreateDate() {
return createDate;
}
public void setCreateDate(String createDate) {
this.createDate = createDate == null ? null : createDate.trim();
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater == null ? null : creater.trim();
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark == null ? null : remark.trim();
}
}

@ -0,0 +1,231 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/24 17:40
* Description:
*/
package com.emr.entity;
public class Emr_Log_Vo {
private String archiveDetailId;
private String state;
private String recallReason;
private String inpNo;
private String visitId;
private String name;
private String archivestate;
private String startDate;
private String endDate;
private String admissionDateTime;
private String deptAdmissionTo;
private String sex;
private String idNo;
private Integer logId;
private String logTitle;
private String logContent;
private String ip;
private Integer sysId;
private String sysFlag;
private String creater;
private String createDate;
private String remark;
public String getArchiveDetailId() {
return archiveDetailId;
}
public void setArchiveDetailId(String archiveDetailId) {
this.archiveDetailId = archiveDetailId == null ? null : archiveDetailId.trim();
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state == null ? null : state.trim();
}
public String getRecallReason() {
return recallReason;
}
public void setRecallReason(String recallReason) {
this.recallReason = recallReason == null ? null : recallReason.trim();
}
public String getInpNo() {
return inpNo;
}
public void setInpNo(String inpNo) {
this.inpNo = inpNo == null ? null : inpNo.trim();
}
public String getVisitId() {
return visitId;
}
public void setVisitId(String visitId) {
this.visitId = visitId == null ? null : visitId.trim();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public String getArchivestate() {
return archivestate;
}
public void setArchivestate(String archivestate) {
this.archivestate = archivestate == null ? null : archivestate.trim();
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate == null ? null : startDate.trim();
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate == null ? null : endDate.trim();
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex == null ? null : sex.trim();
}
public String getIdNo() {
return idNo;
}
public void setIdNo(String idNo) {
this.idNo = idNo == null ? null : idNo.trim();
}
public String getAdmissionDateTime() {
return admissionDateTime;
}
public void setAdmissionDateTime(String admissionDateTime) {
this.admissionDateTime = admissionDateTime == null ? null : admissionDateTime.trim();
}
public String getDeptAdmissionTo() {
return deptAdmissionTo;
}
public void setDeptAdmissionTo(String deptAdmissionTo) {
this.deptAdmissionTo = deptAdmissionTo == null ? null : deptAdmissionTo.trim();
}
public Integer getLogId() {
return logId;
}
public void setLogId(Integer logId) {
this.logId = logId;
}
public String getLogTitle() {
return logTitle;
}
public void setLogTitle(String logTitle) {
this.logTitle = logTitle == null ? null : logTitle.trim();
}
public String getLogContent() {
return logContent;
}
public void setLogContent(String logContent) {
this.logContent = logContent == null ? null : logContent.trim();
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public Integer getSysId() {
return sysId;
}
public void setSysId(Integer sysId) {
this.sysId = sysId;
}
public String getSysFlag() {
return sysFlag;
}
public void setSysFlag(String sysFlag) {
this.sysFlag = sysFlag == null ? null : sysFlag.trim();
}
public String getCreateDate() {
return createDate;
}
public void setCreateDate(String createDate) {
this.createDate = createDate == null ? null : createDate.trim();
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater == null ? null : creater.trim();
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark == null ? null : remark.trim();
}
}

@ -0,0 +1,153 @@
package com.emr.entity;
public class Emr_Picture {
private String id;
private String relationId;
private String assortId;
private Integer parentId;
private String typeFlag;
private String typeName;
private String minPicture;
private String maxPicture;
private Integer pictureSort;
private Integer effective;
private String creater;
private String createTime;
private String updater;
private String updateTime;
private String remark;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id == null ? null : id.trim();
}
public String getRelationId() {
return relationId;
}
public void setRelationId(String relationId) {
this.relationId = relationId == null ? null : relationId.trim();
}
public String getAssortId() {
return assortId;
}
public void setAssortId(String assortId) {
this.assortId = assortId == null ? null : assortId.trim();
}
public Integer getParentId() {
return parentId;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public String getTypeFlag() {
return typeFlag;
}
public void setTypeFlag(String typeFlag) {
this.typeFlag = typeFlag == null ? null : typeFlag.trim();
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName == null ? null : typeName.trim();
}
public String getMinPicture() {
return minPicture;
}
public void setMinPicture(String minPicture) {
this.minPicture = minPicture == null ? null : minPicture.trim();
}
public String getMaxPicture() {
return maxPicture;
}
public void setMaxPicture(String maxPicture) {
this.maxPicture = maxPicture == null ? null : maxPicture.trim();
}
public Integer getPictureSort() {
return pictureSort;
}
public void setPictureSort(Integer pictureSort) {
this.pictureSort = pictureSort;
}
public Integer getEffective() {
return effective;
}
public void setEffective(Integer effective) {
this.effective = effective;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater == null ? null : creater.trim();
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime == null ? null : createTime.trim();
}
public String getUpdater() {
return updater;
}
public void setUpdater(String updater) {
this.updater = updater == null ? null : updater.trim();
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime == null ? null : updateTime.trim();
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark == null ? null : remark.trim();
}
}

@ -0,0 +1,32 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/8/2 18:13
* Description:
*/
package com.emr.entity;
public class File_Vo {
//文件地址
private String fileSrc;
//文件类别
private String selectVal;
public String getFileSrc() {
return fileSrc;
}
public void setFileSrc(String fileSrc) {
this.fileSrc = fileSrc == null ? null : fileSrc.trim();
}
public String getSelectVal() {
return selectVal;
}
public void setSelectVal(String selectVal) {
this.selectVal = selectVal == null ? null : selectVal.trim();
}
}

@ -0,0 +1,47 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 19:49
* Description:
*/
package com.emr.entity;
import com.github.pagehelper.Page;
import java.util.List;
public class OffsetLimitPage {
private Long total;
private List rows;
public Long getTotal() {
return total;
}
public void setTotal(Long total) {
this.total = total;
}
public List getRows() {
return rows;
}
public void setRows(List rows) {
this.rows = rows;
}
public OffsetLimitPage() {
}
public OffsetLimitPage(List rows, Long total) {
this.rows = rows;
this.total = total;
}
public OffsetLimitPage(Page rows) {
this(rows, rows.getTotal());
}
}

@ -0,0 +1,195 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/8/22 13:48
* Description:
*/
package com.emr.entity;
import java.util.Set;
public class Power_User {
/**
* id
*/
private Integer userId;
/**
*
*/
private String userName;
/**
* 10
*/
private Integer userSex;
/**
*
*/
private Integer userAge;
/**
*
*/
private String userTel;
/**
*
*/
private String userEmail;
/**
*
*/
private String userPosition;
/**
* id
*/
private Integer roleId;
/**
*
*/
private Integer effective;
/**
*
*/
private String createDate;
/**
*
*/
private String creater;
/**
*
*/
private String updateDate;
/**
*
*/
private String updater;
/**
*
*/
private String remark;
/**
*
*/
private Set<String> menus;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Integer getUserSex() {
return userSex;
}
public void setUserSex(Integer userSex) {
this.userSex = userSex;
}
public Integer getUserAge() {
return userAge;
}
public void setUserAge(Integer userAge) {
this.userAge = userAge;
}
public String getUserTel() {
return userTel;
}
public void setUserTel(String userTel) {
this.userTel = userTel;
}
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
public String getUserPosition() {
return userPosition;
}
public void setUserPosition(String userPosition) {
this.userPosition = userPosition;
}
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
public Integer getEffective() {
return effective;
}
public void setEffective(Integer effective) {
this.effective = effective;
}
public String getCreateDate() {
return createDate;
}
public void setCreateDate(String createDate) {
this.createDate = createDate;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater;
}
public String getUpdateDate() {
return updateDate;
}
public void setUpdateDate(String updateDate) {
this.updateDate = updateDate;
}
public String getUpdater() {
return updater;
}
public void setUpdater(String updater) {
this.updater = updater;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Set<String> getMenus() {
return menus;
}
public void setMenus(Set<String> menus) {
this.menus = menus;
}
}

@ -0,0 +1,30 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/11/11 11:45
* Description:
*/
package com.emr.entity;
public class ReturnAsmx {
private String resultCode;
private String resultDesc;
public String getResultCode() {
return resultCode;
}
public void setResultCode(String resultCode) {
this.resultCode = resultCode;
}
public String getResultDesc() {
return resultDesc;
}
public void setResultDesc(String resultDesc) {
this.resultDesc = resultDesc;
}
}

@ -0,0 +1,39 @@
package com.emr.entity;
import java.io.Serializable;
public class TPrintinfo implements Serializable {
private String patientId;
private String isprint;
private static final long serialVersionUID = 1L;
public String getPatientId() {
return patientId;
}
public void setPatientId(String patientId) {
this.patientId = patientId == null ? null : patientId.trim();
}
public String getIsprint() {
return isprint;
}
public void setIsprint(String isprint) {
this.isprint = isprint == null ? null : isprint.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", patientId=").append(patientId);
sb.append(", isprint=").append(isprint);
sb.append("]");
return sb.toString();
}
}

@ -0,0 +1,153 @@
package com.emr.entity;
public class TUuInfo {
private String patientId;
private String inpNo;
private String visitId;
private String hzname;
private String sex;
private String dischargeDateTime;
private String admissionDateTime;
private String deptName;
private String doctorDept;
private String checkedDoctor;
private String checkedDatetime;
private String doctorInCharge;
private String sys;
private String uuname;
private String uploaddatetime;
public String getPatientId() {
return patientId;
}
public void setPatientId(String patientId) {
this.patientId = patientId == null ? null : patientId.trim();
}
public String getInpNo() {
return inpNo;
}
public void setInpNo(String inpNo) {
this.inpNo = inpNo == null ? null : inpNo.trim();
}
public String getVisitId() {
return visitId;
}
public void setVisitId(String visitId) {
this.visitId = visitId == null ? null : visitId.trim();
}
public String getHzname() {
return hzname;
}
public void setHzname(String hzname) {
this.hzname = hzname == null ? null : hzname.trim();
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex == null ? null : sex.trim();
}
public String getDischargeDateTime() {
return dischargeDateTime;
}
public void setDischargeDateTime(String dischargeDateTime) {
this.dischargeDateTime = dischargeDateTime == null ? null : dischargeDateTime.trim();
}
public String getAdmissionDateTime() {
return admissionDateTime;
}
public void setAdmissionDateTime(String admissionDateTime) {
this.admissionDateTime = admissionDateTime == null ? null : admissionDateTime.trim();
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName == null ? null : deptName.trim();
}
public String getDoctorDept() {
return doctorDept;
}
public void setDoctorDept(String doctorDept) {
this.doctorDept = doctorDept == null ? null : doctorDept.trim();
}
public String getCheckedDoctor() {
return checkedDoctor;
}
public void setCheckedDoctor(String checkedDoctor) {
this.checkedDoctor = checkedDoctor == null ? null : checkedDoctor.trim();
}
public String getCheckedDatetime() {
return checkedDatetime;
}
public void setCheckedDatetime(String checkedDatetime) {
this.checkedDatetime = checkedDatetime == null ? null : checkedDatetime.trim();
}
public String getDoctorInCharge() {
return doctorInCharge;
}
public void setDoctorInCharge(String doctorInCharge) {
this.doctorInCharge = doctorInCharge == null ? null : doctorInCharge.trim();
}
public String getSys() {
return sys;
}
public void setSys(String sys) {
this.sys = sys == null ? null : sys.trim();
}
public String getUuname() {
return uuname;
}
public void setUuname(String uuname) {
this.uuname = uuname == null ? null : uuname.trim();
}
public String getUploaddatetime() {
return uploaddatetime;
}
public void setUploaddatetime(String uploaddatetime) {
this.uploaddatetime = uploaddatetime == null ? null : uploaddatetime.trim();
}
}

@ -0,0 +1,135 @@
package com.emr.entity;
import java.util.Date;
public class TUuPrint {
private String patientId;
private String inpNo;
private String visitId;
private String hzname;
private String sex;
private String admissionDateTime;
private String dischargeDateTime;
private String name;
private String doctorInCharge;
private String filetitle;
private String cpyuser;
private Date cpytime;
private Integer flag;
public String getPatientId() {
return patientId;
}
public void setPatientId(String patientId) {
this.patientId = patientId == null ? null : patientId.trim();
}
public String getInpNo() {
return inpNo;
}
public void setInpNo(String inpNo) {
this.inpNo = inpNo == null ? null : inpNo.trim();
}
public String getVisitId() {
return visitId;
}
public void setVisitId(String visitId) {
this.visitId = visitId == null ? null : visitId.trim();
}
public String getHzname() {
return hzname;
}
public void setHzname(String hzname) {
this.hzname = hzname == null ? null : hzname.trim();
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex == null ? null : sex.trim();
}
public String getAdmissionDateTime() {
return admissionDateTime;
}
public void setAdmissionDateTime(String admissionDateTime) {
this.admissionDateTime = admissionDateTime == null ? null : admissionDateTime.trim();
}
public String getDischargeDateTime() {
return dischargeDateTime;
}
public void setDischargeDateTime(String dischargeDateTime) {
this.dischargeDateTime = dischargeDateTime == null ? null : dischargeDateTime.trim();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public String getDoctorInCharge() {
return doctorInCharge;
}
public void setDoctorInCharge(String doctorInCharge) {
this.doctorInCharge = doctorInCharge == null ? null : doctorInCharge.trim();
}
public String getFiletitle() {
return filetitle;
}
public void setFiletitle(String filetitle) {
this.filetitle = filetitle == null ? null : filetitle.trim();
}
public String getCpyuser() {
return cpyuser;
}
public void setCpyuser(String cpyuser) {
this.cpyuser = cpyuser == null ? null : cpyuser.trim();
}
public Date getCpytime() {
return cpytime;
}
public void setCpytime(Date cpytime) {
this.cpytime = cpytime;
}
public Integer getFlag() {
return flag;
}
public void setFlag(Integer flag) {
this.flag = flag;
}
}

@ -0,0 +1,33 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/8/2 18:09
* Description:
*/
package com.emr.entity;
import java.util.List;
public class Upload_File_Vo {
private String masterID;
private List<File_Vo> list;
public String getMasterID() {
return masterID;
}
public void setMasterID(String masterID) {
this.masterID = masterID == null ? null : masterID.trim();
}
public List<File_Vo> getList() {
return list;
}
public void setList(List<File_Vo> list) {
this.list = list;
}
}

@ -0,0 +1,142 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/9/2 14:22
* Description:
*/
package com.emr.entity;
public class V_Count {
private String deptCode;
private String deptName;
private Integer inNum;
private Integer outNum;
private Integer fileNum;
private Integer unfileNum;
private Integer deathNum;
private String fileRate;
private String day2Rate;
private String day3Rate;
private String day7Rate;
private String startDate;
private String endDate;
public String getDeptCode() {
return deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public Integer getInNum() {
return inNum;
}
public void setInNum(Integer inNum) {
this.inNum = inNum;
}
public Integer getOutNum() {
return outNum;
}
public void setOutNum(Integer outNum) {
this.outNum = outNum;
}
public Integer getFileNum() {
return fileNum;
}
public void setFileNum(Integer fileNum) {
this.fileNum = fileNum;
}
public Integer getUnfileNum() {
return unfileNum;
}
public void setUnfileNum(Integer unfileNum) {
this.unfileNum = unfileNum;
}
public Integer getDeathNum() {
return deathNum;
}
public void setDeathNum(Integer deathNum) {
this.deathNum = deathNum;
}
public String getFileRate() {
return fileRate;
}
public void setFileRate(String fileRate) {
this.fileRate = fileRate;
}
public String getDay2Rate() {
return day2Rate;
}
public void setDay2Rate(String day2Rate) {
this.day2Rate = day2Rate;
}
public String getDay3Rate() {
return day3Rate;
}
public void setDay3Rate(String day3Rate) {
this.day3Rate = day3Rate;
}
public String getDay7Rate() {
return day7Rate;
}
public void setDay7Rate(String day7Rate) {
this.day7Rate = day7Rate;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
}

@ -0,0 +1,43 @@
package com.emr.entity;
public class Zd_Assort {
private String assortId;
private String assortName;
private Short assortSort;
private String printFlag;
public String getAssortId() {
return assortId;
}
public void setAssortId(String assortId) {
this.assortId = assortId == null ? null : assortId.trim();
}
public String getAssortName() {
return assortName;
}
public void setAssortName(String assortName) {
this.assortName = assortName == null ? null : assortName.trim();
}
public Short getAssortSort() {
return assortSort;
}
public void setAssortSort(Short assortSort) {
this.assortSort = assortSort;
}
public String getPrintFlag() {
return printFlag;
}
public void setPrintFlag(String printFlag) {
this.printFlag = printFlag == null ? null : printFlag.trim();
}
}

@ -0,0 +1,87 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:27
* Description:
*/
package com.emr.service;
import com.emr.entity.Archive_Detail;
import com.emr.entity.Archive_Detail_Vo;
import com.emr.entity.OffsetLimitPage;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PathVariable;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
public interface Archive_DetailService {
/**
*
*
* @param record
* @return
*/
List<Archive_Detail_Vo> selectByClo(Archive_Detail_Vo record);
/**
*
*
* @param record
* @return
*/
OffsetLimitPage detailByClo(Archive_Detail_Vo record, Integer offset, Integer limit);
/**
*
*
* @param record
* @return
*/
int updateCloById(Archive_Detail record);
/**
*
* @param record
* @return
*/
int insertSel(Archive_Detail record);
/**
* id
* @param id
* @return
*/
Archive_Detail selectByid(String id);
/**
* +
* @param record
* @return
*/
int deleteByClo(Archive_Detail record);
/**
*
* @param record
* @return
*/
List<Archive_Detail> selectByColm(Archive_Detail record);
List<Archive_Detail> selectByCol(Archive_Detail record);
/**
* id
*
* @return
*/
List<Archive_Detail> selectByIdStr(Archive_Detail record);
void getPdfToPdf(HttpServletResponse response,String imgStr,String masterId,String pdfWater);
List<Archive_Detail> selectTypeTreeByPatientIdAndAssortIds(String patientId,String assortIds);
void selectPdfPathByIds(HttpServletResponse response, String detailIds, String masterId,String pdfWater);
}

@ -0,0 +1,127 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:27
* Description:
*/
package com.emr.service;
import com.emr.entity.Archive_Master;
import com.emr.entity.Archive_Master_Vo;
import com.emr.entity.Emr_Fault_Detail_Vo;
import com.emr.entity.OffsetLimitPage;
import com.emr.util.Msg;
import java.util.List;
import java.util.Map;
public interface Archive_MasterService {
/**
*
* @param archiveMasterVo
* @return
*/
OffsetLimitPage selectByCol(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);
/**
*
* @param archiveMasterVo
* @return
*/
List<Archive_Master> selectByCol(Archive_Master_Vo archiveMasterVo);
/**
*
*
* @param archiveMasterVo
* @return
*/
List<Archive_Master_Vo> selectByLast(Archive_Master_Vo archiveMasterVo);
/**
* '','退'
*
* @param archiveMasterVo
* @return
*/
List<Archive_Master_Vo> selectByColumn(Archive_Master_Vo archiveMasterVo);
/**
*
*
* @param archiveMasterVo
* @return
*/
List<Archive_Master_Vo> selectByUnfile(Archive_Master_Vo archiveMasterVo);
/**
* '','退'
*
* @param archiveMasterVo
* @return
*/
OffsetLimitPage selectByColumn(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);
/**
*
*
* @param archiveMasterVo
* @return
*/
OffsetLimitPage selectByUnfile(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);
/**
*
*
* @param archiveMasterVo
* @return
*/
OffsetLimitPage selectByLast(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);
/**
*
* @param record
* @return
*/
int updateByClo(Archive_Master record);
/**
* id
* @param record
* @return
*/
int updateById(Archive_Master record);
/**
* id
* @param
* @return
*/
Archive_Master selectByPrimaryKey(String id);
int updateReturn(Emr_Fault_Detail_Vo emrFaultDetail) throws Exception;
List<Archive_Master> selectByObject(Archive_Master master);
/**
*
* */
Msg updateStateByArchivId(Archive_Master_Vo master) throws Exception;
/**
*
* */
OffsetLimitPage selectFiled(Archive_Master_Vo master,Integer offset, Integer limit);
/**
*
* */
void updateFiled(Archive_Master_Vo master) throws Exception;
Msg getRole();
List<Archive_Master_Vo> selectLastVerifyList(Archive_Master_Vo archiveMasterVo);
}

@ -0,0 +1,13 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:27
* Description:
*/
package com.emr.service;
public interface Emr_Archive_DetailService {
}

@ -0,0 +1,47 @@
package com.emr.service;
import com.emr.entity.Emr_Dictionary;
import java.util.List;
public interface Emr_DictionaryService {
/**
*
*
* @param emrDictionary
* @return
*/
List<Emr_Dictionary> dicByTypeCode(Emr_Dictionary emrDictionary);
/**
*
*
* @param emrDictionary
* @return
*/
List<Emr_Dictionary> dicByClo(Emr_Dictionary emrDictionary);
/**
*
*
* @param emrDictionary
* @return
*/
int insertSel(Emr_Dictionary emrDictionary);
/**
* id
*
* @param id
* @return
*/
int delById(Integer id);
/**
* id
*
* @param emrDictionary
* @return
*/
int updateCloById(Emr_Dictionary emrDictionary);
}

@ -0,0 +1,54 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:27
* Description:
*/
package com.emr.service;
import com.emr.entity.Emr_Fault_Detail;
import com.emr.entity.Emr_Fault_Vo;
import com.emr.entity.OffsetLimitPage;
import java.util.List;
public interface Emr_Fault_DetailService {
/**
*
* @param emrFaultVo
* @param offset
* @param limit
* @return
*/
OffsetLimitPage selectByCol(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit);
/**
*
* @param emrFaultVo
* @return
*/
List<Emr_Fault_Vo> selectByCol(Emr_Fault_Vo emrFaultVo);
/**
* id
* @param emrFaultDetail
* @return
*/
int updateCloByPrimaryKey(Emr_Fault_Detail emrFaultDetail);
/**
* 退
* @param record
* @return
*/
Emr_Fault_Detail selectByArchiveDetailId(Emr_Fault_Detail record);
/**
* 退
* @param record
* @return
*/
int insertSel(Emr_Fault_Detail record);
}

@ -0,0 +1,53 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:35
* Description:
*/
package com.emr.service;
import com.emr.entity.Emr_Fault_Type;
import java.util.List;
public interface Emr_Fault_TypeService {
/**
*
* @param record
* @return
*/
List<Emr_Fault_Type> selectByCol(Emr_Fault_Type record);
/**
*
*
* @param record
* @return
*/
int updateByClo(Emr_Fault_Type record);
/**
*
* @param record
* @return
*/
int insertClo(Emr_Fault_Type record);
/**
* id
* @param id
* @return
*/
int delById(Integer id);
/**
* id
*
* @param id
* @return
*/
Emr_Fault_Type selectById(Integer id);
}

@ -0,0 +1,51 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:28
* Description:
*/
package com.emr.service;
import com.emr.entity.Emr_Picture;
import java.util.List;
public interface Emr_PictureService {
/**
* id
* @param id
* @return
*/
Emr_Picture selectByid(String id);
/**
*
* @param record
* @return
*/
int insertSel(Emr_Picture record);
/**
* id
* @param record
* @return
*/
int updateCloByIdOrFlay(Emr_Picture record);
/**
*
* @param record
* @return
*/
List<Emr_Picture> selectByClo(Emr_Picture record);
/**
* id
* @param id
* @return
*/
int deleteById(String id);
}

@ -0,0 +1,33 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:35
* Description:
*/
package com.emr.service;
import com.emr.entity.*;
import com.emr.vo.V_CountVo;
import java.util.List;
public interface V_CountService {
/**
*
* @param record
* @return
*/
List<V_Count> selectByCol(V_CountVo record);
/**
*
*
* @param record
* @return
*/
OffsetLimitPage selectPageByClo(V_CountVo record, Integer offset, Integer limit);
}

@ -0,0 +1,7 @@
package com.emr.service;
import org.springframework.stereotype.Component;
@Component
public class WebService {
}

@ -0,0 +1,152 @@
package com.emr.service.ipml;
import com.emr.dao.ArchiveCallbackInfoMapper;
import com.emr.entity.ArchiveCallbackInfo;
import com.emr.entity.Archive_Master;
import com.emr.entity.OffsetLimitPage;
import com.emr.service.Archive_MasterService;
import com.emr.vo.ArchiveCallbackInfoVo;
import com.emr.vo.FinalAndFirstStatistics;
import com.emr.vo.User;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.List;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/5/12 16:12
* @UpdateUser:
* @UpdateDate: 2020/5/12 16:12
* @UpdateRemark:
* @Version: 1.0
*/
@Service
@Transactional
public class ArchiveCallbackInfoService {
@Autowired
private ArchiveCallbackInfoMapper callbackInfoMapper;
@Autowired
private Archive_MasterService archiveMasterService;
@Autowired
private ArchiveFlowInfoService archiveFlowInfoService;
@Autowired
private StatisticsService statisticsService;
/**
*
*
* @param callbackInfo
* @throws Exception
*/
public void insertCallbackInfoService(ArchiveCallbackInfo callbackInfo) throws Exception {
String username = (String) SecurityUtils.getSubject().getSession().getAttribute("userSession");
callbackInfo.setCallbackUserName(username);
callbackInfo.setCallbackTime(new Date());
//获取ip
String addressIp = getAddressIp();
callbackInfo.setIp(addressIp);
callbackInfoMapper.insert(callbackInfo);
//将病案置为召回,修改状态码
Archive_Master master = new Archive_Master();
master.setId(callbackInfo.getMasterId());
master.setArchivestate(EnumVerify.DocState.CallBacked.getCode() + "");
archiveMasterService.updateByClo(master);
//添加进流程
String masterId = callbackInfo.getMasterId();
String currentCode = EnumVerify.DocState.CallBacked.getCode() + "";
String remark = callbackInfo.getCallbackReason();
Integer targetCode = EnumVerify.DocState.CallBacked.getCode();
archiveFlowInfoService.insertFlowInfo(masterId,currentCode,remark,targetCode,new Date());
//TODO 删除病案资料
}
private String getAddressIp(){
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
// 获取访问真实IP
String ipAddress = request.getHeader("x-forwarded-for");
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
if(ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")){
//根据网卡取本机配置的IP
InetAddress inet=null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ipAddress= inet.getHostAddress();
}
}
//对于通过多个代理的情况第一个IP为客户端真实IP,多个IP按照','分割
if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15
if(ipAddress.indexOf(",")>0){
ipAddress = ipAddress.substring(0,ipAddress.indexOf(","));
}
}
return ipAddress;
}
/**
*
*
* @param callbackInfoVo
* @param offset
* @param limit
* @return
*/
public OffsetLimitPage selectAll(ArchiveCallbackInfoVo callbackInfoVo, Integer offset, Integer limit) {
PageHelper.offsetPage(offset, limit);
List<ArchiveCallbackInfoVo> list = selectCallBackInfo(callbackInfoVo);
return new OffsetLimitPage((Page) list);
}
public List<ArchiveCallbackInfoVo> selectCallBackInfo(ArchiveCallbackInfoVo callbackInfoVo){
List<ArchiveCallbackInfoVo> list = callbackInfoMapper.selectAll(callbackInfoVo);
if (!CollectionUtils.isEmpty(list)) {
//转换状态
//计算属于哪种审核角色
List<User> userList = statisticsService.getUserList();
for (int i = 0; i < list.size(); i++) {
String archivestate = list.get(i).getArchivestate();
if (StringUtils.isNotBlank(archivestate)) {
//转换中文状态
Integer status = Integer.valueOf(archivestate);
archivestate = EnumVerify.DocState.GetStepName(status, EnumVerify.Checker.Generate.getCode());
list.get(i).setArchivestate(archivestate);
}
if(!CollectionUtils.isEmpty(userList)) {
//转换姓名
String userName = list.get(i).getCallbackUserName();
for (User user : userList) {
if (StringUtils.isNotBlank(userName) && userName.equals(user.getUserName())) {
list.get(i).setCallbackUserName(user.getName());
break;
}
}
}
}
}
return list;
}
}

@ -0,0 +1,289 @@
package com.emr.service.ipml;
import com.emr.dao.ArchiveFlowInfoMapper;
import com.emr.dao.ArchiveFlowRoleMapper;
import com.emr.dao.Archive_MasterMapper;
import com.emr.dao.EmrHolidaySetMapper;
import com.emr.entity.*;
import com.emr.service.Emr_Fault_DetailService;
import com.emr.service.Emr_Fault_TypeService;
import com.emr.vo.ArchiveFlowInfoVo;
import com.emr.vo.User;
import com.github.pagehelper.PageHelper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/5/12 8:49
* @UpdateUser:
* @UpdateDate: 2020/5/12 8:49
* @UpdateRemark:
* @Version: 1.0
*/
@Service
@Transactional
public class ArchiveFlowInfoService {
@Autowired
private ArchiveFlowInfoMapper flowInfoMapper;
@Autowired
private ArchiveFlowRoleMapper flowRoleMapper;
@Autowired
private Archive_MasterMapper archiveMasterMapper;
@Autowired
private StatisticsService statisticsService;
@Autowired
private Emr_Fault_TypeService faultTypeService;
@Autowired
private EmrHolidaySetMapper holidaySetMapper;
/**
*
* @param masterId
* @param currentStatus code
* @param remark
* @param appointNextCode code使
* @param sumbitDate
* @throws Exception
*/
public Integer insertFlowInfo(String masterId,String currentStatus,String remark,Integer appointNextCode,Date sumbitDate)throws Exception{
if(StringUtils.isNotBlank(currentStatus)) {
//添加退回流程
ArchiveFlowInfo flowInfo = new ArchiveFlowInfo();
//masterId;
flowInfo.setMasterId(masterId);
//查询审核角色集合根据有效进行计算状态code
List<ArchiveFlowRole> archiveFlowRoles = flowRoleMapper.selectAll();
//stepIndex:当前步骤
ArchiveFlowRole currentRole = new ArchiveFlowRole();
for (ArchiveFlowRole archiveFlowRole : archiveFlowRoles) {
if (archiveFlowRole.getCode().equals(currentStatus)) {
currentRole = archiveFlowRole;
break;
}
}
//当前stepIndex
flowInfo.setStepIndex(currentRole.getStepIndex());
//当前节点id
flowInfo.setStartStepId(currentRole.getId());
//startStep:当前步骤name
flowInfo.setStartStep(currentRole.getName());
//定义操作角色operRole
Short operRole = currentRole.getRole();
//sumbitName
flowInfo.setSumbitName(currentRole.getSumbitName());
//targetStep:下一步骤name
ArchiveFlowRole nextRole = new ArchiveFlowRole();
for (ArchiveFlowRole archiveFlowRole : archiveFlowRoles) {
//判断相同审核角色,比当前步骤还大且有效的角色
if (null != archiveFlowRole.getRole() && archiveFlowRole.getEffective() == 1) {
if(null == appointNextCode){
if(null != currentRole.getRole() && null != archiveFlowRole.getStepIndex()){
if (currentRole.getRole().equals(archiveFlowRole.getRole()) && archiveFlowRole.getStepIndex() > currentRole.getStepIndex()) {
nextRole = archiveFlowRole;
break;
}
}
}else{
//指定的下个节点code用于退回
if (archiveFlowRole.getCode().equals(appointNextCode+"")) {
//医生退回下个节点为医生
if(appointNextCode.equals(EnumVerify.DocState.DortorBack.getCode())){
//sumbitName
flowInfo.setSumbitName(EnumVerify.DocState.DortorBack.getName());
nextRole.setName(EnumVerify.DocState.DortorSubmit.getName());
nextRole.setId(archiveFlowRole.getId());
operRole = 1;
break;
//护士退回下个节点为护士
}else if(appointNextCode.equals(EnumVerify.DocState.NurseBack.getCode())){
flowInfo.setSumbitName(EnumVerify.DocState.NurseBack.getName());
nextRole.setName(EnumVerify.DocState.NurseSubmit.getName());
nextRole.setId(archiveFlowRole.getId());
operRole = 2;
break;
//下个节点是病案室审核,属于召回
}else if(appointNextCode.equals(EnumVerify.DocState.CallBacked.getCode())){
flowInfo.setSumbitName(archiveFlowRole.getSumbitName());
nextRole.setName(EnumVerify.DocState.MedicalRoomCheck.getName());
//查询病案室终审id
for (ArchiveFlowRole archiveFlowRole1 : archiveFlowRoles) {
if (archiveFlowRole1.getCode().equals(EnumVerify.DocState.MedicalRoomCheck.getCode()+"")) {
nextRole.setId(archiveFlowRole1.getId());
break;
}
}
//病案室审核
}else if(appointNextCode.equals(EnumVerify.DocState.MedicalRoomCheck.getCode())){
nextRole.setName("已归档");
nextRole.setId(archiveFlowRole.getId());
}
}
}
}
}
//下个节点为空,填写护士长
if(StringUtils.isBlank(nextRole.getName())){
for (ArchiveFlowRole archiveFlowRole : archiveFlowRoles) {
if(archiveFlowRole.getCode().equals(EnumVerify.DocState.HeadNurseCheck.getCode()+"")){
nextRole = archiveFlowRole;
break;
}
}
}
flowInfo.setTargetStep(nextRole.getName());
//下个节点的id
flowInfo.setTargetStepId(nextRole.getId());
//useSeconds:距离上次提交用时s数
Date preDate = new Date();
//查询上次节点的时间
//查询上次节点的时间方法参数当前节点的名称,当下个节点为病案室终审不带当前审核名称查询该病案最后审核时间
String currentName = "";
if(!nextRole.getName().equals(EnumVerify.DocState.MedicalRoomCheck.getName())){
currentName = currentRole.getName();
}
List<ArchiveFlowInfo> archiveFlowInfos = flowInfoMapper.selectPreInfo(masterId,currentName);
if (null != archiveFlowInfos && !archiveFlowInfos.isEmpty()) {
//存在取最后一次提交时间
preDate = archiveFlowInfos.get(0).getCreatetime();
} else {
//取出院时间
Archive_Master archiveMaster1 = archiveMasterMapper.selectByPrimaryKey(masterId);
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dischargeDateTime = archiveMaster1.getDischargeDateTime();
if (StringUtils.isNotBlank(dischargeDateTime)) {
preDate = fmt.parse(dischargeDateTime);
}
}
if (null != preDate) {
long millis = System.currentTimeMillis() - preDate.getTime();
//查询是否这个时间段是否有假日
int holidayDays = holidaySetMapper.selectHolidayByDate(preDate);
if(holidayDays != 0){
int holidayMilTime = holidayDays * 24 * 3600 * 1000;
millis -= holidayMilTime;
}
flowInfo.setUseSeconds(millis / 1000);
}
flowInfo.setOperRole(operRole);
//remark:提交内容
flowInfo.setRemark(remark);
//userName:提交人用户名
// 从session获取用户名
String username = (String) SecurityUtils.getSubject().getSession().getAttribute("userSession");
flowInfo.setUserName(username);
//submit:提交时间
flowInfo.setSumbitTime(sumbitDate);
//createtime:创建时间
flowInfo.setCreatetime(new Date());
flowInfoMapper.insertSelective(flowInfo);
return flowInfo.getId();
}
return null;
}
/**
* masterId
* @param id
* @return
*/
public List<ArchiveFlowInfoVo> selectFlowInfoByMasterId(String id) {
List<ArchiveFlowInfoVo> list = flowInfoMapper.selectFlowInfoByMasterId(id);
if(!CollectionUtils.isEmpty(list)) {
//获取缺陷类别列表
Emr_Fault_Type obj = new Emr_Fault_Type();
obj.setEffective(1);
List<Emr_Fault_Type> typeList = faultTypeService.selectByCol(obj);
List<User> userList = statisticsService.getUserList();
//替换姓名
if (!CollectionUtils.isEmpty(userList)) {
for (int i = 0;i<list.size();i++) {
ArchiveFlowInfoVo infoVo = list.get(i);
//转换姓名
String userName = infoVo.getUserName();
for (User user : userList) {
if (StringUtils.isNotBlank(userName) && userName.equals(user.getUserName())) {
infoVo.setUserName(user.getName());
break;
}
}
//转换缺陷类别
String faultAssortId = infoVo.getFaultAssortName();
if(StringUtils.isNotBlank(faultAssortId)) {
String[] faultAssortIds = faultAssortId.split(",");
String falutAssortName = "";
for (String assortId : faultAssortIds) {
for (Emr_Fault_Type faultType : typeList) {
if(assortId.equals(faultType.getId()+"")){
falutAssortName += faultType.getTypeName() + ",";
break;
}
}
}
if(falutAssortName.endsWith(",")){
falutAssortName = falutAssortName.substring(0,falutAssortName.length()-1);
infoVo.setFaultAssortName(falutAssortName);
}
}
}
}
}
return list;
}
/**
*
* @param flowInfoVo
* @return
*/
public List<ArchiveFlowInfoVo> selectFlowInfoList(ArchiveFlowInfoVo flowInfoVo,String sql) {
//模糊搜索审核姓名转换工号
String checkName = flowInfoVo.getUserName();
if(StringUtils.isNoneBlank(checkName)){
//转换姓名
List<User> userList = statisticsService.getUserList();
String checkNames = "";
for(User user:userList){
if(StringUtils.isNoneBlank(user.getName()) && user.getName().contains(checkName)){
checkNames += "'" + user.getUserName() + "',";
}
}
if(StringUtils.isNotBlank(checkNames)){
checkNames = checkNames.substring(0,checkNames.length()-1);
flowInfoVo.setUserName(checkNames);
}else{
flowInfoVo.setUserName("'" + checkName + "'");
}
}
List<ArchiveFlowInfoVo> list = flowInfoMapper.selectFlowInfoList(flowInfoVo,sql);
//替换姓名
if(!CollectionUtils.isEmpty(list)) {
List<User> userList = statisticsService.getUserList();
if (!CollectionUtils.isEmpty(userList)) {
for (int i = 0; i < list.size(); i++) {
ArchiveFlowInfoVo infoVo = list.get(i);
//转换姓名
String userName = infoVo.getUserName();
for (User user : userList) {
if (StringUtils.isNotBlank(userName) && userName.equals(user.getUserName())) {
infoVo.setCheckName(user.getName());
break;
}
}
}
}
}
return list;
}
}

@ -0,0 +1,132 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:37
* Description:
*/
package com.emr.service.ipml;
import com.emr.dao.Archive_DetailMapper;
import com.emr.entity.Archive_Detail;
import com.emr.entity.Archive_Detail_Vo;
import com.emr.entity.OffsetLimitPage;
import com.emr.service.Archive_DetailService;
import com.emr.util.Jpg2PdfUtil;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
@Service
public class Archive_DetailServiceImpl implements Archive_DetailService {
@Autowired
private Archive_DetailMapper archiveDetailMapper;
@Override
public List<Archive_Detail_Vo> selectByClo(Archive_Detail_Vo record) {
return archiveDetailMapper.selectByClo(record);
}
@Override
public OffsetLimitPage detailByClo(Archive_Detail_Vo record, Integer offset, Integer limit) {
PageHelper.offsetPage(offset, limit);
List<Archive_Detail_Vo> list = archiveDetailMapper.detailByClo(record);
return new OffsetLimitPage((Page) list);
}
@Override
public int updateCloById(Archive_Detail record) {
return archiveDetailMapper.updateCloById(record);
}
@Override
public int insertSel(Archive_Detail record) {
return archiveDetailMapper.insertSel(record);
}
@Override
public Archive_Detail selectByid(String id) {
return archiveDetailMapper.selectByid(id);
}
@Override
public int deleteByClo(Archive_Detail record) {
return archiveDetailMapper.deleteByClo(record);
}
@Override
public List<Archive_Detail> selectByColm(Archive_Detail record) {
return archiveDetailMapper.selectByColm(record);
}
@Override
public List<Archive_Detail> selectByCol(Archive_Detail record) {
return archiveDetailMapper.selectByCol(record);
}
@Override
public List<Archive_Detail> selectByIdStr(Archive_Detail record) {
return archiveDetailMapper.selectByIdStr(record);
}
@Override
public void getPdfToPdf(HttpServletResponse response, String imgStr, String masterId,String pdfWater) {
if (masterId != "" && masterId != null) {
//获取废除的pdf文件名列表archive_detail
List pdfList = new ArrayList();
Archive_Detail archiveDetail = new Archive_Detail();
archiveDetail.setFlag("0");
archiveDetail.setMasterid(masterId.trim());
archiveDetail.setTitle(imgStr);
try {
List<Archive_Detail> arList = selectByCol(archiveDetail);
if (arList != null && !arList.isEmpty()) {
for (int m = 0; m < arList.size(); m++) {
String str = arList.get(m).getPdfPath();
if (StringUtils.isNoneBlank(str)) {
pdfList.add(str);
}
}
}
Jpg2PdfUtil.mulFile2One(response, pdfList, pdfWater);
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void selectPdfPathByIds(HttpServletResponse response, String detailIds, String masterId,String pdfWater) {
if (masterId != "" && masterId != null) {
//获取废除的pdf文件名列表archive_detail
List pdfList = new ArrayList();
try {
List<Archive_Detail> arList = archiveDetailMapper.selectPdfPathByIds(masterId,detailIds);
if (arList != null && !arList.isEmpty()) {
for (int m = 0; m < arList.size(); m++) {
String str = arList.get(m).getPdfPath();
if (StringUtils.isNoneBlank(str)) {
pdfList.add(str);
}
}
}
Jpg2PdfUtil.mulFile2One(response, pdfList, pdfWater);
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public List<Archive_Detail> selectTypeTreeByPatientIdAndAssortIds(String patientId, String assortIds) {
return archiveDetailMapper.selectTypeTreeByPatientIdAndAssortIds(patientId, assortIds);
}
}

@ -0,0 +1,775 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:39
* Description:
*/
package com.emr.service.ipml;
import com.emr.dao.ArchiveFlowRoleMapper;
import com.emr.dao.Archive_MasterMapper;
import com.emr.entity.*;
import com.emr.service.Archive_MasterService;
import com.emr.service.Emr_Fault_DetailService;
import com.emr.util.Msg;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.apache.shiro.SecurityUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @author zwh
* */
@Service
@Transactional
public class Archive_MasterServiceImpl implements Archive_MasterService {
private static Logger log = Logger.getLogger("myLog");
@Autowired
private Archive_MasterMapper archiveMasterMapper;
@Autowired
private Emr_Fault_DetailService emrFaultDetailService;
@Autowired
private ArchiveFlowRoleMapper flowRoleMapper;
@Autowired
private ArchiveFlowInfoService flowInfoService;
/**
*
* */
@Override
public OffsetLimitPage selectByCol(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) {
PageHelper.offsetPage(offset, limit);
List<Archive_Master> list= archiveMasterMapper.selectByCol(archiveMasterVo);
return new OffsetLimitPage((Page) list);
}
/**
*
* */
@Override
public OffsetLimitPage selectByColumn(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) {
PageHelper.offsetPage(offset, limit);
List<Archive_Master_Vo> list = selectByColumn(archiveMasterVo);
return new OffsetLimitPage((Page) list);
}
/**
*
* */
@Override
public OffsetLimitPage selectByUnfile(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) {
PageHelper.offsetPage(offset, limit);
List<Archive_Master_Vo> list = selectByUnfile(archiveMasterVo);
return new OffsetLimitPage((Page) list);
}
/**
*
* */
@Override
public OffsetLimitPage selectByLast(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) {
PageHelper.offsetPage(offset, limit);
List<Archive_Master_Vo> list = selectLastVerifyList(archiveMasterVo);
return new OffsetLimitPage((Page) list);
}
/**
*
* */
@Override
public List<Archive_Master_Vo> selectLastVerifyList(Archive_Master_Vo archiveMasterVo){
List<Archive_Master_Vo> list = archiveMasterMapper.selectByLast(archiveMasterVo);
if(null != list && !list.isEmpty()){
for (Archive_Master_Vo masterVo : list) {
//状态均为护士长已质控,取出一个对象,转换中文状态
Integer status = Integer.valueOf(masterVo.getArchivestate());
if(status.equals(EnumVerify.DocState.HeadNurseCheck.getCode())){
masterVo.setStatus(EnumVerify.DocState.HeadNurseCheck.getName());
}else if(status.equals(EnumVerify.DocState.CallBacked.getCode())){
masterVo.setStatus(EnumVerify.DocState.CallBacked.getName());
}
}
}
return list;
}
/**
*
* 退
* */
@Override
public OffsetLimitPage selectFiled(Archive_Master_Vo master,Integer offset, Integer limit) {
PageHelper.offsetPage(offset, limit);
List<Archive_Master_Vo> list= archiveMasterMapper.selectFiled(master);
return new OffsetLimitPage((Page) list);
}
@Override
public List<Archive_Master> selectByCol(Archive_Master_Vo archiveMasterVo) {
return archiveMasterMapper.selectByCol(archiveMasterVo);
}
@Override
public List<Archive_Master_Vo> selectByColumn(Archive_Master_Vo archiveMasterVo) {
setMaxRoleId(archiveMasterVo);
List<Archive_Master_Vo> list = archiveMasterMapper.selectByColumn(archiveMasterVo);
//根据状态code转换状态及判断显示按钮
if(null != list && !list.isEmpty()){
//查询流转角色集合
List<ArchiveFlowRole> flowRoles = flowRoleMapper.selectAll();
//计算属于哪种审核角色
Msg role = getRole();
if(null != role) {
for (int i = 0; i < list.size(); i++) {
String archivestate = list.get(i).getArchivestate();
if (StringUtils.isNotBlank(archivestate)) {
//转换中文状态
boolean numeric = isNumeric(archivestate);
if(numeric) {
Integer status = Integer.valueOf(archivestate);
archivestate = EnumVerify.DocState.GetStepName(status, role.getCode());
list.get(i).setStatus(archivestate);
//获取审核按钮和退回按钮集合
String btns = getBtns(status, flowRoles, list.get(i).getId());
list.get(i).setBtns(btns);
}
}
}
}
}
return list;
}
//验证字符串是否是数字
public static boolean isNumeric(String str){
for (int i = 0; i < str.length(); i++){
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
/**
* id,
* @param archiveMasterVo
* @return
*/
private void setMaxRoleId(Archive_Master_Vo archiveMasterVo){
String status = archiveMasterVo.getStatus();
//取最大值
String archivestate = archiveMasterVo.getArchivestate();
if(StringUtils.isNotBlank(status) && StringUtils.isNotBlank(archivestate)){
//查询已审批才处理
if("1".equals(archivestate) && status.contains(",")) {
Integer maxStatus = 0;
String[] statusArr = status.split(",");
for (String statu : statusArr) {
if (StringUtils.isNotBlank(statu)) {
Integer integer = Integer.valueOf(statu);
if (maxStatus < integer) {
//重新赋值
maxStatus = integer;
}
}
}
//设置角色index
archiveMasterVo.setStatus(maxStatus+"");
}
}
}
@Override
public List<Archive_Master_Vo> selectByUnfile(Archive_Master_Vo archiveMasterVo) {
List<Archive_Master_Vo> list = archiveMasterMapper.selectByUnfile(archiveMasterVo);
//根据状态code转换状态及判断显示按钮
if(null != list && !list.isEmpty()){
//计算属于哪种审核角色
Msg role = getRole();
if(null != role) {
for (int i = 0; i < list.size(); i++) {
String archivestate = list.get(i).getArchivestate();
String dischargeDateTime = list.get(i).getDischargeDateTime();
//年份是1801定义为在院
//定义是否是在院病历
boolean flag = false;
if(StringUtils.isNotBlank(dischargeDateTime) && dischargeDateTime.length() >= 4){
String year = dischargeDateTime.substring(0, 4);
if("1801".equals(year)){
flag = true;
list.get(i).setStatus("在院");
}
}
if (StringUtils.isNotBlank(archivestate) && !flag) {
//转换中文状态
Integer status = Integer.valueOf(archivestate);
archivestate = EnumVerify.DocState.GetStepName(status, role.getCode());
list.get(i).setStatus(archivestate);
}
}
}
}
return list;
}
@Override
public List<Archive_Master_Vo> selectByLast(Archive_Master_Vo archiveMasterVo) {
return archiveMasterMapper.selectByLast(archiveMasterVo);
}
/**
* 退
* */
private String getBtns(Integer status,List<ArchiveFlowRole> roles,String id){
String btns = "";
//获取用户功能权限信息
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER");
Set<String> menus = user.getMenus();
if(null != menus && !menus.isEmpty()) {
//医生提交权限标识
String doctorSumbit = "/beHosp/doctorSumbit";
//医生质控员质控权限标识
String doctorCheckSumbit = "/beHosp/doctorCheckSumbit";
//科主任审核权限标识
String directorCheckSumbit = "/beHosp/directorCheckSumbit";
//护士提交权限标识
String nurseSumbit = "/beHosp/nurseSumbit";
//护士质控员质控权限标识
String nurseCheckSumbit = "/beHosp/nurseCheckSumbit";
//护士长审核权限标识
String headNurseCheck = "/beHosp/headNurseCheck";
//退回权限标识
String backSumbit = "/beHosp/backSumbit";
//医生提交权限标识
int doctorSumbitPower = 0;
//医生质控员质控权限标识
int doctorCheckSumbitPower = 0;
//科主任审核权限标识
int directorCheckSumbitPower = 0;
//护士提交权限标识
int nurseSumbitPower = 0;
//护士质控员质控权限标识
int nurseCheckSumbitPower = 0;
//护士长审核权限标识
int headNurseCheckPower = 0;
//退回权限标识
int backPower = 0;
//遍历判断拥有权限拥有护士长权限立即返回4拥有医生支线赋值doctorRole=1,拥有护士支线赋值nurseRole=1
for (String menu : menus) {
if (StringUtils.isNotBlank(menu)) {
if (menu.equals(doctorSumbit+"")) {
doctorSumbitPower = 1;
}
if (menu.equals(doctorCheckSumbit+"")) {
doctorCheckSumbitPower = 1;
}
if (menu.equals(directorCheckSumbit+"")) {
directorCheckSumbitPower = 1;
}
if (menu.equals(nurseSumbit+"")) {
nurseSumbitPower = 1;
}
if (menu.equals(nurseCheckSumbit+"")) {
nurseCheckSumbitPower = 1;
}
if (menu.equals(headNurseCheck+"")) {
headNurseCheckPower = 1;
}
if (menu.equals(backSumbit+"")) {
backPower = 1;
}
}
}
//判断按钮
//定义按钮
String headNurseSumbitName = "护士长审核";
String doctorSumbitName = "医生提交";
String doctorCheckSumbitName = "医生质控员质控";
String directorCheckSumbitName = "科主任审核";
String nurseSumbitName = "护士提交";
String nurseCheckSumbitName = "护士质控员质控";
//定义医生提交是否有效
int doctorSubmitEffective = 0;
//定义医生质控员是否有效
int dortorCheckEffective = 0;
//定义科主任审核是否有效
int directorCheckEffective = 0;
//定义护士提交是否有效
int nurseSubmitEffective = 0;
//定义护士质控员质控是否有效
int nurseCheckEffective = 0;
//定义护士长质控是否有效
int headNurseCheckEffective = 0;
for (ArchiveFlowRole flowRole : roles) {
if(flowRole.getCode().equals(EnumVerify.DocState.HeadNurseCheck.getCode()+"")){
headNurseSumbitName = flowRole.getSumbitName();
headNurseCheckEffective = flowRole.getEffective();
}else if(flowRole.getCode().equals(EnumVerify.DocState.DortorSubmit.getCode()+"")){
doctorSumbitName = flowRole.getSumbitName();
doctorSubmitEffective = flowRole.getEffective();
}else if(flowRole.getCode().equals(EnumVerify.DocState.DortorCheck.getCode()+"")){
doctorCheckSumbitName = flowRole.getSumbitName();
dortorCheckEffective = flowRole.getEffective();
}else if(flowRole.getCode().equals(EnumVerify.DocState.DirectorCheck.getCode()+"")){
directorCheckSumbitName = flowRole.getSumbitName();
directorCheckEffective = flowRole.getEffective();
}else if(flowRole.getCode().equals(EnumVerify.DocState.NurseSubmit.getCode()+"")){
nurseSumbitName = flowRole.getSumbitName();
nurseSubmitEffective = flowRole.getEffective();
}else if(flowRole.getCode().equals(EnumVerify.DocState.NurseCheck.getCode()+"")){
nurseCheckSumbitName = flowRole.getSumbitName();
nurseCheckEffective = flowRole.getEffective();
}
}
//判断组织审核按钮
//审核按钮参数1:角色编号1或2或4。2:当前code。3.下个节点code。4:masterId
//退回按钮参数1:当前code。2:下个节点code。3:masterId
//护士长
String masterId = '"' + id + '"';
//定义下个节点code
Integer targetCode = 0;
if(!EnumVerify.DocState.HasCurrentState(status,EnumVerify.DocState.HeadNurseCheck)){
//判断是否护士长审核
boolean headNurseCheckFlag = getHeadNurseCheckFlag(status,roles);
if (headNurseCheckFlag) {
if (headNurseCheckPower == 1 && headNurseCheckEffective == 1) {
targetCode = EnumVerify.DocState.HeadNurseCheck.getCode();
btns += "<button type='button' class='btn btn-primary btn-sm' onclick='verifyInfo(" + EnumVerify.Checker.Generate.getCode() + "," + status + "," + targetCode +","+masterId+")'>"+headNurseSumbitName+"</button>";
}
} else {
//没有医生提交
if (!EnumVerify.DocState.HasCurrentState(status, EnumVerify.DocState.DortorSubmit)) {
if (doctorSumbitPower == 1 && doctorSubmitEffective == 1) {
targetCode = EnumVerify.DocState.DortorSubmit.getCode();
btns += "<button type='button' class='btn btn-primary btn-sm' onclick='verifyInfo(" + EnumVerify.Checker.Dortor.getCode() + "," + status + "," + targetCode+ "," + masterId +")'>"+doctorSumbitName+"</button>";
}
}
//没有医生质控员提交
if (!EnumVerify.DocState.HasCurrentState(status, EnumVerify.DocState.DortorCheck) && EnumVerify.DocState.HasCurrentState(status, EnumVerify.DocState.DortorSubmit) || doctorSubmitEffective == 0) {
if (doctorCheckSumbitPower == 1 && dortorCheckEffective == 1) {
targetCode = EnumVerify.DocState.DortorCheck.getCode();
btns += "<button type='button' class='btn btn-primary btn-sm' onclick='verifyInfo(" + EnumVerify.Checker.Dortor.getCode() + "," + status + "," + targetCode+","+masterId+")'>"+doctorCheckSumbitName+"</button>";
}
}
//没有科主任审核
if (!EnumVerify.DocState.HasCurrentState(status, EnumVerify.DocState.DirectorCheck) && EnumVerify.DocState.HasCurrentState(status, EnumVerify.DocState.DortorCheck) || (dortorCheckEffective == 0 && doctorSubmitEffective == 0) || (dortorCheckEffective == 0 && EnumVerify.DocState.HasCurrentState(status, EnumVerify.DocState.DortorSubmit))) {
if (directorCheckSumbitPower == 1 && directorCheckEffective == 1) {
targetCode = EnumVerify.DocState.DirectorCheck.getCode();
btns += "<button type='button' class='btn btn-primary btn-sm' onclick='verifyInfo(" + EnumVerify.Checker.Dortor.getCode() + "," + status + "," + targetCode+","+masterId+")'>"+directorCheckSumbitName+"</button>";
}
}
//没有护士提交
if (!EnumVerify.DocState.HasCurrentState(status, EnumVerify.DocState.NurseSubmit)) {
if (nurseSumbitPower == 1 && nurseSubmitEffective == 1) {
targetCode = EnumVerify.DocState.NurseSubmit.getCode();
btns += "<button type='button' class='btn btn-primary btn-sm' onclick='verifyInfo(" + EnumVerify.Checker.Nurse.getCode() + "," + status + "," + targetCode+","+masterId+")'>"+nurseSumbitName+"</button>";
}
//没有护士质控员提交
}
if (!EnumVerify.DocState.HasCurrentState(status, EnumVerify.DocState.NurseCheck) && EnumVerify.DocState.HasCurrentState(status, EnumVerify.DocState.NurseSubmit) || nurseSubmitEffective == 0) {
if (nurseCheckSumbitPower == 1 && nurseCheckEffective == 1) {
targetCode = EnumVerify.DocState.NurseCheck.getCode();
btns += "<button type='button' class='btn btn-primary btn-sm' onclick='verifyInfo(" + EnumVerify.Checker.Nurse.getCode() + "," + status + "," + targetCode+","+masterId+")'>"+nurseCheckSumbitName+"</button>";
}
}
}
//退回按钮
if(StringUtils.isNotBlank(btns) && backPower == 1){
btns += "<button type='button' class='btn btn-warning btn-sm ' onclick='returnInfo("+status + "," + targetCode + "," + masterId + ")'>退回</button>";
}
}
}
return btns;
}
/**
*
* */
private boolean getHeadNurseCheckFlag(int status,List<ArchiveFlowRole> roles){
boolean flag = true;
List<ArchiveFlowRole> effectiveRoles = new ArrayList<>();
//遍历查询匹配医生和护士支线最后节点均已提交
for (ArchiveFlowRole role : roles) {
//获取步骤
Integer stepIndex = role.getStepIndex();
//获取有效
Short effective = role.getEffective();
//获取有效且护士长审核前的节点且不包含开始节点
if (null != stepIndex && stepIndex < 4 && stepIndex > 0 && effective == 1) {
effectiveRoles.add(role);
}
}
if(!effectiveRoles.isEmpty()){
for(ArchiveFlowRole role : effectiveRoles){
//获取节点code
String code = role.getCode();
//转换类型
Integer integerCode = Integer.valueOf(code);
//其中有一个不包含直接返回false
if((status & integerCode) == 0){
return false;
}
}
}
return flag;
}
@Override
public int updateByClo(Archive_Master record) {
return archiveMasterMapper.updateByClo(record);
}
@Override
public int updateById(Archive_Master record) {
return archiveMasterMapper.updateById(record);
}
@Override
public Archive_Master selectByPrimaryKey(String id) {
return archiveMasterMapper.selectByPrimaryKey(id);
}
/**
* 退
* */
@Override
public int updateReturn(Emr_Fault_Detail_Vo emrFaultDetail) throws Exception{
//修改病案归档状态:复审退回
Archive_Master archiveMaster = new Archive_Master();
archiveMaster.setId(emrFaultDetail.getArchiveDetailId());
// 从session获取用户名
String username = (String) SecurityUtils.getSubject().getSession().getAttribute("userSession");//获取前面登录的用户名
//设置回退给角色信息
String returntoRole = emrFaultDetail.getReturntoRole();
archiveMaster.setReturntoRole(returntoRole);
log.info(username+"将病案:"+emrFaultDetail.getArchiveDetailId()+"退回给"+returntoRole);
if(StringUtils.isNotBlank(emrFaultDetail.getStatus())) {
int status = Integer.valueOf(emrFaultDetail.getStatus());
//计算状态code
//查询审核角色集合根据有效进行计算状态code
List<ArchiveFlowRole> archiveFlowRoles = flowRoleMapper.selectAll();
//定义masterId
String masterId = emrFaultDetail.getArchiveDetailId();
//定义下个节点code
String targetCode = "";
//为空为病案室退回
if(null == emrFaultDetail.getTargetCode()){
targetCode = EnumVerify.DocState.MedicalRoomCheck.getCode() + "";
}else{
targetCode = emrFaultDetail.getTargetCode() + "";
}
//定义退回内容
String remark = emrFaultDetail.getBackContent();
Integer backToCode = 0;
//流转记录的最新id
Integer flowInfoId = 0;
//参数输入
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = format1.format(new Date());
//修改复审内容
emrFaultDetail.setCreater(username);
emrFaultDetail.setCreateTime(nowTime);
switch (returntoRole) {
//退回给医生
case "DOCTOR":
status = EnumVerify.DocState.backToDoctor(Integer.valueOf(emrFaultDetail.getStatus()),archiveFlowRoles);
//添加进流转记录
backToCode = EnumVerify.DocState.DortorBack.getCode();
flowInfoId = flowInfoService.insertFlowInfo(masterId,targetCode,remark,backToCode,new Date());
emrFaultDetail.setParentId(flowInfoId);
//添加缺陷记录
emrFaultDetailService.insertSel(emrFaultDetail);
break;
//退回给护士
case "NURSE":
backToCode = EnumVerify.DocState.NurseBack.getCode();
status = EnumVerify.DocState.backToNurse(Integer.valueOf(emrFaultDetail.getStatus()),archiveFlowRoles);
//添加进流转记录
flowInfoId = flowInfoService.insertFlowInfo(masterId,targetCode,remark,backToCode,new Date());
emrFaultDetail.setParentId(flowInfoId);
//添加缺陷记录
emrFaultDetailService.insertSel(emrFaultDetail);
break;
//退回给医生和护士
case "ALL":
status = EnumVerify.DocState.backToAll();
backToCode = EnumVerify.DocState.DortorBack.getCode();
flowInfoId = flowInfoService.insertFlowInfo(masterId,targetCode,remark,backToCode,new Date());
emrFaultDetail.setParentId(flowInfoId);
//添加缺陷记录
emrFaultDetailService.insertSel(emrFaultDetail);
backToCode = EnumVerify.DocState.NurseBack.getCode();
flowInfoId = flowInfoService.insertFlowInfo(masterId,targetCode,remark,backToCode,new Date());
emrFaultDetail.setParentId(flowInfoId);
//添加缺陷记录
emrFaultDetailService.insertSel(emrFaultDetail);
break;
}
archiveMaster.setArchivestate(status + "");
}
//设置回退操作人信息
archiveMaster.setReturnOperUsername(username);
updateByClo(archiveMaster);
//退回金蝶
//获取基本信息
/*Archive_Master archiveMaster1 = selectByPrimaryKey(emrFaultDetail.getArchiveDetailId());
try {
String msg = "<req>" +
"<patNo>" + archiveMaster1.getPatientId() + "</patNo>" +
"<patTimes>" + archiveMaster1.getVisitId() + "</patTimes>" +
"<patFileNo>" + archiveMaster1.getInpNo() + "</patFileNo>" +
"<returnObject>" + emrFaultDetail.getReturntoRole() + "</returnObject>" +
"<returnType>01</returnType>" +
"<returnName>修改病历</returnName>" +
"<returnDept>" + archiveMaster1.getDeptName() + "</returnDept>" +
"<regEmp>" + username + "</regEmp>" +
"<regDept>8913</regDept>" +
"<returnDate>" + nowTime + "</returnDate>" +
"<validHours>24</validHours>" +
"</req>";
log.info(msg);
JAXDynamicClientFactory clientFactory = JAXDynamicClientFactory.newInstance();
String url = "http://192.168.10.39:8001/KingdeeEmrArchiveReturn.asmx?wsdl";
String param1 = "http://tempuri.org/";
String param2 = "SetArchieveReturn";
Client client = clientFactory.createClient(url);
QName qname = new QName(param1, param2);
Object[] result = client.invoke(qname, msg);
*//*Document document = DocumentHelper.parseText(result[0].toString());
Element rootElement = document.getRootElement();
Iterator iterator = rootElement.elementIterator();
while (iterator.hasNext()) {
Element element = (Element) iterator.next();
if ("resultCode".equals(element.getName())) {
System.out.println("resultCode:" + element.getTextTrim());
}
if ("resultDesc".equals(element.getName())) {
System.out.println("resultDesc:" + element.getTextTrim());
}
}*//*
log.info("回退成功!");
}catch(Exception e){
log.info("回退出错了!");
log.info(e.getMessage());
throw new RuntimeException();
}*/
return 1;
}
@Override
public List<Archive_Master> selectByObject(Archive_Master master) {
return archiveMasterMapper.selectByObject(master);
}
/**
* author:zwh
*
* */
@Override
public Msg updateStateByArchivId(Archive_Master_Vo master) throws Exception{
//修改病案归档状态
//计算审核状态code
String archivestate = master.getArchivestate();
if (StringUtils.isNotBlank(archivestate)) {
Integer code = Integer.valueOf(archivestate);
//查询审核角色集合根据有效进行计算状态code
List<ArchiveFlowRole> archiveFlowRoles = flowRoleMapper.selectAll();
Integer role = master.getRole();
//计算状态code
//code:当前状态coderole:角色1医生2护士3护士长archiveFlowRoles根据有效的审核角色进行计算
int statuCode = EnumVerify.DocState.GetNextStepCode(code,role, archiveFlowRoles);
master.setArchivestate(statuCode+"");
//复制对象
Archive_Master archiveMaster = new Archive_Master();
BeanUtils.copyProperties(master,archiveMaster);
//更新
updateByClo(archiveMaster);
//添加进流转记录
flowInfoService.insertFlowInfo(master.getId(),master.getStatus()+"",master.getRemark(),null,new Date());
return Msg.success();
} else {
return Msg.fail("初始状态出错了!");
}
}
/**
* author:zwh
*
* */
@Override
public void updateFiled(Archive_Master_Vo master) throws Exception{
// 从session获取用户名
String username = (String) SecurityUtils.getSubject().getSession().getAttribute("userSession");//获取前面登录的用户名
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//修改病案归档状态
Archive_Master archiveMaster = new Archive_Master();
//拷贝对象
BeanUtils.copyProperties(master,archiveMaster);
//定义提交时间
//设置审核时间
Date sumbitDate = new Date();
if(StringUtils.isBlank(master.getCheckedDatetime())){
//未手动修改终审时间,使用当前时间
archiveMaster.setCheckedDatetime(format1.format(new Date()));
}else{
//手动修改终审时间,是否修改的时间
archiveMaster.setCheckedDatetime(master.getCheckedDatetime());
sumbitDate = format1.parse(master.getCheckedDatetime());
}
//设置审核人
archiveMaster.setCheckedDoctor(username);
//设为已归档状态
archiveMaster.setArchivestate(EnumVerify.DocState.MedicalRoomCheck.getCode()+"");
//更新
updateByClo(archiveMaster);
//当前节点两种可能病案室审核和已召回
//是已召回将当前节点code置为病案室审核
String currentStatus = EnumVerify.DocState.MedicalRoomCheck.getCode() + "";
//添加流转节点
flowInfoService.insertFlowInfo(master.getId(),currentStatus,master.getRemark(),EnumVerify.DocState.MedicalRoomCheck.getCode(),sumbitDate);
/*//masterId;
flowInfo.setMasterId(master.getId());
//stepIndex:当前步骤
ArchiveFlowRole currentRole = new ArchiveFlowRole();
//查询审核角色集合根据有效进行计算状态code
List<ArchiveFlowRole> archiveFlowRoles = flowRoleMapper.selectAll();
for (ArchiveFlowRole archiveFlowRole:archiveFlowRoles) {
if(archiveFlowRole.getCode().equals(EnumVerify.DocState.MedicalRoomCheck.getCode()+"")){
currentRole = archiveFlowRole;
break;
}
}
flowInfo.setStepIndex(currentRole.getStepIndex());
//startStep:当前步骤name
flowInfo.setStartStep(currentRole.getName());
//sumbitName:按钮名称
flowInfo.setSumbitName(currentRole.getSumbitName());
//targetStep:下一步骤name
flowInfo.setTargetStep("已归档");
//useSeconds:距离上次提交用时s数
Date preDate = new Date();
//查询上次节点的时间
List<ArchiveFlowInfo> archiveFlowInfos = flowInfoMapper.selectPreInfo(master.getId(), currentRole.getName());
if(null != archiveFlowInfos && !archiveFlowInfos.isEmpty()){
//存在取最后一次提交时间
preDate = archiveFlowInfos.get(0).getCreatetime();
}else{
//取出院时间
Archive_Master archiveMaster1 = archiveMasterMapper.selectByPrimaryKey(master.getId());
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dischargeDateTime = archiveMaster1.getDischargeDateTime();
if(StringUtils.isNotBlank(dischargeDateTime)){
preDate = fmt.parse(dischargeDateTime);
}
}
if(null != preDate){
long millis = sumbitDate.getTime() - preDate.getTime();
flowInfo.setUseSeconds(millis/1000);
}
//remark:提交内容
flowInfo.setRemark(master.getRemark());
//userName:提交人用户名
// 从session获取用户名
flowInfo.setUserName(username);
//createtime:提交时间
flowInfo.setSumbitTime(sumbitDate);
//createtime:创建时间
flowInfo.setCreatetime(new Date());
flowInfoMapper.insert(flowInfo);*/
}
/**
*
* 线1线23
* */
@Override
public Msg getRole(){
Msg msg = new Msg();
//获取用户功能权限信息
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER");
Set<String> menus = user.getMenus();
if(null != menus && !menus.isEmpty()){
//定义医生支线role
int doctorRole = 0;
//定义护士支线role
int nurseRole = 0;
//护士长审核权限标识
String headNurseCheck = "/beHosp/headNurseCheck";
//医生提交权限标识
String doctorSumbit = "/beHosp/doctorSumbit";
//医生质控员质控权限标识
String doctorCheckSumbit = "/beHosp/doctorCheckSumbit";
//科主任审核权限标识
String directorCheckSumbit = "/beHosp/directorCheckSumbit";
//护士提交权限标识
String nurseSumbit = "/beHosp/nurseSumbit";
//护士质控员质控权限标识
String nurseCheckSumbit = "/beHosp/nurseCheckSumbit";
int genegrateRole = 0;
//拼接有权限的code
String powerCode = "";
Integer role = 0;
//遍历判断拥有权限拥有护士长权限立即返回4拥有医生支线赋值doctorRole=1,拥有护士支线赋值nurseRole=1
for (String menu : menus) {
if(StringUtils.isNotBlank(menu)){
if(menu.equals(doctorSumbit)){
doctorRole = 1;
powerCode += EnumVerify.DocState.DortorSubmit.getCode() + ",";
}
if(menu.equals(doctorCheckSumbit)){
doctorRole = 1;
powerCode += EnumVerify.DocState.DortorCheck.getCode() + ",";
}
if(menu.equals(directorCheckSumbit)){
doctorRole = 1;
powerCode += EnumVerify.DocState.DirectorCheck.getCode() + ",";
}
if(menu.equals(nurseSumbit)){
nurseRole = 1;
powerCode += EnumVerify.DocState.NurseSubmit.getCode() + ",";
}
if(menu.equals(nurseCheckSumbit)){
nurseRole = 1;
powerCode += EnumVerify.DocState.NurseCheck.getCode() + ",";
}
if(menu.equals(headNurseCheck)){
genegrateRole = 1;
powerCode += EnumVerify.DocState.HeadNurseCheck.getCode() + ",";
}
}
}
if(powerCode.endsWith(",")){
powerCode = powerCode.substring(0,powerCode.length()-1);
}
msg.setMsg(powerCode);
//判断属于哪个支线权限
if(doctorRole == 1 && nurseRole == 0){
msg.setCode(1);
}
if(doctorRole == 0 && nurseRole == 1){
msg.setCode(2);
}
if(doctorRole == 1 && nurseRole == 1 || genegrateRole == 1){
msg.setCode(4);
}
return msg;
}
return null;
}
}

@ -0,0 +1,21 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:41
* Description:
*/
package com.emr.service.ipml;
import com.emr.dao.Emr_Archive_DetailMapper;
import com.emr.service.Emr_Archive_DetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class Emr_Archive_DetailServiceImpl implements Emr_Archive_DetailService {
@Autowired
private Emr_Archive_DetailMapper emrArchiveDetailMapper;
}

@ -0,0 +1,49 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/26 15:51
* Description:
*/
package com.emr.service.ipml;
import com.emr.dao.Emr_Archive_DetailMapper;
import com.emr.dao.Emr_DictionaryMapper;
import com.emr.entity.Emr_Dictionary;
import com.emr.service.Emr_DictionaryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class Emr_DictionaryServiceImpl implements Emr_DictionaryService {
@Autowired
private Emr_DictionaryMapper emrDictionaryMapper;
@Override
public List<Emr_Dictionary> dicByTypeCode(Emr_Dictionary emrDictionary) {
return emrDictionaryMapper.dicByTypeCode(emrDictionary);
}
@Override
public List<Emr_Dictionary> dicByClo(Emr_Dictionary emrDictionary) {
return emrDictionaryMapper.dicByClo(emrDictionary);
}
@Override
public int insertSel(Emr_Dictionary emrDictionary) {
return emrDictionaryMapper.insertSel(emrDictionary);
}
@Override
public int delById(Integer id) {
return emrDictionaryMapper.delById(id);
}
@Override
public int updateCloById(Emr_Dictionary emrDictionary) {
return emrDictionaryMapper.updateCloById(emrDictionary);
}
}

@ -0,0 +1,142 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:43
* Description:
*/
package com.emr.service.ipml;
import com.emr.dao.Emr_Fault_DetailMapper;
import com.emr.entity.*;
import com.emr.service.Archive_MasterService;
import com.emr.service.Emr_DictionaryService;
import com.emr.service.Emr_Fault_DetailService;
import com.emr.service.Emr_Fault_TypeService;
import com.emr.util.Msg;
import com.emr.vo.User;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
@Service
@Transactional
public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService {
@Autowired
private Emr_Fault_DetailMapper emrFaultDetailMapper;
@Autowired
private Emr_Fault_TypeService emrFaultTypeService;
@Autowired
private Emr_DictionaryService emrDictionaryService;
@Autowired
private Archive_MasterService archiveMasterService;
@Autowired
private StatisticsService statisticsService;
/**
*
* 退
* @param emrFaultVo
* @return
*/
@Override
public OffsetLimitPage selectByCol(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) {
PageHelper.offsetPage(offset, limit);
List<Emr_Fault_Vo> list = selectByCol(emrFaultVo);
return new OffsetLimitPage((Page) list);
}
@Override
public List<Emr_Fault_Vo> selectByCol(Emr_Fault_Vo emrFaultVo) {
List<Emr_Fault_Vo> list = emrFaultDetailMapper.selectByCol(emrFaultVo);
Emr_Dictionary dic = new Emr_Dictionary();
dic.setEffective(1);
dic.setTypecode("dept_code");
//科室列表
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
//获取缺陷类别列表
Emr_Fault_Type obj = new Emr_Fault_Type();
obj.setEffective(1);
List<Emr_Fault_Type> typeLis = emrFaultTypeService.selectByCol(obj);
Msg role = archiveMasterService.getRole();
List<User> userList = statisticsService.getUserList();
if(null != role) {
for (int i = 0; i < list.size(); i++) {
//根据状态code转换状态及判断显示按钮
//计算属于哪种审核角色
String archivestate = list.get(i).getArchivestate();
if (StringUtils.isNotBlank(archivestate)) {
//转换中文状态
Integer status = Integer.valueOf(archivestate);
archivestate = EnumVerify.DocState.GetStepName(status, role.getCode());
list.get(i).setArchivestate(archivestate);
}
//替换科室
for (int k = 0; k < dicList.size(); k++) {
String deptName = list.get(i).getDeptName();
//入院科室dept_admission_to
String dept2 = list.get(i).getDeptAdmissionTo();
if ((deptName != null && deptName.equals(dicList.get(k).getCode())) || (dept2 != null && dept2.equals(dicList.get(k).getCode()))) {
//出院科室
deptName = deptName.replace(deptName, dicList.get(k).getName());
list.get(i).setDeptName(deptName);
dept2 = dept2.replace(dept2, dicList.get(k).getName());
list.get(i).setDeptAdmissionTo(dept2);
}
}
String assortId = list.get(i).getAssortId();
if (assortId != "" && assortId != null) {
String[] assorArr = assortId.split(",");
//替换类别
for (int j = 0; j < typeLis.size(); j++) {
String id = String.valueOf(typeLis.get(j).getId());
if (Arrays.asList(assorArr).contains(id)) {
assortId = assortId.replace(id, typeLis.get(j).getTypeName());
list.get(i).setAssortId(assortId);
}
}
}
//替换姓名
if(!CollectionUtils.isEmpty(userList)) {
//转换姓名
String userName = list.get(i).getCreater();
for (User user : userList) {
if (StringUtils.isNotBlank(userName) && userName.equals(user.getUserName())) {
list.get(i).setCreater(user.getName());
break;
}
}
}
}
}
return list;
}
@Override
public int updateCloByPrimaryKey(Emr_Fault_Detail emrFaultDetail) {
return emrFaultDetailMapper.updateCloByPrimaryKey(emrFaultDetail);
}
@Override
public Emr_Fault_Detail selectByArchiveDetailId(Emr_Fault_Detail record) {
return emrFaultDetailMapper.selectByArchiveDetailId(record);
}
@Override
public int insertSel(Emr_Fault_Detail record) {
return emrFaultDetailMapper.insertSel(record);
}
}

@ -0,0 +1,49 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:46
* Description:
*/
package com.emr.service.ipml;
import com.emr.dao.Emr_Fault_TypeMapper;
import com.emr.entity.Emr_Fault_Type;
import com.emr.service.Emr_Fault_TypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class Emr_Fault_TypeServiceImpl implements Emr_Fault_TypeService {
@Autowired
private Emr_Fault_TypeMapper emrFaultTypeMapper;
@Override
public List<Emr_Fault_Type> selectByCol(Emr_Fault_Type record) {
return emrFaultTypeMapper.selectByCol(record);
}
@Override
public int updateByClo(Emr_Fault_Type record) {
return emrFaultTypeMapper.updateByClo(record);
}
@Override
public int insertClo(Emr_Fault_Type record) {
return emrFaultTypeMapper.insertClo(record);
}
@Override
public int delById(Integer id) {
return emrFaultTypeMapper.delById(id);
}
@Override
public Emr_Fault_Type selectById(Integer id) {
return emrFaultTypeMapper.selectById(id);
}
}

@ -0,0 +1,51 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:48
* Description:
*/
package com.emr.service.ipml;
import com.emr.dao.Emr_PictureMapper;
import com.emr.entity.Emr_Picture;
import com.emr.service.Emr_PictureService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class Emr_PictureServiceImpl implements Emr_PictureService {
@Autowired
private Emr_PictureMapper emrPictureMapper;
@Override
public Emr_Picture selectByid(String id) {
return emrPictureMapper.selectByid(id);
}
@Override
public int insertSel(Emr_Picture record) {
return emrPictureMapper.insertSel(record);
}
@Override
public int updateCloByIdOrFlay(Emr_Picture record) {
return emrPictureMapper.updateCloByIdOrFlay(record);
}
@Override
public List<Emr_Picture> selectByClo(Emr_Picture record) {
return emrPictureMapper.selectByClo(record);
}
@Override
public int deleteById(String id) {
return emrPictureMapper.deleteById(id);
}
}

@ -0,0 +1,480 @@
package com.emr.service.ipml;
import com.emr.entity.ArchiveFlowRole;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.List;
public class EnumVerify {
/**
*
* */
public enum Checker
{
Dortor(1,"医生"),
Nurse(2,"护士"),
Generate(4,"一般审核者");
private int code;
private String name;
private Checker(int code, String name)
{
this.code = code;
this.name = name;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}}
/**
*
* */
public enum DocState
{
None(1, "初始状态"),
DortorSubmit(2, "医生提交"),
DortorCheck(4, "医生质控员质控"),
DirectorCheck(8, "科主任审核"),
NurseSubmit(16, "护士提交"),
NurseCheck(32, "护士质控员质控"),
HeadNurseCheck(64, "护士长审核"),
MedicalRoomCheck(128, "病案室审核"),
DortorBack(256, "医生退回"),
NurseBack(512, "护士退回"),
CallBacked(1024, "召回");
private int code;
private String name;
DocState(int code, String name) {
this.code = code;
this.name = name;
}
DocState() {
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/* public static boolean HasCurrentState(int curState, int ds)
{
return (curState & ds) != 0;
}
public static boolean HasCurrentState(DocState curState, DocState ds)
{
return (curState.code & ds.code) != 0;
}*/
//判断是否包含
public static boolean HasCurrentState(int curState, DocState ds)
{
return (curState & ds.code) != 0;
}
//获取当前步骤的显示名称可以考虑用JS实现
//根据当前状态获取获取状态中文逗号隔开的字符串
public static String GetStepName(Integer curState,int role)
{
String doctorV = "";
String nurseV = "";
if((Checker.Nurse.code != role)){
if(!HasCurrentState(curState, DortorSubmit) && !HasCurrentState(curState, DortorCheck) && !HasCurrentState(curState, DirectorCheck)){
doctorV += "," + None.name;
}
}
if((Checker.Dortor.code != role)){
if(!HasCurrentState(curState, NurseSubmit) && !HasCurrentState(curState, NurseCheck)){
nurseV += "," + None.name;
}
}
if (HasCurrentState(curState, DortorSubmit) && (Checker.Nurse.code != role))
{
doctorV += ",医生已提交";
}
if (HasCurrentState(curState, DortorCheck) && (Checker.Nurse.code != role))
{
doctorV += ",医生质控员已质控";
}
if (HasCurrentState(curState, DirectorCheck) && (Checker.Nurse.code != role))
{
doctorV += ",科主任已质控";
}
if (HasCurrentState(curState, NurseSubmit) && (Checker.Dortor.code != role))
{
nurseV += ",护士已提交";
}
if (HasCurrentState(curState, NurseCheck) && (Checker.Dortor.code != role))
{
nurseV += ",护士质控员已质控";
}
String tmpV = "";
if (HasCurrentState(curState, DortorBack))
{
if(Checker.Nurse.code != role){
doctorV = "医生退回";
}
}
if (HasCurrentState(curState, NurseBack))
{
if(Checker.Dortor.code != role){
nurseV = "护士退回";
}
}
if(Checker.Dortor.code == role){
tmpV = doctorV;
}else if(Checker.Nurse.code == role){
tmpV = nurseV;
}else if(Checker.Generate.code == role){
if("护士退回".equals(nurseV)){
tmpV = doctorV + "," + nurseV;
}else{
tmpV = doctorV + nurseV;
}
}
if (HasCurrentState(curState, HeadNurseCheck))
{
tmpV = "护士长已质控";
}
if (HasCurrentState(curState, MedicalRoomCheck))
{
tmpV = "已归档";
}
if (HasCurrentState(curState, CallBacked))
{
tmpV = "病案室审核";
}
if(tmpV.startsWith(","))
{
tmpV = tmpV.substring(1);
}
return tmpV;
}
//获取当前步骤所包含的枚举值,可以返回多个值
public static ArrayList<Integer> GetCurrentStepContainStates(int curState) throws Exception
{
ArrayList<Integer> rets = new ArrayList<>();
if (HasCurrentState(curState, DortorSubmit))
{
rets.add(DortorSubmit.code);
}
if (HasCurrentState(curState, DortorCheck))
{
rets.add(DortorCheck.code);
}
if (HasCurrentState(curState, DirectorCheck))
{
rets.add(DirectorCheck.code);
}
if (HasCurrentState(curState, NurseSubmit))
{
rets.add(NurseSubmit.code);
}
if (HasCurrentState(curState, NurseCheck))
{
rets.add(NurseCheck.code);
}
if (HasCurrentState(curState, HeadNurseCheck))
{
rets.add(HeadNurseCheck.code);
}
if (HasCurrentState(curState, MedicalRoomCheck))
{
rets.add(MedicalRoomCheck.code);
}
if (HasCurrentState(curState, DortorBack))
{
rets.add(DortorBack.code);
}
if (HasCurrentState(curState, NurseBack))
{
rets.add(NurseBack.code);
}
if (HasCurrentState(curState, None))
{
rets.add(None.code);
}
return rets;
}
//医生累加code
public static int GetNextStepCode_Dortor(int curState,List<ArchiveFlowRole> flowRoles) throws Exception
{
//定义医生提交是否有效
int doctorSubmitEffective = 0;
//定义医生质控员是否有效
int dortorCheckEffective = 0;
//定义科主任审核是否有效
int directorCheckEffective = 0;
if(null != flowRoles && !flowRoles.isEmpty()) {
for (ArchiveFlowRole flowRole : flowRoles) {
if (flowRole.getCode().equals(DortorSubmit.code+"")){
doctorSubmitEffective = flowRole.getEffective();
}
if (flowRole.getCode().equals(DortorCheck.code+"")){
dortorCheckEffective = flowRole.getEffective();
}
if (flowRole.getCode().equals(DirectorCheck.code+"")){
directorCheckEffective = flowRole.getEffective();
}
//如果遍历完立即退出循环
if(doctorSubmitEffective == 1 && dortorCheckEffective == 1 && directorCheckEffective == 1){
break;
}
}
}
if(!HasCurrentState(curState, DortorSubmit) && doctorSubmitEffective == 1)
{
//有退回情况需减去医生退回code再加当前提交
int state = curState ^ DortorBack.code | DortorSubmit.code;
//无退回情况,^退回编码会更大,不需要^退回编码
if(state > (curState | DortorSubmit.code)){
return curState | DortorSubmit.code;
}else{
//否则需要减去医生退回部分
return state;
}
}
if(!HasCurrentState(curState, DortorCheck) && dortorCheckEffective == 1)
{
return curState | DortorCheck.code;
}
if(!HasCurrentState(curState, DirectorCheck) && directorCheckEffective == 1)
{
return curState | DirectorCheck.code;
}
/* if(HasCurrentState(curState,DirectorCheck))
{
if(HasCurrentState(curState, NurseCheck))
{
if(HasCurrentState(curState, HeadNurseCheck))
{
return curState;
}
else
{
return curState | HeadNurseCheck.code;
}
}
else
{
return curState;
}
}*/
throw new Exception("医生提交的状态未知。");
}
//护士累加code
public static int GetNextStepCode_Nurse(int curState,List<ArchiveFlowRole> flowRoles) throws Exception
{
int nurseSubmitEffective = 0;
int nurseCheckEffective = 0;
if(null != flowRoles && !flowRoles.isEmpty()) {
for (ArchiveFlowRole flowRole : flowRoles) {
if (flowRole.getCode().equals(NurseSubmit.code+"")){
nurseSubmitEffective = flowRole.getEffective();
}
if (flowRole.getCode().equals(NurseCheck.code+"")){
nurseCheckEffective = flowRole.getEffective();
}
//两者都遍历到立即退出循环
if(nurseSubmitEffective == 1 && nurseCheckEffective == 1){
break;
}
}
}
if(!HasCurrentState(curState, NurseSubmit) && nurseSubmitEffective == 1)
{
int state = curState ^ NurseBack.code | NurseSubmit.code;
if(state > (curState | NurseSubmit.code)){
return curState | NurseSubmit.code;
}else{
return state;
}
}
if(!HasCurrentState(curState, NurseCheck) && nurseCheckEffective == 1)
{
return curState | NurseCheck.code;
}
throw new Exception("护士提交的状态未知。");
}
//一般审核者累加code
public static int GetNextStepCode_Generate(int curState,List<ArchiveFlowRole> flowRoles) throws Exception
{
int headNurseCheckEffective = 0;
int medicalRoomCheckEffective = 0;
if(null != flowRoles && !flowRoles.isEmpty()) {
for (ArchiveFlowRole flowRole : flowRoles) {
if (flowRole.getCode().equals(HeadNurseCheck.code+"")){
headNurseCheckEffective = flowRole.getEffective();
}
if (flowRole.getCode().equals(MedicalRoomCheck.code+"")){
medicalRoomCheckEffective = flowRole.getEffective();
}
}
}
if (!HasCurrentState(curState, HeadNurseCheck) && headNurseCheckEffective == 1)
{
return HeadNurseCheck.code;
}
if(!HasCurrentState(curState, MedicalRoomCheck) && medicalRoomCheckEffective == 1)
{
return MedicalRoomCheck.code;
}
throw new Exception("一般工作者提交的状态未知。");
}
//累加当前code
public static int GetNextStepCode(int curState, Integer isDortor,List<ArchiveFlowRole> flowRoles) throws Exception
{
if(curState == None.code)
{
if(isDortor == Checker.Dortor.code)
{
return DortorSubmit.code;
}
if(isDortor == Checker.Nurse.code)
{
return NurseSubmit.code;
}
throw new Exception("初始状态,只有可能是医生或护士进行提交");
}
if(isDortor == Checker.Dortor.code)
{
return GetNextStepCode_Dortor(curState,flowRoles);
}
if(isDortor == Checker.Nurse.code)
{
return GetNextStepCode_Nurse(curState,flowRoles);
}
if(isDortor == Checker.Generate.code)
{
return GetNextStepCode_Generate(curState,flowRoles);
}
throw new Exception(String.format("参数出错 %d", curState));
}
//医生退回
public static int backToDoctor(int curState,List<ArchiveFlowRole> flowRoles) throws Exception{
if(curState != HeadNurseCheck.code && curState != CallBacked.code){
//不是病案室退回节点删除医生code
if(HasCurrentState(curState, DirectorCheck)){
curState ^= DirectorCheck.code;
}
if(HasCurrentState(curState, DortorCheck)){
curState ^= DortorCheck.code;
}
if(HasCurrentState(curState, DortorSubmit)){
curState ^= DortorSubmit.code;
}
if(HasCurrentState(curState, HeadNurseCheck)){
curState ^= HeadNurseCheck.code;
}
}else{
curState = 0;
//是病案室退回节点累加护士code
for(ArchiveFlowRole flowRole : flowRoles) {
if (flowRole.getEffective() == 1) {
if(flowRole.getCode().equals(NurseSubmit.getCode()+"")){
curState = curState | NurseSubmit.getCode();
}else if(flowRole.getCode().equals(NurseCheck.getCode()+"")){
curState = curState | NurseCheck.getCode();
}
}
}
}
return curState | DortorBack.code;
}
//护士退回
public static int backToNurse(int curState,List<ArchiveFlowRole> flowRoles) throws Exception{
if(curState != HeadNurseCheck.code && curState != CallBacked.code) {
//不是病案室退回节点删除护士code
if(HasCurrentState(curState, NurseCheck)){
curState ^= NurseCheck.code;
}
if(HasCurrentState(curState, NurseSubmit)){
curState ^= NurseSubmit.code;
}
if(HasCurrentState(curState, HeadNurseCheck)){
curState ^= HeadNurseCheck.code;
}
}else{
curState = 0;
//是病案室退回节点,累加医生节点
for(ArchiveFlowRole flowRole : flowRoles) {
if (flowRole.getEffective() == 1) {
if(flowRole.getCode().equals(DortorSubmit.getCode()+"")){
curState = curState | DortorSubmit.getCode();
}else if(flowRole.getCode().equals(DortorCheck.getCode()+"")){
curState = curState | DortorCheck.getCode();
}else if(flowRole.getCode().equals(DirectorCheck.getCode()+"")){
curState = curState | DirectorCheck.getCode();
}
}
}
}
return curState | NurseBack.code;
}
//医生护士全退回
public static int backToAll(){
return DortorBack.code | NurseBack.code;
}
}
@Test
public void Test() {
int curState= 2;
try
{
/* String name = DocState.None.name;
System.out.println(name);
ArrayList<Integer> integers = DocState.GetCurrentStepContainStates(curState);
for (int i = 0; i < integers.size(); i++) {
System.out.println(integers.get(i));
}*/
//String s = DocState.GetStepName(curState);
//System.out.println(s);
// List<ArchiveFlowRole> roles = new ArrayList<>();
// int stepName = DocState.backToDoctor(curState);
// stepName = DocState.GetNextStepCode(stepName,Checker.Dortor,roles);
// System.out.println(stepName);
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
}
}
}

@ -0,0 +1,135 @@
package com.emr.service.ipml;
import com.emr.dao.EmrHolidaySetMapper;
import com.emr.entity.*;
import com.emr.util.AccountDate;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
@Transactional
public class HolidaySetService {
@Autowired
private EmrHolidaySetMapper holidaySetMapper;
public OffsetLimitPage selectByColumn(EmrHolidaySetVo holidaySetVo){
PageHelper.offsetPage(holidaySetVo.getOffset(), holidaySetVo.getLimit());
List<EmrHolidaySetVo> list = holidaySetMapper.selectByColumn(holidaySetVo);
return new OffsetLimitPage((Page) list);
}
/**
*
* @param startTime
* @param endTime
* @param checkBoxes
* @param flag
* @throws Exception
*/
public void update(String startTime,String endTime,String checkBoxes,Integer flag) throws Exception{
Map<Integer,String> map = new HashMap<>();
//将选中星期几添加进map
String[] checkBoxList = checkBoxes.split(",");
for(String checkBoxed:checkBoxList){
if(StringUtils.isNoneBlank(checkBoxed)){
map.put(Integer.valueOf(checkBoxed),checkBoxed);
}
}
List<String> dateList = AccountDate.getEveryday(startTime,endTime);
//查询时间段记录
List<EmrHolidaySet> emrHolidaySets = holidaySetMapper.selectAllByDates(startTime, endTime);
//定义批量添加集合
List<EmrHolidaySet> insertList = new ArrayList<>();
//定义批量更新集合
List<EmrHolidaySet> updateList = new ArrayList<>();
//定义批量修改的时间字符串
String dates = "";
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//没有记录添加进insertList
for(String date : dateList){
//查询几天星期几
Integer weekDay = AccountDate.getWeekDayByStr(date);
//无记录,全部添加进批量添加集合
EmrHolidaySet holidaySet = new EmrHolidaySet();
holidaySet.setDate(date);
holidaySet.setUpdateTime(fmt.format(new Date()));
if(flag == 1){
if(map.containsKey(weekDay)){
holidaySet.setFlag(Short.valueOf("1"));
}else{
holidaySet.setFlag(Short.valueOf("2"));
}
}else{
if(map.containsKey(weekDay)){
holidaySet.setFlag(Short.valueOf("2"));
}else{
holidaySet.setFlag(Short.valueOf("1"));
}
}
//如果存在记录就区分更新部分还是添加部分
if(null != emrHolidaySets && !emrHolidaySets.isEmpty()){
boolean isExist = false;
for (int i = 0; i < emrHolidaySets.size(); i++) {
if(emrHolidaySets.get(i).getDate().equals(date)){
isExist = true;
holidaySet.setId(emrHolidaySets.get(i).getId());
break;
}
}
//如果存在,添加进更新的字符串
if(isExist){
updateList.add(holidaySet);
}else{
//否则添加进批量添加集合
insertList.add(holidaySet);
}
}else{
//数据库无数,添加全部记录
insertList.add(holidaySet);
}
}
int colCount = holidaySetMapper.selectColByTableName("emr_holiday_set");
int simpleInsertCount = 2100/(colCount);
if(null != insertList && !insertList.isEmpty()){
List<EmrHolidaySet> list = new ArrayList<>();
for (int i = 0; i < insertList.size(); i++) {
list.add(insertList.get(i));
if(list.size()%simpleInsertCount == 0 || i == insertList.size() - 1){
holidaySetMapper.SampleInsert(list);
list.clear();
}
}
}
if(null != updateList && !updateList.isEmpty()){
List<EmrHolidaySet> list = new ArrayList<>();
for (int i = 0; i < updateList.size(); i++) {
list.add(updateList.get(i));
if(list.size()%simpleInsertCount == 0 || i == updateList.size() - 1){
holidaySetMapper.SampleUpdate(updateList);
list.clear();
}
}
}
}
/**
*
* @param flag
* @param id
*/
public void update(Integer flag,Integer id){
EmrHolidaySet emrHolidaySet = holidaySetMapper.selectByPrimaryKey(id);
if(flag == 1){
emrHolidaySet.setFlag(Short.valueOf("2"));
}else{
emrHolidaySet.setFlag(Short.valueOf("1"));
}
holidaySetMapper.updateByPrimaryKeySelective(emrHolidaySet);
}
}

@ -0,0 +1,214 @@
package com.emr.service.ipml;
import com.alibaba.fastjson.JSON;
import com.emr.dao.StatisticsMapper;
import com.emr.dao.TUuInfoMapper;
import com.emr.dao.TUuPrintMapper;
import com.emr.entity.Archive_Master_Vo;
import com.emr.entity.OffsetLimitPage;
import com.emr.entity.TUuPrint;
import com.emr.vo.*;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import net.sf.json.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.shiro.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/1/8 15:54
* @UpdateUser:
* @UpdateDate: 2020/1/8 15:54
* @UpdateRemark:
* @Version: 1.0
*/
@Service
@Transactional
public class StatisticsService {
@Value("${POWER_URLHEAD}")
private String POWER_URLHEAD;
@Autowired
private StatisticsMapper statisticsMapper;
@Autowired
private TUuPrintMapper uuPrintMapper;
@Autowired
private TUuInfoMapper uuInfoMapper;
//终审按天统计
public List<FinalAndFirstStatistics> getFinalStatistics(Integer offset, Integer limit, String startDate, String endDate,String sql) {
if(null != offset && null != limit){
PageHelper.offsetPage(offset, limit);
}
List<FinalAndFirstStatistics> list = statisticsMapper.finalStatistics(startDate, endDate,sql);
//转换姓名
List<User> userList = getUserList();
if(!CollectionUtils.isEmpty(list) && !CollectionUtils.isEmpty(userList)) {
for (FinalAndFirstStatistics statistics : list) {
for (User user : userList) {
if (StringUtils.isNotBlank(statistics.getCheckCode()) && statistics.getCheckCode().equals(user.getUserName())) {
statistics.setCheckName(user.getName());
break;
}
}
}
}
return list;
}
//初审按天统计
public List<FinalAndFirstStatistics> getFirstStatistics(HttpServletRequest request, Integer offset, Integer limit, String startDate, String endDate,String sql) {
if(null != offset && null != limit){
PageHelper.offsetPage(offset, limit);
}
List<FinalAndFirstStatistics> list = statisticsMapper.firstStatistics(startDate, endDate,sql);
//转换姓名
List<User> userList = getUserList();
if(!CollectionUtils.isEmpty(list) && !CollectionUtils.isEmpty(userList)) {
for (FinalAndFirstStatistics statistics : list) {
for (User user : userList) {
if (statistics.getCheckCode().equals(user.getUserName())) {
statistics.setCheckName(user.getName());
break;
}
}
}
}
return list;
}
/**
*
* @param offset
* @param limit
* @param disStartDate
* @param disEndDate
* @param archiveMasterVo
* @return
*/
public OffsetLimitPage getStatisticsDetail(Integer offset, Integer limit,String disStartDate, String disEndDate, Archive_Master_Vo archiveMasterVo,Integer flag) {
if(null != offset && null != limit){
PageHelper.offsetPage(offset, limit);
}
List<Archive_Master_Vo> list = getDetailList(disStartDate, disEndDate, archiveMasterVo,flag,null);
return new OffsetLimitPage((Page) list);
}
public List<Archive_Master_Vo> getDetailList(String disStartDate, String disEndDate, Archive_Master_Vo archiveMasterVo,Integer flag,String sql){
//转换姓名
List<User> userList = getUserList();
String checkDoctor = archiveMasterVo.getCheckDoctor();
//模糊搜索审核姓名转换工号
if(StringUtils.isNoneBlank(checkDoctor)){
String checkNames = "";
for(User user:userList){
if(StringUtils.isNoneBlank(user.getName()) && user.getName().contains(checkDoctor)){
checkNames += "'" + user.getUserName() + "',";
}
}
if(StringUtils.isNotBlank(checkNames)){
checkNames = checkNames.substring(0,checkNames.length()-1);
archiveMasterVo.setCheckDoctor(checkNames);
}else{
archiveMasterVo.setCheckDoctor("'" + checkDoctor + "'");
}
}
List<Archive_Master_Vo> list = statisticsMapper.statistics(disStartDate,disEndDate,archiveMasterVo,flag,sql);
if(!CollectionUtils.isEmpty(list) && !CollectionUtils.isEmpty(userList)) {
for (Archive_Master_Vo statistics : list) {
for (User user : userList) {
if (StringUtils.isNotBlank(statistics.getCheckDoctor()) && statistics.getCheckDoctor().equals(user.getUserName())) {
statistics.setCheckName(user.getName());
}
if (StringUtils.isNotBlank(statistics.getCheckedDoctor()) && statistics.getCheckedDoctor().equals(user.getUserName())) {
statistics.setCheckedName(user.getName());
}
}
}
}
return list;
}
//复印记录报表
public List<TUuPrintVo> getPrintCount(TUuPrintSearch search){
List<TUuPrintVo> list = uuPrintMapper.getPrintCount(search);
return list;
}
//复印记录明细
public List<TUuPrintVo> getPrintInfo(TUuPrintSearch search){
List<TUuPrintVo> list = uuPrintMapper.getPrintInfo(search);
if(null != list && !list.isEmpty()){
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for(TUuPrintVo printVo : list){
Date cpytime = printVo.getCpytime();
printVo.setPrintTime(fmt.format(cpytime));
}
}
return list;
}
//扫描记录报表
public List<TUuInfoVo> getScanCount(TUuPrintSearch search){
List<TUuInfoVo> list = uuInfoMapper.getScanCount(search);
return list;
}
//扫描记录明细
public List<TUuInfoVo> getScanInfo(TUuPrintSearch search){
List<TUuInfoVo> list = uuInfoMapper.getScanInfo(search);
return list;
}
public List<User> getUserList(){
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
List<User> userList = new ArrayList<>();
try {
//查询缓存时候存在
userList = (List<User>)request.getSession().getAttribute("USER_LIST");
if(null == userList || userList.isEmpty()){
String userName = (String) request.getSession().getAttribute("userSession");
//调用接口查询
String resultString = "";
// 创建uri
String url = POWER_URLHEAD+"/font/getUserList?userName="+userName;
// 执行请求
CloseableHttpResponse response = HttpClients.createDefault().execute(new HttpGet(url));
// 判断返回状态是否为200
if (response.getStatusLine().getStatusCode() == 200) {
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
}
JSONObject jsonObject = JSONObject.fromObject(resultString);
String extend = jsonObject.getString("extend");
JSONObject extendObject = JSONObject.fromObject(extend);
String userList1 = extendObject.getString("userList");
userList = (List<User>) JSON.parseArray(userList1,User.class);
//设置进session
request.getSession().setAttribute("USER_LIST",userList);
}
}catch (Exception e){
e.printStackTrace();
}
return userList;
}
}

@ -0,0 +1,27 @@
package com.emr.service.ipml;
import com.emr.dao.TPrintinfoMapper;
import com.emr.entity.TPrintinfo;
import com.emr.util.Msg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class TPrintinfoService {
@Autowired
private TPrintinfoMapper tPrintinfoMapper;
public Msg selectIsPrintByPatienId(String patientId){
TPrintinfo tPrintinfo = tPrintinfoMapper.selectLockByPatienId(patientId);
if(!"0".equals(tPrintinfo.getIsprint())){
return Msg.success().add("isPrint","1");
}
List<TPrintinfo> list = tPrintinfoMapper.selectIsPrintByPatienId(patientId);
if(null != list && !list.isEmpty()){
return Msg.success().add("isPrint",list.get(0).getIsprint());
}else{
return Msg.success().add("isPrint","0");
}
}
}

@ -0,0 +1,40 @@
/**
* Copyright (C), 2015-2019
* Author: HJL
* Date: 2019/7/19 15:46
* Description:
*/
package com.emr.service.ipml;
import com.emr.dao.V_CountMapper;
import com.emr.entity.*;
import com.emr.service.V_CountService;
import com.emr.vo.V_CountVo;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
@Service
public class V_CountServiceImpl implements V_CountService {
@Autowired
private V_CountMapper vCountMapper;
@Override
public List<V_Count> selectByCol(V_CountVo record) {
List<V_Count> v_counts = vCountMapper.selectByCol(record);
return v_counts;
}
@Override
public OffsetLimitPage selectPageByClo(V_CountVo record, Integer offset, Integer limit) {
PageHelper.offsetPage(offset, limit);
List<V_Count> list = selectByCol(record);
return new OffsetLimitPage((Page) list);
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save