@tencent-rtc/trtc-agent-skills 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +172 -0
- package/README.zh.md +173 -0
- package/bin/cli.js +434 -0
- package/knowledge-base/index.yaml +454 -0
- package/knowledge-base/platform-slice-template.md +233 -0
- package/knowledge-base/scenario-spec.md +350 -0
- package/knowledge-base/scenarios/conference/base/general-conference.md +365 -0
- package/knowledge-base/scenarios/conference/base/webinar-conference.md +130 -0
- package/knowledge-base/scenarios/conference/medical/1v1-video-consultation.md +145 -0
- package/knowledge-base/scenarios/conference/medical/medical-multidoctor-consultation.md +113 -0
- package/knowledge-base/scenarios/live/entertainment-live-room.md +118 -0
- package/knowledge-base/slice-spec.md +546 -0
- package/knowledge-base/slices/conference/web/ai-tools.md +225 -0
- package/knowledge-base/slices/conference/web/beauty-effects.md +188 -0
- package/knowledge-base/slices/conference/web/device-control.md +338 -0
- package/knowledge-base/slices/conference/web/login-auth.md +261 -0
- package/knowledge-base/slices/conference/web/network-quality.md +190 -0
- package/knowledge-base/slices/conference/web/official-roomkit-api.md +298 -0
- package/knowledge-base/slices/conference/web/official-roomkit-login-ui.md +246 -0
- package/knowledge-base/slices/conference/web/participant-list.md +238 -0
- package/knowledge-base/slices/conference/web/participant-management.md +718 -0
- package/knowledge-base/slices/conference/web/prejoin-check.md +293 -0
- package/knowledge-base/slices/conference/web/room-call.md +213 -0
- package/knowledge-base/slices/conference/web/room-chat.md +426 -0
- package/knowledge-base/slices/conference/web/room-lifecycle.md +534 -0
- package/knowledge-base/slices/conference/web/room-schedule.md +281 -0
- package/knowledge-base/slices/conference/web/screen-share.md +211 -0
- package/knowledge-base/slices/conference/web/video-layout.md +675 -0
- package/knowledge-base/slices/conference/web/virtual-background.md +197 -0
- package/knowledge-base/slices/conference/web/webinar-interaction.md +206 -0
- package/knowledge-base/slices/live/anchor-lifecycle.md +122 -0
- package/knowledge-base/slices/live/anchor-preview.md +90 -0
- package/knowledge-base/slices/live/anchor-room-config.md +104 -0
- package/knowledge-base/slices/live/audience-list.md +86 -0
- package/knowledge-base/slices/live/audience-manage.md +92 -0
- package/knowledge-base/slices/live/audience-watch.md +85 -0
- package/knowledge-base/slices/live/audio.md +116 -0
- package/knowledge-base/slices/live/barrage.md +88 -0
- package/knowledge-base/slices/live/beauty.md +99 -0
- package/knowledge-base/slices/live/coguest-apply.md +105 -0
- package/knowledge-base/slices/live/device-control.md +91 -0
- package/knowledge-base/slices/live/error-codes.md +167 -0
- package/knowledge-base/slices/live/gift.md +84 -0
- package/knowledge-base/slices/live/ios/.gitkeep +0 -0
- package/knowledge-base/slices/live/ios/anchor-lifecycle.md +313 -0
- package/knowledge-base/slices/live/ios/anchor-preview.md +228 -0
- package/knowledge-base/slices/live/ios/anchor-room-config.md +257 -0
- package/knowledge-base/slices/live/ios/audience-list.md +353 -0
- package/knowledge-base/slices/live/ios/audience-manage.md +381 -0
- package/knowledge-base/slices/live/ios/audience-watch.md +286 -0
- package/knowledge-base/slices/live/ios/audio.md +373 -0
- package/knowledge-base/slices/live/ios/barrage.md +285 -0
- package/knowledge-base/slices/live/ios/beauty.md +323 -0
- package/knowledge-base/slices/live/ios/coguest-apply.md +506 -0
- package/knowledge-base/slices/live/ios/device-control.md +286 -0
- package/knowledge-base/slices/live/ios/error-codes.md +270 -0
- package/knowledge-base/slices/live/ios/gift.md +315 -0
- package/knowledge-base/slices/live/ios/live-list.md +269 -0
- package/knowledge-base/slices/live/ios/login-auth.md +247 -0
- package/knowledge-base/slices/live/live-list.md +82 -0
- package/knowledge-base/slices/live/login-auth.md +78 -0
- package/package.json +34 -0
- package/skills/trtc/SKILL.md +326 -0
- package/skills/trtc/room-builder/SKILL.md +138 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/README.md +108 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/docs/backend-contract.zh-CN.md +162 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/docs/integration.zh-CN.md +154 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/docs/theme.zh-CN.md +78 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/index.html +12 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/package.json +28 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/postcss.config.js +5 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/App.vue +25 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/ConsultationManagePanel.vue +838 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/LanguageSwitch.vue +102 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/LoadingSpinner.vue +6 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalAlert.vue +34 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalBusinessPanel.vue +148 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalButton.vue +49 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalConfirmDialog.vue +68 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalDataPanel.vue +196 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalRecordPanel.vue +270 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/PrescriptionPanel.vue +363 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/config/basic-info-config.ts +29 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/config/lib-generate-test-usersig-es.min.d.ts +4 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/config/lib-generate-test-usersig-es.min.js +2 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/config/runtime-config.ts +12 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/env.d.ts +32 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/ConsultationChatPanel.vue +123 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/ConsultationMembersPanel.vue +230 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/ConsultationTranscriptionPanel.vue +135 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/ConsultationVideoStage.vue +113 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/InviteDoctorDialog.vue +132 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/KickMemberConfirmDialog.vue +50 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/types.ts +77 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/useConsultationChat.ts +97 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/useConsultationDevices.ts +48 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/useConsultationParticipants.ts +121 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/useConsultationPermissions.ts +25 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/utils.ts +70 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/en-US/index.ts +553 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/index.ts +25 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/medicalTranslate.ts +85 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/state.ts +49 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/zh-CN/index.ts +463 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/main.ts +12 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/mock/appointments.ts +96 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/mock/users.ts +79 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/router/index.ts +63 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/index.ts +25 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/integration/appointmentService.ts +77 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/integration/authService.ts +38 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/integration/launchContext.ts +31 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/integration/userService.ts +35 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/mock/appointmentService.ts +43 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/mock/authService.ts +33 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/mock/userService.ts +43 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/types.ts +135 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/shared/icons.ts +53 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/styles/index.css +106 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/styles/tailwind.css +3 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/styles/theme.css +209 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/utils/auth.ts +50 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/utils/format.ts +24 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/utils/navigation.ts +12 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/utils/session.ts +28 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/DoctorConsultationView.vue +777 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/DoctorDashboardView.vue +678 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/LoginView.vue +441 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/PatientConsultationFinishedView.vue +185 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/PatientConsultationView.vue +1003 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/PatientSelectDoctorView.vue +317 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/PatientWaitingView.vue +454 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/tsconfig.json +21 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/tsconfig.node.json +8 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/vite.config.ts +17 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation//346/216/245/345/205/245/350/257/264/346/230/216.md +6 -0
- package/skills/trtc/room-builder/tools/render_ai_instructions.py +226 -0
- package/skills/trtc-apply/SKILL.md +97 -0
- package/skills/trtc-apply/guardrails/apply_lib/__init__.py +0 -0
- package/skills/trtc-apply/guardrails/apply_lib/__pycache__/__init__.cpython-313.pyc +0 -0
- package/skills/trtc-apply/guardrails/apply_lib/__pycache__/rule_parser.cpython-313.pyc +0 -0
- package/skills/trtc-apply/guardrails/apply_lib/rule_parser.py +268 -0
- package/skills/trtc-docs/SKILL.md +207 -0
- package/skills/trtc-onboarding/SKILL.md +839 -0
- package/skills/trtc-onboarding/reference/path-a1-demo.md +103 -0
- package/skills/trtc-onboarding/reference/path-a2-integrate.md +693 -0
- package/skills/trtc-onboarding/reference/path-b-troubleshoot.md +115 -0
- package/skills/trtc-onboarding/reference/path-c-expand.md +43 -0
- package/skills/trtc-onboarding/reference/reporting-protocol.md +174 -0
- package/skills/trtc-onboarding/reference/supported-matrix.md +100 -0
- package/skills/trtc-onboarding/reference/usersig-handling.md +140 -0
- package/skills/trtc-search/SKILL.md +221 -0
- package/skills/trtc-topic/SKILL.md +638 -0
- package/skills/trtc-topic/guardrails/__pycache__/gate_slice_read.cpython-313.pyc +0 -0
- package/skills/trtc-topic/guardrails/__pycache__/gate_slice_write.cpython-313.pyc +0 -0
- package/skills/trtc-topic/guardrails/__pycache__/stop_require_apply_evidence.cpython-313.pyc +0 -0
- package/skills/trtc-topic/guardrails/gate_slice_read.py +133 -0
- package/skills/trtc-topic/guardrails/gate_slice_write.py +169 -0
- package/skills/trtc-topic/guardrails/stop_require_apply_evidence.py +97 -0
- package/skills/trtc-topic/references/execution-units.yaml +58 -0
- package/skills/trtc-topic/runtime/README.md +50 -0
- package/skills/trtc-topic/runtime/RUNTIME.md +128 -0
- package/skills/trtc-topic/runtime/lib/__init__.py +0 -0
- package/skills/trtc-topic/runtime/lib/platforms.py +194 -0
- package/skills/trtc-topic/runtime/package-lock.json +1211 -0
- package/skills/trtc-topic/runtime/package.json +13 -0
- package/skills/trtc-topic/runtime/telemetry-bridge.mjs +339 -0
- package/skills/trtc-topic/runtime/telemetry_collector.py +293 -0
- package/skills/trtc-topic/scripts/STATE-MACHINE-GUIDE.md +186 -0
- package/skills/trtc-topic/scripts/__pycache__/apply.cpython-313.pyc +0 -0
- package/skills/trtc-topic/scripts/apply.py +581 -0
- package/skills/trtc-topic/scripts/finalize_session.py +113 -0
- package/skills/trtc-topic/scripts/init_slice_queue.py +96 -0
- package/skills/trtc-topic/scripts/lib/__pycache__/state_machine.cpython-313.pyc +0 -0
- package/skills/trtc-topic/scripts/lib/state_machine.py +328 -0
- package/skills/trtc-topic/scripts/next_slice.py +137 -0
- package/skills/trtc-topic/tests/README.md +70 -0
- package/skills/trtc-topic/tests/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/conftest.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_apply_cli.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_apply_cli.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_end_to_end.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_end_to_end.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_finalize_session.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_finalize_session.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_gates.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_gates.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_session_resolver.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_session_resolver.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_state_machine.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_state_machine.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_stop_require_apply.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_stop_require_apply.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_topic_skill_invariants.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_topic_skill_invariants.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/conftest.py +72 -0
- package/skills/trtc-topic/tests/test_apply_cli.py +480 -0
- package/skills/trtc-topic/tests/test_end_to_end.py +305 -0
- package/skills/trtc-topic/tests/test_finalize_session.py +51 -0
- package/skills/trtc-topic/tests/test_gates.py +316 -0
- package/skills/trtc-topic/tests/test_session_resolver.py +260 -0
- package/skills/trtc-topic/tests/test_state_machine.py +414 -0
- package/skills/trtc-topic/tests/test_stop_require_apply.py +99 -0
- package/skills/trtc-topic/tests/test_topic_skill_invariants.py +130 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { i18next } from '@tencentcloud/uikit-base-component-vue3';
|
|
2
|
+
import { medicalLanguage } from './state';
|
|
3
|
+
|
|
4
|
+
const textKeyMap: Record<string, string> = {
|
|
5
|
+
李医生: 'Medical.Mock.DoctorLi',
|
|
6
|
+
王医生: 'Medical.Mock.DoctorWang',
|
|
7
|
+
张医生: 'Medical.Mock.DoctorZhang',
|
|
8
|
+
张晓明: 'Medical.Mock.PatientZhang',
|
|
9
|
+
李美华: 'Medical.Mock.PatientLi',
|
|
10
|
+
主任医师: 'Medical.Mock.ChiefPhysician',
|
|
11
|
+
副主任医师: 'Medical.Mock.AssociateChiefPhysician',
|
|
12
|
+
主治医师: 'Medical.Mock.AttendingPhysician',
|
|
13
|
+
心内科: 'Medical.Mock.Cardiology',
|
|
14
|
+
呼吸内科: 'Medical.Mock.Respiratory',
|
|
15
|
+
消化内科: 'Medical.Mock.Gastroenterology',
|
|
16
|
+
示例三甲医院: 'Medical.Mock.TertiaryHospital',
|
|
17
|
+
示例互联网医院: 'Medical.Mock.InternetHospital',
|
|
18
|
+
示例专科医院: 'Medical.Mock.SpecialtyHospital',
|
|
19
|
+
'20年': 'Medical.Mock.Years20',
|
|
20
|
+
'15年': 'Medical.Mock.Years15',
|
|
21
|
+
'10年': 'Medical.Mock.Years10',
|
|
22
|
+
高血压: 'Medical.Mock.Hypertension',
|
|
23
|
+
冠心病: 'Medical.Mock.Coronary',
|
|
24
|
+
心律失常: 'Medical.Mock.Arrhythmia',
|
|
25
|
+
咳嗽: 'Medical.Mock.Cough',
|
|
26
|
+
哮喘: 'Medical.Mock.Asthma',
|
|
27
|
+
肺炎: 'Medical.Mock.Pneumonia',
|
|
28
|
+
胃炎: 'Medical.Mock.Gastritis',
|
|
29
|
+
胃溃疡: 'Medical.Mock.GastricUlcer',
|
|
30
|
+
消化不良: 'Medical.Mock.Indigestion',
|
|
31
|
+
复诊问诊与慢病管理: 'Medical.Mock.ChronicCare',
|
|
32
|
+
呼吸系统在线复诊: 'Medical.Mock.RespiratoryFollowUp',
|
|
33
|
+
胃肠健康随访: 'Medical.Mock.GastroFollowUp',
|
|
34
|
+
男: 'Medical.Mock.Male',
|
|
35
|
+
女: 'Medical.Mock.Female',
|
|
36
|
+
无: 'Medical.Mock.None',
|
|
37
|
+
未知: 'Medical.Mock.Unknown',
|
|
38
|
+
'持续咳嗽、低热 3 天': 'Medical.Mock.CoughFever',
|
|
39
|
+
'夜间咳嗽、轻微气喘': 'Medical.Mock.NightCough',
|
|
40
|
+
'饭后胃胀、反酸': 'Medical.Mock.Reflux',
|
|
41
|
+
'头晕、心悸': 'Medical.Mock.DizzyPalpitations',
|
|
42
|
+
'反复咽痒、清晨咳嗽': 'Medical.Mock.ThroatCough',
|
|
43
|
+
'腹部隐痛、食欲下降': 'Medical.Mock.AbdominalPain',
|
|
44
|
+
青霉素过敏: 'Medical.Mock.PenicillinAllergy',
|
|
45
|
+
花粉过敏: 'Medical.Mock.PollenAllergy',
|
|
46
|
+
无重大疾病史: 'Medical.Mock.NoMajorHistory',
|
|
47
|
+
过敏性鼻炎: 'Medical.Mock.AllergicRhinitis',
|
|
48
|
+
慢性胃炎: 'Medical.Mock.ChronicGastritis',
|
|
49
|
+
甲状腺结节: 'Medical.Mock.ThyroidNodule',
|
|
50
|
+
轻度哮喘: 'Medical.Mock.MildAsthma',
|
|
51
|
+
'示例主诉,请替换为客户预约系统返回的诊前信息': 'Medical.Mock.IntegrationChiefComplaint',
|
|
52
|
+
请替换为客户业务数据: 'Medical.Mock.IntegrationBusinessData',
|
|
53
|
+
'[图片消息]': 'Medical.Message.ImageMessage',
|
|
54
|
+
'[视频消息]': 'Medical.Message.VideoMessage',
|
|
55
|
+
'[文件消息]': 'Medical.Message.FileMessage',
|
|
56
|
+
'[暂不支持的消息类型]': 'Medical.Message.UnsupportedMessage',
|
|
57
|
+
'EMR / HIS / PACS 业务插槽': 'Medical.Business.EMRHISPACSSlot',
|
|
58
|
+
会话初始化失败: 'Medical.Chat.SessionInitFailed',
|
|
59
|
+
消息发送失败: 'Medical.Chat.MessageSendFailed',
|
|
60
|
+
确认踢出成员: 'Medical.Member.ConfirmKickTitle',
|
|
61
|
+
确认踢出: 'Medical.Member.ConfirmButton',
|
|
62
|
+
取消: 'Medical.Member.CancelButton',
|
|
63
|
+
中文: 'Medical.LanguageSwitch.ChineseLang',
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export function medicalTranslate(text?: string) {
|
|
67
|
+
medicalLanguage.value;
|
|
68
|
+
if (!text) {
|
|
69
|
+
return text || '';
|
|
70
|
+
}
|
|
71
|
+
if (text.startsWith('Medical.')) {
|
|
72
|
+
return i18next.t(text);
|
|
73
|
+
}
|
|
74
|
+
const key = textKeyMap[text];
|
|
75
|
+
return key ? i18next.t(key) : text;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export function medicalT(key: string, options?: Record<string, unknown>) {
|
|
79
|
+
medicalLanguage.value;
|
|
80
|
+
return i18next.t(key, options);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function medicalTranslateList(values?: string[]) {
|
|
84
|
+
return values?.map(item => medicalTranslate(item)) || [];
|
|
85
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ref } from 'vue';
|
|
2
|
+
|
|
3
|
+
export type MedicalLanguage = 'zh-CN' | 'en-US';
|
|
4
|
+
|
|
5
|
+
export const MEDICAL_LANGUAGE_STORAGE_KEY = 'tuiMedical-language';
|
|
6
|
+
|
|
7
|
+
export function normalizeMedicalLanguage(
|
|
8
|
+
language?: string | null
|
|
9
|
+
): MedicalLanguage {
|
|
10
|
+
if (!language) {
|
|
11
|
+
return 'zh-CN';
|
|
12
|
+
}
|
|
13
|
+
const normalizedLanguage = language.toLowerCase();
|
|
14
|
+
if (normalizedLanguage.startsWith('zh')) {
|
|
15
|
+
return 'zh-CN';
|
|
16
|
+
}
|
|
17
|
+
if (normalizedLanguage.startsWith('en')) {
|
|
18
|
+
return 'en-US';
|
|
19
|
+
}
|
|
20
|
+
return 'en-US';
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function getBrowserLanguage() {
|
|
24
|
+
const languages = navigator.languages?.length
|
|
25
|
+
? navigator.languages
|
|
26
|
+
: [navigator.language];
|
|
27
|
+
return (
|
|
28
|
+
languages.find(language => /^zh/i.test(language)) ||
|
|
29
|
+
languages.find(language => /^en/i.test(language)) ||
|
|
30
|
+
navigator.userAgent.match(/\b(zh|en)(?:-|_)[a-z]{2}\b/i)?.[0] ||
|
|
31
|
+
''
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function getInitialLanguage(): MedicalLanguage {
|
|
36
|
+
const queryLanguage = new URLSearchParams(window.location.search).get('lang');
|
|
37
|
+
const storedLanguage = localStorage.getItem(MEDICAL_LANGUAGE_STORAGE_KEY);
|
|
38
|
+
return normalizeMedicalLanguage(
|
|
39
|
+
queryLanguage || storedLanguage || getBrowserLanguage()
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const medicalLanguage = ref<MedicalLanguage>(getInitialLanguage());
|
|
44
|
+
|
|
45
|
+
export function setMedicalLanguage(language: MedicalLanguage) {
|
|
46
|
+
medicalLanguage.value = language;
|
|
47
|
+
localStorage.setItem(MEDICAL_LANGUAGE_STORAGE_KEY, language);
|
|
48
|
+
document.documentElement.lang = language;
|
|
49
|
+
}
|
package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/zh-CN/index.ts
ADDED
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
export const resource = {
|
|
2
|
+
'Medical.Common.PlatformName': '示例医疗平台',
|
|
3
|
+
'Medical.Common.TemplateName': 'Medical Consultation Template',
|
|
4
|
+
'Medical.Common.SourceTemplate': '医疗场景源码模板',
|
|
5
|
+
'Medical.Common.SecureLink': '音视频链路加密',
|
|
6
|
+
'Medical.Common.SceneTemplate': '医疗场景接入模板',
|
|
7
|
+
'Medical.Common.Doctor': '医生',
|
|
8
|
+
'Medical.Common.Patient': '患者',
|
|
9
|
+
'Medical.Common.Member': '成员',
|
|
10
|
+
'Medical.Common.Me': '我',
|
|
11
|
+
'Medical.Common.AttendingDoctor': '主治医生',
|
|
12
|
+
'Medical.Common.ConsultingDoctor': '会诊医生',
|
|
13
|
+
'Medical.Common.UnknownDepartment': '未知科室',
|
|
14
|
+
'Medical.Common.Online': '在线',
|
|
15
|
+
'Medical.Common.Busy': '忙碌',
|
|
16
|
+
'Medical.Common.Entering': '进入中...',
|
|
17
|
+
'Medical.Common.Processing': '处理中...',
|
|
18
|
+
'Medical.Common.Cancel': '取消',
|
|
19
|
+
'Medical.Common.Confirm': '确认',
|
|
20
|
+
'Medical.Common.Decline': '拒绝',
|
|
21
|
+
'Medical.Common.Accept': '同意',
|
|
22
|
+
'Medical.Common.Invite': '邀请',
|
|
23
|
+
'Medical.Common.Inviting': '邀请中',
|
|
24
|
+
'Medical.Common.Canceling': '取消中',
|
|
25
|
+
'Medical.Common.Copy': '复制',
|
|
26
|
+
'Medical.Common.Copying': '复制中...',
|
|
27
|
+
'Medical.Common.Export': '导出',
|
|
28
|
+
'Medical.Common.Exporting': '导出中...',
|
|
29
|
+
'Medical.Common.View': '查看',
|
|
30
|
+
'Medical.Common.Download': '下载',
|
|
31
|
+
'Medical.Common.BackHome': '返回首页',
|
|
32
|
+
'Medical.Common.Replaceable': '可替换',
|
|
33
|
+
|
|
34
|
+
'Medical.Language.SwitchToEnglish': 'Switch to English',
|
|
35
|
+
'Medical.Language.SwitchToChinese': '切换到中文',
|
|
36
|
+
'Medical.Language.Chinese': '中文',
|
|
37
|
+
'Medical.Language.English': 'English',
|
|
38
|
+
|
|
39
|
+
'Medical.Login.VideoSecurityTitle': '音视频安全底座',
|
|
40
|
+
'Medical.Login.VideoSecurityDescription': '提供稳定音视频链路,可按客户要求接入业务安全体系',
|
|
41
|
+
'Medical.Login.WorkflowTitle': '完整诊疗闭环',
|
|
42
|
+
'Medical.Login.WorkflowDescription': '从预约到处方,全流程数字化管理',
|
|
43
|
+
'Medical.Login.MockEntryTitle': '场景化演示入口',
|
|
44
|
+
'Medical.Login.IntegrationEntryTitle': '接入入口示例',
|
|
45
|
+
'Medical.Login.MockEntryDescription': '请选择预置身份快速体验医患链路',
|
|
46
|
+
'Medical.Login.IntegrationEntryDescription': '集成模式下建议由客户业务系统携带参数直接跳转进入',
|
|
47
|
+
'Medical.Login.DoctorLogin': '医生登录',
|
|
48
|
+
'Medical.Login.PatientLogin': '患者登录',
|
|
49
|
+
'Medical.Login.DoctorAccount': '医生账号',
|
|
50
|
+
'Medical.Login.PatientAccount': '患者账号',
|
|
51
|
+
'Medical.Login.SelectAccount': '请选择账号',
|
|
52
|
+
'Medical.Login.Password': '密码',
|
|
53
|
+
'Medical.Login.AppointmentCode': '预约验证码',
|
|
54
|
+
'Medical.Login.RememberLogin': '记住登录状态',
|
|
55
|
+
'Medical.Login.ForgotPassword': '忘记密码?',
|
|
56
|
+
'Medical.Login.Tips': '温馨提示:',
|
|
57
|
+
'Medical.Login.PatientPhoneTip': '请使用预约时填写的手机号登录',
|
|
58
|
+
'Medical.Login.ConfigTipPrefix': '运行前请先在',
|
|
59
|
+
'Medical.Login.ConfigTipMiddle': '中填写',
|
|
60
|
+
'Medical.Login.ConfigTipSuffix': '。正式交付时请改为客户服务端签发',
|
|
61
|
+
'Medical.Login.LoginLoading': '登录中...',
|
|
62
|
+
'Medical.Login.OpenDashboard': '登录工作台',
|
|
63
|
+
'Medical.Login.EnterWaitingRoom': '进入候诊室',
|
|
64
|
+
'Medical.Login.EntryDescription': '当前页面用于演示入口与接入方式,客户可替换为自有登录或单点入口',
|
|
65
|
+
'Medical.Login.IntegrationMode': 'Integration 模式',
|
|
66
|
+
'Medical.Login.IntegrationModeDescription': '页面会尝试从 URL 中读取 role、userId、appointmentId、token 等参数自动登录。',
|
|
67
|
+
'Medical.Login.DoctorExample': '医生端示例:',
|
|
68
|
+
'Medical.Login.PatientExample': '患者端示例:',
|
|
69
|
+
'Medical.Login.PresetAccountNotFound': '未找到预置演示账号',
|
|
70
|
+
'Medical.Login.LoginFailed': '登录失败,请检查 SDK 配置',
|
|
71
|
+
'Medical.Login.IntegrationHint': '当前为 integration 模式。请由业务系统通过 URL 注入 role、userId、appointmentId、token 等参数后进入。',
|
|
72
|
+
'Medical.Login.IntegrationInitFailed': '接入模式初始化失败',
|
|
73
|
+
|
|
74
|
+
'Medical.PatientSelect.Subtitle': '选择医生开始问诊',
|
|
75
|
+
'Medical.PatientSelect.Logout': '退出登录',
|
|
76
|
+
'Medical.PatientSelect.SearchPlaceholder': '搜索医生、科室或疾病',
|
|
77
|
+
'Medical.PatientSelect.Satisfaction': '满意度',
|
|
78
|
+
'Medical.PatientSelect.Experience': '从医经验',
|
|
79
|
+
'Medical.PatientSelect.Consultations': '接诊人次',
|
|
80
|
+
'Medical.PatientSelect.VideoConsultation': '视频问诊',
|
|
81
|
+
'Medical.PatientSelect.PerConsultation': '/次',
|
|
82
|
+
'Medical.PatientSelect.StartConsultation': '立即问诊',
|
|
83
|
+
|
|
84
|
+
'Medical.DoctorDashboard.Title': '医生工作台',
|
|
85
|
+
'Medical.DoctorDashboard.Subtitle': '医疗音视频场景化接入模板',
|
|
86
|
+
'Medical.DoctorDashboard.TodayAppointments': '今天有 {{count}} 个预约患者',
|
|
87
|
+
'Medical.DoctorDashboard.CurrentDoctor': '{{hospital}} · 当前登录医生 {{doctor}}',
|
|
88
|
+
'Medical.DoctorDashboard.Refreshing': '刷新中...',
|
|
89
|
+
'Medical.DoctorDashboard.RefreshToday': '刷新今日预约',
|
|
90
|
+
'Medical.DoctorDashboard.StatToday': '今日接诊',
|
|
91
|
+
'Medical.DoctorDashboard.StatWaiting': '待接诊',
|
|
92
|
+
'Medical.DoctorDashboard.StatRunning': '进行中',
|
|
93
|
+
'Medical.DoctorDashboard.StatSynced': '已同步房间',
|
|
94
|
+
'Medical.DoctorDashboard.ConsultationInvite': '会诊邀请',
|
|
95
|
+
'Medical.DoctorDashboard.Pending': '待处理',
|
|
96
|
+
'Medical.DoctorDashboard.InviteSummary': '{{doctor}}({{department}})邀请您参与患者 {{patient}} 的会诊',
|
|
97
|
+
'Medical.DoctorDashboard.ViewDetails': '查看详情',
|
|
98
|
+
'Medical.DoctorDashboard.Joining': '加入中...',
|
|
99
|
+
'Medical.DoctorDashboard.JoinNow': '立即加入',
|
|
100
|
+
'Medical.DoctorDashboard.WaitingPatients': '待接诊患者',
|
|
101
|
+
'Medical.DoctorDashboard.LoadingAppointments': '正在加载预约房间...',
|
|
102
|
+
'Medical.DoctorDashboard.SortByTime': '按预约时间排序',
|
|
103
|
+
'Medical.DoctorDashboard.All': '全部',
|
|
104
|
+
'Medical.DoctorDashboard.Waiting': '待接诊',
|
|
105
|
+
'Medical.DoctorDashboard.Running': '进行中',
|
|
106
|
+
'Medical.DoctorDashboard.PatientAge': '{{gender}} · {{age}}岁',
|
|
107
|
+
'Medical.DoctorDashboard.ConsultationRunning': '问诊进行中',
|
|
108
|
+
'Medical.DoctorDashboard.StartConsultation': '开始接诊',
|
|
109
|
+
'Medical.DoctorDashboard.InviteDetails': '会诊邀请详情',
|
|
110
|
+
'Medical.DoctorDashboard.AppointmentId': '预约编号:{{id}}',
|
|
111
|
+
'Medical.DoctorDashboard.InvitingDoctor': '邀请医生',
|
|
112
|
+
'Medical.DoctorDashboard.PatientInfo': '患者信息',
|
|
113
|
+
'Medical.DoctorDashboard.ChiefComplaint': '主诉',
|
|
114
|
+
'Medical.DoctorDashboard.AllergyHistory': '过敏史',
|
|
115
|
+
'Medical.DoctorDashboard.HandleLater': '稍后处理',
|
|
116
|
+
'Medical.DoctorDashboard.RefreshSuccess': '今日预约已刷新,可由客户替换为自有预约接口',
|
|
117
|
+
'Medical.DoctorDashboard.RefreshFailed': '预约刷新失败',
|
|
118
|
+
'Medical.DoctorDashboard.EnterFailed': '进入问诊房间失败,请重试',
|
|
119
|
+
'Medical.DoctorDashboard.JoinInviteFailed': '加入会诊失败,请稍后重试',
|
|
120
|
+
|
|
121
|
+
'Medical.PatientWaiting.InitialCallMessage': '医生暂未发起呼叫,请保持页面停留。',
|
|
122
|
+
'Medical.PatientWaiting.JoinFailed': '接入问诊失败,请重试。',
|
|
123
|
+
'Medical.PatientWaiting.RejectedMessage': '你已暂不接听本次呼叫,请等待医生再次发起。',
|
|
124
|
+
'Medical.PatientWaiting.CallingMessage': '{{doctor}} 正在呼叫你加入问诊。',
|
|
125
|
+
'Medical.PatientWaiting.CancelledMessage': '医生已取消本次呼叫。',
|
|
126
|
+
'Medical.PatientWaiting.TimeoutMessage': '本次呼叫已超时,请等待医生重新发起。',
|
|
127
|
+
'Medical.PatientWaiting.DoctorCalling': '医生正在呼叫',
|
|
128
|
+
'Medical.PatientWaiting.InviteToConsultation': '{{doctor}} 邀请您进入视频问诊',
|
|
129
|
+
'Medical.PatientWaiting.JoinLater': '稍后接入',
|
|
130
|
+
'Medical.PatientWaiting.Joining': '接入中...',
|
|
131
|
+
'Medical.PatientWaiting.JoinNow': '立即接入',
|
|
132
|
+
'Medical.PatientWaiting.Subtitle': '视频问诊候诊中',
|
|
133
|
+
'Medical.PatientWaiting.Title': '候诊中',
|
|
134
|
+
'Medical.PatientWaiting.Description': '请保持页面停留,医生准备好后将发起视频呼叫。',
|
|
135
|
+
'Medical.PatientWaiting.Flow': '问诊流程',
|
|
136
|
+
'Medical.PatientWaiting.StepAppointment': '1. 预约成功',
|
|
137
|
+
'Medical.PatientWaiting.StepAppointmentDesc': '已选择医生并提交预约',
|
|
138
|
+
'Medical.PatientWaiting.StepWaiting': '2. 等待接诊(当前)',
|
|
139
|
+
'Medical.PatientWaiting.StepWaitingDesc': '医生将很快接入视频',
|
|
140
|
+
'Medical.PatientWaiting.StepVideo': '3. 视频问诊',
|
|
141
|
+
'Medical.PatientWaiting.StepVideoDesc': '与医生面对面交流',
|
|
142
|
+
'Medical.PatientWaiting.StepPrescription': '4. 获取处方',
|
|
143
|
+
'Medical.PatientWaiting.StepPrescriptionDesc': '医生开具电子处方',
|
|
144
|
+
'Medical.PatientWaiting.AppointmentDetails': '预约详情',
|
|
145
|
+
'Medical.PatientWaiting.AppointmentTime': '预约时间',
|
|
146
|
+
'Medical.PatientWaiting.AppointmentId': '预约编号',
|
|
147
|
+
'Medical.PatientWaiting.ChiefComplaint': '主诉症状',
|
|
148
|
+
'Medical.PatientWaiting.Tip1': '• 请保持手机网络畅通,医生接诊时会自动进入视频',
|
|
149
|
+
'Medical.PatientWaiting.Tip2': '• 建议准备好既往病历、检查报告等资料',
|
|
150
|
+
'Medical.PatientWaiting.Tip3': '• 请在安静、光线充足的环境中进行视频问诊',
|
|
151
|
+
'Medical.PatientWaiting.Returning': '返回中...',
|
|
152
|
+
'Medical.PatientWaiting.BackToDoctors': '返回医生列表',
|
|
153
|
+
|
|
154
|
+
'Medical.Consultation.Title': '视频问诊工作台',
|
|
155
|
+
'Medical.Consultation.AppointmentId': '预约编号:{{id}}',
|
|
156
|
+
'Medical.Consultation.InCall': '通话中',
|
|
157
|
+
'Medical.Consultation.WaitingPatient': '等待患者',
|
|
158
|
+
'Medical.Consultation.NetworkGood': '网络良好',
|
|
159
|
+
'Medical.Consultation.PatientAge': '{{gender}} · {{age}}岁',
|
|
160
|
+
'Medical.Consultation.CallIdleHint': '点击呼叫患者,患者端将收到通知并自动接入',
|
|
161
|
+
'Medical.Consultation.ConnectingPatient': '正在连接 {{patient}}',
|
|
162
|
+
'Medical.Consultation.InvitePatientMessage': '{{doctor}}邀请您加入视频问诊',
|
|
163
|
+
'Medical.Consultation.CallPatientFailed': '呼叫患者失败',
|
|
164
|
+
'Medical.Consultation.CallCancelled': '本次呼叫已取消',
|
|
165
|
+
'Medical.Consultation.CancelCallFailed': '取消呼叫失败,请重试',
|
|
166
|
+
'Medical.Consultation.PatientAccepted': '{{patient}} 已接听',
|
|
167
|
+
'Medical.Consultation.PatientRejected': '{{patient}} 拒绝了问诊邀请',
|
|
168
|
+
'Medical.Consultation.PatientTimeout': '{{patient}} 未在规定时间内接听',
|
|
169
|
+
'Medical.Consultation.PatientJoined': '{{patient}} 已接入房间',
|
|
170
|
+
'Medical.Consultation.CallingPatient': '正在呼叫患者...',
|
|
171
|
+
'Medical.Consultation.PendingPatient': '待接诊患者',
|
|
172
|
+
'Medical.Consultation.CameraPreviewOff': '摄像头已关闭,可点击左下角按钮开启预览',
|
|
173
|
+
'Medical.Consultation.Calling': '呼叫中...',
|
|
174
|
+
'Medical.Consultation.CallPatient': '呼叫患者',
|
|
175
|
+
'Medical.Consultation.Canceling': '取消中...',
|
|
176
|
+
'Medical.Consultation.CancelCall': '取消呼叫',
|
|
177
|
+
'Medical.Consultation.PatientResponding': '患者正在响应并自动接入',
|
|
178
|
+
'Medical.Consultation.WaitPrimaryDoctor': '等待主治医生呼叫患者',
|
|
179
|
+
'Medical.Consultation.PatientAvatarFallback': '患',
|
|
180
|
+
'Medical.Consultation.ChiefComplaint': '主诉',
|
|
181
|
+
'Medical.Consultation.AllergyHistory': '过敏史',
|
|
182
|
+
'Medical.Consultation.MedicalHistory': '既往病史',
|
|
183
|
+
'Medical.Consultation.Phone': '联系电话',
|
|
184
|
+
'Medical.Consultation.FinishTitle': '确认结束问诊?',
|
|
185
|
+
'Medical.Consultation.FinishMessage': '结束后患者会离开当前视频问诊,并进入问诊完成页。请确认诊疗内容已沟通完成。',
|
|
186
|
+
'Medical.Consultation.ContinueConsultation': '继续问诊',
|
|
187
|
+
'Medical.Consultation.ConfirmFinish': '确认结束',
|
|
188
|
+
'Medical.Consultation.CameraOff': '{{role}}摄像头未开启',
|
|
189
|
+
'Medical.Consultation.Speaker': '扬声器',
|
|
190
|
+
'Medical.Consultation.Messages': '消息',
|
|
191
|
+
'Medical.Consultation.PatientBottomHint': '请根据医生指导进行描述,诊疗结束后可查看电子处方',
|
|
192
|
+
'Medical.Consultation.Transcription': '实时转写',
|
|
193
|
+
'Medical.Consultation.NoTranscription': '暂无转写内容,医生开启实时转写后将显示在这里',
|
|
194
|
+
'Medical.Consultation.AITranscribingTip': 'AI 自动转写中,仅供参考',
|
|
195
|
+
'Medical.Consultation.TextChat': '文字聊天',
|
|
196
|
+
'Medical.Consultation.DeviceRequest': '设备开启请求',
|
|
197
|
+
'Medical.Consultation.DeviceInviteTitle': '{{sender}}邀请你开启{{device}}',
|
|
198
|
+
'Medical.Consultation.InviteCancelled': '该邀请已被取消',
|
|
199
|
+
'Medical.Consultation.InviteTimeout': '该邀请已超时',
|
|
200
|
+
'Medical.Consultation.DeviceInviteAccepted': '已同意开启{{device}}',
|
|
201
|
+
'Medical.Consultation.DeviceInviteDeclined': '已拒绝开启{{device}}',
|
|
202
|
+
'Medical.Consultation.DeviceInviteProcessFailed': '处理邀请失败',
|
|
203
|
+
|
|
204
|
+
'Medical.Finished.Title': '问诊详情',
|
|
205
|
+
'Medical.Finished.Completed': '问诊已完成',
|
|
206
|
+
'Medical.Finished.Thanks': '感谢您的信任,祝您早日康复',
|
|
207
|
+
'Medical.Finished.Duration': '时长{{minutes}}分钟',
|
|
208
|
+
'Medical.Finished.ResultExample': '结果示例',
|
|
209
|
+
'Medical.Finished.ResultPlaceholder': '这里可展示客户业务系统回填的诊断结果',
|
|
210
|
+
'Medical.Finished.PrescriptionExample': '处方示例',
|
|
211
|
+
'Medical.Finished.RecordExample': '病历示例',
|
|
212
|
+
'Medical.Finished.PrescriptionDataExample': '处方数据示例',
|
|
213
|
+
'Medical.Finished.SampleNo': '示例编号:{{no}}',
|
|
214
|
+
|
|
215
|
+
'Medical.Data.Title': '检查资料',
|
|
216
|
+
'Medical.Data.Description': '患者上传的影像及检查报告',
|
|
217
|
+
'Medical.Data.FileCount': '{{count}} 个文件',
|
|
218
|
+
'Medical.Data.Upload': '上传检查资料',
|
|
219
|
+
'Medical.Data.UploadHint': '支持 JPG、PNG、PDF,单个文件不超过10MB',
|
|
220
|
+
'Medical.Data.EmptyTitle': '暂无检查资料',
|
|
221
|
+
'Medical.Data.EmptyDesc': '患者可在移动端上传检查报告',
|
|
222
|
+
'Medical.Data.SecurityTip': '所有资料将安全加密存储,仅医患双方可见',
|
|
223
|
+
'Medical.Data.BloodRoutine': '血常规',
|
|
224
|
+
'Medical.Data.CTImage': 'CT影像',
|
|
225
|
+
'Medical.Data.XRay': 'X光片',
|
|
226
|
+
'Medical.Data.ECG': '心电图',
|
|
227
|
+
'Medical.Data.BloodRoutineReport': '血常规检查报告.pdf',
|
|
228
|
+
'Medical.Data.ChestCTImage': '胸部CT影像.jpg',
|
|
229
|
+
'Medical.Data.ECGReport': '心电图报告.pdf',
|
|
230
|
+
|
|
231
|
+
'Medical.Prescription.Title': '处方表单示例',
|
|
232
|
+
'Medical.Prescription.Description': '客户可替换为自有处方系统或审核流',
|
|
233
|
+
'Medical.Prescription.AllergyWarning': '过敏史警告',
|
|
234
|
+
'Medical.Prescription.Diagnosis': '诊断信息',
|
|
235
|
+
'Medical.Prescription.DiagnosisPlaceholder': '请输入诊断(必填)',
|
|
236
|
+
'Medical.Prescription.MedicineIndex': '药品 {{index}}',
|
|
237
|
+
'Medical.Prescription.MedicineName': '药品名称 *',
|
|
238
|
+
'Medical.Prescription.MedicineNamePlaceholder': '请输入药品名称',
|
|
239
|
+
'Medical.Prescription.Spec': '规格',
|
|
240
|
+
'Medical.Prescription.SpecPlaceholder': '如:0.25g*24粒',
|
|
241
|
+
'Medical.Prescription.Dosage': '单次剂量',
|
|
242
|
+
'Medical.Prescription.DosagePlaceholder': '如:1粒',
|
|
243
|
+
'Medical.Prescription.Frequency': '频次',
|
|
244
|
+
'Medical.Prescription.QD': '每日1次',
|
|
245
|
+
'Medical.Prescription.BID': '每日2次',
|
|
246
|
+
'Medical.Prescription.TID': '每日3次',
|
|
247
|
+
'Medical.Prescription.QID': '每日4次',
|
|
248
|
+
'Medical.Prescription.QN': '睡前',
|
|
249
|
+
'Medical.Prescription.DurationDays': '用药天数',
|
|
250
|
+
'Medical.Prescription.DayPlaceholder': '天',
|
|
251
|
+
'Medical.Prescription.Quantity': '总量',
|
|
252
|
+
'Medical.Prescription.AutoCalculate': '自动计算',
|
|
253
|
+
'Medical.Prescription.Usage': '用法',
|
|
254
|
+
'Medical.Prescription.Oral': '口服',
|
|
255
|
+
'Medical.Prescription.External': '外用',
|
|
256
|
+
'Medical.Prescription.Injection': '注射',
|
|
257
|
+
'Medical.Prescription.Nebulization': '雾化吸入',
|
|
258
|
+
'Medical.Prescription.AddMedicine': '添加药品',
|
|
259
|
+
'Medical.Prescription.CommonMedicines': '常用药品',
|
|
260
|
+
'Medical.Prescription.Guidance': '用药指导',
|
|
261
|
+
'Medical.Prescription.Guidance1': '请按医嘱规定剂量和时间服药',
|
|
262
|
+
'Medical.Prescription.Guidance2': '如出现不适请立即停药并联系医生',
|
|
263
|
+
'Medical.Prescription.Guidance3': '妥善保存药品,注意有效期',
|
|
264
|
+
'Medical.Prescription.FooterTip': '当前仅演示表单结构与提交流程,实际审核与购药逻辑建议接入客户系统',
|
|
265
|
+
'Medical.Prescription.SubmitAlert': '已触发处方示例提交,请在上层接入客户业务系统',
|
|
266
|
+
'Medical.Prescription.Amoxicillin': '阿莫西林胶囊',
|
|
267
|
+
'Medical.Prescription.Ibuprofen': '布洛芬缓释胶囊',
|
|
268
|
+
'Medical.Prescription.Ambroxol': '氨溴索口服液',
|
|
269
|
+
'Medical.Prescription.Montmorillonite': '蒙脱石散',
|
|
270
|
+
'Medical.Prescription.Antibiotic': '抗生素',
|
|
271
|
+
'Medical.Prescription.Antipyretic': '解热镇痛',
|
|
272
|
+
'Medical.Prescription.Expectorant': '化痰止咳',
|
|
273
|
+
'Medical.Prescription.Antidiarrheal': '止泻',
|
|
274
|
+
'Medical.Prescription.AmoxicillinSpec': '0.25g*24粒',
|
|
275
|
+
'Medical.Prescription.IbuprofenSpec': '0.3g*20粒',
|
|
276
|
+
'Medical.Prescription.AmbroxolSpec': '15mg/5ml*100ml',
|
|
277
|
+
'Medical.Prescription.MontmorilloniteSpec': '3g*10袋',
|
|
278
|
+
'Medical.Prescription.DosageOneCapsule': '1粒',
|
|
279
|
+
'Medical.Prescription.Quantity21': '21粒',
|
|
280
|
+
|
|
281
|
+
'Medical.Business.Workspace': '业务工作区',
|
|
282
|
+
'Medical.Business.WorkspaceDesc': '中间区域用于承载 EMR、病历、处方、PACS 等客户自有业务系统。',
|
|
283
|
+
'Medical.Business.RecordTab': '病历表单示例',
|
|
284
|
+
'Medical.Business.PrescriptionTab': '处方表单示例',
|
|
285
|
+
'Medical.Business.DataTab': '检查资料示例',
|
|
286
|
+
'Medical.Business.SlotTab': '业务插槽',
|
|
287
|
+
'Medical.Business.SlotDesc': '这里建议由客户前端团队接入自有的 EMR、HIS、PACS、处方审核或随访表单。音视频主链路、会诊协同、即时呼叫和聊天转录由 SDK 场景模板承载。',
|
|
288
|
+
'Medical.Business.Left': '左侧',
|
|
289
|
+
'Medical.Business.Center': '中间',
|
|
290
|
+
'Medical.Business.Right': '右侧',
|
|
291
|
+
'Medical.Business.LeftDesc': '音视频画面与设备控制',
|
|
292
|
+
'Medical.Business.CenterDesc': '客户业务系统插槽',
|
|
293
|
+
'Medical.Business.RightDesc': '会诊协同、聊天、转录、成员管理',
|
|
294
|
+
'Medical.Business.EMRHISPACSSlot': 'EMR / HIS / PACS 业务插槽',
|
|
295
|
+
|
|
296
|
+
'Medical.Record.ReplaceDesc': '客户可替换为自有 EMR / HIS 表单',
|
|
297
|
+
'Medical.Record.SlotExample': '业务插槽示例',
|
|
298
|
+
'Medical.Record.PatientLabel': '患者:',
|
|
299
|
+
'Medical.Record.PresentIllness': '现病史',
|
|
300
|
+
'Medical.Record.PastHistory': '既往史',
|
|
301
|
+
'Medical.Record.PhysicalExam': '体格检查',
|
|
302
|
+
'Medical.Record.Temperature': '体温 (℃)',
|
|
303
|
+
'Medical.Record.Pulse': '脉搏 (次/分)',
|
|
304
|
+
'Medical.Record.BloodPressure': '血压 (mmHg)',
|
|
305
|
+
'Medical.Record.Respiration': '呼吸 (次/分)',
|
|
306
|
+
'Medical.Record.AuxiliaryExam': '辅助检查',
|
|
307
|
+
'Medical.Record.InitialDiagnosis': '初步诊断',
|
|
308
|
+
'Medical.Record.ICD10': '查询ICD-10编码',
|
|
309
|
+
'Medical.Record.Treatment': '处理意见',
|
|
310
|
+
'Medical.Record.FollowUp': '复诊建议',
|
|
311
|
+
'Medical.Record.ChiefComplaintPlaceholder': '请描述患者主要症状及持续时间',
|
|
312
|
+
'Medical.Record.PresentIllnessPlaceholder': '详细描述发病经过、症状变化、既往诊疗情况等',
|
|
313
|
+
'Medical.Record.PastHistoryPlaceholder': '既往疾病史、手术史、外伤史等',
|
|
314
|
+
'Medical.Record.AllergyPlaceholder': '药物过敏、食物过敏等,如无请填写"无"',
|
|
315
|
+
'Medical.Record.AuxiliaryExamPlaceholder': '血常规、影像学检查等结果',
|
|
316
|
+
'Medical.Record.DiagnosisPlaceholder': '请输入诊断结果',
|
|
317
|
+
'Medical.Record.TreatmentPlaceholder': '治疗方案、医嘱、注意事项等',
|
|
318
|
+
'Medical.Record.SubmitDemo': '提交示例数据',
|
|
319
|
+
'Medical.Record.Preview': '预览',
|
|
320
|
+
'Medical.Record.FooterTip': '当前仅演示表单结构与提交流程,实际提交逻辑建议接入客户业务系统',
|
|
321
|
+
'Medical.Record.Option3Days': '3天后',
|
|
322
|
+
'Medical.Record.Option1Week': '1周后',
|
|
323
|
+
'Medical.Record.Option2Weeks': '2周后',
|
|
324
|
+
'Medical.Record.Option1Month': '1个月后',
|
|
325
|
+
'Medical.Record.SaveAlert': '已触发病历示例提交,请在上层接入客户业务系统',
|
|
326
|
+
|
|
327
|
+
'Medical.Manage.Chat': '聊天',
|
|
328
|
+
'Medical.Manage.Transcribe': '转写',
|
|
329
|
+
'Medical.Manage.Members': '成员',
|
|
330
|
+
'Medical.Manage.PendingJoin': '待加入',
|
|
331
|
+
'Medical.Manage.PrimaryDoctor': '主诊医生',
|
|
332
|
+
'Medical.Manage.UnknownMember': '未知成员',
|
|
333
|
+
'Medical.Manage.MemberManagement': '成员管理',
|
|
334
|
+
'Medical.Manage.MemberCount': '{{count}} 人',
|
|
335
|
+
'Medical.Manage.InviteDoctor': '邀请会诊医生',
|
|
336
|
+
'Medical.Manage.KickMember': '踢出成员',
|
|
337
|
+
'Medical.Manage.ClosePatientCamera': '关闭患者摄像头',
|
|
338
|
+
'Medical.Manage.InvitePatientCamera': '邀请患者打开摄像头',
|
|
339
|
+
'Medical.Manage.ClosePatientMicrophone': '关闭患者麦克风',
|
|
340
|
+
'Medical.Manage.InvitePatientMicrophone': '邀请患者打开麦克风',
|
|
341
|
+
'Medical.Manage.CancelInvite': '取消邀请',
|
|
342
|
+
'Medical.Manage.PermissionTip1': '主治医生拥有邀请、移出和患者设备管理权限',
|
|
343
|
+
'Medical.Manage.PermissionTip2': '会诊医生可发言、聊天和查看转写',
|
|
344
|
+
'Medical.Manage.PermissionTip3': '患者仅可参与视频通话',
|
|
345
|
+
'Medical.Manage.TranscriptionTitle': '实时语音转写',
|
|
346
|
+
'Medical.Manage.Transcribing': '转写中',
|
|
347
|
+
'Medical.Manage.StartTranscription': '开启转写',
|
|
348
|
+
'Medical.Manage.RealtimeTranscribing': '实时转写中',
|
|
349
|
+
'Medical.Manage.TranscriptCount': '{{count}}条对话',
|
|
350
|
+
'Medical.Manage.WaitingSpeech': '等待语音输入...',
|
|
351
|
+
'Medical.Manage.ClickStartTranscription': '点击上方按钮开启实时转写',
|
|
352
|
+
'Medical.Manage.TranscriptionFooterTip': '支持实时转写内容复制与导出',
|
|
353
|
+
'Medical.Manage.SearchDoctorPlaceholder': '搜索医生姓名或科室',
|
|
354
|
+
'Medical.Manage.NoInviteDoctor': '未找到可邀请的医生',
|
|
355
|
+
'Medical.Manage.TranscriberClosed': '实时转写已关闭',
|
|
356
|
+
'Medical.Manage.TranscriberStarted': '实时转写已开启',
|
|
357
|
+
'Medical.Manage.TranscriberFailed': '转写操作失败',
|
|
358
|
+
'Medical.Manage.NoCopyContent': '暂无可复制内容',
|
|
359
|
+
'Medical.Manage.Copied': '内容已复制到剪贴板',
|
|
360
|
+
'Medical.Manage.CopyFailed': '复制失败,请检查浏览器权限',
|
|
361
|
+
'Medical.Manage.NoExportContent': '暂无可导出内容',
|
|
362
|
+
'Medical.Manage.Exported': '内容已导出',
|
|
363
|
+
'Medical.Manage.NoInvitePermission': '当前角色无权邀请会诊医生',
|
|
364
|
+
'Medical.Manage.NotInRoomInvite': '当前不在房间中,暂时无法邀请会诊医生',
|
|
365
|
+
'Medical.Manage.InviteExtension': '{{doctor}}邀请您加入会诊',
|
|
366
|
+
'Medical.Manage.InviteSent': '邀请已发送,等待对方接听',
|
|
367
|
+
'Medical.Manage.InviteFailed': '邀请失败,请稍后重试',
|
|
368
|
+
'Medical.Manage.NoCancelInvitePermission': '当前角色无权取消会诊邀请',
|
|
369
|
+
'Medical.Manage.NotInRoomCancelInvite': '当前不在房间中,暂时无法取消邀请',
|
|
370
|
+
'Medical.Manage.InviteCancelled': '已取消邀请',
|
|
371
|
+
'Medical.Manage.CancelInviteFailed': '取消邀请失败,请稍后重试',
|
|
372
|
+
'Medical.Manage.InvitedPatientOpenDevice': '已邀请患者开启{{device}}',
|
|
373
|
+
'Medical.Manage.InviteOpenDeviceFailed': '邀请开启{{device}}失败',
|
|
374
|
+
'Medical.Manage.CancelledPatientDeviceInvite': '已取消患者{{device}}邀请',
|
|
375
|
+
'Medical.Manage.CancelDeviceInviteFailed': '取消{{device}}邀请失败',
|
|
376
|
+
'Medical.Manage.ClosedPatientDevice': '已关闭患者{{device}}',
|
|
377
|
+
'Medical.Manage.CloseDeviceFailed': '关闭{{device}}失败',
|
|
378
|
+
'Medical.Manage.NoKickPermission': '当前角色无权移出成员',
|
|
379
|
+
'Medical.Manage.MemberKicked': '成员已移出房间',
|
|
380
|
+
'Medical.Manage.KickFailed': '移出成员失败,请稍后重试',
|
|
381
|
+
'Medical.Manage.PatientAcceptedDeviceInvite': '患者已接受{{device}}邀请',
|
|
382
|
+
'Medical.Manage.PatientDeclinedDeviceInvite': '患者已拒绝{{device}}邀请',
|
|
383
|
+
'Medical.Manage.DeviceInviteTimeout': '{{device}}邀请已超时',
|
|
384
|
+
'Medical.Manage.DeviceInviteCancelled': '{{device}}邀请已取消',
|
|
385
|
+
'Medical.Chat.EncryptedNotice': '对话内容已加密,可直接与患者实时沟通。当前仅展示会诊场景文本消息。',
|
|
386
|
+
'Medical.Chat.Empty': '暂无聊天消息',
|
|
387
|
+
'Medical.Chat.Initializing': '正在初始化会话...',
|
|
388
|
+
'Medical.Chat.InputPlaceholder': '输入消息...',
|
|
389
|
+
'Medical.Chat.MessageCount': '{{count}} 条消息',
|
|
390
|
+
'Medical.Chat.SessionInitFailed': '会话初始化失败',
|
|
391
|
+
'Medical.Chat.MessageSendFailed': '消息发送失败',
|
|
392
|
+
|
|
393
|
+
'Medical.Device.Microphone': '麦克风',
|
|
394
|
+
'Medical.Device.Camera': '摄像头',
|
|
395
|
+
'Medical.Device.OpenFailed': '{{device}}开启失败。请检查浏览器是否允许访问{{device}}、系统隐私权限是否开启,并确认设备未被其他应用占用。{{message}}',
|
|
396
|
+
'Medical.Device.ErrorInfo': '错误信息:{{message}}',
|
|
397
|
+
'Medical.Device.PermissionHint': '{{devices}}未成功开启。请检查浏览器权限、系统隐私设置,并确认设备未被其他应用占用。',
|
|
398
|
+
|
|
399
|
+
'Medical.Message.ImageMessage': '[图片消息]',
|
|
400
|
+
'Medical.Message.VideoMessage': '[视频消息]',
|
|
401
|
+
'Medical.Message.FileMessage': '[文件消息]',
|
|
402
|
+
'Medical.Message.UnsupportedMessage': '[暂不支持的消息类型]',
|
|
403
|
+
|
|
404
|
+
'Medical.Config.SDKConfigError': '请先在 src/config/basic-info-config.ts 中配置 SDKAPPID 和 SDKSECRETKEY',
|
|
405
|
+
'Medical.Config.SDKConfigErrorWithUserSig': '请先在 src/config/basic-info-config.ts 中配置 SDKAPPID 和 SDKSECRETKEY,正式环境请由业务服务端签发 UserSig',
|
|
406
|
+
|
|
407
|
+
'Medical.Member.ConfirmKickTitle': '确认踢出成员',
|
|
408
|
+
'Medical.Member.ConfirmKickMessage': '确定将 {{userName}} 移出当前问诊房间吗?',
|
|
409
|
+
'Medical.Member.ConfirmButton': '确认踢出',
|
|
410
|
+
'Medical.Member.CancelButton': '取消',
|
|
411
|
+
'Medical.Member.ProcessingButton': '处理中...',
|
|
412
|
+
|
|
413
|
+
'Medical.LanguageSwitch.ChineseLang': '中文',
|
|
414
|
+
|
|
415
|
+
'Medical.Mock.DoctorLi': '李医生',
|
|
416
|
+
'Medical.Mock.DoctorWang': '王医生',
|
|
417
|
+
'Medical.Mock.DoctorZhang': '张医生',
|
|
418
|
+
'Medical.Mock.PatientZhang': '张晓明',
|
|
419
|
+
'Medical.Mock.PatientLi': '李美华',
|
|
420
|
+
'Medical.Mock.ChiefPhysician': '主任医师',
|
|
421
|
+
'Medical.Mock.AssociateChiefPhysician': '副主任医师',
|
|
422
|
+
'Medical.Mock.AttendingPhysician': '主治医师',
|
|
423
|
+
'Medical.Mock.Cardiology': '心内科',
|
|
424
|
+
'Medical.Mock.Respiratory': '呼吸内科',
|
|
425
|
+
'Medical.Mock.Gastroenterology': '消化内科',
|
|
426
|
+
'Medical.Mock.TertiaryHospital': '示例三甲医院',
|
|
427
|
+
'Medical.Mock.InternetHospital': '示例互联网医院',
|
|
428
|
+
'Medical.Mock.SpecialtyHospital': '示例专科医院',
|
|
429
|
+
'Medical.Mock.Years20': '20年',
|
|
430
|
+
'Medical.Mock.Years15': '15年',
|
|
431
|
+
'Medical.Mock.Years10': '10年',
|
|
432
|
+
'Medical.Mock.Hypertension': '高血压',
|
|
433
|
+
'Medical.Mock.Coronary': '冠心病',
|
|
434
|
+
'Medical.Mock.Arrhythmia': '心律失常',
|
|
435
|
+
'Medical.Mock.Cough': '咳嗽',
|
|
436
|
+
'Medical.Mock.Asthma': '哮喘',
|
|
437
|
+
'Medical.Mock.Pneumonia': '肺炎',
|
|
438
|
+
'Medical.Mock.Gastritis': '胃炎',
|
|
439
|
+
'Medical.Mock.GastricUlcer': '胃溃疡',
|
|
440
|
+
'Medical.Mock.Indigestion': '消化不良',
|
|
441
|
+
'Medical.Mock.ChronicCare': '复诊问诊与慢病管理',
|
|
442
|
+
'Medical.Mock.RespiratoryFollowUp': '呼吸系统在线复诊',
|
|
443
|
+
'Medical.Mock.GastroFollowUp': '胃肠健康随访',
|
|
444
|
+
'Medical.Mock.Male': '男',
|
|
445
|
+
'Medical.Mock.Female': '女',
|
|
446
|
+
'Medical.Mock.None': '无',
|
|
447
|
+
'Medical.Mock.Unknown': '未知',
|
|
448
|
+
'Medical.Mock.CoughFever': '持续咳嗽、低热 3 天',
|
|
449
|
+
'Medical.Mock.NightCough': '夜间咳嗽、轻微气喘',
|
|
450
|
+
'Medical.Mock.Reflux': '饭后胃胀、反酸',
|
|
451
|
+
'Medical.Mock.DizzyPalpitations': '头晕、心悸',
|
|
452
|
+
'Medical.Mock.ThroatCough': '反复咽痒、清晨咳嗽',
|
|
453
|
+
'Medical.Mock.AbdominalPain': '腹部隐痛、食欲下降',
|
|
454
|
+
'Medical.Mock.PenicillinAllergy': '青霉素过敏',
|
|
455
|
+
'Medical.Mock.PollenAllergy': '花粉过敏',
|
|
456
|
+
'Medical.Mock.NoMajorHistory': '无重大疾病史',
|
|
457
|
+
'Medical.Mock.AllergicRhinitis': '过敏性鼻炎',
|
|
458
|
+
'Medical.Mock.ChronicGastritis': '慢性胃炎',
|
|
459
|
+
'Medical.Mock.ThyroidNodule': '甲状腺结节',
|
|
460
|
+
'Medical.Mock.MildAsthma': '轻度哮喘',
|
|
461
|
+
'Medical.Mock.IntegrationChiefComplaint': '示例主诉,请替换为客户预约系统返回的诊前信息',
|
|
462
|
+
'Medical.Mock.IntegrationBusinessData': '请替换为客户业务数据',
|
|
463
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createApp } from 'vue';
|
|
2
|
+
import App from './App.vue';
|
|
3
|
+
import router from './router';
|
|
4
|
+
import { bootstrapSession } from './utils/auth';
|
|
5
|
+
import './styles/index.css';
|
|
6
|
+
|
|
7
|
+
async function bootstrapApp() {
|
|
8
|
+
await bootstrapSession();
|
|
9
|
+
createApp(App).use(router).mount('#app');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
void bootstrapApp();
|