在糖尿病患者信息管理系统中,导入病人信息功能!

2024-09-08 03:48

本文主要是介绍在糖尿病患者信息管理系统中,导入病人信息功能!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在糖尿病患者信息管理系统中,导入病人信息功能!form表单提交数据(Excel文件),在后台得不到file文件,解决方法:

        private File filePath; //文件
        private String fileName; //文件名
        private String fileType; //文件类型

注:上面filePath必须有,否则下面得到filePath为空!

/**
* 导入病人信息,并且插入用户信息
*/
public String importPatient() throws Exception {
if (filePath != null) {
FileInputStream fis = new FileInputStream(filePath);
Workbook readWb = Workbook.getWorkbook(fis);
// 得到sheet
Sheet readSheet = readWb.getSheet(0);
// 得到多少列
int rsColumns = readSheet.getColumns();
// 得到多少行
int rsRows = readSheet.getRows();
// 单元格
Cell cell;
// 实例化病人对象
Patient patient = new Patient();
SysUser sysUser = new SysUser();
Map<Integer, String> map = new HashMap<Integer, String>();
for (int i = 1; i < rsRows; i++) {
for (int j = 0; j < rsColumns; j++) {
cell = readSheet.getCell(j, i);
map.put(j, cell.getContents());
}
UUID uuid = UUID.randomUUID();
String patientId = uuid.toString();
patient.setId(patientId);
//用户信息
sysUser.setId(uuid.toString());
sysUser.setUserName(map.get(5));
sysUser.setPassword(md5keyBean.getkeyBeanofStr("123456"));
sysUser.setNickName(map.get(1));
sysUser.setPhone(map.get(5));
//1:默认不锁定;0:锁定
sysUser.setStatus("1");
//角色id
List<SysRole> sysRoles = sysRoleService.findAllSysRoles();
if(sysRoles.size()>0) {
for (int j = 0; j < sysRoles.size(); j++) {
if("病人".equals(sysRoles.get(j).getName())) {
sysUser.setSysRole(sysRoles.get(j));
}
}
}
//病人id
sysUser.setFlagId(patientId);
sysUser.setCreateTime(new Date());
sysUserService.saveSysUser(sysUser);
patient.setNumber(map.get(0));
patient.setRealName(map.get(1));
patient.setAge(Integer.parseInt(map.get(2)));
// 性别:1男0女
if ("男".equals(map.get(3))) {
patient.setSex("1");
} else if ("女".equals(map.get(3))) {
patient.setSex("0");
} else {
patient.setSex("1");
}
patient.setNation(map.get(4));
patient.setPhone(map.get(5));
// 婚况:1:已婚 0:未婚
if ("已婚".equals(map.get(6))) {
patient.setStateMarriage("1");
} else if ("未婚".equals(map.get(6))) {
patient.setStateMarriage("0");
} else {
patient.setStateMarriage("1");
}
patient.setBirthAdress(map.get(7));
patient.setAddress(map.get(8));
patient.setOrganize(map.get(9));
patient.setNumberId(map.get(10));
// 患病类型
String diseaseType = map.get(11);
List<DiseaseType> diseaseTypes = diseaseTypeService
.findAllDiseaseTypes();
if (diseaseTypes.size() > 0) {
for (int j = 0; j < diseaseTypes.size(); j++) {
if (diseaseType.equals(diseaseTypes.get(j)
.getDiseaseType())) {
patient.setDiseaseTypeId(diseaseTypes.get(j)
.getId());
}
}
}
patientService.savePatient(patient);
}
}
return "listAction";
}


jsp代码:

<!-- 批量导入病人信息 -->
       <form class="form-horizontal" method="post" action="${pageContext.request.contextPath}/sys/patientAction_importPatient.do" id="fileUpload" name="fileUpload" enctype="multipart/form-data">
<style type="text/css">
.file {
   position: relative;
   display: inline-block;
   background: #78CD51;
   border: 1px solid #99D3F5;
   border-radius: 4px;
   padding: 4px 12px;
   
   color: #FFFFFF;
   text-decoration: none;
   text-indent: 0;
   line-height: 25px;
}
.file input {
   position: absolute;
   width:120px;
   right: 0;
   top: 0;
   opacity: 0;
}
.file:hover {
   background: #78CD51;
   border-color: #78C3F3;
   color: #FFFFFF;
   text-decoration: none;
}
</style>
<script type="text/javascript" language="javascript">
function submitFile() {
document.getElementById("fileUpload").submit();
}
</script>
<a href="javascript:;" class="file">批量导入病人信息
   <input type="file" name="filePath" id="excelFile" onChange="submitFile()">  
</a>
</form>


FileInputStream是InputStream的子类,不能直接转换,不过FileInputStream可当做InputStream来使用。
该批量导入和幼儿园管理系统导入不太一样!

这篇关于在糖尿病患者信息管理系统中,导入病人信息功能!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147029

相关文章

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转