Commit 662bc4d27931055a67595f862d51a793aee256c3

Authored by liquanyu
1 parent 4a3a71493c

体重修改

Showing 1 changed file with 120 additions and 12 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java View file @ 662bc4d
... ... @@ -1006,7 +1006,10 @@
1006 1006 //威海市妇幼热量单独计算
1007 1007 if ("2100001635".equals(hospitalId)) {
1008 1008 kmap = getWhComputeKul(week, Double.parseDouble(patientWeight.getNowWeight()), Double.parseDouble(patientWeight.getBeforeWeight()), patientWeight.getBregmatic(), bmi);
1009   - } else {
  1009 + }else if ("216".equals(hospitalId)) { //临西县热量单独计算
  1010 + kmap = getLxComputeKul(week, Double.parseDouble(patientWeight.getNowWeight()), Double.parseDouble(patientWeight.getBeforeWeight()), patientWeight.getBregmatic(), bmi);
  1011 + }
  1012 + else {
1010 1013 kmap = computeKulServiceManager.getComputeKulByRisk(rid).getComputeKul(Double.parseDouble(patientWeight.getBeforeWeight()),
1011 1014 Double.parseDouble(patientWeight.getNowWeight()), week, bmi, patientWeight.getBregmatic(), patientWeight.getBeforeHeight(), version);
1012 1015 }
... ... @@ -1485,7 +1488,7 @@
1485 1488 String hospitalId = kmap.get("hospitalId");
1486 1489 String kcal = "";
1487 1490 //临西热量计算
1488   - if (StringUtils.isNotEmpty(hospitalId) && "2100001306".equals(hospitalId) && "1500".equals(kmap.get("kulStart")))
  1491 + if (StringUtils.isNotEmpty(hospitalId) && "216".equals(hospitalId) && "1500".equals(kmap.get("kulStart")))
1489 1492 {
1490 1493 kcal = Math.round(Double.parseDouble(kmap.get("kulStart")))+"";
1491 1494 }
... ... @@ -2059,16 +2062,6 @@
2059 2062 } else if (k1 > 3300) {
2060 2063 k1 = 3300;
2061 2064 }
2062   - String hospitalId = map.get("hospitalId");
2063   - //临西热量计算
2064   - if (StringUtils.isNotEmpty(hospitalId) && "2100001306".equals(hospitalId))
2065   - {
2066   - if (k1 < 1500)
2067   - {
2068   - map.put("kulStart","1500");
2069   - k1 = 1500;
2070   - }
2071   - }
2072 2065  
2073 2066 Criteria criteria = null;
2074 2067 if ("3".equals((String) map.get("type"))) {
... ... @@ -2297,6 +2290,121 @@
2297 2290 kulStart = currentWeight * 20 + 450;
2298 2291 }
2299 2292 }
  2293 + kulEnd = kulStart;
  2294 + map.put("kulStart", String.valueOf(kulStart));
  2295 + map.put("kulEnd", String.valueOf(kulEnd));
  2296 + map.put("status", status);
  2297 + return map;
  2298 + }
  2299 +
  2300 +
  2301 +
  2302 + public Map<String, String> getLxComputeKul(int week, double currentWeight, double beforeWeight, String bregmatic, double bmiD) {
  2303 +
  2304 + String bmiStr = null;
  2305 + //空和1表示单胎
  2306 + if (!StringUtils.isNotEmpty(bregmatic) || "1".equals(bregmatic)) {
  2307 + if (bmiD < 18.5) {
  2308 + bmiStr = "BMI<18.5";
  2309 + } else if (bmiD >= 18.5 && bmiD <= 24.9) {
  2310 + bmiStr = "BMI=18.5-24.9";
  2311 + } else if (bmiD > 24.9 && bmiD < 30) {
  2312 + bmiStr = "BMI=25-29.9";
  2313 + } else if (bmiD >= 30) {
  2314 + bmiStr = "BMI≥30";
  2315 + }
  2316 + } else {
  2317 + if (bmiD <= 24.9) {
  2318 + bmiStr = "BMI≤24.9";
  2319 + } else if (bmiD >= 25 && bmiD <= 29.9) {
  2320 + bmiStr = "BMI=25-29.9";
  2321 + } else if (bmiD >= 30) {
  2322 + bmiStr = "BMI≥30";
  2323 + }
  2324 + }
  2325 +
  2326 + Map<String, Object> series = new LinkedHashMap<>();
  2327 + getSeries(series, bmiStr, bregmatic);
  2328 +
  2329 +
  2330 + List<Double> highMap = (List<Double>) series.get("highData");
  2331 + List<Double> lowMap = (List<Double>) series.get("lowData");
  2332 +
  2333 + Map<String, String> map = new HashMap<>();
  2334 +
  2335 + if (week > 40) {
  2336 + return map;
  2337 + }
  2338 +
  2339 + double kulStart = 0;
  2340 + double kulEnd = 0;
  2341 + String status = "";
  2342 +
  2343 + double add = Double.valueOf(String.format("%.2f", currentWeight - beforeWeight));
  2344 +
  2345 + double hvalue = highMap.get(week - 1);
  2346 + double lvalue = lowMap.get(week - 1);
  2347 +
  2348 + //孕早期
  2349 + if (week <= 11) {
  2350 + if (add <= hvalue) {
  2351 + if (bmiD < 18.5) {
  2352 + kulStart = (currentWeight - 105) * 37;
  2353 + } else if (bmiD >= 18.5 && bmiD <= 24.9) {
  2354 + kulStart = (currentWeight - 105) * 33;
  2355 + } else if (bmiD >= 25) {
  2356 + kulStart = (currentWeight - 105) * 28;
  2357 + }
  2358 + }
  2359 + else
  2360 + {
  2361 + if (bmiD < 18.5) {
  2362 + kulStart = (currentWeight - 105) * 35;
  2363 + } else if (bmiD >= 18.5 && bmiD <= 24.9) {
  2364 + kulStart = (currentWeight - 105) * 30;
  2365 + } else if (bmiD >= 25) {
  2366 + kulStart = (currentWeight - 105) * 25;
  2367 + }
  2368 + }
  2369 + }
  2370 + //孕中期
  2371 + else if (week < 28) {
  2372 + int addKal = week < 28 ? 200 : 400;
  2373 + if (add <= hvalue) {
  2374 + if (bmiD < 18.5)
  2375 + {
  2376 + kulStart = (currentWeight - 105) * 37 + addKal;
  2377 + } else if (bmiD >= 18.5 && bmiD <= 24.9) {
  2378 + kulStart = (currentWeight - 105) * 33 + addKal;
  2379 + } else if (bmiD >= 25) {
  2380 + kulStart = (currentWeight - 105) * 28 + addKal;
  2381 + }
  2382 + }
  2383 + else
  2384 + {
  2385 + if (bmiD < 18.5)
  2386 + {
  2387 + kulStart = (currentWeight - 105) * 35 + addKal;
  2388 + } else if (bmiD >= 18.5 && bmiD <= 24.9) {
  2389 + kulStart = (currentWeight - 105) * 30 + addKal;
  2390 + } else if (bmiD >= 25) {
  2391 + kulStart = (currentWeight - 105) * 25 + addKal;
  2392 + }
  2393 + }
  2394 + if (kulStart < 1500)
  2395 + {
  2396 + kulStart = 1500;
  2397 + }
  2398 + }
  2399 +
  2400 + if (add < lvalue) {
  2401 + status = "低于";
  2402 + } else if (add >= lvalue && add <= hvalue) {
  2403 + status = "处于";
  2404 + } else {
  2405 + status = "高于";
  2406 + }
  2407 +
2300 2408 kulEnd = kulStart;
2301 2409 map.put("kulStart", String.valueOf(kulStart));
2302 2410 map.put("kulEnd", String.valueOf(kulEnd));