diff --git a/healthlink-his-ui/src/i18n/locales/enUS.json b/healthlink-his-ui/src/i18n/locales/enUS.json index be5a5fa8f..5ad629e62 100644 --- a/healthlink-his-ui/src/i18n/locales/enUS.json +++ b/healthlink-his-ui/src/i18n/locales/enUS.json @@ -686,5 +686,416 @@ "hospitalizationError": "An error occurred during hospitalization, please try again later!", "infectiousReportSaved": "Infectious disease report saved successfully", "defaultDepartment": "Cardiology" + }, + "triage": { + "title": "Smart Triage Queue Management", + "exit": "Exit", + "backendConfig": "Backend Config", + "candidatePoolTitle": "① Smart Candidate Pool (Checked-in, Not Queued)", + "seqNo": "No.", + "patient": "Patient", + "age": "Age", + "ticketType": "Ticket Type", + "room": "Room", + "doctor": "Doctor", + "matchedRule": "Matched Rule", + "addToQueue": "Add to Queue >>", + "addAllToQueue": "Add All to Queue", + "queueTitle": "② Smart Queue (All Depts)", + "selectDate": "Select Date", + "query": "Query", + "today": "Today", + "queueOrder": "Queue #", + "waiting": "Waiting", + "status": "Status", + "removeFromQueue": "<< Remove from Queue", + "roomFilterTitle": "③ Room Quick Filter", + "all": "All", + "showOnlyWaiting": "Show Waiting Only", + "showAllStatus": "Show All Status", + "callPanelTitle": "④ Call Control Panel", + "currentCall": "Current Call", + "selectCall": "Select Call", + "nextPatient": "Next Patient", + "skip": "Skip", + "complete": "Complete", + "requeue": "Requeue", + "ledLabel": "⑤ LED", + "pleaseGoTo": "please go to", + "voiceLabel": "Voice", + "voiceCallText": "Number {number}, {name}, please go to {room} ({type})", + "ruleConfigTitle": "Smart Triage Rule Engine Config - Cardiology", + "addRule": "Add Rule", + "saveAll": "Save All", + "testRule": "Test Rule", + "rule": "Rule", + "ruleName": "Rule Name", + "placeholderRuleName": "Enter rule name", + "department": "Department", + "cardiology": "Cardiology", + "ruleDesc": "Rule Description", + "placeholderRuleDesc": "Enter rule description", + "priority": "Priority", + "weekDayActive": "Effective Days", + "conditionExpr": "Condition Expression(JSON)", + "quickGenerator": "Quick Generator", + "syntaxCheck": "Syntax Check", + "ageCondition": "Age Condition", + "clear": "Clear", + "ticketTypeLabel": "Ticket Type", + "placeholderSelectTicketType": "Select ticket type", + "expert": "Expert", + "normal": "Normal", + "specialNeeds": "Special", + "emergency": "Emergency", + "placeholderSelectDept": "Select department", + "cardiacSurgery": "Cardiac Surgery", + "neurology": "Neurology", + "placeholderDoctor": "Enter doctor name (fuzzy match)", + "customCondition": "Custom Condition", + "placeholderFieldName": "Field name (e.g. gender)", + "placeholderFieldValue": "Field value (e.g. Male)", + "previewJson": "Preview JSON", + "apply": "Apply", + "weekMon": "Mon", + "weekTue": "Tue", + "weekWed": "Wed", + "weekThu": "Thu", + "weekFri": "Fri", + "weekSat": "Sat", + "weekSun": "Sun", + "statusWaiting": "Waiting", + "statusCalling": "Calling", + "statusInConsultation": "In Consultation", + "statusCompleted": "Completed", + "statusSkipped": "Skipped", + "statusRefunded": "Refunded", + "statusFollowUp": "Follow-up", + "newRule": "New Rule", + "msgDataLoaded": "Data loaded from outpatient registration", + "msgSelectPatientToAdd": "Please select patients to add to queue first", + "msgAddedToQueue": "Successfully added {count} patient(s) to queue (saved)", + "msgAlreadyInQueue": "Selected patients already in queue, removed from candidate pool", + "msgAddFailed": "Failed to add to queue, please retry", + "msgAddFailedUnsaved": "Failed to add to queue (unsaved)", + "msgNoCandidates": "No patients in candidate pool", + "msgAllAlreadyInQueue": "All candidate patients already in queue, removed from pool", + "msgAddAllFailed": "Failed to add all, please retry", + "msgAddAllFailedUnsaved": "Failed to add all (unsaved)", + "msgRefreshed": "Refreshed (queue restored from database)", + "msgSelectQueryDate": "Please select a query date", + "msgLoadedHistory": "Loaded queue data for {date}", + "msgSwitchedToToday": "Switched to today's queue", + "msgExitNotImpl": "Exit feature not yet implemented", + "msgSelectPatientInQueue": "Please select a patient from the right queue first", + "msgMissingIdSelectCall": "Queue item missing ID, cannot save. Please refresh the page", + "msgAlreadyCalling": "This patient is already in \"Calling\" status", + "msgCanOnlyCallWaiting": "Can only call \"Waiting\" patients, current status: \"{status}\"", + "msgSelectCalledWithCount": "Select-call saved, {count} patient(s) currently calling", + "msgSelectCalledSingle": "Select-call saved", + "msgSelectCallFailed": "Select-call failed (unsaved)", + "msgNextCalled": "Next patient called (saved)", + "msgNoWaitingPatient": "No \"Waiting\" patients in current scope", + "msgSkipped": "Skipped (saved)", + "msgNoCallingPatient": "No \"Calling\" patients", + "msgCompleted": "Completed (saved)", + "msgRequeued": "Requeued (saved)", + "msgNoWaitingPatientRequeue": "No waiting patients", + "msgFillRuleNameAndPriority": "Please fill in rule name and priority", + "msgSelectWeekDays": "Please select effective days", + "msgJsonSyntaxError": "Condition expression JSON syntax error", + "msgRuleSaved": "Current rule saved", + "msgAllRulesSaved": "All rules saved (frontend simulation)", + "msgSyntaxCheckPassed": "Syntax check passed", + "msgAtLeastOneCondition": "Please set at least one condition", + "msgConditionApplied": "Condition expression generated and applied", + "msgTestRulePlaceholder": "Test rule feature pending backend integration", + "msgSelectPatientToRemove": "Please select a patient to remove from queue first", + "msgMissingIdRemove": "Queue item missing ID, cannot save delete. Please refresh", + "msgRemovedFromQueue": "{name} removed from queue, patient reappeared in candidate pool (saved)", + "msgRemoveFailed": "Failed to remove from queue (unsaved)", + "msgMissingIdSort": "Queue item missing ID, cannot save sort. Please refresh", + "msgOrderAdjusted": "Queue order adjusted (saved)", + "msgOrderAdjustFailed": "Queue order adjustment failed (unsaved)" + }, + "pharmacy": { + "patientInfo": "Patient Info", + "placeholderNameOrId": "Enter name/ID number", + "dispenseStatus": "Dispense Status", + "placeholderSelectDispenseStatus": "Select dispense status", + "visitDate": "Visit Date", + "startDate": "Start Date", + "endDate": "End Date", + "name": "Name", + "gender": "Gender", + "age": "Age", + "phone": "Phone", + "visitDateCol": "Visit Date", + "preparer": "Preparer", + "placeholderPreparer": "Preparer", + "drugCategory": "Drug Category", + "placeholderDrugCategory": "Drug Category", + "westernChinese": "Western/Chinese Patent", + "chinese": "Chinese Herbal", + "project": "Project", + "placeholderProject": "Project", + "all": "All", + "drug": "Drug", + "consumable": "Consumable", + "batchDispense": "Batch Dispense", + "scan": "Scan", + "prescriptionPrint": "Print Prescription", + "totalAmount": "Total Amount", + "prescriptionNo": "Prescription No.", + "diagnosis": "Diagnosis", + "prescriptionType": "Prescription Type", + "itemName": "Item Name", + "merchandiseName": "Merchandise Name", + "dispenseQty": "Dispense Qty", + "lotNumber": "Lot Number", + "dispenseStatusCol": "Dispense Status", + "days": "Days", + "spec": "Spec", + "traceNo": "Trace No.", + "placeholderTraceNo": "Enter trace number", + "amount": "Amount", + "dispensePharmacy": "Dispense Pharmacy", + "manufacturer": "Manufacturer", + "orderingDoctor": "Ordering Doctor", + "frequency": "Frequency", + "usage": "Usage", + "operation": "Action", + "dispense": "Dispense", + "void": "Void", + "selectVoidReason": "Select Void Reason", + "placeholderSelectVoidReason": "Select void reason", + "confirm": "OK", + "cancel": "Cancel", + "printWarningNoTable": "Table not initialized, please refresh and retry", + "printWarningNoSelect": "No items selected for printing, print failed", + "printWarningNoData": "Failed to get print data, please retry later", + "printFailed": "Prescription print failed", + "msgDispenseSuccess": "Dispensed successfully", + "msgDispenseFailed": "Dispense failed", + "msgNoMatchTraceNo": "No trace number matched in inventory, please scan individually in the dispense list", + "msgOperationFailed": "Operation failed", + "msgInsufficientStock": "Insufficient stock for this lot", + "msgQtyExceedsTotal": "Dispense quantity cannot exceed total quantity", + "msgQtyBelowTotal": "Dispense quantity cannot be less than total quantity", + "msgSelectDispenseItem": "No items selected for dispensing, please reselect", + "msgSelectVoidReason": "Please select a void reason", + "msgNoDataSelected": "No data selected", + "voiding": "Voiding...", + "yuan": "yuan", + "remaining": "remaining", + "expDate": "exp" + }, + "billing": { + "patientList": "Patient List", + "searchPlaceholder": "Enter patient name/medical record no.", + "searchPlaceholderName": "Enter patient name", + "chargeStatus": "Charge Status", + "startTime": "Start Time", + "endTime": "End Time", + "search": "Search", + "medicalRecordNo": "Medical Record No.", + "name": "Name", + "basicInfo": "Basic Info", + "gender": "Gender", + "age": "Age", + "department": "Department", + "visitTime": "Visit Time", + "chargeItems": "Charge Items", + "confirmCharge": "Confirm Charge", + "electronicCertificate": "E-Certificate", + "idCard": "ID Card", + "medicalInsuranceCard": "Insurance Card", + "insuranceToSelf": "Insurance to Self-Pay", + "selfToInsurance": "Self-Pay to Insurance", + "studentInsuranceToSelf": "Student Insurance to Self-Pay", + "studentSelfToInsurance": "Student Self-Pay to Insurance", + "totalAmount": "Total Amount", + "docNo": "Doc No.", + "itemName": "Charge Item", + "quantity": "Qty", + "medicalType": "Medical Type", + "insuranceCode": "Insurance Code", + "feeNature": "Fee Nature", + "amount": "Amount", + "cashier": "Cashier", + "operation": "Action", + "print": "Print", + "yuan": "yuan", + "chargeDate": "Charge Date", + "receivableAmount": "Receivable", + "refundAmount": "Refundable", + "discountAmount": "Discount", + "payMethod": "Payment Method", + "selectPayMethod": "Select Payment", + "payAmount": "Pay Amount", + "refundMethod": "Refund Method", + "selectRefundMethod": "Select Refund", + "refundAmountLabel": "Refund Amount", + "addPayMethod": "Add Payment Method", + "addRefundMethod": "Add Refund Method", + "amountSatisfied": "Amount satisfied, cannot add more", + "refundAmountSatisfied": "Amount satisfied, cannot add more", + "discount": "Discount", + "wechatPay": "Scan to Pay", + "viewResult": "View Result", + "payType": "Payment Type", + "actualTotal": "Actual Total", + "refundTotal": "Refund Total", + "changeAmount": "Change", + "confirm": "Confirm", + "cancel": "Cancel", + "selectChargeItem": "Please select a charge item", + "preSettleFail": "Pre-settlement failed", + "enterCorrectAmount": "Please enter correct amount", + "chargeFail": "Charge failed", + "chargeFailRetry": "Charge failed, please retry", + "printFail": "Print failed", + "opSuccess": "Operation successful", + "outpatientChargeDetail": "Outpatient Charge Detail", + "outpatientChargeReceipt": "Outpatient Charge Receipt", + "refundReason": "Refund Reason", + "enterReason": "Enter reason", + "enterReasonPlaceholder": "Enter reason", + "refundConfirm": "Confirm Refund", + "refundDate": "Refund Date", + "refundDocNo": "Payment Doc No.", + "itemDocNo": "Item Doc No.", + "itemNameCol": "Item Name", + "chargeStatusCol": "Charge Status", + "paymentTotal": "Payment Total", + "refundItem": "Refund", + "encounterNo": "Encounter No.", + "refundDocs": "Refund Documents", + "enterCorrectRefundAmount": "Please enter correct amount", + "invoiceNo": "Invoice No.", + "invoiceStatus": "Invoice Status", + "issued": "Issued", + "notIssued": "Not Issued", + "settleTime": "Settlement Time", + "startDate": "Start Date", + "endDate": "End Date", + "query": "Query", + "reset": "Reset", + "total": "Total", + "success": "Success", + "batchIssue": "Batch Issue", + "payStatus": "Pay Status", + "feeType": "Fee Type", + "insuranceSettleId": "Insurance Settle ID", + "chargeSerialNo": "Charge Serial No.", + "settleAmount": "Settle Amount", + "payAmountCol": "Pay Amount", + "settleTimeCol": "Settle Time", + "payResult": "Pay Result", + "printCount": "Print Count", + "chargeDetail": "Charge Detail", + "issueInvoice": "Issue E-Invoice", + "writeoffInvoice": "Writeoff Invoice", + "viewInvoice": "View Invoice", + "payDetail": "Payment Type", + "change": "Change", + "payment": "Payment", + "writeoffReason": "Writeoff Reason", + "writeoffSuccess": "Writeoff successful", + "patientBasicInfo": "Patient Basic Info", + "surgeryNo": "Surgery No.", + "surgeryName": "Surgery Name", + "cardRenewal": "Card Renewal", + "patientQuery": "Patient Query(Q)", + "confirmBtn": "Confirm (O)", + "closeBtn": "Close (C)", + "patientNameLabel": "Patient Name:", + "idCardLabel": "ID Card No.:", + "phoneLabel": "Phone No.:", + "outpatientNo": "Outpatient No.", + "newOutpatientNo": "New Outpatient No.:", + "enterNewOutpatientNo": "Enter new outpatient no.", + "patientArchiveQuery": "Patient Archive Query", + "confirmSelect": "Confirm(Q)", + "closeSelect": "Close(C)", + "birthDate": "Birth Date", + "seqNo": "No.", + "patientName": "Patient Name", + "searchPlaceholderPatient": "Enter patient name", + "payBusNo": "Payment No.", + "txnAmount": "Amount(Yuan)", + "txnType": "Transaction Type", + "payTypeCol": "Pay Method", + "txnTime": "Transaction Time", + "origTxnType": "Original Type", + "thirdPartyDiscount": "3rd Party Discount", + "errorMsg": "Error Message", + "queryResult": "Query Result", + "queryResultMsg": "Result Description", + "payResultQuery": "Pay Result Query", + "nextDayRefund": "Next-Day Refund", + "refundResultQuery": "Refund Result Query", + "registerChargeRecord": "Schedule", + "schedule": "Schedule", + "detail": "Detail", + "normal": "Normal", + "disabled": "Disabled", + "nameCol": "Name", + "dateCol": "Date", + "statusCol": "Status", + "wechat": "WeChat", + "alipay": "Alipay", + "unionpay": "UnionPay", + "cash": "Cash", + "discountLabel": "Discount", + "selfPay": "Self-Pay", + "enterCashAmount": "Enter cash amount", + "payMethodPlaceholder": " payment QR code", + "reading": "Reading...", + "patientCardRenewalSuccess": "Card Renewal Success", + "patientRenewalSuccessMsg": "Patient card renewal completed successfully!", + "pleaseEnterQuery": "Please enter at least one query condition", + "autoSelectUnique": "Auto-selected the only patient", + "noPatientFound": "No patient found", + "queryFail": "Query failed", + "queryFailRetry": "Query failed, please retry later", + "selectPatient": "Please select a patient", + "selectPatientWarning": "Patient selected, please click confirm", + "patientRenewalSuccess": "Card renewal successful!", + "patientRenewalFail": "Card renewal failed", + "patientRenewalFailCardExists": "Card renewal failed, card number already exists", + "closeConfirm": "Are you sure to close this page?", + "cancelClose": "Close cancelled", + "newCardNoCannotSame": "New card number cannot be the same as the original", + "pleaseQueryPatient": "Please query patient info first", + "registerChargeRecordTitle": "Registration Charge Records", + "reprintRegistration": "Reprint Registration", + "reprintTitle": "Registration Slip Reprint", + "reprintSubtitle": "Reprinting will invalidate the original slip and generate a new one", + "doctorName": "Doctor Name", + "serialNo": "Serial No.", + "totalLabel": "Total", + "medicalRecordFee": "Medical Record Fee", + "printTime": "Print Time", + "visitTimeLabel": "Appointment/Registration Time", + "enterCardNoSearch": "Enter card number to search", + "regRecordSelect": "Registration Record Selection", + "enterCardNo": "Please enter card number", + "noRegRecord": "No registration records found, please check the card number", + "queryFailMsg": "Query failed: {msg}", + "queryError": "Query error: {error}", + "reprintSuccess": "Reprint successful", + "reprintFail": "Reprint failed", + "reprintFailMsg": "Reprint failed: {error}", + "selectRegRecordFirst": "Please search and select a registration record first", + "printSuccess": "Print successful", + "printFailMsg": "Print failed: {error}", + "selectRegRecord": "Please select a registration record", + "getRegIdFail": "Failed to get registration record ID, please retry", + "processFail": "Processing failed: {error}", + "statusReserved": "Reserved", + "statusCompleted": "Completed", + "statusCancelled": "Cancelled", + "statusInProgress": "In Progress" } } diff --git a/healthlink-his-ui/src/i18n/locales/viVN.json b/healthlink-his-ui/src/i18n/locales/viVN.json index 9ed16e57b..aa5709491 100644 --- a/healthlink-his-ui/src/i18n/locales/viVN.json +++ b/healthlink-his-ui/src/i18n/locales/viVN.json @@ -686,5 +686,416 @@ "hospitalizationError": "Đã xảy ra lỗi trong quá trình nhập viện, vui lòng thử lại sau!", "infectiousReportSaved": "Lưu thẻ báo cáo bệnh truyền nhiễm thành công", "defaultDepartment": "Khoa Tim Mạch" + }, + "triage": { + "title": "Quản Lý Hàng Chờ Phân Loại Thông Minh", + "exit": "Thoát", + "backendConfig": "Cấu Hình Backend", + "candidatePoolTitle": "① Hồ Ứng Viên Thông Minh (Đã Check-in, Chưa Vào Hàng Chờ)", + "seqNo": "STT", + "patient": "Bệnh Nhân", + "age": "Tuổi", + "ticketType": "Loại Vé", + "room": "Phòng", + "doctor": "Bác Sĩ", + "matchedRule": "Quy Tắc Khớp", + "addToQueue": "Thêm Vào Hàng Chờ >>", + "addAllToQueue": "Thêm Tất Cả Vào Hàng Chờ", + "queueTitle": "② Hàng Chờ Thông Minh (Tất Cả Khoa)", + "selectDate": "Chọn Ngày", + "query": "Tìm Kiếm", + "today": "Hôm Nay", + "queueOrder": "STT Chờ", + "waiting": "Đang Chờ", + "status": "Trạng Thái", + "removeFromQueue": "<< Rời Khỏi Hàng Chờ", + "roomFilterTitle": "③ Lọc Nhanh Theo Phòng", + "all": "Tất Cả", + "showOnlyWaiting": "Chỉ Hiện Đang Chờ", + "showAllStatus": "Hiện Tất Cả Trạng Thái", + "callPanelTitle": "④ Bảng Điều Khiển Gọi Số", + "currentCall": "Đang Gọi", + "selectCall": "Gọi Chọn", + "nextPatient": "Bệnh Nhân Tiếp", + "skip": "Bỏ Qua", + "complete": "Hoàn Thành", + "requeue": "Xếp Lại", + "ledLabel": "⑤ LED", + "pleaseGoTo": "vui lòng đến", + "voiceLabel": "Giọng Nói", + "voiceCallText": "Số {number}, {name}, vui lòng đến {room} ({type})", + "ruleConfigTitle": "Cấu Hình Động Cơ Quy Tắc Phân Loại - Tim Mạch", + "addRule": "Thêm Quy Tắc", + "saveAll": "Lưu Tất Cả", + "testRule": "Thử Nghiệm Quy Tắc", + "rule": "Quy Tắc", + "ruleName": "Tên Quy Tắc", + "placeholderRuleName": "Nhập tên quy tắc", + "department": "Khoa", + "cardiology": "Tim Mạch", + "ruleDesc": "Mô Tả Quy Tắc", + "placeholderRuleDesc": "Nhập mô tả quy tắc", + "priority": "Ưu Tiên", + "weekDayActive": "Ngày Hiệu Lực", + "conditionExpr": "Biểu Thức Điều Kiện(JSON)", + "quickGenerator": "Tạo Nhanh", + "syntaxCheck": "Kiểm Tra Cú Pháp", + "ageCondition": "Điều Kiện Tuổi", + "clear": "Xóa", + "ticketTypeLabel": "Loại Vé", + "placeholderSelectTicketType": "Chọn loại vé", + "expert": "Chuyên Gia", + "normal": "Bình Thường", + "specialNeeds": "Đặc Biệt", + "emergency": "Cấp Cứu", + "placeholderSelectDept": "Chọn khoa", + "cardiacSurgery": "Phẫu Thuật Tim", + "neurology": "Thần Kinh", + "placeholderDoctor": "Nhập tên bác sĩ (tìm mờ)", + "customCondition": "Điều Kiện Tùy Chỉnh", + "placeholderFieldName": "Tên trường (vd: gender)", + "placeholderFieldValue": "Giá trị (vd: Nam)", + "previewJson": "Xem Trước JSON", + "apply": "Áp Dụng", + "weekMon": "T2", + "weekTue": "T3", + "weekWed": "T4", + "weekThu": "T5", + "weekFri": "T6", + "weekSat": "T7", + "weekSun": "CN", + "statusWaiting": "Đang Chờ", + "statusCalling": "Đang Gọi", + "statusInConsultation": "Đang Khám", + "statusCompleted": "Hoàn Thành", + "statusSkipped": "Bỏ Qua", + "statusRefunded": "Đã Hoàn Phí", + "statusFollowUp": "Tái Khám", + "newRule": "Quy Tắc Mới", + "msgDataLoaded": "Đã tải dữ liệu từ đăng ký khám bệnh", + "msgSelectPatientToAdd": "Vui lòng chọn bệnh nhân để thêm vào hàng chờ", + "msgAddedToQueue": "Đã thêm {count} bệnh nhân vào hàng chờ (đã lưu)", + "msgAlreadyInQueue": "Bệnh nhân đã có trong hàng chờ, đã xóa khỏi hồ ứng viên", + "msgAddFailed": "Thêm vào hàng chờ thất bại, vui lòng thử lại", + "msgAddFailedUnsaved": "Thêm vào hàng chờ thất bại (chưa lưu)", + "msgNoCandidates": "Không có bệnh nhân trong hồ ứng viên", + "msgAllAlreadyInQueue": "Tất cả bệnh nhân đã có trong hàng chờ", + "msgAddAllFailed": "Thêm tất cả thất bại, vui lòng thử lại", + "msgAddAllFailedUnsaved": "Thêm tất cả thất bại (chưa lưu)", + "msgRefreshed": "Đã làm mới (hàng chờ đã khôi phục từ CSDL)", + "msgSelectQueryDate": "Vui lòng chọn ngày truy vấn", + "msgLoadedHistory": "Đã tải dữ liệu hàng chờ ngày {date}", + "msgSwitchedToToday": "Đã chuyển sang hàng chờ hôm nay", + "msgExitNotImpl": "Chức năng thoát chưa được triển khai", + "msgSelectPatientInQueue": "Vui lòng chọn bệnh nhân từ hàng chờ bên phải", + "msgMissingIdSelectCall": "Mục hàng chờ thiếu ID, không thể lưu. Vui lòng tải lại trang", + "msgAlreadyCalling": "Bệnh nhân này đang ở trạng thái \"Đang Gọi\"", + "msgCanOnlyCallWaiting": "Chỉ có thể gọi bệnh nhân \"Đang Chờ\", trạng thái hiện tại: \"{status}\"", + "msgSelectCalledWithCount": "Đã gọi chọn (đã lưu), hiện có {count} bệnh nhân đang được gọi", + "msgSelectCalledSingle": "Đã gọi chọn (đã lưu)", + "msgSelectCallFailed": "Gọi chọn thất bại (chưa lưu)", + "msgNextCalled": "Đã gọi bệnh nhân tiếp theo (đã lưu)", + "msgNoWaitingPatient": "Không có bệnh nhân \"Đang Chờ\" trong phạm vi", + "msgSkipped": "Đã bỏ qua (đã lưu)", + "msgNoCallingPatient": "Không có bệnh nhân \"Đang Gọi\"", + "msgCompleted": "Đã hoàn thành (đã lưu)", + "msgRequeued": "Đã xếp lại (đã lưu)", + "msgNoWaitingPatientRequeue": "Không có bệnh nhân đang chờ", + "msgFillRuleNameAndPriority": "Vui lòng điền tên quy tắc và mức ưu tiên", + "msgSelectWeekDays": "Vui lòng chọn ngày hiệu lực", + "msgJsonSyntaxError": "Lỗi cú pháp JSON biểu thức điều kiện", + "msgRuleSaved": "Đã lưu quy tắc hiện tại", + "msgAllRulesSaved": "Đã lưu tất cả quy tắc (mô phỏng frontend)", + "msgSyntaxCheckPassed": "Kiểm tra cú pháp thành công", + "msgAtLeastOneCondition": "Vui lòng đặt ít nhất một điều kiện", + "msgConditionApplied": "Biểu thức điều kiện đã được tạo và áp dụng", + "msgTestRulePlaceholder": "Chức năng thử nghiệm quy tắc đang chờ tích hợp backend", + "msgSelectPatientToRemove": "Vui lòng chọn bệnh nhân để rời khỏi hàng chờ", + "msgMissingIdRemove": "Mục hàng chờ thiếu ID, không thể xóa. Vui lòng tải lại", + "msgRemovedFromQueue": "Đã xóa {name} khỏi hàng chờ, bệnh nhân đã xuất hiện lại trong hồ (đã lưu)", + "msgRemoveFailed": "Rời khỏi hàng chờ thất bại (chưa lưu)", + "msgMissingIdSort": "Mục hàng chờ thiếu ID, không thể lưu sắp xếp. Vui lòng tải lại", + "msgOrderAdjusted": "Đã điều chỉnh thứ tự hàng chờ (đã lưu)", + "msgOrderAdjustFailed": "Điều chỉnh thứ tự thất bại (chưa lưu)" + }, + "pharmacy": { + "patientInfo": "Thông Tin Bệnh Nhân", + "placeholderNameOrId": "Nhập tên/số giấy tờ", + "dispenseStatus": "Trạng Thái Phát Thuốc", + "placeholderSelectDispenseStatus": "Chọn trạng thái phát thuốc", + "visitDate": "Ngày Khám", + "startDate": "Ngày Bắt Đầu", + "endDate": "Ngày Kết Thúc", + "name": "Họ Tên", + "gender": "Giới Tính", + "age": "Tuổi", + "phone": "Điện Thoại", + "visitDateCol": "Ngày Khám", + "preparer": "Dược Sĩ Pha Chế", + "placeholderPreparer": "Dược Sĩ Pha Chế", + "drugCategory": "Phân Loại Thuốc", + "placeholderDrugCategory": "Phân Loại Thuốc", + "westernChinese": "Tây Y/Thuốc Hoàn", + "chinese": "Thuốc Nam", + "project": "Dự Án", + "placeholderProject": "Dự Án", + "all": "Tất Cả", + "drug": "Thuốc", + "consumable": "Vật Tư", + "batchDispense": "Phát Hàng Loạt", + "scan": "Quét Mã", + "prescriptionPrint": "In Đơn Thuốc", + "totalAmount": "Tổng Tiền", + "prescriptionNo": "Số Đơn", + "diagnosis": "Chẩn Đoán", + "prescriptionType": "Loại Đơn", + "itemName": "Tên Mục", + "merchandiseName": "Tên Hàng Hóa", + "dispenseQty": "SL Phát", + "lotNumber": "Số Lô", + "dispenseStatusCol": "Trạng Thái", + "days": "Số Ngày", + "spec": "Quy Cách", + "traceNo": "Mã Truy Xuất", + "placeholderTraceNo": "Nhập mã truy xuất", + "amount": "Thành Tiền", + "dispensePharmacy": "Nhà Thuốc", + "manufacturer": "Nhà Sản Xuất", + "orderingDoctor": "Bác Sĩ Kê Đơn", + "frequency": "Tần Suất", + "usage": "Cách Dùng", + "operation": "Thao Tác", + "dispense": "Phát", + "void": "Hủy", + "selectVoidReason": "Chọn Lý Do Hủy", + "placeholderSelectVoidReason": "Chọn lý do hủy", + "confirm": "Xác Nhận", + "cancel": "Hủy Bỏ", + "printWarningNoTable": "Bảng chưa sẵn sàng, vui lòng tải lại", + "printWarningNoSelect": "Chưa chọn mục để in, in thất bại", + "printWarningNoData": "Lấy dữ liệu in thất bại, vui lòng thử lại", + "printFailed": "In đơn thuốc thất bại", + "msgDispenseSuccess": "Phát thuốc thành công", + "msgDispenseFailed": "Phát thuốc thất bại", + "msgNoMatchTraceNo": "Không khớp mã truy xuất trong kho, vui lòng quét riêng trong danh sách", + "msgOperationFailed": "Thao tác thất bại", + "msgInsufficientStock": "Tồn kho lô này không đủ", + "msgQtyExceedsTotal": "Số lượng phát không được vượt quá tổng", + "msgQtyBelowTotal": "Số lượng phát không được nhỏ hơn tổng", + "msgSelectDispenseItem": "Chưa chọn mục để phát, vui lòng chọn lại", + "msgSelectVoidReason": "Vui lòng chọn lý do hủy", + "msgNoDataSelected": "Chưa chọn dữ liệu", + "voiding": "Đang hủy...", + "yuan": "đ", + "remaining": "còn lại", + "expDate": "HSD" + }, + "billing": { + "patientList": "Danh sách bệnh nhân", + "searchPlaceholder": "Nhập tên/số bệnh án", + "searchPlaceholderName": "Nhập tên bệnh nhân", + "chargeStatus": "Trạng thái thu phí", + "startTime": "Thời gian bắt đầu", + "endTime": "Thời gian kết thúc", + "search": "Tìm kiếm", + "medicalRecordNo": "Số bệnh án", + "name": "Họ tên", + "basicInfo": "Thông tin cơ bản", + "gender": "Giới tính", + "age": "Tuổi", + "department": "Khoa", + "visitTime": "Thời gian khám", + "chargeItems": "Dịch vụ thu phí", + "confirmCharge": "Xác nhận thu phí", + "electronicCertificate": "Chứng từ điện tử", + "idCard": "CCCD", + "medicalInsuranceCard": "Thẻ BHYT", + "insuranceToSelf": "BHYT sang tự trả", + "selfToInsurance": "Tự trả sang BHYT", + "studentInsuranceToSelf": "BHYT sinh viên sang tự trả", + "studentSelfToInsurance": "Tự trả sang BHYT sinh viên", + "totalAmount": "Tổng cộng", + "docNo": "Số chứng từ", + "itemName": "Dịch vụ", + "quantity": "Số lượng", + "medicalType": "Loại y tế", + "insuranceCode": "Mã BHYT", + "feeNature": "Tính chất phí", + "amount": "Số tiền", + "cashier": "Thu ngân", + "operation": "Thao tác", + "print": "In", + "yuan": "đ", + "chargeDate": "Ngày thu phí", + "receivableAmount": "Số tiền phải thu", + "refundAmount": "Số tiền hoàn", + "discountAmount": "Giảm giá", + "payMethod": "Phương thức thanh toán", + "selectPayMethod": "Chọn phương thức", + "payAmount": "Số tiền thanh toán", + "refundMethod": "Phương thức hoàn tiền", + "selectRefundMethod": "Chọn phương thức", + "refundAmountLabel": "Số tiền hoàn", + "addPayMethod": "Thêm phương thức", + "addRefundMethod": "Thêm phương thức", + "amountSatisfied": "Đã đủ số tiền, không thể thêm", + "refundAmountSatisfied": "Đã đủ số tiền, không thể thêm", + "discount": "Giảm giá", + "wechatPay": "Quét mã thanh toán", + "viewResult": "Xem kết quả", + "payType": "Loại thanh toán", + "actualTotal": "Tổng thực thu", + "refundTotal": "Tổng hoàn lại", + "changeAmount": "Tiền thừa", + "confirm": "Xác nhận", + "cancel": "Hủy", + "selectChargeItem": "Vui lòng chọn dịch vụ", + "preSettleFail": "Tính trước thất bại", + "enterCorrectAmount": "Vui lòng nhập đúng số tiền", + "chargeFail": "Thu phí thất bại", + "chargeFailRetry": "Thu phí thất bại, vui lòng thử lại", + "printFail": "In thất bại", + "opSuccess": "Thao tác thành công", + "outpatientChargeDetail": "Chi tiết thu phí ngoại trú", + "outpatientChargeReceipt": "Biên lai thu phí ngoại trú", + "refundReason": "Lý do hoàn tiền", + "enterReason": "Nhập lý do", + "enterReasonPlaceholder": "Nhập lý do", + "refundConfirm": "Xác nhận hoàn tiền", + "refundDate": "Ngày hoàn tiền", + "refundDocNo": "Số CT thanh toán", + "itemDocNo": "Số CT dịch vụ", + "itemNameCol": "Tên dịch vụ", + "chargeStatusCol": "Trạng thái thu phí", + "paymentTotal": "Tổng thanh toán", + "refundItem": "Hoàn tiền", + "encounterNo": "Số khám", + "refundDocs": "Chứng từ hoàn", + "enterCorrectRefundAmount": "Vui lòng nhập đúng số tiền", + "invoiceNo": "Số hóa đơn", + "invoiceStatus": "Trạng thái hóa đơn", + "issued": "Đã phát hành", + "notIssued": "Chưa phát hành", + "settleTime": "Thời gian thanh toán", + "startDate": "Ngày bắt đầu", + "endDate": "Ngày kết thúc", + "query": "Tìm kiếm", + "reset": "Đặt lại", + "total": "Tổng", + "success": "Thành công", + "batchIssue": "Phát hành hàng loạt", + "payStatus": "Trạng thái TT", + "feeType": "Loại phí", + "insuranceSettleId": "Mã QT BHYT", + "chargeSerialNo": "Số serial thu phí", + "settleAmount": "Số tiền thanh toán", + "payAmountCol": "Số tiền TT", + "settleTimeCol": "Thời gian TT", + "payResult": "Kết quả TT", + "printCount": "Số lần in", + "chargeDetail": "Chi tiết thu phí", + "issueInvoice": "Phát hành HĐ điện tử", + "writeoffInvoice": "Hủy hóa đơn", + "viewInvoice": "Xem hóa đơn", + "payDetail": "Loại thanh toán", + "change": "Tiền thừa", + "payment": "Thanh toán", + "writeoffReason": "Lý do hủy", + "writeoffSuccess": "Hủy thành công", + "patientBasicInfo": "Thông tin BN cơ bản", + "surgeryNo": "Số phẫu thuật", + "surgeryName": "Tên phẫu thuật", + "cardRenewal": "Đổi thẻ", + "patientQuery": "Tìm BN (Q)", + "confirmBtn": "Xác nhận (O)", + "closeBtn": "Đóng (C)", + "patientNameLabel": "Tên BN:", + "idCardLabel": "Số CCCD:", + "phoneLabel": "Số ĐT:", + "outpatientNo": "Số ngoại trú", + "newOutpatientNo": "Số ngoại trú mới:", + "enterNewOutpatientNo": "Nhập số ngoại trú mới", + "patientArchiveQuery": "Tìm kiếm hồ sơ BN", + "confirmSelect": "Xác nhận(Q)", + "closeSelect": "Đóng(C)", + "birthDate": "Ngày sinh", + "seqNo": "STT", + "patientName": "Tên bệnh nhân", + "searchPlaceholderPatient": "Nhập tên bệnh nhân", + "payBusNo": "Số thanh toán", + "txnAmount": "Số tiền(đ)", + "txnType": "Loại giao dịch", + "payTypeCol": "Phương thức TT", + "txnTime": "Thời gian GD", + "origTxnType": "Loại GD gốc", + "thirdPartyDiscount": "KM bên thứ 3", + "errorMsg": "Thông báo lỗi", + "queryResult": "KQ tìm kiếm", + "queryResultMsg": "Mô tả KQ", + "payResultQuery": "Truy vấn KQ TT", + "nextDayRefund": "Hoàn ngày sau", + "refundResultQuery": "Truy vấn KQ hoàn", + "registerChargeRecord": "Lịch trực", + "schedule": "Lịch trực", + "detail": "Chi tiết", + "normal": "Bình thường", + "disabled": "Tắt", + "nameCol": "Tên", + "dateCol": "Ngày", + "statusCol": "Trạng thái", + "wechat": "WeChat", + "alipay": "Alipay", + "unionpay": "UnionPay", + "cash": "Tiền mặt", + "discountLabel": "Giảm giá", + "selfPay": "Tự trả", + "enterCashAmount": "Nhập số tiền mặt", + "payMethodPlaceholder": " mã QR thanh toán", + "reading": "Đang đọc...", + "patientCardRenewalSuccess": "Đổi thẻ thành công", + "patientRenewalSuccessMsg": "Đổi thẻ bệnh nhân thành công!", + "pleaseEnterQuery": "Vui lòng nhập ít nhất một điều kiện", + "autoSelectUnique": "Đã tự động chọn BN duy nhất", + "noPatientFound": "Không tìm thấy bệnh nhân", + "queryFail": "Tìm kiếm thất bại", + "queryFailRetry": "Tìm kiếm thất bại, vui lòng thử lại", + "selectPatient": "Vui lòng chọn bệnh nhân", + "selectPatientWarning": "Đã chọn BN, vui lòng nhấn xác nhận", + "patientRenewalSuccess": "Đổi thẻ thành công!", + "patientRenewalFail": "Đổi thẻ thất bại", + "patientRenewalFailCardExists": "Đổi thẻ thất bại, số thẻ đã tồn tại", + "closeConfirm": "Bạn có chắc muốn đóng trang này?", + "cancelClose": "Đã hủy thao tác đóng", + "newCardNoCannotSame": "Số thẻ mới không được trùng số cũ", + "pleaseQueryPatient": "Vui lòng tìm thông tin BN trước", + "registerChargeRecordTitle": "Lịch sử thu phí đăng ký", + "reprintRegistration": "In lại phiếu đăng ký", + "reprintTitle": "In lại phiếu đăng ký khám", + "reprintSubtitle": "In lại sẽ hủy phiếu cũ và tạo phiếu mới", + "doctorName": "Tên bác sĩ", + "serialNo": "Số serial", + "totalLabel": "Tổng cộng", + "medicalRecordFee": "Phí bệnh án", + "printTime": "Thời gian in", + "visitTimeLabel": "Thời gian hẹn/đăng ký", + "enterCardNoSearch": "Nhập số thẻ để tìm kiếm", + "regRecordSelect": "Chọn bản ghi đăng ký", + "enterCardNo": "Vui lòng nhập số thẻ", + "noRegRecord": "Không tìm thấy bản ghi đăng ký, vui lòng kiểm tra số thẻ", + "queryFailMsg": "Tìm kiếm thất bại: {msg}", + "queryError": "Lỗi tìm kiếm: {error}", + "reprintSuccess": "In lại thành công", + "reprintFail": "In lại thất bại", + "reprintFailMsg": "In lại thất bại: {error}", + "selectRegRecordFirst": "Vui lòng tìm và chọn bản ghi đăng ký trước", + "printSuccess": "In thành công", + "printFailMsg": "In thất bại: {error}", + "selectRegRecord": "Vui lòng chọn một bản ghi đăng ký", + "getRegIdFail": "Lấy ID bản ghi thất bại, vui lòng thử lại", + "processFail": "Xử lý thất bại: {error}", + "statusReserved": "Đã đặt", + "statusCompleted": "Hoàn thành", + "statusCancelled": "Đã hủy", + "statusInProgress": "Đang xử lý" } } diff --git a/healthlink-his-ui/src/i18n/locales/zhCN.json b/healthlink-his-ui/src/i18n/locales/zhCN.json index 9b95466fe..d6f60d153 100644 --- a/healthlink-his-ui/src/i18n/locales/zhCN.json +++ b/healthlink-his-ui/src/i18n/locales/zhCN.json @@ -685,5 +685,416 @@ "hospitalizationError": "办理住院过程中发生错误,请稍后重试!", "infectiousReportSaved": "传染病报告卡保存成功", "defaultDepartment": "心内科" + }, + "triage": { + "title": "智能分诊排队管理", + "exit": "退出", + "backendConfig": "后台配置", + "candidatePoolTitle": "① 智能候选池 (已签到未入队)", + "seqNo": "序号", + "patient": "患者", + "age": "年龄", + "ticketType": "号别", + "room": "诊室", + "doctor": "医生", + "matchedRule": "命中规则", + "addToQueue": "加入队列 >>", + "addAllToQueue": "一键加入队列", + "queueTitle": "② 智能队列 (全科)", + "selectDate": "选择日期", + "query": "查询", + "today": "今天", + "queueOrder": "队序", + "waiting": "等待", + "status": "状态", + "removeFromQueue": "<< 移出队列", + "roomFilterTitle": "③ 诊室快速过滤栏", + "all": "全部", + "showOnlyWaiting": "只显示等待", + "showAllStatus": "显示全部状态", + "callPanelTitle": "④ 叫号控制板", + "currentCall": "当前呼叫", + "selectCall": "选呼", + "nextPatient": "下一患者", + "skip": "跳过", + "complete": "完成", + "requeue": "过号重排", + "ledLabel": "⑤ LED", + "pleaseGoTo": "请到", + "voiceLabel": "语音", + "voiceCallText": "请{number}号{name}到{room}({type})", + "ruleConfigTitle": "智能分诊规则引擎配置 - 心内科", + "addRule": "新增规则", + "saveAll": "保存全部", + "testRule": "测试规则", + "rule": "规则", + "ruleName": "规则名称", + "placeholderRuleName": "请输入规则名称", + "department": "科室", + "cardiology": "心内科", + "ruleDesc": "规则描述", + "placeholderRuleDesc": "请输入规则描述", + "priority": "优先级", + "weekDayActive": "周几生效", + "conditionExpr": "条件表达式(JSON)", + "quickGenerator": "快速生成器", + "syntaxCheck": "语法检查", + "ageCondition": "年龄条件", + "clear": "清除", + "ticketTypeLabel": "号别/类型", + "placeholderSelectTicketType": "请选择号别", + "expert": "专家", + "normal": "普通", + "specialNeeds": "特需", + "emergency": "急诊", + "placeholderSelectDept": "请选择科室", + "cardiacSurgery": "心外科", + "neurology": "神经内科", + "placeholderDoctor": "请输入医生姓名(支持模糊匹配)", + "customCondition": "自定义条件", + "placeholderFieldName": "字段名(如:gender)", + "placeholderFieldValue": "字段值(如:男)", + "previewJson": "预览JSON", + "apply": "应用", + "weekMon": "一", + "weekTue": "二", + "weekWed": "三", + "weekThu": "四", + "weekFri": "五", + "weekSat": "六", + "weekSun": "日", + "statusWaiting": "等待", + "statusCalling": "叫号中", + "statusInConsultation": "就诊中", + "statusCompleted": "已完成", + "statusSkipped": "跳过", + "statusRefunded": "已退费", + "statusFollowUp": "已随访", + "newRule": "新规则", + "msgDataLoaded": "已从门诊挂号接口加载数据", + "msgSelectPatientToAdd": "请先选择要加入队列的患者", + "msgAddedToQueue": "成功将 {count} 位患者加入队列(已保存)", + "msgAlreadyInQueue": "所选患者已在队列中,已从候选池移除", + "msgAddFailed": "加入队列失败,请重试", + "msgAddFailedUnsaved": "加入队列失败(未保存)", + "msgNoCandidates": "候选池中没有患者", + "msgAllAlreadyInQueue": "所有候选池患者已在队列中,已从候选池移除", + "msgAddAllFailed": "一键加入失败,请重试", + "msgAddAllFailedUnsaved": "一键加入失败(未保存)", + "msgRefreshed": "已刷新(已从数据库恢复队列)", + "msgSelectQueryDate": "请选择查询日期", + "msgLoadedHistory": "已加载 {date} 的队列数据", + "msgSwitchedToToday": "已切换到今天队列", + "msgExitNotImpl": "退出功能待实现", + "msgSelectPatientInQueue": "请先在右侧队列中选择一个患者", + "msgMissingIdSelectCall": "该队列项缺少ID,无法保存选呼,请先刷新页面", + "msgAlreadyCalling": "该患者已经是\"叫号中\"状态", + "msgCanOnlyCallWaiting": "只能选呼\"等待\"状态的患者,当前患者状态为:\"{status}\"", + "msgSelectCalledWithCount": "已选呼(已保存),当前共有 {count} 位患者处于\"叫号中\"状态", + "msgSelectCalledSingle": "已选呼(已保存)", + "msgSelectCallFailed": "选呼失败(未保存)", + "msgNextCalled": "已呼叫下一位(已保存)", + "msgNoWaitingPatient": "当前范围内没有\"等待\"的患者", + "msgSkipped": "已跳过(已保存)", + "msgNoCallingPatient": "当前没有\"叫号中\"的患者", + "msgCompleted": "已完成(已保存)", + "msgRequeued": "已过号重排(已保存)", + "msgNoWaitingPatientRequeue": "当前没有等待中的患者", + "msgFillRuleNameAndPriority": "请填写规则名称和优先级", + "msgSelectWeekDays": "请选择生效周几", + "msgJsonSyntaxError": "条件表达式 JSON 语法错误", + "msgRuleSaved": "当前规则已保存", + "msgAllRulesSaved": "全部规则已保存(前端模拟)", + "msgSyntaxCheckPassed": "语法检查通过", + "msgAtLeastOneCondition": "请至少设置一个条件", + "msgConditionApplied": "条件表达式已生成并应用", + "msgTestRulePlaceholder": "测试规则功能待接入后端,当前为占位", + "msgSelectPatientToRemove": "请先选择要移出队列的患者", + "msgMissingIdRemove": "该队列项缺少ID,无法保存删除,请先刷新页面", + "msgRemovedFromQueue": "已将 {name} 移出队列,患者已重新出现在候选池中(已保存)", + "msgRemoveFailed": "移出队列失败(未保存)", + "msgMissingIdSort": "该队列项缺少ID,无法保存排序,请先刷新页面", + "msgOrderAdjusted": "队列顺序已调整(已保存)", + "msgOrderAdjustFailed": "队列顺序调整失败(未保存)" + }, + "pharmacy": { + "patientInfo": "患者信息", + "placeholderNameOrId": "请输入姓名/证件号", + "dispenseStatus": "发药状态", + "placeholderSelectDispenseStatus": "请选择发药状态", + "visitDate": "就诊日期", + "startDate": "开始日期", + "endDate": "结束日期", + "name": "姓名", + "gender": "性别", + "age": "年龄", + "phone": "电话", + "visitDateCol": "就诊日期", + "preparer": "调配药师", + "placeholderPreparer": "调配药师", + "drugCategory": "药品分类", + "placeholderDrugCategory": "药品分类", + "westernChinese": "西药中成药", + "chinese": "中药", + "project": "项目", + "placeholderProject": "项目", + "all": "全部", + "drug": "药品", + "consumable": "耗材", + "batchDispense": "批量发药", + "scan": "扫码", + "prescriptionPrint": "处方打印", + "totalAmount": "总金额", + "prescriptionNo": "处方号", + "diagnosis": "诊断", + "prescriptionType": "处方类型", + "itemName": "项目名称", + "merchandiseName": "商品名称", + "dispenseQty": "发药数量", + "lotNumber": "批次号", + "dispenseStatusCol": "发药状态", + "days": "天数", + "spec": "规格", + "traceNo": "追溯码", + "placeholderTraceNo": "请输入追溯码", + "amount": "金额", + "dispensePharmacy": "发药药房", + "manufacturer": "生产厂家", + "orderingDoctor": "开单医生", + "frequency": "频次", + "usage": "用法", + "operation": "操作", + "dispense": "发药", + "void": "作废", + "selectVoidReason": "选择作废原因", + "placeholderSelectVoidReason": "请选择作废原因", + "confirm": "确定", + "cancel": "取消", + "printWarningNoTable": "表格组件未初始化,请刷新页面重试", + "printWarningNoSelect": "未选择要打印的项目,请重新选择,打印失败", + "printWarningNoData": "获取打印数据失败,请稍后重试", + "printFailed": "处方打印失败", + "msgDispenseSuccess": "发药成功", + "msgDispenseFailed": "发药失败", + "msgNoMatchTraceNo": "未在库存中匹配到追溯码,请在发药列表中单独扫描", + "msgOperationFailed": "操作失败", + "msgInsufficientStock": "当前批次库存不足", + "msgQtyExceedsTotal": "发药数量不能大于总数量", + "msgQtyBelowTotal": "发药数量不能小于总数量", + "msgSelectDispenseItem": "未选择要发药的项目,请重新选择,发药失败", + "msgSelectVoidReason": "请选择作废原因", + "msgNoDataSelected": "未选择数据", + "voiding": "作废中...", + "yuan": "元", + "remaining": "剩余", + "expDate": "有效期至" + }, + "billing": { + "patientList": "患者列表", + "searchPlaceholder": "请输入患者名/病历号", + "searchPlaceholderName": "请输入患者名", + "chargeStatus": "收费状态", + "startTime": "开始时间", + "endTime": "结束时间", + "search": "搜索", + "medicalRecordNo": "病历号", + "name": "姓名", + "basicInfo": "基本信息", + "gender": "性别", + "age": "年龄", + "department": "科室", + "visitTime": "就诊时间", + "chargeItems": "收费项目", + "confirmCharge": "确认收费", + "electronicCertificate": "电子凭证", + "idCard": "身份证", + "medicalInsuranceCard": "医保卡", + "insuranceToSelf": "医保转自费", + "selfToInsurance": "自费转医保", + "studentInsuranceToSelf": "学生医保转学生自费", + "studentSelfToInsurance": "学生自费转学生医保", + "totalAmount": "合计金额", + "docNo": "单据号", + "itemName": "收费项目", + "quantity": "数量", + "medicalType": "医疗类型", + "insuranceCode": "医保编码", + "feeNature": "费用性质", + "amount": "金额", + "cashier": "收款人", + "operation": "操作", + "print": "打印", + "yuan": "元", + "chargeDate": "收费日期", + "receivableAmount": "应收金额", + "refundAmount": "应退金额", + "discountAmount": "折扣金额", + "payMethod": "支付方式", + "selectPayMethod": "选择支付方式", + "payAmount": "支付金额", + "refundMethod": "退费方式", + "selectRefundMethod": "选择退费方式", + "refundAmountLabel": "退费金额", + "addPayMethod": "添加支付方式", + "addRefundMethod": "添加退费方式", + "amountSatisfied": "金额已满足应收,不可继续添加", + "refundAmountSatisfied": "金额已满足应退,不可继续添加", + "discount": "折扣", + "wechatPay": "扫码支付", + "viewResult": "查看结果", + "payType": "支付类型", + "actualTotal": "实收合计", + "refundTotal": "实退合计", + "changeAmount": "应找零", + "confirm": "确 定", + "cancel": "取 消", + "selectChargeItem": "请选择一条收费项目", + "preSettleFail": "预结算失败", + "enterCorrectAmount": "请输入正确的结算金额", + "chargeFail": "收费失败", + "chargeFailRetry": "收费失败,请重试", + "printFail": "打印失败", + "opSuccess": "操作成功", + "outpatientChargeDetail": "门诊收费明细", + "outpatientChargeReceipt": "门诊收费结算单", + "refundReason": "退费原因", + "enterReason": "请输入原因", + "enterReasonPlaceholder": "请输入原因", + "refundConfirm": "确认退费", + "refundDate": "退费日期", + "refundDocNo": "支付单据号", + "itemDocNo": "项目单据号", + "itemNameCol": "项目名称", + "chargeStatusCol": "收费状态", + "paymentTotal": "付款总额", + "refundItem": "退费", + "encounterNo": "就诊号", + "refundDocs": "退费单据", + "enterCorrectRefundAmount": "请输入正确的金额", + "invoiceNo": "发票号", + "invoiceStatus": "发票状态", + "issued": "已开具", + "notIssued": "未开具", + "settleTime": "结算时间", + "startDate": "开始日期", + "endDate": "结束日期", + "query": "查询", + "reset": "重置", + "total": "总数", + "success": "成功", + "batchIssue": "批量开具", + "payStatus": "支付状态", + "feeType": "费用类型", + "insuranceSettleId": "医保结算Id", + "chargeSerialNo": "收费流水号", + "settleAmount": "结算金额", + "payAmountCol": "支付金额", + "settleTimeCol": "结算时间", + "payResult": "支付结果", + "printCount": "打印次数", + "chargeDetail": "收费详情", + "issueInvoice": "开具电子发票", + "writeoffInvoice": "冲销发票", + "viewInvoice": "调阅发票", + "payDetail": "支付类型", + "change": "找零", + "payment": "交款", + "writeoffReason": "冲销原因", + "writeoffSuccess": "红冲成功", + "patientBasicInfo": "患者基本信息", + "surgeryNo": "手术单号", + "surgeryName": "手术名称", + "cardRenewal": "换卡处理", + "patientQuery": "病人查询(Q)", + "confirmBtn": "确定 (O)", + "closeBtn": "关闭 (C)", + "patientNameLabel": "病人姓名:", + "idCardLabel": "身份证号码:", + "phoneLabel": "手机号码:", + "outpatientNo": "门诊号码", + "newOutpatientNo": "新门诊号码:", + "enterNewOutpatientNo": "请输入新门诊号码", + "patientArchiveQuery": "病人档案查询", + "confirmSelect": "确认(Q)", + "closeSelect": "关闭(C)", + "birthDate": "出生年月", + "seqNo": "序号", + "patientName": "患者姓名", + "searchPlaceholderPatient": "请输入患者姓名", + "payBusNo": "支付单号", + "txnAmount": "交易金额(元)", + "txnType": "交易类型", + "payTypeCol": "支付方式", + "txnTime": "交易时间", + "origTxnType": "原交易类型", + "thirdPartyDiscount": "第三方优惠说明", + "errorMsg": "错误信息", + "queryResult": "查询结果", + "queryResultMsg": "查询结果说明", + "payResultQuery": "支付结果查询", + "nextDayRefund": "隔天退费", + "refundResultQuery": "退费结果查询", + "registerChargeRecord": "排班管理", + "schedule": "排班管理", + "detail": "详情", + "normal": "正常", + "disabled": "停用", + "nameCol": "名称", + "dateCol": "日期", + "statusCol": "状态", + "wechat": "微信", + "alipay": "支付宝", + "unionpay": "银联", + "cash": "现金", + "discountLabel": "优惠", + "selfPay": "自费", + "enterCashAmount": "请输入现金金额", + "payMethodPlaceholder": "支付二维码", + "reading": "正在读取...", + "patientCardRenewalSuccess": "换卡成功", + "patientRenewalSuccessMsg": "患者换卡操作已成功完成!", + "pleaseEnterQuery": "请至少输入一个查询条件", + "autoSelectUnique": "已自动选中唯一患者", + "noPatientFound": "未查询到患者信息", + "queryFail": "查询失败", + "queryFailRetry": "查询失败,请稍后重试", + "selectPatient": "请选择患者", + "selectPatientWarning": "已选择患者,请点击确定", + "patientRenewalSuccess": "换卡成功!", + "patientRenewalFail": "换卡失败", + "patientRenewalFailCardExists": "换卡失败,卡号已存在", + "closeConfirm": "确定要关闭此页面吗?", + "cancelClose": "已取消关闭操作", + "newCardNoCannotSame": "新门诊号码不能与原号码相同", + "pleaseQueryPatient": "请先查询患者信息", + "registerChargeRecordTitle": "挂号收费记录", + "reprintRegistration": "补打挂号单", + "reprintTitle": "挂号单重打", + "reprintSubtitle": "补打挂号单将作废原有的挂号单据并生成新的挂号单据", + "doctorName": "医生姓名", + "serialNo": "流水号", + "totalLabel": "合计", + "medicalRecordFee": "病历费", + "printTime": "打印时间", + "visitTimeLabel": "预约/挂号时间", + "enterCardNoSearch": "请输入就诊卡号检索条", + "regRecordSelect": "挂号记录选择", + "enterCardNo": "请输入就诊卡号", + "noRegRecord": "未查询到相关挂号记录,请检查就诊卡号是否正确", + "queryFailMsg": "查询失败: {msg}", + "queryError": "查询出错: {error}", + "reprintSuccess": "补打挂号成功", + "reprintFail": "补打挂号失败", + "reprintFailMsg": "补打挂号失败: {error}", + "selectRegRecordFirst": "请先搜索并选择挂号记录", + "printSuccess": "打印成功", + "printFailMsg": "打印失败: {error}", + "selectRegRecord": "请选择一条挂号记录", + "getRegIdFail": "获取挂号记录ID失败,请重试", + "processFail": "处理失败: {error}", + "statusReserved": "已预约", + "statusCompleted": "已完成", + "statusCancelled": "已取消", + "statusInProgress": "进行中" } } diff --git a/healthlink-his-ui/src/views/charge/clinicRecord/index.vue b/healthlink-his-ui/src/views/charge/clinicRecord/index.vue index 0c98a30d1..5cee01b4a 100755 --- a/healthlink-his-ui/src/views/charge/clinicRecord/index.vue +++ b/healthlink-his-ui/src/views/charge/clinicRecord/index.vue @@ -1,4 +1,4 @@ - + - 查询 + {{ $t('billing.query') }} - 重置 + {{ $t('billing.reset') }} - {{ '总数:' + count + '/' + '成功:' + successCount }} + {{ $t('billing.total') + ':' + count + '/' + $t('billing.success') + ':' + successCount }} - 批量开具 + {{ $t('billing.batchIssue') }} - {{ scope.row.tenderedAmount + ' 元' }} + {{ scope.row.tenderedAmount + ' ' + $t('billing.yuan') }} - {{ scope.row.displayAmount + ' 元' }} + {{ scope.row.displayAmount + ' ' + $t('billing.yuan') }} - 收费详情 + {{ $t('billing.chargeDetail') }} - 开具电子发票 + {{ $t('billing.issueInvoice') }} - 冲销发票 + {{ $t('billing.writeoffInvoice') }} - 调阅发票 + {{ $t('billing.viewInvoice') }} @@ -247,7 +247,7 @@ /> - + @@ -303,11 +303,11 @@ - 取 消 + {{ $t('billing.cancel') }} 确 定 + >{{ $t('billing.confirm') }} @@ -315,6 +315,8 @@ diff --git a/healthlink-his-ui/src/views/charge/clinicrefund/index.vue b/healthlink-his-ui/src/views/charge/clinicrefund/index.vue index 772f73f1f..d999a4049 100755 --- a/healthlink-his-ui/src/views/charge/clinicrefund/index.vue +++ b/healthlink-his-ui/src/views/charge/clinicrefund/index.vue @@ -1,16 +1,16 @@ - + - 患者列表 + {{ $t('billing.patientList') }} - 搜索 + {{ $t('billing.search') }} @@ -77,7 +77,7 @@ --> @@ -87,19 +87,19 @@ - 基本信息 + {{ $t('billing.basicInfo') }} - + {{ patientInfo.encounterId }} - + {{ patientInfo.patientName }} - + {{ patientInfo.genderEnum_enumText }} - + {{ patientInfo.age }} @@ -155,34 +155,34 @@ type="primary" @click="handleRefund(scope.row)" > - 退费 + {{ $t('billing.refundItem') }} @@ -191,19 +191,19 @@ - {{ scope.row.totalPrice.toFixed(2) + ' 元' }} + {{ scope.row.totalPrice.toFixed(2) + ' ' + $t('billing.yuan') }} diff --git a/healthlink-his-ui/src/views/charge/schedule/index.vue b/healthlink-his-ui/src/views/charge/schedule/index.vue index 91069367b..895c7e0d2 100755 --- a/healthlink-his-ui/src/views/charge/schedule/index.vue +++ b/healthlink-his-ui/src/views/charge/schedule/index.vue @@ -2,16 +2,16 @@ - 排班管理 + {{ $t('billing.schedule') }} - + @@ -22,7 +22,7 @@ icon="Search" @click="handleQuery" > - 搜索 + {{ $t('billing.search') }} @@ -33,29 +33,29 @@ > - {{ row.status === '0' ? '正常' : '停用' }} + {{ row.status === '0' ? $t('billing.normal') : $t('billing.disabled') }} @@ -64,7 +64,7 @@ link @click="handleDetail(row)" > - 详情 + {{ $t('billing.detail') }} @@ -75,10 +75,13 @@ diff --git a/healthlink-his-ui/src/views/charge/surgerycharge/index.vue b/healthlink-his-ui/src/views/charge/surgerycharge/index.vue index ac29b3019..457dca9cd 100755 --- a/healthlink-his-ui/src/views/charge/surgerycharge/index.vue +++ b/healthlink-his-ui/src/views/charge/surgerycharge/index.vue @@ -8,34 +8,34 @@ - 患者基本信息 + {{ $t('billing.patientBasicInfo') }} - + {{ patientInfo.encounterBusNo }} - + {{ patientInfo.patientName }} - + {{ patientInfo.genderEnum_enumText }} - + {{ patientInfo.age }} - + {{ patientInfo.organizationName }} - + {{ formatDateStr(patientInfo.receptionTime, 'YYYY-MM-DD HH:mm:ss') }} - + {{ surgeryInfo.surgeryNo }} - + {{ surgeryInfo.surgeryName }} @@ -45,7 +45,7 @@ - 收费项目 + {{ $t('billing.chargeItems') }} - 确认收费 + {{ $t('billing.confirmCharge') }} - 电子凭证 + {{ $t('billing.electronicCertificate') }} - 医保卡 + {{ $t('billing.medicalInsuranceCard') }} - 合计金额:{{ totalAmounts ? totalAmounts.toFixed(2) : 0 }}元 + {{ $t('billing.totalAmount') }}:{{ totalAmounts ? totalAmounts.toFixed(2) : 0 }}{{ $t('billing.yuan') }} - {{ scope.row.totalPrice.toFixed(2) + ' 元' || '0.00' + ' 元' }} + {{ scope.row.totalPrice.toFixed(2) + ' ' + $t('billing.yuan') || '0.00' + ' ' + $t('billing.yuan') }} - 打印 + {{ $t('billing.print') }} @@ -219,11 +219,14 @@