版本更新
This commit is contained in:
@@ -0,0 +1,498 @@
|
||||
<?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.doctorstation.mapper.DoctorStationAdviceAppMapper">
|
||||
|
||||
<select id="getAdviceBaseInfo" resultType="com.openhis.web.doctorstation.dto.AdviceBaseDto">
|
||||
SELECT abi.tenant_id,
|
||||
abi.advice_type,
|
||||
abi.category_code,
|
||||
abi.pharmacology_category_code,
|
||||
abi.part_percent,
|
||||
abi.unit_conversion_ratio,
|
||||
abi.part_attribute_enum,
|
||||
abi.tho_part_attribute_enum,
|
||||
abi.skin_test_flag,
|
||||
abi.inject_flag,
|
||||
abi.advice_definition_id,
|
||||
abi.advice_name,
|
||||
abi.advice_bus_no,
|
||||
abi.py_str,
|
||||
abi.wb_str,
|
||||
abi.yb_no,
|
||||
abi.product_name,
|
||||
abi.activity_type,
|
||||
abi.unit_code,
|
||||
abi.min_unit_code,
|
||||
abi.volume,
|
||||
abi.method_code,
|
||||
abi.rate_code,
|
||||
abi.org_id,
|
||||
abi.location_id,
|
||||
abi.dose,
|
||||
abi.dose_unit_code,
|
||||
abi.supplier,
|
||||
abi.manufacturer,
|
||||
abi.charge_item_definition_id,
|
||||
abi.advice_table_name,
|
||||
abi.position_id,
|
||||
abi.restricted_flag,
|
||||
abi.restricted_scope
|
||||
from (
|
||||
<if test="adviceTypes == null or adviceTypes.contains(1)">
|
||||
SELECT T1.tenant_id,
|
||||
1 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
T1.pharmacology_category_code AS pharmacology_category_code,
|
||||
T1.part_percent AS part_percent,
|
||||
T1.unit_conversion_ratio AS unit_conversion_ratio,
|
||||
T1.part_attribute_enum AS part_attribute_enum,
|
||||
T1.tho_part_attribute_enum AS tho_part_attribute_enum,
|
||||
T1.skin_test_flag AS skin_test_flag,
|
||||
T1.inject_flag AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
T1.merchandise_name AS product_name,
|
||||
0 AS activity_type,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.min_unit_code AS min_unit_code,
|
||||
T2.total_volume AS volume,
|
||||
T2.method_code AS method_code,
|
||||
T2.rate_code AS rate_code,
|
||||
T2.org_id AS org_id,
|
||||
T2.location_id AS location_id,
|
||||
CAST(T2.dose AS TEXT) AS dose,
|
||||
T2.dose_unit_code AS dose_unit_code,
|
||||
T3.NAME AS supplier,
|
||||
T1.manufacturer_text AS manufacturer,
|
||||
T5.id AS charge_item_definition_id,
|
||||
T5.instance_table AS advice_table_name,
|
||||
T6.def_location_id AS position_id,
|
||||
t1.restricted_flag AS restricted_flag,
|
||||
t1.restricted_scope AS restricted_scope
|
||||
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}
|
||||
LEFT JOIN adm_supplier AS T3
|
||||
ON T3.ID = T1.supply_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = T1.ID
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_organization_location AS T6
|
||||
ON T6.distribution_category_code = T1.category_code
|
||||
AND T6.delete_flag = '0' AND T6.organization_id = #{organizationId} AND
|
||||
(CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T2.status_enum = #{statusEnum}
|
||||
<if test="pricingFlag ==1">
|
||||
AND 1 = 2
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T5.instance_table = #{medicationTableName}
|
||||
</if>
|
||||
|
||||
<if test="adviceTypes == null or adviceTypes.contains(1)">
|
||||
<if test="adviceTypes == null or adviceTypes.contains(2) or adviceTypes.contains(3)">UNION ALL</if>
|
||||
</if>
|
||||
|
||||
<if test="adviceTypes == null or adviceTypes.contains(2)">
|
||||
SELECT T1.tenant_id,
|
||||
2 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
'' AS pharmacology_category_code,
|
||||
T1.part_percent AS part_percent,
|
||||
0 AS unit_conversion_ratio,
|
||||
null AS part_attribute_enum,
|
||||
null AS tho_part_attribute_enum,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
'' AS product_name,
|
||||
0 AS activity_type,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.min_unit_code AS min_unit_code,
|
||||
T1.SIZE AS volume,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
T1.org_id AS org_id,
|
||||
T1.location_id AS location_id,
|
||||
'' AS dose,
|
||||
'' AS dose_unit_code,
|
||||
T2.NAME AS supplier,
|
||||
T1.manufacturer_text AS manufacturer,
|
||||
T4.id AS charge_item_definition_id,
|
||||
T4.instance_table AS advice_table_name,
|
||||
T5.def_location_id AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope
|
||||
FROM adm_device_definition AS T1
|
||||
LEFT JOIN adm_supplier AS T2
|
||||
ON T2.ID = T1.supply_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = T1.category_code
|
||||
AND T5.delete_flag = '0' AND T5.organization_id = #{organizationId} AND
|
||||
(CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T4.instance_table = #{deviceTableName}
|
||||
AND T1.category_code = #{singleUse}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
</if>
|
||||
|
||||
<if test="adviceTypes == null or adviceTypes.contains(2)">
|
||||
<if test="adviceTypes == null or adviceTypes.contains(3)">UNION ALL</if>
|
||||
</if>
|
||||
|
||||
<if test="adviceTypes == null or adviceTypes.contains(3)">
|
||||
SELECT T1.tenant_id,
|
||||
3 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
'' AS pharmacology_category_code,
|
||||
1 AS part_percent,
|
||||
0 AS unit_conversion_ratio,
|
||||
null AS part_attribute_enum,
|
||||
null AS tho_part_attribute_enum,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
'' AS product_name,
|
||||
T1.type_enum AS activity_type,
|
||||
'' AS unit_code,
|
||||
'' AS min_unit_code,
|
||||
'' AS volume,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
T1.org_id AS org_id,
|
||||
T1.location_id AS location_id,
|
||||
'' AS dose,
|
||||
'' AS dose_unit_code,
|
||||
'' AS supplier,
|
||||
'' AS manufacturer,
|
||||
T2.ID AS charge_item_definition_id,
|
||||
T2.instance_table AS advice_table_name,
|
||||
T3.organization_id AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope
|
||||
FROM wor_activity_definition AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2
|
||||
ON T2.instance_id = T1.ID
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_organization_location AS T3 ON T3.activity_definition_id = T1.ID
|
||||
AND T3.delete_flag = '0' AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="pricingFlag ==1">
|
||||
AND T1.pricing_flag = #{pricingFlag}
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T2.instance_table = #{activityTableName}
|
||||
</if>
|
||||
) AS abi
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getAdviceInventory" resultType="com.openhis.web.doctorstation.dto.AdviceInventoryDto">
|
||||
SELECT
|
||||
T1.id AS inventory_id,
|
||||
T1.item_id,
|
||||
T1.item_table,
|
||||
T1.quantity,
|
||||
T1.unit_code,
|
||||
T1.lot_number,
|
||||
T1.price,
|
||||
T1.location_id,
|
||||
T1.location_store_id,
|
||||
T2.NAME AS location_name
|
||||
FROM
|
||||
wor_inventory_item AS T1
|
||||
LEFT JOIN adm_location AS T2 ON T2.ID = T1.location_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE
|
||||
T1.delete_flag = '0'
|
||||
<if test="locationId != null">
|
||||
AND T1.location_id = #{locationId}
|
||||
</if>
|
||||
<if test="adviceDefinitionIdList != null and !adviceDefinitionIdList.isEmpty()">
|
||||
AND T1.item_id IN
|
||||
<foreach collection="adviceDefinitionIdList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T1.inventory_status_enum = #{status}
|
||||
AND T1.expiration_date > NOW()
|
||||
AND T1.item_table IN ( ${SqlCondition} )
|
||||
order by T1.expiration_date
|
||||
</select>
|
||||
|
||||
<select id="getAdviceDraftInventory" resultType="com.openhis.web.doctorstation.dto.AdviceInventoryDto">
|
||||
SELECT #{medicationTableName} AS item_table,
|
||||
T1.medication_id AS item_id,
|
||||
T1.lot_number,
|
||||
T1.location_id,
|
||||
CASE
|
||||
WHEN T1.unit_code = T2.min_unit_code THEN
|
||||
T1.quantity
|
||||
ELSE T1.quantity * T2.part_percent
|
||||
END AS quantity,
|
||||
CASE
|
||||
WHEN T1.unit_code = T2.min_unit_code THEN
|
||||
T1.unit_code
|
||||
ELSE T2.min_unit_code
|
||||
END AS unit_code
|
||||
FROM med_medication_dispense AS T1
|
||||
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND NOW() < T1.limit_time
|
||||
AND (T1.status_enum = #{status1} OR T1.status_enum = #{status2})
|
||||
UNION ALL
|
||||
SELECT #{deviceTableName} AS item_table,
|
||||
T1.device_def_id AS item_id,
|
||||
T1.lot_number,
|
||||
T1.location_id,
|
||||
CASE
|
||||
WHEN T1.unit_code = T2.min_unit_code THEN
|
||||
T1.quantity
|
||||
ELSE T1.quantity * T2.part_percent
|
||||
END AS quantity,
|
||||
CASE
|
||||
WHEN T1.unit_code = T2.min_unit_code THEN
|
||||
T1.unit_code
|
||||
ELSE T2.min_unit_code
|
||||
END AS unit_code
|
||||
FROM wor_device_dispense AS T1
|
||||
LEFT JOIN adm_device_definition AS T2 ON T2.ID = T1.device_def_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND NOW() < T1.limit_time
|
||||
AND (T1.status_enum = #{status1} OR T1.status_enum = #{status2})
|
||||
</select>
|
||||
|
||||
<select id="getChildCharge" resultType="com.openhis.web.doctorstation.dto.AdvicePriceDto">
|
||||
SELECT
|
||||
T1.definition_id,
|
||||
T1.id AS definition_detail_id,
|
||||
T2.charge_name,
|
||||
T1.condition_value,
|
||||
T1.condition_code,
|
||||
T1.amount AS price
|
||||
FROM
|
||||
adm_charge_item_def_detail AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2 ON T2.ID = T1.definition_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE
|
||||
T1.delete_flag = '0'
|
||||
AND T1.condition_code = #{conditionCode}
|
||||
<if test="chargeItemDefinitionIdList != null and !chargeItemDefinitionIdList.isEmpty()">
|
||||
AND T1.definition_id IN
|
||||
<foreach collection="chargeItemDefinitionIdList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
ORDER BY T1.priority DESC
|
||||
</select>
|
||||
|
||||
<select id="getMainCharge" resultType="com.openhis.web.doctorstation.dto.AdvicePriceDto">
|
||||
SELECT
|
||||
id AS definition_id,
|
||||
charge_name,
|
||||
price
|
||||
FROM
|
||||
adm_charge_item_definition
|
||||
WHERE
|
||||
delete_flag = '0'
|
||||
<if test="chargeItemDefinitionIdList != null and !chargeItemDefinitionIdList.isEmpty()">
|
||||
AND id IN
|
||||
<foreach collection="chargeItemDefinitionIdList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getRequestBaseInfo" resultType="com.openhis.web.doctorstation.dto.RequestBaseDto">
|
||||
(SELECT 1 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-1' AS unique_key,
|
||||
T1.practitioner_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.practitioner_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
T1.content_json AS content_json,
|
||||
T1.skin_test_flag AS skin_test_flag,
|
||||
T1.infusion_flag AS inject_flag,
|
||||
T1.group_id AS group_id,
|
||||
T2.NAME AS advice_name,
|
||||
T3.total_volume AS volume,
|
||||
T1.lot_number AS lot_number,
|
||||
T1.quantity AS quantity,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.status_enum AS status_enum,
|
||||
T1.method_code AS method_code,
|
||||
T1.rate_code AS rate_code,
|
||||
T1.dose AS dose,
|
||||
T1.dose_unit_code AS dose_unit_code,
|
||||
T4.id AS charge_item_id,
|
||||
T4.total_price AS total_price,
|
||||
T4.status_enum AS charge_status,
|
||||
al.id AS position_id,
|
||||
al.name AS position_name,
|
||||
T1.dispense_per_duration AS dispense_per_duration,
|
||||
T2.part_percent AS part_percent,
|
||||
ccd.name AS condition_definition_name,
|
||||
T1.sort_number AS sort_number
|
||||
FROM med_medication_request AS T1
|
||||
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3 ON T3.medication_def_id = T2.ID
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T4 ON T4.service_id = T1.ID AND T4.delete_flag = '0' AND
|
||||
T4.service_table = #{MED_MEDICATION_REQUEST}
|
||||
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS cc ON cc.id = T1.condition_id AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd ON ccd.id = cc.definition_id
|
||||
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 0
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
<if test="historyFlag == '1'.toString()">
|
||||
AND T1.patient_id = #{patientId} AND T1.encounter_id != #{encounterId}
|
||||
</if>
|
||||
AND T1.refund_medicine_id IS NULL
|
||||
ORDER BY T1.status_enum,T1.sort_number,T1.group_id)
|
||||
UNION ALL
|
||||
(SELECT 2 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-2' AS unique_key,
|
||||
T1.requester_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.requester_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
T1.content_json AS content_json,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
null AS group_id,
|
||||
T2.NAME AS advice_name,
|
||||
T2.SIZE AS volume,
|
||||
T1.lot_number AS lot_number,
|
||||
T1.quantity AS quantity,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.status_enum AS status_enum,
|
||||
'' AS method_code,
|
||||
T1.rate_code AS rate_code,
|
||||
NULL AS dose,
|
||||
'' AS dose_unit_code,
|
||||
T3.id AS charge_item_id,
|
||||
T3.total_price AS total_price,
|
||||
T3.status_enum AS charge_status,
|
||||
al.id AS position_id,
|
||||
al.name AS position_name,
|
||||
null AS dispense_per_duration,
|
||||
T2.part_percent AS part_percent,
|
||||
'' AS condition_definition_name,
|
||||
99 AS sort_number
|
||||
FROM wor_device_request AS T1
|
||||
LEFT JOIN adm_device_definition AS T2 ON T2.ID = T1.device_def_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T3
|
||||
ON T3.service_id = T1.ID AND T3.delete_flag = '0' AND
|
||||
T3.service_table = #{WOR_DEVICE_REQUEST}
|
||||
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
<if test="historyFlag == '1'.toString()">
|
||||
AND T1.patient_id = #{patientId} AND T1.encounter_id != #{encounterId}
|
||||
</if>
|
||||
AND T1.refund_device_id IS NULL
|
||||
ORDER BY T1.status_enum)
|
||||
UNION ALL
|
||||
(SELECT 3 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-3' AS unique_key,
|
||||
T1.requester_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.requester_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
T1.content_json AS content_json,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
null AS group_id,
|
||||
T2.NAME AS advice_name,
|
||||
'' AS volume,
|
||||
'' AS lot_number,
|
||||
T1.quantity AS quantity,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.status_enum AS status_enum,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
NULL AS dose,
|
||||
'' AS dose_unit_code,
|
||||
T3.id AS charge_item_id,
|
||||
T3.total_price AS total_price,
|
||||
T3.status_enum AS charge_status,
|
||||
ao.id AS position_id,
|
||||
ao.name AS position_name,
|
||||
null AS dispense_per_duration,
|
||||
1 AS part_percent,
|
||||
'' AS condition_definition_name,
|
||||
99 AS sort_number
|
||||
FROM wor_service_request AS T1
|
||||
LEFT JOIN wor_activity_definition AS T2
|
||||
ON T2.ID = T1.activity_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T3 ON T3.service_id = T1.ID AND T3.delete_flag = '0' AND
|
||||
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.based_on_table is null
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
<if test="historyFlag == '1'.toString()">
|
||||
AND T1.patient_id = #{patientId} AND T1.encounter_id != #{encounterId}
|
||||
</if>
|
||||
ORDER BY T1.status_enum)
|
||||
</select>
|
||||
|
||||
<select id="getEncounterContract" resultType="com.openhis.web.doctorstation.dto.EncounterContractDto">
|
||||
SELECT aa.id AS account_id,
|
||||
fc.contract_name,
|
||||
fc.bus_no
|
||||
FROM adm_account aa
|
||||
LEFT JOIN fin_contract AS fc ON fc.bus_no = aa.contract_no
|
||||
AND fc.delete_flag = '0'
|
||||
WHERE aa.delete_flag = '0'
|
||||
AND aa.encounter_id = #{encounterId}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,158 @@
|
||||
<?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.doctorstation.mapper.DoctorStationChineseMedicalAppMapper">
|
||||
|
||||
<select id="getTcmEncounterDiagnosis" resultType="com.openhis.web.doctorstation.dto.DiagnosisQueryDto">
|
||||
SELECT T1.id AS encounter_diagnosis_id,
|
||||
T1.condition_id,
|
||||
T1.syndrome_group_no,
|
||||
T2.definition_id,
|
||||
T3.source_enum,
|
||||
T3.NAME,
|
||||
T1.maindise_flag,
|
||||
T1.diag_srt_no,
|
||||
T1.med_type_code,
|
||||
T2.verification_status_enum,
|
||||
T2.yb_no
|
||||
FROM adm_encounter_diagnosis AS T1
|
||||
LEFT JOIN cli_condition AS T2 ON T2.ID = T1.condition_id
|
||||
AND T2.delete_flag = '0' AND T2.tcm_flag = 1
|
||||
LEFT JOIN cli_condition_definition AS T3 ON t3.ID = T2.definition_id
|
||||
AND T3.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.tcm_flag = 1
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
ORDER BY T1.diag_srt_no
|
||||
</select>
|
||||
|
||||
<select id="getTcmRequestBaseInfo" resultType="com.openhis.web.doctorstation.dto.RequestBaseDto">
|
||||
SELECT 1 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-1' AS unique_key,
|
||||
T1.prescription_no AS prescription_no,
|
||||
T1.practitioner_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.practitioner_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
T1.content_json AS content_json,
|
||||
T1.skin_test_flag AS skin_test_flag,
|
||||
T1.infusion_flag AS inject_flag,
|
||||
T1.group_id AS group_id,
|
||||
T2.NAME AS advice_name,
|
||||
T3.total_volume AS volume,
|
||||
T1.lot_number AS lot_number,
|
||||
T1.quantity AS quantity,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.status_enum AS status_enum,
|
||||
T1.method_code AS method_code,
|
||||
T1.rate_code AS rate_code,
|
||||
T1.dose AS dose,
|
||||
T1.dose_unit_code AS dose_unit_code,
|
||||
T4.id AS charge_item_id,
|
||||
T4.total_price AS total_price,
|
||||
T4.status_enum AS charge_status,
|
||||
al.id AS position_id,
|
||||
al.name AS position_name,
|
||||
T1.dispense_per_duration AS dispense_per_duration,
|
||||
T1.chinese_herbs_dose_quantity AS chinese_herbs_dose_quantity,
|
||||
T1.suffering_flag AS suffering_flag,
|
||||
T2.part_percent AS part_percent,
|
||||
ccd.name AS condition_definition_name
|
||||
FROM med_medication_request AS T1
|
||||
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3 ON T3.medication_def_id = T2.ID
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T4 ON T4.service_id = T1.ID AND T4.delete_flag = '0' AND
|
||||
T4.service_table = #{MED_MEDICATION_REQUEST}
|
||||
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS cc ON cc.id = T1.condition_id AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd ON ccd.id = cc.definition_id
|
||||
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 1
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
<if test="historyFlag == '1'.toString()">
|
||||
AND T1.patient_id = #{patientId} AND T1.encounter_id != #{encounterId}
|
||||
</if>
|
||||
AND T1.refund_medicine_id IS NULL
|
||||
ORDER BY T1.group_id,T1.prescription_no, T1.status_enum
|
||||
</select>
|
||||
|
||||
<select id="getTcmRequestHistoryInfo" resultType="com.openhis.web.doctorstation.dto.RequestBaseDto">
|
||||
SELECT 1 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-1' AS unique_key,
|
||||
T1.prescription_no AS prescription_no,
|
||||
T1.practitioner_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.practitioner_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
T1.content_json AS content_json,
|
||||
T1.skin_test_flag AS skin_test_flag,
|
||||
T1.infusion_flag AS inject_flag,
|
||||
T1.group_id AS group_id,
|
||||
T2.NAME AS advice_name,
|
||||
T3.total_volume AS volume,
|
||||
T1.lot_number AS lot_number,
|
||||
T1.quantity AS quantity,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.status_enum AS status_enum,
|
||||
T1.method_code AS method_code,
|
||||
T1.rate_code AS rate_code,
|
||||
T1.dose AS dose,
|
||||
T1.dose_unit_code AS dose_unit_code,
|
||||
T4.id AS charge_item_id,
|
||||
T4.total_price AS total_price,
|
||||
T4.status_enum AS charge_status,
|
||||
al.id AS position_id,
|
||||
al.name AS position_name,
|
||||
T1.dispense_per_duration AS dispense_per_duration,
|
||||
T1.chinese_herbs_dose_quantity AS chinese_herbs_dose_quantity,
|
||||
T1.suffering_flag AS suffering_flag,
|
||||
T2.part_percent AS part_percent,
|
||||
ccd.name AS condition_definition_name
|
||||
FROM med_medication_request AS T1
|
||||
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3 ON T3.medication_def_id = T2.ID
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T4 ON T4.service_id = T1.ID AND T4.delete_flag = '0' AND
|
||||
T4.service_table = #{MED_MEDICATION_REQUEST}
|
||||
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS cc ON cc.id = T1.condition_id AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd ON ccd.id = cc.definition_id
|
||||
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 1
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
<if test="historyFlag == '1'.toString()">
|
||||
AND T1.patient_id = #{patientId} AND T1.encounter_id != #{encounterId}
|
||||
</if>
|
||||
AND T1.refund_medicine_id IS NULL
|
||||
ORDER BY T1.group_id,T1.prescription_no, T1.status_enum
|
||||
</select>
|
||||
|
||||
<select id="getConditionIds" resultType="long">
|
||||
SELECT condition_id
|
||||
FROM adm_encounter_diagnosis
|
||||
WHERE delete_flag = '0'
|
||||
AND syndrome_group_no = #{syndromeGroupNo}
|
||||
</select>
|
||||
|
||||
<select id="getAdviceNumByConditionIds" resultType="integer">
|
||||
SELECT
|
||||
count(1)
|
||||
FROM
|
||||
med_medication_request
|
||||
WHERE
|
||||
delete_flag = '0'
|
||||
<if test="conditionIds != null and !conditionIds.isEmpty()">
|
||||
AND condition_id IN
|
||||
<foreach collection="conditionIds" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,168 @@
|
||||
<?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.doctorstation.mapper.DoctorStationDiagnosisAppMapper">
|
||||
|
||||
<select id="getDiagnosisBelongBindingPage" resultType="com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto">
|
||||
SELECT T5.tenant_id,
|
||||
T5.ID,
|
||||
T5.object_id,
|
||||
T5.definition_id,
|
||||
T5.binding_enum,
|
||||
T5.definition_name,
|
||||
T5.object_name
|
||||
from (SELECT T1.tenant_id,
|
||||
T1.ID,
|
||||
T1.object_id,
|
||||
T1.definition_id,
|
||||
T1.binding_enum,
|
||||
T2.NAME AS definition_name,
|
||||
CASE
|
||||
WHEN T1.binding_enum = #{bindingType1} THEN
|
||||
T3.user_name
|
||||
WHEN T1.binding_enum = #{bindingType2} THEN
|
||||
T4.NAME
|
||||
END AS object_name
|
||||
FROM cli_diagnosis_belong_binding AS T1
|
||||
LEFT JOIN cli_condition_definition AS T2 ON T1.definition_id = T2.ID
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN sys_user AS T3 ON T1.binding_enum = #{bindingType1}
|
||||
AND T1.object_id = T3.user_id
|
||||
LEFT JOIN adm_organization AS T4 ON T1.binding_enum = #{bindingType2}
|
||||
AND T1.object_id = T4.ID
|
||||
WHERE T1.delete_flag = '0'
|
||||
ORDER BY object_name) AS T5
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getPatientHistoryList" resultType="com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata">
|
||||
SELECT T1.ID AS definition_id,
|
||||
T1.source_enum,
|
||||
T1.condition_code,
|
||||
T1.NAME,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_match_flag
|
||||
FROM cli_condition_definition AS T1
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND EXISTS(
|
||||
SELECT 1
|
||||
FROM cli_condition AS T2
|
||||
WHERE T2.delete_flag = '0'
|
||||
AND t2.tcm_flag = 0
|
||||
AND T2.definition_id IS NOT NULL
|
||||
AND T2.patient_id = #{patientId}
|
||||
AND T2.definition_id = T1.ID
|
||||
)
|
||||
</select>
|
||||
|
||||
<select id="getDoctorCommonUseList" resultType="com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata">
|
||||
SELECT T1.ID AS definition_id,
|
||||
T1.source_enum,
|
||||
T1.condition_code,
|
||||
T1.NAME,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_match_flag
|
||||
FROM cli_condition_definition AS T1
|
||||
JOIN (SELECT definition_id
|
||||
FROM cli_condition
|
||||
WHERE delete_flag = '0'
|
||||
AND tcm_flag = 0
|
||||
AND definition_id IS NOT NULL
|
||||
AND recorder_id = #{practitionerId}
|
||||
GROUP BY definition_id LIMIT 10) AS T2 ON T1.ID = T2.definition_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
</select>
|
||||
|
||||
<select id="getUserPersonalList" resultType="com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata">
|
||||
SELECT T2.ID,
|
||||
T2.definition_id,
|
||||
T1.source_enum,
|
||||
T1.condition_code,
|
||||
T1.NAME,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_match_flag
|
||||
FROM cli_condition_definition AS T1
|
||||
JOIN (SELECT id, definition_id
|
||||
FROM cli_diagnosis_belong_binding
|
||||
WHERE delete_flag = '0'
|
||||
AND binding_enum = #{bindingEnum}
|
||||
AND object_id = #{userId}) AS T2 ON T1.ID = T2.definition_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
</select>
|
||||
|
||||
<select id="getOrganizationList" resultType="com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata">
|
||||
SELECT T2.ID,
|
||||
T2.definition_id,
|
||||
T1.source_enum,
|
||||
T1.condition_code,
|
||||
T1.NAME,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_match_flag
|
||||
FROM cli_condition_definition AS T1
|
||||
JOIN (SELECT id, definition_id
|
||||
FROM cli_diagnosis_belong_binding
|
||||
WHERE delete_flag = '0'
|
||||
AND binding_enum = #{bindingEnum}
|
||||
<if test="currentUserOrganizationId != null">
|
||||
AND object_id = #{currentUserOrganizationId}
|
||||
</if>
|
||||
) AS T2 ON T1.ID = T2.definition_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
</select>
|
||||
|
||||
<select id="getEncounterDiagnosis" resultType="com.openhis.web.doctorstation.dto.DiagnosisQueryDto">
|
||||
SELECT T1.id AS encounter_diagnosis_id,
|
||||
T1.condition_id,
|
||||
T2.definition_id,
|
||||
T3.source_enum,
|
||||
T3.NAME,
|
||||
T1.maindise_flag,
|
||||
T1.diag_srt_no,
|
||||
T1.med_type_code,
|
||||
T1.diagnosis_desc,
|
||||
T2.verification_status_enum,
|
||||
T2.yb_no
|
||||
FROM adm_encounter_diagnosis AS T1
|
||||
LEFT JOIN cli_condition AS T2 ON T2.ID = T1.condition_id
|
||||
AND T2.delete_flag = '0' AND T2.tcm_flag = 0
|
||||
LEFT JOIN cli_condition_definition AS T3 ON t3.ID = T2.definition_id
|
||||
AND T3.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.tcm_flag = 0
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</select>
|
||||
|
||||
<select id="getAdviceNumByConditionId" resultType="Integer">
|
||||
SELECT SUM
|
||||
(count_result) AS total_count
|
||||
FROM (
|
||||
SELECT COUNT
|
||||
(1) AS count_result
|
||||
FROM med_medication_request
|
||||
WHERE delete_flag = '0'
|
||||
AND condition_id = #{conditionId}
|
||||
UNION ALL
|
||||
SELECT COUNT
|
||||
(1)
|
||||
FROM wor_device_request
|
||||
WHERE delete_flag = '0'
|
||||
AND condition_id = #{conditionId}
|
||||
UNION ALL
|
||||
SELECT COUNT
|
||||
(1)
|
||||
FROM wor_service_request
|
||||
WHERE delete_flag = '0'
|
||||
AND condition_id = #{conditionId}
|
||||
) AS counts
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,494 @@
|
||||
<?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.doctorstation.mapper.DoctorStationElepPrescriptionMapper">
|
||||
<select id="selectCatalogDrugInfoByNo" resultType="com.openhis.ybcatalog.domain.CatalogDrugInfo">
|
||||
SELECT T1.medical_catalog_code,
|
||||
T1.drug_trade_name,
|
||||
T1.generic_name_id,
|
||||
T1.drug_generic_name,
|
||||
T1.chemical_name,
|
||||
T1.alias,
|
||||
T1.english_name,
|
||||
T1.registered_name,
|
||||
T1.drug_supervision_code,
|
||||
T1.drug_form,
|
||||
T1.drug_form_name,
|
||||
T1.drug_category,
|
||||
T1.drug_category_name,
|
||||
T1.drug_specification,
|
||||
T1.drug_spec_code,
|
||||
T1.registered_form,
|
||||
T1.registered_spec,
|
||||
T1.registered_spec_code,
|
||||
T1.dosage,
|
||||
T1.frequency,
|
||||
T1.acid_base,
|
||||
T1.national_drug_code,
|
||||
T1.usage,
|
||||
T1.tcm_flag,
|
||||
T1.production_area_type,
|
||||
T1.production_area_name,
|
||||
T1.pricing_unit_type,
|
||||
T1.otc_flag,
|
||||
T1.otc_flag_name,
|
||||
T1.packaging_material,
|
||||
T1.packaging_material_name,
|
||||
T1.packaging_spec,
|
||||
T1.packaging_quantity,
|
||||
T1.function_indication,
|
||||
T1.administration_route,
|
||||
T1.instructions,
|
||||
T1.start_date,
|
||||
T1.end_date,
|
||||
T1.min_use_unit,
|
||||
T1.min_sale_unit,
|
||||
T1.min_measurement_unit,
|
||||
T1.min_package_quantity,
|
||||
T1.min_package_unit,
|
||||
T1.min_preparation_unit,
|
||||
T1.min_package_unit_name,
|
||||
T1.min_preparation_unit_name,
|
||||
T1.conversion_ratio,
|
||||
T1.shelf_life,
|
||||
T1.min_pricing_unit,
|
||||
T1.wubi_code,
|
||||
T1.pinyin_code,
|
||||
T1.repackager,
|
||||
T1.manufacturer_code,
|
||||
T1.manufacturer_name,
|
||||
T1.special_price_limit_flag,
|
||||
T1.special_drug_flag,
|
||||
T1.use_restriction,
|
||||
T1.use_restriction_flag,
|
||||
T1.registration_cert_no,
|
||||
T1.reg_cert_start_date,
|
||||
T1.reg_cert_end_date,
|
||||
T1.approval_no,
|
||||
T1.approval_start_date,
|
||||
T1.approval_end_date,
|
||||
T1.market_status,
|
||||
T1.market_status_name,
|
||||
T1.reg_document_archive,
|
||||
T1.supp_application_archive,
|
||||
T1.national_insurance_notes,
|
||||
T1.essential_drug_flag_name,
|
||||
T1.essential_drug_flag,
|
||||
T1.vat_adjustment_flag,
|
||||
T1.vat_adjustment_name,
|
||||
T1.listed_drug_flag,
|
||||
T1.negotiation_drug_flag,
|
||||
T1.negotiation_drug_name,
|
||||
T1.nhc_drug_code,
|
||||
T1.remarks,
|
||||
T1.valid_flag,
|
||||
T1.unique_record_id,
|
||||
T1.created_at,
|
||||
T1.updated_at,
|
||||
T1.version,
|
||||
T1.version_name,
|
||||
T1.pediatric_use,
|
||||
T1.company_name,
|
||||
T1.generic_evaluation_flag,
|
||||
T1.distribution_company,
|
||||
T1.distribution_contact,
|
||||
T1.distribution_auth_archive,
|
||||
T1.insurance_form,
|
||||
T1.insurance_class,
|
||||
T1.marketing_authorization_holder,
|
||||
T1.release_flag,
|
||||
T1.transmission_data_id,
|
||||
T1.valid_from,
|
||||
T1.valid_to
|
||||
FROM yb_catalog_drug_info T1
|
||||
WHERE T1.medical_catalog_code = #{medicationNo}
|
||||
AND T1.version = #{version}
|
||||
AND T1.valid_flag = '1'
|
||||
</select>
|
||||
<select id="selectCatalogDrugInfo" resultType="com.openhis.ybcatalog.domain.CatalogDrugInfo">
|
||||
SELECT T3.medical_catalog_code,
|
||||
T3.drug_trade_name,
|
||||
T3.generic_name_id,
|
||||
T3.drug_generic_name,
|
||||
T3.chemical_name,
|
||||
T3.alias,
|
||||
T3.english_name,
|
||||
T3.registered_name,
|
||||
T3.drug_supervision_code,
|
||||
T3.drug_form,
|
||||
T3.drug_form_name,
|
||||
T3.drug_category,
|
||||
T3.drug_category_name,
|
||||
T3.drug_specification,
|
||||
T3.drug_spec_code,
|
||||
T3.registered_form,
|
||||
T3.registered_spec,
|
||||
T3.registered_spec_code,
|
||||
T3.dosage,
|
||||
T3.frequency,
|
||||
T3.acid_base,
|
||||
T3.national_drug_code,
|
||||
T3.usage,
|
||||
T3.tcm_flag,
|
||||
T3.production_area_type,
|
||||
T3.production_area_name,
|
||||
T3.pricing_unit_type,
|
||||
T3.otc_flag,
|
||||
T3.otc_flag_name,
|
||||
T3.packaging_material,
|
||||
T3.packaging_material_name,
|
||||
T3.packaging_spec,
|
||||
T3.packaging_quantity,
|
||||
T3.function_indication,
|
||||
T3.administration_route,
|
||||
T3.instructions,
|
||||
T3.start_date,
|
||||
T3.end_date,
|
||||
T3.min_use_unit,
|
||||
T3.min_sale_unit,
|
||||
T3.min_measurement_unit,
|
||||
T3.min_package_quantity,
|
||||
T3.min_package_unit,
|
||||
T3.min_preparation_unit,
|
||||
T3.min_package_unit_name,
|
||||
T3.min_preparation_unit_name,
|
||||
T3.conversion_ratio,
|
||||
T3.shelf_life,
|
||||
T3.min_pricing_unit,
|
||||
T3.wubi_code,
|
||||
T3.pinyin_code,
|
||||
T3.repackager,
|
||||
T3.manufacturer_code,
|
||||
T3.manufacturer_name,
|
||||
T3.special_price_limit_flag,
|
||||
T3.special_drug_flag,
|
||||
T3.use_restriction,
|
||||
T3.use_restriction_flag,
|
||||
T3.registration_cert_no,
|
||||
T3.reg_cert_start_date,
|
||||
T3.reg_cert_end_date,
|
||||
T3.approval_no,
|
||||
T3.approval_start_date,
|
||||
T3.approval_end_date,
|
||||
T3.market_status,
|
||||
T3.market_status_name,
|
||||
T3.reg_document_archive,
|
||||
T3.supp_application_archive,
|
||||
T3.national_insurance_notes,
|
||||
T3.essential_drug_flag_name,
|
||||
T3.essential_drug_flag,
|
||||
T3.vat_adjustment_flag,
|
||||
T3.vat_adjustment_name,
|
||||
T3.listed_drug_flag,
|
||||
T3.negotiation_drug_flag,
|
||||
T3.negotiation_drug_name,
|
||||
T3.nhc_drug_code,
|
||||
T3.remarks,
|
||||
T3.valid_flag,
|
||||
T3.unique_record_id,
|
||||
T3.created_at,
|
||||
T3.updated_at,
|
||||
T3.version,
|
||||
T3.version_name,
|
||||
T3.pediatric_use,
|
||||
T3.company_name,
|
||||
T3.generic_evaluation_flag,
|
||||
T3.distribution_company,
|
||||
T3.distribution_contact,
|
||||
T3.distribution_auth_archive,
|
||||
T3.insurance_form,
|
||||
T3.insurance_class,
|
||||
T3.marketing_authorization_holder,
|
||||
T3.release_flag,
|
||||
T3.transmission_data_id,
|
||||
T3.valid_from,
|
||||
T3.valid_to,
|
||||
T3.tenant_id
|
||||
FROM (SELECT T1.medical_catalog_code,
|
||||
T1.drug_trade_name,
|
||||
T1.generic_name_id,
|
||||
T1.drug_generic_name,
|
||||
T1.chemical_name,
|
||||
T1.alias,
|
||||
T1.english_name,
|
||||
T1.registered_name,
|
||||
T1.drug_supervision_code,
|
||||
T1.drug_form,
|
||||
T1.drug_form_name,
|
||||
T1.drug_category,
|
||||
T1.drug_category_name,
|
||||
T1.drug_specification,
|
||||
T1.drug_spec_code,
|
||||
T1.registered_form,
|
||||
T1.registered_spec,
|
||||
T1.registered_spec_code,
|
||||
T1.dosage,
|
||||
T1.frequency,
|
||||
T1.acid_base,
|
||||
T1.national_drug_code,
|
||||
T1.usage,
|
||||
T1.tcm_flag,
|
||||
T1.production_area_type,
|
||||
T1.production_area_name,
|
||||
T1.pricing_unit_type,
|
||||
T1.otc_flag,
|
||||
T1.otc_flag_name,
|
||||
T1.packaging_material,
|
||||
T1.packaging_material_name,
|
||||
T1.packaging_spec,
|
||||
T1.packaging_quantity,
|
||||
T1.function_indication,
|
||||
T1.administration_route,
|
||||
T1.instructions,
|
||||
T1.start_date,
|
||||
T1.end_date,
|
||||
T1.min_use_unit,
|
||||
T1.min_sale_unit,
|
||||
T1.min_measurement_unit,
|
||||
T1.min_package_quantity,
|
||||
T1.min_package_unit,
|
||||
T1.min_preparation_unit,
|
||||
T1.min_package_unit_name,
|
||||
T1.min_preparation_unit_name,
|
||||
T1.conversion_ratio,
|
||||
T1.shelf_life,
|
||||
T1.min_pricing_unit,
|
||||
T1.wubi_code,
|
||||
T1.pinyin_code,
|
||||
T1.repackager,
|
||||
T1.manufacturer_code,
|
||||
T1.manufacturer_name,
|
||||
T1.special_price_limit_flag,
|
||||
T1.special_drug_flag,
|
||||
T1.use_restriction,
|
||||
T1.use_restriction_flag,
|
||||
T1.registration_cert_no,
|
||||
T1.reg_cert_start_date,
|
||||
T1.reg_cert_end_date,
|
||||
T1.approval_no,
|
||||
T1.approval_start_date,
|
||||
T1.approval_end_date,
|
||||
T1.market_status,
|
||||
T1.market_status_name,
|
||||
T1.reg_document_archive,
|
||||
T1.supp_application_archive,
|
||||
T1.national_insurance_notes,
|
||||
T1.essential_drug_flag_name,
|
||||
T1.essential_drug_flag,
|
||||
T1.vat_adjustment_flag,
|
||||
T1.vat_adjustment_name,
|
||||
T1.listed_drug_flag,
|
||||
T1.negotiation_drug_flag,
|
||||
T1.negotiation_drug_name,
|
||||
T1.nhc_drug_code,
|
||||
T1.remarks,
|
||||
T1.valid_flag,
|
||||
T1.unique_record_id,
|
||||
T1.created_at,
|
||||
T1.updated_at,
|
||||
T1.version,
|
||||
T1.version_name,
|
||||
T1.pediatric_use,
|
||||
T1.company_name,
|
||||
T1.generic_evaluation_flag,
|
||||
T1.distribution_company,
|
||||
T1.distribution_contact,
|
||||
T1.distribution_auth_archive,
|
||||
T1.insurance_form,
|
||||
T1.insurance_class,
|
||||
T1.marketing_authorization_holder,
|
||||
T1.release_flag,
|
||||
T1.transmission_data_id,
|
||||
T1.valid_from,
|
||||
T1.valid_to,
|
||||
1 AS tenant_id
|
||||
FROM yb_catalog_drug_info T1
|
||||
INNER JOIN (
|
||||
SELECT medical_catalog_code, MAX(version) AS max_version
|
||||
FROM yb_catalog_drug_info
|
||||
WHERE valid_flag = '1'
|
||||
GROUP BY medical_catalog_code
|
||||
) T2
|
||||
ON T1.medical_catalog_code = T2.medical_catalog_code AND
|
||||
T1.version = T2.max_version
|
||||
WHERE T1.valid_flag = '1') AS T3
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectElepPrescriptionInfo" resultType="com.openhis.web.doctorstation.dto.ElepPrescriptionInfoDto">
|
||||
SELECT tenant_id,
|
||||
prescription_no, --处方号
|
||||
ipt_otp_no, --门诊号
|
||||
department_ward, --科室病区
|
||||
validity_days, --有效天数
|
||||
status_enum, --状态
|
||||
practitioner_name, --开方医生名
|
||||
prsc_dept_name, --开单科室
|
||||
MIN(prsc_time) AS prsc_time, --处方开立日期
|
||||
med_status, --取药状态
|
||||
extension_reason, --延长原因
|
||||
quash_reason, --撤销原因
|
||||
condition_name, --诊断名
|
||||
rx_type_code --处方类别
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.prescription_no, --处方号
|
||||
T1.ipt_otp_no, --门诊号
|
||||
T1.department_ward, --科室病区
|
||||
T1.validity_days, --有效天数
|
||||
T1.status_enum, --状态
|
||||
T2.name AS practitioner_name, --开方医生名
|
||||
T3.name AS prsc_dept_name, --开单科室
|
||||
T1.issue_time AS prsc_time, --处方开立日期
|
||||
CASE
|
||||
WHEN (T4.rx_used_stas_codg IN ('1', '2')) THEN T4.rx_used_stas_name
|
||||
ELSE '未使用'
|
||||
END AS med_status, --取药状态
|
||||
T1.extension_reason, --延长原因
|
||||
T1.quash_reason, --撤销原因
|
||||
T6.name AS condition_name, --诊断名
|
||||
T1.rx_type_code --处方类别
|
||||
FROM elep_medication_request AS T1
|
||||
LEFT JOIN adm_practitioner AS T2
|
||||
ON T1.prescribing_dr_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T1.org_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN yb_elep_medresult_info AS T4
|
||||
ON T1.hi_rxno = T4.hi_rxno
|
||||
LEFT JOIN cli_condition AS T5
|
||||
ON T1.condition_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS T6
|
||||
ON T5.definition_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
WHERE T1.patient_id = #{patientId}
|
||||
AND T1.delete_flag = '0')
|
||||
GROUP BY tenant_id,
|
||||
prescription_no,
|
||||
ipt_otp_no,
|
||||
department_ward,
|
||||
validity_days,
|
||||
status_enum,
|
||||
practitioner_name,
|
||||
prsc_dept_name,
|
||||
med_status,
|
||||
extension_reason,
|
||||
quash_reason,
|
||||
condition_name,
|
||||
rx_type_code
|
||||
ORDER BY prsc_time DESC
|
||||
</select>
|
||||
<select id="selectMedicationInfo" resultType="com.openhis.web.doctorstation.dto.ElepMedicationInfoDto">
|
||||
SELECT T1.id,
|
||||
T2.medical_catalog_code AS medication_id, --药品id
|
||||
T2.registered_name AS medication_name, --药品名
|
||||
T2.drug_specification, --药品规格
|
||||
T2.manufacturer_name, --生产厂家
|
||||
T1.med_dosage, --药品剂量
|
||||
T1.med_dosage_unit_code, --药品剂量单位
|
||||
T1.med_frequency, --使用频次
|
||||
T1.med_route, --途径
|
||||
T1.quantity, --请求数量
|
||||
T1.unit_code, --请求单位
|
||||
T1.support_info, --支持用药信息
|
||||
T1.effective_dose_start, --服药时间(开始)
|
||||
T1.effective_dose_end, --服药时间(结束)
|
||||
T1.dispense_interval, --给药间隔
|
||||
T1.dispense_per_quantity, --单次发药数
|
||||
T1.dispense_per_duration, --每次发药供应天数
|
||||
T1.rx_type_code, --处方类别
|
||||
T1.rx_item_type_code, --处方项目类别
|
||||
T1.condition_id, --诊断id
|
||||
T1.version --药品版本号
|
||||
FROM elep_medication_request AS T1
|
||||
LEFT JOIN yb_catalog_drug_info AS T2
|
||||
ON T1.medication_id = T2.medical_catalog_code
|
||||
AND T1.version = T2.version
|
||||
WHERE T1.prescription_no = #{prescriptionNo}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.id,
|
||||
T2.medical_catalog_code,
|
||||
T2.registered_name,
|
||||
T2.drug_specification,
|
||||
T2.manufacturer_name,
|
||||
T1.med_dosage,
|
||||
T1.med_dosage_unit_code,
|
||||
T1.med_frequency,
|
||||
T1.med_route,
|
||||
T1.quantity,
|
||||
T1.unit_code,
|
||||
T1.support_info,
|
||||
T1.effective_dose_start,
|
||||
T1.effective_dose_end,
|
||||
T1.dispense_interval,
|
||||
T1.dispense_per_quantity,
|
||||
T1.dispense_per_duration,
|
||||
T1.rx_type_code,
|
||||
T1.rx_item_type_code,
|
||||
T1.condition_id,
|
||||
T1.version
|
||||
</select>
|
||||
<select id="selectSaveInfo" resultType="com.openhis.web.doctorstation.dto.ElepPrescriptionInfoParam">
|
||||
SELECT T7.id AS organization_id, --医院id
|
||||
T1.bus_no AS ipt_otp_no, --门诊/住院病历号
|
||||
CASE
|
||||
WHEN (T1.class_enum = '2') THEN T3.name
|
||||
WHEN (T1.class_enum = '1') THEN T5.name
|
||||
ELSE NULL
|
||||
END AS department_ward, --科室病区
|
||||
T6.insutype AS insurance_enum --医保类型
|
||||
--T8.id AS condition_id --诊断id
|
||||
FROM adm_encounter AS T1
|
||||
-- LEFT JOIN adm_encounter_diagnosis AS T2
|
||||
-- ON T2.encounter_id = T1.id
|
||||
-- AND T2.maindise_flag = '1'
|
||||
-- AND T2.delete_flag = '0'
|
||||
-- LEFT JOIN cli_condition AS T8
|
||||
-- ON T2.condition_id = T8.id
|
||||
-- AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T1.organization_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location AS T4
|
||||
ON T4.encounter_id = T1.id
|
||||
AND T4.status_enum = '2'
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T5
|
||||
ON T5.id = T4.location_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN yb_clinc_reg AS T6
|
||||
ON T6.ipt_otp_no = T1.bus_no
|
||||
LEFT JOIN adm_organization AS T7
|
||||
ON LEFT (T3.bus_no, 6) = T7.bus_no
|
||||
AND T7.type_enum = '1'
|
||||
AND T7.delete_flag = '0'
|
||||
WHERE T1.id = #{encounterId}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T7.id,
|
||||
T1.bus_no,
|
||||
T1.class_enum,
|
||||
T3.name,
|
||||
T5.name,
|
||||
T6.insutype
|
||||
-- T8.id
|
||||
</select>
|
||||
<!-- <select id="selectConditionInfo" resultType="com.openhis.web.doctorstation.dto.ElepPrescriptionInfoParam">-->
|
||||
<!-- SELECT T3.id AS condition_id, --诊断id-->
|
||||
<!-- T4.name AS condition_name --诊断名-->
|
||||
<!-- FROM adm_encounter AS T1-->
|
||||
<!-- LEFT JOIN adm_encounter_diagnosis AS T2-->
|
||||
<!-- ON T2.encounter_id = T1.id-->
|
||||
<!-- AND T2.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN cli_condition AS T3-->
|
||||
<!-- ON T2.condition_id = T3.id-->
|
||||
<!-- AND T3.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN cli_condition_definition AS T4-->
|
||||
<!-- ON T3.definition_id = T4.id-->
|
||||
<!-- AND T3.delete_flag = '0'-->
|
||||
<!-- WHERE T1.id = #{encounterId}-->
|
||||
<!-- AND T1.delete_flag = '0'-->
|
||||
<!-- GROUP BY T3.id,-->
|
||||
<!-- T4.name-->
|
||||
<!-- </select>-->
|
||||
</mapper>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?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.doctorstation.mapper.DoctorStationEmrAppMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,183 @@
|
||||
<?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.doctorstation.mapper.DoctorStationMainAppMapper">
|
||||
|
||||
<select id="getPatientInfo" resultType="com.openhis.web.doctorstation.dto.PatientInfoDto">
|
||||
SELECT
|
||||
T10.encounter_id,
|
||||
T10.patient_id,
|
||||
T10.patient_name,
|
||||
T10.gender_enum,
|
||||
T10.id_card,
|
||||
T10.phone,
|
||||
T10.birth_date,
|
||||
T10.status_enum,
|
||||
T10.allergy_history_flag,
|
||||
T10.account_id,
|
||||
T10.type_code,
|
||||
T10.contract_name,
|
||||
T10.org_id,
|
||||
T10.register_time,
|
||||
T10.reception_time,
|
||||
T10.practitioner_user_id,
|
||||
T10.jz_practitioner_user_id
|
||||
from
|
||||
(
|
||||
SELECT T1.tenant_id AS tenant_id,
|
||||
T1.ID AS encounter_id,
|
||||
T1.organization_id AS organization_id,
|
||||
T2.NAME AS organization_name,
|
||||
T3.NAME AS healthcare_name,
|
||||
T5.user_id AS practitioner_user_id,
|
||||
T5.NAME AS practitioner_name,
|
||||
ap.user_id AS jz_practitioner_user_id,
|
||||
ap.NAME AS jz_practitioner_name,
|
||||
T6.id AS account_id,
|
||||
T6.type_code AS type_code,
|
||||
T7.contract_name AS contract_name,
|
||||
T8.ID AS patient_id,
|
||||
T8.NAME AS patient_name,
|
||||
T8.gender_enum AS gender_enum,
|
||||
T8.id_card AS id_card,
|
||||
T8.phone AS phone,
|
||||
T8.birth_date AS birth_date,
|
||||
T1.status_enum AS status_enum,
|
||||
T1.create_time AS register_time,
|
||||
T1.reception_time AS reception_time,
|
||||
T1.organization_id AS org_id,
|
||||
CASE
|
||||
WHEN T9.patient_id IS NOT NULL THEN 1
|
||||
ELSE 0
|
||||
END AS allergy_history_flag
|
||||
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'
|
||||
LEFT JOIN adm_encounter_participant AS T4
|
||||
ON T1.ID = T4.encounter_id AND T4.type_code = #{participantType} AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T5 ON T5.ID = T4.practitioner_id AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_participant AS aep ON T1.ID = aep.encounter_id
|
||||
AND aep.type_code = #{participantType2}
|
||||
AND aep.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS ap ON ap.ID = aep.practitioner_id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS T6 ON T1.ID = T6.encounter_id AND T6.delete_flag = '0' and T6.encounter_flag = '1'
|
||||
LEFT JOIN fin_contract AS T7 ON T6.contract_no = T7.bus_no AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_patient AS T8 ON T1.patient_id = T8.ID AND T8.delete_flag = '0'
|
||||
LEFT JOIN cli_allergy_intolerance AS T9
|
||||
ON T1.patient_id = T9.patient_id AND T9.clinical_status_enum != #{ClinicalStatus} AND T9.delete_flag = '0'
|
||||
WHERE
|
||||
T1.delete_flag = '0'
|
||||
<!-- 当前登录账号ID 和 当前登录账号所属的科室ID 用于控制数据权限 -->
|
||||
<if test="userId != null and currentUserOrganizationId != null">
|
||||
AND ( T5.user_id = #{userId}
|
||||
OR (T1.organization_id = #{currentUserOrganizationId}) )
|
||||
</if>
|
||||
<if test="pricingFlag ==1">
|
||||
AND T1.status_enum != #{encounterStatus}
|
||||
</if>
|
||||
ORDER BY
|
||||
T1.create_time ) AS T10
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getPrescriptionPageInfo" resultType="com.openhis.web.doctorstation.dto.PrescriptionInfoBaseDto">
|
||||
SELECT ppi.prescription_no,
|
||||
ppi.encounter_id,
|
||||
ppi.patient_id,
|
||||
ppi.patient_name,
|
||||
ppi.birth_date,
|
||||
ppi.gender_enum,
|
||||
ppi.condition_definition_name,
|
||||
ppi.request_time,
|
||||
ppi.practitioner_id,
|
||||
ppi.practitioner_name,
|
||||
ppi.organization_id,
|
||||
ppi.bus_no,
|
||||
ppi.contract_name
|
||||
FROM (SELECT DISTINCT
|
||||
ON
|
||||
( mmr.prescription_no ) mmr.prescription_no, mmr.encounter_id,
|
||||
mmr.tenant_id,
|
||||
mmr.patient_id,
|
||||
ap.NAME AS patient_name,
|
||||
ap.birth_date AS birth_date,
|
||||
ap.gender_enum AS gender_enum,
|
||||
ccd.NAME AS condition_definition_name,
|
||||
mmr.create_time AS request_time,
|
||||
mmr.practitioner_id,
|
||||
aper.NAME AS practitioner_name,
|
||||
ae.organization_id,
|
||||
ae.bus_no,
|
||||
fc.contract_name
|
||||
FROM
|
||||
med_medication_request AS mmr
|
||||
LEFT JOIN adm_encounter AS ae
|
||||
ON ae.id = mmr.encounter_id AND ae.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS aa ON aa.encounter_id = ae.id AND aa.delete_flag = '0' AND aa.encounter_flag = 1
|
||||
LEFT JOIN fin_contract AS fc ON fc.bus_no = aa.contract_no AND fc.delete_flag = '0'
|
||||
LEFT JOIN adm_patient AS ap
|
||||
ON ap.ID = mmr.patient_id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS cc ON cc.ID = mmr.condition_id
|
||||
AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd ON ccd.ID = cc.definition_id
|
||||
LEFT JOIN adm_practitioner AS aper ON aper.ID = mmr.practitioner_id
|
||||
AND aper.delete_flag = '0'
|
||||
WHERE
|
||||
mmr.delete_flag = '0'
|
||||
AND (mmr.prescription_no LIKE 'P%'
|
||||
OR mmr.prescription_no LIKE 'C%')
|
||||
AND mmr.refund_medicine_id IS NULL
|
||||
ORDER BY
|
||||
mmr.prescription_no DESC) AS ppi
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getPrescriptionDetailInfo" resultType="com.openhis.web.doctorstation.dto.PrescriptionInfoDetailDto">
|
||||
SELECT mmr.prescription_no,
|
||||
mmr.ID AS request_id,
|
||||
mmr.practitioner_id AS requester_id,
|
||||
mmr.create_time AS request_time,
|
||||
mmr.group_id AS group_id,
|
||||
mmd.NAME AS advice_name,
|
||||
mm.total_volume AS volume,
|
||||
mmr.lot_number AS lot_number,
|
||||
mmr.quantity AS quantity,
|
||||
mmr.unit_code AS unit_code,
|
||||
mmr.status_enum AS status_enum,
|
||||
mmr.method_code AS method_code,
|
||||
mmr.rate_code AS rate_code,
|
||||
mmr.dose AS dose,
|
||||
mmr.dose_unit_code AS dose_unit_code,
|
||||
aci.ID AS charge_item_id,
|
||||
aci.total_price AS total_price,
|
||||
aci.status_enum AS charge_status,
|
||||
al.ID AS position_id,
|
||||
al.NAME AS position_name,
|
||||
mmr.dispense_per_duration AS dispense_per_duration,
|
||||
mmd.part_percent AS part_percent,
|
||||
ccd.NAME AS condition_definition_name
|
||||
FROM med_medication_request AS mmr
|
||||
LEFT JOIN med_medication_definition AS mmd ON mmd.ID = mmr.medication_id
|
||||
AND mmd.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS mm ON mm.medication_def_id = mmd.ID
|
||||
AND mm.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS aci ON aci.service_id = mmr.ID
|
||||
AND aci.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS al ON al.ID = mmr.perform_location
|
||||
AND al.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS cc ON cc.ID = mmr.condition_id
|
||||
AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd ON ccd.ID = cc.definition_id
|
||||
WHERE mmr.delete_flag = '0'
|
||||
<if test="prescriptionNo != null">
|
||||
AND mmr.prescription_no = #{prescriptionNo}
|
||||
</if>
|
||||
<if test="encounterId != null">
|
||||
AND mmr.encounter_id = #{encounterId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,106 @@
|
||||
<?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.doctorstation.mapper.DoctorStationPtDetailsAppMapper">
|
||||
<!-- 查询患者详情-->
|
||||
<select id="getPtDetailsList" resultType="com.openhis.web.doctorstation.dto.PatientDetailsDto">
|
||||
SELECT
|
||||
p.name,
|
||||
p.gender_enum,
|
||||
p.birth_date,
|
||||
p.phone,
|
||||
p.address,
|
||||
p.work_company,
|
||||
p.nationality_code,
|
||||
p.marital_status_enum,
|
||||
p.id_card,
|
||||
p.country_code,
|
||||
p.prfs_enum,
|
||||
p.link_name,
|
||||
p.link_relation_code,
|
||||
p.link_telcom,
|
||||
e.id,
|
||||
e.bus_no,
|
||||
e.patient_id,
|
||||
e.status_enum,
|
||||
e.class_enum,
|
||||
e.start_time,
|
||||
e.end_time,
|
||||
COALESCE(a.balance_amount, 0) AS balance_amount, -- 账户余额
|
||||
a.type_code, -- 账户类型
|
||||
(SELECT SUM(aci.total_price)
|
||||
FROM adm_charge_item aci
|
||||
WHERE aci.context_enum = #{contextMed} -- 1:药品
|
||||
AND aci.encounter_id = e.id
|
||||
--待收费,待结算,已结算
|
||||
AND aci.status_enum IN
|
||||
<foreach item="status" collection="statusList" open="(" separator="," close=")">
|
||||
#{status}
|
||||
</foreach>
|
||||
AND aci.delete_flag = '0'
|
||||
) AS total_medication_price, -- 费用:药品
|
||||
(SELECT SUM(aci.total_price)
|
||||
FROM adm_charge_item aci
|
||||
WHERE aci.context_enum = #{contextDev} -- 2:耗材
|
||||
AND aci.encounter_id = e.id
|
||||
--待收费,待结算,已结算
|
||||
AND aci.status_enum IN
|
||||
<foreach item="status" collection="statusList" open="(" separator="," close=")">
|
||||
#{status}
|
||||
</foreach>
|
||||
AND aci.delete_flag = '0'
|
||||
) AS total_device_price, -- 费用:耗材
|
||||
(SELECT SUM(aci.total_price)
|
||||
FROM adm_charge_item aci
|
||||
WHERE aci.context_enum = #{contextAct} -- 3:项目
|
||||
--待收费,待结算,已结算
|
||||
AND aci.status_enum IN
|
||||
<foreach item="status" collection="statusList" open="(" separator="," close=")">
|
||||
#{status}
|
||||
</foreach>
|
||||
AND aci.delete_flag = '0'
|
||||
) AS total_activity_price, -- 费用:项目
|
||||
(SELECT SUM(aci.total_price)
|
||||
FROM adm_charge_item aci
|
||||
WHERE aci.encounter_id = e.id
|
||||
--待收费,待结算,已结算
|
||||
AND aci.status_enum IN
|
||||
<foreach item="status" collection="statusList" open="(" separator="," close=")">
|
||||
#{status}
|
||||
</foreach>
|
||||
AND aci.delete_flag = '0'
|
||||
) AS total_price, -- 费用总计
|
||||
CASE
|
||||
WHEN (
|
||||
SELECT COUNT(*)
|
||||
FROM cli_allergy_intolerance ai
|
||||
WHERE ai.patient_id = e.patient_id
|
||||
AND ai.clinical_status_enum = #{clinicalStatus} -- 阳性
|
||||
) > 0 THEN 1
|
||||
ELSE 0
|
||||
END AS allergy_history_flag, -- 是否有过敏史
|
||||
(SELECT el.location_id
|
||||
FROM adm_encounter_location el
|
||||
WHERE el.encounter_id = e.id
|
||||
AND el.form_enum = #{form} -- 8:病床
|
||||
LIMIT 1
|
||||
) AS bed_location_id, -- 床位ID
|
||||
(SELECT pra.name
|
||||
FROM adm_encounter_participant ep
|
||||
LEFT JOIN adm_practitioner pra ON ep.practitioner_id = pra.id
|
||||
WHERE ep.encounter_id = e.id
|
||||
AND ep.type_code = #{typeCode} --就诊参与者身份类型是1:接诊医生
|
||||
ORDER BY ep.create_time DESC
|
||||
LIMIT 1) AS doctor_name--门诊医生
|
||||
FROM adm_encounter e
|
||||
LEFT JOIN adm_patient p ON e.patient_id = p.id AND p.delete_flag = '0'
|
||||
LEFT JOIN adm_account a ON e.id = a.encounter_id AND a.delete_flag = '0'
|
||||
<where>
|
||||
e.delete_flag = '0'
|
||||
AND e.id = #{encounterId}
|
||||
</where>
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,41 @@
|
||||
<?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.doctorstation.mapper.ReservationRecordAppMapper">
|
||||
|
||||
<select id="getReservationInfo" resultType="com.openhis.web.doctorstation.dto.ReservationRecordDto">
|
||||
SELECT ri.tenant_id,
|
||||
ri.id,
|
||||
ri.patient_name,
|
||||
ri.patient_tel,
|
||||
ri.chief_complaint,
|
||||
ri.reservation_time,
|
||||
ri.org_id,
|
||||
ri.org_name,
|
||||
ri.practitioner_id,
|
||||
ri.practitioner_name,
|
||||
ri.remark
|
||||
from (SELECT crr.tenant_id,
|
||||
crr.id,
|
||||
crr.patient_name,
|
||||
crr.patient_tel,
|
||||
crr.chief_complaint,
|
||||
crr.reservation_time,
|
||||
crr.org_id,
|
||||
ao.NAME AS org_name,
|
||||
crr.practitioner_id,
|
||||
ap.NAME AS practitioner_name,
|
||||
crr.remark
|
||||
FROM cli_reservation_record AS crr
|
||||
LEFT JOIN adm_organization AS ao ON ao.ID = crr.org_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS ap ON ap.ID = crr.practitioner_id
|
||||
AND ap.delete_flag = '0'
|
||||
WHERE crr.delete_flag = '0'
|
||||
AND (crr.org_id = #{orgId} OR crr.practitioner_id = #{practitionerId})
|
||||
order by crr.reservation_time) AS ri
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user