All pastes #2090165 Raw Edit

Quasar

public text v1 · immutable
#2090165 ·published 2011-10-14 22:46 UTC
rendered paste body
//----------------------------------------------------------------------------------------------------------------------
// SetupCardioItemsMap - initializes the multi-level data structure used to get to the extremity pulses checkboxes
void TframeAssessmentCardio::SetupCardioItemsMap()
{
  cardio_items_data.clear();

  // Upper Right Items
  cardio_items_data["Strong"]    ["Right"]["Upper"] = checkUR1->Name.c_str();
  cardio_items_data["Faint"]     ["Right"]["Upper"] = checkUR2->Name.c_str();
  cardio_items_data["Absent"]    ["Right"]["Upper"] = checkUR3->Name.c_str();
  cardio_items_data["Cold"]      ["Right"]["Upper"] = checkUR4->Name.c_str();
  cardio_items_data["Discolored"]["Right"]["Upper"] = checkUR5->Name.c_str();
  // Lower Right Items
  cardio_items_data["Strong"]    ["Right"]["Lower"] = checkLR1->Name.c_str();
  cardio_items_data["Faint"]     ["Right"]["Lower"] = checkLR2->Name.c_str();
  cardio_items_data["Absent"]    ["Right"]["Lower"] = checkLR3->Name.c_str();
  cardio_items_data["Cold"]      ["Right"]["Lower"] = checkLR4->Name.c_str();
  cardio_items_data["Discolored"]["Right"]["Lower"] = checkLR5->Name.c_str();
  // Upper Left Items
  cardio_items_data["Strong"]    ["Left"] ["Upper"] = checkUL1->Name.c_str();
  cardio_items_data["Faint"]     ["Left"] ["Upper"] = checkUL2->Name.c_str();
  cardio_items_data["Absent"]    ["Left"] ["Upper"] = checkUL3->Name.c_str();
  cardio_items_data["Cold"]      ["Left"] ["Upper"] = checkUL4->Name.c_str();
  cardio_items_data["Discolored"]["Left"] ["Upper"] = checkUL5->Name.c_str();
  // Lower Left Items
  cardio_items_data["Strong"]    ["Left"] ["Lower"] = checkLL1->Name.c_str();
  cardio_items_data["Faint"]     ["Left"] ["Lower"] = checkLL2->Name.c_str();
  cardio_items_data["Absent"]    ["Left"] ["Lower"] = checkLL3->Name.c_str();
  cardio_items_data["Cold"]      ["Left"] ["Lower"] = checkLL4->Name.c_str();
  cardio_items_data["Discolored"]["Left"] ["Lower"] = checkLL5->Name.c_str();
}
//----------------------------------------------------------------------------------------------------------------------
// CheckBoxForItems - returns a TCheckBox * for a set of three lookup table descriptive item strings
// (ex: "Strong", "Right", "Upper") - returns NULL if no such item.
TCheckBox *TframeAssessmentCardio::CheckBoxForItems(string ext_pulse_type, string body_side_type, string extremity_type)
{
  if(ext_pulse_type == "" || body_side_type == "" || extremity_type == "")
    return NULL;

  string control_name = cardio_items_data[ext_pulse_type][body_side_type][extremity_type];
  if(control_name == "")
    return NULL;

  TControl *myCheckBox = groupExtPulse->FindChildControl(control_name.c_str());
  if(myCheckBox && myCheckBox->InheritsFrom(__classid(TCheckBox)))
    return dynamic_cast<TCheckBox *>(myCheckBox);

  return NULL;
}
//----------------------------------------------------------------------------------------------------------------------
// CheckBoxForIDs - returns a TCheckBox * given three lookup IDs by translating them into the corresponding values in
// the lookup tables and then calling the routine above. Returns NULL if no such item.
TCheckBox *TframeAssessmentCardio::CheckBoxForIDs(string ext_pulse_id, string body_side_id, string extremity_id)
{
  string ext_pulse_descr = lookupTables->ValueOf("ext_pulse_types", ext_pulse_id);
  string body_side_descr = lookupTables->ValueOf("body_side_types", body_side_id);
  string extremity_descr = lookupTables->ValueOf("extremity_types", extremity_id);

  return CheckBoxForItems(ext_pulse_descr, body_side_descr, extremity_descr);
}
//----------------------------------------------------------------------------------------------------------------------
// GetExtremityPulses - Returns a vector of cardio_save_data structures for every checkbox that is checked inside the
// Extremity Pulses group box. Unchecked boxes are simply not present in the return vector.
vector<TframeAssessmentCardio::cardio_save_data> TframeAssessmentCardio::GetExtremityPulses()
{
  vector<cardio_save_data> to_return;

  for(cardio_items_map_t::iterator i_extpulse = cardio_items_data.begin();
      i_extpulse != cardio_items_data.end();
      ++i_extpulse)
  {
    for(map<string, map<string, string> >::iterator i_side = i_extpulse->begin(); i_side != i_extpulse->end(); ++i_side)
    {
      for(map<string, string>::iterator i_extrem = i_side->begin(); i_extrem != i_side->end(); ++i_extrem)
      {
        TCheckBox *myCheckBox = CheckBoxForItems(i_extpulse->first, i_side->first, i_extrem->first);

        if(myCheckBox && myCheckBox->Checked)
        {
          cardio_save_data new_data;

          new_data.ext_pulse_id = lookupTables->IdOf("ext_pulse_types", i_extpulse->first);
          new_data.body_side_id = lookupTables->IdOf("body_side_types", i_side->first);
          new_data.extremity_id = lookupTables->IdOf("extremity_types", i_extrem->first);

          to_return.push_back(new_data);
        }
      }
    }
  }

  return to_return;
}
//----------------------------------------------------------------------------------------------------------------------