Browse Source

添加出院结算系列操作的外部接口。

lighter 4 years ago
parent
commit
17f57ba1e8

+ 81 - 7
src/main/java/thyyxxk/webserver/controller/yibao/DismissController.java

@@ -1,33 +1,49 @@
 package thyyxxk.webserver.controller.yibao;
 
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import thyyxxk.webserver.config.auth.PassToken;
+import thyyxxk.webserver.config.exception.ExceptionEnum;
+import thyyxxk.webserver.dao_his.yibao.PatientDao;
 import thyyxxk.webserver.pojo.ResultVo;
-import thyyxxk.webserver.pojo.dictionary.CodeNamePojo;
-import thyyxxk.webserver.pojo.yibao.dismiss.DismissOrderGroupPojo;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
+import thyyxxk.webserver.pojo.yibao.dismiss.ActOrderGroup;
+import thyyxxk.webserver.pojo.yibao.dismiss.DisDiagPojo;
+import thyyxxk.webserver.pojo.yibao.dismiss.HrgDismissParam;
 import thyyxxk.webserver.pojo.yibao.dismiss.YbSettleFeePojo;
 import thyyxxk.webserver.pojo.yibao.patient.PatientPojo;
 import thyyxxk.webserver.service.yibao.DismissService;
+import thyyxxk.webserver.service.yibao.SettleService;
+import thyyxxk.webserver.utils.ResultVoUtil;
 import thyyxxk.webserver.utils.TokenUtil;
 
 import java.util.List;
+import java.util.concurrent.atomic.AtomicReference;
+
+import static thyyxxk.webserver.service.yibao.YibaoHttpService.httpPost;
 
 @RestController
 @RequestMapping("/dismiss")
 public class DismissController {
     private final DismissService service;
+    private final SettleService settleService;
+    private final PatientDao dao;
 
-    public DismissController(DismissService service) {
+    public DismissController(DismissService service, SettleService settleService, PatientDao dao) {
         this.service = service;
+        this.settleService = settleService;
+        this.dao = dao;
     }
 
+    @PassToken
     @GetMapping("/getActOrders")
-    public ResultVo<List<DismissOrderGroupPojo>> getActOrders(@RequestParam("inpatientNo") String inpatientNo,
-                                                              @RequestParam("admissTimes") Integer admissTimes) {
+    public ResultVo<List<ActOrderGroup>> getActOrders(@RequestParam("inpatientNo") String inpatientNo,
+                                                      @RequestParam("admissTimes") Integer admissTimes) {
         return service.getActOrders(inpatientNo, admissTimes);
     }
 
-    @PostMapping("/dismissCalculate")
-    public ResultVo<List<CodeNamePojo>> dismissCalculate(@RequestBody PatientPojo param) {
+    @PostMapping("/calculate")
+    public ResultVo<List<PureCodeName>> calculate(@RequestBody PatientPojo param) {
         param.setStaffId(TokenUtil.getTokenUserId());
         return service.calculateForDismiss(param);
     }
@@ -38,4 +54,62 @@ public class DismissController {
         param.setResponceType("01");
         return service.doDismiss(param);
     }
+
+    @PassToken
+    @PostMapping("/verification")
+    public ResultVo<List<PureCodeName>> verification(@Validated @RequestBody HrgDismissParam param) {
+        if (param.getDismissFlag() == 2 && null == param.getZjdzDatetime()) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "中间断账时,断账时间不能为空。");
+        }
+        PatientPojo p = dao.getPatientInfo(param.getInpatientNo());
+        p.setStaffId(param.getStaffId());
+        p.setDismissFlag(param.getDismissFlag());
+        return service.calculateForDismiss(p);
+    }
+
+    @PassToken
+    @PostMapping("/execute")
+    public synchronized ResultVo<String> dismissForHrg(@Validated @RequestBody HrgDismissParam param) {
+        if (param.getDismissFlag() == 2 && null == param.getZjdzDatetime()) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "中间断账时,断账时间不能为空。");
+        }
+        PatientPojo p = dao.getPatientInfo(param.getInpatientNo());
+        if (p.getResponceType().equals("01")) {
+            YbSettleFeePojo feePojo = new YbSettleFeePojo();
+            feePojo.setInpatientNo(p.getInpatientNo());
+            feePojo.setAdmissTimes(p.getAdmissTimes());
+            feePojo.setBedNo(p.getBedNo());
+            feePojo.setFlag(param.getDismissFlag());
+            feePojo.setZjdzDatetime(param.getZjdzDatetime());
+            feePojo.setStaffId(param.getStaffId());
+            feePojo.setWardCode(p.getAdmissWard());
+            feePojo.setDeptCode(p.getAdmissDept());
+            return service.doDismiss(feePojo);
+        } else {
+            List<DisDiagPojo> diags = dao.getYibaoDisDiags(p.getInpatientNo(), p.getAdmissTimes());
+            if (null == diags || diags.isEmpty()) {
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保出院诊断不能为空,请联系医生填写。");
+            }
+            p.setStaffId(param.getStaffId());
+            ResultVo<Object> preCalRes = httpPost("preCalculateCost", p, p.getResponceType());
+            if (preCalRes.getCode() != 200) {
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, preCalRes.getMessage());
+            }
+            p.setIcdCodes(mkIcdCodes(diags));
+            p.setIcdTexts(mkIcdTexts(diags));
+            return settleService.calculateCost(p, p.getResponceType());
+        }
+    }
+
+    private String mkIcdCodes(List<DisDiagPojo> diags) {
+        AtomicReference<String> icdCodes = new AtomicReference<>("");
+        diags.forEach((item) -> icdCodes.set(icdCodes + item.getDisDiag() + "^"));
+        return icdCodes.get();
+    }
+
+    private String mkIcdTexts(List<DisDiagPojo> diags) {
+        AtomicReference<String> icdTexts = new AtomicReference<>("");
+        diags.forEach((item) -> icdTexts.set(icdTexts + item.getDisDiagComment() + "^"));
+        return icdTexts.get();
+    }
 }

+ 18 - 17
src/main/java/thyyxxk/webserver/dao_his/yibao/DismissDao.java

@@ -1,8 +1,8 @@
 package thyyxxk.webserver.dao_his.yibao;
 
 import org.apache.ibatis.annotations.*;
-import thyyxxk.webserver.pojo.dictionary.CodeNamePojo;
-import thyyxxk.webserver.pojo.yibao.dismiss.ActOrderPojo;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
+import thyyxxk.webserver.pojo.yibao.dismiss.ActOrderDetail;
 import thyyxxk.webserver.pojo.yibao.dismiss.ReceiptFeePojo;
 
 import java.util.Date;
@@ -32,17 +32,18 @@ public interface DismissDao {
     @Update("exec dbo.zy_cngl_fyjs_list_yz_1 @in_no=#{inpatientNo}, @in_times=#{admissTimes}")
     int getOrderList(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes);
 
-    @Select("select ltrim(rtrim(str(act_order_no))) as actOrderNo,order_name as orderName,charge_date as chargeDate, " +
-            "charge_code as chargeCode,charge_fee=isnull(charge_fee,'0'),chargeName=isnull(charge_name,'')," +
-            "frequCode=isnull(frequ_code, ' '),cxFlag=RTRIM(isnull(cx_flag,0)),drugSpecification=isnull(drug_specification,' ')," +
-            "start_time as startTime,end_time as endTime,chargeAmount=isnull(charge_amount,0),page_no as pageNo," +
-            "charge_status as chargeStatus,supplyCode=isnull((select name from view_zd_supply_type where code=supply_code),' ')," +
-            "physician=isnull((select name from a_employee_mi where code=physician), ' ')," +
-            "enterOper=isnull((select name from a_employee_mi where code=enter_oper), ' ')," +
-            "execUnit=isnull((select name from zd_unit_code where code=exec_unit), ' ')," +
-            "order_code as orderCode,wardCode=isnull((select name from zd_unit_code where code=ward_code), ' ')," +
+    @Select("select ltrim(rtrim(str(act_order_no))) as actOrderNo,rtrim(order_name) as orderName," +
+            "charge_date as chargeDate, rtrim(charge_code) as chargeCode,charge_fee=isnull(rtrim(charge_fee),'0'), " +
+            "chargeName=isnull(rtrim(charge_name),''), frequCode=isnull(rtrim(frequ_code), '')," +
+            "cxFlag=RTRIM(isnull(cx_flag,0)),drugSpecification=isnull(rtrim(drug_specification),'')," +
+            "start_time,end_time,chargeAmount=isnull(charge_amount,0),page_no," +
+            "charge_status,supplyCode=isnull((select rtrim(name) from view_zd_supply_type where code=supply_code),'')," +
+            "physician=isnull((select rtrim(name) from a_employee_mi where code=physician), '')," +
+            "enterOper=isnull((select rtrim(name) from a_employee_mi where code=enter_oper), '')," +
+            "execUnit=isnull((select rtrim(name) from zd_unit_code where code=exec_unit), '')," +
+            "order_code,wardCode=isnull((select rtrim(name) from zd_unit_code where code=ward_code), '')," +
             "group_no from zy_list where charge_status in ('5','6','8')")
-    List<ActOrderPojo> getActOrderDetail();
+    List<ActOrderDetail> getActOrderDetail();
 
     @Select("select count(1) from zy_detail_charge where inpatient_no=#{inpatientNo} and " +
             "admiss_times=#{admissTimes} and ledger_sn=#{ledgerSn} and isnull(trans_flag_yb,0)=0 " +
@@ -109,7 +110,7 @@ public interface DismissDao {
             "sum(a.charge_fee) as code,b.name from zy_detail_charge a,yp_zd_dict b " +
             "where a.inpatient_no=#{inpatientNo} and a.admiss_times=#{times} and a.charge_code_mx=b.code " +
             "group by a.charge_code_mx,b.name ) as x where x.code<0")
-    List<CodeNamePojo> feeOrderNegative(@Param("inpatientNo") String inpatientNo, @Param("times") Integer times);
+    List<PureCodeName> feeOrderNegative(@Param("inpatientNo") String inpatientNo, @Param("times") Integer times);
 
     @Delete("delete zy_tmp_settle_select_detail where inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes}")
     void deleteTemporaryTable(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes);
@@ -190,10 +191,10 @@ public interface DismissDao {
     int beforeWriteReceiptTable(@Param("inpatientNo") String inpatientNo,
                                 @Param("admissTimes") Integer admissTimes, @Param("ledgerSn") int ledgerSn);
 
-    @Select("select (select max(infant_flag) from zy_detail_charge where " +
-            "inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes} and ledger_sn=#{ledgerSn})")
-    int getReceiptSn(@Param("inpatientNo") String inpatientNo,
-                     @Param("admissTimes") Integer admissTimes, @Param("ledgerSn") int ledgerSn);
+    @Select("select max(infant_flag) from zy_detail_charge where inpatient_no=#{inpatientNo} " +
+            "and admiss_times=#{admissTimes} and ledger_sn=#{ledgerSn}")
+    int selectInfantFlag(@Param("inpatientNo") String inpatientNo,
+                         @Param("admissTimes") Integer admissTimes, @Param("ledgerSn") int ledgerSn);
 
     @Insert("insert into zy_receipt (inpatient_no,admiss_times,ledger_sn,receipt_sn,receipt_no," +
             "account_date,date_1,date_2,ward,dept,print_date,responce_unit,op_id_code,total_charge," +

+ 9 - 0
src/main/java/thyyxxk/webserver/pojo/dictionary/PureCodeName.java

@@ -0,0 +1,9 @@
+package thyyxxk.webserver.pojo.dictionary;
+
+import lombok.Data;
+
+@Data
+public class PureCodeName {
+    private String code;
+    private String name;
+}

+ 49 - 0
src/main/java/thyyxxk/webserver/pojo/yibao/dismiss/ActOrderDetail.java

@@ -0,0 +1,49 @@
+package thyyxxk.webserver.pojo.yibao.dismiss;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ActOrderDetail {
+    // 医嘱号
+    private String actOrderNo;
+    // 医嘱名称
+    private String orderName;
+    // 金额
+    private String chargeFee;
+    // 频率
+    private String frequCode;
+    // 是否撤销 1是,0否
+    private Integer cxFlag;
+    // 规格
+    private String drugSpecification;
+    // 开始时间
+    private Date startTime;
+    // 结束时间
+    private Date endTime;
+    // 数据
+    private String chargeAmount;
+    // 状态
+    private Integer chargeStatus;
+    // 给药方式
+    private String supplyCode;
+    // 医生
+    private String physician;
+    // 录入人
+    private String enterOper;
+    // 医嘱码
+    private String orderCode;
+    // 病区
+    private String wardName;
+    // 收费日期
+    private Date chargeDate;
+    // 收费码
+    private String chargeCode;
+    // 收费名称
+    private String chargeName;
+    // 药品单号
+    private Integer pageNo;
+    // 执行科室
+    private String execUnit;
+}

+ 26 - 0
src/main/java/thyyxxk/webserver/pojo/yibao/dismiss/ActOrderGroup.java

@@ -0,0 +1,26 @@
+package thyyxxk.webserver.pojo.yibao.dismiss;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ActOrderGroup {
+    // 医嘱号
+    private String actOrderNo;
+    // 金额
+    private String fee;
+    // 状态
+    private Integer chargeStatus;
+    // 是否撤销 1是,0否
+    private Integer cxFlag;
+    // 子医嘱明细
+    private List<ActOrderDetail> list;
+
+    public ActOrderGroup(String actOrderNo, String fee, Integer chargeStatus, Integer cxFlag) {
+        this.actOrderNo = actOrderNo;
+        this.fee = fee;
+        this.chargeStatus = chargeStatus;
+        this.cxFlag = cxFlag;
+    }
+}

+ 0 - 42
src/main/java/thyyxxk/webserver/pojo/yibao/dismiss/ActOrderPojo.java

@@ -1,42 +0,0 @@
-package thyyxxk.webserver.pojo.yibao.dismiss;
-
-import lombok.Data;
-
-import java.util.Date;
-
-@Data
-public class ActOrderPojo {
-    private String actOrderNo;
-    private String orderName;
-    private String chargeFee;
-    private String frequCode;
-    private String cxFlag;
-    private String drugSpecification;
-    private Date startTime;
-    private Date endTime;
-    private String chargeAmount;
-    private String chargeStatus;
-    private String supplyCode;
-    private String physician;
-    private String enterOper;
-    private String orderCode;
-    private String wardCode;
-    private String groupNo;
-    private String chargeDate;
-    private String chargeCode;
-    private String chargeName;
-    private String pageNo;
-    private String execUnit;
-
-    public String getChargeStatus() {
-        return null == chargeStatus ? "-" : (chargeStatus).trim();
-    }
-
-    public String getActOrderNo() {
-        return (actOrderNo) == null ? "" : (actOrderNo.split("\\.")[0]).trim();
-    }
-
-    public String getChargeDate() {
-        return (chargeDate) == null ? "" : (chargeDate.split("\\.")[0]).trim();
-    }
-}

+ 0 - 21
src/main/java/thyyxxk/webserver/pojo/yibao/dismiss/DismissOrderGroupPojo.java

@@ -1,21 +0,0 @@
-package thyyxxk.webserver.pojo.yibao.dismiss;
-
-import lombok.Data;
-
-import java.util.List;
-
-@Data
-public class DismissOrderGroupPojo {
-    private String actOrderNo;
-    private String fee;
-    private String status;
-    private String cxFlag;
-    private List<ActOrderPojo> list;
-
-    public DismissOrderGroupPojo(String actOrderNo, String fee, String status, String cxFlag) {
-        this.actOrderNo = actOrderNo;
-        this.fee = fee;
-        this.status = status;
-        this.cxFlag = cxFlag;
-    }
-}

+ 22 - 0
src/main/java/thyyxxk/webserver/pojo/yibao/dismiss/HrgDismissParam.java

@@ -0,0 +1,22 @@
+package thyyxxk.webserver.pojo.yibao.dismiss;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+public class HrgDismissParam {
+    @NotBlank(message = "操作员id不能为空。")
+    private String staffId;
+    @NotBlank(message = "患者住院号不能为空。")
+    private String inpatientNo;
+    @NotNull(message = "结算标志不能为空,1:出院结算,2:中间断账")
+    private Integer dismissFlag;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date zjdzDatetime;
+}

+ 19 - 21
src/main/java/thyyxxk/webserver/service/yibao/DismissService.java

@@ -8,9 +8,9 @@ import thyyxxk.webserver.config.exception.BizException;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao_his.yibao.DismissDao;
 import thyyxxk.webserver.pojo.ResultVo;
-import thyyxxk.webserver.pojo.dictionary.CodeNamePojo;
-import thyyxxk.webserver.pojo.yibao.dismiss.ActOrderPojo;
-import thyyxxk.webserver.pojo.yibao.dismiss.DismissOrderGroupPojo;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
+import thyyxxk.webserver.pojo.yibao.dismiss.ActOrderDetail;
+import thyyxxk.webserver.pojo.yibao.dismiss.ActOrderGroup;
 import thyyxxk.webserver.pojo.yibao.dismiss.ReceiptFeePojo;
 import thyyxxk.webserver.pojo.yibao.dismiss.YbSettleFeePojo;
 import thyyxxk.webserver.pojo.yibao.patient.PatientPojo;
@@ -26,15 +26,13 @@ import java.util.List;
 @Service
 public class DismissService {
     private final DismissDao dao;
-    private final YibaoHttpService http;
 
     @Autowired
-    public DismissService(DismissDao dao, YibaoHttpService http) {
+    public DismissService(DismissDao dao) {
         this.dao = dao;
-        this.http = http;
     }
 
-    public ResultVo<List<DismissOrderGroupPojo>> getActOrders(String inpatientNo, Integer admissTimes) {
+    public ResultVo<List<ActOrderGroup>> getActOrders(String inpatientNo, Integer admissTimes) {
         final Integer ledgerSn = dao.getLedgerSn(inpatientNo, admissTimes);
         if (ledgerSn < 1) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "获取帐页数失败。");
@@ -46,21 +44,20 @@ public class DismissService {
         if (dao.getOrderList(inpatientNo, admissTimes) < 0) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "查询医嘱失败。");
         }
-        List<ActOrderPojo> allOrders = dao.getActOrderDetail();
+        List<ActOrderDetail> allOrders = dao.getActOrderDetail();
         if (allOrders == null) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "查询医嘱失败。");
         }
         return analyzeActOrders(allOrders);
     }
 
-    private ResultVo<List<DismissOrderGroupPojo>> analyzeActOrders(List<ActOrderPojo> allOrders) {
-        HashMap<String, DismissOrderGroupPojo> temp = new HashMap<>();
-        for (ActOrderPojo item : allOrders) {
+    private ResultVo<List<ActOrderGroup>> analyzeActOrders(List<ActOrderDetail> allOrders) {
+        HashMap<String, ActOrderGroup> temp = new HashMap<>();
+        for (ActOrderDetail item : allOrders) {
             String actOrderNo = item.getActOrderNo();
             String fee = item.getChargeFee();
-            String status = item.getChargeStatus();
             if (!temp.containsKey(actOrderNo)) {
-                DismissOrderGroupPojo aModel = new DismissOrderGroupPojo(actOrderNo, fee, status, item.getCxFlag());
+                ActOrderGroup aModel = new ActOrderGroup(actOrderNo, fee, item.getChargeStatus(), item.getCxFlag());
                 if (aModel.getList() == null) {
                     aModel.setList(new ArrayList<>());
                 }
@@ -71,14 +68,14 @@ public class DismissService {
                 temp.get(actOrderNo).getList().add(item);
             }
         }
-        List<DismissOrderGroupPojo> list = new ArrayList<>();
-        for (HashMap.Entry<String, DismissOrderGroupPojo> modelEntry : temp.entrySet()) {
+        List<ActOrderGroup> list = new ArrayList<>();
+        for (HashMap.Entry<String, ActOrderGroup> modelEntry : temp.entrySet()) {
             list.add(modelEntry.getValue());
         }
         return ResultVoUtil.success(list);
     }
 
-    public ResultVo<List<CodeNamePojo>> calculateForDismiss(PatientPojo param) {
+    public ResultVo<List<PureCodeName>> calculateForDismiss(PatientPojo param) {
         final String inpatientNo = param.getInpatientNo();
         final Integer admissTimes = param.getAdmissTimes();
         if (param.getDismissFlag() == 1) {
@@ -158,9 +155,10 @@ public class DismissService {
             throw new BizException(exception);
         }
 
-        List<CodeNamePojo> feeNegativeList = dao.feeOrderNegative(inpatientNo, admissTimes);
+        List<PureCodeName> feeNegativeList = dao.feeOrderNegative(inpatientNo, admissTimes);
         if (feeNegativeList.size() > 0) {
-            return ResultVoUtil.fail(ExceptionEnum.EXIST_NEGATIVE_FEES, "此患者费用清单存在负数。", feeNegativeList);
+            return ResultVoUtil.fail(ExceptionEnum.EXIST_NEGATIVE_FEES, "此患者费用清单存在负数。",
+                    feeNegativeList);
         }
         dao.deleteTemporaryTable(inpatientNo, admissTimes);
         final Integer transFlag = param.getDismissFlag() == 1 ? 0 : 2;
@@ -188,7 +186,7 @@ public class DismissService {
         if (param.getDismissFlag() == 2 && !param.getResponceType().trim().equals("01")) {
             param.setStaffId(TokenUtil.getTokenUserId());
             String hisTotalCharge = dao.getTotalCharge(inpatientNo, admissTimes, lastZjdzDatetime, actOrderDisDate);
-            ResultVo<Object> resultVo = http.httpPost("preCalculateCost", param, param.getResponceType());
+            ResultVo<Object> resultVo = YibaoHttpService.httpPost("preCalculateCost", param, param.getResponceType());
             log.info("preCalculateCost: {}", resultVo);
             if (resultVo.getCode() != 200 && resultVo.getCode() != 2002) {
                 ExceptionEnum exception = ExceptionEnum.LOGICAL_ERROR;
@@ -263,7 +261,7 @@ public class DismissService {
     private int writeReceiptTable(YbSettleFeePojo indata) {
         if (dao.beforeWriteReceiptTable(indata.getInpatientNo(), indata.getAdmissTimes(),
                 indata.getLedgerSn()) < 1) return -1;
-        final int receiptSn = dao.getReceiptSn(indata.getInpatientNo(), indata.getAdmissTimes(),
+        final int infantFlag = dao.selectInfantFlag(indata.getInpatientNo(), indata.getAdmissTimes(),
                 indata.getLedgerSn()); // =0 无婴儿,>0 有婴儿
         final Date dismissDate = getDismissDate(indata.getFlag(), indata.getInpatientNo(), indata.getAdmissTimes(),
                 indata.getZjdzDatetime());
@@ -287,7 +285,7 @@ public class DismissService {
                 fees.get(23).getChargePercent(), fees.get(24).getChargePercent(), fees.get(25).getChargePercent(),
                 fees.get(26).getChargePercent(), fees.get(27).getChargePercent()) < 1)
             return -1;
-        if (receiptSn > 0) {
+        if (infantFlag > 0) {
             totalCharge = getTotalCharge(fees, true);
             return dao.writeReceiptTable(indata.getInpatientNo(), indata.getAdmissTimes(), indata.getLedgerSn(), 4,
                     admissDate, dismissDate, indata.getWardCode(), indata.getDeptCode(), dismissDate, "04",