Перейти к содержимому
KAMOUniverse

Журнал изменений

Что нового.

Каждое усовершенствование платформы, как только она появится.

  1. · kamo-shared-library

    Обзоры списка диаграмм, аллергическая реакция/тяжесть, причины состояния, диагностика заказа, примечание обзора результата

    - ClinicalListReview (fhir_chart_list_review): реальная пересмотренная запись для аллергии и списки лекарств, так что 'reviewed' останавливается, означая 'по крайней мере одна строка существует' - AllergyIntolerance: reaction_text, reaction_severity, status_reason; findActiveForChecking теперь исключает утверждения NKDA (и опровергнутые строки); findActiveNoKnownAllergy / findActiveRecord - Condition.status_reason, Observation.status_reason, ServiceRequest.reason_codes, DiagnosticReport.review_note - EncounterDiagnosisRepository; **************** (схема жизненно важных функций)

  2. · kamo-shared-library

    Расписание субъектов для часов практики, комнат, платежей на столе и обратной связи

    - PracticeSettings (ehr_practice_settings): часовой пояс практики и продолжительность посещения по умолчанию - PracticeRoom (ehr_practice_room): комнаты, в которые помещается пациент; не используется, никогда не удаляется - PatientPayment (ehr_patient_payment): зарегистрированные (никогда не обрабатываемые), аннулированные платежи с указанием причины - RecallOutreach (ehr_recall_outreach): зарегистрированные попытки контакта против отзыва - Встреча: room_id, перенесено_с_id / перенесено_на_id, выехал_по_member_id - ScheduleBlock: метка для заблокированного времени (обед, встреча, отпуск) - PatientRecallRepository: countDue / countOverdue; WaitlistEntryRepository: findCandidatesAnyType (нулевой UUID в ':x IS NULL' достигает Postgres нетипизированным) - PhiResourceType: PATIENT_RECALL, PATIENT_PAYMENT добавлены

  3. · kamo-shared-library

    Регистрационная запись на стойке регистрации — контактные данные, контакты для экстренных случаев, счетчик MRN, поля записи покрытия

    Пациент получает предпочтительный способ связи, сотрудника первичной медико-санитарной помощи и предпочтительную аптеку; экстренные контакты - FHIR Patient.contact (fhir_patient_contact, выведен из обращения, не удален); телекоммуникации и адреса используют существующие таблицы fhir_contact_point / fhir_address (новые PatientCommunicationRepository для предпочтительного языка строка ehr_mrn_counter выделяет MRN в одном атомарном upsert. Поиск пациента получает given-name, birth-date-only, prefix-with-birth-date и by-id запросы. PriorAuthorization получает описание сервиса и EligibilityCheck примечание проверяющего. DDL применялся в производственной среде до этого push.

  4. · kamo-shared-library

    Картографические документы, шаблоны практических записок, тексты для чтения записок и отчеты о снятии с учета

    - PatientDocument (ehr_patient_document): категория, название, дата документа, содержание тип, размер, SHA-256, идентификатор изображения Img + ключ хранения, загрузчик, введено-в-ошибку никогда не удаляются. - ClinicalNoteTemplate (ehr_note_template): собственные шаблоны заметок практики. - ClinicalNote: колонки entered_in_error_at/_by/_cause; тело переходного тока, вид версии, флаг SI, имена автора/соавтора/пациента для чтений. - ClinicalNoteVersion: имя автора транзита. ПДД применяется к ручному производству (прибавочное производство).

  5. · SecurityService

    Реальные отказы, решения о пересмотре с целью разбивания стекла, честное направление претензий, отпечатанные вручную ЭОБ

    - EhrRuleViolationException: отказ бизнес-правила (неподписанное примечание при закрытии, двойная резервация, не автор/соподписавший, самоподпись, уже подписан, ограничен от страховщика, разбивает стекло без причины, слишком много экспорта, подавленное соответствие) теперь отвечает 409/422 со своим простым предложением вместо непрозрачного 'Нет такой записи'. Отрицания отношений остаются 404. - EhrExceptionHandler работает с самым высоким приоритетом над глобальной торговлей Консультации, охватывающие качество, администрирование портала, КДК, массовый экспорт и ДЗВР (а отсутствует прямо там был 500). - Рассмотрение с помощью стеклоразбивателей: очередь с именами и информацией об истории, а также решение (соответствующее/несоответствующее/требует последующих действий, обязательная запись, никогда не ваша собственная). - Справочник партнеров по обмену для врачей (VIEW_CHART, только имена). - Претензии: КПП/ВКПП, модификатор, МКБ-10, указатель, НПИ и место службы проверки формата; плательщика и члена id из выбранного покрытия; визит должен быть закрытие счета; процедуры, по которым взимается плата, выводятся из очереди неоплаченных процедур; проект требования Транспортный швы: без расчетного центра, представить отмечает ГОТОВ и говорит так; отмечает отправленные записи канала, кто и примечание. - денежные переводы могут вводиться с помощью бумажного электронного платежного квитанционного бланка, и в настоящее время перевод денежных средств осуществляется путем их опубликования с " не применяется " на " применяется "

  6. · kamo-shared-library

    Запись того, как было отправлено требование, и перечень проверенных случаев экстренного доступа

    Утверждение получает ready_at, submission_channel, submitted_by_member_id и submission_note, т.е. требование направляется вручную через портал плательщика или на бумаге регистрируется честно, а не статус флип, который притворяется расчетный центр Хранилище грантов для разбивания стекла получает статус с проверенной историей finder показывает список новых просмотров под его очередью.

  7. · kamo-internal

    В счете-фактуре указывается блок перевода дебиторской задолженности, как и в котировках

    Диалог счета-фактуры отображает тот же QuoteRemittanceBlock, который используется в предварительном просмотре котировки, из деталей Дебиторской задолженности продавца, пока что-то причитается переключатель теперь говорит, что он охватывает котировки и счета-фактуры.

  8. · kamo-signer-monorepo

    Блок перевода счета-фактуры читается точно так же, как в котировке

    Такой же заголовок, этикетки и уведомление ACH Credit Only (signer.quote.remit), с номер счета-фактуры, хранящийся под ним.

  9. · SecurityService

    Счета-фактуры печатают данные ACH по дебиторской задолженности точно так же, как цены

    В PDF и электронном письме теперь содержится блок перевода котировки, слово в слово: - Перевести платеж на - получатель (юридическое наименование) - банк - маршрутный номер (ABA) - номер счета - уведомление ACH Credit Only За ними следуют номер счета-фактуры и собственный номер рынка инструкции. GET **************** дает консоли Как и на котировках, оно появляется, когда в Дебиторской задолженности переключена информация ACH и оба номера сохранены.

  10. · kamo-internal

    Изменение рабочих мест и лицензий с даты, с пропорциональной платой предварительного просмотра

    Изменить рабочие места и лицензии открывает диалоговое окно для установки: - места и лицензии каждого дополнения (лицензии на пользователя следуют местам до перепечатано); - дата вступления в силу (сегодня или позднее); - входит ли пропорциональная плата в свой собственный счет-фактуру сейчас (даже до дата) или при следующем возобновлении; - в случае сокращений - кредит за неиспользованную часть. Предварительный просмотр сервера показывает период, оставшиеся дни, каждую пропорциональную строку, любой сбор за установку, сумма, как он будет выставлен на счет, и периодический сбор до Запланированные изменения перечислены в подписке и могут быть изменены в любое время отменено. Заменяет старый диалог непосредственного места.

  11. · SecurityService

    Конечные точки для датированных, пропорциональных изменений рабочего места и лицензии; задание применяет их

    Новые конечные показатели: - ПОЧТА **************** - POST /subscriptions/{uid}/changes - GET /подписки/{uid}/изменения - ПОЧТА **************** Задание почасовой оплаты применяет изменения, дата которых наступила до поднятия счетов-фактур, так что при продлении счета будут выставляться по новым счетам.

  12. · kamo-shared-library

    Изменение количества рабочих мест и дополнительных лицензий в середине периода, на выбранную дату, пропорционально

    SubscriptionChangeService регистрирует изменение в рабочих местах подписки и лицензии, действующие на любую дату, начиная с сегодняшнего дня. Он предварительно пропорциональная плата: стоимость каждой добавленной единицы за период х оставшихся дней / дней в период, в который она приходится, например, Harmony +6 мест с 1 ноября = 6 x $124 x 17/31 = $408.00. Счет-фактура выставляется, когда оператор выбирает: свой собственный проект счета-фактуры сейчас (даже до даты вступления в силу) или на следующем счете-фактуре за продление. На дату вступления в силу задание по выставлению счетов применяет изменение: - абонентские места, лицензии и MRR; - доступ клиента (количество мест, ряды мест, дополнительные лицензии, кэш); - каждое последующее возобновление проекта, перестройка или корректировка линии, если сотрудники имели я отредактировал его. Крайние случаи: - изменение точно в день выставления счета осуществляется этим продлением, а не пропорционально в два раза; - скидка не взимается ничего и может зачесть неиспользованную часть при следующем продлении; - запланированное изменение может быть отменено, что приведет к аннулированию его проекта счета-фактуры; - сборы за установку дополнительных мест читайте в соглашении КЛИЕНТА. Старый путь смены мест теперь проходит через эту службу. Новая таблица commerce_subscription_changes; новый столбец ****************

  13. · kamo-internal

    Повсеместно понятные статусы; согласованные дополнительные цены и ежемесячная скидка в мастере заказа

    StatusChip (89 сайтов вызова) показывал необработанные коды, такие как PENDING_APPROVAL; теперь он показывает слова словаря (common.statusCodes) или код, прочитанный вслух для одного фильтр списка заказов и CSV используют одни и те же метки. Персонал может ввести согласованную цену за лицензию для каждого выбранного дополнения и ежемесячная скидка; оба отправляются как addonUnitPrices / recurringDiscount и выставляется счет на каждом счете.

  14. · kamo-signer-monorepo

    Оплата картой на странице счета-фактуры

    Когда сервер предлагает это (платформа продает счета-фактуры с остатком), счет-фактура страница показывает Pay by card. Он отправляет в /<locale>/i/<token>/pay, который отправляет клиента на платежную страницу Stripe (там происходит банковское подтверждение) и обратно. Возвращающийся клиент видит подтверждение оплаты.

  15. · SecurityService

    Клиенты оплачивают счета-фактуры картой в Интернете; клиент получает от банка запрос SCA

    На счета-фактуры, проданные платформой org (единственный продавец, чья учетная запись Stripe это): - публичный счет предлагает Оплатить картой: POST **************** открывает страницу на сервере Stripe, которая возвращает ссылку на тот же счет-фактуру (созданную со стороны сервера, никогда из запроса); - оплата производится по возвращении клиента и по почасовой ставке, Только один раз. Когда автоматическое взимание требует от клиента подтвердить его в своем банке, они направляются по электронной почте счет с этим запросом, и владельцы предупреждаются, как и прежде.

  16. · BillingService

    Оплата счета за подписку картой на странице, размещенной на Stripe

    Внутренний POST **************** создает режим платежа Сохраняет карту для последующих автоматических платежей. Сохраняет карту для последующих автоматических платежей сборы, если у клиента есть счет, и подтверждение SCA банка GET /checkout/{id} сообщает, была ли оплата произведена и каким способом Карта. Заказчик игнорирует эти сессии.

  17. · kamo-shared-library

    Отслеживание платежа по счету-фактуре онлайн

    Новая нулевая колонка **************** плюс помощники, чтобы перечислить и урегулировать ожидающие сессии idempotently (платеж несущий одна и та же ссылка на процессор никогда не записывается дважды).

  18. · kamo-shared-library

    Договоренные дополнительные цены и скидка на предложение переносятся в подписку

    Преобразование цитаты теперь включает: - согласованная цена каждого дополнения за лицензию (если она отличается от цены в каталоге) - скидка по котировке или принятому опциону, как периодическая ежемесячная сумма (а период скидки опциона распределяется на его месяцы) Заказы записывают оба в custom_pricing, так что черновой переценщик сохраняет их. Активация устанавливает согласованную цену на дополнительные лицензии и скидку на подписку (новая нулевая колонка ****************, так что каждый счет-фактура персональные приказы могут указывать как непосредственно, так и через (addonUnitPrices, recurringDiscount).

  19. · kamo-internal

    Автоматическое продление и заметки работают на живых подписках; карта в файле и зарядка карты сейчас

    - Переключатель автоматического продления устанавливает собственное продление подписки (он размещает поле обновление только чернового заказа игнорируется) и сообщает, когда заканчивается невозобновляющийся заказ. - Сохранение заметок по заказу в любом состоянии. - Подписка с оплатой картой показывает карту в файле. - Его открытые счета-фактуры предлагают Зарядить карту сейчас и показать, почему последняя попытка карты не удалось.

  20. · kamo-internal

    Отображение имеющихся и используемых лицензий для назначенных почтовых ящиков и внутренних номеров

    Правило владельца 2026-10-22: по-пользователю дополнения счета приобретенных лицензий, и лицензии являются единственным ограничением на то, что может быть использовано ("Используются 4 из 10 лицензий", анимированная полоса в цвете бренда организации, угол лента, предупреждение чип и заметить, когда уже закончился, ссылка на планы и оплаты) читает GET /api/billing/licenses/usage и появляется на: - Настройки > Управление почтовыми ящиками (KamoMail или лицензии сторонних производителей) - член телефон-настройки расширения выбора (KamoPBX или сторонней стороны) - Планы и расчеты дополнительных строк Отказы (409, простое предложение сервера) теперь достигают человека: назначение почтового ящика, предоставление общего почтового ящика, назначение личной папки входящих/сохранение IMAP/OAuth connect и callback все показывают его в панели этого почтового ящика (несколько используется для отказа); каждое такое действие обновляет метров. Новые строки: settings.billing.licenses (kamo-translation-dictionary).

  21. · kamo-internal

    Начало подписки на предложения; принятие в автономном режиме; заказы арендаторов; расчеты на простом языке

    - Цитаты: "Добавить из каталога подписки" заполняет строку из живых планов / дополнений (имя, ежемесячный цена, "за пользователя / месяц" / "за 10 ГБ блок / месяц") и сохраняет ссылку на каталог; принятые предложения по подписке конвертировать через диалог (способ оплаты; целевая организация "Запись принятия" для бумаги/электронной почты/заказа на поставку принятия; предварительные просмотры ЧЕРНЕВА имеют водяной знак и каждая печать регистрируется; условия заполнения {orgName} с кратким названием продавца. - мастер заказа: целевая организация только для платформы org; только персонал согласован за-места цена и установка-плата переопределить. - Список подписок: следующая дата выставления счета, остаток, просроченный значок; один общий способ оплаты помощник метки для всех шести методов. - Страница подписки: события в простых предложениях (активный → просроченный), номер заказа вместо id записи. - Контактные продажи: имя, электронная почта и телефон считывается из платформы org через узкую конечную точку.

  22. · SecurityService

    Отказать отделу или контактному почтовому ящику в получении лицензий на электронную почту

    Правило владельца 2026-10-22: на пользователя расходы на приобретенные лицензии; сколько почтовые ящики могут быть в использовании ограничивается только ими. В соответствии с 3-й стороны провайдера отдела, к которому можно обратиться по почтовому ящику, или контактная информация организации указывая на один, сопоставляет его с Kamo (OrgMailboxBillingAggregator), так что эти два сохранения могут привести почтовый ящик в действие так же точно, как назначение его члену. - MailboxLicenseCapGuard запрашивает внутреннюю проверку лицензии BillingService (X-Internal-Auth) перед POST/PUT /api/security/departments и PUT /org/{id} изменить почтовый ящик; отказ - это 409 с предложением в ошибка/сообщение и причина LICENSE_LIMIT. Сохранение или очистка почтового ящика никогда не отмечается; отключение BillingService завершается ошибкой OPEN с предупреждением. - Дверь релейного счета также проходит GET / лицензии / использование (те же права, что и другое использование гласит).

  23. · SecurityService

    Запись принятия в автономном режиме, журнал печати, преобразование котировок в подписки

    - POST **************** (SEND_QUOTES или MANAGE_QUOTES) - POST **************** (VIEW_QUOTES или MANAGE_QUOTES) - POST .../{uid}/convert принимает факультативную форму (целевая организация, метод платежа); при преобразовании в COMP также требуется CREATE_SUBSCRIPTION_ORDERS - POSController отказывает negotiatedUnitPrice / setupFeeOverride от вызывающих только OWN - ПОЛУЧИТЬ **************** опубликованное имя организации платформы, контактную электронную почту и телефон, для диалога Контакт продаж, вместо жестко закодированных констант

  24. · kamo-shared-library

    Цены конвертируются в подписки; заказы арендатора никогда не компенсируют продавца

    - котировка на рынке SUBSCRIPTION, или чьи принятые строки были заполнены из подписки каталог, преобразуется в SubscriptionOrder (план, места из количества котировки, дополнения с их лицензии, принятая за-местная ставка как согласованная цена, сбор установки клиент видел, принятое обязательство опциона, как цикл, способ оплаты, выбранный при конверсии). Заказ содержит quote_uid; второе преобразование отклоняется; в журнале регистрируется событие CONVERTED. Розничная конверсия остается без изменений. - QuoteService.acceptOffline: персонал регистрирует принятие, данное на бумаге/электронной почте/PO — черновой, отправленный, просмотренные или просроченные котировки; итоги через applyOptionHeadlineTotals; имена событий, кто и почему. - recordPrinted заносит в журнал событие PRINTED (так указывается в черновиках печати). - По-месту строки хранят количество мест котировки при каждом сохранении и ревизии; вид строки отправляет количество, по которому ценообразуется строка. - Цитата строки несут catalog_ref_code / catalog_ref_uid. - Поддержка условий {orgName}, заполненных кратким названием продавца на странице клиента. - provisionOnApproval и activateCompOrder требуют целевую организацию — заказ без используется для обеспечения собственной подписки ПОСТАВЩИКА. - **************** / setupFeeOverride, применяется после calculatePrice и запоминается в custom_pricing, так что проект переоценки сохраняет сделку. - в ДТО заказов и подписок указывается следующая дата выставления счета, непогашенный остаток и просроченный флаг, чтение в двух запросах на список.

  25. · EmailService

    Отклонение почтового ящика сверх лицензий организации на электронную почту

    Правило владельца 2026-10-22: на пользователя расширения счета приобретенных лицензий; сколько Возможность использования почтовых ящиков ограничивается только ими. Перед тем, как почтовый ящик использование, BillingService's **************** запрашивается (X-Internal-Auth); отказ представляет собой 409, содержащий предложение на простом языке (StatusReasonAdvice), например, "Все 10 ваших сторонних лицензий на электронную почту используются. Добавить лицензии в разделе Расчеты для подключения другого почтового ящика." Принудительные, прежде чем что-либо будет написано: - создание почтового ящика (KamoMail подсчитывает его сразу; 3rd-party только после сопоставления) - назначение почтового ящика члену - создание общего почтового ящика, предоставление доступа к нему, переключение его обратно - подключение личной почты (сохранение IMAP, согласие OAuth и обратный вызов) и назначение уже подключенного - Обеспечивание почтового ящика AI члена (NOT_READY / LICENSE_LIMIT) адрес, который уже пересчитан, никогда не отклоняется, ничто существующее не отменяется, и отключение BillingService не сработает OPEN с предупреждением. mailbox-assign, конечные точки shared-access и personal-mailbox теперь проходят статус отказа и приговор через вместо 500.

  26. · VOIPService

    Отказ в добавлении телефона за пределы лицензий организации

    Правило владельца 2026-10-22: на пользователя расходы на приобретенные лицензии; сколько расширения могут быть в использовании, ограничивается только ими. Перед тем, как расширение введен в эксплуатацию, BillingService's **************** запрошен (X-Internal-Auth); отказ - это 409, содержащий его на простом языке предложение (LicenseCapAdvice), например, "Все 10 ваших лицензий сторонних телефонов Добавить лицензии в разделе «Расчеты» для назначения другого расширения." Принудительные, прежде чем что-либо будет написано: - PUT /api/voip/member/{id}/config (настройки телефона члена), именуя расширение, которое член имеет сейчас, так что ход на 3-й стороне системы является свободным - POST **************** (новый номер; KamoPBX подсчитано каждый активный, 3-я сторона только назначенный один) - PUT ****************, когда результат является АКТИВНЫМ - AI предоставление голосовой линии (NOT_READY / LICENSE_LIMIT) Расширение, уже подсчитанное, никогда не отклоняется, ничто существующее не не назначено, и отключение BillingService завершается сбоем OPEN с предупреждением.

  27. · BillingService

    Проверка использования лицензий и лицензий на единицу для расширений на пользователя

    Правило владельца 2026-10-22: каждое на пользователя дополнение выставляет счета за приобретенные лицензии, как количество используемых почтовых ящиков или внутренних номеров ограничивается только ими. - GET /api/billing/licenses/usage (сеанс, X-Org-Id): по коду дополнения (EMAIL_3P_INTEGRATION, EMAIL_HOSTING, PBX_3P_INTEGRATION, PBX_HOSTING) лицензии, имеющиеся, используемые, доступные, неиспользуемые, и освобождена ли организация от лицензирования. - Получить **************** X-Internal-Auth (постоянное время по сравнению с billing.internal-auth-secret), для EmailService и VOIPService, чтобы спросить перед ввод в эксплуатацию еще одной единицы. - Лицензировано = AddOnLicenses.licensed над основной подпиской active_addon_codes / addon_quantities (или план, который включает в себя дополнение); зарезервированные __mailboxes:/__extensions: ключи никогда не читаются как лицензии. В использовании = OrgMailboxBillingAggregator / OrgPbxBillingAggregator, счетчики пользы ночного счета. - Platform org и OWNER_UNLIMITED освобождены; PAID и COMP ограничены; TRIAL, Существующие ворота права БЕСПЛАТНО и без подписки остаются. - Только изменение, которое добавляет блок за пределами лицензий, отклоняется; блок уже считается, или ход расширения третьей стороны, который освобождает один, всегда проходит.

  28. · SecurityService

    Конечные точки для установки автоматического продления подписки и заметок заказа в любом состоянии

  29. · kamo-shared-library

    Включите или выключите обновление для живой подписки; примечания на любом заказе

    Переключатель автоматического обновления консоли отправил поле, которое обновление заказа только для черновика не сделало так что он никогда не сохранялся; и заметки не сохранялись на любом заказе после чернового варианта.

  30. · SecurityService

    Клиенты, пользующиеся картой, платят автоматически в день выставления счета

    Для подписок AUTO_BILL задание по выставлению счетов взимает плату за каждый утвержденный счет-фактуру с сохраненная карта клиента в день выставления счета через внутреннюю карту BillingService конечная точка, регистрирует платеж (метод CARD, ссылка = PaymentIntent) и повторяет неудачную зарядку каждые три дня до четырех раз. Неудача предупреждает Утверждение и отправка счета-фактуры, срок уплаты которого наступил во-первых, так что электронная почта клиента является квитанцией. Новые конечные параметры: - ПОЧТА **************** - Получить ****************

Ваша вселенная ждет.

Начните бесплатно через несколько минут. Добавляйте продукты, когда будете готовы — без миграции, без новых логинов.

Бесплатно навсегда — не требуется кредитная карта