feat(签署方式): 扩展为手写板/短信/Pad/公众号四种并集中口径
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
import { DEMO_SIGNATURE_DATA_URL } from '@/utils/demo-signature'
|
||||
import { mockFlags } from '@/utils/mock-flags'
|
||||
import { buildFieldSpanHtml } from '@/utils/signing-fields'
|
||||
import { formatSigningMethod, toBackendSigningMethod } from '@/utils/signing-method'
|
||||
|
||||
import {
|
||||
campusOfDepartment,
|
||||
@@ -128,10 +129,13 @@ const MOCK_RECORD_SEEDS: MockRecordSeed[] = [
|
||||
{ patient: '赵美英', sex: '女', age: 58, visitType: '住院', doc: 'mock-doc-cardiac', status: 'signed', method: 'pad', days: 0, at: '09:12', minutes: 7 },
|
||||
{ patient: '李淑芬', sex: '女', age: 67, visitType: '门诊', doc: 'mock-doc-mri', status: 'signed', method: 'sms', days: 0, at: '10:05', minutes: 4 },
|
||||
{ patient: '周雅琴', sex: '女', age: 29, visitType: '门诊', doc: 'mock-doc-endoscopy', status: 'pending', method: 'sms', days: 0, at: '11:20' },
|
||||
{ patient: '赵某某', sex: '男', age: 52, visitType: '住院', doc: 'mock-doc-admission', status: 'pending', method: 'ipad', days: 0, at: '09:05', source: '工作台发起' },
|
||||
{ patient: '孙浩然', sex: '男', age: 54, visitType: '住院', doc: 'mock-doc-endoscopy', status: 'pending', method: 'wx', days: 0, at: '08:50' },
|
||||
// 昨天
|
||||
{ patient: '孙浩然', sex: '男', age: 54, visitType: '住院', doc: 'mock-doc-narcotic', status: 'signed', method: 'pad', days: 1, at: '08:40', minutes: 6, source: '工作台发起' },
|
||||
{ patient: '王建国', sex: '男', age: 71, visitType: '住院', doc: 'mock-doc-blood', status: 'signed', method: 'sms', days: 1, at: '14:15', minutes: 9 },
|
||||
{ patient: '陈志强', sex: '男', age: 61, visitType: '住院', doc: 'mock-doc-admission', status: 'void', method: 'pad', days: 1, at: '16:02', source: '工作台发起', voidReason: '文书选择错误,已重新发起' },
|
||||
{ patient: '罗文静', sex: '女', age: 44, visitType: '住院', doc: 'mock-doc-mri', status: 'signed', method: 'ipad', days: 1, at: '11:35', minutes: 5 },
|
||||
// 近 3 天
|
||||
{ patient: '吴桂芳', sex: '女', age: 73, visitType: '住院', doc: 'mock-doc-surgery', status: 'signed', method: 'pad', days: 2, at: '09:35', minutes: 5 },
|
||||
{ patient: '刘伟', sex: '男', age: 45, visitType: '门诊', doc: 'mock-doc-cardiac', status: 'signed', method: 'sms', days: 2, at: '15:48', minutes: 3, source: '工作台发起' },
|
||||
@@ -142,6 +146,7 @@ const MOCK_RECORD_SEEDS: MockRecordSeed[] = [
|
||||
{ patient: '马晓东', sex: '男', age: 33, visitType: '其他', doc: 'mock-doc-emergency', status: 'failed', method: 'pad', days: 5, at: '20:18', source: '工作台发起' },
|
||||
{ patient: '何秀英', sex: '女', age: 79, visitType: '住院', doc: 'mock-doc-surgery', status: 'signed', method: 'sms', days: 6, at: '09:05', minutes: 12 },
|
||||
{ patient: '林俊杰', sex: '男', age: 41, visitType: '门诊', doc: 'mock-doc-narcotic', status: 'signing', method: 'pad', days: 6, at: '14:52' },
|
||||
{ patient: '梁俊豪', sex: '男', age: 35, visitType: '住院', doc: 'mock-doc-surgery', status: 'signed', method: 'wx', days: 6, at: '10:28', minutes: 4 },
|
||||
// 近 30 天
|
||||
{ patient: '罗美玲', sex: '女', age: 62, visitType: '门诊', doc: 'mock-doc-admission', status: 'expired', method: 'sms', days: 11, at: '17:30' },
|
||||
{ patient: '高文斌', sex: '男', age: 57, visitType: '住院', doc: 'mock-doc-cardiac', status: 'signed', method: 'pad', days: 14, at: '10:10', minutes: 7 },
|
||||
@@ -447,25 +452,30 @@ export async function getSigningRecordDetail(
|
||||
* 如果每次刷新都在变,就没法用来核对签署链路了。
|
||||
*/
|
||||
function buildMockEvents(record: SigningRecord): SigningTaskEvent[] {
|
||||
const channel = record.method === 'pad' ? '手写板' : '短信'
|
||||
const backendChannel = toBackendSigningMethod(record.method)
|
||||
// 线上方式(短信 / 公众号)才有一条「已发送」留痕,现场方式是设备上直接采集
|
||||
const isOnline = record.method === 'sms' || record.method === 'wx'
|
||||
const createdAt = record.createdAt ?? record.updatedAt
|
||||
const events: SigningTaskEvent[] = [
|
||||
{
|
||||
id: `${record.id}-created`,
|
||||
time: createdAt,
|
||||
text: `张文静创建签署任务(${channel})`,
|
||||
text: `张文静创建签署任务(${formatSigningMethod(record.method)})`,
|
||||
eventType: 'TASK_CREATED',
|
||||
channel: record.method === 'pad' ? 'PAD' : 'SMS',
|
||||
channel: backendChannel,
|
||||
},
|
||||
]
|
||||
|
||||
if (record.method === 'sms') {
|
||||
if (isOnline) {
|
||||
events.push({
|
||||
id: `${record.id}-sent`,
|
||||
time: createdAt,
|
||||
text: `已向 ${record.patientName} 预留手机号发送签署短信`,
|
||||
text:
|
||||
record.method === 'wx'
|
||||
? `已向 ${record.patientName} 推送公众号签署通知`
|
||||
: `已向 ${record.patientName} 预留手机号发送签署短信`,
|
||||
eventType: 'SEND_PREPARED',
|
||||
channel: 'SMS',
|
||||
channel: backendChannel,
|
||||
attemptNo: 1,
|
||||
})
|
||||
}
|
||||
@@ -476,7 +486,7 @@ function buildMockEvents(record: SigningRecord): SigningTaskEvent[] {
|
||||
time: record.updatedAt,
|
||||
text: '已打开签名采集,等待患者完成签名',
|
||||
eventType: 'SIGNING_STARTED',
|
||||
channel: 'PAD',
|
||||
channel: backendChannel,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -486,7 +496,7 @@ function buildMockEvents(record: SigningRecord): SigningTaskEvent[] {
|
||||
time: record.signedAt,
|
||||
text: `患者 ${record.signerName} 完成签名,系统已合成文书并双留存`,
|
||||
eventType: 'SIGNED',
|
||||
channel: record.method === 'pad' ? 'PAD' : 'SMS',
|
||||
channel: backendChannel,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user