package thyyxxk.webserver.dao.his.yibao; import org.apache.ibatis.annotations.*; import thyyxxk.webserver.entity.dictionary.CodeName; import thyyxxk.webserver.entity.yibao.dismiss.DisDiag; import thyyxxk.webserver.entity.yibao.patient.*; import java.util.Date; import java.util.List; @Mapper public interface PatientDao { @Select("select " + "RTRIM(a.bed_no) bedNo, " + "RTRIM(a.inpatient_no) inpatientNo, " + "a.admiss_times, " + "RTRIM(a.name) as name, " + "sex=isnull(a.sex, 9), " + "status=(select rtrim(b.status_flag) from yb_zy_review_record b where b.inpatient_no=a.inpatient_no " + "and b.admiss_times=a.admiss_times and b.ledger_sn=(select MAX(c.ledger_sn) from yb_zy_review_record c " + "where c.inpatient_no=b.inpatient_no and c.admiss_times=b.admiss_times)), " + "medType=a.med_type, " + "dismissOrder=(select count(1) from yz_act_order b where b.inpatient_no=a.inpatient_no " + "and b.admiss_times=a.admiss_times and status_flag > '1' and isnull(group_no,'00')='00' " + "and order_code in ('06026','06053','05973')) " + "from zy_actpatient a where a.ward like #{ward} and charindex('$',a.inpatient_no)=0 " + "ORDER BY cast(a.bed_no AS int)") List getOverView(@Param("ward") String ward); @Select("select inpatient_no=rtrim(isnull(a.inpatient_no, b.inpatient_no)), " + "admiss_times=rtrim(isnull(a.admiss_times, b.admiss_times)), b.med_type, " + "social_no=rtrim(isnull(a.social_no, c.social_no)), " + "name=rtrim(isnull(a.name, b.name)), " + "sex=rtrim(isnull(a.sex, b.sex)), " + "birthDate=(convert(varchar(10), birth_date, 21)), " + "home_tel=rtrim(isnull(c.home_tel, c.employer_tel)), " + "admiss_physician=rtrim(isnull(b.admiss_physician, a.admiss_physician)), " + "admiss_physician_name=rtrim((select name FROM a_employee_mi WHERE code = b.admiss_physician)), " + "refer_physician=rtrim(b.refer_physician), " + "refer_physician_name=rtrim((select name FROM a_employee_mi WHERE code = b.refer_physician)), " + "admiss_diag_str=rtrim(isnull(b.admiss_diag_str,'')), " + "clinic_diag_str=rtrim(isnull(b.clinic_diag_str,'')), " + "admiss_ward=rtrim(isnull(b.ward,b.admiss_ward)), " + "admiss_ward_name=(select rtrim(name) from zd_unit_code where code=b.ward), " + "admiss_dept=rtrim(b.admiss_dept), b.matn_type, " + "small_dept=rtrim(b.small_dept), " + "small_dept_name=rtrim((select name from zd_unit_code where code=small_dept)), " + "admiss_date,yb_register_date=isnull(yb_register_date, admiss_date), " + "responce_type=rtrim(isnull(isnull(a.responce_type, b.responce_type), '')), " + "icd_code=rtrim(a.icd_code), " + "icd_text=rtrim(a.icd_text), " + "rtrim(b.zk_ward) as zk_ward, " + "yb_gs_no=rtrim(isnull(a.yb_gs_no, b.yb_gs_no)), " + "yb_card_no=rtrim(isnull((select yb_card_no from a_patient_mi where inpatient_no=#{inpatientNo}), a.yb_card_no)), " + "remark=rtrim(a.remark), " + "input_name=rtrim((select name FROM a_employee_mi WHERE code = input_id)), " + "input_date=isnull(a.input_date, getdate()), " + "yb_remark=rtrim(a.yb_remark), " + "pass_id=rtrim(a.pass_id), " + "pass_name=rtrim((select name FROM a_employee_mi WHERE code = a.pass_id)), " + "pass_date=a.pass_date," + "ward=(b.ward), b.latechb_flag, b.pret_flag," + "ledger_sn=rtrim(b.times_billed), " + "admiss_status=rtrim(b.admiss_status), " + "dismissOrder=(select count(1) from yz_act_order y where y.inpatient_no=b.inpatient_no " + "and y.admiss_times=b.admiss_times and status_flag > '1' and isnull(group_no,'00')='00' " + "and order_code in ('06026','06053','05973')), " + "dis_diag_status=RTRIM((select dis_diag_status from zy_dis_diag_yb where inpatient_no=#{inpatientNo} " + "and admiss_times=a.admiss_times and dis_diag_no=1))," + "operation=rtrim(b.operation), b.zy_serial_no," + "bed_no=rtrim(b.bed_no), b.admdvs, " + "charge_yb=(select rtrim(isnull(charge_yb, '0.00')) from zy_ledger_file where inpatient_no=#{inpatientNo} " + "and admiss_times=b.admiss_times and ledger_sn=a.ledger_sn), " + "status_flag=rtrim(isnull(a.status_flag, '-1')), " + "total_charge=(select rtrim(isnull(total_charge, '0.00')) from zy_ledger_file where inpatient_no=#{inpatientNo} " + "and admiss_times=b.admiss_times and ledger_sn=a.ledger_sn), " + "balance=RTRIM((select balance+charge_yb from zy_ledger_file where inpatient_no=#{inpatientNo} and " + "admiss_times=a.admiss_times and ledger_sn=a.ledger_sn))," + "hic_no=rtrim((select hic_no_new from a_patient_mi where inpatient_no = #{inpatientNo})), " + "card_iden=rtrim(isnull((select card_iden from a_patient_mi where inpatient_no = #{inpatientNo}), '')), " + "indi_id=rtrim((select isnull(indi_id, '') from a_patient_mi where inpatient_no = #{inpatientNo})), " + "yb_jlh=rtrim(b.yb_jlh) FROM a_patient_mi c, zy_actpatient b " + "LEFT JOIN yb_zy_review_record a ON b.inpatient_no = a.inpatient_no " + "AND b.admiss_times = a.admiss_times WHERE b.inpatient_no = #{inpatientNo} " + "AND b.inpatient_no = c.inpatient_no") Patient getPatientInfo(@Param("inpatientNo") String inpatientNo); @Select("select inpatient_no=rtrim(isnull(a.inpatient_no, b.inpatient_no)), " + " admiss_times=rtrim(isnull(a.admiss_times, b.admiss_times)), " + " social_no=rtrim(isnull(a.social_no, c.social_no)), " + " name=rtrim(isnull(a.name, b.name)), " + " sex=rtrim(isnull(a.sex, b.sex)), " + " birthDate=(convert(varchar(10), birth_date, 21)), " + " home_tel=rtrim(isnull(c.home_tel, c.employer_tel)), " + " admiss_physician=rtrim(isnull(b.admiss_physician, a.admiss_physician)), " + " admiss_physician_name=(select rtrim(name) FROM a_employee_mi WHERE code = b.admiss_physician), " + " refer_physician=rtrim(b.refer_physician), " + " refer_physician_name=(select rtrim(name) FROM a_employee_mi WHERE code = b.refer_physician), " + " admiss_diag_str=rtrim(isnull(b.admiss_diag_str,'')), " + " clinic_diag_str=rtrim(isnull(b.clinic_diag_str,'')), " + " admiss_ward=rtrim(b.admiss_ward), " + " admiss_ward_name=(select rtrim(name) from zd_unit_code where code=admiss_ward), " + " admiss_dept=rtrim(b.admiss_dept), " + " small_dept=rtrim(b.small_dept), " + " small_dept_name=(select rtrim(name) from zd_unit_code where code=small_dept), " + " admiss_date, " + " yb_register_date=isnull(yb_register_date, admiss_date), " + " responce_type=rtrim(isnull(isnull(a.responce_type, b.responce_type), '')), " + " icd_code=rtrim(a.icd_code), " + " icd_text=rtrim(a.icd_text), " + " yb_gs_no=rtrim(isnull(a.yb_gs_no, b.yb_gs_no)), " + " accident_flag=rtrim(isnull(a.accident_flag, 0)), " + " std_flag=rtrim(isnull(a.std_flag,0)), " + " yb_card_no=rtrim(isnull((select yb_card_no from a_patient_mi where inpatient_no=#{inpatientNo}), a.yb_card_no)), " + " remark=rtrim(a.remark), " + " input_name=(select rtrim(name) FROM a_employee_mi WHERE code = input_id), " + " input_date=isnull(a.input_date, getdate()), " + " yb_remark=rtrim(a.yb_remark), " + " pass_id=rtrim(a.pass_id), " + " pass_name=(select rtrim(name) FROM a_employee_mi WHERE code = a.pass_id), " + " pass_date=a.pass_date, b.zy_serial_no," + " ledger_sn=rtrim(b.times_billed), " + " admiss_status=rtrim(b.admiss_status), " + " dis_diag_status=(select rtrim(dis_diag_status) from zy_dis_diag_yb where inpatient_no=#{inpatientNo} " + " and admiss_times=#{admissTimes} and dis_diag_no=1), " + " operation=rtrim(b.operation), " + " bed_no=rtrim(b.bed_no), " + " charge_yb=(select rtrim(isnull(charge_yb, '0.00')) from zy_ledger_file where inpatient_no=#{inpatientNo} " + " and admiss_times=#{admissTimes} and ledger_sn=a.ledger_sn), " + " status_flag=rtrim(isnull(a.status_flag, '-1')), " + " total_charge=(select rtrim(isnull(total_charge, '0.00')) from zy_ledger_file where inpatient_no=#{inpatientNo} " + " and admiss_times=#{admissTimes} and ledger_sn=a.ledger_sn), " + " balance=(select balance+charge_yb from zy_ledger_file where inpatient_no=#{inpatientNo} and " + " admiss_times=#{admissTimes} and ledger_sn=a.ledger_sn), " + " hic_no=(select rtrim(hic_no_new) from a_patient_mi where inpatient_no = #{inpatientNo}), " + " card_iden=(select isnull(rtrim(card_iden),'') from a_patient_mi where inpatient_no = #{inpatientNo}), " + " indi_id=(select isnull(indi_id, '') from a_patient_mi where inpatient_no = #{inpatientNo}), " + " yb_jlh=rtrim(b.yb_jlh) FROM a_patient_mi c, ${table} b " + " LEFT JOIN yb_zy_review_record a ON " + " b.inpatient_no = a.inpatient_no " + " and a.admiss_times = b.admiss_times " + "WHERE b.inpatient_no = #{inpatientNo} " + " and b.admiss_times=#{admissTimes} " + " AND b.inpatient_no = c.inpatient_no ") Patient getPatientInfoForHrg(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes, @Param("table") String table); @Select("select dis_diag_no, " + "rtrim(dis_diag) disDiag, " + "rtrim(dis_diag_comment) disDiagComment, " + "dis_diag_status, " + "opName=(select rtrim(name) from a_employee_mi where code=op_id_code) " + "from zy_dis_diag_yb where inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes}") List getYibaoDisDiags(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes); @Select("SELECT dis_diag_no, " + "rtrim(dis_diag) disDiag, " + "rtrim(dis_diag_comment) disDiagComment, " + "disDiagStatusName=(select rtrim(name) from zd_dis_diag_status WHERE code=dis_diag_status), " + "opName=(select rtrim(name) from a_employee_mi where code=op_id_code) " + "from ba_first_page1 where inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes}") List getBingliDisDiags(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes); @Select("select rtrim(inpatient_no) from a_patient_mi where social_no=#{idCard}") List getInpatientNo(@Param("idCard") String idCard); @Select("SELECT item_no, inpatient_no, admiss_times, agency, expirestart, file_sfz " + "FROM zy_xnh_record_sfz WHERE inpatient_no=#{inpatientNo} AND admiss_times=#{admissTimes}") List getIdCard(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes); @Select("SELECT item_no,inpatient_no,admiss_times,file_xnh AS file_sfz FROM zy_xnh_record " + "WHERE inpatient_no=#{inpatientNo} AND admiss_times=#{admissTimes}") List getScanFile(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes); @Select("select settle_type from zy_ledger_file where inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes} " + "and ledger_sn=(select isnull(max ( ledger_sn ), min ( ledger_sn )) from zy_ledger_file where " + "inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes})") Integer getSettleType(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes); @Select("select count(id) from zy_retract_yb where inpatientNo=#{inpatientNo} " + "and admissTimes=#{admissTimes} and requestType=#{requestType}") Integer getRequestCount(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes, @Param("requestType") Integer requestType); @Select("select * from zy_retract_yb where inpatientNo=#{inpatientNo} and " + "admissTimes=#{admissTimes} and requestType=#{requestType}") List getRetractRequests(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes, @Param("requestType") Integer requestType); @Insert("insert into zy_retract_yb (inpatientNo, admissTimes, name, sex, responceType, ybType, treatType, " + "remark, inputId, inputName, inputTimes, statusFlag, requestType) values (#{inpatientNo}, #{admissTimes}, " + "#{name}, #{sex}, #{responceType}, #{ybType}, #{treatType}, #{remark}, #{inputId}, #{inputName}," + "#{inputTimes}, 1, #{requestType})") void submitNewRequest(ToYbkRequest indata); @Select("select isnull(max ( ledger_sn ), isnull(min ( ledger_sn ), 1)) from zy_ledger_file where " + "inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes}") Integer getLedgerSn(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes); @Update("update zy_actpatient set responce_type='01', visit_type='01', yb_type='', treat_type='', med_type='' " + "where inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes}") void revokeYbsf1(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes); @Delete("delete from yb_zy_review_record where inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes} and " + "ledger_sn=#{ledgerSn}") void revokeYbsf2(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes, @Param("ledgerSn") Integer ledgerSn); @Delete("update zy_ledger_file set charge_yb=0 where inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes} and " + "ledger_sn=#{ledgerSn}") void revokeYbsf3(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes, @Param("ledgerSn") Integer ledgerSn); @Select("select count(1) from yb_zy_review_record where inpatient_no=#{inpatientNo} and " + "admiss_times=#{admissTimes} and ledger_sn=#{ledgerSn}") int selectCountReview(Patient param); @Insert("insert into yb_zy_review_record (inpatient_no,admiss_times,ledger_sn,input_id,input_date,remark,status_flag) " + "values (#{inpatientNo}, #{admissTimes}, #{ledgerSn}, #{inputId}, #{inputDate}, #{remark}, 1)") void insertReviewRecord(Patient param); @Update("update yb_zy_review_record set status_flag=1 where " + "inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes} and ledger_sn=#{ledgerSn}") void updateStatusFlag(Patient param); @Update("update zy_actpatient set yb_register_date=#{ybRegisterDate},med_type=#{medType}," + "admdvs=#{admdvs},refer_physician=#{referPhysician},matn_type=#{matnType},latechb_flag=#{latechbFlag}," + "pret_flag=#{pretFlag} where inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes}") void updateYbRegisterDate(Patient param); @Select("select * from zy_in_diag_yb where inpatient_no=#{inpatientNo} and admiss_times=#{times} order by diag_no") List getZyInYbDiag(@Param("inpatientNo") String inpatientNo, @Param("times") Integer times); @Delete("delete from zy_in_diag_yb where inpatient_no=#{inpatientNo} and admiss_times=#{times}") void deleteOldZyInYbDiag(@Param("inpatientNo") String inpatientNo, @Param("times") Integer times); @Insert("") void insertNewZyInYbDiag(@Param("operId") String operId, @Param("list") List list); @Insert("") void insertSiZyInYbDiag(SaveSiZyDiags param); @Select("select convert (varchar(12),dateadd (day,0,start_time),111) from yz_act_order where " + "inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes} and status_flag > '1' " + "and isnull(group_no,'00')='00' and order_code in ('06026','06053','05973') ") String getActOrderDisDate(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes); @Select("select act_order_no from yz_sequence") float getActOrderNo(); @Update("update yz_sequence set act_order_no=#{no}") void updateActorOrderNo(float no); @Insert("insert into yz_act_order " + "(act_order_no, inpatient_no, admiss_times, order_code, order_time, frequ_code, enter_time, " + "enter_oper, start_time, end_time, infant_flag, drug_flag, performance_time, " + "physician, confirm_time, signer, status_flag, status_time,drug_specification,order_name,discription, " + "ward_code,dept_code,exec_unit) " + "values (#{actOrderNo}, #{inpatientNo}, #{admissTimes}, '06026', #{dismissOrderDate}, 'ONCE', #{dismissOrderDate}, " + "#{staffId}, #{dismissOrderDate}, #{dismissOrderDate}, 0, 0, #{dismissOrderDate}, #{staffId}, " + "#{dismissOrderDate}, #{staffId}, 5, #{dismissOrderDate},'诊疗项目','今日结账出院','0.00 本项目不包含费用'," + "#{admissWard},#{admissWard},#{admissWard})") void insertNewDismissActOrder(@Param("actOrderNo") float actOrderNo, @Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes, @Param("dismissOrderDate") Date dismissOrderDate, @Param("staffId") String staffId, @Param("admissWard") String admissWard); @Select("select * from zy_dis_diag_yb where inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes}") List getDisDiags(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes); @Select("select rtrim(admiss_diag) code,rtrim(admiss_diag_str) name from zy_actpatient where " + "inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes}") CodeName getAdmissDiag(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes); @Insert("insert into zy_dis_diag_yb (inpatient_no, admiss_times, dis_diag_no, dis_diag_type, dis_diag, " + "dis_diag_comment, op_id_code, op_diag_date, dis_diag_bzfx, dis_diag_status) " + "values (#{inpatientNo}, #{admissTimes}, 1, 13, #{code}, #{name}, #{staffId}, getDate(), '普通', 0)") void insertDisDiag(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes, @Param("code") String code, @Param("name") String name, @Param("staffId") String staffId); @Insert("") void insertDisDiags(@Param("staffId") String staffId, @Param("list") List list); @Update("execute zy_receive_drug #{zyh},#{times},#{zyh},#{infant} ") void zyReceiveDrug(@Param("zyh") String zyh, @Param("times") int times, @Param("infant") int infant); @Update("execute zy_receive_one #{zyh},#{times},#{zyh},#{infant} ") void zyReceiveOne(@Param("zyh") String zyh, @Param("times") int times, @Param("infant") int infant); @Update("execute dbo.zy_cngl_fyjs_list_yz #{zyh},#{times} " ) void zyCnglFyjsListYz(@Param("zyh") String zyh, @Param("times") int times); @Update("update zy_detail_charge set charge_status='2' where " + "inpatient_no=#{zyh} and admiss_times=#{times} and ledger_sn=#{ledger} ") void updateZyDetailCharge(@Param("zyh") String zyh, @Param("times") int times, @Param("ledger") int ledger); @Update("execute zy_calc_detail_again_new #{zyh},#{times},#{ledger},1,1") void zyCalcDetailAgainNew(@Param("zyh") String zyh, @Param("times") int times, @Param("ledger") int ledger); }