Активный
- Тема Автор
- #1
Контекст
распределяет пациентов по тяжести и госпиталям держит ночные смены в курсе каждой секунды поддерживает дежурные части полиции.
Функциональность
Внедрение
Код
Тест-кейсы
Эксплуатация
распределяет пациентов по тяжести и госпиталям держит ночные смены в курсе каждой секунды поддерживает дежурные части полиции.
Функциональность
- отслеживает степень тяжести для узла медицинского триажа ночного контура и наносит данные на ночную сетку Watcher
- управляет браслеты Matrix через панель Lifeline без задержек
- прогнозирует ошибки маршрутизации и заранее предупреждает медицинских координаторов
Внедрение
- прописать справочник госпиталей и ночные ключи доступа перед вводом
- сверить очередь скорой с марки Chronos
- назначить ответственных за коечный фонд и ночной резерв каналов
- загрузить сценарии памятку эвакуации и ночные регламенты
Код
Код:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#define MODULE_TAG "PD_TRIAGE_MATRIX_NIGHT"
#define TRIAGE_CAP 60
enum e_triage
{
bool:active,
severity,
hospital[24],
bed
};
new PD_Triage[TRIAGE_CAP][e_triage];
stock PD_FindPatient(playerid)
{
for(new i = 0; i < TRIAGE_CAP; i++)
{
if(PD_Triage[i][active] && PD_Triage[i][bed] == playerid) return i;
}
return -1;
}
CMD:triagematrixstatpd(playerid, const params[])
{
new slot = PD_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, PD_Triage[slot][severity], PD_Triage[slot][hospital], slot);
SendClientMessage(playerid, 0xFFB6C1FF, msg);
return 1;
}
CMD:triagematrixctlpd(playerid, const params[])
{
new action[8], slot, severity, target;
new hosp[24];
if(sscanf(params, "s[8]", action)) return SendClientMessage(playerid, -1, "Используй: /triagematrixctlpd assign/release");
if(!strcmp(action, "assign", true))
{
if(sscanf(params, "s[8]iiis[24]", action, slot, severity, target, hosp)) return SendClientMessage(playerid, -1, "/triagematrixctlpd assign [слот] [1-4] [пациент] [госпиталь]");
PD_Triage[slot][active] = true;
PD_Triage[slot][severity] = severity;
PD_Triage[slot][bed] = target;
format(PD_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, "/triagematrixctlpd release [слот]");
PD_Triage[slot][active] = false;
}
return 1;
}
Тест-кейсы
- провести испытание: назначить пациента с максимальной тяжестью — ожидать корректного сигнала
- смоделировать отказ: снять пациента и проверить очистку — убедиться что резерв подхватил
- сравнить отчёт с медицинский реестр и подтвердить отсутствие расхождений
Эксплуатация
- каждый час пересматривать тяжелые случаи
- синхронизировать список госпиталей
- проводить ночные аудиты вместе с медицинских координаторов
- держать план реагирования на ошибки маршрутизации актуальным
- отчёты автоматически попадают в полиция