Compare commits

...

2 Commits

Author SHA1 Message Date
LiJianZhao e8736a3b3f Merge branch 'master' of ssh://git.jizhiweb.cn:2222/clinic-v2/server
# Conflicts:
#	src/main/java/com/syjiaer/clinic/server/controller/charge/ChargeController.java
#	src/main/java/com/syjiaer/clinic/server/service/charge/ChargeService.java
2025-04-24 10:14:48 +08:00
LiJianZhao 4237959387 dev 2025-04-24 10:13:36 +08:00
41 changed files with 619 additions and 331 deletions

View File

@ -15,24 +15,25 @@ import org.springframework.web.bind.annotation.RestController;
public class ChargeController extends BaseController { public class ChargeController extends BaseController {
@Autowired @Autowired
private ChargeService chargeService; private ChargeService chargeService;
// @RequestMapping("/save") @RequestMapping("/save")
// public Result<Object> save() { public Result<Object> save() {
// ChargeOrderDto dto = parmsUtil.getObject("data", ChargeOrderDto.class); ChargeOrderDto dto = parmsUtil.getObject("data", ChargeOrderDto.class);
// ChargeOrder chargeOrder = chargeService.updateOrCreate(dto); // ChargeOrder chargeOrder = chargeService.updateOrCreate(dto);
// return success(chargeOrder.getId()); // return success(chargeOrder.getId());
// } return success();
// }
// @RequestMapping("/list")
// public Result<Object> list() { @RequestMapping("/list")
// ChargeQuery chargeQuery = parmsUtil.getObject("query", ChargeQuery.class); public Result<Object> list() {
// return success(chargeService.pageList(chargeQuery)); ChargeQuery chargeQuery = parmsUtil.getObject("query", ChargeQuery.class);
// } return success(chargeService.pageList(chargeQuery));
// }
// @RequestMapping("/completeOrder")
// public Result<Object> completeOrder() { @RequestMapping("/completeOrder")
// Integer id = parmsUtil.getInteger("id"); public Result<Object> completeOrder() {
// Integer payType = parmsUtil.getInteger("payType"); Integer id = parmsUtil.getInteger("id");
// chargeService.completeOrder(id,payType); Integer payType = parmsUtil.getInteger("payType");
// return success(); chargeService.completeOrder(id,payType);
// } return success();
}
} }

View File

@ -1,10 +1,10 @@
package com.syjiaer.clinic.server.controller.medical; package com.syjiaer.clinic.server.controller.diagnosis;
import com.syjiaer.clinic.server.common.vo.Result; import com.syjiaer.clinic.server.common.vo.Result;
import com.syjiaer.clinic.server.controller.BaseController; import com.syjiaer.clinic.server.controller.BaseController;
import com.syjiaer.clinic.server.entity.medical.dto.MedicalRecordSaveDto; import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordSaveDto;
import com.syjiaer.clinic.server.entity.medical.dto.MedicalRecordVo; import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordVo;
import com.syjiaer.clinic.server.service.medical.MedicalRecordService; import com.syjiaer.clinic.server.service.diagnosis.MedicalRecordService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;

View File

@ -0,0 +1,25 @@
package com.syjiaer.clinic.server.controller.social;
import com.syjiaer.clinic.server.common.vo.Result;
import com.syjiaer.clinic.server.controller.BaseController;
import com.syjiaer.clinic.server.entity.social.SocialDiagnose;
import com.syjiaer.clinic.server.entity.social.SocialDirectory;
import com.syjiaer.clinic.server.service.social.SocialDiagnoseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/social/diagnose")
public class SocialDiagnoseController extends BaseController {
@Autowired
private SocialDiagnoseService socialDiagnoseService;
@RequestMapping("search")
public Result<List<SocialDiagnose>> getDiagnosis() {
String keyword = parmsUtil.getString("keyword");
List<SocialDiagnose> diagnosis = socialDiagnoseService.getDiagnosis(keyword);
return success(diagnosis);
}
}

View File

@ -81,12 +81,7 @@ public class SocialDirectoryController extends BaseController {
} }
@RequestMapping("getDiagnosis")
public Result<List<SocialDirectory>> getDiagnosis() {
String keyword = parmsUtil.getString("keyword");
List<SocialDirectory> diagnosis = socialDirectoryService.getDiagnosis(keyword);
return success(diagnosis);
}
} }

View File

@ -0,0 +1,119 @@
package com.syjiaer.clinic.server.controller.statistics;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.syjiaer.clinic.server.common.util.DateUtil;
import com.syjiaer.clinic.server.common.vo.Result;
import com.syjiaer.clinic.server.controller.BaseController;
import com.syjiaer.clinic.server.entity.goods.Goods;
import com.syjiaer.clinic.server.entity.statistics.PersonPayOverviewVo;
import com.syjiaer.clinic.server.entity.statistics.RevenueOverviewVo;
import com.syjiaer.clinic.server.service.goods.GoodsService;
import com.syjiaer.clinic.server.service.inventory.InventoryService;
import com.syjiaer.clinic.server.service.statistics.StatisticsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RequestMapping("/statistics")
@RestController
public class StatisticsController extends BaseController {
@Autowired
private StatisticsService statisticsService;
@Autowired
private InventoryService inventoryService;
@Autowired
private GoodsService goodsService;
@RequestMapping("getRevenueOverview")
public Result<RevenueOverviewVo> getRevenueOverview() {
String begin = parmsUtil.getString("beginTime", "开始时间为空");
String end = parmsUtil.getString("endTime", "结束时间为空");
LocalDateTime beginTime = DateUtil.getDateTime(begin);
LocalDateTime endTime = DateUtil.getDateTime(end);
// RevenueOverviewVo revenueOverview = statisticsService.getRevenueOverview(beginTime, endTime);
// return success(revenueOverview);
return success();
}
@RequestMapping("numberEarlyWarning")
public Result<List<Goods>> numberEarlyWarning() {
// QueryWrapper<Inventory> inventoryQuery = new QueryWrapper<>();
// inventoryQuery.select("good_id,name,packaging_unit,min_packaging_unit,sum(whole_number) as whole_number,sum(fragment_number) as fragment_number");
// inventoryQuery.groupBy("good_id,name,packaging_unit,min_packaging_unit");
// inventoryQuery.having(" sum(whole_number)<"+ Constants.numberWarningLimit);
// inventoryQuery.orderByAsc("whole_number");
// List<Map<String,Object>> maps = iInventoryService.listMaps(inventoryQuery);
QueryWrapper<Goods> goodsQuery = new QueryWrapper<>();
goodsQuery.apply("inventory_whole_number <= inventory_warn_number");
List<Goods> list = goodsService.list(goodsQuery);
return success(list);
}
@RequestMapping("expiryDateWarning")
public Result<List<Map<String, Object>>> expiryDateWarning0() {
// QueryWrapper<InventoryGoodsView> inventoryQuery = new QueryWrapper<>();
// inventoryQuery.select("*,EXTRACT(EPOCH FROM AGE(expiry_date,CURRENT_DATE))/" + Constants.OneDaySecond + " as remaining_days");
// inventoryQuery.apply("CURRENT_DATE + INTERVAL '1 day' * expiry_warn_days >= expiry_date");
// inventoryQuery.orderByAsc("expiry_date");
//
// List<Map<String, Object>> maps = iInventoryGoodsViewService.listMaps(inventoryQuery);
// return success(maps);
return success();
}
@RequestMapping("getPersonPayOverview")
public Result<PersonPayOverviewVo> getPersonPayOverview() {
// String begin = parmsUtil.getString("beginTime", "开始时间为空");
// String end = parmsUtil.getString("endTime", "结束时间为空");
// LocalDateTime beginTime = DateUtil.getDateTime(begin);
// LocalDateTime endTime = DateUtil.getDateTime(end);
// QueryWrapper<RetailOrder> vipQuery = new QueryWrapper<>();
// vipQuery.select("create_date,sum(total_price)");
// vipQuery.ge("pay_time", beginTime);
// vipQuery.le("pay_time", endTime);
//
// vipQuery.groupBy("create_date");
// vipQuery.orderByAsc("create_date");
// vipQuery.isNotNull("vip_id");
// List<Map<String, Object>> vipMaps = retailOrderService.listMaps(vipQuery);
// QueryWrapper<RetailOrder> commonQuery = new QueryWrapper<>();
// commonQuery.select("create_date,sum(total_price)");
// commonQuery.ge("pay_time", beginTime);
// commonQuery.le("pay_time", endTime);
//
// commonQuery.groupBy("create_date");
// commonQuery.orderByAsc("create_date");
// commonQuery.isNull("vip_id");
// List<Map<String, Object>> commonMaps = retailOrderService.listMaps(commonQuery);
// List<LocalDate> dateList = DateUtil.getDatesBetween(beginTime, endTime);
// Map<Object, BigDecimal> tempMap = new HashMap<>();
// for (LocalDate date : dateList) {
// tempMap.put(date.toString(), BigDecimal.ZERO);
// }
// for (Map<String, Object> map : vipMaps) {
// tempMap.put(map.get("create_date").toString(), (BigDecimal) map.get("sum"));
// }
// PersonPayOverviewVo personPayOverview = new PersonPayOverviewVo();
// personPayOverview.setDateList(dateList.stream().map(LocalDate::toString).toList());
// personPayOverview.setVipPrice(new ArrayList<>(tempMap.values()));
// for (Map<String, Object> map : commonMaps) {
// tempMap.put(map.get("create_date").toString(), (BigDecimal) map.get("sum"));
// }
// personPayOverview.setCommonPrice(new ArrayList<>(tempMap.values()));
return success();
}
}

View File

@ -15,19 +15,19 @@ import lombok.ToString;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
* <p> * <p>
* * 收费服务详情
* </p> * </p>
* *
* @author NiuZiYuan * @author NiuZiYuan
* @since 2025-04-22 * @since 2025-04-24
*/ */
@Getter @Getter
@Setter @Setter
@ToString @ToString
@Accessors(chain = true) @Accessors(chain = true)
@TableName("charge_service_list") @TableName("charge_item_list")
@ApiModel(value = "ChargeServiceList对象", description = "") @ApiModel(value = "ChargeItemList对象", description = "收费服务详情")
public class ChargeServiceList implements Serializable { public class ChargeItemList implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -1,8 +1,8 @@
package com.syjiaer.clinic.server.entity.charge.dto; package com.syjiaer.clinic.server.entity.charge.dto;
import com.syjiaer.clinic.server.entity.charge.ChargeServiceList; import com.syjiaer.clinic.server.entity.charge.ChargeItemList;
import com.syjiaer.clinic.server.entity.charge.vo.ChargeGoodsListVo; import com.syjiaer.clinic.server.entity.charge.vo.ChargeGoodsListVo;
import com.syjiaer.clinic.server.entity.medical.MedicalRecord; import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalRecord;
import com.syjiaer.clinic.server.entity.patient.PatientInfo; import com.syjiaer.clinic.server.entity.patient.PatientInfo;
import lombok.Data; import lombok.Data;
@ -24,8 +24,8 @@ public class ChargeOrderDto {
private Long salePersonId; private Long salePersonId;
private Long medicalRecordId; private Long medicalRecordId;
private PatientInfo patientInfo; private PatientInfo patientInfo;
private MedicalRecord medicalRecord; private DiagnosisMedicalRecord diagnosisMedicalRecord;
private List<ChargeServiceList> serviceDetail; private List<ChargeItemList> serviceDetail;
private List<ChargeGoodsListVo> goodsDetail; private List<ChargeGoodsListVo> goodsDetail;

View File

@ -1,9 +1,7 @@
package com.syjiaer.clinic.server.entity.charge.vo; package com.syjiaer.clinic.server.entity.charge.vo;
import com.syjiaer.clinic.server.entity.charge.ChargeGoodsList; import com.syjiaer.clinic.server.entity.charge.ChargeItemList;
import com.syjiaer.clinic.server.entity.charge.ChargeServiceList; import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalRecord;
import com.syjiaer.clinic.server.entity.medical.MedicalRecord;
import com.syjiaer.clinic.server.entity.medical.dto.MedicalRecordVo;
import com.syjiaer.clinic.server.entity.patient.PatientInfo; import com.syjiaer.clinic.server.entity.patient.PatientInfo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -55,12 +53,12 @@ public class ChargeDetailVo {
@ApiModelProperty("患者姓名") @ApiModelProperty("患者姓名")
private String patientName; private String patientName;
@ApiModelProperty @ApiModelProperty
private MedicalRecord medicalRecord; private DiagnosisMedicalRecord diagnosisMedicalRecord;
@ApiModelProperty("患者信息") @ApiModelProperty("患者信息")
private PatientInfo patientInfo; private PatientInfo patientInfo;
@ApiModelProperty("诊疗服务") @ApiModelProperty("诊疗服务")
private List<ChargeServiceList> serviceDetail; private List<ChargeItemList> serviceDetail;
@ApiModelProperty("药品耗材") @ApiModelProperty("药品耗材")
private List<ChargeGoodsListVo> goodsDetail; private List<ChargeGoodsListVo> goodsDetail;

View File

@ -0,0 +1,44 @@
package com.syjiaer.clinic.server.entity.diagnosis;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author NiuZiYuan
* @since 2025-04-24
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@ApiModel(value = "Diagnosis对象", description = "")
public class Diagnosis implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty("患者id")
private Integer patientId;
@ApiModelProperty("挂单id")
private Integer registrationId;
@ApiModelProperty("病例流水号")
private String code;
@ApiModelProperty("医生id")
private Integer dockerId;
}

View File

@ -1,4 +1,4 @@
package com.syjiaer.clinic.server.entity.medical; package com.syjiaer.clinic.server.entity.diagnosis;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@ -13,19 +13,19 @@ import lombok.ToString;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
* <p> * <p>
* * 病例商品详情
* </p> * </p>
* *
* @author NiuZiYuan * @author NiuZiYuan
* @since 2025-04-23 * @since 2025-04-24
*/ */
@Getter @Getter
@Setter @Setter
@ToString @ToString
@Accessors(chain = true) @Accessors(chain = true)
@TableName("medical_goods_list") @TableName("diagnosis_medical_goods_list")
@ApiModel(value = "MedicalGoodsList对象", description = "") @ApiModel(value = "DiagnosisMedicalGoodsList对象", description = "病例商品详情")
public class MedicalGoodsList implements Serializable { public class DiagnosisMedicalGoodsList implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -48,8 +48,8 @@ public class MedicalGoodsList implements Serializable {
@ApiModelProperty("商品单价") @ApiModelProperty("商品单价")
private BigDecimal unitPrice; private BigDecimal unitPrice;
@ApiModelProperty("病例id") @ApiModelProperty("诊断code")
private Integer medicalRecordId; private String diagnosisCode;
@ApiModelProperty("药品数量") @ApiModelProperty("药品数量")
private Integer number; private Integer number;

View File

@ -1,4 +1,4 @@
package com.syjiaer.clinic.server.entity.medical; package com.syjiaer.clinic.server.entity.diagnosis;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@ -13,19 +13,19 @@ import lombok.ToString;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
* <p> * <p>
* * 病例服务详情
* </p> * </p>
* *
* @author NiuZiYuan * @author NiuZiYuan
* @since 2025-04-23 * @since 2025-04-24
*/ */
@Getter @Getter
@Setter @Setter
@ToString @ToString
@Accessors(chain = true) @Accessors(chain = true)
@TableName("medical_item_list") @TableName("diagnosis_medical_item_list")
@ApiModel(value = "MedicalItemList对象", description = "") @ApiModel(value = "DiagnosisMedicalItemList对象", description = "病例服务详情")
public class MedicalItemList implements Serializable { public class DiagnosisMedicalItemList implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -48,8 +48,8 @@ public class MedicalItemList implements Serializable {
@ApiModelProperty("服务单价") @ApiModelProperty("服务单价")
private BigDecimal unitPrice; private BigDecimal unitPrice;
@ApiModelProperty("病例id") @ApiModelProperty("诊断code")
private Integer medicalRecordId; private String diagnosisCode;
@ApiModelProperty("药品数量") @ApiModelProperty("药品数量")
private Integer number; private Integer number;

View File

@ -1,4 +1,4 @@
package com.syjiaer.clinic.server.entity.medical; package com.syjiaer.clinic.server.entity.diagnosis;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@ -17,15 +17,15 @@ import lombok.experimental.Accessors;
* </p> * </p>
* *
* @author NiuZiYuan * @author NiuZiYuan
* @since 2025-04-23 * @since 2025-04-24
*/ */
@Getter @Getter
@Setter @Setter
@ToString @ToString
@Accessors(chain = true) @Accessors(chain = true)
@TableName("medical_record") @TableName("diagnosis_medical_record")
@ApiModel(value = "MedicalRecord对象", description = "病例") @ApiModel(value = "DiagnosisMedicalRecord对象", description = "病例")
public class MedicalRecord implements Serializable { public class DiagnosisMedicalRecord implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -33,9 +33,6 @@ public class MedicalRecord implements Serializable {
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Integer id; private Integer id;
@ApiModelProperty("患者id")
private Integer patientId;
@ApiModelProperty("主诉") @ApiModelProperty("主诉")
private String mainAppeal; private String mainAppeal;
@ -54,12 +51,6 @@ public class MedicalRecord implements Serializable {
@ApiModelProperty("非通用字段") @ApiModelProperty("非通用字段")
private String json; private String json;
@ApiModelProperty("接诊医生id")
private Integer dockerId;
@ApiModelProperty("接诊医生姓名")
private String dockerName;
@ApiModelProperty("诊断详细数据") @ApiModelProperty("诊断详细数据")
private String diagnosisDetail; private String diagnosisDetail;
@ -69,9 +60,9 @@ public class MedicalRecord implements Serializable {
@ApiModelProperty("创建日期") @ApiModelProperty("创建日期")
private LocalDateTime createDatetime; private LocalDateTime createDatetime;
@ApiModelProperty("挂单id")
private Integer registrationId;
@ApiModelProperty("诊断类别") @ApiModelProperty("诊断类别")
private String diagType; private String diagType;
@ApiModelProperty("诊断code")
private String diagnosisCode;
} }

View File

@ -1,4 +1,4 @@
package com.syjiaer.clinic.server.entity.medical.dto; package com.syjiaer.clinic.server.entity.diagnosis.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;

View File

@ -0,0 +1,33 @@
package com.syjiaer.clinic.server.entity.diagnosis.dto;
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalRecord;
import com.syjiaer.clinic.server.entity.item.Item;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import java.util.List;
@Getter
@Setter
public class MedicalRecordSaveDto {
@ApiModelProperty("自增id")
private Integer id;
@ApiModelProperty("患者id")
private Integer patientId;
@ApiModelProperty("接诊医生id")
private Integer dockerId;
@ApiModelProperty("挂单id")
private Integer registrationId;
@ApiModelProperty
private DiagnosisMedicalRecord diagnosisMedicalRecord;
@ApiModelProperty("服务项目列表")
private List<Item> itemList;
@ApiModelProperty("药品耗材列表")
private List<GoodsRetailDto> goodsList;
}

View File

@ -1,9 +1,9 @@
package com.syjiaer.clinic.server.entity.medical.dto; package com.syjiaer.clinic.server.entity.diagnosis.dto;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.syjiaer.clinic.server.entity.medical.MedicalGoodsList; import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalGoodsList;
import com.syjiaer.clinic.server.entity.medical.MedicalItemList; import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalItemList;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -56,7 +56,7 @@ public class MedicalRecordVo {
@ApiModelProperty("挂单id") @ApiModelProperty("挂单id")
private Integer registrationId; private Integer registrationId;
@ApiModelProperty("诊疗服务") @ApiModelProperty("诊疗服务")
private List<MedicalItemList> serviceDetail; private List<DiagnosisMedicalItemList> serviceDetail;
@ApiModelProperty("药品耗材") @ApiModelProperty("药品耗材")
private List<MedicalGoodsList> goodsDetail; private List<DiagnosisMedicalGoodsList> goodsDetail;
} }

View File

@ -1,63 +0,0 @@
package com.syjiaer.clinic.server.entity.medical.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.syjiaer.clinic.server.entity.item.Item;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import java.util.List;
@Getter
@Setter
public class MedicalRecordSaveDto {
@ApiModelProperty("自增id")
private Integer id;
@ApiModelProperty("患者id")
private Integer patientId;
@ApiModelProperty("主诉")
private String mainAppeal;
@ApiModelProperty("现病史")
private String nowMedicalHistory;
@ApiModelProperty("往病史")
private String beforeMedicalHistory;
@ApiModelProperty("过敏史")
private String allergyHistory;
@ApiModelProperty("体检检查")
private String exam;
@ApiModelProperty("非通用字段")
private String json;
@ApiModelProperty("接诊医生id")
private Integer dockerId;
@ApiModelProperty("接诊医生姓名")
private String dockerName;
@ApiModelProperty("诊断详细数据")
private String diagnosisDetail;
@ApiModelProperty("诊断概况")
private String diagnosisSummary;
@ApiModelProperty("创建日期")
private LocalDateTime createDatetime;
@ApiModelProperty("挂单id")
private Integer registrationId;
@ApiModelProperty("服务项目列表")
private List<Item> itemList;
@ApiModelProperty("药品耗材列表")
private List<GoodsRetailDto> goodsList;
}

View File

@ -0,0 +1,12 @@
package com.syjiaer.clinic.server.entity.statistics;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
@Getter
@Setter
public class GoodsTypeRevenue {
private String name;
private BigDecimal totalRevenue;
}

View File

@ -0,0 +1,12 @@
package com.syjiaer.clinic.server.entity.statistics;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
@Getter
@Setter
public class PayTypeRevenue {
private BigDecimal totalRevenue;
private String name;
}

View File

@ -0,0 +1,14 @@
package com.syjiaer.clinic.server.entity.statistics;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.List;
@Getter
@Setter
public class PersonPayOverviewVo {
private List<String> dateList;
private List<BigDecimal> vipPrice;
private List<BigDecimal> commonPrice;
}

View File

@ -0,0 +1,29 @@
package com.syjiaer.clinic.server.entity.statistics;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.List;
/**
* 营收概况
*/
@Getter
@Setter
public class RevenueOverviewVo {
//总营业额
private BigDecimal totalRevenue;
//会员销售额
private BigDecimal vipRevenue;
//总完成单数
private Long totalOrderCount;
//会员单数
private Long vipOrderCount;
private List<GoodsTypeRevenue> goodsTypeRevenue;
private List<PayTypeRevenue> payTypeRevenue;
}

View File

@ -0,0 +1,18 @@
package com.syjiaer.clinic.server.mapper.charge;
import com.syjiaer.clinic.server.entity.charge.ChargeItemList;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 收费服务详情 Mapper 接口
* </p>
*
* @author NiuZiYuan
* @since 2025-04-24
*/
public interface ChargeItemListMapper extends BaseMapper<ChargeItemList> {
}

View File

@ -1,18 +0,0 @@
package com.syjiaer.clinic.server.mapper.charge;
import com.syjiaer.clinic.server.entity.charge.ChargeServiceList;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author NiuZiYuan
* @since 2025-04-22
*/
public interface ChargeServiceListMapper extends BaseMapper<ChargeServiceList> {
}

View File

@ -0,0 +1,20 @@
package com.syjiaer.clinic.server.mapper.diagnosis;
import com.syjiaer.clinic.server.entity.diagnosis.Diagnosis;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Select;
/**
* <p>
* Mapper 接口
* </p>
*
* @author NiuZiYuan
* @since 2025-04-24
*/
public interface DiagnosisMapper extends BaseMapper<Diagnosis> {
@Select("select * from diagnosis where code = #{code}")
Diagnosis selectByCode(String code);
}

View File

@ -0,0 +1,23 @@
package com.syjiaer.clinic.server.mapper.diagnosis;
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalGoodsList;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author NiuZiYuan
* @since 2025-04-23
*/
public interface DiagnosisMedicalGoodsListMapper extends BaseMapper<DiagnosisMedicalGoodsList> {
@Select("select * from diagnosis_medical_goods_list where diagnosis_code = #{code}")
List<DiagnosisMedicalGoodsList> listByDiagnosisCode(String code);
}

View File

@ -0,0 +1,22 @@
package com.syjiaer.clinic.server.mapper.diagnosis;
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalItemList;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author NiuZiYuan
* @since 2025-04-23
*/
public interface DiagnosisMedicalItemListMapper extends BaseMapper<DiagnosisMedicalItemList> {
@Select("select * from diagnosis_medical_item_list where medical_record_id = #{medicalRecordId}")
List<DiagnosisMedicalItemList> listByDiagnosisCode(String code);
}

View File

@ -0,0 +1,20 @@
package com.syjiaer.clinic.server.mapper.diagnosis;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalRecord;
import org.apache.ibatis.annotations.Select;
/**
* <p>
* Mapper 接口
* </p>
*
* @author NiuZiYuan
* @since 2025-04-17
*/
public interface DiagnosisMedicalRecordMapper extends BaseMapper<DiagnosisMedicalRecord> {
@Select("select * from diagnosis_medical_record where diagnosis_code = #{diagnosisCode}")
DiagnosisMedicalRecord selectByDiagnosisCode(String diagnosisCode);
}

View File

@ -1,24 +0,0 @@
package com.syjiaer.clinic.server.mapper.medical;
import com.syjiaer.clinic.server.entity.medical.MedicalGoodsList;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import lombok.Setter;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author NiuZiYuan
* @since 2025-04-23
*/
public interface MedicalGoodsListMapper extends BaseMapper<MedicalGoodsList> {
@Select("select * from medical_goods_list where medical_record_id = #{medicalRecordId}")
List<MedicalGoodsList> listByMedicalRecordId(Integer medicalRecordId);
}

View File

@ -1,22 +0,0 @@
package com.syjiaer.clinic.server.mapper.medical;
import com.syjiaer.clinic.server.entity.medical.MedicalItemList;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author NiuZiYuan
* @since 2025-04-23
*/
public interface MedicalItemListMapper extends BaseMapper<MedicalItemList> {
@Select("select * from medical_item_list where medical_record_id = #{medicalRecordId}")
List<MedicalItemList> listByMedicalRecordId(Integer medicalRecordId);
}

View File

@ -1,18 +0,0 @@
package com.syjiaer.clinic.server.mapper.medical;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.syjiaer.clinic.server.entity.medical.MedicalRecord;
/**
* <p>
* Mapper 接口
* </p>
*
* @author NiuZiYuan
* @since 2025-04-17
*/
public interface MedicalRecordMapper extends BaseMapper<MedicalRecord> {
}

View File

@ -9,34 +9,28 @@ import com.syjiaer.clinic.server.common.exception.MessageException;
import com.syjiaer.clinic.server.common.util.StringUtil; import com.syjiaer.clinic.server.common.util.StringUtil;
import com.syjiaer.clinic.server.common.vo.Page; import com.syjiaer.clinic.server.common.vo.Page;
import com.syjiaer.clinic.server.entity.charge.ChargeGoodsList; import com.syjiaer.clinic.server.entity.charge.ChargeGoodsList;
import com.syjiaer.clinic.server.entity.charge.ChargeItemList;
import com.syjiaer.clinic.server.entity.charge.ChargeOrder; import com.syjiaer.clinic.server.entity.charge.ChargeOrder;
import com.syjiaer.clinic.server.entity.charge.ChargeServiceList;
import com.syjiaer.clinic.server.entity.charge.dto.ChargeOrderDto; import com.syjiaer.clinic.server.entity.charge.dto.ChargeOrderDto;
import com.syjiaer.clinic.server.entity.charge.dto.ChargeQuery; import com.syjiaer.clinic.server.entity.charge.dto.ChargeQuery;
import com.syjiaer.clinic.server.entity.charge.vo.ChargeDetailVo; import com.syjiaer.clinic.server.entity.charge.vo.ChargeDetailVo;
import com.syjiaer.clinic.server.entity.charge.vo.ChargeGoodsListVo; import com.syjiaer.clinic.server.entity.charge.vo.ChargeGoodsListVo;
import com.syjiaer.clinic.server.entity.goods.Goods; import com.syjiaer.clinic.server.entity.goods.Goods;
import com.syjiaer.clinic.server.entity.inventory.InventoryLog; import com.syjiaer.clinic.server.entity.inventory.InventoryLog;
import com.syjiaer.clinic.server.entity.item.Item;
import com.syjiaer.clinic.server.entity.manager.ManagerUser; import com.syjiaer.clinic.server.entity.manager.ManagerUser;
import com.syjiaer.clinic.server.entity.medical.MedicalRecord;
import com.syjiaer.clinic.server.entity.medical.dto.GoodsRetailDto;
import com.syjiaer.clinic.server.entity.medical.dto.MedicalRecordSaveDto;
import com.syjiaer.clinic.server.entity.organization.OrganizationMember; import com.syjiaer.clinic.server.entity.organization.OrganizationMember;
import com.syjiaer.clinic.server.entity.patient.PatientInfo; import com.syjiaer.clinic.server.entity.patient.PatientInfo;
import com.syjiaer.clinic.server.entity.patient.PatientRegistration; import com.syjiaer.clinic.server.entity.patient.PatientRegistration;
import com.syjiaer.clinic.server.mapper.charge.ChargeGoodsListMapper; import com.syjiaer.clinic.server.mapper.charge.ChargeGoodsListMapper;
import com.syjiaer.clinic.server.mapper.charge.ChargeItemListMapper;
import com.syjiaer.clinic.server.mapper.charge.ChargeOrderMapper; import com.syjiaer.clinic.server.mapper.charge.ChargeOrderMapper;
import com.syjiaer.clinic.server.mapper.charge.ChargeServiceListMapper;
import com.syjiaer.clinic.server.mapper.goods.GoodsMapper; import com.syjiaer.clinic.server.mapper.goods.GoodsMapper;
import com.syjiaer.clinic.server.mapper.inventory.InventoryLogMapper; import com.syjiaer.clinic.server.mapper.inventory.InventoryLogMapper;
import com.syjiaer.clinic.server.mapper.medical.MedicalRecordMapper; import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalRecordMapper;
import com.syjiaer.clinic.server.mapper.organization.OrganizationMemberMapper; import com.syjiaer.clinic.server.mapper.organization.OrganizationMemberMapper;
import com.syjiaer.clinic.server.mapper.organization.OrganizationSectionMapper;
import com.syjiaer.clinic.server.mapper.patient.PatientInfoMapper; import com.syjiaer.clinic.server.mapper.patient.PatientInfoMapper;
import com.syjiaer.clinic.server.service.BaseService; import com.syjiaer.clinic.server.service.BaseService;
import com.syjiaer.clinic.server.service.inventory.InventoryService; import com.syjiaer.clinic.server.service.inventory.InventoryService;
import com.syjiaer.clinic.server.service.patient.PatientInfoService;
import com.syjiaer.clinic.server.service.patient.PatientRegistrationService; import com.syjiaer.clinic.server.service.patient.PatientRegistrationService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -50,14 +44,12 @@ import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static com.syjiaer.clinic.server.common.enums.MedicalRecordDetailTypeEnum.goods;
@Service @Service
public class ChargeService extends BaseService { public class ChargeService extends BaseService {
@Autowired @Autowired
private ChargeOrderMapper chargeOrderMapper; private ChargeOrderMapper chargeOrderMapper;
@Autowired @Autowired
private ChargeServiceListMapper chargeServiceListMapper; private ChargeItemListMapper chargeItemListMapper;
@Autowired @Autowired
private ChargeGoodsListMapper chargeGoodsListMapper; private ChargeGoodsListMapper chargeGoodsListMapper;
@Autowired @Autowired
@ -65,12 +57,14 @@ public class ChargeService extends BaseService {
@Autowired @Autowired
private PatientInfoMapper patientInfoMapper; private PatientInfoMapper patientInfoMapper;
@Autowired @Autowired
private MedicalRecordMapper medicalRecordMapper; private DiagnosisMedicalRecordMapper diagnosisMedicalRecordMapper;
@Autowired @Autowired
private OrganizationMemberMapper organizationMemberMapper; private OrganizationMemberMapper organizationMemberMapper;
@Autowired @Autowired
private PatientRegistrationService patientRegistrationService; private PatientRegistrationService patientRegistrationService;
@Autowired
@Lazy
private ChargeService chargeService;
@Autowired @Autowired
private InventoryService inventoryService; private InventoryService inventoryService;
@Autowired @Autowired
@ -82,7 +76,7 @@ public class ChargeService extends BaseService {
ChargeOrder dbOrder = chargeOrderMapper.selectById(dto.getId()); ChargeOrder dbOrder = chargeOrderMapper.selectById(dto.getId());
if (dbOrder != null){ if (dbOrder != null){
//清除已有的订单 //清除已有的订单
chargeServiceListMapper.delete(new QueryWrapper<ChargeServiceList>().eq("charge_order_code", dbOrder.getCode())); chargeItemListMapper.delete(new QueryWrapper<ChargeItemList>().eq("charge_order_code", dbOrder.getCode()));
chargeGoodsListMapper.delete(new QueryWrapper<ChargeGoodsList>().eq("charge_order_code", dbOrder.getCode())); chargeGoodsListMapper.delete(new QueryWrapper<ChargeGoodsList>().eq("charge_order_code", dbOrder.getCode()));
chargeOrderMapper.deleteById(dbOrder.getId()); chargeOrderMapper.deleteById(dbOrder.getId());
} }
@ -93,9 +87,9 @@ public class ChargeService extends BaseService {
LocalDateTime nowLocalDateTime = LocalDateTime.now(); LocalDateTime nowLocalDateTime = LocalDateTime.now();
BigDecimal preTotalPrice = BigDecimal.ZERO; BigDecimal preTotalPrice = BigDecimal.ZERO;
BigDecimal totalPrice = BigDecimal.ZERO; BigDecimal totalPrice = BigDecimal.ZERO;
List<ChargeServiceList> chargeServiceLists = new ArrayList<>(); List<ChargeItemList> chargeServiceLists = new ArrayList<>();
for (ChargeServiceList service : dto.getServiceDetail()){ for (ChargeItemList service : dto.getServiceDetail()){
ChargeServiceList itemList = new ChargeServiceList(); ChargeItemList itemList = new ChargeItemList();
String fsn = StringUtil.getCode("FSN"); String fsn = StringUtil.getCode("FSN");
itemList.setChargeOrderCode(code); itemList.setChargeOrderCode(code);
itemList.setServiceId(service.getId()); itemList.setServiceId(service.getId());
@ -114,7 +108,7 @@ public class ChargeService extends BaseService {
preTotalPrice = preTotalPrice.add(service.getUnitPrice()); preTotalPrice = preTotalPrice.add(service.getUnitPrice());
totalPrice = totalPrice.add(service.getUnitPrice()); totalPrice = totalPrice.add(service.getUnitPrice());
} }
chargeServiceListMapper.insert(chargeServiceLists); chargeItemListMapper.insert(chargeServiceLists);
List<ChargeGoodsList> chargeGoodsLists = new ArrayList<>(); List<ChargeGoodsList> chargeGoodsLists = new ArrayList<>();
for (ChargeGoodsListVo goods : dto.getGoodsDetail()){ for (ChargeGoodsListVo goods : dto.getGoodsDetail()){
@ -154,7 +148,7 @@ public class ChargeService extends BaseService {
chargeOrder.setStatus(RetailOrderStatusEnum.UNFINISHED.getCode()); chargeOrder.setStatus(RetailOrderStatusEnum.UNFINISHED.getCode());
chargeOrder.setPatientId(dto.getPatientInfo().getId()); chargeOrder.setPatientId(dto.getPatientInfo().getId());
chargeOrder.setSalePersonId(user.getId()); chargeOrder.setSalePersonId(user.getId());
chargeOrder.setMedicalRecordId(dto.getMedicalRecord().getId()); chargeOrder.setMedicalRecordId(dto.getDiagnosisMedicalRecord().getId());
chargeOrderMapper.insert(chargeOrder); chargeOrderMapper.insert(chargeOrder);
return chargeOrder; return chargeOrder;
@ -177,9 +171,9 @@ public class ChargeService extends BaseService {
for (ChargeOrder chargeOrder : orderPage.getList()){ for (ChargeOrder chargeOrder : orderPage.getList()){
ChargeDetailVo detailVo = new ChargeDetailVo(); ChargeDetailVo detailVo = new ChargeDetailVo();
BeanUtils.copyProperties(chargeOrder, detailVo); BeanUtils.copyProperties(chargeOrder, detailVo);
detailVo.setMedicalRecord(medicalRecordMapper.selectById(chargeOrder.getMedicalRecordId())); detailVo.setDiagnosisMedicalRecord(diagnosisMedicalRecordMapper.selectById(chargeOrder.getMedicalRecordId()));
detailVo.setPatientInfo(patientInfoMapper.selectById(chargeOrder.getPatientId())); detailVo.setPatientInfo(patientInfoMapper.selectById(chargeOrder.getPatientId()));
detailVo.setServiceDetail(chargeServiceListMapper.selectList(new QueryWrapper<ChargeServiceList>() detailVo.setServiceDetail(chargeItemListMapper.selectList(new QueryWrapper<ChargeItemList>()
.eq("charge_order_code", chargeOrder.getCode()))); .eq("charge_order_code", chargeOrder.getCode())));
detailVo.setGoodsDetail(chargeGoodsListMapper.selectDetailByCode(chargeOrder.getCode())); detailVo.setGoodsDetail(chargeGoodsListMapper.selectDetailByCode(chargeOrder.getCode()));
@ -192,7 +186,27 @@ public class ChargeService extends BaseService {
return resultPage; return resultPage;
} }
// @Transactional(rollbackFor = Exception.class)
// public ChargeOrder updateOrCreate(ChargeOrderDto dto) {
// //创建患者
// PatientInfo patientInfo = dto.getPatientInfo();
// if (patientInfo == null){
// throw new MessageException("患者信息不能为空");
// }
// patientInfoMapper.insertOrUpdate(patientInfo);
// if (dto.getDiagnosisMedicalRecord().getDockerId() == null || dto.getDiagnosisMedicalRecord().getDiagnosisDetail() == null){
// throw new MessageException("诊断信息和医生不能为空");
// }
// //添加挂号信息
// OrganizationMember docker = organizationMemberMapper.selectById(dto.getDiagnosisMedicalRecord().getDockerId());
// PatientRegistration registration = patientRegistrationService.regisByDockerAndPatient(docker,patientInfo, (short) 1,1);
// //todo 添加病例
// diagnosisMedicalRecordMapper.insertOrUpdate(dto.getDiagnosisMedicalRecord());
//
// //添加订单
// return chargeService.save(dto);
//
// }
public void completeOrder (Integer id,Integer payType){ public void completeOrder (Integer id,Integer payType){
ChargeOrder order = chargeOrderMapper.selectById(id); ChargeOrder order = chargeOrderMapper.selectById(id);

View File

@ -1,32 +1,33 @@
package com.syjiaer.clinic.server.service.medical; package com.syjiaer.clinic.server.service.diagnosis;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.syjiaer.clinic.server.common.api.input.IM2201;
import com.syjiaer.clinic.server.common.api.input.IM2203A; import com.syjiaer.clinic.server.common.api.input.IM2203A;
import com.syjiaer.clinic.server.common.api.request.SocialRequest; import com.syjiaer.clinic.server.common.api.request.SocialRequest;
import com.syjiaer.clinic.server.common.config.Config; import com.syjiaer.clinic.server.common.config.Config;
import com.syjiaer.clinic.server.common.enums.MedicalRecordDetailTypeEnum;
import com.syjiaer.clinic.server.common.enums.RegistrationStatusEnum; import com.syjiaer.clinic.server.common.enums.RegistrationStatusEnum;
import com.syjiaer.clinic.server.common.exception.MessageException; import com.syjiaer.clinic.server.common.exception.MessageException;
import com.syjiaer.clinic.server.common.util.StringUtil;
import com.syjiaer.clinic.server.entity.diagnosis.Diagnosis;
import com.syjiaer.clinic.server.entity.goods.Goods; import com.syjiaer.clinic.server.entity.goods.Goods;
import com.syjiaer.clinic.server.entity.item.Item; import com.syjiaer.clinic.server.entity.item.Item;
import com.syjiaer.clinic.server.entity.manager.ManagerUser; import com.syjiaer.clinic.server.entity.manager.ManagerUser;
import com.syjiaer.clinic.server.entity.medical.MedicalGoodsList; import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalGoodsList;
import com.syjiaer.clinic.server.entity.medical.MedicalItemList; import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalItemList;
import com.syjiaer.clinic.server.entity.medical.MedicalRecord; import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalRecord;
import com.syjiaer.clinic.server.entity.medical.dto.GoodsRetailDto; import com.syjiaer.clinic.server.entity.diagnosis.dto.GoodsRetailDto;
import com.syjiaer.clinic.server.entity.medical.dto.MedicalRecordSaveDto; import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordSaveDto;
import com.syjiaer.clinic.server.entity.medical.dto.MedicalRecordVo; import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordVo;
import com.syjiaer.clinic.server.entity.organization.OrganizationMember; import com.syjiaer.clinic.server.entity.organization.OrganizationMember;
import com.syjiaer.clinic.server.entity.organization.OrganizationSection; import com.syjiaer.clinic.server.entity.organization.OrganizationSection;
import com.syjiaer.clinic.server.entity.patient.PatientRegistration; import com.syjiaer.clinic.server.entity.patient.PatientRegistration;
import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMapper;
import com.syjiaer.clinic.server.mapper.goods.GoodsMapper; import com.syjiaer.clinic.server.mapper.goods.GoodsMapper;
import com.syjiaer.clinic.server.mapper.item.ItemMapper; import com.syjiaer.clinic.server.mapper.item.ItemMapper;
import com.syjiaer.clinic.server.mapper.medical.MedicalGoodsListMapper; import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalGoodsListMapper;
import com.syjiaer.clinic.server.mapper.medical.MedicalItemListMapper; import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalItemListMapper;
import com.syjiaer.clinic.server.mapper.medical.MedicalRecordMapper; import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalRecordMapper;
import com.syjiaer.clinic.server.mapper.organization.OrganizationMemberMapper; import com.syjiaer.clinic.server.mapper.organization.OrganizationMemberMapper;
import com.syjiaer.clinic.server.mapper.organization.OrganizationSectionMapper; import com.syjiaer.clinic.server.mapper.organization.OrganizationSectionMapper;
import com.syjiaer.clinic.server.mapper.patient.PatientRegistrationMapper; import com.syjiaer.clinic.server.mapper.patient.PatientRegistrationMapper;
@ -45,11 +46,11 @@ import java.util.List;
@Service @Service
public class MedicalRecordService extends BaseService { public class MedicalRecordService extends BaseService {
@Autowired @Autowired
private MedicalRecordMapper medicalRecordMapper; private DiagnosisMedicalRecordMapper diagnosisMedicalRecordMapper;
@Autowired @Autowired
private MedicalGoodsListMapper medicalGoodsListMapper; private DiagnosisMedicalGoodsListMapper diagnosisMedicalGoodsListMapper;
@Autowired @Autowired
private MedicalItemListMapper medicalItemListMapper; private DiagnosisMedicalItemListMapper diagnosisMedicalItemListMapper;
@Autowired @Autowired
private OrganizationMemberMapper organizationMemberMapper; private OrganizationMemberMapper organizationMemberMapper;
@Autowired @Autowired
@ -66,7 +67,8 @@ public class MedicalRecordService extends BaseService {
private Config config; private Config config;
@Autowired @Autowired
private SocialRequest socialRequest; private SocialRequest socialRequest;
@Autowired
private DiagnosisMapper diagnosisMapper;
/* /*
* 保存 * 保存
* @param saveDto 病历信息 * @param saveDto 病历信息
@ -83,47 +85,57 @@ public class MedicalRecordService extends BaseService {
updateRegis.setId(dbRegis.getId()); updateRegis.setId(dbRegis.getId());
updateRegis.setStatus(RegistrationStatusEnum.complete.getType()); updateRegis.setStatus(RegistrationStatusEnum.complete.getType());
patientRegistrationMapper.updateById(updateRegis); patientRegistrationMapper.updateById(updateRegis);
//诊断主表
Diagnosis diagnosis = new Diagnosis();
String code = StringUtil.getCode("ZD");
BeanUtils.copyProperties(saveDto, Diagnosis.class);
if (diagnosis.getId() == null){
diagnosis.setCode(code);
}else {
code = diagnosis.getCode();
}
diagnosisMapper.insertOrUpdate(diagnosis);
//病例表
ManagerUser managerUser = getManagerUser(); ManagerUser managerUser = getManagerUser();
MedicalRecord medicalRecord = new MedicalRecord(); DiagnosisMedicalRecord diagnosisMedicalRecord = new DiagnosisMedicalRecord();
BeanUtils.copyProperties(saveDto, medicalRecord); BeanUtils.copyProperties(saveDto.getDiagnosisMedicalRecord(), diagnosisMedicalRecord);
medicalRecord.setDockerId(managerUser.getId()); diagnosisMedicalRecordMapper.insertOrUpdate(diagnosisMedicalRecord);
medicalRecord.setDockerName(managerUser.getName());
medicalRecordMapper.insertOrUpdate(medicalRecord); //服务项目表
Integer medicalRecordId = medicalRecord.getId(); Integer medicalRecordId = diagnosisMedicalRecord.getId();
List<MedicalItemList> itemLists = new ArrayList<>(); List<DiagnosisMedicalItemList> itemLists = new ArrayList<>();
for (Item item : saveDto.getItemList()) { for (Item item : saveDto.getItemList()) {
Item dbItem = itemMapper.selectById(item.getId()); Item dbItem = itemMapper.selectById(item.getId());
MedicalItemList itemDetail = new MedicalItemList(); DiagnosisMedicalItemList itemDetail = new DiagnosisMedicalItemList();
itemDetail.setDiagnosisCode(code);
itemDetail.setItemId(item.getId()); itemDetail.setItemId(item.getId());
itemDetail.setName(dbItem.getItemName()); itemDetail.setName(dbItem.getItemName());
itemDetail.setSocialCode(dbItem.getItemSocialCode()); itemDetail.setSocialCode(dbItem.getItemSocialCode());
itemDetail.setUnit(dbItem.getUnit()); itemDetail.setUnit(dbItem.getUnit());
itemDetail.setUnitPrice(dbItem.getUnitPrice()); itemDetail.setUnitPrice(dbItem.getUnitPrice());
itemDetail.setMedicalRecordId(medicalRecordId);
itemDetail.setNumber(1); itemDetail.setNumber(1);
itemLists.add(itemDetail); itemLists.add(itemDetail);
} }
medicalItemListMapper.insert(itemLists); diagnosisMedicalItemListMapper.insert(itemLists);
List<MedicalGoodsList> goodsLists = new ArrayList<>(); List<DiagnosisMedicalGoodsList> goodsLists = new ArrayList<>();
for (GoodsRetailDto goodsRetailDto : saveDto.getGoodsList()) { for (GoodsRetailDto goodsRetailDto : saveDto.getGoodsList()) {
Goods dbGoods = goodsMapper.selectById(goodsRetailDto.getId()); Goods dbGoods = goodsMapper.selectById(goodsRetailDto.getId());
MedicalGoodsList goodsDetail = new MedicalGoodsList(); DiagnosisMedicalGoodsList goodsDetail = new DiagnosisMedicalGoodsList();
goodsDetail.setGoodsId(goodsRetailDto.getId()); goodsDetail.setGoodsId(goodsRetailDto.getId());
goodsDetail.setDiagnosisCode(code);
goodsDetail.setName(dbGoods.getName()); goodsDetail.setName(dbGoods.getName());
goodsDetail.setSocialCode(dbGoods.getHilistCode()); goodsDetail.setSocialCode(dbGoods.getHilistCode());
goodsDetail.setUnit(goodsRetailDto.getSelectedUnit()); goodsDetail.setUnit(goodsRetailDto.getSelectedUnit());
goodsDetail.setUnitPrice(goodsRetailDto.getSelectedPrice()); goodsDetail.setUnitPrice(goodsRetailDto.getSelectedPrice());
goodsDetail.setMedicalRecordId(medicalRecordId);
goodsDetail.setNumber(goodsRetailDto.getSelectNum()); goodsDetail.setNumber(goodsRetailDto.getSelectNum());
goodsLists.add(goodsDetail); goodsLists.add(goodsDetail);
} }
medicalGoodsListMapper.insert(goodsLists); diagnosisMedicalGoodsListMapper.insert(goodsLists);
//添加收费单 //添加收费单
// saveDto.setId(medicalRecordId); // saveDto.setId(medicalRecordId);
@ -142,22 +154,22 @@ public class MedicalRecordService extends BaseService {
*/ */
public List<MedicalRecordVo> listByPatientId(Integer patientId) { public List<MedicalRecordVo> listByPatientId(Integer patientId) {
QueryWrapper<MedicalRecord> query = new QueryWrapper<>(); QueryWrapper<DiagnosisMedicalRecord> query = new QueryWrapper<>();
query.eq("patient_id", patientId); query.eq("patient_id", patientId);
query.orderByDesc("create_datetime"); query.orderByDesc("create_datetime");
query.last("limit 10"); query.last("limit 10");
List<MedicalRecord> mrList = medicalRecordMapper.selectList(query); List<DiagnosisMedicalRecord> mrList = diagnosisMedicalRecordMapper.selectList(query);
List<MedicalRecordVo> mrvList = new ArrayList<>(); List<MedicalRecordVo> mrvList = new ArrayList<>();
for (MedicalRecord medicalRecord : mrList) { for (DiagnosisMedicalRecord diagnosisMedicalRecord : mrList) {
QueryWrapper<MedicalItemList> severQuery = new QueryWrapper<>(); QueryWrapper<DiagnosisMedicalItemList> severQuery = new QueryWrapper<>();
MedicalRecordVo vo = new MedicalRecordVo(); MedicalRecordVo vo = new MedicalRecordVo();
BeanUtils.copyProperties(medicalRecord, vo); BeanUtils.copyProperties(diagnosisMedicalRecord, vo);
severQuery.eq("medical_record_id", medicalRecord.getId()); severQuery.eq("medical_record_id", diagnosisMedicalRecord.getId());
List<MedicalItemList> serverDetail = medicalItemListMapper.selectList(severQuery); List<DiagnosisMedicalItemList> serverDetail = diagnosisMedicalItemListMapper.selectList(severQuery);
vo.setServiceDetail(serverDetail); vo.setServiceDetail(serverDetail);
QueryWrapper<MedicalGoodsList> goodsQuery = new QueryWrapper<>(); QueryWrapper<DiagnosisMedicalGoodsList> goodsQuery = new QueryWrapper<>();
severQuery.eq("medical_record_id", medicalRecord.getId()); severQuery.eq("medical_record_id", diagnosisMedicalRecord.getId());
List<MedicalGoodsList> goodsDetail = medicalGoodsListMapper.selectList(goodsQuery); List<DiagnosisMedicalGoodsList> goodsDetail = diagnosisMedicalGoodsListMapper.selectList(goodsQuery);
vo.setGoodsDetail(goodsDetail); vo.setGoodsDetail(goodsDetail);
mrvList.add(vo); mrvList.add(vo);
} }
@ -170,36 +182,41 @@ public class MedicalRecordService extends BaseService {
* @return * @return
*/ */
public MedicalRecordVo getDetailByRegisId(Integer regisId) { public MedicalRecordVo getDetailByRegisId(Integer regisId) {
QueryWrapper<MedicalRecord> query = new QueryWrapper<>(); QueryWrapper<DiagnosisMedicalRecord> query = new QueryWrapper<>();
query.eq("registration_id", regisId); query.eq("registration_id", regisId);
MedicalRecord mr = medicalRecordMapper.selectOne(query); DiagnosisMedicalRecord mr = diagnosisMedicalRecordMapper.selectOne(query);
QueryWrapper<MedicalItemList> severQuery = new QueryWrapper<>(); QueryWrapper<DiagnosisMedicalItemList> severQuery = new QueryWrapper<>();
MedicalRecordVo vo = new MedicalRecordVo(); MedicalRecordVo vo = new MedicalRecordVo();
BeanUtils.copyProperties(mr, vo); BeanUtils.copyProperties(mr, vo);
severQuery.eq("medical_record_id", mr.getId()); severQuery.eq("medical_record_id", mr.getId());
List<MedicalItemList> serverDetail = medicalItemListMapper.selectList(severQuery); List<DiagnosisMedicalItemList> serverDetail = diagnosisMedicalItemListMapper.selectList(severQuery);
vo.setServiceDetail(serverDetail); vo.setServiceDetail(serverDetail);
QueryWrapper<MedicalGoodsList> goodsQuery = new QueryWrapper<>(); QueryWrapper<DiagnosisMedicalGoodsList> goodsQuery = new QueryWrapper<>();
goodsQuery.eq("medical_record_id", mr.getId()); goodsQuery.eq("medical_record_id", mr.getId());
List<MedicalGoodsList> goodsDetail = medicalGoodsListMapper.selectList(goodsQuery); List<DiagnosisMedicalGoodsList> goodsDetail = diagnosisMedicalGoodsListMapper.selectList(goodsQuery);
vo.setGoodsDetail(goodsDetail); vo.setGoodsDetail(goodsDetail);
return vo; return vo;
} }
public void uploadDiagnosis(Integer medicalRecordId){ public void uploadDiagnosis(String diagnosisCode){
MedicalRecord medicalRecord = medicalRecordMapper.selectById(medicalRecordId); Diagnosis diagnosis = diagnosisMapper.selectByCode(diagnosisCode);
if (medicalRecord == null){ if (diagnosis == null){
throw new MessageException("诊断不存在");
}
DiagnosisMedicalRecord diagnosisMedicalRecord = diagnosisMedicalRecordMapper.selectByDiagnosisCode(diagnosisCode);
if (diagnosisMedicalRecord == null){
throw new MessageException("病历不存在"); throw new MessageException("病历不存在");
} }
PatientRegistration patientRegistration = patientRegistrationMapper.selectById(medicalRecord.getRegistrationId()); PatientRegistration patientRegistration = patientRegistrationMapper.selectById(diagnosis.getRegistrationId());
if (patientRegistration == null){ if (patientRegistration == null){
throw new MessageException("挂号单不存在"); throw new MessageException("挂号单不存在");
} }
OrganizationSection section = organizationSectionMapper.selectById(patientRegistration.getOrganizationSectionId()); OrganizationSection section = organizationSectionMapper.selectById(patientRegistration.getOrganizationSectionId());
OrganizationMember doctor = organizationMemberMapper.selectById(patientRegistration.getOrganizationDoctorId()); OrganizationMember doctor = organizationMemberMapper.selectById(patientRegistration.getOrganizationDoctorId());
List<MedicalGoodsList> goodsLists = medicalGoodsListMapper.listByMedicalRecordId(medicalRecordId); List<DiagnosisMedicalGoodsList> goodsLists = diagnosisMedicalGoodsListMapper.listByDiagnosisCode(diagnosisCode);
List<MedicalItemList> itemLists = medicalItemListMapper.listByMedicalRecordId(medicalRecordId); List<DiagnosisMedicalItemList> itemLists = diagnosisMedicalItemListMapper.listByDiagnosisCode(diagnosisCode);
LocalDateTime curTime = LocalDateTime.now(); LocalDateTime curTime = LocalDateTime.now();
IM2203A im2203A = new IM2203A(); IM2203A im2203A = new IM2203A();
@ -209,14 +226,14 @@ public class MedicalRecordService extends BaseService {
mdtrtinfo.setMed_type(config.get("social","medType")); mdtrtinfo.setMed_type(config.get("social","medType"));
mdtrtinfo.setBegntime(curTime); mdtrtinfo.setBegntime(curTime);
im2203A.setMdtrtinfo(mdtrtinfo); im2203A.setMdtrtinfo(mdtrtinfo);
JSONArray jsonArray = JSONArray.parseArray(medicalRecord.getDiagnosisDetail()); JSONArray jsonArray = JSONArray.parseArray(diagnosisMedicalRecord.getDiagnosisDetail());
int i =0; int i =0;
List<IM2203A.Diseinfo> diagList = new ArrayList<>(); List<IM2203A.Diseinfo> diagList = new ArrayList<>();
for (Object object : jsonArray){ for (Object object : jsonArray){
i++; i++;
JSONObject json = (JSONObject) object; JSONObject json = (JSONObject) object;
IM2203A.Diseinfo diag = new IM2203A.Diseinfo(); IM2203A.Diseinfo diag = new IM2203A.Diseinfo();
diag.setDiag_type(medicalRecord.getDiagType()); diag.setDiag_type(diagnosisMedicalRecord.getDiagType());
diag.setDiag_srt_no(BigDecimal.valueOf(i)); diag.setDiag_srt_no(BigDecimal.valueOf(i));
diag.setDiag_code(json.getString("code")); diag.setDiag_code(json.getString("code"));
diag.setDiag_name(json.getString("name")); diag.setDiag_name(json.getString("name"));

View File

@ -358,4 +358,10 @@ public class GoodsService {
} }
return goodsMapper.selectById(goodsId); return goodsMapper.selectById(goodsId);
} }
public List<Goods> list(QueryWrapper<Goods> goodsQuery) {
return goodsMapper.selectList(goodsQuery);
}
} }

View File

@ -7,6 +7,7 @@ import com.syjiaer.clinic.server.common.util.DictoryUtil;
import com.syjiaer.clinic.server.common.util.HttpUtil; import com.syjiaer.clinic.server.common.util.HttpUtil;
import com.syjiaer.clinic.server.entity.social.SocialChronicDisease; import com.syjiaer.clinic.server.entity.social.SocialChronicDisease;
import com.syjiaer.clinic.server.entity.social.SocialDiagnose; import com.syjiaer.clinic.server.entity.social.SocialDiagnose;
import com.syjiaer.clinic.server.entity.social.SocialDirectory;
import com.syjiaer.clinic.server.entity.social.SocialItem; import com.syjiaer.clinic.server.entity.social.SocialItem;
import com.syjiaer.clinic.server.mapper.social.SocialDiagnoseMapper; import com.syjiaer.clinic.server.mapper.social.SocialDiagnoseMapper;
import com.syjiaer.clinic.server.mapper.social.SocialItemMapper; import com.syjiaer.clinic.server.mapper.social.SocialItemMapper;
@ -56,4 +57,19 @@ public class SocialDiagnoseService {
socialDirectoryVersionService.setSocialDirectoryVersion(type, version_name, list.get(0).getVersionName(), list.size()); socialDirectoryVersionService.setSocialDirectoryVersion(type, version_name, list.get(0).getVersionName(), list.size());
return list.get(0).getVersionName(); return list.get(0).getVersionName();
} }
/**
* 搜索诊断列表
*
* @param keyword
* @return
*/
public List<SocialDiagnose> getDiagnosis(String keyword) {
QueryWrapper<SocialDiagnose> queryWrapper = new QueryWrapper<>();
if (keyword != null && !keyword.isEmpty()) {
queryWrapper.and(wrapper -> wrapper.like("name", keyword).or().like("code", keyword));
}
queryWrapper.last("limit 20");
return socialDiagnoseMapper.selectList(queryWrapper);
}
} }

View File

@ -395,20 +395,5 @@ public class SocialDirectoryService extends BaseService {
} }
/**
* 搜索诊断列表
*
* @param keyword
* @return
*/
public List<SocialDirectory> getDiagnosis(String keyword) {
QueryWrapper<SocialDirectory> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("type", 1307);
if (keyword != null && !keyword.isEmpty()) {
queryWrapper.and(wrapper -> wrapper.like("name", keyword).or().like("code", keyword).or().like("keyword", keyword));
}
queryWrapper.select("code", "name", "data");
queryWrapper.last("limit 20");
return socialDirectoryMapper.selectList(queryWrapper);
}
} }

View File

@ -0,0 +1,19 @@
package com.syjiaer.clinic.server.service.statistics;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.syjiaer.clinic.server.service.BaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
public class StatisticsService extends BaseService {
}

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.syjiaer.clinic.server.mapper.charge.ChargeServiceListMapper"> <mapper namespace="com.syjiaer.clinic.server.mapper.charge.ChargeItemListMapper">
</mapper> </mapper>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.syjiaer.clinic.server.mapper.medical.MedicalRecordMapper"> <mapper namespace="com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMapper">
</mapper> </mapper>

View File

@ -0,0 +1,5 @@
<?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.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalGoodsListMapper">
</mapper>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.syjiaer.clinic.server.mapper.medical.MedicalGoodsListMapper"> <mapper namespace="com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalItemListMapper">
</mapper> </mapper>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.syjiaer.clinic.server.mapper.medical.MedicalItemListMapper"> <mapper namespace="com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalRecordMapper">
</mapper> </mapper>

View File

@ -1,16 +1,11 @@
package com.syjiaer.clinic.server; package com.syjiaer.clinic.server;
import com.syjiaer.clinic.server.common.api.input.IM2203A; import com.syjiaer.clinic.server.service.diagnosis.MedicalRecordService;
import com.syjiaer.clinic.server.service.medical.MedicalRecordService;
import com.syjiaer.clinic.server.service.social.SocialDiagnoseService; import com.syjiaer.clinic.server.service.social.SocialDiagnoseService;
import com.syjiaer.clinic.server.service.social.SocialDirectoryService;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
import java.util.Map;
@SpringBootTest @SpringBootTest
class ServerApplicationTests { class ServerApplicationTests {