目录更新
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package com.openhis.web.datadictionary.appservice;
|
||||
|
||||
import com.openhis.medication.domain.MedicationDetail;
|
||||
import com.openhis.web.datadictionary.dto.MedicationManageUpDto;
|
||||
|
||||
/**
|
||||
* 项目定价
|
||||
*
|
||||
* @author liuhr
|
||||
* @date 2025/3/25
|
||||
*/
|
||||
public interface IItemDefinitionService {
|
||||
|
||||
/**
|
||||
* 添加项目定价
|
||||
*
|
||||
* @param medicationManageUpDto 药品目录信息
|
||||
* @param medicationDetail 药品信息
|
||||
*/
|
||||
boolean addItem(MedicationManageUpDto medicationManageUpDto, MedicationDetail medicationDetail);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.openhis.web.datadictionary.appservice.impl;
|
||||
|
||||
import com.openhis.administration.domain.ChargeItemDefDetail;
|
||||
import com.openhis.administration.service.IChargeItemDefinitionService;
|
||||
import com.openhis.workflow.domain.ServiceRequest;
|
||||
import liquibase.pro.packaged.S;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.core.common.utils.DateUtils;
|
||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||
import com.openhis.administration.service.IChargeItemDefDetailService;
|
||||
import com.openhis.administration.service.IChargeItemService;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
import com.openhis.common.enums.Whether;
|
||||
import com.openhis.medication.domain.MedicationDetail;
|
||||
import com.openhis.web.datadictionary.appservice.IItemDefinitionService;
|
||||
import com.openhis.web.datadictionary.dto.MedicationManageUpDto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 项目定价 实现
|
||||
*
|
||||
* @author liuhr
|
||||
* @date 2025/3/25
|
||||
*/
|
||||
@Service
|
||||
public class ItemDefinitionServiceImpl implements IItemDefinitionService {
|
||||
|
||||
@Autowired
|
||||
IChargeItemDefinitionService chargeItemDefinitionService;
|
||||
|
||||
@Autowired
|
||||
IChargeItemDefDetailService chargeItemDefDetailService;
|
||||
|
||||
/**
|
||||
* 添加项目定价
|
||||
*
|
||||
* @param medicationManageUpDto 药品目录信息
|
||||
* @param medicationDetail 药品信息
|
||||
*/
|
||||
@Override
|
||||
public boolean addItem(MedicationManageUpDto medicationManageUpDto, MedicationDetail medicationDetail) {
|
||||
|
||||
ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition();
|
||||
chargeItemDefinition.setChargeName(medicationDetail.getName())
|
||||
.setStatusEnum(PublicationStatus.ACTIVE.getValue())
|
||||
.setInstanceTable(CommonConstants.TableName.MED_MEDICATION_DEFINITION)
|
||||
.setInstanceId(medicationDetail.getMedicationDefId()).setEffectiveStart(DateUtils.getNowDate())
|
||||
// todo 机构ID后续修改
|
||||
.setOrgId(1L)
|
||||
// 财务类别
|
||||
.setTypeCode(medicationManageUpDto.getMinimalFee())
|
||||
// 医保类别
|
||||
.setYbType(medicationManageUpDto.getYbType()).setConditionFlag(Whether.YES.getValue())
|
||||
.setPrice(medicationManageUpDto.getRetailPrice());
|
||||
boolean insertCIDSuccess = chargeItemDefinitionService.save(chargeItemDefinition);
|
||||
|
||||
if (insertCIDSuccess) {
|
||||
List<ChargeItemDefDetail> shargeItemDefDetails = new ArrayList<>();
|
||||
ChargeItemDefDetail chargeItemDefDetail1 = new ChargeItemDefDetail();
|
||||
chargeItemDefDetail1.setDefinitionId(chargeItemDefinition.getId())
|
||||
// 单位+批次(unit,pici) 用,符号拼装
|
||||
.setConditionCode(
|
||||
medicationManageUpDto.getDoseUnitCode_dictText() + "," + medicationManageUpDto.getLotNumber());
|
||||
// .setAmount(1)
|
||||
shargeItemDefDetails.add(chargeItemDefDetail1);
|
||||
}
|
||||
// 添加子表信息
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -11,6 +11,13 @@ import java.util.stream.Stream;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.core.common.core.domain.entity.SysDictData;
|
||||
import com.core.common.utils.ChineseConvertUtils;
|
||||
import com.core.system.service.ISysDictTypeService;
|
||||
import com.openhis.administration.domain.Supplier;
|
||||
import com.openhis.administration.service.ISupplierService;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.web.datadictionary.appservice.IItemDefinitionService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -25,7 +32,6 @@ import com.core.common.utils.SecurityUtils;
|
||||
import com.core.common.utils.bean.BeanUtils;
|
||||
import com.core.common.utils.poi.ExcelUtil;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.AccountStatus;
|
||||
import com.openhis.common.enums.ApplicableScope;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
@@ -57,6 +63,14 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
||||
|
||||
@Autowired
|
||||
private MedicationManageSearchMapper medicationManageSearchMapper;
|
||||
@Autowired
|
||||
private ISupplierService supplierService;
|
||||
|
||||
@Autowired
|
||||
private ISysDictTypeService sysDictTypeService;
|
||||
|
||||
@Autowired
|
||||
private IItemDefinitionService itemDefinitionServic;
|
||||
|
||||
/**
|
||||
* 药品目录初始化
|
||||
@@ -75,9 +89,25 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
||||
List<MedicationManageInitDto.domainEnumOption> domainEnumOptions = Stream.of(ApplicableScope.values())
|
||||
.map(domain -> new MedicationManageInitDto.domainEnumOption(domain.getValue(), domain.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
// 查询供应商列表
|
||||
List<Supplier> supplierList = supplierService.getList();
|
||||
// 供应商信息
|
||||
List<MedicationManageInitDto.supplierListOption> supplierListOptions = supplierList.stream()
|
||||
.map(supplier -> new MedicationManageInitDto.supplierListOption(supplier.getId(), supplier.getName()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 获取药品分类
|
||||
List<SysDictData> medicalList =
|
||||
sysDictTypeService.selectDictDataByType(CommonConstants.DictName.MED_CATEGORY_CODE);
|
||||
// 获取药品分类List
|
||||
List<MedicationManageInitDto.dictCategoryCode> medicationListOptions = medicalList.stream()
|
||||
.map(status -> new MedicationManageInitDto.dictCategoryCode(status.getDictValue(), status.getDictLabel()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
medicationManageInitDto.setStatusFlagOptions(statusEnumOptions);
|
||||
medicationManageInitDto.setDomainFlagOptions(domainEnumOptions);
|
||||
medicationManageInitDto.setSupplierListOptions(supplierListOptions);
|
||||
medicationManageInitDto.setMedicationCategoryCodeOptions(medicationListOptions);
|
||||
return R.ok(medicationManageInitDto);
|
||||
}
|
||||
|
||||
@@ -117,9 +147,9 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
||||
// 药品状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum()));
|
||||
// 活动标记
|
||||
// e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag()));
|
||||
// e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag()));
|
||||
// 适用范围
|
||||
// e.setDomainEnum_enumText(EnumUtils.getInfoByValue(ApplicableScope.class, e.getDomainEnum()));
|
||||
// e.setDomainEnum_enumText(EnumUtils.getInfoByValue(ApplicableScope.class, e.getDomainEnum()));
|
||||
});
|
||||
|
||||
// 返回【药品录列表DTO】分页
|
||||
@@ -138,6 +168,10 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
||||
Medication medication = new Medication();
|
||||
BeanUtils.copyProperties(medicationManageUpDto, medication); // 子表信息
|
||||
BeanUtils.copyProperties(medicationManageUpDto, medicationDefinition);// 主表信息
|
||||
// 拼音码
|
||||
medicationDefinition.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(medicationDefinition.getName()));
|
||||
// 五笔码
|
||||
medicationDefinition.setWbStr(ChineseConvertUtils.toWBFirstLetter(medicationDefinition.getName()));
|
||||
|
||||
// 更新子表药品信息
|
||||
if (medicationService.updateById(medication)) {
|
||||
@@ -223,10 +257,20 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
||||
|
||||
MedicationDetail medicationDetail = new MedicationDetail();
|
||||
BeanUtils.copyProperties(medicationManageUpDto, medicationDetail);
|
||||
// 拼音码
|
||||
medicationDetail.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(medicationDetail.getName()));
|
||||
// 五笔码
|
||||
medicationDetail.setWbStr(ChineseConvertUtils.toWBFirstLetter(medicationDetail.getName()));
|
||||
|
||||
// 新增主表外来药品目录
|
||||
if (medicationDefinitionService.addMedication(medicationDetail)) {
|
||||
|
||||
// 新增子表外来药品目录
|
||||
return medicationService.addMedication(medicationDetail)
|
||||
boolean insertMedicationSuccess = medicationService.addMedication(medicationDetail);
|
||||
// 添加药品成功后,添加相应的条件价格表信息
|
||||
boolean insertItemDefinitionSuccess = itemDefinitionServic.addItem(medicationManageUpDto,medicationDetail);
|
||||
|
||||
return (insertMedicationSuccess || insertItemDefinitionSuccess)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
|
||||
} else {
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.util.stream.Stream;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.openhis.common.enums.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@@ -24,10 +25,6 @@ import com.core.system.service.ISysDictTypeService;
|
||||
import com.openhis.administration.domain.Organization;
|
||||
import com.openhis.administration.service.IOrganizationService;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.ActivityDefCategory;
|
||||
import com.openhis.common.enums.OrganizationType;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
import com.openhis.common.enums.Whether;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.common.utils.HisPageUtils;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
@@ -113,6 +110,13 @@ public class DiagnosisTreatmentController {
|
||||
diseaseTreatmentCategories.add(diseaseTreatmentCategory2);
|
||||
|
||||
diagnosisTreatmentInitDto.setDiseaseTreatmentCategoryList(diseaseTreatmentCategories);
|
||||
|
||||
// 获取类型
|
||||
List<DiagnosisTreatmentInitDto.statusEnumOption> typeEnumOptions = Stream.of(ActivityType.values())
|
||||
.map(status -> new DiagnosisTreatmentInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
diagnosisTreatmentInitDto.setTypeEnumOptions(typeEnumOptions);
|
||||
|
||||
return R.ok(diagnosisTreatmentInitDto);
|
||||
}
|
||||
|
||||
@@ -145,6 +149,8 @@ public class DiagnosisTreatmentController {
|
||||
e.setYbFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbFlag()));
|
||||
// 医保对码标记枚举类回显赋值
|
||||
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag()));
|
||||
//类型举类回显赋值
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(ActivityType.class, e.getTypeEnum()));
|
||||
});
|
||||
|
||||
// 返回【诊疗目录列表DTO】分页
|
||||
|
||||
@@ -8,6 +8,8 @@ import com.openhis.common.enums.PublicationStatus;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 诊疗目录分页检索
|
||||
*
|
||||
@@ -37,7 +39,8 @@ public class DiagnosisTreatmentDto {
|
||||
private String wbStr;
|
||||
|
||||
/** 类型 */
|
||||
private String typeCode;
|
||||
private Integer typeEnum;
|
||||
private String typeEnum_enumText;
|
||||
|
||||
/** 使用单位 */
|
||||
private String permittedUnitCode;
|
||||
@@ -67,4 +70,12 @@ public class DiagnosisTreatmentDto {
|
||||
|
||||
/** 规则id */
|
||||
private Integer ruleId;
|
||||
|
||||
/** 归属科室 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long orgId;
|
||||
|
||||
/** 所在位置 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long locationId;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ public class DiagnosisTreatmentInitDto {
|
||||
private List<statusEnumOption> statusFlagOptions;
|
||||
private List<diseaseTreatmentCategory> diseaseTreatmentCategoryList;
|
||||
private List<exeOrganization> exeOrganizations;
|
||||
private List<statusEnumOption> typeEnumOptions;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
|
||||
@@ -110,8 +110,9 @@ public class MedicationManageDto {
|
||||
private String wbStr;
|
||||
|
||||
/** 药品分类 */
|
||||
@Dict(dictCode = "medicine_category")
|
||||
@Dict(dictCode = "med_category_code")
|
||||
private Integer categoryCode;
|
||||
private String categoryCode_dictText;
|
||||
|
||||
/** 商品名称 */
|
||||
private String merchandiseName;
|
||||
@@ -144,7 +145,9 @@ public class MedicationManageDto {
|
||||
private String approvalNumber;
|
||||
|
||||
/** 医保是否对码 */
|
||||
@Dict(dictCode = "sys_yes_no")
|
||||
private Integer ybMatchFlag;
|
||||
private String ybMatchFlag_dictText;
|
||||
|
||||
/** 医保编码 */
|
||||
private String ybNo;
|
||||
@@ -155,10 +158,12 @@ public class MedicationManageDto {
|
||||
/** 是否皮试 */
|
||||
@Dict(dictCode = "sys_yes_no")
|
||||
private Integer skinTestFlag;
|
||||
private String skinTestFlag_dictText;
|
||||
|
||||
/** 是否为注射药物 */
|
||||
@Dict(dictCode = "sys_yes_no")
|
||||
private Integer injectFlag;
|
||||
private String injectFlag_dictText;
|
||||
|
||||
/** 生产厂家 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@@ -171,6 +176,7 @@ public class MedicationManageDto {
|
||||
/** 是否限制使用 */
|
||||
@Dict(dictCode = "sys_yes_no")
|
||||
private Integer restrictedFlag;
|
||||
private String restrictedFlag_dictText;
|
||||
|
||||
/** 限制使用范围 */
|
||||
private String restrictedScope;
|
||||
@@ -178,6 +184,7 @@ public class MedicationManageDto {
|
||||
/** 儿童用药标志 */
|
||||
@Dict(dictCode = "sys_yes_no")
|
||||
private Integer childrenFlag;
|
||||
private String childrenFlag_dictText;
|
||||
|
||||
/** 产品特性 */
|
||||
private Integer characteristic;
|
||||
@@ -213,9 +220,10 @@ public class MedicationManageDto {
|
||||
private String baseQuantity;
|
||||
|
||||
/** 最小单位 */
|
||||
private String minUnitCode;
|
||||
private Integer minUnitCode;
|
||||
|
||||
/** 当前库存数量(最小单位数量) */
|
||||
private String minQuantity;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.openhis.web.inventorymanage.dto.PurchaseInventoryInitDto;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@@ -16,6 +18,12 @@ import lombok.experimental.Accessors;
|
||||
public class MedicationManageInitDto {
|
||||
private List<statusEnumOption> statusFlagOptions;
|
||||
private List<domainEnumOption> domainFlagOptions;
|
||||
//供应商
|
||||
private List<MedicationManageInitDto.supplierListOption> supplierListOptions;
|
||||
//药品类型
|
||||
private List<MedicationManageInitDto.dictCategoryCode> medicationCategoryCodeOptions;
|
||||
//单位编码
|
||||
private List<MedicationManageInitDto.dictCategoryCode> unitCodeOptions;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
@@ -44,4 +52,33 @@ public class MedicationManageInitDto {
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 供应商
|
||||
*/
|
||||
@Data
|
||||
public static class supplierListOption {
|
||||
private Long value;
|
||||
private String label;
|
||||
|
||||
public supplierListOption(Long value, String label) {
|
||||
this.value = value;
|
||||
this.label = label;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 药品类型
|
||||
*/
|
||||
@Data
|
||||
public static class dictCategoryCode {
|
||||
private String value;
|
||||
private String info;
|
||||
|
||||
public dictCategoryCode(String value, String info) {
|
||||
this.value = value;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
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;
|
||||
|
||||
@@ -31,8 +32,13 @@ public class MedicationManageUpDto {
|
||||
private Long medicationDefId;
|
||||
|
||||
/** 所属科室 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long orgId;
|
||||
|
||||
/** 所在位置 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long locationId;
|
||||
|
||||
/** 剂型 */
|
||||
private String doseFormCode;
|
||||
|
||||
@@ -66,7 +72,9 @@ public class MedicationManageUpDto {
|
||||
private BigDecimal dose;
|
||||
|
||||
/** 剂量单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String doseUnitCode;
|
||||
private String doseUnitCode_dictText;
|
||||
|
||||
/** 单次最大剂量 */
|
||||
private BigDecimal maxUnit;
|
||||
@@ -146,9 +154,11 @@ public class MedicationManageUpDto {
|
||||
private Integer injectFlag;
|
||||
|
||||
/** 生产厂家 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long manufacturerId;
|
||||
|
||||
/** 供应商 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long supplyId;
|
||||
|
||||
/** 是否限制使用 */
|
||||
@@ -163,4 +173,19 @@ public class MedicationManageUpDto {
|
||||
/** 产品特性 */
|
||||
private Integer characteristic;
|
||||
|
||||
/** 购入价 */
|
||||
private BigDecimal purchasePrice;
|
||||
|
||||
/** 零售价 */
|
||||
private BigDecimal retailPrice;
|
||||
|
||||
/** 最高零售价 */
|
||||
private BigDecimal maximumRetailPrice;
|
||||
|
||||
/** 医保类别 */
|
||||
private String ybType;
|
||||
|
||||
/** 最小费用 */
|
||||
private String minimalFee;
|
||||
|
||||
}
|
||||
|
||||
@@ -184,6 +184,17 @@ public class CommonConstants {
|
||||
String TCM_DIAGNOSIS = "中医诊断";
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典字段名常量
|
||||
*/
|
||||
public interface DictName {
|
||||
/**
|
||||
* 药品分类
|
||||
*/
|
||||
String MED_CATEGORY_CODE = "med_category_code";
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* sql条件常量
|
||||
*/
|
||||
|
||||
@@ -36,7 +36,7 @@ public class ChargeItemDefinition extends HisBaseEntity {
|
||||
private String title;
|
||||
|
||||
/** 状态 */
|
||||
private PublicationStatus statusEnum;
|
||||
private Integer statusEnum;
|
||||
|
||||
/** 机构ID */
|
||||
private Long orgId;
|
||||
|
||||
Reference in New Issue
Block a user