瀏覽代碼

收获地址迁移从hospital-entrance迁移到hospital工程

LiTaohong 5 年之前
父節點
當前提交
83f79a0d3a

+ 11 - 8
server/svr-authentication/src/main/java/com/yihu/jw/security/core/userdetails/jdbc/WlyyUserDetailsService.java

@ -156,7 +156,16 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
                params.add(new BasicNameValuePair("clientSecret", clientDetails.getClientSecret()));
                params.add(new BasicNameValuePair("clientSecret", clientDetails.getClientSecret()));
                params.add(new BasicNameValuePair("code", username));
                params.add(new BasicNameValuePair("code", username));
                params.add(new BasicNameValuePair("openid", getOpenid()));
                params.add(new BasicNameValuePair("openid", getOpenid()));
                String res = HttpClientKit.post(iHealthUserInfoUrl, params, "UTF-8");
                String res = null;
                try{
                    res = HttpClientKit.post(iHealthUserInfoUrl, params, "UTF-8");
                }catch (Exception e){
                    logger.error("远程请求i健康用户信息异常败:" + e.getMessage());
                    return users;
                }
                if(null == res){
                    return users;
                }
                JSONObject patient = JSONObject.parseObject(res);
                JSONObject patient = JSONObject.parseObject(res);
                if(patient.getInteger("status") == -1){
                if(patient.getInteger("status") == -1){
                    logger.error("去i健康查询用户信息失败:" + patient.getString("error"));
                    logger.error("去i健康查询用户信息失败:" + patient.getString("error"));
@ -406,13 +415,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
    public boolean setRolePhth(String loginType, OAuth2AccessToken token, String id, StringRedisTemplate redisTemplate) {
    public boolean setRolePhth(String loginType, OAuth2AccessToken token, String id, StringRedisTemplate redisTemplate) {
        if (org.apache.commons.lang.StringUtils.isBlank(loginType) || "1".equals(loginType)) { //1或默认查找user表,为平台管理员账号
            String key = "wlyy2:auth:token:" + token.getValue();
            redisTemplate.opsForValue().set(key, "/**");
            redisTemplate.expire(key, token.getExpiresIn(), TimeUnit.SECONDS);
        } else if ("2".equals(loginType)) {//2.为医生账号
        } else if ("3".equals(loginType) || "4".equals(loginType)) { //3.患者账号
        if (org.apache.commons.lang.StringUtils.isBlank(loginType) || "1".equals(loginType) || "2".equals(loginType) || "3".equals(loginType) || "4".equals(loginType)) { //1或默认查找user表,为平台管理员账号
            String key = "wlyy2:auth:token:" + token.getValue();
            String key = "wlyy2:auth:token:" + token.getValue();
            redisTemplate.opsForValue().set(key, "/**");
            redisTemplate.opsForValue().set(key, "/**");
            redisTemplate.expire(key, token.getExpiresIn(), TimeUnit.SECONDS);
            redisTemplate.expire(key, token.getExpiresIn(), TimeUnit.SECONDS);

+ 3 - 3
server/svr-authentication/src/main/resources/application.yml

@ -37,7 +37,7 @@ spring:
# i健康用户信息接口,开放出来给互联网医院登录同步用户信息用
# i健康用户信息接口,开放出来给互联网医院登录同步用户信息用
iHealth:
iHealth:
  user-info-uri: http://http://ehr.yihu.com/wlyy/patient/userInfo
  user-info-uri: http://ehr.yihu.com/wlyy/iHealth/userInfo
---
---
spring:
spring:
  profiles: jwtest
  profiles: jwtest
@ -50,7 +50,7 @@ spring:
    port: 6379 # Redis server port.
    port: 6379 # Redis server port.
## i健康用户信息接口,开放出来给互联网医院登录同步用户信息用
## i健康用户信息接口,开放出来给互联网医院登录同步用户信息用
iHealth:
iHealth:
  user-info-uri: http://http://ehr.yihu.com/wlyy/patient/userInfo
  user-info-uri: http://ehr.yihu.com/wlyy/iHealth/userInfo
---
---
spring:
spring:
  profiles: jwprod
  profiles: jwprod
@ -62,4 +62,4 @@ spring:
    host: 172.19.103.88 # Redis server host.
    host: 172.19.103.88 # Redis server host.
    port: 6379 # Redis server port.
    port: 6379 # Redis server port.
iHealth:
iHealth:
  user-info-uri: http://http://ehr.yihu.com/wlyy/patient/userInfo
  user-info-uri: http://ehr.yihu.com/wlyy/iHealth/userInfo

+ 0 - 29
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/dao/WlyyPatientExpressageAddrDao.java

@ -1,29 +0,0 @@
package com.yihu.jw.entrance.dao;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import com.yihu.jw.entity.hospital.prescription.WlyyPatientExpressageAddrDO;
import java.util.List;
/**
 * 
 * 居民收获地址 数据库访问层
 * 
 * @version 
 * <pre>
 * Author	Version		Date		Changes
 * Administrator 	1.0  		2019年06月12日 	Created
 *
 * </pre>
 * @since 1.
 */
public interface WlyyPatientExpressageAddrDao extends PagingAndSortingRepository<WlyyPatientExpressageAddrDO, String>, JpaSpecificationExecutor<WlyyPatientExpressageAddrDO>  {
    boolean existsByPatientAndIsDefault(String patient,Integer isDefault);
    List<WlyyPatientExpressageAddrDO> queryByPatientAndIsDefault(String patient,Integer isDefault);
    List<WlyyPatientExpressageAddrDO> queryByPatient(String patient);
}

+ 0 - 89
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/service/WlyyPatientExpressageAddrService.java

@ -1,89 +0,0 @@
package com.yihu.jw.entrance.service;
import com.yihu.jw.entrance.dao.WlyyPatientExpressageAddrDao;
import com.yihu.jw.utils.EntityUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yihu.jw.entity.hospital.prescription.WlyyPatientExpressageAddrDO;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
 * 居民收获地址服务service
 *
 * @version <pre>
 * Author	Version		Date		Changes
 * Administrator    1.0  2019年06月12日 Created
 *
 * </pre>
 * @since 1.
 */
@Service
public class WlyyPatientExpressageAddrService extends BaseJpaService<WlyyPatientExpressageAddrDO, WlyyPatientExpressageAddrDao> {
    Logger logger = LoggerFactory.getLogger(WlyyPatientExpressageAddrService.class);
    @Autowired
    private WlyyPatientExpressageAddrDao patientExpressageAddrDao;
    /**
     * 新增居民收货地址
     *
     * @param jsonData
     * @param error
     * @return
     */
    public WlyyPatientExpressageAddrDO createAddr(String jsonData, StringBuilder error) {
        WlyyPatientExpressageAddrDO addrDO = null;
        try {
            addrDO = EntityUtils.jsonToEntity(jsonData, WlyyPatientExpressageAddrDO.class);
        } catch (Exception e) {
            error = new StringBuilder();
            error.append(e.getMessage());
            return null;
        }
        this.save(addrDO);
        return addrDO;
    }
     public boolean hasDefault(String patient){
        if(StringUtils.isEmpty(patient)){
            return true;
        }
        return patientExpressageAddrDao.existsByPatientAndIsDefault(patient,1);
     }
    /**
     * 将地址设置为默认地址
     * @param id
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public void setAddrDefault(String patient,String id,StringBuilder error){
        WlyyPatientExpressageAddrDO addrDO = patientExpressageAddrDao.findOne(id);
        if(null == addrDO){
            error = new StringBuilder();
            error.append("当前地址不存在!");
            return ;
        }
        boolean defaultAddrExist = patientExpressageAddrDao.existsByPatientAndIsDefault(patient,1);
        if(defaultAddrExist){
            List<WlyyPatientExpressageAddrDO> defaultAddrDOList = patientExpressageAddrDao.queryByPatientAndIsDefault(patient,1);
            WlyyPatientExpressageAddrDO defaultAddrDO = defaultAddrDOList.get(0);
            if(StringUtils.equals(addrDO.getId(),defaultAddrDO.getId())){
                return;
            }
            defaultAddrDO.setIsDefault(0);
            addrDO.setIsDefault(1);
            this.save(defaultAddrDO);
            this.save(addrDO);
            error.append("当前居民已存在默认地址!");
            return ;
        }
    }
}

+ 1 - 1
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/config/bean/BeanConfig.java

@ -1,4 +1,4 @@
package com.yihu.jw.entrance.config.bean;
package com.yihu.jw.hospital.config;
import com.yihu.jw.hospital.prescription.service.PrescriptionExpressageService;
import com.yihu.jw.hospital.prescription.service.PrescriptionExpressageService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.annotation.Value;

+ 4 - 0
svr/svr-iot/pom.xml

@ -104,6 +104,10 @@
            <artifactId>elasticsearch-starter</artifactId>
            <artifactId>elasticsearch-starter</artifactId>
            <version>2.0.0</version>
            <version>2.0.0</version>
        </dependency>
        </dependency>
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>fastdfs-starter</artifactId>
        </dependency>
    </dependencies>
    </dependencies>
    <build>
    <build>

+ 345 - 344
svr/svr-iot/src/main/java/com/yihu/iot/controller/analyzer/IotAnalyzerController.java

@ -15,20 +15,18 @@ import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map;
/**
/**
 * @author cws on 2018/1/16.
 * @author cws on 2018/1/16.
 */
 */
@RestController
@RestController
@RequestMapping("svr-iot/analyze" )
@RequestMapping("svr-iot/analyze")
@Api(tags = "设备数据解析入库", description = "基于不同厂商的设备的采集数据,进行解析适配,并入库。")
@Api(tags = "设备数据解析入库", description = "基于不同厂商的设备的采集数据,进行解析适配,并入库。")
public class IotAnalyzerController extends EnvelopRestEndpoint {
public class IotAnalyzerController extends EnvelopRestEndpoint {
@ -43,75 +41,76 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
    /**
    /**
     * 基于奕拓小屋上传的体征数据,进行解析入库  V1.0 版本
     * 基于奕拓小屋上传的体征数据,进行解析入库  V1.0 版本
     *
     * @param jsonData
     * @param jsonData
     * @return
     * @return
     */
     */
    @PostMapping(value = "/yitouxiaowuBK" ,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping(value = "/yitouxiaowuBK", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "奕拓体征数据解析入库", notes = "奕拓体征数据解析入库")
    @ApiOperation(value = "奕拓体征数据解析入库", notes = "奕拓体征数据解析入库")
    public String updateDeviceDataTest(
    public String updateDeviceDataTest(
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData){
            @RequestBody String jsonData) {
        Envelop envelop = new Envelop();
        Envelop envelop = new Envelop();
        String str = "";
        String str = "";
        String strResult = "";
        String strResult = "";
        //1. 基础数据初始化
        //1. 基础数据初始化
        String accessToken  = "yitouxiaowu";  // 奕拓小屋
        String accessToken = "yitouxiaowu";  // 奕拓小屋
        try {
        try {
            //JSON数据解析
            //JSON数据解析
            Map dataDetail = objectMapper.readValue(jsonData, HashMap.class);
            Map dataDetail = objectMapper.readValue(jsonData, HashMap.class);
            // 用户信息
            // 用户信息
            LinkedHashMap memberMap = (LinkedHashMap)dataDetail.get("Member");
            LinkedHashMap memberMap = (LinkedHashMap) dataDetail.get("Member");
            // 身高体重
            // 身高体重
            LinkedHashMap heightMap = (LinkedHashMap)dataDetail.get("Height");
            LinkedHashMap heightMap = (LinkedHashMap) dataDetail.get("Height");
            // 人体成分(脂肪)Fat
            // 人体成分(脂肪)Fat
            LinkedHashMap fatMap = (LinkedHashMap)dataDetail.get("Fat");
            LinkedHashMap fatMap = (LinkedHashMap) dataDetail.get("Fat");
            // 人体成分(脂肪)Fat
            // 人体成分(脂肪)Fat
            LinkedHashMap minFatMap = (LinkedHashMap)dataDetail.get("MinFat");
            LinkedHashMap minFatMap = (LinkedHashMap) dataDetail.get("MinFat");
            // 血压
            // 血压
            LinkedHashMap bloodPressureMap = (LinkedHashMap)dataDetail.get("BloodPressure");
            LinkedHashMap bloodPressureMap = (LinkedHashMap) dataDetail.get("BloodPressure");
            // 血氧
            // 血氧
            LinkedHashMap boMap = (LinkedHashMap)dataDetail.get("Bo");
            LinkedHashMap boMap = (LinkedHashMap) dataDetail.get("Bo");
            // 单导心电
            // 单导心电
            LinkedHashMap ecgMap = (LinkedHashMap)dataDetail.get("Ecg");
            LinkedHashMap ecgMap = (LinkedHashMap) dataDetail.get("Ecg");
            // 12导心电
            // 12导心电
            LinkedHashMap peecgMap = (LinkedHashMap)dataDetail.get("PEEcg");
            LinkedHashMap peecgMap = (LinkedHashMap) dataDetail.get("PEEcg");
            // 体温
            // 体温
            LinkedHashMap temperatureMap = (LinkedHashMap)dataDetail.get("Temperature");
            LinkedHashMap temperatureMap = (LinkedHashMap) dataDetail.get("Temperature");
            // 腰臀比
            // 腰臀比
            LinkedHashMap whrMap = (LinkedHashMap)dataDetail.get("Whr");
            LinkedHashMap whrMap = (LinkedHashMap) dataDetail.get("Whr");
            // 血糖
            // 血糖
            LinkedHashMap bloodSugarMap = (LinkedHashMap)dataDetail.get("BloodSugar");
            LinkedHashMap bloodSugarMap = (LinkedHashMap) dataDetail.get("BloodSugar");
            // 血尿酸
            // 血尿酸
            LinkedHashMap uaMap = (LinkedHashMap)dataDetail.get("Ua");
            LinkedHashMap uaMap = (LinkedHashMap) dataDetail.get("Ua");
            // 总胆固醇
            // 总胆固醇
            LinkedHashMap cholMap = (LinkedHashMap)dataDetail.get("Chol");
            LinkedHashMap cholMap = (LinkedHashMap) dataDetail.get("Chol");
            // 血脂
            // 血脂
            LinkedHashMap bloodFatMap = (LinkedHashMap)dataDetail.get("BloodFat");
            LinkedHashMap bloodFatMap = (LinkedHashMap) dataDetail.get("BloodFat");
            // 心血管功能
            // 心血管功能
            LinkedHashMap cardiovascularMap = (LinkedHashMap)dataDetail.get("Cardiovascular");
            LinkedHashMap cardiovascularMap = (LinkedHashMap) dataDetail.get("Cardiovascular");
            // 骨密度
            // 骨密度
            LinkedHashMap bmdMap = (LinkedHashMap)dataDetail.get("BMD");
            LinkedHashMap bmdMap = (LinkedHashMap) dataDetail.get("BMD");
            // 酒精浓度
            // 酒精浓度
            LinkedHashMap alcoholMap = (LinkedHashMap)dataDetail.get("Alcohol");
            LinkedHashMap alcoholMap = (LinkedHashMap) dataDetail.get("Alcohol");
            // 肺活量
            // 肺活量
            LinkedHashMap lungMap = (LinkedHashMap)dataDetail.get("Lung");
            LinkedHashMap lungMap = (LinkedHashMap) dataDetail.get("Lung");
            // 血红蛋白
            // 血红蛋白
            LinkedHashMap hbMap = (LinkedHashMap)dataDetail.get("Hb");
            LinkedHashMap hbMap = (LinkedHashMap) dataDetail.get("Hb");
            // 尿液分析
            // 尿液分析
            LinkedHashMap urinalysisMap = (LinkedHashMap)dataDetail.get("Urinalysis");
            LinkedHashMap urinalysisMap = (LinkedHashMap) dataDetail.get("Urinalysis");
            //0 - 设备基本信息:设备码、设备所属、测试医生、时间、类别等
            //0 - 设备基本信息:设备码、设备所属、测试医生、时间、类别等
            JSONObject data = new JSONObject();
            JSONObject data = new JSONObject();
            data.put("MachineId",dataDetail.get("MachineId") == null? "":dataDetail.get("MachineId").toString());
            data.put("UnitNo",dataDetail.get("UnitNo") == null? "":dataDetail.get("UnitNo").toString());
            data.put("UnitName",dataDetail.get("UnitName") == null? "":dataDetail.get("UnitName").toString());
            data.put("DoctorId",dataDetail.get("DoctorId") == null? "":dataDetail.get("DoctorId").toString());
            data.put("DoctorName",dataDetail.get("DoctorName") == null? "":dataDetail.get("DoctorName").toString());
            data.put("RecordNo",dataDetail.get("RecordNo") == null? "":dataDetail.get("RecordNo").toString());
            data.put("Measure_time",dataDetail.get("MeasureTime") == null? "":dataDetail.get("MeasureTime").toString());
            data.put("DeviceType",dataDetail.get("DeviceType") == null? "":dataDetail.get("DeviceType").toString());
            data.put("MacAddr",dataDetail.get("MacAddr") == null? "":dataDetail.get("MacAddr").toString());
            data.put("MachineId", dataDetail.get("MachineId") == null ? "" : dataDetail.get("MachineId").toString());
            data.put("UnitNo", dataDetail.get("UnitNo") == null ? "" : dataDetail.get("UnitNo").toString());
            data.put("UnitName", dataDetail.get("UnitName") == null ? "" : dataDetail.get("UnitName").toString());
            data.put("DoctorId", dataDetail.get("DoctorId") == null ? "" : dataDetail.get("DoctorId").toString());
            data.put("DoctorName", dataDetail.get("DoctorName") == null ? "" : dataDetail.get("DoctorName").toString());
            data.put("RecordNo", dataDetail.get("RecordNo") == null ? "" : dataDetail.get("RecordNo").toString());
            data.put("Measure_time", dataDetail.get("MeasureTime") == null ? "" : dataDetail.get("MeasureTime").toString());
            data.put("DeviceType", dataDetail.get("DeviceType") == null ? "" : dataDetail.get("DeviceType").toString());
            data.put("MacAddr", dataDetail.get("MacAddr") == null ? "" : dataDetail.get("MacAddr").toString());
            //用于标识入到I健康的数据库的时间
            //用于标识入到I健康的数据库的时间
            data.put("createDate", DateUtil.getStringDate().toString());
            data.put("createDate", DateUtil.getStringDate().toString());
@ -127,7 +126,7 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
            JSONObject params = new JSONObject();
            JSONObject params = new JSONObject();
            params.put("access_token", accessToken);
            params.put("access_token", accessToken);
            params.put("sn", sn);
            params.put("sn", sn);
            params.put("ext_code","未知");
            params.put("ext_code", "未知");
            params.put("device_name", deviceName);
            params.put("device_name", deviceName);
            params.put("device_model", deviceModel);
            params.put("device_model", deviceModel);
            params.put("idcard", idCard);
            params.put("idcard", idCard);
@ -136,18 +135,18 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
            //2 - 身高体重
            //2 - 身高体重
            if (heightMap != null) {
            if (heightMap != null) {
                data.put("height", heightMap.get("Height") == null ? "" : heightMap.get("Height").toString());
                data.put("height", heightMap.get("Height") == null ? "" : heightMap.get("Height").toString());
                data.put("height_name","身高");
                data.put("height_name", "身高");
                data.put("height_unit", "cm");
                data.put("height_unit", "cm");
                data.put("weight", heightMap.get("Weight") == null ? "" : heightMap.get("Weight").toString());
                data.put("weight", heightMap.get("Weight") == null ? "" : heightMap.get("Weight").toString());
                data.put("weight_name","体重");
                data.put("weight_name", "体重");
                data.put("weight_unit", "kg");
                data.put("weight_unit", "kg");
                data.put("bmi",heightMap.get("BMI") == null? "": heightMap.get("BMI").toString());
                data.put("bmi_unit"," ");
                data.put("bmi", heightMap.get("BMI") == null ? "" : heightMap.get("BMI").toString());
                data.put("bmi_unit", " ");
                data.put("IdealWeight", heightMap.get("IdealWeight") == null ? "" : heightMap.get("IdealWeight").toString());
                data.put("IdealWeight", heightMap.get("IdealWeight") == null ? "" : heightMap.get("IdealWeight").toString());
                data.put("weight_name","理想体重");
                data.put("weight_name", "理想体重");
                data.put("weight_unit", "kg");
                data.put("weight_unit", "kg");
                data.put("heightResult", heightMap.get("Result") == null ? "" : heightMap.get("Result").toString());
                data.put("heightResult", heightMap.get("Result") == null ? "" : heightMap.get("Result").toString());
                data.put("heightResult_name","结论:-1、消瘦,0、正常,1、超重,2、肥胖");
                data.put("heightResult_name", "结论:-1、消瘦,0、正常,1、超重,2、肥胖");
            }
            }
            //3 - 人体成分(脂肪)FAT
            //3 - 人体成分(脂肪)FAT
@ -182,64 +181,64 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Result", fatMap.get("Result") == null ? "" : fatMap.get("Result").toString());
                data.put("Result", fatMap.get("Result") == null ? "" : fatMap.get("Result").toString());
                //单位
                //单位
                data.put("FatRate_name","%");
                data.put("Fat_name","kg");
                data.put("ExceptFat_name","kg");
                data.put("WaterRate_name","%");
                data.put("Water_name","kg");
                data.put("Minerals_name","kg");
                data.put("Protein_name","kg");
                data.put("Fic_name","kg");
                data.put("Foc_name","kg");
                data.put("Muscle_name","kg");
                data.put("FatAdjust_name","kg");
                data.put("WeightAdjust_name","kg");
                data.put("MuscleAdjust_name","kg");
                data.put("BasicMetabolism_name","kcal");
                data.put("Viscera_name","");
                data.put("Bmc_name","kg");
                data.put("MuscleRate_name","%");
                data.put("QuganMuscle_name","kg");
                data.put("QuganFat_name","kg");
                data.put("ZuotuiMuscle_name","kg");
                data.put("ZuobiMuscle_name","kg");
                data.put("YoubiMuscle_name","kg");
                data.put("YoutuiMuscle_name","kg");
                data.put("ZuobiFat_name","kg");
                data.put("ZuotuiFat_name","kg");
                data.put("YoubiFat_name","kg");
                data.put("YoutuiFat_name","kg");
                data.put("Result_name","");
                data.put("FatRate_name", "%");
                data.put("Fat_name", "kg");
                data.put("ExceptFat_name", "kg");
                data.put("WaterRate_name", "%");
                data.put("Water_name", "kg");
                data.put("Minerals_name", "kg");
                data.put("Protein_name", "kg");
                data.put("Fic_name", "kg");
                data.put("Foc_name", "kg");
                data.put("Muscle_name", "kg");
                data.put("FatAdjust_name", "kg");
                data.put("WeightAdjust_name", "kg");
                data.put("MuscleAdjust_name", "kg");
                data.put("BasicMetabolism_name", "kcal");
                data.put("Viscera_name", "");
                data.put("Bmc_name", "kg");
                data.put("MuscleRate_name", "%");
                data.put("QuganMuscle_name", "kg");
                data.put("QuganFat_name", "kg");
                data.put("ZuotuiMuscle_name", "kg");
                data.put("ZuobiMuscle_name", "kg");
                data.put("YoubiMuscle_name", "kg");
                data.put("YoutuiMuscle_name", "kg");
                data.put("ZuobiFat_name", "kg");
                data.put("ZuotuiFat_name", "kg");
                data.put("YoubiFat_name", "kg");
                data.put("YoutuiFat_name", "kg");
                data.put("Result_name", "");
                //说明
                //说明
                data.put("FatRate_name","体脂占比");
                data.put("Fat_name","体脂肪量");
                data.put("ExceptFat_name","非脂肪量");
                data.put("WaterRate_name","体水占比");
                data.put("Water_name","水含量");
                data.put("Minerals_name","矿物质");
                data.put("Protein_name","蛋白质含量");
                data.put("Fic_name","细胞内液");
                data.put("Foc_name","细胞外液");
                data.put("Muscle_name","肌肉量");
                data.put("FatAdjust_name","脂肪调节");
                data.put("WeightAdjust_name","体重调节");
                data.put("MuscleAdjust_name","肌肉调节");
                data.put("BasicMetabolism_name","基础代谢");
                data.put("Viscera_name","内脏脂肪等级");
                data.put("Bmc_name","骨骼量");
                data.put("MuscleRate_name","肌肉率");
                data.put("QuganMuscle_name","躯干肌肉量");
                data.put("QuganFat_name","躯干脂肪量");
                data.put("ZuotuiMuscle_name","左腿肌肉量");
                data.put("ZuobiMuscle_name","左臂肌肉量");
                data.put("YoubiMuscle_name","右臂肌肉量");
                data.put("YoutuiMuscle_name","右腿肌肉量");
                data.put("ZuobiFat_name","左臂脂肪量");
                data.put("ZuotuiFat_name","左腿脂肪量");
                data.put("YoubiFat_name","右臂脂肪量");
                data.put("YoutuiFat_name","右腿脂肪量");
                data.put("Result_name","结论:-1、稍瘦,0、标准,1、超重,2、肥胖");
                data.put("FatRate_name", "体脂占比");
                data.put("Fat_name", "体脂肪量");
                data.put("ExceptFat_name", "非脂肪量");
                data.put("WaterRate_name", "体水占比");
                data.put("Water_name", "水含量");
                data.put("Minerals_name", "矿物质");
                data.put("Protein_name", "蛋白质含量");
                data.put("Fic_name", "细胞内液");
                data.put("Foc_name", "细胞外液");
                data.put("Muscle_name", "肌肉量");
                data.put("FatAdjust_name", "脂肪调节");
                data.put("WeightAdjust_name", "体重调节");
                data.put("MuscleAdjust_name", "肌肉调节");
                data.put("BasicMetabolism_name", "基础代谢");
                data.put("Viscera_name", "内脏脂肪等级");
                data.put("Bmc_name", "骨骼量");
                data.put("MuscleRate_name", "肌肉率");
                data.put("QuganMuscle_name", "躯干肌肉量");
                data.put("QuganFat_name", "躯干脂肪量");
                data.put("ZuotuiMuscle_name", "左腿肌肉量");
                data.put("ZuobiMuscle_name", "左臂肌肉量");
                data.put("YoubiMuscle_name", "右臂肌肉量");
                data.put("YoutuiMuscle_name", "右腿肌肉量");
                data.put("ZuobiFat_name", "左臂脂肪量");
                data.put("ZuotuiFat_name", "左腿脂肪量");
                data.put("YoubiFat_name", "右臂脂肪量");
                data.put("YoutuiFat_name", "右腿脂肪量");
                data.put("Result_name", "结论:-1、稍瘦,0、标准,1、超重,2、肥胖");
            }
            }
            //4 - 人体成分(脂肪)minFatMap
            //4 - 人体成分(脂肪)minFatMap
@ -253,23 +252,23 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Shape", minFatMap.get("Shape") == null ? "" : minFatMap.get("Shape").toString());
                data.put("Shape", minFatMap.get("Shape") == null ? "" : minFatMap.get("Shape").toString());
                data.put("Result", minFatMap.get("Result") == null ? "" : minFatMap.get("Result").toString());
                data.put("Result", minFatMap.get("Result") == null ? "" : minFatMap.get("Result").toString());
                data.put("Height_name","cm");
                data.put("Weight_name","kg");
                data.put("FatRate_name","%");
                data.put("BasicMetabolism_name","");
                data.put("Bmi_name","");
                data.put("Physique_name","");
                data.put("Shape_name","");
                data.put("Result_unit","");
                data.put("Height_name","身高");
                data.put("Weight_name","体重");
                data.put("FatRate_name","体脂肪率");
                data.put("BasicMetabolism_name","基础代谢");
                data.put("Bmi_name","BMI");
                data.put("Physique_name","体质指数:1、偏低,2、标准,3、偏高,4、高");
                data.put("Shape_name","体型:1、消瘦,2、标准,3、隐藏性肥胖,4、肌肉型肥胖/健壮,5、肥胖");
                data.put("Result_name","结论:-1、消瘦,0、正常,1、超重,2、肥胖");
                data.put("Height_name", "cm");
                data.put("Weight_name", "kg");
                data.put("FatRate_name", "%");
                data.put("BasicMetabolism_name", "");
                data.put("Bmi_name", "");
                data.put("Physique_name", "");
                data.put("Shape_name", "");
                data.put("Result_unit", "");
                data.put("Height_name", "身高");
                data.put("Weight_name", "体重");
                data.put("FatRate_name", "体脂肪率");
                data.put("BasicMetabolism_name", "基础代谢");
                data.put("Bmi_name", "BMI");
                data.put("Physique_name", "体质指数:1、偏低,2、标准,3、偏高,4、高");
                data.put("Shape_name", "体型:1、消瘦,2、标准,3、隐藏性肥胖,4、肌肉型肥胖/健壮,5、肥胖");
                data.put("Result_name", "结论:-1、消瘦,0、正常,1、超重,2、肥胖");
            }
            }
@ -280,15 +279,15 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Pulse", bloodPressureMap.get("Pulse") == null ? "" : bloodPressureMap.get("Pulse").toString());
                data.put("Pulse", bloodPressureMap.get("Pulse") == null ? "" : bloodPressureMap.get("Pulse").toString());
                data.put("Result", bloodPressureMap.get("Result") == null ? "" : bloodPressureMap.get("Result").toString());
                data.put("Result", bloodPressureMap.get("Result") == null ? "" : bloodPressureMap.get("Result").toString());
                data.put("HighPressure_unit","mmHg");
                data.put("LowPressure_unit","mmHg");
                data.put("Pulse_unit","次/分");
                data.put("Result_unit","");
                data.put("HighPressure_unit", "mmHg");
                data.put("LowPressure_unit", "mmHg");
                data.put("Pulse_unit", "次/分");
                data.put("Result_unit", "");
                data.put("HighPressure_name","(收缩压)高压");
                data.put("LowPressure_name","(舒张压)低压");
                data.put("Pulse_name","脉搏");
                data.put("Result_name","结论:-1、低压,0、正常,1、正常高压 2、轻度高压 3、中度高压 4、重度高压");
                data.put("HighPressure_name", "(收缩压)高压");
                data.put("LowPressure_name", "(舒张压)低压");
                data.put("Pulse_name", "脉搏");
                data.put("Result_name", "结论:-1、低压,0、正常,1、正常高压 2、轻度高压 3、中度高压 4、重度高压");
            }
            }
            // 血氧
            // 血氧
            if (boMap != null) {
            if (boMap != null) {
@ -301,23 +300,23 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("EndTime", boMap.get("EndTime") == null ? "" : boMap.get("EndTime").toString());
                data.put("EndTime", boMap.get("EndTime") == null ? "" : boMap.get("EndTime").toString());
                data.put("SecondCount", boMap.get("SecondCount") == null ? "" : boMap.get("SecondCount").toString());
                data.put("SecondCount", boMap.get("SecondCount") == null ? "" : boMap.get("SecondCount").toString());
                data.put("Oxygen_unit","%");
                data.put("OxygenList_unit","");
                data.put("Bpm_unit","");
                data.put("BpmList_unit","");
                data.put("Result_unit","");
                data.put("StartTime_unit","");
                data.put("EndTime_unit","");
                data.put("SecondCount_unit","");
                data.put("Oxygen_name","血氧值");
                data.put("OxygenList_name","血氧列表值");
                data.put("Bpm_name","脉率值");
                data.put("BpmList_name","脉率列表值");
                data.put("Result_name","结论:-1、低血氧,0、正常血氧");
                data.put("StartTime_name","开始时间");
                data.put("EndTime_name","结束时间");
                data.put("SecondCount_name","总测量秒数");
                data.put("Oxygen_unit", "%");
                data.put("OxygenList_unit", "");
                data.put("Bpm_unit", "");
                data.put("BpmList_unit", "");
                data.put("Result_unit", "");
                data.put("StartTime_unit", "");
                data.put("EndTime_unit", "");
                data.put("SecondCount_unit", "");
                data.put("Oxygen_name", "血氧值");
                data.put("OxygenList_name", "血氧列表值");
                data.put("Bpm_name", "脉率值");
                data.put("BpmList_name", "脉率列表值");
                data.put("Result_name", "结论:-1、低血氧,0、正常血氧");
                data.put("StartTime_name", "开始时间");
                data.put("EndTime_name", "结束时间");
                data.put("SecondCount_name", "总测量秒数");
            }
            }
@ -329,22 +328,22 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Result", ecgMap.get("Result") == null ? "" : ecgMap.get("Result").toString());
                data.put("Result", ecgMap.get("Result") == null ? "" : ecgMap.get("Result").toString());
                data.put("Analysis", ecgMap.get("Analysis") == null ? "" : ecgMap.get("Analysis").toString());
                data.put("Analysis", ecgMap.get("Analysis") == null ? "" : ecgMap.get("Analysis").toString());
                data.put("Hr_unit","次/分");
                data.put("EcgData_unit","");
                data.put("nGain_unit","");
                data.put("Result_unit","(废除)");
                data.put("Analysis_unit","");
                data.put("Hr_unit", "次/分");
                data.put("EcgData_unit", "");
                data.put("nGain_unit", "");
                data.put("Result_unit", "(废除)");
                data.put("Analysis_unit", "");
                data.put("Hr_name","心率值");
                data.put("EcgData_name","心电图数据");
                data.put("nGain_name","增益");
                data.put("Result_name","  ");
                data.put("Analysis_name","结论:5025 对照说明详见附1");
                data.put("Hr_name", "心率值");
                data.put("EcgData_name", "心电图数据");
                data.put("nGain_name", "增益");
                data.put("Result_name", "  ");
                data.put("Analysis_name", "结论:5025 对照说明详见附1");
            }
            }
            // 12导心电
            // 12导心电
           if (peecgMap != null) {
            if (peecgMap != null) {
                data.put("Hr", peecgMap.get("Hr") == null ? "" : peecgMap.get("Hr").toString());
                data.put("Hr", peecgMap.get("Hr") == null ? "" : peecgMap.get("Hr").toString());
                data.put("PAxis", peecgMap.get("PAxis") == null ? "" : peecgMap.get("PAxis").toString());
                data.put("PAxis", peecgMap.get("PAxis") == null ? "" : peecgMap.get("PAxis").toString());
                data.put("QRSAxis", peecgMap.get("QRSAxis") == null ? "" : peecgMap.get("QRSAxis").toString());
                data.put("QRSAxis", peecgMap.get("QRSAxis") == null ? "" : peecgMap.get("QRSAxis").toString());
@ -367,32 +366,32 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                    data.put("filepath",resPath);
                    data.put("filepath",resPath);
                }*/
                }*/
                data.put("Hr_unit","次/分");
                data.put("PAxis_unit","");
                data.put("QRSAxis_unit","");
                data.put("TAxis_unit","");
                data.put("PR_unit","ms");
                data.put("QRS_unit","ms");
                data.put("QT_unit","ms");
                data.put("QTc_unit","ms");
                data.put("RV5_unit","mV");
                data.put("SV1_unit","mV");
                data.put("EcgData_unit","");
                data.put("Result_unit","");
                data.put("Hr_name","心率值");
                data.put("PAxis_name","P轴");
                data.put("QRSAxis_name","QRS轴");
                data.put("TAxis_name","T轴");
                data.put("PR_name","PR 间期");
                data.put("QRS_name","QRS 时限");
                data.put("QT_name","QT 间期");
                data.put("QTc_name","QTc 间期");
                data.put("RV5_name","RV5 幅度");
                data.put("SV1_name","SV1 幅度");
                data.put("EcgData_name","心电图数据");
                data.put("EcgImg_name","心电波形图图片");
                data.put("Result_name","心电结论");
                data.put("Hr_unit", "次/分");
                data.put("PAxis_unit", "");
                data.put("QRSAxis_unit", "");
                data.put("TAxis_unit", "");
                data.put("PR_unit", "ms");
                data.put("QRS_unit", "ms");
                data.put("QT_unit", "ms");
                data.put("QTc_unit", "ms");
                data.put("RV5_unit", "mV");
                data.put("SV1_unit", "mV");
                data.put("EcgData_unit", "");
                data.put("Result_unit", "");
                data.put("Hr_name", "心率值");
                data.put("PAxis_name", "P轴");
                data.put("QRSAxis_name", "QRS轴");
                data.put("TAxis_name", "T轴");
                data.put("PR_name", "PR 间期");
                data.put("QRS_name", "QRS 时限");
                data.put("QT_name", "QT 间期");
                data.put("QTc_name", "QTc 间期");
                data.put("RV5_name", "RV5 幅度");
                data.put("SV1_name", "SV1 幅度");
                data.put("EcgData_name", "心电图数据");
                data.put("EcgImg_name", "心电波形图图片");
                data.put("Result_name", "心电结论");
            }
            }
@ -401,11 +400,11 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Temperature", temperatureMap.get("Temperature") == null ? "" : temperatureMap.get("Temperature").toString());
                data.put("Temperature", temperatureMap.get("Temperature") == null ? "" : temperatureMap.get("Temperature").toString());
                data.put("Result", temperatureMap.get("Result") == null ? "" : temperatureMap.get("Result").toString());
                data.put("Result", temperatureMap.get("Result") == null ? "" : temperatureMap.get("Result").toString());
                data.put("Temperature_unit","℃");
                data.put("Result_unit","");
                data.put("Temperature_unit", "℃");
                data.put("Result_unit", "");
                data.put("Temperature_name","体温值");
                data.put("Result_name","结论:-1、低温,0、正常,1、高温");
                data.put("Temperature_name", "体温值");
                data.put("Result_name", "结论:-1、低温,0、正常,1、高温");
            }
            }
@ -416,15 +415,15 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Whr", whrMap.get("Whr") == null ? "" : whrMap.get("Whr").toString());
                data.put("Whr", whrMap.get("Whr") == null ? "" : whrMap.get("Whr").toString());
                data.put("Result", whrMap.get("Result") == null ? "" : whrMap.get("Result").toString());
                data.put("Result", whrMap.get("Result") == null ? "" : whrMap.get("Result").toString());
                data.put("Waistline_unit","cm");
                data.put("Hipline_unit","cm");
                data.put("Whr_unit","%");
                data.put("Result_unit","");
                data.put("Waistline_unit", "cm");
                data.put("Hipline_unit", "cm");
                data.put("Whr_unit", "%");
                data.put("Result_unit", "");
                data.put("Waistline_name","腰围");
                data.put("Hipline_name","臀围");
                data.put("Whr_name","腰臀比");
                data.put("Result_name","结论: 0:正常,1:上身肥胖,2:下身肥胖");
                data.put("Waistline_name", "腰围");
                data.put("Hipline_name", "臀围");
                data.put("Whr_name", "腰臀比");
                data.put("Result_name", "结论: 0:正常,1:上身肥胖,2:下身肥胖");
            }
            }
            // 血糖
            // 血糖
            if (bloodSugarMap != null) {
            if (bloodSugarMap != null) {
@ -433,23 +432,23 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Result", bloodSugarMap.get("Result") == null ? "" : bloodSugarMap.get("Result").toString());
                data.put("Result", bloodSugarMap.get("Result") == null ? "" : bloodSugarMap.get("Result").toString());
                data.put("BloodSugar_name","血糖值");
                data.put("BloodsugarType_name","血糖类型:1、餐前血糖,2、餐后血糖,3、随机血糖");
                data.put("Result_name","结论:-1、低血糖,0、正常,1、偏高 2、高");
                data.put("BloodSugar_name", "血糖值");
                data.put("BloodsugarType_name", "血糖类型:1、餐前血糖,2、餐后血糖,3、随机血糖");
                data.put("Result_name", "结论:-1、低血糖,0、正常,1、偏高 2、高");
                data.put("BloodSugar_unit","mmol/L");
                data.put("BloodsugarType_unit","");
                data.put("Result_unit","");
                data.put("BloodSugar_unit", "mmol/L");
                data.put("BloodsugarType_unit", "");
                data.put("Result_unit", "");
            }
            }
            // 血尿酸
            // 血尿酸
            if (uaMap != null) {
            if (uaMap != null) {
                data.put("Ua", uaMap.get("Ua") == null ? "" : uaMap.get("Ua").toString());
                data.put("Ua", uaMap.get("Ua") == null ? "" : uaMap.get("Ua").toString());
                data.put("Result", uaMap.get("Result") == null ? "" : uaMap.get("Result").toString());
                data.put("Result", uaMap.get("Result") == null ? "" : uaMap.get("Result").toString());
                data.put("Ua_unit","mmol/L");
                data.put("Result_unit","");
                data.put("Ua_name","尿酸值");
                data.put("Result_name","结论:-1、低,0、正常,1、高");
                data.put("Ua_unit", "mmol/L");
                data.put("Result_unit", "");
                data.put("Ua_name", "尿酸值");
                data.put("Result_name", "结论:-1、低,0、正常,1、高");
            }
            }
            // 总胆固醇
            // 总胆固醇
@ -457,11 +456,11 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Chol", cholMap.get("Chol") == null ? "" : cholMap.get("Chol").toString());
                data.put("Chol", cholMap.get("Chol") == null ? "" : cholMap.get("Chol").toString());
                data.put("Result", cholMap.get("Result") == null ? "" : cholMap.get("Result").toString());
                data.put("Result", cholMap.get("Result") == null ? "" : cholMap.get("Result").toString());
                data.put("Chol_unit","mmol/L");
                data.put("Result_unit","");
                data.put("Chol_unit", "mmol/L");
                data.put("Result_unit", "");
                data.put("Chol_name","总胆固醇值");
                data.put("Result_name","结论:-1、低,0、正常,1、高  2、过高");
                data.put("Chol_name", "总胆固醇值");
                data.put("Result_name", "结论:-1、低,0、正常,1、高  2、过高");
            }
            }
            // 血脂
            // 血脂
@ -473,19 +472,19 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("CalcLdl", bloodFatMap.get("CalcLdl") == null ? "" : bloodFatMap.get("CalcLdl").toString());
                data.put("CalcLdl", bloodFatMap.get("CalcLdl") == null ? "" : bloodFatMap.get("CalcLdl").toString());
                data.put("Result", bloodFatMap.get("Result") == null ? "" : bloodFatMap.get("Result").toString());
                data.put("Result", bloodFatMap.get("Result") == null ? "" : bloodFatMap.get("Result").toString());
                data.put("TChol_unit","mmol/L");
                data.put("HdlChol_unit","mmol/L");
                data.put("Trig_unit","mmol/L");
                data.put("TcHdl_unit","");
                data.put("CalcLdl_unit","mmol/L");
                data.put("Result_unit","");
                data.put("TChol_unit", "mmol/L");
                data.put("HdlChol_unit", "mmol/L");
                data.put("Trig_unit", "mmol/L");
                data.put("TcHdl_unit", "");
                data.put("CalcLdl_unit", "mmol/L");
                data.put("Result_unit", "");
                data.put("TChol_name","总胆固醇");
                data.put("HdlChol_name","高密度蛋白");
                data.put("Trig_name","甘油三酯");
                data.put("TcHdl_name","血脂比值");
                data.put("CalcLdl_name","低密度蛋白");
                data.put("Result_name","结论:-1、低,0、正常,1、高");
                data.put("TChol_name", "总胆固醇");
                data.put("HdlChol_name", "高密度蛋白");
                data.put("Trig_name", "甘油三酯");
                data.put("TcHdl_name", "血脂比值");
                data.put("CalcLdl_name", "低密度蛋白");
                data.put("Result_name", "结论:-1、低,0、正常,1、高");
            }
            }
            // 心血管功能
            // 心血管功能
@ -503,31 +502,31 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("PAWP", cardiovascularMap.get("PAWP") == null ? "" : cardiovascularMap.get("PAWP").toString());
                data.put("PAWP", cardiovascularMap.get("PAWP") == null ? "" : cardiovascularMap.get("PAWP").toString());
                data.put("N", cardiovascularMap.get("N") == null ? "" : cardiovascularMap.get("N").toString());
                data.put("N", cardiovascularMap.get("N") == null ? "" : cardiovascularMap.get("N").toString());
                data.put("HeartFunction1_name","心脏功能");
                data.put("VascularCondition1_name","心血管状况");
                data.put("HeartFunction2_name","心脏功能-简化数据");
                data.put("VascularCondition2_name","心血管状况-简化数据");
                data.put("Result_name","诊断结果");
                data.put("SV_name","SV");
                data.put("CO_name","CO");
                data.put("HOV_name","HOV");
                data.put("CMBV_name","CMBV");
                data.put("TPR_name","TPR");
                data.put("PAWP_name","PAWP");
                data.put("N_name","N");
                data.put("HeartFunction1_unit","");
                data.put("VascularCondition1_unit","");
                data.put("HeartFunction2_unit","");
                data.put("VascularCondition2_unit","");
                data.put("Result_unit","");
                data.put("SV_unit","");
                data.put("CO_unit","");
                data.put("HOV_unit","");
                data.put("CMBV_unit","");
                data.put("TPR_unit","");
                data.put("PAWP_unit","");
                data.put("N_unit","");
                data.put("HeartFunction1_name", "心脏功能");
                data.put("VascularCondition1_name", "心血管状况");
                data.put("HeartFunction2_name", "心脏功能-简化数据");
                data.put("VascularCondition2_name", "心血管状况-简化数据");
                data.put("Result_name", "诊断结果");
                data.put("SV_name", "SV");
                data.put("CO_name", "CO");
                data.put("HOV_name", "HOV");
                data.put("CMBV_name", "CMBV");
                data.put("TPR_name", "TPR");
                data.put("PAWP_name", "PAWP");
                data.put("N_name", "N");
                data.put("HeartFunction1_unit", "");
                data.put("VascularCondition1_unit", "");
                data.put("HeartFunction2_unit", "");
                data.put("VascularCondition2_unit", "");
                data.put("Result_unit", "");
                data.put("SV_unit", "");
                data.put("CO_unit", "");
                data.put("HOV_unit", "");
                data.put("CMBV_unit", "");
                data.put("TPR_unit", "");
                data.put("PAWP_unit", "");
                data.put("N_unit", "");
            }
            }
            // 骨密度
            // 骨密度
@ -545,31 +544,31 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("PAB", bmdMap.get("PAB") == null ? "" : bmdMap.get("PAB").toString());
                data.put("PAB", bmdMap.get("PAB") == null ? "" : bmdMap.get("PAB").toString());
                data.put("Result", bmdMap.get("Result") == null ? "" : bmdMap.get("Result").toString());
                data.put("Result", bmdMap.get("Result") == null ? "" : bmdMap.get("Result").toString());
                data.put("TSCORE_unit","");
                data.put("ZSCORE_unit","");
                data.put("OI_unit","");
                data.put("BQI_unit","");
                data.put("SOS_unit","(m/s)");
                data.put("YOUNG_ADULT_unit","");
                data.put("AGE_MATCHED_unit","");
                data.put("BUA_unit","");
                data.put("EOA_unit","");
                data.put("RRF_unit","");
                data.put("PAB_unit","");
                data.put("Result_unit","");
                data.put("TSCORE_name","T值,受试者的数值与年轻健康成人的骨密度平均值的标准差");
                data.put("ZSCORE_name","Z值,受试者的数值与同年龄人群骨密度的平均值的标准差");
                data.put("OI_name","骨质指数,数值越大表示骨密度越高");
                data.put("BQI_name","骨质指数,数值越大表示骨密度越高");
                data.put("SOS_name","超声声速");
                data.put("YOUNG_ADULT_name","成人百分比");
                data.put("AGE_MATCHED_name","年龄百分比");
                data.put("BUA_name","BUA");
                data.put("EOA_name","预期发生骨质疏松的年龄");
                data.put("RRF_name","相对骨折风险");
                data.put("PAB_name","骨骼的生理年龄");
                data.put("Result_name","诊断结果:-2、骨强度不足,-1、骨质疏松,0、正常");
                data.put("TSCORE_unit", "");
                data.put("ZSCORE_unit", "");
                data.put("OI_unit", "");
                data.put("BQI_unit", "");
                data.put("SOS_unit", "(m/s)");
                data.put("YOUNG_ADULT_unit", "");
                data.put("AGE_MATCHED_unit", "");
                data.put("BUA_unit", "");
                data.put("EOA_unit", "");
                data.put("RRF_unit", "");
                data.put("PAB_unit", "");
                data.put("Result_unit", "");
                data.put("TSCORE_name", "T值,受试者的数值与年轻健康成人的骨密度平均值的标准差");
                data.put("ZSCORE_name", "Z值,受试者的数值与同年龄人群骨密度的平均值的标准差");
                data.put("OI_name", "骨质指数,数值越大表示骨密度越高");
                data.put("BQI_name", "骨质指数,数值越大表示骨密度越高");
                data.put("SOS_name", "超声声速");
                data.put("YOUNG_ADULT_name", "成人百分比");
                data.put("AGE_MATCHED_name", "年龄百分比");
                data.put("BUA_name", "BUA");
                data.put("EOA_name", "预期发生骨质疏松的年龄");
                data.put("RRF_name", "相对骨折风险");
                data.put("PAB_name", "骨骼的生理年龄");
                data.put("Result_name", "诊断结果:-2、骨强度不足,-1、骨质疏松,0、正常");
            }
            }
            // 酒精浓度
            // 酒精浓度
@ -580,17 +579,17 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("errcode", alcoholMap.get("errcode") == null ? "" : alcoholMap.get("errcode").toString());
                data.put("errcode", alcoholMap.get("errcode") == null ? "" : alcoholMap.get("errcode").toString());
                data.put("errinfo", alcoholMap.get("errinfo") == null ? "" : alcoholMap.get("errinfo").toString());
                data.put("errinfo", alcoholMap.get("errinfo") == null ? "" : alcoholMap.get("errinfo").toString());
                data.put("Alcohol_name","酒精浓度值(单位 mg/100ml)");
                data.put("Result_name","0:正常 1:饮酒 2:醉酒");
                data.put("AlcoholImg_name","(双佳服务器上传的是图片地址,其它是图片二进制)Base64字符串");
                data.put("errcode_name","(-10:未找到图片 ,-11: 上传异常,-12 服务器返回空值;其它服务器返回)错误代码");
                data.put("errinfo_name","错误信息");
                data.put("Alcohol_name", "酒精浓度值(单位 mg/100ml)");
                data.put("Result_name", "0:正常 1:饮酒 2:醉酒");
                data.put("AlcoholImg_name", "(双佳服务器上传的是图片地址,其它是图片二进制)Base64字符串");
                data.put("errcode_name", "(-10:未找到图片 ,-11: 上传异常,-12 服务器返回空值;其它服务器返回)错误代码");
                data.put("errinfo_name", "错误信息");
                data.put("Alcohol_unit","");
                data.put("Result_unit","");
                data.put("AlcoholImg_unit","");
                data.put("errcode_unit","");
                data.put("errinfo_unit","");
                data.put("Alcohol_unit", "");
                data.put("Result_unit", "");
                data.put("AlcoholImg_unit", "");
                data.put("errcode_unit", "");
                data.put("errinfo_unit", "");
            }
            }
            // 肺活量
            // 肺活量
@ -604,23 +603,23 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("FEF2575", lungMap.get("FEF2575") == null ? "" : lungMap.get("FEF2575").toString());
                data.put("FEF2575", lungMap.get("FEF2575") == null ? "" : lungMap.get("FEF2575").toString());
                data.put("Result", lungMap.get("Result") == null ? "" : lungMap.get("Result").toString());
                data.put("Result", lungMap.get("Result") == null ? "" : lungMap.get("Result").toString());
                data.put("Lung_unit","");
                data.put("FVC_unit","");
                data.put("FEV1_unit","");
                data.put("PEF_unit","");
                data.put("FEF25_unit","");
                data.put("FEF75_unit","");
                data.put("FEF2575_unit","");
                data.put("Result_unit","");
                data.put("Lung_name","单位 ml");
                data.put("FVC_name","用力肺活量");
                data.put("FEV1_name","用力呼气1秒量");
                data.put("PEF_name","呼气峰值流速");
                data.put("FEF25_name","25% 肺活量时的用力呼气流速");
                data.put("FEF75_name","75% 肺活量时的用力呼气流速");
                data.put("FEF2575_name","25% 肺活量到75%肺活量之间的平均呼气流速");
                data.put("Result_name","结果(暂无)");
                data.put("Lung_unit", "");
                data.put("FVC_unit", "");
                data.put("FEV1_unit", "");
                data.put("PEF_unit", "");
                data.put("FEF25_unit", "");
                data.put("FEF75_unit", "");
                data.put("FEF2575_unit", "");
                data.put("Result_unit", "");
                data.put("Lung_name", "单位 ml");
                data.put("FVC_name", "用力肺活量");
                data.put("FEV1_name", "用力呼气1秒量");
                data.put("PEF_name", "呼气峰值流速");
                data.put("FEF25_name", "25% 肺活量时的用力呼气流速");
                data.put("FEF75_name", "75% 肺活量时的用力呼气流速");
                data.put("FEF2575_name", "25% 肺活量到75%肺活量之间的平均呼气流速");
                data.put("Result_name", "结果(暂无)");
            }
            }
            // 血红蛋白
            // 血红蛋白
@ -629,13 +628,13 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Hct", hbMap.get("Hct") == null ? "" : hbMap.get("Hct").toString());
                data.put("Hct", hbMap.get("Hct") == null ? "" : hbMap.get("Hct").toString());
                data.put("Result", hbMap.get("Result") == null ? "" : hbMap.get("Result").toString());
                data.put("Result", hbMap.get("Result") == null ? "" : hbMap.get("Result").toString());
                data.put("Hb_unit","mmol/L");
                data.put("Hct_unit","%");
                data.put("Result_unit","");
                data.put("Hb_unit", "mmol/L");
                data.put("Hct_unit", "%");
                data.put("Result_unit", "");
                data.put("Hb_name","血红蛋白值");
                data.put("Hct_name","红细胞比容");
                data.put("Result_name","诊断结果:-1、血红蛋白偏低,0、正常,1血红蛋白偏高");
                data.put("Hb_name", "血红蛋白值");
                data.put("Hct_name", "红细胞比容");
                data.put("Result_name", "诊断结果:-1、血红蛋白偏低,0、正常,1血红蛋白偏高");
            }
            }
            // 尿液分析
            // 尿液分析
@ -656,66 +655,66 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("UCA", urinalysisMap.get("UCA") == null ? "" : urinalysisMap.get("UCA").toString());
                data.put("UCA", urinalysisMap.get("UCA") == null ? "" : urinalysisMap.get("UCA").toString());
                data.put("Result", urinalysisMap.get("Result") == null ? "" : urinalysisMap.get("Result").toString());
                data.put("Result", urinalysisMap.get("Result") == null ? "" : urinalysisMap.get("Result").toString());
                data.put("URO_unit","");
                data.put("BLD_unit","");
                data.put("BIL_unit","");
                data.put("KET_unit","");
                data.put("LEU_unit","");
                data.put("GLU_unit","");
                data.put("PRO_unit","");
                data.put("PH_unit","");
                data.put("NIT_unit","");
                data.put("SG_unit","");
                data.put("VC_unit","");
                data.put("MAL_unit","");
                data.put("CR_unit","");
                data.put("UCA_unit","");
                data.put("Result_unit","");
                data.put("URO_name","尿胆原");
                data.put("BLD_name","潜血");
                data.put("BIL_name","胆红素");
                data.put("KET_name","酮体");
                data.put("LEU_name","白细胞");
                data.put("GLU_name","葡萄糖");
                data.put("PRO_name","蛋白质");
                data.put("PH_name","酸碱度");
                data.put("NIT_name","亚硝酸盐");
                data.put("SG_name","比重");
                data.put("VC_name","维生素");
                data.put("MAL_name","微白蛋白");
                data.put("CR_name","肌酐");
                data.put("UCA_name","钙离子");
                data.put("Result_name","结果");
                data.put("URO_unit", "");
                data.put("BLD_unit", "");
                data.put("BIL_unit", "");
                data.put("KET_unit", "");
                data.put("LEU_unit", "");
                data.put("GLU_unit", "");
                data.put("PRO_unit", "");
                data.put("PH_unit", "");
                data.put("NIT_unit", "");
                data.put("SG_unit", "");
                data.put("VC_unit", "");
                data.put("MAL_unit", "");
                data.put("CR_unit", "");
                data.put("UCA_unit", "");
                data.put("Result_unit", "");
                data.put("URO_name", "尿胆原");
                data.put("BLD_name", "潜血");
                data.put("BIL_name", "胆红素");
                data.put("KET_name", "酮体");
                data.put("LEU_name", "白细胞");
                data.put("GLU_name", "葡萄糖");
                data.put("PRO_name", "蛋白质");
                data.put("PH_name", "酸碱度");
                data.put("NIT_name", "亚硝酸盐");
                data.put("SG_name", "比重");
                data.put("VC_name", "维生素");
                data.put("MAL_name", "微白蛋白");
                data.put("CR_name", "肌酐");
                data.put("UCA_name", "钙离子");
                data.put("Result_name", "结果");
            }
            }
            data.put("hbalc","");
            data.put("hbalc_unit","");
            data.put("left_eye","");
            data.put("left_eye_unit","");
            data.put("right_eye","");
            data.put("right_eye_unit","");
            data.put("hbalc", "");
            data.put("hbalc_unit", "");
            data.put("left_eye", "");
            data.put("left_eye_unit", "");
            data.put("right_eye", "");
            data.put("right_eye_unit", "");
            jsonArray.add(data);
            jsonArray.add(data);
            params.put("data", jsonArray);
            params.put("data", jsonArray);
            str = dataInputService.inputBodySignsData(params.toString());
            str = dataInputService.inputBodySignsData(params.toString());
            JSONObject result = JSONObject.parseObject(str);
            JSONObject result = JSONObject.parseObject(str);
            if (StringUtils.endsWithIgnoreCase(ConstantUtils.FAIL,result.getString("response"))) {
            if (StringUtils.endsWithIgnoreCase(ConstantUtils.FAIL, result.getString("response"))) {
                Map res = new HashMap();
                Map res = new HashMap();
                res.put("success", "false");
                res.put("success", "false");
                res.put("message", result.getString("msg"));
                res.put("message", result.getString("msg"));
                strResult = objectMapper.writeValueAsString(res);
                strResult = objectMapper.writeValueAsString(res);
                return strResult;
                return strResult;
            }else{
            } else {
                Map res = new HashMap();
                Map res = new HashMap();
                res.put("success", "true");
                res.put("success", "true");
                res.put("message", "体征信息上传成功。");
                res.put("message", "体征信息上传成功。");
                JSONArray ridRes = new JSONArray();
                JSONArray ridRes = new JSONArray();
                ridRes = (JSONArray)result.get("rid");
                ridRes = (JSONArray) result.get("rid");
                String rid = ridRes.get(0).toString();
                String rid = ridRes.get(0).toString();
                res.put("rid", rid);
                res.put("rid", rid);
@ -731,22 +730,24 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
    /**
    /**
     * 基于奕拓小屋上传的体征数据,进行解析入库  V2.0 版本
     * 基于奕拓小屋上传的体征数据,进行解析入库  V2.0 版本
     *
     * @param jsonData
     * @param jsonData
     * @return
     * @return
     */
     */
    @PostMapping(value = "/yitouxiaowu" ,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping(value = "/yitouxiaowu", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "奕拓体征数据解析入库", notes = "奕拓体征数据解析入库")
    @ApiOperation(value = "奕拓体征数据解析入库", notes = "奕拓体征数据解析入库")
    public Envelop updateDeviceData(
    public Envelop updateDeviceData(
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData)throws Exception {
            @RequestBody String jsonData) throws Exception {
        boolean res = iotAnalyzerService.analyzerMapM(jsonData);
        boolean res = iotAnalyzerService.analyzerMapM(jsonData);
        if(res){
        if (res) {
            return success("体征数据上传成功");
            return success("体征数据上传成功");
        }else {
        } else {
            return failed("体征数据上传失败");
            return failed("体征数据上传失败");
        }
        }
    }
    }
}
}

+ 28 - 3
svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/IotAnalyzerService.java

@ -1,15 +1,19 @@
package com.yihu.iot.service.analyzer;
package com.yihu.iot.service.analyzer;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.util.excel.ExcelUtil;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.annotation.PostConstruct;
import java.util.*;
/**
/**
 * @author cws on 2019/6/16
 * @author cws on 2019/6/16
@ -18,15 +22,34 @@ import java.util.Map;
public class IotAnalyzerService extends BaseJpaService<WlyyIotD, WlyyIotDDao> {
public class IotAnalyzerService extends BaseJpaService<WlyyIotD, WlyyIotDDao> {
    private Logger logger = LoggerFactory.getLogger(IotAnalyzerService.class);
    private Logger logger = LoggerFactory.getLogger(IotAnalyzerService.class);
    private Map<String,Object> codeNameMap = new HashMap<>();
    @Autowired
    @Autowired
    private WlyyIotDDao wlyyIotDDao;
    private WlyyIotDDao wlyyIotDDao;
    @Autowired
    @Autowired
    private WlyyIotMDao wlyyIotMDao;
    private WlyyIotMDao wlyyIotMDao;
    @Autowired
    private WlyyIotTzDictDao wlyyIotTzDictDao;
    @Autowired
    @Autowired
    ObjectMapper objectMapper;
    ObjectMapper objectMapper;
    @PostConstruct
    public void init() {
        if (codeNameMap.isEmpty()) {
            Iterable<WlyyIotTzDict> iterable = wlyyIotTzDictDao.findAll();
            iterable.forEach(
                    oneElement -> {
                        codeNameMap.put(oneElement.getCode(), oneElement.getName());
                    }
            );
        }
    }
    /**
    /**
     * 针对上传的体数据进行基础数据的解析,进行主表数据的存储
     * 针对上传的体数据进行基础数据的解析,进行主表数据的存储
     * @param jsonData
     * @param jsonData
@ -129,4 +152,6 @@ public class IotAnalyzerService extends BaseJpaService<WlyyIotD, WlyyIotDDao> {
            return null;
            return null;
        }
        }
    }
    }
}
}

+ 1 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/WlyyIotDDao.java

@ -11,4 +11,5 @@ import java.util.Map;
public interface WlyyIotDDao extends PagingAndSortingRepository<WlyyIotD, Integer>, JpaSpecificationExecutor<WlyyIotD>  {
public interface WlyyIotDDao extends PagingAndSortingRepository<WlyyIotD, Integer>, JpaSpecificationExecutor<WlyyIotD>  {
    List<WlyyIotD> queryByMidAndType(String mid,String type);
}
}

+ 4 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/WlyyIotMDao.java

@ -3,6 +3,10 @@ package com.yihu.iot.service.analyzer;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface WlyyIotMDao extends PagingAndSortingRepository<WlyyIotM, Integer>, JpaSpecificationExecutor<WlyyIotM>  {
public interface WlyyIotMDao extends PagingAndSortingRepository<WlyyIotM, Integer>, JpaSpecificationExecutor<WlyyIotM>  {
    List<WlyyIotM> queryByIdCardNo(String idcard);
}
}