This commit is contained in:
LiJianZhao 2025-04-24 10:13:36 +08:00
parent 18cd243e5f
commit 4237959387
41 changed files with 600 additions and 334 deletions

View File

@ -18,8 +18,9 @@ public class ChargeController extends BaseController {
@RequestMapping("/save")
public Result<Object> save() {
ChargeOrderDto dto = parmsUtil.getObject("data", ChargeOrderDto.class);
ChargeOrder chargeOrder = chargeService.updateOrCreate(dto);
return success(chargeOrder.getId());
// ChargeOrder chargeOrder = chargeService.updateOrCreate(dto);
// return success(chargeOrder.getId());
return success();
}
@RequestMapping("/list")

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.controller.BaseController;
import com.syjiaer.clinic.server.entity.medical.dto.MedicalRecordSaveDto;
import com.syjiaer.clinic.server.entity.medical.dto.MedicalRecordVo;
import com.syjiaer.clinic.server.service.medical.MedicalRecordService;
import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordSaveDto;
import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordVo;
import com.syjiaer.clinic.server.service.diagnosis.MedicalRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
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;
/**
* <p>
*
* 收费服务详情
* </p>
*
* @author NiuZiYuan
* @since 2025-04-22
* @since 2025-04-24
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("charge_service_list")
@ApiModel(value = "ChargeServiceList对象", description = "")
public class ChargeServiceList implements Serializable {
@TableName("charge_item_list")
@ApiModel(value = "ChargeItemList对象", description = "收费服务详情")
public class ChargeItemList implements Serializable {
private static final long serialVersionUID = 1L;

View File

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

View File

@ -1,9 +1,7 @@
package com.syjiaer.clinic.server.entity.charge.vo;
import com.syjiaer.clinic.server.entity.charge.ChargeGoodsList;
import com.syjiaer.clinic.server.entity.charge.ChargeServiceList;
import com.syjiaer.clinic.server.entity.medical.MedicalRecord;
import com.syjiaer.clinic.server.entity.medical.dto.MedicalRecordVo;
import com.syjiaer.clinic.server.entity.charge.ChargeItemList;
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalRecord;
import com.syjiaer.clinic.server.entity.patient.PatientInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -55,12 +53,12 @@ public class ChargeDetailVo {
@ApiModelProperty("患者姓名")
private String patientName;
@ApiModelProperty
private MedicalRecord medicalRecord;
private DiagnosisMedicalRecord diagnosisMedicalRecord;
@ApiModelProperty("患者信息")
private PatientInfo patientInfo;
@ApiModelProperty("诊疗服务")
private List<ChargeServiceList> serviceDetail;
private List<ChargeItemList> serviceDetail;
@ApiModelProperty("药品耗材")
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.TableId;
@ -13,19 +13,19 @@ import lombok.ToString;
import lombok.experimental.Accessors;
/**
* <p>
*
* 病例商品详情
* </p>
*
* @author NiuZiYuan
* @since 2025-04-23
* @since 2025-04-24
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("medical_goods_list")
@ApiModel(value = "MedicalGoodsList对象", description = "")
public class MedicalGoodsList implements Serializable {
@TableName("diagnosis_medical_goods_list")
@ApiModel(value = "DiagnosisMedicalGoodsList对象", description = "病例商品详情")
public class DiagnosisMedicalGoodsList implements Serializable {
private static final long serialVersionUID = 1L;
@ -48,8 +48,8 @@ public class MedicalGoodsList implements Serializable {
@ApiModelProperty("商品单价")
private BigDecimal unitPrice;
@ApiModelProperty("病例id")
private Integer medicalRecordId;
@ApiModelProperty("诊断code")
private String diagnosisCode;
@ApiModelProperty("药品数量")
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.TableId;
@ -13,19 +13,19 @@ import lombok.ToString;
import lombok.experimental.Accessors;
/**
* <p>
*
* 病例服务详情
* </p>
*
* @author NiuZiYuan
* @since 2025-04-23
* @since 2025-04-24
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("medical_item_list")
@ApiModel(value = "MedicalItemList对象", description = "")
public class MedicalItemList implements Serializable {
@TableName("diagnosis_medical_item_list")
@ApiModel(value = "DiagnosisMedicalItemList对象", description = "病例服务详情")
public class DiagnosisMedicalItemList implements Serializable {
private static final long serialVersionUID = 1L;
@ -48,8 +48,8 @@ public class MedicalItemList implements Serializable {
@ApiModelProperty("服务单价")
private BigDecimal unitPrice;
@ApiModelProperty("病例id")
private Integer medicalRecordId;
@ApiModelProperty("诊断code")
private String diagnosisCode;
@ApiModelProperty("药品数量")
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.TableId;
@ -17,15 +17,15 @@ import lombok.experimental.Accessors;
* </p>
*
* @author NiuZiYuan
* @since 2025-04-23
* @since 2025-04-24
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("medical_record")
@ApiModel(value = "MedicalRecord对象", description = "病例")
public class MedicalRecord implements Serializable {
@TableName("diagnosis_medical_record")
@ApiModel(value = "DiagnosisMedicalRecord对象", description = "病例")
public class DiagnosisMedicalRecord implements Serializable {
private static final long serialVersionUID = 1L;
@ -33,9 +33,6 @@ public class MedicalRecord implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty("患者id")
private Integer patientId;
@ApiModelProperty("主诉")
private String mainAppeal;
@ -54,12 +51,6 @@ public class MedicalRecord implements Serializable {
@ApiModelProperty("非通用字段")
private String json;
@ApiModelProperty("接诊医生id")
private Integer dockerId;
@ApiModelProperty("接诊医生姓名")
private String dockerName;
@ApiModelProperty("诊断详细数据")
private String diagnosisDetail;
@ -69,9 +60,9 @@ public class MedicalRecord implements Serializable {
@ApiModelProperty("创建日期")
private LocalDateTime createDatetime;
@ApiModelProperty("挂单id")
private Integer registrationId;
@ApiModelProperty("诊断类别")
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 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.TableId;
import com.syjiaer.clinic.server.entity.medical.MedicalGoodsList;
import com.syjiaer.clinic.server.entity.medical.MedicalItemList;
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalGoodsList;
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalItemList;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@ -56,7 +56,7 @@ public class MedicalRecordVo {
@ApiModelProperty("挂单id")
private Integer registrationId;
@ApiModelProperty("诊疗服务")
private List<MedicalItemList> serviceDetail;
private List<DiagnosisMedicalItemList> serviceDetail;
@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.vo.Page;
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.ChargeServiceList;
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.vo.ChargeDetailVo;
import com.syjiaer.clinic.server.entity.charge.vo.ChargeGoodsListVo;
import com.syjiaer.clinic.server.entity.goods.Goods;
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.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.patient.PatientInfo;
import com.syjiaer.clinic.server.entity.patient.PatientRegistration;
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.ChargeServiceListMapper;
import com.syjiaer.clinic.server.mapper.goods.GoodsMapper;
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.OrganizationSectionMapper;
import com.syjiaer.clinic.server.mapper.patient.PatientInfoMapper;
import com.syjiaer.clinic.server.service.BaseService;
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 org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -50,14 +44,12 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import static com.syjiaer.clinic.server.common.enums.MedicalRecordDetailTypeEnum.goods;
@Service
public class ChargeService extends BaseService {
@Autowired
private ChargeOrderMapper chargeOrderMapper;
@Autowired
private ChargeServiceListMapper chargeServiceListMapper;
private ChargeItemListMapper chargeItemListMapper;
@Autowired
private ChargeGoodsListMapper chargeGoodsListMapper;
@Autowired
@ -65,7 +57,7 @@ public class ChargeService extends BaseService {
@Autowired
private PatientInfoMapper patientInfoMapper;
@Autowired
private MedicalRecordMapper medicalRecordMapper;
private DiagnosisMedicalRecordMapper diagnosisMedicalRecordMapper;
@Autowired
private OrganizationMemberMapper organizationMemberMapper;
@Autowired
@ -84,7 +76,7 @@ public class ChargeService extends BaseService {
ChargeOrder dbOrder = chargeOrderMapper.selectById(dto.getId());
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()));
chargeOrderMapper.deleteById(dbOrder.getId());
}
@ -95,9 +87,9 @@ public class ChargeService extends BaseService {
LocalDateTime nowLocalDateTime = LocalDateTime.now();
BigDecimal preTotalPrice = BigDecimal.ZERO;
BigDecimal totalPrice = BigDecimal.ZERO;
List<ChargeServiceList> chargeServiceLists = new ArrayList<>();
for (ChargeServiceList service : dto.getServiceDetail()){
ChargeServiceList itemList = new ChargeServiceList();
List<ChargeItemList> chargeServiceLists = new ArrayList<>();
for (ChargeItemList service : dto.getServiceDetail()){
ChargeItemList itemList = new ChargeItemList();
String fsn = StringUtil.getCode("FSN");
itemList.setChargeOrderCode(code);
itemList.setServiceId(service.getId());
@ -116,7 +108,7 @@ public class ChargeService extends BaseService {
preTotalPrice = preTotalPrice.add(service.getUnitPrice());
totalPrice = totalPrice.add(service.getUnitPrice());
}
chargeServiceListMapper.insert(chargeServiceLists);
chargeItemListMapper.insert(chargeServiceLists);
List<ChargeGoodsList> chargeGoodsLists = new ArrayList<>();
for (ChargeGoodsListVo goods : dto.getGoodsDetail()){
@ -156,7 +148,7 @@ public class ChargeService extends BaseService {
chargeOrder.setStatus(RetailOrderStatusEnum.UNFINISHED.getCode());
chargeOrder.setPatientId(dto.getPatientInfo().getId());
chargeOrder.setSalePersonId(user.getId());
chargeOrder.setMedicalRecordId(dto.getMedicalRecord().getId());
chargeOrder.setMedicalRecordId(dto.getDiagnosisMedicalRecord().getId());
chargeOrderMapper.insert(chargeOrder);
return chargeOrder;
@ -179,9 +171,9 @@ public class ChargeService extends BaseService {
for (ChargeOrder chargeOrder : orderPage.getList()){
ChargeDetailVo detailVo = new ChargeDetailVo();
BeanUtils.copyProperties(chargeOrder, detailVo);
detailVo.setMedicalRecord(medicalRecordMapper.selectById(chargeOrder.getMedicalRecordId()));
detailVo.setDiagnosisMedicalRecord(diagnosisMedicalRecordMapper.selectById(chargeOrder.getMedicalRecordId()));
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())));
detailVo.setGoodsDetail(chargeGoodsListMapper.selectDetailByCode(chargeOrder.getCode()));
@ -194,27 +186,27 @@ public class ChargeService extends BaseService {
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.getMedicalRecord().getDockerId() == null || dto.getMedicalRecord().getDiagnosisDetail() == null){
throw new MessageException("诊断信息和医生不能为空");
}
//添加挂号信息
OrganizationMember docker = organizationMemberMapper.selectById(dto.getMedicalRecord().getDockerId());
PatientRegistration registration = patientRegistrationService.regisByDockerAndPatient(docker,patientInfo, (short) 1,1);
//todo 添加病例
medicalRecordMapper.insertOrUpdate(dto.getMedicalRecord());
//添加订单
return chargeService.save(dto);
}
// @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){
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.JSONObject;
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.request.SocialRequest;
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.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.item.Item;
import com.syjiaer.clinic.server.entity.manager.ManagerUser;
import com.syjiaer.clinic.server.entity.medical.MedicalGoodsList;
import com.syjiaer.clinic.server.entity.medical.MedicalItemList;
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.medical.dto.MedicalRecordVo;
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalGoodsList;
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalItemList;
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalRecord;
import com.syjiaer.clinic.server.entity.diagnosis.dto.GoodsRetailDto;
import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordSaveDto;
import com.syjiaer.clinic.server.entity.diagnosis.dto.MedicalRecordVo;
import com.syjiaer.clinic.server.entity.organization.OrganizationMember;
import com.syjiaer.clinic.server.entity.organization.OrganizationSection;
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.item.ItemMapper;
import com.syjiaer.clinic.server.mapper.medical.MedicalGoodsListMapper;
import com.syjiaer.clinic.server.mapper.medical.MedicalItemListMapper;
import com.syjiaer.clinic.server.mapper.medical.MedicalRecordMapper;
import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalGoodsListMapper;
import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalItemListMapper;
import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalRecordMapper;
import com.syjiaer.clinic.server.mapper.organization.OrganizationMemberMapper;
import com.syjiaer.clinic.server.mapper.organization.OrganizationSectionMapper;
import com.syjiaer.clinic.server.mapper.patient.PatientRegistrationMapper;
@ -45,11 +46,11 @@ import java.util.List;
@Service
public class MedicalRecordService extends BaseService {
@Autowired
private MedicalRecordMapper medicalRecordMapper;
private DiagnosisMedicalRecordMapper diagnosisMedicalRecordMapper;
@Autowired
private MedicalGoodsListMapper medicalGoodsListMapper;
private DiagnosisMedicalGoodsListMapper diagnosisMedicalGoodsListMapper;
@Autowired
private MedicalItemListMapper medicalItemListMapper;
private DiagnosisMedicalItemListMapper diagnosisMedicalItemListMapper;
@Autowired
private OrganizationMemberMapper organizationMemberMapper;
@Autowired
@ -66,7 +67,8 @@ public class MedicalRecordService extends BaseService {
private Config config;
@Autowired
private SocialRequest socialRequest;
@Autowired
private DiagnosisMapper diagnosisMapper;
/*
* 保存
* @param saveDto 病历信息
@ -83,47 +85,57 @@ public class MedicalRecordService extends BaseService {
updateRegis.setId(dbRegis.getId());
updateRegis.setStatus(RegistrationStatusEnum.complete.getType());
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();
MedicalRecord medicalRecord = new MedicalRecord();
BeanUtils.copyProperties(saveDto, medicalRecord);
medicalRecord.setDockerId(managerUser.getId());
medicalRecord.setDockerName(managerUser.getName());
medicalRecordMapper.insertOrUpdate(medicalRecord);
Integer medicalRecordId = medicalRecord.getId();
List<MedicalItemList> itemLists = new ArrayList<>();
DiagnosisMedicalRecord diagnosisMedicalRecord = new DiagnosisMedicalRecord();
BeanUtils.copyProperties(saveDto.getDiagnosisMedicalRecord(), diagnosisMedicalRecord);
diagnosisMedicalRecordMapper.insertOrUpdate(diagnosisMedicalRecord);
//服务项目表
Integer medicalRecordId = diagnosisMedicalRecord.getId();
List<DiagnosisMedicalItemList> itemLists = new ArrayList<>();
for (Item item : saveDto.getItemList()) {
Item dbItem = itemMapper.selectById(item.getId());
MedicalItemList itemDetail = new MedicalItemList();
DiagnosisMedicalItemList itemDetail = new DiagnosisMedicalItemList();
itemDetail.setDiagnosisCode(code);
itemDetail.setItemId(item.getId());
itemDetail.setName(dbItem.getItemName());
itemDetail.setSocialCode(dbItem.getItemSocialCode());
itemDetail.setUnit(dbItem.getUnit());
itemDetail.setUnitPrice(dbItem.getUnitPrice());
itemDetail.setMedicalRecordId(medicalRecordId);
itemDetail.setNumber(1);
itemLists.add(itemDetail);
}
medicalItemListMapper.insert(itemLists);
diagnosisMedicalItemListMapper.insert(itemLists);
List<MedicalGoodsList> goodsLists = new ArrayList<>();
List<DiagnosisMedicalGoodsList> goodsLists = new ArrayList<>();
for (GoodsRetailDto goodsRetailDto : saveDto.getGoodsList()) {
Goods dbGoods = goodsMapper.selectById(goodsRetailDto.getId());
MedicalGoodsList goodsDetail = new MedicalGoodsList();
DiagnosisMedicalGoodsList goodsDetail = new DiagnosisMedicalGoodsList();
goodsDetail.setGoodsId(goodsRetailDto.getId());
goodsDetail.setDiagnosisCode(code);
goodsDetail.setName(dbGoods.getName());
goodsDetail.setSocialCode(dbGoods.getHilistCode());
goodsDetail.setUnit(goodsRetailDto.getSelectedUnit());
goodsDetail.setUnitPrice(goodsRetailDto.getSelectedPrice());
goodsDetail.setMedicalRecordId(medicalRecordId);
goodsDetail.setNumber(goodsRetailDto.getSelectNum());
goodsLists.add(goodsDetail);
}
medicalGoodsListMapper.insert(goodsLists);
diagnosisMedicalGoodsListMapper.insert(goodsLists);
//添加收费单
// saveDto.setId(medicalRecordId);
@ -142,22 +154,22 @@ public class MedicalRecordService extends BaseService {
*/
public List<MedicalRecordVo> listByPatientId(Integer patientId) {
QueryWrapper<MedicalRecord> query = new QueryWrapper<>();
QueryWrapper<DiagnosisMedicalRecord> query = new QueryWrapper<>();
query.eq("patient_id", patientId);
query.orderByDesc("create_datetime");
query.last("limit 10");
List<MedicalRecord> mrList = medicalRecordMapper.selectList(query);
List<DiagnosisMedicalRecord> mrList = diagnosisMedicalRecordMapper.selectList(query);
List<MedicalRecordVo> mrvList = new ArrayList<>();
for (MedicalRecord medicalRecord : mrList) {
QueryWrapper<MedicalItemList> severQuery = new QueryWrapper<>();
for (DiagnosisMedicalRecord diagnosisMedicalRecord : mrList) {
QueryWrapper<DiagnosisMedicalItemList> severQuery = new QueryWrapper<>();
MedicalRecordVo vo = new MedicalRecordVo();
BeanUtils.copyProperties(medicalRecord, vo);
severQuery.eq("medical_record_id", medicalRecord.getId());
List<MedicalItemList> serverDetail = medicalItemListMapper.selectList(severQuery);
BeanUtils.copyProperties(diagnosisMedicalRecord, vo);
severQuery.eq("medical_record_id", diagnosisMedicalRecord.getId());
List<DiagnosisMedicalItemList> serverDetail = diagnosisMedicalItemListMapper.selectList(severQuery);
vo.setServiceDetail(serverDetail);
QueryWrapper<MedicalGoodsList> goodsQuery = new QueryWrapper<>();
severQuery.eq("medical_record_id", medicalRecord.getId());
List<MedicalGoodsList> goodsDetail = medicalGoodsListMapper.selectList(goodsQuery);
QueryWrapper<DiagnosisMedicalGoodsList> goodsQuery = new QueryWrapper<>();
severQuery.eq("medical_record_id", diagnosisMedicalRecord.getId());
List<DiagnosisMedicalGoodsList> goodsDetail = diagnosisMedicalGoodsListMapper.selectList(goodsQuery);
vo.setGoodsDetail(goodsDetail);
mrvList.add(vo);
}
@ -170,36 +182,41 @@ public class MedicalRecordService extends BaseService {
* @return
*/
public MedicalRecordVo getDetailByRegisId(Integer regisId) {
QueryWrapper<MedicalRecord> query = new QueryWrapper<>();
QueryWrapper<DiagnosisMedicalRecord> query = new QueryWrapper<>();
query.eq("registration_id", regisId);
MedicalRecord mr = medicalRecordMapper.selectOne(query);
QueryWrapper<MedicalItemList> severQuery = new QueryWrapper<>();
DiagnosisMedicalRecord mr = diagnosisMedicalRecordMapper.selectOne(query);
QueryWrapper<DiagnosisMedicalItemList> severQuery = new QueryWrapper<>();
MedicalRecordVo vo = new MedicalRecordVo();
BeanUtils.copyProperties(mr, vo);
severQuery.eq("medical_record_id", mr.getId());
List<MedicalItemList> serverDetail = medicalItemListMapper.selectList(severQuery);
List<DiagnosisMedicalItemList> serverDetail = diagnosisMedicalItemListMapper.selectList(severQuery);
vo.setServiceDetail(serverDetail);
QueryWrapper<MedicalGoodsList> goodsQuery = new QueryWrapper<>();
QueryWrapper<DiagnosisMedicalGoodsList> goodsQuery = new QueryWrapper<>();
goodsQuery.eq("medical_record_id", mr.getId());
List<MedicalGoodsList> goodsDetail = medicalGoodsListMapper.selectList(goodsQuery);
List<DiagnosisMedicalGoodsList> goodsDetail = diagnosisMedicalGoodsListMapper.selectList(goodsQuery);
vo.setGoodsDetail(goodsDetail);
return vo;
}
public void uploadDiagnosis(Integer medicalRecordId){
MedicalRecord medicalRecord = medicalRecordMapper.selectById(medicalRecordId);
if (medicalRecord == null){
public void uploadDiagnosis(String diagnosisCode){
Diagnosis diagnosis = diagnosisMapper.selectByCode(diagnosisCode);
if (diagnosis == null){
throw new MessageException("诊断不存在");
}
DiagnosisMedicalRecord diagnosisMedicalRecord = diagnosisMedicalRecordMapper.selectByDiagnosisCode(diagnosisCode);
if (diagnosisMedicalRecord == null){
throw new MessageException("病历不存在");
}
PatientRegistration patientRegistration = patientRegistrationMapper.selectById(medicalRecord.getRegistrationId());
PatientRegistration patientRegistration = patientRegistrationMapper.selectById(diagnosis.getRegistrationId());
if (patientRegistration == null){
throw new MessageException("挂号单不存在");
}
OrganizationSection section = organizationSectionMapper.selectById(patientRegistration.getOrganizationSectionId());
OrganizationMember doctor = organizationMemberMapper.selectById(patientRegistration.getOrganizationDoctorId());
List<MedicalGoodsList> goodsLists = medicalGoodsListMapper.listByMedicalRecordId(medicalRecordId);
List<MedicalItemList> itemLists = medicalItemListMapper.listByMedicalRecordId(medicalRecordId);
List<DiagnosisMedicalGoodsList> goodsLists = diagnosisMedicalGoodsListMapper.listByDiagnosisCode(diagnosisCode);
List<DiagnosisMedicalItemList> itemLists = diagnosisMedicalItemListMapper.listByDiagnosisCode(diagnosisCode);
LocalDateTime curTime = LocalDateTime.now();
IM2203A im2203A = new IM2203A();
@ -209,14 +226,14 @@ public class MedicalRecordService extends BaseService {
mdtrtinfo.setMed_type(config.get("social","medType"));
mdtrtinfo.setBegntime(curTime);
im2203A.setMdtrtinfo(mdtrtinfo);
JSONArray jsonArray = JSONArray.parseArray(medicalRecord.getDiagnosisDetail());
JSONArray jsonArray = JSONArray.parseArray(diagnosisMedicalRecord.getDiagnosisDetail());
int i =0;
List<IM2203A.Diseinfo> diagList = new ArrayList<>();
for (Object object : jsonArray){
i++;
JSONObject json = (JSONObject) object;
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_code(json.getString("code"));
diag.setDiag_name(json.getString("name"));

View File

@ -358,4 +358,10 @@ public class GoodsService {
}
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.entity.social.SocialChronicDisease;
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.mapper.social.SocialDiagnoseMapper;
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());
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"?>
<!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>

View File

@ -1,5 +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.medical.MedicalRecordMapper">
<mapper namespace="com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMapper">
</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"?>
<!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>

View File

@ -1,5 +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.medical.MedicalItemListMapper">
<mapper namespace="com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalRecordMapper">
</mapper>

View File

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