Merge branch 'master' of https://codeup.aliyun.com/61c0318acd8b75daa5a125f7/medical/openhis
This commit is contained in:
@@ -132,8 +132,8 @@ public class HealthcareServiceController {
|
|||||||
* @param id 主键
|
* @param id 主键
|
||||||
* @return 详情
|
* @return 详情
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/healthcare-service-detail/{id}")
|
@GetMapping(value = "/healthcare-service-detail")
|
||||||
public R<?> getHealthcareServiceDetail(@PathVariable("id") Long id) {
|
public R<?> getHealthcareServiceDetail(@RequestParam Long id) {
|
||||||
HealthcareServiceDto healthcareServiceDto = new HealthcareServiceDto();
|
HealthcareServiceDto healthcareServiceDto = new HealthcareServiceDto();
|
||||||
healthcareServiceDto.setId(id);
|
healthcareServiceDto.setId(id);
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.openhis.web.doctorstation.appservice;
|
package com.openhis.web.doctorstation.appservice;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.core.common.core.domain.R;
|
||||||
import com.openhis.web.doctorstation.dto.AdviceBaseDto;
|
import com.openhis.web.doctorstation.dto.AdviceBaseDto;
|
||||||
|
import com.openhis.web.doctorstation.dto.AdviceSaveDto;
|
||||||
|
import com.openhis.web.doctorstation.dto.AdviceSaveParam;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 医生站-医嘱/处方 应用Service
|
* 医生站-医嘱/处方 应用Service
|
||||||
@@ -21,4 +24,12 @@ public interface IDoctorStationAdviceAppService {
|
|||||||
IPage<AdviceBaseDto> getAdviceBaseInfo(AdviceBaseDto adviceBaseDto, String searchKey, Long locationId,
|
IPage<AdviceBaseDto> getAdviceBaseInfo(AdviceBaseDto adviceBaseDto, String searchKey, Long locationId,
|
||||||
Integer pageNo, Integer pageSize);
|
Integer pageNo, Integer pageSize);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 门诊保存医嘱
|
||||||
|
*
|
||||||
|
* @param adviceSaveParam 医嘱表单信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
R<?> saveAdvice(AdviceSaveParam adviceSaveParam);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.openhis.web.doctorstation.appservice.impl;
|
package com.openhis.web.doctorstation.appservice.impl;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@@ -13,16 +15,25 @@ import org.springframework.stereotype.Service;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.core.common.core.domain.R;
|
||||||
|
import com.core.common.utils.AssignSeqUtil;
|
||||||
|
import com.core.common.utils.MessageUtils;
|
||||||
|
import com.openhis.administration.domain.ChargeItem;
|
||||||
|
import com.openhis.administration.service.IChargeItemService;
|
||||||
import com.openhis.common.constant.CommonConstants;
|
import com.openhis.common.constant.CommonConstants;
|
||||||
import com.openhis.common.enums.ActivityType;
|
import com.openhis.common.constant.PromptMsgConstant;
|
||||||
import com.openhis.common.enums.ConditionCode;
|
import com.openhis.common.enums.*;
|
||||||
import com.openhis.common.utils.EnumUtils;
|
import com.openhis.common.utils.EnumUtils;
|
||||||
import com.openhis.common.utils.HisQueryUtils;
|
import com.openhis.common.utils.HisQueryUtils;
|
||||||
|
import com.openhis.medication.domain.MedicationRequest;
|
||||||
|
import com.openhis.medication.service.IMedicationRequestService;
|
||||||
import com.openhis.web.doctorstation.appservice.IDoctorStationAdviceAppService;
|
import com.openhis.web.doctorstation.appservice.IDoctorStationAdviceAppService;
|
||||||
import com.openhis.web.doctorstation.dto.AdviceBaseDto;
|
import com.openhis.web.doctorstation.dto.*;
|
||||||
import com.openhis.web.doctorstation.dto.AdviceInventoryDto;
|
|
||||||
import com.openhis.web.doctorstation.dto.AdvicePriceDto;
|
|
||||||
import com.openhis.web.doctorstation.mapper.DoctorStationAdviceAppMapper;
|
import com.openhis.web.doctorstation.mapper.DoctorStationAdviceAppMapper;
|
||||||
|
import com.openhis.workflow.domain.DeviceRequest;
|
||||||
|
import com.openhis.workflow.domain.ServiceRequest;
|
||||||
|
import com.openhis.workflow.service.IDeviceRequestService;
|
||||||
|
import com.openhis.workflow.service.IServiceRequestService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 医生站-医嘱/处方 应用实现类
|
* 医生站-医嘱/处方 应用实现类
|
||||||
@@ -30,9 +41,24 @@ import com.openhis.web.doctorstation.mapper.DoctorStationAdviceAppMapper;
|
|||||||
@Service
|
@Service
|
||||||
public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAppService {
|
public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAppService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
AssignSeqUtil assignSeqUtil;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
DoctorStationAdviceAppMapper doctorStationAdviceAppMapper;
|
DoctorStationAdviceAppMapper doctorStationAdviceAppMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
IMedicationRequestService iMedicationRequestService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
IDeviceRequestService iDeviceRequestService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
IServiceRequestService iServiceRequestService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
IChargeItemService iChargeItemService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询医嘱信息
|
* 查询医嘱信息
|
||||||
*
|
*
|
||||||
@@ -63,6 +89,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
// 医嘱库存集合
|
// 医嘱库存集合
|
||||||
List<AdviceInventoryDto> adviceInventory = doctorStationAdviceAppMapper.getAdviceInventory(locationId,
|
List<AdviceInventoryDto> adviceInventory = doctorStationAdviceAppMapper.getAdviceInventory(locationId,
|
||||||
adviceDefinitionIdList, CommonConstants.SqlCondition.ABOUT_INVENTORY_TABLE_STR);
|
adviceDefinitionIdList, CommonConstants.SqlCondition.ABOUT_INVENTORY_TABLE_STR);
|
||||||
|
// TODO: 预减库存待处理
|
||||||
|
|
||||||
// 费用定价子表信息
|
// 费用定价子表信息
|
||||||
List<AdvicePriceDto> childCharge = doctorStationAdviceAppMapper
|
List<AdvicePriceDto> childCharge = doctorStationAdviceAppMapper
|
||||||
.getChildCharge(ConditionCode.UNIT_PRODUCT_BATCH_NUM.getInfo(), chargeItemDefinitionIdList);
|
.getChildCharge(ConditionCode.UNIT_PRODUCT_BATCH_NUM.getInfo(), chargeItemDefinitionIdList);
|
||||||
@@ -132,4 +160,135 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
return adviceBaseInfo;
|
return adviceBaseInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 门诊保存医嘱
|
||||||
|
*
|
||||||
|
* @param adviceSaveParam 医嘱表单信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public R<?> saveAdvice(AdviceSaveParam adviceSaveParam) {
|
||||||
|
// 医嘱分类信息
|
||||||
|
List<AdviceSaveDto> adviceSaveList = adviceSaveParam.getAdviceSaveList();
|
||||||
|
// TODO: 保存医嘱时规则校验;待做
|
||||||
|
// 药品
|
||||||
|
List<AdviceSaveDto> medicineList = adviceSaveList.stream()
|
||||||
|
.filter(e -> ItemType.MEDICINE.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
||||||
|
// 耗材
|
||||||
|
List<AdviceSaveDto> deviceList = adviceSaveList.stream()
|
||||||
|
.filter(e -> ItemType.DEVICE.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
||||||
|
// 诊疗活动
|
||||||
|
List<AdviceSaveDto> activityList = adviceSaveList.stream()
|
||||||
|
.filter(e -> ItemType.ACTIVITY.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
||||||
|
// 生成处方号 , 只有开了药品才有处方号
|
||||||
|
String prescriptionNo = "";
|
||||||
|
if (medicineList.size() > 0) {
|
||||||
|
prescriptionNo = assignSeqUtil.getSeq(AssignSeqEnum.PRESCRIPTION_NO.getPrefix(), 8);
|
||||||
|
}
|
||||||
|
// 保存药品请求
|
||||||
|
List<MedicationRequest> medicationRequestList = new ArrayList<>();
|
||||||
|
MedicationRequest medicationRequest;
|
||||||
|
for (AdviceSaveDto adviceSaveDto : medicineList) {
|
||||||
|
medicationRequest = new MedicationRequest();
|
||||||
|
medicationRequest.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.MEDICATION_RES_NO.getPrefix(), 8));
|
||||||
|
medicationRequest.setPrescriptionNo(prescriptionNo);
|
||||||
|
medicationRequest.setQuantity(adviceSaveDto.getQuantity());
|
||||||
|
medicationRequest.setExecuteNum(adviceSaveDto.getExecuteNum());
|
||||||
|
medicationRequest.setUnitCode(adviceSaveDto.getUnitCode());
|
||||||
|
medicationRequest.setLotNumber(adviceSaveDto.getLotNumber());
|
||||||
|
medicationRequest.setStatusEnum(adviceSaveDto.getStatusEnum());
|
||||||
|
medicationRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum());
|
||||||
|
medicationRequest.setMedicationId(adviceSaveDto.getAdviceDefinitionId());// 医嘱定义id
|
||||||
|
medicationRequest.setPatientId(adviceSaveDto.getPatientId());
|
||||||
|
medicationRequest.setPractitionerId(adviceSaveDto.getPractitionerId());
|
||||||
|
medicationRequest.setOrgId(adviceSaveDto.getOrgId());
|
||||||
|
medicationRequest.setLocationId(adviceSaveDto.getLocationId());
|
||||||
|
medicationRequest.setEncounterId(adviceSaveDto.getEncounterId());
|
||||||
|
medicationRequest.setTherapyEnum(adviceSaveDto.getTherapyEnum());
|
||||||
|
medicationRequest.setMethodCode(adviceSaveDto.getMethodCode());
|
||||||
|
medicationRequest.setRateCode(adviceSaveDto.getRateCode());
|
||||||
|
medicationRequest.setDose(adviceSaveDto.getDose());
|
||||||
|
medicationRequest.setDoseUnitCode(adviceSaveDto.getDoseUnitCode());
|
||||||
|
// medicationRequest.setPackageId(adviceSaveDto.getPackageId());
|
||||||
|
|
||||||
|
medicationRequestList.add(medicationRequest);
|
||||||
|
}
|
||||||
|
iMedicationRequestService.saveBatch(medicationRequestList);
|
||||||
|
|
||||||
|
// 保存耗材请求
|
||||||
|
List<DeviceRequest> deviceRequestList = new ArrayList<>();
|
||||||
|
DeviceRequest deviceRequest;
|
||||||
|
for (AdviceSaveDto adviceSaveDto : deviceList) {
|
||||||
|
deviceRequest = new DeviceRequest();
|
||||||
|
deviceRequest.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.DEVICE_RES_NO.getPrefix(), 8));
|
||||||
|
deviceRequest.setPrescriptionNo(prescriptionNo);
|
||||||
|
deviceRequest.setQuantity(adviceSaveDto.getQuantity());
|
||||||
|
deviceRequest.setUnitCode(adviceSaveDto.getUnitCode());
|
||||||
|
deviceRequest.setLotNumber(adviceSaveDto.getLotNumber());
|
||||||
|
deviceRequest.setStatusEnum(adviceSaveDto.getStatusEnum());
|
||||||
|
deviceRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum());
|
||||||
|
deviceRequest.setDeviceDefId(adviceSaveDto.getAdviceDefinitionId());// 耗材定义id
|
||||||
|
deviceRequest.setPatientId(adviceSaveDto.getPatientId());
|
||||||
|
deviceRequest.setRequesterId(adviceSaveDto.getPractitionerId());
|
||||||
|
deviceRequest.setOrgId(adviceSaveDto.getOrgId());
|
||||||
|
deviceRequest.setLocationId(adviceSaveDto.getLocationId());
|
||||||
|
deviceRequest.setEncounterId(adviceSaveDto.getEncounterId());
|
||||||
|
// deviceRequest.setPackageId(adviceSaveDto.getPackageId());
|
||||||
|
// deviceRequest.setActivityId(adviceSaveDto.getActivityId());
|
||||||
|
|
||||||
|
deviceRequestList.add(deviceRequest);
|
||||||
|
}
|
||||||
|
iDeviceRequestService.saveBatch(deviceRequestList);
|
||||||
|
|
||||||
|
// 保存诊疗项目请求
|
||||||
|
List<ServiceRequest> serviceRequestList = new ArrayList<>();
|
||||||
|
ServiceRequest serviceRequest;
|
||||||
|
for (AdviceSaveDto adviceSaveDto : activityList) {
|
||||||
|
serviceRequest = new ServiceRequest();
|
||||||
|
serviceRequest.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.SERVICE_RES_NO.getPrefix(), 8));
|
||||||
|
serviceRequest.setPrescriptionNo(prescriptionNo);
|
||||||
|
serviceRequest.setBasedOnTable(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION);
|
||||||
|
serviceRequest.setBasedOnId(adviceSaveDto.getAdviceDefinitionId());
|
||||||
|
serviceRequest.setQuantity(adviceSaveDto.getQuantity());
|
||||||
|
serviceRequest.setUnitCode(adviceSaveDto.getUnitCode());
|
||||||
|
serviceRequest.setStatusEnum(adviceSaveDto.getStatusEnum());
|
||||||
|
serviceRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum());
|
||||||
|
serviceRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum());
|
||||||
|
serviceRequest.setActivityId(adviceSaveDto.getAdviceDefinitionId());// 诊疗定义id
|
||||||
|
serviceRequest.setPatientId(adviceSaveDto.getPatientId());
|
||||||
|
serviceRequest.setRequesterId(adviceSaveDto.getPractitionerId());
|
||||||
|
serviceRequest.setEncounterId(adviceSaveDto.getEncounterId());
|
||||||
|
|
||||||
|
serviceRequestList.add(serviceRequest);
|
||||||
|
}
|
||||||
|
iServiceRequestService.saveBatch(serviceRequestList);
|
||||||
|
|
||||||
|
// 保存费用项管理
|
||||||
|
List<ChargeItem> chargeItemList = new ArrayList<>();
|
||||||
|
ChargeItem chargeItem;
|
||||||
|
for (AdviceSaveDto adviceSaveDto : adviceSaveList) {
|
||||||
|
chargeItem = new ChargeItem();
|
||||||
|
chargeItem.setStatusEnum(ChargeItemStatus.PLANNED.getValue());
|
||||||
|
chargeItem.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix(), 8));
|
||||||
|
chargeItem.setPrescriptionNo(prescriptionNo);
|
||||||
|
chargeItem.setPatientId(adviceSaveDto.getPatientId());
|
||||||
|
chargeItem.setContextEnum(adviceSaveDto.getAdviceType());
|
||||||
|
chargeItem.setEncounterId(adviceSaveDto.getEncounterId());
|
||||||
|
chargeItem.setQuantityValue(adviceSaveDto.getQuantity()); // 数量
|
||||||
|
chargeItem.setQuantityUnit(adviceSaveDto.getUnitCode()); // 单位
|
||||||
|
chargeItem.setUnitPrice(adviceSaveDto.getUnitPrice()); // 单价
|
||||||
|
chargeItem
|
||||||
|
.setTotalPrice((new BigDecimal(adviceSaveDto.getQuantity()).multiply(adviceSaveDto.getUnitPrice()))
|
||||||
|
.setScale(4, RoundingMode.HALF_UP)); // 总价
|
||||||
|
chargeItem.setDefinitionId(adviceSaveDto.getDefinitionId());
|
||||||
|
chargeItem.setDefDetailId(adviceSaveDto.getDefinitionDetailId());
|
||||||
|
|
||||||
|
chargeItemList.add(chargeItem);
|
||||||
|
}
|
||||||
|
iChargeItemService.saveBatch(chargeItemList);
|
||||||
|
// TODO: 此处调用请求方法接口
|
||||||
|
|
||||||
|
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"门诊医嘱"}));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,12 @@
|
|||||||
*/
|
*/
|
||||||
package com.openhis.web.doctorstation.controller;
|
package com.openhis.web.doctorstation.controller;
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.openhis.web.doctorstation.appservice.IDoctorStationAdviceAppService;
|
import com.openhis.web.doctorstation.appservice.IDoctorStationAdviceAppService;
|
||||||
import com.openhis.web.doctorstation.dto.AdviceBaseDto;
|
import com.openhis.web.doctorstation.dto.AdviceBaseDto;
|
||||||
|
import com.openhis.web.doctorstation.dto.AdviceSaveParam;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -46,4 +44,15 @@ public class DoctorStationAdviceController {
|
|||||||
iDoctorStationAdviceAppService.getAdviceBaseInfo(adviceBaseDto, searchKey, locationId, pageNo, pageSize));
|
iDoctorStationAdviceAppService.getAdviceBaseInfo(adviceBaseDto, searchKey, locationId, pageNo, pageSize));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 门诊保存医嘱
|
||||||
|
*
|
||||||
|
* @param adviceSaveParam 医嘱表单信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@PostMapping(value = "/save-advice")
|
||||||
|
public R<?> saveAdvice(@RequestBody AdviceSaveParam adviceSaveParam) {
|
||||||
|
return iDoctorStationAdviceAppService.saveAdvice(adviceSaveParam);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import lombok.experimental.Accessors;
|
|||||||
public class AdviceBaseDto {
|
public class AdviceBaseDto {
|
||||||
|
|
||||||
/** 医嘱类型 */
|
/** 医嘱类型 */
|
||||||
private String adviceType; // 1:药品 , 2: 耗材 , 3:项目
|
private Integer adviceType; // 1:药品 , 2: 耗材 , 3:项目
|
||||||
|
|
||||||
/** 医嘱定义ID */
|
/** 医嘱定义ID */
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
|
|||||||
@@ -25,6 +25,10 @@ public class AdvicePriceDto {
|
|||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long definitionId;
|
private Long definitionId;
|
||||||
|
|
||||||
|
/** 费用定价子表ID */
|
||||||
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
|
private Long definitionDetailId;
|
||||||
|
|
||||||
/** 命中条件 */
|
/** 命中条件 */
|
||||||
private String conditionCode;
|
private String conditionCode;
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
package com.openhis.web.doctorstation.dto;
|
package com.openhis.web.doctorstation.dto;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
import com.openhis.common.enums.EncounterClass;
|
import com.openhis.common.enums.EncounterClass;
|
||||||
import com.openhis.common.enums.RequestStatus;
|
import com.openhis.common.enums.RequestStatus;
|
||||||
|
import com.openhis.common.enums.TherapyTimeType;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
@@ -16,7 +19,7 @@ import lombok.experimental.Accessors;
|
|||||||
public class AdviceSaveDto {
|
public class AdviceSaveDto {
|
||||||
|
|
||||||
/** 医嘱类型 */
|
/** 医嘱类型 */
|
||||||
private String adviceType; // 1:药品 , 2: 耗材 , 3:项目
|
private Integer adviceType; // 1:药品 , 2: 耗材 , 3:项目
|
||||||
|
|
||||||
/** 执行次数 */
|
/** 执行次数 */
|
||||||
private Integer executeNum; // 当医嘱类型为药品时,选填
|
private Integer executeNum; // 当医嘱类型为药品时,选填
|
||||||
@@ -30,6 +33,17 @@ public class AdviceSaveDto {
|
|||||||
/** 请求单位编码 */
|
/** 请求单位编码 */
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
|
|
||||||
|
/** 单价 */
|
||||||
|
private BigDecimal unitPrice;
|
||||||
|
|
||||||
|
/** 费用定价主表ID */
|
||||||
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
|
private Long definitionId;
|
||||||
|
|
||||||
|
/** 费用定价子表ID */
|
||||||
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
|
private Long definitionDetailId;
|
||||||
|
|
||||||
/** 产品批号 */
|
/** 产品批号 */
|
||||||
private String lotNumber;
|
private String lotNumber;
|
||||||
|
|
||||||
@@ -65,6 +79,21 @@ public class AdviceSaveDto {
|
|||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long encounterId;
|
private Long encounterId;
|
||||||
|
|
||||||
|
/** 治疗类型 */
|
||||||
|
private Integer therapyEnum;
|
||||||
|
|
||||||
|
/** 用法 */
|
||||||
|
private String methodCode;
|
||||||
|
|
||||||
|
/** 用药频次 */
|
||||||
|
private String rateCode;
|
||||||
|
|
||||||
|
/** 单次剂量 */
|
||||||
|
private BigDecimal dose;
|
||||||
|
|
||||||
|
/** 剂量单位 */
|
||||||
|
private String doseUnitCode;
|
||||||
|
|
||||||
/** 组套id */
|
/** 组套id */
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long packageId; // 该参数先预留出来
|
private Long packageId; // 该参数先预留出来
|
||||||
@@ -79,6 +108,9 @@ public class AdviceSaveDto {
|
|||||||
public AdviceSaveDto() {
|
public AdviceSaveDto() {
|
||||||
this.statusEnum = RequestStatus.DRAFT.getValue();
|
this.statusEnum = RequestStatus.DRAFT.getValue();
|
||||||
this.categoryEnum = EncounterClass.AMB.getValue();
|
this.categoryEnum = EncounterClass.AMB.getValue();
|
||||||
|
this.therapyEnum = TherapyTimeType.TEMPORARY.getValue();
|
||||||
|
// TODO: 应该从当前登录账号获取参与者id,现在没有
|
||||||
|
// this.practitionerId
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class InventoryManageAssembler {
|
|||||||
// 收费项id:供应物品id
|
// 收费项id:供应物品id
|
||||||
.setProductId(supplyItemDetailDto.getItemId())
|
.setProductId(supplyItemDetailDto.getItemId())
|
||||||
// 物品数量
|
// 物品数量
|
||||||
.setQuantityValue(supplyItemDetailDto.getItemQuantity().longValue())
|
.setQuantityValue(supplyItemDetailDto.getItemQuantity().intValue())
|
||||||
// 物品单位
|
// 物品单位
|
||||||
.setQuantityUnit(supplyItemDetailDto.getItemUnit())
|
.setQuantityUnit(supplyItemDetailDto.getItemUnit())
|
||||||
// 原价
|
// 原价
|
||||||
|
|||||||
@@ -36,10 +36,10 @@ public class OutpatientInfusionRecordController {
|
|||||||
* 查询门诊输液的患者列表
|
* 查询门诊输液的患者列表
|
||||||
*
|
*
|
||||||
* @param outpatientInfusionSearchParam 查询参数
|
* @param outpatientInfusionSearchParam 查询参数
|
||||||
* @return 门诊输液的患者列表
|
* @return 返回门诊输液的患者列表
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/infusion-patient-list")
|
@GetMapping(value = "/infusion-patient-list")
|
||||||
public R<?> getPatientInfusionRecord(OutpatientInfusionSearchParam outpatientInfusionSearchParam,
|
public R<?> getOutpatientInfusionPatientList(OutpatientInfusionSearchParam outpatientInfusionSearchParam,
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
abi.advice_table_name
|
abi.advice_table_name
|
||||||
from (
|
from (
|
||||||
SELECT T1.tenant_id,
|
SELECT T1.tenant_id,
|
||||||
'1' AS advice_type,
|
1 AS advice_type,
|
||||||
T1.ID AS advice_definition_id,
|
T1.ID AS advice_definition_id,
|
||||||
T1.NAME AS advice_name,
|
T1.NAME AS advice_name,
|
||||||
T1.bus_no AS advice_bus_no,
|
T1.bus_no AS advice_bus_no,
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
WHERE T1.delete_flag = '0'
|
WHERE T1.delete_flag = '0'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT T1.tenant_id,
|
SELECT T1.tenant_id,
|
||||||
'2' AS advice_type,
|
2 AS advice_type,
|
||||||
T1.ID AS advice_definition_id,
|
T1.ID AS advice_definition_id,
|
||||||
T1.NAME AS advice_name,
|
T1.NAME AS advice_name,
|
||||||
T1.bus_no AS advice_bus_no,
|
T1.bus_no AS advice_bus_no,
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
WHERE T1.delete_flag = '0'
|
WHERE T1.delete_flag = '0'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT T1.tenant_id,
|
SELECT T1.tenant_id,
|
||||||
'3' AS advice_type,
|
3 AS advice_type,
|
||||||
T1.ID AS advice_definition_id,
|
T1.ID AS advice_definition_id,
|
||||||
T1.NAME AS advice_name,
|
T1.NAME AS advice_name,
|
||||||
T1.bus_no AS advice_bus_no,
|
T1.bus_no AS advice_bus_no,
|
||||||
@@ -162,6 +162,7 @@
|
|||||||
<select id="getChildCharge" resultType="com.openhis.web.doctorstation.dto.AdvicePriceDto">
|
<select id="getChildCharge" resultType="com.openhis.web.doctorstation.dto.AdvicePriceDto">
|
||||||
SELECT
|
SELECT
|
||||||
T1.definition_id,
|
T1.definition_id,
|
||||||
|
T1.id AS definition_detail_id,
|
||||||
T2.charge_name,
|
T2.charge_name,
|
||||||
T1.condition_value,
|
T1.condition_value,
|
||||||
T1.condition_code,
|
T1.condition_code,
|
||||||
|
|||||||
@@ -16,25 +16,25 @@ import lombok.Getter;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum ChargeItemContext implements HisEnumInterface {
|
public enum ChargeItemContext implements HisEnumInterface {
|
||||||
|
|
||||||
/**
|
|
||||||
* 采购
|
|
||||||
*/
|
|
||||||
PURCHASE(1, "1", "采购"),
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 药品
|
* 药品
|
||||||
*/
|
*/
|
||||||
MEDICATION(2, "2", "药品"),
|
MEDICATION(1, "1", "药品"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 耗材
|
* 耗材
|
||||||
*/
|
*/
|
||||||
DEVICE(3, "3", "耗材"),
|
DEVICE(2, "2", "耗材"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目
|
* 项目
|
||||||
*/
|
*/
|
||||||
ACTIVITY(4, "4", "项目");
|
ACTIVITY(3, "3", "项目"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购
|
||||||
|
*/
|
||||||
|
PURCHASE(4, "4", "采购");
|
||||||
|
|
||||||
private final Integer value;
|
private final Integer value;
|
||||||
private final String code;
|
private final String code;
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public class ChargeItem extends HisBaseEntity {
|
|||||||
private Long costOrgId;
|
private Long costOrgId;
|
||||||
|
|
||||||
/** 数量 */
|
/** 数量 */
|
||||||
private Long quantityValue;
|
private Integer quantityValue;
|
||||||
|
|
||||||
/** 单位 */
|
/** 单位 */
|
||||||
private String quantityUnit;
|
private String quantityUnit;
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class MedicationRequest extends HisBaseEntity {
|
|||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/** 药品请求编码 */
|
/** 药品请求编码 */
|
||||||
private String bus_no;
|
private String busNo;
|
||||||
|
|
||||||
/** 处方号 */
|
/** 处方号 */
|
||||||
private String prescriptionNo;
|
private String prescriptionNo;
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class DeviceRequest extends HisBaseEntity {
|
|||||||
private String prescriptionNo;
|
private String prescriptionNo;
|
||||||
|
|
||||||
/** 相关诊疗项目 */
|
/** 相关诊疗项目 */
|
||||||
private Integer activityId;
|
private Long activityId;
|
||||||
|
|
||||||
/** 组套id */
|
/** 组套id */
|
||||||
private Long packageId;
|
private Long packageId;
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public class ServiceRequest extends HisBaseEntity {
|
|||||||
private Long activityId;
|
private Long activityId;
|
||||||
|
|
||||||
/** 数量 */
|
/** 数量 */
|
||||||
private BigDecimal quantity;
|
private Integer quantity;
|
||||||
|
|
||||||
/** 单位 */
|
/** 单位 */
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
|
||||||
// 待执行输液记录查询
|
// 待执行输液记录查询
|
||||||
export function listInfusionRecord(query) {
|
export function listInfusionRecord() {
|
||||||
return request({
|
return request({
|
||||||
url: '/outpatient-manage/infusion/infusion-wait-perform-record',
|
url: '/outpatient-manage/infusion/infusion-wait-perform-record',
|
||||||
method: 'get',
|
method: 'get'
|
||||||
params: query
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 病人列表
|
// 病人列表
|
||||||
export function listPatients() {
|
export function listPatients(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/outpatient-manage/infusion/patient-infusion',
|
url: '/outpatient-manage/infusion/infusion-patient-list',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,10 +25,10 @@ export function updateInfusionRecord(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询单个患者门诊输液记录查询
|
// 点击患者,查询该患者的输液记录
|
||||||
export function listPatientInfusionRecord(query) {
|
export function listPatientInfusionRecord(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/outpatient-manage/infusion/patient-infusion',
|
url: '/outpatient-manage/infusion/patient-infusion-record',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -115,12 +115,12 @@ const currentRow = ref(null);
|
|||||||
const dateRange = ref([]);
|
const dateRange = ref([]);
|
||||||
const historyRecordsList = ref([])
|
const historyRecordsList = ref([])
|
||||||
const patientList = ref([]);
|
const patientList = ref([]);
|
||||||
const infusionList = ref([]);
|
// const infusionList = ref([]);
|
||||||
// const infusionList = ref([
|
const infusionList = ref([
|
||||||
// { groupId: 1, executionCount: 2, doctorId_dictText: '张三', patientName: '李四', genderEnum_enumText: '男', status: '123456789012345678', medicationInformation: '药品A', medicationAntity: 10, rateCode: '每日一次', dose: '10mg', speed: '50ml/h', orgId_dictText: '内科', medicationStatusEnum_enumText: '已发放', skinTestFlag_enumText: '是', clinicalStatusEnum_enumText: '阴性' },
|
{ groupId: 1, executionCount: 2, doctorId_dictText: '张三', patientName: '李四', genderEnum_enumText: '男', status: '123456789012345678', medicationInformation: '药品A', medicationAntity: 10, rateCode: '每日一次', dose: '10mg', speed: '50ml/h', orgId_dictText: '内科', medicationStatusEnum_enumText: '已发放', flagText: '是', clinicalStatusEnum_enumText: '阴性' },
|
||||||
// { groupId: 1, executionCount: 2, doctorId_dictText: '张三', patientName: '王五', genderEnum_enumText: '女', status: '123456789012345679', medicationInformation: '药品A', medicationAntity: 10, rateCode: '每日一次', dose: '10mg', speed: '50ml/h', orgId_dictText: '内科', medicationStatusEnum_enumText: '已发放', skinTestFlag_enumText: '是', clinicalStatusEnum_enumText: '阴性' },
|
{ groupId: 1, executionCount: 2, doctorId_dictText: '张三', patientName: '王五', genderEnum_enumText: '女', status: '123456789012345679', medicationInformation: '药品A', medicationAntity: 10, rateCode: '每日一次', dose: '10mg', speed: '50ml/h', orgId_dictText: '内科', medicationStatusEnum_enumText: '已发放', flagText: '是', clinicalStatusEnum_enumText: '阴性' },
|
||||||
// { groupId: 2, executionCount: 1, doctorId_dictText: '李六', patientName: '赵七', genderEnum_enumText: '男', status: '123456789012345680', medicationInformation: '药品B', medicationAntity: 5, rateCode: '每日两次', dose: '5mg', speed: '30ml/h', orgId_dictText: '外科', medicationStatusEnum_enumText: '已发放', skinTestFlag_enumText: '否', clinicalStatusEnum_enumText: '无' },
|
{ groupId: 2, executionCount: 1, doctorId_dictText: '李六', patientName: '赵七', genderEnum_enumText: '男', status: '123456789012345680', medicationInformation: '药品B', medicationAntity: 5, rateCode: '每日两次', dose: '5mg', speed: '30ml/h', orgId_dictText: '外科', medicationStatusEnum_enumText: '已发放', flagText: '否', clinicalStatusEnum_enumText: '无' },
|
||||||
// ]);
|
]);
|
||||||
|
|
||||||
const ids = ref([]);
|
const ids = ref([]);
|
||||||
|
|
||||||
@@ -193,30 +193,30 @@ function handleSelectionChange(selection) {
|
|||||||
});
|
});
|
||||||
// 获取当前选中的 groupId 和 medicationId 集合
|
// 获取当前选中的 groupId 和 medicationId 集合
|
||||||
const currentGroupIds = new Set(selection.map(item => item.groupId));
|
const currentGroupIds = new Set(selection.map(item => item.groupId));
|
||||||
// const currentMedicationIds = new Set(selection.map(item => item.medicationId));
|
const currentMedicationIds = new Set(selection.map(item => item.medicationId));
|
||||||
// 更新 selectedGroupIds 和 selectedMedicationIds
|
// 更新 selectedGroupIds 和 selectedMedicationIds
|
||||||
selection.forEach(item => {
|
selection.forEach(item => {
|
||||||
const groupId = item.groupId;
|
const groupId = item.groupId;
|
||||||
const medicationId = item.medicationId;
|
const medicationId = item.medicationId;
|
||||||
// 检查 groupId 和 medicationId 是否同时存在
|
// 检查 groupId 和 medicationId 是否同时存在
|
||||||
if (selectedGroupIds.value.has(groupId) ) {
|
if (selectedGroupIds.value.has(groupId) && selectedMedicationIds.value.has(medicationId)) {
|
||||||
// 如果都存在,则移除它们
|
// 如果都存在,则移除它们
|
||||||
selectedGroupIds.value.delete(groupId);
|
selectedGroupIds.value.delete(groupId);
|
||||||
// selectedMedicationIds.value.delete(medicationId);
|
selectedMedicationIds.value.delete(medicationId);
|
||||||
} else {
|
} else {
|
||||||
// 否则添加它们
|
// 否则添加它们
|
||||||
selectedGroupIds.value.add(groupId);
|
selectedGroupIds.value.add(groupId);
|
||||||
// selectedMedicationIds.value.add(medicationId);
|
selectedMedicationIds.value.add(medicationId);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// 动态更新表格行的选中状态
|
// 动态更新表格行的选中状态
|
||||||
infusionList.value.forEach(row => {
|
infusionList.value.forEach(row => {
|
||||||
// 检查当前行的 groupId 和 medicationId 是否同时在 selectedGroupIds 和 selectedMedicationIds 中
|
// 检查当前行的 groupId 和 medicationId 是否同时在 selectedGroupIds 和 selectedMedicationIds 中
|
||||||
const isSelected = selectedGroupIds.value.has(row.groupId)
|
const isSelected = selectedGroupIds.value.has(row.groupId) && selectedMedicationIds.value.has(row.medicationId);
|
||||||
tableRef.value.toggleRowSelection(row, isSelected);
|
tableRef.value.toggleRowSelection(row, isSelected);
|
||||||
});
|
});
|
||||||
console.log('Current selectedGroupIds:', selectedGroupIds.value);
|
console.log('Current selectedGroupIds:', selectedGroupIds.value);
|
||||||
// console.log('Current selectedMedicationIds:', selectedMedicationIds.value);
|
console.log('Current selectedMedicationIds:', selectedMedicationIds.value);
|
||||||
console.log('Current selectedItems:', selectedItems.value);
|
console.log('Current selectedItems:', selectedItems.value);
|
||||||
}
|
}
|
||||||
function handleSubmitCanel(){
|
function handleSubmitCanel(){
|
||||||
|
|||||||
Reference in New Issue
Block a user