#pragma once #include "ElectrodesInfo.h" #include namespace Incart::DeviceComplexCommands { class ElectrodesInfoCreator { private: const std::unordered_map (*)()> electrodesCreateFunctions { {1, [](){ return std::make_shared(1, false, true, true, "Станд.12отв.", std::vector{"LR", "FR", "C1R", "C2L", "C3F", "C4R", "C5L", "C6F"}); }}, // "Stand8" в КТРегистратор-07 {3, [](){ return std::make_shared(3, false, false, false, "V4, Y, V6", std::vector{"V4", "Y", "V6"}); }}, // "Elec37_0" в КТРегистратор-07 {4, [](){ return std::make_shared(4, false, false, false, "V5, Y, V1", std::vector{"V5M", "Y", "V1M"}); }}, // "Elec37_1" в КТРегистратор-07 {5, [](){ return std::make_shared(5, false, false, false, "V4, Y, V6", std::vector{"V4", "Y", "V6"}); }}, // "Elec35_0" в КТРегистратор-07 {15, [](){ return std::make_shared(15, false, false, false, "V5M", std::vector{"V5M"}); }}, // "Elec1_0" в КТРегистратор-07 {16, [](){ return std::make_shared(16, false, false, false, "X, Y, Z", std::vector{"X", "Y", "Z"}); }}, // "Elec37_2" в КТРегистратор-07 {17, [](){ return std::make_shared(17, false, false, false, "Нет эл.", std::vector{}); }}, // "ElecNone" в КТРегистратор-07 {18, [](){ return std::make_shared(18, false, false, false, "V5M(2)", std::vector{"V5M"}); }}, // "Elec1_1" в КТРегистратор-07 // свои системы отведений {19, [](){ return std::make_shared(19, true, false, false, "Своя 1 эл", std::vector{"1"}); }}, // "Elec1_2" в КТРегистратор-07 {20, [](){ return std::make_shared(20, true, false, false, "Своя 3x5 эл", std::vector{"1", "2", "3"}); }}, // "Elec35_1" в КТРегистратор-07 {21, [](){ return std::make_shared(21, true, false, false, "Своя 3x7 эл", std::vector{"1", "2", "3"}); }}, // "Elec37_3" в КТРегистратор-07 {22, [](){ return std::make_shared(22, false, false, true, "3+", std::vector{"LR", "FR", "C1R", "C2L", "C4L", "C6F"}); }}, // "Elec3Plus" в КТРегистратор-07 {23, [](){ return std::make_shared(23, false, false, true, "12-", std::vector{"LR", "FR", "C1R", "C2L", "C4L", "C6F"}); }}, // "Elec12Minus" в КТРегистратор-07 {24, [](){ return std::make_shared(24, false, false, true, "V4, Y, V6", std::vector{"LR", "FR", "C1R", "C2L", "C4L", "C6F"}); }}, // "Elec3Mono" в КТРегистратор-07 {25, [](){ return std::make_shared(25, false, false, true, "Станд.12отв.(моно)", std::vector{"LF", "FR", "C1L", "C2F", "C3R", "C4L", "C5R", "C6R"}); }}, // "Elec8Mono" в КТРегистратор-07 {33, [](){ return std::make_shared(33, false, false, false, "V4M, III, V6M Mono", std::vector{"V4M", "III", "V6M"}); }}, // "Elec37Mono_0" в КТРегистратор-07 {34, [](){ return std::make_shared(34, false, false, false, "V5, Y, V1 Mono", std::vector{"V5M", "Y", "V1M"}); }}, // "Elec37Mono_1" в КТРегистратор-07 // системы кардиографа {30, [](){ return std::make_shared(30, false, true, true, "Станд.12отв.", std::vector{"L", "F", "CR1", "CR2", "CR3", "CR4", "CR5", "CR6"}); }}, // "Stand8Ecg" в КТРегистратор-07 {31, [](){ return std::make_shared(31, false, false, true, "Ортог.", std::vector{"L", "F", "CR1", "CR2", "CR3", "CR4"}); }}, // "OrtEcg" в КТРегистратор-07 {32, [](){ return std::make_shared(32, false, false, true, "Неб", std::vector{"L", "F"}); }}, // "NehbEcg" в КТРегистратор-07 // смещенные системы указывать отдельным параметром в Infomap {100, [](){ return std::make_shared(100, true, false, false, "Manual 16 отв", std::vector{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"}); }}, // "Manual16" в КТРегистратор-07 {101, [](){ return std::make_shared(101, true, false, false, "Manual 24 отв", std::vector{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"}); }} // "Manual24" в КТРегистратор-07 }; public: static std::shared_ptr create(uint8_t leadType_) { ElectrodesInfoCreator creator; auto it = creator.electrodesCreateFunctions.find(leadType_); return (it == creator.electrodesCreateFunctions.end()) ? nullptr : it->second(); } }; } // namespace Incart::DeviceComplexCommands