Compare commits

4 Commits

Author SHA1 Message Date
Auora
ce76b2f98d 增加门诊病历的标题:门诊初诊病历/门诊复诊病历,当患者是初时-》门诊初诊病历,当患者为复诊时-》门诊复诊病历。
标题下面增加:就诊卡号、姓名、性别、年龄以及就诊日期(默认创建病历的当前时间)和就诊科室(患者当前开单科室),系统自动获取患者的档案信息。
2025-10-24 11:56:44 +08:00
8fbca1a898 Merge remote-tracking branch 'origin/develop' into develop 2025-10-24 11:27:32 +08:00
d548215123 就诊卡号查询患者信息 优化查询框布局 2025-10-24 11:26:56 +08:00
953d17dc8c 增加就诊和复诊的选定按钮和判断逻辑 2025-10-24 11:24:33 +08:00
5 changed files with 62 additions and 2 deletions

View File

@@ -40,6 +40,11 @@ public class PatientInfoDto {
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long orgId; private Long orgId;
/**
* 科室名称
*/
private String organizationName;
/** /**
* 患者姓名 * 患者姓名
*/ */

View File

@@ -19,6 +19,7 @@
T10.type_code, T10.type_code,
T10.contract_name, T10.contract_name,
T10.org_id, T10.org_id,
T10.organization_name,
T10.register_time, T10.register_time,
T10.reception_time, T10.reception_time,
T10.practitioner_user_id, T10.practitioner_user_id,

View File

@@ -7,7 +7,7 @@
<el-form :model="form" :rules="rules" ref="outpatientRegistrationRef" label-width="110px"> <el-form :model="form" :rules="rules" ref="outpatientRegistrationRef" label-width="110px">
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="5"> <el-col :span="5">
<el-form-item label="病历号/姓名/卡号:" prop="searchKey"> <el-form-item label="患者身份信息:" prop="searchKey">
<el-popover <el-popover
:popper-style="{ padding: '0' }" :popper-style="{ padding: '0' }"
placement="bottom-start" placement="bottom-start"
@@ -22,7 +22,7 @@
@blur="handleBlur" @blur="handleBlur"
@input="handleSearchPatient" @input="handleSearchPatient"
v-model="form.searchKey" v-model="form.searchKey"
placeholder="请输入姓名/拼音/身份证" placeholder="请输入姓名/身份证/就诊卡号"
/> />
</template> </template>
</el-popover> </el-popover>

View File

@@ -15,7 +15,42 @@
</el-button> --> </el-button> -->
</div> </div>
<div style="max-height: 650px; overflow-y: auto; overflow-x: hidden"> <div style="max-height: 650px; overflow-y: auto; overflow-x: hidden">
<div style="text-align: center; font-size: 18px; font-weight: bold; margin-bottom: 10px;">
{{ visitType === 'FIRST' ? '门诊初诊病历' : '门诊复诊病历' }}
</div>
<el-form ref="emrRef" :model="form" :rules="rules" label-width="80px"> <el-form ref="emrRef" :model="form" :rules="rules" label-width="80px">
<el-row :gutter="4">
<el-col :span="4">
<el-form-item label="就诊卡号" prop="patientId" style="width: 100%">
<el-input placeholder="" v-model="patientInfo.patientId" class="input-with-bottom-border"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="姓名" prop="patientName" style="width: 100%">
<el-input placeholder="" v-model="patientInfo.patientName" class="input-with-bottom-border"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="性别" prop="genderEnum_enumText" style="width: 100%">
<el-input placeholder="" v-model="patientInfo.genderEnum_enumText" class="input-with-bottom-border"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="年龄" prop="age" style="width: 100%">
<el-input placeholder="" v-model="patientInfo.age" class="input-with-bottom-border"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="就诊日期" prop="currentVisitDate" style="width: 100%">
<el-input placeholder="" v-model="currentVisitDate" class="input-with-bottom-border"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="就诊科室" prop="organizationName" style="width: 100%">
<el-input placeholder="" v-model="patientInfo.organizationName" class="input-with-bottom-border"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="身高" prop="height" style="width: 100%"> <el-form-item label="身高" prop="height" style="width: 100%">
@@ -168,6 +203,20 @@ import { saveEmr, getEmrDetail, saveEmrTemplate } from '../api';
import emrTemplate from '../emr/emrtemplate.vue'; import emrTemplate from '../emr/emrtemplate.vue';
import emrhistory from '../emr/emrhistory.vue'; import emrhistory from '../emr/emrhistory.vue';
import { ref, computed } from 'vue';
// 2. 当前就诊日期(默认为当前时间)
const currentVisitDate = computed(() => {
return new Date().toLocaleString('zh-CN', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
});
});
const form = ref({}); const form = ref({});
const emrTitle = ref(''); const emrTitle = ref('');
const radio = ref(1); const radio = ref(1);
@@ -184,6 +233,10 @@ const props = defineProps({
type: Object, type: Object,
required: true, required: true,
}, },
visitType: { // ✅ 接收父组件传来的值
type: String,
default: '',
},
}); });
watch( watch(

View File

@@ -147,6 +147,7 @@
saveStatus = value; saveStatus = value;
} }
" "
:visitType="visitType"
/> />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="诊断" name="diagnosis"> <el-tab-pane label="诊断" name="diagnosis">