提交merge1.3
This commit is contained in:
@@ -23,20 +23,12 @@
|
||||
<groupId>com.core</groupId>
|
||||
<artifactId>core-common</artifactId>
|
||||
</dependency>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
|
||||
=======
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
>>>>>>> v1.3
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
|
||||
@@ -6,15 +6,9 @@ spring:
|
||||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
<<<<<<< HEAD:openhis-server-new/openhis-application/src/main/resources/application-prd.yml
|
||||
url: jdbc:postgresql://192.168.110.252:15432/postgresql?currentSchema=hisprd&characterEncoding=UTF-8&client_encoding=UTF-8
|
||||
username: postgresql
|
||||
password: Jchl1528
|
||||
=======
|
||||
url: jdbc:postgresql://192.168.2.15:5432/openhis-xz?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
|
||||
username: postgres
|
||||
password: root
|
||||
>>>>>>> v1.3:openhis-server-new/openhis-application/src/main/resources/application-prod.yml
|
||||
# 从库数据源
|
||||
slave:
|
||||
# 从数据源开关/默认关闭
|
||||
@@ -68,11 +62,7 @@ spring:
|
||||
# redis 配置
|
||||
redis:
|
||||
# 地址
|
||||
<<<<<<< HEAD:openhis-server-new/openhis-application/src/main/resources/application-prd.yml
|
||||
host: 192.168.110.252
|
||||
=======
|
||||
host: 172.16.101.2
|
||||
>>>>>>> v1.3:openhis-server-new/openhis-application/src/main/resources/application-prod.yml
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
|
||||
@@ -49,11 +49,7 @@ spring:
|
||||
# 国际化资源文件路径
|
||||
basename: i18n/messages
|
||||
profiles:
|
||||
<<<<<<< HEAD
|
||||
active: dev
|
||||
=======
|
||||
active: prod # (天翼云)cloud (本地测试)test (本地)local (生产)prod (农大)
|
||||
>>>>>>> v1.3
|
||||
# 文件上传
|
||||
servlet:
|
||||
multipart:
|
||||
|
||||
@@ -28,10 +28,7 @@
|
||||
ii.min_unit_code,
|
||||
ii.part_percent,
|
||||
ii.approval_number,
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
ii.item_id,
|
||||
>>>>>>> v1.3
|
||||
ii.dose_form_code,
|
||||
ii.total_volume,
|
||||
ii.sale_price,
|
||||
@@ -40,292 +37,6 @@
|
||||
ii.location_name,
|
||||
ii.location_store_name,
|
||||
ii.supplier_name
|
||||
<<<<<<< HEAD
|
||||
FROM (SELECT wii.id AS inventory_id,
|
||||
wii.production_date,
|
||||
wii.expiration_date,
|
||||
(wii.expiration_date::date - CURRENT_DATE) AS remaining_days,
|
||||
wii.inventory_status_enum,
|
||||
wii.location_id,
|
||||
wii.location_store_id,
|
||||
wii.lot_number,
|
||||
wii.quantity,
|
||||
wii.supplier_id,
|
||||
wii.tenant_id,
|
||||
#{medMedicationDefinition} AS item_table,
|
||||
mmd."name" AS item_name,
|
||||
mmd.bus_no,
|
||||
NULL AS dev_category_code,
|
||||
mmd.category_code AS med_category_code,
|
||||
mmd.chrgitm_lv,
|
||||
mmd.manufacturer_text,
|
||||
mmd.yb_no,
|
||||
mmd.wb_str,
|
||||
mmd.py_str,
|
||||
mmd.unit_code,
|
||||
mmd.min_unit_code,
|
||||
mmd.part_percent,
|
||||
mmd.approval_number,
|
||||
mm.dose_form_code,
|
||||
mm.total_volume,
|
||||
acid.price AS sale_price,
|
||||
acid.id AS charge_item_def_id,
|
||||
acidd.amount AS purchase_price,
|
||||
al."name" AS location_name,
|
||||
al2."name" AS location_store_name,
|
||||
as2."name" AS supplier_name
|
||||
FROM wor_inventory_item wii
|
||||
LEFT JOIN med_medication_definition mmd
|
||||
ON wii.item_id = mmd.id
|
||||
AND mmd.delete_flag = '0'
|
||||
LEFT JOIN med_medication mm
|
||||
ON mmd.id = mm.medication_def_id
|
||||
AND mm.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition acid
|
||||
ON wii.item_id = acid.instance_id
|
||||
AND acid.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail acidd
|
||||
ON acid.id = acidd.definition_id
|
||||
AND acidd.condition_value = wii.lot_number
|
||||
AND acidd.delete_flag = '0'
|
||||
LEFT JOIN adm_location al
|
||||
ON wii.location_id = al.id
|
||||
AND al.delete_flag = '0'
|
||||
LEFT JOIN adm_location al2
|
||||
ON wii.location_store_id = al2.id
|
||||
AND al2.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier as2
|
||||
ON wii.supplier_id = as2.id
|
||||
AND as2.delete_flag = '0'
|
||||
WHERE wii.item_table = #{medMedicationDefinition}
|
||||
AND acidd.condition_code = #{lotNumberCost}
|
||||
AND wii.delete_flag = '0'
|
||||
UNION
|
||||
SELECT wii.id AS inventory_id,
|
||||
wii.production_date,
|
||||
wii.expiration_date,
|
||||
(wii.expiration_date::date - CURRENT_DATE) AS remaining_days,
|
||||
wii.inventory_status_enum,
|
||||
wii.location_id,
|
||||
wii.location_store_id,
|
||||
wii.lot_number,
|
||||
wii.quantity,
|
||||
wii.supplier_id,
|
||||
wii.tenant_id,
|
||||
#{admDeviceDefinition} AS item_table,
|
||||
add2."name" AS item_name,
|
||||
add2.bus_no,
|
||||
add2.category_code AS dev_category_code,
|
||||
NULL AS med_category_code,
|
||||
add2.chrgitm_lv,
|
||||
add2.manufacturer_text,
|
||||
add2.yb_no,
|
||||
add2.wb_str,
|
||||
add2.py_str,
|
||||
add2.unit_code,
|
||||
add2.min_unit_code,
|
||||
add2.part_percent,
|
||||
add2.approval_number,
|
||||
NULL AS dose_form_code,
|
||||
add2.size AS total_volume,
|
||||
acid.price AS sale_price,
|
||||
acid.id AS charge_item_def_id,
|
||||
acidd.amount AS purchase_price,
|
||||
al."name" AS location_name,
|
||||
al2."name" AS location_store_name,
|
||||
as2."name" AS supplier_name
|
||||
FROM wor_inventory_item wii
|
||||
LEFT JOIN adm_device_definition add2
|
||||
ON wii.item_id = add2.id
|
||||
AND add2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition acid
|
||||
ON wii.item_id = acid.instance_id
|
||||
AND acid.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail acidd
|
||||
ON acid.id = acidd.definition_id
|
||||
AND acidd.condition_code = #{lotNumberCost}
|
||||
AND acidd.condition_value = wii.lot_number
|
||||
AND acidd.delete_flag = '0'
|
||||
LEFT JOIN adm_location al
|
||||
ON wii.location_id = al.id
|
||||
AND al.delete_flag = '0'
|
||||
LEFT JOIN adm_location al2
|
||||
ON wii.location_store_id = al2.id
|
||||
AND al2.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier as2
|
||||
ON wii.supplier_id = as2.id
|
||||
AND as2.delete_flag = '0'
|
||||
WHERE wii.item_table = #{admDeviceDefinition}
|
||||
AND acidd.condition_code = #{lotNumberCost}
|
||||
AND wii.delete_flag = '0') AS ii
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY ii.py_str
|
||||
</select>
|
||||
|
||||
<select id="selectProductDetailsPageX"
|
||||
resultType="com.openhis.web.inventorymanage.dto.ProductDetailPageDto">
|
||||
SELECT DISTINCT ii.inventory_id,
|
||||
ii.production_date,
|
||||
ii.expiration_date,
|
||||
ii.remaining_days,
|
||||
ii.inventory_status_enum,
|
||||
ii.location_id,
|
||||
ii.location_store_id,
|
||||
ii.lot_number,
|
||||
ii.quantity,
|
||||
ii.supplier_id,
|
||||
ii.item_table,
|
||||
ii.item_name,
|
||||
ii.bus_no,
|
||||
ii.dev_category_code,
|
||||
ii.med_category_code,
|
||||
ii.chrgitm_lv,
|
||||
ii.manufacturer_text,
|
||||
ii.yb_no,
|
||||
ii.wb_str,
|
||||
ii.py_str,
|
||||
ii.unit_code,
|
||||
ii.min_unit_code,
|
||||
ii.part_percent,
|
||||
ii.approval_number,
|
||||
ii.dose_form_code,
|
||||
ii.total_volume,
|
||||
ii.sale_price,
|
||||
ii.charge_item_def_id,
|
||||
ii.purchase_price,
|
||||
ii.location_name,
|
||||
ii.location_store_name,
|
||||
ii.supplier_name,
|
||||
sdd.dict_label AS unitCode_dictText,
|
||||
sdd2.dict_label AS minUnitCode_dictText,
|
||||
sdd3.dict_label AS devCategoryCode_dictText,
|
||||
sdd4.dict_label AS doseFormCode_dictText,
|
||||
sdd5.dict_label AS medCategoryCode_dictText
|
||||
FROM (SELECT wii.id AS inventory_id,
|
||||
wii.production_date,
|
||||
wii.expiration_date,
|
||||
(wii.expiration_date::date - CURRENT_DATE) AS remaining_days,
|
||||
wii.inventory_status_enum,
|
||||
wii.location_id,
|
||||
wii.location_store_id,
|
||||
wii.lot_number,
|
||||
wii.quantity,
|
||||
wii.supplier_id,
|
||||
wii.tenant_id,
|
||||
#{medMedicationDefinition} AS item_table,
|
||||
mmd."name" AS item_name,
|
||||
mmd.bus_no,
|
||||
NULL AS dev_category_code,
|
||||
mmd.category_code AS med_category_code,
|
||||
mmd.chrgitm_lv,
|
||||
mmd.manufacturer_text,
|
||||
mmd.yb_no,
|
||||
mmd.wb_str,
|
||||
mmd.py_str,
|
||||
mmd.unit_code,
|
||||
mmd.min_unit_code,
|
||||
mmd.part_percent,
|
||||
mmd.approval_number,
|
||||
mm.dose_form_code,
|
||||
mm.total_volume,
|
||||
acid.price AS sale_price,
|
||||
acid.id AS charge_item_def_id,
|
||||
acidd.amount AS purchase_price,
|
||||
al."name" AS location_name,
|
||||
al2."name" AS location_store_name,
|
||||
as2."name" AS supplier_name
|
||||
FROM wor_inventory_item wii
|
||||
LEFT JOIN med_medication_definition mmd
|
||||
ON wii.item_id = mmd.id
|
||||
AND mmd.delete_flag = '0'
|
||||
LEFT JOIN med_medication mm
|
||||
ON mmd.id = mm.medication_def_id
|
||||
AND mm.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition acid
|
||||
ON wii.item_id = acid.instance_id
|
||||
AND acid.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail acidd
|
||||
ON acid.id = acidd.definition_id
|
||||
AND acidd.condition_value = wii.lot_number
|
||||
AND acidd.delete_flag = '0'
|
||||
LEFT JOIN adm_location al
|
||||
ON wii.location_id = al.id
|
||||
AND al.delete_flag = '0'
|
||||
LEFT JOIN adm_location al2
|
||||
ON wii.location_store_id = al2.id
|
||||
AND al2.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier as2
|
||||
ON wii.supplier_id = as2.id
|
||||
AND as2.delete_flag = '0'
|
||||
WHERE wii.item_table = #{medMedicationDefinition}
|
||||
AND acidd.condition_code = #{lotNumberCost}
|
||||
AND wii.delete_flag = '0'
|
||||
UNION
|
||||
SELECT wii.id AS inventory_id,
|
||||
wii.production_date,
|
||||
wii.expiration_date,
|
||||
(wii.expiration_date::date - CURRENT_DATE) AS remaining_days,
|
||||
wii.inventory_status_enum,
|
||||
wii.location_id,
|
||||
wii.location_store_id,
|
||||
wii.lot_number,
|
||||
wii.quantity,
|
||||
wii.supplier_id,
|
||||
wii.tenant_id,
|
||||
#{admDeviceDefinition} AS item_table,
|
||||
add2."name" AS item_name,
|
||||
add2.bus_no,
|
||||
add2.category_code AS dev_category_code,
|
||||
NULL AS med_category_code,
|
||||
add2.chrgitm_lv,
|
||||
add2.manufacturer_text,
|
||||
add2.yb_no,
|
||||
add2.wb_str,
|
||||
add2.py_str,
|
||||
add2.unit_code,
|
||||
add2.min_unit_code,
|
||||
add2.part_percent,
|
||||
add2.approval_number,
|
||||
NULL AS dose_form_code,
|
||||
add2.size AS total_volume,
|
||||
acid.price AS sale_price,
|
||||
acid.id AS charge_item_def_id,
|
||||
acidd.amount AS purchase_price,
|
||||
al."name" AS location_name,
|
||||
al2."name" AS location_store_name,
|
||||
as2."name" AS supplier_name
|
||||
FROM wor_inventory_item wii
|
||||
LEFT JOIN adm_device_definition add2
|
||||
ON wii.item_id = add2.id
|
||||
AND add2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition acid
|
||||
ON wii.item_id = acid.instance_id
|
||||
AND acid.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail acidd
|
||||
ON acid.id = acidd.definition_id
|
||||
AND acidd.condition_code = #{lotNumberCost}
|
||||
AND acidd.condition_value = wii.lot_number
|
||||
AND acidd.delete_flag = '0'
|
||||
LEFT JOIN adm_location al
|
||||
ON wii.location_id = al.id
|
||||
AND al.delete_flag = '0'
|
||||
LEFT JOIN adm_location al2
|
||||
ON wii.location_store_id = al2.id
|
||||
AND al2.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier as2
|
||||
ON wii.supplier_id = as2.id
|
||||
AND as2.delete_flag = '0'
|
||||
WHERE wii.item_table = #{admDeviceDefinition}
|
||||
AND acidd.condition_code = #{lotNumberCost}
|
||||
AND wii.delete_flag = '0') AS ii
|
||||
LEFT JOIN sys_dict_data sdd ON ii.unit_code = sdd.dict_value AND sdd.dict_type = 'unit_code'
|
||||
LEFT JOIN sys_dict_data sdd2 ON ii.min_unit_code = sdd2.dict_value AND sdd2.dict_type = 'unit_code'
|
||||
LEFT JOIN sys_dict_data sdd3 ON ii.dev_category_code = sdd3.dict_value AND sdd3.dict_type = 'device_category_code'
|
||||
LEFT JOIN sys_dict_data sdd4 ON ii.dose_form_code = sdd4.dict_value AND sdd4.dict_type = 'dose_form_code'
|
||||
LEFT JOIN sys_dict_data sdd5 ON ii.med_category_code = sdd5.dict_value AND sdd5.dict_type = 'med_category_code'
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY ii.py_str
|
||||
=======
|
||||
FROM (
|
||||
(SELECT wii.id AS inventory_id,
|
||||
wii.production_date,
|
||||
@@ -708,6 +419,5 @@
|
||||
WHERE delete_flag = '0'
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
>>>>>>> v1.3
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -40,13 +40,9 @@
|
||||
T1.item_table,
|
||||
T1.purpose_type_enum,
|
||||
T1.tenant_id,
|
||||
<<<<<<< HEAD
|
||||
T1.category_enum
|
||||
=======
|
||||
T1.category_enum,
|
||||
T1.purpose_location_id,
|
||||
sum(T1.total_price) AS total_amount
|
||||
>>>>>>> v1.3
|
||||
FROM wor_supply_request AS T1
|
||||
WHERE type_enum = #{purchaseInventory}
|
||||
AND T1.delete_flag = '0'
|
||||
@@ -61,12 +57,8 @@
|
||||
T1.item_table,
|
||||
T1.purpose_type_enum,
|
||||
T1.tenant_id,
|
||||
<<<<<<< HEAD
|
||||
T1.category_enum
|
||||
=======
|
||||
T1.category_enum,
|
||||
T1.purpose_location_id
|
||||
>>>>>>> v1.3
|
||||
ORDER BY T1.bus_no desc
|
||||
) AS T2
|
||||
${ew.customSqlSegment}
|
||||
@@ -92,32 +84,17 @@
|
||||
T2.part_percent,
|
||||
T2.manufacturer_text,
|
||||
T3.total_volume,
|
||||
<<<<<<< HEAD
|
||||
T5."name" AS practitioner_name,
|
||||
T6."name" AS purpose_location_name,
|
||||
T6."id" AS purpose_location_id,
|
||||
T7."name" AS purpose_location_store_name,
|
||||
T1.supplier_id AS supplierId,
|
||||
T10."name" AS supplier_name,
|
||||
=======
|
||||
T5."name" AS practitioner_name,
|
||||
T6."name" AS purpose_location_name,
|
||||
T6."id" AS purpose_location_id,
|
||||
T7."name" AS purpose_location_store_name,
|
||||
>>>>>>> v1.3
|
||||
T1.occurrence_time,
|
||||
(SELECT SUM(T9.quantity)
|
||||
FROM wor_inventory_item T9
|
||||
WHERE T9.item_id = T1.item_id
|
||||
<<<<<<< HEAD
|
||||
AND T9.location_id = T1.purpose_location_id
|
||||
) AS total_quantity,
|
||||
T10."name" AS supplier_name
|
||||
=======
|
||||
AND T9.location_id = T1.purpose_location_id) AS total_quantity,
|
||||
T10."name" AS supplier_name,
|
||||
sdt.dict_label AS measurementUnitCode_dictText
|
||||
>>>>>>> v1.3
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
@@ -132,11 +109,7 @@
|
||||
ON T1.purpose_location_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_location T7
|
||||
<<<<<<< HEAD
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
=======
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
>>>>>>> v1.3
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
@@ -145,11 +118,8 @@
|
||||
LEFT JOIN adm_supplier T10
|
||||
ON T1.supplier_id = T10.id
|
||||
AND T10.delete_flag = '0'
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
LEFT JOIN sys_dict_data sdt
|
||||
ON sdt.dict_value = T1.unit_code AND dict_type = 'unit_code'
|
||||
>>>>>>> v1.3
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
@@ -172,42 +142,15 @@
|
||||
T8.id AS item_id,
|
||||
T8.part_percent,
|
||||
T8.manufacturer_text,
|
||||
<<<<<<< HEAD
|
||||
T8."size" AS total_volume,
|
||||
T5."name" AS practitioner_name,
|
||||
T6."name" AS purpose_location_name,
|
||||
T6."id" AS purpose_location_id,
|
||||
T7."name" AS purpose_location_store_name,
|
||||
T1.supplier_id AS supplierId,
|
||||
T10."name" AS supplier_name,
|
||||
=======
|
||||
T8."size" AS total_volume,
|
||||
T5."name" AS practitioner_name,
|
||||
T6."name" AS purpose_location_name,
|
||||
T6."id" AS purpose_location_id,
|
||||
T7."name" AS purpose_location_store_name,
|
||||
>>>>>>> v1.3
|
||||
T1.occurrence_time,
|
||||
(SELECT SUM(T9.quantity)
|
||||
FROM wor_inventory_item T9
|
||||
WHERE T9.item_id = T1.item_id
|
||||
<<<<<<< HEAD
|
||||
AND T9.location_id = T1.purpose_location_id
|
||||
) AS total_quantity,
|
||||
T10."name" AS supplier_name
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN adm_device_definition T8
|
||||
ON T1.item_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner T5
|
||||
ON T1.practitioner_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
=======
|
||||
AND T9.location_id = T1.purpose_location_id) AS total_quantity,
|
||||
T10."name" AS supplier_name,
|
||||
sdt.dict_label AS measurementUnitCode_dictText
|
||||
@@ -223,24 +166,16 @@
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
>>>>>>> v1.3
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
<<<<<<< HEAD
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T10
|
||||
ON T1.supplier_id = T10.id
|
||||
AND T10.delete_flag = '0'
|
||||
=======
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T10
|
||||
ON T1.supplier_id = T10.id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN sys_dict_data sdt
|
||||
ON sdt.dict_value = T1.unit_code AND dict_type = 'unit_code'
|
||||
>>>>>>> v1.3
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
@@ -284,19 +219,11 @@
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
<<<<<<< HEAD
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
=======
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
>>>>>>> v1.3
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
@@ -343,19 +270,11 @@
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
<<<<<<< HEAD
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
=======
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
>>>>>>> v1.3
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
|
||||
@@ -147,48 +147,6 @@
|
||||
T2.apply_time,
|
||||
T2.practitioner_id,
|
||||
T2.tenant_id,
|
||||
<<<<<<< HEAD
|
||||
T2.supplier_id,
|
||||
T2.purpose_location_id,
|
||||
T2.total_amount
|
||||
FROM (SELECT T1.bus_no AS supply_bus_no,
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.applicant_id,
|
||||
T1.apply_time,
|
||||
T1.practitioner_id,
|
||||
T1.tenant_id,
|
||||
T1.supplier_id,
|
||||
T1.purpose_location_id,
|
||||
SUM ( T1.total_price ) as total_amount
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN adm_supplier T3
|
||||
ON T3.id = T1.supplier_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_location T4
|
||||
ON T4.id = T1.purpose_location_id
|
||||
AND T4.delete_flag = '0'
|
||||
WHERE T1.status_enum IN (#{approval},#{agree},#{reject})
|
||||
AND T1.type_enum IN (#{productBatchTransfer},#{productTransfer},#{productReturn},#{productStocktaking},
|
||||
#{productBatchStocktaking},#{purchaseInventory},#{lossReportForm},#{issueInventory},#{returnIssue})
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY
|
||||
T1.bus_no,
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.applicant_id,
|
||||
T1.apply_time,
|
||||
T1.practitioner_id,
|
||||
T1.tenant_id,
|
||||
T1.summary_id,
|
||||
T1.supplier_id,
|
||||
T1.purpose_location_id
|
||||
ORDER BY T1.apply_time desc
|
||||
=======
|
||||
T2.purpose_location_id,
|
||||
CASE
|
||||
WHEN T2.type_enum IN (#{purchaseInventory}, #{productReturn}) THEN T2.supplier_id
|
||||
@@ -231,7 +189,6 @@
|
||||
T1.tenant_id,
|
||||
T1.purpose_location_id
|
||||
ORDER BY T1.apply_time desc
|
||||
>>>>>>> v1.3
|
||||
) AS T2
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
@@ -77,10 +77,6 @@
|
||||
T1.unit_price,
|
||||
T1.total_price,
|
||||
mmr.prescription_no,
|
||||
<<<<<<< HEAD
|
||||
mmr.prescription_no,
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
mmr.method_code,
|
||||
mmr.rate_code,
|
||||
mmr.dose,
|
||||
|
||||
@@ -95,18 +95,7 @@
|
||||
T13.charge_item_ids,
|
||||
T13.id AS payment_id,
|
||||
ai.picture_url AS picture_url,
|
||||
<<<<<<< HEAD
|
||||
T8.birth_date AS birth_date,
|
||||
T14.create_time AS return_date,
|
||||
T14.return_reason AS return_reason,
|
||||
T15.name AS operator_name,
|
||||
T15.id AS operator_id,
|
||||
T14.display_amount AS refund_amount,
|
||||
T6.contract_no AS contract_no,
|
||||
T16.refund_method AS refund_method
|
||||
=======
|
||||
T8.birth_date AS birth_date
|
||||
>>>>>>> v1.3
|
||||
FROM adm_encounter AS T1
|
||||
LEFT JOIN adm_organization AS T2 ON T1.organization_id = T2.ID AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_healthcare_service AS T3 ON T1.service_type_id = T3.ID AND T3.delete_flag = '0'
|
||||
|
||||
@@ -335,34 +335,6 @@
|
||||
|
||||
<select id="selectPrescriptionPrintInfo" resultMap="PrescriptionPrintInfoMap">
|
||||
SELECT ae.yb_class_enum AS encounter_yb_class,
|
||||
<<<<<<< HEAD
|
||||
mmr.prescription_no ,
|
||||
fc.contract_name ,
|
||||
ap."name" AS patient_name,
|
||||
ap.gender_enum ,
|
||||
ap.birth_date ,
|
||||
ae.bus_no AS encounter_no,
|
||||
ao."name" AS department_name,
|
||||
ccd."name" AS condition_name,
|
||||
ap.phone ,
|
||||
mmr.req_authored_time AS req_time,
|
||||
ap2."name" AS doctor_name,
|
||||
ap3."name" AS dispense_doctor_name,
|
||||
ap4."name" AS charge_doctor_name,
|
||||
ap5."name" AS preparer_doctor_name,
|
||||
mmd2."name" AS item_name,
|
||||
mm.total_volume ,
|
||||
mmr.dose ,
|
||||
mmr.method_code ,
|
||||
aci.unit_price ,
|
||||
aci.total_price ,
|
||||
mmr.quantity,
|
||||
mmr.rate_code ,
|
||||
mmr.unit_code ,
|
||||
mmr.dose_unit_code,
|
||||
mmr.sort_number,
|
||||
mmr.group_id
|
||||
=======
|
||||
mmr.prescription_no ,
|
||||
fc.contract_name ,
|
||||
ap."name" AS patient_name,
|
||||
@@ -394,7 +366,6 @@
|
||||
ap.address,
|
||||
ae.patient_id,
|
||||
mmd2.basic_flag
|
||||
>>>>>>> v1.3
|
||||
FROM med_medication_request mmr
|
||||
LEFT JOIN med_medication_dispense mmd
|
||||
ON mmd.med_req_id = mmr.id
|
||||
@@ -450,48 +421,6 @@
|
||||
</select>
|
||||
<select id="selectTreatmentPrintInfo" resultMap="TreatmentPrintInfoMap">
|
||||
SELECT ae.yb_class_enum AS encounter_yb_class,
|
||||
<<<<<<< HEAD
|
||||
fc.contract_name ,
|
||||
ap."name" AS patient_name,
|
||||
ap.gender_enum ,
|
||||
ap.birth_date ,
|
||||
ae.bus_no AS encounter_no,
|
||||
ao."name" AS department_name,
|
||||
ap.phone ,
|
||||
ae.reception_time AS req_time,
|
||||
ap2."name" AS doctor_name,
|
||||
aci.unit_price ,
|
||||
aci.total_price,
|
||||
wdr.quantity ,
|
||||
wdr.unit_code ,
|
||||
add2."name" AS item_name
|
||||
FROM wor_device_request wdr
|
||||
LEFT JOIN adm_device_definition add2
|
||||
ON wdr.device_def_id = add2.id
|
||||
AND add2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item aci
|
||||
ON aci.service_id = wdr.id
|
||||
AND aci.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter ae
|
||||
ON wdr.encounter_id = ae.id
|
||||
AND ae.delete_flag = '0'
|
||||
LEFT JOIN adm_patient ap
|
||||
ON ae.patient_id = ap.id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = ae.organization_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_account aa
|
||||
ON ae.id = aa.encounter_id
|
||||
AND aa.encounter_flag = 1
|
||||
AND aa.delete_flag = '0'
|
||||
LEFT JOIN fin_contract fc
|
||||
ON aa.contract_no = fc.bus_no
|
||||
AND fc.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner ap2
|
||||
ON ap2.id = wdr.requester_id
|
||||
AND ap2.delete_flag = '0'
|
||||
=======
|
||||
fc.contract_name ,
|
||||
ap."name" AS patient_name,
|
||||
ap.gender_enum ,
|
||||
@@ -535,7 +464,6 @@
|
||||
LEFT JOIN adm_practitioner ap2
|
||||
ON ap2.id = wdr.requester_id
|
||||
AND ap2.delete_flag = '0'
|
||||
>>>>>>> v1.3
|
||||
WHERE wdr.delete_flag = '0'
|
||||
AND wdr.id IN
|
||||
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
|
||||
@@ -543,48 +471,6 @@
|
||||
</foreach>
|
||||
UNION
|
||||
SELECT ae.yb_class_enum AS encounter_yb_class,
|
||||
<<<<<<< HEAD
|
||||
fc.contract_name ,
|
||||
ap."name" AS patient_name,
|
||||
ap.gender_enum ,
|
||||
ap.birth_date ,
|
||||
ae.bus_no AS encounter_no,
|
||||
ao."name" AS department_name,
|
||||
ap.phone ,
|
||||
ae.reception_time AS req_time,
|
||||
ap2."name" AS doctor_name,
|
||||
aci.unit_price ,
|
||||
aci.total_price,
|
||||
wsr.quantity ,
|
||||
wsr.unit_code ,
|
||||
wad."name" AS item_name
|
||||
FROM wor_service_request wsr
|
||||
LEFT JOIN wor_activity_definition wad
|
||||
ON wsr.activity_id = wad.id
|
||||
AND wad.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item aci
|
||||
ON aci.service_id = wsr.id
|
||||
AND aci.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter ae
|
||||
ON wsr.encounter_id = ae.id
|
||||
AND ae.delete_flag = '0'
|
||||
LEFT JOIN adm_patient ap
|
||||
ON ae.patient_id = ap.id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = ae.organization_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_account aa
|
||||
ON ae.id = aa.encounter_id
|
||||
AND aa.encounter_flag = 1
|
||||
AND aa.delete_flag = '0'
|
||||
LEFT JOIN fin_contract fc
|
||||
ON aa.contract_no = fc.bus_no
|
||||
AND fc.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner ap2
|
||||
ON ap2.id = wsr.requester_id
|
||||
AND ap2.delete_flag = '0'
|
||||
=======
|
||||
fc.contract_name ,
|
||||
ap."name" AS patient_name,
|
||||
ap.gender_enum ,
|
||||
@@ -628,7 +514,6 @@
|
||||
LEFT JOIN adm_practitioner ap2
|
||||
ON ap2.id = wsr.requester_id
|
||||
AND ap2.delete_flag = '0'
|
||||
>>>>>>> v1.3
|
||||
WHERE wsr.delete_flag = '0'
|
||||
AND wsr.id IN
|
||||
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
|
||||
|
||||
@@ -5,8 +5,6 @@
|
||||
resultType="com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto">
|
||||
|
||||
SELECT
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
T3.id,
|
||||
T3.category_code,
|
||||
T3.bus_no,
|
||||
@@ -37,7 +35,6 @@
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
>>>>>>> v1.3
|
||||
T1.id,
|
||||
T1.category_code,
|
||||
T1.bus_no,
|
||||
|
||||
@@ -41,12 +41,8 @@
|
||||
abi.position_id,
|
||||
abi.restricted_flag,
|
||||
abi.restricted_scope,
|
||||
<<<<<<< HEAD
|
||||
abi.dosage_instruction
|
||||
=======
|
||||
abi.dosage_instruction,
|
||||
abi.chrgitm_lv
|
||||
>>>>>>> v1.3
|
||||
from (
|
||||
<if test="adviceTypes == null or adviceTypes.contains(1)">
|
||||
(SELECT
|
||||
@@ -87,12 +83,8 @@
|
||||
T6.def_location_id AS position_id,
|
||||
t1.restricted_flag AS restricted_flag,
|
||||
t1.restricted_scope AS restricted_scope,
|
||||
<<<<<<< HEAD
|
||||
T1.dosage_instruction AS dosage_instruction
|
||||
=======
|
||||
T1.dosage_instruction AS dosage_instruction,
|
||||
T1.chrgitm_lv as chrgitm_lv
|
||||
>>>>>>> v1.3
|
||||
FROM med_medication_definition AS t1
|
||||
INNER JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID
|
||||
AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum}
|
||||
@@ -164,12 +156,8 @@
|
||||
T5.def_location_id AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope,
|
||||
<<<<<<< HEAD
|
||||
'' AS dosage_instruction
|
||||
=======
|
||||
'' AS dosage_instruction,
|
||||
T1.chrgitm_lv as chrgitm_lv
|
||||
>>>>>>> v1.3
|
||||
FROM adm_device_definition AS T1
|
||||
LEFT JOIN adm_supplier AS T2
|
||||
ON T2.ID = T1.supply_id
|
||||
@@ -235,12 +223,8 @@
|
||||
T3.organization_id AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope,
|
||||
<<<<<<< HEAD
|
||||
'' AS dosage_instruction
|
||||
=======
|
||||
'' AS dosage_instruction,
|
||||
T1.chrgitm_lv as chrgitm_lv
|
||||
>>>>>>> v1.3
|
||||
FROM wor_activity_definition AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2
|
||||
ON T2.instance_id = T1.ID
|
||||
@@ -543,10 +527,6 @@
|
||||
T3.service_table = #{WOR_SERVICE_REQUEST}
|
||||
LEFT JOIN adm_organization AS ao ON ao.ID = T1.org_id AND ao.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0' AND T1.generate_source_enum = #{generateSourceEnum}
|
||||
<<<<<<< HEAD
|
||||
AND T1.based_on_table is null
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
AND T1.parent_id IS NULL
|
||||
AND T1.refund_service_id IS NULL
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
@@ -620,8 +600,6 @@
|
||||
AND tad.status_enum = #{status}
|
||||
AND tad.type_code = #{typeCode}
|
||||
AND tad.item_no = #{itemNo}
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
</select>
|
||||
|
||||
<select id="getProofAndTestHistory" resultType="com.openhis.web.doctorstation.dto.ProofAndTestHistoryDto">
|
||||
@@ -646,7 +624,6 @@
|
||||
AND wsr.encounter_id = #{encounterId}
|
||||
AND EXISTS ( SELECT 1 FROM wor_activity_definition AS wad WHERE wad.type_enum = #{typeEnum}
|
||||
AND wad.ID = wsr.activity_id )
|
||||
>>>>>>> v1.3
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -48,15 +48,7 @@
|
||||
T1.create_time AS register_time,
|
||||
T1.reception_time AS reception_time,
|
||||
T1.organization_id AS org_id,
|
||||
<<<<<<< HEAD
|
||||
T8.bus_no AS bus_no,
|
||||
CASE
|
||||
WHEN T9.patient_id IS NOT NULL THEN 1
|
||||
ELSE 0
|
||||
END AS allergy_history_flag
|
||||
=======
|
||||
T8.bus_no AS bus_no
|
||||
>>>>>>> v1.3
|
||||
FROM adm_encounter AS T1
|
||||
LEFT JOIN adm_organization AS T2 ON T1.organization_id = T2.ID AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_healthcare_service AS T3 ON T1.service_type_id = T3.ID AND T3.delete_flag = '0'
|
||||
|
||||
@@ -239,11 +239,7 @@
|
||||
ON wsr.source_location_id = al.id
|
||||
AND al.delete_flag = '0'
|
||||
WHERE wsr.delete_flag = '0'
|
||||
<<<<<<< HEAD
|
||||
AND wsd.status_enum IN (#{inProgress}, #{completed})
|
||||
=======
|
||||
AND wsd.status_enum IN (#{preparation}, #{completed})
|
||||
>>>>>>> v1.3
|
||||
AND wsr.type_enum = #{summaryDispense}
|
||||
GROUP BY wsr.tenant_id,
|
||||
wsr.bus_no ,
|
||||
@@ -264,11 +260,8 @@
|
||||
mmd.unit_code ,
|
||||
mmd.min_unit_code ,
|
||||
mmd.part_percent ,
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
mmd.manufacturer_text,
|
||||
mmd.category_code,
|
||||
>>>>>>> v1.3
|
||||
mm.total_volume ,
|
||||
wsr.lot_number,
|
||||
wsr.item_quantity
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inhospitalnursestation.mapper.NurseBillingAppMapper">
|
||||
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
<select id="getInNurseBillingPage"
|
||||
resultType="com.openhis.web.inhospitalnursestation.dto.InpatientAdviceDto">
|
||||
SELECT ii.encounter_id,
|
||||
@@ -303,5 +300,4 @@
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
>>>>>>> v1.3
|
||||
</mapper>
|
||||
@@ -62,9 +62,6 @@
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T8 ON T1.id = T8.service_id
|
||||
AND T8.delete_flag = '0'
|
||||
<<<<<<< HEAD
|
||||
WHERE T1.delete_flag = '0') AS ii
|
||||
=======
|
||||
LEFT JOIN adm_encounter AS T9 ON T1.encounter_id = T9.id
|
||||
AND T9.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
@@ -72,7 +69,6 @@
|
||||
AND T1.status_enum = #{requestStatus}
|
||||
AND T2.status_enum = #{dispenseStatus}
|
||||
AND T8.status_enum = #{chargeItemStatus}) AS ii
|
||||
>>>>>>> v1.3
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
|
||||
@@ -64,8 +64,6 @@
|
||||
ORDER BY T1.id DESC) AS T
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<select id="getPatientBusNoList" resultType="com.openhis.web.nenu.dto.GfStudentPeisDto">
|
||||
SELECT T1.bus_no as bus_no
|
||||
, T.id_number as id_number
|
||||
@@ -101,6 +99,5 @@
|
||||
ORDER BY T.id DESC
|
||||
LIMIT 1 OFFSET 0
|
||||
</select>
|
||||
>>>>>>> v1.3
|
||||
|
||||
</mapper>
|
||||
@@ -34,12 +34,8 @@
|
||||
AND T4.refund_device_id IS NULL
|
||||
AND T4.delete_flag = '0'
|
||||
WHERE T1.class_enum = #{amb}
|
||||
<<<<<<< HEAD
|
||||
AND T3.status_enum IN (#{completed},#{cancelled})
|
||||
=======
|
||||
AND (T3.status_enum IN (#{completed},#{cancelled})
|
||||
OR T4.status_enum IN (#{completed},#{cancelled}))
|
||||
>>>>>>> v1.3
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.id,
|
||||
|
||||
@@ -53,11 +53,7 @@
|
||||
FROM fin_payment_reconciliation t
|
||||
LEFT JOIN adm_patient patient ON patient.id = t.patient_id
|
||||
LEFT JOIN adm_practitioner pra ON pra.id = t.enterer_id
|
||||
<<<<<<< HEAD
|
||||
LEFT JOIN adm_invoice invoice ON invoice.reconciliation_id = t.id
|
||||
=======
|
||||
LEFT JOIN adm_invoice invoice ON invoice.reconciliation_id = t.id AND invoice.delete_flag = '0'
|
||||
>>>>>>> v1.3
|
||||
LEFT JOIN adm_encounter enc ON enc.id = t.enterer_id
|
||||
WHERE 1 = 1
|
||||
AND t.delete_flag = '0'
|
||||
|
||||
@@ -4,195 +4,6 @@
|
||||
<select id="selectAmbPractitionerDetailPage"
|
||||
resultType="com.openhis.web.pharmacymanage.dto.MedDetailedAccountPageDto">
|
||||
select A.outpatient_no,
|
||||
<<<<<<< HEAD
|
||||
A.prescription_no,
|
||||
A.patient_name,
|
||||
A.practitioner_id,
|
||||
A.practitioner_name,
|
||||
A.medication_name,
|
||||
A.py_str,
|
||||
A.bus_no,
|
||||
A.dispense_no,
|
||||
A.yb_no,
|
||||
A.total_volume,
|
||||
A.dispense_quantity,
|
||||
A.dispense_price,
|
||||
A.refund_quantity,
|
||||
A.refund_price,
|
||||
A.lot_number,
|
||||
A.manufacturer_text,
|
||||
A.supplier_name,
|
||||
A.unit_code,
|
||||
A.refund_unit_code,
|
||||
A.dispense_time,
|
||||
A.location_id,
|
||||
A.item_table
|
||||
from (
|
||||
WITH refund_info AS (
|
||||
SELECT mmr.refund_medicine_id,
|
||||
mmd.dispense_quantity,
|
||||
mmd.unit_code,
|
||||
aci.total_price
|
||||
FROM med_medication_dispense mmd
|
||||
LEFT JOIN med_medication_request mmr
|
||||
ON mmd.med_req_id = mmr.id
|
||||
AND mmr.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item aci
|
||||
ON aci.service_id = mmr.refund_medicine_id
|
||||
AND aci.delete_flag = '0'
|
||||
WHERE mmd.status_enum = #{refunded}
|
||||
AND mmd.delete_flag = '0'
|
||||
AND mmr.refund_medicine_id IS not null
|
||||
),
|
||||
refund_device_info AS (
|
||||
SELECT wdr.refund_device_id,
|
||||
wdd.dispense_quantity,
|
||||
wdd.unit_code,
|
||||
aci.total_price
|
||||
FROM wor_device_dispense wdd
|
||||
LEFT JOIN wor_device_request wdr
|
||||
ON wdd.device_req_id = wdr.id
|
||||
AND wdr.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item aci
|
||||
ON aci.service_id = wdd.device_req_id
|
||||
AND aci.delete_flag = '0'
|
||||
WHERE wdd.status_enum = #{refunded}
|
||||
AND wdd.delete_flag = '0'
|
||||
AND wdr.refund_device_id IS not null
|
||||
)
|
||||
SELECT def."name" AS medication_name,
|
||||
def.py_str,
|
||||
def.bus_no,
|
||||
def.yb_no,
|
||||
def.manufacturer_text,
|
||||
mmr.prescription_no,
|
||||
ae.bus_no AS outpatient_no,
|
||||
pat.name AS patient_name,
|
||||
mm.total_volume,
|
||||
mmd.unit_code,
|
||||
mmd.bus_no AS dispense_no,
|
||||
mmd.lot_number,
|
||||
mmd.dispense_quantity,
|
||||
mmd.encounter_id,
|
||||
mmd.practitioner_id,
|
||||
mmd.dispense_time,
|
||||
ap.name AS practitioner_name,
|
||||
mmd.location_id,
|
||||
aci.total_price AS dispense_price,
|
||||
ri.dispense_quantity AS refund_quantity,
|
||||
ri.unit_code AS refund_unit_code,
|
||||
ri.total_price AS refund_price,
|
||||
wii.supplier_id,
|
||||
sup.name AS supplier_name,
|
||||
mmd.tenant_id,
|
||||
#{medMedicationDefinition} AS item_table
|
||||
FROM med_medication_dispense mmd
|
||||
LEFT JOIN med_medication_request mmr
|
||||
ON mmd.med_req_id = mmr.id
|
||||
AND mmr.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item aci
|
||||
ON aci.service_id = mmr.id
|
||||
AND aci.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition def
|
||||
ON mmd.medication_id = def.id
|
||||
AND def.delete_flag = '0'
|
||||
LEFT JOIN med_medication mm
|
||||
ON mm.medication_def_id = def.id
|
||||
AND mm.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item wii
|
||||
ON wii.item_id = mmd.medication_id
|
||||
AND wii.lot_number = mmd.lot_number
|
||||
AND wii.location_id = mmd.location_id
|
||||
AND wii.delete_flag = '0'
|
||||
LEFT JOIN refund_info AS ri
|
||||
ON ri.refund_medicine_id = mmr.id
|
||||
LEFT JOIN adm_location al
|
||||
ON al.id = mmd.location_id
|
||||
LEFT JOIN adm_practitioner ap
|
||||
ON ap.id = mmd.practitioner_id
|
||||
LEFT JOIN adm_patient pat
|
||||
ON pat.id = mmd.patient_id
|
||||
LEFT JOIN adm_encounter ae
|
||||
ON ae.id = mmd.encounter_id
|
||||
LEFT JOIN adm_supplier sup
|
||||
ON sup.id = wii.supplier_id
|
||||
WHERE mmd.status_enum = #{completed}
|
||||
AND mmr.status_enum = #{agree}
|
||||
<if test="flg != 1">
|
||||
AND ae.class_enum = #{amb}
|
||||
</if>
|
||||
AND mmd.delete_flag = '0'
|
||||
UNION
|
||||
SELECT def."name" AS medication_name,
|
||||
def.py_str,
|
||||
def.bus_no,
|
||||
def.yb_no,
|
||||
def.manufacturer_text,
|
||||
mmr.prescription_no,
|
||||
ae.bus_no AS outpatient_no,
|
||||
pat.name AS patient_name,
|
||||
def.size AS total_volume,
|
||||
mmd.unit_code,
|
||||
mmd.bus_no AS dispense_no,
|
||||
mmd.lot_number,
|
||||
mmd.dispense_quantity,
|
||||
mmd.encounter_id,
|
||||
mmd.performer_id AS practitioner_id,
|
||||
mmd.dispense_time,
|
||||
ap.name AS practitioner_name,
|
||||
mmd.location_id,
|
||||
aci.total_price AS dispense_price,
|
||||
ri.dispense_quantity AS refund_quantity,
|
||||
ri.unit_code AS refund_unit_code,
|
||||
ri.total_price AS refund_price,
|
||||
wii.supplier_id,
|
||||
sup.name AS supplier_name,
|
||||
mmd.tenant_id,
|
||||
#{admDeviceDefinition} AS item_table
|
||||
FROM wor_device_dispense mmd
|
||||
LEFT JOIN wor_device_request mmr
|
||||
ON mmd.device_req_id = mmr.id
|
||||
AND mmr.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item aci
|
||||
ON aci.service_id = mmr.id
|
||||
AND aci.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition def
|
||||
ON mmd.device_def_id = def.id
|
||||
AND def.delete_flag = '0'
|
||||
LEFT JOIN adm_device mm
|
||||
ON mm.device_def_id = def.id
|
||||
AND mm.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item wii
|
||||
ON wii.item_id = mmd.device_def_id
|
||||
AND wii.lot_number = mmd.lot_number
|
||||
AND wii.location_id = mmd.location_id
|
||||
AND wii.delete_flag = '0'
|
||||
LEFT JOIN refund_device_info AS ri
|
||||
ON ri.refund_device_id = mmr.id
|
||||
LEFT JOIN adm_location al
|
||||
ON al.id = mmd.location_id
|
||||
LEFT JOIN adm_practitioner ap
|
||||
ON ap.id = mmd.performer_id
|
||||
LEFT JOIN adm_patient pat
|
||||
ON pat.id = mmd.patient_id
|
||||
LEFT JOIN adm_encounter ae
|
||||
ON ae.id = mmd.encounter_id
|
||||
LEFT JOIN adm_supplier sup
|
||||
ON sup.id = wii.supplier_id
|
||||
WHERE mmd.status_enum = #{completed}
|
||||
AND mmr.status_enum = #{agree}
|
||||
<if test="flg != 1">
|
||||
AND ae.class_enum = #{amb}
|
||||
</if>
|
||||
AND mmd.delete_flag = '0'
|
||||
) AS A
|
||||
${ew.customSqlSegment}
|
||||
<choose>
|
||||
<when test="dispenseEnum == 1">
|
||||
ORDER BY A.dispense_time DESC
|
||||
</when>
|
||||
<when test="dispenseEnum == 2">
|
||||
=======
|
||||
A.prescription_no,
|
||||
A.patient_name,
|
||||
A.practitioner_id,
|
||||
@@ -417,7 +228,6 @@
|
||||
ORDER BY A.dispense_time DESC
|
||||
</when>
|
||||
<when test="statisticalType == 2 || statisticalType ==4 || statisticalType ==6">
|
||||
>>>>>>> v1.3
|
||||
ORDER BY A.outpatient_no DESC, A.prescription_no DESC
|
||||
</when>
|
||||
</choose>
|
||||
|
||||
@@ -83,23 +83,6 @@
|
||||
<when test="(medDispenseIdList != null and !medDispenseIdList.isEmpty())
|
||||
or (devDispenseIdList != null and !devDispenseIdList.isEmpty())">
|
||||
<if test="medDispenseIdList != null and !medDispenseIdList.isEmpty()">
|
||||
<<<<<<< HEAD
|
||||
SELECT
|
||||
T1.id AS dispense_id,
|
||||
T1.unit_code AS dispense_unit,
|
||||
T1.quantity,
|
||||
T1.location_id,
|
||||
T1.lot_number,
|
||||
T1.dispense_quantity,
|
||||
T2.id AS inventory_id,
|
||||
T2.unit_code AS inventory_unit_code,
|
||||
T2.quantity AS inventory_quantity,
|
||||
T2.inventory_status_enum,
|
||||
T2.expiration_date,
|
||||
T3.part_percent,
|
||||
T3."name" AS item_name,
|
||||
T3.id AS item_id
|
||||
=======
|
||||
SELECT T1.id AS dispense_id,
|
||||
T1.unit_code AS dispense_unit,
|
||||
T1.quantity,
|
||||
@@ -117,7 +100,6 @@
|
||||
T3.part_percent,
|
||||
T3."name" AS item_name,
|
||||
T1.medication_id AS item_id
|
||||
>>>>>>> v1.3
|
||||
FROM med_medication_dispense AS T1
|
||||
INNER JOIN wor_inventory_item AS T2
|
||||
ON T1.medication_id = T2.item_id
|
||||
@@ -139,23 +121,6 @@
|
||||
UNION
|
||||
</if>
|
||||
<if test="devDispenseIdList != null and !devDispenseIdList.isEmpty()">
|
||||
<<<<<<< HEAD
|
||||
SELECT
|
||||
T4.id AS dispense_id,
|
||||
T4.unit_code AS dispense_unit,
|
||||
T4.quantity,
|
||||
T4.location_id,
|
||||
T4.lot_number,
|
||||
T4.dispense_quantity,
|
||||
T2.id AS inventory_id,
|
||||
T2.unit_code AS inventory_unit_code,
|
||||
T2.quantity AS inventory_quantity,
|
||||
T2.inventory_status_enum,
|
||||
T2.expiration_date,
|
||||
T5.part_percent,
|
||||
T5."name" AS item_name,
|
||||
T5.id AS item_id
|
||||
=======
|
||||
SELECT T4.id AS dispense_id,
|
||||
T4.unit_code AS dispense_unit,
|
||||
T4.quantity,
|
||||
@@ -173,7 +138,6 @@
|
||||
T5.part_percent,
|
||||
T5."name" AS item_name,
|
||||
T4.device_def_id AS item_id
|
||||
>>>>>>> v1.3
|
||||
FROM wor_device_dispense AS T4
|
||||
INNER JOIN wor_inventory_item AS T2
|
||||
ON T4.device_def_id = T2.item_id
|
||||
|
||||
@@ -1,187 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacymanage.mapper.SummaryDispenseMedicineMapper">
|
||||
<<<<<<< HEAD
|
||||
<select id="selectMedicationSummaryInfo" resultType="com.openhis.web.pharmacymanage.dto.MedicineSummaryDto">
|
||||
SELECT ii.tenant_id,
|
||||
ii.bus_no,--单据号
|
||||
ii.request_id,--供应请求id
|
||||
ii.delivery_id,--供应发放id
|
||||
ii.item_table,--项目表
|
||||
ii.item_name,--项目名
|
||||
ii.item_id,--项目id
|
||||
ii.total_volume,--规格
|
||||
ii.lot_number,--批号
|
||||
ii.quantity,--请求数
|
||||
ii.unit_code,--单位
|
||||
ii.max_unit_code,--常规单位
|
||||
ii.min_unit_code,--最小单位
|
||||
ii.source_location_id,--发放地点
|
||||
ii.source_location_name,
|
||||
ii.org_id,--申请科室
|
||||
ii.org_name,
|
||||
ii.applicant_id,--领药人
|
||||
ii.applicant_name,
|
||||
ii.apply_time,--申请时间
|
||||
ii.status_enum,--状态
|
||||
ii.patient_info --患者信息
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.bus_no,--单据号
|
||||
T1.id AS request_id,--供应请求id
|
||||
T2.id AS delivery_id,--供应发放id
|
||||
T1.item_table,--项目表
|
||||
T3.name AS item_name,--项目名
|
||||
T1.item_id,--项目id
|
||||
T4.total_volume,--规格
|
||||
T1.lot_number,--批号
|
||||
T1.item_quantity AS quantity,--请求数
|
||||
T1.unit_code,--单位
|
||||
T3.unit_code AS max_unit_code,--常规单位
|
||||
T3.min_unit_code,--最小单位
|
||||
T1.source_location_id,--发放地点
|
||||
T5.name AS source_location_name,
|
||||
T1.purpose_location_id AS org_id,--申请科室
|
||||
T6.name AS org_name,
|
||||
T1.applicant_id,--领药人
|
||||
T7.name AS applicant_name,
|
||||
T1.apply_time,--申请时间
|
||||
T1.status_enum,--状态
|
||||
STRING_AGG(CONCAT(T11.name, ' : ', T12.inpatient_bed), ',' ORDER BY T11.name,
|
||||
T12.inpatient_bed) AS patient_info -- 患者信息
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN wor_supply_delivery AS T2
|
||||
ON T2.request_id = T1.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T3
|
||||
ON T1.item_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T4
|
||||
ON T3.id = T4.medication_def_id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T5
|
||||
ON T1.source_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T7
|
||||
ON T1.applicant_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN (SELECT id,
|
||||
encounter_id,
|
||||
patient_id
|
||||
FROM (SELECT id,
|
||||
encounter_id,
|
||||
patient_id,
|
||||
ROW_NUMBER() OVER (PARTITION BY encounter_id ORDER BY id) AS rn
|
||||
FROM med_medication_dispense
|
||||
WHERE delete_flag = '0') t
|
||||
WHERE rn = 1) AS T8
|
||||
ON CONCAT(',', T2.based_on_ids, ',') LIKE CONCAT('%,', T8.id, ',%')
|
||||
LEFT JOIN (SELECT STRING_AGG(T10.NAME, '_' ORDER BY T10.bus_no) AS inpatient_bed, T9.encounter_id
|
||||
FROM adm_encounter_location T9
|
||||
LEFT JOIN adm_location AS T10
|
||||
ON T10.id = T9.location_id
|
||||
AND T10.delete_flag = '0'
|
||||
WHERE T9.status_enum = '2'
|
||||
AND T9.delete_flag = '0'
|
||||
GROUP BY T9.encounter_id) AS T12 ON T8.encounter_id = T12.encounter_id
|
||||
LEFT JOIN adm_patient AS T11
|
||||
ON T11.id = T8.patient_id
|
||||
AND T11.delete_flag = '0'
|
||||
WHERE T1.item_table = 'med_medication_definition'
|
||||
AND T1.type_enum = 23
|
||||
AND T1.category_enum = 21
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.bus_no,
|
||||
T1.id,
|
||||
T2.id,
|
||||
T1.item_table,
|
||||
T3.name,
|
||||
T1.item_id,
|
||||
T4.total_volume,
|
||||
T1.lot_number,
|
||||
T1.item_quantity,
|
||||
T1.unit_code,
|
||||
T3.unit_code,
|
||||
T3.min_unit_code,
|
||||
T1.source_location_id,
|
||||
T5.name,
|
||||
T1.purpose_location_id,
|
||||
T6.name,
|
||||
T1.applicant_id,
|
||||
T7.name,
|
||||
T1.apply_time,
|
||||
T1.status_enum
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="selectOrderInfo" resultType="com.openhis.web.pharmacymanage.dto.MedicineSummaryDto">
|
||||
SELECT
|
||||
li.bus_no,--单据号
|
||||
li.request_id,--供应请求id
|
||||
li.delivery_id,--供应发放id
|
||||
li.item_table,--项目表
|
||||
li.item_name,--项目名
|
||||
li.item_id,--项目id
|
||||
li.total_volume,--规格
|
||||
li.lot_number,--批号
|
||||
li.quantity,--请求数
|
||||
li.unit_code,--单位
|
||||
li.max_unit_code,--常规单位
|
||||
li.min_unit_code,--最小单位
|
||||
li.source_location_id,--发放地点
|
||||
li.source_location_name,
|
||||
li.org_id,--申请科室
|
||||
li.org_name,
|
||||
li.applicant_id,--领药人
|
||||
li.applicant_name,
|
||||
li.apply_time,--申请时间
|
||||
li.status_enum--状态
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
wsr.tenant_id,
|
||||
wsr.bus_no,--单据号
|
||||
wsd.request_id,--供应请求id
|
||||
wsd.id AS delivery_id,--供应发放id
|
||||
wsr.item_table,--项目表
|
||||
mmd.name AS item_name,--项目名
|
||||
wsr.item_id,--项目id
|
||||
mm.total_volume,--规格
|
||||
wsr.lot_number,--批号
|
||||
wsr.item_quantity AS quantity,--请求数
|
||||
wsr.unit_code,--单位
|
||||
mmd.unit_code AS max_unit_code,--常规单位
|
||||
mmd.min_unit_code,--最小单位
|
||||
wsr.source_location_id,--发放地点
|
||||
al.name AS source_location_name,
|
||||
ao.id AS org_id,--申请科室
|
||||
ao.name AS org_name,
|
||||
wsr.applicant_id,--领药人
|
||||
ap.name AS applicant_name,
|
||||
wsr.apply_time,--申请时间
|
||||
wsr.status_enum --状态
|
||||
FROM
|
||||
wor_supply_request AS wsr
|
||||
LEFT JOIN adm_practitioner AS ap ON wsr.applicant_id = ap.ID
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN wor_supply_delivery AS wsd ON wsd.request_id = wsr.ID
|
||||
AND wsd.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS mmd ON wsd.item_id = mmd.ID
|
||||
AND mmd.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS mm ON mmd.ID = mm.medication_def_id
|
||||
AND mm.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS al ON wsr.source_location_id = al.ID
|
||||
AND al.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS ao ON wsr.purpose_location_id = ao.ID
|
||||
AND ao.delete_flag = '0'
|
||||
WHERE wsr.delete_flag = '0'
|
||||
) AS li
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
</mapper>
|
||||
|
||||
@@ -66,44 +66,6 @@
|
||||
ii.reception_time,
|
||||
ii.start_time,
|
||||
ii.status_enum
|
||||
<<<<<<< HEAD
|
||||
FROM ( SELECT T1.tenant_id,
|
||||
T1.id AS encounter_id,
|
||||
T1.bus_no AS encounter_no,
|
||||
T1.reception_time,
|
||||
T1.organization_id AS department_id,
|
||||
T1.class_enum,
|
||||
T2.gender_enum,
|
||||
T2.name AS patient_name,
|
||||
T2.wb_str AS patient_wb_str,
|
||||
T2.py_str AS patient_py_str,
|
||||
T2.id_card,
|
||||
T2.birth_date,
|
||||
T3.name AS department_name,
|
||||
T4.status_enum
|
||||
FROM adm_encounter AS T1
|
||||
INNER JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T1.organization_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
INNER JOIN med_medication_dispense AS T4
|
||||
ON T4.encounter_id = T1.id
|
||||
AND T4.delete_flag = '0'
|
||||
INNER JOIN med_medication_request AS T5
|
||||
ON T4.med_req_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
WHERE <if test="statusEnum == null">
|
||||
T4.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
|
||||
</if>
|
||||
<if test="statusEnum == 3">
|
||||
T4.status_enum IN (#{inProgress},#{preparation},#{prepared})
|
||||
</if>
|
||||
<if test="statusEnum == 4">
|
||||
T4.status_enum = #{completed}
|
||||
</if>
|
||||
=======
|
||||
FROM ( SELECT T1.tenant_id,
|
||||
T1.id AS encounter_id,
|
||||
T1.bus_no AS encounter_no,
|
||||
@@ -142,7 +104,6 @@
|
||||
<if test="statusEnum == 4">
|
||||
T4.status_enum = #{completed}
|
||||
</if>
|
||||
>>>>>>> v1.3
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
GROUP BY ii.encounter_id,
|
||||
@@ -162,125 +123,6 @@
|
||||
ORDER BY ii.reception_time,
|
||||
ii.start_time DESC
|
||||
</select>
|
||||
<<<<<<< HEAD
|
||||
<select id="selectMedicineDispenseOrderPage" resultType="com.openhis.web.pharmacymanage.dto.ItemDispenseOrderDto">
|
||||
SELECT ii.department_name,
|
||||
ii.doctor_id,
|
||||
ii.doctor_name,
|
||||
ii.item_type,
|
||||
ii.condition_name,
|
||||
ii.prescription_no,
|
||||
ii.lot_number,
|
||||
ii.request_id,
|
||||
ii.tcm_flag,
|
||||
ii.item_name,
|
||||
ii.item_id,
|
||||
ii.total_volume,
|
||||
ii.unit_code,
|
||||
ii.encounter_id,
|
||||
ii.dose,
|
||||
ii.status_enum,
|
||||
ii.rate_code,
|
||||
ii.location_id,
|
||||
ii.method_code,
|
||||
ii.dose_unit_code,
|
||||
ii.dispense_per_quantity,
|
||||
ii.dispense_per_duration,
|
||||
ii.quantity,
|
||||
ii.dispense_id,
|
||||
ii.unit_price,
|
||||
ii.total_price,
|
||||
ii.dispense_doctor_name,
|
||||
ii.location_name,
|
||||
ii.encounter_bus_no,
|
||||
ii.req_authored_time,
|
||||
ii.skin_test_flag,
|
||||
ii.group_id,
|
||||
ii.manufacturer_text,
|
||||
ii.trace_no
|
||||
FROM ( SELECT T8."name" AS department_name,
|
||||
T9.id AS doctor_id,
|
||||
T9."name" AS doctor_name,
|
||||
T3.category_code AS item_type,
|
||||
T7."name" AS condition_name,
|
||||
T2.prescription_no,
|
||||
T2.lot_number,
|
||||
T2.id AS request_id,
|
||||
T2.tcm_flag,
|
||||
T3."name" AS item_name,
|
||||
T3.id AS item_id,
|
||||
T4.total_volume,
|
||||
T1.unit_code,
|
||||
T1.encounter_id,
|
||||
T1.dose,
|
||||
T1.status_enum,
|
||||
T2.rate_code,
|
||||
T1.location_id,
|
||||
T1.method_code,
|
||||
T2.dose_unit_code,
|
||||
T2.dispense_per_quantity,
|
||||
T2.dispense_per_duration,
|
||||
T1.quantity,
|
||||
T1.id AS dispense_id,
|
||||
T5.unit_price,
|
||||
T5.total_price,
|
||||
T10."name" AS dispense_doctor_name,
|
||||
T13."name" AS location_name,
|
||||
T6.bus_no AS encounter_bus_no,
|
||||
T2.req_authored_time,
|
||||
T3.skin_test_flag,
|
||||
T2.group_id AS group_id,
|
||||
T1.tenant_id,
|
||||
T3.manufacturer_text,
|
||||
T1.trace_no
|
||||
FROM med_medication_dispense AS T1
|
||||
LEFT JOIN med_medication_request AS T2
|
||||
ON T1.med_req_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T3
|
||||
ON T1.medication_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T4
|
||||
ON T3.id = T4.medication_def_id
|
||||
AND T4.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item AS T5
|
||||
ON T1.med_req_id = T5.service_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter AS T6
|
||||
ON T1.encounter_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS T12
|
||||
ON T2.condition_id = T12.id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS T7
|
||||
ON T12.definition_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T8
|
||||
ON T6.organization_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T9
|
||||
ON T2.practitioner_id = T9.id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T10
|
||||
ON T1.practitioner_id = T10.id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T13
|
||||
ON T1.location_id = T13.id
|
||||
AND T13.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
-- 因发药配药合并,前台只能看到待发药,已发药状态,但是后台配药发药状态都查
|
||||
AND
|
||||
<if test="dispenseStatus == null">
|
||||
T1.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
|
||||
</if>
|
||||
<if test="dispenseStatus == 3">
|
||||
T1.status_enum IN (#{inProgress},#{preparation},#{prepared})
|
||||
</if>
|
||||
<if test="dispenseStatus == 4">
|
||||
T1.status_enum = #{completed}
|
||||
</if>
|
||||
ORDER BY prescription_no DESC
|
||||
=======
|
||||
<select id="selectMedicineDispenseOrderPage" resultMap="medicineDispenseOrderMap">
|
||||
SELECT ii.department_name,
|
||||
ii.doctor_id,
|
||||
@@ -430,7 +272,6 @@
|
||||
</if>
|
||||
AND T14.inventory_status_enum = #{active}
|
||||
ORDER BY prescription_no DESC
|
||||
>>>>>>> v1.3
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
@@ -236,10 +236,6 @@
|
||||
T3.service_table = #{WOR_SERVICE_REQUEST}
|
||||
LEFT JOIN adm_organization AS ao ON ao.ID = T1.org_id AND ao.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0' AND T1.generate_source_enum = #{generateSourceEnum}
|
||||
<<<<<<< HEAD
|
||||
AND T1.based_on_table is null
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
AND T1.parent_id IS NULL
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
|
||||
@@ -210,168 +210,6 @@
|
||||
<!--门诊收入明细 -->
|
||||
<select id="selectRevenueReportPage"
|
||||
resultType="com.openhis.web.reportmanage.dto.ChargeReportPageDto">
|
||||
<<<<<<< HEAD
|
||||
SELECT T8.tenant_id,
|
||||
T8.payment_id,
|
||||
T8.charge_id,
|
||||
T8.name, --姓名
|
||||
T8.gender_enum, --性别
|
||||
T8.birth_date, --出生日期
|
||||
T8.id_card, --证件号
|
||||
T8.yb_code, --医保号
|
||||
T8.encounter_date, --就诊日期
|
||||
T8.bus_no,--患者院内编码/病历号
|
||||
T8.department_id,--科室
|
||||
T8.department_name,--科室
|
||||
T8.clinical_name,--项目名
|
||||
T8.clinical_no, --项目编码
|
||||
T8.ybNo,--医保码
|
||||
T8.type, --类别
|
||||
T8.issuer_id,--开单人
|
||||
T8.issuer_name,--开单人
|
||||
T8.payee_id,--收款人
|
||||
T8.payee_name,--收款人
|
||||
T8.number,--数量
|
||||
T8.quantity_unit,--单位
|
||||
T8.price,--单价
|
||||
T8.total_price,--金额
|
||||
T8.charge_time,-- 收费时间
|
||||
T8.total_volume, --规格
|
||||
T8.chrgitmLv,--医保等级
|
||||
T8.clinical_type, --项目类型
|
||||
T8.encounter_id
|
||||
FROM (SELECT DISTINCT T1.tenant_id,
|
||||
T1.id AS payment_id,
|
||||
T4.id AS charge_id,
|
||||
T15.name, --姓名
|
||||
T15.gender_enum, --性别
|
||||
T15.birth_date, --出生日期
|
||||
T15.id_card, --证件号
|
||||
T16.psn_no AS yb_code, --医保号
|
||||
TO_CHAR(T2.reception_time, 'YYYY-MM-DD') AS encounter_date, --就诊日期
|
||||
T2.bus_no, --患者院内编码/病历号
|
||||
T3.id AS department_id,--科室
|
||||
T3.name AS department_name,--科室
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN T11.name
|
||||
WHEN T5.instance_table = 'adm_healthcare_service' THEN T12.name
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN T13.name
|
||||
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.name
|
||||
ELSE NULL
|
||||
END AS clinical_name, --项目名
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN T11.bus_no
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN T13.bus_no
|
||||
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.bus_no
|
||||
ELSE NULL
|
||||
END AS clinical_no, --项目编码
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN T11.yb_no
|
||||
WHEN T5.instance_table = 'adm_healthcare_service' THEN T12.yb_no
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN T13.yb_no
|
||||
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.yb_no
|
||||
ELSE NULL
|
||||
END AS ybNo, --医保码
|
||||
T5.yb_type AS type, --医保类别
|
||||
T6.id AS issuer_id,--开单人
|
||||
T6.name AS issuer_name,--开单人
|
||||
T7.id AS payee_id,--收款人
|
||||
T7.name AS payee_name,--收款人
|
||||
T4.quantity_value AS number,--数量
|
||||
T4.quantity_unit,--单位
|
||||
T4.unit_price AS price,--单价
|
||||
CASE
|
||||
WHEN T1.status_enum = #{refundAll} THEN -T4.total_price
|
||||
ELSE T4.total_price
|
||||
END AS total_price,--金额
|
||||
T1.bill_date AS charge_time,-- 收费时间
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN T17.device_specifications
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN T18.total_volume
|
||||
ELSE NULL
|
||||
END AS total_volume, --规格
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN T11.chrgitm_lv
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN T13.chrgitm_lv
|
||||
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.chrgitm_lv
|
||||
ELSE NULL
|
||||
END AS chrgitmLv,--医保等级
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN #{device}
|
||||
WHEN T5.instance_table = 'adm_healthcare_service' THEN #{register}
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN #{medication}
|
||||
WHEN T5.instance_table = 'wor_activity_definition' THEN #{activity}
|
||||
ELSE NULL
|
||||
END AS clinical_type, --项目类型
|
||||
T1.encounter_id
|
||||
FROM fin_payment_reconciliation T1
|
||||
LEFT JOIN adm_encounter T2
|
||||
ON T2.id = T1.encounter_id
|
||||
AND T2.delete_flag = '0'
|
||||
AND T2.class_enum = 2
|
||||
LEFT JOIN adm_patient AS T15
|
||||
ON T1.patient_id = T15.id
|
||||
AND T15.delete_flag = '0'
|
||||
LEFT JOIN yb_clinc_reg AS T16
|
||||
ON T2.bus_no = T16.ipt_otp_no
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T2.organization_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item T4
|
||||
ON CONCAT(',', T1.charge_item_ids, ',') LIKE CONCAT('%,', T4.id, ',%')
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition T5
|
||||
ON T4.definition_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition T11
|
||||
ON T5.instance_id = T11.id
|
||||
AND T5.instance_table = 'adm_device_definition'
|
||||
AND T11.delete_flag = '0'
|
||||
LEFT JOIN adm_device T17
|
||||
ON T11.id = T17.device_def_id
|
||||
AND T17.delete_flag = '0'
|
||||
LEFT JOIN adm_healthcare_service T12
|
||||
ON T5.instance_id = T12.id
|
||||
AND T5.instance_table = 'adm_healthcare_service'
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition T13
|
||||
ON T5.instance_id = T13.id
|
||||
AND T5.instance_table = 'med_medication_definition'
|
||||
AND T13.delete_flag = '0'
|
||||
LEFT JOIN med_medication T18
|
||||
ON T13.id = T18.medication_def_id
|
||||
AND T18.delete_flag = '0'
|
||||
LEFT JOIN wor_activity_definition T14
|
||||
ON T5.instance_id = T14.id
|
||||
AND T5.instance_table = 'wor_activity_definition'
|
||||
AND T14.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner T6
|
||||
ON T4.enterer_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner T7
|
||||
ON T1.enterer_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
<if test="statisticsFlg == 0 or statisticsFlg == 1">
|
||||
INNER JOIN adm_account T19
|
||||
ON T4.account_id = T19.id
|
||||
AND T19.delete_flag = '0'
|
||||
INNER JOIN fin_contract T20
|
||||
ON T19.contract_no = T20.bus_no
|
||||
AND T20.yb_flag = #{statisticsFlg}
|
||||
AND T20.delete_flag = '0'
|
||||
</if>
|
||||
<if test="statisticsFlg == 3">
|
||||
WHERE T1.status_enum = #{refundAll}
|
||||
</if>
|
||||
<if test="statisticsFlg != 3">
|
||||
WHERE T1.status_enum IN (#{success}, #{refundAll})
|
||||
</if>
|
||||
AND T1.delete_flag = '0'
|
||||
ORDER BY T2.bus_no,
|
||||
T4.ID,
|
||||
T1.bill_date) AS T8
|
||||
${ew.customSqlSegment}
|
||||
=======
|
||||
<include refid="selectRevenueReportPage"/>
|
||||
</select>
|
||||
<!--门诊收入明细,不分页 -->
|
||||
@@ -875,6 +713,5 @@
|
||||
T5.yb_type,
|
||||
T5.type_code,
|
||||
T8.trade_type;
|
||||
>>>>>>> v1.3
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -30,18 +30,12 @@
|
||||
<dependency>
|
||||
<groupId>com.core</groupId>
|
||||
<artifactId>core-admin</artifactId>
|
||||
<<<<<<< HEAD
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.core</groupId>
|
||||
<artifactId>core-common</artifactId>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
=======
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
>>>>>>> v1.3
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -30,14 +30,6 @@
|
||||
|
||||
<dependencies>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
@@ -54,15 +46,6 @@
|
||||
<artifactId>openhis-common</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<<<<<<< HEAD
|
||||
<!-- 核心共通模块 -->
|
||||
<dependency>
|
||||
<groupId>com.core</groupId>
|
||||
<artifactId>core-common</artifactId>
|
||||
</dependency>
|
||||
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<dependency>
|
||||
<groupId>com.opencsv</groupId>
|
||||
<artifactId>opencsv</artifactId>
|
||||
|
||||
@@ -21,16 +21,9 @@
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.3.2",
|
||||
"@vueup/vue-quill": "1.2.0",
|
||||
<<<<<<< HEAD
|
||||
"@vueuse/core": "^11.0.0",
|
||||
"area-data": "^5.0.6",
|
||||
"axios": "^1.7.0",
|
||||
"chart.js": "^4.5.1",
|
||||
=======
|
||||
"@vueuse/core": "10.6.1",
|
||||
"axios": "0.27.2",
|
||||
"china-division": "^2.7.0",
|
||||
>>>>>>> v1.3
|
||||
"d3": "^7.9.0",
|
||||
"dayjs": "^1.11.19",
|
||||
"decimal.js": "^10.5.0",
|
||||
@@ -61,17 +54,6 @@
|
||||
"vue-router": "^4.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
<<<<<<< HEAD
|
||||
"@vitejs/plugin-vue": "^5.0.0",
|
||||
"@vue/compiler-sfc": "^3.5.25",
|
||||
"sass": "^1.97.1",
|
||||
"sass-loader": "^16.0.6",
|
||||
"unplugin-auto-import": "^0.19.0",
|
||||
"unplugin-vue-setup-extend-plus": "^1.0.0",
|
||||
"vite": "^7.3.0",
|
||||
"vite-plugin-compression": "^0.5.1",
|
||||
"vite-plugin-svg-icons": "^2.0.1"
|
||||
=======
|
||||
"@types/node": "^25.0.1",
|
||||
"@vitejs/plugin-vue": "4.5.0",
|
||||
"@vue/compiler-sfc": "3.3.9",
|
||||
@@ -83,6 +65,5 @@
|
||||
"vite-plugin-compression": "0.5.1",
|
||||
"vite-plugin-svg-icons": "2.0.1",
|
||||
"vue-tsc": "^3.1.8"
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,17 +99,6 @@ import axios from 'axios';
|
||||
const env = import.meta.env.MODE;
|
||||
export function invokeYbPlugin5001(data) {
|
||||
|
||||
<<<<<<< HEAD
|
||||
if(env == 'development'){
|
||||
return axios.create(
|
||||
{
|
||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||
baseURL: '/ybplugin',//ybplugin
|
||||
// 超时
|
||||
timeout: 60000
|
||||
}
|
||||
).post('/api/data/', data);
|
||||
=======
|
||||
return axios
|
||||
.create({
|
||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||
@@ -120,7 +109,6 @@ if(env == 'development'){
|
||||
.post('http://localhost:5001/api/data/', data);
|
||||
}
|
||||
// }
|
||||
>>>>>>> v1.3
|
||||
|
||||
export function invokeYbPlugin5000(data) {
|
||||
return axios
|
||||
@@ -128,15 +116,7 @@ export function invokeYbPlugin5000(data) {
|
||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||
baseURL: '',
|
||||
// 超时
|
||||
<<<<<<< HEAD
|
||||
timeout: 60000
|
||||
}
|
||||
).post('http://localhost:5000/api/data/', data);
|
||||
}
|
||||
}
|
||||
=======
|
||||
timeout: 60000,
|
||||
})
|
||||
.post('http://localhost:5000/api/data/', data);
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -1,34 +1,5 @@
|
||||
<template>
|
||||
<div
|
||||
<<<<<<< HEAD
|
||||
:class="{ 'has-logo': showLogo }"
|
||||
:style="{
|
||||
backgroundColor:
|
||||
sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground,
|
||||
}"
|
||||
class="sidebar-layout"
|
||||
>
|
||||
<!-- <logo v-if="showLogo" :collapse="isCollapse" /> -->
|
||||
<el-menu
|
||||
:default-active="activeMenu"
|
||||
:collapse="isCollapse"
|
||||
:background-color="
|
||||
sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground
|
||||
"
|
||||
:text-color="sideTheme === 'theme-dark' ? variables.menuColor : variables.menuLightColor"
|
||||
:unique-opened="true"
|
||||
:active-text-color="theme"
|
||||
:collapse-transition="false"
|
||||
mode="horizontal"
|
||||
>
|
||||
<sidebar-item
|
||||
v-for="(route, index) in sidebarRouters"
|
||||
:key="route.path + index"
|
||||
:item="route"
|
||||
:base-path="route.path"
|
||||
/>
|
||||
</el-menu>
|
||||
=======
|
||||
:class="{ 'has-logo': showLogo }"
|
||||
class="sidebar-wrapper"
|
||||
:style="{
|
||||
@@ -60,7 +31,6 @@
|
||||
</el-menu>
|
||||
</div>
|
||||
</div>
|
||||
>>>>>>> v1.3
|
||||
<navbar @setLayout="setLayout" class="navbar-container" />
|
||||
<settings ref="settingRef" />
|
||||
</div>
|
||||
@@ -103,9 +73,6 @@ function setLayout() {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
<<<<<<< HEAD
|
||||
/* 移除滚动条样式 */
|
||||
=======
|
||||
.sidebar-wrapper {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
@@ -152,7 +119,6 @@ function setLayout() {
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
|
||||
.el-menu--horizontal {
|
||||
display: flex !important;
|
||||
@@ -161,12 +127,7 @@ function setLayout() {
|
||||
background-color: transparent !important;
|
||||
min-width: auto;
|
||||
flex-wrap: nowrap;
|
||||
<<<<<<< HEAD
|
||||
overflow: hidden !important;
|
||||
white-space: nowrap;
|
||||
=======
|
||||
height: 50px;
|
||||
>>>>>>> v1.3
|
||||
|
||||
& > .el-menu-item,
|
||||
& > .el-sub-menu {
|
||||
@@ -175,16 +136,11 @@ function setLayout() {
|
||||
color: #fff;
|
||||
padding: 0 15px !important;
|
||||
font-size: 14px;
|
||||
<<<<<<< HEAD
|
||||
min-width: auto !important;
|
||||
white-space: nowrap;
|
||||
=======
|
||||
min-width: 120px !important;
|
||||
flex-shrink: 0;
|
||||
white-space: nowrap;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
:deep(.svg-icon) {
|
||||
@@ -194,13 +150,9 @@ function setLayout() {
|
||||
|
||||
:deep(.el-sub-menu__title) {
|
||||
padding-right: 25px !important;
|
||||
<<<<<<< HEAD
|
||||
white-space: nowrap;
|
||||
=======
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 50px;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
:deep(.el-sub-menu__icon-arrow) {
|
||||
@@ -212,30 +164,6 @@ function setLayout() {
|
||||
}
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
/* 水平布局,并与 Navbar 正确配合 */
|
||||
.sidebar-layout {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
height: 50px;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
|
||||
& > .el-menu {
|
||||
flex: 1;
|
||||
height: 50px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
&.has-logo {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
height: 50px;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
=======
|
||||
.navbar-container {
|
||||
flex-shrink: 0;
|
||||
height: 50px;
|
||||
@@ -267,7 +195,6 @@ function setLayout() {
|
||||
min-width: 60px !important;
|
||||
font-size: 11px;
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,38 +1,10 @@
|
||||
import { createApp } from 'vue';
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 修复 util._extend 已弃用警告(仅在 Node.js 环境中需要)
|
||||
if (typeof process !== 'undefined' && process.versions && process.versions.node) {
|
||||
try {
|
||||
import('util').then(util => {
|
||||
if (!util._extend) {
|
||||
util._extend = function(destination, source) {
|
||||
for (var key in source) {
|
||||
if (source.hasOwnProperty(key)) {
|
||||
destination[key] = source[key];
|
||||
}
|
||||
}
|
||||
return destination;
|
||||
};
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
console.error('util._extend 补丁加载失败:', e);
|
||||
}
|
||||
}
|
||||
|
||||
import Cookies from 'js-cookie'
|
||||
|
||||
import ElementPlus from 'element-plus'
|
||||
import zhCn from 'element-plus/es/locale/lang/zh-cn'
|
||||
import 'element-plus/dist/index.css'
|
||||
=======
|
||||
import Cookies from 'js-cookie';
|
||||
|
||||
// 导入 hiprint 并挂载到全局 window 对象
|
||||
import { hiprint } from 'vue-plugin-hiprint';
|
||||
window.hiprint = hiprint;
|
||||
>>>>>>> v1.3
|
||||
|
||||
import ElementPlus from 'element-plus';
|
||||
import zhCn from 'element-plus/es/locale/lang/zh-cn';
|
||||
@@ -47,13 +19,8 @@ import router from './router';
|
||||
import directive from './directive'; // directive
|
||||
|
||||
// 注册指令
|
||||
<<<<<<< HEAD
|
||||
import plugins from './plugins' // plugins
|
||||
import { download, downloadGet } from '@/utils/request'
|
||||
=======
|
||||
import plugins from './plugins'; // plugins
|
||||
import { download, downloadGet } from '@/utils/request';
|
||||
>>>>>>> v1.3
|
||||
|
||||
// svg图标
|
||||
import 'virtual:svg-icons-register';
|
||||
@@ -108,48 +75,6 @@ if (chrome.webview !== undefined) {
|
||||
}
|
||||
|
||||
// 全局方法挂载
|
||||
<<<<<<< HEAD
|
||||
app.config.globalProperties.useDict = useDict
|
||||
app.config.globalProperties.download = download
|
||||
app.config.globalProperties.downloadGet = downloadGet
|
||||
app.config.globalProperties.parseTime = parseTime
|
||||
app.config.globalProperties.resetForm = resetForm
|
||||
app.config.globalProperties.handleTree = handleTree
|
||||
app.config.globalProperties.addDateRange = addDateRange
|
||||
app.config.globalProperties.selectDictLabel = selectDictLabel
|
||||
app.config.globalProperties.selectDictLabels = selectDictLabels
|
||||
app.config.globalProperties.formatDateStr = formatDateStr
|
||||
|
||||
// 全局挂载请求实例
|
||||
app.config.globalProperties.$http = request
|
||||
// 全局组件挂载
|
||||
app.component('DictTag', DictTag)
|
||||
app.component('Pagination', Pagination)
|
||||
app.component('TreeSelect', TreeSelect)
|
||||
app.component('FileUpload', FileUpload)
|
||||
app.component('ImageUpload', ImageUpload)
|
||||
app.component('ImagePreview', ImagePreview)
|
||||
app.component('RightToolbar', RightToolbar)
|
||||
app.component('Editor', Editor)
|
||||
// 使用element-plus 并且设置全局的大小
|
||||
app.use(ElementPlus, {
|
||||
locale: zhCn,
|
||||
// 支持 large、default、small
|
||||
size: Cookies.get('size') || 'default'
|
||||
})
|
||||
app.use(ElMessage)
|
||||
app.use(registerComponents)
|
||||
app.use(router)
|
||||
app.use(store)
|
||||
app.use(plugins)
|
||||
app.use(elementIcons)
|
||||
app.component('svg-icon', SvgIcon)
|
||||
directive(app)
|
||||
// 全局禁止点击遮罩层关闭弹窗
|
||||
ElDialog.props.closeOnClickModal.default = false;
|
||||
|
||||
app.mount('#app')
|
||||
=======
|
||||
app.config.globalProperties.useDict = useDict;
|
||||
app.config.globalProperties.download = download;
|
||||
app.config.globalProperties.downloadGet = downloadGet;
|
||||
@@ -187,4 +112,3 @@ app.use(ElementPlus, {
|
||||
});
|
||||
|
||||
app.mount('#app');
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -51,15 +51,11 @@ export const constantRoutes = [
|
||||
component: () => import('@/views/register'),
|
||||
hidden: true,
|
||||
},
|
||||
<<<<<<< HEAD
|
||||
// 401权限不足路由
|
||||
=======
|
||||
{
|
||||
path: '/:pathMatch(.*)*',
|
||||
component: () => import('@/views/error/404'),
|
||||
hidden: true,
|
||||
},
|
||||
>>>>>>> v1.3
|
||||
{
|
||||
path: '/401',
|
||||
component: () => import('@/views/error/401'),
|
||||
@@ -79,11 +75,6 @@ export const constantRoutes = [
|
||||
},
|
||||
],
|
||||
},
|
||||
<<<<<<< HEAD
|
||||
// 个人中心路由
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
{
|
||||
path: '/user',
|
||||
component: Layout,
|
||||
@@ -94,40 +85,6 @@ export const constantRoutes = [
|
||||
path: 'profile',
|
||||
component: () => import('@/views/system/user/profile/index'),
|
||||
name: 'Profile',
|
||||
<<<<<<< HEAD
|
||||
meta: { title: '个人中心', icon: 'user' }
|
||||
}
|
||||
]
|
||||
},
|
||||
// 套餐管理相关路由 - 添加到公共路由确保始终可用
|
||||
{
|
||||
path: '/maintainSystem/Inspection/PackageManagement',
|
||||
component: Layout,
|
||||
hidden: true,
|
||||
children: [
|
||||
{
|
||||
path: '',
|
||||
component: () => import('@/views/maintainSystem/Inspection/PackageManagement.vue'),
|
||||
name: 'DirectPackageManagement',
|
||||
meta: { title: '套餐管理' }
|
||||
}
|
||||
]
|
||||
},
|
||||
// {
|
||||
// path: '/reservationRecord2/appoinmentmanage',
|
||||
// component: Layout,
|
||||
// hidden: true,
|
||||
// children: [
|
||||
// {
|
||||
// path: '',
|
||||
// component: () => import('@/views/appoinmentmanage/clinicRoom/index.vue'),
|
||||
// name: 'DirectClinicRoom',
|
||||
// meta: { title: '门诊出诊医生诊室设置' }
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
]
|
||||
=======
|
||||
meta: { title: '个人中心', icon: 'user' },
|
||||
},
|
||||
],
|
||||
@@ -137,7 +94,6 @@ export const constantRoutes = [
|
||||
component: () => import('@/views/inpatientNurse/tprSheet/index.vue'),
|
||||
},
|
||||
];
|
||||
>>>>>>> v1.3
|
||||
|
||||
// 动态路由 - 基于用户权限动态加载的路由
|
||||
export const dynamicRoutes = [
|
||||
@@ -282,15 +238,9 @@ export const dynamicRoutes = [
|
||||
path: 'set/:tenantId(\\d+)',
|
||||
component: () => import('@/views/system/tenant/setUser'),
|
||||
name: 'SetUser',
|
||||
<<<<<<< HEAD
|
||||
meta: { title: '所属用户', activeMenu: '/system/tenant' }
|
||||
}
|
||||
]
|
||||
=======
|
||||
meta: { title: '所属用户', activeMenu: '/system/basicmanage/tenant' },
|
||||
},
|
||||
],
|
||||
>>>>>>> v1.3
|
||||
},
|
||||
//租户合同管理路由
|
||||
{
|
||||
@@ -303,132 +253,6 @@ export const dynamicRoutes = [
|
||||
path: 'set/:tenantId(\\d+)',
|
||||
component: () => import('@/views/system/tenant/setContract'),
|
||||
name: 'SetContract',
|
||||
<<<<<<< HEAD
|
||||
meta: { title: '合同管理', activeMenu: '/system/tenant' }
|
||||
}
|
||||
]
|
||||
},
|
||||
// 用户角色分配路由
|
||||
// {
|
||||
// path: '/system/user-auth',
|
||||
// component: Layout,
|
||||
// hidden: true,
|
||||
// permissions: ['system:user:edit'],
|
||||
// children: [
|
||||
// {
|
||||
// path: 'role/:userId(\\d+)',
|
||||
// component: () => import('@/views/system/user/authRole'),
|
||||
// name: 'AuthRole',
|
||||
// meta: { title: '分配角色', activeMenu: '/system/user' }
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// // 角色用户分配路由
|
||||
// {
|
||||
// path: '/system/role-auth',
|
||||
// component: Layout,
|
||||
// hidden: true,
|
||||
// permissions: ['system:role:edit'],
|
||||
// children: [
|
||||
// {
|
||||
// path: 'user/:roleId(\\d+)',
|
||||
// component: () => import('@/views/system/role/authUser'),
|
||||
// name: 'AuthUser',
|
||||
// meta: { title: '分配用户', activeMenu: '/system/role' }
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// // 字典数据路由
|
||||
// {
|
||||
// path: '/system/dict-data',
|
||||
// component: Layout,
|
||||
// hidden: true,
|
||||
// permissions: ['system:dict:list'],
|
||||
// children: [
|
||||
// {
|
||||
// path: 'index/:dictId(\\d+)',
|
||||
// component: () => import('@/views/system/dict/data'),
|
||||
// name: 'Data',
|
||||
// meta: { title: '字典数据', activeMenu: '/system/dict' }
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// 系统监控路由
|
||||
// {
|
||||
// path: '/monitor',
|
||||
// component: Layout,
|
||||
// redirect: '/monitor/operlog',
|
||||
// name: 'Monitor',
|
||||
// meta: { title: '系统监控', icon: 'monitor' },
|
||||
// children: [
|
||||
// {
|
||||
// path: 'operlog', // 操作日志路由
|
||||
// component: () => import('@/views/monitor/operlog/index.vue'),
|
||||
// name: 'Operlog',
|
||||
// meta: { title: '操作日志', icon: 'operlog', permissions: ['monitor:operlog:list'] }
|
||||
// },
|
||||
// {
|
||||
// path: 'logininfor', // 登录日志路由
|
||||
// component: () => import('@/views/monitor/logininfor/index.vue'),
|
||||
// name: 'Logininfor',
|
||||
// meta: { title: '登录日志', icon: 'logininfor', permissions: ['monitor:logininfor:list'] }
|
||||
// },
|
||||
// {
|
||||
// path: 'job', // 定时任务路由
|
||||
// component: () => import('@/views/monitor/job/index.vue'),
|
||||
// name: 'Job',
|
||||
// meta: { title: '定时任务', icon: 'job', permissions: ['monitor:job:list'] }
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// 系统工具路由
|
||||
// {
|
||||
// path: '/tool',
|
||||
// component: Layout,
|
||||
// redirect: '/tool/gen',
|
||||
// name: 'Tool',
|
||||
// meta: { title: '系统工具', icon: 'tool' },
|
||||
// children: [
|
||||
// {
|
||||
// path: 'gen', // 代码生成路由
|
||||
// component: () => import('@/views/tool/gen/index.vue'),
|
||||
// name: 'Gen',
|
||||
// meta: { title: '代码生成', icon: 'gen', permissions: ['tool:gen:list'] }
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// 定时任务日志路由
|
||||
// {
|
||||
// path: '/monitor/job-log',
|
||||
// component: Layout,
|
||||
// hidden: true,
|
||||
// permissions: ['monitor:job:list'],
|
||||
// children: [
|
||||
// {
|
||||
// path: 'index/:jobId(\\d+)',
|
||||
// component: () => import('@/views/monitor/job/log'),
|
||||
// name: 'JobLog',
|
||||
// meta: { title: '调度日志', activeMenu: '/monitor/job' }
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// 代码生成编辑路由
|
||||
// {
|
||||
// path: '/tool/gen-edit',
|
||||
// component: Layout,
|
||||
// hidden: true,
|
||||
// permissions: ['tool:gen:edit'],
|
||||
// children: [
|
||||
// {
|
||||
// path: 'index/:tableId(\\d+)',
|
||||
// component: () => import('@/views/tool/gen/editTable'),
|
||||
// name: 'GenEdit',
|
||||
// meta: { title: '修改生成配置', activeMenu: '/tool/gen' }
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
]
|
||||
=======
|
||||
meta: { title: '合同管理', activeMenu: '/system/basicmanage/tenant' },
|
||||
},
|
||||
],
|
||||
@@ -504,7 +328,6 @@ export const dynamicRoutes = [
|
||||
],
|
||||
},
|
||||
];
|
||||
>>>>>>> v1.3
|
||||
|
||||
// 合并常量路由和动态路由,确保所有路由都能被访问
|
||||
const allRoutes = [...constantRoutes, ...dynamicRoutes];
|
||||
|
||||
@@ -19,12 +19,7 @@ const useUserStore = defineStore(
|
||||
roles: [],
|
||||
permissions: [],
|
||||
tenantId: '',
|
||||
<<<<<<< HEAD
|
||||
hospitalName:'',
|
||||
status: '' // 用户状态:0-启用(管理员), 1-禁用(普通人员)
|
||||
=======
|
||||
hospitalName:''
|
||||
>>>>>>> v1.3
|
||||
}),
|
||||
actions: {
|
||||
// 登录
|
||||
@@ -69,10 +64,6 @@ const useUserStore = defineStore(
|
||||
this.avatar = avatar
|
||||
this.hospitalName = res.optionJson.hospitalName
|
||||
|
||||
<<<<<<< HEAD
|
||||
this.status = user.status // 保存用户状态
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
resolve(res)
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
|
||||
@@ -1,37 +1,17 @@
|
||||
<template>
|
||||
<<<<<<< HEAD
|
||||
<!-- 跌倒/坠床评估护理记录单主容器 -->
|
||||
<div>
|
||||
<div class="business">
|
||||
<!-- 已有记录展示表格 -->
|
||||
<el-table
|
||||
=======
|
||||
<div>
|
||||
<div class="business">
|
||||
<!-- <el-table
|
||||
>>>>>>> v1.3
|
||||
:data="tableDataSource"
|
||||
border
|
||||
stripe
|
||||
fit
|
||||
:header-cell-style="{ background: '#f2f2f2', color: 'black' }"
|
||||
>
|
||||
<<<<<<< HEAD
|
||||
<!-- 记录时间列 -->
|
||||
<el-table-column prop="content.recordTime" label="记录时间" />
|
||||
<!-- 评估分数列 -->
|
||||
<el-table-column prop="content.totalScore" label="评估分数" />
|
||||
<!-- 护理措施列 -->
|
||||
<el-table-column prop="content.patientCareSessionsTableList" label="护理措施" />
|
||||
<!-- 责任护士列 -->
|
||||
<el-table-column prop="content.nurseSignature" label="责任护士" />
|
||||
<!-- 操作列:编辑和删除按钮 -->
|
||||
=======
|
||||
<el-table-column prop="content.recordTime" label="记录时间" />
|
||||
<el-table-column prop="content.totalScore" label="评估分数" />
|
||||
<el-table-column prop="content.patientCareSessionsTableList" label="护理措施" />
|
||||
<el-table-column prop="content.nurseSignature" label="责任护士" />
|
||||
>>>>>>> v1.3
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
@@ -50,20 +30,6 @@
|
||||
@click="handleDelete(scope.row)"
|
||||
:disabled="admissionDataForm !== undefined"
|
||||
>
|
||||
<<<<<<< HEAD
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 跌倒/坠床评估护理记录单表单区域 -->
|
||||
<div name="跌倒/坠床评估护理记录单" class="changeMajor" style="width: 99.9%">
|
||||
<div>
|
||||
<!-- 表单主体 -->
|
||||
<el-form ref="formRef" :model="form" style="width: 99.9%">
|
||||
<!-- 标题行 -->
|
||||
=======
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
@@ -73,7 +39,6 @@
|
||||
<div name="跌倒/坠床评估护理记录单" class="changeMajor" style="width: 99.9%">
|
||||
<div>
|
||||
<el-form ref="formRef" :model="form" style="width: 99.9%">
|
||||
>>>>>>> v1.3
|
||||
<el-form-item style="text-align: center">
|
||||
<div
|
||||
style="
|
||||
@@ -89,18 +54,10 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 日期时间选择器 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="日期:" class="changeMajorFromItem" style="width: 100%">
|
||||
<el-row :span="20">
|
||||
<el-col :span="8" style="padding-left: 0px !important">
|
||||
<el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 日期时间选择器 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-date-picker
|
||||
v-model="form.ZKDATE"
|
||||
type="datetime"
|
||||
@@ -110,10 +67,6 @@
|
||||
style="width: 800px"
|
||||
:disabled="admissionDataForm !== undefined"
|
||||
/>
|
||||
<<<<<<< HEAD
|
||||
<!-- 时间选择器被注释掉 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<!-- <span style="margin-left: 5px">时间:</span>
|
||||
<el-time-picker
|
||||
v-model="form.ZKTIME"
|
||||
@@ -124,10 +77,6 @@
|
||||
/> -->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<<<<<<< HEAD
|
||||
<!-- 新增/保存按钮 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-col :span="5">
|
||||
<el-button
|
||||
v-if="!updateFlag"
|
||||
@@ -151,10 +100,6 @@
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 危险因素评估表格 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item style="padding-top: 10px; margin: 0px !important">
|
||||
<el-table
|
||||
:data="dangerData"
|
||||
@@ -162,10 +107,6 @@
|
||||
:span-method="handleSpan"
|
||||
style="text-align: center"
|
||||
>
|
||||
<<<<<<< HEAD
|
||||
<!-- 动态生成表格列 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-table-column
|
||||
v-for="column in dangerColumns"
|
||||
:key="column.key"
|
||||
@@ -174,10 +115,6 @@
|
||||
:label="column.title"
|
||||
align="center"
|
||||
/>
|
||||
<<<<<<< HEAD
|
||||
<!-- 选择列(复选框) -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-table-column prop="id" label="选择" width="80" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-checkbox v-model="row.checked" @change="handleDangerChange(row)" />
|
||||
@@ -186,10 +123,6 @@
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 总分显示 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item
|
||||
style="text-align: center; margin-bottom: 0px; padding: 0px"
|
||||
class="changeMajorFromItem"
|
||||
@@ -202,10 +135,6 @@
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 护理措施表格 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item style="padding-top: 10px">
|
||||
<el-table
|
||||
:data="nursingData"
|
||||
@@ -213,10 +142,6 @@
|
||||
:span-method="arraySpanMethod"
|
||||
style="width: 100%"
|
||||
>
|
||||
<<<<<<< HEAD
|
||||
<!-- 动态生成表格列 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-table-column
|
||||
v-for="column in nursingColumns"
|
||||
:key="column.key"
|
||||
@@ -225,10 +150,6 @@
|
||||
:label="column.title"
|
||||
align="center"
|
||||
/>
|
||||
<<<<<<< HEAD
|
||||
<!-- 选择列(复选框) -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-table-column prop="id" label="选择" width="80" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-checkbox v-model="row.checked" @change="handleNursingChange(row)" />
|
||||
@@ -237,10 +158,6 @@
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 护士签字输入框 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item
|
||||
style="text-align: center; margin-bottom: 0px; padding: 0px"
|
||||
class="changeMajorFromItem"
|
||||
@@ -260,10 +177,6 @@
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 备注信息 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item>
|
||||
<el-row :span="20">
|
||||
<el-col :span="5">
|
||||
@@ -284,26 +197,6 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
<<<<<<< HEAD
|
||||
// 组件选项定义
|
||||
defineOptions({
|
||||
name: '跌倒/坠床评估护理记录单',
|
||||
});
|
||||
|
||||
// 导入所需模块
|
||||
import { ref, reactive, computed, onMounted } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
|
||||
// 使用路由相关功能
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
|
||||
// 定义引用变量
|
||||
const queryRef = ref();
|
||||
const formRef = ref();
|
||||
|
||||
// 基本数据变量
|
||||
=======
|
||||
defineOptions({
|
||||
name: 'FallBedFallAssessment',
|
||||
});
|
||||
@@ -328,7 +221,6 @@ const router = useRouter();
|
||||
const queryRef = ref();
|
||||
const formRef = ref();
|
||||
|
||||
>>>>>>> v1.3
|
||||
const wardCode = ref('');
|
||||
const patientId = ref('');
|
||||
const visitId = ref('');
|
||||
@@ -342,20 +234,6 @@ const totalScore = ref(0);
|
||||
const lastSubmit = ref('');
|
||||
const admissionDataForm = ref(route.params.admissionData);
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 表单数据模型
|
||||
const form = reactive({
|
||||
ZKDATE: '', // 日期
|
||||
ZKTIME: '', // 时间
|
||||
recordTime: '', // 记录时间
|
||||
totalScore: 0, // 总分
|
||||
bedFallRiskAssessmentList: [], // 跌倒风险评估列表
|
||||
nurseSignature: '', // 护士签名
|
||||
patientCareSessionsCheckedList: [], // 护理措施选中列表
|
||||
});
|
||||
|
||||
// 危险因素表格列配置
|
||||
=======
|
||||
const form = reactive({
|
||||
ZKDATE: '',
|
||||
ZKTIME: '',
|
||||
@@ -367,7 +245,6 @@ const form = reactive({
|
||||
});
|
||||
|
||||
// 危险因素表格列
|
||||
>>>>>>> v1.3
|
||||
const dangerColumns = [
|
||||
{
|
||||
key: 'content',
|
||||
@@ -432,11 +309,7 @@ const dangerData = ref([
|
||||
{ id: '27', evalContent: '麻醉止痛剂', score: 2, checked: false },
|
||||
]);
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 护理措施表格列配置
|
||||
=======
|
||||
// 护理措施表格列
|
||||
>>>>>>> v1.3
|
||||
const nursingColumns = [
|
||||
{
|
||||
key: 'content',
|
||||
@@ -473,33 +346,21 @@ const instructions = [
|
||||
'3.评分≥5,高度风险,每周至少评估一次,需采取适宜的预防措施,同时填写《预防患者跌倒/坠床知情告知书》',
|
||||
];
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 计算属性:计算选中的危险因素总分
|
||||
=======
|
||||
// 计算属性
|
||||
>>>>>>> v1.3
|
||||
const calculate = computed(() => {
|
||||
return dangerData.value
|
||||
.filter((option) => option.checked)
|
||||
.reduce((total, option) => total + option.score, 0);
|
||||
});
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 计算属性:判断表单是否为空
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const isFormEmpty = computed(() => {
|
||||
return (
|
||||
form.ZKDATE === '' && form.ZKTIME === '' && form.recordTime === '' && form.nurseSignature === ''
|
||||
);
|
||||
});
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 危险因素选择变化处理函数
|
||||
=======
|
||||
// 方法 - 不再需要handleData方法,通过表单输入和按钮加载数据
|
||||
|
||||
>>>>>>> v1.3
|
||||
const handleDangerChange = (row) => {
|
||||
totalScore.value = calculate.value;
|
||||
form.bedFallRiskAssessmentList = dangerData.value
|
||||
@@ -507,20 +368,12 @@ const handleDangerChange = (row) => {
|
||||
.map((item) => item.id);
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 护理措施选择变化处理函数
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const handleNursingChange = (row) => {
|
||||
form.patientCareSessionsCheckedList = nursingData.value
|
||||
.filter((item) => item.checked)
|
||||
.map((item) => item.id);
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 初始化函数:加载模拟数据
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const init = async () => {
|
||||
// 使用模拟数据,不再调用后端API
|
||||
try {
|
||||
@@ -582,10 +435,6 @@ const init = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 危险因素表格合并单元格处理函数
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const handleSpan = ({ row, column, rowIndex, columnIndex }) => {
|
||||
if (columnIndex === 0) {
|
||||
if (rowIndex === 0) {
|
||||
@@ -632,10 +481,6 @@ const handleSpan = ({ row, column, rowIndex, columnIndex }) => {
|
||||
return [1, 1];
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 护理措施表格合并单元格处理函数
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const arraySpanMethod = ({ row, column, rowIndex, columnIndex }) => {
|
||||
// 护理措施
|
||||
if (columnIndex === 0) {
|
||||
@@ -652,14 +497,8 @@ const arraySpanMethod = ({ row, column, rowIndex, columnIndex }) => {
|
||||
return [1, 1];
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 提交表单处理函数
|
||||
const onSubmit = async () => {
|
||||
// 检查上次提交时间,防止重复提交
|
||||
=======
|
||||
const onSubmit = async () => {
|
||||
// 检查上次提交时间
|
||||
>>>>>>> v1.3
|
||||
if (lastSubmit.value && new Date() - lastSubmit.value < 2000) {
|
||||
ElMessage.error('禁止重复提交!');
|
||||
return;
|
||||
@@ -684,16 +523,6 @@ const onSubmit = async () => {
|
||||
|
||||
if (isFormEmpty.value) {
|
||||
ElMessage.error('请填写跌倒/坠床评估护理记录单后再进行操作');
|
||||
<<<<<<< HEAD
|
||||
} else {
|
||||
form.totalScore = totalScore.value;
|
||||
|
||||
// 模拟保存数据,不再调用后端API
|
||||
console.log('保存的数据:', form);
|
||||
|
||||
if (updateFlag.value) {
|
||||
// 模拟更新操作
|
||||
=======
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -720,35 +549,22 @@ const onSubmit = async () => {
|
||||
// 更新本地数据
|
||||
if (updateFlag.value) {
|
||||
// 更新操作
|
||||
>>>>>>> v1.3
|
||||
const updatedIndex = tableDataSource.value.findIndex((item) => item.id === updateId.value);
|
||||
if (updatedIndex !== -1) {
|
||||
tableDataSource.value[updatedIndex].content = { ...form };
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
ElMessage.success('模拟更新成功');
|
||||
} else {
|
||||
// 模拟新增操作
|
||||
=======
|
||||
ElMessage.success('更新成功');
|
||||
} else {
|
||||
// 新增操作
|
||||
>>>>>>> v1.3
|
||||
const newRecord = {
|
||||
id: Date.now().toString(),
|
||||
content: { ...form },
|
||||
};
|
||||
tableDataSource.value.unshift(newRecord);
|
||||
<<<<<<< HEAD
|
||||
ElMessage.success('模拟新增成功');
|
||||
}
|
||||
|
||||
=======
|
||||
ElMessage.success('保存成功');
|
||||
}
|
||||
|
||||
// 处理返回逻辑
|
||||
>>>>>>> v1.3
|
||||
if (admissionDataForm.value !== undefined) {
|
||||
const admissionDataBack = JSON.parse(admissionDataForm.value);
|
||||
admissionDataBack.project2 = totalScore.value;
|
||||
@@ -769,13 +585,6 @@ const onSubmit = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
reset();
|
||||
}
|
||||
};
|
||||
|
||||
// 编辑记录处理函数
|
||||
=======
|
||||
// 重置表单
|
||||
reset();
|
||||
} catch (error) {
|
||||
@@ -784,7 +593,6 @@ const onSubmit = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
>>>>>>> v1.3
|
||||
const handleUpdate = (row) => {
|
||||
const loginUser = JSON.parse(window.localStorage.getItem('loginUser'));
|
||||
|
||||
@@ -814,10 +622,6 @@ const handleUpdate = (row) => {
|
||||
}
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 重置表单函数
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const reset = () => {
|
||||
Object.assign(form, {
|
||||
ZKDATE: '',
|
||||
@@ -850,10 +654,6 @@ const reset = () => {
|
||||
}
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 删除记录处理函数
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const handleDelete = (row) => {
|
||||
const loginUser = JSON.parse(window.localStorage.getItem('loginUser'));
|
||||
|
||||
@@ -877,10 +677,6 @@ const handleDelete = (row) => {
|
||||
}
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 打印预览函数(暂未实现)
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const dc_ajax_preview = () => {
|
||||
var args = {
|
||||
report: urlAddRandomNo('./grf/NurseRecord_Pressure_208.grf'),
|
||||
@@ -891,10 +687,6 @@ const dc_ajax_preview = () => {
|
||||
webapp_ws_ajax_run(args);
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 数据转换函数,用于报表打印
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const transformData = () => {
|
||||
const jsonDate = [...tableDataSource.value];
|
||||
|
||||
@@ -1041,11 +833,7 @@ const transformData = () => {
|
||||
return transformedData;
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 组件挂载后执行的生命周期函数
|
||||
=======
|
||||
// 生命周期钩子
|
||||
>>>>>>> v1.3
|
||||
onMounted(() => {
|
||||
try {
|
||||
// 安全获取用户信息
|
||||
@@ -1058,9 +846,6 @@ onMounted(() => {
|
||||
wardCode.value = window.localStorage.getItem('wardInfo') || '';
|
||||
admissionDataForm.value = route.params.admissionData;
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 自动初始化表格数据,不再依赖患者ID参数
|
||||
=======
|
||||
// 获取患者信息
|
||||
if (patientInfo.value) {
|
||||
patientId.value = patientInfo.value.patientId || '';
|
||||
@@ -1068,7 +853,6 @@ onMounted(() => {
|
||||
}
|
||||
|
||||
// 自动初始化表格数据
|
||||
>>>>>>> v1.3
|
||||
// 延迟执行,确保所有数据都已初始化
|
||||
setTimeout(() => {
|
||||
init();
|
||||
@@ -1081,28 +865,17 @@ onMounted(() => {
|
||||
}, 100);
|
||||
}
|
||||
});
|
||||
<<<<<<< HEAD
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 页面样式定义 */
|
||||
=======
|
||||
|
||||
// 暴露接口
|
||||
defineExpose({ form, submit: onSubmit, reset });
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
>>>>>>> v1.3
|
||||
.business {
|
||||
background: white;
|
||||
border-radius: 5px;
|
||||
padding: 10px 16px;
|
||||
<<<<<<< HEAD
|
||||
height: calc(100vh - var(--barHeight) * 1px - 50px);
|
||||
=======
|
||||
height: calc(100vh - 250px);
|
||||
>>>>>>> v1.3
|
||||
overflow: auto;
|
||||
display: grid;
|
||||
grid-row-gap: 16px;
|
||||
@@ -1161,14 +934,4 @@ defineExpose({ form, submit: onSubmit, reset });
|
||||
margin-bottom: 0px !important;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
/* 备注信息列表样式 */
|
||||
.instructions-list {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -2,15 +2,6 @@
|
||||
<div class="hospital-record-form">
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<el-tab-pane label="病案首页(一)" name="first">
|
||||
<<<<<<< HEAD
|
||||
<medicalRecordFirst :formData="formData"></medicalRecordFirst>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="病案首页(二)" name="second">
|
||||
<medicalRecordSecond :formData="formData"></medicalRecordSecond>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="病案附页(一)" name="third">
|
||||
<medicalRecordThird :formData="formData"></medicalRecordThird>
|
||||
=======
|
||||
<medicalRecordFirst
|
||||
ref="firstRef"
|
||||
:formData="formData"
|
||||
@@ -28,16 +19,10 @@
|
||||
:formData="formData"
|
||||
@onCaseThird="updateCaseFirstDatas"
|
||||
></medicalRecordThird>
|
||||
>>>>>>> v1.3
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<div class="form-footer">
|
||||
<<<<<<< HEAD
|
||||
<button @click="printForm" class="print-btn">打印表单</button>
|
||||
<button @click="resetForm" class="reset-btn">重置表单</button>
|
||||
</div>
|
||||
=======
|
||||
<!-- <button @click="printForm" class="print-btn">打印表单</button> -->
|
||||
<button @click="resetForm" class="reset-btn">重置表单</button>
|
||||
</div>
|
||||
@@ -45,7 +30,6 @@
|
||||
<!-- <el-drawer v-model="drawer" size="100%">
|
||||
<medicalRecordPrint ref="recordPrintRef"></medicalRecordPrint>
|
||||
</el-drawer> -->
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -53,12 +37,8 @@
|
||||
defineOptions({
|
||||
name: 'HospitalRecordForm',
|
||||
});
|
||||
<<<<<<< HEAD
|
||||
import { ref, reactive } from 'vue';
|
||||
=======
|
||||
import { ref, reactive, nextTick } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
>>>>>>> v1.3
|
||||
// import medicalRecordFirst from './components/medicalRecordFirst.vue';
|
||||
import medicalRecordFirst from '@/views/hospitalRecord/components/medicalRecordFirst.vue';
|
||||
import medicalRecordSecond from '@/views/hospitalRecord/components/medicalRecordSecond.vue';
|
||||
@@ -66,121 +46,6 @@ import medicalRecordThird from '@/views/hospitalRecord/components/medicalRecordT
|
||||
import medicalRecordFirstPrint from '@/views/hospitalRecord/components/medicalRecordFirstPrint.json';
|
||||
import medicalRecordSecondPrint from '@/views/hospitalRecord/components/medicalRecordSecondPrint.json';
|
||||
import medicalRecordThirdPrint from '@/views/hospitalRecord/components/medicalRecordThirdPrint.json';
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
hospital: {
|
||||
orgCode: '41275054-7',
|
||||
paymentMethod: '城乡居民基本医疗保险'
|
||||
},
|
||||
patient: {
|
||||
healthCardNo: '',
|
||||
name: '',
|
||||
gender: '',
|
||||
birthDate: '',
|
||||
age: '',
|
||||
nationality: '中国',
|
||||
nativePlace: '',
|
||||
ethnicity: '汉族',
|
||||
idCardNo: '',
|
||||
householdAddress: '',
|
||||
workUnit: '',
|
||||
contactName: '',
|
||||
contactRelation: '',
|
||||
contactAddress: '',
|
||||
contactPhone: ''
|
||||
},
|
||||
admission: {
|
||||
times: 1,
|
||||
hospitalNo: '',
|
||||
recordNo: '',
|
||||
channel: '',
|
||||
admitTime: '',
|
||||
department: '',
|
||||
ward: '',
|
||||
confirmDate: '',
|
||||
dischargeTime: '',
|
||||
dischargeDepartment: '',
|
||||
dischargeWard: '',
|
||||
hospitalDays: ''
|
||||
},
|
||||
diagnosis: {
|
||||
mainDiagnosis: '',
|
||||
otherDiagnosis: ''
|
||||
},
|
||||
medicalInfo: {
|
||||
bloodTransfusion: '2',
|
||||
bloodType: '',
|
||||
rhType: '',
|
||||
drugAllergy: '1'
|
||||
},
|
||||
doctorInfo: {
|
||||
departmentDirector: '',
|
||||
chiefPhysician: '',
|
||||
attendingPhysician: '',
|
||||
residentPhysician: '',
|
||||
chargeNurse: '',
|
||||
chiefResident: '',
|
||||
intern: '',
|
||||
recordQuality: '1',
|
||||
coder: '',
|
||||
qualityControlDate: ''
|
||||
}
|
||||
});
|
||||
|
||||
const activeName = ref('first');
|
||||
|
||||
// 打印表单
|
||||
const printForm = () => {
|
||||
// 创建一个新的打印窗口
|
||||
const printWindow = window.open('', '_blank');
|
||||
let printContent
|
||||
// 获取模板字符串并替换转义的插值标记
|
||||
if(activeName.value == 'first') {
|
||||
printContent = medicalRecordFirstPrint.printContent;
|
||||
}else if(activeName.value == 'second') {
|
||||
printContent = medicalRecordSecondPrint.printContent;
|
||||
}else {
|
||||
printContent = medicalRecordThirdPrint.printContent;
|
||||
}
|
||||
// 这里可以进行实际的数据替换操作
|
||||
printContent = printContent.replace(/\$\{([^}]+)\}/g, (match, expr) => {
|
||||
// 简单示例:实际应根据expr内容进行数据提取
|
||||
return eval(expr); // 注意:实际使用中应避免eval,这里仅为示例
|
||||
});
|
||||
// 将内容写入打印窗口并打印
|
||||
printWindow.document.write(printContent);
|
||||
printWindow.document.close();
|
||||
}
|
||||
|
||||
function handleClick() {
|
||||
|
||||
}
|
||||
|
||||
// 重置表单
|
||||
const resetForm = () => {
|
||||
Object.keys(formData).forEach(key => {
|
||||
if (typeof formData[key] === 'object') {
|
||||
Object.keys(formData[key]).forEach(subKey => {
|
||||
formData[key][subKey] = '';
|
||||
});
|
||||
} else {
|
||||
formData[key] = '';
|
||||
}
|
||||
});
|
||||
|
||||
// 重置默认值
|
||||
formData.hospital.orgCode = '41275054-7';
|
||||
formData.hospital.paymentMethod = '城乡居民基本医疗保险';
|
||||
formData.patient.nationality = '中国';
|
||||
formData.patient.ethnicity = '汉族';
|
||||
formData.admission.times = 1;
|
||||
formData.medicalInfo.bloodTransfusion = '2';
|
||||
formData.medicalInfo.drugAllergy = '1';
|
||||
formData.doctorInfo.recordQuality = '1';
|
||||
};
|
||||
=======
|
||||
import formDataJs from '../views/doctorstation/components/store/medicalpage';
|
||||
import medicalRecordPrint from '../views/hospitalRecord/components/medicalRecordPrint.vue';
|
||||
import { previewPrint } from '../utils/printUtils';
|
||||
@@ -790,7 +655,6 @@ defineExpose({
|
||||
setFormData,
|
||||
printFun,
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@@ -860,13 +724,9 @@ label {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
input, select, textarea {
|
||||
=======
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
>>>>>>> v1.3
|
||||
width: 100%;
|
||||
padding: 8px;
|
||||
border: 1px solid #ccc;
|
||||
@@ -887,12 +747,8 @@ textarea {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
.print-btn, .reset-btn {
|
||||
=======
|
||||
.print-btn,
|
||||
.reset-btn {
|
||||
>>>>>>> v1.3
|
||||
padding: 10px 20px;
|
||||
margin: 0 10px;
|
||||
border: none;
|
||||
@@ -902,11 +758,7 @@ textarea {
|
||||
}
|
||||
|
||||
.print-btn {
|
||||
<<<<<<< HEAD
|
||||
background-color: #4CAF50;
|
||||
=======
|
||||
background-color: #4caf50;
|
||||
>>>>>>> v1.3
|
||||
color: white;
|
||||
}
|
||||
|
||||
@@ -937,8 +789,4 @@ textarea {
|
||||
margin: 2cm;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
<template>
|
||||
<div class="medical-form">
|
||||
<<<<<<< HEAD
|
||||
<h2 style="text-align: center;">{{ userStore.hospitalName || '长春市朝阳区中医院' }} -入院记录</h2>
|
||||
|
||||
=======
|
||||
<h2 style="text-align: center">
|
||||
{{ userStore.hospitalName || '长春市朝阳区中医院' }} -入院记录
|
||||
</h2>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<!-- 滚动内容区域 -->
|
||||
<div class="form-scroll-container">
|
||||
<el-form
|
||||
@@ -23,23 +18,6 @@
|
||||
<h4 class="section-title">基础信息</h4>
|
||||
<div class="adaptive-grid form-section">
|
||||
<el-form-item label="姓名" prop="patientName" class="grid-item required">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.patientName"
|
||||
placeholder="请输入姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="住院号" prop="hospitalNo" class="grid-item required">
|
||||
<el-input
|
||||
v-model="formData.hospitalNo"
|
||||
placeholder="请输入住院号"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="性别" prop="gender" class="grid-item required">
|
||||
<el-select v-model="formData.gender" placeholder="请选择" style="width: 100%;">
|
||||
=======
|
||||
<el-input v-model="formData.patientName" placeholder="请输入姓名" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="住院号" prop="hospitalNo" class="grid-item required">
|
||||
@@ -47,43 +25,17 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="性别" prop="gender" class="grid-item required">
|
||||
<el-select v-model="formData.gender" placeholder="请选择" style="width: 100%">
|
||||
>>>>>>> v1.3
|
||||
<el-option label="男" value="男"></el-option>
|
||||
<el-option label="女" value="女"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<div class="input-with-unit">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model.number="formData.age"
|
||||
placeholder="请输入年龄"
|
||||
clearable
|
||||
/>
|
||||
=======
|
||||
<el-input v-model.number="formData.age" placeholder="请输入年龄" clearable />
|
||||
>>>>>>> v1.3
|
||||
<span class="unit">岁</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="民族" prop="nation" class="grid-item">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.nation"
|
||||
placeholder="请输入民族"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="职业" prop="occupation" class="grid-item">
|
||||
<el-input
|
||||
v-model="formData.occupation"
|
||||
placeholder="请输入职业"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="婚姻状况" prop="marriage" class="grid-item">
|
||||
<el-select v-model="formData.marriage" placeholder="请选择" clearable style="width: 100%;">
|
||||
=======
|
||||
<el-input v-model="formData.nation" placeholder="请输入民族" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="职业" prop="occupation" class="grid-item">
|
||||
@@ -96,48 +48,12 @@
|
||||
clearable
|
||||
style="width: 100%"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-option label="已婚" value="已婚"></el-option>
|
||||
<el-option label="未婚" value="未婚"></el-option>
|
||||
<el-option label="离异" value="离异"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="出生地" prop="birthplace" class="grid-item">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.birthplace"
|
||||
placeholder="请输入出生地"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="入院时间" prop="admissionTime" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.admissionTime"
|
||||
type="datetime"
|
||||
placeholder="选择入院时间"
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="记录时间" prop="recordTime" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.recordTime"
|
||||
type="datetime"
|
||||
placeholder="选择记录时间"
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="病史陈述者" prop="historyReporter" class="grid-item">
|
||||
<el-input
|
||||
v-model="formData.historyReporter"
|
||||
placeholder="请输入陈述者"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="可靠程度" prop="reliability" class="grid-item">
|
||||
<el-select v-model="formData.reliability" placeholder="请选择" style="width: 100%;">
|
||||
=======
|
||||
<el-input v-model="formData.birthplace" placeholder="请输入出生地" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="入院时间" prop="admissionTime" class="grid-item required">
|
||||
@@ -163,7 +79,6 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="可靠程度" prop="reliability" class="grid-item">
|
||||
<el-select v-model="formData.reliability" placeholder="请选择" style="width: 100%">
|
||||
>>>>>>> v1.3
|
||||
<el-option label="可靠" value="可靠"></el-option>
|
||||
<el-option label="基本可靠" value="基本可靠"></el-option>
|
||||
<el-option label="不可靠" value="不可靠"></el-option>
|
||||
@@ -175,137 +90,76 @@
|
||||
<h4 class="section-title">病史信息</h4>
|
||||
<div class="form-section">
|
||||
<el-form-item label="主诉" prop="complaint" class="history-item required">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.complaint"
|
||||
type="textarea"
|
||||
placeholder="请输入主诉"
|
||||
=======
|
||||
<el-input
|
||||
v-model="formData.complaint"
|
||||
type="textarea"
|
||||
placeholder="请输入主诉"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="200"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="现病史" prop="presentIllness" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.presentIllness"
|
||||
type="textarea"
|
||||
placeholder="请详细描述现病史"
|
||||
=======
|
||||
|
||||
<el-form-item label="现病史" prop="presentIllness" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.presentIllness"
|
||||
type="textarea"
|
||||
placeholder="请详细描述现病史"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="1000"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="既往史" prop="pastHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.pastHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入既往史"
|
||||
=======
|
||||
|
||||
<el-form-item label="既往史" prop="pastHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.pastHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入既往史"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="800"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="个人史" prop="personalHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.personalHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入个人史"
|
||||
=======
|
||||
|
||||
<el-form-item label="个人史" prop="personalHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.personalHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入个人史"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="婚育史" prop="maritalHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.maritalHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入婚育史"
|
||||
=======
|
||||
|
||||
<el-form-item label="婚育史" prop="maritalHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.maritalHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入婚育史"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="月经史" prop="menstrualHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.menstrualHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入月经史"
|
||||
=======
|
||||
|
||||
<el-form-item label="月经史" prop="menstrualHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.menstrualHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入月经史"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="家族史" prop="familyHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.familyHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入家族史"
|
||||
=======
|
||||
|
||||
<el-form-item label="家族史" prop="familyHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.familyHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入家族史"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
@@ -317,17 +171,10 @@
|
||||
<h4 class="section-title">中医望闻问切</h4>
|
||||
<div class="form-section">
|
||||
<el-form-item label="望闻问切" prop="tcmInfo" class="history-item">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.tcmInfo"
|
||||
type="textarea"
|
||||
placeholder="请输入中医望闻问切结果"
|
||||
=======
|
||||
<el-input
|
||||
v-model="formData.tcmInfo"
|
||||
type="textarea"
|
||||
placeholder="请输入中医望闻问切结果"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="600"
|
||||
show-word-limit
|
||||
@@ -341,33 +188,16 @@
|
||||
<div class="adaptive-grid">
|
||||
<el-form-item label="体温" prop="temp" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model.number="formData.temp"
|
||||
type="number"
|
||||
step="0.1"
|
||||
placeholder="如36.0"
|
||||
=======
|
||||
<el-input
|
||||
v-model.number="formData.temp"
|
||||
type="number"
|
||||
step="0.1"
|
||||
placeholder="如36.0"
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
/>
|
||||
<span class="unit">℃</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="脉搏" prop="pulse" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.pulse"
|
||||
type="number"
|
||||
placeholder="如76"
|
||||
=======
|
||||
|
||||
<el-form-item label="脉搏" prop="pulse" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
@@ -375,21 +205,11 @@
|
||||
v-model.number="formData.pulse"
|
||||
type="number"
|
||||
placeholder="如76"
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
/>
|
||||
<span class="unit">次/分</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="呼吸" prop="respiration" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.respiration"
|
||||
type="number"
|
||||
placeholder="如16"
|
||||
=======
|
||||
|
||||
<el-form-item label="呼吸" prop="respiration" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
@@ -397,42 +217,23 @@
|
||||
v-model.number="formData.respiration"
|
||||
type="number"
|
||||
placeholder="如16"
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
/>
|
||||
<span class="unit">次/分</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="血压" prop="bp" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model="formData.bp"
|
||||
placeholder="如188/94"
|
||||
=======
|
||||
|
||||
<el-form-item label="血压" prop="bp" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model="formData.bp"
|
||||
placeholder="如188/94"
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
@blur="validateBloodPressure"
|
||||
/>
|
||||
<span class="unit">mmHg</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="身高" prop="height" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.height"
|
||||
type="number"
|
||||
placeholder="如165"
|
||||
=======
|
||||
|
||||
<el-form-item label="身高" prop="height" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
@@ -440,21 +241,11 @@
|
||||
v-model.number="formData.height"
|
||||
type="number"
|
||||
placeholder="如165"
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
/>
|
||||
<span class="unit">cm</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="体重" prop="weight" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.weight"
|
||||
type="number"
|
||||
placeholder="如79"
|
||||
=======
|
||||
|
||||
<el-form-item label="体重" prop="weight" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
@@ -462,124 +253,69 @@
|
||||
v-model.number="formData.weight"
|
||||
type="number"
|
||||
placeholder="如79"
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
/>
|
||||
<span class="unit">kg</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="BMI" prop="bmi" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model="formData.bmi"
|
||||
placeholder="如29.02"
|
||||
readonly
|
||||
/>
|
||||
=======
|
||||
|
||||
<el-form-item label="BMI" prop="bmi" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.bmi" placeholder="如29.02" readonly />
|
||||
>>>>>>> v1.3
|
||||
<span class="unit">kg/m²</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<el-form-item label="一般情况" prop="general" class="history-item">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.general"
|
||||
type="textarea"
|
||||
placeholder="请输入一般情况"
|
||||
=======
|
||||
<el-input
|
||||
v-model="formData.general"
|
||||
type="textarea"
|
||||
placeholder="请输入一般情况"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="300"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="皮肤粘膜" prop="skin" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.skin"
|
||||
type="textarea"
|
||||
placeholder="请输入皮肤粘膜情况"
|
||||
=======
|
||||
|
||||
<el-form-item label="皮肤粘膜" prop="skin" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.skin"
|
||||
type="textarea"
|
||||
placeholder="请输入皮肤粘膜情况"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="300"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="胸部(心、肺)" prop="chest" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.chest"
|
||||
type="textarea"
|
||||
placeholder="请输入胸部检查结果"
|
||||
=======
|
||||
|
||||
<el-form-item label="胸部(心、肺)" prop="chest" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.chest"
|
||||
type="textarea"
|
||||
placeholder="请输入胸部检查结果"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="腹部" prop="abdomen" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.abdomen"
|
||||
type="textarea"
|
||||
placeholder="请输入腹部检查结果"
|
||||
=======
|
||||
|
||||
<el-form-item label="腹部" prop="abdomen" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.abdomen"
|
||||
type="textarea"
|
||||
placeholder="请输入腹部检查结果"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="四肢/神经系统" prop="limbsNervous" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.limbsNervous"
|
||||
type="textarea"
|
||||
placeholder="请输入四肢及神经系统检查结果"
|
||||
=======
|
||||
|
||||
<el-form-item label="四肢/神经系统" prop="limbsNervous" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.limbsNervous"
|
||||
type="textarea"
|
||||
placeholder="请输入四肢及神经系统检查结果"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
@@ -591,17 +327,10 @@
|
||||
<h4 class="section-title">辅助检查</h4>
|
||||
<div class="form-section">
|
||||
<el-form-item label="检查结果" prop="auxExam" class="history-item">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.auxExam"
|
||||
type="textarea"
|
||||
placeholder="请输入辅助检查结果"
|
||||
=======
|
||||
<el-input
|
||||
v-model="formData.auxExam"
|
||||
type="textarea"
|
||||
placeholder="请输入辅助检查结果"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="1000"
|
||||
show-word-limit
|
||||
@@ -613,37 +342,21 @@
|
||||
<h4 class="section-title">初步诊断</h4>
|
||||
<div class="form-section">
|
||||
<el-form-item label="中医诊断" prop="tcmDiagnosis" class="history-item">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.tcmDiagnosis"
|
||||
type="textarea"
|
||||
placeholder="如:胸痹心痛(气阴两虚证)"
|
||||
=======
|
||||
<el-input
|
||||
v-model="formData.tcmDiagnosis"
|
||||
type="textarea"
|
||||
placeholder="如:胸痹心痛(气阴两虚证)"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="西医诊断" prop="westernDiagnosis" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.westernDiagnosis"
|
||||
type="textarea"
|
||||
placeholder="如:1.冠状动脉粥样硬化性心脏病"
|
||||
=======
|
||||
|
||||
<el-form-item label="西医诊断" prop="westernDiagnosis" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.westernDiagnosis"
|
||||
type="textarea"
|
||||
placeholder="如:1.冠状动脉粥样硬化性心脏病"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="800"
|
||||
show-word-limit
|
||||
@@ -653,32 +366,6 @@
|
||||
|
||||
<!-- 7. 签名信息(三列布局) -->
|
||||
<h4 class="section-title">签名信息</h4>
|
||||
<<<<<<< HEAD
|
||||
<div class="adaptive-grid form-section" style="grid-template-columns: repeat(3, 1fr);">
|
||||
<el-form-item label="医师签名" prop="doctorSign" class="grid-item">
|
||||
<el-input
|
||||
v-model="formData.doctorSign"
|
||||
placeholder="请签名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="上级医师签名" prop="superiorSign" class="grid-item">
|
||||
<el-input
|
||||
v-model="formData.superiorSign"
|
||||
placeholder="请签名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="记录日期" prop="signDate" class="grid-item">
|
||||
<el-date-picker
|
||||
v-model="formData.signDate"
|
||||
type="datetime"
|
||||
placeholder="选择日期"
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
style="width: 100%;"
|
||||
=======
|
||||
<div class="adaptive-grid form-section" style="grid-template-columns: repeat(3, 1fr)">
|
||||
<el-form-item label="医师签名" prop="doctorSign" class="grid-item">
|
||||
<el-input v-model="formData.doctorSign" placeholder="请签名" clearable />
|
||||
@@ -695,7 +382,6 @@
|
||||
placeholder="选择日期"
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
style="width: 100%"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -707,22 +393,11 @@
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<admissionRecord v-if="isShowprintDom" ref="recordPrintRef"></admissionRecord>
|
||||
>>>>>>> v1.3
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, watch, onMounted } from 'vue';
|
||||
<<<<<<< HEAD
|
||||
import { ElInput, ElSelect, ElOption, ElDatePicker, ElButton, ElMessage, ElMessageBox, ElForm, ElFormItem } from 'element-plus';
|
||||
import useUserStore from '../store/modules/user';
|
||||
|
||||
defineOptions({
|
||||
name: 'InHospitalRecord',
|
||||
components: { ElInput, ElSelect, ElOption, ElDatePicker, ElButton, ElForm, ElFormItem }
|
||||
=======
|
||||
import { previewPrint } from '../utils/printUtils';
|
||||
import admissionRecord from '../views/hospitalRecord/components/admissionRecord.vue';
|
||||
import {
|
||||
@@ -742,7 +417,6 @@ const recordPrintRef = ref();
|
||||
defineOptions({
|
||||
name: 'InHospitalRecord',
|
||||
components: { ElInput, ElSelect, ElOption, ElDatePicker, ElButton, ElForm, ElFormItem },
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
// Props与事件
|
||||
@@ -768,28 +442,6 @@ const formData = reactive({
|
||||
gender: patient?.genderEnum_enumText || '',
|
||||
age: patient?.age || '',
|
||||
nation: '',
|
||||
<<<<<<< HEAD
|
||||
occupation: '',// 职业
|
||||
marriage: '',// 婚姻状况
|
||||
birthplace: '',// 出生地
|
||||
admissionTime: '',// 入院时间
|
||||
recordTime: '',// 记录时间
|
||||
historyReporter: '',// 病史陈述者
|
||||
reliability: '可靠',// 可靠程度
|
||||
// 病史信息
|
||||
complaint: '',// 主诉
|
||||
presentIllness: '',// 现病史
|
||||
pastIllness: '',// 既往史
|
||||
personalHistory: '',// 个人史
|
||||
allergyHistory: '',// 过敏史
|
||||
pastHistory: '',// 既往史
|
||||
familyHistory: '',// 家族史
|
||||
maritalHistory: '',// 婚姻史
|
||||
menstrualHistory: '',// 月经史
|
||||
// 中医信息
|
||||
tcmInfo: '',
|
||||
|
||||
=======
|
||||
occupation: '', // 职业
|
||||
marriage: '', // 婚姻状况
|
||||
birthplace: '', // 出生地
|
||||
@@ -810,7 +462,6 @@ const formData = reactive({
|
||||
// 中医信息
|
||||
tcmInfo: '',
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 体格检查
|
||||
temp: '',
|
||||
pulse: '',
|
||||
@@ -824,20 +475,6 @@ const formData = reactive({
|
||||
chest: '',
|
||||
abdomen: '',
|
||||
limbsNervous: '',
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 辅助检查
|
||||
auxExam: '',
|
||||
|
||||
// 诊断信息
|
||||
tcmDiagnosis: '',
|
||||
westernDiagnosis: '',
|
||||
|
||||
// 签名信息
|
||||
doctorSign: '',
|
||||
superiorSign: '',
|
||||
signDate: ''
|
||||
=======
|
||||
|
||||
// 辅助检查
|
||||
auxExam: '',
|
||||
@@ -850,35 +487,10 @@ const formData = reactive({
|
||||
doctorSign: '',
|
||||
superiorSign: '',
|
||||
signDate: '',
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
// 表单校验规则
|
||||
const rules = reactive({
|
||||
<<<<<<< HEAD
|
||||
name: [
|
||||
{ required: true, message: '请填写姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
hospitalNo: [
|
||||
{ required: true, message: '请填写住院号', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
gender: [
|
||||
{ required: true, message: '请选择性别', trigger: ['change', 'submit'] }
|
||||
],
|
||||
age: [
|
||||
{ required: true, message: '请填写年龄', trigger: ['blur', 'submit'] },
|
||||
{ type: 'number', min: 1, max: 120, message: '年龄需在1-120岁之间', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
admissionTime: [
|
||||
{ required: true, message: '请选择入院时间', trigger: ['change', 'submit'] }
|
||||
],
|
||||
recordTime: [
|
||||
{ required: true, message: '请选择记录时间', trigger: ['change', 'submit'] }
|
||||
],
|
||||
chiefComplaint: [
|
||||
{ required: true, message: '请填写主诉', trigger: ['blur', 'submit'] }
|
||||
]
|
||||
=======
|
||||
name: [{ required: true, message: '请填写姓名', trigger: ['blur', 'submit'] }],
|
||||
hospitalNo: [{ required: true, message: '请填写住院号', trigger: ['blur', 'submit'] }],
|
||||
gender: [{ required: true, message: '请选择性别', trigger: ['change', 'submit'] }],
|
||||
@@ -895,7 +507,6 @@ const rules = reactive({
|
||||
admissionTime: [{ required: true, message: '请选择入院时间', trigger: ['change', 'submit'] }],
|
||||
recordTime: [{ required: true, message: '请选择记录时间', trigger: ['change', 'submit'] }],
|
||||
chiefComplaint: [{ required: true, message: '请填写主诉', trigger: ['blur', 'submit'] }],
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
// 生命周期
|
||||
@@ -912,19 +523,11 @@ onMounted(() => {
|
||||
}
|
||||
if (!formData.patientName) {
|
||||
formData.patientName = patient?.patientName || '';
|
||||
<<<<<<< HEAD
|
||||
}
|
||||
if (!formData.gender) {
|
||||
formData.gender = patient?.genderEnum_enumText || '';
|
||||
}
|
||||
if (!formData.age) {
|
||||
=======
|
||||
}
|
||||
if (!formData.gender) {
|
||||
formData.gender = patient?.genderEnum_enumText || '';
|
||||
}
|
||||
if (!formData.age) {
|
||||
>>>>>>> v1.3
|
||||
formData.age = patient?.age || '';
|
||||
}
|
||||
if (!formData.hospitalNo) {
|
||||
@@ -943,23 +546,6 @@ watch([() => formData.height, () => formData.weight], ([newHeight, newWeight]) =
|
||||
});
|
||||
|
||||
// 入院时间变化处理
|
||||
<<<<<<< HEAD
|
||||
watch(() => formData.admissionTime, (val) => {
|
||||
if (val && !formData.recordTime) {
|
||||
ElMessageBox.confirm(
|
||||
'是否将记录时间同步为入院时间?',
|
||||
'时间同步提示',
|
||||
{
|
||||
confirmButtonText: '同步',
|
||||
cancelButtonText: '手动设置',
|
||||
type: 'info'
|
||||
}
|
||||
).then(() => {
|
||||
formData.recordTime = val;
|
||||
}).catch(() => {});
|
||||
}
|
||||
});
|
||||
=======
|
||||
watch(
|
||||
() => formData.admissionTime,
|
||||
(val) => {
|
||||
@@ -976,7 +562,6 @@ watch(
|
||||
}
|
||||
}
|
||||
);
|
||||
>>>>>>> v1.3
|
||||
|
||||
// 血压格式校验
|
||||
const validateBloodPressure = () => {
|
||||
@@ -998,11 +583,6 @@ const submit = () => {
|
||||
validateBloodPressure();
|
||||
if (!formData.bp) return; // 格式错误时终止提交
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
emits('submitOk', formData);
|
||||
ElMessage.success('记录保存成功!');
|
||||
}
|
||||
@@ -1011,37 +591,6 @@ const submit = () => {
|
||||
|
||||
// 新增:重置表单方法(带确认提示)
|
||||
const handleReset = () => {
|
||||
<<<<<<< HEAD
|
||||
ElMessageBox.confirm(
|
||||
'确定要重置表单吗?所有已填写内容将被清空,且不可恢复',
|
||||
'重置确认',
|
||||
{
|
||||
confirmButtonText: '确认重置',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
center: true
|
||||
}
|
||||
).then(() => {
|
||||
// 执行表单重置
|
||||
formRef.value.resetFields();
|
||||
// 保留患者基础信息和默认值(避免清空关键基础数据)
|
||||
formData.patientName = patient?.name || '';
|
||||
formData.hospitalNo = patient?.busNo || '';
|
||||
formData.gender = patient?.genderEnum_enumText || '';
|
||||
formData.age = patient?.age || '';
|
||||
formData.reliability = '可靠';
|
||||
// 重置时间为当前时间
|
||||
const today = new Date();
|
||||
formData.admissionTime = formatDateTime(today);
|
||||
formData.recordTime = formatDateTime(today);
|
||||
formData.signDate = formatDateTime(today);
|
||||
// 重置成功提示
|
||||
ElMessage.success('表单已成功重置');
|
||||
}).catch(() => {
|
||||
// 取消重置提示
|
||||
ElMessage.info('已取消表单重置');
|
||||
});
|
||||
=======
|
||||
ElMessageBox.confirm('确定要重置表单吗?所有已填写内容将被清空,且不可恢复', '重置确认', {
|
||||
confirmButtonText: '确认重置',
|
||||
cancelButtonText: '取消',
|
||||
@@ -1069,7 +618,6 @@ const handleReset = () => {
|
||||
// 取消重置提示
|
||||
ElMessage.info('已取消表单重置');
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
};
|
||||
|
||||
// 表单数据赋值
|
||||
@@ -1089,10 +637,6 @@ const formatDateTime = (date) => {
|
||||
return `${year}-${month}-${day} ${hour}:${minute}`;
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 暴露接口
|
||||
defineExpose({ formData, submit, setFormData, handleReset });
|
||||
=======
|
||||
// 打印方法
|
||||
const printFun = () => {
|
||||
console.log('入院记录打印');
|
||||
@@ -1108,7 +652,6 @@ const printFun = () => {
|
||||
|
||||
// 暴露接口
|
||||
defineExpose({ formData, submit, setFormData, handleReset, printFun });
|
||||
>>>>>>> v1.3
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@@ -1116,12 +659,7 @@ defineExpose({ formData, submit, setFormData, handleReset, printFun });
|
||||
.medical-form {
|
||||
max-width: 1200px;
|
||||
width: 100%;
|
||||
<<<<<<< HEAD
|
||||
height: 700px;
|
||||
margin: 15px auto;
|
||||
=======
|
||||
height: 28000px;
|
||||
>>>>>>> v1.3
|
||||
padding: 15px;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 8px;
|
||||
@@ -1257,12 +795,8 @@ defineExpose({ formData, submit, setFormData, handleReset, printFun });
|
||||
.adaptive-grid {
|
||||
grid-template-columns: 1fr; /* 小屏幕下单列显示 */
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
.grid-item, .history-item {
|
||||
=======
|
||||
.grid-item,
|
||||
.history-item {
|
||||
>>>>>>> v1.3
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
/* 小屏幕按钮居中 */
|
||||
@@ -1277,8 +811,4 @@ defineExpose({ formData, submit, setFormData, handleReset, printFun });
|
||||
grid-template-columns: repeat(2, 1fr); /* 中等屏幕下两列显示 */
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -14,11 +14,7 @@
|
||||
label-width="120px"
|
||||
label-align="left"
|
||||
class="doc-content"
|
||||
<<<<<<< HEAD
|
||||
style="height: 60vh; overflow: scroll;"
|
||||
=======
|
||||
style="height: 60vh; overflow: scroll"
|
||||
>>>>>>> v1.3
|
||||
>
|
||||
<!-- 患者与手术基础信息 -->
|
||||
<section class="doc-section">
|
||||
@@ -27,35 +23,12 @@
|
||||
<el-form-item label="患者姓名" prop="patientName" class="grid-item required">
|
||||
<el-input v-model="formData.patientName" placeholder="请输入患者姓名" clearable />
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="性别" prop="gender" class="grid-item required">
|
||||
<el-select v-model="formData.gender" placeholder="请选择性别">
|
||||
<el-option label="男" value="男" />
|
||||
<el-option label="女" value="女" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model.number="formData.age" type="number" placeholder="请输入年龄" />
|
||||
<span class="unit">岁</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="科室" prop="department" class="grid-item required">
|
||||
<el-input v-model="formData.department" placeholder="如:普外科" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="病房/床号" prop="bedNo" class="grid-item required">
|
||||
<el-input v-model="formData.bedNo" placeholder="如:502-03" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<div class="input-with-unit">
|
||||
@@ -72,7 +45,6 @@
|
||||
<el-input v-model="formData.bedNo" placeholder="如:502-03" clearable />
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="手术日期/时间" prop="operationDateTime" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.operationDateTime"
|
||||
@@ -91,25 +63,6 @@
|
||||
<el-form-item label="手术者" prop="surgeon" class="grid-item required">
|
||||
<el-input v-model="formData.surgeon" placeholder="主刀医师姓名" clearable />
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="第一助手" prop="firstAssistant" class="grid-item required">
|
||||
<el-input v-model="formData.firstAssistant" placeholder="第一助手姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="第二助手" prop="secondAssistant" class="grid-item">
|
||||
<el-input v-model="formData.secondAssistant" placeholder="第二助手姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="麻醉医师" prop="anesthesiologist" class="grid-item required">
|
||||
<el-input v-model="formData.anesthesiologist" placeholder="麻醉医师姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="巡回护士" prop="circulatingNurse" class="grid-item required">
|
||||
<el-input v-model="formData.circulatingNurse" placeholder="巡回护士姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="第一助手" prop="firstAssistant" class="grid-item required">
|
||||
<el-input v-model="formData.firstAssistant" placeholder="第一助手姓名" clearable />
|
||||
@@ -127,7 +80,6 @@
|
||||
<el-input v-model="formData.circulatingNurse" placeholder="巡回护士姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="器械护士" prop="scrubNurse" class="grid-item required">
|
||||
<el-input v-model="formData.scrubNurse" placeholder="器械护士姓名" clearable />
|
||||
</el-form-item>
|
||||
@@ -137,13 +89,6 @@
|
||||
<!-- 手术详情 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">三、手术详情</h2>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="手术名称" prop="operationName" class="full-width-item required">
|
||||
<el-input v-model="formData.operationName" placeholder="规范手术名称(如:腹腔镜下胆囊切除术)" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="手术名称" prop="operationName" class="full-width-item required">
|
||||
<el-input
|
||||
@@ -153,7 +98,6 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="手术方式" prop="operationMethod" class="full-width-item required">
|
||||
<el-select v-model="formData.operationMethod" placeholder="选择手术方式">
|
||||
<el-option label="开放手术" value="开放手术" />
|
||||
@@ -161,14 +105,6 @@
|
||||
<el-option label="介入手术" value="介入手术" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="手术入路" prop="surgicalApproach" class="full-width-item required">
|
||||
<el-input v-model="formData.surgicalApproach" placeholder="如:右上腹经腹直肌切口" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="术中发现" prop="intraoperativeFindings" class="full-width-item required">
|
||||
=======
|
||||
|
||||
<el-form-item label="手术入路" prop="surgicalApproach" class="full-width-item required">
|
||||
<el-input
|
||||
@@ -183,7 +119,6 @@
|
||||
prop="intraoperativeFindings"
|
||||
class="full-width-item required"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-input
|
||||
v-model="formData.intraoperativeFindings"
|
||||
type="textarea"
|
||||
@@ -193,11 +128,6 @@
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="手术过程" prop="operationProcess" class="full-width-item required">
|
||||
<el-input
|
||||
v-model="formData.operationProcess"
|
||||
@@ -216,13 +146,6 @@
|
||||
<div class="adaptive-grid">
|
||||
<el-form-item label="术中出血量" prop="bloodLoss" class="grid-item required">
|
||||
<div class="input-with-unit">
|
||||
<<<<<<< HEAD
|
||||
<el-input v-model.number="formData.bloodLoss" type="number" placeholder="请输入出血量" />
|
||||
<span class="unit">ml</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
<el-input
|
||||
v-model.number="formData.bloodLoss"
|
||||
type="number"
|
||||
@@ -232,24 +155,12 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="输血情况" prop="bloodTransfusion" class="grid-item">
|
||||
<el-select v-model="formData.bloodTransfusion" placeholder="是否输血">
|
||||
<el-option label="是" value="是" />
|
||||
<el-option label="否" value="否" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="引流管放置" prop="drainageTube" class="grid-item">
|
||||
<el-input v-model="formData.drainageTube" placeholder="如:腹腔引流管1根" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="标本处理" prop="specimenDisposal" class="grid-item required">
|
||||
<el-input v-model="formData.specimenDisposal" placeholder="如:胆囊标本送病理检查" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="引流管放置" prop="drainageTube" class="grid-item">
|
||||
<el-input v-model="formData.drainageTube" placeholder="如:腹腔引流管1根" clearable />
|
||||
@@ -263,7 +174,6 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="手术结束时间" prop="operationEndTime" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.operationEndTime"
|
||||
@@ -272,11 +182,6 @@
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="患者去向" prop="patientDestination" class="grid-item required">
|
||||
<el-select v-model="formData.patientDestination" placeholder="选择去向">
|
||||
<el-option label="ICU" value="ICU" />
|
||||
@@ -289,43 +194,25 @@
|
||||
<!-- 签署区域 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">五、签署确认</h2>
|
||||
<<<<<<< HEAD
|
||||
<div class="adaptive-grid signature-area" style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));">
|
||||
=======
|
||||
<div
|
||||
class="adaptive-grid signature-area"
|
||||
style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr))"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="手术者签名" prop="surgeonSignature" class="grid-item required">
|
||||
<el-input v-model="formData.surgeonSignature" placeholder="主刀医师签字" clearable />
|
||||
<div class="signature-tip">请手术者亲笔签名</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="记录者签名" prop="recorderSignature" class="grid-item required">
|
||||
<el-input v-model="formData.recorderSignature" placeholder="记录者签字" clearable />
|
||||
<div class="signature-tip">请记录者(如第一助手)签字</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="记录日期" prop="recordDate" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.recordDate"
|
||||
type="date"
|
||||
placeholder="选择记录日期"
|
||||
value-format="YYYY-MM-DD"
|
||||
<<<<<<< HEAD
|
||||
style="width: 100%;"
|
||||
=======
|
||||
style="width: 100%"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -339,22 +226,11 @@
|
||||
<el-button type="warning" @click="handleReset">重置表单</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<intOperRecordSheet v-if="isShowprintDom" ref="recordPrintRef"></intOperRecordSheet>
|
||||
>>>>>>> v1.3
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from 'vue';
|
||||
<<<<<<< HEAD
|
||||
import { ElMessage, ElMessageBox, ElForm, ElFormItem, ElInput, ElSelect, ElOption, ElDatePicker, ElButton } from 'element-plus';
|
||||
|
||||
// 医院名称
|
||||
const hospitalName = '长春市朝阳区中医院';
|
||||
defineOptions({
|
||||
name: 'iInHospitalSurgicalRecord'
|
||||
=======
|
||||
import intOperRecordSheet from '../views/hospitalRecord/components/intOperRecordSheet.vue';
|
||||
import {
|
||||
ElMessage,
|
||||
@@ -374,7 +250,6 @@ const recordPrintRef = ref();
|
||||
const hospitalName = '长春市朝阳区中医院';
|
||||
defineOptions({
|
||||
name: 'iInHospitalSurgicalRecord',
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
// 表单引用
|
||||
const formRef = ref(null);
|
||||
@@ -388,115 +263,6 @@ const formData = reactive({
|
||||
age: '',
|
||||
department: '',
|
||||
bedNo: '',
|
||||
<<<<<<< HEAD
|
||||
operationDateTime: '',// 手术日期时间
|
||||
|
||||
// 手术团队信息
|
||||
surgeon: '',// 主刀医师
|
||||
firstAssistant: '',// 第一助手
|
||||
secondAssistant: '',// 第二助手
|
||||
anesthesiologist: '',// 麻醉医师
|
||||
circulatingNurse: '',// 巡回护士
|
||||
scrubNurse: '',// 器械护士
|
||||
|
||||
// 手术详情
|
||||
operationName: '',// 规范手术名称
|
||||
operationMethod: '',// 手术方式
|
||||
surgicalApproach: '',// 手术入路
|
||||
intraoperativeFindings: '',// 术中发现
|
||||
operationProcess: '',// 手术过程
|
||||
|
||||
// 术后情况
|
||||
bloodLoss: '',// 术中出血量
|
||||
bloodTransfusion: '',// 输血情况
|
||||
drainageTube: '',// 引流管放置
|
||||
specimenDisposal: '',// 标本处理
|
||||
operationEndTime: '',// 手术结束时间
|
||||
patientDestination: '',// 患者去向
|
||||
|
||||
// 签署信息
|
||||
surgeonSignature: '',// 手术者签名
|
||||
recorderSignature: '',// 记录者签名
|
||||
recordDate: ''// 记录日期
|
||||
});
|
||||
|
||||
// 表单验证规则
|
||||
const rules = reactive({
|
||||
busNo: [
|
||||
{ required: true, message: '请填写住院号', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
patientName: [
|
||||
{ required: true, message: '请填写患者姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
gender: [
|
||||
{ required: true, message: '请选择性别', trigger: ['change', 'submit'] }
|
||||
],
|
||||
age: [
|
||||
{ required: true, message: '请填写年龄', trigger: ['blur', 'submit'] },
|
||||
{ type: 'number', min: 0, max: 150, message: '年龄需在0-150之间', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
department: [
|
||||
{ required: true, message: '请填写科室', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
bedNo: [
|
||||
{ required: true, message: '请填写病房/床号', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
operationDateTime: [
|
||||
{ required: true, message: '请选择手术日期时间', trigger: ['change', 'submit'] }
|
||||
],
|
||||
surgeon: [
|
||||
{ required: true, message: '请填写手术者姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
firstAssistant: [
|
||||
{ required: true, message: '请填写第一助手姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
anesthesiologist: [
|
||||
{ required: true, message: '请填写麻醉医师姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
circulatingNurse: [
|
||||
{ required: true, message: '请填写巡回护士姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
scrubNurse: [
|
||||
{ required: true, message: '请填写器械护士姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
operationName: [
|
||||
{ required: true, message: '请填写手术名称', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
operationMethod: [
|
||||
{ required: true, message: '请选择手术方式', trigger: ['change', 'submit'] }
|
||||
],
|
||||
surgicalApproach: [
|
||||
{ required: true, message: '请填写手术入路', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
intraoperativeFindings: [
|
||||
{ required: true, message: '请描述术中发现', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
operationProcess: [
|
||||
{ required: true, message: '请描述手术过程', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
bloodLoss: [
|
||||
{ required: true, message: '请填写术中出血量', trigger: ['blur', 'submit'] },
|
||||
{ type: 'number', min: 0, message: '出血量不能为负数', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
specimenDisposal: [
|
||||
{ required: true, message: '请填写标本处理方式', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
operationEndTime: [
|
||||
{ required: true, message: '请选择手术结束时间', trigger: ['change', 'submit'] }
|
||||
],
|
||||
patientDestination: [
|
||||
{ required: true, message: '请选择患者去向', trigger: ['change', 'submit'] }
|
||||
],
|
||||
surgeonSignature: [
|
||||
{ required: true, message: '请手术者签名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
recorderSignature: [
|
||||
{ required: true, message: '请记录者签名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
recordDate: [
|
||||
{ required: true, message: '请选择记录日期', trigger: ['change', 'submit'] }
|
||||
]
|
||||
=======
|
||||
operationDateTime: '', // 手术日期时间
|
||||
|
||||
// 手术团队信息
|
||||
@@ -584,7 +350,6 @@ const rules = reactive({
|
||||
surgeonSignature: [{ required: true, message: '请手术者签名', trigger: ['blur', 'submit'] }],
|
||||
recorderSignature: [{ required: true, message: '请记录者签名', trigger: ['blur', 'submit'] }],
|
||||
recordDate: [{ required: true, message: '请选择记录日期', trigger: ['change', 'submit'] }],
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
// 生命周期
|
||||
@@ -594,10 +359,6 @@ onMounted(() => {
|
||||
formData.operationDateTime = formatDateTime(today);
|
||||
formData.operationEndTime = formatDateTime(today);
|
||||
formData.recordDate = formatDate(today);
|
||||
<<<<<<< HEAD
|
||||
});
|
||||
|
||||
=======
|
||||
if (!formData.patientName) {
|
||||
formData.patientName = patient?.patientName || '';
|
||||
}
|
||||
@@ -620,23 +381,17 @@ onMounted(() => {
|
||||
|
||||
const emits = defineEmits(['submitOk']);
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 提交表单
|
||||
const submit = () => {
|
||||
formRef.value.validate((valid) => {
|
||||
if (valid) {
|
||||
ElMessage.success('手术记录保存成功');
|
||||
console.log('手术记录数据:', formData);
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
emits('submitOk', formData);
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// 表单数据赋值
|
||||
const setFormData = (data) => {
|
||||
if (data) {
|
||||
@@ -647,7 +402,6 @@ const setFormData = (data) => {
|
||||
}
|
||||
};
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 打印功能
|
||||
const handlePrint = () => {
|
||||
formRef.value.validate((valid) => {
|
||||
@@ -661,23 +415,11 @@ const handlePrint = () => {
|
||||
|
||||
// 重置表单
|
||||
const handleReset = () => {
|
||||
<<<<<<< HEAD
|
||||
ElMessageBox.confirm(
|
||||
'确定要重置表单吗?所有已填写内容将被清空',
|
||||
'确认重置',
|
||||
{
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}
|
||||
).then(() => {
|
||||
=======
|
||||
ElMessageBox.confirm('确定要重置表单吗?所有已填写内容将被清空', '确认重置', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
>>>>>>> v1.3
|
||||
formRef.value.resetFields();
|
||||
const today = new Date();
|
||||
formData.operationDateTime = formatDateTime(today);
|
||||
@@ -703,14 +445,6 @@ const formatDateTime = (date) => {
|
||||
const minute = String(date.getMinutes()).padStart(2, '0');
|
||||
return `${year}-${month}-${day} ${hour}:${minute}`;
|
||||
};
|
||||
<<<<<<< HEAD
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 样式与原代码保持一致,无需修改 */
|
||||
.medical-document {
|
||||
max-width: 1200px;
|
||||
=======
|
||||
const printFun = () => {
|
||||
console.log('入院记录打印');
|
||||
isShowprintDom.value = true;
|
||||
@@ -730,16 +464,12 @@ defineExpose({ submit, setFormData, printFun });
|
||||
.medical-document {
|
||||
max-width: 1440px; /* PC端最优宽度,兼顾大屏和常规屏 */
|
||||
width: 98%; /* 占满父容器98%,保留少量边距 */
|
||||
>>>>>>> v1.3
|
||||
margin: 20px auto;
|
||||
padding: 30px;
|
||||
background: #fff;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
||||
font-family: 'SimSun', '宋体', serif;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
box-sizing: border-box; /* 确保内边距不撑大容器 */
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
.doc-header {
|
||||
@@ -778,13 +508,6 @@ defineExpose({ submit, setFormData, printFun });
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
.adaptive-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
||||
gap: 15px 20px;
|
||||
margin-bottom: 15px;
|
||||
=======
|
||||
/* 自适应网格:PC端优先展示多列,优化列宽比例 */
|
||||
.adaptive-grid {
|
||||
display: grid;
|
||||
@@ -793,7 +516,6 @@ defineExpose({ submit, setFormData, printFun });
|
||||
gap: 15px 20px;
|
||||
margin-bottom: 15px;
|
||||
width: 100%;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
.grid-item {
|
||||
@@ -847,21 +569,6 @@ defineExpose({ submit, setFormData, printFun });
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
@media (max-width: 768px) {
|
||||
.medical-document {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.adaptive-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.doc-title {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
=======
|
||||
/* 仅针对小屏设备做基础适配,优先保证PC端体验 */
|
||||
@media (max-width: 768px) {
|
||||
.medical-document {
|
||||
@@ -877,14 +584,11 @@ defineExpose({ submit, setFormData, printFun });
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
>>>>>>> v1.3
|
||||
.section-title {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
/* 超宽屏(≥1920px)优化:适度增大间距,提升视觉体验 */
|
||||
@media (min-width: 1920px) {
|
||||
.medical-document {
|
||||
@@ -897,47 +601,26 @@ defineExpose({ submit, setFormData, printFun });
|
||||
}
|
||||
|
||||
/* 打印样式保留 */
|
||||
>>>>>>> v1.3
|
||||
@media print {
|
||||
.btn-group {
|
||||
display: none;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
.medical-document {
|
||||
box-shadow: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
<<<<<<< HEAD
|
||||
}
|
||||
|
||||
.el-input__inner, .el-select__input, .el-textarea__inner {
|
||||
=======
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.el-input__inner,
|
||||
.el-select__input,
|
||||
.el-textarea__inner {
|
||||
>>>>>>> v1.3
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
background: transparent !important;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
.el-form-item__label {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -22,35 +22,12 @@
|
||||
<el-form-item label="姓名" prop="patientName" class="grid-item required">
|
||||
<el-input v-model="formData.patientName" placeholder="请输入患者姓名" clearable />
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="性别" prop="gender" class="grid-item required">
|
||||
<el-select v-model="formData.gender" placeholder="请选择性别">
|
||||
<el-option label="男" value="男" />
|
||||
<el-option label="女" value="女" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model.number="formData.age" type="number" placeholder="请输入年龄" />
|
||||
<span class="unit">岁</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="科室/病区" prop="department" class="grid-item required">
|
||||
<el-input v-model="formData.department" placeholder="如:内科疗区" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="病房/床号" prop="bedNo" class="grid-item required">
|
||||
<el-input v-model="formData.bedNo" placeholder="如:307-12" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<div class="input-with-unit">
|
||||
@@ -67,7 +44,6 @@
|
||||
<el-input v-model="formData.bedNo" placeholder="如:307-12" clearable />
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="入院日期" prop="admissionDate" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.admissionDate"
|
||||
@@ -86,19 +62,11 @@
|
||||
<el-form-item label="经治医师" prop="treatingDoctor" class="grid-item required">
|
||||
<el-input v-model="formData.treatingDoctor" placeholder="请输入医师姓名" clearable />
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="主治医师" prop="attendingDoctor" class="grid-item required">
|
||||
<el-input v-model="formData.attendingDoctor" placeholder="请输入医师姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="主治医师" prop="attendingDoctor" class="grid-item required">
|
||||
<el-input v-model="formData.attendingDoctor" placeholder="请输入医师姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="科主任" prop="departmentHead" class="grid-item required">
|
||||
<el-input v-model="formData.departmentHead" placeholder="请输入主任姓名" clearable />
|
||||
</el-form-item>
|
||||
@@ -108,11 +76,6 @@
|
||||
<!-- 病情与诊断 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">三、病情与诊断</h2>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="病情状况" prop="condition" class="full-width-item required">
|
||||
<el-input
|
||||
v-model="formData.condition"
|
||||
@@ -123,11 +86,6 @@
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<div class="diagnosis-container">
|
||||
<el-form-item label="中医诊断" prop="tcmDiagnosis" class="diagnosis-item">
|
||||
<el-input
|
||||
@@ -139,11 +97,6 @@
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="西医诊断" prop="westernDiagnosis" class="diagnosis-item">
|
||||
<el-input
|
||||
v-model="formData.westernDiagnosis"
|
||||
@@ -160,11 +113,6 @@
|
||||
<!-- 治疗与检查计划 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">四、治疗与检查计划</h2>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="治疗方案" prop="treatmentPlan" class="full-width-item required">
|
||||
<el-input
|
||||
v-model="formData.treatmentPlan"
|
||||
@@ -175,17 +123,12 @@
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="进一步检查项目" prop="examinationItems" class="full-width-item required">
|
||||
=======
|
||||
|
||||
<el-form-item
|
||||
label="进一步检查项目"
|
||||
prop="examinationItems"
|
||||
class="full-width-item required"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-input
|
||||
v-model="formData.examinationItems"
|
||||
type="textarea"
|
||||
@@ -215,25 +158,14 @@
|
||||
<!-- 签署区域(优化后:三列自适应+细节样式) -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">六、签署确认</h2>
|
||||
<<<<<<< HEAD
|
||||
<div class="adaptive-grid signature-area" style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));">
|
||||
=======
|
||||
<div
|
||||
class="adaptive-grid signature-area"
|
||||
style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr))"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="患者或家属签字" prop="patientSignature" class="grid-item required">
|
||||
<el-input v-model="formData.patientSignature" placeholder="请签字" clearable />
|
||||
<div class="signature-tip">请填写患者或家属签字</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="与患者关系" prop="relationship" class="grid-item">
|
||||
<el-input v-model="formData.relationship" placeholder="如:本人、配偶、子女" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="与患者关系" prop="relationship" class="grid-item">
|
||||
<el-input
|
||||
@@ -243,44 +175,27 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="签字日期" prop="signatureDate" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.signatureDate"
|
||||
type="date"
|
||||
placeholder="选择签字日期"
|
||||
value-format="YYYY-MM-DD"
|
||||
<<<<<<< HEAD
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="沟通医师签字" prop="doctorSignature" class="grid-item required">
|
||||
<el-input v-model="formData.doctorSignature" placeholder="请签字" clearable />
|
||||
<div class="signature-tip">请填写沟通医师签字</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="沟通日期" prop="communicationDate" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.communicationDate"
|
||||
type="datetime"
|
||||
placeholder="选择沟通日期时间"
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
<<<<<<< HEAD
|
||||
style="width: 100%;"
|
||||
=======
|
||||
style="width: 100%"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -298,9 +213,6 @@
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from 'vue';
|
||||
<<<<<<< HEAD
|
||||
import { ElMessage, ElMessageBox, ElForm, ElFormItem, ElInput, ElSelect, ElOption, ElDatePicker, ElButton } from 'element-plus';
|
||||
=======
|
||||
import {
|
||||
ElMessage,
|
||||
ElMessageBox,
|
||||
@@ -312,15 +224,10 @@ import {
|
||||
ElDatePicker,
|
||||
ElButton,
|
||||
} from 'element-plus';
|
||||
>>>>>>> v1.3
|
||||
|
||||
// 医院名称
|
||||
const hospitalName = '长春市朝阳区中医院';
|
||||
defineOptions({
|
||||
<<<<<<< HEAD
|
||||
name: 'InHospitalCommunicate'
|
||||
});
|
||||
=======
|
||||
name: 'InHospitalCommunicate',
|
||||
});
|
||||
// Props与事件
|
||||
@@ -353,7 +260,6 @@ onMounted(() => {
|
||||
});
|
||||
const patient = props.patientInfo;
|
||||
console.log('patient1111=======>', JSON.stringify(patient));
|
||||
>>>>>>> v1.3
|
||||
// 表单引用
|
||||
const formRef = ref(null);
|
||||
|
||||
@@ -367,34 +273,14 @@ const formData = reactive({
|
||||
department: '',
|
||||
bedNo: '',
|
||||
admissionDate: '',
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 医疗团队
|
||||
treatingDoctor: '',
|
||||
attendingDoctor: '',
|
||||
departmentHead: '',
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 病情诊断
|
||||
condition: '',
|
||||
tcmDiagnosis: '',
|
||||
westernDiagnosis: '',
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 治疗检查
|
||||
treatmentPlan: '',
|
||||
examinationItems: '',
|
||||
|
||||
// 风险告知
|
||||
riskNotification: '',
|
||||
|
||||
=======
|
||||
|
||||
// 治疗检查
|
||||
treatmentPlan: '',
|
||||
@@ -403,78 +289,16 @@ const formData = reactive({
|
||||
// 风险告知
|
||||
riskNotification: '',
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 签署信息
|
||||
patientSignature: '',
|
||||
relationship: '',
|
||||
signatureDate: '',
|
||||
doctorSignature: '',
|
||||
<<<<<<< HEAD
|
||||
communicationDate: ''
|
||||
=======
|
||||
communicationDate: '',
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
// 表单验证规则
|
||||
const rules = reactive({
|
||||
<<<<<<< HEAD
|
||||
hospitalNo: [
|
||||
{ required: true, message: '请填写住院号', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
patientName: [
|
||||
{ required: true, message: '请填写患者姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
gender: [
|
||||
{ required: true, message: '请选择性别', trigger: ['change', 'submit'] }
|
||||
],
|
||||
age: [
|
||||
{ required: true, message: '请填写年龄', trigger: ['blur', 'submit'] },
|
||||
{ type: 'number', min: 0, max: 150, message: '年龄需在0-150之间', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
department: [
|
||||
{ required: true, message: '请填写科室/病区', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
bedNo: [
|
||||
{ required: true, message: '请填写病房/床号', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
admissionDate: [
|
||||
{ required: true, message: '请选择入院日期', trigger: ['change', 'submit'] }
|
||||
],
|
||||
treatingDoctor: [
|
||||
{ required: true, message: '请填写经治医师', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
attendingDoctor: [
|
||||
{ required: true, message: '请填写主治医师', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
departmentHead: [
|
||||
{ required: true, message: '请填写科主任', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
condition: [
|
||||
{ required: true, message: '请描述病情状况', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
treatmentPlan: [
|
||||
{ required: true, message: '请填写治疗方案', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
examinationItems: [
|
||||
{ required: true, message: '请填写检查项目', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
riskNotification: [
|
||||
{ required: true, message: '请填写风险告知内容', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
patientSignature: [
|
||||
{ required: true, message: '请填写患者或家属签字', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
signatureDate: [
|
||||
{ required: true, message: '请选择签字日期', trigger: ['change', 'submit'] }
|
||||
],
|
||||
doctorSignature: [
|
||||
{ required: true, message: '请填写医师签字', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
communicationDate: [
|
||||
{ required: true, message: '请选择沟通日期', trigger: ['change', 'submit'] }
|
||||
]
|
||||
=======
|
||||
hospitalNo: [{ required: true, message: '请填写住院号', trigger: ['blur', 'submit'] }],
|
||||
patientName: [{ required: true, message: '请填写患者姓名', trigger: ['blur', 'submit'] }],
|
||||
gender: [{ required: true, message: '请选择性别', trigger: ['change', 'submit'] }],
|
||||
@@ -500,7 +324,6 @@ const rules = reactive({
|
||||
signatureDate: [{ required: true, message: '请选择签字日期', trigger: ['change', 'submit'] }],
|
||||
doctorSignature: [{ required: true, message: '请填写医师签字', trigger: ['blur', 'submit'] }],
|
||||
communicationDate: [{ required: true, message: '请选择沟通日期', trigger: ['change', 'submit'] }],
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
// 生命周期
|
||||
@@ -512,27 +335,19 @@ onMounted(() => {
|
||||
formData.communicationDate = formatDateTime(today);
|
||||
});
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
const emits = defineEmits(['submitOk']);
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 提交表单
|
||||
const submit = () => {
|
||||
formRef.value.validate((valid) => {
|
||||
if (valid) {
|
||||
ElMessage.success('记录保存成功');
|
||||
console.log('表单数据:', formData);
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
emits('submitOk', formData);
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// 表单数据赋值
|
||||
const setFormData = (data) => {
|
||||
if (data) {
|
||||
@@ -540,7 +355,6 @@ const setFormData = (data) => {
|
||||
}
|
||||
};
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 打印功能
|
||||
const handlePrint = () => {
|
||||
formRef.value.validate((valid) => {
|
||||
@@ -554,23 +368,11 @@ const handlePrint = () => {
|
||||
|
||||
// 重置表单
|
||||
const handleReset = () => {
|
||||
<<<<<<< HEAD
|
||||
ElMessageBox.confirm(
|
||||
'确定要重置表单吗?所有已填写内容将被清空',
|
||||
'确认重置',
|
||||
{
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}
|
||||
).then(() => {
|
||||
=======
|
||||
ElMessageBox.confirm('确定要重置表单吗?所有已填写内容将被清空', '确认重置', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
>>>>>>> v1.3
|
||||
formRef.value.resetFields();
|
||||
const today = new Date();
|
||||
formData.admissionDate = formatDate(today);
|
||||
@@ -596,11 +398,8 @@ const formatDateTime = (date) => {
|
||||
const minute = String(date.getMinutes()).padStart(2, '0');
|
||||
return `${year}-${month}-${day} ${hour}:${minute}`;
|
||||
};
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
defineExpose({ submit, setFormData });
|
||||
>>>>>>> v1.3
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@@ -732,21 +531,6 @@ defineExpose({ submit, setFormData });
|
||||
.medical-document {
|
||||
padding: 15px;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
.diagnosis-container {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.adaptive-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.doc-title {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
=======
|
||||
|
||||
.diagnosis-container {
|
||||
grid-template-columns: 1fr;
|
||||
@@ -760,7 +544,6 @@ defineExpose({ submit, setFormData });
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
>>>>>>> v1.3
|
||||
.section-title {
|
||||
font-size: 16px;
|
||||
}
|
||||
@@ -771,40 +554,21 @@ defineExpose({ submit, setFormData });
|
||||
.btn-group {
|
||||
display: none;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
.medical-document {
|
||||
box-shadow: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
.el-input__inner, .el-select__input, .el-textarea__inner {
|
||||
=======
|
||||
|
||||
.el-input__inner,
|
||||
.el-select__input,
|
||||
.el-textarea__inner {
|
||||
>>>>>>> v1.3
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
background: transparent !important;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
.el-form-item__label {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -1,29 +1,15 @@
|
||||
<template>
|
||||
<<<<<<< HEAD
|
||||
<!-- 门诊病历表单主容器 -->
|
||||
<div class="medical-form">
|
||||
<!-- 患者基本信息展示区域 -->
|
||||
=======
|
||||
<div class="medical-form">
|
||||
>>>>>>> v1.3
|
||||
<div class="patient-name">
|
||||
患者姓名:{{ patient?.patientName || '未知' }} 病历号:{{
|
||||
patient?.busNo || '未知'
|
||||
}}
|
||||
</div>
|
||||
<<<<<<< HEAD
|
||||
<!-- 医院名称和标题 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<h2 style="text-align: center">{{ userStore.hospitalName }}</h2>
|
||||
<h2 style="text-align: center">门诊病历</h2>
|
||||
|
||||
<!-- 滚动内容区域 -->
|
||||
<div class="form-scroll-container">
|
||||
<<<<<<< HEAD
|
||||
<!-- Element Plus表单组件 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:model="formData"
|
||||
@@ -32,58 +18,34 @@
|
||||
label-align="left"
|
||||
class="medical-full-form"
|
||||
>
|
||||
<<<<<<< HEAD
|
||||
<!-- 基础信息区域标题 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<h4 class="section-title">基础信息</h4>
|
||||
<!-- 1. 基础信息:单行自适应排列 -->
|
||||
<el-form-item class="form-section">
|
||||
<div class="single-row-layout">
|
||||
<<<<<<< HEAD
|
||||
<!-- 身高输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="身高" prop="height" class="row-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.height" type="text" placeholder="请输入" />
|
||||
<span class="unit">cm</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 体重输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="体重" prop="weight" class="row-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.weight" type="text" placeholder="请输入" />
|
||||
<span class="unit">kg</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 体温输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="体温" prop="temperature" class="row-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.temperature" type="text" placeholder="请输入" />
|
||||
<span class="unit">℃</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 脉搏输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="脉搏" prop="pulse" class="row-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.pulse" type="text" placeholder="请输入" />
|
||||
<span class="unit">次/分</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 发病日期选择项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="发病日期" prop="onsetDate" class="row-item">
|
||||
<el-date-picker
|
||||
v-model="formData.onsetDate"
|
||||
@@ -96,19 +58,10 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<!-- 病史信息区域标题 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<h4 class="section-title">病史信息</h4>
|
||||
<!-- 2. 病史信息:单行自适应排列(新增调整) -->
|
||||
<el-form-item class="form-section">
|
||||
<div class="single-row-layout">
|
||||
<<<<<<< HEAD
|
||||
<!-- 现病史输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="现病史" prop="presentIllness" class="row-item history-item">
|
||||
<el-input
|
||||
v-model="formData.presentIllness"
|
||||
@@ -117,17 +70,9 @@
|
||||
autosize
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 既往史输入项 -->
|
||||
<el-form-item label="既往史" prop="pastIllness" class="row-item history-item">
|
||||
<el-input v-model="formData.pastIllness" type="textarea" placeholder="无" autosize />
|
||||
</el-form-item>
|
||||
<!-- 个人史输入项 -->
|
||||
=======
|
||||
<el-form-item label="既往史" prop="pastIllness" class="row-item history-item">
|
||||
<el-input v-model="formData.pastIllness" type="textarea" placeholder="无" autosize />
|
||||
</el-form-item>
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="个人史" prop="personalHistory" class="row-item history-item">
|
||||
<el-input
|
||||
v-model="formData.personalHistory"
|
||||
@@ -136,10 +81,6 @@
|
||||
autosize
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 过敏史输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="过敏史" prop="allergyHistory" class="row-item history-item">
|
||||
<el-input
|
||||
v-model="formData.allergyHistory"
|
||||
@@ -148,10 +89,6 @@
|
||||
autosize
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 家族史输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="家族史" prop="familyHistory" class="row-item history-item">
|
||||
<el-input
|
||||
v-model="formData.familyHistory"
|
||||
@@ -162,11 +99,6 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<!-- 主诉、查体(治疗)、处置、辅助检查区域标题 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<h4 class="section-title">主诉、查体(治疗)、处置、辅助检查</h4>
|
||||
<!-- 3. 主诉(必填) -->
|
||||
<el-form-item label="主诉" prop="complaint" class="required form-item-single">
|
||||
@@ -179,10 +111,6 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 4. 查体、处理、辅助检查 -->
|
||||
<<<<<<< HEAD
|
||||
<!-- 查体(治疗)输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="查体(治疗)" prop="physicalExam" class="form-item-single">
|
||||
<el-input
|
||||
v-model="formData.physicalExam"
|
||||
@@ -193,10 +121,6 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 处置输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="处置" prop="treatment" class="form-item-single">
|
||||
<el-input
|
||||
v-model="formData.treatment"
|
||||
@@ -207,10 +131,6 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 辅助检查输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="辅助检查" prop="auxiliaryExam" class="form-item-single">
|
||||
<el-input
|
||||
v-model="formData.auxiliaryExam"
|
||||
@@ -226,62 +146,24 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
<<<<<<< HEAD
|
||||
// 导入Vue相关功能和组件
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
import { reactive, ref, onBeforeMount, onMounted, watch } from 'vue';
|
||||
import useUserStore from '../store/modules/user';
|
||||
import { ElInput, ElMessage, ElForm, ElFormItem } from 'element-plus';
|
||||
import { patientInfo } from '../views/doctorstation/components/store/patient';
|
||||
import { pa } from 'element-plus/es/locales.mjs';
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 定义组件选项
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
defineOptions({
|
||||
name: 'OutpatientMedicalRecord',
|
||||
components: { ElInput, ElMessage, ElForm, ElFormItem },
|
||||
});
|
||||
|
||||
<<<<<<< HEAD
|
||||
// // Props与事件,去掉props.patientInfo改为直接从store获取
|
||||
=======
|
||||
// // Props与事件, 去掉props.patientInfo改为直接从store获取
|
||||
>>>>>>> v1.3
|
||||
// const props = defineProps({
|
||||
// patientInfo: {
|
||||
// type: Object,
|
||||
// required: true,
|
||||
// },
|
||||
// });
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 定义组件接收的属性(目前为空)
|
||||
const props = defineProps({});
|
||||
|
||||
// 定义组件触发的事件
|
||||
const emits = defineEmits(['submitOk']);
|
||||
|
||||
// 数据初始化
|
||||
// 获取用户store实例,用于获取医院名称等全局信息
|
||||
const userStore = useUserStore();
|
||||
// 患者信息引用,存储当前就诊患者的基本信息
|
||||
const patient = ref(null);
|
||||
// 表单引用,用于访问表单实例进行验证等操作
|
||||
const formRef = ref(null);
|
||||
|
||||
// 表单数据(全部字符类型)
|
||||
// 存储门诊病历表单的所有字段数据
|
||||
const formData = reactive({
|
||||
height: '', // 身高(cm)
|
||||
weight: '', // 体重(kg)
|
||||
temperature: '', // 体温(℃)
|
||||
pulse: '', // 脉搏(次/分)
|
||||
onsetDate: '', // 发病日期
|
||||
complaint: '', // 主诉(必填项)
|
||||
=======
|
||||
const props = defineProps({});
|
||||
const emits = defineEmits(['submitOk']);
|
||||
|
||||
@@ -298,28 +180,17 @@ const formData = reactive({
|
||||
pulse: '', // 脉搏
|
||||
onsetDate: '', // 发病日期
|
||||
complaint: '', // 主诉(必填)
|
||||
>>>>>>> v1.3
|
||||
presentIllness: '', // 现病史
|
||||
pastIllness: '', // 既往史
|
||||
personalHistory: '', // 个人史
|
||||
allergyHistory: '', // 过敏史
|
||||
<<<<<<< HEAD
|
||||
physicalExam: '', // 查体结果
|
||||
treatment: '', // 处理方案
|
||||
auxiliaryExam: '', // 辅助检查结果
|
||||
=======
|
||||
physicalExam: '', // 查体
|
||||
treatment: '', // 处理
|
||||
auxiliaryExam: '', // 辅助检查
|
||||
>>>>>>> v1.3
|
||||
familyHistory: '', // 家族史
|
||||
});
|
||||
|
||||
// 表单校验规则
|
||||
<<<<<<< HEAD
|
||||
// 定义表单字段的验证规则,目前仅主诉为必填项
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const rules = reactive({
|
||||
complaint: [
|
||||
{
|
||||
@@ -331,23 +202,6 @@ const rules = reactive({
|
||||
});
|
||||
|
||||
// 提交函数
|
||||
<<<<<<< HEAD
|
||||
// 用于触发表单验证并提交数据到父组件
|
||||
const submit = () => {
|
||||
// 表单验证
|
||||
formRef.value.validate((isValid) => {
|
||||
if (isValid) {
|
||||
// 触发submitOk事件,传递表单数据
|
||||
emits('submitOk', formData);
|
||||
// 显示成功消息
|
||||
ElMessage.success('提交成功');
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 日期格式化工具函数
|
||||
// 将Date对象格式化为 YYYY-MM-DD HH:mm 格式的字符串
|
||||
=======
|
||||
const submit = () => {
|
||||
formRef.value.validate((isValid) => {
|
||||
if (isValid) {
|
||||
@@ -356,7 +210,6 @@ const submit = () => {
|
||||
});
|
||||
};
|
||||
// 日期格式化工具
|
||||
>>>>>>> v1.3
|
||||
const formatDateTime = (date) => {
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
@@ -365,36 +218,17 @@ const formatDateTime = (date) => {
|
||||
const minute = String(date.getMinutes()).padStart(2, '0');
|
||||
return `${year}-${month}-${day} ${hour}:${minute}`;
|
||||
};
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 表单数据赋值函数
|
||||
// 用于外部组件向表单填充已有数据
|
||||
const setFormData = (data) => {
|
||||
if (data) {
|
||||
// 将传入的数据合并到表单数据中
|
||||
=======
|
||||
// 表单数据赋值
|
||||
const setFormData = (data) => {
|
||||
if (data) {
|
||||
>>>>>>> v1.3
|
||||
Object.assign(formData, data);
|
||||
}
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 生命周期钩子 - 组件挂载前
|
||||
onBeforeMount(() => {});
|
||||
|
||||
// 生命周期钩子 - 组件挂载后
|
||||
onMounted(() => {
|
||||
console.log('当前患者信息:', patientInfo);
|
||||
// 从store获取患者信息
|
||||
=======
|
||||
// 生命周期
|
||||
onBeforeMount(() => {});
|
||||
onMounted(() => {
|
||||
console.log('当前患者信息:', patientInfo);
|
||||
>>>>>>> v1.3
|
||||
patient.value = patientInfo.value;
|
||||
// 初始化发病日期为当前时间
|
||||
if (!formData.onsetDate) {
|
||||
@@ -403,10 +237,6 @@ onMounted(() => {
|
||||
});
|
||||
|
||||
// 监听患者信息变化,实现联动显示
|
||||
<<<<<<< HEAD
|
||||
// 当patientInfo发生变化时更新本地patient引用
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
watch(
|
||||
() => patientInfo.value,
|
||||
(newPatientInfo) => {
|
||||
@@ -415,12 +245,7 @@ watch(
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 暴露接口供父组件调用
|
||||
// 将formData、submit方法和setFormData方法暴露给父组件使用
|
||||
=======
|
||||
// 暴露接口
|
||||
>>>>>>> v1.3
|
||||
defineExpose({ formData, submit, setFormData });
|
||||
</script>
|
||||
|
||||
@@ -430,23 +255,15 @@ defineExpose({ formData, submit, setFormData });
|
||||
max-width: 1200px;
|
||||
width: 100%;
|
||||
min-height: 800px;
|
||||
<<<<<<< HEAD
|
||||
height: 900px;
|
||||
=======
|
||||
height: auto;
|
||||
>>>>>>> v1.3
|
||||
margin: 15px auto;
|
||||
padding: 15px;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 8px;
|
||||
font-family: Arial, sans-serif;
|
||||
box-sizing: border-box;
|
||||
<<<<<<< HEAD
|
||||
overflow: visible;
|
||||
=======
|
||||
overflow: hidden; /* 防止内部内容溢出 */
|
||||
position: relative;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
/* 顶部姓名样式 */
|
||||
@@ -461,19 +278,12 @@ defineExpose({ formData, submit, setFormData });
|
||||
/* 滚动内容容器 */
|
||||
.form-scroll-container {
|
||||
width: 100%;
|
||||
<<<<<<< HEAD
|
||||
max-height: 80vh;
|
||||
=======
|
||||
max-height: 55vh;
|
||||
>>>>>>> v1.3
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: #ccc #f5f5f5;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
position: relative;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
.form-scroll-container::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
@@ -489,11 +299,8 @@ defineExpose({ formData, submit, setFormData });
|
||||
/* 完整表单容器 */
|
||||
.medical-full-form {
|
||||
width: 100%;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
min-width: 0; /* 防止内容强制拉伸容器 */
|
||||
box-sizing: border-box;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
/* 区域通用样式 */
|
||||
@@ -515,11 +322,8 @@ defineExpose({ formData, submit, setFormData });
|
||||
flex-wrap: wrap; /* 自动换行 */
|
||||
align-items: flex-start; /* 顶部对齐,适配文本域高度 */
|
||||
gap: 15px; /* 统一元素间距 */
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
.row-item {
|
||||
margin-bottom: 0; /* 取消底部间距,避免换行重叠 */
|
||||
@@ -590,17 +394,11 @@ defineExpose({ formData, submit, setFormData });
|
||||
.medical-form {
|
||||
height: 80vh;
|
||||
padding: 10px;
|
||||
<<<<<<< HEAD
|
||||
}
|
||||
.form-scroll-container {
|
||||
height: calc(100% - 35px);
|
||||
=======
|
||||
overflow: hidden;
|
||||
}
|
||||
.form-scroll-container {
|
||||
height: calc(100% - 35px);
|
||||
max-height: none;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
.el-form {
|
||||
label-width: 70px !important;
|
||||
@@ -619,8 +417,4 @@ defineExpose({ formData, submit, setFormData });
|
||||
--el-input-textarea-min-height: 80px;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -501,8 +501,6 @@ export function getGroupMarkers(tableData) {
|
||||
}
|
||||
});
|
||||
return tableData;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -532,5 +530,4 @@ export function formatInventory(quantity, partPercent, unitCode, minUnitCode) {
|
||||
// 整除情况
|
||||
const result = absQuantity / partPercent;
|
||||
return isNegative ? '-' + result : result + ' ' + unitCode;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
@@ -3,11 +3,7 @@
|
||||
* 集中管理所有打印相关功能
|
||||
*/
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 打印模板映射表
|
||||
=======
|
||||
// 打印模板映射表 .
|
||||
>>>>>>> v1.3
|
||||
const TEMPLATE_MAP = {
|
||||
// CLINIC_CHARGE: () => import('@/views/charge/cliniccharge/components/template.json'),
|
||||
// DISPOSAL: () => import('@/views/clinicmanagement/disposal/components/disposalTemplate.json'),
|
||||
@@ -25,8 +21,6 @@ const TEMPLATE_MAP = {
|
||||
OUTPATIENT_REGISTRATION: () => import('@/components/Print/OutpatientRegistration.json'),
|
||||
//门诊收费
|
||||
OUTPATIENT_CHARGE: () => import('@/components/Print/OutpatientBilling.json'),
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
//门诊病历
|
||||
OUTPATIENT_MEDICAL_RECORD: () => import('@/components/Print/OutpatientMedicalRecord.json'),
|
||||
//门诊输液贴
|
||||
@@ -46,7 +40,6 @@ const TEMPLATE_MAP = {
|
||||
//中药医生处方单
|
||||
DOC_CHINESE_MEDICINE_PRESCRIPTION: () =>
|
||||
import('@/components/Print/DocChineseMedicinePrescription.json'),
|
||||
>>>>>>> v1.3
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -134,8 +127,6 @@ export const PRINT_TEMPLATE = {
|
||||
PRESCRIPTION: 'PRESCRIPTION',
|
||||
//处置单
|
||||
DISPOSAL: 'DISPOSAL',
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
//门诊病历
|
||||
OUTPATIENT_MEDICAL_RECORD: 'OUTPATIENT_MEDICAL_RECORD',
|
||||
//门诊输液贴
|
||||
@@ -152,7 +143,6 @@ export const PRINT_TEMPLATE = {
|
||||
PHARMACY_PRESCRIPTION: 'PHARMACY_PRESCRIPTION',
|
||||
//中药医生处方单
|
||||
DOC_CHINESE_MEDICINE_PRESCRIPTION: 'DOC_CHINESE_MEDICINE_PRESCRIPTION',
|
||||
>>>>>>> v1.3
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -173,10 +163,7 @@ export function getPrinterList() {
|
||||
}
|
||||
|
||||
import useUserStore from '@/store/modules/user';
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
import { ElMessage } from 'element-plus';
|
||||
>>>>>>> v1.3
|
||||
|
||||
/**
|
||||
* 获取当前登录用户ID
|
||||
@@ -329,8 +316,6 @@ export async function selectPrinterAndPrint(
|
||||
}
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// 预览打印
|
||||
export function previewPrint(elementDom) {
|
||||
if (elementDom) {
|
||||
@@ -347,7 +332,6 @@ export function previewPrint(elementDom) {
|
||||
}
|
||||
}
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 默认导出简化的打印方法
|
||||
export default {
|
||||
print: simplePrint,
|
||||
|
||||
@@ -104,14 +104,6 @@
|
||||
style="width: 200px"
|
||||
:class="{ 'error-border': scope.row.error }"
|
||||
>
|
||||
<<<<<<< HEAD
|
||||
<el-option
|
||||
v-for="dict in med_category_code"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
=======
|
||||
<template v-if="scope.row.itemCode == '1'">
|
||||
<el-option
|
||||
v-for="dict in med_category_code"
|
||||
@@ -128,7 +120,6 @@
|
||||
:value="dict.value"
|
||||
/>
|
||||
</template>
|
||||
>>>>>>> v1.3
|
||||
</el-select>
|
||||
</div>
|
||||
</template>
|
||||
@@ -226,15 +217,11 @@ import {
|
||||
deletePharmacyDepartment,
|
||||
} from './components/pharmacyDepartment';
|
||||
const { proxy } = getCurrentInstance();
|
||||
<<<<<<< HEAD
|
||||
const { med_category_code } = proxy.useDict('med_category_code');
|
||||
=======
|
||||
const { distribution_category_code, med_category_code, device_category_code } = proxy.useDict(
|
||||
'distribution_category_code',
|
||||
'med_category_code',
|
||||
'device_category_code'
|
||||
);
|
||||
>>>>>>> v1.3
|
||||
import { nextTick } from 'vue';
|
||||
|
||||
const diagnosisTreatmentList = ref([]);
|
||||
|
||||
@@ -36,12 +36,8 @@ export function updateWarehouse(data) {
|
||||
// 删除
|
||||
export function deleteWarehouse(data) {
|
||||
return request({
|
||||
<<<<<<< HEAD
|
||||
url: '/base-data-manage/location/location',
|
||||
=======
|
||||
// url: '/base-data-manage/location/location?locationId=' + data.locationId,
|
||||
url: '/base-data-manage/location/location?busNo=' + data.busNo,
|
||||
>>>>>>> v1.3
|
||||
method: 'delete',
|
||||
params: {
|
||||
locationId: data.locationId,
|
||||
|
||||
@@ -292,38 +292,12 @@ function submitForm() {
|
||||
|
||||
// 删除
|
||||
function handelDelete(data) {
|
||||
<<<<<<< HEAD
|
||||
proxy.$modal.confirm('是否确认删除该仓库位置?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
loading.value = true;
|
||||
deleteWarehouse({ locationId: data.id, busNo: data.busNo }).then((res) => {
|
||||
if (res.code === 200) {
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
getPageList();
|
||||
} else {
|
||||
// 检查错误信息是否与药品数据关联有关
|
||||
if (res.msg && res.msg.includes('药品')) {
|
||||
proxy.$modal.msgError('该仓库名称已有药品信息请核对确认');
|
||||
} else {
|
||||
proxy.$modal.msgError('删除失败:' + (res.msg || '未知错误'));
|
||||
}
|
||||
}
|
||||
}).catch(() => {
|
||||
proxy.$modal.msgError('删除失败');
|
||||
}).finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
=======
|
||||
loading.value = true;
|
||||
console.log(data, 'data');
|
||||
deleteWarehouse({ busNo: data.busNo }).then((res) => {
|
||||
proxy.$modal.msgSuccess('操作成功');
|
||||
loading.value = false;
|
||||
getPageList();
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
}
|
||||
// // 停用
|
||||
|
||||
@@ -757,11 +757,7 @@ const transformFormData = (form) => {
|
||||
ybNo,
|
||||
title,
|
||||
comment,
|
||||
<<<<<<< HEAD
|
||||
practitionerId,
|
||||
=======
|
||||
busNo,
|
||||
>>>>>>> v1.3
|
||||
} = form.value;
|
||||
|
||||
return {
|
||||
@@ -779,11 +775,7 @@ const transformFormData = (form) => {
|
||||
appointmentRequiredFlag,
|
||||
extraDetails,
|
||||
comment,
|
||||
<<<<<<< HEAD
|
||||
practitionerId,
|
||||
=======
|
||||
busNo,
|
||||
>>>>>>> v1.3
|
||||
},
|
||||
chargeItemDefinitionFormData: {
|
||||
id,
|
||||
@@ -822,11 +814,7 @@ const transformFormEditData = (form) => {
|
||||
ybNo,
|
||||
title,
|
||||
comment,
|
||||
<<<<<<< HEAD
|
||||
practitionerId,
|
||||
=======
|
||||
busNo,
|
||||
>>>>>>> v1.3
|
||||
} = form.value;
|
||||
|
||||
return {
|
||||
@@ -844,11 +832,7 @@ const transformFormEditData = (form) => {
|
||||
appointmentRequiredFlag,
|
||||
extraDetails,
|
||||
comment,
|
||||
<<<<<<< HEAD
|
||||
practitionerId,
|
||||
=======
|
||||
busNo,
|
||||
>>>>>>> v1.3
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@@ -94,14 +94,6 @@
|
||||
v-model="form.unitCode"
|
||||
clearable
|
||||
filterable
|
||||
<<<<<<< HEAD
|
||||
remote
|
||||
reserve-keyword
|
||||
:remote-method="handleUnitCodeSearch"
|
||||
:loading="unitCodeLoading"
|
||||
@focus="handleUnitCodeFocus"
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
@change="handleUnitCodeChange"
|
||||
:disabled="form.isEditInfoDisable === 1 || form.isEditInfoDisable === 2"
|
||||
>
|
||||
@@ -269,11 +261,7 @@
|
||||
clearable
|
||||
filterable
|
||||
style="width: 240px"
|
||||
<<<<<<< HEAD
|
||||
:disabled="form.isEditInfoDisable === 1"
|
||||
=======
|
||||
:disabled="form.isEditInfoDisable === 1 || form.isEditInfoDisable === 2"
|
||||
>>>>>>> v1.3
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in med_chrgitm_type"
|
||||
@@ -479,12 +467,7 @@ function getDeptTree() {
|
||||
|
||||
/** 查询地点下拉树结构 */
|
||||
function getLocationTree() {
|
||||
<<<<<<< HEAD
|
||||
locationTreeSelect({ formList: '11,16,17' }).then((response) => {
|
||||
console.log(response, 'response查询部门下拉树结构');
|
||||
=======
|
||||
locationTreeSelect({ formList: '11,16' }).then((response) => {
|
||||
>>>>>>> v1.3
|
||||
locationOptions.value = response.data.records;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -103,12 +103,7 @@
|
||||
:data="deviceList"
|
||||
@selection-change="handleSelectionChange"
|
||||
width="90%"
|
||||
<<<<<<< HEAD
|
||||
/>
|
||||
<el-table v-loading="loading" :data="deviceList" @selection-change="handleSelectionChange" width="90%" border resizable-column>
|
||||
=======
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-table-column type="selection" width="50" align="center" />
|
||||
<el-table-column
|
||||
label="编码"
|
||||
@@ -116,11 +111,7 @@
|
||||
key="busNo"
|
||||
prop="busNo"
|
||||
:show-overflow-tooltip="true"
|
||||
<<<<<<< HEAD
|
||||
width="200"
|
||||
=======
|
||||
width="150"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
<el-table-column
|
||||
label="器材名称"
|
||||
@@ -128,9 +119,6 @@
|
||||
key="name"
|
||||
prop="name"
|
||||
:show-overflow-tooltip="true"
|
||||
<<<<<<< HEAD
|
||||
width="200"
|
||||
=======
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
@@ -140,7 +128,6 @@
|
||||
prop="size"
|
||||
width="100"
|
||||
:show-overflow-tooltip="true"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
<!-- <el-table-column
|
||||
label="拼音"
|
||||
@@ -174,17 +161,6 @@
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
<<<<<<< HEAD
|
||||
label="包装规格"
|
||||
align="center"
|
||||
key="size"
|
||||
prop="size"
|
||||
width="200"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
label="拆零比"
|
||||
align="center"
|
||||
key="partPercent"
|
||||
@@ -206,11 +182,7 @@
|
||||
key="minUnitCode_dictText"
|
||||
prop="minUnitCode_dictText"
|
||||
:show-overflow-tooltip="true"
|
||||
<<<<<<< HEAD
|
||||
width="120"
|
||||
=======
|
||||
width="100"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
<!-- <el-table-column
|
||||
label="所属科室"
|
||||
|
||||
@@ -129,11 +129,7 @@
|
||||
clearable
|
||||
filterable
|
||||
style="width: 240px"
|
||||
<<<<<<< HEAD
|
||||
:disabled="form.isEditInfoDisable === 1"
|
||||
=======
|
||||
:disabled="form.isEditInfoDisable === 1 || form.isEditInfoDisable === 2"
|
||||
>>>>>>> v1.3
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in med_chrgitm_type"
|
||||
@@ -210,18 +206,9 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="财务类型" prop="itemTypeCode">
|
||||
<<<<<<< HEAD
|
||||
<el-select
|
||||
v-model="form.itemTypeCode"
|
||||
clearable
|
||||
filterable
|
||||
:disabled="form.isEditInfoDisable === 1"
|
||||
>
|
||||
=======
|
||||
<el-select v-model="form.itemTypeCode" clearable filterable>
|
||||
<!-- :disabled="form.isEditInfoDisable === 1" -->
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-option
|
||||
v-for="category in fin_type_code"
|
||||
:key="category.value"
|
||||
@@ -263,10 +250,6 @@
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="诊疗子项">
|
||||
<<<<<<< HEAD
|
||||
<div v-if="form.isEditInfoDisable === 0" style="position: relative">
|
||||
<PopoverList @search="handleSearch" :width="1000" :modelValue="item.name">
|
||||
=======
|
||||
<div style="position: relative">
|
||||
<PopoverList
|
||||
@search="handleSearch"
|
||||
@@ -274,7 +257,6 @@
|
||||
:modelValue="item.name"
|
||||
@focus="popoverListhandleFocus(item.name)"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<template #popover-content="{}">
|
||||
<medicineList
|
||||
@selectRow="(row) => selectRow(row, index)"
|
||||
@@ -300,11 +282,7 @@
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
<<<<<<< HEAD
|
||||
<span v-else>{{ item.name || '' }}</span>
|
||||
=======
|
||||
<!-- <span v-else>{{ item.name || '' }}</span> -->
|
||||
>>>>>>> v1.3
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
@@ -409,10 +387,6 @@ const diagnosisTreatmentList = ref([]);
|
||||
const data = reactive({
|
||||
form: {},
|
||||
rules: {
|
||||
<<<<<<< HEAD
|
||||
busNo: [{ required: true, message: "编码不能为空", trigger: "blur" }],
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
name: [{ required: true, message: '名称不能为空', trigger: 'blur' }],
|
||||
categoryCode: [{ required: true, message: '诊疗目录不能为空', trigger: 'blur' }],
|
||||
permittedUnitCode: [{ required: true, message: '使用单位不能为空', trigger: 'blur' }],
|
||||
@@ -678,8 +652,6 @@ function handleSearch(value) {
|
||||
medicineSearchKey.value = value;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
function popoverListhandleFocus(value) {
|
||||
// debugger;
|
||||
console.log(value);
|
||||
@@ -689,15 +661,11 @@ function popoverListhandleFocus(value) {
|
||||
medicineSearchKey.value = value;
|
||||
}
|
||||
|
||||
>>>>>>> v1.3
|
||||
function selectRow(row, index) {
|
||||
treatmentItems.value[index].name = row.name;
|
||||
treatmentItems.value[index].adviceDefinitionId = row.id;
|
||||
treatmentItems.value[index].retailPrice = row.retailPrice || 0;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
medicineSearchKey.value = '';
|
||||
>>>>>>> v1.3
|
||||
calculateTotalPrice();
|
||||
}
|
||||
|
||||
|
||||
@@ -101,86 +101,6 @@
|
||||
</el-col> -->
|
||||
</el-row>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 添加外层滚动容器,确保表格可以水平滚动 -->
|
||||
<div class="table-scroll-container">
|
||||
<!-- 移除style="width: 100%",让Element UI表格根据内容自动调整 -->
|
||||
<el-table v-loading="loading" :data="diseaseList" @selection-change="handleSelectionChange" border resizable>
|
||||
<el-table-column type="selection" width="50" align="center" />
|
||||
<!-- 使用prop属性并设置合适的最小宽度,启用列宽调整 -->
|
||||
<el-table-column label="编码" align="center" prop="conditionCode" min-width="150" />
|
||||
<!-- 名称列使用标准配置 -->
|
||||
<el-table-column
|
||||
label="名称"
|
||||
align="center"
|
||||
prop="name"
|
||||
min-width="280"
|
||||
/>
|
||||
<!-- 其他列使用标准配置 -->
|
||||
<el-table-column
|
||||
label="疾病分类"
|
||||
align="center"
|
||||
prop="sourceEnum_enumText"
|
||||
min-width="180"
|
||||
/>
|
||||
<el-table-column
|
||||
label="拼音助记码"
|
||||
align="center"
|
||||
prop="pyStr"
|
||||
min-width="220"
|
||||
/>
|
||||
<el-table-column
|
||||
label="类型"
|
||||
align="center"
|
||||
prop="typeCode_dictText"
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
label="医保编码"
|
||||
align="center"
|
||||
prop="ybNo"
|
||||
min-width="180"
|
||||
/>
|
||||
<el-table-column
|
||||
label="医保标记"
|
||||
align="center"
|
||||
prop="ybMatchFlag_enumText"
|
||||
min-width="150"
|
||||
/>
|
||||
<el-table-column
|
||||
label="医保对码标志"
|
||||
align="center"
|
||||
prop="ybMatchFlag_enumText"
|
||||
min-width="150"
|
||||
/>
|
||||
<el-table-column
|
||||
label="状态"
|
||||
align="center"
|
||||
prop="statusEnum_enumText"
|
||||
min-width="150"
|
||||
/>
|
||||
<el-table-column
|
||||
label="描述"
|
||||
align="center"
|
||||
prop="description"
|
||||
min-width="250"
|
||||
/>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
min-width="120"
|
||||
class-name="small-padding"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
|
||||
>编辑</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<pagination
|
||||
=======
|
||||
<el-table v-loading="loading" :data="diseaseList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="50" align="center" />
|
||||
<el-table-column label="编码" align="center" key="conditionCode" prop="conditionCode" />
|
||||
@@ -259,7 +179,6 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
>>>>>>> v1.3
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNo"
|
||||
|
||||
@@ -121,15 +121,7 @@
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="规格" prop="totalVolume">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="form.totalVolume"
|
||||
placeholder=""
|
||||
clearable
|
||||
/>
|
||||
=======
|
||||
<el-input v-model="form.totalVolume" placeholder="" clearable />
|
||||
>>>>>>> v1.3
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
@@ -464,11 +456,7 @@
|
||||
clearable
|
||||
filterable
|
||||
style="width: 240px"
|
||||
<<<<<<< HEAD
|
||||
:disabled="form.isEditInfoDisable === 1"
|
||||
=======
|
||||
:disabled="form.isEditInfoDisable === 1 || form.isEditInfoDisable === 2"
|
||||
>>>>>>> v1.3
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in med_chrgitm_type"
|
||||
@@ -877,25 +865,13 @@ function setValue(row) {
|
||||
approvalNumber: formatValue(row.approvalNo), // 批准文号
|
||||
manufacturerText: formatValue(row.manufacturerName), // 生产厂家
|
||||
basicFlag: formatValue(row.essentialDrugFlag), // 基药标识
|
||||
<<<<<<< HEAD
|
||||
// injectFlag: row., // 注射药物
|
||||
// childrenFlag: row.pediatricUse, // 儿童用药标志
|
||||
// selfFlag: row., // 自制药标识
|
||||
// activeFlag: row., // 是否活性
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
restrictedFlag: formatValue(row.restrictedFlag), // 限制使用
|
||||
restrictedScope: formatValue(row.restrictedScope), // 限制使用范围
|
||||
rxFlag: formatValue(row.rxFlag), // 处方标志
|
||||
chrgitmLv: formatValue(
|
||||
row.insuranceClass == '甲' ? '1' : row.insuranceClass == '乙' ? '2' : '3'
|
||||
), // 医保等级
|
||||
<<<<<<< HEAD
|
||||
// antibioticFlag: row., // 抗生素
|
||||
};
|
||||
=======
|
||||
};
|
||||
>>>>>>> v1.3
|
||||
setFlag(form.value);
|
||||
}
|
||||
|
||||
@@ -912,11 +888,6 @@ function formatValue(str) {
|
||||
|
||||
// 显示弹框
|
||||
function edit() {
|
||||
<<<<<<< HEAD
|
||||
// getList();
|
||||
console.log(props, '22222');
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
title.value = '编辑药品';
|
||||
reset();
|
||||
activeName.value = 'basic';
|
||||
@@ -973,20 +944,10 @@ function setFlag(data) {
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: undefined,
|
||||
<<<<<<< HEAD
|
||||
medicineCode: '',
|
||||
medicineName: '',
|
||||
tradeName: '',
|
||||
spec: '',
|
||||
manufacturer: '',
|
||||
rxFlag: '0', // 默认设置为非处方
|
||||
dose: undefined,
|
||||
=======
|
||||
medicationDefId: undefined,
|
||||
locationId: undefined,
|
||||
activeFlag: undefined,
|
||||
doseFrom: undefined,
|
||||
>>>>>>> v1.3
|
||||
rateCode: undefined,
|
||||
approvalNumber: undefined,
|
||||
name: undefined,
|
||||
@@ -1032,12 +993,8 @@ function reset() {
|
||||
thoPartAttributeEnum: undefined,
|
||||
usageLimit: undefined,
|
||||
basicFlag: undefined,
|
||||
<<<<<<< HEAD
|
||||
chrgitmLv: '3',
|
||||
=======
|
||||
rxFlag: undefined,
|
||||
chrgitmLv: '3', // 默认设置为自费
|
||||
>>>>>>> v1.3
|
||||
};
|
||||
antibioticForm.value = {
|
||||
antibioticCode: undefined,
|
||||
@@ -1084,16 +1041,9 @@ function submitForm() {
|
||||
|
||||
proxy.$refs['medicationRef'].validate((valid) => {
|
||||
if (valid) {
|
||||
<<<<<<< HEAD
|
||||
// 处理抗生素相关字段
|
||||
if (form.value.activeFlag == 1) {
|
||||
form.value.antibioticCode = antibioticForm.value.antibioticCode === undefined ? '3' : antibioticForm.value.antibioticCode;
|
||||
form.value.restrictedEnum = antibioticForm.value.restrictedEnum === undefined ? '4' : antibioticForm.value.restrictedEnum;
|
||||
=======
|
||||
if (form.value.activeFlag == true) {
|
||||
form.value.antibioticCode = antibioticForm.value.antibioticCode;
|
||||
form.value.restrictedEnum = antibioticForm.value.restrictedEnum;
|
||||
>>>>>>> v1.3
|
||||
form.value.minRateCode = antibioticForm.value.minRateCode;
|
||||
form.value.maxRateCode = antibioticForm.value.maxRateCode;
|
||||
form.value.dddUnitCode = antibioticForm.value.dddUnitCode;
|
||||
|
||||
@@ -155,11 +155,8 @@
|
||||
:show-overflow-tooltip="true"
|
||||
min-width="110"
|
||||
width="200px"
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
sortable
|
||||
:sort-by="(row) => getPinyinFirstLetter(row)"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
<el-table-column
|
||||
label="规格"
|
||||
|
||||
@@ -129,9 +129,6 @@ export function getChargeInfo(param) {
|
||||
method: 'get',
|
||||
params: param
|
||||
})
|
||||
<<<<<<< HEAD
|
||||
}
|
||||
=======
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -154,4 +151,3 @@ export function WxPayResult (data) {
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -31,43 +31,6 @@
|
||||
<template v-for="(item, index) in formData.selfPay" :key="index">
|
||||
<div v-show="item.payEnum != 220500" class="payment-item">
|
||||
<span>支付方式:</span>
|
||||
<<<<<<< HEAD
|
||||
<el-select
|
||||
v-model="item.payEnum"
|
||||
placeholder="选择支付方式"
|
||||
style="width: 160px"
|
||||
@change="clearAmount(index)"
|
||||
>
|
||||
<el-option
|
||||
v-for="payEnum in selfPayMethods"
|
||||
:key="payEnum.value"
|
||||
:label="payEnum.label"
|
||||
:value="payEnum.value"
|
||||
:disabled="isMethodDisabled(payEnum.value)"
|
||||
/>
|
||||
</el-select>
|
||||
<span>支付金额:</span>
|
||||
<div class="suffix-wrapper">
|
||||
<el-input-number
|
||||
v-model="item.amount"
|
||||
:precision="2"
|
||||
:min="0"
|
||||
:max="getMax(index)"
|
||||
:controls="false"
|
||||
placeholder="金额"
|
||||
class="amount-input"
|
||||
@change="handleAmountChange"
|
||||
/>
|
||||
<span class="suffix-text">元</span>
|
||||
</div>
|
||||
<el-button
|
||||
type="danger"
|
||||
circle
|
||||
:icon="Delete"
|
||||
@click="removePayment(index)"
|
||||
v-if="index > 0"
|
||||
/>
|
||||
=======
|
||||
<img
|
||||
v-if="item.payEnum == 220100 || item.payEnum == 220200"
|
||||
:src="imgs[item.payEnum == 220100 ? 0 : 1]"
|
||||
@@ -108,7 +71,6 @@
|
||||
@click="removePayment(index)"
|
||||
v-if="index > 0"
|
||||
/>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</template>
|
||||
<div class="add-payment">
|
||||
@@ -136,8 +98,6 @@
|
||||
/>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
</div>
|
||||
<div class="payment-item">
|
||||
<span>{{ payTypeText }}支付:</span>
|
||||
@@ -149,7 +109,6 @@
|
||||
/>
|
||||
<el-button link type="primary" @click="handleWxPay()">扫码支付</el-button>
|
||||
<el-button link type="primary" @click="getWxPayResult()">查看结果</el-button>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
<div>
|
||||
<el-table :data="props.details" max-height="200" border>
|
||||
@@ -194,9 +153,6 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
<<<<<<< HEAD
|
||||
import { savePayment, unprecharge, dispenseMedicalConsumables, getChargeInfo } from './api';
|
||||
=======
|
||||
import {
|
||||
savePayment,
|
||||
unprecharge,
|
||||
@@ -205,7 +161,6 @@ import {
|
||||
WxPayResult,
|
||||
getChargeInfo,
|
||||
} from './api';
|
||||
>>>>>>> v1.3
|
||||
import { computed, watch, reactive, ref, getCurrentInstance, nextTick } from 'vue';
|
||||
import { Delete } from '@element-plus/icons-vue';
|
||||
import { debounce } from 'lodash-es';
|
||||
@@ -264,13 +219,6 @@ const props = defineProps({
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
<<<<<<< HEAD
|
||||
const { charge_discount } = proxy.useDict('charge_discount');
|
||||
|
||||
const userStore = useUserStore();
|
||||
const discountRadio = ref(undefined);
|
||||
const discountAmount = ref(0);
|
||||
=======
|
||||
// 单位字典
|
||||
const { unit_code } = proxy.useDict('unit_code');
|
||||
|
||||
@@ -278,7 +226,6 @@ const userStore = useUserStore();
|
||||
const discountRadio = ref();
|
||||
const discountAmount = ref(0);
|
||||
const txtCode = ref('');
|
||||
>>>>>>> v1.3
|
||||
|
||||
const formData = reactive({
|
||||
totalAmount: 0,
|
||||
@@ -301,121 +248,6 @@ watch(
|
||||
|
||||
const emit = defineEmits(['close']);
|
||||
let displayAmountTemp = 0;
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 打印小票
|
||||
function printReceipt(param) {
|
||||
let total = 0;
|
||||
props.chargedItems.forEach((item) => {
|
||||
total += item.totalPrice || 0;
|
||||
});
|
||||
// 构造一个新的对象,添加头 "data"
|
||||
const result = {
|
||||
data: [
|
||||
{
|
||||
...param,
|
||||
// 基础支付类型
|
||||
YB_FUND_PAY:
|
||||
param.detail?.find((t) => t.payEnum === 100000)?.amount.toFixed(2) + ' 元' ?? 0, // 基金支付总额
|
||||
SELF_PAY: param.detail?.find((t) => t.payEnum === 200000)?.amount.toFixed(2) + ' 元' ?? 0, // 个人负担总金额
|
||||
OTHER_PAY: param.detail?.find((t) => t.payEnum === 300000)?.amount ?? 0, // 其他(如医院负担金额)
|
||||
|
||||
// 基本医保统筹基金支出
|
||||
YB_TC_FUND_AMOUNT:
|
||||
param.detail?.find((t) => t.payEnum === 110000)?.amount.toFixed(2) + ' 元' ?? 0, // 基本医保统筹基金支出
|
||||
YB_BC_FUND_AMOUNT:
|
||||
param.detail?.find((t) => t.payEnum === 120000)?.amount.toFixed(2) + ' 元' ?? 0, // 补充医疗保险基金支出
|
||||
YB_JZ_FUND_AMOUNT:
|
||||
param.detail?.find((t) => t.payEnum === 130000)?.amount.toFixed(2) + ' 元' ?? 0, // 医疗救助基金支出
|
||||
// YB_OTHER_AMOUNT: param.detail.find((t) => t.payEnum === 140000)?.amount ?? 0, // 其他支出
|
||||
|
||||
// 职工基本医疗保险
|
||||
// YB_TC_ZG_FUND_VALUE: param.detail.find((t) => t.payEnum === 110100)?.amount ?? 0, // 职工基本医疗保险
|
||||
// YB_TC_JM_FUND_VALUE: param.detail.find((t) => t.payEnum === 110200)?.amount ?? 0, // 居民基本医疗保险(修正原错误注释)
|
||||
|
||||
// 补充医疗保险基金支出细分
|
||||
// YB_BC_JM_DB_VALUE: param.detail.find((t) => t.payEnum === 120100)?.amount ?? 0, // 全体参保人的居民大病保险
|
||||
// YB_BC_DE_BZ_VALUE: param.detail.find((t) => t.payEnum === 120200)?.amount ?? 0, // 大额医疗费用补助
|
||||
// YB_BC_ZG_DE_BZ_VALUE: param.detail.find((t) => t.payEnum === 120300)?.amount ?? 0, // 企业职工大额医疗费用补助
|
||||
// YB_BC_GWY_BZ_VALUE: param.detail.find((t) => t.payEnum === 120400)?.amount ?? 0, // 公务员医疗补助
|
||||
|
||||
// 其他支出细分
|
||||
// OTHER_PAY_DD_FUND_VALUE: param.detail.find((t) => t.payEnum === 300001)?.amount ?? 0, // 兜底基金支出
|
||||
// OTHER_PAY_YW_SH_FUND_VALUE: param.detail.find((t) => t.payEnum === 300002)?.amount ?? 0, // 意外伤害基金支出
|
||||
// OTHER_PAY_LX_YL_FUND_VALUE: param.detail.find((t) => t.payEnum === 300003)?.amount ?? 0, // 离休人员医疗保障金支出
|
||||
// OTHER_PAY_LX_YH_FUND_VALUE: param.detail.find((t) => t.payEnum === 300004)?.amount ?? 0, // 离休人员优惠金支出
|
||||
// OTHER_PAY_CZ_FUND_VALUE: param.detail.find((t) => t.payEnum === 300005)?.amount ?? 0, // 财政基金支出
|
||||
// OTHER_PAY_CZ_YZ_FUND_VALUE: param.detail.find((t) => t.payEnum === 300006)?.amount ?? 0, // 财政预支支出
|
||||
// OTHER_PAY_ZG_DB_FUND_VALUE: param.detail.find((t) => t.payEnum === 300007)?.amount ?? 0, // 职工大病基金支出
|
||||
// OTHER_PAY_EY_FUND_VALUE: param.detail.find((t) => t.payEnum === 300008)?.amount ?? 0, // 二乙基金支出
|
||||
// OTHER_PAY_QX_JZ_FUND_VALUE: param.detail.find((t) => t.payEnum === 300009)?.amount ?? 0, // 倾斜救助支出
|
||||
// OTHER_PAY_YL_JZ_FUND_VALUE: param.detail.find((t) => t.payEnum === 300010)?.amount ?? 0, // 医疗救助再救助基金
|
||||
// HOSP_PART_AMT: param.detail.find((t) => t.payEnum === 300011)?.amount ?? 0, // 医院负担金额
|
||||
|
||||
// 医保结算返回值
|
||||
FULAMT_OWNPAY_AMT:
|
||||
param.detail?.find((t) => t.payEnum === 1)?.amount.toFixed(2) + ' 元' ?? 0, // 全自费金额
|
||||
// OVERLMT_SELFPAY: param.detail.find((t) => t.payEnum === 3)?.amount ?? 0, // 超限价自费费用
|
||||
// PRESELFPAY_AMT: param.detail.find((t) => t.payEnum === 4)?.amount ?? 0, // 先行自付金额
|
||||
INSCP_SCP_AMT: param.detail?.find((t) => t.payEnum === 5)?.amount.toFixed(2) + ' 元' ?? 0, // 符合政策范围金额
|
||||
// ACT_PAY_DEDC: param.detail.find((t) => t.payEnum === 6)?.amount ?? 0, // 实际支付起付线
|
||||
// POOL_PROP_SELFPAY: param.detail.find((t) => t.payEnum === 7)?.amount ?? 0, // 基本医疗保险统筹基金支付比例
|
||||
// BALC: param.detail.find((t) => t.payEnum === 8)?.amount ?? 0, // 余额
|
||||
|
||||
// 特殊支付方式
|
||||
SELF_YB_ZH_PAY:
|
||||
param.detail?.find((t) => t.payEnum === 210000)?.amount.toFixed(2) + ' 元' ?? 0, // 个人医保账户支付
|
||||
// SELF_YB_ZH_GJ_VALUE: param.detail.find((t) => t.payEnum === 210100)?.amount ?? 0, // 账户共济支付金额
|
||||
// SELF_CASH_PAY: param.detail.find((t) => t.payEnum === 220000)?.amount ?? 0, // 个人现金支付金额
|
||||
// SELF_VX_PAY: param.detail.find((t) => t.payEnum === 230000)?.amount ?? 0, // 微信支付金额
|
||||
// SELF_ALI_PAY: param.detail.find((t) => t.payEnum === 240000)?.amount ?? 0, // 阿里支付金额
|
||||
|
||||
// 现金支付细分
|
||||
// SELF_CASH_VALUE: param.detail.find((t) => t.payEnum === 220400)?.amount ?? 0, // 个人现金支付金额(现金)
|
||||
// SELF_CASH_VX_VALUE: param.detail.find((t) => t.payEnum === 220100)?.amount ?? 0, // 个人现金支付金额(微信)
|
||||
// SELF_CASH_ALI_VALUE: param.detail.find((t) => t.payEnum === 220200)?.amount ?? 0, // 个人现金支付金额(支付宝)
|
||||
// SELF_CASH_UNION_VALUE: param.detail.find((t) => t.payEnum === 220300)?.amount ?? 0, // 个人现金支付金额(银联)
|
||||
|
||||
// 基金类型(扩展)
|
||||
// BIRTH_FUND: param.detail.find((t) => t.payEnum === 510100)?.amount ?? 0, // 生育基金
|
||||
// RETIREE_MEDICAL: param.detail.find((t) => t.payEnum === 340100)?.amount ?? 0, // 离休人员医疗保障基金
|
||||
// URBAN_BASIC_MEDICAL: param.detail.find((t) => t.payEnum === 390100)?.amount ?? 0, // 城乡居民基本医疗保险基金
|
||||
// URBAN_SERIOUS_ILLNESS: param.detail.find((t) => t.payEnum === 390200)?.amount ?? 0, // 城乡居民大病医疗保险基金
|
||||
// MEDICAL_ASSISTANCE: param.detail.find((t) => t.payEnum === 610100)?.amount ?? 0, // 医疗救助基金
|
||||
// GOVERNMENT_SUBSIDY: param.detail.find((t) => t.payEnum === 640100)?.amount ?? 0, // 政府兜底基金
|
||||
// ACCIDENT_INSURANCE: param.detail.find((t) => t.payEnum === 390400)?.amount ?? 0, // 意外伤害基金
|
||||
// CARE_INSURANCE: param.detail.find((t) => t.payEnum === 620100)?.amount ?? 0, // 照护保险基金
|
||||
// FINANCIAL_FUND: param.detail.find((t) => t.payEnum === 360100)?.amount ?? 0, // 财政基金
|
||||
// HOSPITAL_ADVANCE: param.detail.find((t) => t.payEnum === 999900)?.amount ?? 0, // 医院垫付
|
||||
// SUPPLEMENTARY_INSURANCE: param.detail.find((t) => t.payEnum === 390300)?.amount ?? 0, // 城乡居民大病补充保险基金
|
||||
// HEALTHCARE_PREPAYMENT: param.detail.find((t) => t.payEnum === 360300)?.amount ?? 0, // 保健预支基金
|
||||
Mr_QR_Code: param.regNo,
|
||||
sex: props.patientInfo.genderEnum_enumText,
|
||||
age: props.patientInfo.age,
|
||||
personType: '职工医保',
|
||||
fixmedinsName: param.fixmedinsName + '门诊收费明细',
|
||||
name: props.patientInfo.patientName, // 姓名
|
||||
gender: props.patientInfo.genderEnum_enumText, // 性别
|
||||
age: props.patientInfo.age, // 年龄
|
||||
encounterBusNo: props.patientInfo.encounterBusNo, // 病例号
|
||||
currentDate: currentDate.value, // 收费日期
|
||||
chargedItems: props.chargedItems, // 收费项目
|
||||
totalAmount: props.totalAmount.toFixed(2) + ' 元', // 应收金额
|
||||
itemTotalAmount: total.toFixed(2) + ' 元', // 应收金额
|
||||
displayAmount: displayAmountTemp + ' 元', // 实收金额
|
||||
returnedAmount: returnedAmount.value + ' 元', // 应找零
|
||||
userName: userStore.nickName,
|
||||
},
|
||||
],
|
||||
};
|
||||
const printElements = templateJson;
|
||||
var hiprintTemplate = new hiprint.PrintTemplate({ template: printElements }); // 定义模板
|
||||
|
||||
hiprintTemplate.print2(result.data[0], {
|
||||
printer: 'xp',
|
||||
title: '门诊收费结算单',
|
||||
});
|
||||
=======
|
||||
|
||||
// 获取单位字典数据的方法
|
||||
const getUnitLabel = (unitCode) => {
|
||||
@@ -748,12 +580,9 @@ async function printReceipt(param) {
|
||||
console.error('打印失败:', error);
|
||||
proxy.$modal.msgError('打印失败: ' + error.message);
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
const throttledGetList = debounce(submit, 300);
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
function handleWxPay() {
|
||||
wxPay({
|
||||
txtCode: txtCode.value,
|
||||
@@ -778,7 +607,6 @@ function getWxPayResult() {
|
||||
});
|
||||
}
|
||||
|
||||
>>>>>>> v1.3
|
||||
function handleOpen() {
|
||||
formData.totalAmount = props.totalAmount;
|
||||
formData.selfPay[0].amount = props.totalAmount;
|
||||
@@ -786,11 +614,6 @@ function handleOpen() {
|
||||
|
||||
async function submit() {
|
||||
displayAmountTemp = displayAmount.value;
|
||||
<<<<<<< HEAD
|
||||
console.log(parseFloat(displayAmount.value), 'parseFloat(displayAmount.value)');
|
||||
console.log(formData.totalAmount, 'formData.totalAmount');
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
|
||||
let amount = formData.selfPay
|
||||
.reduce((sum, item) => {
|
||||
@@ -813,12 +636,8 @@ async function submit() {
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
getChargeInfo({ paymentId: props.paymentId }).then((res) => {
|
||||
<<<<<<< HEAD
|
||||
printReceipt(res.data);
|
||||
=======
|
||||
// 传递完整的选中数据信息到打印方法
|
||||
printReceipt({ ...res.data, chargedItems: props.chargedItems });
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
formData.selfPay = [{ payEnum: 220100, amount: 0.0, payLevelEnum: 2 }];
|
||||
emit('close', 'success', res.msg);
|
||||
@@ -874,19 +693,11 @@ async function print() {
|
||||
const currentDate = ref(new Date().toLocaleString());
|
||||
|
||||
const selfPayMethods = [
|
||||
<<<<<<< HEAD
|
||||
{ label: '现金', value: 220400 },
|
||||
{ label: '微信', value: 220100 },
|
||||
{ label: '支付宝', value: 220200 },
|
||||
{ label: '银联', value: 220300 },
|
||||
{ label: '优惠', value: 220500 },
|
||||
=======
|
||||
{ label: '现金', value: 220400, isWebPay: false },
|
||||
{ label: '微信', value: 220100, isWebPay: true },
|
||||
{ label: '支付宝', value: 220200, isWebPay: true },
|
||||
{ label: '银联', value: 220300, isWebPay: true },
|
||||
{ label: '优惠', value: 220500, isWebPay: false },
|
||||
>>>>>>> v1.3
|
||||
];
|
||||
|
||||
// 计算剩余可输入金额
|
||||
|
||||
@@ -83,20 +83,6 @@
|
||||
:disabled="buttonDisabled">
|
||||
自费转医保
|
||||
</el-button>
|
||||
<<<<<<< HEAD
|
||||
<el-button type="primary" @click="studentPayTosStudentSelf()" style="margin-left: 20px"
|
||||
:disabled="buttonDisabled">
|
||||
学生医保转学生自费
|
||||
</el-button>
|
||||
<el-button type="primary" @click="studentSelfToStudentPay()" style="margin-left: 20px"
|
||||
:disabled="buttonDisabled">
|
||||
学生自费转学生医保
|
||||
</el-button>
|
||||
<span style="float: right">合计金额:{{ totalAmounts ? totalAmounts.toFixed(2) : 0 }}元</span>
|
||||
</div>
|
||||
<el-table ref="chargeListRef" height="530" :data="chargeList" row-key="id"
|
||||
@selection-change="handleSelectionChange" v-loading="chargeLoading" :span-method="objectSpanMethod" border>
|
||||
=======
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="studentPayTosStudentSelf()"
|
||||
@@ -127,7 +113,6 @@
|
||||
:span-method="objectSpanMethod"
|
||||
border
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-table-column type="selection" :selectable="checkSelectable" width="55" />
|
||||
<el-table-column label="单据号" align="center" prop="busNo" width="180" />
|
||||
<el-table-column label="收费项目" align="center" prop="itemName" width="200" />
|
||||
@@ -137,9 +122,6 @@
|
||||
<el-table-column label="费用性质" align="center" prop="contractName" />
|
||||
<el-table-column label="收费状态" align="center" prop="statusEnum_enumText" width="150">
|
||||
<template #default="scope">
|
||||
<<<<<<< HEAD
|
||||
<el-tag :type="scope.row.statusEnum === 1 ? 'default' : 'success'" disable-transitions>
|
||||
=======
|
||||
<el-tag v-if="scope.row.statusEnum === 1" disable-transitions>
|
||||
{{ scope.row.statusEnum_enumText }}
|
||||
</el-tag>
|
||||
@@ -150,7 +132,6 @@
|
||||
{{ scope.row.statusEnum_enumText }}
|
||||
</el-tag>
|
||||
<el-tag v-else type="warning" disable-transitions>
|
||||
>>>>>>> v1.3
|
||||
{{ scope.row.statusEnum_enumText }}
|
||||
</el-tag>
|
||||
</template>
|
||||
@@ -161,11 +142,6 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="收款人" align="center" prop="entererId_dictText" />
|
||||
<<<<<<< HEAD
|
||||
<el-table-column label="操作" align="center" fixed="right" header-align="center" class-name="no-hover-column">
|
||||
<template #default="scope">
|
||||
<el-button :disabled="!scope.row.paymentId" link type="primary" @click="printCharge(scope.row)">
|
||||
=======
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
@@ -180,7 +156,6 @@
|
||||
type="primary"
|
||||
@click="printCharge(scope.row)"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
打印
|
||||
</el-button>
|
||||
</template>
|
||||
@@ -292,10 +267,6 @@ function handleTotalAmount() {
|
||||
totalAmounts.value = chargeList.value.reduce((accumulator, currentRow) => {
|
||||
return new Decimal(accumulator).add(currentRow.totalPrice.toFixed(2) || 0);
|
||||
}, new Decimal(0));
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
} else {
|
||||
totalAmounts.value = selectedRows.value.reduce((accumulator, currentRow) => {
|
||||
return new Decimal(accumulator).add(currentRow.totalPrice.toFixed(2) || 0);
|
||||
@@ -652,8 +623,6 @@ function objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
||||
return [1, 1];
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// function printCharge(row) {
|
||||
// // 打印功能实现
|
||||
// let rows = [];
|
||||
@@ -667,7 +636,6 @@ function objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
||||
// proxy.$refs['chargeDialogRef'].printReceipt(res.data);
|
||||
// });
|
||||
// }
|
||||
>>>>>>> v1.3
|
||||
function printCharge(row) {
|
||||
// 打印功能实现
|
||||
let rows = [];
|
||||
@@ -678,9 +646,6 @@ function printCharge(row) {
|
||||
});
|
||||
chargedItems.value = rows;
|
||||
getChargeInfo({ paymentId: row.paymentId }).then((res) => {
|
||||
<<<<<<< HEAD
|
||||
proxy.$refs['chargeDialogRef'].printReceipt(res.data);
|
||||
=======
|
||||
// 设置实收金额
|
||||
if (res.data && res.data.detail) {
|
||||
const amountDetail = res.data.detail.find((item) => item.payEnum == 220000);
|
||||
@@ -712,7 +677,6 @@ function printCharge(row) {
|
||||
proxy.$refs['chargeDialogRef'].printReceipt(enhancedPrintData);
|
||||
});
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@@ -724,8 +688,4 @@ function printCharge(row) {
|
||||
:deep(.el-table__body) tr:hover td.no-hover-column {
|
||||
background-color: inherit !important;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -166,16 +166,6 @@ const props = defineProps({
|
||||
type: Object,
|
||||
default: undefined,
|
||||
},
|
||||
<<<<<<< HEAD
|
||||
medfee_paymtd_code: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
feeType: {
|
||||
type: String,
|
||||
default: '',
|
||||
}
|
||||
=======
|
||||
orgId: {
|
||||
type: String,
|
||||
default: '',
|
||||
@@ -184,7 +174,6 @@ const props = defineProps({
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
@@ -228,38 +228,6 @@ export function gerPreInfo(userMaessage) {
|
||||
return request({
|
||||
url: '/yb-request/per-info',
|
||||
method: 'post',
|
||||
<<<<<<< HEAD
|
||||
params: userMaessage
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据就诊卡号查询挂号记录
|
||||
* 注意:此接口可能不存在,实际使用getOutpatientRegistrationCurrent接口
|
||||
* 保留此函数以便将来使用,目前使用getOutpatientRegistrationCurrent替代
|
||||
*/
|
||||
export function getRegistrationByCardNo(query) {
|
||||
// 如果后端提供了专门的接口,可以取消注释使用
|
||||
// return request({
|
||||
// url: '/charge-manage/register/encounter-by-card',
|
||||
// method: 'get',
|
||||
// params: query
|
||||
// })
|
||||
// 暂时使用现有的接口
|
||||
return getOutpatientRegistrationCurrent(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* 补打挂号
|
||||
*/
|
||||
export function reprintRegistration(data) {
|
||||
return request({
|
||||
url: '/charge-manage/register/reprint',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
=======
|
||||
params: userMaessage,
|
||||
});
|
||||
}
|
||||
@@ -285,4 +253,3 @@ export function WxPayResult(data) {
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -10,10 +10,6 @@
|
||||
<el-input v-model="form.name" clearable :disabled="isViewMode" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<<<<<<< HEAD
|
||||
<el-col :span="6">
|
||||
<el-form-item label="民族" prop="nationalityCode" label-width="80px">
|
||||
=======
|
||||
<el-col :span="8">
|
||||
<el-form-item label="性别" prop="genderEnum">
|
||||
<el-radio-group v-model="form.genderEnum" :disabled="isViewMode">
|
||||
@@ -66,7 +62,6 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="民族" prop="nationalityCode">
|
||||
>>>>>>> v1.3
|
||||
<el-select v-model="form.nationalityCode" clearable filterable :disabled="isViewMode">
|
||||
<el-option
|
||||
v-for="item in nationality_code"
|
||||
@@ -106,87 +101,10 @@
|
||||
<!-- 第二行:证件类别、证件号码、*年龄 -->
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="8">
|
||||
<<<<<<< HEAD
|
||||
<el-form-item label="证件类别" prop="typeCode" label-width="80px">
|
||||
<el-select
|
||||
v-model="form.typeCode"
|
||||
placeholder="就诊卡"
|
||||
clearable
|
||||
:disabled="isViewMode"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in sys_idtype"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="证件号码" prop="idCard" label-width="80px">
|
||||
<el-input v-model="form.idCard" clearable :disabled="isViewMode" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="年龄" prop="age" label-width="80px">
|
||||
<el-input
|
||||
v-model="form.age"
|
||||
:disabled="isViewMode"
|
||||
@input="handleAgeInput"
|
||||
placeholder="请输入龄"
|
||||
>
|
||||
<template #suffix>岁</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- 第三行:国籍、*联系方式、工作单位 -->
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="国籍" prop="countryCode" label-width="80px">
|
||||
<el-select v-model="form.countryCode" placeholder="请选择国籍" clearable filterable :disabled="isViewMode">
|
||||
<el-option
|
||||
v-for="item in countryCodeList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="联系方式" prop="phone" label-width="80px">
|
||||
<el-input v-model="form.phone" clearable :disabled="isViewMode" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="出生日期" prop="birthDate">
|
||||
<el-date-picker
|
||||
v-model="form.birthDate"
|
||||
type="date"
|
||||
placeholder="请选择出生日期"
|
||||
format="YYYY年MM月DD日"
|
||||
:disabled="isViewMode"
|
||||
value-format="YYYY-MM-DD"
|
||||
@change="handleBirthDateChange"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- 第三行:就诊卡号、职业、邮政编码 -->
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="就诊卡号" prop="identifierNo">
|
||||
<el-input v-model="form.identifierNo" clearable :disabled="isViewMode" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="国家编码" prop="countryCode">
|
||||
<el-input v-model="form.countryCode" clearable :disabled="isViewMode" />
|
||||
@@ -199,7 +117,6 @@
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
<el-row>
|
||||
>>>>>>> v1.3
|
||||
<el-col :span="8">
|
||||
<el-form-item label="职业" prop="prfsEnum">
|
||||
<el-select v-model="form.prfsEnum" placeholder="职业" clearable :disabled="isViewMode">
|
||||
@@ -423,11 +340,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="PatientAddDialog">
|
||||
<<<<<<< HEAD
|
||||
import { watch, defineProps } from "vue";
|
||||
=======
|
||||
import { watch } from 'vue';
|
||||
>>>>>>> v1.3
|
||||
import pcas from 'china-division/dist/pcas-code.json';
|
||||
import { addPatient, patientlLists, getOutpatientRegistrationList } from './outpatientregistration';
|
||||
import {
|
||||
@@ -689,21 +602,9 @@ const validateGuardianInfo = (rule, value, callback) => {
|
||||
const data = reactive({
|
||||
isViewMode: false,
|
||||
form: {
|
||||
<<<<<<< HEAD
|
||||
typeCode: '08',
|
||||
birthDate: undefined,
|
||||
age: undefined,
|
||||
genderEnum: '1', // 默认设置为'男'
|
||||
hukouAddressSelect: undefined,
|
||||
hukouAddress: undefined,
|
||||
postalCode: undefined,
|
||||
companyAddress: undefined,
|
||||
patientDerived: undefined,
|
||||
=======
|
||||
typeCode: '01',
|
||||
tempFlag: '1',
|
||||
// genderEnum: 0,
|
||||
>>>>>>> v1.3
|
||||
},
|
||||
rules: {
|
||||
name: [{ required: true, message: '姓名不能为空', trigger: 'change' },
|
||||
@@ -720,22 +621,7 @@ const data = reactive({
|
||||
genderEnum: [{ required: true, message: '请选择性别', trigger: 'change' }],
|
||||
age: [{ required: true, message: '年龄不能为空', trigger: 'change' }],
|
||||
phone: [{ required: true, message: '联系方式不能为空', trigger: 'change' }],
|
||||
<<<<<<< HEAD
|
||||
identifierNo: [{ required: true, message: '就诊卡号不能为空', trigger: 'change' }],
|
||||
idCard: [
|
||||
{ required: false, message: '证件号码不能为空', trigger: 'change' },
|
||||
{ validator: validateIdCard, trigger: 'blur' },
|
||||
{ validator: validateUniquePatient, trigger: 'blur' }
|
||||
],
|
||||
birthDate: [{ required: false, message: '请选择出生日期', trigger: 'change' }],
|
||||
// 监护人信息条件验证规则
|
||||
guardianName: [{ validator: validateGuardianInfo, trigger: 'blur' }],
|
||||
guardianRelation: [{ validator: validateGuardianInfo, trigger: 'blur' }],
|
||||
guardianPhone: [{ validator: validateGuardianInfo, trigger: 'blur' }],
|
||||
guardianIdNo: [{ validator: validateGuardianInfo, trigger: 'blur' }],
|
||||
=======
|
||||
idCard: [{ required: true, message: '证件号不能为空', trigger: 'change' }],
|
||||
>>>>>>> v1.3
|
||||
},
|
||||
});
|
||||
|
||||
@@ -757,76 +643,6 @@ const props = defineProps({
|
||||
}
|
||||
});
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 处理出生日期变化,自动计算年龄
|
||||
function handleBirthDateChange() {
|
||||
if (form.value.birthDate) {
|
||||
const birthDate = new Date(form.value.birthDate);
|
||||
const today = new Date();
|
||||
|
||||
let age = today.getFullYear() - birthDate.getFullYear();
|
||||
const monthDiff = today.getMonth() - birthDate.getMonth();
|
||||
|
||||
// 计算精确年龄
|
||||
if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {
|
||||
age--;
|
||||
}
|
||||
|
||||
form.value.age = age;
|
||||
}
|
||||
}
|
||||
|
||||
// 处理年龄输入,自动计算出生日期
|
||||
function handleAgeInput() {
|
||||
// 提取数字部分
|
||||
const ageMatch = form.value.age.match(/\d+/);
|
||||
if (ageMatch) {
|
||||
const age = parseInt(ageMatch[0]);
|
||||
// 移除非数字字符,保留数字和可能的单位
|
||||
form.value.age = age ;
|
||||
|
||||
// 计算出生日期
|
||||
const today = new Date();
|
||||
const birthYear = today.getFullYear() - age;
|
||||
const birthMonth = today.getMonth();
|
||||
const birthDay = today.getDate();
|
||||
|
||||
const birthDate = new Date(birthYear, birthMonth, birthDay);
|
||||
|
||||
// 格式化为YYYY-MM-DD
|
||||
const formattedBirthDate = birthDate.toISOString().split('T')[0];
|
||||
form.value.birthDate = formattedBirthDate;
|
||||
}
|
||||
}
|
||||
watch(
|
||||
() => form.value.idCard,
|
||||
(newIdCard) => {
|
||||
if (newIdCard && newIdCard.length === 18) {
|
||||
const birthYear = parseInt(newIdCard.substring(6, 10));
|
||||
const birthMonth = parseInt(newIdCard.substring(10, 12));
|
||||
const birthDay = parseInt(newIdCard.substring(12, 14));
|
||||
|
||||
// 设置出生日期
|
||||
form.value.birthDate = `${birthYear}-${birthMonth.toString().padStart(2, '0')}-${birthDay.toString().padStart(2, '0')}`;
|
||||
const today = new Date();
|
||||
const currentYear = today.getFullYear();
|
||||
const currentMonth = today.getMonth() + 1;
|
||||
const currentDay = today.getDate();
|
||||
|
||||
let age = currentYear - birthYear;
|
||||
|
||||
// 如果当前月份小于出生月份,或者月份相同但当前日期小于出生日期,则年龄减1
|
||||
if (currentMonth < birthMonth || (currentMonth === birthMonth && currentDay < birthDay)) {
|
||||
age--;
|
||||
}
|
||||
|
||||
form.value.age = age;
|
||||
|
||||
form.value.age = age ;
|
||||
}
|
||||
}
|
||||
);
|
||||
=======
|
||||
// watch(
|
||||
// () => form.value.idCard,
|
||||
// (newIdCard) => {
|
||||
@@ -851,7 +667,6 @@ watch(
|
||||
// }
|
||||
// }
|
||||
// );
|
||||
>>>>>>> v1.3
|
||||
/** 查询菜单列表 */
|
||||
function getList() {
|
||||
patientlLists().then((response) => {
|
||||
|
||||
@@ -11,11 +11,7 @@
|
||||
<el-text size="large" style="display: block; margin-bottom: 15px">
|
||||
退费日期:{{ currentDate }}
|
||||
</el-text>
|
||||
<<<<<<< HEAD
|
||||
<el-text size="large">费用性质:{{ getFeeTypeText }}</el-text>
|
||||
=======
|
||||
<el-text size="large">费用性质:{{ props.category || '自费' }}</el-text>
|
||||
>>>>>>> v1.3
|
||||
<div class="amount-row">
|
||||
<el-text size="large">应退金额:</el-text>
|
||||
<el-text size="large" type="primary" class="amount">
|
||||
@@ -160,39 +156,16 @@ const props = defineProps({
|
||||
type: [],
|
||||
default: [],
|
||||
},
|
||||
<<<<<<< HEAD
|
||||
medfee_paymtd_code: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
feeType: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
contractName: {
|
||||
type: String,
|
||||
default: '', // 新增:接收费用性质名称
|
||||
},
|
||||
registerInfo: {
|
||||
type: Object,
|
||||
default: () => ({}), // 原挂号记录信息
|
||||
}
|
||||
=======
|
||||
eventType: {
|
||||
type: String,
|
||||
default: 1,
|
||||
},
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const reason = ref('');
|
||||
<<<<<<< HEAD
|
||||
const userStore = useUserStore();
|
||||
=======
|
||||
const preCancelData = ref([]);
|
||||
const loading = ref(false);
|
||||
>>>>>>> v1.3
|
||||
|
||||
const formData = reactive({
|
||||
totalAmount: 0,
|
||||
@@ -255,29 +228,10 @@ watch(
|
||||
function submit() {
|
||||
console.log(props.chargeItemIds);
|
||||
|
||||
<<<<<<< HEAD
|
||||
if (parseFloat(displayAmount.value) < formData.totalAmount) {
|
||||
proxy.$modal.msgError('请输入正确的金额');
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取当前时间作为退号操作日期
|
||||
const returnDate = formatDateStr(new Date(), 'YYYY-MM-DD HH:mm:ss');
|
||||
|
||||
// 获取当前用户信息作为操作工号(使用用户管理中的用户账号)
|
||||
// userStore.name 对应后端的 userName(用户账号),如 'admin'
|
||||
const operatorId = userStore.name || null; // 退号操作工号(用户账号)
|
||||
const operatorName = userStore.nickName || userStore.name || ''; // 退号操作人姓名
|
||||
|
||||
// 计算退款总金额
|
||||
const refundAmount = formData.selfPay.reduce((sum, item) => sum + (Number(item.amount) || 0), 0);
|
||||
|
||||
=======
|
||||
// if (parseFloat(displayAmount.value) < formData.totalAmount) {
|
||||
// proxy.$modal.msgError('请输入正确的金额');
|
||||
// return;
|
||||
// }
|
||||
>>>>>>> v1.3
|
||||
cancelRegister({
|
||||
paymentEnum: 0,
|
||||
kindEnum: 1,
|
||||
|
||||
@@ -43,8 +43,6 @@
|
||||
</el-popover>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<el-col :span="6" style="padding: 0">
|
||||
<el-button type="primary" icon="Plus" @click="handleAddPatient" style="width: 65px">
|
||||
新建
|
||||
@@ -77,7 +75,6 @@
|
||||
学生卡
|
||||
</el-button> -->
|
||||
</el-col>
|
||||
>>>>>>> v1.3
|
||||
<el-col :span="5">
|
||||
<el-form-item label="姓名:" prop="name">
|
||||
<el-input v-model="form.name" placeholder="姓名" :disabled="true" />
|
||||
@@ -280,10 +277,6 @@
|
||||
setchargeItem;
|
||||
}
|
||||
"
|
||||
<<<<<<< HEAD
|
||||
@clear="handleOrgClear"
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
@@ -554,100 +547,6 @@
|
||||
<span>{{ parseTime(scope.row.registerTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<<<<<<< HEAD
|
||||
<!-- 退号记录相关列 -->
|
||||
<el-table-column
|
||||
v-if="queryType === 'returned'"
|
||||
label="退号日期/时间"
|
||||
align="center"
|
||||
key="returnDate"
|
||||
prop="returnDate"
|
||||
width="180"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.returnDate ? parseTime(scope.row.returnDate) : '-' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="queryType === 'returned'"
|
||||
label="退号原因"
|
||||
align="center"
|
||||
key="returnReason"
|
||||
prop="returnReason"
|
||||
width="200"
|
||||
:show-overflow-tooltip="true"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.returnReason || '-' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="queryType === 'returned'"
|
||||
label="退号操作人"
|
||||
align="center"
|
||||
key="operatorName"
|
||||
prop="operatorName"
|
||||
width="120"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.operatorName || '-' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="queryType === 'returned'"
|
||||
label="退号操作工号"
|
||||
align="center"
|
||||
key="operatorId"
|
||||
prop="operatorId"
|
||||
width="120"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.operatorId || '-' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="queryType === 'returned'"
|
||||
label="退款金额"
|
||||
align="center"
|
||||
key="refundAmount"
|
||||
prop="refundAmount"
|
||||
width="120"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.refundAmount ? scope.row.refundAmount.toFixed(2) + ' 元' : '-' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="queryType === 'returned'"
|
||||
label="退款方式"
|
||||
align="center"
|
||||
key="refundMethod"
|
||||
prop="refundMethod"
|
||||
width="150"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.refundMethod || '-' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 操作列:只在全部和正常挂号标签页显示,退号记录标签页不显示 -->
|
||||
<el-table-column
|
||||
v-if="queryType !== 'returned'"
|
||||
label="操作"
|
||||
align="center"
|
||||
width="120"
|
||||
fixed="right"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
:disabled="scope.row.statusEnum === 6 || scope.row.statusEnum !== 1"
|
||||
:title="getReturnTooltip(scope.row)"
|
||||
@click="handleReturn(scope.row)"
|
||||
>
|
||||
退号
|
||||
</el-button>
|
||||
=======
|
||||
<el-table-column label="操作" align="center" key="registerTime" prop="registerTime" do>
|
||||
<template #default="scope">
|
||||
<!-- <el-tooltip
|
||||
@@ -675,7 +574,6 @@
|
||||
</el-button>
|
||||
</div>
|
||||
<!-- </el-tooltip> -->
|
||||
>>>>>>> v1.3
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -725,25 +623,7 @@
|
||||
:patientInfo="patientInfo"
|
||||
:paymentId="paymentId"
|
||||
:chargeItemIds="chargeItemIdList"
|
||||
<<<<<<< HEAD
|
||||
:feeType="patientInfo.medfeePaymtdCode || ''"
|
||||
:contractName="patientInfo.contractName || ''"
|
||||
:medfee_paymtd_code="medfee_paymtd_code"
|
||||
:registerInfo="registerInfo"
|
||||
/>
|
||||
<ReprintDialog
|
||||
:open="openReprintDialog"
|
||||
@close="
|
||||
(value) => {
|
||||
if (value == 'success') {
|
||||
getList();
|
||||
}
|
||||
openReprintDialog = false;
|
||||
}
|
||||
"
|
||||
=======
|
||||
:eventType="eventType"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
@@ -776,26 +656,11 @@ import ReprintDialog from './components/reprintDialog.vue';
|
||||
import { handleColor } from '@/utils/his';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import { formatDate, formatDateStr } from '@/utils/index';
|
||||
<<<<<<< HEAD
|
||||
import { getConfigKey } from '@/api/system/config';
|
||||
|
||||
const patientInfo = ref({});
|
||||
// 监护人规定年龄配置
|
||||
const guardianAgeConfig = ref(null);
|
||||
|
||||
// 跳转到患者档案管理页面
|
||||
const goToPatientRecord = () => {
|
||||
// 使用Vue Router进行路由导航,在当前页面打开新的路由层级
|
||||
router.push('/system/basicmanage/patientmanagement');
|
||||
};
|
||||
|
||||
=======
|
||||
import { isValidCNPhoneNumber } from '../../../utils/validate';
|
||||
import { ElMessage } from 'element-plus';
|
||||
|
||||
const patientInfo = ref({});
|
||||
const eventType = ref(0);
|
||||
>>>>>>> v1.3
|
||||
const router = useRouter();
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { sys_normal_disable, sys_user_sex, med_chrgitm_type,medfee_paymtd_code } = proxy.useDict(
|
||||
@@ -846,14 +711,8 @@ const patientInfoList = ref(undefined);
|
||||
// 费用性质
|
||||
const contractList = ref(undefined);
|
||||
// const locationOptions = ref(undefined); // 地点树选项
|
||||
<<<<<<< HEAD
|
||||
const doctorList = ref(undefined); // 医生选项(过滤后的)
|
||||
const allDoctorList = ref(undefined); // 所有医生选项(用于过滤)
|
||||
const healthcareList = ref(undefined); // 挂号项目选项
|
||||
=======
|
||||
const doctorList = ref(undefined); // 医生选项
|
||||
const healthcareList = ref([]); // 挂号项目选项
|
||||
>>>>>>> v1.3
|
||||
const orgOptions = ref(undefined); // 科室选项
|
||||
const readCardLoading = ref(false);
|
||||
const transformedData = ref({});
|
||||
@@ -1171,32 +1030,6 @@ function setchargeItem() {
|
||||
healthcareData.length > 0 ? healthcareData[0].price + healthcareData[0].activityPrice : '';
|
||||
form.value.definitionId = healthcareData.length > 0 ? healthcareData[0].definitionId : '';
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
}
|
||||
|
||||
/** 处理挂号类型变化 */
|
||||
function handleServiceTypeChange() {
|
||||
// 先设置费用项信息
|
||||
setchargeItem();
|
||||
// 然后根据就诊科室和挂号类型过滤医生
|
||||
filterDoctorsByHealthcare();
|
||||
}
|
||||
|
||||
/** 处理科室清空 */
|
||||
function handleOrgClear() {
|
||||
// 清空科室时,清空相关数据
|
||||
form.value.orgId = undefined;
|
||||
form.value.organizationId = undefined;
|
||||
healthcareList.value = [];
|
||||
form.value.serviceTypeId = undefined;
|
||||
form.value.practitionerId = undefined;
|
||||
form.value.doctorName = '';
|
||||
// 如果有医生列表,显示所有医生
|
||||
if (allDoctorList.value) {
|
||||
doctorList.value = allDoctorList.value;
|
||||
}
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
/** 查询患者信息 */
|
||||
function getList() {
|
||||
@@ -1479,10 +1312,6 @@ function handleAdd() {
|
||||
transformedData.value = transformFormData(form.value);
|
||||
console.log(transformedData, 'transformedData门诊挂号');
|
||||
chargeItemIdList.value = [];
|
||||
<<<<<<< HEAD
|
||||
patientInfo.value.patientId = form.value.patientId;
|
||||
patientInfo.value.medfeePaymtdCode = form.value.contractNo; // 设置费用性质
|
||||
=======
|
||||
// patientInfo.value.patientId = form.value.patientId;
|
||||
patientInfo.value = {
|
||||
patientId: form.value.patientId,
|
||||
@@ -1500,7 +1329,6 @@ function handleAdd() {
|
||||
practitionerName: form.value.doctorName || '',
|
||||
healthcareName: '', // 可根据实际情况补充
|
||||
};
|
||||
>>>>>>> v1.3
|
||||
proxy.$refs['outpatientRegistrationRef'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (!isValidCNPhoneNumber(patientInfo.value.phone)) {
|
||||
@@ -1518,15 +1346,8 @@ function handleAdd() {
|
||||
addOutpatientRegistration(transformedData.value)
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
<<<<<<< HEAD
|
||||
console.log('挂号成功,返回数据:', res.data);
|
||||
// 立即刷新列表,确保挂号信息显示在当日已挂号列表中
|
||||
getList();
|
||||
|
||||
=======
|
||||
console.log('78989798', 'res', res);
|
||||
// proxy.$modal.msgSuccess('挂号成功');
|
||||
>>>>>>> v1.3
|
||||
chrgBchno.value = res.data.chrgBchno;
|
||||
registerBusNo.value = res.data.busNo;
|
||||
totalAmount.value = res.data.psnCashPay;
|
||||
@@ -1583,56 +1404,15 @@ function handleSearchPatient(value) {
|
||||
patientSearchKey.value = value;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
function getReturnTooltip(row) {
|
||||
if (!row) {
|
||||
return '';
|
||||
}
|
||||
if (row.statusEnum == 6) {
|
||||
return '已退号';
|
||||
}
|
||||
if (row.statusEnum != 1) {
|
||||
return '该患者医生已接诊,不能退号!';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
function handleReturn(row) {
|
||||
if (row.statusEnum != 1) {
|
||||
proxy.$modal.msgError('该患者医生已接诊,不能退号!');
|
||||
return;
|
||||
}
|
||||
=======
|
||||
function handleReturn(row, type = '1') {
|
||||
>>>>>>> v1.3
|
||||
openRefundDialog.value = true;
|
||||
patientInfo.value.patientId = row.patientId;
|
||||
patientInfo.value.encounterId = row.encounterId;
|
||||
totalAmount.value = row.totalPrice;
|
||||
chargeItemIdList.value = row.chargeItemIds.split(',');
|
||||
paymentId.value = row.paymentId;
|
||||
<<<<<<< HEAD
|
||||
// 从挂号记录中获取正确的费用性质
|
||||
patientInfo.value.medfeePaymtdCode = row.contractNo; // 使用挂号记录中的费用性质代码
|
||||
patientInfo.value.contractName = row.contractName; // 保存费用性质名称用于显示
|
||||
|
||||
// 保存完整的原挂号记录信息,用于退号记录
|
||||
registerInfo.value = {
|
||||
...row, // 保存完整的挂号记录
|
||||
patientName: row.patientName,
|
||||
age: row.age,
|
||||
genderEnum_enumText: row.genderEnum_enumText,
|
||||
registerTime: row.registerTime,
|
||||
totalPrice: row.totalPrice,
|
||||
encounterId: row.encounterId,
|
||||
patientId: row.patientId,
|
||||
};
|
||||
|
||||
console.log('退号费用性质:', row.contractNo, row.contractName);
|
||||
=======
|
||||
eventType.value = type;
|
||||
console.log(paymentId.value);
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
function handleReturnRegister() {
|
||||
|
||||
@@ -110,11 +110,7 @@
|
||||
"top": 57,
|
||||
"height": 13.5,
|
||||
"width": 145.5,
|
||||
<<<<<<< HEAD
|
||||
"title": "机构名称:长春大学医院",
|
||||
=======
|
||||
"title": "机构名称:长春市朝阳区中医院",
|
||||
>>>>>>> v1.3
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 9,
|
||||
|
||||
@@ -357,11 +357,7 @@ async function print() {
|
||||
...reportValue.value, // 将 reportValue.value 中的所有属性展开到 result 中
|
||||
nickName: userStore.nickName,
|
||||
orgName: userStore.orgName,
|
||||
<<<<<<< HEAD
|
||||
fixmedinsName: '长春大学医院',
|
||||
=======
|
||||
fixmedinsName: '长春市朝阳区中医院医院',
|
||||
>>>>>>> v1.3
|
||||
queryTime: queryTime.value[0] + '~' + queryTime.value[1],
|
||||
zfAmount: new Decimal(reportValue.value.zhSum || 0).add(reportValue.value.fundSum || 0),
|
||||
feeAmount: new Decimal(reportValue.value.DIAGNOSTIC_FEE || 0)
|
||||
|
||||
@@ -473,11 +473,7 @@ async function print() {
|
||||
...reportValue.value, // 将 reportValue.value 中的所有属性展开到 result 中
|
||||
nickName: userStore.nickName,
|
||||
orgName: userStore.orgName,
|
||||
<<<<<<< HEAD
|
||||
fixmedinsName: userStore.hospitalName,
|
||||
=======
|
||||
fixmedinsName: userStore.hospitalName,
|
||||
>>>>>>> v1.3
|
||||
createTime: formatDateStr(new Date(), 'YYYY-MM-DD HH:mm:ss'),
|
||||
scheduler: userStore.nickName,
|
||||
timeRange: queryTime.value[0] + '~' + queryTime.value[1],
|
||||
|
||||
@@ -92,8 +92,6 @@ export function printBloodCode (query) {
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
|
||||
/**
|
||||
@@ -106,4 +104,3 @@ export function getEnPrescriptionInfo(data) {
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -33,13 +33,8 @@
|
||||
"left": 0,
|
||||
"top": 22.5,
|
||||
"height": 12,
|
||||
<<<<<<< HEAD
|
||||
"width": 88.5,
|
||||
"title": "长春大学医院",
|
||||
=======
|
||||
"width": 420,
|
||||
"title": "长春市朝阳区中医院",
|
||||
>>>>>>> v1.3
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontSize": 13.5,
|
||||
|
||||
@@ -8,11 +8,7 @@
|
||||
@close="close"
|
||||
>
|
||||
<el-table :data="recordList" highlight-current-row max-height="650" style="width: 100%" border>
|
||||
<<<<<<< HEAD
|
||||
<el-table-column prop="occurrenceTime" label="执行时间" align="center" />
|
||||
=======
|
||||
<el-table-column prop="recordTime" label="执行时间" align="center" />
|
||||
>>>>>>> v1.3
|
||||
<el-table-column prop="statusEnum_enumText" label="执行状态" align="center" />
|
||||
<el-table-column prop="orgName" label="执行科室" align="center" />
|
||||
<el-table-column prop="practitionerName" label="执行人" align="center" />
|
||||
|
||||
@@ -37,11 +37,7 @@
|
||||
"top": 16.5,
|
||||
"height": 22.5,
|
||||
"width": 120,
|
||||
<<<<<<< HEAD
|
||||
"title": "长春大学医院",
|
||||
=======
|
||||
"title": "长春市朝阳区中医院医院",
|
||||
>>>>>>> v1.3
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontFamily": "Microsoft YaHei",
|
||||
|
||||
@@ -44,24 +44,16 @@
|
||||
<el-table-column prop="patientName" label="姓名" align="center" />
|
||||
<el-table-column prop="genderEnum_enumText" label="性别" align="center" />
|
||||
<el-table-column prop="age" label="年龄" align="center" />
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<el-table-column prop="receptionTime" label="挂号时间" align="center" />
|
||||
>>>>>>> v1.3
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNo"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
<<<<<<< HEAD
|
||||
layout="total, sizes, prev, pager, next"
|
||||
@pagination="getPatientList"
|
||||
=======
|
||||
@pagination="getPatientList"
|
||||
:pager-count="1"
|
||||
:layout="'total, prev, pager, next'"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -106,10 +98,7 @@
|
||||
>
|
||||
打印处置单
|
||||
</el-button>
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<el-button type="primary" plain @click.stop="getEnPrescription()"> 处方单 </el-button>
|
||||
>>>>>>> v1.3
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="6">
|
||||
<el-form
|
||||
@@ -296,28 +285,16 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" prop="unitPrice" label="单价">
|
||||
<<<<<<< HEAD
|
||||
<template #default="scope">
|
||||
<span>
|
||||
{{ scope.unitPrice ? scope.unitPrice.toFixed(2) : '0.00' + ' 元' }}
|
||||
=======
|
||||
<template #default="{ row }">
|
||||
<span>
|
||||
{{ row.unitPrice ? row.unitPrice.toFixed(2) : '0.00' + ' 元' }}
|
||||
>>>>>>> v1.3
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" prop="totalPrice" label="总价">
|
||||
<<<<<<< HEAD
|
||||
<template #default="scope">
|
||||
<span>
|
||||
{{ scope.totalPrice ? scope.totalPrice.toFixed(2) : '0.00' + ' 元' }}
|
||||
=======
|
||||
<template #default="{ row }">
|
||||
<span>
|
||||
{{ row.totalPrice ? row.totalPrice.toFixed(2) : '0.00' + ' 元' }}
|
||||
>>>>>>> v1.3
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -358,11 +335,8 @@ import { formatDateStr } from '@/utils';
|
||||
import { hiprint } from 'vue-plugin-hiprint';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import { getGroupMarkers } from '@/utils/his';
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
import { simplePrint, PRINT_TEMPLATE } from '@/utils/printUtils.js';
|
||||
>>>>>>> v1.3
|
||||
// 患者搜索
|
||||
const queryParams = ref({
|
||||
pageNo: 1,
|
||||
@@ -450,10 +424,6 @@ function handleServiceCategoryChange(value) {
|
||||
deviceList.value = res.data.records.filter((item) => {
|
||||
return item.requestTable == 'wor_device_request';
|
||||
});
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
activityList.value = res.data.records.filter((item) => {
|
||||
return (
|
||||
item.requestTable == 'wor_service_request' ||
|
||||
@@ -537,8 +507,6 @@ function handleBatchValidate(type) {
|
||||
};
|
||||
});
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// 批量操作校验
|
||||
function handleBatchValidate(type) {
|
||||
let params = [];
|
||||
@@ -577,7 +545,6 @@ function handleBatchValidate(type) {
|
||||
};
|
||||
});
|
||||
|
||||
>>>>>>> v1.3
|
||||
return [...activityList, ...deviceList];
|
||||
} else if (type === 'cancel') {
|
||||
let list = [...activitySelectedList.value, ...deviceSelectedList.value];
|
||||
@@ -742,8 +709,6 @@ function printPrescription() {
|
||||
}); //开始打印
|
||||
});
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// 查看本次就诊处方单
|
||||
function getEnPrescription() {
|
||||
getEnPrescriptionInfo({ encounterId: currentPatient.value.encounterId }).then((res) => {
|
||||
@@ -761,7 +726,6 @@ function getEnPrescription() {
|
||||
});
|
||||
}
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 打印处置单
|
||||
function printDisposal() {
|
||||
let requestIds = deviceActivityList.value
|
||||
@@ -869,9 +833,6 @@ function handleCancel(row) {
|
||||
});
|
||||
}
|
||||
// 打印瓶贴
|
||||
<<<<<<< HEAD
|
||||
function printBottleLabel() {
|
||||
=======
|
||||
// function printBottleLabel() {
|
||||
// let result = [];
|
||||
// // 过滤出全部输液药品
|
||||
@@ -966,7 +927,6 @@ function printBottleLabel() {
|
||||
// });
|
||||
// }
|
||||
async function printBottleLabel() {
|
||||
>>>>>>> v1.3
|
||||
let result = [];
|
||||
// 过滤出全部输液药品
|
||||
let selectRows = activityListRef.value.getSelectionRows();
|
||||
@@ -1045,16 +1005,6 @@ async function printBottleLabel() {
|
||||
infuseData: item,
|
||||
};
|
||||
});
|
||||
<<<<<<< HEAD
|
||||
const printElements = templateJson;
|
||||
var hiprintTemplate = new hiprint.PrintTemplate({ template: printElements }); // 定义模板
|
||||
console.log(result, '打印机列表');
|
||||
hiprintTemplate.print2(result, {
|
||||
// printer: 'Xprinter XP-365B',
|
||||
height: 210,
|
||||
width: 148,
|
||||
});
|
||||
=======
|
||||
console.log(result, '打印数据');
|
||||
await simplePrint(PRINT_TEMPLATE.OUTPATIENT_INFUSION, result);
|
||||
// console.log('打印成功');
|
||||
@@ -1065,7 +1015,6 @@ async function printBottleLabel() {
|
||||
// height: 210,
|
||||
// width: 148,
|
||||
// });
|
||||
>>>>>>> v1.3
|
||||
// 直接打印回调
|
||||
// 发送任务到打印机成功
|
||||
// hiprintTemplate.on('printSuccess', function (e) {
|
||||
@@ -1285,8 +1234,4 @@ function getRecord(row) {
|
||||
:deep(.el-table__body) tr:hover td.no-hover-column {
|
||||
background-color: inherit !important;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -27,11 +27,7 @@
|
||||
<span>CF0000000001</span>
|
||||
</div>
|
||||
<div style="text-align: center">
|
||||
<<<<<<< HEAD
|
||||
<h2>长春大学医院</h2>
|
||||
=======
|
||||
<h2>长春市朝阳区中医院医院</h2>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
<div style="text-align: center">
|
||||
<h3>处方单</h3>
|
||||
|
||||
@@ -211,28 +211,6 @@ watch(
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
<<<<<<< HEAD
|
||||
getList();
|
||||
// function getList() {
|
||||
// queryParams.value.organizationId = props.patientInfo.orgId;
|
||||
// getAdviceBaseInfo(queryParams.value).then((res) => {
|
||||
// if (res.data.records.length > 0) {
|
||||
// adviceBaseList.value = res.data.records.filter((item) => {
|
||||
// if (item.adviceType == 1 || item.adviceType == 2) {
|
||||
// return handleQuantity(item) != 0;
|
||||
// } else {
|
||||
// return true;
|
||||
// }
|
||||
// });
|
||||
// total.value = res.data.total;
|
||||
// nextTick(() => {
|
||||
// currentIndex.value = 0;
|
||||
// // adviceBaseRef.value.setCurrentRow(adviceBaseList.value[0]);
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
=======
|
||||
getList();
|
||||
function getList() {
|
||||
queryParams.value.organizationId = props.patientInfo.orgId;
|
||||
@@ -253,7 +231,6 @@ function getList() {
|
||||
}
|
||||
});
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
// 从priceList列表中获取价格
|
||||
function getPriceFromInventory(row) {
|
||||
if (row.priceList && row.priceList.length > 0) {
|
||||
|
||||
@@ -273,12 +273,7 @@ export function singOut(data) {
|
||||
url: '/doctor-station/advice/sign-off',
|
||||
method: 'post',
|
||||
data: data,
|
||||
<<<<<<< HEAD
|
||||
skipErrorMsg: true
|
||||
})
|
||||
=======
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
/**
|
||||
* 获取患者本次就诊处方
|
||||
|
||||
@@ -269,25 +269,6 @@ function removeDiagnosis(row, index) {
|
||||
}
|
||||
|
||||
function save() {
|
||||
<<<<<<< HEAD
|
||||
// 为每个诊断项添加诊断医生和诊断时间
|
||||
const diagnosisChildList = tcmDiagonsisSaveList.value.map(item => ({
|
||||
...item,
|
||||
diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || '',
|
||||
diagnosisTime: new Date().toLocaleString('zh-CN')
|
||||
}));
|
||||
|
||||
saveTcmDiagnosis({
|
||||
patientId: props.patientInfo.patientId,
|
||||
encounterId: props.patientInfo.encounterId,
|
||||
diagnosisChildList: diagnosisChildList,
|
||||
}).then((res) => {
|
||||
if (res.code == 200) {
|
||||
emit('close');
|
||||
proxy.$modal.msgSuccess('诊断已保存');
|
||||
}
|
||||
});
|
||||
=======
|
||||
if(props.updateZy.length>0){
|
||||
updateTcmDiagnosis({
|
||||
patientId: props.patientInfo.patientId,
|
||||
@@ -312,7 +293,6 @@ function save() {
|
||||
});
|
||||
}
|
||||
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
function submit() {
|
||||
|
||||
@@ -8,10 +8,6 @@
|
||||
<el-button icon="Search" @click="queryDiagnosisUse" />
|
||||
</template>
|
||||
</el-input>
|
||||
<<<<<<< HEAD
|
||||
<el-tree ref="treeRef" :data="tree" node-key="id" :props="{ label: 'name', children: 'children' }"
|
||||
highlight-current default-expand-all :filter-node-method="filterNode" @node-click="handleNodeClick">
|
||||
=======
|
||||
<el-tree
|
||||
ref="treeRef"
|
||||
:data="tree"
|
||||
@@ -24,22 +20,17 @@
|
||||
@node-click="handleNodeClick"
|
||||
max-height="650"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<template #default="{ node, data }">
|
||||
<div class="custom-tree-node">
|
||||
<span>{{ node.label }}</span>
|
||||
<span class="tree-node-actions">
|
||||
<template v-if="node.level === 1 && data.name != '常用' && data.name != '历史'">
|
||||
<<<<<<< HEAD
|
||||
<el-button style="color: #000000" type="text" size="small" @click.stop="addChild(data)">
|
||||
=======
|
||||
<el-button
|
||||
style="color: #000000"
|
||||
type="text"
|
||||
size="small"
|
||||
@click.stop="addChild(data)"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-icon>
|
||||
<Plus />
|
||||
</el-icon>
|
||||
@@ -48,13 +39,6 @@
|
||||
<el-popconfirm width="200" :hide-after="10" title="确认删除此常用诊断吗" placement="top-start"
|
||||
@confirm="deleteChild(data)">
|
||||
<template #reference>
|
||||
<<<<<<< HEAD
|
||||
<el-button style="color: #000000" v-if="
|
||||
node.level === 2 &&
|
||||
node.parent.data.name != '常用' &&
|
||||
node.parent.data.name != '历史'
|
||||
" type="text" size="small" @click.stop="">
|
||||
=======
|
||||
<el-button
|
||||
style="color: #000000"
|
||||
v-if="
|
||||
@@ -66,7 +50,6 @@
|
||||
size="small"
|
||||
@click.stop=""
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-icon>
|
||||
<Minus />
|
||||
</el-icon>
|
||||
@@ -117,11 +100,6 @@
|
||||
<el-table-column label="诊断名称" align="center" prop="name">
|
||||
<template #default="scope">
|
||||
<el-form-item :prop="`diagnosisList.${scope.$index}.name`" :rules="rules.name">
|
||||
<<<<<<< HEAD
|
||||
<el-popover :popper-style="{ padding: '0' }" placement="bottom-start" :visible="scope.row.showPopover"
|
||||
trigger="manual" :width="800">
|
||||
<diagnosislist :diagnosisSearchkey="diagnosisSearchkey" @selectDiagnosis="handleSelsectDiagnosis" />
|
||||
=======
|
||||
<el-popover
|
||||
:popper-style="{ padding: '0' }"
|
||||
placement="bottom-start"
|
||||
@@ -134,7 +112,6 @@
|
||||
:diagnosisSearchkey="diagnosisSearchkey"
|
||||
@selectDiagnosis="handleSelsectDiagnosis"
|
||||
/>
|
||||
>>>>>>> v1.3
|
||||
<template #reference>
|
||||
<el-input v-model="scope.row.name" placeholder="请选择诊断" @input="handleChange"
|
||||
@focus="handleFocus(scope.row, scope.$index)" @blur="handleBlur(scope.row)" />
|
||||
@@ -143,17 +120,9 @@
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-table-column label="诊断医生" align="center" prop="diagnosisDoctor" width="120" />
|
||||
<el-table-column label="诊断时间" align="center" prop="diagnosisTime" width="150" />
|
||||
<el-table-column label="诊断代码" align="center" prop="ybNo" width="180" />
|
||||
<el-table-column label="诊断类型" align="center" prop="maindiseFlag" width="120">
|
||||
=======
|
||||
<el-table-column label="医保码" align="center" prop="ybNo" width="180" />
|
||||
<el-table-column label="类别" align="center" prop="typeName" width="100" />
|
||||
<el-table-column label="诊断类型" align="center" prop="maindiseFlag">
|
||||
>>>>>>> v1.3
|
||||
<template #default="scope">
|
||||
<div style="display:flex;flex-direction:column;align-items:center;gap:5px;">
|
||||
<el-checkbox
|
||||
@@ -192,11 +161,6 @@
|
||||
</el-form>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<<<<<<< HEAD
|
||||
<diagnosisdialog :openDiagnosis="openDiagnosis" @close="closeDiagnosisDialog" :radio="orgOrUser" />
|
||||
<AddDiagnosisDialog :openAddDiagnosisDialog="openAddDiagnosisDialog" :patientInfo="props.patientInfo"
|
||||
@close="closeDiagnosisDialog" />
|
||||
=======
|
||||
<diagnosisdialog
|
||||
:openDiagnosis="openDiagnosis"
|
||||
@close="closeDiagnosisDialog"
|
||||
@@ -208,7 +172,6 @@
|
||||
:patientInfo="props.patientInfo"
|
||||
@close="closeDiagnosisDialog"
|
||||
/>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -287,46 +250,6 @@ function refreshData() {
|
||||
}
|
||||
let maxNo = 99;
|
||||
function getList() {
|
||||
<<<<<<< HEAD
|
||||
if (!props.patientInfo || !props.patientInfo.encounterId) {
|
||||
console.warn('患者就诊信息不完整,无法获取诊断数据');
|
||||
return;
|
||||
}
|
||||
|
||||
getEncounterDiagnosis(props.patientInfo.encounterId).then((res) => {
|
||||
if (res.code == 200) {
|
||||
// 为每个诊断项添加默认的诊断医生和时间(如果不存在)
|
||||
form.value.diagnosisList = res.data.map(item => ({
|
||||
...item,
|
||||
diagnosisDoctor: item.diagnosisDoctor || props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name,
|
||||
diagnosisTime: item.diagnosisTime || new Date().toLocaleString('zh-CN')
|
||||
}));
|
||||
|
||||
// 获取诊断列表后按排序号排序
|
||||
form.value.diagnosisList.sort((a, b) => (a.diagSrtNo || 0) - (b.diagSrtNo || 0));
|
||||
|
||||
emits('diagnosisSave', false);
|
||||
}
|
||||
});
|
||||
|
||||
getTcmDiagnosis({ encounterId: props.patientInfo.encounterId }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
if (res.data.illness && res.data.illness.length > 0 && res.data.symptom) {
|
||||
res.data.illness.forEach((item, index) => {
|
||||
form.value.diagnosisList.push({
|
||||
name: item.name + '-' + (res.data.symptom[index]?.name || ''),
|
||||
ybNo: item.ybNo,
|
||||
medTypeCode: item.medTypeCode,
|
||||
diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name,
|
||||
diagnosisTime: new Date().toLocaleString('zh-CN')
|
||||
});
|
||||
});
|
||||
}
|
||||
emits('diagnosisSave', false);
|
||||
}
|
||||
});
|
||||
|
||||
=======
|
||||
getEncounterDiagnosis(props.patientInfo.encounterId)
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
@@ -362,7 +285,6 @@ function getList() {
|
||||
}
|
||||
});
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
getTree();
|
||||
}
|
||||
|
||||
@@ -487,22 +409,10 @@ function getTree() {
|
||||
function handleAddDiagnosis() {
|
||||
proxy.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
<<<<<<< HEAD
|
||||
if (!allowAdd.value) {
|
||||
proxy.$modal.msgWarning('请先填写病历');
|
||||
return;
|
||||
}
|
||||
// 计算现有最大排序号
|
||||
const maxSortNo = form.value.diagnosisList.length > 0
|
||||
? Math.max(...form.value.diagnosisList.map(item => item.diagSrtNo || 0))
|
||||
: 0;
|
||||
|
||||
=======
|
||||
// if (!allowAdd.value) {
|
||||
// proxy.$modal.msgWarning('请先填写病历');
|
||||
// return;
|
||||
// }
|
||||
>>>>>>> v1.3
|
||||
form.value.diagnosisList.push({
|
||||
showPopover: false,
|
||||
name: undefined,
|
||||
@@ -717,14 +627,10 @@ defineExpose({ getList, getDetail, handleSaveDiagnosis });
|
||||
.el-checkbox.is-bordered.el-checkbox--small {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
.tree-with-scrollbar {
|
||||
max-height: 650px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
.custom-tree-node {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -1,25 +1,5 @@
|
||||
<template>
|
||||
<div>
|
||||
<<<<<<< HEAD
|
||||
<el-scrollbar height="200px">
|
||||
<el-table
|
||||
ref="emrTemplateRef"
|
||||
:data="emrTemplate"
|
||||
row-key="id"
|
||||
highlight-current-row
|
||||
@cell-click="clickRow"
|
||||
>
|
||||
<el-table-column label="模板名称" align="center" prop="templateName" />
|
||||
<!-- <el-table-column label="使用范围" align="center" prop="useScopeCode" /> -->
|
||||
<el-table-column label="操作" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click.stop="handelDelete(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-scrollbar>
|
||||
|
||||
=======
|
||||
<el-table
|
||||
ref="emrTemplateRef"
|
||||
:data="emrTemplate"
|
||||
@@ -36,7 +16,6 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
>>>>>>> v1.3
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
@@ -67,11 +46,7 @@ const props = defineProps({
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
<<<<<<< HEAD
|
||||
getList();
|
||||
=======
|
||||
getList();
|
||||
>>>>>>> v1.3
|
||||
function getList() {
|
||||
queryParams.value.useScopeCode = 1;
|
||||
getEmrTemplateList(queryParams.value).then((res) => {
|
||||
|
||||
@@ -276,10 +276,6 @@ function getRowDisabled(row) {
|
||||
* 新增处方按钮操作
|
||||
*/
|
||||
function handleAddPrescription() {
|
||||
<<<<<<< HEAD
|
||||
console.log('新增处方按钮操作 - 打开新增处方弹窗');
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
title.value = '新增处方';
|
||||
openPrescriptionDialog();
|
||||
}
|
||||
|
||||
@@ -1,13 +1,6 @@
|
||||
/*
|
||||
* @Author: sjjh
|
||||
* @Date: 2025-09-20 17:02:37
|
||||
<<<<<<< HEAD
|
||||
* @Description:
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
|
||||
// ====== 文书记录
|
||||
=======
|
||||
* @Description:
|
||||
*/
|
||||
import request from '@/utils/request';
|
||||
@@ -21,17 +14,11 @@ export function saveOrUpdateRecord(data) {
|
||||
data,
|
||||
});
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
// 新增记录
|
||||
export function addRecord(data) {
|
||||
return request({
|
||||
url: '/document/record/addRecord',
|
||||
method: 'post',
|
||||
<<<<<<< HEAD
|
||||
data
|
||||
})
|
||||
}
|
||||
=======
|
||||
data,
|
||||
});
|
||||
}
|
||||
@@ -69,31 +56,21 @@ export function deleteTemplate(id) {
|
||||
});
|
||||
}
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 根据患者ID或就诊ID获取文书记录列表,只针对不需返回患者具体信息的列表,体温单除外,单独处理
|
||||
|
||||
export function getRecordByEncounterIdList(params) {
|
||||
return request({
|
||||
url: '/document/record/getRecordByEncounterIdList',
|
||||
method: 'get',
|
||||
<<<<<<< HEAD
|
||||
params
|
||||
})
|
||||
=======
|
||||
params,
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
// 初始化文书定义
|
||||
export function init() {
|
||||
return request({
|
||||
url: '/document/record/init',
|
||||
method: 'get',
|
||||
<<<<<<< HEAD
|
||||
})
|
||||
=======
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
// ====== 文书模板
|
||||
@@ -102,40 +79,22 @@ export function addTemplate(data) {
|
||||
return request({
|
||||
url: '/document/template/add',
|
||||
method: 'post',
|
||||
<<<<<<< HEAD
|
||||
data
|
||||
})
|
||||
=======
|
||||
data,
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
//
|
||||
export function getListByDefinitionId(definitionId) {
|
||||
return request({
|
||||
url: '/document/template/getListByDefinitionId',
|
||||
method: 'get',
|
||||
<<<<<<< HEAD
|
||||
params: {definitionId}
|
||||
})
|
||||
=======
|
||||
params: { definitionId },
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
// 更新模板
|
||||
export function updateTemplate(data) {
|
||||
return request({
|
||||
url: '/document/template/update',
|
||||
method: 'put',
|
||||
<<<<<<< HEAD
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
=======
|
||||
data,
|
||||
});
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -7,13 +7,6 @@
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
<<<<<<< HEAD
|
||||
<el-scrollbar class="emr-history-scrollbar-container" style="width: 100%">
|
||||
<div v-for="item in historyData" :key="item.id" class="scrollbar-item">
|
||||
<el-tooltip effect="dark" :content="`${item.name}(${item.recordTime})`" placement="bottom">
|
||||
<el-text class="w-150px mb-2" truncated @click="handleNodeClick(item)">
|
||||
{{ item.name }}({{ item.recordTime }})
|
||||
=======
|
||||
<el-scrollbar
|
||||
class="emr-history-scrollbar-container"
|
||||
style="width: 100%; height: calc(100vh - 300px)"
|
||||
@@ -37,7 +30,6 @@
|
||||
>
|
||||
<Delete />
|
||||
</el-icon>
|
||||
>>>>>>> v1.3
|
||||
</el-text>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
@@ -46,13 +38,8 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
<<<<<<< HEAD
|
||||
import { ref, reactive, defineEmits, unref } from 'vue';
|
||||
import { getRecordByEncounterIdList } from '../api';
|
||||
=======
|
||||
import { ref, reactive, defineEmits, unref, nextTick } from 'vue';
|
||||
import { getRecordByEncounterIdList, deleteRecord } from '../api';
|
||||
>>>>>>> v1.3
|
||||
import { ElTree } from 'element-plus';
|
||||
import { ElMessageBox, ElMessage, ElLoading } from 'element-plus';
|
||||
import { patientInfo } from '../../store/patient.js';
|
||||
@@ -62,13 +49,10 @@ const props = defineProps({
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
selectedRecordId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
const definitionId = defineModel('definitionId', {
|
||||
type: String,
|
||||
@@ -97,20 +81,13 @@ const queryList = async () => {
|
||||
historyData.value = [];
|
||||
}
|
||||
} catch (error) {
|
||||
<<<<<<< HEAD
|
||||
// ElMessage.error('获取模板树失败');
|
||||
=======
|
||||
// ElMessage.error(' 获取模板树失败 ');
|
||||
>>>>>>> v1.3
|
||||
historyData.value = [];
|
||||
}
|
||||
};
|
||||
const handleNodeClick = (data) => {
|
||||
emits('historyClick', data);
|
||||
};
|
||||
<<<<<<< HEAD
|
||||
const currentSelectTemplate = ref({});
|
||||
=======
|
||||
// 删除历史记录
|
||||
const handleDelete = async (item) => {
|
||||
try {
|
||||
@@ -128,7 +105,6 @@ const handleDelete = async (item) => {
|
||||
}
|
||||
};
|
||||
|
||||
>>>>>>> v1.3
|
||||
defineExpose({ queryList });
|
||||
</script>
|
||||
|
||||
@@ -152,8 +128,6 @@ defineExpose({ queryList });
|
||||
& + .scrollbar-item {
|
||||
margin-top: 8px;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
.selected-history-item {
|
||||
@@ -164,7 +138,6 @@ defineExpose({ queryList });
|
||||
color: #d9d9d9;
|
||||
cursor: not-allowed;
|
||||
opacity: 0.6;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,19 +9,6 @@
|
||||
</div> -->
|
||||
<el-scrollbar class="emr-template-scrollbar-container" style="width: 100%">
|
||||
<div v-for="item in templateData" :key="item.id" class="scrollbar-item">
|
||||
<<<<<<< HEAD
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="`${item.name}`"
|
||||
placement="bottom"
|
||||
>
|
||||
<el-text class="2" truncated @click="handleNodeClick(item)">
|
||||
<div class="template-item">{{ item.name }}
|
||||
<el-space>
|
||||
<el-icon><Edit @click="handleEdit(item)" /></el-icon>
|
||||
</el-space></div>
|
||||
|
||||
=======
|
||||
<el-tooltip effect="dark" :content="`${item.name}`" placement="bottom">
|
||||
<el-text class="2" truncated @click="handleNodeClick(item)">
|
||||
<div class="template-item">
|
||||
@@ -31,7 +18,6 @@
|
||||
<el-icon><Delete @click="handleDelete(item)" /></el-icon>
|
||||
</el-space>
|
||||
</div>
|
||||
>>>>>>> v1.3
|
||||
</el-text>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
@@ -41,19 +27,11 @@
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, defineEmits, unref } from 'vue';
|
||||
<<<<<<< HEAD
|
||||
import { getListByDefinitionId } from '../api';
|
||||
import { ElTree } from 'element-plus';
|
||||
import { ElMessageBox, ElMessage, ElLoading } from 'element-plus';
|
||||
import { patientInfo } from '../../store/patient.js';
|
||||
const emits = defineEmits(['templateClick','edit']);
|
||||
=======
|
||||
import { getListByDefinitionId, deleteTemplate } from '../api';
|
||||
import { ElTree } from 'element-plus';
|
||||
import { ElMessageBox, ElMessage, ElLoading } from 'element-plus';
|
||||
import { patientInfo } from '../../store/patient.js';
|
||||
const emits = defineEmits(['templateClick', 'edit']);
|
||||
>>>>>>> v1.3
|
||||
const props = defineProps({
|
||||
definitionId: {
|
||||
type: String,
|
||||
@@ -73,17 +51,6 @@ const queryParams = ref({
|
||||
isPage: 0,
|
||||
});
|
||||
const templateData = ref([]);
|
||||
<<<<<<< HEAD
|
||||
const queryList = async () => {
|
||||
try {
|
||||
if ( unref(definitionId)&&unref(definitionId) !== '') {
|
||||
const res = await getListByDefinitionId(unref(definitionId));
|
||||
templateData.value = res.data || [];
|
||||
}else{
|
||||
templateData.value = [];
|
||||
}
|
||||
|
||||
=======
|
||||
// 删除模板
|
||||
const handleDelete = async (item) => {
|
||||
try {
|
||||
@@ -102,7 +69,6 @@ const queryList = async () => {
|
||||
} else {
|
||||
templateData.value = [];
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
} catch (error) {
|
||||
ElMessage.error('获取模板失败');
|
||||
templateData.value = [];
|
||||
@@ -120,38 +86,6 @@ defineExpose({ queryList });
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.emr-template-container {
|
||||
<<<<<<< HEAD
|
||||
height: 100%;
|
||||
// padding: 8px;
|
||||
|
||||
.emr-template-scrollbar-container{
|
||||
padding: 8px;
|
||||
height: 100%;
|
||||
.scrollbar-item {
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
background: var(--el-color-primary-light-9);
|
||||
& + .scrollbar-item {
|
||||
margin-top: 8px;
|
||||
}
|
||||
.el-text{
|
||||
width: calc(100% - 0px);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0 8px;
|
||||
}
|
||||
.template-item{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
=======
|
||||
height: 100%;
|
||||
// padding: 8px;
|
||||
|
||||
@@ -181,5 +115,4 @@ defineExpose({ queryList });
|
||||
}
|
||||
}
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
</style>
|
||||
|
||||
@@ -1,11 +1,3 @@
|
||||
<<<<<<< HEAD
|
||||
<!--
|
||||
* @Author: sjjh
|
||||
* @Date: 2025-09-18 15:41:10
|
||||
* @Description: 门诊病历组件
|
||||
-->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<template>
|
||||
<div class="emr-use-container">
|
||||
<div
|
||||
@@ -51,26 +43,13 @@
|
||||
<!-- <el-button type="primary" @click="newEmr">新建</el-button> -->
|
||||
<el-button type="primary" @click="saveAsModel">存为模版</el-button>
|
||||
<el-button @click="refresh">刷新</el-button>
|
||||
<<<<<<< HEAD
|
||||
<el-button type="primary" @click="save">保存</el-button>
|
||||
<!-- <el-button type="primary" @click="print">打印</el-button> -->
|
||||
=======
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
<el-button type="primary" @click="save">保存</el-button>
|
||||
<el-button type="primary" @click="print">打印</el-button>
|
||||
>>>>>>> v1.3
|
||||
</el-space>
|
||||
</div>
|
||||
<div class="operate-main">
|
||||
<el-scrollbar class="template-tree-scrollbar">
|
||||
<<<<<<< HEAD
|
||||
<component
|
||||
:is="currentComponent"
|
||||
ref="emrComponentRef"
|
||||
:patientInfo="props.patientInfo"
|
||||
@submitOk="handleSubmitOk"
|
||||
/>
|
||||
=======
|
||||
<div v-loading="loading" class="loading-container">
|
||||
<component
|
||||
:is="currentComponent"
|
||||
@@ -79,7 +58,6 @@
|
||||
@submitOk="handleSubmitOk"
|
||||
/>
|
||||
</div>
|
||||
>>>>>>> v1.3
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</div>
|
||||
@@ -92,10 +70,7 @@
|
||||
@historyClick="handleHistoryClick"
|
||||
ref="historyRef"
|
||||
v-model:definitionId="currentSelectTemplate.id"
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
:selectedRecordId="selectedHistoryRecordId"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="模版" name="model">
|
||||
@@ -119,20 +94,6 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
<<<<<<< HEAD
|
||||
import { getCurrentInstance, nextTick, onBeforeMount, onMounted, reactive, ref } from 'vue';
|
||||
import { ElMessageBox, ElMessage, ElLoading } from 'element-plus';
|
||||
import { getTreeList } from '@/views/basicmanage/caseTemplates/api';
|
||||
import { addRecord, addTemplate } from './api';
|
||||
import { patientInfo } from '../store/patient.js';
|
||||
import dayjs from 'dayjs';
|
||||
// 打印工具
|
||||
// import { simplePrint, PRINT_TEMPLATE } from '@/utils/printUtils.js';
|
||||
const { proxy } = getCurrentInstance();
|
||||
const emits = defineEmits(['emrSaved']);
|
||||
const props = defineProps({
|
||||
/** 患者信息 doctorStation 传递信息*/
|
||||
=======
|
||||
import { nextTick, onMounted, ref, watch } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import { getTreeList } from '@/views/basicmanage/caseTemplates/api';
|
||||
@@ -146,7 +107,6 @@ const { proxy } = getCurrentInstance();
|
||||
const emits = defineEmits([]);
|
||||
const props = defineProps({
|
||||
/** 患者信息 doctorStation 传递信息*/
|
||||
>>>>>>> v1.3
|
||||
patientInfo: {
|
||||
type: Object,
|
||||
required: true,
|
||||
@@ -169,10 +129,7 @@ const queryParams = ref({
|
||||
useRanges: [1, 2], // 0 暂不使用 1 全院 2 科室 3 个人
|
||||
organizationId: userStore.orgId,
|
||||
});
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
const loading = ref(false); // 数据加载状态
|
||||
>>>>>>> v1.3
|
||||
|
||||
const currentSelectTemplate = ref({
|
||||
id: '',
|
||||
@@ -182,10 +139,7 @@ const emrComponentRef = ref(null);
|
||||
const quicklyactiveName = ref('history');
|
||||
const leftShow = ref(true);
|
||||
const rightShow = ref(true);
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
const templateTree = ref(null);
|
||||
>>>>>>> v1.3
|
||||
|
||||
// 树配置(模板树)
|
||||
const defaultProps = {
|
||||
@@ -198,12 +152,9 @@ const queryTemplateTree = async () => {
|
||||
try {
|
||||
const res = await getTreeList(queryParams.value);
|
||||
templateData.value = res.data || [];
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
// 组件挂载后,患者信息变化时会自动调用selectDefaultTemplate
|
||||
// 这里不再重复调用,避免重复操作
|
||||
>>>>>>> v1.3
|
||||
} catch (error) {
|
||||
// ElMessage.error('获取模板树失败');
|
||||
templateData.value = [];
|
||||
@@ -223,9 +174,6 @@ const handleNodeClick = (data, node) => {
|
||||
};
|
||||
// currentComponent.value = null;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
historyRef.value?.queryList();
|
||||
=======
|
||||
|
||||
// 确保组件状态更新后再查询历史记录
|
||||
nextTick(() => {
|
||||
@@ -240,7 +188,6 @@ const handleNodeClick = (data, node) => {
|
||||
}, 100);
|
||||
});
|
||||
|
||||
>>>>>>> v1.3
|
||||
templateRef.value?.queryList();
|
||||
};
|
||||
|
||||
@@ -300,14 +247,6 @@ const handleSubmitOk = async (data) => {
|
||||
editForm.value.encounterId = patientInfo.value.encounterId;
|
||||
editForm.value.patientId = patientInfo.value.patientId;
|
||||
editForm.value.recordTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
|
||||
<<<<<<< HEAD
|
||||
await addRecord(editForm.value);
|
||||
ElMessage.success('病历保存成功');
|
||||
historyRef.value?.queryList();
|
||||
templateRef.value?.queryList();
|
||||
// 通知父组件病历保存成功
|
||||
emits('emrSaved', true);
|
||||
=======
|
||||
// 提交病历
|
||||
await saveOrUpdateRecord(editForm.value);
|
||||
ElMessage.success('保存成功');
|
||||
@@ -320,18 +259,12 @@ const handleSubmitOk = async (data) => {
|
||||
setTimeout(() => {
|
||||
loadLatestMedicalRecord();
|
||||
}, 100);
|
||||
>>>>>>> v1.3
|
||||
} catch (error) {
|
||||
ElMessage.error('提交失败');
|
||||
console.log(error);
|
||||
}
|
||||
} else if (currentOperate.value === 'addTemplate') {
|
||||
<<<<<<< HEAD
|
||||
// 新增或者编辑模板
|
||||
// editTemplateForm.value.id=
|
||||
=======
|
||||
// 新增或修改模板
|
||||
>>>>>>> v1.3
|
||||
editTemplateForm.value.name =
|
||||
currentSelectTemplate.value.name + dayjs().format('YYYY/MM/DD HH:mm');
|
||||
editTemplateForm.value.contextJson = JSON.stringify(data);
|
||||
@@ -346,26 +279,12 @@ const refresh = () => {
|
||||
templateRef.value?.queryList();
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
const deleteEmr = async () => {
|
||||
try {
|
||||
// 这里应该添加实际的删除逻辑
|
||||
ElMessage.success('删除成功!');
|
||||
} catch (error) {
|
||||
ElMessage.error('删除失败');
|
||||
}
|
||||
};
|
||||
|
||||
const save = async () => {
|
||||
try {
|
||||
=======
|
||||
const save = async () => {
|
||||
try {
|
||||
if (editForm.value && editForm.value.printCount && editForm.value.printCount > 0) {
|
||||
ElMessage.warning('该病历已打印,不允许修改');
|
||||
return;
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
currentOperate.value = 'add';
|
||||
await emrComponentRef.value?.submit();
|
||||
} catch (error) {
|
||||
@@ -373,8 +292,6 @@ const save = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// 重置表单数据
|
||||
const resetForm = async () => {
|
||||
try {
|
||||
@@ -419,7 +336,6 @@ const resetForm = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
>>>>>>> v1.3
|
||||
const historyRef = ref(null);
|
||||
const handleHistoryClick = (data) => {
|
||||
newEmr();
|
||||
@@ -428,8 +344,6 @@ const handleHistoryClick = (data) => {
|
||||
emrComponentRef.value?.setFormData(JSON.parse(editForm.value.contentJson));
|
||||
});
|
||||
};
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
// 默认选中门诊病历模板
|
||||
const selectOutpatientMedicalRecordTemplate = async () => {
|
||||
@@ -532,17 +446,13 @@ const loadLatestMedicalRecord = async () => {
|
||||
loading.value = false;
|
||||
}
|
||||
};
|
||||
>>>>>>> v1.3
|
||||
const templateRef = ref(null);
|
||||
|
||||
const handleTemplateClick = (data) => {
|
||||
newEmr();
|
||||
editForm.value = data;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
editForm.value.id = '';
|
||||
editForm.value.recordTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
|
||||
>>>>>>> v1.3
|
||||
nextTick(() => {
|
||||
emrComponentRef.value?.setFormData(JSON.parse(editForm.value.contextJson));
|
||||
});
|
||||
@@ -555,12 +465,6 @@ const templateEdit = (data) => {
|
||||
const templateEditVisible = ref(false);
|
||||
// const templateEditSubmitOk = () => {};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 打印方法实现
|
||||
const print = async () => {
|
||||
try {
|
||||
// 检查是否有选中的病历模板
|
||||
=======
|
||||
// 定义病历模板类型与打印模板的映射关系
|
||||
const templateToPrintTemplateMap = {
|
||||
// 手术记录相关模板
|
||||
@@ -593,46 +497,19 @@ const getPrintTemplateByTemplateName = (templateName) => {
|
||||
// 打印
|
||||
const print = async () => {
|
||||
try {
|
||||
>>>>>>> v1.3
|
||||
if (!currentSelectTemplate.value || !currentSelectTemplate.value.id) {
|
||||
ElMessage.warning('请先选择病历模板');
|
||||
return;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// 检查是否已保存
|
||||
if (!editForm.value.id || editForm.value.id === '') {
|
||||
ElMessage.warning('请先保存病历后再进行打印');
|
||||
return;
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
|
||||
// 获取当前病历组件的表单数据
|
||||
const formData = emrComponentRef.value?.formData || {};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 准备打印数据(不依赖子组件的getPrintData方法)
|
||||
// const printData = {
|
||||
// // 使用当前选中的模板信息
|
||||
// templateInfo: currentSelectTemplate.value,
|
||||
// // 添加患者信息
|
||||
// patientInfo: props.patientInfo,
|
||||
// // 添加打印时间
|
||||
// printTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
||||
// // 添加基本病历信息
|
||||
// emrInfo: {
|
||||
// documentName: currentSelectTemplate.value.name || '住院病历',
|
||||
// documentId: currentSelectTemplate.value.id || '',
|
||||
// encounterId: props.patientInfo.encounterId || '',
|
||||
// patientId: props.patientInfo.patientId || '',
|
||||
// recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
||||
// },
|
||||
// // 添加病历表单数据(包含红框内的所有字段)
|
||||
// formData: formData,
|
||||
// doctorName: userStore.nickName,
|
||||
// };
|
||||
|
||||
=======
|
||||
// 获取诊断数据
|
||||
let diagnosisList = [];
|
||||
let diagnosisText = '';
|
||||
@@ -659,7 +536,6 @@ const print = async () => {
|
||||
const selectedPrintTemplate = getPrintTemplateByTemplateName(templateName);
|
||||
|
||||
// 打印数据
|
||||
>>>>>>> v1.3
|
||||
const printData = {
|
||||
// 模板信息
|
||||
templateName: currentSelectTemplate.value.name || '住院病历',
|
||||
@@ -683,30 +559,16 @@ const print = async () => {
|
||||
department: props.patientInfo.department || '',
|
||||
attendingDoctor: props.patientInfo.attendingDoctor || '',
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// 诊断信息
|
||||
diagnosisList: JSON.stringify(diagnosisList),
|
||||
diagnosisText: diagnosisText,
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 病历信息
|
||||
documentName: currentSelectTemplate.value.name || '住院病历',
|
||||
documentId: currentSelectTemplate.value.id || '',
|
||||
recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
||||
printTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 表单数据 - 需要将嵌套结构展开
|
||||
...flattenObject(formData),
|
||||
};
|
||||
|
||||
// 执行打印
|
||||
await simplePrint(PRINT_TEMPLATE.OUTPATIENT_MEDICAL_RECORD, printData);
|
||||
ElMessage.success('打印成功');
|
||||
} catch (error) {
|
||||
console.error('打印失败:', error);
|
||||
=======
|
||||
//病历号
|
||||
busNo: props.patientInfo.busNo || '',
|
||||
//费用类型
|
||||
@@ -733,7 +595,6 @@ const print = async () => {
|
||||
|
||||
ElMessage.success('打印成功');
|
||||
} catch (error) {
|
||||
>>>>>>> v1.3
|
||||
ElMessage.error('打印失败: ' + (error.message || '未知错误'));
|
||||
}
|
||||
};
|
||||
@@ -767,17 +628,6 @@ const templateEditSubmitOk = () => {
|
||||
historyRef.value?.queryList();
|
||||
templateRef.value?.queryList();
|
||||
};
|
||||
<<<<<<< HEAD
|
||||
// onBeforeMount(() => {});
|
||||
// 刚进页面默认显示门诊病历
|
||||
const selectDefaultTemplate = () => {
|
||||
nextTick(() => {
|
||||
// 查找门诊病历(1.0.0)节点
|
||||
const findTemplate = (nodes) => {
|
||||
for (const node of nodes) {
|
||||
if (node.children && node.children.length > 0) {
|
||||
const found = findTemplate(node.children);
|
||||
=======
|
||||
|
||||
// 选择默认模板 - 获取门诊病历分类下的第一个模板
|
||||
const selectDefaultTemplate = () => {
|
||||
@@ -805,41 +655,14 @@ const selectDefaultTemplate = () => {
|
||||
// 递归查找子节点
|
||||
if (node.children && node.children.length > 0) {
|
||||
const found = findOutpatientRecordCategoryAndFirstTemplate(node.children);
|
||||
>>>>>>> v1.3
|
||||
if (found) {
|
||||
return found;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
// 根据ID查找门诊病历模板
|
||||
if (node.document && node.document.id === '1963474077201162242') {
|
||||
return node;
|
||||
}
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
const defaultTemplate = findTemplate(templateData.value);
|
||||
if (defaultTemplate) {
|
||||
// 模拟点击节点
|
||||
const mockNode = {
|
||||
isLeaf: true,
|
||||
};
|
||||
handleNodeClick(defaultTemplate, mockNode);
|
||||
}
|
||||
});
|
||||
};
|
||||
onMounted(async () => {
|
||||
console.log('hospitalizationEmr mounted', userStore);
|
||||
await queryTemplateTree();
|
||||
selectDefaultTemplate();
|
||||
});
|
||||
|
||||
defineExpose({ state });
|
||||
=======
|
||||
const defaultTemplate = findOutpatientRecordCategoryAndFirstTemplate(templateData.value);
|
||||
if (defaultTemplate) {
|
||||
nextTick(() => {
|
||||
@@ -899,7 +722,6 @@ onMounted(async () => {
|
||||
});
|
||||
|
||||
// defineExpose({ state }); // state未使用
|
||||
>>>>>>> v1.3
|
||||
|
||||
const disNode = () => {
|
||||
leftShow.value = !leftShow.value;
|
||||
@@ -1013,14 +835,6 @@ const disNode_R = () => {
|
||||
}
|
||||
|
||||
.operate-main {
|
||||
<<<<<<< HEAD
|
||||
height: calc(100vh - 150px);
|
||||
flex: auto;
|
||||
}
|
||||
.operate-main .template-tree-scrollbar {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
=======
|
||||
flex: 1;
|
||||
min-height: 0; /* 允许flex子项高度收缩 */
|
||||
display: flex;
|
||||
@@ -1044,7 +858,6 @@ const disNode_R = () => {
|
||||
.operate-main .template-tree-scrollbar > * {
|
||||
max-width: 100%;
|
||||
box-sizing: border-box;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1066,13 +879,10 @@ const disNode_R = () => {
|
||||
transition-duration: 300ms;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
/* 加载状态样式 */
|
||||
.loading-container {
|
||||
min-height: 400px;
|
||||
position: relative;
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
</style>
|
||||
|
||||
@@ -19,11 +19,7 @@
|
||||
<span>{{ item.prescriptionNo }}</span>
|
||||
</div>
|
||||
<div style="text-align: center">
|
||||
<<<<<<< HEAD
|
||||
<h2>长春大学医院</h2>
|
||||
=======
|
||||
<h2>长春市朝阳区中医院医院</h2>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
<div style="text-align: center">
|
||||
<h3>处方单</h3>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -59,17 +59,6 @@
|
||||
<el-table-column label="数量" align="center" prop="quantity" />
|
||||
<el-table-column label="单位" align="center" prop="unitCode_dictText" />
|
||||
<el-table-column label="收款金额" align="center" prop="totalPrice" />
|
||||
<<<<<<< HEAD
|
||||
<el-table-column label="发放状态" align="center">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.dispenseStatus != 0" type="danger">
|
||||
{{ scope.row.dispenseStatus_enumText }}
|
||||
</el-tag>
|
||||
<el-tag v-else type="default">{{ scope.row.serviceStatus_enumText }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-table-column label="支付状态" align="center" prop="refundStatus_enumText">
|
||||
<template #default="scope">
|
||||
<el-tag
|
||||
|
||||
@@ -3,11 +3,7 @@
|
||||
<div
|
||||
class="prescription-section"
|
||||
v-for="(prescription, pIndex) in tcmPrescriptionList"
|
||||
<<<<<<< HEAD
|
||||
:key="pIndex"
|
||||
=======
|
||||
:key="prescription.id"
|
||||
>>>>>>> v1.3
|
||||
>
|
||||
<div class="section-header">
|
||||
<div class="title first-prescription">
|
||||
@@ -22,20 +18,6 @@
|
||||
<plus />
|
||||
</el-icon>
|
||||
<el-icon
|
||||
<<<<<<< HEAD
|
||||
class="delete-icon"
|
||||
title="删除处方单"
|
||||
@click="handleDeletePrescriptionClick(pIndex)"
|
||||
:class="{ 'disabled-icon': isPrescriptionDeletable(pIndex) !== true }"
|
||||
style="font-size: 20px !important; margin-left: 10px; color: #f56c6c"
|
||||
>
|
||||
<minus />
|
||||
</el-icon>
|
||||
</div>
|
||||
<div class="summary">
|
||||
<span class="summary-item">药品数: {{ getPrescriptionMedicineCount(pIndex) }}种</span>
|
||||
<span class="summary-item">总价: ¥ {{ getPrescriptionTotalPrice(pIndex) }}</span>
|
||||
=======
|
||||
class="add-icon"
|
||||
title="删除处方"
|
||||
@click="deletePrescription(prescription)"
|
||||
@@ -50,7 +32,6 @@
|
||||
{{ prescription.prescriptionList ? prescription.prescriptionList.length : '0' }}种
|
||||
</span>
|
||||
<span class="summary-item">总价: ¥ {{ calculatePrescriptionTotal(pIndex) }}</span>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@@ -93,15 +74,8 @@
|
||||
:value="item.accountId"
|
||||
/>
|
||||
</el-select>
|
||||
<<<<<<< HEAD
|
||||
<span class="doctor-station"> 配方名称: </span>
|
||||
<el-input v-model="formulaName" placeholder=" " style="width: 100px" />
|
||||
<span class="doctor-station"> 用药途径: </span>
|
||||
<el-select v-model="methodCode" placeholder="费用性质" style="width: 120px">
|
||||
=======
|
||||
<span class="doctor-station"> 用法: </span>
|
||||
<el-select v-model="prescription.methodCode" placeholder="用法" style="width: 120px">
|
||||
>>>>>>> v1.3
|
||||
<el-option
|
||||
v-for="dict in method_code"
|
||||
:key="dict.value"
|
||||
@@ -271,23 +245,6 @@
|
||||
/>
|
||||
</template>
|
||||
</el-select>
|
||||
<<<<<<< HEAD
|
||||
<span class="doctor-station"> 脚注: </span>
|
||||
<el-select
|
||||
v-model="footNote"
|
||||
filterable
|
||||
allow-create
|
||||
default-first-option
|
||||
style="width: 120px; margin-right: 20px"
|
||||
placeholder="">
|
||||
<el-option
|
||||
v-for="dict in hjerbal_footnotes"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
=======
|
||||
<!-- 单次剂量 -->
|
||||
<el-form-item
|
||||
label="特殊煎法:"
|
||||
@@ -305,7 +262,6 @@
|
||||
</template>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
<span class="total-amount">
|
||||
总金额:{{
|
||||
@@ -474,13 +430,9 @@ import { calculateQuantityByDays, formatNumber } from '@/utils/his';
|
||||
import Decimal from 'decimal.js';
|
||||
import tcmdiagnosisDialog from './tcmdiagnosisDialog';
|
||||
import { Delete, Minus } from '@element-plus/icons-vue';
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
import { ElMessage } from 'element-plus';
|
||||
import printUtils, { PRINT_TEMPLATE } from '@/utils/printUtils';
|
||||
import { advicePrint } from '@/api/public';
|
||||
>>>>>>> v1.3
|
||||
const emit = defineEmits(['selectDiagnosis']);
|
||||
const total = ref(0);
|
||||
const queryParams = ref({});
|
||||
@@ -494,10 +446,6 @@ const encounterId = ref('');
|
||||
const accountId = ref('');
|
||||
const encounterDiagnosisId = ref('');
|
||||
|
||||
<<<<<<< HEAD
|
||||
const tcmPrescriptionList = ref([
|
||||
{
|
||||
=======
|
||||
let prescriptionIdCounter = 1;
|
||||
const generatePrescriptionId = () => {
|
||||
return `prescription_${Date.now()}_${prescriptionIdCounter++}`;
|
||||
@@ -506,7 +454,6 @@ const generatePrescriptionId = () => {
|
||||
const tcmPrescriptionList = ref([
|
||||
{
|
||||
id: generatePrescriptionId(),
|
||||
>>>>>>> v1.3
|
||||
prescriptionList: [],
|
||||
conditionDefinitionId: '',
|
||||
accountId: '',
|
||||
@@ -526,35 +473,9 @@ const tcmPrescriptionList = ref([
|
||||
const unitCodeList = ref([]);
|
||||
const adviceTableRef = ref([]);
|
||||
const organization = ref([]);
|
||||
<<<<<<< HEAD
|
||||
const conditionDefinitionId = ref('');
|
||||
const diagnosisName = ref('');
|
||||
const diagnosisInfo = ref({});
|
||||
const rateCode = ref('');
|
||||
const footNote = ref('');
|
||||
const decoctionMethod = ref('');
|
||||
const chineseHerbsDoseQuantity = ref('');
|
||||
const dispensePerDuration = ref('');
|
||||
const formulaName = ref('');
|
||||
const sufferingFlag = ref(false);
|
||||
const methodCode = ref('');
|
||||
const loading = ref(false);
|
||||
const rowRules = ref({
|
||||
conditionDefinitionId: [{ required: true, message: '请选择诊断', trigger: 'change' }],
|
||||
minUnitQuantity: [{ required: true, message: '请输入单次剂量', trigger: 'change' }],
|
||||
doseQuantity: [{ required: true, message: '请输入单次剂量单位', trigger: 'change' }],
|
||||
quantity: [{ required: true, message: '请输入数量', trigger: 'change' }],
|
||||
dispensePerDuration: [{ required: true, message: '请输入用药天数', trigger: 'change' }],
|
||||
formulaName: [{ required: true, message: '请输入配方名称', trigger: 'change' }],
|
||||
executeNum: [{ required: true, message: '请输入执行次数', trigger: 'change' }],
|
||||
rateCode: [{ required: true, message: '请选择频次', trigger: 'change' }],
|
||||
methodCode: [{ required: true, message: '请选择给药途径', trigger: 'change' }],
|
||||
orgId: [{ required: true, message: '请选择执行科室', trigger: 'change' }],
|
||||
=======
|
||||
const loading = ref(false);
|
||||
const rowRules = ref({
|
||||
minUnitQuantity: [{ required: true, message: '请输入单次剂量', trigger: 'change' }],
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
const unitMap = ref({
|
||||
dose: 'dose',
|
||||
@@ -584,39 +505,6 @@ const inputRefs = ref({}); // 存储输入框实例
|
||||
const requiredProps = ref([]); // 存储必填项 prop 顺序
|
||||
const totalAmount = ref(0);
|
||||
const tcmDianosis = ref();
|
||||
<<<<<<< HEAD
|
||||
const { method_code, unit_code, rate_code, method_of_decocting_medicine,hjerbal_footnotes,distribution_category_code } = proxy.useDict(
|
||||
'method_code',
|
||||
'unit_code',
|
||||
'rate_code',
|
||||
'method_of_decocting_medicine',
|
||||
'hjerbal_footnotes',
|
||||
'distribution_category_code'
|
||||
);
|
||||
|
||||
const adviceTypeList = ref([
|
||||
{
|
||||
label: '西药',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
label: '中成药',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
label: '耗材',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
label: '诊疗',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
label: '全部',
|
||||
value: '',
|
||||
},
|
||||
]);
|
||||
=======
|
||||
const { method_code, unit_code, rate_code, distribution_category_code, dosage_instruction } =
|
||||
proxy.useDict(
|
||||
'method_code',
|
||||
@@ -626,7 +514,6 @@ const { method_code, unit_code, rate_code, distribution_category_code, dosage_in
|
||||
'dosage_instruction'
|
||||
);
|
||||
|
||||
>>>>>>> v1.3
|
||||
onMounted(() => {
|
||||
document.addEventListener('keydown', escKeyListener);
|
||||
});
|
||||
@@ -652,64 +539,6 @@ function getList() {
|
||||
});
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
function getListInfo(addNewRow) {
|
||||
// 确保isAdding变量存在
|
||||
if (typeof isAdding !== 'undefined') {
|
||||
isAdding.value = false;
|
||||
}
|
||||
|
||||
// 确保有患者信息
|
||||
if (!props.patientInfo || !props.patientInfo.encounterId) {
|
||||
console.error('患者信息不完整');
|
||||
return;
|
||||
}
|
||||
|
||||
getTcmAdviceList({ encounterId: props.patientInfo.encounterId }).then((res) => {
|
||||
if (res && res.data && Array.isArray(res.data)) {
|
||||
// 处理返回的数据
|
||||
if (res.data.length > 0) {
|
||||
// 如果有数据,清空当前列表并重新添加
|
||||
tcmPrescriptionList.value = [];
|
||||
|
||||
res.data.forEach((item) => {
|
||||
try {
|
||||
// 解析contentJson获取完整的医嘱数据
|
||||
const contentData = item.contentJson ? JSON.parse(item.contentJson) : {};
|
||||
|
||||
// 创建一个新的处方对象
|
||||
const newPrescription = {
|
||||
...item,
|
||||
...contentData,
|
||||
// 确保关键显示字段存在
|
||||
adviceName: contentData.adviceName || item.adviceName || '',
|
||||
quantity: contentData.quantity || item.quantity || '',
|
||||
totalPrice: contentData.totalPrice || item.totalPrice || '',
|
||||
diagnosisName: contentData.diagnosisName || item.diagnosisName || '',
|
||||
positionName: contentData.positionName || item.positionName || '',
|
||||
doseUnitCode_dictText: contentData.doseUnitCode_dictText || item.doseUnitCode_dictText || '',
|
||||
chineseHerbsDoseQuantity: contentData.chineseHerbsDoseQuantity || item.chineseHerbsDoseQuantity || '',
|
||||
prescriptionList: [contentData]
|
||||
};
|
||||
|
||||
// 添加到处方列表
|
||||
tcmPrescriptionList.value.push(newPrescription);
|
||||
} catch (error) {
|
||||
console.error('解析医嘱数据失败:', error, '数据项:', item);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 重新计算总金额
|
||||
handleTotalAmount();
|
||||
|
||||
if (props.activeTab == 'prescription' && addNewRow) {
|
||||
handleAddMedicine();
|
||||
}
|
||||
} else {
|
||||
console.error('获取医嘱列表失败或数据格式错误:', res);
|
||||
// 保持当前列表不变,不要清空
|
||||
=======
|
||||
async function getListInfo(addNewRow) {
|
||||
// 重置所有处方的添加状态
|
||||
tcmPrescriptionList.value.forEach((prescription) => {
|
||||
@@ -785,28 +614,14 @@ async function getListInfo(addNewRow) {
|
||||
tcmPrescriptionList.value.accountId = contractList.value[0].accountId;
|
||||
if (props.activeTab == 'prescription' && addNewRow) {
|
||||
handleAddMedicine(0);
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error('获取医嘱列表异常:', error);
|
||||
// 保持当前列表不变,不要清空
|
||||
});
|
||||
<<<<<<< HEAD
|
||||
|
||||
tcmDiagnosisList.value = getFromDiagnosis(props.patientInfo.encounterId);
|
||||
|
||||
getContract({ encounterId: props.patientInfo.encounterId }).then((res) => {
|
||||
contractList.value = res?.data || [];
|
||||
}).catch(error => {
|
||||
console.error('获取合同信息失败:', error);
|
||||
});
|
||||
|
||||
accountId.value = props.patientInfo.accountId || '';
|
||||
=======
|
||||
|
||||
tcmDiagnosisList.value = getFromDiagnosis(props.patientInfo.encounterId);
|
||||
accountId.value = props.patientInfo.accountId;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
function getDiagnosisInfo() {
|
||||
@@ -822,11 +637,7 @@ function getDiagnosisInfo() {
|
||||
});
|
||||
});
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
// 默认选择第一个诊断
|
||||
=======
|
||||
// 默认选择第一个诊断
|
||||
>>>>>>> v1.3
|
||||
if (diagnosisList.value.length > 0) {
|
||||
const firstDiagnosis = diagnosisList.value[0];
|
||||
tcmPrescriptionList.value.forEach((prescription) => {
|
||||
@@ -1156,18 +967,8 @@ function handleDelete(pIndex) {
|
||||
prescription.expandOrder = [];
|
||||
prescription.isAdding = false;
|
||||
adviceQueryParams.value.adviceType = undefined;
|
||||
<<<<<<< HEAD
|
||||
// 删除行会出现组号混乱的情况,所以这里重新更新标记
|
||||
const allPrescriptions = tcmPrescriptionList.value.flatMap(p => p.prescriptionList);
|
||||
groupMarkers.value = getGroupMarkers(allPrescriptions);
|
||||
}
|
||||
|
||||
|
||||
|
||||
=======
|
||||
}
|
||||
|
||||
>>>>>>> v1.3
|
||||
function handleNumberClick(item, index, pIndex) {
|
||||
const prescription = tcmPrescriptionList.value[pIndex];
|
||||
prescription.prescriptionList[index].unitPrice = item.price;
|
||||
@@ -1247,117 +1048,6 @@ function handleSave(pIndex) {
|
||||
}
|
||||
|
||||
// 单行处方保存
|
||||
<<<<<<< HEAD
|
||||
function handleSaveSign(row, index) {
|
||||
try {
|
||||
// 直接执行保存逻辑,不再进行表单验证
|
||||
row.isEdit = false;
|
||||
isAdding.value = false;
|
||||
expandOrder.value = [];
|
||||
|
||||
// 确保必要的字段有值
|
||||
if (props.patientInfo) {
|
||||
row.patientId = props.patientInfo.patientId;
|
||||
row.encounterId = props.patientInfo.encounterId;
|
||||
}
|
||||
|
||||
row.accountId = accountId.value || '';
|
||||
row.quantity = row.minUnitQuantity || 1; // 确保数量有值
|
||||
row.conditionId = conditionId.value || '';
|
||||
row.conditionDefinitionId = conditionDefinitionId.value || '';
|
||||
row.encounterDiagnosisId = encounterDiagnosisId.value || '';
|
||||
row.diagnosisName = diagnosisName.value || '';
|
||||
|
||||
// 计算单价
|
||||
if (row.unitCodeList && row.unitCode) {
|
||||
const unitItem = row.unitCodeList.find((item) => item.value === row.unitCode);
|
||||
if (unitItem?.type !== 'unit' && row.unitPrice) {
|
||||
row.unitPrice = new Decimal(row.unitPrice).div(row.partPercent || 1).toFixed(2);
|
||||
}
|
||||
}
|
||||
|
||||
// 计算总金额
|
||||
if (row.minUnitQuantity && row.unitPrice) {
|
||||
row.totalPrice = new Decimal(row.minUnitQuantity).mul(row.unitPrice).toFixed(2);
|
||||
}
|
||||
|
||||
// 确保显示所需的字段都有值
|
||||
row.adviceName = row.adviceName || '未命名药品';
|
||||
row.positionName = row.positionName || '默认药房';
|
||||
|
||||
// 创建要保存的数据对象,避免循环引用
|
||||
const saveData = {
|
||||
...row,
|
||||
// 排除可能导致循环引用的复杂对象
|
||||
unitCodeList: undefined,
|
||||
stockList: undefined,
|
||||
contentJson: undefined
|
||||
};
|
||||
|
||||
// 序列化数据用于存储
|
||||
saveData.contentJson = JSON.stringify(saveData);
|
||||
|
||||
// 只保存当前行的数据,而不是整个列表
|
||||
savePrescription({ adviceSaveList: [saveData] }).then((res) => {
|
||||
if (res && res.code === 200) {
|
||||
proxy.$modal.msgSuccess('保存成功');
|
||||
// 此处错误调用getListInfo,导致医嘱信息被覆盖,从而不显示。
|
||||
// getListInfo(true);
|
||||
nextId.value = 1;
|
||||
} else {
|
||||
proxy.$modal.msgError('保存失败,请重试');
|
||||
console.error('保存失败响应:', res);
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error('保存处方失败:', error);
|
||||
proxy.$modal.msgError('保存失败,请检查网络或联系管理员');
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('处理保存时出错:', error);
|
||||
proxy.$modal.msgError('操作异常,请重试');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function handleSaveBatch() {
|
||||
// 收集所有需要保存的处方项目
|
||||
let saveList = [];
|
||||
|
||||
// 遍历所有处方
|
||||
for (const prescription of tcmPrescriptionList.value) {
|
||||
if (prescription.prescriptionList) {
|
||||
// 检查处方是否有必填的付数
|
||||
if (!prescription.chineseHerbsDoseQuantity || prescription.chineseHerbsDoseQuantity == 0) {
|
||||
proxy.$modal.msgWarning('请输入付数');
|
||||
return;
|
||||
}
|
||||
|
||||
// 收集该处方下需要保存的项目
|
||||
const itemsToSave = prescription.prescriptionList
|
||||
.filter((item) => item.statusEnum == 1)
|
||||
.map((item, index) => {
|
||||
return {
|
||||
...item,
|
||||
accountId: accountId.value,
|
||||
conditionId: prescription.conditionId,
|
||||
encounterDiagnosisId: prescription.encounterDiagnosisId,
|
||||
conditionDefinitionId: prescription.conditionDefinitionId,
|
||||
encounterId: props.patientInfo.encounterId,
|
||||
patientId: props.patientInfo.patientId,
|
||||
requestId: item.requestId,
|
||||
groupId: item.groupId ? item.groupId : timestamp.toString(),
|
||||
chineseHerbsDoseQuantity: prescription.chineseHerbsDoseQuantity,
|
||||
dbOpType: item.requestId ? '2' : '1',
|
||||
};
|
||||
});
|
||||
|
||||
// 将项目添加到保存列表
|
||||
saveList = saveList.concat(itemsToSave);
|
||||
}
|
||||
}
|
||||
|
||||
// 检查是否有可保存的项目
|
||||
=======
|
||||
function handleSaveSign(row, index, pIndex) {
|
||||
const prescription = tcmPrescriptionList.value[pIndex];
|
||||
const formRefName = 'formRef' + pIndex + '-' + index;
|
||||
@@ -1408,15 +1098,10 @@ function handleSaveBatch(pIndex) {
|
||||
dbOpType: item.requestId ? '2' : '1',
|
||||
};
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
if (saveList.length == 0) {
|
||||
proxy.$modal.msgWarning('当前没有可保存医嘱');
|
||||
return;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 保存处方
|
||||
=======
|
||||
if (
|
||||
prescription.chineseHerbsDoseQuantity == undefined ||
|
||||
prescription.chineseHerbsDoseQuantity == 0
|
||||
@@ -1424,22 +1109,11 @@ function handleSaveBatch(pIndex) {
|
||||
proxy.$modal.msgWarning('请输入付数');
|
||||
return;
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
saveTcmAdvice({ adviceSaveList: saveList }).then((res) => {
|
||||
if (res.code === 200) {
|
||||
proxy.$modal.msgSuccess('保存成功');
|
||||
getListInfo(true);
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 重置所有处方的nextId
|
||||
tcmPrescriptionList.value.forEach(prescription => {
|
||||
if (prescription.nextId) {
|
||||
prescription.nextId = 1;
|
||||
}
|
||||
});
|
||||
=======
|
||||
prescription.nextId = 1;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1607,21 +1281,6 @@ function validateGroups(saveList) {
|
||||
return true;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
=======
|
||||
async function handlePrint(pIndex) {
|
||||
const prescription = tcmPrescriptionList.value[pIndex];
|
||||
const selectedRows = prescription.prescriptionList.filter((item) => item.check);
|
||||
@@ -1683,7 +1342,6 @@ async function handlePrint(pIndex) {
|
||||
ElMessage.error('中药处方打印失败: ' + error.message);
|
||||
}
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
defineExpose({ getListInfo, getDiagnosisInfo });
|
||||
</script>
|
||||
|
||||
@@ -1799,29 +1457,4 @@ defineExpose({ getListInfo, getDiagnosisInfo });
|
||||
.add-icon:hover {
|
||||
background-color: #ecf5ff;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
.delete-icon {
|
||||
cursor: pointer;
|
||||
border-radius: 50%;
|
||||
padding: 4px;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.delete-icon:hover {
|
||||
background-color: #fef0f0;
|
||||
}
|
||||
|
||||
.delete-icon.disabled-icon {
|
||||
cursor: not-allowed;
|
||||
color: #c0c4cc !important;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.delete-icon.disabled-icon:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -15,11 +15,6 @@
|
||||
<el-button icon="Search" @click="getPatientList" />
|
||||
</template>
|
||||
</el-input>
|
||||
<<<<<<< HEAD
|
||||
<el-date-picker v-model="registerTime" @change="handleTimeChange" type="daterange"
|
||||
style="width: 100%; margin-bottom: 10px" :clearable="false" placeholder="挂号时间" format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD" />
|
||||
=======
|
||||
<el-date-picker
|
||||
v-model="registerTime"
|
||||
@change="handleTimeChange"
|
||||
@@ -30,7 +25,6 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
/>
|
||||
>>>>>>> v1.3
|
||||
<el-scrollbar height="700px">
|
||||
<div v-for="(item, index) in patientList" :class="item.active ? 'patient-card actived' : 'patient-card'"
|
||||
:key="item.id" @click="handleCardClick(item, index)">
|
||||
@@ -87,14 +81,6 @@
|
||||
{{
|
||||
Object.keys(patientInfo).length !== 0
|
||||
? patientInfo.patientName +
|
||||
<<<<<<< HEAD
|
||||
' / ' +
|
||||
patientInfo.age +
|
||||
' / ' +
|
||||
patientInfo.genderEnum_enumText +
|
||||
' / ' +
|
||||
patientInfo.contractName
|
||||
=======
|
||||
' / ' +
|
||||
patientInfo.age +
|
||||
' / ' +
|
||||
@@ -105,29 +91,16 @@
|
||||
patientInfo.phone +
|
||||
'/' +
|
||||
patientInfo.busNo
|
||||
>>>>>>> v1.3
|
||||
: '-'
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="挂号时间:" width="300">
|
||||
{{ Object.keys(patientInfo).length !== 0 ? formatDate(patientInfo.registerTime) : '-' }}
|
||||
</el-descriptions-item>
|
||||
<<<<<<< HEAD
|
||||
<el-descriptions-item label="医生:" width="150">{{
|
||||
userStore.name
|
||||
}}</el-descriptions-item>
|
||||
<el-descriptions-item label="" width="350">
|
||||
<!-- 初诊 / 复诊 按钮 -->
|
||||
<el-radio v-model="visitType" label="FIRST" :disabled="visitTypeDisabled">初诊</el-radio>
|
||||
<el-radio v-model="visitType" label="FOLLOW_UP" :disabled="visitTypeDisabled">复诊</el-radio>
|
||||
|
||||
<!-- 原有按钮 -->
|
||||
=======
|
||||
<el-descriptions-item label="医生:" width="250">
|
||||
{{ userStore.nickName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="" width="300">
|
||||
>>>>>>> v1.3
|
||||
<el-button type="primary" plain @click.stop="handleFinish(patientInfo.encounterId)">
|
||||
完诊
|
||||
</el-button>
|
||||
@@ -140,31 +113,11 @@
|
||||
<el-button type="primary" plain @click.stop="getEnPrescription(patientInfo.encounterId)">
|
||||
处方单
|
||||
</el-button>
|
||||
<<<<<<< HEAD
|
||||
<el-button type="primary" plain @click.stop="openDialog = true">
|
||||
办理住院
|
||||
</el-button>
|
||||
<el-button type="primary" plain @click.stop="handleCancelEncounter">
|
||||
取消接诊
|
||||
</el-button>
|
||||
=======
|
||||
<el-button type="primary" plain @click.stop="onHospitalization"> 办理住院 </el-button>
|
||||
>>>>>>> v1.3
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
<div style="padding: 10px">
|
||||
<<<<<<< HEAD
|
||||
<el-tabs type="card" style="width: 100%; height: 100%" v-loading="loading" v-model="activeTab"
|
||||
@tab-change="handleClick(activeTab)">
|
||||
<el-tab-pane label="病历" name="emr">
|
||||
<Emr :patientInfo="patientInfo" ref="emrRef" @save="
|
||||
(value) => {
|
||||
saveStatus = value;
|
||||
}
|
||||
" :visitType="visitType" :firstVisitDate="firstVisitDate" />
|
||||
</el-tab-pane>
|
||||
=======
|
||||
<el-tabs
|
||||
type="card"
|
||||
style="width: 100%; height: 100%"
|
||||
@@ -190,7 +143,6 @@
|
||||
"
|
||||
/>
|
||||
</el-tab-pane> -->
|
||||
>>>>>>> v1.3
|
||||
<el-tab-pane label="诊断" name="diagnosis">
|
||||
<Diagnosis :patientInfo="patientInfo" ref="diagnosisRef" @diagnosisSave="
|
||||
(value) => {
|
||||
@@ -199,16 +151,12 @@
|
||||
" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="医嘱" name="prescription">
|
||||
<<<<<<< HEAD
|
||||
<prescriptionlist :patientInfo="patientInfo" ref="prescriptionRef" :activeTab="activeTab" />
|
||||
=======
|
||||
<prescriptionlist
|
||||
:patientInfo="patientInfo"
|
||||
ref="prescriptionRef"
|
||||
:activeTab="activeTab"
|
||||
:outpatientEmrSaved="outpatientEmrSaved"
|
||||
/>
|
||||
>>>>>>> v1.3
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="中医" name="tcm">
|
||||
<tcmAdvice :patientInfo="patientInfo" ref="tcmRef" />
|
||||
@@ -226,14 +174,6 @@
|
||||
<el-drawer v-model="drawer" title="患者队列" direction="ltr" @open="handleOpen">
|
||||
<PatientList ref="patientDrawerRef" @toCurrent="handleReceive" />
|
||||
</el-drawer>
|
||||
<<<<<<< HEAD
|
||||
<RefundListDialog :open="openRefundListDialog" :encounterId="currentEncounterId"
|
||||
@close="openRefundListDialog = false" />
|
||||
<HospitalizationDialog :open="openDialog" :patientInfo="patientInfo" :encounterId="currentEncounterId"
|
||||
@close="openDialog = false" />
|
||||
<PrescriptionInfo :open="openPrescriptionDialog" :precriptionInfo="prescriptionInfo"
|
||||
@close="openPrescriptionDialog = false" />
|
||||
=======
|
||||
<RefundListDialog
|
||||
:open="openRefundListDialog"
|
||||
:encounterId="currentEncounterId"
|
||||
@@ -252,7 +192,6 @@
|
||||
:precriptionInfo="prescriptionInfo"
|
||||
@close="openPrescriptionDialog = false"
|
||||
/>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
@@ -263,13 +202,8 @@ import {
|
||||
leaveEncounter,
|
||||
completeEncounter,
|
||||
getEnPrescriptionInfo,
|
||||
<<<<<<< HEAD
|
||||
cancelEncounter,
|
||||
getEmrHistoryList
|
||||
=======
|
||||
isHospitalization,
|
||||
getEncounterDiagnosis,
|
||||
>>>>>>> v1.3
|
||||
} from './components/api.js';
|
||||
import prescriptionlist from './components/prescription/prescriptionlist.vue';
|
||||
import RefundListDialog from './components/prescription/refundListDialog.vue';
|
||||
@@ -482,67 +416,6 @@ function handleClick(tab) {
|
||||
|
||||
// 查看本次就诊处方单(从医嘱Tab页获取已开立的处方单信息)
|
||||
function getEnPrescription(encounterId) {
|
||||
<<<<<<< HEAD
|
||||
// 检查是否有选中的患者
|
||||
if (!patientInfo.value || !patientInfo.value.encounterId) {
|
||||
proxy.$modal.msgWarning('请先选择患者');
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查是否在医嘱Tab页,如果不在则切换到医嘱Tab页
|
||||
if (activeTab.value !== 'prescription') {
|
||||
activeTab.value = 'prescription';
|
||||
// 等待Tab切换完成后再获取数据
|
||||
nextTick(() => {
|
||||
// 确保数据已加载
|
||||
if (prescriptionRef.value) {
|
||||
// 先刷新数据,确保获取最新的处方单信息
|
||||
if (prescriptionRef.value.getListInfo) {
|
||||
prescriptionRef.value.getListInfo(false);
|
||||
}
|
||||
// 等待数据加载完成后再获取处方单信息
|
||||
setTimeout(() => {
|
||||
if (prescriptionRef.value && prescriptionRef.value.getSignedPrescriptionInfo) {
|
||||
const signedPrescriptions = prescriptionRef.value.getSignedPrescriptionInfo();
|
||||
if (signedPrescriptions && signedPrescriptions.length > 0) {
|
||||
prescriptionInfo.value = signedPrescriptions;
|
||||
openPrescriptionDialog.value = true;
|
||||
} else {
|
||||
proxy.$modal.msgWarning('当前患者没有已签发的处方单');
|
||||
}
|
||||
} else {
|
||||
proxy.$modal.msgWarning('无法获取处方单信息,请稍后重试');
|
||||
}
|
||||
}, 300);
|
||||
} else {
|
||||
proxy.$modal.msgWarning('无法获取处方单信息,请稍后重试');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// 如果已经在医嘱Tab页,先刷新数据再获取
|
||||
if (prescriptionRef.value) {
|
||||
if (prescriptionRef.value.getListInfo) {
|
||||
prescriptionRef.value.getListInfo(false);
|
||||
}
|
||||
// 等待数据加载完成后再获取处方单信息
|
||||
setTimeout(() => {
|
||||
if (prescriptionRef.value && prescriptionRef.value.getSignedPrescriptionInfo) {
|
||||
const signedPrescriptions = prescriptionRef.value.getSignedPrescriptionInfo();
|
||||
if (signedPrescriptions && signedPrescriptions.length > 0) {
|
||||
prescriptionInfo.value = signedPrescriptions;
|
||||
openPrescriptionDialog.value = true;
|
||||
} else {
|
||||
proxy.$modal.msgWarning('当前患者没有已签发的处方单');
|
||||
}
|
||||
} else {
|
||||
proxy.$modal.msgWarning('无法获取处方单信息,请稍后重试');
|
||||
}
|
||||
}, 300);
|
||||
} else {
|
||||
proxy.$modal.msgWarning('无法获取处方单信息,请稍后重试');
|
||||
}
|
||||
}
|
||||
=======
|
||||
getEnPrescriptionInfo({ encounterId: encounterId }).then((res) => {
|
||||
console.log('处方单 res', res);
|
||||
let dataArr = res.data.records || [];
|
||||
@@ -556,7 +429,6 @@ function getEnPrescription(encounterId) {
|
||||
prescriptionInfo.value = res.data.records;
|
||||
openPrescriptionDialog.value = true;
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
function handleRefund(encounterId) {
|
||||
@@ -575,35 +447,6 @@ function handleCardClick(item, index) {
|
||||
patient.active = patient.encounterId === item.encounterId;
|
||||
});
|
||||
patientInfo.value = item;
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 优先使用数据库中保存的初复诊值
|
||||
if (item.visitType) {
|
||||
visitType.value = item.visitType;
|
||||
// 已完诊的记录禁用修改
|
||||
visitTypeDisabled.value = item.statusEnum !== 2;
|
||||
// 如果有初诊日期也从数据库获取
|
||||
// if (item.firstVisitDate) {
|
||||
// firstVisitDate.value = item.firstVisitDate;
|
||||
// }
|
||||
} else {
|
||||
// 对于没有初复诊记录的患者,才使用原有的判断逻辑
|
||||
checkPatientHistory(item);
|
||||
}
|
||||
activeTab.value = 'emr';
|
||||
nextTick(() => {
|
||||
// 确保所有组件引用都已初始化
|
||||
if (prescriptionRef.value) prescriptionRef.value.getListInfo();
|
||||
if (tcmRef.value) tcmRef.value.getListInfo();
|
||||
if (diagnosisRef.value) diagnosisRef.value.getList();
|
||||
if (eprescriptionRef.value) eprescriptionRef.value.getList();
|
||||
if (emrRef.value) {
|
||||
emrRef.value.getDetail(item.encounterId);
|
||||
} else {
|
||||
console.error('emr组件未正确初始化');
|
||||
proxy.$modal.msgError('病历组件加载失败,请刷新页面重试');
|
||||
}
|
||||
=======
|
||||
// 将患者信息保存到store中,供hospitalizationEmr组件使用
|
||||
updatePatientInfo(item);
|
||||
activeTab.value = 'hospitalizationEmr';
|
||||
@@ -613,7 +456,6 @@ function handleCardClick(item, index) {
|
||||
diagnosisRef.value.getList();
|
||||
eprescriptionRef.value.getList();
|
||||
// emrRef.value.getDetail(item.encounterId);
|
||||
>>>>>>> v1.3
|
||||
setTimeout(() => {
|
||||
loading.value = false;
|
||||
}, 200);
|
||||
@@ -665,32 +507,6 @@ function handleEmrSaved(isSaved) {
|
||||
function openDrawer() {
|
||||
drawer.value = true;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
function handleCancelEncounter() {
|
||||
proxy.$modal.confirm('您确定要取消病人本次的就诊记录吗?', '提示信息', {
|
||||
confirmButtonText: '是(Y)',
|
||||
cancelButtonText: '否(N)',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
//调用取消接诊API,添加skipGlobalError配置跳过全局错误提示
|
||||
cancelEncounter(patientInfo.value.encounterId, { skipErrorMsg: true }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
proxy.$modal.msgSuccess('取消接诊成功');
|
||||
patientInfo.value = {};
|
||||
getPatientList();
|
||||
}
|
||||
}).catch((error) => {
|
||||
proxy.$modal.confirm('该病人本次就诊已经有业务产生,不能取消接诊!', '提示信息', {
|
||||
confirmButtonText: '是(Y)',
|
||||
type: 'warning'
|
||||
});
|
||||
});
|
||||
}).catch(() => {
|
||||
// 用户取消操作
|
||||
});
|
||||
}
|
||||
=======
|
||||
// 判断是否已经入院登记
|
||||
const onHospitalization = async () => {
|
||||
const diagnosisRes = await getEncounterDiagnosis(patientInfo.value.encounterId);
|
||||
@@ -720,7 +536,6 @@ const onHospitalization = async () => {
|
||||
});
|
||||
}
|
||||
};
|
||||
>>>>>>> v1.3
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@@ -15,11 +15,7 @@
|
||||
"top": 16.5,
|
||||
"height": 22.5,
|
||||
"width": 120,
|
||||
<<<<<<< HEAD
|
||||
"title": "长春大学医院",
|
||||
=======
|
||||
"title": "长春市朝阳区中医院医院",
|
||||
>>>>>>> v1.3
|
||||
"coordinateSync": false,
|
||||
"widthHeightSync": false,
|
||||
"fontFamily": "Microsoft YaHei",
|
||||
|
||||
@@ -1,25 +1,14 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 获取病区下拉选
|
||||
<<<<<<< HEAD
|
||||
export function getPractitionerWard (queryParams) {
|
||||
return request ({
|
||||
=======
|
||||
export function getPractitionerWard(queryParams) {
|
||||
return request({
|
||||
>>>>>>> v1.3
|
||||
url: '/app-common/practitioner-ward',
|
||||
method: 'get',
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 住院汇总发药单左侧
|
||||
export function getFromSummaryList (queryParams) {
|
||||
return request ({
|
||||
url: 'pharmacy-manage/summary-dispense-medicine/from_summary-list',
|
||||
=======
|
||||
// 住院汇总发药单左侧,汇总单列表
|
||||
export function getFromSummaryList(queryParams) {
|
||||
return request({
|
||||
@@ -42,20 +31,14 @@ export function getFromSummaryInit(queryParams) {
|
||||
export function getFromSummaryDetails(queryParams) {
|
||||
return request({
|
||||
url: 'nurse-station/medicine-summary/summary-form-detail',
|
||||
>>>>>>> v1.3
|
||||
method: 'get',
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
|
||||
// 住院汇总发药单右侧
|
||||
<<<<<<< HEAD
|
||||
export function getFromDetailList (queryParams) {
|
||||
return request ({
|
||||
=======
|
||||
export function getFromDetailList(queryParams) {
|
||||
return request({
|
||||
>>>>>>> v1.3
|
||||
url: 'pharmacy-manage/summary-dispense-medicine/from-list',
|
||||
method: 'get',
|
||||
params: queryParams,
|
||||
@@ -63,26 +46,16 @@ export function getFromDetailList(queryParams) {
|
||||
}
|
||||
|
||||
// 明细左侧
|
||||
<<<<<<< HEAD
|
||||
export function getEncounterList (queryParams) {
|
||||
return request ({
|
||||
=======
|
||||
export function getEncounterList(queryParams) {
|
||||
return request({
|
||||
>>>>>>> v1.3
|
||||
url: '/pharmacy-manage/summary-dispense-medicine/encounter-list',
|
||||
method: 'get',
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
//明细 右侧
|
||||
<<<<<<< HEAD
|
||||
export function getMedicationSummaryDetail (queryParams) {
|
||||
return request ({
|
||||
=======
|
||||
export function getMedicationSummaryDetail(queryParams) {
|
||||
return request({
|
||||
>>>>>>> v1.3
|
||||
url: '/pharmacy-manage/summary-dispense-medicine/medication_summary-list',
|
||||
method: 'get',
|
||||
params: queryParams,
|
||||
@@ -93,13 +66,8 @@ export function getMedicationSummaryDetail(queryParams) {
|
||||
/**
|
||||
* 获取住院患者列表
|
||||
*/
|
||||
<<<<<<< HEAD
|
||||
export function getPatientList (queryParams) {
|
||||
return request ({
|
||||
=======
|
||||
export function getPatientList(queryParams) {
|
||||
return request({
|
||||
>>>>>>> v1.3
|
||||
url: '/nurse-station/advice-process/inpatient',
|
||||
method: 'get',
|
||||
params: queryParams,
|
||||
@@ -109,13 +77,8 @@ export function getPatientList(queryParams) {
|
||||
/**
|
||||
* 获取当前登录人管理病区
|
||||
*/
|
||||
<<<<<<< HEAD
|
||||
export function getWardList (queryParams) {
|
||||
return request ({
|
||||
=======
|
||||
export function getWardList(queryParams) {
|
||||
return request({
|
||||
>>>>>>> v1.3
|
||||
url: '/app-common/practitioner-ward',
|
||||
method: 'get',
|
||||
params: queryParams,
|
||||
@@ -125,13 +88,8 @@ export function getWardList(queryParams) {
|
||||
/**
|
||||
* 获取当前选中患者全部医嘱
|
||||
*/
|
||||
<<<<<<< HEAD
|
||||
export function getPrescriptionList (queryParams) {
|
||||
return request ({
|
||||
=======
|
||||
export function getPrescriptionList(queryParams) {
|
||||
return request({
|
||||
>>>>>>> v1.3
|
||||
url: '/nurse-station/advice-process/inpatient-advice',
|
||||
method: 'get',
|
||||
params: queryParams,
|
||||
@@ -141,13 +99,8 @@ export function getPrescriptionList(queryParams) {
|
||||
/**
|
||||
* 执行医嘱
|
||||
*/
|
||||
<<<<<<< HEAD
|
||||
export function adviceExecute (data) {
|
||||
return request ({
|
||||
=======
|
||||
export function adviceExecute(data) {
|
||||
return request({
|
||||
>>>>>>> v1.3
|
||||
url: '/nurse-station/advice-process/advice-execute',
|
||||
method: 'post',
|
||||
data: data,
|
||||
@@ -157,13 +110,8 @@ export function adviceExecute(data) {
|
||||
/**
|
||||
* 取消执行医嘱
|
||||
*/
|
||||
<<<<<<< HEAD
|
||||
export function adviceCancel (data) {
|
||||
return request ({
|
||||
=======
|
||||
export function adviceCancel(data) {
|
||||
return request({
|
||||
>>>>>>> v1.3
|
||||
url: '/nurse-station/advice-process/advice-cancel',
|
||||
method: 'post',
|
||||
data: data,
|
||||
@@ -172,17 +120,10 @@ export function adviceCancel(data) {
|
||||
|
||||
/**
|
||||
* 明细发药
|
||||
<<<<<<< HEAD
|
||||
*
|
||||
*/
|
||||
export function totalSendDrug (data) {
|
||||
return request ({
|
||||
=======
|
||||
*
|
||||
*/
|
||||
export function totalSendDrug(data) {
|
||||
return request({
|
||||
>>>>>>> v1.3
|
||||
url: '/pharmacy-manage/summary-dispense-medicine/summary-dispense-medicine',
|
||||
method: 'put',
|
||||
data: data,
|
||||
@@ -191,20 +132,13 @@ export function totalSendDrug(data) {
|
||||
/**
|
||||
* 明细退药
|
||||
*/
|
||||
<<<<<<< HEAD
|
||||
export function totalReturnDrug (data) {
|
||||
return request ({
|
||||
=======
|
||||
export function totalReturnDrug(data) {
|
||||
return request({
|
||||
>>>>>>> v1.3
|
||||
url: '/pharmacy-manage/summary-dispense-medicine/medicine-return',
|
||||
method: 'put',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
// -----------------------------------门诊发药接口------------------------------------------------------------
|
||||
export function listPatient(query) {
|
||||
@@ -363,4 +297,3 @@ export function init() {
|
||||
// method: 'get',
|
||||
// })
|
||||
// }
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -1,186 +1,4 @@
|
||||
<template>
|
||||
<<<<<<< HEAD
|
||||
<div class="app-container">
|
||||
<el-row :gutter="20" style="margin-bottom: 20px">
|
||||
<el-col :span="4" :xs="24">
|
||||
<el-button
|
||||
:type="selectType === 'total' ? 'primary' : 'default'"
|
||||
@click="handleSelectType('total')"
|
||||
>汇总</el-button
|
||||
>
|
||||
<el-button
|
||||
:type="selectType === 'drug' ? 'primary' : 'default'"
|
||||
@click="handleSelectType('drug')"
|
||||
>发药</el-button
|
||||
>
|
||||
</el-col>
|
||||
<!-- <el-col :span="18" :xs="24">
|
||||
<el-form ref="queryParams" label-width="100px" :model="queryParams" :inline="true">
|
||||
<el-form-item label="窗口" prop="windowDataText" label-width="120px">
|
||||
<el-select
|
||||
v-model="queryParams.windowDataText"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
filterable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in windowData"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="摆药单" prop="medicationListText" label-width="120px">
|
||||
<el-select
|
||||
v-model="queryParams.medicationListText"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
filterable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in medicationList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="范围" prop="time" label-width="100px">
|
||||
<el-radio-group v-model="queryParams.timeRange">
|
||||
<el-radio v-for="(item, index) in timeRangeList" :key="index" :value="item.value">
|
||||
{{ item.label }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="时间" prop="time" label-width="100px">
|
||||
<el-date-picker
|
||||
v-model="dateRange"
|
||||
type="datetimerange"
|
||||
range-separator="-"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-col> -->
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6" class="left-container">
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form
|
||||
:model="queryParamsPatient"
|
||||
ref="queryRef"
|
||||
v-show="showSearch"
|
||||
label-width="120"
|
||||
inline="true"
|
||||
>
|
||||
<el-form-item label="患者信息" prop="searchKey" label-width="120">
|
||||
<el-input
|
||||
v-model="queryParamsPatient.searchKey"
|
||||
placeholder="请输入姓名/证件号"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="发药状态"
|
||||
prop="statusEnum"
|
||||
v-if="selectType !== 'drug'"
|
||||
label-width="120"
|
||||
>
|
||||
<el-select
|
||||
v-model="queryParamsPatient.statusEnum"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 240px"
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dispenseStatusOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="就诊日期" prop="startTime">
|
||||
<el-date-picker
|
||||
v-model="dateRange"
|
||||
type="daterange"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="YYYY-MM-DD"
|
||||
style="width: 240px"
|
||||
@keyup.enter="handleQuery"
|
||||
@change="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" style="border-radius: 4px">
|
||||
<el-col :span="24">
|
||||
<el-table
|
||||
:data="patientList"
|
||||
border
|
||||
highlight-current-row
|
||||
style="height: cal(100%-200px); width: 100%"
|
||||
@row-click="handleCurrentChange"
|
||||
>
|
||||
<!-- 汇总状态下显示的字段 -->
|
||||
<template v-if="selectType === 'total'">
|
||||
<el-table-column prop="applicantName" label="申请人" align="center" />
|
||||
<el-table-column prop="sourceLocationName" label="发药药房" align="center" />
|
||||
<el-table-column prop="statusEnum_enumText" label="状态" align="center" />
|
||||
<el-table-column prop="applyTime" label="申请日期" align="center">
|
||||
<template #default="scope">
|
||||
{{ scope.row.applyTime ? parseTime(scope.row.applyTime, '{y}-{m}-{d}') : '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<!-- 明细状态下显示的字段 -->
|
||||
<template v-else>
|
||||
<el-table-column prop="patientName" label="姓名" align="center" />
|
||||
<el-table-column prop="genderEnum_enumText" label="性别" align="center" />
|
||||
<el-table-column prop="age" label="年龄" align="center" />
|
||||
<el-table-column prop="startTime" label="就诊日期" align="center">
|
||||
<template #default="scope">
|
||||
{{ scope.row.startTime ? parseTime(scope.row.startTime, '{y}-{m}-{d}') : '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="24" style="padding: 10px 12px 12px 12px">
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNo"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :span="18" :xs="24">
|
||||
<!-- 根据当前选中的tab显示不同的表格组件 -->
|
||||
<MedicationTable v-if="selectType === 'total'" :tableData="tableData" :busNo="busNo" />
|
||||
<DetailMedicationTable
|
||||
v-else-if="selectType === 'drug'"
|
||||
:tableData="detailTableData"
|
||||
:encounterId="encounterId"
|
||||
@call-medication-summary-detail="callMedicationSummaryDetail"
|
||||
/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
=======
|
||||
<div class="app-container" style="padding-top: 0px">
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick" class="centered-tabs tabs-font">
|
||||
<el-tab-pane label="发药汇总单" name="summary">
|
||||
@@ -193,7 +11,6 @@
|
||||
<ReturnDrug />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -201,12 +18,9 @@
|
||||
import { ref, reactive, onMounted } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import MedicationTable from './components/MedicationTable.vue';
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
import MedicationSummary from './components/MedicationSummary.vue';
|
||||
import MedicationDetails from './components/MedicationDetails.vue';
|
||||
import ReturnDrug from './components/ReturnDrug.vue';
|
||||
>>>>>>> v1.3
|
||||
import DetailMedicationTable from './components/DetailMedicationTable.vue';
|
||||
import { getCurrentInstance } from 'vue';
|
||||
import {
|
||||
@@ -216,11 +30,7 @@ import {
|
||||
getFromDetailList,
|
||||
} from './components/api';
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 响应式数据
|
||||
=======
|
||||
const activeName = ref('summary');
|
||||
>>>>>>> v1.3
|
||||
const loading = ref(false);
|
||||
const patientList = ref([]);
|
||||
const total = ref(0);
|
||||
@@ -478,8 +288,6 @@ onMounted(() => {
|
||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||
padding: 20px;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
.centered-tabs :deep(.el-tabs__nav-wrap) {
|
||||
display: flex;
|
||||
@@ -495,5 +303,4 @@ onMounted(() => {
|
||||
font-size: 16px !important;
|
||||
padding: 0 60px !important;
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
</style>
|
||||
@@ -542,210 +542,6 @@ const sexOptions = gend;
|
||||
// 入院途径
|
||||
const admissionOptions = adm_way;
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
//组织机构代码
|
||||
medins_orgcode: '',
|
||||
|
||||
//医疗付费方式
|
||||
|
||||
|
||||
//健康卡号
|
||||
|
||||
|
||||
//姓名--患者姓名
|
||||
patient_name: '',
|
||||
|
||||
//性别--患者性别
|
||||
gend: '',
|
||||
|
||||
//出生日期
|
||||
brdy: '',
|
||||
|
||||
//年龄
|
||||
age: '',
|
||||
|
||||
//国籍
|
||||
ntly: '',
|
||||
|
||||
//籍贯
|
||||
napl: '',
|
||||
|
||||
//民族
|
||||
naty: '',
|
||||
|
||||
//身份证号
|
||||
certNo: '',
|
||||
|
||||
//户口地址
|
||||
resd_addr:'',
|
||||
|
||||
//工作单位及地址
|
||||
empr_addr: '',
|
||||
|
||||
//联系人姓名
|
||||
coner_name: '',
|
||||
|
||||
//关系
|
||||
patn_rlts: '',
|
||||
|
||||
//地址
|
||||
addr: '',
|
||||
|
||||
//电话
|
||||
tel: '',
|
||||
|
||||
//第几次住院
|
||||
patn_ipt_cnt: '',
|
||||
|
||||
//住院号 mdtrtsn
|
||||
ipt_no: '',
|
||||
|
||||
//病案号
|
||||
medcasno: '',
|
||||
|
||||
//入院途径
|
||||
adm_way: '',
|
||||
|
||||
//入院时间
|
||||
adm_time: '',
|
||||
|
||||
//入院科室 adm_dept_codg
|
||||
adm_dept_name: '',
|
||||
|
||||
//病房 入院病房
|
||||
adm_ward: '',
|
||||
|
||||
//实际住院天数
|
||||
act_ipt_days: '',
|
||||
|
||||
//主要诊断----不确定
|
||||
diag_code: '',
|
||||
|
||||
//其他诊断
|
||||
|
||||
|
||||
//是否输血
|
||||
|
||||
|
||||
//血型
|
||||
|
||||
|
||||
//Rh
|
||||
|
||||
|
||||
//药物过敏史
|
||||
|
||||
|
||||
//科主任 科主任姓名--deptort_name:
|
||||
deptort: '',
|
||||
|
||||
//主任(副主任)医师
|
||||
chfdr_name: '',
|
||||
|
||||
//主治医师 主诊医师姓名--chfpdr_name
|
||||
atddr_no: '',
|
||||
|
||||
//住院医师 住院医师姓名--ipdr_name
|
||||
ipdr_code: '',
|
||||
|
||||
//责任护士 责任护士姓名--resp_nurs_name
|
||||
resp_nurs_code: '',
|
||||
|
||||
//住院总医师
|
||||
|
||||
|
||||
//实习医师
|
||||
intn_dr_name: '',
|
||||
|
||||
//病案质量 病案质量名称--medcas_qlt_name
|
||||
medcas_qlt_code: '',
|
||||
|
||||
//编码员
|
||||
codr_name: '',
|
||||
|
||||
//质控日期
|
||||
qltctrl_date: '',
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
hospital: {
|
||||
orgCode: '41275054-7',
|
||||
paymentMethod: '城乡居民基本医疗保险'
|
||||
},
|
||||
patient: {
|
||||
healthCardNo: '',
|
||||
name: '',
|
||||
gender: '',
|
||||
birthDate: '',
|
||||
age: '',
|
||||
nationality: '中国',
|
||||
nativePlace: '',
|
||||
ethnicity: '汉族',
|
||||
idCardNo: '',
|
||||
householdAddress: '',
|
||||
workUnit: '',
|
||||
contactName: '',
|
||||
contactRelation: '',
|
||||
contactAddress: '',
|
||||
contactPhone: ''
|
||||
},
|
||||
admission: {
|
||||
times: 1,
|
||||
hospitalNo: '',
|
||||
recordNo: '',
|
||||
channel: '',
|
||||
admitTime: '',
|
||||
department: '',
|
||||
ward: '',
|
||||
confirmDate: '',
|
||||
dischargeTime: '',
|
||||
dischargeDepartment: '',
|
||||
dischargeWard: '',
|
||||
hospitalDays: ''
|
||||
},
|
||||
diagnosis: {
|
||||
mainDiagnosis: '',
|
||||
otherDiagnosis: ''
|
||||
},
|
||||
medicalInfo: {
|
||||
bloodTransfusion: '2',
|
||||
bloodType: '',
|
||||
rhType: '',
|
||||
drugAllergy: '1'
|
||||
},
|
||||
doctorInfo: {
|
||||
departmentDirector: '',
|
||||
chiefPhysician: '',
|
||||
attendingPhysician: '',
|
||||
residentPhysician: '',
|
||||
chargeNurse: '',
|
||||
chiefResident: '',
|
||||
intern: '',
|
||||
recordQuality: '1',
|
||||
coder: '',
|
||||
qualityControlDate: ''
|
||||
}
|
||||
=======
|
||||
// 是否输血
|
||||
const bloodOption = sys_yes_no;
|
||||
// 血型
|
||||
@@ -806,7 +602,6 @@ const rules = ref({
|
||||
name: [{ required: true, message: '请选择诊断', trigger: 'change' }],
|
||||
medTypeCode: [{ required: true, message: '请选择诊断类型', trigger: 'change' }],
|
||||
diagSrtNo: [{ required: true, message: '请输入诊断序号', trigger: 'change' }],
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@@ -1,23 +1,11 @@
|
||||
<template>
|
||||
<div style="width: 100%" class="medicalSec">
|
||||
<<<<<<< HEAD
|
||||
<div style="margin-bottom: 5px;margin-top: 20px;">
|
||||
<el-button type="primary" @click="addItem" :disabled="false">
|
||||
新增
|
||||
</el-button>
|
||||
=======
|
||||
<div style="margin-bottom: 5px; margin-top: 20px">
|
||||
<el-button type="primary" @click="addItem" :disabled="false"> 新增 </el-button>
|
||||
>>>>>>> v1.3
|
||||
<el-button type="danger" plain @click="handleDelete" :disabled="false"> 删除 </el-button>
|
||||
</div>
|
||||
<div class="tableBox">
|
||||
<div class="tableBoxInner">
|
||||
<<<<<<< HEAD
|
||||
<div :class="{'borderBottom':!tableData_top.length}" class="tableBoxItemHeader">
|
||||
<div class="item itemIndex">
|
||||
<div :class="{'itemCheckBox':!isChooseAll,'itemCheckBoxAct':isChooseAll}" @click="chooseAll">
|
||||
=======
|
||||
<div
|
||||
:class="{ borderBottom: !formData.medicalSecond.surgery_tableData.length }"
|
||||
class="tableBoxItemHeader"
|
||||
@@ -27,7 +15,6 @@
|
||||
:class="{ itemCheckBox: !isChooseAll, itemCheckBoxAct: isChooseAll }"
|
||||
@click="chooseAll"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<span v-show="isChooseAll">✓</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -35,13 +22,6 @@
|
||||
<div class="item itemSurgeryLevel">手术级别</div>
|
||||
<div class="item itemSurgeryName">手术及操作名称</div>
|
||||
<div class="itemSpec">
|
||||
<<<<<<< HEAD
|
||||
<div class="spec" style="width: 100%;border-bottom: 1px solid #ebeef5;">手术及操作医师</div>
|
||||
<div class="spec">
|
||||
<div class="specItem">术者</div>
|
||||
<div class="specItem" style="border-left: 1px solid #ebeef5;">Ⅰ助</div>
|
||||
<div class="specItem" style="border-left: 1px solid #ebeef5;">Ⅱ助</div>
|
||||
=======
|
||||
<div class="spec" style="width: 100%; border-bottom: 1px solid #ebeef5">
|
||||
手术及操作医师
|
||||
</div>
|
||||
@@ -49,7 +29,6 @@
|
||||
<div class="specItem">术者</div>
|
||||
<div class="specItem" style="border-left: 1px solid #ebeef5">Ⅰ助</div>
|
||||
<div class="specItem" style="border-left: 1px solid #ebeef5">Ⅱ助</div>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</div>
|
||||
<div class="item itemCutLevel">切口愈合等级</div>
|
||||
@@ -58,14 +37,6 @@
|
||||
<div class="item itemTime borderRight">手术时长(H)</div>
|
||||
</div>
|
||||
<div
|
||||
<<<<<<< HEAD
|
||||
class="tableBoxItem"
|
||||
:class="{'borderBottom':index+1===tableData_top.length}"
|
||||
v-for="(item,index) in tableData_top"
|
||||
:key="index">
|
||||
<div class="item itemIndex">
|
||||
<div :class="{'itemCheckBox':!item['isChoose'],'itemCheckBoxAct':item['isChoose']}" @click="checkItem(item)">
|
||||
=======
|
||||
class="tableBoxItem"
|
||||
:class="{ borderBottom: index + 1 === formData.medicalSecond.surgery_tableData.length }"
|
||||
v-for="(item, index) in formData.medicalSecond.surgery_tableData"
|
||||
@@ -76,28 +47,11 @@
|
||||
:class="{ itemCheckBox: !item['isChoose'], itemCheckBoxAct: item['isChoose'] }"
|
||||
@click="checkItem(item, false)"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<span v-show="item['isChoose']">✓</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item itemDate">
|
||||
<el-date-picker
|
||||
<<<<<<< HEAD
|
||||
v-model="item.ctrlDate"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="手术操作日期"
|
||||
:default-time="item.ctrlDate"
|
||||
/>
|
||||
</div>
|
||||
<div class="item itemSurgeryLevel">
|
||||
<el-select v-model="item.surgeryLevel" placeholder="请选择手术级别">
|
||||
<el-option
|
||||
v-for="item in item['surgeryLevelArr']"
|
||||
:key="item.value"
|
||||
:label="item.title"
|
||||
:value="item.value"
|
||||
=======
|
||||
v-model="item.oprn_oprt_date"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
@@ -111,25 +65,10 @@
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>>>>>>> v1.3
|
||||
></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="item itemSurgeryName">
|
||||
<<<<<<< HEAD
|
||||
<el-input v-model="item.surgeryName"></el-input>
|
||||
</div>
|
||||
<div class="itemSpec">
|
||||
<div class="spec_">
|
||||
<div class="specItem" style="padding: 10px;">
|
||||
<el-input v-model="item.surgeryMasterName"></el-input>
|
||||
</div>
|
||||
<div class="specItem" style="padding: 10px;border-left: 1px solid #ebeef5;">
|
||||
<el-input v-model="item.surgeryMasterName_1"></el-input>
|
||||
</div>
|
||||
<div class="specItem" style="padding: 10px;border-left: 1px solid #ebeef5;">
|
||||
<el-input v-model="item.surgeryMasterName_2"></el-input>
|
||||
=======
|
||||
<el-input v-model="item.oprn_oprt_name"></el-input>
|
||||
</div>
|
||||
<div class="itemSpec">
|
||||
@@ -142,73 +81,41 @@
|
||||
</div>
|
||||
<div class="specItem" style="padding: 10px; border-left: 1px solid #ebeef5">
|
||||
<el-input v-model="item.asit_name2"></el-input>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item itemCutLevel">
|
||||
<<<<<<< HEAD
|
||||
<el-select v-model="item.cutLevel">
|
||||
<el-option
|
||||
v-for="item in item['cutLevelArr']"
|
||||
:key="item.value"
|
||||
:label="item.title"
|
||||
:value="item.value"
|
||||
=======
|
||||
<el-select v-model="item.sinc_heal_lv_code">
|
||||
<el-option
|
||||
v-for="item in cutLevelOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>>>>>>> v1.3
|
||||
></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="item itemCutLevel">
|
||||
<<<<<<< HEAD
|
||||
<el-select v-model="item.anesthesiaType" placeholder="请选择手术级别">
|
||||
<el-option
|
||||
v-for="item in operationLevelList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
=======
|
||||
<el-select v-model="item.anst_mtd_code" placeholder="请选择麻醉方式">
|
||||
<el-option
|
||||
v-for="item in anesthesiaTypeOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>>>>>>> v1.3
|
||||
></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="item itemCutLevel">
|
||||
<<<<<<< HEAD
|
||||
<el-select v-model="item.anesthesiaLevel" placeholder="请选择手术级别">
|
||||
<el-option
|
||||
v-for="item in item.anesthesiaLevelArr"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
=======
|
||||
<el-select v-model="item.anst_lv_code" placeholder="请选择麻醉分级">
|
||||
<el-option
|
||||
v-for="item in anesthesiaLevelOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>>>>>>> v1.3
|
||||
></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="item itemTime borderRight">
|
||||
<<<<<<< HEAD
|
||||
<el-input v-model="item.surgeryTime"></el-input>
|
||||
=======
|
||||
<el-input v-model="item.oprn_con_time"></el-input>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -216,16 +123,6 @@
|
||||
<div class="form-row">
|
||||
<div class="form-item">
|
||||
<label>手术方式:</label>
|
||||
<<<<<<< HEAD
|
||||
<el-select v-model="formData['surgeryType']">
|
||||
<el-option v-for="(item,index) in formData['surgeryTypeArr']" :key="index" :value="item['value']" :label="item['title']"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>离院方式:</label>
|
||||
<el-select v-model="formData['leaveType']">
|
||||
<el-option v-for="(item,index) in formData['leaveTypeArr']" :key="index" :value="item['value']" :label="item['title']"></el-option>
|
||||
=======
|
||||
<el-select v-model="formData.medicalSecond.surgeryType">
|
||||
<el-option
|
||||
v-for="item in surgeryTypeOptions"
|
||||
@@ -244,17 +141,12 @@
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
></el-option>
|
||||
>>>>>>> v1.3
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-item">
|
||||
<label>是否有出院31天内再住院计划:</label>
|
||||
<<<<<<< HEAD
|
||||
<el-select v-model="formData['isPlan']">
|
||||
<el-option v-for="(item,index) in formData['isPlanArr']" :key="index" :value="item['value']" :label="item['title']"></el-option>
|
||||
=======
|
||||
<el-select v-model="formData.medicalSecond.dscg_31days_rinp_flag">
|
||||
<el-option
|
||||
v-for="item in isPlanOptions"
|
||||
@@ -262,46 +154,29 @@
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
></el-option>
|
||||
>>>>>>> v1.3
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>目的:</label>
|
||||
<<<<<<< HEAD
|
||||
<el-input v-model="formData['purpose']"></el-input>
|
||||
=======
|
||||
<el-input
|
||||
v-model="formData.medicalSecond.dscg_31days_rinp_pup"
|
||||
placeholder="请填写目的"
|
||||
></el-input>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-item">
|
||||
<label>颅脑损伤患者昏迷时间-入院前:</label>
|
||||
<<<<<<< HEAD
|
||||
<el-input type="date" v-model="formData['comaDurationTime_before']" />
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>入院后:</label>
|
||||
<el-input type="date" v-model="formData['comaDurationTime_after']" />
|
||||
=======
|
||||
<el-input type="date" v-model="formData.medicalSecond.brn_damg_bfadm_coma_dura" />
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>入院后:</label>
|
||||
<el-input type="date" v-model="formData.medicalSecond.brn_damg_afadm_coma_dura" />
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-item">
|
||||
<label>肿瘤分期:</label>
|
||||
<<<<<<< HEAD
|
||||
<el-select v-model="formData['tumorStaging']">
|
||||
<el-option v-for="(item,index) in formData['tumorStagingArr']" :key="index" :value="item['value']" :label="item['title']"></el-option>
|
||||
=======
|
||||
<el-select v-model="formData.medicalSecond.tumorStaging">
|
||||
<el-option
|
||||
v-for="item in tumorStagingOptions"
|
||||
@@ -309,22 +184,10 @@
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
></el-option>
|
||||
>>>>>>> v1.3
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="form-item" style="flex: 0">
|
||||
<label>T:</label>
|
||||
<<<<<<< HEAD
|
||||
<label class="form-item-specLabel"><div class="specLabelInner" style="width: 80px;margin: 0 8px 0 0;"><el-input v-model="formData['tumor_T']"></el-input></div> </label>
|
||||
</div>
|
||||
<div class="form-item" style="flex: 0">
|
||||
<label>N:</label>
|
||||
<label class="form-item-specLabel"><div class="specLabelInner" style="width: 80px;margin: 0 8px 0 0;"><el-input v-model="formData['tumor_N']"></el-input></div> </label>
|
||||
</div>
|
||||
<div class="form-item" style="flex: 0">
|
||||
<label>M:</label>
|
||||
<label class="form-item-specLabel"><div class="specLabelInner" style="width: 80px;margin: 0 8px 0 0;"><el-input v-model="formData['tumor_M']"></el-input></div> </label>
|
||||
=======
|
||||
<label class="form-item-specLabel"
|
||||
><div class="specLabelInner" style="width: 80px; margin: 0 8px 0 0">
|
||||
<el-input v-model="formData.medicalSecond.tumor_T"></el-input>
|
||||
@@ -346,17 +209,12 @@
|
||||
<el-input v-model="formData.medicalSecond.tumor_M"></el-input>
|
||||
</div>
|
||||
</label>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-item">
|
||||
<label>判断依据:</label>
|
||||
<<<<<<< HEAD
|
||||
<el-select v-model="formData['judgmentBase']">
|
||||
<el-option v-for="(item,index) in formData['judgmentBaseArr']" :key="index" :value="item['value']" :label="item['title']"></el-option>
|
||||
=======
|
||||
<el-select v-model="formData.medicalSecond.judgmentBase">
|
||||
<el-option
|
||||
v-for="item in judgmentBaseOptions"
|
||||
@@ -364,14 +222,10 @@
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
></el-option>
|
||||
>>>>>>> v1.3
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>分化程度:</label>
|
||||
<<<<<<< HEAD
|
||||
<el-input type="date" v-model="formData['degreeDifferentiation']" />
|
||||
=======
|
||||
<!-- <el-input type="date" v-model="formData.medicalSecond.bkup_deg" /> -->
|
||||
<el-select v-model="formData.medicalSecond.bkup_deg_code" placeholder="请选择分化程度">
|
||||
<el-option
|
||||
@@ -381,23 +235,12 @@
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-item">
|
||||
<label>临床路径-进入路径:</label>
|
||||
<<<<<<< HEAD
|
||||
<el-select v-model="formData['enterPath']">
|
||||
<el-option v-for="(item,index) in formData['enterPathArr']" :key="index" :value="item['value']" :label="item['title']"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>变异:</label>
|
||||
<el-select v-model="formData['mutation']">
|
||||
<el-option v-for="(item,index) in formData['mutationArr']" :key="index" :value="item['value']" :label="item['title']"></el-option>
|
||||
=======
|
||||
<!-- <el-select v-model="formData.medicalSecond.enterPath">
|
||||
<el-option
|
||||
v-for="item in enterPathOptions"
|
||||
@@ -417,21 +260,12 @@
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
></el-option>
|
||||
>>>>>>> v1.3
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-item">
|
||||
<label>退出路径:</label>
|
||||
<<<<<<< HEAD
|
||||
<el-select v-model="formData['outPath']">
|
||||
<el-option v-for="(item,index) in formData['outPathArr']" :key="index" :value="item['value']" :label="item['title']"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
</div>
|
||||
=======
|
||||
<!-- <el-select v-model="formData.medicalSecond.outPath">
|
||||
<el-option
|
||||
v-for="item in outPathOptions"
|
||||
@@ -443,7 +277,6 @@
|
||||
<el-input v-model="formData.medicalSecond.outPath" placeholder="请输入"></el-input>
|
||||
</div>
|
||||
<div class="form-item"></div>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
<div class="form-row" styLe="margin: 0;">
|
||||
<div class="form-item" styLe="margin: 0;">
|
||||
@@ -452,19 +285,6 @@
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-item" style="flex: 0">
|
||||
<<<<<<< HEAD
|
||||
<label class="form-item-specLabel">特级护理 <div class="specLabelInner"><el-input v-model="formData['nursingLevel_spec']"></el-input></div> 小时</label>
|
||||
</div>
|
||||
<div class="form-item" style="flex: 0">
|
||||
<label class="form-item-specLabel">1级护理 <div class="specLabelInner"><el-input v-model="formData['nursingLevel_1']"></el-input></div> 小时</label>
|
||||
|
||||
</div>
|
||||
<div class="form-item" style="flex: 0">
|
||||
<label class="form-item-specLabel">2级护理 <div class="specLabelInner"><el-input v-model="formData['nursingLevel_2']"></el-input></div> 小时</label>
|
||||
</div>
|
||||
<div class="form-item" style="flex: 0">
|
||||
<label class="form-item-specLabel">3级护理 <div class="specLabelInner"><el-input v-model="formData['nursingLevel_3']"></el-input></div> 小时</label>
|
||||
=======
|
||||
<label class="form-item-specLabel"
|
||||
>特级护理
|
||||
<div class="specLabelInner">
|
||||
@@ -499,16 +319,11 @@
|
||||
</div>
|
||||
小时</label
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-item">
|
||||
<label>呼吸机使用:</label>
|
||||
<<<<<<< HEAD
|
||||
<el-select v-model="formData['ventilatorUse']">
|
||||
<el-option v-for="(item,index) in formData['ventilatorUseArr']" :key="index" :value="item['value']" :label="item['title']"></el-option>
|
||||
=======
|
||||
<el-select v-model="formData.medicalSecond.use_vent_flag">
|
||||
<el-option
|
||||
v-for="item in ventilatorUseOptions"
|
||||
@@ -516,210 +331,20 @@
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
></el-option>
|
||||
>>>>>>> v1.3
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>有创呼吸机使用时间(小时):</label>
|
||||
<<<<<<< HEAD
|
||||
<el-input v-model="formData['ventilatorUseTime']"></el-input>
|
||||
=======
|
||||
<el-input
|
||||
v-model="formData.medicalSecond.vent_used_dura"
|
||||
placeholder="请填写有创呼吸机使用时间(小时)"
|
||||
></el-input>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
<<<<<<< HEAD
|
||||
import {nextTick, reactive, ref, watch} from 'vue';
|
||||
import { ElMessage } from 'element-plus'
|
||||
|
||||
let chooseData = reactive([])//表格中选中的数据 TODO
|
||||
const tableData_top = reactive([])
|
||||
const tableData_sub = ref([
|
||||
{
|
||||
|
||||
},
|
||||
{
|
||||
|
||||
}
|
||||
])
|
||||
let isChooseAll = ref(false);
|
||||
const formData = ref({
|
||||
surgeryDate: '2025-10-10',
|
||||
surgeryType: '',
|
||||
surgeryTypeArr: [
|
||||
{
|
||||
title: '择期手术',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
title: '限期手术',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
title: '急诊手术',
|
||||
value: 3,
|
||||
}
|
||||
],
|
||||
leaveType: '',
|
||||
leaveTypeArr: [
|
||||
{
|
||||
title: '医嘱离院',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
title: '医嘱转院',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
title: '医嘱转社区卫生服务机构',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
title: '非医嘱离院',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
title: '死亡',
|
||||
value: 5,
|
||||
},
|
||||
{
|
||||
title: '其他',
|
||||
value: 6,
|
||||
}
|
||||
],
|
||||
isPlan: '',
|
||||
isPlanArr: [
|
||||
{
|
||||
title: '是',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
title: '否',
|
||||
value: 1,
|
||||
}
|
||||
],
|
||||
purpose: '',
|
||||
comaDurationTime_before: '',//昏迷时间---入院前
|
||||
comaDurationTime_after: '',//昏迷时间---入院后
|
||||
|
||||
tumorStaging: '',
|
||||
tumorStagingArr: [
|
||||
{
|
||||
title: 'C',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
title: 'P',
|
||||
value: 2,
|
||||
}
|
||||
],
|
||||
judgmentBase: '',
|
||||
judgmentBaseArr: [
|
||||
{
|
||||
title: '0期',
|
||||
value: 0,
|
||||
},
|
||||
{
|
||||
title: '1期',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
title: '2期',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
title: '3期',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
title: '4期',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
title: '不详',
|
||||
value: 5,
|
||||
}
|
||||
],
|
||||
tumor_T: '',
|
||||
tumor_N: '',
|
||||
tumor_M: '',
|
||||
degreeDifferentiation: '',
|
||||
|
||||
enterPath: '',
|
||||
enterPathArr: [
|
||||
{
|
||||
title: '是',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
title: '否',
|
||||
value: 1,
|
||||
}
|
||||
],
|
||||
outPath: '',
|
||||
outPathArr: [
|
||||
{
|
||||
title: '是',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
title: '否',
|
||||
value: 1,
|
||||
}
|
||||
],
|
||||
mutation: '',
|
||||
mutationArr: [
|
||||
{
|
||||
title: '有',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
title: '无',
|
||||
value: 1,
|
||||
}
|
||||
],
|
||||
|
||||
nursingLevel_spec: '',
|
||||
nursingLevel_1: '',
|
||||
nursingLevel_2: '',
|
||||
nursingLevel_3: '',
|
||||
|
||||
ventilatorUse: '',
|
||||
ventilatorUseArr: [
|
||||
{
|
||||
title: '未使用',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
title: '无创',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
title: '有创',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
title: '无创+有创',
|
||||
value: 4,
|
||||
}
|
||||
],
|
||||
|
||||
ventilatorUseTime: '',
|
||||
});
|
||||
|
||||
const operationLevelList = [
|
||||
{ name: '一级', id: 1 },
|
||||
{ name: '二级', id: 2 },
|
||||
{ name: '三级', id: 3 },
|
||||
];
|
||||
=======
|
||||
import { reactive, ref, watch } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import { cloneDeep, forEach } from 'lodash';
|
||||
@@ -761,7 +386,6 @@ const {
|
||||
'oprn_patn_type_code',
|
||||
'bkup_deg_code'
|
||||
);
|
||||
>>>>>>> v1.3
|
||||
|
||||
// 手术类型
|
||||
const surgeryTypeOptions = oprn_patn_type_code;
|
||||
@@ -801,198 +425,6 @@ watch(
|
||||
const addItem = () => {
|
||||
let data = {
|
||||
//手术操作日期 oprn_oprt_date
|
||||
<<<<<<< HEAD
|
||||
oprn_date: '',
|
||||
|
||||
//手术级别 手术级别名称--oprn_lv_code
|
||||
oprn_lv_code: '',
|
||||
|
||||
//手术及操作名称 oprn_oprt_code
|
||||
oprn_oprt_name: '',
|
||||
|
||||
//手术及操作医师
|
||||
//术者
|
||||
oper_name: '',
|
||||
//Ⅰ助
|
||||
asit_1_name: '',
|
||||
//Ⅱ助
|
||||
asit_name2: '',
|
||||
|
||||
//切口愈合等级 sinc_heal_lv_code
|
||||
sinc_heal_lv: '',
|
||||
|
||||
//麻醉方式
|
||||
anst_way: '',
|
||||
|
||||
//麻醉分级 anst_lv_code
|
||||
anst_lv_name: '',
|
||||
|
||||
//手术时长
|
||||
|
||||
|
||||
//手术方式
|
||||
|
||||
|
||||
//离院方式
|
||||
dscg_way: '',
|
||||
|
||||
//是否有出院31天内再住院计划-----不确定
|
||||
days_rinp_flag_31: '',
|
||||
|
||||
//目的
|
||||
days_rinp_pup_31: '',
|
||||
|
||||
//颅脑损伤患者昏迷时间 入院前
|
||||
brn_damg_bfadm_coma_dura: '',
|
||||
//颅脑损伤患者昏迷时间 入院后
|
||||
brn_damg_afadm_coma_dura: '',
|
||||
|
||||
//肿瘤分期
|
||||
//T
|
||||
//N
|
||||
//M
|
||||
//判断依据
|
||||
//分化程度 bkup_deg_code
|
||||
bkup_deg: '',
|
||||
|
||||
//临床路径-进入路径
|
||||
//变异
|
||||
//退出路径
|
||||
|
||||
//护理级别
|
||||
//特级护理
|
||||
spga_nurscare_days: '',
|
||||
//1级护理
|
||||
lv1_nurscare_days: '',
|
||||
//2级护理
|
||||
scd_nurscare_days: '',
|
||||
//3级护理
|
||||
lv3_nurscare_days: '',
|
||||
|
||||
//呼吸机使用 vent_used_days vent_used_h_cnt vent_used_m_cnt
|
||||
vent_used_dura: '',
|
||||
//有创呼吸机使用时间
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
isChoose: false,
|
||||
ctrlDate: '2025-10-10',
|
||||
surgeryLevel: '',
|
||||
surgeryLevelArr: [
|
||||
{
|
||||
title: '1级',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
title: '2级',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
title: '3级',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
title: '4级',
|
||||
value: 4,
|
||||
}
|
||||
],
|
||||
surgeryName: '',
|
||||
surgeryMasterName: '',
|
||||
surgeryMasterName_1: '',
|
||||
surgeryMasterName_2: '',
|
||||
cutLevel: '',
|
||||
cutLevelArr: [
|
||||
{
|
||||
title: '1/甲',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
title: '2/乙',
|
||||
value: 2,
|
||||
}
|
||||
],
|
||||
anesthesiaType: '',
|
||||
anesthesiaTypeArr: [],
|
||||
anesthesiaEr: '',
|
||||
anesthesiaLevel: '',
|
||||
anesthesiaLevelArr: [
|
||||
{
|
||||
title: '1',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
title: '2',
|
||||
value: 2,
|
||||
},
|
||||
],
|
||||
surgeryTime: ''
|
||||
}
|
||||
//push
|
||||
tableData_top.unshift(
|
||||
data
|
||||
)
|
||||
tableData_top.map((d,i) => {
|
||||
d.currentIndex = i
|
||||
})
|
||||
|
||||
}
|
||||
const checkItem = (e) => {
|
||||
chooseData = []
|
||||
e['isChoose'] = !e['isChoose']
|
||||
tableData_top.map((d) => {
|
||||
if (d['isChoose']) {
|
||||
chooseData.push(d)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const chooseAll = () => {
|
||||
isChooseAll.value = !isChooseAll.value
|
||||
|
||||
if (tableData_top.length) {
|
||||
tableData_top.map((d) => {
|
||||
d['isChoose'] = !isChooseAll.value
|
||||
|
||||
checkItem(d)
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
//删除方法
|
||||
const handleDelete = () => {
|
||||
if (!tableData_top.length) { return }
|
||||
let deleteId = []
|
||||
chooseData.map((d) => {
|
||||
deleteId.push(d['currentIndex'])
|
||||
})
|
||||
|
||||
for (let i = tableData_top.length - 1; i >= 0; i--) {
|
||||
if (deleteId.includes(tableData_top[i].currentIndex)) {
|
||||
tableData_top.splice(i, 1);
|
||||
}
|
||||
}
|
||||
|
||||
isChooseAll.value = false
|
||||
msgSuccess('删除成功')
|
||||
}
|
||||
|
||||
const msgSuccess = (msg) => {
|
||||
ElMessage({
|
||||
message: msg,
|
||||
type: 'success',
|
||||
})
|
||||
}
|
||||
=======
|
||||
oprn_oprt_date: '',
|
||||
// 手术级别
|
||||
oprn_lv_code: '',
|
||||
@@ -1064,7 +496,6 @@ const handleDelete = () => {
|
||||
isChooseAll.value = false;
|
||||
msgSuccess('删除成功');
|
||||
};
|
||||
>>>>>>> v1.3
|
||||
|
||||
const msgSuccess = (msg) => {
|
||||
ElMessage({
|
||||
@@ -1076,22 +507,14 @@ const msgSuccess = (msg) => {
|
||||
|
||||
<style lang="scss">
|
||||
.medicalSec {
|
||||
<<<<<<< HEAD
|
||||
.el-date-editor.el-input, .el-date-editor.el-input__wrapper {
|
||||
=======
|
||||
.el-date-editor.el-input,
|
||||
.el-date-editor.el-input__wrapper {
|
||||
>>>>>>> v1.3
|
||||
width: 100%;
|
||||
}
|
||||
.el-table td.el-table__cell div {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
</style>
|
||||
<style lang="scss" scoped>
|
||||
:deep(.el-table__expand-icon) {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -26,14 +26,6 @@
|
||||
>
|
||||
<el-table-column type="index" width="80" align="center" label="序号" />
|
||||
<el-table-column prop="patientName" align="center" label="申请患者" />
|
||||
<<<<<<< HEAD
|
||||
<el-table-column prop="genderEnum_enumText" label="性别" align="center" />
|
||||
<el-table-column label="年龄" align="center">
|
||||
<template #default="scope">
|
||||
{{ scope.row.age ? `${scope.row.age}岁` : '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
=======
|
||||
<el-table-column prop="genderEnum_enumText" width="80" label="性别" align="center" />
|
||||
<el-table-column prop="age" width="80" label="年龄" align="center" />
|
||||
<el-table-column prop="busNo" align="center" label="患者住院号">
|
||||
@@ -51,7 +43,6 @@
|
||||
{{ scope.row.admitSourceCode || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
>>>>>>> v1.3
|
||||
<el-table-column prop="sourceName" align="center" label="申请来源">
|
||||
<template #default="scope">
|
||||
{{ scope.row.sourceName || '-' }}
|
||||
|
||||
@@ -1,192 +1,4 @@
|
||||
<template>
|
||||
<<<<<<< HEAD
|
||||
<div class="dashboard-container">
|
||||
<!-- 顶部导航栏 -->
|
||||
<header class="header">
|
||||
<div class="logo">
|
||||
<span class="logo-text">医院信息管理系统</span>
|
||||
</div>
|
||||
<div class="header-right">
|
||||
<div class="notification-badge">
|
||||
<i class="header-icon">🔔</i>
|
||||
<span class="badge">2</span>
|
||||
</div>
|
||||
<i class="header-icon">⚙️</i>
|
||||
<div class="user-info">
|
||||
<span class="user-avatar">👤</span>
|
||||
<span>用户</span>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- 主体内容 -->
|
||||
<div class="main-content">
|
||||
<!-- 左侧导航栏 -->
|
||||
<nav class="sidebar">
|
||||
<div class="menu-item active">
|
||||
<span class="menu-icon">📊</span>
|
||||
<span>仪表盘</span>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<span class="menu-icon">👥</span>
|
||||
<span>患者管理</span>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<span class="menu-icon">💉</span>
|
||||
<span>预约管理</span>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<span class="menu-icon">🏥</span>
|
||||
<span>门诊管理</span>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<span class="menu-icon">⚕️</span>
|
||||
<span>住院管理</span>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<span class="menu-icon">💊</span>
|
||||
<span>药房管理</span>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<span class="menu-icon">📋</span>
|
||||
<span>报表统计</span>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<span class="menu-icon">⚙️</span>
|
||||
<span>系统设置</span>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- 主内容区 -->
|
||||
<div class="content-wrapper">
|
||||
<div class="awaitingBtn">
|
||||
<el-button @click="awaitingMedicineBtn">效期预警 <span>{{ total }}</span></el-button>
|
||||
</div>
|
||||
|
||||
<h1 class="section-title">仪表盘</h1>
|
||||
|
||||
<!-- 关键指标卡片 -->
|
||||
<div class="dashboard-grid">
|
||||
<div class="card">
|
||||
<div class="card-title">今日预约量</div>
|
||||
<div class="card-value">126</div>
|
||||
<div class="card-stats">
|
||||
<span class="stats-icon">↑</span>
|
||||
<span>12% 较昨日</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-title">门诊量统计</div>
|
||||
<div class="card-value">342</div>
|
||||
<div class="card-stats">
|
||||
<span class="stats-icon">↑</span>
|
||||
<span>8% 较上周</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-title">住院患者数</div>
|
||||
<div class="card-value">78</div>
|
||||
<div class="card-stats down">
|
||||
<span class="stats-icon">↓</span>
|
||||
<span>5% 较上周</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-title">药品库存预警</div>
|
||||
<div class="card-value">8</div>
|
||||
<div class="card-stats">
|
||||
<span class="stats-icon">!</span>
|
||||
<span>需要立即处理</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 图表展示区 -->
|
||||
<div class="chart-container">
|
||||
<canvas id="statsChart"></canvas>
|
||||
</div>
|
||||
|
||||
<!-- 重要通知和待办事项 -->
|
||||
<div class="bottom-content">
|
||||
<div class="notification-container">
|
||||
<div class="notification-title">重要通知</div>
|
||||
<ul class="notification-list">
|
||||
<li class="notification-item">系统将于周六凌晨2:00进行维护升级</li>
|
||||
<li class="notification-item">新的门诊排班系统已上线,请尽快熟悉</li>
|
||||
<li class="notification-item">三季度医疗质量分析报告已发布</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="todo-container">
|
||||
<div class="todo-title">待办事项</div>
|
||||
<ul class="todo-list">
|
||||
<li class="todo-item">
|
||||
<span>未完成预约</span>
|
||||
<span class="todo-count">12个</span>
|
||||
</li>
|
||||
<li class="todo-item">
|
||||
<span>待处理检查结果</span>
|
||||
<span class="todo-count">7份</span>
|
||||
</li>
|
||||
<li class="todo-item">
|
||||
<span>待开处方</span>
|
||||
<span class="todo-count">3张</span>
|
||||
</li>
|
||||
</ul>
|
||||
<button class="btn btn-primary">查看详情</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 患者列表 -->
|
||||
<h2 class="section-title">最近患者</h2>
|
||||
<div class="table-container">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>患者姓名</th>
|
||||
<th>病历号</th>
|
||||
<th>年龄</th>
|
||||
<th>最后就诊时间</th>
|
||||
<th>状态</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>张明</td>
|
||||
<td>HN2023001</td>
|
||||
<td>45</td>
|
||||
<td>2023-10-20 09:30</td>
|
||||
<td><span style="color: #67c23a;">已完成</span></td>
|
||||
<td>
|
||||
<button class="btn btn-outline">详情</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>李红</td>
|
||||
<td>HN2023002</td>
|
||||
<td>32</td>
|
||||
<td>2023-10-20 10:15</td>
|
||||
<td><span style="color: #ff9800;">待检查</span></td>
|
||||
<td>
|
||||
<button class="btn btn-outline">详情</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>王建军</td>
|
||||
<td>HN2023003</td>
|
||||
<td>68</td>
|
||||
<td>2023-10-19 14:20</td>
|
||||
<td><span style="color: #d45d79;">住院中</span></td>
|
||||
<td>
|
||||
<button class="btn btn-outline">详情</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
=======
|
||||
<div class="container">
|
||||
<div class="awaitingBtn">
|
||||
<el-button @click="awaitingMedicineBtn">
|
||||
@@ -202,143 +14,10 @@
|
||||
<!-- <div class="logo">
|
||||
<img src="/src/assets/images/jlau.jpg" />
|
||||
</div> -->
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Index">
|
||||
<<<<<<< HEAD
|
||||
import { ref, onMounted, onActivated } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import Chart from 'chart.js/auto';
|
||||
import {
|
||||
getExpirationWarning,
|
||||
} from "./medicationmanagement/statisticalManagement/statisticalManagent";
|
||||
|
||||
const router = useRouter();
|
||||
const total = ref(0);
|
||||
|
||||
function awaitingMedicineBtn() {
|
||||
router.push({ path: '/medicationmanagement/statisticalManagement/earlyWarning' });
|
||||
}
|
||||
|
||||
|
||||
function getExpirationWarningCount() {
|
||||
getExpirationWarning({ pageNo: 1, pageSize: 10 }).then((res) => {
|
||||
total.value = res.data.total || 0;
|
||||
}).catch((err) => {
|
||||
console.error('获取效期预警数量失败:', err);
|
||||
total.value = 0;
|
||||
});
|
||||
}
|
||||
|
||||
let chartInstance = null;
|
||||
|
||||
onActivated(() => {
|
||||
// getExpirationWarningCount();
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
// getExpirationWarningCount();
|
||||
|
||||
const ctx = document.getElementById('statsChart');
|
||||
if (!ctx) return;
|
||||
|
||||
// 销毁已有实例
|
||||
if (chartInstance) {
|
||||
chartInstance.destroy();
|
||||
}
|
||||
|
||||
// 模拟数据:近7天门诊量与预约量
|
||||
const labels = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'];
|
||||
const outpatientData = [310, 335, 305, 345, 370, 270, 210]; // 门诊量(柱状图)
|
||||
const appointmentData = [100, 120, 110, 130, 140, 90, 70]; // 预约量(折线图)
|
||||
|
||||
chartInstance = new Chart(ctx.getContext('2d'), {
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: labels,
|
||||
datasets: [
|
||||
{
|
||||
label: '门诊量',
|
||||
data: outpatientData,
|
||||
backgroundColor: '#91c8e5',
|
||||
borderColor: '#66a8cc',
|
||||
borderWidth: 1,
|
||||
borderRadius: 4,
|
||||
borderSkipped: false,
|
||||
},
|
||||
{
|
||||
label: '预约量',
|
||||
data: appointmentData,
|
||||
type: 'line',
|
||||
borderColor: '#f56c6c',
|
||||
backgroundColor: 'rgba(245, 108, 108, 0.1)',
|
||||
borderWidth: 2,
|
||||
pointBackgroundColor: '#f56c6c',
|
||||
pointBorderColor: '#fff',
|
||||
pointBorderWidth: 2,
|
||||
pointRadius: 4,
|
||||
fill: true,
|
||||
tension: 0.3,
|
||||
lineTension: 0.3,
|
||||
}
|
||||
]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
plugins: {
|
||||
legend: {
|
||||
position: 'top',
|
||||
labels: {
|
||||
font: {
|
||||
size: 12,
|
||||
weight: 'bold'
|
||||
}
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
mode: 'index',
|
||||
intersect: false,
|
||||
backgroundColor: 'rgba(0, 0, 0, 0.7)',
|
||||
titleFont: {
|
||||
size: 13
|
||||
},
|
||||
bodyFont: {
|
||||
size: 12
|
||||
}
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
x: {
|
||||
grid: {
|
||||
display: false
|
||||
},
|
||||
ticks: {
|
||||
font: {
|
||||
size: 11
|
||||
}
|
||||
}
|
||||
},
|
||||
y: {
|
||||
beginAtZero: true,
|
||||
max: 400,
|
||||
stepSize: 50,
|
||||
grid: {
|
||||
color: 'rgba(0, 0, 0, 0.05)'
|
||||
},
|
||||
ticks: {
|
||||
font: {
|
||||
size: 11
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
=======
|
||||
import { getproductReturnPage } from './medicationmanagement/statisticalManagement/statisticalManagent';
|
||||
import { useStore } from '@/store/store';
|
||||
const store = useStore();
|
||||
@@ -374,7 +53,6 @@ function getExpirationWarningCount() {
|
||||
}
|
||||
|
||||
getExpirationWarningCount();
|
||||
>>>>>>> v1.3
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@@ -386,151 +64,15 @@ getExpirationWarningCount();
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
padding: 0;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
.header {
|
||||
height: 60px;
|
||||
background-color: white;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0 24px;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.logo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.logo-text {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #166773;
|
||||
}
|
||||
|
||||
.header-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.notification-badge {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.header-icon {
|
||||
font-size: 20px;
|
||||
cursor: pointer;
|
||||
padding: 8px;
|
||||
border-radius: 4px;
|
||||
transition: background-color 0.3s;
|
||||
}
|
||||
|
||||
.header-icon:hover {
|
||||
background-color: #f5f7fa;
|
||||
}
|
||||
|
||||
.badge {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
background-color: #ff4d4f;
|
||||
color: white;
|
||||
font-size: 12px;
|
||||
padding: 2px 6px;
|
||||
border-radius: 10px;
|
||||
min-width: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.user-info {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 6px 12px;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s;
|
||||
}
|
||||
|
||||
.user-info:hover {
|
||||
background-color: #f5f7fa;
|
||||
}
|
||||
|
||||
.user-avatar {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.main-content {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
width: 200px;
|
||||
background-color: white;
|
||||
box-shadow: 2px 0 4px rgba(0, 0, 0, 0.1);
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.menu-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 16px 24px;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s;
|
||||
border-left: 3px solid transparent;
|
||||
}
|
||||
|
||||
.menu-item:hover {
|
||||
background-color: #f0f9ff;
|
||||
}
|
||||
|
||||
.menu-item.active {
|
||||
background-color: #e6f7ff;
|
||||
border-left-color: #1890ff;
|
||||
color: #1890ff;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.menu-icon {
|
||||
margin-right: 12px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.content-wrapper {
|
||||
flex: 1;
|
||||
padding: 20px;
|
||||
overflow-y: auto;
|
||||
background-color: #f5f7fa;
|
||||
}
|
||||
|
||||
.awaitingBtn {
|
||||
margin-bottom: 20px;
|
||||
|
||||
.el-button{
|
||||
=======
|
||||
.awaitingBtn {
|
||||
.el-button {
|
||||
>>>>>>> v1.3
|
||||
border: 1px #166773 solid;
|
||||
span {
|
||||
color: red;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
.el-button:hover{
|
||||
=======
|
||||
.el-button:hover {
|
||||
>>>>>>> v1.3
|
||||
border: 1px #166773 solid;
|
||||
color: #166773;
|
||||
span {
|
||||
@@ -538,12 +80,9 @@ getExpirationWarningCount();
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 20px;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
.section-title {
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
<<<<<<< HEAD
|
||||
|
||||
import request from '@/utils/request'
|
||||
=======
|
||||
import request from '@/utils/request';
|
||||
>>>>>>> v1.3
|
||||
// 申请单相关接口
|
||||
|
||||
/**
|
||||
@@ -58,19 +53,6 @@ export function getNursingOrdersInfos() {
|
||||
}
|
||||
|
||||
/**
|
||||
<<<<<<< HEAD
|
||||
* 查询护理医嘱信息
|
||||
*/
|
||||
export function getNursingOrdersInfos() {
|
||||
return request({
|
||||
url: '/reg-doctorstation/special-advice/nursing-orders',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
* 保存护理医嘱信息
|
||||
* @param {Object} data - 护理医嘱数据
|
||||
* @param {number} data.encounterId - 就诊id
|
||||
@@ -87,13 +69,8 @@ export function saveNursingOrders(data) {
|
||||
return request({
|
||||
url: '/reg-doctorstation/special-advice/nursing-orders',
|
||||
method: 'post',
|
||||
<<<<<<< HEAD
|
||||
data: data
|
||||
})
|
||||
=======
|
||||
data: data,
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -103,13 +80,8 @@ export function getEncounterNursingOrders(params) {
|
||||
return request({
|
||||
url: '/reg-doctorstation/special-advice/encounter-nursing-orders',
|
||||
method: 'get',
|
||||
<<<<<<< HEAD
|
||||
params: params
|
||||
})
|
||||
=======
|
||||
params: params,
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -24,16 +24,12 @@
|
||||
<el-table-column prop="item" label="项目" width="180" align="center" />
|
||||
<el-table-column prop="currentStatus" label="当前状态" width="260" align="center">
|
||||
<template #default="scope">
|
||||
<<<<<<< HEAD
|
||||
<el-tag :type="getStatusType(scope.row.currentStatus)" size="small" class="status-tag">
|
||||
=======
|
||||
<el-tag
|
||||
v-if="scope.row.currentStatus"
|
||||
:type="getStatusType(scope.row.currentStatus)"
|
||||
size="small"
|
||||
class="status-tag"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
{{ scope.row.currentStatus }}
|
||||
</el-tag>
|
||||
</template>
|
||||
@@ -148,13 +144,8 @@
|
||||
</el-table>
|
||||
<!-- 操作按钮区域 -->
|
||||
<div class="nursing-status-actions">
|
||||
<<<<<<< HEAD
|
||||
<el-button @click="handleCancel" size="small">取消</el-button>
|
||||
<el-button type="primary" @click="handleConfirm" size="small">确定</el-button>
|
||||
=======
|
||||
<el-button @click="handleCancel" size="medium">取消</el-button>
|
||||
<el-button type="primary" @click="handleConfirm" size="medium">确定</el-button>
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
@@ -390,10 +381,6 @@ const fetchNursingStatusData = () => {
|
||||
loading.value = false;
|
||||
|
||||
if (res.code === 200 && res.data) {
|
||||
<<<<<<< HEAD
|
||||
// 填充各列表数据
|
||||
nursingLevelList.value = res.data.nursingList || [];
|
||||
=======
|
||||
let nursingList = [];
|
||||
let nursingOrderNameList = ['I级护理', 'II级护理', 'III级护理', '特级护理'];
|
||||
nursingOrderNameList.forEach((str) => {
|
||||
@@ -405,7 +392,6 @@ const fetchNursingStatusData = () => {
|
||||
});
|
||||
// 填充各列表数据
|
||||
nursingLevelList.value = nursingList || [];
|
||||
>>>>>>> v1.3
|
||||
conditionList.value = res.data.conditionList || [];
|
||||
dietList.value = res.data.dietList || [];
|
||||
positionList.value = res.data.positionList || [];
|
||||
|
||||
@@ -28,16 +28,12 @@
|
||||
<span>{{ node.label }}</span>
|
||||
<span class="tree-node-actions">
|
||||
<template v-if="node.level === 1 && data.name != '常用' && data.name != '历史'">
|
||||
<<<<<<< HEAD
|
||||
<el-button style="color: #000000" type="text" size="small" @click.stop="addChild(data)">
|
||||
=======
|
||||
<el-button
|
||||
style="color: #000000"
|
||||
type="text"
|
||||
size="small"
|
||||
@click.stop="addChild(data)"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-icon>
|
||||
<Plus />
|
||||
</el-icon>
|
||||
@@ -46,13 +42,6 @@
|
||||
<el-popconfirm width="200" :hide-after="10" title="确认删除此常用诊断吗" placement="top-start"
|
||||
@confirm="deleteChild(data)">
|
||||
<template #reference>
|
||||
<<<<<<< HEAD
|
||||
<el-button style="color: #000000" v-if="
|
||||
node.level === 2 &&
|
||||
node.parent.data.name != '常用' &&
|
||||
node.parent.data.name != '历史'
|
||||
" type="text" size="small" @click.stop="">
|
||||
=======
|
||||
<el-button
|
||||
style="color: #000000"
|
||||
v-if="
|
||||
@@ -64,7 +53,6 @@
|
||||
size="small"
|
||||
@click.stop=""
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-icon>
|
||||
<Minus />
|
||||
</el-icon>
|
||||
@@ -197,11 +185,8 @@ import { deleteTcmDiagnosis } from '../../../../doctorstation/components/api.js'
|
||||
import diagnosisdialog from '../diagnosis/diagnosisdialog.vue';
|
||||
import AddDiagnosisDialog from './addDiagnosisDialog.vue';
|
||||
import diagnosislist from '../diagnosis/diagnosislist.vue';
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
import { patientInfo } from '../../store/patient.js';
|
||||
import { ElMessage } from 'element-plus';
|
||||
>>>>>>> v1.3
|
||||
// const diagnosisList = ref([]);
|
||||
const allowAdd = ref(false);
|
||||
const tree = ref([]);
|
||||
@@ -230,12 +215,8 @@ const rules = ref({
|
||||
medTypeCode: [{ required: true, message: '请选择诊断类型', trigger: 'change' }],
|
||||
diagSrtNo: [{ required: true, message: '请输入诊断序号', trigger: 'change' }],
|
||||
});
|
||||
<<<<<<< HEAD
|
||||
const isSaving = ref(false);
|
||||
=======
|
||||
const diagnosisNetDatas = ref([]);
|
||||
|
||||
>>>>>>> v1.3
|
||||
watch(
|
||||
() => form.value.diagnosisList,
|
||||
() => {
|
||||
@@ -266,31 +247,6 @@ function getList() {
|
||||
|
||||
getEncounterDiagnosis(props.patientInfo.encounterId).then((res) => {
|
||||
if (res.code == 200) {
|
||||
<<<<<<< HEAD
|
||||
// 为每个诊断项添加默认的诊断医生和时间(如果不存在)
|
||||
const diagnosisList = res.data.map(item => ({
|
||||
...item,
|
||||
diagnosisDoctor: item.diagnosisDoctor || props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name,
|
||||
diagnosisTime: item.diagnosisTime || new Date().toLocaleString('zh-CN')
|
||||
}));
|
||||
|
||||
// 对获取的数据进行排序
|
||||
diagnosisList.sort((a, b) => {
|
||||
const aNo = typeof a.diagSrtNo === 'number' ? a.diagSrtNo : 9999;
|
||||
const bNo = typeof b.diagSrtNo === 'number' ? b.diagSrtNo : 9999;
|
||||
return aNo - bNo;
|
||||
});
|
||||
|
||||
form.value.diagnosisList = diagnosisList;
|
||||
emits('diagnosisSave', false);
|
||||
}
|
||||
});
|
||||
|
||||
getTcmDiagnosis({ encounterId: props.patientInfo.encounterId }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
if (res.data.illness && res.data.illness.length > 0 && res.data.symptom) {
|
||||
const newList = [];
|
||||
=======
|
||||
const datas = (res.data || []).map((item) => {
|
||||
let obj = {
|
||||
...item,
|
||||
@@ -311,7 +267,6 @@ function getList() {
|
||||
if (res.code == 200) {
|
||||
if (res.data.illness.length > 0) {
|
||||
diagnosisNetDatas.value = res.data.illness;
|
||||
>>>>>>> v1.3
|
||||
res.data.illness.forEach((item, index) => {
|
||||
newList.push({
|
||||
name: item.name + '-' + (res.data.symptom[index]?.name || ''),
|
||||
@@ -488,27 +443,6 @@ function handleDeleteDiagnosis(row, index) {
|
||||
//中医诊断用-拼接 例如:疳气-表里俱实证
|
||||
const nameArr = row.name?.split('-') || [];
|
||||
if (row.conditionId) {
|
||||
<<<<<<< HEAD
|
||||
delEncounterDiagnosis(row.conditionId).then(() => {
|
||||
// 不要立即调用getList(),而是从当前列表中移除
|
||||
form.value.diagnosisList.splice(index, 1);
|
||||
// 重新排序剩余的项目
|
||||
const sortedList = [...form.value.diagnosisList].sort((a, b) => {
|
||||
const aNo = typeof a.diagSrtNo === 'number' ? a.diagSrtNo : 9999;
|
||||
const bNo = typeof b.diagSrtNo === 'number' ? b.diagSrtNo : 9999;
|
||||
return aNo - bNo;
|
||||
});
|
||||
|
||||
// 重新分配连续的序号
|
||||
sortedList.forEach((item, idx) => {
|
||||
item.diagSrtNo = idx + 1;
|
||||
});
|
||||
|
||||
// 更新列表
|
||||
form.value.diagnosisList = sortedList.map(item => ({ ...item }));
|
||||
getTree();
|
||||
});
|
||||
=======
|
||||
if (nameArr.length > 1) {
|
||||
deleteTcmDiagnosis(row.syndromeGroupNo).then(() => {
|
||||
getList();
|
||||
@@ -520,7 +454,6 @@ function handleDeleteDiagnosis(row, index) {
|
||||
getTree();
|
||||
});
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
} else {
|
||||
console.log('row============>', JSON.stringify(row));
|
||||
console.log('item============>', index);
|
||||
@@ -729,7 +662,3 @@ defineExpose({ getList, getDetail, handleSaveDiagnosis });
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -100,17 +100,6 @@ export function transferOrganization(data) {
|
||||
return request({
|
||||
url: '/reg-doctorstation/special-advice/transfer-organization-orders',
|
||||
method: 'post',
|
||||
<<<<<<< HEAD
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
=======
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -56,10 +56,6 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
<<<<<<< HEAD
|
||||
import { getCurrentInstance, onBeforeMount, onMounted, reactive, ref, computed } from 'vue';
|
||||
import BloodTransfusion from './bloodTransfusion';
|
||||
=======
|
||||
import {
|
||||
getCurrentInstance,
|
||||
onBeforeMount,
|
||||
@@ -70,7 +66,6 @@ import {
|
||||
nextTick,
|
||||
} from 'vue';
|
||||
import BloodTransfusion from './bloodTransfusion.vue';
|
||||
>>>>>>> v1.3
|
||||
import { patientInfo } from '../../../store/patient.js';
|
||||
import Surgery from './surgery.vue';
|
||||
import LaboratoryTests from './laboratoryTests.vue';
|
||||
|
||||
@@ -9,11 +9,7 @@
|
||||
>
|
||||
<div style="padding: 0 80px">
|
||||
<el-form :model="form" :rules="rules" ref="formRef">
|
||||
<<<<<<< HEAD
|
||||
<el-form-item label="出院方式">
|
||||
=======
|
||||
<el-form-item label="出院方式" prop="outpatientType">
|
||||
>>>>>>> v1.3
|
||||
<el-select v-model="form.outpatientType">
|
||||
<el-option
|
||||
v-for="(item, index) in dscg_way"
|
||||
@@ -23,21 +19,13 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<el-form-item label="出院时间">
|
||||
=======
|
||||
<el-form-item label="出院时间" prop="outpatientTime">
|
||||
>>>>>>> v1.3
|
||||
<el-radio-group v-model="form.outpatientTime">
|
||||
<el-radio value="1">今日</el-radio>
|
||||
<el-radio value="2">明日</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<el-form-item label="出院描述"
|
||||
=======
|
||||
<el-form-item label="出院描述" prop="outpatientDescription"
|
||||
>>>>>>> v1.3
|
||||
><el-input v-model="form.outpatientDescription" type="textarea" rows="5" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@@ -52,11 +40,6 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
<<<<<<< HEAD
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { dscg_way } = proxy.useDict('dscg_way');
|
||||
const dialogVisible = ref(false);
|
||||
=======
|
||||
import { toRaw } from 'vue';
|
||||
import { leaveHospital } from '../../api';
|
||||
import { dayjs } from 'element-plus';
|
||||
@@ -85,14 +68,11 @@ const { dscg_way } = proxy.useDict('dscg_way');
|
||||
const dialogVisible = ref(false);
|
||||
const formRef = ref(null);
|
||||
const emit = defineEmits(['success']);
|
||||
>>>>>>> v1.3
|
||||
const form = reactive({
|
||||
outpatientType: [],
|
||||
outpatientTime: '',
|
||||
outpatientDescription: '',
|
||||
});
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
const rules = {
|
||||
outpatientType: [{ required: true, message: '请选择出院方式', trigger: 'change' }],
|
||||
outpatientTime: [{ required: true, message: '请选择出院时间', trigger: 'change' }],
|
||||
@@ -106,18 +86,11 @@ function getEndTime() {
|
||||
}
|
||||
return date.format('YYYY-MM-DD HH:mm:ss');
|
||||
}
|
||||
>>>>>>> v1.3
|
||||
|
||||
function openDialog() {
|
||||
dialogVisible.value = true;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
defineExpose({
|
||||
openDialog,
|
||||
});
|
||||
</script>
|
||||
=======
|
||||
const submitApplicationForm = async () => {
|
||||
if (!formRef.value) return;
|
||||
try {
|
||||
@@ -153,4 +126,3 @@ defineExpose({
|
||||
openDialog,
|
||||
});
|
||||
</script>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -65,11 +65,7 @@
|
||||
<el-radio-button label="1">长期</el-radio-button>
|
||||
<el-radio-button label="2">临时</el-radio-button>
|
||||
</el-radio-group>
|
||||
<<<<<<< HEAD
|
||||
<el-select v-model="orderClassCode" placeholder="医嘱类型" style="width: 240px">
|
||||
=======
|
||||
<el-select v-model="orderClassCode" placeholder="医嘱类型" style="width: 240px" clearable>
|
||||
>>>>>>> v1.3
|
||||
<el-option
|
||||
v-for="item in adviceTypeList"
|
||||
:key="item.value"
|
||||
@@ -77,11 +73,6 @@
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<<<<<<< HEAD
|
||||
<el-select v-model="orderStatus" placeholder="医嘱状态" style="width: 240px"> </el-select>
|
||||
<el-button link type="primary" @click="handleTransferOrg">转科</el-button>
|
||||
<el-button link type="primary" @click="handleLeaveHospital">出院</el-button>
|
||||
=======
|
||||
<el-select v-model="orderStatus" placeholder="医嘱状态" style="width: 240px" clearable>
|
||||
<el-option
|
||||
v-for="item in statusOption"
|
||||
@@ -96,518 +87,20 @@
|
||||
</el-button>
|
||||
<el-button link type="primary" @click="onNursingStatus">护理状态</el-button>
|
||||
<el-button link type="primary" @click="refresh()">刷新数据</el-button>
|
||||
>>>>>>> v1.3
|
||||
</el-space>
|
||||
</div>
|
||||
</div>
|
||||
<div class="inpatientDoctor-order-table">
|
||||
<el-table
|
||||
<<<<<<< HEAD
|
||||
max-height="650"
|
||||
ref="prescriptionRef"
|
||||
:data="prescriptionList"
|
||||
=======
|
||||
height="100%"
|
||||
ref="prescriptionRef"
|
||||
:data="filterPrescriptionList"
|
||||
>>>>>>> v1.3
|
||||
row-key="uniqueKey"
|
||||
border
|
||||
@cell-click="clickRow"
|
||||
@row-dblclick="clickRowDb"
|
||||
v-loading="loading"
|
||||
:expand-row-keys="expandOrder"
|
||||
<<<<<<< HEAD
|
||||
>
|
||||
<el-table-column type="expand" width="1" style="width: 0">
|
||||
<template #default="scope">
|
||||
<el-form :model="scope.row" :rules="rowRules" :ref="'formRef' + scope.$index">
|
||||
<div
|
||||
class="expend_div"
|
||||
style="padding: 16px; background: #f8f9fa; border-radius: 8px"
|
||||
>
|
||||
<template v-if="scope.row.adviceType == 1">
|
||||
<div style="display: flex; align-items: center; margin-bottom: 16px; gap: 16px">
|
||||
<span class="medicine-title">
|
||||
{{
|
||||
scope.row.adviceName +
|
||||
' ' +
|
||||
scope.row.volume +
|
||||
' [' +
|
||||
Number(scope.row.unitPrice).toFixed(2) +
|
||||
' 元' +
|
||||
'/' +
|
||||
scope.row.unitCode_dictText +
|
||||
']'
|
||||
}}
|
||||
</span>
|
||||
|
||||
<!-- <el-form-item prop="conditionDefinitionId">
|
||||
<el-select
|
||||
v-model="scope.row.conditionDefinitionId"
|
||||
style="width: 180px; margin: 0 20px"
|
||||
placeholder="诊断"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in diagnosisList"
|
||||
:key="item.conditionId"
|
||||
:label="item.name"
|
||||
:value="item.definitionId"
|
||||
@click="handleDiagnosisChange(item, scope.row)"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item prop="lotNumber" label="药房:">
|
||||
<el-select
|
||||
v-model="scope.row.inventoryId"
|
||||
style="width: 180px; margin-right: 20px"
|
||||
placeholder="药房"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in scope.row.stockList"
|
||||
:key="item.inventoryId"
|
||||
:value="item.inventoryId"
|
||||
:label="
|
||||
item.locationName +
|
||||
' ' +
|
||||
'批次号: ' +
|
||||
item.lotNumber +
|
||||
' ' +
|
||||
' 库存:' +
|
||||
stockFormat(
|
||||
scope.row.partPercent,
|
||||
scope.row.unitCode_dictText,
|
||||
scope.row.minUnitCode_dictText,
|
||||
item.quantity
|
||||
) +
|
||||
' 单价:' +
|
||||
item.price.toFixed(2) +
|
||||
'/' +
|
||||
item.unitCode_dictText
|
||||
"
|
||||
@click="handleNumberClick(item, scope.$index)"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="执行次数:"
|
||||
prop="executeNum"
|
||||
class="required-field"
|
||||
data-prop="executeNum"
|
||||
v-if="scope.row.injectFlag == 1"
|
||||
>
|
||||
<el-input-number
|
||||
:min="1"
|
||||
v-model="scope.row.executeNum"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
:ref="(el) => (inputRefs.executeNum = el)"
|
||||
@keyup.enter.prevent="handleEnter('executeNum', scope.row, scope.$index)"
|
||||
style="width: 70px; margin-right: 20px"
|
||||
/> </el-form-item
|
||||
>x <span class="medicine-info"> 诊断:{{ diagnosisName }} </span>x
|
||||
<span class="medicine-info"> 皮试:{{ scope.row.skinTestFlag_enumText }} </span>
|
||||
<span class="medicine-info">
|
||||
注射药品:{{ scope.row.injectFlag_enumText }}
|
||||
</span>
|
||||
<span class="total-amount">
|
||||
总金额:{{ scope.row.totalPrice ? scope.row.totalPrice + ' 元' : '0.00 元' }}
|
||||
</span>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; gap: 12px; flex-wrap: wrap">
|
||||
<div class="form-group">
|
||||
<!-- 单次剂量 -->
|
||||
<el-form-item
|
||||
label="单次用量:"
|
||||
prop="doseQuantity"
|
||||
class="required-field"
|
||||
data-prop="doseQuantity"
|
||||
>
|
||||
<el-input-number
|
||||
:min="0"
|
||||
v-model="scope.row.doseQuantity"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
style="width: 70px; margin-right: 20px"
|
||||
:ref="(el) => (inputRefs.doseQuantity = el)"
|
||||
@input="convertValues(scope.row, scope.$index)"
|
||||
@keyup.enter.prevent="
|
||||
handleEnter('doseQuantity', scope.row, scope.$index)
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 剂量单位 -->
|
||||
<el-select
|
||||
v-model="scope.row.minUnitCode"
|
||||
style="width: 70px; margin-right: 20px"
|
||||
placeholder=" "
|
||||
>
|
||||
<template v-for="item in scope.row.unitCodeList" :key="item.value">
|
||||
<el-option
|
||||
v-if="
|
||||
scope.row.unitCodeList.length == 3
|
||||
? item.type == unitMap['minUnit']
|
||||
: item.type == unitMap['unit']
|
||||
"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</template>
|
||||
</el-select>
|
||||
<span>=</span>
|
||||
<!-- 单次剂量 -->
|
||||
<el-form-item prop="dose" class="required-field" data-prop="dose">
|
||||
<el-input-number
|
||||
v-model="scope.row.dose"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
style="width: 70px; margin: 0 20px"
|
||||
:ref="(el) => (inputRefs.dose = el)"
|
||||
@input="convertDoseValues(scope.row, scope.$index)"
|
||||
@keyup.enter.prevent="handleEnter('dose', scope.row, scope.$index)"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 全部单位 -->
|
||||
<el-select
|
||||
v-model="scope.row.doseUnitCode"
|
||||
style="width: 70px"
|
||||
placeholder=" "
|
||||
@change="convertValues(scope.row, scope.$index)"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in scope.row.unitCodeList"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
:key="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<el-form-item
|
||||
label="给药途径:"
|
||||
prop="methodCode"
|
||||
class="required-field"
|
||||
data-prop="methodCode"
|
||||
>
|
||||
<el-select
|
||||
v-model="scope.row.methodCode"
|
||||
placeholder="给药途径"
|
||||
clearable
|
||||
filterable
|
||||
:ref="(el) => (inputRefs.methodCode = el)"
|
||||
@keyup.enter.prevent="
|
||||
() => {
|
||||
inputRefs.methodCode.blur();
|
||||
}
|
||||
"
|
||||
@visible-change="
|
||||
(value) => {
|
||||
if (!value) {
|
||||
handleEnter('methodCode', scope.row, scope.$index);
|
||||
}
|
||||
}
|
||||
"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in method_code"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="用药频次:"
|
||||
prop="rateCode"
|
||||
class="required-field"
|
||||
data-prop="rateCode"
|
||||
>
|
||||
<el-select
|
||||
v-model="scope.row.rateCode"
|
||||
placeholder="频次"
|
||||
style="width: 120px"
|
||||
filterable
|
||||
@keyup.enter.prevent="
|
||||
() => {
|
||||
inputRefs.rateCode.blur();
|
||||
}
|
||||
"
|
||||
@change="calculateTotalAmount(scope.row, scope.$index)"
|
||||
@visible-change="
|
||||
(value) => {
|
||||
if (!value) {
|
||||
handleEnter('rateCode', scope.row, scope.$index);
|
||||
}
|
||||
}
|
||||
"
|
||||
:ref="(el) => (inputRefs.rateCode = el)"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in rate_code"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 10px;
|
||||
"
|
||||
>
|
||||
<div class="form-group">
|
||||
<el-form-item
|
||||
label="用药天数:"
|
||||
prop="dispensePerDuration"
|
||||
class="required-field"
|
||||
data-prop="dispensePerDuration"
|
||||
>
|
||||
<el-input-number
|
||||
v-model="scope.row.dispensePerDuration"
|
||||
style="width: 80px"
|
||||
:min="1"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
:ref="(el) => (inputRefs.dispensePerDuration = el)"
|
||||
@keyup.enter.prevent="
|
||||
handleEnter('dispensePerDuration', scope.row, scope.$index)
|
||||
"
|
||||
>
|
||||
<template #suffix>天</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
label="总量:"
|
||||
prop="quantity"
|
||||
class="required-field"
|
||||
data-prop="quantity"
|
||||
>
|
||||
<el-input-number
|
||||
v-model="scope.row.quantity"
|
||||
style="width: 70px"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
:ref="(el) => (inputRefs.quantity = el)"
|
||||
@keyup.enter.prevent="handleEnter('quantity', scope.row, scope.$index)"
|
||||
@input="calculateTotalPrice(scope.row, scope.$index)"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-select
|
||||
v-model="scope.row.unitCode"
|
||||
style="width: 70px; margin-right: 20px"
|
||||
placeholder=" "
|
||||
@change="calculateTotalAmount(scope.row, scope.$index)"
|
||||
>
|
||||
<template v-for="item in scope.row.unitCodeList" :key="item.value">
|
||||
<el-option
|
||||
v-if="item.type != unitMap['dose']"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</template>
|
||||
</el-select>
|
||||
</div>
|
||||
<el-button type="primary" @click="handleSaveSign(scope.row, scope.$index)">
|
||||
确定
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else-if="scope.row.adviceType == 2">
|
||||
<div style="display: flex; align-items: center; margin-bottom: 16px; gap: 16px">
|
||||
<span style="font-size: 16px; font-weight: 600">
|
||||
{{
|
||||
scope.row.adviceName +
|
||||
' ' +
|
||||
scope.row.volume +
|
||||
' ' +
|
||||
scope.row.unitPrice +
|
||||
' 元/' +
|
||||
scope.row.unitCode_dictText
|
||||
}}
|
||||
</span>
|
||||
<div class="form-group">
|
||||
<el-select
|
||||
v-model="scope.row.lotNumber"
|
||||
style="width: 180px; margin-right: 20px"
|
||||
placeholder="药房"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in scope.row.stockList"
|
||||
:key="item.lotNumber"
|
||||
:value="item.lotNumber"
|
||||
:label="
|
||||
item.locationName +
|
||||
' ' +
|
||||
'批次号: ' +
|
||||
item.lotNumber +
|
||||
' ' +
|
||||
' 库存:' +
|
||||
stockFormat(
|
||||
scope.row.partPercent,
|
||||
scope.row.unitCode_dictText,
|
||||
scope.row.minUnitCode_dictText,
|
||||
item.quantity
|
||||
) +
|
||||
' 单价:' +
|
||||
item.price.toFixed(2) +
|
||||
'/' +
|
||||
item.unitCode_dictText
|
||||
"
|
||||
@click="handleNumberClick(item, scope.$index)"
|
||||
/>
|
||||
</el-select>
|
||||
<el-form-item
|
||||
label="数量:"
|
||||
prop="quantity"
|
||||
class="required-field"
|
||||
data-prop="quantity"
|
||||
>
|
||||
<el-input-number
|
||||
placeholder="数量"
|
||||
v-model="scope.row.quantity"
|
||||
style="width: 70px"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
@keyup.enter.prevent="handleEnter('quantity', scope.row, scope.$index)"
|
||||
@input="calculateTotalAmount(scope.row, scope.$index)"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-select
|
||||
v-model="scope.row.unitCode"
|
||||
style="width: 70px; margin-right: 20px"
|
||||
placeholder=" "
|
||||
@change="calculateTotalAmount(scope.row, scope.$index)"
|
||||
>
|
||||
<template v-for="item in scope.row.unitCodeList" :key="item.value">
|
||||
<el-option
|
||||
v-if="item.type != unitMap['dose']"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
@click="
|
||||
() => {
|
||||
scope.row.unitCode_dictText = item.label;
|
||||
}
|
||||
"
|
||||
/>
|
||||
</template>
|
||||
</el-select>
|
||||
<span class="total-amount">
|
||||
总金额:{{
|
||||
scope.row.totalPrice ? scope.row.totalPrice + ' 元' : '0.00 元'
|
||||
}}
|
||||
</span>
|
||||
</div>
|
||||
<el-button type="primary" @click="handleSaveSign(scope.row, scope.$index)">
|
||||
确定
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div style="display: flex; align-items: center; margin-bottom: 16px; gap: 16px">
|
||||
<span style="font-size: 16px; font-weight: 600">
|
||||
{{ scope.row.adviceName }}
|
||||
{{
|
||||
scope.row.unitPrice
|
||||
? Number(scope.row.unitPrice).toFixed(2) + '/次'
|
||||
: '-' + '元'
|
||||
}}
|
||||
</span>
|
||||
<div class="form-group">
|
||||
<el-form-item
|
||||
label="执行次数:"
|
||||
prop="quantity"
|
||||
class="required-field"
|
||||
data-prop="quantity"
|
||||
>
|
||||
<el-input-number
|
||||
placeholder="执行次数"
|
||||
style="width: 100px; margin: 0 20px"
|
||||
v-model="scope.row.quantity"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
@keyup.enter.prevent="handleEnter('quantity', scope.row, scope.$index)"
|
||||
@input="calculateTotalPrice(scope.row, scope.$index)"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="执行科室:"
|
||||
prop="orgId"
|
||||
class="required-field"
|
||||
data-prop="orgId"
|
||||
>
|
||||
<el-tree-select
|
||||
clearable
|
||||
v-model="scope.row.orgId"
|
||||
style="width: 200px"
|
||||
:data="organization"
|
||||
:props="{ value: 'id', label: 'name', children: 'children' }"
|
||||
value-key="id"
|
||||
check-strictly
|
||||
default-expand-all
|
||||
@change="(value) => handleOrgChange(value, scope.$index)"
|
||||
placeholder="请选择执行科室"
|
||||
/>
|
||||
</el-form-item>
|
||||
<span class="total-amount">
|
||||
总金额:{{
|
||||
scope.row.totalPrice ? scope.row.totalPrice + ' 元' : '0.00 元'
|
||||
}}
|
||||
</span>
|
||||
<span style="font-size: 16px; font-weight: 600">
|
||||
<!-- 金额: {{ scope.row.priceList[0].price }} -->
|
||||
</span>
|
||||
</div>
|
||||
<el-button type="primary" @click="handleSaveSign(scope.row, scope.$index)">
|
||||
确定
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</el-form>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="" align="center" prop="groupId" width="60">
|
||||
<template #header>
|
||||
<el-checkbox
|
||||
v-model="checkAll"
|
||||
@change="
|
||||
(value) => {
|
||||
prescriptionList.forEach((item, index) => {
|
||||
groupIndexList.push(index);
|
||||
item.check = value;
|
||||
});
|
||||
}
|
||||
"
|
||||
/>
|
||||
</template>
|
||||
<template #default="scope">
|
||||
<el-checkbox
|
||||
v-model="scope.row.check"
|
||||
@dblclick.stop=""
|
||||
placeholder=""
|
||||
@change="(value) => handleCheckBoxChange(value, scope.$index, scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="组" align="center" width="60">
|
||||
<template #default="scope">
|
||||
<div v-if="groupMarkers[scope.$index] === '┏'">┏</div>
|
||||
<div v-if="groupMarkers[scope.$index] === '┗'">┗</div>
|
||||
<div v-if="groupMarkers[scope.$index] === '┃'">┃</div>
|
||||
<!-- <div v-if="groupMarkers[scope.$index] === 'all'">┏</div> -->
|
||||
<!-- <div v-if="groupMarkers[scope.$index] === 'all'">┗</div> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="类型" align="center" prop="" width="120">
|
||||
<template #default="scope">
|
||||
=======
|
||||
@select="handleSelectionChange"
|
||||
>
|
||||
<el-table-column type="expand" width="1" style="width: 0">
|
||||
@@ -630,31 +123,20 @@
|
||||
<el-table-column label="类型" align="center" prop="" width="120">
|
||||
<template #default="scope">
|
||||
{{ console.log(scope.row, 1111) }}
|
||||
>>>>>>> v1.3
|
||||
<el-radio-group
|
||||
v-model="scope.row.therapyEnum"
|
||||
size="small"
|
||||
v-if="getRowDisabled(scope.row)"
|
||||
<<<<<<< HEAD
|
||||
>
|
||||
<el-radio-button label="长期" value="1" />
|
||||
<el-radio-button label="临时" value="2" />
|
||||
=======
|
||||
@change="(val) => handleTherapyChange(val, scope.row)"
|
||||
>
|
||||
<el-radio-button label="1">长期</el-radio-button>
|
||||
<el-radio-button label="2">临时</el-radio-button>
|
||||
>>>>>>> v1.3
|
||||
</el-radio-group>
|
||||
<span
|
||||
v-else
|
||||
:style="scope.row.therapyEnum == '1' ? 'color: #a6745c' : 'color: #3787a5'"
|
||||
>
|
||||
<<<<<<< HEAD
|
||||
{{ scope.row.therapyEnum_enumText }}
|
||||
=======
|
||||
{{ scope.row.therapyEnum === '1' ? '长期' : '临时' }}
|
||||
>>>>>>> v1.3
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -662,11 +144,7 @@
|
||||
<template #default="scope">
|
||||
<template v-if="getRowDisabled(scope.row)">
|
||||
<el-select
|
||||
<<<<<<< HEAD
|
||||
style="width: 35%; margin-right: 20px"
|
||||
=======
|
||||
style="width: 35%; margin-right: 8px"
|
||||
>>>>>>> v1.3
|
||||
v-model="scope.row.adviceType"
|
||||
:ref="'adviceTypeRef' + scope.$index"
|
||||
@change="
|
||||
@@ -676,10 +154,7 @@
|
||||
adviceQueryParams.adviceType = value;
|
||||
}
|
||||
"
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
clearable
|
||||
>>>>>>> v1.3
|
||||
>
|
||||
<el-option
|
||||
v-for="item in adviceTypeList"
|
||||
@@ -710,11 +185,7 @@
|
||||
<template #reference>
|
||||
<el-input
|
||||
:ref="'adviceRef' + scope.$index"
|
||||
<<<<<<< HEAD
|
||||
style="width: 50%"
|
||||
=======
|
||||
style="width: 62%"
|
||||
>>>>>>> v1.3
|
||||
v-model="scope.row.adviceName"
|
||||
placeholder="请选择项目"
|
||||
@input="handleChange"
|
||||
@@ -791,16 +262,6 @@
|
||||
{{ console.log(scope.row) }}
|
||||
<span v-if="!scope.row.isEdit && scope.row.adviceType == 1" style="text-align: right">
|
||||
{{
|
||||
<<<<<<< HEAD
|
||||
scope.row.rateCode_dictText
|
||||
? scope.row.rateCode_dictText +
|
||||
' ' +
|
||||
scope.row.dispensePerDuration +
|
||||
'天' +
|
||||
' ' +
|
||||
scope.row.methodCode_dictText
|
||||
: ''
|
||||
=======
|
||||
[
|
||||
scope.row.rateCode_dictText,
|
||||
scope.row.dispensePerDuration ? scope.row.dispensePerDuration + '天' : '',
|
||||
@@ -808,7 +269,6 @@
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join(' ')
|
||||
>>>>>>> v1.3
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
@@ -848,10 +308,6 @@
|
||||
:diagnosis="diagnosisInfo"
|
||||
:patientInfo="patientInfo"
|
||||
@userPrescriptionHistory="handleSaveHistory"
|
||||
<<<<<<< HEAD
|
||||
/> -->
|
||||
<LeaveHospitalDialog ref="leaveHospitalDialogRef" />
|
||||
=======
|
||||
/>
|
||||
<LeaveHospitalDialog
|
||||
ref="leaveHospitalDialogRef"
|
||||
@@ -861,7 +317,6 @@
|
||||
:encounter-diagnosis-id="encounterDiagnosisId"
|
||||
@success="handleLeaveHospitalSuccess"
|
||||
/>
|
||||
>>>>>>> v1.3
|
||||
<TransferOrganizationDialog ref="transferOrganizationRef" />
|
||||
</div>
|
||||
<!-- <el-drawer v-model="openDrawer" size="100%">
|
||||
@@ -902,12 +357,9 @@ import useUserStore from '@/store/modules/user';
|
||||
import ApplicationFormBottomBtn from './applicationForm/applicationFormBottomBtn.vue';
|
||||
import LeaveHospitalDialog from './applicationForm/leaveHospitalDialog.vue';
|
||||
import TransferOrganizationDialog from './applicationForm/transferOrganizationDialog.vue';
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
import NursingStatus from '@/views/inpatientDoctor/home/components/applicationShow/nursingStatus.vue';
|
||||
import OrderForm from './OrderForm.vue';
|
||||
import { computed, watch } from 'vue';
|
||||
>>>>>>> v1.3
|
||||
const emit = defineEmits(['selectDiagnosis']);
|
||||
const total = ref(0);
|
||||
const queryParams = ref({});
|
||||
@@ -1937,18 +1389,6 @@ function handleSingOut() {
|
||||
|
||||
// 停嘱
|
||||
function handleStopAdvice() {
|
||||
<<<<<<< HEAD
|
||||
let requestIdList = prescriptionList.value
|
||||
.filter((item) => {
|
||||
return item.check;
|
||||
})
|
||||
.map((item) => {
|
||||
return {
|
||||
requestId: item.requestId,
|
||||
adviceType: item.adviceType,
|
||||
};
|
||||
});
|
||||
=======
|
||||
let selectRows = prescriptionRef.value.getSelectionRows();
|
||||
console.log('selectRows======>', JSON.stringify(selectRows));
|
||||
if ((selectRows || []).length <= 0) {
|
||||
@@ -2018,7 +1458,6 @@ function handleStopAdvice() {
|
||||
adviceType: item.adviceType,
|
||||
};
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
// if (requestIdList.length == 0) {
|
||||
// proxy.$modal.msgWarning('仅长期医嘱可停止');
|
||||
// return;
|
||||
@@ -2452,25 +1891,9 @@ function sortPrescriptionList() {
|
||||
}
|
||||
|
||||
function handleLeaveHospital() {
|
||||
<<<<<<< HEAD
|
||||
proxy.$refs['leaveHospitalDialogRef'].openDialog();
|
||||
}
|
||||
function handleTransferOrg() {
|
||||
proxy.$refs['transferOrganizationRef'].openDialog();
|
||||
}
|
||||
|
||||
// 处理行chexkbox选中
|
||||
function handleCheckBoxChange(value, index, row) {
|
||||
// 选中将当前行索引记录下来,取消将当前行索引删除
|
||||
if (value) {
|
||||
groupIndexList.value.push(index);
|
||||
} else {
|
||||
groupIndexList.value.splice(groupIndexList.value.indexOf(index), 1);
|
||||
=======
|
||||
if (!patientInfo.value) {
|
||||
proxy.$modal.msgWarning('请先选择患者');
|
||||
return;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
proxy.$refs['leaveHospitalDialogRef'].openDialog();
|
||||
}
|
||||
|
||||
@@ -5,10 +5,6 @@
|
||||
-->
|
||||
<template>
|
||||
<div class="emr-use-container">
|
||||
<<<<<<< HEAD
|
||||
<div class="disBtn" :class="{'disLeftBtnNor':leftShow,'disLeftBtnAct':!leftShow}" @click="disNode"><img src="../../../../assets/icons/svg/foldup.svg"></div>
|
||||
<div class="disBtn" :class="{'disRightBtnNor':rightShow,'disRightBtnAct':!rightShow}" @click="disNode_R"><img src="../../../../assets/icons/svg/foldup.svg"></div>
|
||||
=======
|
||||
<div
|
||||
class="disBtn"
|
||||
:class="{ disLeftBtnNor: leftShow, disLeftBtnAct: !leftShow }"
|
||||
@@ -23,7 +19,6 @@
|
||||
>
|
||||
<img src="../../../../assets/icons/svg/foldup.svg" />
|
||||
</div>
|
||||
>>>>>>> v1.3
|
||||
<transition name="el-zoom-in-left">
|
||||
<div class="template-tree-container" v-if="leftShow">
|
||||
<div class="search-box">
|
||||
@@ -35,15 +30,6 @@
|
||||
</div>
|
||||
<el-scrollbar class="template-tree-scrollbar">
|
||||
<el-tree
|
||||
<<<<<<< HEAD
|
||||
ref="templateTree"
|
||||
:data="templateData"
|
||||
:props="defaultProps"
|
||||
auto-expand-parent
|
||||
node-key="id"
|
||||
@node-click="handleNodeClick"
|
||||
class="template-tree"
|
||||
=======
|
||||
ref="templateTree"
|
||||
:data="templateData"
|
||||
:props="defaultProps"
|
||||
@@ -51,7 +37,6 @@
|
||||
node-key="id"
|
||||
@node-click="handleNodeClick"
|
||||
class="template-tree"
|
||||
>>>>>>> v1.3
|
||||
></el-tree>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
@@ -91,31 +76,18 @@
|
||||
<el-tabs v-model="quicklyactiveName" type="card">
|
||||
<el-tab-pane label="历史" name="history">
|
||||
<History
|
||||
<<<<<<< HEAD
|
||||
@historyClick="handleHistoryClick"
|
||||
ref="historyRef"
|
||||
v-model:definitionId="currentSelectTemplate.id"
|
||||
=======
|
||||
@historyClick="handleHistoryClick"
|
||||
ref="historyRef"
|
||||
v-model:definitionId="currentSelectTemplate.id"
|
||||
:selectedRecordId="selectedHistoryRecordId"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="模版" name="model">
|
||||
<Template
|
||||
<<<<<<< HEAD
|
||||
@templateClick="handleTemplateClick"
|
||||
ref="templateRef"
|
||||
v-model:definitionId="currentSelectTemplate.id"
|
||||
@edit="templateEdit"
|
||||
=======
|
||||
@templateClick="handleTemplateClick"
|
||||
ref="templateRef"
|
||||
v-model:definitionId="currentSelectTemplate.id"
|
||||
@edit="templateEdit"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
@@ -176,9 +148,6 @@ const emrComponentRef = ref(null);
|
||||
const quicklyactiveName = ref('history');
|
||||
const leftShow = ref(true);
|
||||
const rightShow = ref(true);
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
watch(patientInfo, () => {
|
||||
historyRef.value?.queryList();
|
||||
templateRef.value?.queryList();
|
||||
@@ -187,7 +156,6 @@ const templateTree = ref(null);
|
||||
|
||||
// 当前选中的历史病历ID,用于在History组件中高亮显示
|
||||
const selectedHistoryRecordId = ref('');
|
||||
>>>>>>> v1.3
|
||||
|
||||
// 树配置(模板树)
|
||||
const defaultProps = {
|
||||
@@ -790,17 +758,10 @@ defineExpose({ state });
|
||||
|
||||
const disNode = () => {
|
||||
leftShow.value = !leftShow.value;
|
||||
<<<<<<< HEAD
|
||||
}
|
||||
const disNode_R = () => {
|
||||
rightShow.value = !rightShow.value;
|
||||
}
|
||||
=======
|
||||
};
|
||||
const disNode_R = () => {
|
||||
rightShow.value = !rightShow.value;
|
||||
};
|
||||
>>>>>>> v1.3
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.emr-use-container {
|
||||
@@ -827,11 +788,7 @@ const disNode_R = () => {
|
||||
height: 60px;
|
||||
z-index: 1111;
|
||||
img {
|
||||
<<<<<<< HEAD
|
||||
transform: rotate(-90deg) ;
|
||||
=======
|
||||
transform: rotate(-90deg);
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
}
|
||||
.disLeftBtnAct {
|
||||
|
||||
@@ -3,18 +3,6 @@
|
||||
* @Date: 2025-04-07 12:58:22
|
||||
* @Description:
|
||||
*/
|
||||
<<<<<<< HEAD
|
||||
import PatientList from './components/patientList.vue'
|
||||
import PatientCard from './components/patientCard/index.vue'
|
||||
import Advice from './components/order/index.vue'
|
||||
import Diagnose from './components/diagnosis/diagnosis.vue'
|
||||
import BloodTtransfusionAapplication from './components/applicationShow/bloodTtransfusionAapplication.vue'
|
||||
import ExamineApplication from './components/applicationShow/examineApplication.vue'
|
||||
import SurgeryApplication from './components/applicationShow/surgeryApplication.vue'
|
||||
import TestApplication from './components/applicationShow/testApplication.vue'
|
||||
import NursingStatus from './components/applicationShow/nursingStatus.vue'
|
||||
export { PatientList, PatientCard, Advice,Diagnose, BloodTtransfusionAapplication, ExamineApplication, SurgeryApplication, TestApplication, NursingStatus }
|
||||
=======
|
||||
import Advice from './components/order/index.vue';
|
||||
import Diagnose from './components/diagnosis/diagnosis.vue';
|
||||
import BloodTtransfusionAapplication from './components/applicationShow/bloodTtransfusionAapplication.vue';
|
||||
@@ -33,4 +21,3 @@ export {
|
||||
NursingStatus,
|
||||
ReportQuery,
|
||||
};
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -15,17 +15,7 @@
|
||||
<el-tab-pane label="临床医嘱" name="prescription">
|
||||
<Advice ref="adviceRef" />
|
||||
</el-tab-pane>
|
||||
<<<<<<< HEAD
|
||||
<el-tab-pane label="诊断录入" name="diagnosis">
|
||||
<Diagnose ref="diagnosisRef" :patientInfo="patientInfo" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="住院病历" name="inhospitalEmr">
|
||||
<Emr ref="inhospitalEmrRef"/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="医技报告" name="fourth">Task</el-tab-pane>
|
||||
=======
|
||||
<!-- <el-tab-pane label="医技报告" name="fourth">Task</el-tab-pane> -->
|
||||
>>>>>>> v1.3
|
||||
<el-tab-pane label="检验申请" name="test">
|
||||
<TestApplication ref="testApplicationRef" />
|
||||
</el-tab-pane>
|
||||
@@ -38,18 +28,12 @@
|
||||
<el-tab-pane label="输血申请" name="blood">
|
||||
<BloodTtransfusionAapplication ref="bloodTtransfusionAapplicationRef" />
|
||||
</el-tab-pane>
|
||||
<<<<<<< HEAD
|
||||
<el-tab-pane label="护理状态" name="nursing">
|
||||
<NursingStatus />
|
||||
</el-tab-pane>
|
||||
=======
|
||||
<el-tab-pane label="报告查询" name="report">
|
||||
<ReportQuery />
|
||||
</el-tab-pane>
|
||||
<!-- <el-tab-pane label="护理状态" name="nursing">
|
||||
<NursingStatus />
|
||||
</el-tab-pane> -->
|
||||
>>>>>>> v1.3
|
||||
</el-tabs>
|
||||
</el-main>
|
||||
</el-container>
|
||||
@@ -57,15 +41,6 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
<<<<<<< HEAD
|
||||
import { getCurrentInstance, onBeforeMount, onMounted, reactive, ref } from 'vue';
|
||||
// const { proxy } = getCurrentInstance()
|
||||
// const emits = defineEmits([])
|
||||
// const props = defineProps({})
|
||||
import Emr from './emr/index.vue';
|
||||
import inPatientBarDoctorFold from '@/components/patientBar/inPatientBarDoctorFold.vue';
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
import {
|
||||
getCurrentInstance,
|
||||
onBeforeMount,
|
||||
@@ -90,10 +65,7 @@ import {
|
||||
SurgeryApplication,
|
||||
TestApplication,
|
||||
NursingStatus,
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
ReportQuery,
|
||||
>>>>>>> v1.3
|
||||
} from './index.js';
|
||||
const state = reactive({});
|
||||
onBeforeMount(() => {});
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user