|
|
|
@ -50,14 +50,13 @@ |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-card> |
|
|
|
</el-card> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 中间:报告表单 --> |
|
|
|
<!-- 中间:报告表单 --> |
|
|
|
<el-col :span="17"> |
|
|
|
<el-col :span="17"> |
|
|
|
<el-card class="center-card"> |
|
|
|
<el-card class="center-card"> |
|
|
|
<div slot="header" class="card-header"> |
|
|
|
<div slot="header" class="card-header"> |
|
|
|
<span class="status-text" |
|
|
|
<span class="status-text"> |
|
|
|
>病例状态: |
|
|
|
病例状态: |
|
|
|
{{ caseStatus === "submitted" ? "已提交" : "暂存" }} |
|
|
|
{{ statusList.find((i) => i.value == form.status).label || "-" }} |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
<div class="btn-group"> |
|
|
|
<div class="btn-group"> |
|
|
|
<el-button |
|
|
|
<el-button |
|
|
|
@ -92,166 +91,143 @@ |
|
|
|
</el-button> |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-divider>远程超声检查报告</el-divider> |
|
|
|
<el-form |
|
|
|
<el-form class="report-form" :model="form" label-width="70px"> |
|
|
|
ref="form" |
|
|
|
<el-row :gutter="15"> |
|
|
|
:model="form" |
|
|
|
<el-col :span="6"> |
|
|
|
label-width="70px" |
|
|
|
<el-form-item label="患者姓名"> |
|
|
|
class="report-form" |
|
|
|
<el-input v-model="form.patientName" readonly /> |
|
|
|
> |
|
|
|
</el-form-item> |
|
|
|
<el-row :gutter="20"> |
|
|
|
|
|
|
|
<el-col :span="21" style="text-align: center"> |
|
|
|
|
|
|
|
<el-form-item> 远程超声检查报告 </el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="3"> |
|
|
|
<el-col :span="3"> |
|
|
|
<el-form-item label="性别"> |
|
|
|
<el-form-item label="检查号"> |
|
|
|
<el-select v-model="form.gender" readonly> |
|
|
|
{{ form.id }} |
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in genderList" |
|
|
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
|
|
:label="item.label" |
|
|
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="2"> |
|
|
|
<el-form-item label="患者姓名" prop="patient_name"> |
|
|
|
<el-form-item label-width="0"> |
|
|
|
{{ form.patient_name }} |
|
|
|
<el-input-number |
|
|
|
|
|
|
|
v-model="form.age" |
|
|
|
|
|
|
|
:min="0" |
|
|
|
|
|
|
|
readonly |
|
|
|
|
|
|
|
style="width: 100%" |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="1"> |
|
|
|
<el-col :span="3"> |
|
|
|
<el-form-item label-width="0"> |
|
|
|
<el-form-item label="性别" prop="patient_sex"> |
|
|
|
<el-select v-model="form.ageUnit" readonly> |
|
|
|
{{ |
|
|
|
<el-option |
|
|
|
patientSexList.find((i) => i.value == form.patient_sex) |
|
|
|
v-for="item in ageUnitList" |
|
|
|
.label || "-" |
|
|
|
:key="item.value" |
|
|
|
}} |
|
|
|
:label="item.label" |
|
|
|
</el-form-item> |
|
|
|
:value="item.value" |
|
|
|
</el-col> |
|
|
|
/> |
|
|
|
<el-col :span="3"> |
|
|
|
</el-select> |
|
|
|
<el-form-item |
|
|
|
|
|
|
|
label="年龄" |
|
|
|
|
|
|
|
prop="patient_age" |
|
|
|
|
|
|
|
label-width="60px" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
{{ form.patient_age }} |
|
|
|
|
|
|
|
{{ |
|
|
|
|
|
|
|
patientAgeTypeList.find( |
|
|
|
|
|
|
|
(i) => i.value == form.patient_age_type |
|
|
|
|
|
|
|
).label || "-" |
|
|
|
|
|
|
|
}} |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="申请医师"> |
|
|
|
<el-form-item label="申请医师" prop="request_doctor"> |
|
|
|
<el-input v-model="form.doctor" readonly /> |
|
|
|
{{ form.request_doctor }} |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="病历号"> |
|
|
|
<el-form-item label="病例号" prop="patient_id"> |
|
|
|
<el-input v-model="form.medicalNo" readonly /> |
|
|
|
{{ form.patient_id }} |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="门诊号"> |
|
|
|
<el-form-item label="门诊号" prop="outpatient_number"> |
|
|
|
<el-input v-model="form.outNo" readonly /> |
|
|
|
{{ form.outpatient_number }} |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="住院号"> |
|
|
|
<el-form-item label="住院号" prop="hospitalization_number"> |
|
|
|
<el-input v-model="form.inNo" readonly /> |
|
|
|
{{ form.hospitalization_number }} |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="病区号"> |
|
|
|
<el-form-item label="病区号" prop="area_number"> |
|
|
|
<el-input v-model="form.wardNo" readonly /> |
|
|
|
{{ form.area_number }} |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="床位号"> |
|
|
|
<el-form-item label="床位号" prop="bed_number"> |
|
|
|
<el-input v-model="form.bedNo" readonly /> |
|
|
|
{{ form.bed_number }} |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="24"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="检查设备"> |
|
|
|
<el-form-item label="检查设备" prop="equipments"> |
|
|
|
<el-input |
|
|
|
{{ form.equipments.map((i) => i.name).join("|") }} |
|
|
|
type="textarea" |
|
|
|
|
|
|
|
autosize |
|
|
|
|
|
|
|
v-model="form.device" |
|
|
|
|
|
|
|
readonly |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="24"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="检查部位"> |
|
|
|
<el-form-item label="检查部位" prop="positions"> |
|
|
|
<el-input |
|
|
|
{{ form.positions.map((item) => item.level2.name).join("|") }} |
|
|
|
type="textarea" |
|
|
|
|
|
|
|
autosize |
|
|
|
|
|
|
|
v-model="form.part" |
|
|
|
|
|
|
|
readonly |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="24"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="超声所见"> |
|
|
|
<el-form-item label="超声所见"> |
|
|
|
<el-input |
|
|
|
<el-input |
|
|
|
v-model="form.findings" |
|
|
|
v-model="form.text_comment" |
|
|
|
type="textarea" |
|
|
|
type="textarea" |
|
|
|
:rows="8" |
|
|
|
:rows="8" |
|
|
|
:disabled="caseStatus === 'submitted'" |
|
|
|
:disabled="form.status != 1 && form.status != 5" |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="24"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="检查结论"> |
|
|
|
<el-form-item label="检查结论"> |
|
|
|
<el-input |
|
|
|
<el-input |
|
|
|
v-model="form.conclusion" |
|
|
|
v-model="form.text_conclusion" |
|
|
|
type="textarea" |
|
|
|
type="textarea" |
|
|
|
:rows="6" |
|
|
|
:rows="6" |
|
|
|
:disabled="caseStatus === 'submitted'" |
|
|
|
:disabled="form.status != 1 && form.status != 5" |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="24" v-if="form.experts.length != 0"> |
|
|
|
<el-col :span="24"> |
|
|
|
|
|
|
|
<el-form-item label="专家意见" /> |
|
|
|
<el-form-item label="专家意见" /> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col |
|
|
|
<el-col |
|
|
|
:span="24" |
|
|
|
:span="24" |
|
|
|
v-for="(item, idx) in expertList" |
|
|
|
v-for="(item, idx) in form.experts" |
|
|
|
:key="idx" |
|
|
|
:key="idx" |
|
|
|
class="expert-item" |
|
|
|
class="expert-item" |
|
|
|
> |
|
|
|
> |
|
|
|
<el-form-item :label="item.name"> |
|
|
|
<el-form-item :label="item.expert_name"> |
|
|
|
<el-input |
|
|
|
<el-input |
|
|
|
v-model="item.content" |
|
|
|
v-model="item.user_comment" |
|
|
|
type="textarea" |
|
|
|
type="textarea" |
|
|
|
:rows="4" |
|
|
|
:rows="4" |
|
|
|
:disabled="caseStatus === 'submitted'" |
|
|
|
:disabled="form.status != 1 && form.status != 5" |
|
|
|
/> |
|
|
|
/> |
|
|
|
<div class="expert-btns"> |
|
|
|
<div class="expert-btns"> |
|
|
|
<el-button |
|
|
|
<el-button |
|
|
|
type="text" |
|
|
|
type="text" |
|
|
|
icon="el-icon-document-copy" |
|
|
|
icon="el-icon-document-copy" |
|
|
|
:disabled="caseStatus === 'submitted'" |
|
|
|
:disabled="form.status != 1 && form.status != 5" |
|
|
|
> |
|
|
|
> |
|
|
|
全部复制 |
|
|
|
全部复制 |
|
|
|
</el-button> |
|
|
|
</el-button> |
|
|
|
<el-button |
|
|
|
<el-button |
|
|
|
type="text" |
|
|
|
type="text" |
|
|
|
icon="el-icon-check" |
|
|
|
icon="el-icon-check" |
|
|
|
:disabled="caseStatus === 'submitted'" |
|
|
|
:disabled="form.status != 1 && form.status != 5" |
|
|
|
> |
|
|
|
> |
|
|
|
一键同意 |
|
|
|
一键同意 |
|
|
|
</el-button> |
|
|
|
</el-button> |
|
|
|
<el-button |
|
|
|
<el-button |
|
|
|
type="text" |
|
|
|
type="text" |
|
|
|
icon="el-icon-warning" |
|
|
|
icon="el-icon-warning" |
|
|
|
:disabled="caseStatus === 'submitted'" |
|
|
|
:disabled="form.status != 1 && form.status != 5" |
|
|
|
> |
|
|
|
> |
|
|
|
待确认 |
|
|
|
待确认 |
|
|
|
</el-button> |
|
|
|
</el-button> |
|
|
|
@ -261,20 +237,32 @@ |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="18"> |
|
|
|
<el-col :span="18"> |
|
|
|
<el-form-item label="报告人"> |
|
|
|
<el-form-item label="报告人"> |
|
|
|
{{ $store.state.user.nickName || "未登录" }} |
|
|
|
{{ form.reporter_name }} |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="审核人"> |
|
|
|
<el-form-item label="审核人"> |
|
|
|
<el-select |
|
|
|
<el-select |
|
|
|
v-model="form.auditUser" |
|
|
|
v-model="form.reviewer_id" |
|
|
|
clearable |
|
|
|
clearable |
|
|
|
filterable |
|
|
|
filterable |
|
|
|
style="width: 100%" |
|
|
|
style="width: 100%" |
|
|
|
:disabled="caseStatus === 'submitted'" |
|
|
|
:disabled="form.status != 1 && form.status != 5" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in reviewersList" |
|
|
|
|
|
|
|
:key="item.id" |
|
|
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
|
|
:value="item.id" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<span style="float: left">{{ item.name }}</span> |
|
|
|
|
|
|
|
<span |
|
|
|
|
|
|
|
style="float: right; color: #8492a6; font-size: 13px" |
|
|
|
> |
|
|
|
> |
|
|
|
<el-option label="请选择" value="" /> |
|
|
|
{{ item.username }} |
|
|
|
|
|
|
|
</span> |
|
|
|
|
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
@ -346,7 +334,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="超声所见"> |
|
|
|
<el-form-item label="超声所见"> |
|
|
|
<el-input |
|
|
|
<el-input |
|
|
|
v-model="templateForm.findings" |
|
|
|
v-model="templateForm.text_comment" |
|
|
|
type="textarea" |
|
|
|
type="textarea" |
|
|
|
readonly |
|
|
|
readonly |
|
|
|
:rows="6" |
|
|
|
:rows="6" |
|
|
|
@ -355,7 +343,7 @@ |
|
|
|
:disabled="caseStatus === 'submitted'" |
|
|
|
:disabled="caseStatus === 'submitted'" |
|
|
|
type="text" |
|
|
|
type="text" |
|
|
|
icon="el-icon-check" |
|
|
|
icon="el-icon-check" |
|
|
|
@click="applyFindings" |
|
|
|
@click="applytext_comment" |
|
|
|
style="float: right; margin-top: 6px" |
|
|
|
style="float: right; margin-top: 6px" |
|
|
|
> |
|
|
|
> |
|
|
|
应用 |
|
|
|
应用 |
|
|
|
@ -364,7 +352,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="结论" style="margin-top: 20px"> |
|
|
|
<el-form-item label="结论" style="margin-top: 20px"> |
|
|
|
<el-input |
|
|
|
<el-input |
|
|
|
v-model="templateForm.conclusion" |
|
|
|
v-model="templateForm.text_conclusion" |
|
|
|
type="textarea" |
|
|
|
type="textarea" |
|
|
|
readonly |
|
|
|
readonly |
|
|
|
:rows="6" |
|
|
|
:rows="6" |
|
|
|
@ -372,7 +360,7 @@ |
|
|
|
<el-button |
|
|
|
<el-button |
|
|
|
type="text" |
|
|
|
type="text" |
|
|
|
icon="el-icon-check" |
|
|
|
icon="el-icon-check" |
|
|
|
@click="applyConclusion" |
|
|
|
@click="applytext_conclusion" |
|
|
|
style="float: right; margin-top: 6px" |
|
|
|
style="float: right; margin-top: 6px" |
|
|
|
:disabled="caseStatus === 'submitted'" |
|
|
|
:disabled="caseStatus === 'submitted'" |
|
|
|
> |
|
|
|
> |
|
|
|
@ -451,7 +439,7 @@ |
|
|
|
<el-input |
|
|
|
<el-input |
|
|
|
type="textarea" |
|
|
|
type="textarea" |
|
|
|
:rows="6" |
|
|
|
:rows="6" |
|
|
|
v-model="newTemplateForm.findings" |
|
|
|
v-model="newTemplateForm.text_comment" |
|
|
|
placeholder="请输入超声所见内容" |
|
|
|
placeholder="请输入超声所见内容" |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
@ -459,7 +447,7 @@ |
|
|
|
<el-input |
|
|
|
<el-input |
|
|
|
type="textarea" |
|
|
|
type="textarea" |
|
|
|
:rows="6" |
|
|
|
:rows="6" |
|
|
|
v-model="newTemplateForm.conclusion" |
|
|
|
v-model="newTemplateForm.text_conclusion" |
|
|
|
placeholder="请输入检查结论内容" |
|
|
|
placeholder="请输入检查结论内容" |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
@ -516,6 +504,17 @@ |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
<script> |
|
|
|
|
|
|
|
import { |
|
|
|
|
|
|
|
patientSexList, |
|
|
|
|
|
|
|
patientAgeTypeList, |
|
|
|
|
|
|
|
patientTypeList, |
|
|
|
|
|
|
|
reportTypeList, |
|
|
|
|
|
|
|
negativeList, |
|
|
|
|
|
|
|
statusList, |
|
|
|
|
|
|
|
postReportInfo, |
|
|
|
|
|
|
|
postReportViewers, |
|
|
|
|
|
|
|
postReportEdit, |
|
|
|
|
|
|
|
} from "@/api/cases/index.js"; |
|
|
|
// 导入打印组件 |
|
|
|
// 导入打印组件 |
|
|
|
import UltrasoundReportPrint from "./components/UltrasoundReportPrint.vue"; |
|
|
|
import UltrasoundReportPrint from "./components/UltrasoundReportPrint.vue"; |
|
|
|
import CreateGroupDialog from "@/views/message/components/CreateGroupDialog"; |
|
|
|
import CreateGroupDialog from "@/views/message/components/CreateGroupDialog"; |
|
|
|
@ -527,6 +526,33 @@ export default { |
|
|
|
}, |
|
|
|
}, |
|
|
|
data() { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
return { |
|
|
|
|
|
|
|
// 主报告表单 |
|
|
|
|
|
|
|
form: {}, |
|
|
|
|
|
|
|
// 字典 |
|
|
|
|
|
|
|
// 性别 |
|
|
|
|
|
|
|
patientSexList: patientSexList(), |
|
|
|
|
|
|
|
// 年龄单位 |
|
|
|
|
|
|
|
patientAgeTypeList: patientAgeTypeList(), |
|
|
|
|
|
|
|
// 检查类型 |
|
|
|
|
|
|
|
patientTypeList: patientTypeList(), |
|
|
|
|
|
|
|
// 专家 |
|
|
|
|
|
|
|
expertIdsList: [], |
|
|
|
|
|
|
|
// 检查设备 |
|
|
|
|
|
|
|
equipmentsList: [], |
|
|
|
|
|
|
|
// 检查部位 |
|
|
|
|
|
|
|
templatesList: [], |
|
|
|
|
|
|
|
// 检查诊室 |
|
|
|
|
|
|
|
examRoomsList: [], |
|
|
|
|
|
|
|
// 预约时间 |
|
|
|
|
|
|
|
timeSectionList: [], |
|
|
|
|
|
|
|
// 病例类型 |
|
|
|
|
|
|
|
reportTypeList: reportTypeList(), |
|
|
|
|
|
|
|
// 检查结果 |
|
|
|
|
|
|
|
negativeList: negativeList(), |
|
|
|
|
|
|
|
statusList: statusList(), |
|
|
|
|
|
|
|
// 审核人 |
|
|
|
|
|
|
|
reviewersList: [], |
|
|
|
|
|
|
|
|
|
|
|
activeTab: "template", |
|
|
|
activeTab: "template", |
|
|
|
// 病例状态: pending-暂存, submitted-已提交 |
|
|
|
// 病例状态: pending-暂存, submitted-已提交 |
|
|
|
caseStatus: "submitted", |
|
|
|
caseStatus: "submitted", |
|
|
|
@ -537,147 +563,25 @@ export default { |
|
|
|
url: "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg", |
|
|
|
url: "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg", |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
], |
|
|
|
// 主报告表单 |
|
|
|
|
|
|
|
form: { |
|
|
|
|
|
|
|
patientName: "", |
|
|
|
|
|
|
|
gender: "", |
|
|
|
|
|
|
|
age: 0, |
|
|
|
|
|
|
|
ageUnit: "1", |
|
|
|
|
|
|
|
doctor: "", |
|
|
|
|
|
|
|
medicalNo: "", |
|
|
|
|
|
|
|
outNo: "", |
|
|
|
|
|
|
|
inNo: "", |
|
|
|
|
|
|
|
wardNo: "", |
|
|
|
|
|
|
|
bedNo: "", |
|
|
|
|
|
|
|
device: "", |
|
|
|
|
|
|
|
part: "", |
|
|
|
|
|
|
|
findings: "", |
|
|
|
|
|
|
|
conclusion: "", |
|
|
|
|
|
|
|
auditUser: "", |
|
|
|
|
|
|
|
isPositive: false, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 字典 |
|
|
|
|
|
|
|
genderList: [ |
|
|
|
|
|
|
|
{ label: "未知", value: "0" }, |
|
|
|
|
|
|
|
{ label: "男", value: "1" }, |
|
|
|
|
|
|
|
{ label: "女", value: "2" }, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
ageUnitList: [ |
|
|
|
|
|
|
|
{ label: "岁", value: "1" }, |
|
|
|
|
|
|
|
{ label: "月", value: "2" }, |
|
|
|
|
|
|
|
{ label: "天", value: "3" }, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
// Mock病例数据(与病例库页面保持一致) |
|
|
|
|
|
|
|
caseMockList: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
id: 1, |
|
|
|
|
|
|
|
patientName: "测试患者", |
|
|
|
|
|
|
|
gender: "1", |
|
|
|
|
|
|
|
age: 30, |
|
|
|
|
|
|
|
ageUnit: "1", |
|
|
|
|
|
|
|
checkType: "1", |
|
|
|
|
|
|
|
outpatientNumber: "123456", |
|
|
|
|
|
|
|
inpatientNumber: "IN789012", |
|
|
|
|
|
|
|
wardNumber: "W01", |
|
|
|
|
|
|
|
bedNumber: "05", |
|
|
|
|
|
|
|
applyDoctor: "张医生", |
|
|
|
|
|
|
|
expertDoctor: "李专家", |
|
|
|
|
|
|
|
checkDevice: "GE-E8", |
|
|
|
|
|
|
|
checkRoom: "1", |
|
|
|
|
|
|
|
customPart: "肝脏", |
|
|
|
|
|
|
|
reserveDate: "2023-01-01", |
|
|
|
|
|
|
|
reserveTime: "13:30-14:00", |
|
|
|
|
|
|
|
diagnosisDoctor: "", |
|
|
|
|
|
|
|
auditDoctor: "", |
|
|
|
|
|
|
|
reportStatus: "", |
|
|
|
|
|
|
|
createTime: "2023-01-01 10:00:00", |
|
|
|
|
|
|
|
updateTime: "2023-01-01 10:00:00", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
id: 2, |
|
|
|
|
|
|
|
patientName: "王小明", |
|
|
|
|
|
|
|
gender: "1", |
|
|
|
|
|
|
|
age: 45, |
|
|
|
|
|
|
|
ageUnit: "1", |
|
|
|
|
|
|
|
checkType: "2", |
|
|
|
|
|
|
|
outpatientNumber: "654321", |
|
|
|
|
|
|
|
inpatientNumber: "", |
|
|
|
|
|
|
|
wardNumber: "", |
|
|
|
|
|
|
|
bedNumber: "", |
|
|
|
|
|
|
|
applyDoctor: "刘医生", |
|
|
|
|
|
|
|
expertDoctor: "王专家", |
|
|
|
|
|
|
|
checkDevice: "Philips-iU22", |
|
|
|
|
|
|
|
checkRoom: "2", |
|
|
|
|
|
|
|
customPart: "心脏", |
|
|
|
|
|
|
|
reserveDate: "2023-01-02", |
|
|
|
|
|
|
|
reserveTime: "09:00-09:30", |
|
|
|
|
|
|
|
diagnosisDoctor: "", |
|
|
|
|
|
|
|
auditDoctor: "", |
|
|
|
|
|
|
|
reportStatus: "", |
|
|
|
|
|
|
|
createTime: "2023-01-02 09:00:00", |
|
|
|
|
|
|
|
updateTime: "2023-01-02 09:00:00", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
id: 3, |
|
|
|
|
|
|
|
patientName: "李小红", |
|
|
|
|
|
|
|
gender: "2", |
|
|
|
|
|
|
|
age: 28, |
|
|
|
|
|
|
|
ageUnit: "1", |
|
|
|
|
|
|
|
checkType: "3", |
|
|
|
|
|
|
|
outpatientNumber: "", |
|
|
|
|
|
|
|
inpatientNumber: "IN345678", |
|
|
|
|
|
|
|
wardNumber: "W03", |
|
|
|
|
|
|
|
bedNumber: "12", |
|
|
|
|
|
|
|
applyDoctor: "赵医生", |
|
|
|
|
|
|
|
expertDoctor: "孙专家", |
|
|
|
|
|
|
|
checkDevice: "GE-E8", |
|
|
|
|
|
|
|
checkRoom: "1", |
|
|
|
|
|
|
|
customPart: "肾脏", |
|
|
|
|
|
|
|
reserveDate: "2023-01-03", |
|
|
|
|
|
|
|
reserveTime: "14:00-14:30", |
|
|
|
|
|
|
|
diagnosisDoctor: "", |
|
|
|
|
|
|
|
auditDoctor: "", |
|
|
|
|
|
|
|
reportStatus: "", |
|
|
|
|
|
|
|
createTime: "2023-01-03 14:00:00", |
|
|
|
|
|
|
|
updateTime: "2023-01-03 14:00:00", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
// 专家列表 |
|
|
|
|
|
|
|
expertList: [ |
|
|
|
|
|
|
|
{ name: "韩主任", content: "" }, |
|
|
|
|
|
|
|
{ name: "景静静", content: "" }, |
|
|
|
|
|
|
|
{ name: "郑曙光", content: "" }, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ====================== 部位模板核心 ====================== |
|
|
|
// ====================== 部位模板核心 ====================== |
|
|
|
templateType: "add", |
|
|
|
templateType: "add", |
|
|
|
dialogTitle: "模板创建", |
|
|
|
dialogTitle: "模板创建", |
|
|
|
templateDialogVisible: false, |
|
|
|
templateDialogVisible: false, |
|
|
|
templateList: [ |
|
|
|
templateList: [], |
|
|
|
{ |
|
|
|
|
|
|
|
id: 1, |
|
|
|
|
|
|
|
type: "abdomen-liver", |
|
|
|
|
|
|
|
title: "腹部(肝、胆、胰、脾)", |
|
|
|
|
|
|
|
findings: `肝脏剑下cm,肋下cm,右肝斜径cm,包膜光滑,实质回声均匀,未见确切占位。肝静脉走行正常,门静脉不扩张。 |
|
|
|
|
|
|
|
胆囊前后径cm,壁薄、光滑,囊内未见异常回声。 |
|
|
|
|
|
|
|
胰腺形态规则,大小正常,边界清晰。胰腺实质回声未见异常,主胰管不扩张。 |
|
|
|
|
|
|
|
脾脏肋间厚cm,轮廓清楚,脾门切迹清晰可见,实质回声未见异常,脾静脉不扩张。`, |
|
|
|
|
|
|
|
conclusion: "肝脏、胆囊、胰腺、脾脏未见明显异常", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
templateForm: { |
|
|
|
templateForm: { |
|
|
|
id: 1, |
|
|
|
id: 1, |
|
|
|
type: "abdomen-liver", |
|
|
|
type: "abdomen-liver", |
|
|
|
title: "腹部(肝、胆、胰、脾)", |
|
|
|
title: "腹部(肝、胆、胰、脾)", |
|
|
|
findings: "", |
|
|
|
text_comment: "", |
|
|
|
conclusion: "", |
|
|
|
text_conclusion: "", |
|
|
|
}, |
|
|
|
}, |
|
|
|
newTemplateForm: { |
|
|
|
newTemplateForm: { |
|
|
|
id: null, |
|
|
|
id: null, |
|
|
|
type: "abdomen-liver", |
|
|
|
type: "abdomen-liver", |
|
|
|
title: "", |
|
|
|
title: "", |
|
|
|
findings: "", |
|
|
|
text_comment: "", |
|
|
|
conclusion: "", |
|
|
|
text_conclusion: "", |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// ====================== ✅ 片语核心(新增) ====================== |
|
|
|
// ====================== ✅ 片语核心(新增) ====================== |
|
|
|
@ -700,52 +604,31 @@ export default { |
|
|
|
}; |
|
|
|
}; |
|
|
|
}, |
|
|
|
}, |
|
|
|
created() { |
|
|
|
created() { |
|
|
|
this.getCaseData(); |
|
|
|
const id = this.$route.params && this.$route.params.id; |
|
|
|
this.loadRecentContacts(); |
|
|
|
this.getReportInfo(id); |
|
|
|
|
|
|
|
this.getReviewers(); |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
methods: { |
|
|
|
// 加载最近联系人 |
|
|
|
|
|
|
|
loadRecentContacts() { |
|
|
|
|
|
|
|
// TODO: 从后端获取最近联系人和群组 |
|
|
|
|
|
|
|
this.recentContacts = [ |
|
|
|
|
|
|
|
{ id: 1, name: "张医生", avatar: "" }, |
|
|
|
|
|
|
|
{ id: 2, name: "李医生", avatar: "" }, |
|
|
|
|
|
|
|
{ id: 3, name: "王医生", avatar: "" }, |
|
|
|
|
|
|
|
]; |
|
|
|
|
|
|
|
this.recentGroups = [ |
|
|
|
|
|
|
|
{ id: 1, name: "骨科会诊群", avatar: "" }, |
|
|
|
|
|
|
|
{ id: 2, name: "放射科交流群", avatar: "" }, |
|
|
|
|
|
|
|
]; |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 根据路由参数获取病例数据 |
|
|
|
// 根据路由参数获取病例数据 |
|
|
|
getCaseData() { |
|
|
|
getReportInfo(id) { |
|
|
|
const caseId = parseInt(this.$route.params.id); |
|
|
|
if (id) { |
|
|
|
if (caseId) { |
|
|
|
postReportInfo({ |
|
|
|
const caseData = this.caseMockList.find((item) => item.id === caseId); |
|
|
|
report_id: id, |
|
|
|
if (caseData) { |
|
|
|
}).then((res) => { |
|
|
|
this.form = { |
|
|
|
if (res.code === 200) { |
|
|
|
patientName: caseData.patientName, |
|
|
|
this.form = res.data; |
|
|
|
gender: caseData.gender, |
|
|
|
|
|
|
|
age: caseData.age, |
|
|
|
|
|
|
|
ageUnit: caseData.ageUnit, |
|
|
|
|
|
|
|
doctor: caseData.applyDoctor, |
|
|
|
|
|
|
|
medicalNo: caseData.patientRecordNumber || "", |
|
|
|
|
|
|
|
outNo: caseData.outpatientNumber || "", |
|
|
|
|
|
|
|
inNo: caseData.inpatientNumber || "", |
|
|
|
|
|
|
|
wardNo: caseData.wardNumber || "", |
|
|
|
|
|
|
|
bedNo: caseData.bedNumber || "", |
|
|
|
|
|
|
|
device: caseData.checkDevice || "", |
|
|
|
|
|
|
|
part: caseData.customPart || "", |
|
|
|
|
|
|
|
findings: "", |
|
|
|
|
|
|
|
conclusion: "", |
|
|
|
|
|
|
|
auditUser: "", |
|
|
|
|
|
|
|
isPositive: false, |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
// 设置动态标题为患者姓名 |
|
|
|
|
|
|
|
this.$store.dispatch("settings/setTitle", caseData.patientName); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
// 审核人 |
|
|
|
|
|
|
|
getReviewers() { |
|
|
|
|
|
|
|
postReportViewers().then((res) => { |
|
|
|
|
|
|
|
if (res.code === 200) { |
|
|
|
|
|
|
|
this.form.reviewersList = res.data; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}, |
|
|
|
// 打印 |
|
|
|
// 打印 |
|
|
|
handlePrint() { |
|
|
|
handlePrint() { |
|
|
|
this.printDialogVisible = true; // 打开打印预览弹窗 |
|
|
|
this.printDialogVisible = true; // 打开打印预览弹窗 |
|
|
|
@ -771,8 +654,8 @@ export default { |
|
|
|
this.shareItem = { |
|
|
|
this.shareItem = { |
|
|
|
patientName: this.form.patientName, |
|
|
|
patientName: this.form.patientName, |
|
|
|
medicalNo: this.form.medicalNo, |
|
|
|
medicalNo: this.form.medicalNo, |
|
|
|
findings: this.form.findings, |
|
|
|
text_comment: this.form.text_comment, |
|
|
|
conclusion: this.form.conclusion, |
|
|
|
text_conclusion: this.form.text_conclusion, |
|
|
|
}; |
|
|
|
}; |
|
|
|
this.shareDialogVisible = true; |
|
|
|
this.shareDialogVisible = true; |
|
|
|
}, |
|
|
|
}, |
|
|
|
@ -823,8 +706,8 @@ export default { |
|
|
|
id: Date.now(), |
|
|
|
id: Date.now(), |
|
|
|
type: "abdomen-liver", |
|
|
|
type: "abdomen-liver", |
|
|
|
title: "", |
|
|
|
title: "", |
|
|
|
findings: "", |
|
|
|
text_comment: "", |
|
|
|
conclusion: "", |
|
|
|
text_conclusion: "", |
|
|
|
}; |
|
|
|
}; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.newTemplateForm = { ...this.templateForm }; |
|
|
|
this.newTemplateForm = { ...this.templateForm }; |
|
|
|
@ -865,12 +748,12 @@ export default { |
|
|
|
this.$message.success("删除成功"); |
|
|
|
this.$message.success("删除成功"); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
applyFindings() { |
|
|
|
applytext_comment() { |
|
|
|
this.form.findings = this.templateForm.findings; |
|
|
|
this.form.text_comment = this.templateForm.text_comment; |
|
|
|
this.$message.success("已应用超声所见"); |
|
|
|
this.$message.success("已应用超声所见"); |
|
|
|
}, |
|
|
|
}, |
|
|
|
applyConclusion() { |
|
|
|
applytext_conclusion() { |
|
|
|
this.form.conclusion = this.templateForm.conclusion; |
|
|
|
this.form.text_conclusion = this.templateForm.text_conclusion; |
|
|
|
this.$message.success("已应用检查结论"); |
|
|
|
this.$message.success("已应用检查结论"); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
@ -927,6 +810,7 @@ export default { |
|
|
|
width: 100%; |
|
|
|
width: 100%; |
|
|
|
box-sizing: border-box; |
|
|
|
box-sizing: border-box; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.template-form { |
|
|
|
.template-form { |
|
|
|
height: calc(100vh - 265px); |
|
|
|
height: calc(100vh - 265px); |
|
|
|
overflow-y: auto; |
|
|
|
overflow-y: auto; |
|
|
|
@ -939,32 +823,39 @@ export default { |
|
|
|
justify-content: space-between; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
align-items: center; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.status-text { |
|
|
|
.status-text { |
|
|
|
font-weight: 500; |
|
|
|
font-weight: 500; |
|
|
|
color: #333; |
|
|
|
color: #333; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.btn-group { |
|
|
|
.btn-group { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
gap: 4px; |
|
|
|
gap: 4px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.expert-item { |
|
|
|
.expert-item { |
|
|
|
margin-bottom: 10px; |
|
|
|
margin-bottom: 10px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.expert-btns { |
|
|
|
.expert-btns { |
|
|
|
text-align: right; |
|
|
|
text-align: right; |
|
|
|
margin-top: 6px; |
|
|
|
margin-top: 6px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.img-status { |
|
|
|
.img-status { |
|
|
|
font-size: 12px; |
|
|
|
font-size: 12px; |
|
|
|
color: #666; |
|
|
|
color: #666; |
|
|
|
margin: 4px 0; |
|
|
|
margin: 4px 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.template-buttons, |
|
|
|
.template-buttons, |
|
|
|
.phrase-buttons { |
|
|
|
.phrase-buttons { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
gap: 6px; |
|
|
|
gap: 6px; |
|
|
|
margin-bottom: 10px; |
|
|
|
margin-bottom: 10px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.dialog-footer { |
|
|
|
.dialog-footer { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
justify-content: flex-end; |
|
|
|
justify-content: flex-end; |
|
|
|
|