release 1.2

This commit is contained in:
2026-03-12 21:38:46 +03:00
parent e269425fe0
commit 0a59a5706b
5 changed files with 37 additions and 14 deletions
Vendored
BIN
View File
Binary file not shown.
-3
View File
@@ -1,3 +0,0 @@
# medods_m3health_extension
Расширение для МИС Медодс в рамках интеграции с N3.Health
+26 -9
View File
@@ -1,5 +1,7 @@
// content.js
if (isDocumentsPage()) {
console.log('[EXT][content] loaded');
}
const dataType = 'metaData';
const userDataType = 'userData';
@@ -38,17 +40,24 @@ window.addEventListener('message', (event) => {
});
async function loadPageData() {
async function loadStorageData() {
storageData = await chrome.storage.local.get(dataType);
const userData = await chrome.storage.local.get(userDataType);
storageData.userData = userData[userDataType];
if (!storageData || !storageData.metaData || Object.keys(storageData.metaData).length === 0) {
console.log(`[EXT][content] no data for ${dataType}, injecting...`);
injectScript(`${dataType}.js`);
} else {
console.log(`[EXT][content] metadata already exists in storage`);
}
async function updateStorageData() {
if (!storageData.metaData || !storageData.userData) {
await loadStorageData();
}
}
async function loadPageData() {
console.log(`[EXT][content] renew data for ${dataType}, injecting...`);
injectScript(`${dataType}.js`);
await loadStorageData();
}
function isDocumentsPage() {
@@ -89,6 +98,8 @@ window.addEventListener('message', async (event) => {
return;
}
await updateStorageData();
// Получаем данные из storage
if (!storageData.metaData) {
window.postMessage({
@@ -171,6 +182,8 @@ window.addEventListener('message', async (event) => {
}
}, '*');
await updateStorageData();
// Фильтруем документы по номерам
const filteredDocs = storageData.metaData.docs.filter(doc =>
event.data.payload.docNumbers.includes(parseInt(doc.number, 10))
@@ -223,10 +236,10 @@ window.addEventListener('message', async (event) => {
}, 0);
}
// В content.js, в основном обработчике window.addEventListener добавьте:
// ОБРАБОТЧИК ПОДГОТОВКИ ДОКУМЕНТОВ (используем существующие метаданные)
if (event.data.type === 'prepareDocuments') {
await updateStorageData();
// Проверяем наличие метаданных
if (!storageData.metaData) {
window.postMessage({
@@ -287,6 +300,8 @@ window.addEventListener('message', async (event) => {
// ОБРАБОТЧИК ПРОВЕРКИ ПРАВ НА ОТЗЫВ
if (event.data.type === 'checkRevokePermission') {
await updateStorageData();
const hasPermission = String(storageData.userData?.id) === String(event.data.payload.userIdLpu);
window.postMessage({
@@ -328,6 +343,8 @@ window.addEventListener('message', async (event) => {
// ОБРАБОТЧИК ПОИСКА ПОЛУЧАТЕЛЕЙ ПО ТЕЛЕФОНУ
if (event.data.type === 'searchRecipients') {
await updateStorageData();
const data = {
...event.data.payload,
idPatientMis: storageData.metaData.patient.idPatientMis
+10 -1
View File
@@ -708,10 +708,19 @@
const tableRows = data.map((singing, index) => {
// Определяем последний статус
const commonStatuses = singing.statuses.filter(s => s.idPatientMis === null);
const lastStatus = commonStatuses.reduce((max, status) =>
let lastStatus = commonStatuses.reduce((max, status) =>
status.id > max.id ? status : max
, commonStatuses[0] || singing.statuses[0]);
if (!lastStatus) {
lastStatus = {
category: 'processing',
description: 'Неизвестный статус',
created_at: singing.created_at
}
}
const statusClass = getStatusClass(lastStatus.category);
const statusIcon = getStatusIcon(lastStatus.category);
const statusColor = lastStatus.category === 'completed' ? '#67C23A' :
+1 -1
View File
@@ -700,7 +700,7 @@
addBtn.style.cssText = 'height: 24px; padding: 0 8px;';
// Проверяем, не добавлен ли уже этот получатель
const alreadyAdded = recipients.some(r => r.id === person.id);
const alreadyAdded = recipients.some(r => r.idPatientMis === person.idPatientMis);
if (alreadyAdded) {
addBtn.disabled = true;
addBtn.classList.add('is-disabled');