1、前台
//某一标准下的所有标签
$('#sampleOriginal').select2({
ajax: {
url: '/sampleRecord/getSampleOriginals',
dataType: 'json',
delay: 250,
data: function (params) {
return {
name: params.term,
page: params.page
};
},
processResults: function (data, params) {
params.page = params.page || 1;
return {
results: data.items,
pagination: {
more: (params.page * 30) < data.total
}
};
},
cache: true
},
escapeMarkup: function (markup) {
return markup;
},
minimumInputLength: 1,
templateSelection: function (item) {
$("#sampleOriginal").val(item.id);
return item.text;
}
});
2、controller
/**
* 得到样本来源
*
* @return
*/
@RequestMapping("/getSampleOriginals")
@ResponseBody
public String getSampleOriginals(@RequestParam("name") String name, @RequestParam(name = "page", required = false, defaultValue = "1") Integer page, @RequestParam(name = "pageSize", required = false, defaultValue = "30") Integer pageSize) {
return sampleRecordService.getOriginalResultObj(name, page, pageSize);
}
3、service
public String getOriginalResultObj(String name, Integer page, Integer pageSize) {
JSONObject root = new JSONObject();
int count = sampleRecordManager.getOriginalCountByName(name);
root.put("total", count);
List sampleOriginals = getSampleOriginals(name, page, pageSize);
JSONArray children = new JSONArray();
if (count == 0) {
root.put("items", children);
return root.toJSONString();
}
JSONObject child;
for (SampleOriginal sampleOriginal : sampleOriginals) {
child = new JSONObject();
child.put("id", sampleOriginal.getPatientId());
child.put("text", dealName(sampleOriginal.getName()) + "[ " + sampleOriginal.getGender() + " ]");
children.add(child);
}
root.put("items", children);
return root.toJSONString();
}
4、manager
@Autowired
private JdbcTemplate mdcJdbcTemplate;
/**
* 得到样本来源
*
* @return
*/
public List getSampleOriginals(String name, Integer page, Integer pageSize) {
List sampleOriginals = new ArrayList<>();
String sql = "SELECT patient_id,name,gender FROM patient WHERE name LIKE ? limit ?,? ";
mdcJdbcTemplate.query(sql, new Object[]{"%"+name+"%", page, pageSize}, (rs, i) -> {
SampleOriginal sampleOriginal = new SampleOriginal();
sampleOriginal.setPatientId(rs.getString("patient_id"));
sampleOriginal.setName(rs.getString("name"));
sampleOriginal.setGender(rs.getString("gender"));
sampleOriginals.add(sampleOriginal);
return null;
});
return sampleOriginals;
}
public int getOriginalCountByName(String name) {
List