@@ -92,6 +92,7 @@ import {
getTcmSyndrome ,
getTcmSyndrome ,
saveTcmDiagnosis ,
saveTcmDiagnosis ,
updateTcmDiagnosis ,
updateTcmDiagnosis ,
getTcmDiagnosis ,
} from '@/views/doctorstation/components/api' ;
} from '@/views/doctorstation/components/api' ;
const props = defineProps ( {
const props = defineProps ( {
@@ -120,42 +121,93 @@ const { proxy } = getCurrentInstance();
const emit = defineEmits ( [ 'close' ] ) ;
const emit = defineEmits ( [ 'close' ] ) ;
function handleOpen ( ) {
function handleOpen ( ) {
// 获取诊断列表
getTcmCondition ( ) . then ( ( res ) => {
getTcmCondition ( ) . then ( ( res ) => {
conditionList . value = res . data . records ;
conditionList . value = res . data . records ;
} ) ;
} ) ;
tcmDiagonsisSaveList . value = [ ] ;
tcmDiagonsisList . value = [ ] ;
// 清空数据
debugger ;
tcmDiagonsisSaveList . value = [ ] ;
if ( props . updateZy . length > 0 ) {
tcmDiagonsisList . value = [ ] ;
syndromeSelected . value = true ; // 设置为true, 允许添加新的诊断
// 如果是修改模式,加载传入的诊断数据
if ( props . updateZy . length > 0 ) {
props . updateZy . forEach ( ( item ) => {
props . updateZy . forEach ( ( item ) => {
let updateIds = item . updateId . split ( "-" ) ;
let updateIds = item . updateId . split ( "-" ) ;
let name = item . name . split ( "-" ) ;
let name = item . name . split ( "-" ) ;
tcmDiagonsisSaveList . value . push ( {
tcmDiagonsisSaveList . value . push (
{
conditionId : updateIds [ 0 ] ,
conditionId : updateIds [ 0 ] ,
definitionId : item . illnessDefinitionId ,
definitionId : item . illnessDefinitionId ,
ybNo : item . ybNo ,
ybNo : item . ybNo ,
syndromeGroupNo : item . syndromeGroupNo ,
syndromeGroupNo : item . syndromeGroupNo ,
verificationStatusEnum : 4 ,
verificationStatusEnum : 4 ,
medTypeCode : '11' ,
medTypeCode : '11' ,
diagSrtNo : item . diagSrtNo ,
diagSrtNo : item . diagSrtNo ,
} ) ;
isExisting : true // 标记为已存在
tcmDiagonsisList . value . push ( {
} ,
conditionName : name [ 0 ] ,
{
syndromeGroupNo : item . syndromeGroupNo ,
} ) ;
tcmDiagonsisSaveList . value . push ( {
conditionId : updateIds [ 1 ] ,
conditionId : updateIds [ 1 ] ,
definitionId : item . symptomDefinitionId ,
definitionId : item . symptomDefinitionId ,
ybNo : item . symptomYbNo ,
ybNo : item . symptomYbNo ,
syndromeGroupNo : item . syndromeGroupNo ,
syndromeGroupNo : item . syndromeGroupNo ,
diagSrtNo : item . diagSrtNo ,
diagSrtNo : item . diagSrtNo ,
isExisting : true // 标记为已存在
}
) ;
tcmDiagonsisList . value . push ( {
conditionName : name [ 0 ] ,
syndromeName : name [ 1 ] ,
syndromeGroupNo : item . syndromeGroupNo ,
isExisting : true // 标记为已存在
} ) ;
} ) ;
tcmDiagonsisList . value [ tcmDiagonsisList . value . length - 1 ] . syndromeName = name [ 1 ] ;
console . log ( "这是修改时带入的数据" ) ;
console . log ( tcmDiagonsisList . value ) ;
console . log ( tcmDiagonsisSaveList . value ) ;
syndromeSelected . value = true ;
syndromeSelected . value = true ;
} ) ;
} ) ;
} else {
// 不是修改模式,加载已保存的中医诊断
if ( props . patientInfo && props . patientInfo . encounterId ) {
getTcmDiagnosis ( { encounterId : props . patientInfo . encounterId } ) . then ( ( res ) => {
if ( res . code === 200 && res . data . illness && res . data . illness . length > 0 ) {
res . data . illness . forEach ( ( item , index ) => {
const symptom = res . data . symptom [ index ] ;
if ( symptom ) {
// 添加到显示列表
tcmDiagonsisList . value . push ( {
conditionName : item . name ,
syndromeName : symptom . name ,
syndromeGroupNo : item . syndromeGroupNo ,
isExisting : true // 标记为已存在
} ) ;
// 添加到保存列表
tcmDiagonsisSaveList . value . push (
{
conditionId : item . conditionId ,
definitionId : item . definitionId ,
ybNo : item . ybNo ,
syndromeGroupNo : item . syndromeGroupNo ,
verificationStatusEnum : item . verificationStatusEnum || 4 ,
medTypeCode : item . medTypeCode || '11' ,
diagSrtNo : item . diagSrtNo ,
isExisting : true // 标记为已存在
} ,
{
conditionId : symptom . conditionId ,
definitionId : symptom . definitionId ,
ybNo : symptom . ybNo ,
syndromeGroupNo : item . syndromeGroupNo ,
diagSrtNo : item . diagSrtNo ,
isExisting : true // 标记为已存在
}
) ;
}
} ) ;
}
} ) . catch ( err => {
console . error ( '加载已保存的中医诊断失败:' , err ) ;
} ) ;
}
}
}
}
}
@@ -169,93 +221,45 @@ function handleClickRow(row) {
syndromeList . value = res . data . records ;
syndromeList . value = res . data . records ;
} ) ;
} ) ;
if ( props . updateZy . length > 0 ) {
// 添加新的诊断
props . updateZy . forEach ( ( item ) => {
let updateIds = item . updateId . split ( "-" ) ;
tcmDiagonsisSaveList . value . push ( {
updateId : updateIds [ 0 ] ,
conditionId : updateIds [ 0 ] ,
definitionId : row . id ,
ybNo : row . ybNo ,
syndromeGroupNo : timestamp . value ,
verificationStatusEnum : 4 ,
medTypeCode : '11' ,
diagSrtNo : item . diagSrtNo ,
} ) ;
debugger ;
if ( tcmDiagonsisList . value . length > 0 ) {
tcmDiagonsisList . value [ tcmDiagonsisList . value . length - 1 ] . conditionName = row . name ;
} else {
tcmDiagonsisList . value . push ( {
conditionName : row . name ,
syndromeGroupNo : timestamp . value ,
} ) ;
}
} ) ;
} else {
tcmDiagonsisSaveList . value . push ( {
tcmDiagonsisSaveList . value . push ( {
definitionId : row . id ,
definitionId : row . id ,
ybNo : row . ybNo ,
ybNo : row . ybNo ,
syndromeGroupNo : timestamp . value ,
syndromeGroupNo : timestamp . value ,
verificationStatusEnum : 4 ,
verificationStatusEnum : 4 ,
medTypeCode : '11' ,
medTypeCode : '11' ,
isExisting : false // 标记为新增
} ) ;
} ) ;
tcmDiagonsisList . value . push ( {
tcmDiagonsisList . value . push ( {
conditionName : row . name ,
conditionName : row . name ,
syndromeGroupNo : timestamp . value ,
syndromeGroupNo : timestamp . value ,
isExisting : false // 标记为新增
} ) ;
} ) ;
}
}
}
}
// tcmDiagonsisList.value.push({
// conditionName: row.name,
// syndromeGroupNo: timestamp.value,
// });
}
function clickSyndromeRow ( row ) {
function clickSyndromeRow ( row ) {
debugger ;
// 检查是否已存在完全相同的诊断和证候
let flag = true ;
let flag = true ;
tcmDiagonsisList . value . forEach ( item => {
const currentConditionName = tcmDiagonsisList . value [ tcmDiagonsisList . value . length - 1 ] . conditionName ;
if ( tcmDiagonsisList . value [ tcmDiagonsisList . value . length - 1 ] . conditionName == item . conditionName ) {
if ( item . syndromeName == row . name ) {
tcmDiagonsisList . value . forEach ( item => {
proxy . $modal . msgWarning ( '不能存在完全相同的诊断和证侯' ) ;
if ( item . conditionName === currentConditionName && item . syndromeName === row . name ) {
flag = false ;
proxy . $modal . msgWarning ( '不能存在完全相同的诊断和证候' ) ;
flag = false ;
}
}
}
} ) ;
if ( flag ) {
if ( props . updateZy . length > 0 ) {
props . updateZy . forEach ( ( item ) => {
let updateIds = item . updateId . split ( "-" ) ;
tcmDiagonsisSaveList . value . push ( {
updateId : updateIds [ 1 ] ,
conditionId : updateIds [ 1 ] ,
definitionId : row . id ,
ybNo : row . ybNo ,
syndromeGroupNo : timestamp . value ,
} ) ;
tcmDiagonsisList . value [ tcmDiagonsisList . value . length - 1 ] . syndromeName = row . name ;
syndromeSelected . value = true ;
} ) ;
} ) ;
} else {
if ( flag ) {
tcmDiagonsisSaveList . value . push ( {
tcmDiagonsisSaveList . value . push ( {
definitionId : row . id ,
definitionId : row . id ,
ybNo : row . ybNo ,
ybNo : row . ybNo ,
syndromeGroupNo : timestamp . value ,
syndromeGroupNo : timestamp . value ,
isExisting : false // 标记为新增
} ) ;
} ) ;
tcmDiagonsisList . value [ tcmDiagonsisList . value . length - 1 ] . syndromeName = row . name ;
tcmDiagonsisList . value [ tcmDiagonsisList . value . length - 1 ] . syndromeName = row . name ;
syndromeSelected . value = true ;
syndromeSelected . value = true ;
}
}
// tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].syndromeName = row.name;
// syndromeSelected.value = true;
}
}
}
// 删除诊断
// 删除诊断
@@ -268,22 +272,32 @@ function removeDiagnosis(row, index) {
}
}
function save ( ) {
function save ( ) {
if ( props . updateZy . length > 0 ) {
// 只保存新增的诊断,过滤掉已存在的
const newDiagnosisList = tcmDiagonsisSaveList . value . filter ( item => ! item . isExisting ) ;
if ( newDiagnosisList . length === 0 ) {
proxy . $modal . msgWarning ( '没有新增的诊断需要保存' ) ;
return ;
}
if ( props . updateZy . length > 0 ) {
// 修改模式
updateTcmDiagnosis ( {
updateTcmDiagnosis ( {
patientId : props . patientInfo . patientId ,
patientId : props . patientInfo . patientId ,
encounterId : props . patientInfo . encounterId ,
encounterId : props . patientInfo . encounterId ,
diagnosisChildList : tcm Diago nsisSaveList . value ,
diagnosisChildList : new Diagno sisList ,
} ) . then ( ( res ) => {
} ) . then ( ( res ) => {
if ( res . code == 200 ) {
if ( res . code == 200 ) {
emit ( 'close' ) ;
emit ( 'close' ) ;
proxy . $modal . msgSuccess ( '诊断已保存' ) ;
proxy . $modal . msgSuccess ( '诊断已保存' ) ;
}
}
} ) ;
} ) ;
} else {
} else {
// 新增模式
saveTcmDiagnosis ( {
saveTcmDiagnosis ( {
patientId : props . patientInfo . patientId ,
patientId : props . patientInfo . patientId ,
encounterId : props . patientInfo . encounterId ,
encounterId : props . patientInfo . encounterId ,
diagnosisChildList : tcm Diago nsisSaveList . value ,
diagnosisChildList : new Diagno sisList ,
} ) . then ( ( res ) => {
} ) . then ( ( res ) => {
if ( res . code == 200 ) {
if ( res . code == 200 ) {
emit ( 'close' ) ;
emit ( 'close' ) ;
@@ -291,15 +305,19 @@ function save() {
}
}
} ) ;
} ) ;
}
}
}
}
function submit ( ) {
function submit ( ) {
debugger ;
// 检查是否有新增的诊断
if (
const hasNewDiagnosis = tcmDiagonsisSaveList . value . some ( item => ! item . isExisting ) ;
tcmDiagonsisSaveList . value . length > 0 &&
( syndromeSelected . value || tcm Diago nsisSaveList . value . length % 2 == 0 )
if ( ! hasNew Diagno sis) {
) {
// 如果没有新增诊断,直接关闭
emit ( 'close' ) ;
return ;
}
if ( syndromeSelected . value || tcmDiagonsisSaveList . value . length % 2 == 0 ) {
save ( ) ;
save ( ) ;
} else {
} else {
proxy . $modal . msgWarning ( '请选择证候' ) ;
proxy . $modal . msgWarning ( '请选择证候' ) ;