变更记录
什么是新的。
平台的每一个改进,随着它的出货。
· kamo-shared-library
图表列表审查,过敏反应/严重程度,状态原因,订单诊断,结果审查说明
- ClinicalListReview (fhir_chart_list_review ) : 一个真正的审查记录的过敏和 药物列表,所以 'reviewed' 停止意味着 '至少有一行存在' - AllergyIntolerance: reaction_text, reaction_severity, 状态_原因; 查找活动检查 现在排除 NKDA 断言(和被驳回的行 ) ; findActiveNoKnownAllergy / findActiveRecord - Condition.status_reason, Observation.status_reason, ServiceRequest.reason_codes , - 服务请求状态代码 诊断报告. 评论_注意 - EncounterDiagnosisRepository ; ****************(生命体流程图)
· 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;等候列表输入存储库: findCandidatesAnyType (在 ' : x IS NULL' 中的一个空 UUID 会在未输入的状态下到达 Postgres) - PhiResourceType: 添加了 PATIENT_RECALL 和 PATIENT_PAYMENT
· kamo-shared-library
前台登记记录 — 联系方式、紧急联系人、MRN 计数器、覆盖写入字段
患者获得首选联系方式、初级保健成员和首选药房; 紧急联系人为 FHIR Patient.contact (fhir_patient_contact, 已退役,未删除 ) ; 电信和地址使用现有的 fhir_contact_point / fhir_address 表 (新 首选语言的 PatientCommunicationRepository ehr_mrn_counter 行在一个原子上插入中分配 MRN 仅限生日、带有生日的前缀和 by-id 查询。 PriorAuthorization 获得 服务描述和资格检查验证者的注释。 DDL 在此推送之前应用于生产环境。
· kamo-shared-library
图表文件、练习笔记模板、笔记读取侧文本和退出记录
- PatientDocument (ehr_patient_document ) : 类别、标题、文档日期、内容 类型,大小,SHA-256,成像 Img id + 存储密钥,上传者,输入错误 与谁/何时/为什么。 从未删除。 - ClinicalNoteTemplate (ehr_note_template ) : 实践自己的笔记模板。 - ClinicalNote: 输入_在_错误_时 / / 由 / / 原因列;瞬态电流体, 版本类型、SI 标志、读取的作者/共同签名者/患者名称。 - ClinicalNoteVersion:瞬态作者名称。 DDL适用于手工生产(添加剂 ) 。
· SecurityService
真正的拒绝, 打破玻璃审查决定, 诚实的索赔发送, 手写的EOBs
- EhrRuleViolationException:业务规则拒绝(结束时未签名的注释, 重复预订, 不是作者/共同签名, 自我共同签名, 已经签名, 从保险人受到限制,破玻璃没有理由,太多的出口, 409/422 现在用其简单语言句子回答 409/422 而不是不透明的"没有这样的记录 " 。 关系否认保持 404。 - EhrExceptionHandler 运行在全球商务的最高优先级 咨询, 并涵盖质量, 门户管理, CCD, 批量出口和 FHIR (a 说着,脸上已经出现了红肿的迹象。 - 打破玻璃审查:列出姓名和历史,并作出决定 (适当/不适当/需要跟进,注意必须,永远不是你自己的 ) 。 - 临床医生交换合作伙伴目录(VIEW_CHART,仅名称 ) 。 - 索赔:CPT/HCPCS、修改者、ICD-10、指针、国家标准和服务地点 格式检查; 付款人和成员ID从所选择的覆盖面; 访问必须 关闭到账单; 收费程序离开未收费队列; 索赔草案 索赔运输接缝: 没有信息交换所, 提交 标记准备好,并说这样; 标记发送记录通道, 谁和注意. - 汇款可以从纸质EOB键入,现在张贴移动资金 从不适用改为适用。
· kamo-shared-library
记录索赔是如何发送的,并列出已审查的紧急访问
声明获得 ready_at、submission_channel、submitted_by_member_id 和 submission_note,因此通过支付者门户或纸张手工发送的索赔 是诚实地记录,而不是假装一个信息交换所的状态翻转 打破玻璃的赠款存储库获得了审查历史 finder 在其队列下面列出新的审核屏幕。
· kamo-internal
发票显示应收账款汇款块,如报价一样
发票对话框渲染的 QuoteRemittanceBlock 与报价预览使用的相同, 卖方的应收账款细节,而任何是应付 switch现在说它涵盖报价和发票。
· kamo-signer-monorepo
发票的汇款块与报价完全一样
相同的标题、标签和ACH Credit Only通知(signer.quote.remit ) , 并附有 发票号码参考保持在下面。
· SecurityService
发票打印应收款ACH详细信息,就像报价一样
PDF 和电子邮件现在包含报价的汇款块,逐字逐句: - 汇款到 - 收款人(法定名称) - 银行 - 路由号码(ABA) - 账号 - ACH 仅信用通知 接下来是发票号码参考和市场自己的 GET ************** 给控制台下面的命令: 如同报价一样,当应收账款有 ACH 信息切换时,它会出现 并且两个号码都保存了。
· kamo-internal
从某一日期开始更改席位和许可证,并预览按比例收费
更改席位和许可证 将打开一个对话框,以设置: - 席位和每个附加组件的许可证(每个用户的许可证跟随席位直到 打字覆盖)。 - 生效日期(今天或以后); - 按比例收费是否现在在自己的发票上(甚至在发票之前) 日期)或下次续签时; - 对于减少,为未使用的部分贷记。 服务器的实时预览显示期间、剩余天数、每行比例、 任何设置费用,总额,如何收取费用,以及在设置之前的经常性费用 计划的更改列在订阅上,并且可以在订阅页面上查看 取消。 取代旧的即时座位对话框。
· SecurityService
用于日期、按比例计算的座位和许可证更改的端点;作业应用它们
新的终点: - 邮政编码 **************** - POST /subscriptions/{uid } / 修改 - 获取 /subscriptions/{uid } / 更改 - 邮政编码 **************** 按小时计费作业应用其日期在提高之前的更改 发票,因此续订将按新的计数计费。
· kamo-shared-library
在期中,在选定的日期,按比例更改席位和附加许可证
SubscriptionChangeService 记录对实时订阅的席位和 附加许可证从今天起的任何日期生效 按比例收费:每个新增单位的每周期价格 x 剩余天数 / 周期内的天数 例如,从11月1日起的Harmony+6个座位 = 6 x $124 x 17/31 = $408.00. 当运营商选择:现在自己的发票草案时,收费开具发票 (甚至在生效日期之前)或在下一张续订发票上。 在生效日期,计费作业应用更改: - 订阅的座位、许可证和 MRR; - 客户的访问(座位数量、座位行、附加许可证、缓存 ) ; - 每次后续续约草案, 重建, 或给予调整线,如果工作人员有 没想到呢! 边缘案件: - 确切在一个计费日的变化是由该续订而不是 按比例分摊两次; - 折扣不收取任何费用,并可在下次续订时将未使用的部分贷记入账; - 预定的变更可以取消,使其发票草案无效; - 额外座位的设置费用阅读客户的协议。 旧的更换座位路径现在通过这项服务。 新表 commerce_subscription_changes;新列 ****************
· kamo-internal
无处不在的简单语言状态;在订单向导中商定的附加价格和每月折扣
StatusChip (89 个调用站点)显示了 PENDING_APPROVAL 等原始代码;现在它 显示字典中的单词(common.statusCodes ) , 或大声朗读一个字典的代码 订单列表过滤器和 CSV 使用相同的标签。 工作人员可以为每个选定的附加组件输入商定的每个许可证价格和 每月折扣;两者都作为 addonUnitPrices / recurringDiscount 发送并计费 在每张发票上。
· kamo-signer-monorepo
在发票页面上使用信用卡付款
当服务器提供它(平台出售的发票有余额 ) , 发票 它会发送到 /<locale>/i/<token>/pay,然后发送到用户端,用户端会发送到服务器 将客户导向 Stripe 托管的支付页面(银行确认在那里进行) 返回。 返回的客户看到付款确认。
· SecurityService
客户通过卡片在线支付发票;银行的 SCA 请求到达客户
对于由平台组织出售的发票(其唯一的 Stripe 帐户是卖方 ) : - 公共发票提供 通过信用卡支付: POST ************** 打开一个 Stripe 托管的页面,返回到相同的发票链接(构建 服务器端,从不从请求 ) ; - 付款记录在客户回来时和按小时工作, 只是一次。 当自动收费需要客户与他们的银行确认时,他们 发票与该请求发送电子邮件,并提醒业主如以前一样。
· BillingService
在 Stripe 托管的页面上通过信用卡支付订阅发票
内部 POST **************** 创建一个支付模式 结算会话的欠款金额。 它保存卡用于将来的自动 当客户有一个帐户,和银行的SCA确认收费 GET /checkout/{id } , 报告是否已付款,以及使用了哪种付款方式 消费者结账会忽略这些会话。
· kamo-shared-library
在线跟踪发票的待付卡付款
新的可删除栏目 **************** 加上帮手列出和解决等效的未决会话(带有付款 同一处理器参考从不记录两次 ) 。
· kamo-shared-library
经过协商的附加价格和报价折扣可转入订阅
转换引号现在带有: - 每个附加组件商定的每个许可证价格(如果与目录不同) - 报价或接受期权的折扣,作为一个经常性的月度金额(一个 期权的期限折扣分散在其月份) 订单在 custom_pricing 中记录了这两项,因此草稿重新定价保留了它们。 激活 将商定的价格放在附加许可证和订阅折扣上 (新的可删除列 **************** 所以每张发票 工作人员订单可以直接说明交易的情况,也可以直接说明订单的内容 (addonUnitPrices, 经常性折扣 ) 。
· kamo-internal
自动续订和注释工作的活订阅;卡在文件和卡现在收费
- 自动续订开关设置订阅自己的续订(它张贴了一个字段 仅草稿订单更新被忽略 ) , 并说明非续订订单何时结束。 - 在任何状态下保存订单的说明。 - 卡支付订阅显示卡文件。 - 其开发票提供现在收费卡,并显示为什么最后一张卡试图 失败。
· kamo-internal
显示分配给邮箱和分机的持有和使用的许可证
所有者规则 2026-10-22:按用户计费的附加组件购买的许可证,以及 许可证是唯一的限制,可以在使用。 一个 LicenseUsageMeter ( " 10 个许可证中有 4 个正在使用 " , 组织品牌颜色的动画栏,角落) 彩带,警告芯片和注意,当已经过去,链接到计划和计费) 读取 GET /api/billing/licenses/usage 并显示在: - 设置 > 电子邮箱管理 (KamoMail 或第三方许可证) - 成员电话设置分机选择器(KamoPBX或第三方) - 计划和计费附加行 拒绝(409,服务器的普通语言句子)现在会到达该人: 邮箱分配,共享邮箱授权,个人收件箱分配/IMAP保存/OAuth 连接和回调都会在邮箱的面板中显示它 或者说一个通用的失败 ) ; 每个这样的动作刷新 新字符串: settings.billing.licenses (kamo-translation-dictionary ) 。
· kamo-internal
报价开始订阅;离线接受;租户订单;简单语言计费
- 报价 : " 从订阅目录添加"填充一行从活计划/附加组件(名称,每月 价格 , " 每用户/月 " / "每10 GB块/月 " ) ,并保留目录参考; 接受订阅报价通过对话框转换(付款方式;目标组织 仅适用于平台)转换为订阅订单;纸质/电子邮件/PO的"记录验收" 接受;草稿的预览带有水印,每次打印都记录在案;条款填充 {组织名称} 与卖方的简称。 - 订单向导:仅针对平台组织的目标组织;仅由工作人员协商 每个座位价格和设置费覆盖。 - 注册列表:下一个结算日期,余额到期,逾期徽章;一个共享的付款方式 所有六种方法的标签助手。 - 订阅页面:事件在简单的句子(活跃 → 过期 ) , 而不是订单号 记录的 id。 - 联系销售: 通过一个狭窄的端点从平台组织中读取姓名、电子邮件和电话。
· SecurityService
拒绝部门或联系人邮箱的电子邮件许可证
所有者规则 2026-10-22:按用户计费的附加组件购买的许可证;有多少 邮箱的使用仅受到它们的限制。 在第三方提供商下, 在邮箱中找到的部门,或组织的联系信息 指向一个,将其映射到 Kamo ( OrgMailboxBillingAggregator ) , 因此这些 两次保存可以将邮箱投入使用,就像将其分配给成员一样。 - MailboxLicenseCapGuard 请求 BillingService 的内部许可证检查 (X-Internal-Auth) 在 POST/PUT /api/security/departments 之前,并且 PUT /org/{id} 更改邮箱;拒绝是 409 错误,其中包含以下句子 错误/消息和原因 LICENSE_LIMIT。 保留或清除邮箱 从未选中;BillingService 中断会导致 OPEN 失败并出现警告。 - 计费中继门也通过 GET /licenses/usage (与计费中继门相同的权限) 其他用法如下。
· SecurityService
记录离线接受,记录打印,将报价转换为订阅
- POST ************** (发送报价或管理报价) - POST **************** (查看报价或管理报价) - POST . . ./{uid}/convert 需要一个可选的主体(目标组织、付款方式 ) ; 转换为 COMP 还需要 CREATE_SUBSCRIPTION_ORDERS - POSController 拒绝 negotiatedUnitPrice / setupFeeOverride 来自 OWN 调用者 - GET ************** 平台组织的公开名称,联系电子邮件 和电话,用于联系销售对话框,而不是硬编码常量
· kamo-shared-library
报价转换为订阅;租户订单永远不会补偿卖方
- 在订阅市场的报价,或其接受的行从订阅填充 目录,转换成 SubscriptionOrder (计划,从报价数量的座位,附加组件与 他们的许可证,接受每个座位率作为一个谈判价格,安装费用的客户 见,接受期权的承诺作为周期,转换时选择的付款方式 ) 。 该订单包含 quote_uid;拒绝第二次转换;记录 CONVERTED 事件。 零售转换不变。 - QuoteService.acceptOffline:工作人员记录在纸张/电子邮件/PO上给出的接受 — 草稿,发送, 已查看或过期报价;通过 applyOptionHeadlineTotals 获得的总数;事件名称 谁和为什么。 - recordPrinted 记录 PRINTED 事件(草稿打印显示如此 ) 。 - 每个座位行在每次保存和修订时存储报价的座位数;行视图发送 一个行的定价数量。 - 引用行包含catalog_ref_code / catalog_ref_uid。 - 条款支持 {组织名称 } , 在客户页面上填写卖方的简称。 - provisionOnApproval 和 activateCompOrder 需要一个目标组织 — 一个没有的订单 用于配置卖方自己的订阅。 - **************** / setupFeeOverride, 应用后 calculatePrice 并在 custom_pricing 中记住,以便草案重新定价保留交易。 - 订单和订阅 DTO 载有下一个结算日期、未清余额和逾期标志, 在每个列表中读取两个查询。
· EmailService
拒绝超过单位电子邮件许可证的邮箱
所有者规则 2026-10-22:按用户计费的附加组件购买的许可证;多少 邮箱的使用仅受到它们的限制。 在将邮箱放入服务器之前 使用,BillingService的****************被要求 (X-Internal-Auth ) ; 拒绝是409带有其简单语言句子 (StatusReasonAdvice ) , 例如 , " 您的所有 10 个第三方电子邮件许可证都在使用中。 在计费中添加许可证以连接另一个邮箱 。 " 强制执行,在写任何东西之前: - 创建一个邮箱(KamoMail一次计数;第三方仅一次映射) - 将邮箱分配给成员 - 创建共享邮箱,授予访问权限,重新打开 - 连接个人收件箱(IMAP保存、OAuth同意和回调)和 分配一个已连接的 - AI 成员邮箱预配 (NOT_READY / LICENSE_LIMIT) 一个已经被计数的地址永远不会被拒绝,任何现有的都不会被分配, 并且 BillingService 中断失败 OPEN 并出现警告 共享访问和个人邮箱端点现在传递拒绝状态,并 一句话,而不是500。
· VOIPService
拒绝超过组织许可证的电话分机
所有者规则 2026-10-22:按用户计费的附加组件购买的许可证;有多少 使用的扩展名仅受到它们的限制。 在扩展名被放置前 * * * * * * * * * * * * * * * 请求(X-Internal-Auth ) ; 拒绝是409带有其普通语言 句子 (LicenseCapAdvice ) , 例如 , " 您的所有 10 个第三方电话许可证 在计费中添加许可证以分配另一个分机 。 " 强制执行,在写任何东西之前: - PUT /api/voip/member/{id } / config (成员电话设置 ) , 命名成员电话 成员现在持有的扩展,所以在第三方系统上移动是免费的 - POST ******************** (新分机; KamoPBX 次) 每个活跃的一个,第三方只分配一个) - 当结果是ACTIVE时,PUT **************** - AI 语音线路配置 (NOT_READY / LICENSE_LIMIT) 一个已经被计数的扩展从来不会被拒绝,任何现有的都不会被拒绝 未分配,并且 BillingService 中断会导致 OPEN 失败并出现警告。
· BillingService
针对每个用户附加组件的许可证使用情况和单位许可证检查
所有者规则 2026-10-22:每个按用户计费的附加组件都会收取购买的许可证费用,如 使用的邮箱或分机数量仅受其限制。 - GET /api/billing/licenses/usage (会话, X-Org-Id ) : 按附加组件代码 电子邮件_3P_集成,电子邮件_托管,PBX_3P_集成,PBX_托管) 持有、使用、可用、过期的许可证,以及组织是否享有豁免。 - 来吧 由 X-Internal-Auth 保护(常时比较与 billing.internal-auth-secret ) , 用于EmailService 和 VOIPService 之前询问 再投入使用一个单元。 - 授权 = AddOnLicenses.licensed 超过主订阅的 active_addon_codes / addon_quantities (或包含附加组件的计划 ) ; 保留的 _ _ mailboxes : / / extensions: 密钥从不被读作许可证。 在使用 = OrgMailboxBillingAggregator / OrgPbxBillingAggregator, 计数的 夜间法案使用。 - 平台组织和OWNER_UNLIMITED免除; PAID和COMP上限; 试用, 免费和没有订阅留给现有的权利门. - 只有一个变化,ADDS一个单位过去的许可证被拒绝;一个单位已经 计算,或第三方延伸移动,释放一个,总是通过。
· SecurityService
用于设置订阅自动续订和任何状态下的订单注释的端点
· kamo-shared-library
打开或关闭实时订阅的续订;任何订单上的注释
控制台的自动续订开关发送了一个字段,但仅草稿订单更新没有发送 没有,所以它从来没有保存;并且在任何过去的草案顺序上注释失败。
· SecurityService
卡客户在结算当天自动收费
对于 AUTO_BILL 订阅,计费作业会将每张已批准的发票收取给 通过BillingService的内部卡片在其结算当天保存客户的卡片 端点,记录付款(方法 CARD,参考 = PaymentIntent ) , 每三天重试一次失败的充电,最多重试四次 批准并发送发票,其计费日期已经到来 首先,所以客户的电子邮件是一个收据。 新的终点: - 邮政编码 **************** - 来吧
