Ejemplo n.º 1
0
  public Result editPost(int patientId) {

    CurrentUser currentUserSession = sessionService.getCurrentUserSession();

    CreateViewModelPost viewModelPost = createViewModelPostForm.bindFromRequest().get();

    ServiceResponse<IPatientEncounter> patientEncounterServiceResponse =
        searchService.findCurrentEncounterByPatientId(patientId);
    if (patientEncounterServiceResponse.hasErrors()) {
      return internalServerError();
    }
    IPatientEncounter patientEncounter = patientEncounterServiceResponse.getResponseObject();

    // HPI Data
    List<IPatientEncounterHpiField> patientEncounterHpiFields =
        medicalHelper.populateHpiFields(viewModelPost, patientEncounter, currentUserSession);
    ServiceResponse<IPatientEncounterHpiField> patientEncounterHpiFieldServiceResponse;
    for (int j = 0; j < patientEncounterHpiFields.size(); j++) {
      if (StringUtils.isNullOrWhiteSpace(patientEncounterHpiFields.get(j).getHpiFieldValue())) {
        continue;
      } else {
        patientEncounterHpiFieldServiceResponse =
            medicalService.createPatientEncounterHpiField(patientEncounterHpiFields.get(j));
        if (patientEncounterHpiFieldServiceResponse.hasErrors()) {
          return internalServerError();
        }
      }
    }
    // Treatment Data
    List<IPatientEncounterTreatmentField> patientEncounterTreatmentFields =
        medicalHelper.populateTreatmentFields(viewModelPost, patientEncounter, currentUserSession);
    ServiceResponse<IPatientEncounterTreatmentField> patientEncounterTreatmentFieldServiceResponse;
    for (int i = 0; i < patientEncounterTreatmentFields.size(); i++) {
      if (StringUtils.isNullOrWhiteSpace(
          patientEncounterTreatmentFields.get(i).getTreatmentFieldValue())) {
        continue;
      } else {
        patientEncounterTreatmentFieldServiceResponse =
            medicalService.createPatientEncounterTreatmentField(
                patientEncounterTreatmentFields.get(i));
        if (patientEncounterTreatmentFieldServiceResponse.hasErrors()) {
          return internalServerError();
        }
      }
    }
    // prescriptions
    List<IPatientPrescription> patientPrescriptions =
        medicalHelper.populatePatientPrescriptions(
            viewModelPost, patientEncounter, currentUserSession);
    ServiceResponse<IPatientPrescription> patientPrescriptionServiceResponse;
    for (int k = 0; k < patientPrescriptions.size(); k++) {
      if (StringUtils.isNullOrWhiteSpace(patientPrescriptions.get(k).getMedicationName())) {
        continue;
      } else {
        patientPrescriptionServiceResponse =
            medicalService.createPatientPrescription(patientPrescriptions.get(k));
        if (patientPrescriptionServiceResponse.hasErrors()) {
          return internalServerError();
        }
      }
    }
    return redirect(routes.MedicalController.indexGet(0, null));
  }