private boolean populateDataFromScreen() {
    MassageVo voMassage = form.getLocalContext().getCurrentMassageVo();

    if (voMassage == null) voMassage = new MassageVo();

    voMassage.setAuthoringDateTime(
        form.dtimAuthoringDateTime().getValue() != null
            ? form.dtimAuthoringDateTime().getValue()
            : null);
    voMassage.setAuthoringCP(
        form.qmbAuthoringCP().getValue() != null ? form.qmbAuthoringCP().getValue() : null);

    SoftTissueMassageVoCollection voSoftTissueMassageColl = new SoftTissueMassageVoCollection();
    SoftTissueMassageVo voSoftTissueMassage = new SoftTissueMassageVo();
    for (int i = 0; i < form.grdTissue().getRows().size(); i++) {
      voSoftTissueMassage = null;

      voSoftTissueMassage = form.grdTissue().getRows().get(i).getValue();
      GenForm.grdTissueRow rowTissue = form.grdTissue().getRows().get(i);

      if (voSoftTissueMassage == null) // New record
      {
        voSoftTissueMassage = new SoftTissueMassageVo();
        voSoftTissueMassage.setClinicalContact(
            form.getGlobalContext().Core.getCurrentClinicalContact());
      }

      voSoftTissueMassage.setSTMassageArea(
          rowTissue.getColArea() != null ? rowTissue.getColArea() : null);
      voSoftTissueMassage.setSTMassageType(
          rowTissue.getColTypeofMassage() != null ? rowTissue.getColTypeofMassage() : null);
      voSoftTissueMassage.setSTMassageAreaDescription(
          rowTissue.getColAreaDescription() != null ? rowTissue.getColAreaDescription() : null);
      voSoftTissueMassage.setLaterality(
          rowTissue.getColLaterality() != null ? rowTissue.getColLaterality() : null);
      voSoftTissueMassage.setDuration(
          rowTissue.getColDuration() != null ? rowTissue.getColDuration() : null);
      voSoftTissueMassage.setNotes(
          rowTissue.getColNotes() != null ? rowTissue.getColNotes() : null);

      voSoftTissueMassageColl.add(voSoftTissueMassage);
    }
    voMassage.setSoftTissueMassage(voSoftTissueMassageColl);

    DeepFrictionMassageVoCollection voDeepFrictionColl = new DeepFrictionMassageVoCollection();
    DeepFrictionMassageVo voDeepFrictionMassage = new DeepFrictionMassageVo();
    for (int i = 0; i < form.grdFriction().getRows().size(); i++) {
      voDeepFrictionMassage = null;

      voDeepFrictionMassage = form.grdFriction().getRows().get(i).getValue();
      GenForm.grdFrictionRow rowFriction = form.grdFriction().getRows().get(i);

      if (voDeepFrictionMassage == null) // New record
      {
        voDeepFrictionMassage = new DeepFrictionMassageVo();
        voDeepFrictionMassage.setClinicalContact(
            form.getGlobalContext().Core.getCurrentClinicalContact());
      }

      voDeepFrictionMassage.setDFMassageArea(
          rowFriction.getColArea() != null
              ? (DeepFrictionMassageAreaStructure) rowFriction.getColArea().getValue()
              : null);
      voDeepFrictionMassage.setDFMassageStructure(
          rowFriction.getColStructure() != null
              ? (DeepFrictionMassageAreaStructure) rowFriction.getColStructure().getValue()
              : null);
      voDeepFrictionMassage.setLaterality(
          rowFriction.getColLaterality() != null ? rowFriction.getColLaterality() : null);
      voDeepFrictionMassage.setDuration(
          rowFriction.getColDuration() != null ? rowFriction.getColDuration() : null);
      voDeepFrictionMassage.setNotes(
          rowFriction.getColNotes() != null ? rowFriction.getColNotes() : null);

      voDeepFrictionColl.add(voDeepFrictionMassage);
    }
    voMassage.setDeepFriction(voDeepFrictionColl);

    ConnectiveTissueMassageVoCollection voConnectiveTissueMassageColl =
        new ConnectiveTissueMassageVoCollection();
    ConnectiveTissueMassageVo voConnTissueMassage = new ConnectiveTissueMassageVo();
    for (int i = 0; i < form.grdConnective().getRows().size(); i++) {
      voConnTissueMassage = null;

      voConnTissueMassage = form.grdConnective().getRows().get(i).getValue();
      GenForm.grdConnectiveRow rowConn = form.grdConnective().getRows().get(i);

      if (voConnTissueMassage == null) // New record
      {
        voConnTissueMassage = new ConnectiveTissueMassageVo();
        voConnTissueMassage.setClinicalContact(
            form.getGlobalContext().Core.getCurrentClinicalContact());
      }

      voConnTissueMassage.setCTMassageArea(
          rowConn.getColArea() != null ? rowConn.getColArea() : null);
      voConnTissueMassage.setCTMassageAreaDescription(
          rowConn.getColAreaDescription() != null ? rowConn.getColAreaDescription() : null);
      voConnTissueMassage.setLaterality(
          rowConn.getColLaterality() != null ? rowConn.getColLaterality() : null);
      voConnTissueMassage.setDuration(
          rowConn.getColDuration() != null ? rowConn.getColDuration() : null);
      voConnTissueMassage.setNotes(rowConn.getColNotes() != null ? rowConn.getColNotes() : null);

      voConnectiveTissueMassageColl.add(voConnTissueMassage);
    }
    voMassage.setConnectiveTissueMassage(voConnectiveTissueMassageColl);

    if (!voMassage.getClinicalContactIsNotNull())
      voMassage.setClinicalContact(form.getGlobalContext().Core.getCurrentClinicalContact());

    form.getLocalContext().setCurrentMassageVo(voMassage);
    return true;
  }