Активный
- Тема Автор
- #1
Контекст
распределяет пациентов по тяжести и госпиталям держит ночные смены в курсе каждой секунды координирует спасательные штабы.
Функциональность
Внедрение
Код
Тест-кейсы
Эксплуатация
распределяет пациентов по тяжести и госпиталям держит ночные смены в курсе каждой секунды координирует спасательные штабы.
Функциональность
- отслеживает степень тяжести для узла медицинского триажа ночного контура и наносит данные на ночную сетку Watcher
- управляет браслеты Matrix через панель Lifeline без задержек
- прогнозирует ошибки маршрутизации и заранее предупреждает медицинских координаторов
Внедрение
- прописать справочник госпиталей и ночные ключи доступа перед вводом
- сверить очередь скорой с марки Chronos
- назначить ответственных за коечный фонд и ночной резерв каналов
- загрузить сценарии памятку эвакуации и ночные регламенты
Код
Код:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#define MODULE_TAG "MCS_TRIAGE_MATRIX_NIGHT"
#define TRIAGE_CAP 60
enum e_triage
{
bool:active,
severity,
hospital[24],
bed
};
new MCS_Triage[TRIAGE_CAP][e_triage];
stock MCS_FindPatient(playerid)
{
for(new i = 0; i < TRIAGE_CAP; i++)
{
if(MCS_Triage[i][active] && MCS_Triage[i][bed] == playerid) return i;
}
return -1;
}
CMD:triagematrixstatres(playerid, const params[])
{
new slot = MCS_FindPatient(playerid);
if(slot == -1) return SendClientMessage(playerid, 0x8B0000FF, "[%s] Тебя еще не распределили.", MODULE_TAG);
new msg[144];
format(msg, sizeof msg, "[%s] Тяжесть %d | Госпиталь: %s | Рег номер: %d", MODULE_TAG, MCS_Triage[slot][severity], MCS_Triage[slot][hospital], slot);
SendClientMessage(playerid, 0xFFB6C1FF, msg);
return 1;
}
CMD:triagematrixctlres(playerid, const params[])
{
new action[8], slot, severity, target;
new hosp[24];
if(sscanf(params, "s[8]", action)) return SendClientMessage(playerid, -1, "Используй: /triagematrixctlres assign/release");
if(!strcmp(action, "assign", true))
{
if(sscanf(params, "s[8]iiis[24]", action, slot, severity, target, hosp)) return SendClientMessage(playerid, -1, "/triagematrixctlres assign [слот] [1-4] [пациент] [госпиталь]");
MCS_Triage[slot][active] = true;
MCS_Triage[slot][severity] = severity;
MCS_Triage[slot][bed] = target;
format(MCS_Triage[slot][hospital], 24, "%s", hosp);
SendClientMessage(target, 0xFF69B4FF, "[%s] Вам назначен %s. Приоритет %d.", MODULE_TAG, hosp, severity);
}
else if(!strcmp(action, "release", true))
{
if(sscanf(params, "s[8]i", action, slot)) return SendClientMessage(playerid, -1, "/triagematrixctlres release [слот]");
MCS_Triage[slot][active] = false;
}
return 1;
}
Тест-кейсы
- провести испытание: назначить пациента с максимальной тяжестью — ожидать корректного сигнала
- смоделировать отказ: снять пациента и проверить очистку — убедиться что резерв подхватил
- сравнить отчёт с медицинский реестр и подтвердить отсутствие расхождений
Эксплуатация
- каждый час пересматривать тяжелые случаи
- синхронизировать список госпиталей
- проводить ночные аудиты вместе с медицинских координаторов
- держать план реагирования на ошибки маршрутизации актуальным
- отчёты автоматически попадают в штаб МЧС