门诊挂号-部分

This commit is contained in:
Wang.Huan
2025-03-06 18:12:36 +08:00
parent 8af1bb3baa
commit 562a34abad
19 changed files with 160 additions and 12 deletions

View File

@@ -89,6 +89,12 @@ public class HealthcareServiceDto {
private Integer appointmentRequiredFlag; private Integer appointmentRequiredFlag;
private String appointmentRequiredFlag_enumText; private String appointmentRequiredFlag_enumText;
/**
* 费用定价ID
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long definitionId;
/** /**
* 名称 * 名称
*/ */

View File

@@ -17,8 +17,14 @@ import com.core.common.core.domain.R;
import com.core.common.utils.AgeCalculatorUtil; import com.core.common.utils.AgeCalculatorUtil;
import com.core.common.utils.MessageUtils; import com.core.common.utils.MessageUtils;
import com.core.common.utils.bean.BeanUtils; import com.core.common.utils.bean.BeanUtils;
import com.openhis.administration.domain.Encounter;
import com.openhis.administration.domain.EncounterLocation;
import com.openhis.administration.domain.EncounterParticipant;
import com.openhis.administration.domain.Patient; import com.openhis.administration.domain.Patient;
import com.openhis.administration.mapper.PatientMapper; import com.openhis.administration.mapper.PatientMapper;
import com.openhis.administration.service.IEncounterLocationService;
import com.openhis.administration.service.IEncounterParticipantService;
import com.openhis.administration.service.IEncounterService;
import com.openhis.clinical.domain.ConditionDefinition; import com.openhis.clinical.domain.ConditionDefinition;
import com.openhis.clinical.mapper.ConditionDefinitionMapper; import com.openhis.clinical.mapper.ConditionDefinitionMapper;
import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.CommonConstants;
@@ -59,6 +65,15 @@ public class IOutpatientRegistrationAppServiceImpl implements IOutpatientRegistr
@Resource @Resource
HealthcareServiceBizMapper healthcareServiceBizMapper; HealthcareServiceBizMapper healthcareServiceBizMapper;
@Resource
IEncounterService iEncounterService;
@Resource
IEncounterLocationService iEncounterLocationService;
@Resource
IEncounterParticipantService iEncounterParticipantService;
/** /**
* 门诊挂号 - 查询患者信息 * 门诊挂号 - 查询患者信息
* *
@@ -71,7 +86,7 @@ public class IOutpatientRegistrationAppServiceImpl implements IOutpatientRegistr
public Page<PatientMetadata> getPatientMetadataBySearchKey(String searchKey, Integer pageNo, Integer pageSize) { public Page<PatientMetadata> getPatientMetadataBySearchKey(String searchKey, Integer pageNo, Integer pageSize) {
// 构建查询条件 // 构建查询条件
QueryWrapper<Patient> queryWrapper = HisQueryUtils.buildQueryWrapper(null, searchKey, QueryWrapper<Patient> queryWrapper = HisQueryUtils.buildQueryWrapper(null, searchKey,
new HashSet<>(Arrays.asList("id_card","name", "py_str", "wb_str")), null); new HashSet<>(Arrays.asList("id_card", "name", "py_str", "wb_str")), null);
// 设置排序 // 设置排序
queryWrapper.orderByDesc("update_time"); queryWrapper.orderByDesc("update_time");
// 患者信息 // 患者信息
@@ -194,6 +209,40 @@ public class IOutpatientRegistrationAppServiceImpl implements IOutpatientRegistr
*/ */
@Override @Override
public R<?> saveRegister(OutpatientRegistrationAddParam outpatientRegistrationAddParam) { public R<?> saveRegister(OutpatientRegistrationAddParam outpatientRegistrationAddParam) {
// 就诊管理-表单数据
EncounterFormData encounterFormData = outpatientRegistrationAddParam.getEncounterFormData();
// 就诊位置管理-表单数据
EncounterLocationFormData encounterLocationFormData =
outpatientRegistrationAddParam.getEncounterLocationFormData();
// 就诊参数者管理-表单数据
EncounterParticipantFormData encounterParticipantFormData =
outpatientRegistrationAddParam.getEncounterParticipantFormData();
// 患者ID
Long patientId = encounterFormData.getPatientId();
// 服务项目ID
Long serviceTypeId = encounterFormData.getServiceTypeId();
// 校验是否重复挂号
Integer num = outpatientRegistrationAppMapper.getNumByPatientIdAndOrganizationId(patientId, serviceTypeId);
if (num > 0) {
return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
}
// 保存就诊信息
Encounter encounter = new Encounter();
BeanUtils.copyProperties(encounterFormData, encounter);
// 就诊ID
Long encounterId = iEncounterService.saveEncounter(encounter);
// 保存就诊位置信息
encounterLocationFormData.setEncounterId(encounterId);
EncounterLocation encounterLocation = new EncounterLocation();
BeanUtils.copyProperties(encounterLocationFormData, encounterLocation);
iEncounterLocationService.saveEncounterLocation(encounterLocation);
// 保存就诊参数者信息
encounterParticipantFormData.setEncounterId(encounterId);
EncounterParticipant encounterParticipant = new EncounterParticipant();
BeanUtils.copyProperties(encounterParticipantFormData, encounterParticipant);
iEncounterParticipantService.saveEncounterParticipant(encounterParticipant);
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[] {"挂号"})); return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[] {"挂号"}));
} }

View File

@@ -20,6 +20,8 @@ import com.openhis.web.outpatientservice.dto.OutpatientRegistrationInitDto;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import javax.validation.Valid;
/** /**
* 门诊挂号 controller * 门诊挂号 controller
*/ */
@@ -128,7 +130,7 @@ public class OutpatientRegistrationController {
* @return 结果 * @return 结果
*/ */
@PostMapping(value = "/save") @PostMapping(value = "/save")
public R<?> saveRegister(@RequestBody OutpatientRegistrationAddParam outpatientRegistrationAddParam) { public R<?> saveRegister(@Valid @RequestBody OutpatientRegistrationAddParam outpatientRegistrationAddParam) {
return iOutpatientRegistrationAppService.saveRegister(outpatientRegistrationAddParam); return iOutpatientRegistrationAppService.saveRegister(outpatientRegistrationAddParam);
} }

View File

@@ -7,6 +7,7 @@ import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/** /**
* 就诊诊断 表单数据 * 就诊诊断 表单数据

View File

@@ -8,6 +8,7 @@ import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/** /**
* 就诊 表单数据 * 就诊 表单数据

View File

@@ -9,6 +9,7 @@ import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/** /**
* 就诊位置 表单数据 * 就诊位置 表单数据

View File

@@ -1,6 +1,7 @@
package com.openhis.web.outpatientservice.dto; package com.openhis.web.outpatientservice.dto;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

View File

@@ -15,10 +15,10 @@ public class OutpatientRegistrationAddParam {
*/ */
private EncounterFormData encounterFormData; private EncounterFormData encounterFormData;
/** // /**
* 就诊诊断管理-表单数据 // * 就诊诊断管理-表单数据
*/ // */
private EncounterDiagnosisFormData encounterDiagnosisFormData; // private EncounterDiagnosisFormData encounterDiagnosisFormData;
/** /**
* 就诊位置管理-表单数据 * 就诊位置管理-表单数据
@@ -30,4 +30,12 @@ public class OutpatientRegistrationAddParam {
*/ */
private EncounterParticipantFormData encounterParticipantFormData; private EncounterParticipantFormData encounterParticipantFormData;
/**
* 就诊账户管理-表单数据
*/
/**
* 费用项管理-表单数据
*/
} }

View File

@@ -14,9 +14,17 @@ import com.openhis.web.outpatientservice.dto.PractitionerMetadata;
*/ */
@Repository @Repository
public interface OutpatientRegistrationAppMapper { public interface OutpatientRegistrationAppMapper {
/**
* 查询医生
*/
IPage<PractitionerMetadata> getPractitionerMetadataPage(@Param("page") Page<PractitionerMetadata> page, IPage<PractitionerMetadata> getPractitionerMetadataPage(@Param("page") Page<PractitionerMetadata> page,
@Param("locationId") Long locationId, @Param("RoleCode") String RoleCode, @Param("locationId") Long locationId, @Param("RoleCode") String RoleCode,
@Param(Constants.WRAPPER) QueryWrapper<PractitionerMetadata> queryWrapper); @Param(Constants.WRAPPER) QueryWrapper<PractitionerMetadata> queryWrapper);
/**
* 根据病人id和科室id查询当日挂号次数
*/
Integer getNumByPatientIdAndOrganizationId(@Param("patientId") Long patientId,
@Param("serviceTypeId") Long serviceTypeId);
} }

View File

@@ -19,6 +19,7 @@
T3.extra_details, T3.extra_details,
T3.contact, T3.contact,
T3.appointment_required_flag, T3.appointment_required_flag,
T3.definition_id,
T3.charge_name, T3.charge_name,
T3.price T3.price
FROM FROM
@@ -37,6 +38,7 @@
T1.extra_details, T1.extra_details,
T1.contact, T1.contact,
T1.appointment_required_flag, T1.appointment_required_flag,
T2.id AS definition_id,
T2.charge_name, T2.charge_name,
T2.price T2.price
FROM FROM

View File

@@ -12,8 +12,7 @@
T3.py_str, T3.py_str,
T3.wb_str T3.wb_str
FROM ( FROM (
SELECT SELECT T1.tenant_id,
T1.tenant_id,
T1.ID, T1.ID,
T1.NAME, T1.NAME,
T1.gender_enum, T1.gender_enum,
@@ -30,4 +29,14 @@
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<select id="getNumByPatientIdAndOrganizationId" resultType="Integer">
SELECT COUNT
(1)
FROM adm_encounter
WHERE delete_flag = '0'
AND patient_id = #{patientId}
AND service_type_id = #{serviceTypeId}
AND create_time > CURRENT_DATE
</select>
</mapper> </mapper>

View File

@@ -58,4 +58,6 @@ public class PromptMsgConstant {
String M00010 = "apl.common.M00010"; String M00010 = "apl.common.M00010";
} }
} }

View File

@@ -11,4 +11,11 @@ import com.openhis.administration.domain.EncounterLocation;
*/ */
public interface IEncounterLocationService extends IService<EncounterLocation> { public interface IEncounterLocationService extends IService<EncounterLocation> {
/**
* 保存就诊位置信息
*
* @param encounterLocation 就诊位置信息
*/
void saveEncounterLocation(EncounterLocation encounterLocation);
} }

View File

@@ -11,4 +11,11 @@ import com.openhis.administration.domain.EncounterParticipant;
*/ */
public interface IEncounterParticipantService extends IService<EncounterParticipant> { public interface IEncounterParticipantService extends IService<EncounterParticipant> {
/**
* 保存就诊参与者
*
* @param encounterParticipant 就诊参与者信息
*/
void saveEncounterParticipant(EncounterParticipant encounterParticipant);
} }

View File

@@ -10,5 +10,12 @@ import com.openhis.administration.domain.Encounter;
* @date 2025-02-20 * @date 2025-02-20
*/ */
public interface IEncounterService extends IService<Encounter> { public interface IEncounterService extends IService<Encounter> {
/**
* 保存就诊信息
*
* @param encounter 就诊信息
* @return 保存后的信息
*/
Long saveEncounter(Encounter encounter);
} }

View File

@@ -14,6 +14,17 @@ import com.openhis.administration.service.IEncounterLocationService;
* @date 2025-02-20 * @date 2025-02-20
*/ */
@Service @Service
public class EncounterLocationServiceImpl extends ServiceImpl<EncounterLocationMapper, EncounterLocation> implements IEncounterLocationService { public class EncounterLocationServiceImpl extends ServiceImpl<EncounterLocationMapper, EncounterLocation>
implements IEncounterLocationService {
/**
* 保存就诊位置信息
*
* @param encounterLocation 就诊位置信息
*/
@Override
public void saveEncounterLocation(EncounterLocation encounterLocation) {
baseMapper.insert(encounterLocation);
}
} }

View File

@@ -14,6 +14,17 @@ import com.openhis.administration.service.IEncounterParticipantService;
* @date 2025-02-20 * @date 2025-02-20
*/ */
@Service @Service
public class EncounterParticipantServiceImpl extends ServiceImpl<EncounterParticipantMapper, EncounterParticipant> implements IEncounterParticipantService { public class EncounterParticipantServiceImpl extends ServiceImpl<EncounterParticipantMapper, EncounterParticipant>
implements IEncounterParticipantService {
/**
* 保存就诊参与者
*
* @param encounterParticipant 就诊参与者信息
*/
@Override
public void saveEncounterParticipant(EncounterParticipant encounterParticipant) {
baseMapper.insert(encounterParticipant);
}
} }

View File

@@ -16,4 +16,19 @@ import com.openhis.administration.service.IEncounterService;
@Service @Service
public class EncounterServiceImpl extends ServiceImpl<EncounterMapper, Encounter> implements IEncounterService { public class EncounterServiceImpl extends ServiceImpl<EncounterMapper, Encounter> implements IEncounterService {
/**
* 保存就诊信息
*
* @param encounter 就诊信息
* @return 保存后的信息
*/
@Override
public Long saveEncounter(Encounter encounter) {
// 生产就诊编码
// 生产就诊序号
baseMapper.insert(encounter);
return encounter.getId();
}
} }

View File

@@ -43,4 +43,4 @@ apl.common.M00006=操作失败,该数据已被他人删除,请刷新后重试
apl.common.M00007=操作失败,该数据已被他人更改,请刷新后重试 apl.common.M00007=操作失败,该数据已被他人更改,请刷新后重试
apl.common.M00008=请勿重复提交 apl.common.M00008=请勿重复提交
apl.common.M00009=查询成功 apl.common.M00009=查询成功
apl.common.M00010=操作失败,请联系管理员 apl.common.M00010=操作失败,请联系管理员