挂号单补打功能完善
This commit is contained in:
188
check_activity_definition.sql
Normal file
188
check_activity_definition.sql
Normal file
@@ -0,0 +1,188 @@
|
||||
-- ============================================
|
||||
-- 诊疗项目数据检查SQL语句
|
||||
-- ============================================
|
||||
|
||||
-- 1. 查询所有诊疗项目(基础查询)
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.bus_no,
|
||||
T1.name AS advice_name,
|
||||
T1.py_str,
|
||||
T1.wb_str,
|
||||
T1.status_enum,
|
||||
T1.pricing_flag,
|
||||
T1.delete_flag,
|
||||
T1.org_id,
|
||||
T1.category_code,
|
||||
T1.type_enum AS activity_type
|
||||
FROM wor_activity_definition AS T1
|
||||
WHERE T1.delete_flag = '0'
|
||||
ORDER BY T1.id;
|
||||
|
||||
-- 2. 查询状态为ACTIVE的诊疗项目(status_enum = 1)
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.bus_no,
|
||||
T1.name AS advice_name,
|
||||
T1.status_enum,
|
||||
T1.pricing_flag,
|
||||
T1.org_id
|
||||
FROM wor_activity_definition AS T1
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = 1
|
||||
ORDER BY T1.id;
|
||||
|
||||
-- 3. 查询有划价标记的诊疗项目(pricing_flag = 1)
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.bus_no,
|
||||
T1.name AS advice_name,
|
||||
T1.pricing_flag,
|
||||
T1.status_enum
|
||||
FROM wor_activity_definition AS T1
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = 1
|
||||
AND (T1.pricing_flag = 1 OR T1.pricing_flag IS NULL)
|
||||
ORDER BY T1.id;
|
||||
|
||||
-- 4. 查询关联了费用定价表的诊疗项目
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.bus_no,
|
||||
T1.name AS advice_name,
|
||||
T2.id AS charge_item_definition_id,
|
||||
T2.instance_table,
|
||||
T2.status_enum AS charge_status
|
||||
FROM wor_activity_definition AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2
|
||||
ON T2.instance_id = T1.ID
|
||||
AND T2.delete_flag = '0'
|
||||
AND T2.status_enum = 1
|
||||
AND T2.instance_table = 'wor_activity_definition'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = 1
|
||||
ORDER BY T1.id;
|
||||
|
||||
-- 5. 完整查询(模拟后端实际执行的SQL,用于门诊划价)
|
||||
-- 注意:需要替换 #{statusEnum} 为实际值(通常是 1),#{activityTableName} 为 'wor_activity_definition'
|
||||
SELECT DISTINCT ON (T1.ID)
|
||||
T1.tenant_id,
|
||||
3 AS advice_type,
|
||||
T1.bus_no AS bus_no,
|
||||
T1.category_code AS category_code,
|
||||
'' AS pharmacology_category_code,
|
||||
1 AS part_percent,
|
||||
0 AS unit_conversion_ratio,
|
||||
null AS part_attribute_enum,
|
||||
null AS tho_part_attribute_enum,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
'' AS product_name,
|
||||
T1.type_enum AS activity_type,
|
||||
'' AS unit_code,
|
||||
'' AS min_unit_code,
|
||||
'' AS volume,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
T1.org_id AS org_id,
|
||||
T1.location_id AS location_id,
|
||||
'' AS dose,
|
||||
'' AS dose_unit_code,
|
||||
'' AS supplier,
|
||||
null AS supplier_id,
|
||||
'' AS manufacturer,
|
||||
T2.ID AS charge_item_definition_id,
|
||||
T2.instance_table AS advice_table_name,
|
||||
T3.organization_id AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope,
|
||||
'' AS dosage_instruction,
|
||||
T1.chrgitm_lv as chrgitm_lv
|
||||
FROM wor_activity_definition AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2
|
||||
ON T2.instance_id = T1.ID
|
||||
AND T2.delete_flag = '0'
|
||||
AND T2.status_enum = 1
|
||||
AND T2.instance_table = 'wor_activity_definition'
|
||||
LEFT JOIN adm_organization_location AS T3
|
||||
ON T3.activity_definition_id = T1.ID
|
||||
AND T3.delete_flag = '0'
|
||||
AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND (T1.pricing_flag = 1 OR T1.pricing_flag IS NULL)
|
||||
AND T1.status_enum = 1
|
||||
ORDER BY T1.ID;
|
||||
|
||||
-- 6. 统计查询 - 查看各状态的数量
|
||||
SELECT
|
||||
COUNT(*) AS total_count,
|
||||
COUNT(CASE WHEN status_enum = 1 THEN 1 END) AS active_count,
|
||||
COUNT(CASE WHEN pricing_flag = 1 THEN 1 END) AS pricing_flag_count,
|
||||
COUNT(CASE WHEN pricing_flag IS NULL THEN 1 END) AS pricing_flag_null_count
|
||||
FROM wor_activity_definition
|
||||
WHERE delete_flag = '0';
|
||||
|
||||
-- 7. 检查是否有费用定价关联
|
||||
SELECT
|
||||
COUNT(DISTINCT T1.id) AS activity_count,
|
||||
COUNT(DISTINCT T2.id) AS charge_item_count,
|
||||
COUNT(DISTINCT CASE WHEN T2.id IS NOT NULL THEN T1.id END) AS linked_count
|
||||
FROM wor_activity_definition AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2
|
||||
ON T2.instance_id = T1.ID
|
||||
AND T2.delete_flag = '0'
|
||||
AND T2.status_enum = 1
|
||||
AND T2.instance_table = 'wor_activity_definition'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = 1;
|
||||
|
||||
-- 8. 按科室查询诊疗项目(如果前端传了organizationId)
|
||||
-- 注意:需要替换 #{organizationId} 为实际的科室ID
|
||||
-- SELECT DISTINCT ON (T1.ID)
|
||||
-- T1.id,
|
||||
-- T1.name AS advice_name,
|
||||
-- T1.org_id,
|
||||
-- T2.id AS charge_item_definition_id
|
||||
-- FROM wor_activity_definition AS T1
|
||||
-- LEFT JOIN adm_charge_item_definition AS T2
|
||||
-- ON T2.instance_id = T1.ID
|
||||
-- AND T2.delete_flag = '0'
|
||||
-- AND T2.status_enum = 1
|
||||
-- AND T2.instance_table = 'wor_activity_definition'
|
||||
-- WHERE T1.delete_flag = '0'
|
||||
-- AND (T1.pricing_flag = 1 OR T1.pricing_flag IS NULL)
|
||||
-- AND T1.status_enum = 1
|
||||
-- AND T1.org_id = #{organizationId} -- 替换为实际科室ID
|
||||
-- ORDER BY T1.ID;
|
||||
|
||||
-- 9. 模糊查询(模拟前端搜索)
|
||||
-- 注意:需要替换 #{searchKey} 为实际的搜索关键字
|
||||
-- SELECT DISTINCT ON (T1.ID)
|
||||
-- T1.id,
|
||||
-- T1.name AS advice_name,
|
||||
-- T1.py_str,
|
||||
-- T1.wb_str
|
||||
-- FROM wor_activity_definition AS T1
|
||||
-- LEFT JOIN adm_charge_item_definition AS T2
|
||||
-- ON T2.instance_id = T1.ID
|
||||
-- AND T2.delete_flag = '0'
|
||||
-- AND T2.status_enum = 1
|
||||
-- AND T2.instance_table = 'wor_activity_definition'
|
||||
-- WHERE T1.delete_flag = '0'
|
||||
-- AND (T1.pricing_flag = 1 OR T1.pricing_flag IS NULL)
|
||||
-- AND T1.status_enum = 1
|
||||
-- AND (
|
||||
-- T1.advice_name LIKE '%' || #{searchKey} || '%'
|
||||
-- OR T1.py_str LIKE '%' || #{searchKey} || '%'
|
||||
-- OR T1.wb_str LIKE '%' || #{searchKey} || '%'
|
||||
-- )
|
||||
-- ORDER BY T1.ID;
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
package com.openhis.web.chargemanage.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 补打挂号 DTO
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class ReprintRegistrationDto {
|
||||
|
||||
/**
|
||||
* 就诊ID
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long encounterId;
|
||||
|
||||
/**
|
||||
* 就诊卡号
|
||||
*/
|
||||
private String cardNo;
|
||||
|
||||
/**
|
||||
* 患者姓名
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 挂号科室
|
||||
*/
|
||||
private String organizationName;
|
||||
|
||||
/**
|
||||
* 医生姓名
|
||||
*/
|
||||
private String practitionerName;
|
||||
|
||||
/**
|
||||
* 挂号费
|
||||
*/
|
||||
private BigDecimal price;
|
||||
|
||||
/**
|
||||
* 诊疗费
|
||||
*/
|
||||
private BigDecimal activityPrice;
|
||||
|
||||
/**
|
||||
* 病历费
|
||||
*/
|
||||
private BigDecimal medicalRecordFee;
|
||||
|
||||
/**
|
||||
* 合计
|
||||
*/
|
||||
private BigDecimal totalPrice;
|
||||
|
||||
/**
|
||||
* 预约/挂号时间
|
||||
*/
|
||||
private String visitTime;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
7
迁移记录-DB变更记录/add_cardiology_menu.sql
Normal file
7
迁移记录-DB变更记录/add_cardiology_menu.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
-- 在分诊排队管理下添加心内科选项
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, "path", component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
VALUES( '心内科', (SELECT id FROM sys_menu WHERE "path" = 'triageandqueuemanage'), 1, 'cardiology', 'triageandqueuemanage/cardiology/index', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, NULL);
|
||||
|
||||
-- Insert migration record
|
||||
INSERT INTO __MigrationsHistory (MigrationId, ProductVersion)
|
||||
VALUES ('20251231_add_cardiology_menu', '1.0.0');
|
||||
Reference in New Issue
Block a user