医嘱
This commit is contained in:
@@ -1,11 +1,6 @@
|
|||||||
package com.openhis.web.doctorstation.appservice.impl;
|
package com.openhis.web.doctorstation.appservice.impl;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.util.*;
|
||||||
import java.math.RoundingMode;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -238,8 +233,9 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
// TODO: 药品分方;待做
|
// TODO: 药品分方;待做
|
||||||
prescriptionNo = assignSeqUtil.getSeq(AssignSeqEnum.PRESCRIPTION_NO.getPrefix(), 8);
|
prescriptionNo = assignSeqUtil.getSeq(AssignSeqEnum.PRESCRIPTION_NO.getPrefix(), 8);
|
||||||
}
|
}
|
||||||
|
// 声明费用项
|
||||||
|
ChargeItem chargeItem;
|
||||||
// 保存药品请求
|
// 保存药品请求
|
||||||
List<MedicationRequest> medicationRequestList = new ArrayList<>();
|
|
||||||
MedicationRequest medicationRequest;
|
MedicationRequest medicationRequest;
|
||||||
for (AdviceSaveDto adviceSaveDto : medicineList) {
|
for (AdviceSaveDto adviceSaveDto : medicineList) {
|
||||||
medicationRequest = new MedicationRequest();
|
medicationRequest = new MedicationRequest();
|
||||||
@@ -270,16 +266,40 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
medicationRequest.setRateCode(adviceSaveDto.getRateCode()); // 用药频次
|
medicationRequest.setRateCode(adviceSaveDto.getRateCode()); // 用药频次
|
||||||
medicationRequest.setDose(adviceSaveDto.getDose()); // 单次剂量
|
medicationRequest.setDose(adviceSaveDto.getDose()); // 单次剂量
|
||||||
medicationRequest.setDoseUnitCode(adviceSaveDto.getDoseUnitCode()); // 剂量单位
|
medicationRequest.setDoseUnitCode(adviceSaveDto.getDoseUnitCode()); // 剂量单位
|
||||||
|
medicationRequest.setDispensePerDuration(adviceSaveDto.getDispensePerDuration()); // 每次发药供应天数
|
||||||
medicationRequest.setSkinTestFlag(adviceSaveDto.getSkinTestFlag()); // 皮试标记
|
medicationRequest.setSkinTestFlag(adviceSaveDto.getSkinTestFlag()); // 皮试标记
|
||||||
medicationRequest.setGroupId(adviceSaveDto.getGroupId());// 分组id
|
medicationRequest.setGroupId(adviceSaveDto.getGroupId());// 分组id
|
||||||
// medicationRequest.setPackageId(adviceSaveDto.getPackageId());
|
// medicationRequest.setPackageId(adviceSaveDto.getPackageId());
|
||||||
|
|
||||||
medicationRequestList.add(medicationRequest);
|
iMedicationRequestService.save(medicationRequest);
|
||||||
|
|
||||||
|
// 保存药品费用项
|
||||||
|
chargeItem = new ChargeItem();
|
||||||
|
chargeItem.setStatusEnum(ChargeItemStatus.PLANNED.getValue()); // 默认-待收费
|
||||||
|
chargeItem.setBusNo(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix().concat(medicationRequest.getBusNo()));
|
||||||
|
chargeItem.setPrescriptionNo(prescriptionNo); // 处方号
|
||||||
|
chargeItem.setPatientId(adviceSaveDto.getPatientId()); // 患者
|
||||||
|
chargeItem.setContextEnum(adviceSaveDto.getAdviceType()); // 类型
|
||||||
|
chargeItem.setEncounterId(adviceSaveDto.getEncounterId()); // 就诊id
|
||||||
|
chargeItem.setDefinitionId(adviceSaveDto.getDefinitionId()); // 费用定价ID
|
||||||
|
chargeItem.setDefDetailId(adviceSaveDto.getDefinitionDetailId()); // 定价子表主键
|
||||||
|
chargeItem.setEntererId(adviceSaveDto.getPractitionerId());// 开立人ID
|
||||||
|
chargeItem.setEnteredDate(new Date()); // 开立时间
|
||||||
|
chargeItem.setServiceTable("med_medication_request");// 医疗服务类型
|
||||||
|
chargeItem.setServiceId(medicationRequest.getId()); // 医疗服务ID
|
||||||
|
chargeItem.setProductTable(adviceSaveDto.getAdviceTableName());// 产品所在表
|
||||||
|
chargeItem.setProductId(adviceSaveDto.getAdviceDefinitionId());// 收费项id
|
||||||
|
chargeItem.setAccountId(adviceSaveDto.getAccountId());// 关联账户ID
|
||||||
|
|
||||||
|
chargeItem.setQuantityValue(adviceSaveDto.getQuantity()); // 数量
|
||||||
|
chargeItem.setQuantityUnit(adviceSaveDto.getUnitCode()); // 单位
|
||||||
|
chargeItem.setUnitPrice(adviceSaveDto.getUnitPrice()); // 单价
|
||||||
|
chargeItem.setTotalPrice(adviceSaveDto.getTotalPrice()); // 总价
|
||||||
|
|
||||||
|
iChargeItemService.save(chargeItem);
|
||||||
}
|
}
|
||||||
iMedicationRequestService.saveBatch(medicationRequestList);
|
|
||||||
|
|
||||||
// 保存耗材请求
|
// 保存耗材请求
|
||||||
List<DeviceRequest> deviceRequestList = new ArrayList<>();
|
|
||||||
DeviceRequest deviceRequest;
|
DeviceRequest deviceRequest;
|
||||||
for (AdviceSaveDto adviceSaveDto : deviceList) {
|
for (AdviceSaveDto adviceSaveDto : deviceList) {
|
||||||
deviceRequest = new DeviceRequest();
|
deviceRequest = new DeviceRequest();
|
||||||
@@ -306,12 +326,35 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
// deviceRequest.setPackageId(adviceSaveDto.getPackageId());
|
// deviceRequest.setPackageId(adviceSaveDto.getPackageId());
|
||||||
// deviceRequest.setActivityId(adviceSaveDto.getActivityId());
|
// deviceRequest.setActivityId(adviceSaveDto.getActivityId());
|
||||||
|
|
||||||
deviceRequestList.add(deviceRequest);
|
iDeviceRequestService.save(deviceRequest);
|
||||||
|
|
||||||
|
// 保存耗材费用项
|
||||||
|
chargeItem = new ChargeItem();
|
||||||
|
chargeItem.setStatusEnum(ChargeItemStatus.PLANNED.getValue()); // 默认-待收费
|
||||||
|
chargeItem.setBusNo(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix().concat(deviceRequest.getBusNo()));
|
||||||
|
chargeItem.setPrescriptionNo(prescriptionNo); // 处方号
|
||||||
|
chargeItem.setPatientId(adviceSaveDto.getPatientId()); // 患者
|
||||||
|
chargeItem.setContextEnum(adviceSaveDto.getAdviceType()); // 类型
|
||||||
|
chargeItem.setEncounterId(adviceSaveDto.getEncounterId()); // 就诊id
|
||||||
|
chargeItem.setDefinitionId(adviceSaveDto.getDefinitionId()); // 费用定价ID
|
||||||
|
chargeItem.setDefDetailId(adviceSaveDto.getDefinitionDetailId()); // 定价子表主键
|
||||||
|
chargeItem.setEntererId(adviceSaveDto.getPractitionerId());// 开立人ID
|
||||||
|
chargeItem.setEnteredDate(new Date()); // 开立时间
|
||||||
|
chargeItem.setServiceTable("wor_device_request");// 医疗服务类型
|
||||||
|
chargeItem.setServiceId(deviceRequest.getId()); // 医疗服务ID
|
||||||
|
chargeItem.setProductTable(adviceSaveDto.getAdviceTableName());// 产品所在表
|
||||||
|
chargeItem.setProductId(adviceSaveDto.getAdviceDefinitionId());// 收费项id
|
||||||
|
chargeItem.setAccountId(adviceSaveDto.getAccountId());// 关联账户ID
|
||||||
|
|
||||||
|
chargeItem.setQuantityValue(adviceSaveDto.getQuantity()); // 数量
|
||||||
|
chargeItem.setQuantityUnit(adviceSaveDto.getUnitCode()); // 单位
|
||||||
|
chargeItem.setUnitPrice(adviceSaveDto.getUnitPrice()); // 单价
|
||||||
|
chargeItem.setTotalPrice(adviceSaveDto.getTotalPrice()); // 总价
|
||||||
|
|
||||||
|
iChargeItemService.save(chargeItem);
|
||||||
}
|
}
|
||||||
iDeviceRequestService.saveBatch(deviceRequestList);
|
|
||||||
|
|
||||||
// 保存诊疗项目请求
|
// 保存诊疗项目请求
|
||||||
List<ServiceRequest> serviceRequestList = new ArrayList<>();
|
|
||||||
ServiceRequest serviceRequest;
|
ServiceRequest serviceRequest;
|
||||||
for (AdviceSaveDto adviceSaveDto : activityList) {
|
for (AdviceSaveDto adviceSaveDto : activityList) {
|
||||||
serviceRequest = new ServiceRequest();
|
serviceRequest = new ServiceRequest();
|
||||||
@@ -328,35 +371,34 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
serviceRequest.setRequesterId(adviceSaveDto.getPractitionerId()); // 开方医生
|
serviceRequest.setRequesterId(adviceSaveDto.getPractitionerId()); // 开方医生
|
||||||
serviceRequest.setEncounterId(adviceSaveDto.getEncounterId()); // 就诊id
|
serviceRequest.setEncounterId(adviceSaveDto.getEncounterId()); // 就诊id
|
||||||
|
|
||||||
serviceRequestList.add(serviceRequest);
|
iServiceRequestService.save(serviceRequest);
|
||||||
}
|
|
||||||
iServiceRequestService.saveBatch(serviceRequestList);
|
|
||||||
|
|
||||||
// 保存费用项管理
|
// 保存诊疗费用项
|
||||||
List<ChargeItem> chargeItemList = new ArrayList<>();
|
|
||||||
ChargeItem chargeItem;
|
|
||||||
for (AdviceSaveDto adviceSaveDto : adviceSaveList) {
|
|
||||||
chargeItem = new ChargeItem();
|
chargeItem = new ChargeItem();
|
||||||
chargeItem.setStatusEnum(ChargeItemStatus.PLANNED.getValue()); // 默认-代收费
|
chargeItem.setStatusEnum(ChargeItemStatus.PLANNED.getValue()); // 默认-待收费
|
||||||
chargeItem.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix(), 10));
|
chargeItem.setBusNo(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix().concat(serviceRequest.getBusNo()));
|
||||||
chargeItem.setPrescriptionNo(prescriptionNo); // 处方号
|
chargeItem.setPrescriptionNo(prescriptionNo); // 处方号
|
||||||
chargeItem.setPatientId(adviceSaveDto.getPatientId()); // 患者
|
chargeItem.setPatientId(adviceSaveDto.getPatientId()); // 患者
|
||||||
chargeItem.setContextEnum(adviceSaveDto.getAdviceType()); // 类型
|
chargeItem.setContextEnum(adviceSaveDto.getAdviceType()); // 类型
|
||||||
chargeItem.setEncounterId(adviceSaveDto.getEncounterId()); // 诊疗定义id
|
chargeItem.setEncounterId(adviceSaveDto.getEncounterId()); // 就诊id
|
||||||
|
chargeItem.setDefinitionId(adviceSaveDto.getDefinitionId()); // 费用定价ID
|
||||||
|
chargeItem.setDefDetailId(adviceSaveDto.getDefinitionDetailId()); // 定价子表主键
|
||||||
|
chargeItem.setEntererId(adviceSaveDto.getPractitionerId());// 开立人ID
|
||||||
|
chargeItem.setEnteredDate(new Date()); // 开立时间
|
||||||
|
chargeItem.setServiceTable("wor_service_request");// 医疗服务类型
|
||||||
|
chargeItem.setServiceId(serviceRequest.getId()); // 医疗服务ID
|
||||||
|
chargeItem.setProductTable(adviceSaveDto.getAdviceTableName());// 产品所在表
|
||||||
|
chargeItem.setProductId(adviceSaveDto.getAdviceDefinitionId());// 收费项id
|
||||||
|
chargeItem.setAccountId(adviceSaveDto.getAccountId());// 关联账户ID
|
||||||
|
|
||||||
chargeItem.setQuantityValue(adviceSaveDto.getQuantity()); // 数量
|
chargeItem.setQuantityValue(adviceSaveDto.getQuantity()); // 数量
|
||||||
chargeItem.setQuantityUnit(adviceSaveDto.getUnitCode()); // 单位
|
chargeItem.setQuantityUnit(adviceSaveDto.getUnitCode()); // 单位
|
||||||
chargeItem.setUnitPrice(adviceSaveDto.getUnitPrice()); // 单价
|
chargeItem.setUnitPrice(adviceSaveDto.getUnitPrice()); // 单价
|
||||||
chargeItem
|
chargeItem.setTotalPrice(adviceSaveDto.getTotalPrice()); // 总价
|
||||||
.setTotalPrice((new BigDecimal(adviceSaveDto.getQuantity()).multiply(adviceSaveDto.getUnitPrice()))
|
|
||||||
.setScale(4, RoundingMode.HALF_UP)); // 总价
|
|
||||||
|
|
||||||
chargeItem.setDefinitionId(adviceSaveDto.getDefinitionId()); // 费用定价ID
|
iChargeItemService.save(chargeItem);
|
||||||
chargeItem.setDefDetailId(adviceSaveDto.getDefinitionDetailId()); // 定价子表主键
|
|
||||||
|
|
||||||
chargeItemList.add(chargeItem);
|
|
||||||
}
|
}
|
||||||
iChargeItemService.saveBatch(chargeItemList);
|
|
||||||
// TODO: 此处调用请求发放接口
|
// TODO: 此处调用请求发放接口
|
||||||
|
|
||||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"门诊医嘱"}));
|
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"门诊医嘱"}));
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ public class DoctorStationMainAppServiceImpl implements IDoctorStationMainAppSer
|
|||||||
// TODO: userId(当前登录账号ID) 和 currentUserOrganizationId(当前登录账号所属的科室ID) 待补充
|
// TODO: userId(当前登录账号ID) 和 currentUserOrganizationId(当前登录账号所属的科室ID) 待补充
|
||||||
// 当前登录账号ID
|
// 当前登录账号ID
|
||||||
Long userId = SecurityUtils.getLoginUser().getUserId();
|
Long userId = SecurityUtils.getLoginUser().getUserId();
|
||||||
|
Long currentUserOrganizationId = SecurityUtils.getLoginUser().getOrgId();
|
||||||
IPage<PatientInfoDto> patientInfo = doctorStationMainAppMapper.getPatientInfo(new Page<>(pageNo, pageSize),
|
IPage<PatientInfoDto> patientInfo = doctorStationMainAppMapper.getPatientInfo(new Page<>(pageNo, pageSize),
|
||||||
ParticipantType.ADMITTER.getCode(), ClinicalStatus.INACTIVE.getValue(), null, null, queryWrapper);
|
ParticipantType.ADMITTER.getCode(), ClinicalStatus.INACTIVE.getValue(), null, null, queryWrapper);
|
||||||
patientInfo.getRecords().forEach(e -> {
|
patientInfo.getRecords().forEach(e -> {
|
||||||
|
|||||||
@@ -42,12 +42,18 @@ public class AdviceSaveDto {
|
|||||||
/** 请求数量 */
|
/** 请求数量 */
|
||||||
private Integer quantity;
|
private Integer quantity;
|
||||||
|
|
||||||
|
/** 每次发药供应天数 */
|
||||||
|
private Integer dispensePerDuration;
|
||||||
|
|
||||||
/** 请求单位编码 */
|
/** 请求单位编码 */
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
|
|
||||||
/** 单价 */
|
/** 单价 */
|
||||||
private BigDecimal unitPrice;
|
private BigDecimal unitPrice;
|
||||||
|
|
||||||
|
/** 总价 */
|
||||||
|
private BigDecimal totalPrice;
|
||||||
|
|
||||||
/** 费用定价主表ID */
|
/** 费用定价主表ID */
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long definitionId;
|
private Long definitionId;
|
||||||
@@ -71,6 +77,11 @@ public class AdviceSaveDto {
|
|||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long adviceDefinitionId;
|
private Long adviceDefinitionId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 医嘱对应表名
|
||||||
|
*/
|
||||||
|
private String adviceTableName;
|
||||||
|
|
||||||
/** 患者 */
|
/** 患者 */
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long patientId;
|
private Long patientId;
|
||||||
@@ -95,6 +106,12 @@ public class AdviceSaveDto {
|
|||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long encounterId;
|
private Long encounterId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 账户id
|
||||||
|
*/
|
||||||
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
|
private Long accountId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 诊断ID
|
* 诊断ID
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -27,6 +27,12 @@ public class PatientInfoDto {
|
|||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long patientId;
|
private Long patientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 账户id
|
||||||
|
*/
|
||||||
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
|
private Long accountId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 患者姓名
|
* 患者姓名
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
T10.phone,
|
T10.phone,
|
||||||
T10.birth_date,
|
T10.birth_date,
|
||||||
T10.status_enum,
|
T10.status_enum,
|
||||||
T10.allergy_history_flag
|
T10.allergy_history_flag,
|
||||||
|
T10.account_id
|
||||||
from
|
from
|
||||||
(
|
(
|
||||||
SELECT T1.tenant_id AS tenant_id,
|
SELECT T1.tenant_id AS tenant_id,
|
||||||
@@ -24,6 +25,7 @@
|
|||||||
T3.NAME AS healthcare_name,
|
T3.NAME AS healthcare_name,
|
||||||
T5.user_id AS practitioner_user_id,
|
T5.user_id AS practitioner_user_id,
|
||||||
T5.NAME AS practitioner_name,
|
T5.NAME AS practitioner_name,
|
||||||
|
T6.id AS account_id,
|
||||||
T7.contract_name AS contract_name,
|
T7.contract_name AS contract_name,
|
||||||
T8.ID AS patient_id,
|
T8.ID AS patient_id,
|
||||||
T8.NAME AS patient_name,
|
T8.NAME AS patient_name,
|
||||||
|
|||||||
Reference in New Issue
Block a user