版本更新
This commit is contained in:
@@ -123,4 +123,7 @@ public class MedicationDispense extends HisBaseEntity {
|
||||
|
||||
/** 追溯码 */
|
||||
private String traceNo;
|
||||
|
||||
/** 执行id */
|
||||
private Long procedureId;
|
||||
}
|
||||
|
||||
@@ -233,4 +233,10 @@ public class MedicationRequest extends HisBaseEntity {
|
||||
* 签发编码
|
||||
*/
|
||||
private String signCode;
|
||||
|
||||
/** 请求基于什么 */
|
||||
private String basedOnTable;
|
||||
|
||||
/** 请求基于什么的ID */
|
||||
private Long basedOnId;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user