Browse Source

配置更新,增加心电数据入库

hill9868 5 năm trước cách đây
mục cha
commit
2abf56d040

+ 2 - 2
svr/svr-iot/pom.xml

@ -11,7 +11,7 @@
    </parent>
    <groupId>com.yihu.iot</groupId>
    <artifactId>svr-iot-third</artifactId>
    <artifactId>svr-iot</artifactId>
    <version>${parent.version}</version>
    <packaging>war</packaging>
@ -111,7 +111,7 @@
    </dependencies>
    <build>
        <finalName>svr-iot-third</finalName>
        <finalName>svr-iot</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>

+ 2 - 695
svr/svr-iot/src/main/java/com/yihu/iot/controller/analyzer/IotAnalyzerController.java

@ -1,18 +1,12 @@
package com.yihu.iot.controller.analyzer;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.iot.datainput.service.DataInputService;
import com.yihu.iot.datainput.util.ConstantUtils;
import com.yihu.iot.service.analyzer.IotAnalyzerService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.util.date.DateUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -23,7 +17,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
/**
@ -45,693 +38,6 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
    @Autowired
    private IotAnalyzerService iotAnalyzerService;
    /**
     * 基于奕拓小屋上传的体征数据,进行解析入库  V1.0 版本
     * @param jsonData
     * @return
     */
    @PostMapping(value = "/yitouxiaowuBK" ,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "奕拓体征数据解析入库", notes = "奕拓体征数据解析入库")
    public String updateDeviceDataTest(
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData){
        Envelop envelop = new Envelop();
        String str = "";
        String strResult = "";
        //1. 基础数据初始化
        String accessToken  = "yitouxiaowu";  // 奕拓小屋
        try {
            //JSON数据解析
            Map dataDetail = objectMapper.readValue(jsonData, HashMap.class);
            // 用户信息
            LinkedHashMap memberMap = (LinkedHashMap)dataDetail.get("Member");
            // 身高体重
            LinkedHashMap heightMap = (LinkedHashMap)dataDetail.get("Height");
            // 人体成分(脂肪)Fat
            LinkedHashMap fatMap = (LinkedHashMap)dataDetail.get("Fat");
            // 人体成分(脂肪)Fat
            LinkedHashMap minFatMap = (LinkedHashMap)dataDetail.get("MinFat");
            // 血压
            LinkedHashMap bloodPressureMap = (LinkedHashMap)dataDetail.get("BloodPressure");
            // 血氧
            LinkedHashMap boMap = (LinkedHashMap)dataDetail.get("Bo");
            // 单导心电
            LinkedHashMap ecgMap = (LinkedHashMap)dataDetail.get("Ecg");
            // 12导心电
            LinkedHashMap peecgMap = (LinkedHashMap)dataDetail.get("PEEcg");
            // 体温
            LinkedHashMap temperatureMap = (LinkedHashMap)dataDetail.get("Temperature");
            // 腰臀比
            LinkedHashMap whrMap = (LinkedHashMap)dataDetail.get("Whr");
            // 血糖
            LinkedHashMap bloodSugarMap = (LinkedHashMap)dataDetail.get("BloodSugar");
            // 血尿酸
            LinkedHashMap uaMap = (LinkedHashMap)dataDetail.get("Ua");
            // 总胆固醇
            LinkedHashMap cholMap = (LinkedHashMap)dataDetail.get("Chol");
            // 血脂
            LinkedHashMap bloodFatMap = (LinkedHashMap)dataDetail.get("BloodFat");
            // 心血管功能
            LinkedHashMap cardiovascularMap = (LinkedHashMap)dataDetail.get("Cardiovascular");
            // 骨密度
            LinkedHashMap bmdMap = (LinkedHashMap)dataDetail.get("BMD");
            // 酒精浓度
            LinkedHashMap alcoholMap = (LinkedHashMap)dataDetail.get("Alcohol");
            // 肺活量
            LinkedHashMap lungMap = (LinkedHashMap)dataDetail.get("Lung");
            // 血红蛋白
            LinkedHashMap hbMap = (LinkedHashMap)dataDetail.get("Hb");
            // 尿液分析
            LinkedHashMap urinalysisMap = (LinkedHashMap)dataDetail.get("Urinalysis");
            //0 - 设备基本信息:设备码、设备所属、测试医生、时间、类别等
            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());
            //用于标识入到I健康的数据库的时间
            data.put("createDate", DateUtil.getStringDate().toString());
            //1 - 用户基本信息
            String sn = dataDetail.get("MachineId").toString();
            String deviceName = "弈拓健康小站测量仪";
            String deviceModel = dataDetail.get("DeviceType").toString();
            String extCode = "";
            String idCard = memberMap.get("IdCode").toString();
            String username = memberMap.get("Name").toString();
            JSONArray jsonArray = new JSONArray();
            JSONObject params = new JSONObject();
            params.put("access_token", accessToken);
            params.put("sn", sn);
            params.put("ext_code","未知");
            params.put("device_name", deviceName);
            params.put("device_model", deviceModel);
            params.put("idcard", idCard);
            params.put("username", username);
            //2 - 身高体重
            if (heightMap != null) {
                data.put("height", heightMap.get("Height") == null ? "" : heightMap.get("Height").toString());
                data.put("height_name","身高");
                data.put("height_unit", "cm");
                data.put("weight", heightMap.get("Weight") == null ? "" : heightMap.get("Weight").toString());
                data.put("weight_name","体重");
                data.put("weight_unit", "kg");
                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("weight_name","理想体重");
                data.put("weight_unit", "kg");
                data.put("heightResult", heightMap.get("Result") == null ? "" : heightMap.get("Result").toString());
                data.put("heightResult_name","结论:-1、消瘦,0、正常,1、超重,2、肥胖");
            }
            //3 - 人体成分(脂肪)FAT
            if (fatMap != null) {
                data.put("FatRate", fatMap.get("FatRate") == null ? "" : fatMap.get("FatRate").toString());
                data.put("Fat", fatMap.get("Fat") == null ? "" : fatMap.get("Fat").toString());
                data.put("ExceptFat", fatMap.get("ExceptFat") == null ? "" : fatMap.get("ExceptFat").toString());
                data.put("WaterRate", fatMap.get("WaterRate") == null ? "" : fatMap.get("WaterRate").toString());
                data.put("Water", fatMap.get("Water") == null ? "" : fatMap.get("Water").toString());
                data.put("Minerals", fatMap.get("Minerals") == null ? "" : fatMap.get("Minerals").toString());
                data.put("Protein", fatMap.get("Protein") == null ? "" : fatMap.get("Protein").toString());
                data.put("Fic", fatMap.get("Fic") == null ? "" : fatMap.get("Fic").toString());
                data.put("Foc", fatMap.get("Foc") == null ? "" : fatMap.get("Foc").toString());
                data.put("Muscle", fatMap.get("Muscle") == null ? "" : fatMap.get("Muscle").toString());
                data.put("FatAdjust", fatMap.get("FatAdjust") == null ? "" : fatMap.get("FatAdjust").toString());
                data.put("WeightAdjust", fatMap.get("WeightAdjust") == null ? "" : fatMap.get("WeightAdjust").toString());
                data.put("MuscleAdjust", fatMap.get("MuscleAdjust") == null ? "" : fatMap.get("MuscleAdjust").toString());
                data.put("BasicMetabolism", fatMap.get("BasicMetabolism") == null ? "" : fatMap.get("BasicMetabolism").toString());
                data.put("Viscera", fatMap.get("Viscera") == null ? "" : fatMap.get("Viscera").toString());
                data.put("Bmc", fatMap.get("Bmc") == null ? "" : fatMap.get("Bmc").toString());
                data.put("MuscleRate", fatMap.get("MuscleRate") == null ? "" : fatMap.get("MuscleRate").toString());
                data.put("QuganMuscle", fatMap.get("QuganMuscle") == null ? "" : fatMap.get("QuganMuscle").toString());
                data.put("QuganFat", fatMap.get("QuganFat") == null ? "" : fatMap.get("QuganFat").toString());
                data.put("ZuotuiMuscle", fatMap.get("ZuotuiMuscle") == null ? "" : fatMap.get("ZuotuiMuscle").toString());
                data.put("ZuobiMuscle", fatMap.get("ZuobiMuscle") == null ? "" : fatMap.get("ZuobiMuscle").toString());
                data.put("YoubiMuscle", fatMap.get("YoubiMuscle") == null ? "" : fatMap.get("YoubiMuscle").toString());
                data.put("YoutuiMuscle", fatMap.get("YoutuiMuscle") == null ? "" : fatMap.get("YoutuiMuscle").toString());
                data.put("ZuobiFat", fatMap.get("ZuobiFat") == null ? "" : fatMap.get("ZuobiFat").toString());
                data.put("ZuotuiFat", fatMap.get("ZuotuiFat") == null ? "" : fatMap.get("ZuotuiFat").toString());
                data.put("YoubiFat", fatMap.get("YoubiFat") == null ? "" : fatMap.get("YoubiFat").toString());
                data.put("YoutuiFat", fatMap.get("YoutuiFat") == null ? "" : fatMap.get("YoutuiFat").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","体脂肪量");
                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
            if (minFatMap != null) {
                data.put("Height", minFatMap.get("Height") == null ? "" : minFatMap.get("Height").toString());
                data.put("Weight", minFatMap.get("Weight") == null ? "" : minFatMap.get("Weight").toString());
                data.put("FatRate", minFatMap.get("FatRate") == null ? "" : minFatMap.get("FatRate").toString());
                data.put("BasicMetabolism", minFatMap.get("BasicMetabolism") == null ? "" : minFatMap.get("BasicMetabolism").toString());
                data.put("Bmi", minFatMap.get("Bmi") == null ? "" : minFatMap.get("Bmi").toString());
                data.put("Physique", minFatMap.get("Physique") == null ? "" : minFatMap.get("Physique").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("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、肥胖");
            }
            // 5 - 血压
            if (bloodPressureMap != null) {
                data.put("HighPressure", bloodPressureMap.get("HighPressure") == null ? "" : bloodPressureMap.get("HighPressure").toString());
                data.put("LowPressure", bloodPressureMap.get("LowPressure") == null ? "" : bloodPressureMap.get("LowPressure").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("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、重度高压");
            }
            // 血氧
            if (boMap != null) {
                data.put("Oxygen", boMap.get("Oxygen") == null ? "" : boMap.get("Oxygen").toString());
                data.put("OxygenList", boMap.get("OxygenList") == null ? "" : boMap.get("OxygenList").toString());
                data.put("Bpm", boMap.get("Bpm") == null ? "" : boMap.get("Bpm").toString());
                data.put("BpmList", boMap.get("BpmList") == null ? "" : boMap.get("BpmList").toString());
                data.put("Result", boMap.get("Result") == null ? "" : boMap.get("Result").toString());
                data.put("StartTime", boMap.get("StartTime") == null ? "" : boMap.get("StartTime").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("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","总测量秒数");
            }
            // 单导心电
            if (ecgMap != null) {
                data.put("Hr", ecgMap.get("Hr") == null ? "" : ecgMap.get("Hr").toString());
                data.put("EcgData", ecgMap.get("EcgData") == null ? "" : ecgMap.get("EcgData").toString());
                data.put("nGain", ecgMap.get("nGain") == null ? "" : ecgMap.get("nGain").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("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");
            }
            // 12导心电
           if (peecgMap != null) {
                data.put("Hr", peecgMap.get("Hr") == null ? "" : peecgMap.get("Hr").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("TAxis", peecgMap.get("TAxis") == null ? "" : peecgMap.get("TAxis").toString());
                data.put("PR", peecgMap.get("PR") == null ? "" : peecgMap.get("PR").toString());
                data.put("QRS", peecgMap.get("QRS") == null ? "" : peecgMap.get("QRS").toString());
                data.put("QT", peecgMap.get("QT") == null ? "" : peecgMap.get("QT").toString());
                data.put("QTc", peecgMap.get("QTc") == null ? "" : peecgMap.get("QTc").toString());
                data.put("RV5", peecgMap.get("RV5") == null ? "" : peecgMap.get("RV5").toString());
                data.put("SV1", peecgMap.get("SV1") == null ? "" : peecgMap.get("SV1").toString());
                data.put("EcgData", peecgMap.get("EcgData") == null ? "" : peecgMap.get("EcgData").toString());
                data.put("Result", peecgMap.get("Result") == null ? "" : peecgMap.get("Result").toString());
                /*if(!(peecgMap.get("EcgImg") == null)){
                    String ecgImg = peecgMap.get("EcgImg").toString();
                    byte[] imgByte = Base64.decodeBase64(ecgImg);
                    //String res = dfsTemplate.uploadImg(imgByte);
                    ObjectNode objectNode = fastDFSHelper.upload(imgByte,"png","");
                    String resPath = objectNode.get("fileId").toString().replaceAll("\"", "");
                    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","心电结论");
            }
            // 体温
            if (temperatureMap != null) {
                data.put("Temperature", temperatureMap.get("Temperature") == null ? "" : temperatureMap.get("Temperature").toString());
                data.put("Result", temperatureMap.get("Result") == null ? "" : temperatureMap.get("Result").toString());
                data.put("Temperature_unit","℃");
                data.put("Result_unit","");
                data.put("Temperature_name","体温值");
                data.put("Result_name","结论:-1、低温,0、正常,1、高温");
            }
            // 腰臀比
            if (whrMap != null) {
                data.put("Waistline", whrMap.get("Waistline") == null ? "" : whrMap.get("Waistline").toString());
                data.put("Hipline", whrMap.get("Hipline") == null ? "" : whrMap.get("Hipline").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("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:下身肥胖");
            }
            // 血糖
            if (bloodSugarMap != null) {
                data.put("BloodSugar", bloodSugarMap.get("BloodSugar") == null ? "" : bloodSugarMap.get("BloodSugar").toString());
                data.put("BloodsugarType", bloodSugarMap.get("BloodsugarType") == null ? "" : bloodSugarMap.get("BloodsugarType").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_unit","mmol/L");
                data.put("BloodsugarType_unit","");
                data.put("Result_unit","");
            }
            // 血尿酸
            if (uaMap != null) {
                data.put("Ua", uaMap.get("Ua") == null ? "" : uaMap.get("Ua").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、高");
            }
            // 总胆固醇
            if (cholMap != null) {
                data.put("Chol", cholMap.get("Chol") == null ? "" : cholMap.get("Chol").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_name","总胆固醇值");
                data.put("Result_name","结论:-1、低,0、正常,1、高  2、过高");
            }
            // 血脂
            if (bloodFatMap != null) {
                data.put("TChol", bloodFatMap.get("TChol") == null ? "" : bloodFatMap.get("TChol").toString());
                data.put("HdlChol", bloodFatMap.get("HdlChol") == null ? "" : bloodFatMap.get("HdlChol").toString());
                data.put("Trig", bloodFatMap.get("Trig") == null ? "" : bloodFatMap.get("Trig").toString());
                data.put("TcHdl", bloodFatMap.get("TcHdl") == null ? "" : bloodFatMap.get("TcHdl").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("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、高");
            }
            // 心血管功能
            if (cardiovascularMap != null) {
                data.put("HeartFunction1", cardiovascularMap.get("HeartFunction1") == null ? "" : cardiovascularMap.get("HeartFunction1").toString());
                data.put("VascularCondition1", cardiovascularMap.get("VascularCondition1") == null ? "" : cardiovascularMap.get("VascularCondition1").toString());
                data.put("HeartFunction2", cardiovascularMap.get("HeartFunction2") == null ? "" : cardiovascularMap.get("HeartFunction2").toString());
                data.put("VascularCondition2", cardiovascularMap.get("VascularCondition2") == null ? "" : cardiovascularMap.get("VascularCondition2").toString());
                data.put("Result", cardiovascularMap.get("Result") == null ? "" : cardiovascularMap.get("Result").toString());
                data.put("SV", cardiovascularMap.get("SV") == null ? "" : cardiovascularMap.get("SV").toString());
                data.put("CO", cardiovascularMap.get("CO") == null ? "" : cardiovascularMap.get("CO").toString());
                data.put("HOV", cardiovascularMap.get("HOV") == null ? "" : cardiovascularMap.get("HOV").toString());
                data.put("CMBV", cardiovascularMap.get("CMBV") == null ? "" : cardiovascularMap.get("CMBV").toString());
                data.put("TPR", cardiovascularMap.get("TPR") == null ? "" : cardiovascularMap.get("TPR").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("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","");
            }
            // 骨密度
            if (bmdMap != null) {
                data.put("TSCORE", bmdMap.get("TSCORE") == null ? "" : bmdMap.get("TSCORE").toString());
                data.put("ZSCORE", bmdMap.get("ZSCORE") == null ? "" : bmdMap.get("ZSCORE").toString());
                data.put("OI", bmdMap.get("OI") == null ? "" : bmdMap.get("OI").toString());
                data.put("BQI", bmdMap.get("BQI") == null ? "" : bmdMap.get("BQI").toString());
                data.put("SOS", bmdMap.get("SOS") == null ? "" : bmdMap.get("SOS").toString());
                data.put("YOUNG_ADULT", bmdMap.get("YOUNG_ADULT") == null ? "" : bmdMap.get("YOUNG_ADULT").toString());
                data.put("AGE_MATCHED", bmdMap.get("AGE_MATCHED") == null ? "" : bmdMap.get("AGE_MATCHED").toString());
                data.put("BUA", bmdMap.get("BUA") == null ? "" : bmdMap.get("BUA").toString());
                data.put("EOA", bmdMap.get("EOA") == null ? "" : bmdMap.get("EOA").toString());
                data.put("RRF", bmdMap.get("RRF") == null ? "" : bmdMap.get("RRF").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("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、正常");
            }
            // 酒精浓度
            if (alcoholMap != null) {
                data.put("Alcohol", alcoholMap.get("Alcohol") == null ? "" : alcoholMap.get("Alcohol").toString());
                data.put("Result", alcoholMap.get("Result") == null ? "" : alcoholMap.get("Result").toString());
                data.put("AlcoholImg", alcoholMap.get("AlcoholImg") == null ? "" : alcoholMap.get("AlcoholImg").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("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","");
            }
            // 肺活量
            if (lungMap != null) {
                data.put("Lung", lungMap.get("Lung") == null ? "" : lungMap.get("Lung").toString());
                data.put("FVC", lungMap.get("FVC") == null ? "" : lungMap.get("FVC").toString());
                data.put("FEV1", lungMap.get("FEV1") == null ? "" : lungMap.get("FEV1").toString());
                data.put("PEF", lungMap.get("PEF") == null ? "" : lungMap.get("PEF").toString());
                data.put("FEF25", lungMap.get("FEF25") == null ? "" : lungMap.get("FEF25").toString());
                data.put("FEF75", lungMap.get("FEF75") == null ? "" : lungMap.get("FEF75").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("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","结果(暂无)");
            }
            // 血红蛋白
            if (hbMap != null) {
                data.put("Hb", hbMap.get("Hb") == null ? "" : hbMap.get("Hb").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("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血红蛋白偏高");
            }
            // 尿液分析
            if (urinalysisMap != null) {
                data.put("URO", urinalysisMap.get("URO") == null ? "" : urinalysisMap.get("URO").toString());
                data.put("BLD", urinalysisMap.get("BLD") == null ? "" : urinalysisMap.get("BLD").toString());
                data.put("BIL", urinalysisMap.get("BIL") == null ? "" : urinalysisMap.get("BIL").toString());
                data.put("KET", urinalysisMap.get("KET") == null ? "" : urinalysisMap.get("KET").toString());
                data.put("LEU", urinalysisMap.get("LEU") == null ? "" : urinalysisMap.get("LEU").toString());
                data.put("GLU", urinalysisMap.get("GLU") == null ? "" : urinalysisMap.get("GLU").toString());
                data.put("PRO", urinalysisMap.get("PRO") == null ? "" : urinalysisMap.get("PRO").toString());
                data.put("PH", urinalysisMap.get("PH") == null ? "" : urinalysisMap.get("PH").toString());
                data.put("NIT", urinalysisMap.get("NIT") == null ? "" : urinalysisMap.get("NIT").toString());
                data.put("SG", urinalysisMap.get("SG") == null ? "" : urinalysisMap.get("SG").toString());
                data.put("VC", urinalysisMap.get("VC") == null ? "" : urinalysisMap.get("VC").toString());
                data.put("MAL", urinalysisMap.get("MAL") == null ? "" : urinalysisMap.get("MAL").toString());
                data.put("CR", urinalysisMap.get("CR") == null ? "" : urinalysisMap.get("CR").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("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","");
            jsonArray.add(data);
            params.put("data", jsonArray);
            str = dataInputService.inputBodySignsData(params.toString());
            JSONObject result = JSONObject.parseObject(str);
            if (StringUtils.endsWithIgnoreCase(ConstantUtils.FAIL,result.getString("response"))) {
                Map res = new HashMap();
                res.put("success", "false");
                res.put("message", result.getString("msg"));
                strResult = objectMapper.writeValueAsString(res);
                return strResult;
            }else{
                Map res = new HashMap();
                res.put("success", "true");
                res.put("message", "体征信息上传成功。");
                JSONArray ridRes = new JSONArray();
                ridRes = (JSONArray)result.get("rid");
                String rid = ridRes.get(0).toString();
                res.put("rid", rid);
                strResult = objectMapper.writeValueAsString(res);
                return strResult;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return "体征信息上传失败!";
        }
    }
    /**
     * 基于奕拓小屋上传的体征数据,进行解析入库  V2.0 版本
@ -753,13 +59,14 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
            result.put("success", "true");
            result.put("message", "体征信息上传成功。");
            strResult = objectMapper.writeValueAsString(res);
            logger.info( "-------------- 体征数据入库成功!--------------- ");
            return strResult;
        }else {
            Map result = new HashMap();
            result.put("success", "false");
            result.put("message", "体征信息上传失败。");
            strResult = objectMapper.writeValueAsString(res);
            logger.info( "-------------- 体征数据入库失败~~!--------------- ");
            return strResult;
        }

+ 10 - 31
svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/IotAnalyzerService.java

@ -1,19 +1,15 @@
package com.yihu.iot.service.analyzer;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.util.excel.ExcelUtil;
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.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.PostConstruct;
import java.util.*;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
/**
 * @author cws on 2019/6/16
@ -22,34 +18,15 @@ import java.util.*;
public class IotAnalyzerService extends BaseJpaService<WlyyIotD, WlyyIotDDao> {
    private Logger logger = LoggerFactory.getLogger(IotAnalyzerService.class);
    private Map<String,Object> codeNameMap = new HashMap<>();
    @Autowired
    private WlyyIotDDao wlyyIotDDao;
    @Autowired
    private WlyyIotMDao wlyyIotMDao;
    @Autowired
    private WlyyIotTzDictDao wlyyIotTzDictDao;
    @Autowired
    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
@ -129,13 +106,17 @@ public class IotAnalyzerService extends BaseJpaService<WlyyIotD, WlyyIotDDao> {
                wlyyIotD.setMid(mid);
                wlyyIotD.setType(type);
                wlyyIotD.setCode(code);
                wlyyIotD.setValue(value);
                if("EcgData".equals(code)){
                    wlyyIotD.setContent(value);
                }else{
                    wlyyIotD.setValue(value);
                }
                wlyyIotD = addIotRecord(wlyyIotD);
                if(wlyyIotD != null){
                    logger.info( "体征数据新增成功:id = " + wlyyIotD.getId() + " ; type = " + type +" ; code = " + code +"; value = " +  value);
                    //logger.info( "体征数据新增成功:id = " + wlyyIotD.getId() + " ; type = " + type +" ; code = " + code +"; value = " +  value);
                    continue;
                }else {
                    logger.error( "体征数据新增失败:mid = " + mid + " ; type = " + type +" ; code = " + code +"; value = " +  value);
                    //logger.error( "体征数据新增失败:mid = " + mid + " ; type = " + type +" ; code = " + code +"; value = " +  value);
                    continue;
                }
            }
@ -156,6 +137,4 @@ public class IotAnalyzerService extends BaseJpaService<WlyyIotD, WlyyIotDDao> {
            return null;
        }
    }
}

+ 11 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/WlyyIotD.java

@ -29,6 +29,9 @@ public class WlyyIotD extends UuidIdentityEntity implements Serializable {
    @Column(name = "unit")
    private String unit;
    @Column(name = "content")
    private String content;
    public String getMid() {
        return mid;
    }
@ -76,4 +79,12 @@ public class WlyyIotD extends UuidIdentityEntity implements Serializable {
    public void setUnit(String unit) {
        this.unit = unit;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
}

+ 4 - 4
svr/svr-iot/src/main/resources/application.yml

@ -130,8 +130,8 @@ spring:
      uris: http://59.61.92.90:9208, http://59.61.92.90:9210
  wlyy:
    url: http://www.xmtyw.cn/wlyy/
#fast-dfs:
  #tracker-server: 10.95.22.139:22122 #服务器地址
fast-dfs:
  tracker-server: 10.95.22.139:22122 #服务器地址
fastDFS:
  fastdfs_file_url: http://www.xmtyw.cn/
@ -149,7 +149,7 @@ spring:
      uris: http://59.61.92.90:9208,http://59.61.92.90:9210
  wlyy:
    url: http://www.xmtyw.cn/wlyy/
#fast-dfs:
  #tracker-server: 10.95.22.139:22122 #服务器地址
fast-dfs:
  tracker-server: 10.95.22.139:22122 #服务器地址
fastDFS:
  fastdfs_file_url: http://www.xmtyw.cn/

+ 1 - 1
svr/svr-iot/src/main/resources/bootstrap.yml

@ -1,3 +1,3 @@
spring:
  application:
    name: svr-iot-third  #注册到发现服务的id 如果id一样 eurika会自动做负载
    name: svr-iot  #注册到发现服务的id 如果id一样 eurika会自动做负载