Przeglądaj źródła

患者取值调整

wangjian 6 dni temu
rodzic
commit
014d8c5f73

+ 33 - 12
pagesAdmin/satisfaction/business/satisfactionQuestions/satisfactionQuestions.vue

@@ -359,6 +359,7 @@ let quesAnswers = reactive({
 	UserName: '',
 	Sex: '',
 	Age: '',
+	IdCard: '',
 	ThirdPartyId: '',
 	AnswerUseTime: 0,
 	PushDept: '',
@@ -373,6 +374,20 @@ let queryPatient = reactive({
 	cardNo: '',
 	cardType: ''
 });
+
+const getAgeByBirthDate = (birthDate = '') => {
+	const birth = `${birthDate}`.replace(/-/g, '');
+	if (!/^\d{8}$/.test(birth)) return '';
+	const year = Number(birth.slice(0, 4));
+	const month = Number(birth.slice(4, 6));
+	const day = Number(birth.slice(6, 8));
+	const today = new Date();
+	let age = today.getFullYear() - year;
+	if (today.getMonth() + 1 < month || (today.getMonth() + 1 === month && today.getDate() < day)) {
+		age--;
+	}
+	return age >= 0 ? `${age}` : '';
+};
 const { getCurrentUser } = mapGetters({
 	getCurrentUser: 'getCurrentUser',
 });
@@ -1027,11 +1042,15 @@ const submit = () => {
 			}
 		});
 		
-		const cardNo = currentUser.value?.cardNo ?? ''
-		const cardType = currentUser.value?.cardType ?? ''
-		let mobile = currentUser.value?.mobile ?? ''
-		let memberName = currentUser.value?.memberName ?? ''
-		
+		const cardNo = currentUser.value?.cardNo ?? '';
+		const cardType = currentUser.value?.cardType ?? '';
+		let mobile = currentUser.value?.mobile ?? '';
+		let memberName = currentUser.value?.memberName ?? '';
+		let sex = currentUser.value?.sex ?? '';
+		let age = currentUser.value?.age ?? '';
+		let idCard = currentUser.value?.idCard ?? currentUser.value?.certNum ?? '';
+		let memberId = currentUser.value?.MemberId ?? currentUser.value?.memberId ?? currentUser.value?.cardNo ?? '';
+
 		queryPatient.cardNo = cardNo;
 		queryPatient.cardType = cardType;
 		let patientInfoRes = await QueryMemberByCard_V3(queryPatient);
@@ -1042,16 +1061,17 @@ const submit = () => {
 		}
 
 		if (patientInfo.RespCode === '10000' && patientInfo.Data && patientInfo.Data.length > 0) {
-		  mobile = patientInfo.Data[0].mobile;
-		  memberName = patientInfo.Data[0].memberName;
+		  const patient = patientInfo.Data[0];
+		  mobile = patient.mobile || mobile;
+		  memberName = patient.memberName || memberName;
+		  sex = patient.sex || sex;
+		  age = currentUser.value?.age || getAgeByBirthDate(patient.birthDate);
+		  idCard = patient.certNum || idCard;
+		  memberId = patient.hisMemberId || patient.memberId || memberId;
 		}
 
 		answers.AnswerList = JSON.stringify(quesAnswers.AnswerList);
-		// 安全读取 currentUser 字段,缺失则置空
-		const memberId = currentUser.value?.MemberId ?? currentUser.value?.memberId ?? currentUser.value?.cardNo ?? ''
-		const sex = currentUser.value?.sex ?? ''
-		const age = currentUser.value?.age ?? ''
-		
+
 		// quesAnswers.IP = (await getIP()).cip;
 		// quesAnswers.Location = (await getIP()).cname;
 		quesAnswers.UserAgent = app.globalData.smallPro_systemInfo;
@@ -1060,6 +1080,7 @@ const submit = () => {
 		quesAnswers.MemberId = memberId;
 		quesAnswers.Sex = sex;
 		quesAnswers.Age = age;
+		quesAnswers.IdCard = idCard;
 		quesAnswers.ThirdPartyId = memberId || uni.getStorageSync('openid');
 		quesAnswers.BedNo = '';
 		quesAnswers.HospitalNo = objType.value == '4' ? cardNo : '';