版本更新

This commit is contained in:
Zhang.WH
2025-09-03 15:54:41 +08:00
parent 0b93d16b64
commit 8f82322d10
3290 changed files with 154339 additions and 23829 deletions

View File

@@ -0,0 +1,102 @@
<?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.ybmanage.mapper.MedicalInsuranceMapper">
<select id="get3201Param" resultType="com.openhis.web.ybmanage.vo.Settlement3201VO">
SELECT sum(T1.tendered_amount) AS med_fee_sum_amt,
sum(case T5.pay_enum = #{ybFund} THEN T5.amount ELSE 0 END) AS fund_pay_sum_amt,
sum(case T5.pay_enum = #{zhPay} THEN T5.amount ELSE 0 END) AS acct_pay,
sum(case T5.pay_enum = #{zhGjPay} THEN T5.amount ELSE 0 END) AS acct_gj_pay,
count(T1.id) AS fix_med_ins_setl_cnt
FROM fin_payment_reconciliation T1
INNER JOIN yb_clinc_reg T2 ON T1.encounter_id = T2.ipt_otp_no
INNER JOIN yb_clinc_settle T3 ON T1.id = T3.payment_id AND T2.mdtrt_id = T3.mdtrt_id
INNER JOIN adm_encounter T4 ON T1.encounter_id = T4.id AND T4.delete_flag = '0'
LEFT JOIN fin_payment_rec_detail T5 ON T1.id = T5.reconciliation_id
WHERE t1.bill_date &gt; #{startTime}
AND t1.bill_date &lt; #{endTime}
AND T2.insutype = #{InsuType}
AND T4.yb_class_enum = #{clrType}
AND T4.clr_optins = #{admVs}
AND T1.tenant_id = #{tenantId}
GROUP BY t1.id
</select>
<select id="get3202Param" resultType="com.openhis.web.ybmanage.vo.Settlement3202VO">
SELECT sum(T1.tendered_amount) AS med_fee_sum_amt,
sum(case T5.pay_enum = #{ybFund} THEN T5.amount ELSE 0 END) AS fund_pay_sum_amt,
sum(case T5.pay_enum = #{zhPay} THEN T5.amount ELSE 0 END) AS acct_pay,
sum(case T5.pay_enum = #{zhGjPay} THEN T5.amount ELSE 0 END) AS acct_gj_pay,
sum(case T5.pay_enum = #{cash} THEN T5.amount ELSE 0 END) AS self_pay_cash,
sum(case T5.pay_enum = #{cashAli} THEN T5.amount ELSE 0 END) AS self_pay_vx,
sum(case T5.pay_enum = #{cashVX} THEN T5.amount ELSE 0 END) AS self_pay_ali,
sum(case T5.pay_enum = #{cashUNIN} THEN T5.amount ELSE 0 END) AS self_pay_union,
count(T1.id) AS fixMedInsSetlCnt
FROM fin_payment_reconciliation T1
INNER JOIN yb_clinc_reg T2 ON T1.encounter_id = T2.ipt_otp_no
INNER JOIN yb_clinc_settle T3 ON T1.id = T3.payment_id AND T2.mdtrt_id = T3.mdtrt_id
INNER JOIN adm_encounter T4 ON T1.encounter_id = T4.id AND T4.delete_flag = '0'
LEFT JOIN fin_payment_rec_detail T5 ON T1.id = T5.reconciliation_id
WHERE t1.bill_date &gt; #{startTime}
AND t1.bill_date &lt; #{endTime}
AND T4.yb_class_enum = #{clrType}
AND T4.clr_optins = #{admVs}
AND T1.tenant_id = #{tenantId}
GROUP BY t1.id
</select>
<select id="get3203Param" resultType="com.openhis.web.ybmanage.vo.Financial3203VO">
SELECT sum(T1.tendered_amount) AS medFeeSumAmt,
sum(case T5.pay_enum = #{ybFund} THEN T5.amount ELSE 0 END) AS fund_pay_sum_amt,
sum(case T5.pay_enum = #{zhPay} THEN T5.amount ELSE 0 END) AS acct_pay,
sum(case T5.pay_enum = #{zhGjPay THEN T5.amount ELSE 0 END}) AS acct_gj_pay,
sum(case T5.pay_enum = #{cash} THEN T5.amount ELSE 0 END) AS self_pay_cash,
sum(case T5.pay_enum = #{cashAli} THEN T5.amount ELSE 0 END) AS self_pay_vx,
sum(case T5.pay_enum = #{cashVX} THEN T5.amount ELSE 0 END) AS self_pay_ali,
sum(case T5.pay_enum = #{cashUNIN} THEN T5.amount ELSE 0 END) AS self_pay_union,
sum(T3.medfee_sumamt) AS medSumfee,
count(T4.id) AS psntime,
count(T1.id) AS fixMedInsSetlCnt
FROM fin_payment_reconciliation T1
INNER JOIN yb_clinc_reg T2 ON T1.encounter_id = T2.ipt_otp_no
INNER JOIN yb_clinc_settle T3 ON T1.id = T3.payment_id AND T2.mdtrt_id = T3.mdtrt_id
INNER JOIN adm_encounter T4 ON T1.encounter_id = T4.id AND T4.delete_flag = '0'
LEFT JOIN fin_payment_rec_detail T5 ON T1.id = T5.reconciliation_id
WHERE t1.bill_date &gt; #{startTime}
AND t1.bill_date &lt; #{endTime}
AND T4.yb_class_enum = #{clrType}
AND T4.clr_optins = #{admVs}
AND T1.tenant_id = #{tenantId}
GROUP BY t1.id
</select>
<select id="get3201ParamList" resultType="com.openhis.web.ybmanage.vo.Settlement3201DetailVO">
SELECT
T2.insutype,
T4.clr_optins,
SUM(T1.tendered_amount) AS medFeeSumAmt,
SUM(CASE WHEN T5.pay_enum = #{ybFund} THEN T5.amount ELSE 0 END) AS fund_pay_sum_amt,
SUM(CASE WHEN T5.pay_enum = #{zhPay} THEN T5.amount ELSE 0 END) AS acct_pay,
SUM(CASE WHEN T5.pay_enum = #{zhGjPay} THEN T5.amount ELSE 0 END) AS acct_gj_pay,
COUNT(T1.id) AS fix_med_ins_setl_cnt
FROM fin_payment_reconciliation T1
INNER JOIN yb_clinc_reg T2 ON T1.encounter_id = T2.ipt_otp_no
INNER JOIN yb_clinc_settle T3 ON T1.id = T3.payment_id AND T2.mdtrt_id = T3.mdtrt_id
INNER JOIN adm_encounter T4 ON T1.encounter_id = T4.id AND T4.delete_flag = '0'
LEFT JOIN fin_payment_rec_detail T5 ON T1.id = T5.reconciliation_id
WHERE
T1.bill_date &gt; #{startTime}
AND T1.bill_date &lt; #{endTime}
<if test="InsuType != null">
AND T2.insutype = #{InsuType}
</if>
<if test="clrType != null">
AND T4.yb_class_enum = #{clrType}
</if>
<if test="admVs != null">
AND T4.clr_optins = #{admVs}
</if>
AND T1.tenant_id = #{tenantId}
GROUP BY
T2.insutype,
T4.clr_optins;
</select>
</mapper>

View File

@@ -0,0 +1,152 @@
<?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.ybmanage.mapper.YbElepMapper">
<select id="getVeriPrescriptionInfo" resultType="com.openhis.web.ybmanage.dto.VeriPrescriptionInfoDto">
SELECT tenant_id,
prescription_no, --处方号
ipt_otp_no, --门诊号
patient_name, --姓名
certno, --身份证号
med_status, --取药状态
status_enum, --状态
prsc_dept_name, --开单科室
mdtrt_time, --挂号日期
prsc_time, --处方开立日期
hi_rxno --医保处方编号
FROM (SELECT T1.tenant_id,
T1.prescription_no, --处方号
T1.ipt_otp_no, --门诊号
T2.name AS patient_name, --姓名
T2.id_card AS certno, --身份证号
CASE
WHEN (T5.rx_used_stas_codg IN ('1', '2')) THEN T5.rx_used_stas_name
ELSE '未使用'
END AS med_status, --取药状态
T1.status_enum AS status_enum, --状态
T4.name AS prsc_dept_name, --开单科室
T3.reception_time AS mdtrt_time, --挂号日期
T1.issue_time AS prsc_time, --处方开立日期
T1.hi_rxno --医保处方编号
FROM elep_medication_request AS T1
LEFT JOIN adm_patient AS T2
ON T1.patient_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN adm_encounter AS T3
ON T1.encounter_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN adm_organization AS T4
ON T1.org_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN yb_elep_medresult_info AS T5
ON T1.hi_rxno = T5.hi_rxno
LEFT JOIN adm_account AS T6
ON T1.encounter_id = T6.encounter_id
AND T6.delete_flag = '0'
WHERE T1.delete_flag = '0') ${ew.customSqlSegment}
GROUP BY tenant_id,
prescription_no,
ipt_otp_no,
patient_name,
certno,
med_status,
status_enum,
prsc_dept_name,
mdtrt_time,
prsc_time,
hi_rxno
ORDER BY prsc_time DESC
</select>
<select id="getVeriPrescriptionDetailInfo" resultType="com.openhis.web.ybmanage.dto.VeriPrescriptionDetailInfoDto">
SELECT DISTINCT T1.prescription_no, --处方号
T1.ipt_otp_no, --门诊号
T1.quantity, --请求数量
T1.unit_code, --请求单位
T1.status_enum AS status_enum, --药品请求状态
--处方信息
T2.registered_name AS medication_name, --药品名
T2.drug_specification, --药品规格
T1.med_dosage, --药品剂量
T1.med_dosage_unit_code, --药品剂量单位
T1.med_frequency, --使用频次
T1.med_route, --途径
CASE
WHEN (T9.rx_used_stas_codg IN ('1', '2')) THEN T9.rx_used_stas_name
ELSE '未使用'
END AS med_status, --取药状态
CASE
WHEN (T10.rx_stas_codg IN ('1', '2', '3', '4')) THEN T10.rx_stas_name
ELSE '未上传'
END AS prescription_status, --处方状态
T1.rx_type_code, --处方类别
T1.support_info, --支持用药信息
T1.effective_dose_start, -- 服药时间(开始)
T1.effective_dose_end, -- 服药时间(结束)
T1.dispense_interval, -- 给药间隔
T1.dispense_per_quantity, -- 单次发药数
T1.dispense_per_duration, -- 每次发药供应天数
--就诊信息
T3.name AS patn_name, --患者名
T3.id_card AS certno, --身份证号
T4.name AS practitioner_name, --开方医生名
T6.name AS mdtrt_dept_name, --挂号科室
T7.name AS prsc_dept_name, --开单科室
T5.create_time AS mdtrt_time, --挂号日期
T1.issue_time AS prsc_time, --处方开立日期
--诊断信息
T8.name AS condition_name --诊断名
FROM elep_medication_request AS T1
LEFT JOIN (SELECT drug.medical_catalog_code,
drug.registered_name,
drug.drug_specification,
drug.version
FROM yb_catalog_drug_info drug
INNER JOIN (SELECT info.medical_catalog_code, MAX(info.version) AS max_version
FROM yb_catalog_drug_info info
WHERE info.valid_flag = '1'
GROUP BY info.medical_catalog_code
) AS item ON drug.medical_catalog_code = item.medical_catalog_code AND
drug.version = item.max_version
WHERE drug.valid_flag = '1'
) AS T2 ON T1.medication_id = T2.medical_catalog_code
LEFT JOIN adm_patient AS T3
ON T1.patient_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN adm_practitioner AS T4
ON T1.prescribing_dr_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN adm_encounter AS T5
ON T1.encounter_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_organization AS T6
ON T5.organization_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_organization AS T7
ON T1.org_id = T7.id
AND T7.delete_flag = '0'
LEFT JOIN cli_condition AS T11
ON T1.condition_id = T11.id
AND T11.delete_flag = '0'
LEFT JOIN cli_condition_definition AS T8
ON T11.definition_id = T8.id
AND T8.delete_flag = '0'
LEFT JOIN yb_elep_medresult_info AS T9
ON T1.hi_rxno = T9.hi_rxno
LEFT JOIN (SELECT hi_rxno, rx_stas_codg, rx_stas_name
FROM (SELECT hi_rxno, rx_stas_codg, rx_stas_name, create_time
FROM yb_elep_upload_output
UNION ALL
SELECT hi_rxno, rx_stas_codg, rx_stas_name, create_time
FROM yb_elep_revoke_output
UNION ALL
SELECT hi_rxno, rx_stas_codg, rx_stas_name, create_time
FROM yb_elep_quer_prescription_info
UNION ALL
SELECT hi_rxno, rx_stas_codg, rx_stas_name, create_time
FROM yb_elep_medresult_info) combined_tables
ORDER BY create_time DESC LIMIT 1) AS T10
ON T1.hi_rxno = T10.hi_rxno
WHERE T1.prescription_no = #{prescriptionNo}
AND T1.delete_flag = '0'
</select>
</mapper>

View File

@@ -0,0 +1,188 @@
<?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.ybmanage.mapper.YbMapper">
<select id="yb3101SelectEncounterPatientInfo"
resultType="com.openhis.yb.dto.Yb3101AdapterEncounterPatientInfo">
SELECT MAX(T5.psn_no) AS patnId
, MAX(T5.psn_name) AS patnName
, MAX(T5.gend) AS gend
, MAX(T5.brdy) AS brdy
, MAX(T5.insuplc_admdvs) AS poolarea
, MAX(T8.mdtrt_id) AS mdtrtId
, MAX(T4.id) AS contractId
, MAX(T4.fixmedins_code) AS medinsId
, MAX(T4.fixmedins_name) AS medinsName
, MAX(T4.adm_vs) AS medinsAdmdvs
, MAX(COALESCE(T1.start_time, T1.create_time)) AS admDate
, MAX(T1.end_time) AS dscgDate
, MAX(T6.practitioner_id) AS drCodg
, MAX(COALESCE(T12.bus_no, T7.bus_no)) AS admDeptCodg
, MAX(COALESCE(T12.name, T7.name)) AS admDeptName
, MAX(T7.bus_no) AS dscgDeptCodg
, MAX(T7.name) AS dscgDeptName
, MAX(T1.yb_class_enum) AS medType
, SUM(T9.fulamt_ownpay_amt) AS ownpayAmt
, SUM(T9.preselfpay_amt) AS selfpayAmt
, COUNT(T9.id) AS setlTotlnum
, MAX(T5.insutype) AS insutype
FROM adm_encounter T1
INNER JOIN adm_patient T2
ON T2.id = T1.patient_id
INNER JOIN adm_account T3
ON T3.encounter_id = T1.id
AND T3.encounter_flag = #{encounterFlag}
INNER JOIN fin_contract T4
ON T4.bus_no = T3.contract_no
INNER JOIN LATERAL ( SELECT psn_no
, psn_name
, gend
, brdy
, insuplc_admdvs
, insutype
FROM yb_pub_perinfo
WHERE certno = T2.id_card
ORDER BY create_time DESC LIMIT 1) T5
ON T2.id_card IS NOT NULL
INNER JOIN adm_encounter_participant T6
ON T6.encounter_id = T1.id
AND T6.delete_flag = #{deleteFlag}
AND T6.type_code = #{participantType}
INNER JOIN adm_organization T7
ON T7.id = T1.organization_id
INNER JOIN yb_clinc_reg T8
ON T8.ipt_otp_no = T1.bus_no
INNER JOIN yb_clinc_settle T9
ON T9.mdtrt_id = T8.mdtrt_id
LEFT JOIN LATERAL ( SELECT location_id
FROM adm_encounter_location
WHERE encounter_id = T1.id
ORDER BY create_time LIMIT 1) T10
ON TRUE
LEFT JOIN adm_location T11
ON T11.id = T10.location_id
LEFT JOIN adm_organization T12
ON T12.id = T11.organization_id
WHERE T1.id = #{encounterId}
</select>
<select id="yb3101SelectEncounterDiagnoseInfo"
resultType="com.openhis.yb.dto.Yb3101AdapterEncounterDiagnoseInfo">
SELECT T1.id AS diseId
, T1.ipt_dise_type_code AS iptDiseTypeCode
, T1.maindise_flag AS maindiseFlag
, T1.diag_srt_no AS diasSrtNo
, T2.yb_no AS diseCodg
, T3."name" AS diseName
, T1.create_time AS diseDate
FROM adm_encounter_diagnosis T1
INNER JOIN cli_condition T2
ON T2.id = T1.condition_id
INNER JOIN cli_condition_definition T3
ON T3.id = T2.definition_id
WHERE T1.delete_flag = #{deleteFlag}
AND T1.encounter_id = #{encounterId}
</select>
<select id="yb3101SelectOrderInfo" resultType="com.openhis.yb.dto.Yb3101AdapterOrderInfo">
SELECT T3.bus_no AS rxId
, T3.prescription_no AS rxno
, T3.group_id AS grpno
, T3.therapy_enum AS therapyEnum
, T2.yb_type AS ybType
, COALESCE(T5.medical_catalog_code, T6.medical_catalog_code) AS hilistCode
, COALESCE(T5.registered_name, T6.single_drug_name) AS hilistName
, COALESCE(T5.drug_form, '') AS hilistDosform
, T4.chrgitm_lv AS hilistLv
, T1.quantity_value AS cnt
, T1.unit_price AS pric
, T1.total_price AS sumamt
, COALESCE(T5.registered_spec, '') AS spec
, COALESCE(T5.min_package_unit, '') AS specUnt
, T1.entered_date AS drordBegnDate
, T7.bus_no AS drordDeptCodg
, T7."name" AS drordDeptName
, T8.yb_no AS drordDrCodg
, T8."name" AS drordDrName
, T8.dr_profttl_code AS drordDrProfttl
FROM adm_charge_item T1
INNER JOIN adm_charge_item_definition T2
ON T2.id = T1.definition_id
INNER JOIN med_medication_request T3
ON T3.id = T1.service_id
AND T1.service_table = 'med_medication_request'
INNER JOIN med_medication_definition T4
ON T4.id = T1.product_id
LEFT JOIN LATERAL (SELECT medical_catalog_code
, registered_name
, drug_form
, registered_spec
, min_package_unit
FROM yb_catalog_drug_info
WHERE medical_catalog_code = T4.yb_no
AND T2.yb_type = #{ybMedChrgItmTypeWest}
OR T2.yb_type = #{ybMedChrgItmTypeChinese}
ORDER BY created_at DESC LIMIT 1) T5
ON true
LEFT JOIN LATERAL (SELECT medical_catalog_code
, single_drug_name
FROM yb_catalog_medical_herb_info
WHERE medical_catalog_code = T4.yb_no
AND T2.yb_type = #{ybMedChrgItmTypeChineseSlices}
ORDER BY create_time DESC LIMIT 1 ) T6 ON true
INNER JOIN adm_organization T7
ON T7.id = T1.requesting_org_id
INNER JOIN adm_practitioner T8
ON T8.id = T1.enterer_id
WHERE T1.delete_flag = #{deleteFlag}
AND T1.encounter_id = #{encounterId}
</select>
<select id="yb4101aSelectSettleInfo" resultType="com.openhis.yb.dto.Yb4101AAdapterSettleInfo">
SELECT T4.psn_no AS psnNo
, T6.mdtrt_id AS mdtrtId
, T2.setl_id AS setlId
, T3.country_code AS ntly
, T3.prfs_enum AS prfs
, T7.caty AS dscgCaty
, T8.bill_batch_code AS billCode
, T8.bill_no AS billNo
, T1.payment_no AS bizSn
, T2.setl_time AS setlDate
FROM fin_payment_reconciliation T1
INNER JOIN yb_inpatient_settle T2
ON T1.yb_settle_ids LIKE CONCAT('%', T2.setl_id, '%')
INNER JOIN adm_patient T3
ON T3.id = T1.patient_id
INNER JOIN LATERAL ( SELECT psn_no
FROM yb_pub_perinfo
WHERE certno = T3.id_card
ORDER BY create_time DESC LIMIT 1) T4
ON T3.id_card IS NOT NULL
INNER JOIN adm_encounter T5
ON T5.id = T1.encounter_id
INNER JOIN yb_clinc_reg T6
ON T6.ipt_otp_no = T5.bus_no
INNER JOIN adm_organization T7
ON T7.id = T5.organization_id
INNER JOIN adm_invoice T8
ON T8.reconciliation_id = T1.id
WHERE T1.id = #{paymentId}
</select>
<select id="yb4101aSelectOpspdiseinfo" resultType="com.openhis.yb.dto.Yb4101AInputOpspdiseinfo">
SELECT T5."name" AS diagName
, T5.yb_no AS diagCode
FROM fin_payment_reconciliation T1
INNER JOIN adm_charge_item T2
ON T1.charge_item_ids LIKE CONCAT('%', T2.id, '%')
INNER JOIN adm_encounter_diagnosis T3
ON T3.id = T2.encounter_diagnosis_id
INNER JOIN cli_condition T4
ON T4.id = T3.condition_id
INNER JOIN cli_condition_definition T5
ON T5.id = T4.definition_id
WHERE T1.id = #{paymentId}
GROUP BY T5."name", T5.yb_no
</select>
</mapper>