0f6f7302d471aa425055c68c28524c801548a9f1..72d3216c2f4d40e1b930594eec9c7d77a8077d6b
3 天以前 zhaowenxuan
团体向lis发送数据调整
72d321 对比 | 目录
3 天以前 zhaowenxuan
将写死的碳13项目抽到表里配置
6c7c71 对比 | 目录
2个文件已修改
5个文件已添加
384 ■■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReportSpecialProject.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjReportSpecialProjectMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/TjReportSpecialProjectService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportSpecialProjectServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/resources/mapper/TjReportSpecialProjectMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
@@ -125,6 +125,8 @@
    private TjOrderYcxmService ycxmService;
    @Resource
    private TjXdtgmdjgService xdtgmdjgService;
    @Autowired
    private TjReportSpecialProjectService tjReportSpecialProjectService;
    private Integer pdfPage = 0;
@@ -1788,6 +1790,7 @@
     * @throws DocumentException
     */
    private void notHuaYanTable(Document document1, Map<TjOrderRemark, List<TjPdfVO>> printReport, DictHosp dictHosp, String colorStr, boolean isPacs) throws DocumentException {
        List<TjReportSpecialProject> tjReportSpecialProjects = tjReportSpecialProjectService.list();
        for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : printReport.entrySet()) {
            LambdaQueryWrapper<TjProject> wqqq = new LambdaQueryWrapper<>();
            wqqq.eq(TjProject::getProId, entry.getKey().getProId());
@@ -1835,43 +1838,12 @@
//                    if (dictHosp.getHospName().equals("澄合矿务局中心医院") && !value.isEmpty()){
                    if (!value.isEmpty()) {
                        if (value.size() > 1) {
                            if (value.get(0).getPid().equals("1862852701533012001")) {
                                Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
                                Paragraph ppp = new Paragraph("阳性参考值:", remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                ppp = new Paragraph("DOB值:         ≥      4.0                HP-阳性", remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                ppp = new Paragraph("                <      4.0                  正常", remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                ppp = new Paragraph("检测结果: DOB=" + value.get(0).getProResult(), remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                ppp = new Paragraph("", remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                ppp = new Paragraph("", remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                if (StrUtil.isNotBlank(entry.getKey().getRemark())) {
                                    ppp = new Paragraph("结论:" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                }
                            Long pid = Long.valueOf(value.get(0).getPid());
                            Optional<TjReportSpecialProject> match = tjReportSpecialProjects.stream()
                                    .filter(item -> item.getProId().equals(pid))
                                    .findFirst();
                            if (match.isPresent()) {
                                reportSpecialProject(document1, entry, paragraph, value,match.get());
                            } else {
                                String[] titles = {"体检项目", "体检结果", "单位"};
                                Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -1900,43 +1872,12 @@
//                                paragraph.setLeading(5f);
//                                document1.add(ppp);
                            } else {
                                if (value.get(0).getPid().equals("1862852701533012001")) {
                                    remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
                                    Paragraph ppp = new Paragraph("阳性参考值:", remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                    ppp = new Paragraph("DOB值:         ≥      4.0                HP-阳性", remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                    ppp = new Paragraph("                <      4.0                  正常", remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                    ppp = new Paragraph("检测结果: DOB=" + value.get(0).getProResult(), remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                    ppp = new Paragraph("", remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                    ppp = new Paragraph("", remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                    if (StrUtil.isNotBlank(entry.getKey().getRemark())) {
                                        ppp = new Paragraph("结论:" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts);
                                        paragraph.setAlignment(Element.ALIGN_LEFT);
                                        paragraph.setLeading(5f);
                                        document1.add(ppp);
                                    }
                                Long pid = Long.valueOf(value.get(0).getPid());
                                Optional<TjReportSpecialProject> match = tjReportSpecialProjects.stream()
                                        .filter(item -> item.getProId().equals(pid))
                                        .findFirst();
                                if (match.isPresent()) {
                                    reportSpecialProject(document1, entry, paragraph, value,match.get());
                                } else {
                                    String[] titles = {"体检项目", "体检结果"};
                                    Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2023,43 +1964,12 @@
//                    if (dictHosp.getHospName().equals("澄合矿务局中心医院") && !value.isEmpty()){
                    if (!value.isEmpty()) {
                        if (value.size() > 1) {
                            if (value.get(0).getPid().equals("1862852701533012001")) {
                                Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
                                Paragraph ppp = new Paragraph("阳性参考值:", remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                ppp = new Paragraph("DOB值:         ≥      4.0                HP-阳性", remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                ppp = new Paragraph("                <      4.0                  正常", remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                ppp = new Paragraph("检测结果: DOB=" + value.get(0).getProResult(), remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                ppp = new Paragraph("", remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                ppp = new Paragraph("", remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                if (StrUtil.isNotBlank(entry.getKey().getRemark())) {
                                    ppp = new Paragraph("结论:" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                }
                            Long pid = Long.valueOf(value.get(0).getPid());
                            Optional<TjReportSpecialProject> match = tjReportSpecialProjects.stream()
                                    .filter(item -> item.getProId().equals(pid))
                                    .findFirst();
                            if (match.isPresent()) {
                                reportSpecialProject(document1, entry, paragraph, value,match.get());
                            } else {
                                String[] titles = {"体检项目", "体检结果", "单位"};
                                Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2115,43 +2025,12 @@
//                                paragraph.setLeading(5f);
//                                document1.add(ppp);
                            } else {
                                if (value.get(0).getPid().equals("1862852701533012001")) {
                                    remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
                                    Paragraph ppp = new Paragraph("阳性参考值:", remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                    ppp = new Paragraph("DOB值:         ≥      4.0                HP-阳性", remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                    ppp = new Paragraph("                <      4.0                  正常", remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                    ppp = new Paragraph("检测结果: DOB=" + value.get(0).getProResult(), remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                    ppp = new Paragraph("", remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                    ppp = new Paragraph("", remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                    if (StrUtil.isNotBlank(entry.getKey().getRemark())) {
                                        ppp = new Paragraph("结论:" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts);
                                        paragraph.setAlignment(Element.ALIGN_LEFT);
                                        paragraph.setLeading(5f);
                                        document1.add(ppp);
                                    }
                                Long pid = Long.valueOf(value.get(0).getPid());
                                Optional<TjReportSpecialProject> match = tjReportSpecialProjects.stream()
                                        .filter(item -> item.getProId().equals(pid))
                                        .findFirst();
                                if (match.isPresent()) {
                                    reportSpecialProject(document1, entry, paragraph, value,match.get());
                                } else {
                                    String[] titles = {"体检项目", "体检结果"};
                                    Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2213,6 +2092,57 @@
    }
    /**
     * 目前写死 只有碳13、14 模板都是一样的只不过参考值不同
     * 凌云:{"dy":"4.0","xy":"4.0","title":"阳性参考值:","dystr":"DOB值:         ≥      ${dy}                HP-阳性","xystr":"                <      ${xy}                  正常","en":"DOB"}
     * 泾川县医院:{"dy":"100","xy":"100","title":"参考值(DPM):","dystr":"DPM值:         ≥      ${dy}                阳性","xystr":"                <      ${xy}                  阴性","en":"DPM"}
     * @param document1
     * @param entry
     * @param paragraph
     * @param value
     * @param tjReportSpecialProject
     * @throws DocumentException
     */
    private static void reportSpecialProject(Document document1, Map.Entry<TjOrderRemark, List<TjPdfVO>> entry, Paragraph paragraph, List<TjPdfVO> value,TjReportSpecialProject tjReportSpecialProject) throws DocumentException {
        JSONObject entries = JSONUtil.parseObj(tjReportSpecialProject.getParams());
        Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
        Paragraph ppp = new Paragraph(entries.getStr("title"), remarkFonts);
        paragraph.setAlignment(Element.ALIGN_LEFT);
        paragraph.setLeading(5f);
        document1.add(ppp);
        ppp = new Paragraph(entries.getStr("dystr").replace("${dy}",entries.getStr("dy")), remarkFonts);
        paragraph.setAlignment(Element.ALIGN_LEFT);
        paragraph.setLeading(5f);
        document1.add(ppp);
        ppp = new Paragraph(entries.getStr("xystr").replace("${xy}",entries.getStr("xy")), remarkFonts);
        paragraph.setAlignment(Element.ALIGN_LEFT);
        paragraph.setLeading(5f);
        document1.add(ppp);
        ppp = new Paragraph("检测结果: "+entries.getStr("en")+"=" + value.get(0).getProResult(), remarkFonts);
        paragraph.setAlignment(Element.ALIGN_LEFT);
        paragraph.setLeading(5f);
        document1.add(ppp);
        ppp = new Paragraph("", remarkFonts);
        paragraph.setAlignment(Element.ALIGN_LEFT);
        paragraph.setLeading(5f);
        document1.add(ppp);
        ppp = new Paragraph("", remarkFonts);
        paragraph.setAlignment(Element.ALIGN_LEFT);
        paragraph.setLeading(5f);
        document1.add(ppp);
        if (StrUtil.isNotBlank(entry.getKey().getRemark())) {
            ppp = new Paragraph("结论:" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts);
            paragraph.setAlignment(Element.ALIGN_LEFT);
            paragraph.setLeading(5f);
            document1.add(ppp);
        }
    }
    /**
     * 主见医师行显示设置
     *
     * @param document1
ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java
@@ -2,6 +2,7 @@
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.pinyin.PinyinUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
@@ -110,11 +111,24 @@
            List<TjSampling> list = tjSamplingService.list(wrapper);
            for (TjSampling tjSampling : list) {
                TjProject project = projectService.getById(tjSampling.getProId());
                LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
                dto.setXh(String.valueOf(xh.getAndIncrement() + 1));
                dto.setJyxm(tjSampling.getJyxmdm());
                dto.setXmmc(tjSampling.getProName());
                dtos.add(dto);
                if (StrUtil.isBlank(tjSampling.getJyxmdm())){
                    LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
                    wrapper1.eq(TjProject::getProParentId,project.getProId());
                    List<TjProject> projects = projectService.list(wrapper1);
                    for (TjProject tjProject : projects) {
                        LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
                        dto.setXh(String.valueOf(xh.getAndIncrement() + 1));
                        dto.setJyxm(tjProject.getLisXmbm());
                        dto.setXmmc(tjProject.getProName());
                        dtos.add(dto);
                    }
                }else {
                    LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
                    dto.setXh(String.valueOf(xh.getAndIncrement() + 1));
                    dto.setJyxm(tjSampling.getJyxmdm());
                    dto.setXmmc(tjSampling.getProName());
                    dtos.add(dto);
                }
                OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
                detailsDto.setMxfyxmbm(project.getHisXmbm());
@@ -129,11 +143,24 @@
            }
        }else {
            TjProject project = projectService.getById(sampling.getProId());
            LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
            dto.setXh(String.valueOf(xh.getAndIncrement() + 1));
            dto.setJyxm(sampling.getJyxmdm());
            dto.setXmmc(sampling.getProName());
            dtos.add(dto);
            if (StrUtil.isBlank(sampling.getJyxmdm())){
                LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
                wrapper1.eq(TjProject::getProParentId,project.getProId());
                List<TjProject> projects = projectService.list(wrapper1);
                for (TjProject tjProject : projects) {
                    LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
                    dto.setXh(String.valueOf(xh.getAndIncrement() + 1));
                    dto.setJyxm(tjProject.getLisXmbm());
                    dto.setXmmc(tjProject.getProName());
                    dtos.add(dto);
                }
            }else {
                LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
                dto.setXh(String.valueOf(xh.getAndIncrement() + 1));
                dto.setJyxm(sampling.getJyxmdm());
                dto.setXmmc(sampling.getProName());
                dtos.add(dto);
            }
            OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
            detailsDto.setMxfyxmbm(project.getHisXmbm());
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReportSpecialProject.java
New file
@@ -0,0 +1,40 @@
package com.ltkj.hosp.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
/**
 * 报告特殊项目
 * @TableName tj_report_special_project
 */
@TableName(value ="tj_report_special_project")
@Data
public class TjReportSpecialProject implements Serializable {
    /**
     *
     */
    @TableId
    private Long id;
    /**
     *
     */
    private Long proId;
    /**
     * 模板判断编号 根据编号走不同的生成模板类型
     */
    private Integer templateKey;
    /**
     * 需要额外传递的参数
     */
    private String params;
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjReportSpecialProjectMapper.java
New file
@@ -0,0 +1,18 @@
package com.ltkj.hosp.mapper;
import com.ltkj.hosp.domain.TjReportSpecialProject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author w
* @description 针对表【tj_report_special_project(报告特殊项目)】的数据库操作Mapper
* @createDate 2025-05-14 11:21:22
* @Entity com.ltkj.hosp.domain.TjReportSpecialProject
*/
public interface TjReportSpecialProjectMapper extends BaseMapper<TjReportSpecialProject> {
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/TjReportSpecialProjectService.java
New file
@@ -0,0 +1,13 @@
package com.ltkj.hosp.service;
import com.ltkj.hosp.domain.TjReportSpecialProject;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author w
* @description 针对表【tj_report_special_project(报告特殊项目)】的数据库操作Service
* @createDate 2025-05-14 11:21:22
*/
public interface TjReportSpecialProjectService extends IService<TjReportSpecialProject> {
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportSpecialProjectServiceImpl.java
New file
@@ -0,0 +1,22 @@
package com.ltkj.hosp.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ltkj.hosp.domain.TjReportSpecialProject;
import com.ltkj.hosp.service.TjReportSpecialProjectService;
import com.ltkj.hosp.mapper.TjReportSpecialProjectMapper;
import org.springframework.stereotype.Service;
/**
* @author w
* @description 针对表【tj_report_special_project(报告特殊项目)】的数据库操作Service实现
* @createDate 2025-05-14 11:21:22
*/
@Service
public class TjReportSpecialProjectServiceImpl extends ServiceImpl<TjReportSpecialProjectMapper, TjReportSpecialProject>
    implements TjReportSpecialProjectService{
}
ltkj-hosp/src/main/resources/mapper/TjReportSpecialProjectMapper.xml
New file
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ltkj.hosp.mapper.TjReportSpecialProjectMapper">
    <resultMap id="BaseResultMap" type="com.ltkj.hosp.domain.TjReportSpecialProject">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="proId" column="pro_id" jdbcType="BIGINT"/>
            <result property="templateKey" column="template_key" jdbcType="TINYINT"/>
            <result property="params" column="params" jdbcType="VARCHAR"/>
    </resultMap>
    <sql id="Base_Column_List">
        id,pro_id,template_key,
        params
    </sql>
</mapper>