版本更新

This commit is contained in:
Zhang.WH
2025-10-16 17:17:24 +08:00
parent d23a594a4b
commit f515bb8fbb
600 changed files with 7881 additions and 35954 deletions

View File

@@ -123,4 +123,7 @@ public class MedicationDispense extends HisBaseEntity {
/** 追溯码 */
private String traceNo;
/** 执行id */
private Long procedureId;
}

View File

@@ -233,4 +233,10 @@ public class MedicationRequest extends HisBaseEntity {
* 签发编码
*/
private String signCode;
/** 请求基于什么 */
private String basedOnTable;
/** 请求基于什么的ID */
private Long basedOnId;
}

View File

@@ -2,11 +2,11 @@ package com.openhis.medication.service;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Practitioner;
import com.openhis.medication.domain.MedicationDispense;
import com.openhis.medication.domain.MedicationRequest;
import org.apache.ibatis.annotations.Param;
/**
* 药品发放管理Service接口
@@ -24,6 +24,14 @@ public interface IMedicationDispenseService extends IService<MedicationDispense>
*/
void handleMedicationDispense(MedicationRequest medicationRequest, String dbOpType);
/**
* 医嘱执行生成药品发放,状态为待配药
*
* @param medicationRequest 药品医嘱请求
* @param procedureId 执行记录id
*/
void generateMedicationDispense(MedicationRequest medicationRequest,Long procedureId);
/**
* 删除药品发放信息
*
@@ -68,6 +76,7 @@ public interface IMedicationDispenseService extends IService<MedicationDispense>
* @return 发放信息
*/
List<MedicationDispense> selectByRequestIdList(List<Long> requestIdList);
/**
* 通过id获取药品发放信息
*
@@ -82,4 +91,12 @@ public interface IMedicationDispenseService extends IService<MedicationDispense>
* @param medDispenseId 发放id列表
*/
void updateDispenseStatusSummarized(List<Long> medDispenseId);
/**
* 通过执行id获取药品发放信息
*
* @param procedureIdList 执行id列表
* @return 发放信息
*/
List<MedicationDispense> getMedDispenseByProcedureId(List<Long> procedureIdList);
}

View File

@@ -105,6 +105,69 @@ public class MedicationDispenseServiceImpl extends ServiceImpl<MedicationDispens
}
}
/**
* 医嘱执行生成药品发放,状态为待配药
*
* @param medicationRequest 药品医嘱请求
* @param procedureId 执行记录id
*/
@Override
public void generateMedicationDispense(MedicationRequest medicationRequest, Long procedureId) {
MedicationDispense medicationDispense = new MedicationDispense();
// 执行id
medicationDispense.setProcedureId(procedureId);
// 药品发放id
medicationDispense.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_DIS_NO.getPrefix(), 4));
// 药品发放状态
medicationDispense.setStatusEnum(DispenseStatus.PREPARATION.getValue());
// 状态变更时间
medicationDispense.setStatusChangedTime(DateUtils.getNowDate());
// 发药类型
medicationDispense.setDispenseEnum(medicationRequest.getCategoryEnum());
// 药品编码
medicationDispense.setMedicationId(medicationRequest.getMedicationId());
// 请求数量
medicationDispense.setQuantity(medicationRequest.getQuantity());
// 请求单位编码
medicationDispense.setUnitCode(medicationRequest.getUnitCode());
// 产品批号
medicationDispense.setLotNumber(medicationRequest.getLotNumber());
// 患者id
medicationDispense.setPatientId(medicationRequest.getPatientId());
// 就诊id
medicationDispense.setEncounterId(medicationRequest.getEncounterId());
// 支持用药信息
medicationDispense.setSupportInfo(medicationRequest.getSupportInfo());
// 发药人
medicationDispense.setPractitionerId(medicationRequest.getPractitionerId());
// 发放药房
medicationDispense.setLocationId(medicationRequest.getPerformLocation());
// 药品请求id
medicationDispense.setMedReqId(medicationRequest.getId());
// 已发药数量
medicationDispense.setDispenseQuantity(BigDecimal.ZERO);
// 用法
medicationDispense.setMethodCode(medicationRequest.getMethodCode());
// 用药频次
medicationDispense.setFrequencyCode(medicationRequest.getRateCode());
// 单次剂量
medicationDispense.setDose(medicationRequest.getDose());
// 剂量单位
medicationDispense.setDoseUnitCode(medicationRequest.getDoseUnitCode());
// 单次最大剂量
medicationDispense.setMaxUnit(medicationRequest.getMaxDose());
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 增加12小时
LocalDateTime newTime = now.plusHours(12);
// 转换为Date对象如果需要保持使用Date类型
Date limitTime = Date.from(newTime.atZone(ZoneId.systemDefault()).toInstant());
// 设置限制发药时间
medicationDispense.setLimitTime(limitTime);
baseMapper.insert(medicationDispense);
}
/**
* 删除药品发放信息
*
@@ -209,4 +272,17 @@ public class MedicationDispenseServiceImpl extends ServiceImpl<MedicationDispens
.set(MedicationDispense::getStatusChangedTime, DateUtils.getNowDate())
.in(MedicationDispense::getId, medDispenseId));
}
/**
* 通过执行id获取药品发放信息
*
* @param procedureIdList 执行id列表
* @return 发放信息
*/
@Override
public List<MedicationDispense> getMedDispenseByProcedureId(List<Long> procedureIdList) {
return baseMapper.selectList(
new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getProcedureId, procedureIdList)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
}
}