| 
					
				 | 
			
			
				@ -0,0 +1,116 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.wlyy.web.third.gateway.controller.doctor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.entity.doctor.team.sign.SignPatientLabel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.app.label.SignPatientLabelInfoService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.app.label.SignPatientLabelService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.web.BaseController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.web.third.gateway.vo.HospitalModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.web.third.gateway.vo.PatientLabelModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.web.third.gateway.vo.PatientModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.web.third.gateway.vo.base.BaseResultModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.web.third.gateway.vo.base.ResultListModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.web.third.gateway.vo.base.ResultPageListModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.Api; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.ApiParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.BeanUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.http.MediaType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				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 java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Created by chenweida on 2017/8/30. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Controller 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@RequestMapping(value = "/wlyygc/doctor/label", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@ResponseBody 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Api(description = "疾病标签") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class GcLableController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private SignPatientLabelService signPatientLabelService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private SignPatientLabelInfoService signPatientLabelInfoService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @RequestMapping(value = "/labels", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation("根据分组类型查找标签") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ResultListModel<List<PatientLabelModel>> labels( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "type", value = "1:卫计委三大分组 2:健康情况 3:疾病类型 4:自定义", required = true) @RequestParam(value = "type", required = true) String type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "team", value = "type是4的时候需要传team", required = false) @RequestParam(value = "team", required = false) Long team 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SignPatientLabel> signPatientLabels = signPatientLabelService.getLabelsByTypeAndTeam(type, team.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<PatientLabelModel> patientLabelModels = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (SignPatientLabel signPatientLabel : signPatientLabels) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                PatientLabelModel patientLabelModel = new PatientLabelModel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                BeanUtils.copyProperties(signPatientLabel, patientLabelModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientLabelModels.add(patientLabelModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new ResultListModel(patientLabelModels); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new ResultListModel(BaseResultModel.statusEm.find_error.getCode(), BaseResultModel.statusEm.find_error.getMessage() + "," + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @RequestMapping(value = "/labelsWithNum", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation("根据分组类型查找标签已经标签下的患者数目") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ResultListModel<List<PatientLabelModel>> labelsWithNum( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "type", value = "1:卫计委三大分组 2:健康情况 3:疾病类型 4:自定义", required = true) @RequestParam(value = "type", required = true) String type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "team", value = "医生所属的团队ID", required = true) @RequestParam(value = "team", required = true) Long team 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray signPatientLabels = signPatientLabelInfoService.getPatientAmountByTeamGroupLable(team, type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<PatientLabelModel> patientLabelModels = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (int i = 0; i < signPatientLabels.length(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject jo = signPatientLabels.getJSONObject(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                PatientLabelModel patientLabelModel = new PatientLabelModel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientLabelModel.setLabelCode(jo.getString("labelCode")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientLabelModel.setLabelName(jo.getString("labelName")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientLabelModel.setAmount(jo.getInt("amount")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientLabelModel.setFocusAmount(jo.getInt("focusAmount")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientLabelModels.add(patientLabelModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new ResultListModel(patientLabelModels); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new ResultListModel(BaseResultModel.statusEm.find_error.getCode(), BaseResultModel.statusEm.find_error.getMessage() + "," + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @RequestMapping(value = "/signPatients", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation("获取医生签约的患者列表") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ResultPageListModel<PatientModel> signPatients( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "labelType", value = "标签类型", required = true) @RequestParam(value = "labelType", required = true) String labelType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "labelCode", value = "标签code", required = true) @RequestParam(value = "labelCode", required = true) String labelCode, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "teamCode", value = "所属团队", required = true) @RequestParam(value = "teamCode", required = true) Long teamCode, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "page", value = "当前页(1开始)", required = true) @RequestParam(value = "page", required = true, defaultValue = "1") Integer page, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "pageSize", value = "每页大小", required = true) @RequestParam(value = "pageSize", required = true, defaultValue = "10") Integer pageSize 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray result = signPatientLabelInfoService.getPatientByLabel(getUID(), labelCode, labelType, teamCode, page, pageSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<PatientModel> patientLabelModels = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (int i = 0; i < result.length(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject jo = result.getJSONObject(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                PatientModel patientModel = new PatientModel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientModel.setCode(jo.getString("code")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientModel.setName(jo.getString("name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientModel.setWechatFocusRemind(jo.getString("wechatFocusRemind")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientModel.setPhoto(jo.getString("photo")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientModel.setSex(jo.getInt("sex")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientModel.setAge(jo.getInt("age")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientLabelModels.add(patientModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new ResultPageListModel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new ResultPageListModel(BaseResultModel.statusEm.find_error.getCode(), BaseResultModel.statusEm.find_error.getMessage() + "," + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |