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;
}
//----------------------------------------------------------------------------------------------------------------------