diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/VolumeComponentAnalysisModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/VolumeComponentAnalysisModel.java new file mode 100644 index 0000000..235eb64 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/VolumeComponentAnalysisModel.java @@ -0,0 +1,695 @@ +package com.lyms.platform.pojo; + +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.mongodb.core.mapping.Document; + +/** + * 体成分分析 + */ +@Document(collection = "lyms_volume_component_analysis") +public class VolumeComponentAnalysisModel extends BaseModel { + private String id; + private String hospitalId; + private String parentId; + private String uuId;//  ABC-001;,    //单位代码 + private String deviceID;// 16ART1B0007;       //仪器编号 + private String deviceType;// BCA-1D;,              //仪器型号 + private String memberId; // 13902345678;,       //测试者编号 + private String testID; // ;201704281014;,         //测试序号 + private String testDate; // 20170428;,            //测试日期 + private String name;// 张三;,               //姓名(UTF-8编码) + private String sex;// 1;,                    //性别 (男1,女2) + private String height;// 178.5;,              //身高 + private String birthYear;// 1985;,            //出生年份 + private String weight; // 72.5;,              //体重 + private String fat;// 23.1;,                 //脂肪 + private String bone;// 3.8;,                //骨质 + private String protein;// 18.6;,             //蛋白质 + private String water;// 33.5;,              //水分 + private String muscle;// 40.1;,             //肌肉 + private String smm;// 18.5;,              //骨骼肌 + private String pbf;// 22.1;,               //体脂百分比 + private String bmi;// 22.4;,              //体质指数 + private String bmr;// 1665.0;,           //基础代谢 + private String whr;// 0.89;,            //腰臀比(2位小数) + private String edema;// 0.33;,           //水肿系数(2位小数) + private String vfi;// 12.0;,             //内脏脂肪指数 + private String bodyAge;// 23;,          //身体年龄 + private String score;//78.0;,            //健康评分 + private String bodyType;// 4;,          //体型判定 + private String lbm;// 50.1;,            //瘦体重(去脂体重) + private String icw;// 23.0;,            //细胞内液 + private String ecw;// 10.5;,           //细胞外液 + private String standardWeight;// 70.5;,   //目标体重 + private String weightControl;// 2.0;,   //体重控制 + private String fatControl;// 1.3;,      //脂肪控制量 + private String muscleControl;// 0.7;,  //肌肉控制量 + private String liverRisk;// 65;        //脂肪肝风险系数 + private String trFat;// 14.5;,        //躯干脂肪量 + private String laFat;// 2.1;,         //左上肢脂肪 + private String raFat;// 2.1;,         //右上肢脂肪 + private String llFat;// 5.2;,         //左下肢脂肪 + private String rlFat;// 5.2;,         //右下肢脂肪 + private String trWater;// 17.9;,     //躯干水分量 + private String laWater;// 2.6;,      //左上肢水分 + private String raWater;// 2.9;,      //右上肢水分 + private String llWater;// 4.2;,      //左下肢水分 + private String rlWater;// 4.3;,      //右下肢水分 + private String trMuscle;// 23.9;,     //躯干肌肉量 + private String laMuscle;// 6.6;,      //左上肢肌肉 + private String raMuscle;// 6.9;,      //右上肢肌肉 + private String llMuscle;// 14.2;,      //左下肢肌肉 + private String rlMuscle;// 14.3;      //右下肢肌肉 + private String weightMax; // 84.5;,    //体重正常范围的高值 + private String weightMin; // 69.5;,    //体重正常范围的低值 + private String fatMax; // 22.5;,      //体重正常范围的高值 + private String fatMin; // 13.6;,      //体重正常范围的低值 + private String boneMax; // 3.7;,    //骨质正常范围的高值 + private String boneMin; // 3.1;,    //骨质正常范围的低值 + private String proteinMax; // 22.5;,    //蛋白质正常范围的高值 + private String proteinMin; // 17.5;,    //蛋白质正常范围的低值 + private String waterMax; // 43.6;,    //水分正常范围的高值 + private String waterMin; // 32.5;,    //水分正常范围的低值 + private String muscleMax; // 54.5;,    //肌肉正常范围的高值 + private String muscleMin; // 36.5;,    //肌肉正常范围的低值 + private String smmMax; // 32.5;,    //骨骼肌正常范围的高值 + private String smmMin; // 24.1;,    //骨骼肌正常范围的低值 + private String pbfMax; // 10.0;,    //体脂率正常范围的高值 + private String pbfMin; // 20.0;,    //体脂率正常范围的低值 + private String bmiMax; // 18.5;,    //体质指数正常范围的高值 + private String bmiMin; // 23.9;,    //体质指数正常范围的低值 + private String whrMax; // 0.7;,    //腰臀比正常范围的高值 + private String whrMin; // 0.8;,    //腰臀比正常范围的低值 + private String edemaMax; // 0.3;,    //水肿系数正常范围的高值 + private String edemaMin; // 0.35;,    //水肿系数正常范围的低值 + private String vfiMax; // 5;,    //内脏脂肪指数正常范围的高值 + private String vfiMin; // 10;    //内脏脂肪指数正常范围的低值 + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getUuId() { + return uuId; + } + + public void setUuId(String uuId) { + this.uuId = uuId; + } + + public String getDeviceID() { + return deviceID; + } + + public void setDeviceID(String deviceID) { + this.deviceID = deviceID; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getMemberId() { + return memberId; + } + + public void setMemberId(String memberId) { + this.memberId = memberId; + } + + public String getTestID() { + return testID; + } + + public void setTestID(String testID) { + this.testID = testID; + } + + public String getTestDate() { + return testDate; + } + + public void setTestDate(String testDate) { + this.testDate = testDate; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getHeight() { + return height; + } + + public void setHeight(String height) { + this.height = height; + } + + public String getBirthYear() { + return birthYear; + } + + public void setBirthYear(String birthYear) { + this.birthYear = birthYear; + } + + public String getWeight() { + return weight; + } + + public void setWeight(String weight) { + this.weight = weight; + } + + public String getFat() { + return fat; + } + + public void setFat(String fat) { + this.fat = fat; + } + + public String getBone() { + return bone; + } + + public void setBone(String bone) { + this.bone = bone; + } + + public String getProtein() { + return protein; + } + + public void setProtein(String protein) { + this.protein = protein; + } + + public String getWater() { + return water; + } + + public void setWater(String water) { + this.water = water; + } + + public String getMuscle() { + return muscle; + } + + public void setMuscle(String muscle) { + this.muscle = muscle; + } + + public String getSmm() { + return smm; + } + + public void setSmm(String smm) { + this.smm = smm; + } + + public String getPbf() { + return pbf; + } + + public void setPbf(String pbf) { + this.pbf = pbf; + } + + public String getBmi() { + return bmi; + } + + public void setBmi(String bmi) { + this.bmi = bmi; + } + + public String getBmr() { + return bmr; + } + + public void setBmr(String bmr) { + this.bmr = bmr; + } + + public String getWhr() { + return whr; + } + + public void setWhr(String whr) { + this.whr = whr; + } + + public String getEdema() { + return edema; + } + + public void setEdema(String edema) { + this.edema = edema; + } + + public String getVfi() { + return vfi; + } + + public void setVfi(String vfi) { + this.vfi = vfi; + } + + public String getBodyAge() { + return bodyAge; + } + + public void setBodyAge(String bodyAge) { + this.bodyAge = bodyAge; + } + + public String getScore() { + return score; + } + + public void setScore(String score) { + this.score = score; + } + + public String getBodyType() { + return bodyType; + } + + public void setBodyType(String bodyType) { + this.bodyType = bodyType; + } + + public String getLbm() { + return lbm; + } + + public void setLbm(String lbm) { + this.lbm = lbm; + } + + public String getIcw() { + return icw; + } + + public void setIcw(String icw) { + this.icw = icw; + } + + public String getEcw() { + return ecw; + } + + public void setEcw(String ecw) { + this.ecw = ecw; + } + + public String getStandardWeight() { + return standardWeight; + } + + public void setStandardWeight(String standardWeight) { + this.standardWeight = standardWeight; + } + + public String getWeightControl() { + return weightControl; + } + + public void setWeightControl(String weightControl) { + this.weightControl = weightControl; + } + + public String getFatControl() { + return fatControl; + } + + public void setFatControl(String fatControl) { + this.fatControl = fatControl; + } + + public String getMuscleControl() { + return muscleControl; + } + + public void setMuscleControl(String muscleControl) { + this.muscleControl = muscleControl; + } + + public String getLiverRisk() { + return liverRisk; + } + + public void setLiverRisk(String liverRisk) { + this.liverRisk = liverRisk; + } + + public String getTrFat() { + return trFat; + } + + public void setTrFat(String trFat) { + this.trFat = trFat; + } + + public String getLaFat() { + return laFat; + } + + public void setLaFat(String laFat) { + this.laFat = laFat; + } + + public String getRaFat() { + return raFat; + } + + public void setRaFat(String raFat) { + this.raFat = raFat; + } + + public String getLlFat() { + return llFat; + } + + public void setLlFat(String llFat) { + this.llFat = llFat; + } + + public String getRlFat() { + return rlFat; + } + + public void setRlFat(String rlFat) { + this.rlFat = rlFat; + } + + public String getTrWater() { + return trWater; + } + + public void setTrWater(String trWater) { + this.trWater = trWater; + } + + public String getLaWater() { + return laWater; + } + + public void setLaWater(String laWater) { + this.laWater = laWater; + } + + public String getRaWater() { + return raWater; + } + + public void setRaWater(String raWater) { + this.raWater = raWater; + } + + public String getLlWater() { + return llWater; + } + + public void setLlWater(String llWater) { + this.llWater = llWater; + } + + public String getRlWater() { + return rlWater; + } + + public void setRlWater(String rlWater) { + this.rlWater = rlWater; + } + + public String getTrMuscle() { + return trMuscle; + } + + public void setTrMuscle(String trMuscle) { + this.trMuscle = trMuscle; + } + + public String getLaMuscle() { + return laMuscle; + } + + public void setLaMuscle(String laMuscle) { + this.laMuscle = laMuscle; + } + + public String getRaMuscle() { + return raMuscle; + } + + public void setRaMuscle(String raMuscle) { + this.raMuscle = raMuscle; + } + + public String getLlMuscle() { + return llMuscle; + } + + public void setLlMuscle(String llMuscle) { + this.llMuscle = llMuscle; + } + + public String getRlMuscle() { + return rlMuscle; + } + + public void setRlMuscle(String rlMuscle) { + this.rlMuscle = rlMuscle; + } + + public String getWeightMax() { + return weightMax; + } + + public void setWeightMax(String weightMax) { + this.weightMax = weightMax; + } + + public String getWeightMin() { + return weightMin; + } + + public void setWeightMin(String weightMin) { + this.weightMin = weightMin; + } + + public String getFatMax() { + return fatMax; + } + + public void setFatMax(String fatMax) { + this.fatMax = fatMax; + } + + public String getFatMin() { + return fatMin; + } + + public void setFatMin(String fatMin) { + this.fatMin = fatMin; + } + + public String getBoneMax() { + return boneMax; + } + + public void setBoneMax(String boneMax) { + this.boneMax = boneMax; + } + + public String getBoneMin() { + return boneMin; + } + + public void setBoneMin(String boneMin) { + this.boneMin = boneMin; + } + + public String getProteinMax() { + return proteinMax; + } + + public void setProteinMax(String proteinMax) { + this.proteinMax = proteinMax; + } + + public String getProteinMin() { + return proteinMin; + } + + public void setProteinMin(String proteinMin) { + this.proteinMin = proteinMin; + } + + public String getWaterMax() { + return waterMax; + } + + public void setWaterMax(String waterMax) { + this.waterMax = waterMax; + } + + public String getWaterMin() { + return waterMin; + } + + public void setWaterMin(String waterMin) { + this.waterMin = waterMin; + } + + public String getMuscleMax() { + return muscleMax; + } + + public void setMuscleMax(String muscleMax) { + this.muscleMax = muscleMax; + } + + public String getMuscleMin() { + return muscleMin; + } + + public void setMuscleMin(String muscleMin) { + this.muscleMin = muscleMin; + } + + public String getSmmMax() { + return smmMax; + } + + public void setSmmMax(String smmMax) { + this.smmMax = smmMax; + } + + public String getSmmMin() { + return smmMin; + } + + public void setSmmMin(String smmMin) { + this.smmMin = smmMin; + } + + public String getPbfMax() { + return pbfMax; + } + + public void setPbfMax(String pbfMax) { + this.pbfMax = pbfMax; + } + + public String getPbfMin() { + return pbfMin; + } + + public void setPbfMin(String pbfMin) { + this.pbfMin = pbfMin; + } + + public String getBmiMax() { + return bmiMax; + } + + public void setBmiMax(String bmiMax) { + this.bmiMax = bmiMax; + } + + public String getBmiMin() { + return bmiMin; + } + + public void setBmiMin(String bmiMin) { + this.bmiMin = bmiMin; + } + + public String getWhrMax() { + return whrMax; + } + + public void setWhrMax(String whrMax) { + this.whrMax = whrMax; + } + + public String getWhrMin() { + return whrMin; + } + + public void setWhrMin(String whrMin) { + this.whrMin = whrMin; + } + + public String getEdemaMax() { + return edemaMax; + } + + public void setEdemaMax(String edemaMax) { + this.edemaMax = edemaMax; + } + + public String getEdemaMin() { + return edemaMin; + } + + public void setEdemaMin(String edemaMin) { + this.edemaMin = edemaMin; + } + + public String getVfiMax() { + return vfiMax; + } + + public void setVfiMax(String vfiMax) { + this.vfiMax = vfiMax; + } + + public String getVfiMin() { + return vfiMin; + } + + public void setVfiMin(String vfiMin) { + this.vfiMin = vfiMin; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/VolumeComponentAnalysisController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/VolumeComponentAnalysisController.java new file mode 100644 index 0000000..7df15cf --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/VolumeComponentAnalysisController.java @@ -0,0 +1,67 @@ +package com.lyms.platform.operate.web.controller; + + +import com.lyms.platform.common.annotation.TokenRequired; +import com.lyms.platform.common.base.BaseController; +import com.lyms.platform.common.result.BaseObjectResponse; +import com.lyms.platform.operate.web.facade.MeasureInfoFacade; +import com.lyms.platform.operate.web.facade.VolumeComponentAnalysisFacade; +import com.lyms.platform.pojo.VolumeComponentAnalysisModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; + +/** + * 体成分分析 + **/ +@Controller +public class VolumeComponentAnalysisController extends BaseController { + + + @Autowired + private MeasureInfoFacade measureInfoFacade; + + + @Autowired + private VolumeComponentAnalysisFacade volumeComponentAnalysisFacade; + + + /** + * 体成分分析获取孕妇基本信息 + */ + @RequestMapping(method = RequestMethod.GET, value = "/getComponentPatientInfo") + @ResponseBody + public BaseObjectResponse getComponentPatientInfo(@RequestParam(value = "certType", required = true) Integer certType, + @RequestParam(value = "certNo", required = true) String certNo, + @RequestParam(value = "hospitalId", required = true) String hospitalId, + HttpServletRequest request) { + return measureInfoFacade.getNutritionPatientInfo(certType, certNo, hospitalId); + } + + /** + * 添加蓝牙体成分分析后的数据 + */ + @RequestMapping(method = RequestMethod.GET, value = "/addComponentAnalysis") + @ResponseBody + public BaseObjectResponse addComponentAnalysis(VolumeComponentAnalysisModel volume) { + + return volumeComponentAnalysisFacade.addComponentAnalysis(volume); + + } + + /** + * 获取体成分分析记录 + */ + @RequestMapping + @ResponseBody + @TokenRequired + public BaseObjectResponse queryComponentAnalysis(String key, String vcCardNo, Integer stateWeek, Integer endWeek, Integer age, + Integer fetusNumber, Integer page, Integer limit, HttpServletRequest request) { + return volumeComponentAnalysisFacade.queryComponentAnalysis(page, limit, key, vcCardNo, stateWeek, endWeek, age, fetusNumber, getUserId(request)); + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/VolumeComponentAnalysisFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/VolumeComponentAnalysisFacade.java new file mode 100644 index 0000000..962ff5e --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/VolumeComponentAnalysisFacade.java @@ -0,0 +1,86 @@ +package com.lyms.platform.operate.web.facade; + +import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.result.BaseObjectResponse; +import com.lyms.platform.common.result.PageResult; +import com.lyms.platform.common.result.RespBuilder; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.operate.web.service.impl.BaseServiceImpl; +import com.lyms.platform.pojo.TemporaryUserModel; +import com.lyms.platform.pojo.VolumeComponentAnalysisModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Component; + +import java.util.*; + +@Component +public class VolumeComponentAnalysisFacade extends BaseServiceImpl { + + @Autowired + private OrganizationGroupsFacade groupsFacade; + + @Autowired + private MongoTemplate mongoTemplate; + + + public BaseObjectResponse addComponentAnalysis(VolumeComponentAnalysisModel volume) { + mongoTemplate.insert(volume); + BaseObjectResponse objectResponse = new BaseObjectResponse(); + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setErrormsg("成功"); + return objectResponse; + } + + + /** + * 查询体成分分析列表信息 + */ + public BaseObjectResponse queryComponentAnalysis(Integer page, Integer limit, String key, String vcCardNo, Integer stateWeek, Integer endWeek, Integer age, + Integer fetusNumber, Integer userId) { + mongoTemplate.find(Query.query(Criteria.where("").is(1)), VolumeComponentAnalysisModel.class); + boolean flag = false; + List hospital = groupsFacade.findGroupHospital(userId, false); + Criteria criteria = Criteria.where("yn").ne("0").and("hospitalId").in(hospital); + Criteria pCriteria = Criteria.where("yn").ne("0").and("hospitalId").in(hospital); + if (org.apache.commons.lang.StringUtils.isNotBlank(key)) { + pCriteria.orOperator(Criteria.where("phone").regex(key), Criteria.where("userName").regex(key), Criteria.where("cardID").regex(key)); + flag = true; + } + if (stateWeek != null && endWeek != null) { + Date start = DateUtil.getWeekStart(endWeek); + Date end = DateUtil.getWeekEnd(stateWeek); + pCriteria.and("lastMenses").gt(start).lte(end); + flag = true; + } + if (age != null) { + Date start = DateUtil.getBeforeAge(age); + Date end = DateUtil.getBeforeAge(age + 1); + pCriteria.and("birth").gt(end).lte(start); + flag = true; + } + if (flag) { + List patients = mongoTemplate.find(Query.query(pCriteria), TemporaryUserModel.class); + List ids = new ArrayList<>(); + if (com.lyms.platform.operate.web.utils.CollectionUtils.isNotEmpty(patients)) { + for (TemporaryUserModel patient : patients) { + ids.add(patient.getId()); + } + } + criteria.and("_id").in(ids); + } + PageResult pageResult = findMongoPage(TemporaryUserModel.class, new Query(criteria).with(new Sort(Sort.Direction.DESC, "created")), page, limit); + List bloodSugars = (List) pageResult.getGrid(); + List list = new ArrayList(); + for (TemporaryUserModel temporaryUser : bloodSugars) { + Map map = new HashMap<>(); + + list.add(map); + } + pageResult.setGrid(list); + return RespBuilder.buildSuccess(pageResult); + } +}