```
docs(release-notes): 添加住院护士站划价功能说明和发版记录 - 新增住院护士站划价服务流程说明文档,详细描述了从参数预处理到结果响应的五大阶段流程 - 包含耗材类医嘱和诊疗活动类医嘱的差异化处理逻辑 - 添加完整的发版内容记录,涵盖新增菜单功能和各模块优化点 - 记录了住院相关功能的新增和门诊业务流程的修复 ```
This commit is contained in:
@@ -0,0 +1,340 @@
|
||||
// 医保目录各类型字段配置
|
||||
export const catalogFieldConfigs = {
|
||||
// 西药中成药目录 (1301)
|
||||
1301: {
|
||||
columns: [
|
||||
{ prop: 'medicalCatalogCode', label: '医疗目录编码' },
|
||||
{ prop: 'drugTradeName', label: '药品商品名' },
|
||||
{ prop: 'genericNameId', label: '通用名编号' },
|
||||
{ prop: 'drugGenericName', label: '药品通用名' },
|
||||
{ prop: 'chemicalName', label: '化学名称' },
|
||||
{ prop: 'alias', label: '别名' },
|
||||
{ prop: 'englishName', label: '英文名称' },
|
||||
{ prop: 'registeredName', label: '注册名称' },
|
||||
{ prop: 'drugSupervisionCode', label: '药监本位码' },
|
||||
{ prop: 'drugForm', label: '药品剂型' },
|
||||
{ prop: 'drugFormName', label: '药品剂型名称' },
|
||||
{ prop: 'drugCategory', label: '药品类别' },
|
||||
{ prop: 'drugCategoryName', label: '药品类别名称' },
|
||||
{ prop: 'drugSpecification', label: '药品规格' },
|
||||
{ prop: 'drugSpecCode', label: '药品规格代码' },
|
||||
{ prop: 'registeredForm', label: '注册剂型' },
|
||||
{ prop: 'registeredSpec', label: '注册规格' },
|
||||
{ prop: 'registeredSpecCode', label: '注册规格代码' },
|
||||
{ prop: 'dosage', label: '每次用量' },
|
||||
{ prop: 'frequency', label: '使用频次' },
|
||||
{ prop: 'acidBase', label: '酸根盐基' },
|
||||
{ prop: 'nationalDrugCode', label: '国家药品编号' },
|
||||
{ prop: 'usage', label: '用法' },
|
||||
{ prop: 'tcmFlag', label: '中成药标志' },
|
||||
{ prop: 'productionAreaType', label: '生产地类别' },
|
||||
{ prop: 'productionAreaName', label: '生产地类别名称' },
|
||||
{ prop: 'pricingUnitType', label: '计价单位类型' },
|
||||
{ prop: 'otcFlag', label: '非处方药标志' },
|
||||
{ prop: 'otcFlagName', label: '非处方药标志名称' },
|
||||
{ prop: 'packagingMaterial', label: '包装材质' },
|
||||
{ prop: 'packagingMaterialName', label: '包装材质名称' },
|
||||
{ prop: 'packagingSpec', label: '包装规格' },
|
||||
{ prop: 'packagingQuantity', label: '包装数量' },
|
||||
{ prop: 'functionIndication', label: '功能主治' },
|
||||
{ prop: 'administrationRoute', label: '给药途径' },
|
||||
{ prop: 'instructions', label: '说明书' },
|
||||
{ prop: 'startDate', label: '开始日期' },
|
||||
{ prop: 'endDate', label: '结束日期' },
|
||||
{ prop: 'minUseUnit', label: '最小使用单位' },
|
||||
{ prop: 'minSaleUnit', label: '最小销售单位' },
|
||||
{ prop: 'minMeasurementUnit', label: '最小计量单位' },
|
||||
{ prop: 'minPackageQuantity', label: '最小包装数量' },
|
||||
{ prop: 'minPackageUnit', label: '最小包装单位' },
|
||||
{ prop: 'minPreparationUnit', label: '最小制剂单位' },
|
||||
{ prop: 'minPackageUnitName', label: '最小包装单位名称' },
|
||||
{ prop: 'minPreparationUnitName', label: '最小制剂单位名称' },
|
||||
{ prop: 'conversionRatio', label: '转换比' },
|
||||
{ prop: 'shelfLife', label: '药品有效期' },
|
||||
{ prop: 'minPricingUnit', label: '最小计价单位' },
|
||||
{ prop: 'wubiCode', label: '五笔助记码' },
|
||||
{ prop: 'pinyinCode', label: '拼音助记码' },
|
||||
{ prop: 'repackager', label: '分包装厂家' },
|
||||
{ prop: 'manufacturerCode', label: '生产企业编号' },
|
||||
{ prop: 'manufacturerName', label: '生产企业名称' },
|
||||
{ prop: 'specialPriceLimitFlag', label: '特殊限价药品标志' },
|
||||
{ prop: 'specialDrugFlag', label: '特殊药品标志' },
|
||||
{ prop: 'useRestriction', label: '限制使用范围' },
|
||||
{ prop: 'useRestrictionFlag', label: '限制使用标志' },
|
||||
{ prop: 'registrationCertNo', label: '药品注册证号' },
|
||||
{ prop: 'regCertStartDate', label: '药品注册证号开始日期' },
|
||||
{ prop: 'regCertEndDate', label: '药品注册证号结束日期' },
|
||||
{ prop: 'approvalNo', label: '批准文号' },
|
||||
{ prop: 'approvalNoStartDate', label: '批准文号开始日期' },
|
||||
{ prop: 'approvalNoEndDate', label: '批准文号结束日期' },
|
||||
{ prop: 'marketStatus', label: '市场状态' },
|
||||
{ prop: 'marketStatusName', label: '市场状态名称' },
|
||||
{ prop: 'regDocumentArchive', label: '药品注册批件电子档案' },
|
||||
{ prop: 'suppApplicationArchive', label: '药品补充申请批件电子档案' },
|
||||
{ prop: 'nationalInsuranceNotes', label: '国家医保药品目录备注' },
|
||||
{ prop: 'essentialDrugFlagName', label: '基本药物标志名称' },
|
||||
{ prop: 'essentialDrugFlag', label: '基本药物标志' },
|
||||
{ prop: 'vatAdjustmentFlag', label: '增值税调整药品标志' },
|
||||
{ prop: 'vatAdjustmentName', label: '增值税调整药品名称' },
|
||||
{ prop: 'listedDrugFlag', label: '上市药品目录集药品' },
|
||||
{ prop: 'negotiationDrugFlag', label: '医保谈判药品标志' },
|
||||
{ prop: 'negotiationDrugName', label: '医保谈判药品名称' },
|
||||
{ prop: 'nhcDrugCode', label: '卫健委药品编码' },
|
||||
{ prop: 'remarks', label: '备注' },
|
||||
{ prop: 'validFlag', label: '有效标志' },
|
||||
{ prop: 'uniqueRecordId', label: '唯一记录号' },
|
||||
{ prop: 'createdAt', label: '数据创建时间' },
|
||||
{ prop: 'updatedAt', label: '数据更新时间' },
|
||||
{ prop: 'version', label: '版本号' },
|
||||
{ prop: 'versionName', label: '版本名称' },
|
||||
{ prop: 'pediatricUse', label: '儿童用药' },
|
||||
{ prop: 'companyName', label: '公司名称' },
|
||||
{ prop: 'genericEvaluationFlag', label: '仿制药一致性评价药品' },
|
||||
{ prop: 'distributionCompany', label: '经销企业' },
|
||||
{ prop: 'distributionContact', label: '经销企业联系人' },
|
||||
{ prop: 'distributionAuthArchive', label: '经销企业授权书电子档案' },
|
||||
{ prop: 'insuranceForm', label: '国家医保药品目录剂型' },
|
||||
{ prop: 'insuranceClass', label: '国家医保药品目录甲乙类标识' },
|
||||
{ prop: 'marketingAuthorizationHolder', label: '上市许可证持有人' },
|
||||
{ prop: 'releaseFlag', label: '下发标志' },
|
||||
{ prop: 'transmissionDataId', label: '传输数据ID' },
|
||||
{ prop: 'validFrom', label: '生效时间' },
|
||||
{ prop: 'validTo', label: '失效时间' },
|
||||
],
|
||||
},
|
||||
// 中药饮片目录 (1302)
|
||||
1302: {
|
||||
columns: [
|
||||
{ prop: 'medicalCatalogCode', label: '医疗目录编码' },
|
||||
{ prop: 'singleDrugName', label: '单味药名称' },
|
||||
{ prop: 'singleCompoundFlag', label: '单复方标志' }, //单复方标志(true:复方 false:单方)
|
||||
{ prop: 'qualityGrade', label: '质量等级' },
|
||||
{ prop: 'herbalYear', label: '中草药年份' },
|
||||
{ prop: 'medicinalPart', label: '药用部位' },
|
||||
{ prop: 'safeDosage', label: '安全剂量' },
|
||||
{ prop: 'conventionalUsage', label: '常规用法' },
|
||||
{ prop: 'propertiesTaste', label: '性味' },
|
||||
{ prop: 'meridianAttribution', label: '归经' },
|
||||
{ prop: 'species', label: '品种' },
|
||||
{ prop: 'startDate', label: '开始日期' },
|
||||
{ prop: 'endDate', label: '结束日期' },
|
||||
{ prop: 'validFlag', label: '有效标志' }, //有效标志(true:有效 false:无效)
|
||||
{ prop: 'uniqueRecordId', label: '唯一记录号' },
|
||||
{ prop: 'createTime', label: '数据创建时间' },
|
||||
{ prop: 'updateTime', label: '数据更新时间' },
|
||||
{ prop: 'versionNumber', label: '版本号' },
|
||||
{ prop: 'versionName', label: '版本名称' },
|
||||
{ prop: 'herbName', label: '药材名称' },
|
||||
{ prop: 'indications', label: '功能主治' },
|
||||
{ prop: 'processingMethod', label: '炮制方法' },
|
||||
{ prop: 'efficacyClassification', label: '功效分类' },
|
||||
{ prop: 'herbSource', label: '药材来源' },
|
||||
{ prop: 'nationalInsurancePolicy', label: '国家医保支付政策' },
|
||||
{ prop: 'provincialInsurancePolicy', label: '省级医保支付政策' },
|
||||
{ prop: 'standardName', label: '标准名称' },
|
||||
{ prop: 'standardPage', label: '标准页码' },
|
||||
{ prop: 'electronicRecord', label: '标准电子档案' },
|
||||
{ prop: 'issuanceFlag', label: '下发标志' },
|
||||
{ prop: 'transferDataId', label: '传输数据ID' },
|
||||
{ prop: 'effectiveTime', label: '生效时间' },
|
||||
{ prop: 'expiryTime', label: '失效时间' },
|
||||
],
|
||||
},
|
||||
// 医疗服务项目目录 (1305)
|
||||
1305: {
|
||||
columns: [
|
||||
{ prop: 'medicalCatalogCode', label: '医疗目录编码' },
|
||||
{ prop: 'billingUnit', label: '计价单位' },
|
||||
{ prop: 'billingUnitName', label: '计价单位名称' },
|
||||
{ prop: 'medicalItemDesc', label: '诊疗项目说明' },
|
||||
{ prop: 'exclusionContent', label: '诊疗除外内容' },
|
||||
{ prop: 'medicalItemConnotation', label: '诊疗项目内涵' },
|
||||
{ prop: 'validFlag', label: '有效标志' }, //有效标志(true:有效 false:无效)
|
||||
{ prop: 'remarks', label: '备注' },
|
||||
{ prop: 'serviceCategory', label: '服务项目类别' },
|
||||
{ prop: 'medicalServiceName', label: '医疗服务项目名称' },
|
||||
{ prop: 'projectDescription', label: '项目说明' },
|
||||
{ prop: 'startDate', label: '开始日期' },
|
||||
{ prop: 'endDate', label: '结束日期' },
|
||||
{ prop: 'uniqueRecordId', label: '唯一记录号' }, //uuid
|
||||
{ prop: 'versionNumber', label: '版本号' },
|
||||
{ prop: 'versionName', label: '版本名称' },
|
||||
{ prop: 'issuanceFlag', label: '下发标志' },
|
||||
{ prop: 'transferDataId', label: '传输数据ID' },
|
||||
{ prop: 'effectiveTime', label: '生效时间' },
|
||||
{ prop: 'expiryTime', label: '失效时间' },
|
||||
],
|
||||
},
|
||||
// 医用耗材目录 (1306)
|
||||
1306: {
|
||||
columns: [
|
||||
{ prop: 'medicalCatalogCode', label: '医疗目录编码' },
|
||||
{ prop: 'consumableName', label: '耗材名称' },
|
||||
{ prop: 'deviceUniqueId', label: '医疗器械唯一标识' },
|
||||
{ prop: 'insuranceGenericCode', label: '医保通用代码' },
|
||||
{ prop: 'insuranceGenericName', label: '医保通用名称' },
|
||||
{ prop: 'productModel', label: '产品型号' },
|
||||
{ prop: 'specCode', label: '规格代码' },
|
||||
{ prop: 'specification', label: '规格' },
|
||||
{ prop: 'consumableCategory', label: '耗材分类' },
|
||||
{ prop: 'specModel', label: '规格型号' },
|
||||
{ prop: 'materialCode', label: '材质代码' },
|
||||
{ prop: 'materialType', label: '耗材材质' },
|
||||
{ prop: 'packageSpec', label: '包装规格' },
|
||||
{ prop: 'packageQuantity', label: '包装数量' },
|
||||
{ prop: 'packageMaterial', label: '产品包装材质' },
|
||||
{ prop: 'packageUnit', label: '包装单位' },
|
||||
{ prop: 'conversionRatio', label: '产品转换比' },
|
||||
{ prop: 'minUsageUnit', label: '最小使用单位' },
|
||||
{ prop: 'productionAreaType', label: '生产地类别' },
|
||||
{ prop: 'productionAreaName', label: '生产地类别名称' },
|
||||
{ prop: 'productStandard', label: '产品标准' },
|
||||
{ prop: 'expiryDate', label: '产品有效期' },
|
||||
{ prop: 'structureComposition', label: '性能结构与组成' },
|
||||
{ prop: 'applicableScope', label: '适用范围' },
|
||||
{ prop: 'usageMethod', label: '产品使用方法' },
|
||||
{ prop: 'imageCode', label: '产品图片编号' },
|
||||
{ prop: 'qualityStandard', label: '产品质量标准' },
|
||||
{ prop: 'instructions', label: '说明书' },
|
||||
{ prop: 'proofMaterials', label: '其他证明材料' },
|
||||
{ prop: 'specialDeviceFlag', label: '专机专用标志' },
|
||||
{ prop: 'specialDeviceName', label: '专机名称' },
|
||||
{ prop: 'kitName', label: '组套名称' },
|
||||
{ prop: 'kitFlag', label: '组套标志' },
|
||||
{ prop: 'usageRestrictionFlag', label: '限制使用标志' },
|
||||
{ prop: 'insuranceRestriction', label: '医保限用范围' },
|
||||
{ prop: 'minSaleUnit', label: '最小销售单位' },
|
||||
{ prop: 'highValueFlag', label: '高值耗材标志' }, //高值耗材标志(true:是 false:否)
|
||||
{ prop: 'medicalMaterialCode', label: '医用材料分类代码' },
|
||||
{ prop: 'implantFlag', label: '植入材料和人体器官标志' },
|
||||
{ prop: 'sterilizationFlag', label: '灭菌标志' },
|
||||
{ prop: 'sterilizationName', label: '灭菌标志名称' },
|
||||
{ prop: 'implantInterventionFlag', label: '植入或介入类标志' },
|
||||
{ prop: 'implantInterventionName', label: '植入或介入类名称' },
|
||||
{ prop: 'disposableFlag', label: '一次性使用标志' },
|
||||
{ prop: 'disposableFlagName', label: '一次性使用标志名称' },
|
||||
{ prop: 'registrantName', label: '注册备案人名称' },
|
||||
{ prop: 'startDate', label: '开始日期' },
|
||||
{ prop: 'endDate', label: '结束日期' },
|
||||
{ prop: 'deviceManagementCategory', label: '医疗器械管理类别' },
|
||||
{ prop: 'deviceCategoryName', label: '医疗器械管理类别名称' },
|
||||
{ prop: 'registrationNo', label: '注册备案号' },
|
||||
{ prop: 'registeredProductName', label: '注册备案产品名称' },
|
||||
{ prop: 'structureDetails', label: '结构及组成' },
|
||||
{ prop: 'otherContent', label: '其他内容' },
|
||||
{ prop: 'approvalDate', label: '批准日期' },
|
||||
{ prop: 'registrantAddress', label: '注册备案人住所' },
|
||||
{ prop: 'certEffectiveStart', label: '注册证有效期开始时间' },
|
||||
{ prop: 'certEffectiveEnd', label: '注册证有效期结束时间' },
|
||||
{ prop: 'manufacturerCode', label: '生产企业编号' },
|
||||
{ prop: 'manufacturerName', label: '生产企业名称' },
|
||||
{ prop: 'productionAddress', label: '生产地址' },
|
||||
{ prop: 'agentCompany', label: '代理人企业' },
|
||||
{ prop: 'agentAddress', label: '代理人企业地址' },
|
||||
{ prop: 'productionCountry', label: '生产国或地区' },
|
||||
{ prop: 'serviceAgency', label: '售后服务机构' },
|
||||
{ prop: 'certArchivePath', label: '注册或备案证电子档案' },
|
||||
{ prop: 'productImages', label: '产品影像' },
|
||||
{ prop: 'validFlag', label: '有效标志' },
|
||||
{ prop: 'uniqueRecordId', label: '唯一记录号' },
|
||||
{ prop: 'versionNumber', label: '版本号' },
|
||||
{ prop: 'versionName', label: '版本名称' },
|
||||
],
|
||||
},
|
||||
// 疾病与诊断目录 (1307)
|
||||
1307: {
|
||||
columns: [
|
||||
{ prop: 'diseaseId', label: '西医疾病诊断' },
|
||||
{ prop: 'chapter', label: '章' },
|
||||
{ prop: 'chapterCodeRange', label: '章代码范围' },
|
||||
{ prop: 'chapterName', label: '章名称' },
|
||||
{ prop: 'sectionCodeRange', label: '节代码范围' },
|
||||
{ prop: 'sectionName', label: '节名称' },
|
||||
{ prop: 'categoryCode', label: '类目代码' },
|
||||
{ prop: 'categoryName', label: '类目名称' },
|
||||
{ prop: 'subcategoryCode', label: '亚目代码' },
|
||||
{ prop: 'subcategoryName', label: '亚目名称' },
|
||||
{ prop: 'diagnosisCode', label: '诊断代码' },
|
||||
{ prop: 'diagnosisName', label: '诊断名称' },
|
||||
{ prop: 'usageFlag', label: '使用标记' }, //使用标记(true:启用 false:停用)
|
||||
{ prop: 'gbDiagnosisCode', label: '国标版诊断代码' },
|
||||
{ prop: 'gbDiagnosisName', label: '国标版诊断名称' },
|
||||
{ prop: 'clinicalCode', label: '临床版诊断代码' },
|
||||
{ prop: 'clinicalName', label: '临床版诊断名称' },
|
||||
{ prop: 'remarks', label: '备注' },
|
||||
{ prop: 'validFlag', label: '有效标志' }, //有效标志(true:有效 false:无效)
|
||||
{ prop: 'uniqueRecordId', label: '唯一记录号' },
|
||||
// { prop: 'createTime', label: '数据创建时间' },
|
||||
// { prop: 'updateTime', label: '数据更新时间' },
|
||||
{ prop: 'versionNumber', label: '版本号' },
|
||||
{ prop: 'versionName', label: '版本名称' },
|
||||
],
|
||||
},
|
||||
// 手术操作目录 (1308)
|
||||
1308: {
|
||||
columns: [
|
||||
{ prop: 'id', label: '手术标准目录ID' },
|
||||
{ prop: 'chapter', label: '章' },
|
||||
{ prop: 'chapterCodeRange', label: '章代码范围' },
|
||||
{ prop: 'chapterName', label: '章名称' },
|
||||
{ prop: 'categoryCode', label: '类目代码' },
|
||||
{ prop: 'categoryName', label: '类目名称' },
|
||||
{ prop: 'subcategoryCode', label: '亚目代码' },
|
||||
{ prop: 'subcategoryName', label: '亚目名称' },
|
||||
{ prop: 'itemCode', label: '项目代码' },
|
||||
{ prop: 'itemName', label: '项目名称' },
|
||||
{ prop: 'operationCode', label: '手术操作代码' },
|
||||
{ prop: 'operationName', label: '手术操作名称' },
|
||||
{ prop: 'usageFlag', label: '使用标记' },
|
||||
{ prop: 'groupStandardOperationCode', label: '团标版手术操作代码' },
|
||||
{ prop: 'groupStandardOperationName', label: '团标版手术操作名称' },
|
||||
{ prop: 'clinicalVersionOperationCode', label: '临床版手术操作代码' },
|
||||
{ prop: 'clinicalVersionOperationName', label: '临床版手术操作名称' },
|
||||
{ prop: 'remarks', label: '备注' },
|
||||
{ prop: 'validFlag', label: '有效标志' },
|
||||
{ prop: 'uniqueRecordId', label: '唯一记录号' },
|
||||
{ prop: 'createTime', label: '数据创建时间' },
|
||||
{ prop: 'updateTime', label: '数据更新时间' },
|
||||
{ prop: 'versionNumber', label: '版本号' },
|
||||
{ prop: 'versionName', label: '版本名称' },
|
||||
],
|
||||
},
|
||||
// 中医疾病目录 (1314)
|
||||
1314: {
|
||||
columns: [
|
||||
{ prop: 'id', label: '中医疾病诊断' },
|
||||
{ prop: 'categoryCode', label: '科别类目编码' },
|
||||
{ prop: 'categoryName', label: '科别类目名称' },
|
||||
{ prop: 'specialtySystemCategoryCode', label: '专科系统分类目编码' },
|
||||
{ prop: 'specialtySystemCategoryName', label: '专科系统分类目名称' },
|
||||
{ prop: 'diseaseCategoryCode', label: '疾病分类编码' },
|
||||
{ prop: 'diseaseCategoryName', label: '疾病分类名称' },
|
||||
{ prop: 'remarks', label: '备注' },
|
||||
{ prop: 'validFlag', label: '有效标志' },
|
||||
{ prop: 'uniqueRecordId', label: '唯一记录号' },
|
||||
// { prop: 'createTime', label: '数据创建时间' },
|
||||
// { prop: 'updateTime', label: '数据更新时间' },
|
||||
{ prop: 'versionNumber', label: '版本号' },
|
||||
{ prop: 'versionName', label: '版本名称' },
|
||||
],
|
||||
},
|
||||
// 中医证候目录 (1315)
|
||||
1315: {
|
||||
columns: [
|
||||
{ prop: 'tcmSyndromeId', label: '中医证候ID' },
|
||||
{ prop: 'syndromeClassCode', label: '证候类目编码' },
|
||||
{ prop: 'syndromeClassName', label: '证候分类名称' },
|
||||
{ prop: 'syndromePropertyCode', label: '证候属性代码' },
|
||||
{ prop: 'syndromeProperty', label: '证候属性' },
|
||||
{ prop: 'syndromeTypeCode', label: '证候分类代码' },
|
||||
{ prop: 'syndromeTypeName', label: '证候分类名称' },
|
||||
{ prop: 'remark', label: '备注' },
|
||||
{ prop: 'activeFlag', label: '有效标志' },
|
||||
{ prop: 'uniqueRecordId', label: '唯一记录号' },
|
||||
{ prop: 'craetTime', label: '创建时间' },
|
||||
{ prop: 'updateTime', label: '更新时间' },
|
||||
{ prop: 'version', label: '版本' },
|
||||
{ prop: 'versionName', label: '版本名称' },
|
||||
],
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,17 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 查询
|
||||
export function getYbCatalogResult(params) {
|
||||
return request({
|
||||
url: '/catalog/page',
|
||||
method: 'get',
|
||||
params,
|
||||
});
|
||||
}
|
||||
//更新查询
|
||||
export function getYbCatalog(address, v) {
|
||||
return request({
|
||||
url: `/yb-request/query-catalog?address=${address}&v=${v}`,
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,358 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-row :gutter="20">
|
||||
<!--药品目录-->
|
||||
<el-col :span="4" :xs="24">
|
||||
<div class="head-container">
|
||||
<div class="head-title">医保目录</div>
|
||||
<el-tree
|
||||
:data="medicationOptions"
|
||||
:props="{
|
||||
label: 'info',
|
||||
children: 'children',
|
||||
}"
|
||||
:expand-on-click-node="false"
|
||||
:filter-node-method="filterNode"
|
||||
ref="medicationTreeRef"
|
||||
node-key="value"
|
||||
highlight-current
|
||||
default-expand-all
|
||||
@node-click="handleNodeClick"
|
||||
current-node-key="1301"
|
||||
:default-expand-all="true"
|
||||
>
|
||||
<template #default="{ node, data }">
|
||||
<span :class="{ 'text-light-gray': !data.available }">
|
||||
{{ data.info }}
|
||||
</span>
|
||||
</template>
|
||||
</el-tree>
|
||||
</div>
|
||||
</el-col>
|
||||
<!--药品目录-->
|
||||
<el-col :span="20" :xs="24">
|
||||
<el-row :gutter="10" class="mb8" style="margin-bottom: 20px">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryRef"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="68px"
|
||||
style="display: flex; align-items: center; margin: 0"
|
||||
>
|
||||
<el-form-item
|
||||
label="搜索"
|
||||
prop="searchKey"
|
||||
label-width="40"
|
||||
style="margin: 0; margin-right: 10px"
|
||||
>
|
||||
<el-input
|
||||
v-model="queryParams.searchKey"
|
||||
:placeholder="searchPlaceholder"
|
||||
clearable
|
||||
style="width: 400px"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
label="版本号"
|
||||
prop="versionNumber"
|
||||
label-width="80"
|
||||
style="margin: 0; margin-right: 10px"
|
||||
>
|
||||
<el-input
|
||||
v-model="queryParams.v"
|
||||
placeholder="版本号"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
@keyup.enter="handleQuery"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item style="margin: 0 10px">
|
||||
<el-button type="primary" plain icon="Search" @click="getList">查询</el-button>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item style="margin: 0 10px">
|
||||
<el-button type="primary" plain icon="Search" @click="handleUpdateCatalog"
|
||||
>更新目录</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="medicationList" style="width: 100%" height="70vh">
|
||||
<template v-for="(column, index) in currentColumns" :key="index">
|
||||
<el-table-column
|
||||
:prop="column.prop"
|
||||
:label="column.label"
|
||||
:min-width="calculateColumnWidth(column)"
|
||||
:show-overflow-tooltip="true"
|
||||
align="center"
|
||||
>
|
||||
<template #default="scope">
|
||||
<template v-if="column.type === 'tag'">
|
||||
<el-tag v-if="scope.row[column.prop.split('_')[0]] == 2" type="success">
|
||||
{{ scope.row[column.prop] }}
|
||||
</el-tag>
|
||||
<el-tag v-else type="error">{{ scope.row[column.prop] }}</el-tag>
|
||||
</template>
|
||||
<template v-else>
|
||||
{{
|
||||
scope.row[column.prop] === null ||
|
||||
scope.row[column.prop] === '' ||
|
||||
scope.row[column.prop] === undefined ||
|
||||
scope.row[column.prop] === 'null'
|
||||
? '--'
|
||||
: scope.row[column.prop]
|
||||
}}
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNo"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Medication">
|
||||
import { getYbCatalogResult, getYbCatalog } from './components/medicine';
|
||||
//字段配置文件
|
||||
import { catalogFieldConfigs } from './components/catalogFields';
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const medicationList = ref([]);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const total = ref(0);
|
||||
const medicationOptions = ref(undefined);
|
||||
const currentCategoryEnum = ref('1301'); // 默认选中1301
|
||||
const medicationTreeRef = ref(null); // 医保目录树引用
|
||||
const currentColumns = ref([]); // 表格列配置
|
||||
const searchPlaceholder = ref('医疗目录编码/注册名称/批准文号/唯一记录号'); // 默认搜索提示
|
||||
// 定义有数据的catalogType值
|
||||
const availableCatalogTypes = ['1301', '1302', '1305', '1306', '1307', '1308', '1314', '1315'];
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNo: 1,
|
||||
pageSize: 20,
|
||||
searchKey: undefined, // 搜索关键词(医疗目录编码/注册名称/批准文号/唯一记录号)
|
||||
catalogType: '1301', // 默认使用有数据的目录类型1301
|
||||
v: '0', // 版本号
|
||||
},
|
||||
});
|
||||
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
/** 通过条件过滤节点 */
|
||||
const filterNode = (value, data) => {
|
||||
if (!value) return true;
|
||||
return data.info.indexOf(value) !== -1;
|
||||
};
|
||||
|
||||
/** 病种目录分类查询下拉树结构 - 使用前端写死的数据 */
|
||||
function getMedicationCategoryList() {
|
||||
// 直接使用CatalogType枚举值,并为每个选项添加available属性
|
||||
const catalogTypeOptions = [
|
||||
{ info: '西药中成药目录', value: '1301', available: true },
|
||||
{ info: '中药饮片目录', value: '1302', available: true },
|
||||
{ info: '医疗机构制剂目录', value: '1303', available: false },
|
||||
{ info: '民族药品目录', value: '1304', available: false },
|
||||
{ info: '医疗服务项目目录', value: '1305', available: true },
|
||||
{ info: '医用耗材目录', value: '1306', available: true },
|
||||
{ info: '疾病与诊断目录', value: '1307', available: true },
|
||||
{ info: '手术操作目录', value: '1308', available: true },
|
||||
{ info: '门诊慢特病种目录', value: '1309', available: false },
|
||||
{ info: '按病种付费病种目录', value: '1310', available: false },
|
||||
{ info: '日间手术治疗病种', value: '1311', available: false },
|
||||
{ info: '医保目录信息查询', value: '1312', available: false },
|
||||
{ info: '肿瘤形态学目录', value: '1313', available: false },
|
||||
{ info: '中医疾病目录', value: '1314', available: true },
|
||||
{ info: '中医证候目录', value: '1315', available: true },
|
||||
{ info: '医疗目录与医保目录匹配信息', value: '1316', available: false },
|
||||
{ info: '医药机构目录匹配信息', value: '1317', available: false },
|
||||
{ info: '医保目录限价信息', value: '1318', available: false },
|
||||
{ info: '医保目录先自付比例信息', value: '1319', available: false },
|
||||
{ info: '中药配方颗粒目录', value: '1320', available: false },
|
||||
{ info: '医疗服务项目(新)目录', value: '1321', available: false },
|
||||
];
|
||||
|
||||
medicationOptions.value = catalogTypeOptions;
|
||||
// 添加全部选项,但设为不可用
|
||||
medicationOptions.value.unshift({ info: '全部', value: '', available: false });
|
||||
|
||||
// 确保默认选中1301
|
||||
setTimeout(() => {
|
||||
if (medicationTreeRef.value) {
|
||||
medicationTreeRef.value.setCurrentKey('1301');
|
||||
}
|
||||
}, 0);
|
||||
}
|
||||
/** 查询病种目录列表 */
|
||||
function handleUpdateCatalog() {
|
||||
// proxy.$message.success('暂未实现目录更新功能');
|
||||
// loading.value = true;
|
||||
// 版本号默认传0
|
||||
getYbCatalog(queryParams.value.catalogType, '0').then((res) => {
|
||||
// loading.value = false;
|
||||
if (res && res.data) {
|
||||
proxy.$message.success('目录更新成功');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 查询病种目录列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
getYbCatalogResult(queryParams.value).then((res) => {
|
||||
loading.value = false;
|
||||
if (res && res.data.data && res.data.data.records) {
|
||||
medicationList.value = res.data.data.records;
|
||||
total.value = res.data.data.total || res.data.total || medicationList.value.length;
|
||||
}
|
||||
// 默认空数据
|
||||
else {
|
||||
medicationList.value = [];
|
||||
total.value = 0;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 医保目录节点点击事件
|
||||
function handleNodeClick(data) {
|
||||
if (data.available) {
|
||||
queryParams.value.catalogType = data.value;
|
||||
currentCategoryEnum.value = data.value;
|
||||
// 切换目录类型时清空搜索框的值
|
||||
queryParams.value.searchKey = undefined;
|
||||
// 动态设置表格列配置
|
||||
if (catalogFieldConfigs[data.value]) {
|
||||
console.log('catalogFieldConfigs[data.value]', catalogFieldConfigs[data.value]);
|
||||
currentColumns.value = catalogFieldConfigs[data.value].columns;
|
||||
} else {
|
||||
currentColumns.value = []; // 无配置时显示空列
|
||||
}
|
||||
// 根据当前目录类型设置搜索提示
|
||||
setSearchPlaceholder(data.value);
|
||||
|
||||
handleQuery();
|
||||
}
|
||||
}
|
||||
|
||||
/** 根据目录类型设置搜索提示 */
|
||||
function setSearchPlaceholder(catalogType) {
|
||||
switch (catalogType) {
|
||||
case '1301': // 西药中成药目录
|
||||
searchPlaceholder.value = '医疗目录编码/注册名称/批准文号/唯一记录号';
|
||||
break;
|
||||
case '1302': // 中药饮片目录
|
||||
searchPlaceholder.value = '医疗服务名称/唯一记录号';
|
||||
break;
|
||||
case '1305': // 医疗服务目录
|
||||
searchPlaceholder.value = '医疗目录编码/医疗服务名称/唯一记录号';
|
||||
break;
|
||||
case '1306': // 医用耗材目录
|
||||
searchPlaceholder.value = '医疗目录编码/耗材名称/耗材类别/材质类型/规格';
|
||||
break;
|
||||
case '1307': // 疾病与诊断目录
|
||||
searchPlaceholder.value = '分类名称/子分类名称/章名称/节名称';
|
||||
break;
|
||||
case '1308': // 手术标准目录
|
||||
searchPlaceholder.value = '分类名称/子分类名称/项目名称/手术名称/手术代码';
|
||||
break;
|
||||
case '1314': // 中医疾病目录
|
||||
searchPlaceholder.value = '疾病分类名称/疾病分类代码/唯一记录号';
|
||||
break;
|
||||
case '1315': // 中医证候目录
|
||||
searchPlaceholder.value = '证候类型代码/证候类型名称/唯一记录号';
|
||||
break;
|
||||
default:
|
||||
searchPlaceholder.value = '请输入搜索关键词';
|
||||
}
|
||||
}
|
||||
// 初始化时设置默认列配置和搜索提示
|
||||
function initColumns() {
|
||||
const defaultType = '1301'; // 默认目录类型
|
||||
if (catalogFieldConfigs[defaultType]) {
|
||||
currentColumns.value = catalogFieldConfigs[defaultType].columns;
|
||||
}
|
||||
// 设置默认搜索提示
|
||||
setSearchPlaceholder(defaultType);
|
||||
}
|
||||
|
||||
// 计算列宽度函数
|
||||
function calculateColumnWidth(column) {
|
||||
const baseWidth = 40; // 增加基础边距宽度
|
||||
const charWidth = 16; // 增加每个字符的平均宽度,确保中文能更好地显示
|
||||
const textLength = column.label ? column.label.length : 0;
|
||||
const calculatedWidth = baseWidth + textLength * charWidth;
|
||||
|
||||
// 设置最小宽度,确保即使短文本也有良好的显示效果
|
||||
const minWidth = 120;
|
||||
|
||||
return Math.max(calculatedWidth, minWidth);
|
||||
}
|
||||
|
||||
// 在组件挂载时初始化
|
||||
initColumns();
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNo = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
getMedicationCategoryList();
|
||||
getList();
|
||||
</script>
|
||||
<style scoped>
|
||||
.el-form--inline .el-form-item {
|
||||
display: inline-flex;
|
||||
vertical-align: middle;
|
||||
margin-right: 10px !important;
|
||||
}
|
||||
.el-select {
|
||||
width: 150px !important;
|
||||
}
|
||||
|
||||
/* 确保表格内容完整显示 */
|
||||
.el-table {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
/* 调整表格列样式,允许内容更好地显示 */
|
||||
.el-table__cell {
|
||||
padding: 12px 8px;
|
||||
}
|
||||
|
||||
/* 确保分页组件完整显示 */
|
||||
.pagination-container {
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* 自定义样式:使不可用的目录类型文字颜色变浅 */
|
||||
.text-light-gray {
|
||||
color: #c0c4cc !important;
|
||||
}
|
||||
|
||||
/* 确保样式能正确应用到树节点 */
|
||||
:deep(.el-tree-node__label) {
|
||||
transition: color 0.3s;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user