273 lines
15 KiB
XML
273 lines
15 KiB
XML
<?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.czblood.busBloodbank.mapper.BloodOutMapper">
|
|
<select id="queryApplyBloodTypeCount" resultType="java.lang.Integer">
|
|
SELECT COUNT(1) FROM xk_transfuse_apply_bloodbreed A JOIN xk_blood_breed B ON B.breed_code=A.blood_breed AND B.Is_match='N' WHERE A.bill_no=#{billNo} and b.blood_kind = '0002'
|
|
</select>
|
|
<select id="queryApplyInfo" resultType="java.util.Map">
|
|
SELECT xk_patient_info.patient_name,
|
|
xk_patient_info.age,
|
|
xk_patient_info.patient_sex,
|
|
xk_transfuse_apply.bill_no,
|
|
xk_patient_info.transfuse_history,
|
|
xk_patient_info.gestation_history,
|
|
xk_patient_info.parturition_history,
|
|
xk_patient_info.reaction_history,
|
|
xk_patient_info.match_history,
|
|
xk_transfuse_apply.apply_date,
|
|
xk_transfuse_apply.abo_type,
|
|
xk_transfuse_apply.rh_type,
|
|
xk_transfuse_apply.diagnoses,
|
|
xk_transfuse_apply.intent,
|
|
xk_transfuse_apply.apply_type,
|
|
xk_transfuse_apply.zone_id,
|
|
xk_transfuse_apply.use3_date,
|
|
xk_transfuse_apply.use2_date,
|
|
xk_transfuse_apply.use1_date,
|
|
xk_transfuse_apply.beinhos_id,
|
|
xk_transfuse_apply.dept_id,
|
|
xk_transfuse_apply.patient_bed,
|
|
xk_check_bloodtype.affirm_abo,
|
|
xk_check_bloodtype.check_rh,
|
|
xk_check_bloodtype.affirm_antibody,
|
|
xk_check_bloodtype.Sub_Blood
|
|
FROM xk_patient_info RIGHT OUTER JOIN xk_transfuse_apply ON xk_patient_info.beinhos_id = xk_transfuse_apply.beinhos_id,
|
|
xk_check_bloodtype
|
|
WHERE
|
|
( xk_transfuse_apply.bill_no = xk_check_bloodtype.apply_no ) and
|
|
( xk_transfuse_apply.bill_no = #{billNo}) AND
|
|
( xk_transfuse_apply.bill_sort = 'B') AND
|
|
( xk_transfuse_apply.operation_type = 'C' OR isnull(xk_transfuse_apply.operation_type,'') = '')
|
|
|
|
union
|
|
|
|
SELECT xk_patient_info.patient_name,
|
|
xk_patient_info.age,
|
|
xk_patient_info.patient_sex,
|
|
xk_transfuse_apply.bill_no,
|
|
xk_patient_info.transfuse_history,
|
|
xk_patient_info.gestation_history,
|
|
xk_patient_info.parturition_history,
|
|
xk_patient_info.reaction_history,
|
|
xk_patient_info.match_history,
|
|
xk_transfuse_apply.apply_date,
|
|
xk_transfuse_apply.abo_type,
|
|
xk_transfuse_apply.rh_type,
|
|
xk_transfuse_apply.diagnoses,
|
|
xk_transfuse_apply.intent,
|
|
xk_transfuse_apply.apply_type,
|
|
xk_transfuse_apply.zone_id,
|
|
xk_transfuse_apply.use3_date,
|
|
xk_transfuse_apply.use2_date,
|
|
xk_transfuse_apply.use1_date,
|
|
xk_transfuse_apply.beinhos_id,
|
|
xk_transfuse_apply.dept_id,
|
|
xk_transfuse_apply.patient_bed,
|
|
space(4) affirm_abo,
|
|
space(4) check_rh,
|
|
space(8) affirm_antibody,
|
|
space(8) Sub_Blood
|
|
FROM xk_patient_info RIGHT OUTER JOIN xk_transfuse_apply ON xk_patient_info.beinhos_id = xk_transfuse_apply.beinhos_id
|
|
WHERE
|
|
( xk_transfuse_apply.bill_no = #{billNo}) and
|
|
( xk_transfuse_apply.bill_sort = 'C')AND
|
|
( xk_transfuse_apply.operation_type = 'C' OR isnull(xk_transfuse_apply.operation_type,'') = '')
|
|
|
|
union
|
|
|
|
SELECT xk_patient_info.patient_name,
|
|
xk_patient_info.age,
|
|
xk_patient_info.patient_sex,
|
|
xk_transfuse_apply.bill_no,
|
|
xk_patient_info.transfuse_history,
|
|
xk_patient_info.gestation_history,
|
|
xk_patient_info.parturition_history,
|
|
xk_patient_info.reaction_history,
|
|
xk_patient_info.match_history,
|
|
xk_transfuse_apply.apply_date,
|
|
xk_transfuse_apply.abo_type,
|
|
xk_transfuse_apply.rh_type,
|
|
xk_transfuse_apply.diagnoses,
|
|
xk_transfuse_apply.intent,
|
|
xk_transfuse_apply.apply_type,
|
|
xk_transfuse_apply.zone_id,
|
|
xk_transfuse_apply.use3_date,
|
|
xk_transfuse_apply.use2_date,
|
|
xk_transfuse_apply.use1_date,
|
|
xk_transfuse_apply.beinhos_id,
|
|
xk_transfuse_apply.dept_id,
|
|
xk_transfuse_apply.patient_bed,
|
|
xk_check_bloodtype.affirm_abo,
|
|
xk_check_bloodtype.check_rh,
|
|
xk_check_bloodtype.affirm_antibody ,
|
|
xk_check_bloodtype.Sub_Blood
|
|
FROM xk_patient_info RIGHT OUTER JOIN xk_transfuse_apply ON xk_patient_info.beinhos_id = xk_transfuse_apply.beinhos_id,
|
|
xk_check_bloodtype
|
|
WHERE
|
|
( xk_transfuse_apply.bill_no = xk_check_bloodtype.apply_no ) and
|
|
( xk_transfuse_apply.bill_sort = 'A')AND
|
|
( xk_transfuse_apply.operation_type = 'C' OR isnull(xk_transfuse_apply.operation_type,'') = '')AND
|
|
( xk_transfuse_apply.bill_no = #{billNo})
|
|
</select>
|
|
<select id="queryWaitInfo" resultType="java.util.Map">
|
|
SELECT xk_transfuse_apply.bill_no,
|
|
xk_patient_info.patient_name,
|
|
xk_transfuse_apply.dept_id ,xk_transfuse_apply_bloodbreed.blood_breed
|
|
FROM xk_transfuse_apply with (nolock) LEFT OUTER JOIN xk_patient_info with (nolock) ON xk_transfuse_apply.beinhos_id = xk_patient_info.beinhos_id ,xk_dmzd,
|
|
xk_transfuse_apply_bloodbreed with (nolock)
|
|
WHERE (xk_transfuse_apply_bloodbreed.bill_no = xk_transfuse_apply.bill_no) and
|
|
(xk_transfuse_apply.check_sign = 'Y' or xk_transfuse_apply.check_sign = 'y' )and
|
|
(( bill_sort = 'A' AND bill_stasus = 'F') OR (bill_sort = 'C' AND bill_stasus = 'B' )OR (bill_sort = 'B' AND (bill_stasus= 'C' OR bill_stasus = 'S')) ) AND
|
|
(xk_transfuse_apply.operation_type ='C' or isnull(xk_transfuse_apply.operation_type,'') = '')and
|
|
(( (xk_transfuse_apply.check_explain = xk_dmzd.wordbook_code) and (xk_dmzd.wordbook_sign ='sqdshyj')AND xk_dmzd.exp1 = 'Y' ) or isnull(xk_transfuse_apply.check_explain,'') = '') and
|
|
(xk_transfuse_apply.abnor_next = 'Y' or isnull(xk_transfuse_apply.abnor_next,'') = '')
|
|
-- 两天前 00:00:00 当天23:59:59
|
|
AND xk_transfuse_apply.apply_date between DATEADD(DD, DATEDIFF(DD,0,GETDATE())-2, 0) and DATEADD(SS, -1, DATEADD(DD, DATEDIFF(DD,0,GETDATE())+1, 0))
|
|
</select>
|
|
<select id="queryBloodBackOutCount" resultType="com.czblood.bus.pojo.XkBackoutDetail">
|
|
SELECT xk_backout_detail.* FROM xk_backout_main , xk_backout_detail
|
|
WHERE ( xk_backout_main.bill_no =xk_backout_detail.bill_no )
|
|
<![CDATA[ AND isnull ( xk_backout_main.audit_person , '' ) <> '' ]]>
|
|
and xk_backout_detail.blood_no = #{bloodNo} and xk_backout_detail.product_no = #{productNo}
|
|
</select>
|
|
<select id="queryBloodOutInfoCount" resultType="java.util.Map">
|
|
SELECT xk_out_main.bill_no,xk_out_main.apply_no,(select wordbook_name from xk_dmzd where wordbook_sign = 'ks' and xk_transfuse_apply.dept_id = wordbook_code) as dept_name,xk_transfuse_apply.beinhos_id,xk_patient_info.patient_name
|
|
FROM xk_out_main left join xk_transfuse_apply on (xk_out_main.apply_no = xk_transfuse_apply.bill_no), xk_out_detail,xk_patient_info
|
|
WHERE xk_out_main.bill_no = xk_out_detail.bill_no and xk_out_main.beinhos_id = xk_patient_info.beinhos_id
|
|
AND xk_out_main.check_sign ='Y' AND xk_out_detail.blood_no = #{bloodNo} and xk_out_detail.product_no = #{productNo}
|
|
|
|
</select>
|
|
<select id="queryDiscardCount" resultType="com.czblood.bus.pojo.XkDiscardMain">
|
|
SELECT xk_discard_main.*
|
|
FROM xk_discard_main , xk_discard_detail
|
|
WHERE ( xk_discard_main.bill_no =xk_discard_detail.bill_no )
|
|
<![CDATA[AND ( isnull ( xk_discard_main.audit_person , '' ) <> '' ) ]]>
|
|
and ( xk_discard_detail.blood_no = #{bloodNo} ) and xk_discard_detail.product_no = #{productNo}
|
|
</select>
|
|
<select id="queryMatchBloodInfo" resultType="java.util.Map">
|
|
SELECT isnull ( xk_dmzd.remark , '' ) as can_send , xk_dmzd.wordbook_name as result,xk_match_detail.match_method,xk_match_detail.check_method
|
|
FROM xk_dmzd , xk_match_detail , xk_match_main
|
|
WHERE ( xk_match_detail.result =xk_dmzd.wordbook_code ) AND
|
|
( xk_dmzd.wordbook_sign ='pxjg' ) AND
|
|
( xk_match_main.bill_no =xk_match_detail.bill_no ) AND
|
|
( xk_match_detail.blood_no = #{bloodNo} ) and
|
|
( xk_match_detail.product_no = #{productNo} ) AND
|
|
( xk_match_main.apply_no = #{applyNo} )
|
|
</select>
|
|
<select id="queryXkMatchMain" resultType="com.czblood.bus.pojo.XkMatchMain">
|
|
SELECT * FROM xk_match_main Where apply_no = #{applyNo} AND bill_status ='A'
|
|
</select>
|
|
<select id="queryMaxCheckNo" resultType="java.lang.String">
|
|
select top 1 bill_no from xk_check_bloodtype where apply_no = #{applyNo} order by test_date
|
|
</select>
|
|
<select id="querySampleMaxPickDate" resultType="java.util.Date">
|
|
SELECT Max(Pick_Date) FROM xk_sample_info Where Relate_Applyno = #{applyNo}
|
|
</select>
|
|
<select id="queryCheckBloodtype" resultType="com.czblood.bus.pojo.XkCheckBloodtype">
|
|
SELECT * FROM xk_check_bloodtype
|
|
Where apply_no = #{applyNo} And ( bill_status ='A' OR bill_status ='B' )
|
|
</select>
|
|
<select id="queryList" resultType="java.util.Map">
|
|
SELECT distinct xk_out_main.bill_no,
|
|
xk_out_main.occur_date,
|
|
xk_out_main.handle_person,
|
|
xk_out_main.apply_no,
|
|
xk_out_main.patient_name,
|
|
xk_out_main.beinhos_id,
|
|
xk_out_main.dept_id,
|
|
xk_out_main.check_sign,
|
|
xk_out_main.exp2,
|
|
xk_out_main.notify_time,
|
|
xk_out_main.receive_id,
|
|
xk_out_main.receive_person,
|
|
SUBSTRING(( SELECT ',' +xx.breed_name+CONVERT(varchar(255),CONVERT(decimal(10,1),x.blood_num))+x.unit
|
|
from xk_transfuse_apply_bloodbreed x join xk_blood_breed xx on xx.breed_code=x.blood_breed where x.bill_no=xk_out_main.apply_no FOR XML PATH('') ),2,999) as req_breed
|
|
FROM xk_out_main,xk_out_detail
|
|
WHERE ( xk_out_main.bill_no = xk_out_detail.bill_no) and
|
|
( xk_out_main.bill_sort = 'C' )
|
|
and xk_out_main.occur_date between #{stime} and #{etime}
|
|
<if test="billNo != null">and xk_out_main.bill_no = #{billNo}</if>
|
|
<if test="beinhos_id != null">and xk_out_main.beinhos_id = #{beinhos_id}</if>
|
|
<if test="checkSign != null">and xk_out_main.check_sign = #{checkSign}</if>
|
|
<if test="dept != null">and xk_out_main.dept_id = #{dept}</if>
|
|
<if test="sendPerson != null">and xk_out_main.handle_person = #{sendPerson}</if>
|
|
<if test="bloodNo != null">and xk_out_detail.blood_no = #{bloodNo}</if>
|
|
</select>
|
|
<select id="queryStockInfo" resultType="java.util.Map">
|
|
SELECT
|
|
xk_blood_info.blood_no,
|
|
xk_blood_info.blood_breed,
|
|
xk_blood_info.blood_type,
|
|
xk_blood_info.product_no,
|
|
xk_blood_info.rh_blood_type,
|
|
xk_blood_info.capacity,
|
|
xk_blood_info.unit,
|
|
xk_blood_info.valid_date,
|
|
xk_blood_info.auto_no ,
|
|
space(10) as match_method,
|
|
space(10) as check_method,
|
|
space(10) as result,
|
|
space(10) as choose,
|
|
space(10) as special_deal
|
|
FROM xk_blood_info,xk_blood_breed
|
|
WHERE ( xk_blood_info.blood_status in (1,3 ) )
|
|
and (xk_blood_breed.breed_code = xk_blood_info.blood_breed )
|
|
<![CDATA[AND(xk_blood_breed.is_match <> 'Y' OR isnull(xk_blood_breed.is_match,'') = '')]]>
|
|
AND ( xk_blood_info.blood_sort in('C','W' )OR isnull(xk_blood_info.blood_sort,'') = '')
|
|
and(blood_breed in('0047','0050')) AND (xk_blood_info.blood_type ='O')
|
|
union
|
|
select
|
|
xk_blood_info.blood_no,
|
|
xk_blood_info.blood_breed,
|
|
xk_blood_info.blood_type,
|
|
xk_blood_info.product_no,
|
|
xk_blood_info.rh_blood_type,
|
|
xk_blood_info.capacity,
|
|
xk_blood_info.unit,
|
|
xk_blood_info.valid_date,
|
|
xk_blood_info.auto_no ,
|
|
xk_match_detail.match_method as match_method,
|
|
xk_match_detail.check_method as check_method,
|
|
xk_match_detail.result as result,
|
|
'' as choose,
|
|
'' as special_deal
|
|
from xk_blood_info,xk_out_main ,xk_out_detail
|
|
left join xk_match_detail on (xk_out_detail.blood_no = xk_match_detail.blood_no and xk_match_detail.product_no = xk_out_detail.product_no)
|
|
left join xk_match_main on (xk_match_detail.bill_no = xk_match_main.bill_no)
|
|
where xk_out_main.bill_no = xk_out_detail.bill_no
|
|
and xk_blood_info.blood_no = xk_out_detail.blood_no and xk_blood_info.product_no = xk_out_detail.product_no
|
|
and xk_out_main.bill_no = #{billNo}
|
|
AND ( xk_blood_info.blood_sort in('C','W' )OR isnull(xk_blood_info.blood_sort,'') = '')
|
|
<![CDATA[ AND(xk_match_main.bill_status <> 'ZF') ]]>
|
|
</select>
|
|
<select id="queryMoreBloodOutList" resultType="java.util.Map">
|
|
SELECT xk_match_main.apply_no,
|
|
xk_match_main.dept_id,
|
|
xk_match_main.patient_name,
|
|
xk_match_main.beinhos_id,
|
|
xk_transfuse_apply.patient_bed,
|
|
count(xk_match_detail.blood_no) as sl,
|
|
sum(xk_blood_info.capacity) as rl,xk_blood_info.unit,xk_blood_info.blood_breed
|
|
FROM xk_blood_info,
|
|
xk_match_detail,
|
|
xk_match_main,
|
|
xk_transfuse_apply ,xk_dmzd
|
|
WHERE ( xk_blood_info.blood_no = xk_match_detail.blood_no )
|
|
and ( xk_match_detail.bill_no = xk_match_main.bill_no )
|
|
and ( xk_match_main.apply_no = xk_transfuse_apply.bill_no )
|
|
and (xk_transfuse_apply.bill_stasus = 'D' )
|
|
and (xk_blood_info.blood_status = '1')
|
|
<if test="dept != null">and (xk_match_main.dept_id = #{dept} or isnull(xk_match_main.dept_id,'') = '')</if>
|
|
<if test="beinhos_id != null"> and (xk_match_main.beinhos_id = #{beinhos_id} or isnull(xk_match_main.beinhos_id,'') = '' )</if>
|
|
<if test="patientName != null"> and (xk_match_main.patient_name like '%'+#{patientName}+'%' or isnull(xk_match_main.patient_name,'') = '')</if>
|
|
<if test="bed != null">and (xk_transfuse_apply.patient_bed = #{bed} or isnull(xk_transfuse_apply.patient_bed,'') ='') </if>
|
|
and (xk_transfuse_apply.apply_date between #{stime} and #{etime})
|
|
and (xk_match_detail.result = xk_dmzd.wordbook_code and xk_dmzd.wordbook_sign = 'pxjg' and xk_dmzd.remark = 'Y')
|
|
group by xk_match_main.apply_no,
|
|
xk_match_main.dept_id,
|
|
xk_match_main.patient_name,
|
|
xk_match_main.beinhos_id,
|
|
xk_transfuse_apply.patient_bed,xk_blood_info.unit,xk_blood_info.blood_breed
|
|
</select>
|
|
</mapper> |