release 1.2
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
# medods_m3health_extension
|
||||
|
||||
Расширение для МИС Медодс в рамках интеграции с N3.Health
|
||||
+26
-9
@@ -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
@@ -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
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user