diff --git a/src/main/java/com/docus/server/collection/dto/TBasicDto.java b/src/main/java/com/docus/server/collection/dto/TBasicDto.java index 349b4af..a2774b2 100644 --- a/src/main/java/com/docus/server/collection/dto/TBasicDto.java +++ b/src/main/java/com/docus/server/collection/dto/TBasicDto.java @@ -28,4 +28,10 @@ public class TBasicDto { private String sex; private String idCard; private String disDept; + private String sexName; + private String bedNum; + private String isDead; + private String admissDays; + private String wardCode; + private String wardName; } diff --git a/src/main/java/com/docus/server/collection/entity/TBasic.java b/src/main/java/com/docus/server/collection/entity/TBasic.java index 9639219..3654b9e 100644 --- a/src/main/java/com/docus/server/collection/entity/TBasic.java +++ b/src/main/java/com/docus/server/collection/entity/TBasic.java @@ -154,5 +154,6 @@ public class TBasic implements Serializable { @ApiModelProperty(value = "记账号") private String jzh; - + @ApiModelProperty(value = "床位号") + private String bedNum; } diff --git a/src/main/java/com/docus/server/collection/entity/TBasicExtend.java b/src/main/java/com/docus/server/collection/entity/TBasicExtend.java new file mode 100644 index 0000000..7c36569 --- /dev/null +++ b/src/main/java/com/docus/server/collection/entity/TBasicExtend.java @@ -0,0 +1,36 @@ +package com.docus.server.collection.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.Date; + +/** + * @BelongsProject: docus-webservice-sdry + * @BelongsPackage: com.docus.server.collection.entity + * @Author: chierhao + * @CreateTime: 2023-03-07 15:29 + * @Description: TODO + * @Version: 1.0 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "tBasicExtend对象", description = "病案基本信息扩展") +public class TBasicExtend implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "病案主键") + private String patientId; + + @ApiModelProperty(value = "病区编号") + private String wardCode; + + @ApiModelProperty(value = "病区名称") + private String wardName; +} diff --git a/src/main/java/com/docus/server/collection/mapper/TBasicMapper.java b/src/main/java/com/docus/server/collection/mapper/TBasicMapper.java index 835aec7..3657297 100644 --- a/src/main/java/com/docus/server/collection/mapper/TBasicMapper.java +++ b/src/main/java/com/docus/server/collection/mapper/TBasicMapper.java @@ -3,6 +3,7 @@ package com.docus.server.collection.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.docus.server.collection.entity.TBasic; +import com.docus.server.collection.entity.TBasicExtend; import org.apache.ibatis.annotations.Param; /** @@ -18,4 +19,7 @@ public interface TBasicMapper{ Integer selectOne(@Param("jzh") String jzh); Integer insert(@Param("tBasic") TBasic tBasic); + + Integer insertExtend(@Param("tBasicExtend") TBasicExtend tBasicExtend); + } diff --git a/src/main/java/com/docus/server/collection/service/impl/TBasicServiceImpl.java b/src/main/java/com/docus/server/collection/service/impl/TBasicServiceImpl.java index 1685ff6..f9cca9d 100644 --- a/src/main/java/com/docus/server/collection/service/impl/TBasicServiceImpl.java +++ b/src/main/java/com/docus/server/collection/service/impl/TBasicServiceImpl.java @@ -6,9 +6,11 @@ import com.docus.core.util.Func; import com.docus.infrastructure.redis.service.IdService; import com.docus.server.collection.dto.TBasicDto; import com.docus.server.collection.entity.TBasic; +import com.docus.server.collection.entity.TBasicExtend; import com.docus.server.collection.mapper.TBasicMapper; import com.docus.server.collection.service.ITBasicService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Date; @@ -31,13 +33,14 @@ public class TBasicServiceImpl implements ITBasicService { private IdService idService; @Override + @Transactional public void setTBasic(TBasicDto tBasicDto) throws Exception { //判断jzh是否重复 Integer num = tBasicMapper.selectOne(tBasicDto.getJzh()); if (num>0) { throw new Exception("记帐号已存在"); } - long patientId = idService.getDateSeq(); + Long patientId = idService.getDateSeq(); //数据类型转化,格式处理 Date admissDate = Func.parseDate(tBasicDto.getAdmissDate(), DateUtil.PATTERN_DATETIME_MINI); @@ -54,6 +57,20 @@ public class TBasicServiceImpl implements ITBasicService { if(NumberUtil.isInteger(ageStr)){ age=Integer.parseInt(ageStr); } + String sexName=tBasicDto.getSexName(); + if(sexName.length()>1){ + sexName=sexName.substring(0,1); + } + String admissDaysStr = tBasicDto.getAdmissDays(); + Integer admissDays=null; + if(NumberUtil.isInteger(admissDaysStr)){ + admissDays=Integer.parseInt(admissDaysStr); + } + String isDeadStr = tBasicDto.getIsDead(); + Integer isDead=0; + if("死亡".equals(isDeadStr)){ + isDead=1; + } //组装数据 TBasic tBasic=new TBasic(); @@ -71,9 +88,19 @@ public class TBasicServiceImpl implements ITBasicService { tBasic.setSex(tBasicDto.getSex()); tBasic.setIdCard(tBasicDto.getIdCard()); tBasic.setDisDept(tBasicDto.getDisDept()); + tBasic.setSexName(sexName); + tBasic.setBedNum(tBasicDto.getBedNum()); + tBasic.setAdmissDays(admissDays); + tBasic.setIsDead(isDead); + + TBasicExtend tBasicExtend=new TBasicExtend(); + tBasicExtend.setPatientId(patientId.toString()); + tBasicExtend.setWardCode(tBasicDto.getWardCode()); + tBasicExtend.setWardName(tBasicDto.getWardName()); //持久化 tBasicMapper.insert(tBasic); + tBasicMapper.insertExtend(tBasicExtend); } } diff --git a/src/main/java/com/docus/server/collection/webservice/impl/BasicServiceImpl.java b/src/main/java/com/docus/server/collection/webservice/impl/BasicServiceImpl.java index c9ebcf8..5b00768 100644 --- a/src/main/java/com/docus/server/collection/webservice/impl/BasicServiceImpl.java +++ b/src/main/java/com/docus/server/collection/webservice/impl/BasicServiceImpl.java @@ -147,6 +147,43 @@ public class BasicServiceImpl implements BasicService { if(Func.isNotEmpty(disDeptCardNode)){ disDept=disDeptCardNode.getNodeValue(); } + //性别名称 + String sexName=null; + Node sexNameNode = xml.getNode("//PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/administrativeGenderCode/@displayName"); + if(Func.isNotEmpty(sexNameNode)){ + sexName=sexNameNode.getNodeValue(); + } + //床位号 + String bedNum=null; + Node bedNumNode = xml.getNode("//PRPA_HIP0032/controlActProcess/subject/encounterEvent/componentOf/encompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf/wholeOrganization/id/@extension"); + if(Func.isNotEmpty(bedNumNode)){ + bedNum=bedNumNode.getNodeValue(); + } + //住院天数数[] + String admissDays=null; + Node admissDaysNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/lengthOfStayQuantity[@unit='天']/@value"); + if(Func.isNotEmpty(admissDaysNode)){ + admissDays=admissDaysNode.getNodeValue(); + } + //是否死亡[] + String isDead=null; + Node isDeadNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/component[@displayName='出院诊断']/section/entry[@displayName='出院情况']/observation/value"); + if(Func.isNotEmpty(isDeadNode)){ + isDead=isDeadNode.getTextContent(); + } + //病区编号 + String wardCode=null; + Node wardCodeNode = xml.getNode("//PRPA_HIP0032/controlActProcess/subject/encounterEvent/componentOf/encompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/id/@extension"); + if(Func.isNotEmpty(wardCodeNode)){ + wardCode=wardCodeNode.getNodeValue(); + } + //病区名称 + String wardName=null; + Node wardNameNode = xml.getNode("//PRPA_HIP0032/controlActProcess/subject/encounterEvent/componentOf/encompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/name"); + if(Func.isNotEmpty(wardNameNode)){ + wardName=wardNameNode.getTextContent(); + } + //设置dto TBasicDto dto=new TBasicDto(); @@ -166,6 +203,12 @@ public class BasicServiceImpl implements BasicService { dto.setSex(sex); dto.setIdCard(idCard); dto.setDisDept(disDept); + dto.setSexName(sexName); + dto.setBedNum(bedNum); + dto.setIsDead(isDead); + dto.setAdmissDays(admissDays); + dto.setWardCode(wardCode); + dto.setWardName(wardName); return dto; } } diff --git a/src/main/resources/mapper/TBasicMapper.xml b/src/main/resources/mapper/TBasicMapper.xml index 1627784..08b34c6 100644 --- a/src/main/resources/mapper/TBasicMapper.xml +++ b/src/main/resources/mapper/TBasicMapper.xml @@ -5,11 +5,17 @@ INSERT INTO `docus_medicalrecord`.`t_basic` - (`age`,`sex`,`id_card`,`dis_dept`,`patient_id`, `admiss_times`, `inpatient_no`,`name`, `admiss_date`, `admiss_dept_name`, `dis_date`, `dis_dept_name`,`attending_name`,`jzh`) + (`admiss_days`,`is_dead`,`sex_name`,`bed_num`,`age`,`sex`,`id_card`,`dis_dept`,`patient_id`, `admiss_times`, `inpatient_no`,`name`, `admiss_date`, `admiss_dept_name`, `dis_date`, `dis_dept_name`,`attending_name`,`jzh`) VALUES - (#{tBasic.age},#{tBasic.sex},#{tBasic.idCard},#{tBasic.disDept},#{tBasic.patientId},#{tBasic.admissTimes},#{tBasic.inpatientNo},#{tBasic.name}, + (#{tBasic.admissDays},#{tBasic.isDead},#{tBasic.sexName},#{tBasic.bedNum},#{tBasic.age},#{tBasic.sex},#{tBasic.idCard},#{tBasic.disDept},#{tBasic.patientId},#{tBasic.admissTimes},#{tBasic.inpatientNo},#{tBasic.name}, #{tBasic.admissDate},#{tBasic.admissDeptName},#{tBasic.disDate},#{tBasic.disDeptName},#{tBasic.attendingName},#{tBasic.jzh}) + + INSERT INTO `docus_medicalrecord`.`t_basic_extend` + (`patient_id`,`ward_code`,`ward_name`) + VALUES + (#{tBasicExtend.patientId},#{tBasicExtend.wardCode},#{tBasicExtend.wardName}) +