```
docs(release-notes): 添加住院护士站划价功能说明和发版记录 - 新增住院护士站划价服务流程说明文档,详细描述了从参数预处理到结果响应的五大阶段流程 - 包含耗材类医嘱和诊疗活动类医嘱的差异化处理逻辑 - 添加完整的发版内容记录,涵盖新增菜单功能和各模块优化点 - 记录了住院相关功能的新增和门诊业务流程的修复 ```
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
package com.openhis.web.inhospitalnursestation.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.inhospitalnursestation.dto.AutoRollSourceDto;
|
||||
import com.openhis.web.inhospitalnursestation.dto.EncounterAutoRollQueryDto;
|
||||
import com.openhis.web.inhospitalnursestation.dto.EncounterAutoRollSaveDto;
|
||||
import com.openhis.web.inhospitalnursestation.dto.InBedPatientInfoDto;
|
||||
|
||||
/**
|
||||
* 住院就诊滚方 应用实现接口
|
||||
*/
|
||||
public interface IEncounterAutoRollAppService {
|
||||
|
||||
/**
|
||||
* 查询自动滚方数据源
|
||||
*
|
||||
* @return 自动滚方数据源
|
||||
*/
|
||||
List<AutoRollSourceDto> getSource();
|
||||
|
||||
/**
|
||||
* 保存住院就诊的滚方信息
|
||||
*
|
||||
* @param encounterAutoRollSaveDto 住院就诊的滚方信息
|
||||
* @return 结果
|
||||
*/
|
||||
R<?> saveBinding(EncounterAutoRollSaveDto encounterAutoRollSaveDto);
|
||||
|
||||
/**
|
||||
* 查询住院就诊滚方绑定信息
|
||||
*
|
||||
* @param encounterId 就诊id
|
||||
* @return 住院就诊滚方绑定信息
|
||||
*/
|
||||
List<EncounterAutoRollQueryDto> getEncounter(Long encounterId);
|
||||
|
||||
/**
|
||||
* 删除住院就诊的滚方信息
|
||||
*
|
||||
* @param id id
|
||||
* @return 结果
|
||||
*/
|
||||
R<?> deleteBinding(Long id);
|
||||
|
||||
/**
|
||||
* 启用or停用
|
||||
*
|
||||
* @param id id
|
||||
* @param status 状态
|
||||
* @return 结果
|
||||
*/
|
||||
R<?> activeOrRetired(Long id, Integer status);
|
||||
|
||||
/**
|
||||
* 查询在床患者信息
|
||||
*
|
||||
* @return 在床患者信息
|
||||
*/
|
||||
List<InBedPatientInfoDto> getInBedPatientInfo();
|
||||
|
||||
/**
|
||||
* 滚护理费
|
||||
*
|
||||
* @param tenantId 租户id
|
||||
* @param orderPricing 医嘱定价来源 | 定时任务调用时传参
|
||||
*/
|
||||
void autoRollNursingFee(Integer tenantId,String orderPricing);
|
||||
|
||||
/**
|
||||
* 滚基础服务费
|
||||
*
|
||||
* @param tenantId 租户id
|
||||
* @param orderPricing 医嘱定价来源 | 定时任务调用时传参
|
||||
*/
|
||||
void autoRollBasicService(Integer tenantId,String orderPricing);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,354 @@
|
||||
package com.openhis.web.inhospitalnursestation.appservice.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.core.common.utils.SecurityUtils;
|
||||
import com.openhis.administration.domain.ChargeItem;
|
||||
import com.openhis.administration.service.IChargeItemService;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.template.domain.EncounterAutoRoll;
|
||||
import com.openhis.template.service.IEncounterAutoRollService;
|
||||
import com.openhis.web.doctorstation.appservice.IDoctorStationAdviceAppService;
|
||||
import com.openhis.web.doctorstation.dto.AdviceBaseDto;
|
||||
import com.openhis.web.doctorstation.dto.AdvicePriceDto;
|
||||
import com.openhis.web.inhospitalnursestation.appservice.IEncounterAutoRollAppService;
|
||||
import com.openhis.web.inhospitalnursestation.dto.*;
|
||||
import com.openhis.web.inhospitalnursestation.mapper.EncounterAutoRollAppMapper;
|
||||
|
||||
/**
|
||||
* 住院就诊滚方 应用实现类
|
||||
*/
|
||||
@Service
|
||||
public class EncounterAutoRollAppServiceImpl implements IEncounterAutoRollAppService {
|
||||
|
||||
@Resource
|
||||
EncounterAutoRollAppMapper encounterAutoRollAppMapper;
|
||||
|
||||
@Resource
|
||||
IEncounterAutoRollService encounterAutoRollService;
|
||||
|
||||
@Resource
|
||||
IDoctorStationAdviceAppService doctorStationAdviceAppService;
|
||||
|
||||
@Resource
|
||||
IChargeItemService chargeItemService;
|
||||
|
||||
@Resource
|
||||
AssignSeqUtil assignSeqUtil;
|
||||
|
||||
/**
|
||||
* 查询自动滚方数据源
|
||||
*
|
||||
* @return 自动滚方数据源
|
||||
*/
|
||||
@Override
|
||||
public List<AutoRollSourceDto> getSource() {
|
||||
return encounterAutoRollAppMapper.getSource(PublicationStatus.ACTIVE.getValue(),
|
||||
ActivityDefCategory.BASIC_SERVICE.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存住院就诊的滚方信息
|
||||
*
|
||||
* @param encounterAutoRollSaveDto 住院就诊的滚方信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> saveBinding(EncounterAutoRollSaveDto encounterAutoRollSaveDto) {
|
||||
// 当前登录账号参与者id
|
||||
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
||||
// 当前登录账号科室id
|
||||
Long orgId = SecurityUtils.getLoginUser().getOrgId();
|
||||
|
||||
// 就诊id
|
||||
Long encounterId = encounterAutoRollSaveDto.getEncounterId();
|
||||
// 实例id
|
||||
Long instanceId = encounterAutoRollSaveDto.getInstanceId();
|
||||
// 数量
|
||||
BigDecimal quantity = encounterAutoRollSaveDto.getQuantity();
|
||||
|
||||
long count = encounterAutoRollService.count(new LambdaQueryWrapper<EncounterAutoRoll>()
|
||||
.eq(EncounterAutoRoll::getEncounterId, encounterId).eq(EncounterAutoRoll::getInstanceId, instanceId));
|
||||
if (count > 0L) {
|
||||
return R.fail("当前患者已经存在该信息,请勿重复绑定");
|
||||
}
|
||||
EncounterAutoRoll encounterAutoRoll = new EncounterAutoRoll();
|
||||
encounterAutoRoll.setStatusEnum(PublicationStatus.ACTIVE.getValue()); // 状态
|
||||
encounterAutoRoll.setEncounterId(encounterId);
|
||||
encounterAutoRoll.setInstanceTable(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION);
|
||||
encounterAutoRoll.setInstanceId(instanceId);
|
||||
encounterAutoRoll.setQuantity(quantity);
|
||||
encounterAutoRoll.setPractitionerId(practitionerId); // 参与者id
|
||||
encounterAutoRoll.setOrganizationId(orgId); // 参与者科室id
|
||||
encounterAutoRollService.save(encounterAutoRoll);
|
||||
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"滚方信息"}));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询住院就诊滚方绑定信息
|
||||
*
|
||||
* @param encounterId 就诊id
|
||||
* @return 住院就诊滚方绑定信息
|
||||
*/
|
||||
@Override
|
||||
public List<EncounterAutoRollQueryDto> getEncounter(Long encounterId) {
|
||||
List<EncounterAutoRollQueryDto> encounter = encounterAutoRollAppMapper.getEncounter(encounterId);
|
||||
for (EncounterAutoRollQueryDto encounterAutoRollQueryDto : encounter) {
|
||||
encounterAutoRollQueryDto.setStatusEnum_enumText(
|
||||
EnumUtils.getInfoByValue(PublicationStatus.class, encounterAutoRollQueryDto.getStatusEnum()));
|
||||
}
|
||||
return encounter;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除住院就诊的滚方信息
|
||||
*
|
||||
* @param id id
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> deleteBinding(Long id) {
|
||||
boolean res = encounterAutoRollService.removeById(id);
|
||||
if (res) {
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[] {"滚方信息"}));
|
||||
} else {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用or停用
|
||||
*
|
||||
* @param id id
|
||||
* @param status 状态
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> activeOrRetired(Long id, Integer status) {
|
||||
EncounterAutoRoll encounterAutoRoll = new EncounterAutoRoll();
|
||||
encounterAutoRoll.setId(id);
|
||||
encounterAutoRoll.setStatusEnum(status); // 状态
|
||||
boolean res = encounterAutoRollService.updateById(encounterAutoRoll);
|
||||
if (res) {
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[] {"变更状态"}));
|
||||
} else {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询在床患者信息
|
||||
*
|
||||
* @return 在床患者信息
|
||||
*/
|
||||
@Override
|
||||
public List<InBedPatientInfoDto> getInBedPatientInfo() {
|
||||
return encounterAutoRollAppMapper.getInBedPatientInfo(PublicationStatus.ACTIVE.getValue(),
|
||||
EncounterClass.IMP.getValue(), LocationForm.BED.getValue(), AccountType.PERSONAL_CASH_ACCOUNT.getCode(),
|
||||
Whether.YES.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* 滚护理费
|
||||
*
|
||||
* @param tenantId 租户id
|
||||
* @param orderPricing 医嘱定价来源 | 定时任务调用时传参
|
||||
*/
|
||||
@Override
|
||||
public void autoRollNursingFee(Integer tenantId, String orderPricing) {
|
||||
// 当前时间
|
||||
Date date = new Date();
|
||||
// 在床患者信息
|
||||
List<InBedPatientInfoDto> inBedPatientInfo = this.getInBedPatientInfo();
|
||||
// 就诊id集合
|
||||
List<Long> encounterIdList =
|
||||
inBedPatientInfo.stream().map(InBedPatientInfoDto::getEncounterId).collect(Collectors.toList());
|
||||
if (!encounterIdList.isEmpty()) {
|
||||
// 需要自动计费的护理医嘱
|
||||
List<AutoRollNursingDto> nursingRequest = encounterAutoRollAppMapper.getNursingRequest(
|
||||
RequestStatus.COMPLETED.getValue(), ActivityDefCategory.NURSING.getValue(), encounterIdList);
|
||||
if (!nursingRequest.isEmpty()) {
|
||||
System.out.println("**************滚护理费start****************");
|
||||
// 赋值计费的相关字段
|
||||
nursingRequest.forEach(nursingDto -> {
|
||||
inBedPatientInfo.stream()
|
||||
.filter(patientInfo -> patientInfo.getEncounterId().equals(nursingDto.getEncounterId()))
|
||||
.findFirst() // 匹配到第一个就返回
|
||||
.ifPresent(patientInfo -> {
|
||||
nursingDto.setAccountId(patientInfo.getAccountId()); // 账号id
|
||||
nursingDto.setConditionId(patientInfo.getConditionId()); // 诊断ID
|
||||
nursingDto.setEncounterDiagnosisId(patientInfo.getEncounterDiagnosisId()); // 就诊诊断id
|
||||
nursingDto.setOrganizationId(patientInfo.getOrganizationId()); // 住院科室id
|
||||
});
|
||||
});
|
||||
// 诊疗定义id集合
|
||||
List<Long> activityDefinitionIdList = nursingRequest.stream()
|
||||
.map(AutoRollNursingDto::getActivityDefinitionId).collect(Collectors.toList());
|
||||
// 诊疗医嘱信息
|
||||
List<AdviceBaseDto> activityInfos = doctorStationAdviceAppService.getAdviceBaseInfo(null, null, null,
|
||||
activityDefinitionIdList, 0L, 1, 500, Whether.NO.getValue(), List.of(3), orderPricing).getRecords();
|
||||
|
||||
// 计费
|
||||
ChargeItem chargeItem;
|
||||
for (AutoRollNursingDto autoRollNursingDto : nursingRequest) {
|
||||
// 当天是否已经生成了账单
|
||||
long count = chargeItemService.count(new LambdaQueryWrapper<ChargeItem>()
|
||||
.eq(ChargeItem::getEncounterId, autoRollNursingDto.getEncounterId())
|
||||
.eq(ChargeItem::getProductId, autoRollNursingDto.getActivityDefinitionId())
|
||||
.apply("DATE(entered_date) = CURRENT_DATE"));
|
||||
if (count > 0L) {
|
||||
break;
|
||||
}
|
||||
chargeItem = new ChargeItem();
|
||||
chargeItem.setTenantId(tenantId); // 租户id
|
||||
chargeItem.setStatusEnum(ChargeItemStatus.DRAFT.getValue()); // 收费状态
|
||||
chargeItem.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix(), 4));
|
||||
chargeItem.setGenerateSourceEnum(GenerateSource.AUTO_ROLL_FEES.getValue()); // 生成来源
|
||||
chargeItem.setPatientId(autoRollNursingDto.getPatientId()); // 患者
|
||||
chargeItem.setContextEnum(ChargeItemContext.ACTIVITY.getValue()); // 类型
|
||||
chargeItem.setEncounterId(autoRollNursingDto.getEncounterId()); // 就诊id
|
||||
chargeItem.setEntererId(autoRollNursingDto.getRequesterId());// 开立人ID
|
||||
chargeItem.setEnteredDate(date); // 开立时间
|
||||
chargeItem.setProductTable(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION);// 产品所在表
|
||||
chargeItem.setProductId(autoRollNursingDto.getActivityDefinitionId());// 收费项id
|
||||
chargeItem.setAccountId(autoRollNursingDto.getAccountId());// 关联账户ID
|
||||
chargeItem.setRequestingOrgId(autoRollNursingDto.getOrganizationId()); // 开立科室
|
||||
chargeItem.setConditionId(autoRollNursingDto.getConditionId()); // 诊断id
|
||||
chargeItem.setEncounterDiagnosisId(autoRollNursingDto.getEncounterDiagnosisId()); // 就诊诊断id
|
||||
// 匹配医嘱详细信息
|
||||
Optional<AdviceBaseDto> matchedAdvice = activityInfos.stream().filter(
|
||||
advice -> autoRollNursingDto.getActivityDefinitionId().equals(advice.getAdviceDefinitionId()))
|
||||
.findFirst();
|
||||
// 医嘱信息
|
||||
AdviceBaseDto advice = matchedAdvice.get();
|
||||
|
||||
Optional<AdvicePriceDto> matchedPrice = advice.getPriceList().stream().findFirst();
|
||||
// 医嘱定价信息
|
||||
AdvicePriceDto priceDto = matchedPrice.get();
|
||||
|
||||
BigDecimal price = priceDto.getPrice();
|
||||
chargeItem.setDefinitionId(priceDto.getDefinitionId()); // 费用定价ID
|
||||
chargeItem.setDefDetailId(priceDto.getDefinitionDetailId()); // 定价子表主键
|
||||
chargeItem.setQuantityValue(autoRollNursingDto.getQuantity()); // 数量
|
||||
chargeItem.setUnitPrice(price); // 单价
|
||||
chargeItem.setTotalPrice(
|
||||
autoRollNursingDto.getQuantity().multiply(price).setScale(6, RoundingMode.HALF_UP)); // 总价
|
||||
|
||||
chargeItemService.save(chargeItem);
|
||||
}
|
||||
System.out.println("**************滚护理费end****************");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 滚基础服务费
|
||||
*
|
||||
* @param tenantId 租户id
|
||||
* @param orderPricing 医嘱定价来源 | 定时任务调用时传参
|
||||
*/
|
||||
@Override
|
||||
public void autoRollBasicService(Integer tenantId, String orderPricing) {
|
||||
|
||||
// 当前时间
|
||||
Date date = new Date();
|
||||
// 在床患者信息
|
||||
List<InBedPatientInfoDto> inBedPatientInfo = this.getInBedPatientInfo();
|
||||
// 就诊id集合
|
||||
List<Long> encounterIdList =
|
||||
inBedPatientInfo.stream().map(InBedPatientInfoDto::getEncounterId).collect(Collectors.toList());
|
||||
if (!encounterIdList.isEmpty()) {
|
||||
// 需要自动计费的绑定基础服务信息
|
||||
List<AutoRollBasicServiceDto> autoRollBasicService = encounterAutoRollAppMapper
|
||||
.getAutoRollBasicService(PublicationStatus.ACTIVE.getValue(), encounterIdList);
|
||||
if (!autoRollBasicService.isEmpty()) {
|
||||
System.out.println("**************滚基础服务费start****************");
|
||||
// 赋值计费的相关字段
|
||||
autoRollBasicService.forEach(basicServiceDto -> {
|
||||
inBedPatientInfo.stream()
|
||||
.filter(patientInfo -> patientInfo.getEncounterId().equals(basicServiceDto.getEncounterId()))
|
||||
.findFirst() // 匹配到第一个就返回
|
||||
.ifPresent(patientInfo -> {
|
||||
basicServiceDto.setAccountId(patientInfo.getAccountId()); // 账号id
|
||||
basicServiceDto.setConditionId(patientInfo.getConditionId()); // 诊断ID
|
||||
basicServiceDto.setEncounterDiagnosisId(patientInfo.getEncounterDiagnosisId()); // 就诊诊断id
|
||||
basicServiceDto.setPatientId(patientInfo.getPatientId()); // 患者id
|
||||
});
|
||||
});
|
||||
// 诊疗定义id集合
|
||||
List<Long> activityDefinitionIdList = autoRollBasicService.stream()
|
||||
.map(AutoRollBasicServiceDto::getActivityDefinitionId).collect(Collectors.toList());
|
||||
// 诊疗医嘱信息
|
||||
List<AdviceBaseDto> activityInfos = doctorStationAdviceAppService.getAdviceBaseInfo(null, null, null,
|
||||
activityDefinitionIdList, 0L, 1, 500, Whether.NO.getValue(), List.of(3), orderPricing).getRecords();
|
||||
// 计费
|
||||
ChargeItem chargeItem;
|
||||
for (AutoRollBasicServiceDto autoRollBasicServiceDto : autoRollBasicService) {
|
||||
// 当天是否已经生成了账单
|
||||
long count = chargeItemService.count(new LambdaQueryWrapper<ChargeItem>()
|
||||
.eq(ChargeItem::getEncounterId, autoRollBasicServiceDto.getEncounterId())
|
||||
.eq(ChargeItem::getProductId, autoRollBasicServiceDto.getActivityDefinitionId())
|
||||
.apply("DATE(entered_date) = CURRENT_DATE"));
|
||||
if (count > 0L) {
|
||||
break;
|
||||
}
|
||||
chargeItem = new ChargeItem();
|
||||
chargeItem.setTenantId(tenantId); // 租户id
|
||||
chargeItem.setStatusEnum(ChargeItemStatus.DRAFT.getValue()); // 收费状态
|
||||
chargeItem.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix(), 4));
|
||||
chargeItem.setGenerateSourceEnum(GenerateSource.AUTO_ROLL_FEES.getValue()); // 生成来源
|
||||
chargeItem.setPatientId(autoRollBasicServiceDto.getPatientId()); // 患者
|
||||
chargeItem.setContextEnum(ChargeItemContext.ACTIVITY.getValue()); // 类型
|
||||
chargeItem.setEncounterId(autoRollBasicServiceDto.getEncounterId()); // 就诊id
|
||||
chargeItem.setEntererId(autoRollBasicServiceDto.getRequesterId());// 开立人ID
|
||||
chargeItem.setEnteredDate(date); // 开立时间
|
||||
chargeItem.setProductTable(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION);// 产品所在表
|
||||
chargeItem.setProductId(autoRollBasicServiceDto.getActivityDefinitionId());// 收费项id
|
||||
chargeItem.setAccountId(autoRollBasicServiceDto.getAccountId());// 关联账户ID
|
||||
chargeItem.setRequestingOrgId(autoRollBasicServiceDto.getOrganizationId()); // 开立科室
|
||||
chargeItem.setConditionId(autoRollBasicServiceDto.getConditionId()); // 诊断id
|
||||
chargeItem.setEncounterDiagnosisId(autoRollBasicServiceDto.getEncounterDiagnosisId()); // 就诊诊断id
|
||||
// 匹配医嘱详细信息
|
||||
Optional<AdviceBaseDto> matchedAdvice =
|
||||
activityInfos.stream().filter(advice -> autoRollBasicServiceDto.getActivityDefinitionId()
|
||||
.equals(advice.getAdviceDefinitionId())).findFirst();
|
||||
// 医嘱信息
|
||||
AdviceBaseDto advice = matchedAdvice.get();
|
||||
|
||||
Optional<AdvicePriceDto> matchedPrice = advice.getPriceList().stream().findFirst();
|
||||
// 医嘱定价信息
|
||||
AdvicePriceDto priceDto = matchedPrice.get();
|
||||
|
||||
BigDecimal price = priceDto.getPrice();
|
||||
chargeItem.setDefinitionId(priceDto.getDefinitionId()); // 费用定价ID
|
||||
chargeItem.setDefDetailId(priceDto.getDefinitionDetailId()); // 定价子表主键
|
||||
chargeItem.setQuantityValue(autoRollBasicServiceDto.getQuantity()); // 数量
|
||||
chargeItem.setUnitPrice(price); // 单价
|
||||
chargeItem.setTotalPrice(
|
||||
autoRollBasicServiceDto.getQuantity().multiply(price).setScale(6, RoundingMode.HALF_UP)); // 总价
|
||||
|
||||
chargeItemService.save(chargeItem);
|
||||
}
|
||||
System.out.println("**************滚基础服务费end****************");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
package com.openhis.web.inhospitalnursestation.controller;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
import com.openhis.web.inhospitalnursestation.appservice.IEncounterAutoRollAppService;
|
||||
import com.openhis.web.inhospitalnursestation.dto.EncounterAutoRollSaveDto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 住院就诊滚方
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/nurse-station/auto-roll")
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
public class EncounterAutoRollAppController {
|
||||
|
||||
@Resource
|
||||
public IEncounterAutoRollAppService iEncounterAutoRollAppService;
|
||||
|
||||
/**
|
||||
* 查询自动滚方数据源
|
||||
*
|
||||
* @return 自动滚方数据源
|
||||
*/
|
||||
@GetMapping(value = "/source-info")
|
||||
public R<?> getSource() {
|
||||
return R.ok(iEncounterAutoRollAppService.getSource());
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存住院就诊的滚方信息
|
||||
*
|
||||
* @param encounterAutoRollSaveDto 住院就诊的滚方信息
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping(value = "/save-binding")
|
||||
public R<?> saveBinding(@RequestBody EncounterAutoRollSaveDto encounterAutoRollSaveDto) {
|
||||
return iEncounterAutoRollAppService.saveBinding(encounterAutoRollSaveDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询住院就诊滚方绑定信息
|
||||
*
|
||||
* @param encounterId 就诊id
|
||||
* @return 住院就诊滚方绑定信息
|
||||
*/
|
||||
@GetMapping(value = "/encounter-info")
|
||||
public R<?> getEncounter(@RequestParam(value = "encounterId") Long encounterId) {
|
||||
return R.ok(iEncounterAutoRollAppService.getEncounter(encounterId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除住院就诊的滚方信息
|
||||
*
|
||||
* @param id id
|
||||
* @return 结果
|
||||
*/
|
||||
@DeleteMapping("/delete-binding")
|
||||
public R<?> deleteBinding(@RequestParam Long id) {
|
||||
return R.ok(iEncounterAutoRollAppService.deleteBinding(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用
|
||||
*
|
||||
* @param id id
|
||||
* @return 结果
|
||||
*/
|
||||
@PutMapping("/active")
|
||||
public R<?> active(@RequestParam Long id) {
|
||||
return R.ok(iEncounterAutoRollAppService.activeOrRetired(id, PublicationStatus.ACTIVE.getValue()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 停用
|
||||
*
|
||||
* @param id id
|
||||
* @return 结果
|
||||
*/
|
||||
@PutMapping("/retired")
|
||||
public R<?> retired(@RequestParam Long id) {
|
||||
return R.ok(iEncounterAutoRollAppService.activeOrRetired(id, PublicationStatus.RETIRED.getValue()));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -177,5 +177,33 @@ public class AdmissionPatientInfoDto {
|
||||
*/
|
||||
private String editFlag;
|
||||
|
||||
// TODO 体温单相关字段
|
||||
|
||||
/**
|
||||
* 身高
|
||||
*/
|
||||
private String height;
|
||||
/**
|
||||
* 体重
|
||||
*/
|
||||
private String weight;
|
||||
/**
|
||||
* 体温
|
||||
*/
|
||||
private String temperature;
|
||||
/**
|
||||
* 心率
|
||||
*/
|
||||
private String hertRate;
|
||||
/**
|
||||
* 脉搏
|
||||
*/
|
||||
private String pulse;
|
||||
/**
|
||||
* 低压
|
||||
*/
|
||||
private String endBloodPressure;
|
||||
/**
|
||||
* 高压
|
||||
*/
|
||||
private String highBloodPressure;
|
||||
}
|
||||
|
||||
@@ -29,6 +29,12 @@ public class AdmissionPatientPageDto {
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long encounterId;
|
||||
|
||||
/**
|
||||
* 账号id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 住院号
|
||||
*/
|
||||
@@ -45,6 +51,11 @@ public class AdmissionPatientPageDto {
|
||||
*/
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date startTime;
|
||||
/**
|
||||
* 入科时间
|
||||
*/
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date admissionTime;
|
||||
|
||||
/**
|
||||
* 出院时间
|
||||
@@ -131,4 +142,9 @@ public class AdmissionPatientPageDto {
|
||||
* 费别
|
||||
*/
|
||||
private String contractName;
|
||||
/**
|
||||
* 患者id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long patientId;
|
||||
}
|
||||
|
||||
@@ -3,10 +3,13 @@
|
||||
*/
|
||||
package com.openhis.web.inhospitalnursestation.dto;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* 医嘱执行参数
|
||||
@@ -18,6 +21,13 @@ import lombok.experimental.Accessors;
|
||||
@Accessors(chain = true)
|
||||
public class AdviceExecuteParam {
|
||||
|
||||
/**
|
||||
* 实际执行时间
|
||||
*/
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date exeDate;
|
||||
|
||||
/**
|
||||
* 医嘱执行详细参数
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.openhis.web.inhospitalnursestation.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 自动滚方基础服务 Dto
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AutoRollBasicServiceDto {
|
||||
|
||||
/**
|
||||
* 诊疗定义id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long activityDefinitionId;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 就诊id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long encounterId;
|
||||
|
||||
/**
|
||||
* 住院科室id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long organizationId;
|
||||
|
||||
/**
|
||||
* 患者id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long patientId;
|
||||
|
||||
/**
|
||||
* 账号id | 住院就诊的个人现金账户id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 诊断ID
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long conditionId;
|
||||
|
||||
/**
|
||||
* 就诊诊断id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long encounterDiagnosisId;
|
||||
|
||||
/**
|
||||
* 请求者 | 开方人
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long requesterId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.openhis.web.inhospitalnursestation.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 自动滚方护理医嘱 Dto
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AutoRollNursingDto {
|
||||
|
||||
/**
|
||||
* 诊疗定义id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long activityDefinitionId;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 就诊id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long encounterId;
|
||||
|
||||
/**
|
||||
* 住院科室id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long organizationId;
|
||||
|
||||
/**
|
||||
* 患者id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long patientId;
|
||||
|
||||
/**
|
||||
* 账号id | 住院就诊的个人现金账户id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 诊断ID
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long conditionId;
|
||||
|
||||
/**
|
||||
* 就诊诊断id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long encounterDiagnosisId;
|
||||
|
||||
/**
|
||||
* 请求者 | 开方医生
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long requesterId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.openhis.web.inhospitalnursestation.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 自动滚方数据源 Dto
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AutoRollSourceDto {
|
||||
|
||||
/**
|
||||
* 实例id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long instanceId;
|
||||
|
||||
/**
|
||||
* 实例名称
|
||||
*/
|
||||
private String instanceName;
|
||||
|
||||
/**
|
||||
* 使用单位
|
||||
*/
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String permittedUnitCode;
|
||||
private String permittedUnitCode_dictText;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.openhis.web.inhospitalnursestation.dto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.core.common.annotation.Excel;
|
||||
import com.openhis.administration.dto.CostDetailDto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 住院记账-费用明细导出专用DTO
|
||||
*
|
||||
* @author swb
|
||||
* @date 2025/12/19
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class CostDetailExcelOutDto {
|
||||
/**
|
||||
* 就诊ID
|
||||
*/
|
||||
private Long encounterId;
|
||||
/**
|
||||
* 费用明细列表
|
||||
*/
|
||||
@Excel()
|
||||
private List<CostDetailDto> data;
|
||||
/**
|
||||
* 患者姓名
|
||||
*/
|
||||
@Excel(name = "姓名", sort = 1, needMerge = true)
|
||||
private String name;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.openhis.web.inhospitalnursestation.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 就诊消费 dto
|
||||
*
|
||||
* @author: 1x1
|
||||
* @date: 2025/11/19 13:50
|
||||
*/
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class EncounterAccountDto {
|
||||
|
||||
// 就诊ID
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long encounterId;
|
||||
|
||||
// 预交金
|
||||
private BigDecimal advanceAmount;
|
||||
|
||||
// 总额
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
// 余额
|
||||
private BigDecimal balanceAmount;
|
||||
|
||||
// 险种类型
|
||||
private String insutype;
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.openhis.web.inhospitalnursestation.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 自动滚方绑定 查询Dto
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class EncounterAutoRollQueryDto {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 状态 */
|
||||
private Integer statusEnum;
|
||||
private String statusEnum_enumText;
|
||||
|
||||
/** 数量 */
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unitCodeName;
|
||||
|
||||
/**
|
||||
* 服务定义名称
|
||||
*/
|
||||
private String definitionName;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.openhis.web.inhospitalnursestation.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 自动滚方绑定 保存Dto
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class EncounterAutoRollSaveDto {
|
||||
|
||||
/**
|
||||
* 就诊id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long encounterId;
|
||||
|
||||
/**
|
||||
* 实例id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long instanceId;
|
||||
|
||||
/** 数量 */
|
||||
private BigDecimal quantity;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.openhis.web.inhospitalnursestation.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 在床患者信息 Dto
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class InBedPatientInfoDto {
|
||||
|
||||
/**
|
||||
* 就诊id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long encounterId;
|
||||
|
||||
/**
|
||||
* 住院科室id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long organizationId;
|
||||
|
||||
/**
|
||||
* 患者id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long patientId;
|
||||
|
||||
/**
|
||||
* 账号id | 住院就诊的个人现金账户id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 诊断ID
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long conditionId;
|
||||
|
||||
/**
|
||||
* 就诊诊断id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long encounterDiagnosisId;
|
||||
|
||||
}
|
||||
@@ -242,4 +242,18 @@ public class InpatientAdviceDto {
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long performerCheckId;
|
||||
|
||||
/**
|
||||
* 药品/服务类型
|
||||
*/
|
||||
private Integer categoryCode;
|
||||
/**
|
||||
* 执行科室
|
||||
*/
|
||||
private String orgName;
|
||||
/** 单价 */
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
/** 总价 */
|
||||
private BigDecimal totalPrice;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
package com.openhis.web.inhospitalnursestation.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 待配/退药 dto
|
||||
*
|
||||
* @Author: 1x1
|
||||
* @CreateTime: 2025-11-19 15:49
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class PendingMedicationDto {
|
||||
|
||||
/**
|
||||
* 药品请求ID
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long medicationRequestId;
|
||||
|
||||
/**
|
||||
* 药品发放ID
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long medicationDispenseId;
|
||||
|
||||
/**
|
||||
* 科室
|
||||
*/
|
||||
private String orgName;
|
||||
|
||||
/**
|
||||
* 药房
|
||||
*/
|
||||
private String performLocationName;
|
||||
|
||||
/**
|
||||
* 药品名称
|
||||
*/
|
||||
private String medicationName;
|
||||
|
||||
/**
|
||||
* 药品规格
|
||||
*/
|
||||
private String medicationSpec;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
/**
|
||||
* 待退数量
|
||||
*/
|
||||
private BigDecimal requestQuantity;
|
||||
|
||||
/**
|
||||
* 待配数量
|
||||
*/
|
||||
private BigDecimal dispenseQuantity;
|
||||
/**
|
||||
* 数量单位编码
|
||||
*/
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String unitCode;
|
||||
private String unitCode_dictText;
|
||||
|
||||
/**
|
||||
* 总价
|
||||
*/
|
||||
private BigDecimal totalPrice;
|
||||
|
||||
/**
|
||||
* 发药人ID
|
||||
*/
|
||||
private Long dispensePractitionerId;
|
||||
|
||||
/**
|
||||
* 发药人姓名
|
||||
*/
|
||||
private String dispensePractitionerName;
|
||||
|
||||
/**
|
||||
* 预定发药时间
|
||||
*/
|
||||
|
||||
private Date plannedDispenseTime;
|
||||
|
||||
/**
|
||||
* 请求状态
|
||||
*/
|
||||
private Integer requestStatusEnum;
|
||||
|
||||
/**
|
||||
* 发放状态
|
||||
*/
|
||||
private Integer dispenseStatusEnum;
|
||||
|
||||
}
|
||||
@@ -3,16 +3,16 @@
|
||||
*/
|
||||
package com.openhis.web.inhospitalnursestation.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.web.inhospitalnursestation.dto.AdmissionBedPageDto;
|
||||
import com.openhis.web.inhospitalnursestation.dto.AdmissionPageParam;
|
||||
import com.openhis.web.inhospitalnursestation.dto.AdmissionPatientInfoDto;
|
||||
import com.openhis.web.inhospitalnursestation.dto.AdmissionPatientPageDto;
|
||||
import com.openhis.web.common.dto.PerformRecordDto;
|
||||
import com.openhis.web.inhospitalnursestation.dto.*;
|
||||
|
||||
/**
|
||||
* 入出转管理 appMapper
|
||||
@@ -82,4 +82,74 @@ public interface ATDManageAppMapper {
|
||||
@Param("bed") Integer bed, @Param("primaryNurse") String primaryNurse,
|
||||
@Param("attendingDoctor") String attendingDoctor, @Param("admittingDoctor") String admittingDoctor,
|
||||
@Param("chiefDoctor") String chiefDoctor);
|
||||
|
||||
/**
|
||||
* 诊断个人账户金额信息获取
|
||||
*
|
||||
* @param personalCashAccount 账户类型:个人现金账户
|
||||
* @param billable 收费状态:待结算
|
||||
* @param billed 收费状态:已结算
|
||||
* @param refunded 收费状态:已退费
|
||||
* @param encounterId 诊断id
|
||||
* @return EncounterAccountDto 诊断账户金额
|
||||
**/
|
||||
EncounterAccountDto getAmount(@Param("personalCashAccount") String personalCashAccount,
|
||||
@Param("billable") Integer billable, @Param("billed") Integer billed, @Param("refunded") Integer refunded,
|
||||
@Param("encounterId") Long encounterId);
|
||||
|
||||
/**
|
||||
* 获取待配/退药
|
||||
*
|
||||
* @param encounterId 诊断id
|
||||
* @param preparationStatus 配药状态:待配
|
||||
* @param summarizedStatus 配药状态:已汇总
|
||||
* @param requestStatus 发药状态:待退
|
||||
* @param tenantId 租户id
|
||||
* @return PendingMedicationDto 待配/退药
|
||||
**/
|
||||
List<PendingMedicationDto> getPendingMedication(@Param("encounterId") Long encounterId,
|
||||
@Param("preparationStatus") Integer preparationStatus, @Param("summarizedStatus") Integer summarizedStatus,
|
||||
@Param("requestStatus") Integer requestStatus, @Param("tenantId") Integer tenantId);
|
||||
|
||||
/**
|
||||
* 查询医嘱分页列表
|
||||
*
|
||||
* @param page 分页信息
|
||||
* @param queryWrapper 查询条件
|
||||
* @param worServiceRequest 请求所在表:服务请求
|
||||
* @param medMedicationRequest 请求所在表:药品请求
|
||||
* @param draft 医嘱状态:待发送
|
||||
* @param stopped 医嘱状态:停嘱
|
||||
* @param active 住院位置状态:使用中
|
||||
* @param bed 位置类型:病床
|
||||
* @param admittingDoctor 住院医生
|
||||
* @param personalCashAccount 个人现金账户
|
||||
* @param billable 收费状态:待结算
|
||||
* @param billed 收费状态:已结算
|
||||
* @param refunded 收费状态:已退费
|
||||
* @param imp 患者状态:住院
|
||||
* @param doctorPrescription 医嘱类型:医生开立
|
||||
* @param transfer 特殊医嘱:转科
|
||||
* @param discharge 特殊医嘱:出院
|
||||
* @param nursing 特殊医嘱:护理级别
|
||||
* @return 医嘱分页列表
|
||||
*/
|
||||
Page<InpatientAdviceDto> selectInpatientAdvicePage(@Param("page") Page<InpatientAdviceDto> page,
|
||||
@Param(Constants.WRAPPER) QueryWrapper<InpatientAdviceParam> queryWrapper,
|
||||
@Param("medMedicationRequest") String medMedicationRequest,
|
||||
@Param("worServiceRequest") String worServiceRequest, @Param("draft") Integer draft,
|
||||
@Param("stopped") Integer stopped, @Param("active") Integer active, @Param("bed") Integer bed,
|
||||
@Param("admittingDoctor") String admittingDoctor, @Param("personalCashAccount") String personalCashAccount,
|
||||
@Param("billable") Integer billable, @Param("billed") Integer billed, @Param("refunded") Integer refunded,
|
||||
@Param("imp") Integer imp, @Param("doctorPrescription") Integer doctorPrescription,
|
||||
@Param("transfer") String transfer, @Param("discharge") String discharge, @Param("nursing") String nursing);
|
||||
|
||||
/**
|
||||
* 查询执行记录
|
||||
*
|
||||
* @param reqIds 项目ids
|
||||
* @return 执行记录列表
|
||||
*/
|
||||
List<PerformRecordDto> selectPerformRecordList(@Param("reqIds") List<Long> reqIds);
|
||||
|
||||
}
|
||||
|
||||
@@ -35,13 +35,14 @@ public interface AdviceProcessAppMapper {
|
||||
* @param ward 位置类型:病区
|
||||
* @param house 位置类型:病房
|
||||
* @param bed 位置类型:病床
|
||||
* @param personalCashAccount 个人现金账户
|
||||
* @return 入院患者分页列表
|
||||
*/
|
||||
Page<AdmissionPatientPageDto> selectInpatientPage(@Param("page") Page<AdmissionPatientPageDto> page,
|
||||
@Param(Constants.WRAPPER) QueryWrapper<AdmissionPageParam> queryWrapper, @Param("imp") Integer imp,
|
||||
@Param("toBeRegistered") Integer toBeRegistered, @Param("registered") Integer registered,
|
||||
@Param("active") Integer active, @Param("ward") Integer ward, @Param("house") Integer house,
|
||||
@Param("bed") Integer bed);
|
||||
@Param("bed") Integer bed, @Param("personalCashAccount") String personalCashAccount);
|
||||
|
||||
/**
|
||||
* 查询医嘱分页列表
|
||||
@@ -59,6 +60,7 @@ public interface AdviceProcessAppMapper {
|
||||
* @param billed 收费状态:已结算
|
||||
* @param refunded 收费状态:已退费
|
||||
* @param imp 患者状态:住院
|
||||
* @param doctorPrescription 医嘱类型:医生开立
|
||||
* @return 医嘱分页列表
|
||||
*/
|
||||
Page<InpatientAdviceDto> selectInpatientAdvicePage(@Param("page") Page<InpatientAdviceDto> page,
|
||||
@@ -67,5 +69,6 @@ public interface AdviceProcessAppMapper {
|
||||
@Param("worServiceRequest") String worServiceRequest, @Param("draft") Integer draft,
|
||||
@Param("active") Integer active, @Param("bed") Integer bed, @Param("admittingDoctor") String admittingDoctor,
|
||||
@Param("personalCashAccount") String personalCashAccount, @Param("billable") Integer billable,
|
||||
@Param("billed") Integer billed, @Param("refunded") Integer refunded, @Param("imp") Integer imp);
|
||||
@Param("billed") Integer billed, @Param("refunded") Integer refunded, @Param("imp") Integer imp,
|
||||
@Param("doctorPrescription") Integer doctorPrescription);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.inhospitalnursestation.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.openhis.web.inhospitalnursestation.dto.*;
|
||||
|
||||
/**
|
||||
* 住院就诊滚方
|
||||
*/
|
||||
@Repository
|
||||
public interface EncounterAutoRollAppMapper {
|
||||
|
||||
/**
|
||||
* 查询自动滚方数据源
|
||||
*
|
||||
* @param status 状态
|
||||
* @param basicService 基础服务
|
||||
* @return 自动滚方数据源
|
||||
*/
|
||||
List<AutoRollSourceDto> getSource(@Param("status") Integer status, @Param("basicService") String basicService);
|
||||
|
||||
/**
|
||||
* 查询住院就诊滚方绑定信息
|
||||
*
|
||||
* @param encounterId 就诊id
|
||||
* @return 住院就诊滚方绑定信息
|
||||
*/
|
||||
List<EncounterAutoRollQueryDto> getEncounter(@Param("encounterId") Long encounterId);
|
||||
|
||||
/**
|
||||
* 查询在床患者信息
|
||||
*
|
||||
* @param status 启用状态
|
||||
* @param classEnum 就诊类型
|
||||
* @param formEnum 床位
|
||||
* @param typeCode 个人现金账号
|
||||
* @param maindiseFlag 主诊断标识
|
||||
* @return 在床患者信息
|
||||
*/
|
||||
List<InBedPatientInfoDto> getInBedPatientInfo(@Param("status") Integer status,
|
||||
@Param("classEnum") Integer classEnum, @Param("formEnum") Integer formEnum, @Param("typeCode") String typeCode,
|
||||
@Param("maindiseFlag") Integer maindiseFlag);
|
||||
|
||||
/**
|
||||
* 查询需要自动计费的护理医嘱
|
||||
*
|
||||
* @param status 状态为已完成(已校对)
|
||||
* @param categoryEnum 类型为护理
|
||||
* @param encounterIdList 就诊id集合
|
||||
* @return 需要自动计费的护理医嘱
|
||||
*/
|
||||
List<AutoRollNursingDto> getNursingRequest(@Param("status") Integer status,
|
||||
@Param("categoryEnum") Integer categoryEnum, @Param("encounterIdList") List<Long> encounterIdList);
|
||||
|
||||
/**
|
||||
* 查询需要自动计费的绑定基础服务信息
|
||||
*
|
||||
* @param status 状态
|
||||
* @param encounterIdList 就诊id集合
|
||||
* @return 需要自动计费的绑定基础服务信息
|
||||
*/
|
||||
List<AutoRollBasicServiceDto> getAutoRollBasicService(@Param("status") Integer status,
|
||||
@Param("encounterIdList") List<Long> encounterIdList);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user