首先使用orthanc服务器上传病人dicom文件
由于访问orthanc需要跨域,因此在vue.config配置代理
devServer: {
open: false, // 自动打开浏览器
port: 8081,
proxy:'http://localhost:8042'
},
获取病人序列号并传给获取病人信息组件
let patientlist = []
console.log("获取病人序列号")
axios.get("http://localhost:8086/patients").then(
response=>{
patientlist = response.data
console.log(patientlist)
this.$bus.$emit("getpatientname",patientlist)
},
error=>{
console.log('error',error.message)
}
)
获取信息时由于不止一个病人,所以需要采用循环,axios执行完才能去显示,因此采用async和await,这里有个问题,一开始使用的forEach函数,但是await不能在回调函数中使用,所以只能改成for循环
async getpatientname(patientlist) {
let patientsname = []
let result = {}
for (let i = 0; i < patientlist.length; i++) {
result = await axios.get(`http://localhost:8086/patients/${patientlist[i]}`)
patientsname.push(result)
}
console.log(patientsname[0].data.MainDicomTags.PatientName)
}
这样就获取到了病人信息