@RequestMapping(value = "/medicalRecord/add", method = RequestMethod.POST)
 @ResponseBody
 public Boolean addMedicalRecord(
     @RequestParam(value = "codes[]", required = false) String[] codes,
     @RequestParam Integer patientId,
     @RequestParam String domain) {
   if (codes == null || codes.length == 0) {
     throw new AjaxBadRequest("Please select codes for add");
   }
   User patient = userService.getByPrimaryKey(patientId);
   for (String entryStr : codes) {
     String[] entry = entryStr.split(Constants.HYPHEN);
     DictionaryEntry dictionaryEntry =
         new DictionaryEntry(entry[0], entry[1], Domain.valueOf(domain));
     if (entry.length < 3) {
       throw new AjaxBadRequest("Date can't be empty");
     }
     String dateStr = entry[2];
     if (dateStr.trim().isEmpty()) {
       throw new AjaxBadRequest("Date can't be empty");
     }
     Date date;
     try {
       date = new SimpleDateFormat("mm/dd/yyyy").parse(dateStr);
     } catch (ParseException e) {
       throw new AjaxBadRequest("Date format error");
     }
     String value = entry.length == 4 && !entry[3].trim().isEmpty() ? entry[3] : null;
     patient
         .getMedicalRecords()
         .add(new MedicalRecord(patientId, Domain.valueOf(domain), dictionaryEntry, date, value));
   }
   userService.update(patient);
   return true;
 }
 @RequestMapping("/dictionaryEntry/domain/{domain}")
 @ResponseBody
 public List<DictionaryEntry> dictionaryEntriesByDomain(@PathVariable String domain) {
   List<DictionaryEntry> result = dictionaryEntryService.findAllByDomain(Domain.valueOf(domain));
   return result;
 }