Przeglądaj źródła

Merge branch 'dev' of lyr/patient-co-management into dev

lyr 8 lat temu
rodzic
commit
9ce6432eac

+ 103 - 0
patient-co-analysis/src/main/java/com/yihu/wlyy/analysis/etl/ETLConstantData.java

@ -1,6 +1,7 @@
package com.yihu.wlyy.analysis.etl;
import com.mongodb.util.JSON;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
import org.springframework.boot.json.JsonParser;
@ -76,4 +77,106 @@ public class ETLConstantData {
    public static String cityName(String city) {
        return "";
    }
    /**
     * 体质指数转换
     *
     * @param bmi
     * @return
     */
    public static String bmiName(String bmi) {
        if (bmi.compareTo("18.5") < 0) {
            return "偏瘦";
        } else if (bmi.compareTo("18.5") >= 0 && bmi.compareTo("24") < 0) {
            return "体重正常";
        } else if (bmi.compareTo("24") >= 0 && bmi.compareTo("27") < 0) {
            return "超重";
        } else if (bmi.compareTo("27") >= 0 && bmi.compareTo("30") < 0) {
            return "偏胖";
        } else if (bmi.compareTo("30") >= 0 && bmi.compareTo("35") < 0) {
            return "肥胖";
        } else if (bmi.compareTo("35") >= 0 && bmi.compareTo("40") < 0) {
            return "重度肥胖";
        } else {
            return "极重度肥胖";
        }
    }
    /**
     * 心律情况
     *
     * @param rate
     * @return
     */
    public static String heartRate(String rate) {
        if (rate.compareTo("40") >= 0 && rate.compareTo("160") <= 0) {
            return "心率正常";
        } else {
            return "心率不正常";
        }
    }
    /**
     * 空腹血糖判断
     *
     * @param value
     * @return
     */
    public static int xueTangBefore(String value) {
        if (!StringUtils.isEmpty(value) && value.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_BEFORE) < 0) {
            return -1;
        }
        if (!StringUtils.isEmpty(value) && value.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_BEFORE) > 0) {
            return 1;
        }
        return 0;
    }
    /**
     * 餐后血糖判断
     *
     * @param value
     * @return
     */
    public static int xueTangAfter(String value) {
        if (!StringUtils.isEmpty(value) && value.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_AFTER) < 0) {
            return -1;
        }
        if (!StringUtils.isEmpty(value) && value.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_AFTER) > 0) {
            return 1;
        }
        return 0;
    }
    /**
     * 收缩压比较
     *
     * @param value
     * @return
     */
    public static int ssy(String value) {
        if (value.compareTo(ETLConstantData.HEALTH_STANDARD_SSY_MIN) < 0) {
            return -1;
        }
        if (value.compareTo(ETLConstantData.HEALTH_STANDARD_SSY_MAX) > 0) {
            return 1;
        }
        return 0;
    }
    /**
     * 舒张压比较
     *
     * @param value
     * @returnz
     */
    public static int szy(String value) {
        if (value.compareTo(ETLConstantData.HEALTH_STANDARD_SZY_MIN) < 0) {
            return -1;
        }
        if (value.compareTo(ETLConstantData.HEALTH_STANDARD_SZY_MAX) > 0) {
            return 1;
        }
        return 0;
    }
}

Plik diff jest za duży
+ 199 - 13
patient-co-analysis/src/main/java/com/yihu/wlyy/analysis/etl/transform/HealthArchiveLogTransform.java


+ 14 - 53
patient-co-analysis/src/main/java/com/yihu/wlyy/analysis/etl/transform/HealthIndexTransform.java

@ -73,48 +73,20 @@ public class HealthIndexTransform implements ILogTransform {
        // 睡觉前
        String value7 = log.has("value7") ? log.get("value7").toString() : "";
        if (!StringUtils.isEmpty(value1) && value1.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_BEFORE) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value1) && value1.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_BEFORE) > 0) {
            higher = true;
        }
        if (!StringUtils.isEmpty(value2) && value2.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_AFTER) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value2) && value2.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_AFTER) > 0) {
            higher = true;
        }
        if (!StringUtils.isEmpty(value3) && value3.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_BEFORE) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value3) && value3.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_BEFORE) > 0) {
            higher = true;
        }
        if (!StringUtils.isEmpty(value4) && value4.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_AFTER) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value4) && value4.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_AFTER) > 0) {
            higher = true;
        }
        if (!StringUtils.isEmpty(value5) && value5.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_BEFORE) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value5) && value5.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_BEFORE) > 0) {
        int v1 = ETLConstantData.xueTangBefore(value1);
        int v2 = ETLConstantData.xueTangAfter(value2);
        int v3 = ETLConstantData.xueTangBefore(value3);
        int v4 = ETLConstantData.xueTangAfter(value4);
        int v5 = ETLConstantData.xueTangBefore(value5);
        int v6 = ETLConstantData.xueTangAfter(value6);
        int v7 = ETLConstantData.xueTangBefore(value7);
        if (v1 == 1 || v2 == 1 || v3 == 1 || v4 == 1 || v5 == 1 || v6 == 1 || v7 == 1) {
            higher = true;
        }
        if (!StringUtils.isEmpty(value6) && value6.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_AFTER) < 0) {
        if (v1 == -1 || v2 == -1 || v3 == -1 || v4 == -1 || v5 == -1 || v6 == -1 || v7 == -1) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value6) && value6.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_AFTER) > 0) {
            higher = true;
        }
        if (!StringUtils.isEmpty(value7) && value7.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_BEFORE) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value7) && value7.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_BEFORE) > 0) {
            higher = true;
        }
        if (higher) {
            UserPortrait labelInfo = new UserPortrait();
@ -151,27 +123,16 @@ public class HealthIndexTransform implements ILogTransform {
     */
    public List<UserPortrait> transformXueYa(JSONObject log) {
        List<UserPortrait> portraits = new ArrayList<>();
        boolean higher = false, lower = false;
        // 收缩压
        String value1 = log.has("value1") ? log.get("value1").toString() : "";
        // 舒张压
        String value2 = log.has("value2") ? log.get("value2").toString() : "";
        if (value1.compareTo(ETLConstantData.HEALTH_STANDARD_SSY_MIN) < 0) {
            lower = true;
        }
        if (value1.compareTo(ETLConstantData.HEALTH_STANDARD_SSY_MAX) > 0) {
            higher = true;
        }
        if (value2.compareTo(ETLConstantData.HEALTH_STANDARD_SSY_MIN) < 0) {
            lower = true;
        }
        if (value2.compareTo(ETLConstantData.HEALTH_STANDARD_SSY_MAX) > 0) {
            higher = true;
        }
        int v1 = ETLConstantData.ssy(value1);
        int v2 = ETLConstantData.szy(value2);
        if (higher) {
        if (v1 == 1 || v2 == 1) {
            UserPortrait labelInfo = new UserPortrait();
            labelInfo.setUserCode(log.getString("patient"));
@ -183,7 +144,7 @@ public class HealthIndexTransform implements ILogTransform {
            portraits.add(labelInfo);
        }
        if (lower) {
        if (v1 == -1 || v2 == -1) {
            UserPortrait labelInfo = new UserPortrait();
            labelInfo.setUserCode(log.getString("patient"));

+ 2 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/logs/BusinessLogs.java

@ -41,6 +41,8 @@ public class BusinessLogs {
        , archive
        // 签约
        , sign
        // 指标
        , index
    }
    /**