Преглед изворни кода

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

lyr пре 8 година
родитељ
комит
6d52fcec63

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

@ -15,22 +15,22 @@ public class ETLConstantData {
    /***************************体征指标正常范围*******************************/
    // 血糖餐前最小值
    public static final String HEALTH_STANDARD_ST_MIN_BEFORE = "4";
    public static final double HEALTH_STANDARD_ST_MIN_BEFORE = 4;
    // 血糖餐前最大值
    public static final String HEALTH_STANDARD_ST_MAX_BEFORE = "7";
    public static final double HEALTH_STANDARD_ST_MAX_BEFORE = 7;
    // 血糖餐后最小值
    public static final String HEALTH_STANDARD_ST_MIN_AFTER = "4";
    public static final double HEALTH_STANDARD_ST_MIN_AFTER = 4;
    // 血糖餐后最大值
    public static final String HEALTH_STANDARD_ST_MAX_AFTER = "11.1";
    public static final double HEALTH_STANDARD_ST_MAX_AFTER = 11.1;
    // 舒张压最小值
    public static final String HEALTH_STANDARD_SZY_MIN = "60";
    public static final int HEALTH_STANDARD_SZY_MIN = 60;
    // 舒张压最大值
    public static final String HEALTH_STANDARD_SZY_MAX = "90";
    public static final int HEALTH_STANDARD_SZY_MAX = 90;
    // 收缩压最小值
    public static final String HEALTH_STANDARD_SSY_MIN = "90";
    public static final int HEALTH_STANDARD_SSY_MIN = 90;
    // 收缩压最大值
    public static final String HEALTH_STANDARD_SSY_MAX = "140";
    public static final int HEALTH_STANDARD_SSY_MAX = 140;
    /**
     * 性别
@ -84,18 +84,18 @@ public class ETLConstantData {
     * @param bmi
     * @return
     */
    public static String bmiName(String bmi) {
        if (bmi.compareTo("18.5") < 0) {
    public static String bmiName(double bmi) {
        if (bmi < 18.5) {
            return "偏瘦";
        } else if (bmi.compareTo("18.5") >= 0 && bmi.compareTo("24") < 0) {
        } else if (bmi >= 18.5 && bmi < 24) {
            return "体重正常";
        } else if (bmi.compareTo("24") >= 0 && bmi.compareTo("27") < 0) {
        } else if (bmi >= 24 && bmi < 27) {
            return "超重";
        } else if (bmi.compareTo("27") >= 0 && bmi.compareTo("30") < 0) {
        } else if (bmi >= 27 && bmi < 30) {
            return "偏胖";
        } else if (bmi.compareTo("30") >= 0 && bmi.compareTo("35") < 0) {
        } else if (bmi >= 30 && bmi < 35) {
            return "肥胖";
        } else if (bmi.compareTo("35") >= 0 && bmi.compareTo("40") < 0) {
        } else if (bmi >= 35 && bmi < 40) {
            return "重度肥胖";
        } else {
            return "极重度肥胖";
@ -108,8 +108,8 @@ public class ETLConstantData {
     * @param rate
     * @return
     */
    public static String heartRate(String rate) {
        if (rate.compareTo("40") >= 0 && rate.compareTo("160") <= 0) {
    public static String heartRate(double rate) {
        if (rate >= 40 && rate <= 160) {
            return "心率正常";
        } else {
            return "心率不正常";
@ -122,11 +122,11 @@ public class ETLConstantData {
     * @param value
     * @return
     */
    public static int xueTangBefore(String value) {
        if (!StringUtils.isEmpty(value) && value.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_BEFORE) < 0) {
    public static int xueTangBefore(double value) {
        if (value < ETLConstantData.HEALTH_STANDARD_ST_MIN_BEFORE) {
            return -1;
        }
        if (!StringUtils.isEmpty(value) && value.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_BEFORE) > 0) {
        if (value > ETLConstantData.HEALTH_STANDARD_ST_MAX_BEFORE) {
            return 1;
        }
        return 0;
@ -138,11 +138,11 @@ public class ETLConstantData {
     * @param value
     * @return
     */
    public static int xueTangAfter(String value) {
        if (!StringUtils.isEmpty(value) && value.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_AFTER) < 0) {
    public static int xueTangAfter(double value) {
        if (value < ETLConstantData.HEALTH_STANDARD_ST_MIN_AFTER) {
            return -1;
        }
        if (!StringUtils.isEmpty(value) && value.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_AFTER) > 0) {
        if (value > ETLConstantData.HEALTH_STANDARD_ST_MAX_AFTER) {
            return 1;
        }
        return 0;
@ -154,11 +154,11 @@ public class ETLConstantData {
     * @param value
     * @return
     */
    public static int ssy(String value) {
        if (value.compareTo(ETLConstantData.HEALTH_STANDARD_SSY_MIN) < 0) {
    public static int ssy(double value) {
        if (value < ETLConstantData.HEALTH_STANDARD_SSY_MIN) {
            return -1;
        }
        if (value.compareTo(ETLConstantData.HEALTH_STANDARD_SSY_MAX) > 0) {
        if (value > ETLConstantData.HEALTH_STANDARD_SSY_MAX) {
            return 1;
        }
        return 0;
@ -170,11 +170,11 @@ public class ETLConstantData {
     * @param value
     * @returnz
     */
    public static int szy(String value) {
        if (value.compareTo(ETLConstantData.HEALTH_STANDARD_SZY_MIN) < 0) {
    public static int szy(double value) {
        if (value < ETLConstantData.HEALTH_STANDARD_SZY_MIN) {
            return -1;
        }
        if (value.compareTo(ETLConstantData.HEALTH_STANDARD_SZY_MAX) > 0) {
        if (value > ETLConstantData.HEALTH_STANDARD_SZY_MAX) {
            return 1;
        }
        return 0;

+ 25 - 3
patient-co-analysis/src/main/java/com/yihu/wlyy/analysis/etl/transform/HealthArchiveLogTransform.java

@ -163,15 +163,16 @@ public class HealthArchiveLogTransform implements ILogTransform {
            userPortrait.setUserCode(patient);
            userPortrait.setCategory("1002");
            userPortrait.setSubCategory("1002004");
            userPortrait.setValue(ETLConstantData.bmiName(event.getString("bmi")));
            userPortrait.setValue(ETLConstantData.bmiName(Double.parseDouble(event.getString("bmi"))));
            userPortrait.setCzrq(new Date());
            portraits.add(userPortrait);
        }
        // 空腹血糖
        if (event.has("fastingPlasmaGlucoseL") && StringUtils.isNotEmpty(event.getString("fastingPlasmaGlucoseL"))) {
            String xueTang = event.getString("fastingPlasmaGlucoseL");
            int v = ETLConstantData.xueTangBefore(xueTang);
            int v = ETLConstantData.xueTangBefore(Double.parseDouble(xueTang));
            if (v == 1) {
                UserPortrait userPortrait = new UserPortrait();
@ -196,6 +197,7 @@ public class HealthArchiveLogTransform implements ILogTransform {
            }
        }
        // 心率
        if (event.has("heartRate") && StringUtils.isNotEmpty(event.getString("heartRate"))) {
            String rate = event.getString("heartRate");
            UserPortrait userPortrait = new UserPortrait();
@ -203,12 +205,13 @@ public class HealthArchiveLogTransform implements ILogTransform {
            userPortrait.setUserCode(patient);
            userPortrait.setCategory("1002");
            userPortrait.setSubCategory("1002006");
            userPortrait.setValue(ETLConstantData.heartRate(rate));
            userPortrait.setValue(ETLConstantData.heartRate(Double.parseDouble(rate)));
            userPortrait.setCzrq(new Date());
            portraits.add(userPortrait);
        }
        // 吸烟情况
        if (event.has("dailySmokingQuantity") && StringUtils.isNotEmpty(event.getString("dailySmokingQuantity"))) {
            String cy = event.getString("everyAlcohol_tolerance");
            if (cy.compareTo("0") > 0) {
@ -224,6 +227,7 @@ public class HealthArchiveLogTransform implements ILogTransform {
            }
        }
        // 饮酒情况
        if (event.has("everyAlcohol_tolerance") && StringUtils.isNotEmpty(event.getString("everyAlcohol_tolerance"))) {
            String hj = event.getString("everyAlcohol_tolerance");
            if (hj.compareTo("0") > 0) {
@ -239,6 +243,24 @@ public class HealthArchiveLogTransform implements ILogTransform {
            }
        }
        // 视网膜情况
        if ((event.has("retinalHemorrhage") && StringUtils.isNotEmpty(event.getString("retinalHemorrhage"))) ||
                (event.has("papilledema") && StringUtils.isNotEmpty(event.getString("papilledema")))) {
            String retinalHemorrhage = event.getString("papilledema");
            String papilledema = event.getString("papilledema");
            if (retinalHemorrhage.equals("1") || papilledema.equals("1")) {
                UserPortrait userPortrait = new UserPortrait();
                userPortrait.setUserCode(patient);
                userPortrait.setCategory("1002");
                userPortrait.setSubCategory("1002001");
                userPortrait.setValue("视网膜病变");
                userPortrait.setCzrq(new Date());
                portraits.add(userPortrait);
            }
        }
        return portraits;
    }

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

@ -73,13 +73,13 @@ public class HealthIndexTransform implements ILogTransform {
        // 睡觉前
        String value7 = log.has("value7") ? log.get("value7").toString() : "";
        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);
        int v1 = StringUtils.isEmpty(value1) ? 0 : ETLConstantData.xueTangBefore(Double.parseDouble(value1));
        int v2 = StringUtils.isEmpty(value2) ? 0 : ETLConstantData.xueTangAfter(Double.parseDouble(value2));
        int v3 = StringUtils.isEmpty(value3) ? 0 : ETLConstantData.xueTangBefore(Double.parseDouble(value3));
        int v4 = StringUtils.isEmpty(value4) ? 0 : ETLConstantData.xueTangAfter(Double.parseDouble(value4));
        int v5 = StringUtils.isEmpty(value5) ? 0 : ETLConstantData.xueTangBefore(Double.parseDouble(value5));
        int v6 = StringUtils.isEmpty(value6) ? 0 : ETLConstantData.xueTangAfter(Double.parseDouble(value6));
        int v7 = StringUtils.isEmpty(value7) ? 0 : ETLConstantData.xueTangBefore(Double.parseDouble(value7));
        if (v1 == 1 || v2 == 1 || v3 == 1 || v4 == 1 || v5 == 1 || v6 == 1 || v7 == 1) {
            higher = true;
@ -129,8 +129,8 @@ public class HealthIndexTransform implements ILogTransform {
        // 舒张压
        String value2 = log.has("value2") ? log.get("value2").toString() : "";
        int v1 = ETLConstantData.ssy(value1);
        int v2 = ETLConstantData.szy(value2);
        int v1 = StringUtils.isEmpty(value1) ? 0 : ETLConstantData.ssy(Double.parseDouble(value1));
        int v2 = StringUtils.isEmpty(value2) ? 0 : ETLConstantData.szy(Double.parseDouble(value2));
        if (v1 == 1 || v2 == 1) {
            UserPortrait labelInfo = new UserPortrait();