/**
   * Grabs the appropriate stuff from a request and returns a list of case_ids
   *
   * @param request
   * @return
   * @throws ProtocolException
   * @throws DaoException
   */
  public static ArrayList<String> getSampleIds(HttpServletRequest request)
      throws ProtocolException, DaoException {
    String samples = request.getParameter(WebService.CASE_LIST);
    String sampleSetId = request.getParameter(WebService.CASE_SET_ID);
    String sampleIdsKey = request.getParameter(WebService.CASE_IDS_KEY);

    if (sampleIdsKey != null) {
      samples = SampleSetUtil.getSampleIds(sampleIdsKey);
    }

    ArrayList<String> sampleList = new ArrayList<String>();
    if (sampleSetId != null && !(sampleSetId.equals("-1"))) {
      DaoSampleList dao = new DaoSampleList();
      SampleList selectedSampleList = dao.getSampleListByStableId(sampleSetId);
      if (selectedSampleList == null) {
        throw new ProtocolException(
            "Invalid " + WebService.CASE_SET_ID + ":  " + sampleSetId + ".");
      }
      sampleList = selectedSampleList.getSampleList();
    } else if (samples != null) {
      for (String _sample : samples.split("[\\s,]+")) {
        _sample = _sample.trim();
        if (_sample.length() == 0) continue;
        sampleList.add(_sample);
      }
    } else if (samples != null) { // todo: this is a hack, samples is just another word for patients
      return new ArrayList(Arrays.asList(samples.split(" ")));
    } else {
      throw new ProtocolException(
          WebService.CASE_SET_ID + " or " + WebService.CASE_LIST + " must be specified.");
    }
    return sampleList;
  }
  /**
   * Test importing of Clinical Data File.
   *
   * @throws DaoException Database Access Error.
   * @throws IOException IO Error.
   */
  @Test
  @Ignore("To be fixed")
  public void testImportClinicalDataSlice() throws Exception {

    // TBD: change this to use getResourceAsStream()
    File clinicalFile = new File("target/test-classes/clinical_data.txt");
    ImportClinicalData importClinicalData = new ImportClinicalData(study, clinicalFile);
    importClinicalData.importData();

    List<ClinicalParameterMap> slice =
        DaoClinicalData.getDataSlice(study.getInternalId(), Arrays.asList("PLATINUMSTATUS"));
    assertTrue(slice.size() >= 1);

    ClinicalParameterMap paramMap = slice.get(0);
    assertEquals("PLATINUMSTATUS", paramMap.getName());
    assertEquals("Sensitive", paramMap.getValue("TCGA-A1-A0SD"));
    assertEquals("NA", paramMap.getValue("TCGA-A1-A0SE"));
    assertEquals(2, paramMap.getDistinctCategories().size());
  }