You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					
					
						
							93 lines
						
					
					
						
							3.5 KiB
						
					
					
				
			
		
		
	
	
							93 lines
						
					
					
						
							3.5 KiB
						
					
					
				package com.ynxbd.common.action;
 | 
						|
 | 
						|
import com.ynxbd.common.action.base.BaseAction;
 | 
						|
import com.ynxbd.common.bean.pacs.RISPacsReportInfo;
 | 
						|
import com.ynxbd.common.dao.pacs.RISPacsDao;
 | 
						|
import com.ynxbd.common.helper.common.ImageHelper;
 | 
						|
import com.ynxbd.common.helper.pacs.RISPacsHelper;
 | 
						|
import com.ynxbd.common.result.Result;
 | 
						|
import com.ynxbd.common.result.ResultEnum;
 | 
						|
import com.ynxbd.wx.wxfactory.ReqParamHelper;
 | 
						|
import lombok.extern.slf4j.Slf4j;
 | 
						|
import org.apache.struts2.convention.annotation.Action;
 | 
						|
import org.apache.struts2.convention.annotation.Namespace;
 | 
						|
 | 
						|
import javax.servlet.ServletOutputStream;
 | 
						|
import javax.servlet.http.HttpServletRequest;
 | 
						|
import javax.servlet.http.HttpServletResponse;
 | 
						|
import java.io.IOException;
 | 
						|
import java.util.ArrayList;
 | 
						|
import java.util.List;
 | 
						|
 | 
						|
/**
 | 
						|
 * @author 李进才
 | 
						|
 * @ClassName PacsRisAction
 | 
						|
 * @Description description
 | 
						|
 * @date 2023/3/21 17:04
 | 
						|
 */
 | 
						|
 | 
						|
@Slf4j
 | 
						|
@Namespace("/risPacs")
 | 
						|
public class PacsReportAction extends BaseAction {
 | 
						|
 | 
						|
 | 
						|
    @Action("/list")
 | 
						|
    public Result list(String outPatientNum, String inPatientNum,Integer pageNum){
 | 
						|
        outPatientNum = ReqParamHelper.decode(outPatientNum);
 | 
						|
        inPatientNum = ReqParamHelper.decode(inPatientNum);
 | 
						|
        if(outPatientNum==null&&inPatientNum==null){
 | 
						|
            return Result.error(ResultEnum.PARAM_IS_BLANK);
 | 
						|
        }
 | 
						|
        List<RISPacsReportInfo> risPacsReportInfos = new ArrayList<>();
 | 
						|
        if(outPatientNum!=null){
 | 
						|
            risPacsReportInfos = new RISPacsDao().getReportInfoForOutPatientNum(outPatientNum);
 | 
						|
        }
 | 
						|
        if(inPatientNum!=null){
 | 
						|
            risPacsReportInfos =new RISPacsDao().getReportInfoForInPatientNum(inPatientNum);
 | 
						|
        }
 | 
						|
        Integer pageTotal = risPacsReportInfos.size();
 | 
						|
        if(pageTotal>1){
 | 
						|
            risPacsReportInfos = risPacsReportInfos.subList(pageNum-1,pageNum);
 | 
						|
        }
 | 
						|
        List<RISPacsReportInfo> resultList = new ArrayList<>();
 | 
						|
        for(RISPacsReportInfo risPacsReportInfo : risPacsReportInfos) {
 | 
						|
            try {
 | 
						|
                log.info("[Pacs]报告单路径-{},报告单Id-{}",risPacsReportInfo.getReportFile(),risPacsReportInfo.getReportId());
 | 
						|
                risPacsReportInfo.setReportFile("data:application/jpg;base64," +
 | 
						|
                        ImageHelper.convertPDFtoImageBase64(
 | 
						|
                                RISPacsHelper.smbHelper.smbGet("smb:" +
 | 
						|
                                        risPacsReportInfo.getReportFile().replaceAll("\\\\", "/"))));
 | 
						|
                resultList.add(risPacsReportInfo);
 | 
						|
            } catch (Exception e) {
 | 
						|
                throw new RuntimeException(e);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return Result.success(resultList,pageTotal);
 | 
						|
    }
 | 
						|
 | 
						|
    @Action("/download")
 | 
						|
    public Result report(String reportId) throws Exception {
 | 
						|
        HttpServletResponse response = getResponse();
 | 
						|
        response.setContentType("application/octet-stream");
 | 
						|
        response.setHeader("Content-Disposition", "attachment; filename=file.pdf");
 | 
						|
        ServletOutputStream outputStream = response.getOutputStream();
 | 
						|
        byte[] fileByte = RISPacsHelper.smbHelper.smbGet("smb:"+
 | 
						|
                new RISPacsDao().
 | 
						|
                        getReportPath(reportId).
 | 
						|
                        replaceAll("\\\\","/"));
 | 
						|
        outputStream.write(fileByte);
 | 
						|
        outputStream.flush();
 | 
						|
        return Result.success();
 | 
						|
    }
 | 
						|
 | 
						|
    @Action("/test")
 | 
						|
    public Result test() throws Exception {
 | 
						|
        List<String> images = new ArrayList<>();
 | 
						|
        images.add("1");
 | 
						|
        images.add("2");
 | 
						|
        images.add("2");
 | 
						|
        images.add("2");
 | 
						|
        images = images.subList(1,2);
 | 
						|
        return Result.success(images);
 | 
						|
    }
 | 
						|
}
 | 
						|
 |