路泰机电科技体检——数据平台后端
zhaowenxuan
2024-12-30 6ac675b3608076ff77a7cebba94a1da161c60128
20241230
3个文件已修改
5个文件已添加
398 ■■■■■ 已修改文件
src/main/java/com/example/constant/ApiParamsConstantsLis.java 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/controller/LisController.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/factory/ServiceFactory.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/service/LisService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/service/shanxiqin/xian/MeiJiHisService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/service/shanxiqin/xian/MeiJiLisService.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/utils/HttpClientUtils.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/utils/Test.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/constant/ApiParamsConstantsLis.java
New file
@@ -0,0 +1,246 @@
package com.example.constant;
/**
 * @Company: 西安路泰科技有限公司
 * @Author: zhaowenxuan
 * @Date: 2024/12/25 16:10
 */
public class ApiParamsConstantsLis {
    /**
     * 门诊号码
     */
    public static final String PATIENTNO = "patientno";
    /**
     * 挂号号码
     */
    public static final String GH_PATIENTNO = "gh_patientno";
    /**
     * 标本条形码
     */
    public static final String TXM = "txm";
    /**
     * 辅助号码
     */
    public static final String PRINTNO = "printno";
    /**
     * 病人姓名
     */
    public static final String PATIENTNAME = "patientname";
    /**
     * 出生日期
     */
    public static final String BIRTHDAY = "birthday";
    /**
     * 身份证号
     */
    public static final String SFZH = "sfzh";
    /**
     * 1男2女0未知 必须提供
     * 性别
     */
    public static final String GENDER = "gender";
    /**
     * 地址
     */
    public static final String ADDRESS = "address";
    /**
     * 电话
     */
    public static final String TELEPHONE = "telephone";
    /**
     * 医保卡号
     */
    public static final String YBKH = "ybkh";
    /**
     * 体检单位
     */
    public static final String TJDW = "tjdw";
    /**
     * 默认1 必须提供
     * 是否启用
     */
    public static final String ISACTIVE = "isactive";
    /**
     * 备注
     */
    public static final String MEMO = "memo";
    /**
     * 临床诊断
     */
    public static final String DIAGNOSE = "diagnose";
    /**
     * 送检医生代码
     */
    public static final String SENDDOCTOR = "senddoctor";
    /**
     * 送检医生姓名
     */
    public static final String SENDDOCTORNAME = "senddoctorname";
    /**
     * 送检科室代码
     */
    public static final String SENDDEPARTCODE = "senddepartcode";
    /**
     * 送检科室名称
     */
    public static final String SENDDEPARTNAME = "senddepartname";
    /**
     * 开单科室代码
     */
    public static final String APPLYDEPARTCODE = "applydepartcode";
    /**
     * 开单科室名称
     */
    public static final String APPLYDEPARTNAME = "applydepartname";
    /**
     * 开单医生代码
     */
    public static final String APPLYDOCTORCODE = "applydoctorcode";
    /**
     * 开单医生名称
     */
    public static final String APPLYDOCTORNAME = "applydoctorname";
    /**
     * 开单时间
     */
    public static final String APPLYDATETIME = "applydatetime";
    /**
     * 采样时间
     */
    public static final String GATHERDATETIME = "gatherdatetime";
    /**
     * 采样医生编码
     */
    public static final String GATHERDOCTORCODE = "gatherdoctorcode";
    /**
     * 采样医生姓名
     */
    public static final String GATHERDOCTORNAME = "gatherdoctorname";
    /**
     * 床号
     */
    public static final String BEDNO = "bedno";
    /**
     * 必须提供[yyyy-mm-dd hh:mi:ss]
     * 送检日期和开单时间
     */
    public static final String SENDDATE = "senddate";
    /**
     * 必须提供
     * 例如: SFXMID  : 1001
     * 那么: (诊疗项目)里面的SFXMID也要有: 1001
     * 必须跟(诊疗项目)里面的SFXMID一致
     * 诊疗项目代码
     */
    public static final String SFXMID = "sfxmid";
    /**
     * 必须提供
     * 例如: SFXMNAME : 肝功能6项
     * 那么: (诊疗项目)里面的SFXMNAME也要有: 肝功能6项
     * 必须跟(诊疗项目)里面的SFXMNAME名称一致
     * 诊疗项目名称
     */
    public static final String SFXMNAME = "sfxmname";
    /**
     * 诊疗项目单价
     */
    public static final String SFXMPRICE = "sfxmprice";
    /**
     * 收费人员姓名
     */
    public static final String SFYNAME = "sfyname";
    /**
     * 开单日期, 必须提供
     * 收费日期
     */
    public static final String SFDATE = "sfdate";
    /**
     * 必须提供,机构ID,需和LIS工程师沟通
     * 医院编号
     */
    public static final String HOSPITALID = "hospitalid";
    /**
     * 数量
     */
    public static final String QUALITY = "quality";
    /**
     * 卡类型
     */
    public static final String CARDTYPE = "cardtype";
    /**
     * 就诊类别 1:门诊  2:住院  3:体检
     */
    public static final String PATIENTTYPE = "patienttype";
    /**
     * 主键
     * 医嘱信息,保证值唯一性
     * 用于HIS交互索引
     * *每条指标不重复的唯一值,
     * 例如:
     * 甲某做了
     * 血常规 对应的Keyvalue是 1111
     * 大生化 对应的Keyvalue是 2222
     * 尿常规 对应的Keyvalue是 3333
     *
     * 丁某做了
     * 血常规 对应的Keyvalue是 4444
     * 大生化 对应的Keyvalue是 5555
     * 尿常规 对应的Keyvalue是 6666
     */
    public static final String KEYVALUE = "keyvalue";
    /**
     * 必须提供0:不是急诊  1:是急诊   默认:0
     * 急诊标志
     */
    public static final String JIZHENBZ = "jizhenbz";
    /**
     * 项目类型编号
     */
    public static final String SpecimenCode = "specimencode";
    /**
     * 项目类型名称
     */
    public static final String SpecimenDesc = "specimendesc";
}
src/main/java/com/example/controller/LisController.java
New file
@@ -0,0 +1,39 @@
package com.example.controller;
import com.example.factory.ServiceFactory;
import com.example.service.LisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
 * @Company: 西安路泰科技有限公司
 * @Author: zhaowenxuan
 * @Date: 2024/12/25 10:13
 */
@RestController
@RequestMapping("/api/his")
public class LisController {
    private final ServiceFactory serviceFactory;
    @Autowired
    public LisController(ServiceFactory serviceFactory) {
        this.serviceFactory = serviceFactory;
    }
    /**
     * 生成申请单
     * @param hospName
     * @param map
     * @return
     */
    @PostMapping("/{hospName}/create")
    public String makeSqd(@PathVariable("hospName") String hospName, @RequestBody Map<String ,Object > map){
        LisService lisService = serviceFactory.getLisService(hospName);
        return lisService.makeSqd(map);
    }
}
src/main/java/com/example/factory/ServiceFactory.java
@@ -2,6 +2,7 @@
import com.example.config.ConfigValue;
import com.example.service.HisService;
import com.example.service.LisService;
import com.example.service.PacsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
@@ -31,6 +32,11 @@
        return (PacsService) applicationContext.getBean(beanName+"Pacs");
    }
    public LisService getLisService(String hospName) {
        String beanName = getServiceBeanName(hospName);
        return (LisService) applicationContext.getBean(beanName+"Lis");
    }
    private String getServiceBeanName(String hospName) {
        switch (hospName) {
src/main/java/com/example/service/LisService.java
New file
@@ -0,0 +1,21 @@
package com.example.service;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
 * @Company: 西安路泰科技有限公司
 * @Author: zhaowenxuan
 * @Date: 2024/12/25 10:15
 */
@Service
public interface LisService {
    /**
     * 创建申请单
     * @param map
     * @return
     */
    String makeSqd(Map<String, Object> map);
}
src/main/java/com/example/service/shanxiqin/xian/MeiJiHisService.java
@@ -145,7 +145,9 @@
            return JSONUtil.toJsonStr(object);
        }
        JSONObject entries = JSONUtil.parseObj(string);
        if (entries.get("returnData") != null) {
        log.info("获取病人信息返回数据 ->{}", entries);
        Object returnData = entries.get("returnData");
        if (null != returnData && !returnData.toString().equals("null")) {
            HashMap<String, String> hashMap = new HashMap<>();
            JSONObject data = entries.getJSONObject("returnData");
            hashMap.put(ApiParamsConstants.CARD_ID,data.getStr("jiuZhenKh"));
src/main/java/com/example/service/shanxiqin/xian/MeiJiLisService.java
New file
@@ -0,0 +1,56 @@
package com.example.service.shanxiqin.xian;
import com.example.constant.ApiParamsConstants;
import com.example.constant.ApiParamsConstantsLis;
import com.example.service.LisService;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
 * @Company: 西安路泰科技有限公司
 * @Author: zhaowenxuan
 * @Date: 2024/12/25 10:14
 */
@Service("ShanXiQinXiAnMeiJiLis")
public class MeiJiLisService implements LisService {
    @Override
    public String makeSqd(Map<String, Object> map) {
        HashMap<String, Object> hashMap = new HashMap<>();
        // 门诊号码
        hashMap.put("PATIENTNO", map.get(ApiParamsConstantsLis.PATIENTNO));
        // 挂号号码
        hashMap.put("GH_PATIENTNO", map.get(ApiParamsConstantsLis.GH_PATIENTNO));
        // 标本条形码
        hashMap.put("TXM", map.get(ApiParamsConstantsLis.TXM));
        // 辅助号码
        hashMap.put("PRINTNO",map.get(ApiParamsConstantsLis.PRINTNO));
        // 病人姓名
        hashMap.put("PATIENTNAME",map.get(ApiParamsConstants.CUS_NAME));
        // 出生日期
        hashMap.put("BIRTHDAY",map.get(ApiParamsConstants.CUS_BRITHDAY));
        // 身份证号
        hashMap.put("SFZH",map.get(ApiParamsConstants.CUS_ID_CARD));
        // 性别
        long cusSex = Long.parseLong(map.get(ApiParamsConstants.CUS_SEX).toString());
        if(cusSex==0L){
            hashMap.put ("GENDER","1");
        }else if(cusSex==1L){
            hashMap.put ("GENDER","2");
        }else {
            hashMap.put ("GENDER","0");
        }
        hashMap.put("ADDRESS",map.get(ApiParamsConstants.CUS_ADDR));
        hashMap.put("TELEPHONE",map.get(ApiParamsConstants.CUS_PHONE));
        hashMap.put("YBKH","");
        hashMap.put("TJDW",map.get(ApiParamsConstants.COMP_NAME));
        return "";
    }
}
src/main/java/com/example/utils/HttpClientUtils.java
@@ -205,6 +205,7 @@
                        .append("=")
                        .append(URLEncoder.encode(entry.getValue().toString(), "UTF-8"));
            }
            log.info("参数拼接 ->{}",postData);
            writer = new OutputStreamWriter(connection.getOutputStream());
            writer.write(postData.toString());
            writer.flush();
src/main/java/com/example/utils/Test.java
New file
@@ -0,0 +1,25 @@
package com.example.utils;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import org.apache.ibatis.javassist.compiler.ast.Variable;
/**
 * @Company: 西安路泰科技有限公司
 * @Author: zhaowenxuan
 * @Date: 2024/12/30 14:32
 */
public class Test {
    public static void main(String[] args) {
        String json = "{\"businessStackTraces\":null,\"exceptionContent\":null,\"exceptionPosition\":null,\"returnCode\":1,\"returnData\":null,\"returnMessage\":\"请求成功\"}";
        JSONObject entries = JSONUtil.parseObj(json);
        Object returnData = entries.get("returnData");
        System.out.println("1 ->"+returnData);
        if (null != returnData && !returnData.toString().equals("null")) {
            System.out.println("1 = " + 1);
        }else {
            System.out.println("2 = " + 2);
        }
    }
}