文件修改

This commit is contained in:
Zhang.WH
2025-09-03 11:05:00 +08:00
parent db9d790435
commit 00208c5f79
305 changed files with 0 additions and 22981 deletions

View File

@@ -1,154 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>openhis-server</artifactId>
<groupId>com.openhis</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>openhis-ybapp</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<!-- 领域-->
<!-- <dependency>-->
<!-- <groupId>com.openhis</groupId>-->
<!-- <artifactId>openhis-domain</artifactId>-->
<!-- <version>0.0.1-SNAPSHOT</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.5.15</version> <!-- 确保版本与你的项目一致 -->
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.43</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<!-- 共通-->
<dependency>
<groupId>com.openhis</groupId>
<artifactId>openhis-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- liteflow-->
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-spring-boot-starter</artifactId>
<version>2.12.4.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.69</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.43</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>kernel</artifactId>
<version>7.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5</version>
</dependency>
<!-- pdf依赖-->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.12</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.15</version>
<configuration>
<fork>true</fork> <!-- 如果没有该配置devtools不会生效 -->
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>9</source>
<target>9</target>
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>
</project>

View File

@@ -1,50 +0,0 @@
package com.openhis;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;
import com.alibaba.fastjson.JSON;
import com.openhis.pojo.ResultBody;
import com.openhis.utils.EasyGmUtils;
/**
* 启动程序
*
* @author system
*/
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}, scanBasePackages = {"com.core", "com.openhis"})
public class OpenHisYbApplication {
public static void main(String[] args) throws UnknownHostException {
// System.setProperty("spring.devtools.restart.enabled", "false");
ConfigurableApplicationContext application = SpringApplication.run(OpenHisYbApplication.class, args);
Environment env = application.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");
String path = env.getProperty("server.servlet.context-path");
System.out.println("医保启动");
String msg = "{\"cainfo\":\"nz6uO/SDPvEnusDW091FTX+aUO50CUE1c3zSm9BLXMWUvbfxfLvDClwa2LR2sPESmti47a+c7CVec3OaZhte0A==\",\"err_msg\":\"成功\",\"inf_refmsgid\":\"220000202506231058383283681313\",\"infcode\":\"0\",\"output\":\"wYVUH0j0Lo9hUdRpaTd/9fNss5V0kDK/qwpDGA9bWrgED86hlNPordYmAs+bre/01Ik/gO+mzsX1K4yjzaAz8ze6AwQocY9JFBIjP/JV31P2eoq0+w1ZjXnu2BekEvqD+yfpd0IB1ENBS5fxv+wZde1D3h4wk12tdMGC0AY65TREGJXcGigTot6c3L8ZJsyG1uZbDQVur4t9p1Mv/1EJaXy3VWhZjoSDR/y615yvHA2Dmvuca60XU4gXdMluHnqxvs8TC6b/fFZqEl66bkP0Ic98CTzVPMSSZu37FX+9jdvZ28Ecq0KnN0v+scyX1RYe1SDRyWWSO+J7coAdYYnLYEQS7jGPOmNVjVP68LKAEPvLTxWh/sfMTYvcEZ0e3pDYTVLb9rODmF693Khns9qKJ5mEDCdKUksSgY63jaxpC8LgIszJnp0A4198MeVNRbMe51IuXJaYvdA58UgVr6smU8VY7NfdDJ/uuGAOv+rtHgykyWYKYmV0SV94oMSomCqCzhMN3g3+mv6mA6hdFixpQAzJLWmkM5wq92fSIwYfpZEFz/wxz7LI18myTO0Mw1Kygo2DIbfbFRIElo29Un7MlTFFQZC45XcEj1oIIvnh53h9sxREpuziJjj4wubMbCj1PM+ZM07zcYef2ZNxq8VoduTP7I8HTrQ+jGls7TmZ4npKvOrPV+v6LTiSnvHbOXfK0O1heRetpUURrAbkC3xsllV1rYSa1rR8gKLI8pHBRwpKK0krxlcM4Nyq1veI1+TfBHwjcLNeh3EK51Tij8cGoMDsub6G06uNhYEoCjz++uXX1ikzWDaAe+z3bjsPzdBMR4HjTy06F4W8OjcsslUABM6WF+DPZrIH0EbXB8ZCn92RKeTLCEJ5Ybczq7u9F48sVto6NTk4z54yZ31aFgu7n4Q6AVa4LHVJElgKHt3lHq4feWhhVwTDMIgOVC/a8esAoJcXySMDeLv6aqgs5rcH0Lh4UC/OYVa3eG10QSvbbh8JIhgspApZLlYOQw7TytxSEdtjw5UZMcaY8XXhEEiRr3hUAtJjzz7++N+N6Qdv8hLbJXIYeqPRnYf/PkxZjxOoITp86SGIjsYXd4DFIOQWRlmRPyzlws6Pj8TKN5st2FAve7vk5UNP/lk4X6noc0IgEAYnOPkO1ntztGTCm3XsJCyAHDnjDjPk1gimJy79yq8FpXkRA8o8PQfE6B8I8aKhli5X1wU18r3X8zrq8f8+/z6UstXcdR2p7hyfm+cjLwukVn1/kwvMFxa/4K7BMBAIAcB4Md1TduGioGBRT2JRbF7dO5VUN0YYUk2h2XUW2C1j5DAwTQuZTK5b0r9bY70IDCOYmAq4xd3lJMUfB1qq4TQve1Mm0hn25bNE7gvS4NrZcE5WI/4y6LYDd4TET7Mu1Y/6Rx92gGNzO9eLJ+xEkmB4M6LpBbTeMUl8KIzD8QNldA0pfZ5AhAKuuKtbOgujzQM8h7owsFgfPofTWg+jmIbI3nVJCzpfTp7R9hp69svbkN3p691VGuhc7weMwGRvmVl8HMe2quRDGt0Vfg4Bnak3QWzIHtlsYSf6v63SRre33JXC9KlrR8qa/XekbEgMh2Zur2ppszhwVs5hce5UCWfJzEO8G9bMecvz/C+tizI=\",\"refmsg_time\":\"20250623105838020\",\"respond_time\":\"20250623105838288\",\"signtype\":\"SM2\"}";
ResultBody response = JSON.parseObject(msg, ResultBody.class);
System.out.println(com.alibaba.fastjson2.JSON.toJSONString(response));
byte[] bytes = "8E8DF30BD2420D81".getBytes(StandardCharsets.UTF_8);
System.out.println(bytes.length);
byte[] result = EasyGmUtils.sm4Decrypt("8E8DF30BD2420D81".getBytes(StandardCharsets.UTF_8),
Base64.getDecoder().decode(response.getOutput()));
response.setOutput(new String(result));
System.out.println(JSON.toJSONString(response));
System.out.println("\n----------------------------------------------------------\n\t"
+ "Application OpenHis-YB is running! Access URLs:\n\t" + "Local: \t\thttp://localhost:" + port + path
+ "/\n\t" + "External: \thttp://" + ip + ":" + port + path + "/\n"
+ "----------------------------------------------------------");
}
}

View File

@@ -1,19 +0,0 @@
package com.openhis.annotation;
import java.lang.annotation.*;
import com.openhis.enums.ElepServiceAdrEnum;
import com.openhis.enums.ServiceAdrEnum;
/**
* 接口处理器注解
*/
@Documented
@Inherited
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface ElepHandlerInt {
ElepServiceAdrEnum value();
}

View File

@@ -1,18 +0,0 @@
package com.openhis.annotation;
import com.openhis.enums.ServiceAdrEnum;
import java.lang.annotation.*;
/**
* 接口处理器注解
*/
@Documented
@Inherited
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface HandlerInt {
ServiceAdrEnum value();
}

View File

@@ -1,38 +0,0 @@
package com.openhis.component;
import com.openhis.context.ElepHandlerServiceContext;
import com.openhis.domain.BaseResponse;
import com.openhis.pojo.RequestData;
import com.openhis.service.IElepHandlerService;
import com.openhis.vo.BaseParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.openhis.context.HandlerServiceContext;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
import com.openhis.service.HandlerService;
/**
* handler分发
*/
@Component
public class ElepHandlerIntDispatcher {
/** 接口服务容器 */
@Autowired
private ElepHandlerServiceContext elepHandlerServiceContext;
/**
* dispatcher 处理器
* @param intType
* @param requestData
* @return
*/
public BaseResponse dispatcher(String intType, RequestData requestData, BaseParam baseParam) {
// 根据接口类型获取对应服务
IElepHandlerService elephandlerService = elepHandlerServiceContext.getElepHandlerService(intType);
// 调用对应服务接口
return elephandlerService.elepHandle(requestData,baseParam);
}
}

View File

@@ -1,34 +0,0 @@
package com.openhis.component;
import com.openhis.vo.BaseParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.openhis.context.HandlerServiceContext;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
import com.openhis.service.HandlerService;
/**
* handler分发
*/
@Component
public class HandlerIntDispatcher {
/** 接口服务容器 */
@Autowired
private HandlerServiceContext handlerServiceContext;
/**
* dispatcher 处理器
* @param intType
* @param inputData
* @return
*/
public ResultBody dispatcher(String intType, InputData inputData, BaseParam baseParam) {
// 根据接口类型获取对应服务
HandlerService handlerService = handlerServiceContext.getHandlerService(intType);
// 调用对应服务接口
return handlerService.handle(inputData,baseParam);
}
}

View File

@@ -1,36 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
/**
* TODO:医疗机构的配置参数
*
* @author SunJQ
* @date 2025-03-15
*/
@Data
@Component
@PropertySource(value="classpath:/config/hospital-config.properties",encoding="UTF-8",ignoreResourceNotFound=true)
@ConfigurationProperties(prefix = "pro")
public class HospitalInfoConfig {
/** 同步工作流引擎1同步0不同步 */
private Integer activitiSync;
/**多租户id配置编辑用户的时候设置*/
private String relTenantIds;
/**医保类型1-市医保2-省医保3-省市医保*/
private String medicareType;
/** 定点医药机构编号 */
private String fixmedinsCode;
/** 定点医药机构名称 */
private String fixmedinsName;
/** 统筹区号 */
private String admvs;
/** 行政区划 */
private String district;
}

View File

@@ -1,43 +0,0 @@
package com.openhis.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
import lombok.Data;
/**
* 系统参数配置类
*/
@Data
@Component
@PropertySource(value = "classpath:/config/sys-config.properties", encoding = "UTF-8", ignoreResourceNotFound = true)
@ConfigurationProperties(prefix = "prod")
// @ConfigurationProperties(prefix = "dev")
public class InterfaceConfig {
/** 文件下载路径 */
private String filePath;
/** address */
private String address;
/** 缓存时间 */
private int time;
/** 是否加密 */
private Boolean isEncrypt;
/** 应用密钥 */
private String cliPubKey;
/** 秘钥 */
private String cliPrvKey;
/** appId */
private String clientId;
/** eleAddress */
private String eleAddress;
}

View File

@@ -1,227 +0,0 @@
package com.openhis.config;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
import java.io.Serializable;
import java.util.Date;
/**
* 多租户信息表
* @TableName sys_tenant
*/
//@TableName(value ="sys_tenant")
@Data
@Component
@PropertySource(value="classpath:/config/tenant-config.properties",encoding="UTF-8",ignoreResourceNotFound=true)
@ConfigurationProperties(prefix = "pr")
public class Tenant implements Serializable {
/**
* 租户编码
*/
//@TableId
private String id;
/**
* 租户名称
*/
private String name;
/**
* 开始时间
*/
private Date beginDate;
/**
* 结束时间
*/
private Date endDate;
/**
* 客戶端id
*/
private String clientId;//医保用
/**
* 客戶端安全码
*/
private String clientSecret;//医保用
/**
* 医保服务平台账号
*/
private String username;//医保用
/**
* 医保服务平台密码
*/
private String password;//医保用
/**
* 终端授权类型
*/
private String grantType;//医保用
/**
* 终端授权范围
*/
private String scope;//医保用
/**
* 公钥
*/
private String cliPubKey;
/**
* 秘钥
*/
private String cliPrvKey;//医保用
/**
* 服务端公钥
*/
private String serverPubKey;
/**
* 定点医药机构编号
*/
private String fixmedinsCode;//医保用
/**
* 定点医药机构名称
*/
private String fixmedinsName;//医保用
/**
* 统筹区号
*/
private String admvs;//医保用
/**
* 状态 1正常 0冻结
*/
private Integer status;
/**
* 创建人
*/
private String createBy;
/**
* 创建日期
*/
private Date createTime;
/**
* 更新人
*/
private String updateBy;
/**
* 更新日期
*/
private Date updateTime;
// @TableField(exist = false)
private static final long serialVersionUID = 1L;
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
Tenant other = (Tenant) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
&& (this.getBeginDate() == null ? other.getBeginDate() == null : this.getBeginDate().equals(other.getBeginDate()))
&& (this.getEndDate() == null ? other.getEndDate() == null : this.getEndDate().equals(other.getEndDate()))
&& (this.getClientId() == null ? other.getClientId() == null : this.getClientId().equals(other.getClientId()))
&& (this.getClientSecret() == null ? other.getClientSecret() == null : this.getClientSecret().equals(other.getClientSecret()))
&& (this.getUsername() == null ? other.getUsername() == null : this.getUsername().equals(other.getUsername()))
&& (this.getPassword() == null ? other.getPassword() == null : this.getPassword().equals(other.getPassword()))
&& (this.getGrantType() == null ? other.getGrantType() == null : this.getGrantType().equals(other.getGrantType()))
&& (this.getScope() == null ? other.getScope() == null : this.getScope().equals(other.getScope()))
&& (this.getCliPubKey() == null ? other.getCliPubKey() == null : this.getCliPubKey().equals(other.getCliPubKey()))
&& (this.getCliPrvKey() == null ? other.getCliPrvKey() == null : this.getCliPrvKey().equals(other.getCliPrvKey()))
&& (this.getServerPubKey() == null ? other.getServerPubKey() == null : this.getServerPubKey().equals(other.getServerPubKey()))
&& (this.getFixmedinsCode() == null ? other.getFixmedinsCode() == null : this.getFixmedinsCode().equals(other.getFixmedinsCode()))
&& (this.getFixmedinsName() == null ? other.getFixmedinsName() == null : this.getFixmedinsName().equals(other.getFixmedinsName()))
&& (this.getAdmvs() == null ? other.getAdmvs() == null : this.getAdmvs().equals(other.getAdmvs()))
&& (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
&& (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
&& (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
&& (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()));
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
result = prime * result + ((getBeginDate() == null) ? 0 : getBeginDate().hashCode());
result = prime * result + ((getEndDate() == null) ? 0 : getEndDate().hashCode());
result = prime * result + ((getClientId() == null) ? 0 : getClientId().hashCode());
result = prime * result + ((getClientSecret() == null) ? 0 : getClientSecret().hashCode());
result = prime * result + ((getUsername() == null) ? 0 : getUsername().hashCode());
result = prime * result + ((getPassword() == null) ? 0 : getPassword().hashCode());
result = prime * result + ((getGrantType() == null) ? 0 : getGrantType().hashCode());
result = prime * result + ((getScope() == null) ? 0 : getScope().hashCode());
result = prime * result + ((getCliPubKey() == null) ? 0 : getCliPubKey().hashCode());
result = prime * result + ((getCliPrvKey() == null) ? 0 : getCliPrvKey().hashCode());
result = prime * result + ((getServerPubKey() == null) ? 0 : getServerPubKey().hashCode());
result = prime * result + ((getFixmedinsCode() == null) ? 0 : getFixmedinsCode().hashCode());
result = prime * result + ((getFixmedinsName() == null) ? 0 : getFixmedinsName().hashCode());
result = prime * result + ((getAdmvs() == null) ? 0 : getAdmvs().hashCode());
result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", name=").append(name);
sb.append(", beginDate=").append(beginDate);
sb.append(", endDate=").append(endDate);
sb.append(", clientId=").append(clientId);
sb.append(", clientSecret=").append(clientSecret);
sb.append(", username=").append(username);
sb.append(", password=").append(password);
sb.append(", grantType=").append(grantType);
sb.append(", scope=").append(scope);
sb.append(", cliPubKey=").append(cliPubKey);
sb.append(", cliPrvKey=").append(cliPrvKey);
sb.append(", serverPubKey=").append(serverPubKey);
sb.append(", fixmedinsCode=").append(fixmedinsCode);
sb.append(", fixmedinsName=").append(fixmedinsName);
sb.append(", admvs=").append(admvs);
sb.append(", status=").append(status);
sb.append(", createBy=").append(createBy);
sb.append(", createTime=").append(createTime);
sb.append(", updateBy=").append(updateBy);
sb.append(", updateTime=").append(updateTime);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}

View File

@@ -1,11 +0,0 @@
package com.openhis.constant;
/**
* 门诊状态常量
*/
public interface ClincStatusConst {
String STATUS_0 = "0";
String STATUS_1 = "1";
String STATUS_2 = "2";
String CANCLE = "-1";
}

View File

@@ -1,327 +0,0 @@
package com.openhis.constant;
public interface CommonConstant {
/**
* 正常状态
*/
public static final Integer STATUS_NORMAL = 0;
/**
* 禁用状态
*/
public static final Integer STATUS_DISABLE = -1;
/**
* 删除标志
*/
public static final Integer DEL_FLAG_1 = 1;
/**
* 未删除
*/
public static final Integer DEL_FLAG_0 = 0;
/**
* 系统日志类型: 登录
*/
public static final int LOG_TYPE_1 = 1;
/**
* 系统日志类型: 操作
*/
public static final int LOG_TYPE_2 = 2;
/**
* 操作日志类型: 查询
*/
public static final int OPERATE_TYPE_1 = 1;
/**
* 操作日志类型: 添加
*/
public static final int OPERATE_TYPE_2 = 2;
/**
* 操作日志类型: 更新
*/
public static final int OPERATE_TYPE_3 = 3;
/**
* 操作日志类型: 删除
*/
public static final int OPERATE_TYPE_4 = 4;
/**
* 操作日志类型: 倒入
*/
public static final int OPERATE_TYPE_5 = 5;
/**
* 操作日志类型: 导出
*/
public static final int OPERATE_TYPE_6 = 6;
/** {@code 500 Server Error} (HTTP/1.0 - RFC 1945) */
public static final Integer SC_INTERNAL_SERVER_ERROR_500 = 500;
/** {@code 200 OK} (HTTP/1.0 - RFC 1945) */
public static final Integer SC_OK_200 = 200;
/**访问权限认证未通过 510*/
public static final Integer SC_JEECG_NO_AUTHZ=510;
/** 登录用户Shiro权限缓存KEY前缀 */
public static String PREFIX_USER_SHIRO_CACHE = "shiro:cache:org.jeecg.config.shiro.ShiroRealm.authorizationCache:";
/** 登录用户Token令牌缓存KEY前缀 */
public static final String PREFIX_USER_TOKEN = "prefix_user_token_";
/** Token缓存时间3600秒即一小时 */
public static final int TOKEN_EXPIRE_TIME = 3600;
/**
* 0一级菜单
*/
public static final Integer MENU_TYPE_0 = 0;
/**
* 1子菜单
*/
public static final Integer MENU_TYPE_1 = 1;
/**
* 2按钮权限
*/
public static final Integer MENU_TYPE_2 = 2;
/**通告对象类型USER:指定用户ALL:全体用户)*/
public static final String MSG_TYPE_UESR = "USER";
public static final String MSG_TYPE_ALL = "ALL";
/**发布状态0未发布1已发布2已撤销*/
public static final String NO_SEND = "0";
public static final String HAS_SEND = "1";
public static final String HAS_CANCLE = "2";
/**阅读状态0未读1已读*/
public static final String HAS_READ_FLAG = "1";
public static final String NO_READ_FLAG = "0";
/**优先级L低M中H高*/
public static final String PRIORITY_L = "L";
public static final String PRIORITY_M = "M";
public static final String PRIORITY_H = "H";
/**
* 短信模板方式 0 .登录模板、1.注册模板、2.忘记密码模板
*/
public static final String SMS_TPL_TYPE_0 = "0";
public static final String SMS_TPL_TYPE_1 = "1";
public static final String SMS_TPL_TYPE_2 = "2";
/**
* 状态(0无效1有效)
*/
public static final String STATUS_0 = "0";
public static final String STATUS_1 = "1";
/**
* 同步工作流引擎1同步0不同步
*/
public static final Integer ACT_SYNC_1 = 1;
public static final Integer ACT_SYNC_0 = 0;
/**
* 消息类型1:通知公告2:系统消息
*/
public static final String MSG_CATEGORY_1 = "1";
public static final String MSG_CATEGORY_2 = "2";
/**
* 是否配置菜单的数据权限 1是0否
*/
public static final Integer RULE_FLAG_0 = 0;
public static final Integer RULE_FLAG_1 = 1;
/**
* 是否用户已被冻结 1正常(解冻) 2冻结
*/
public static final Integer USER_UNFREEZE = 1;
public static final Integer USER_FREEZE = 2;
/**字典翻译文本后缀*/
public static final String DICT_TEXT_SUFFIX = "_dictText";
/**
* 表单设计器主表类型
*/
public static final Integer DESIGN_FORM_TYPE_MAIN = 1;
/**
* 表单设计器子表表类型
*/
public static final Integer DESIGN_FORM_TYPE_SUB = 2;
/**
* 表单设计器URL授权通过
*/
public static final Integer DESIGN_FORM_URL_STATUS_PASSED = 1;
/**
* 表单设计器URL授权未通过
*/
public static final Integer DESIGN_FORM_URL_STATUS_NOT_PASSED = 2;
/**
* 表单设计器新增 Flag
*/
public static final String DESIGN_FORM_URL_TYPE_ADD = "add";
/**
* 表单设计器修改 Flag
*/
public static final String DESIGN_FORM_URL_TYPE_EDIT = "edit";
/**
* 表单设计器详情 Flag
*/
public static final String DESIGN_FORM_URL_TYPE_DETAIL = "detail";
/**
* 表单设计器复用数据 Flag
*/
public static final String DESIGN_FORM_URL_TYPE_REUSE = "reuse";
/**
* 表单设计器编辑 Flag (已弃用)
*/
public static final String DESIGN_FORM_URL_TYPE_VIEW = "view";
/**
* online参数值设置Y, 否N
*/
public static final String ONLINE_PARAM_VAL_IS_TURE = "Y";
public static final String ONLINE_PARAM_VAL_IS_FALSE = "N";
/**
* 文件上传类型本地localMiniominio阿里云alioss
*/
public static final String UPLOAD_TYPE_LOCAL = "local";
public static final String UPLOAD_TYPE_MINIO = "minio";
public static final String UPLOAD_TYPE_OSS = "alioss";
/**
* 文档上传自定义桶名称
*/
public static final String UPLOAD_CUSTOM_BUCKET = "eoafile";
/**
* 文档上传自定义路径
*/
public static final String UPLOAD_CUSTOM_PATH = "eoafile";
/**
* 文件外链接有效天数
*/
public static final Integer UPLOAD_EFFECTIVE_DAYS = 1;
/**
* 员工身份 1:普通员工 2:上级)
*/
public static final Integer USER_IDENTITY_1 = 1;
public static final Integer USER_IDENTITY_2 = 2;
/** sys_user 表 username 唯一键索引 */
public static final String SQL_INDEX_UNIQ_SYS_USER_USERNAME = "uniq_sys_user_username";
/** sys_user 表 work_no 唯一键索引 */
public static final String SQL_INDEX_UNIQ_SYS_USER_WORK_NO = "uniq_sys_user_work_no";
/** sys_user 表 phone 唯一键索引 */
public static final String SQL_INDEX_UNIQ_SYS_USER_PHONE = "uniq_sys_user_phone";
/** sys_user 表 email 唯一键索引 */
public static final String SQL_INDEX_UNIQ_SYS_USER_EMAIL = "uniq_sys_user_email";
/** sys_quartz_job 表 job_class_name 唯一键索引 */
public static final String SQL_INDEX_UNIQ_JOB_CLASS_NAME = "uniq_job_class_name";
/** sys_position 表 code 唯一键索引 */
public static final String SQL_INDEX_UNIQ_CODE = "uniq_code";
/** sys_role 表 code 唯一键索引 */
public static final String SQL_INDEX_UNIQ_SYS_ROLE_CODE = "uniq_sys_role_role_code";
/** sys_depart 表 code 唯一键索引 */
public static final String SQL_INDEX_UNIQ_DEPART_ORG_CODE = "uniq_depart_org_code";
/**
* 在线聊天 是否为默认分组
*/
public static final String IM_DEFAULT_GROUP = "1";
/**
* 在线聊天 图片文件保存路径
*/
public static final String IM_UPLOAD_CUSTOM_PATH = "imfile";
/**
* 在线聊天 用户状态
*/
public static final String IM_STATUS_ONLINE = "online";
/**
* 在线聊天 SOCKET消息类型
*/
public static final String IM_SOCKET_TYPE = "chatMessage";
/**
* 在线聊天 是否开启默认添加好友 1是 0否
*/
public static final String IM_DEFAULT_ADD_FRIEND = "1";
/**
* 在线聊天 用户好友缓存前缀
*/
public static final String IM_PREFIX_USER_FRIEND_CACHE = "sys:cache:im:im_prefix_user_friend_";
/**
* 考勤补卡业务状态 1同意 2不同意
*/
public static final String SIGN_PATCH_BIZ_STATUS_1 = "1";
public static final String SIGN_PATCH_BIZ_STATUS_2 = "2";
/**
* 公文文档上传自定义路径
*/
public static final String UPLOAD_CUSTOM_PATH_OFFICIAL = "officialdoc";
/**
* 公文文档下载自定义路径
*/
public static final String DOWNLOAD_CUSTOM_PATH_OFFICIAL = "officaldown";
/**
* WPS存储值类别(1 code文号 2 textWPS模板还是公文发文模板)
*/
public static final String WPS_TYPE_1="1";
public static final String WPS_TYPE_2="2";
public final static String X_ACCESS_TOKEN = "X-Access-Token";
public final static String X_SIGN = "X-Sign";
public final static String X_TIMESTAMP = "X-TIMESTAMP";
/**
* 多租户 请求头
*/
public final static String TENANT_ID = "tenant-id";
/**
* 微服务读取配置文件属性 服务地址
*/
public final static String CLOUD_SERVER_KEY = "spring.cloud.nacos.discovery.server-addr";
/**
* 第三方登录 验证密码/创建用户 都需要设置一个操作码 防止被恶意调用
*/
public final static String THIRD_LOGIN_CODE = "third_login_code";
/**
* 第三方APP同步方向本地 --> 第三方APP
*/
String THIRD_SYNC_TO_APP = "SYNC_TO_APP";
/**
* 第三方APP同步方向第三方APP --> 本地
*/
String THIRD_SYNC_TO_LOCAL = "SYNC_TO_LOCAL";
/** 系统通告消息状态0=未发布 */
String ANNOUNCEMENT_SEND_STATUS_0 = "0";
/** 系统通告消息状态1=已发布 */
String ANNOUNCEMENT_SEND_STATUS_1 = "1";
/** 系统通告消息状态2=已撤销 */
String ANNOUNCEMENT_SEND_STATUS_2 = "2";
}

View File

@@ -1,23 +0,0 @@
package com.openhis.constant;
/**
* 入参类型常量
*/
public interface InputDataTypeConst {
String DATA = "data";
String FEE_DETAIL = "feedetail";
String SIGN_IN = "signIn";
String SIGN_OUT = "signOut";
String MD_TRT_INFO = "mdtrtinfo";
String DI_SE_INFO = "diseinfo";
String DRUG_INFO = "druginfo";
String DRUG_DETAIL = "drugdetail";
String DSCG_INFO = "dscginfo";
String PURC_INFO = "purcinfo";
String INV_INFO = "invinfo";
String SEL_INFO = "selinfo";
String DRUG_TRAC_INFO = "drugtracinfo";
String ADM_INFO = "adminfo";
}

View File

@@ -1,14 +0,0 @@
package com.openhis.constant;
/**
* 医保接口标识常量
*/
public interface InterFaceResultConst {
/** 标识字段 */
String INFCODE = "infcode";
/** 成功 */
String SUCCESS = "0";
/** 失败 */
String FAILED = "-1";
}

View File

@@ -1,38 +0,0 @@
package com.openhis.context;
import java.util.HashMap;
import java.util.Map;
import com.openhis.service.IElepHandlerService;
import org.springframework.stereotype.Component;
import com.openhis.service.HandlerService;
/**
* 工厂模式
*/
@Component
public class ElepHandlerServiceContext {
/** 接口处理器容器 */
private final Map<String, IElepHandlerService> elepHandlerMap = new HashMap<>();
/**
* 根据类型从容器中获取处理器
* @param type
* @return
*/
public IElepHandlerService getElepHandlerService(String type) {
return elepHandlerMap.get(type);
}
/**
* 装载处理器
* @param type
* @param service
*/
public void putElepHandlerService(String type, IElepHandlerService service) {
elepHandlerMap.put(type, service);
}
}

View File

@@ -1,36 +0,0 @@
package com.openhis.context;
import com.openhis.service.HandlerService;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* 工厂模式
*/
@Component
public class HandlerServiceContext {
/** 接口处理器容器 */
private final Map<String, HandlerService> handlerMap = new HashMap<>();
/**
* 根据类型从容器中获取处理器
* @param type
* @return
*/
public HandlerService getHandlerService(String type) {
return handlerMap.get(type);
}
/**
* 装载处理器
* @param type
* @param service
*/
public void putHandlerService(String type, HandlerService service) {
handlerMap.put(type, service);
}
}

View File

@@ -1,371 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.controller;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.alibaba.fastjson2.JSON;
import com.core.common.annotation.Anonymous;
import com.openhis.config.InterfaceConfig;
import com.openhis.service.FileService;
import com.openhis.service.YbService;
import com.openhis.vo.*;
import cn.hutool.crypto.asymmetric.Sign;
/**
* TODO:医保控制层
*
* @author SunJQ
* @date 2025-03-18
*/
@RestController
@RequestMapping("/yb")
public class YbController {
/** 中心接口配置 */
@Autowired
protected InterfaceConfig interfaceConfig;
// logger.debug("这是专用日志测试");
Logger logger = LoggerFactory.getLogger(YbController.class);
/** 医保服务 */
@Autowired
private YbService ybService;
/** 文件服务 */
@Autowired
private FileService fileService;
@PostMapping(value = "/signIn")
@Anonymous
public Result<?> signIn(@RequestBody BaseParam sign, HttpServletRequest request) {
return ybService.signIn(sign, request);
}
@PostMapping(value = "/signOut")
@Anonymous
public Result<?> signOut(BaseParam baseParam, Sign sign) {
return ybService.signOut(baseParam);
}
@PostMapping(value = "/getPatinfo")
@Anonymous
public Result<?> getPerInfo(@RequestBody BaseParam baseParam) {
return ybService.getPerInfo(baseParam);
}
@PostMapping(value = "/reg")
@Anonymous
public Result<?> reg(@RequestBody BaseParam baseParam) {
logger.info(JSON.toJSONString(baseParam));
return ybService.reg(baseParam);
}
@PostMapping(value = "/cancelReg")
@Anonymous
public Result<?> cancelReg(@RequestBody BaseParam baseParam) {
return ybService.cancelReg(baseParam);
}
@PostMapping(value = "/preSetl")
@Anonymous
public Result<?> preSetl(@RequestBody BaseParam baseParam) {
return ybService.preSetl(baseParam);
}
@PostMapping(value = "/unPreSettle")
@Anonymous
public Result<?> unPreSettle(@RequestBody BaseParam baseParam) {
return ybService.cancelFeeDetail(baseParam);
}
@PostMapping(value = "/upload2203-record")
@Anonymous
public Result<?> upload2203Record(@RequestBody BaseParam baseParam) {
return ybService.saveMedical(baseParam);
}
@PostMapping(value = "/upload2204-record")
@Anonymous
public Result<?> preSettle(@RequestBody BaseParam baseParam) {
return ybService.upFeeDetail(baseParam);
}
@PostMapping(value = "/cancel2205")
@Anonymous
public Result<?> cancelFeeDetail(@RequestBody BaseParam baseParam) {
return ybService.cancelFeeDetail(baseParam);
}
@PostMapping(value = "/setl")
@Anonymous
public Result<?> setl(@RequestBody BaseParam baseParam) {
return ybService.setl(baseParam);
}
@PostMapping(value = "/cancelSetl")
@Anonymous
public Result<?> cancelSetl(@RequestBody BaseParam baseParam) {
return ybService.cancelSetl(baseParam);
}
@PostMapping(value = "/download")
@Anonymous
public Result<?> download(BaseParam baseParam, FileDownload fileDownload) {
return ybService.download(baseParam, fileDownload);
}
@PostMapping(value = "/directoryCheck")
@Anonymous
public Result<?> directoryCheck(@RequestBody BaseParam baseParam) {
return ybService.directoryCheck(baseParam);
}
@PostMapping(value = "/directoryUnCheck")
@Anonymous
public Result<?> directoryUnCheck(@RequestBody BaseParam baseParam) {
return ybService.directoryUnCheck(baseParam);
}
@PostMapping(value = "/reconcile")
@Anonymous
public Result<?> reconcileGeneralLedger(@RequestBody BaseParam baseParam) {
return ybService.reconcileGeneralLedger(baseParam);
}
@PostMapping(value = "/reconcile-detail")
@Anonymous
public Result<?> reconcileGeneralLedgerDetail(BaseParam baseParam,
FinancialSettlement3202Param financial3202Param) {
return ybService.reconcileGeneralLedgerDetail(baseParam, financial3202Param);
}
@PostMapping(value = "/three-part-search-err")
@Anonymous
public Result<?> threePartSearch(BaseParam baseParam, FinancialSettlement3209AParam financialSettlement3209AParam) {
return ybService.threePartSearch(baseParam, financialSettlement3209AParam);
}
@PostMapping(value = "/apply-clearing")
@Anonymous
public Result<?> applyFinancialClearing(@RequestBody BaseParam baseParam, Financial3203AParam financial3203AParam) {
return ybService.applyFinancialClearing(baseParam);
}
@PostMapping(value = "/cancel-clearing")
@Anonymous
public Result<?> cancelFinancialClearing(@RequestBody BaseParam baseParam, Financial3204Param financial3204Param) {
return ybService.cancelFinancialClearing(baseParam, financial3204Param);
}
@PostMapping(value = "/get-clearing-status")
@Anonymous
public Result<?> getFinancialClearingStatus(@RequestBody BaseParam baseParam,
Clearing3205AParma clearing3205AParma) {
return ybService.getFinancialClearingStatus(baseParam, clearing3205AParma);
}
@PostMapping(value = "/upload-inventory-count")
@Anonymous
public Result<?> uploadInventoryCount(@RequestBody BaseParam baseParam) {
return ybService.uploadInventoryCount(baseParam);
}
@PostMapping(value = "/update-inventory")
@Anonymous
public Result<?> updateInventoryCount(@RequestBody BaseParam baseParam) {
return ybService.updateInventoryCount(baseParam);
}
@PostMapping(value = "/procurement")
@Anonymous
public Result<?> procurement(@RequestBody BaseParam baseParam) {
return ybService.procurement(baseParam);
}
@PostMapping(value = "/procurement-cancel")
@Anonymous
public Result<?> cancelProcurement(@RequestBody BaseParam baseParam) {
return ybService.cancelProcurement(baseParam);
}
@PostMapping(value = "/merchandise")
@Anonymous
public Result<?> merchandise(@RequestBody BaseParam baseParam) {
return ybService.merchandise(baseParam);
}
@PostMapping(value = "/cancel-merchandise")
@Anonymous
public Result<?> cancelMerchandise(@RequestBody BaseParam baseParam) {
return ybService.cancelMerchandise(baseParam);
}
@PostMapping(value = "/del-goods")
@Anonymous
public Result<?> deleteGoodsInfo(BaseParam baseParam, Medical3507Param medical3507Param) {
return ybService.deleteGoodsInfo(baseParam, medical3507Param);
}
@PostMapping(value = "/getclroptins")
@Anonymous
public Result<?> getClrOptins(@RequestBody BaseParam baseParam) {
return ybService.getClrOptins(baseParam);
}
@PostMapping(value = "/file-up1")
@Anonymous
public Result<?> uploadFile(@RequestParam("in") MultipartFile file, // 对应接口参数名"in"
@RequestParam("filename") String filename, @RequestParam("fixmedins_code") String fixmedinsCode) {
// 1. 基础校验
if (file.isEmpty()) {
return Result.error("文件不能为空");
}
if (!file.getOriginalFilename().endsWith(".zip")) {
return Result.error("仅支持ZIP格式文件");
}
// 2. 调用Service处理业务逻辑
try {
// FileResult fileResult =
fileService.uploadFile(file.getInputStream(), filename, fixmedinsCode);
return Result.ok("");
} catch (Exception e) {
return Result.error("处理失败: " + e.getMessage());
}
}
@PostMapping(value = "/file-up2")
@Anonymous
public Result<?> upload3202File(@RequestPart("file") MultipartFile file,
@RequestParam("fixmedinsCode") String fixmedinsCode, @RequestParam("userId") String userId,
@RequestParam("admvs") String admvs) {
// File9101Param file9101Param = JSON.parseObject(JSON.toJSONString(baseParam.getData()), File9101Param.class);
// MultipartFile file = file9101Param.getFile();
String filename = file.getOriginalFilename();
// String fixmedinsCode = file9101Param.getFixmedinsCode();
// 1. 基础校验
if (file.isEmpty()) {
return Result.error("文件不能为空");
}
// if (!file.getOriginalFilename().endsWith(".zip")) {
// return Result.error("仅支持ZIP格式文件");
// }
// 2. 调用Service处理业务逻辑
try {
// FileResult fileResult =
// fileService.uploadFile(file,filename, fixmedinsCode);
return fileService.uploadFile(file, filename, fixmedinsCode, admvs, userId);
} catch (Exception e) {
return Result.error("处理失败: " + e.getMessage());
}
}
@PostMapping(value = "/file-down")
@Anonymous
public Result<?> downloadFile(FileResult fileResult) {
return fileService.downloadFile(fileResult);
}
@PostMapping(value = "/queryYbCatalogue")
@Anonymous
public Result<?> queryYbCatalogue(@RequestBody BaseParam baseParam) {
return ybService.queryYbCatalogue(baseParam);
}
@PostMapping(value = "/upload-2301-fee-detail")
@Anonymous
public Result<?> uploadInpatientFeeDetail(@RequestBody BaseParam baseParam) {
return ybService.uploadInpatientFeeDetail(baseParam);
}
@PostMapping(value = "/cancel-2302-fee-detail")
@Anonymous
public Result<?> cancelInpatientFeeDetail(@RequestBody BaseParam baseParam) {
return ybService.cancelInpatientFeeDetail(baseParam);
}
@PostMapping(value = "/inpa-pre-setl")
@Anonymous
public Result<?> prePayInpatient(@RequestBody BaseParam baseParam) {
return ybService.prePayInpatient(baseParam);
}
@PostMapping(value = "/inpa-setl")
@Anonymous
public Result<?> payInpatient(@RequestBody BaseParam baseParam) {
return ybService.payInpatient(baseParam);
}
@PostMapping(value = "/inpa-un-setl")
@Anonymous
public Result<?> cancelInpatientPay(@RequestBody BaseParam baseParam) {
return ybService.cancelInpatientPay(baseParam);
}
@PostMapping(value = "/inpatient-reg")
@Anonymous
public Result<?> inpatientReg(@RequestBody BaseParam baseParam) {
return ybService.inpatientReg(baseParam);
}
@PostMapping(value = "/discharge-patient")
@Anonymous
public Result<?> dischargePatient(@RequestBody BaseParam baseParam) {
return ybService.dischargePatient(baseParam);
}
@PostMapping(value = "/change-inpatient-info")
@Anonymous
public Result<?> changeInpatientInfo(@RequestBody BaseParam baseParam) {
return ybService.changeInpatientInfo(baseParam);
}
@PostMapping(value = "/cancel-inpatient-reg")
@Anonymous
public Result<?> cancelInpatientReg(@RequestBody BaseParam baseParam) {
return ybService.cancelInpatientReg(baseParam);
}
@PostMapping(value = "/cancel-discharge-patient")
@Anonymous
public Result<?> cancelDischargePatient(@RequestBody BaseParam baseParam) {
return ybService.cancelDischargePatient(baseParam);
}
/**
* 【3101】明细审核事前事中分析服务
*
* @param baseParam 基础参数
* @return 结果
*/
@PostMapping(value = "/pre-mid-analysis")
@Anonymous
public Result<?> yb3101PreMidAnalysis(@RequestBody BaseParam baseParam) {
return ybService.yb3101PreMidAnalysis(baseParam);
}
/**
* 【3103】事前事中服务反馈服务
*
* @param baseParam 基础参数
* @return 结果
*/
@PostMapping(value = "/pre-mid-feedback")
@Anonymous
public Result<?> yb3103PreMidFeedback(@RequestBody BaseParam baseParam) {
return ybService.yb3103PreMidFeedback(baseParam);
}
}

View File

@@ -1,110 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.core.common.annotation.Anonymous;
import com.openhis.service.IYbElepService;
import com.openhis.vo.BaseParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.openhis.config.InterfaceConfig;
import com.openhis.domain.*;
import com.openhis.vo.Result;
/**
*
* @author yuxj
* @date 2025-04-17
*/
@RestController
@RequestMapping("/ybElep")
public class YbElepController {
/** 医保服务 */
@Autowired
private IYbElepService ybElepService;
/**
* 电子处方上传预核验
*
* @param baseParam 处方信息
* @return
*/
@PostMapping(value = "/preCheckPrescription")
@Anonymous
public Result<?> preCheckPrescription(@RequestBody BaseParam baseParam) {
return ybElepService.preCheckPrescription(baseParam);
}
/**
* 电子处方医保电子签名
*
* @param baseParam 电子签名信息
* @return
*/
@PostMapping(value = "/signature")
@Anonymous
public Result<?> signature(@RequestBody BaseParam baseParam) {
return ybElepService.signature(baseParam);
}
/**
* 电子处方上传
*
* @param baseParam 上传信息
* @return
*/
@PostMapping(value = "/upload")
@Anonymous
public Result<?> upload(@RequestBody BaseParam baseParam) {
return ybElepService.upload(baseParam);
}
/**
* 电子处方撤销
*
* @param baseParam 撤销信息
* @return
*/
@PostMapping(value = "/revoke")
@Anonymous
public Result<?> revoke(@RequestBody BaseParam baseParam) {
return ybElepService.revoke(baseParam);
}
/**
* 电子处方信息查询
*
* @param baseParam 查询信息
* @return
*/
@PostMapping(value = "/querPrescription")
@Anonymous
public Result<?> querPrescription(@RequestBody BaseParam baseParam) {
return ybElepService.querPrescription(baseParam);
}
/**
* 电子处方取药结果查询
*
* @param baseParam 撤销信息
* @return
*/
@PostMapping(value = "/medresult")
@Anonymous
public Result<?> medresult(@RequestBody BaseParam baseParam) {
return ybElepService.medresult(baseParam);
}
}

View File

@@ -1,35 +0,0 @@
package com.openhis.domain;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
* 基础请求模型
* 包含所有接口共有的请求参数
*/
@Data
public class BaseRequest {
private String appId; // 应用id
private String version; // 版本号 1.0.0
private String timestamp; // 当前时间
private String encType; // 加密方式 SM4
private String encData; // 加密数据
private String signType; // 签名方式 SM2
private String signData; // 签名串
private String data; // 未签名数据
public Map<String, Object> toMap() {
Map<String, Object> map = new HashMap<>();
map.put("appId", this.appId);
map.put("version", this.version);
map.put("timestamp", this.timestamp);
map.put("encType", this.encType);
map.put("encData", this.encData);
map.put("signType", this.signType);
map.put("signData", this.signData);
return map;
}
}

View File

@@ -1,39 +0,0 @@
package com.openhis.domain;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
* 基础响应模型 包含所有接口共有的响应参数
*/
@Data
public class BaseResponse {
private int code; // 响应状态码
private String message; // 响应异常信息
private Boolean success; // 响应标识
private String type; // 类型
private String appId; // 应用id
private String timestamp; // 当前时间
private String encType; // 加密方式 SM4
private String signType; // 签名方式 SM2
private String signData; // 签名串
private String encData; // 加密数据
public Map<String, Object> toMap() {
Map<String, Object> map = new HashMap<>();
map.put("code", this.code);
map.put("message", this.message);
map.put("success", this.success);
map.put("type", this.type);
map.put("appId", this.appId);
map.put("timestamp", this.timestamp);
map.put("encType", this.encType);
map.put("signType", this.signType);
map.put("signData", this.signData);
map.put("encData", this.encData);
return map;
}
}

View File

@@ -1,62 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 【2206】医保预结算实体
*
* @author SunJQ
* @date 2025-04-19
*/
@Data
@TableName("yb_clinc_pre_settle")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ClinicPreSettle extends HisBaseEntity implements Serializable {
//主键
@TableId(type = IdType.ASSIGN_ID)
@JSONField(serialize=false)
private Long id;
//就诊ID
@JSONField(name="mdtrt_id")
private String mdtrtId;
//内部就诊ID
@JSONField(serialize=false)
private String regId;
//人员编号
@JSONField(name="psn_no")
private String psnNo;
//结算批次号
@JSONField(name="chrg_bchno")
private String chrgBchno;//对应payment的显示用流水
private String param2203;
private String result2203;
private String param2204;
private String result2204;
private String param2206;
private String result2206;
}

View File

@@ -1,109 +0,0 @@
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
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 com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.openhis.common.annotation.Dict;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
*【2201】【2202】挂号 退号
*
* @author SunJQ
* @date 2025-04-16
*/
@Data
@TableName("yb_clinc_reg")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ClinicReg extends HisBaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
//主键
@TableId(type = IdType.ASSIGN_ID)
@JSONField(serialize=false)
private Long id;
//就诊ID
@JSONField(name="mdtrt_id")
private String mdtrtId;
//参保地医保区划
@JSONField(name="insuplc_admdvs")
private String insuplcAdmdvs;
//人员编号
@JSONField(name="psn_no")
private String psnNo;
//险种类型
@Dict(dictCode = "insutype")
@JSONField(name="insutype")
private String insutype;
//医疗类别
@Dict(dictCode = "med_type")
@JSONField(serialize=false)
private String medType;
//挂号时间
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JSONField(name="begntime")
private Date begntime;
//就诊凭证类型
@JSONField(name="mdtrt_cert_type")
private String mdtrtCertType;
//就诊凭证编号
@JSONField(name="mdtrt_cert_no")
private String mdtrtCertNo;
//证件加密串
@JSONField(serialize=false)
@TableField(exist = false)
private String busiCardInfo;
//住院/门诊号
@JSONField(name="ipt_otp_no")
private String iptOtpNo;
//医师编码
@JSONField(name="atddr_no")
private String atddrNo;
//医师姓名
@JSONField(name="dr_name")
private String drName;
//科室编码
@JSONField(name="dept_code")
private String deptCode;
//科室名称
@JSONField(name="dept_name")
private String deptName;
//科别
@JSONField(name="caty")
private String caty;
//挂号费
@JSONField(serialize=false)
private Double regFee;
//检查费
@JSONField(serialize=false)
private Double checkFee;
//应收金额
@JSONField(serialize=false)
private Double totalFee;
//状态,0-挂号,1-看诊2-费用明细3-预结算4-结算
@JSONField(serialize=false)
private String status;
@JSONField(name="psn_cert_type")
@TableField(exist = false)
private String psnCertType;
@JSONField(name="certno")
@TableField(exist = false)
private String certno;
@JSONField(name="psn_type")
@TableField(exist = false)
private String psnType;
@JSONField(name="psn_name")
@TableField(exist = false)
private String psnName;
}

View File

@@ -1,112 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/**
* 【2207结算记录】
*
* @author SunJQ
* @date 2025-04-19
*/
@Data
@TableName("yb_clinc_settle")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ClinicSettle {
//主键
@TableId(type = IdType.ASSIGN_ID)
@JSONField(serialize=false)
private Long id;
private String setlId;//结算id
private String mdtrtId; // 就诊ID
private String psnName; // 人员姓名
private String psnCertType; // 人员证件类型
private String certno; // 证件号码
private String insutype; // 险种类型
private String psnType; // 人员类别
private String cvlservFlag; // 公务员标志
private Date setlTime; // 结算时间
private String mdtrtCertType; // 就诊凭证类型
private String medType; // 医疗类别
private BigDecimal medfeeSumamt; // 医疗费总额
private BigDecimal fulamtOwnpayAmt; // 全自费金额
private BigDecimal overlmtSelfpay; // 超限价自费费用
private BigDecimal preselfpayAmt; // 先行自付金额
private BigDecimal inscpScpAmt; // 符合政策范围金额
private BigDecimal actPayDedc; // 实际支付起付线
private BigDecimal hifpPay; // 基本医疗保险统筹基金支出
private BigDecimal poolPropSelfpay; // 基本医疗保险统筹基金支付比例
private BigDecimal cvlservPay; // 公务员医疗补助资金支出
private BigDecimal hifesPay; // 企业补充医疗保险基金支出
private BigDecimal hifmiPay; // 居民大病保险资金支出
private BigDecimal hifobPay; // 职工大额医疗费用补助基金支出
private BigDecimal mafPay; // 医疗救助基金支出
private BigDecimal othPay; // 其他支出
private BigDecimal fundPaySumamt; // 基金支付总额
private BigDecimal psnPartAmt; // 个人负担总金额
private BigDecimal acctPay; // 个人账户支出
private BigDecimal psnCashPay; // 个人现金支出
private BigDecimal hospPartAmt; // 医院负担金额
private BigDecimal balc; // 余额
private BigDecimal acctMulaidPay; // 个人账户共济支付金额
private String medinsSetlId; // 医药机构结算ID
private String clrOptins; // 清算经办机构
private String clrWay; // 清算方式
private String clrType; // 清算类别
private BigDecimal hifdmPay; // 伤残人员医疗保障基金支出
private String paymentNo;//结算业务流水号 Payment与ClinicSettle是1N
private String param2207;
private String result2207;
}

View File

@@ -1,47 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 【2202】挂号撤销
*
* @author SunJQ
* @date 2025-04-21
*/
@Data
@TableName("yb_clinc_un_reg")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ClinicUnReg {
//主键
@TableId(type = IdType.ASSIGN_ID)
@JSONField(serialize=false)
private Long id;
//就诊ID
@JSONField(name="mdtrt_id")
private String mdtrtId;
//人员编号
@JSONField(name="psn_no")
private String psnNo;
//住院/门诊号
@JSONField(name="ipt_otp_no")
private String iptOtpNo;
//取消挂号时间
private Date unRegTime;
}

View File

@@ -1,111 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/**
* 【2208结算撤销】
*
* @author SunJQ
* @date 2025-04-19
*/
@Data
@TableName("yb_clinc_un_settle")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ClinicUnSettle extends HisBaseEntity {
//主键
@TableId(type = IdType.ASSIGN_ID)
@JSONField(serialize=false)
private Long id;
private String mdtrtId; // 就诊ID
private String psnName; // 人员姓名
private String psnCertType; // 人员证件类型
private String certno; // 证件号码
private String insutype; // 险种类型
private String psnType; // 人员类别
private String cvlservFlag; // 公务员标志
private Date setlTime; // 结算时间
private String mdtrtCertType; // 就诊凭证类型
private String medType; // 医疗类别
private BigDecimal medfeeSumamt; // 医疗费总额
private BigDecimal fulamtOwnpayAmt; // 全自费金额
private BigDecimal overlmtSelfpay; // 超限价自费费用
private BigDecimal preselfpayAmt; // 先行自付金额
private BigDecimal inscpScpAmt; // 符合政策范围金额
private BigDecimal actPayDedc; // 实际支付起付线
private BigDecimal hifpPay; // 基本医疗保险统筹基金支出
private BigDecimal poolPropSelfpay; // 基本医疗保险统筹基金支付比例
private BigDecimal cvlservPay; // 公务员医疗补助资金支出
private BigDecimal hifesPay; // 企业补充医疗保险基金支出
private BigDecimal hifmiPay; // 居民大病保险资金支出
private BigDecimal hifobPay; // 职工大额医疗费用补助基金支出
private BigDecimal mafPay; // 医疗救助基金支出
private BigDecimal othPay; // 其他支出
private BigDecimal fundPaySumamt; // 基金支付总额
private BigDecimal psnPartAmt; // 个人负担总金额
private BigDecimal acctPay; // 个人账户支出
private BigDecimal psnCashPay; // 个人现金支出
private BigDecimal hospPartAmt; // 医院负担金额
private BigDecimal balc; // 余额
private BigDecimal acctMulaidPay; // 个人账户共济支付金额
private String medinsSetlId; // 医药机构结算ID
private String clrOptins; // 清算经办机构
private String clrWay; // 清算方式
private String clrType; // 清算类别
private BigDecimal hifdmPay; // 伤残人员医疗保障基金支出
private String param2208;
private String result2208;
private String settleId;
}

View File

@@ -1,42 +0,0 @@
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【3301、3302】医保目录对照历史表
*
* @author SunJQ
* @date 2025-04-27
*/
@Data
@TableName("yb_directory_check_record")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class DirectoryCheckRecord extends HisBaseEntity {
/** 主键 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 3301/3302 */
private Integer type;
/** 表名 */
private String tableName;
/** 业务表主键 */
private Long tableId;
/** 组织机构id */
private Long orgId;
/** 参数 */
private String param;
}

View File

@@ -1,62 +0,0 @@
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* 【电子处方取药结果查询-输出节点标识seltdelts】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_medresult_detail")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepMedresultDetail extends HisBaseEntity {
/** 自增主键 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 医疗目录编码 */
private String medListCodg;
/** 药品通用名 */
private String drugGenname;
/** 药品商品名 */
private String drugProdname;
/** 药品剂型 */
private String drugDosform;
/** 药品规格 */
private BigDecimal drugSpec;
/** 数量 */
private BigDecimal cnt;
/** 批准文号 */
private String aprvno;
/** 批次号 */
private String bchno;
/** 生产批号 */
private String manuLotnum;
/** 生产厂家 */
private String prdrName;
/** 取药标志位 */
private String takeDrugFlag;
}

View File

@@ -1,45 +0,0 @@
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【电子处方取药结果查询-输出】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_medresult_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepMedresultInfo extends HisBaseEntity {
/** 自增主键 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 医保处方编号 */
private String hiRxno;
/** 医保结算时间(yyyy-MM-dd HH:mm:ss) */
private String setlTime;
/** 医保处方状态编码(参考rx_stas_codg) */
private String rxStasCodg;
/** 医保处方状态名称 */
private String rxStasName;
/** 处方使用状态编号(参考rx_used_stas_codg) */
private String rxUsedStasCodg;
/** 处方使用状态名称 */
private String rxUsedStasName;
}

View File

@@ -1,45 +0,0 @@
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【电子处方取药结果查询-输入】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_medresult_input")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepMedresultInput extends HisBaseEntity {
/** 自增主键 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 定点医疗机构编号 */
private String fixmedinsCode;
/** 医保处方编号 */
private String hiRxno;
/** 医保就诊ID(医保门诊挂号时返回) */
private String mdtrtId;
/** 人员名称 */
private String psnName;
/** 人员证件类型 */
private String psnCertType;
/** 证件号码 */
private String certno;
}

View File

@@ -1,69 +0,0 @@
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【电子处方信息查询-输出-诊断信息(节点表示: rxDiseList) 】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_quer_diagnosis_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepQuerDiagnosisInfo extends HisBaseEntity {
/** 自增主键 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 诊断类别 */
private String diagType;
/** 主诊断标志 */
private String maindiagFlag;
/** 诊断排序号 */
private String diagSrtNo;
/** 诊断代码 */
private String diagCode;
/** 诊断名称 */
private String diagName;
/** 诊断科室 */
private String diagDept;
/** 诊断科室代码 */
private String diagDeptCode;
/** 诊断医生编码 */
private String diagDrNo;
/** 诊断医生姓名 */
private String diagDrName;
/** 诊断时间(yyyy-MM-dd HH:mm:ss) */
private String diagTime;
/** 中医病名代码 */
private String tcmDiseCode;
/** 中医病名名称 */
private String tcmDiseName;
/** 中医症候代码 */
private String tcmsympCode;
/** 中医症候 */
private String tcmsymp;
}

View File

@@ -1,140 +0,0 @@
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* 【电子处方信息查询-输出-处方明细信息节点标识rxDetlList 】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_quer_prescription_detail")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepQuerPrescriptionDetail extends HisBaseEntity {
/** 自增主键 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 医疗目录编码(医保目录编码) */
private String medListCodg;
/** 定点医药机构目录编号(院内药品编码) */
private String fixmedinsHilistId;
/** 院内制剂标志(Y/N) */
private String hospPrepFlag;
/** 处方项目分类代码 */
private String rxItemTypeCode;
/** 处方项目分类名称 */
private String rxItemTypeName;
/** 中药类别名称 */
private String tcmdrugTypeName;
/** 中药类别代码 */
private String tcmdrugTypeCode;
/** 草药脚注 */
private String tcmherbFoote;
/** 药物类型代码 */
private String mednTypeCode;
/** 药物类型 */
private String mednTypeName;
/** 主要用药标志 */
private String mainMedcFlag;
/** 加急标志 */
private String urgtFlag;
/** 基本药物标志(Y/N) */
private String basMednFlag;
/** 基本药物标志(Y/N) */
private String impDrugFlag;
/** 药品商品名 */
private String drugProdname;
/** 药品通用名 */
private String drugGenname;
/** 药品剂型 */
private String drugDosform;
/** 药品规格 */
private String drugSpec;
/** 生产厂家 */
private String prdrName;
/** 用药途径代码 */
private String medcWayCodg;
/** 用药途径描述 */
private String medcWayDscr;
/** 用药开始时间(yyyy-MM-dd HH:mm:ss) */
private String medcBegntime;
/** 用药结束时间(yyyy-MM-dd HH:mm:ss) */
private String medcEndtime;
/** 用药天数 */
private BigDecimal medcDays;
/** 药品总用药量 */
private BigDecimal drugCnt;
/** 药品总用药量单位 */
private String drugDosunt;
/** 单次用量 */
private BigDecimal sinDoscnt;
/** 单次剂量单位 */
private String sinDosunt;
/** 使用频次编码 */
private String usedFrquCodg;
/** 使用频次名称 */
private String usedFrquName;
/** 医院审批标志(Y/N) */
private String hospApprFlag;
/** 取药标志位(Y/N) */
private String takeDrugFlag;
/** 是否OTC药品(0-处方药品、1-OTC药品) */
private String otcFlag;
/** 自费原因类型 */
private String selfPayRea;
/** 自费原因描述 */
private String realDscr;
/** 所需药品库存数量 */
private String drugTotlcnt;
/** 所需药品库存单位 */
private String drugTotlcntEmp;
}

View File

@@ -1,118 +0,0 @@
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* 【电子处方信息查询-输出-处方信息 】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_quer_prescription_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepQuerPrescriptionInfo extends HisBaseEntity {
/** 自增主键 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 医保处方编号 */
private String hiRxno;
/** 定点医疗机构编号 */
private String fixmedinsCode;
/** 定点医疗机构名称 */
private String fixmedinsName;
/** 医保处方状态编码 */
private String rxStasCodg;
/** 医保处方状态名称 */
private String rxStasName;
/** 医保处方使用状态编码 */
private String rxUsedStasCodg;
/** 医保处方使用状态名称 */
private String rxUsedStasName;
/** 开方时间 */
private String prscTime;
/** 药品总用量(剂数) */
private BigDecimal rxDrugCnt;
/** 处方整剂用法编码 */
private String rxUsedWayCodg;
/** 处方整剂用法名称 */
private String rxUsedWayName;
/** 处方整剂频次编号 */
private String rxFrquCodg;
/** 处方整剂频次名称 */
private String rxFrquName;
/** 处方整剂剂量单位 */
private String rxDosunt;
/** 处方整剂单次剂量数 */
private BigDecimal rxDoscnt;
/** 处方整剂医嘱说明 */
private String rxDrordDscr;
/** 处方有效天数 */
private BigDecimal valiDays;
/** 有效截止时间 */
private String valiEndTime;
/** 复用多次使用标志0-否、1-是 */
private String reptFlag;
/** 最大复用次数 */
private BigDecimal maxReptCnt;
/** 已复用次数 */
private BigDecimal reptdCnt;
/** 使用最小间隔(天数) */
private BigDecimal minInrvDays;
/** 处方类别编码 */
private String rxTypeCode;
/** 处方类别名称 */
private String rxTypeName;
/** 长期处方标志0-否、1-是 */
private String longRxFlag;
/** 业务类型代码 */
private String bizTypeCode;
/** 业务类型名称 */
private String bizTypeName;
/** 处方附加属性代码 */
private String rxExraAttrCode;
/** 处方附加属性名称 */
private String rxExraAttrName;
/** 处方循环限制标志 */
private String rxCircLimitFlag;
}

View File

@@ -1,45 +0,0 @@
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【电子处方信息查询-输入】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_quer_prescription_input")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepQuerPrescriptionInput extends HisBaseEntity {
/** 定点医疗机构编号 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 定点医疗机构编号 */
private String fixmedinsCode;
/** 医保处方编号 */
private String hiRxno;
/** 医保就诊 ID */
private String mdtrtId;
/** 人员名称 */
private String psnName;
/** 人员证件类型 */
private String psnCertType;
/** 证件号码 */
private String certno;
}

View File

@@ -1,107 +0,0 @@
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* 【电子处方信息查询-输出-就诊信息节点标识rxOtpinfo 】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_quer_visit_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepQuerVisitInfo extends HisBaseEntity {
/** 自增主键 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 医疗类别(参考医疗类别med_type) */
private String medType;
/** 门诊/住院号 */
private String iptOtpNo;
/** 门诊住院标志(1-门诊2-住院) */
private String otpIptFlag;
/** 患者姓名 */
private String patnName;
/** 年龄 */
private BigDecimal patnAge;
/** 患者身高(cm) */
private BigDecimal patnHgt;
/** 患者体重(kg) */
private BigDecimal patnWt;
/** 性别 */
private String gend;
/** 妊娠(孕周) */
private Integer gesoVal;
/** 新生儿标志(0-否、1-是) */
private String nwbFlag;
/** 新生儿日、月龄 */
private String nwbAge;
/** 哺乳期标志(0-否、1-是) */
private Integer suckPrdFlag;
/** 过敏史 */
private String algsHis;
/** 险种类型 */
private String insutype;
/** 开方科室名称 */
private String prscDeptName;
/** 开方医师姓名 */
private String prscDrName;
/** 药师姓名 */
private String pharName;
/** 医疗机构药师审方时间(yyyy-MM-dd HH:mm:ss) */
private String pharChkTime;
/** 就诊时间(yyyy-MM-dd HH:mm:ss) */
private String mdtrtTime;
/** 病种编码(按病种结算病种目录代码/门诊慢特病种目录代码) */
private String diseCodg;
/** 病种名称 */
private String diseName;
/** 是否特殊病种 */
private String spDiseFlag;
/** 主诊断代码 */
private String maindiagCode;
/** 主诊断名称 */
private String maindiagName;
/** 疾病病情描述 */
private String diseCondDscr;
/** 是否初诊(0-否、1-是) */
private String fstdiagFlag;
}

View File

@@ -1,58 +0,0 @@
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 【电子处方撤销-输入】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_revoke_input")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepRevokeInput extends HisBaseEntity {
/** 医保处方编号 */
@JSONField(serialize=false)
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 医保处方编号 */
private String hiRxno;
/** 定点医疗机构编号 */
private String fixmedinsCode;
/** 撤销医师的医保医师代码 */
private String drCode;
/** 撤销医师姓名 */
private String undoDrName;
/** 撤销医师证件类型 */
private String undoDrCertType;
/** 撤销医师证件号码 */
private String undoDrCertno;
/** 撤销原因描述 */
private String undoRea;
/** 撤销时间格式yyyy-MM-dd HH:mm:ss */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date undoTime;
}

View File

@@ -1,36 +0,0 @@
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【电子处方撤销-输出】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_revoke_output")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepRevokeOutput extends HisBaseEntity {
/** 自增主键 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 医保处方编号 */
private String hiRxno;
/** 医保处方状态编码 */
private String rxStasCodg;
/** 医保处方状态名称 */
private String rxStasName;
}

View File

@@ -1,48 +0,0 @@
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【电子处方医保电子签名 -输入】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_signature_input")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepSignatureInput extends HisBaseEntity {
/** 自增主键 */
@JSONField(serialize=false)
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 定点机构代码,定点机构唯一标识,用于识别机构对应的医保数字证书 */
private String fixmedinsCode;
/** 原始待签名处方信息JSONString序列化后的base64字符值 */
private String originalValue;
/** 原始待签名处方文件文件base64的字符值 */
private String originalRxFile;
/** 扩展字段JSON序列化成字符串后长度不能超过4000 */
private String extras;
/** 医保处方编号 */
@JSONField(serialize=false)
private String hiRxno;
/** 院内内部处方号 */
private String prescriptionNo;
}

View File

@@ -1,45 +0,0 @@
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【电子处方医保电子签名 -输出】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_signature_output")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepSignatureOutput extends HisBaseEntity {
/** 自增主键 */
@JSONField(serialize=false)
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 处方文件医保电子签名后处方文件originalRxFile的base64值 */
private String rxFile;
/** 签名摘要值医保电子签名后处方信息originalValue的签名结果值 */
private String signDigest;
/** 签名机构证书SN */
private String signCertSn;
/** 签名机构证书DN */
private String signCertDn;
/** 医保处方编号 */
@JSONField(serialize=false)
private String hiRxno;
}

View File

@@ -1,98 +0,0 @@
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【电子处方上传-输入】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_upload_input")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepUploadInput extends HisBaseEntity {
/** 自增主键 */
@JSONField(serialize=false)
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 处方追溯码 */
private String rxTraceCode;
/** 医保处方编号 */
private String hiRxno;
/** 医院就诊 ID */
private String mdtrtId;
/** 患者姓名 */
private String patnName;
/** 人员证件类型 */
private String psnCertType;
/** 证件号码 */
private String certno;
/** 定点医疗机构名称 */
private String fixmedinsName;
/** 定点医疗机构编号 */
private String fixmedinsCode;
/** 开方医保医师代码 */
private String drCode;
/** 开方医师姓名 */
private String prscDrName;
/** 审方药师科室名称 */
private String pharDeptName;
/** 审方药师科室编号 */
private String pharDeptCode;
/** 审方药师职称编码 */
private String pharProfttlCodg;
/** 审方药师职称名称 */
private String pharProfttlName;
/** 审方医保药师代码 */
private String pharCode;
/** 审方药师证件类型 */
private String pharCertType;
/** 审方药师证件号码 */
private String pharCertno;
/** 审方药师姓名 */
private String pharName;
/** 审方药师执业资格证号 */
private String pharPracCertNo;
/** 医疗机构药师审方时间格式yyyy-MM-dd HH:mm:ss */
private String pharChkTime;
/** 处方原件医保电子签名后的处方文件base64字符PDF或OFD格式 */
private String rxFile;
/** 处方信息签名值 */
private String signDigest;
/** 扩展字段JSON格式长度不超过4000 */
private String extras;
}

View File

@@ -1,36 +0,0 @@
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【电子处方上传-输出】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_upload_output")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepUploadOutput extends HisBaseEntity {
/** 自增主键 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 医保处方编号 */
private String hiRxno;
/** 医保处方状态编码 */
private String rxStasCodg;
/** 医保处方状态名称 */
private String rxStasName;
}

View File

@@ -1,84 +0,0 @@
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 【电子处方上传预核验-输入-诊断信息节点表示diseinfo)】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_veri_diagnosis_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepVeriDiagnosisInfo extends HisBaseEntity {
/** 自增主键 */
@JSONField(serialize=false)
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 诊断类别,参考诊断类别(diag_type) */
private String diagType;
/** 主诊断标志0-否、1-是 */
private String maindiagFlag;
/** 诊断排序号 */
private String diagSrtNo;
/** 诊断代码,医保疾病诊断代码 */
private String diagCode;
/** 诊断名称 */
private String diagName;
/** 诊断科室名称 */
private String diagDept;
/** 诊断科室代码与科室信息上传中的hosp_dept_codg医院科室编码保持一致 */
private String diagDeptCode;
/** 诊断医生编码,国家医保医师代码 */
private String diagDrNo;
/** 诊断医生姓名 */
private String diagDrName;
/** 诊断时间格式yyyy-MM-dd HH:mm:ss */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date diagTime;
/** 中医病名代码diag_type为中医诊断(值为2,3)时上传 */
private String tcmDiseCode;
/** 中医病名diag_type为中医诊断(值为2,3)时上传 */
private String tcmDiseName;
/** 中医证候代码diag_type为中医诊断(值为2,3)时上传 */
private String tcmsympCode;
/** 中医证候diag_type为中医诊断(值为2,3)时上传 */
private String tcmsymp;
/** 院内内部处方号 */
@JSONField(serialize=false)
private String prescriptionNo;
/** 医保处方编号(电子处方信息查询返回时插入记录) */
@JSONField(serialize=false)
private String hiRxno;
}

View File

@@ -1,155 +0,0 @@
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 【电子处方上传预核验-输入-处方明细信息(节点标识 rxdrugdetail 】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_veri_prescription_detail")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepVeriPrescriptionDetail extends HisBaseEntity {
/** 自增主键 */
@JSONField(serialize=false)
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 医疗目录编码(医保药品编码) */
private String medListCodg;
/** 定点医药机构目录编号(院内药品编码) */
private String fixmedinsHilistId;
/** 医疗机构制剂标志(0-否、1-是) */
private String hospPrepFlag;
/** 处方项目分类代码(11:西药,12:中成药,13:中药饮片) */
private String rxItemTypeCode;
/** 处方项目分类名称 */
private String rxItemTypeName;
/** 中药类别代码(中药饮片固定传3) */
private String tcmdrugTypeCode;
/** 中药类别名称 */
private String tcmdrugTypeName;
/** 草药脚注 */
private String tcmherbFoote;
/** 药物类型代码(参考medn_type_code) */
private String mednTypeCode;
/** 药物类型名称 */
private String mednTypeName;
/** 主要用药标志(0-否、1-是) */
private String mainMedcFlag;
/** 加急标志(0-否、1-是) */
private String urgtFlag;
/** 基本药物标志(0-否、1-是) */
private String basMednFlag;
/** 是否进口药品(0-否、1-是) */
private String impDrugFlag;
/** 是否OTC药品(0-处方药品、1-OTC药品) */
private String otcFlag;
/** 药品通用名 */
private String drugGenname;
/** 药品剂型 */
private String drugDosform;
/** 药品规格 */
private String drugSpec;
/** 药品商品名(非必填) */
private String drugProdname;
/** 生产厂家(非必填) */
private String prdrName;
/** 用药途径代码(西药/中成药必填) */
private String medcWayCodg;
/** 用药途径描述(西药/中成药必填) */
private String medcWayDscr;
/** 用药开始时间(yyyy-MM-dd HH:mm:ss) */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date medcBegntime;
/** 用药结束时间(yyyy-MM-dd HH:mm:ss) */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date medcEndtime;
/** 用药天数 */
private String medcDays;
/** 单次剂量单位(西药/中成药必填) */
private String sinDosunt;
/** 单次用量(西药/中成药必填) */
private String sinDoscnt;
/** 使用频次编码(西药/中成药必填) */
private String usedFrquCodg;
/** 使用频次名称(西药/中成药必填) */
private String usedFrquName;
/** 药品总用药量单位(发药计价单位) */
private String drugDosunt;
/** 药品总用药量(医保结算数量) */
private String drugCnt;
/** 药品单价(按drug_dosunt计价) */
private String drugPric;
/** 药品总金额(drug_cnt×drug_pric) */
private String drugSumamt;
/** 医院审批标志(1-纳入报销,2-自费) */
private String hospApprFlag;
/** 自费原因类型(hosp_appr_flag=2时必填) */
private String selfPayRea;
/** 自费原因描述(自费原因类型为6时必填) */
private String realDscr;
/** 扩展数据(地方业务扩展信息) */
private String extras;
/** 院内内部处方号 */
@JSONField(serialize=false)
private String prescriptionNo;
/** 医保处方编号(电子处方信息查询返回时插入记录) */
@JSONField(serialize=false)
private String hiRxno;
}

View File

@@ -1,124 +0,0 @@
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 【电子处方上传预核验-输入-处方信息】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_veri_prescription_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepVeriPrescriptionInfo extends HisBaseEntity {
/** 自增主键 */
@JSONField(serialize=false)
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 就诊凭证类型(01-电子凭证令牌、02-身份证号、03-社会保障卡号) */
private String mdtrtCertType;
/** 就诊凭证编号 */
private String mdtrtCertNo;
/** 卡识别码(就诊凭证类型为"03"时必填) */
private String cardSn;
/** 业务类型代码(01-定点医疗机构就诊02-互联网医院问诊) */
private String bizTypeCode;
/** 处方附加属性代码(01-双通道处方02-门诊统筹处方99-其他) */
private String rxExraAttrCode;
/** 电子凭证令牌(使用医保电子凭证就诊时必填) */
private String ecToken;
/** 电子凭证线上身份核验流水号(线上场景互联网医院问诊时使用) */
private String authNo;
/** 参保地编号 */
private String insuPlcNo;
/** 就医地编号 */
private String mdtrtareaNo;
/** 定点医疗机构处方编号(院内内部处方号) */
private String hospRxno;
/** 续方的原处方编号 */
private String initRxno;
/** 处方类别代码(参考rx_type_code) */
private String rxTypeCode;
/** 开方时间(yyyy-MM-dd HH:mm:ss) */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date prscTime;
/** 药品类目数(剂数) */
private String rxDrugCnt;
/** 处方整剂用法编号 */
private String rxUsedWayCodg;
/** 处方整剂用法名称 */
private String rxUsedWayName;
/** 处方整剂频次编号(参考used_frequ) */
private String rxFrquCodg;
/** 处方整剂频次名称 */
private String rxFrquName;
/** 处方整剂剂量单位 */
private String rxDosunt;
/** 处方整剂单次剂量数 */
private String rxDoscnt;
/** 处方整剂医嘱说明 */
private String rxDrordDscr;
/** 处方有效天数 */
private String valiDays;
/** 有效截止时间(开方时间+处方有效天数) */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date valiEndTime;
/** 复用(多次)使用标志(0-否、1-是) */
private String reptFlag;
/** 最大使用次数(预留字段) */
private String maxReptCnt;
/** 使用最小间隔(天数)(预留字段) */
private String minInvDays;
/** 续方标志(0-否、1-是) */
private String rxCotnFlag;
/** 长期处方标志(0-否、1-是) */
private String longRxFlag;
/** 医保处方编号(电子处方信息查询返回时插入记录) */
@JSONField(serialize=false)
private String hiRxno;
}

View File

@@ -1,35 +0,0 @@
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【电子处方上传预核验-输出】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_veri_prescription_output")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepVeriPrescriptionOutput extends HisBaseEntity {
/** 自增主键 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 处方追溯码 */
private String rxTraceCode;
/** 医保处方编号 */
private String hiRxno;
/** 药品请求的处方号 */
private String prescriptionNo;
}

View File

@@ -1,180 +0,0 @@
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 【电子处方上传预核验-输入-就诊信息节点标识mdtrtinfo 】Entity实体
*
* @author system
* @date 2025-04-17
*/
@Data
@TableName("yb_elep_veri_visit_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ElepVeriVisitInfo extends HisBaseEntity {
/** 自增主键 */
@JSONField(serialize=false)
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 定点医疗机构名称 */
private String fixmedinsName;
/** 定点医疗机构编号 */
private String fixmedinsCode;
/** 医保就诊ID(医保门诊挂号时返回) */
private String mdtrtId;
/** 医疗类别(参考med_type) */
private String medType;
/** 门诊/住院号 */
private String iptOtpNo;
/** 门诊住院标识(1-门诊、2-住院) */
private String otpIptFlag;
/** 医保人员编号 */
private String psnNo;
/** 患者姓名 */
private String patnName;
/** 人员证件类型(参考psn_cert_type) */
private String psnCertType;
/** 证件号码 */
private String certno;
/** 年龄 */
private String patnAge;
/** 患者身高(cm) */
private String patnHgt;
/** 患者体重(kg) */
private String patnWt;
/** 性别(参考gend) */
private String gend;
/** 计划生育手术类别 */
private String birctrlType;
/** 计划生育手术或生育日期(yyyy-MM-dd) */
private String birctrlMatnDate;
/** 生育类别 */
private String matnType;
/** 妊娠(孕周) */
private String gesoVal;
/** 新生儿标志(0-否、1-是) */
private String nwbFlag;
/** 新生儿日、月龄 */
private String nwbAge;
/** 哺乳期标志(0-否、1-是) */
private String suckPrdFlag;
/** 过敏史 */
private String algsHis;
/** 开方科室名称 */
private String prscDeptName;
/** 开方科室编号(与医药机构服务的科室管理保持一致) */
private String prscDeptCode;
/** 开方医保医师代码(国家医保医师代码) */
private String drCode;
/** 开方医师姓名 */
private String prscDrName;
/** 开方医师证件类型(参考psn_cert_type) */
private String prscDrCertType;
/** 开方医师证件号码 */
private String prscDrCertno;
/** 医生职称编码(参考drord_dr_proftt1) */
private String drProfttlCodg;
/** 医生职称名称 */
private String drProfttlName;
/** 医生科室编码(与医院科室编码字段保持一致) */
private String drDeptCode;
/** 医生科室名称 */
private String drDeptName;
/** 科别(参考科室代码dept) */
private String caty;
/** 就诊时间(yyyy-MM-dd HH:mm:ss) */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date mdtrtTime;
/** 病种编码 */
private String diseCodg;
/** 病种名称 */
private String diseName;
/** 特殊病种标志(0-否、1-是) */
private String spDiseFlag;
/** 主诊断代码(医保疾病诊断代码) */
private String maindiagCode;
/** 主诊断名称 */
private String maindiagName;
/** 疾病病情描述 */
private String diseCondDscr;
/** 医保费用结算类型(参考hi_feeset1_type) */
private String hiFeesetlType;
/** 医保费用类别名称 */
private String hiFeesetlName;
/** 挂号费 */
private String rgstFee;
/** 医疗费总额 */
private String medfeeSumamt;
/** 是否初诊(0-否、1-是) */
private String fstdiagFlag;
/** 扩展数据(地方业务扩展信息) */
private String extras;
/** 院内内部处方号 */
@JSONField(serialize=false)
private String prescriptionNo;
/** 医保处方编号(电子处方信息查询返回时插入记录) */
@JSONField(serialize=false)
private String hiRxno;
}

View File

@@ -1,39 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 【9101】【9102】公用
*
* @author SunJQ
* @date 2025-04-16
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class File {
// 文件查询号
private String fileQuryNo;
// 文件名称
private String filename;
// 下载截止时间
private Date dldEndtime;
// 文件数据
private byte[] fileData;
// 医药机构编号
private String fixmedinsCode;
}

View File

@@ -1,69 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 【3203】清算申请记录
*
* @author SunJQ
* @date 2025-04-30
*/
@Data
@Accessors(chain = true)
@TableName("yb_financial_apply_record")
@EqualsAndHashCode(callSuper = false)
public class FinancialApplyRecord {
//主键
@TableId(type = IdType.ASSIGN_ID)
private Long id;
//医院id
private Long orgId;
//开始时间
private Date begndate;
//医院id
private Date enddate;
//清算类别
private Date clrType;
//医疗费总额
private Date medfeeSumamt;
//医保认可费用总额
private Date medSumfee;
//基金申报总额
private Date fundAppySum;
//现金支付金额
private Date cashPayamt;
//个人账户支出
private Date acctPay;
//申请人
private Long praId;
//入参
private String param;
//
private String outResult;
//申请状态
private String status;
}

View File

@@ -1,99 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.annotation.Excel;
import com.core.common.core.domain.HisBaseEntity;
import com.openhis.common.annotation.Dict;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* [3201]对账记录
*
* @author SunJQ
* @date 2025-04-29
*/
@Data
@Accessors(chain = true)
@TableName("yb_financial_reconcile_record")
@EqualsAndHashCode(callSuper = false)
public class FinancialReconcileRecord extends HisBaseEntity {
//主键
@TableId(type = IdType.ASSIGN_ID)
private Long id;
//定点医药机构编号
@Excel(name = "定点医药机构编号", width = 15)
@JSONField(serialize=false)
private String fixmedinsCode;
//定点医药机构名称
@Excel(name = "定点医药机构名称", width = 15)
@JSONField(serialize=false)
private String fixmedinsName;
//医保区划
@Excel(name = "医保区划", width = 15)
@JSONField(serialize=false)
private String admvs;
//险种
@Excel(name = "险种", width = 15, dictType = "insutype")
@Dict(dictCode = "insutype")
@JSONField(name="insutype")
private String insutype;
//清算类别
@Excel(name = "清算类别", width = 15, dictType = "clr_type")
@Dict(dictCode = "clr_type")
@JSONField(name="clr_type")
private String clrType;
//结算经办机构
@Excel(name = "结算经办机构", width = 15)
@JSONField(name="setl_optins")
private String setlOptins;
//对账开始日期
@Excel(name = "对账开始日期", width = 15, dateFormat = "yyyy-MM-dd")
@JSONField(name="stmt_begndate")
private String stmtBegndate;
//对账结束日期
@Excel(name = "对账结束日期", width = 15, dateFormat = "yyyy-MM-dd")
@JSONField(name="stmt_enddate")
private String stmtEnddate;
//医疗费总额
@Excel(name = "医疗费总额", width = 15)
@JSONField(name="medfee_sumamt")
private Double medfeeSumamt;
//基金支付总额
@Excel(name = "基金支付总额", width = 15)
@JSONField(name="fund_pay_sumamt")
private Double fundPaySumamt;
//个人账户支付金额
@Excel(name = "个人账户支付金额", width = 15)
@JSONField(name="acct_pay")
private Double acctPay;
//定点医药机构结算笔数
@Excel(name = "定点医药机构结算笔数", width = 15)
@JSONField(name="fixmedins_setl_cnt")
private Integer fixmedinsSetlCnt;
//对账结果
@Excel(name = "对账结果", width = 15, dictType = "stmt_rslt")
@Dict(dictCode = "stmt_rslt")
@JSONField(serialize=false)
private String stmtRslt;
//对账结果说明
@Excel(name = "对账结果说明", width = 15)
@JSONField(serialize=false)
private String stmtRsltDscr;
//医院id
private Long orgId;
//入参
private String param;
//clr_appy_evt_id 机构清算申请事件ID
private String result;
}

View File

@@ -1,89 +0,0 @@
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
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 com.core.common.core.domain.HisBaseEntity;
import com.openhis.vo.Info5301SpecialConditionResult;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
*【1101】获取身份信息
*
* @author SunJQ
* @date 2025-04-16
*/
@Data
@TableName("yb_pub_perinfo")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class InfoPerson extends HisBaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
//主键
@TableId(type = IdType.ASSIGN_ID)
@JSONField(serialize=false)
private Long id;
//人员编号
@JSONField(name="psn_no")
private String psnNo;
//人员证件类型
@JSONField(name="psn_cert_type")
private String psnCertType;
//证件号码
@JSONField(name="certno")
private String certno;
//人员姓名
@JSONField(name="psn_name")
private String psnName;
//性别
@JSONField(name="gend")
private String gend;
//民族
@JSONField(name="naty")
private String naty;
//出生日期
@JSONField(name="brdy")
private Date brdy;
//年龄
@JSONField(name="age")
private Double age;
//参保地医保区划
private String insuplcAdmdvs;
//险种类型
private String insutype;
//余额
private String balc;
private String param1101;
private String result1101;
//人员类别
private String psnType;
//人员参保状态
private String psnInsuStas;
//个人参保日期
private String psnInsuDate;
//公务员标志
private String cvlservFlag;
//单位名称
private String empName;
//特慢病
@TableField(exist = false)
private List<Info5301SpecialConditionResult> feedetail;
}

View File

@@ -1,26 +0,0 @@
package com.openhis.domain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class InformationInquiry {
// 处方信息
private ElepQuerPrescriptionInfo prescriptionInfo;
// 处方明细信息
private List<ElepQuerPrescriptionDetail> rxDetlList;
// 就诊信息
private List<ElepQuerVisitInfo> rxOtpinfo;
// 诊断信息
private List<ElepQuerDiagnosisInfo> rxDiseList;
}

View File

@@ -1,91 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/**
* 【3502】库存信息变更
*
* @author SunJQ
* @date 2025-04-30
*/
@Data
@Accessors(chain = true)
@TableName("yb_inventory_change_record")
@EqualsAndHashCode(callSuper = false)
public class InventoryChangeRecord {
//主键
@TableId(type = IdType.ASSIGN_ID)
private Long id;
//入参
private String param;
//出参
private String result;
// 1. 医疗目录编码字符型50位必填
@JSONField(name = "med_list_codg")
private String medListCodg;
// 2. 库存变更类型字符型6位必填
@JSONField(name = "inv_chg_type")
private String invChgType;
// 3. 定点医药机构目录编号字符型30位必填
@JSONField(name = "fixmedins_hilist_id")
private String fixmedinsHilistId;
// 4. 定点医药机构目录名称字符型200位必填
@JSONField(name = "fixmedins_hilist_name")
private String fixmedinsHilistName;
// 5. 定点医药机构批次流水号字符型30位必填
@JSONField(name = "fixmedins_bchno")
private String fixmedinsBchno;
// 6. 单价数值型16位含6位小数必填
@JSONField(name = "pric")
private BigDecimal pric;
// 7. 数量数值型16位含4位小数必填
@JSONField(name = "cnt")
private BigDecimal cnt;
// 8. 处方药标志字符型3位必填
@JSONField(name = "rx_flag")
private String rxFlag;
// 9. 库存变更时间日期时间型必填格式yyyy-MM-dd HH:mm:ss
@JSONField(name = "inv_chg_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date invChgTime;
// 10. 库存变更经办人姓名字符型50位非必填
@JSONField(name = "inv_chg_opter_name")
private String invChgOpterName;
// 11. 备注字符型500位非必填
@JSONField(name = "memo")
private String memo;
// 12. 拆零标志字符型2位必填
@JSONField(name = "trdn_flag")
private String trdnFlag;
// 13. 溯源码节点信息字符型长度未明确暂定500位
@JSONField(name = "drugtracinfo")
private String drugtracinfo;
}

View File

@@ -1,81 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/**
* 【3502】库存信息变更
*
* @author SunJQ
* @date 2025-04-30
*/
@Data
@Accessors(chain = true)
@TableName("yb_inventory_check_record")
@EqualsAndHashCode(callSuper = false)
public class InventoryCheckRecord {
//主键
@TableId(type = IdType.ASSIGN_ID)
private Long id;
//入参
private String param;
//出参
private String result;
// 1. 医疗目录编码字符型50位必填
@JSONField(name = "med_list_codg")
private String medListCodg;
// 2. 定点医药机构目录编号字符型30位必填
@JSONField(name = "fixmedins_hilist_id")
private String fixmedinsHilistId;
// 3. 定点医药机构目录名称字符型200位必填
@JSONField(name = "fixmedins_hilist_name")
private String fixmedinsHilistName;
// 4. 处方药标志字符型3位必填
@JSONField(name = "rx_flag")
private String rxFlag;
// 5. 盘存日期日期型必填格式yyyy-MM-dd
@JSONField(name = "invdate")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date invdate;
// 6. 库存数量数值型16位含2位小数必填
@JSONField(name = "inv_cnt")
private BigDecimal invCnt;
// 7. 生产批号字符型30位非必填
@JSONField(name = "manu_lotnum")
private String manuLotnum;
// 8. 定点医药机构批次流水号字符型30位必填
@JSONField(name = "fixmedins_bchno")
private String fixmedinsBchno;
// 9. 生产日期日期型必填格式yyyy-MM-dd
@JSONField(name = "manu_date")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date manuDate;
// 10. 有效期止日期型必填格式yyyy-MM-dd
@JSONField(name = "expy_end")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date expyEnd;
}

View File

@@ -1,42 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 【3507】
*
* @author SunJQ
* @date 2025-04-30
*/
@Data
@Accessors(chain = true)
@TableName("yb_inventory_del_record")
@EqualsAndHashCode(callSuper = false)
public class InventoryDelRecord {
//主键
@TableId(type = IdType.ASSIGN_ID)
private Long id;
//入参
private String param;
//出参
private String outResult;
// 定点医药机构批次流水号
@JSONField(name = "fixmedins_bchno")
private String fixmedinsBchno;
// 进销存数据类型
@JSONField(name = "inv_data_type")
private String invDataType;
}

View File

@@ -1,121 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/**
* 【3503】
*
* @author SunJQ
* @date 2025-04-30
*/
@Data
@Accessors(chain = true)
@TableName("yb_inventory_purchase_record")
@EqualsAndHashCode(callSuper = false)
public class InventoryPurchaseRecord {
//主键
@TableId(type = IdType.ASSIGN_ID)
private Long id;
//入参
private String param;
//出参
private String outResult;
// 1. 医疗目录编码字符型50位必填
@JSONField(name = "med_list_codg")
private String medListCodg;
// 2. 定点医药机构目录编号字符型30位必填
@JSONField(name = "fixmedins_hilist_id")
private String fixmedinsHilistId;
// 3. 定点医药机构目录名称字符型200位必填
@JSONField(name = "fixmedins_hilist_name")
private String fixmedinsHilistName;
// 4. 随货单号字符型50位非必填
@JSONField(name = "dynt_no")
private String dyntNo;
// 5. 定点医药机构批次流水号字符型30位必填
@JSONField(name = "fixmedins_bchno")
private String fixmedinsBchno;
// 6. 供应商名称字符型200位必填
@JSONField(name = "spler_name")
private String splerName;
// 7. 供应商许可证号字符型50位非必填
@JSONField(name = "spler_pmtno")
private String splerPmtno;
// 8. 生产批号字符型30位必填
@JSONField(name = "manu_lotnum")
private String manuLotnum;
// 9. 生产厂家名称字符型200位必填
@JSONField(name = "prodentp_name")
private String prodentpName;
// 10. 批准文号字符型100位必填
@JSONField(name = "aprvno")
private String aprvno;
// 11. 生产日期日期型必填格式yyyy-MM-dd
@JSONField(name = "manu_date")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date manuDate;
// 12. 有效期止日期型必填格式yyyy-MM-dd
@JSONField(name = "expy_end")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date expyEnd;
// 13. 最终成交单价数值型16位含6位小数非必填
@JSONField(name = "finl_trns_pric")
private BigDecimal finlTrnsPric;
// 14. 采购/退货数量数值型16位含4位小数必填
@JSONField(name = "purc_retn_cnt")
private BigDecimal purcRetnCnt;
// 15. 采购发票编码字符型50位非必填
@JSONField(name = "purc_invo_codg")
private String purcInvoCodg;
// 16. 采购发票号字符型50位非必填
@JSONField(name = "purc_invo_no")
private String purcInvoNo;
// 17. 处方药标志字符型3位必填
@JSONField(name = "rx_flag")
private String rxFlag;
// 18. 采购/退货入库时间日期时间型必填格式yyyy-MM-dd HH:mm:ss
@JSONField(name = "purc_retn_stoin_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date purcRetnStoinTime;
// 19. 采购/退货经办人姓名字符型50位必填
@JSONField(name = "purc_retn_opter_name")
private String purcRetnOpterName;
// 20. 商品赠送标志字符型3位必填
@JSONField(name = "prod_geay_flag")
private String prodGeayFlag;
}

View File

@@ -1,109 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/**
* 【3504】
*
* @author SunJQ
* @date 2025-04-30
*/
@Data
@Accessors(chain = true)
@TableName("yb_inventory_purchase_return_record")
@EqualsAndHashCode(callSuper = false)
public class InventoryPurchaseReturnRecord {
//主键
@TableId(type = IdType.ASSIGN_ID)
private Long id;
//入参
private String param;
//出参
private String outResult;
// 1. 医疗目录编码字符型50位必填
@JSONField(name = "med_list_codg")
private String medListCodg;
// 2. 定点医药机构目录编号字符型30位必填
@JSONField(name = "fixmedins_hilist_id")
private String fixmedinsHilistId;
// 3. 定点医药机构目录名称字符型200位必填
@JSONField(name = "fixmedins_hilist_name")
private String fixmedinsHilistName;
// 4. 定点医药机构批次流水号字符型30位必填
@JSONField(name = "fixmedins_bchno")
private String fixmedinsBchno;
// 5. 供应商名称字符型200位必填
@JSONField(name = "spler_name")
private String splerName;
// 6. 供应商许可证号字符型50位非必填
@JSONField(name = "spler_pmtno")
private String splerPmtno;
// 7. 生产日期日期型必填格式yyyy-MM-dd
@JSONField(name = "manu_date")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date manuDate;
// 8. 有效期止日期型必填格式yyyy-MM-dd
@JSONField(name = "expy_end")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date expyEnd;
// 9. 最终成交单价数值型16位含6位小数非必填
@JSONField(name = "finl_trns_pric")
private BigDecimal finlTrnsPric;
// 10. 采购/退货数量数值型16位含4位小数必填
@JSONField(name = "purc_retn_cnt")
private BigDecimal purcRetnCnt;
// 11. 采购发票编码字符型50位非必填
@JSONField(name = "purc_invo_codg")
private String purcInvoCodg;
// 12. 采购发票号字符型50位必填
@JSONField(name = "purc_invo_no")
private String purcInvoNo;
// 13. 处方药标志字符型3位必填
@JSONField(name = "rx_flag")
private String rxFlag;
// 14. 采购/退货入库时间日期时间型必填格式yyyy-MM-dd HH:mm:ss
@JSONField(name = "purc_retn_stoin_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date purcRetnStoinTime;
// 15. 采购/退货经办人姓名字符型50位必填
@JSONField(name = "purc_retn_opter_name")
private String purcRetnOpterName;
// 16. 备注字符型500位非必填
@JSONField(name = "memo")
private String memo;
// 20. 商品采购流水号字符型50位非必填
@JSONField(name = "medins_prod_purc_no")
private String medinsProdPurcNo;
}

View File

@@ -1,190 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/**
* 【3505】
*
* @author SunJQ
* @date 2025-04-30
*/
@Data
@Accessors(chain = true)
@TableName("yb_inventory_sale_record")
@EqualsAndHashCode(callSuper = false)
public class InventorySaleRecord {
//主键
@TableId(type = IdType.ASSIGN_ID)
private Long id;
//入参
private String param;
//出参
private String outResult;
// 1. 医疗目录编码字符型50位必填
@JSONField(name = "med_list_codg")
private String medListCodg;
// 2. 定点医药机构目录编号字符型30位必填
@JSONField(name = "fixmedins_hilist_id")
private String fixmedinsHilistId;
// 3. 定点医药机构目录名称字符型200位必填
@JSONField(name = "fixmedins_hilist_name")
private String fixmedinsHilistName;
// 4. 定点医药机构批次流水号字符型30位必填
@JSONField(name = "fixmedins_bchno")
private String fixmedinsBchno;
// 5. 开方医师证件类型字符型6位非必填
@JSONField(name = "prsc_dr_cert_type")
private String prscDrCertType;
// 6. 开方医师证件号码字符型50位非必填
@JSONField(name = "prsc_dr_certno")
private String prscDrCertno;
// 7. 开方医师姓名字符型50位必填
@JSONField(name = "prsc_dr_name")
private String prscDrName;
// 8. 药师证件类型字符型6位非必填
@JSONField(name = "phar_cert_type")
private String pharCertType;
// 9. 药师证件号码字符型50位非必填
@JSONField(name = "phar_certno")
private String pharCertno;
// 10. 药师姓名字符型50位必填
@JSONField(name = "phar_name")
private String pharName;
// 11. 药师执业资格证号字符型50位必填
@JSONField(name = "phar_prac_cert_no")
private String pharPracCertNo;
// 12. 医保费用结算类型字符型6位必填
@JSONField(name = "hi_feesetl_type")
private String hiFeesetlType;
// 13. 结算ID字符型30位非必填
@JSONField(name = "setl_id")
private String setlId;
// 14. 就医流水号字符型30位必填
@JSONField(name = "mdtrt_sn")
private String mdtrtSn;
// 15. 人员编号字符型30位非必填
@JSONField(name = "psn_no")
private String psnNo;
// 16. 人员证件类型字符型6位必填
@JSONField(name = "psn_cert_type")
private String psnCertType;
// 17. 证件号码字符型50位非必填
@JSONField(name = "certno")
private String certno;
// 18. 人员姓名字符型50位非必填
@JSONField(name = "psn_name")
private String psnName;
// 19. 生产批号字符型30位必填
@JSONField(name = "manu_lotnum")
private String manuLotnum;
// 20. 生产日期日期型必填格式yyyy-MM-dd
@JSONField(name = "manu_date")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date manuDate;
// 21. 有效期止日期型必填格式yyyy-MM-dd
@JSONField(name = "expy_end")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date expyEnd;
// 22. 处方药标志字符型3位必填
@JSONField(name = "rx_flag")
private String rxFlag;
// 23. 拆零标志字符型3位必填
@JSONField(name = "trdn_flag")
private String trdnFlag;
// 24. 最终成交单价数值型16位含6位小数非必填
@JSONField(name = "finl_trns_pric")
private BigDecimal finlTrnsPric;
// 25. 处方号字符型40位非必填
@JSONField(name = "rxno")
private String rxno;
// 26. 外购处方标志字符型3位必填
@JSONField(name = "rx_circ_flag")
private String rxCircFlag;
// 27. 零售单据号字符型40位必填
@JSONField(name = "rtal_docno")
private String rtalDocno;
// 29. 销售出库单据号字符型40位非必填
@JSONField(name = "stoout_no")
private String stooutNo;
// 30. 批次号字符型30位非必填
@JSONField(name = "bchno")
private String bchno;
// 32. 药品条形码字符型30位非必填
@JSONField(name = "drug_prod_barc")
private String drugProdBarc;
// 33. 货架位字符型20位非必填
@JSONField(name = "shelf_posi")
private String shelfPosi;
// 34. 销售/退货数量数值型16位含4位小数必填
@JSONField(name = "sel_retn_cnt")
private BigDecimal selRetnCnt;
// 35. 销售/退货时间日期时间型必填格式yyyy-MM-dd HH:mm:ss
@JSONField(name = "sel_retn_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date selRetnTime;
// 36. 销售/退货经办人姓名字符型50位必填
@JSONField(name = "sel_retn_opter_name")
private String selRetnOpterName;
// 37. 备注字符型500位非必填
@JSONField(name = "memo")
private String memo;
// 38. 就诊结算类型字符型6位非必填
@JSONField(name = "mdtrt_setl_type")
private String mdtrtSetlType;
// 39. 溯源码节点信息字符型长度未明确暂定500位
@JSONField(name = "drugtracinfo")
private String drugtracinfo;
}

View File

@@ -1,129 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/**
* 【3506】
*
* @author SunJQ
* @date 2025-04-30
*/
@Data
@Accessors(chain = true)
@TableName("yb_inventory_sale_return_record")
@EqualsAndHashCode(callSuper = false)
public class InventorySaleReturnRecord {
//主键
@TableId(type = IdType.ASSIGN_ID)
private Long id;
//入参
private String param;
//出参
private String outResult;
// 1. 医疗目录编码字符型50位必填
@JSONField(name = "med_list_codg")
private String medListCodg;
// 2. 定点医药机构目录编号字符型30位必填
@JSONField(name = "fixmedins_hilist_id")
private String fixmedinsHilistId;
// 3. 定点医药机构目录名称字符型200位必填
@JSONField(name = "fixmedins_hilist_name")
private String fixmedinsHilistName;
// 4. 定点医药机构批次流水号字符型30位必填
@JSONField(name = "fixmedins_bchno")
private String fixmedinsBchno;
// 5. 结算ID字符型30位非必填
@JSONField(name = "setl_id")
private String setlId;
// 6. 人员编号字符型30位非必填
@JSONField(name = "psn_no")
private String psnNo;
// 7. 人员证件类型字符型6位必填
@JSONField(name = "psn_cert_type")
private String psnCertType;
// 8. 证件号码字符型50位非必填
@JSONField(name = "certno")
private String certno;
// 9. 人员姓名字符型50位非必填
@JSONField(name = "psn_name")
private String psnName;
// 10. 生产批号字符型30位必填
@JSONField(name = "manu_lotnum")
private String manuLotnum;
// 11. 生产日期日期型必填格式yyyy-MM-dd
@JSONField(name = "manu_date")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date manuDate;
// 12. 有效期止日期型必填格式yyyy-MM-dd
@JSONField(name = "expy_end")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date expyEnd;
// 13. 处方药标志字符型3位必填
@JSONField(name = "rx_flag")
private String rxFlag;
// 14. 拆零标志字符型3位必填
@JSONField(name = "trdn_flag")
private String trdnFlag;
// 15. 最终成交单价数值型16位含6位小数非必填
@JSONField(name = "finl_trns_pric")
private BigDecimal finlTrnsPric;
// 16. 销售/退货数量数值型16位含4位小数必填
@JSONField(name = "sel_retn_cnt")
private BigDecimal selRetnCnt;
// 17. 销售/退货时间日期时间型必填格式yyyy-MM-dd HH:mm:ss
@JSONField(name = "sel_retn_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date selRetnTime;
// 18. 销售/退货经办人姓名字符型50位必填
@JSONField(name = "sel_retn_opter_name")
private String selRetnOpterName;
// 19. 备注字符型500位非必填
@JSONField(name = "memo")
private String memo;
// 20. 商品销售流水号字符型50位非必填
@JSONField(name = "medins_prod_sel_no")
private String medinsProdSelNo;
// 21. 就医流水号字符型30位必填
@JSONField(name = "mdtrt_sn")
private String mdtrtSn;
// 22. 溯源码节点信息字符型长度未明确暂定500位
@JSONField(name = "drugtracinfo")
private String drugtracinfo;
}

View File

@@ -1,38 +0,0 @@
package com.openhis.domain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 电子处方取药结果查询
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class MedicationResultInquiry {
/** 医保处方编号 */
private String hiRxno;
/** 医保结算时间(yyyy-MM-dd HH:mm:ss) */
private String setlTime;
/** 医保处方状态编码(参考rx_stas_codg) */
private String rxStasCodg;
/** 医保处方状态名称 */
private String rxStasName;
/** 处方使用状态编号(参考rx_used_stas_codg) */
private String rxUsedStasCodg;
/** 处方使用状态名称 */
private String rxUsedStasName;
// 输出明细信息
private List<ElepMedresultDetail> seltdelts;
}

View File

@@ -1,126 +0,0 @@
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* 电子处方上传预核验
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class PreCheckPrescription {
// 处方信息
/** 就诊凭证类型(01-电子凭证令牌、02-身份证号、03-社会保障卡号) */
private String mdtrtCertType;
/** 就诊凭证编号 */
private String mdtrtCertNo;
/** 卡识别码(就诊凭证类型为"03"时必填) */
private String cardSn;
/** 业务类型代码(01-定点医疗机构就诊02-互联网医院问诊) */
private String bizTypeCode;
/** 处方附加属性代码(01-双通道处方02-门诊统筹处方99-其他) */
private String rxExraAttrCode;
/** 电子凭证令牌(使用医保电子凭证就诊时必填) */
private String ecToken;
/** 电子凭证线上身份核验流水号(线上场景互联网医院问诊时使用) */
private String authNo;
/** 参保地编号 */
private String insuPlcNo;
/** 就医地编号 */
private String mdtrtareaNo;
/** 定点医疗机构处方编号(院内内部处方号) */
private String hospRxno;
/** 续方的原处方编号 */
private String initRxno;
/** 处方类别代码(参考rx_type_code) */
private String rxTypeCode;
/** 开方时间(yyyy-MM-dd HH:mm:ss) */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date prscTime;
/** 药品类目数(剂数) */
private String rxDrugCnt;
/** 处方整剂用法编号 */
private String rxUsedWayCodg;
/** 处方整剂用法名称 */
private String rxUsedWayName;
/** 处方整剂频次编号(参考used_frequ) */
private String rxFrquCodg;
/** 处方整剂频次名称 */
/** 处方整剂频次名称 */
private String rxFrquName;
/** 处方整剂剂量单位 */
private String rxDosunt;
/** 处方整剂单次剂量数 */
private String rxDoscnt;
/** 处方整剂医嘱说明 */
private String rxDrordDscr;
/** 处方有效天数 */
private String valiDays;
/** 有效截止时间(开方时间+处方有效天数) */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date valiEndTime;
/** 复用(多次)使用标志(0-否、1-是) */
private String reptFlag;
/** 最大使用次数(预留字段) */
private String maxReptCnt;
/** 使用最小间隔(天数)(预留字段) */
private String minInvDays;
/** 续方标志(0-否、1-是) */
private String rxCotnFlag;
/** 长期处方标志(0-否、1-是) */
private String longRxFlag;
/** 医保处方编号(电子处方信息查询返回时插入记录) */
@JSONField(serialize=false)
private String hiRxno;
// 处方明细信息
private List<ElepVeriPrescriptionDetail> rxdrugdetail;
// 就诊信息
private ElepVeriVisitInfo mdtrtinfo;
// 诊断信息
private ElepVeriDiagnosisInfo diseinfo;
}

View File

@@ -1,118 +0,0 @@
package com.openhis.domain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.List;
/**
* 电子处方上传预核验
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class QueryPrescription {
/** 医保处方编号 */
private String hiRxno;
/** 定点医疗机构编号 */
private String fixmedinsCode;
/** 定点医疗机构名称 */
private String fixmedinsName;
/** 医保处方状态编码 */
private String rxStasCodg;
/** 医保处方状态名称 */
private String rxStasName;
/** 医保处方使用状态编码 */
private String rxUsedStasCodg;
/** 医保处方使用状态名称 */
private String rxUsedStasName;
/** 开方时间 */
private String prscTime;
/** 药品总用量(剂数) */
private BigDecimal rxDrugCnt;
/** 处方整剂用法编码 */
private String rxUsedWayCodg;
/** 处方整剂用法名称 */
private String rxUsedWayName;
/** 处方整剂频次编号 */
private String rxFrquCodg;
/** 处方整剂频次名称 */
private String rxFrquName;
/** 处方整剂剂量单位 */
private String rxDosunt;
/** 处方整剂单次剂量数 */
private BigDecimal rxDoscnt;
/** 处方整剂医嘱说明 */
private String rxDrordDscr;
/** 处方有效天数 */
private BigDecimal valiDays;
/** 有效截止时间 */
private String valiEndTime;
/** 复用多次使用标志0-否、1-是 */
private String reptFlag;
/** 最大复用次数 */
private BigDecimal maxReptCnt;
/** 已复用次数 */
private BigDecimal reptdCnt;
/** 使用最小间隔(天数) */
private BigDecimal minInrvDays;
/** 处方类别编码 */
private String rxTypeCode;
/** 处方类别名称 */
private String rxTypeName;
/** 长期处方标志0-否、1-是 */
private String longRxFlag;
/** 业务类型代码 */
private String bizTypeCode;
/** 业务类型名称 */
private String bizTypeName;
/** 处方附加属性代码 */
private String rxExraAttrCode;
/** 处方附加属性名称 */
private String rxExraAttrName;
/** 处方循环限制标志 */
private String rxCircLimitFlag;
// 处方明细信息
private List<ElepQuerPrescriptionDetail> rxDetlList;
// 就诊信息
private ElepQuerVisitInfo rxOtpinfo;
// 诊断信息
private List<ElepQuerDiagnosisInfo> rxDiseList;
}

View File

@@ -1,76 +0,0 @@
package com.openhis.domain;
import com.alibaba.fastjson2.annotation.JSONField;
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 com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
*【9001】【9002】签到 签退
*
* @author SunJQ
* @date 2025-04-16
*/
@Data
@TableName("yb_pub_sign")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Sign extends HisBaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@JSONField(serialize=false)
private Long id;
/**操作员编号*/
@JSONField(name="opter_no")
private String opterNo;
/**签到编号*/
@JSONField(name="sign_no")
private String signNo;
/**签到时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JSONField(serialize=false)
private java.util.Date signTime;
/**签退时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JSONField(serialize=false)
private java.util.Date signOutTime;
/**状态0-新建1-签到2-签退*/
@JSONField(serialize=false)
private String status;
/** 签到MAC地址 */
@JSONField(name="mac")
@TableField(exist = false)
private String mac;
/** 签到IP地址 */
@JSONField(name="ip")
@TableField(exist = false)
private String ip;
// /**创建人*/
// private String createBy;
// /**创建日期*/
// @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
// @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
// private java.util.Date createTime;
// /**更新人*/
// private String updateBy;
// /**更新日期*/
// @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
// @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
// private java.util.Date updateTime;
// /**所属部门*/
// private String sysOrgCode;
// /**租户ID*/
// private String tenantId;
}

View File

@@ -1,47 +0,0 @@
package com.openhis.enums;
/**
* 接口地址
*/
public enum ElepServiceAdrEnum {
/** 电子处方上传预核验 */
A0001("A0001", "/fixmedins/uploadChk", "【A0001】电子处方上传预核验"),
/** 电子处方医保电子签名*/
A0002("A0002", "/fixmedins/rxFixmedinsSign", "【A0002】电子处方医保电子签名"),
/** 电子处方上传 */
A0003("A0003", "/fixmedins/rxFileUpld", "【A0003】电子处方上传"),
/** 电子处方撤销 */
A0004("A0004", "/fixmedins/rxUndo", "【A0004】电子处方撤销"),
/** 电子处方信息查询 */
A0005("A0005", "/fixmedins/hospRxDetlQuery", "【A0005】电子处方信息查询"),
/** 电子处方取药结果查询 */
A0006("A0006", "/fixmedins/rxSetlInfoQuery", "【A0006】电子处方取药结果查询");
/** 接口编号 */
private final String num;
/** 接口地址 */
private final String address;
/** 接口描述 */
private final String description;
ElepServiceAdrEnum(String num, String address, String description) {
this.num = num;
this.address = address;
this.description = description;
}
public String getNum() {
return num;
}
public String getAddress() {
return address;
}
public String getDescription() {
return description;
}
}

View File

@@ -1,130 +0,0 @@
package com.openhis.enums;
/**
* 接口地址
*/
public enum ServiceAdrEnum {
/** 前置接口 */
TOKEN("token", "/auth/oauth/token", "获取token"),
P9001("9001", "/mbs/fmi/fsi/api/callFsiService/callService", "【9001】签到"),
P9002("9002", "/mbs/fmi/fsi/api/callFsiService/callService", "【9002】签退"),
P1101("1101", "/mbs/fmi/fsi/api/callFsiService/callService", "【1101】人员信息获取"),
P1201("1201", "/mbs/fmi/fsi/api/callFsiService/callService", "【1201】医药机构信息获取"),
P3301("3301", "/mbs/fmi/fsi/api/callFsiService/callService", "【3301】目录对照上传"),
P3302("3302", "/mbs/fmi/fsi/api/callFsiService/callService", "【3302】目录对照撤销"),
/** 目录下载接口 */
D1301("1301","/mbs/fmi/fsi/api/callFsiService/callService","【1301】西药中成药目录下载"),
D1302("1302","/mbs/fmi/fsi/api/callFsiService/callService","【1302】中药饮片目录下载"),
D1303("1303","/mbs/fmi/fsi/api/callFsiService/callService","【1303】医疗机构制剂目录下载"),
D1304("1304","/mbs/fmi/fsi/api/callFsiService/callService","【1304】民族药品目录查询"),
D1305("1305","/mbs/fmi/fsi/api/callFsiService/callService","【1305】医疗服务项目目录下载"),
D1306("1306","/mbs/fmi/fsi/api/callFsiService/callService","【1306】医用耗材目录下载"),
D1307("1307","/mbs/fmi/fsi/api/callFsiService/callService","【1307】疾病与诊断目录下载"),
D1308("1308","/mbs/fmi/fsi/api/callFsiService/callService","【1308】手术操作目录下载"),
D1309("1309","/mbs/fmi/fsi/api/callFsiService/callService","【1309】门诊慢特病种目录下载"),
D1310("1310","/mbs/fmi/fsi/api/callFsiService/callService","【1310】按病种付费病种目录下载"),
D1311("1311","/mbs/fmi/fsi/api/callFsiService/callService","【1311】日间手术治疗病种目录下载"),
D1312("1312","/mbs/fmi/fsi/api/callFsiService/callService","【1312】医保目录信息查询"),
D1313("1313","/mbs/fmi/fsi/api/callFsiService/callService","【1313】肿瘤形态学目录下载"),
D1314("1314","/mbs/fmi/fsi/api/callFsiService/callService","【1314】中医疾病目录下载"),
D1315("1315","/mbs/fmi/fsi/api/callFsiService/callService","【1315】中医证候目录下载"),
D1316("1316","/mbs/fmi/fsi/api/callFsiService/callService","【1316】医疗目录与医保目录匹配信息查询"),
D1317("1317","/mbs/fmi/fsi/api/callFsiService/callService","【1317】医药机构目录匹配信息查询"),
D1318("1318","/mbs/fmi/fsi/api/callFsiService/callService","【1318】医保目录限价信息查询"),
D1319("1319","/mbs/fmi/fsi/api/callFsiService/callService","【1319】医保目录先自付比例信息查询"),
D1320("1320","/mbs/fmi/fsi/api/callFsiService/callService","【1320】中药配方颗粒目录下载"),
D1321("1321","/mbs/fmi/fsi/api/callFsiService/callService","【1321】医疗服务项目目录下载"),
/** 人员备案接口 */
F2501("2501", "/mbs/fmi/fsi/api/callFsiService/callService", "【2501】转院备案"),
F2502("2502", "/mbs/fmi/fsi/api/callFsiService/callService", "【2502】转院备案撤销"),
F2503("2503", "/mbs/fmi/fsi/api/callFsiService/callService", "【2503】人员慢特病备案"),
F2504("2504", "/mbs/fmi/fsi/api/callFsiService/callService", "【2504】人员慢特病备案撤销"),
F2505("2505", "/mbs/fmi/fsi/api/callFsiService/callService", "【2505】人员定点备案"),
F2506("2506", "/mbs/fmi/fsi/api/callFsiService/callService", "【2506】人员定点备案撤销"),
/** 药店接口 */
D2101("2101", "/mbs/fmi/fsi/api/callFsiService/callService", "【2101】药店预结算"),
D2102("2102", "/mbs/fmi/fsi/api/callFsiService/callService", "【2102】药店结算"),
D2103("2103", "/mbs/fmi/fsi/api/callFsiService/callService", "【2103】药店结算撤销"),
/** 门诊接口 */
C2201("2201", "/mbs/fmi/fsi/api/callFsiService/callService", "【2201】门诊挂号"),
C2202("2202", "/mbs/fmi/fsi/api/callFsiService/callService", "【2202】门诊挂号撤销"),
C2203("2203", "/mbs/fmi/fsi/api/callFsiService/callService", "【2203】门诊就诊信息上传"),
C2203A("2203A", "/mbs/fmi/fsi/api/callFsiService/callService", "【2203A】门诊就诊信息上传"),
C2204("2204", "/mbs/fmi/fsi/api/callFsiService/callService", "【2204】门诊费用明细上传"),
C2205("2205", "/mbs/fmi/fsi/api/callFsiService/callService", "【2205】门诊费用明细撤销"),
C2206("2206", "/mbs/fmi/fsi/api/callFsiService/callService", "【2206】门诊预结算"),
C2207("2207", "/mbs/fmi/fsi/api/callFsiService/callService", "【2207】门诊结算"),
C2208("2208", "/mbs/fmi/fsi/api/callFsiService/callService", "【2208】门诊费用撤销"),
/** 住院接口 */
H2401("2401", "/mbs/fmi/fsi/api/callFsiService/callService", "【2401】入院办理"),
H2402("2402", "/mbs/fmi/fsi/api/callFsiService/callService", "【2402】出院办理"),
H2403("2403", "/mbs/fmi/fsi/api/callFsiService/callService", "【2403】住院信息变更"),
H2405("2405", "/mbs/fmi/fsi/api/callFsiService/callService", "【2405】出院撤销"),
H2301("2301", "/mbs/fmi/fsi/api/callFsiService/callService", "【2301】住院费用明细上传"),
H2302("2302", "/mbs/fmi/fsi/api/callFsiService/callService", "【2302】住院费用明细撤销"),
H2303("2303", "/mbs/fmi/fsi/api/callFsiService/callService", "【2303】住院预结算"),
H2304("2304", "/mbs/fmi/fsi/api/callFsiService/callService", "【2304】住院结算"),
H2305("2305", "/mbs/fmi/fsi/api/callFsiService/callService", "【2305】住院结算撤销"),
H2404("2404", "/mbs/fmi/fsi/api/callFsiService/callService", "【2404】入院撤销"),
/** 智能审核事前提醒 */
A3101("3101", "/mbs/fmi/fsi/api/callFsiService/callService", "【3101】明细审核事前事中分析服务"),
A3103("3103", "/mbs/fmi/fsi/api/callFsiService/callService", "【3103】事前事中服务反馈服务"),
/** 医药机构费用结算业务 */
R3201("3201", "/mbs/fmi/fsi/api/callFsiService/callService", "【3201】医药机构费用结算对总账"),
R3202("3202", "/mbs/fmi/fsi/api/callFsiService/callService", "【3202】医药机构费用结算对明细账"),
R3203("3203", "/mbs/fmi/fsi/api/callFsiService/callService", "【3203】清算申请"),
R3203A("3203A", "/mbs/fmi/fsi/api/callFsiService/callService", "【3203A】清算申请(吉林省)"),
R3204("3204", "/mbs/fmi/fsi/api/callFsiService/callService", "【3204】清算申请撤销"),
R3204A("3204A", "/mbs/fmi/fsi/api/callFsiService/callService", "【3204A】清算申请撤销(吉林省)"),
R3205A("3205A", "/mbs/fmi/fsi/api/callFsiService/callService", "【3205A】清算申请状态查询吉林省"),
R3206A("3206A", "/mbs/fmi/fsi/api/callFsiService/callService", "【3206A】清算机构查询(吉林省)"),
R3209A("3206A", "/mbs/fmi/fsi/api/callFsiService/callService", "【3209A】查询跨省三方对账未成功数据(吉林省)"),
R13203("13203", "/mbs/fmi/fsi/api/callFsiService/callService", "【13203】医药机构费用结算日对账结果查询"),
/** 进销存业务 */
I3501("3501", "/mbs/fmi/fsi/api/callFsiService/callService", "【3501】商品盘存上传"),
I3502("3502", "/mbs/fmi/fsi/api/callFsiService/callService", "【3502】商品库存变更"),
I3503("3503", "/mbs/fmi/fsi/api/callFsiService/callService", "【3503】商品采购"),
I3504("3504", "/mbs/fmi/fsi/api/callFsiService/callService", "【3504】商品采购退货"),
I3505("3505", "/mbs/fmi/fsi/api/callFsiService/callService", "【3505】商品销售"),
I3506("3506", "/mbs/fmi/fsi/api/callFsiService/callService", "【3506】商品销售退货"),
I3507("3507", "/mbs/fmi/fsi/api/callFsiService/callService", "【3507】商品信息删除"),
/** 医保服务查询业务 */
G5301("5301", "/mbs/fmi/fsi/api/callFsiService/callService", "【5301】人员慢特病备案查询"),
/** 文件上传下载 */
U9101("9101", "/mbs/fmi/fsi/api/callFsiService/callService", "【9101】文件上传"),
U9102("9102", "/mbs/fmi/fsi/api/callFsiService/callService", "【9102】文件下载");
/** 接口编号 */
private final String num;
/** 接口地址 */
private final String address;
/** 接口描述 */
private final String description;
ServiceAdrEnum(String num, String address, String description) {
this.num = num;
this.address = address;
this.description = description;
}
public String getNum() {
return num;
}
public String getAddress() {
return address;
}
public String getDescription() {
return description;
}
public static ServiceAdrEnum getEnum(String num){
for (ServiceAdrEnum serviceAdrEnum : ServiceAdrEnum.values()) {
if (serviceAdrEnum.getNum().equals(num)){
return serviceAdrEnum;
}
}
return null;
}
}

View File

@@ -1,35 +0,0 @@
package com.openhis.listener;
import java.util.Map;
import com.openhis.annotation.ElepHandlerInt;
import com.openhis.context.ElepHandlerServiceContext;
import com.openhis.service.IElepHandlerService;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;
import com.openhis.annotation.HandlerInt;
import com.openhis.context.HandlerServiceContext;
import com.openhis.service.HandlerService;
/**
* 监听@ElepHandlerInt注解下的类
*/
@Component
public class ElepHandlerServiceListener implements ApplicationListener<ContextRefreshedEvent> {
/**
* 将实例放到容器
* @param event
*/
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
Map<String, Object> beans = event.getApplicationContext().getBeansWithAnnotation(ElepHandlerInt.class);
ElepHandlerServiceContext handlerServiceContext = event.getApplicationContext().getBean(ElepHandlerServiceContext.class);
beans.forEach((name, bean) -> {
ElepHandlerInt typeHandler = bean.getClass().getAnnotation(ElepHandlerInt.class);
handlerServiceContext.putElepHandlerService(typeHandler.value().toString(), (IElepHandlerService) bean);
});
}
}

View File

@@ -1,31 +0,0 @@
package com.openhis.listener;
import com.openhis.annotation.HandlerInt;
import com.openhis.context.HandlerServiceContext;
import com.openhis.service.HandlerService;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* 监听@HandlerInt注解下的类
*/
@Component
public class HandlerServiceListener implements ApplicationListener<ContextRefreshedEvent> {
/**
* 将实例放到容器
* @param event
*/
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
Map<String, Object> beans = event.getApplicationContext().getBeansWithAnnotation(HandlerInt.class);
HandlerServiceContext handlerServiceContext = event.getApplicationContext().getBean(HandlerServiceContext.class);
beans.forEach((name, bean) -> {
HandlerInt typeHandler = bean.getClass().getAnnotation(HandlerInt.class);
handlerServiceContext.putHandlerService(typeHandler.value().toString(), (HandlerService) bean);
});
}
}

View File

@@ -1,79 +0,0 @@
package com.openhis.pojo;
import com.alibaba.fastjson2.annotation.JSONField;
import com.openhis.constant.InputDataTypeConst;
import lombok.Data;
/**
* 医保入参
*/
@Data
public class InputData<T, H> {
@JSONField(serialize = false)
private String insuplcAdmdvs;
@JSONField(name = InputDataTypeConst.DATA)
private T data;
@JSONField(name = InputDataTypeConst.FEE_DETAIL)
private T feeDetail;
@JSONField(name = InputDataTypeConst.SIGN_IN)
private T signIn;
@JSONField(name = InputDataTypeConst.SIGN_OUT)
private T signOut;
@JSONField(name = InputDataTypeConst.MD_TRT_INFO)
private T mdTrtInfo;
@JSONField(name = InputDataTypeConst.DI_SE_INFO)
private H diSeInfo;
@JSONField(name = InputDataTypeConst.DRUG_INFO)
private T druginfo;
@JSONField(name = InputDataTypeConst.DRUG_DETAIL)
private H drugdetail;
@JSONField(name = InputDataTypeConst.DSCG_INFO)
private T dscginfo;
@JSONField(name = InputDataTypeConst.PURC_INFO)
private T purcinfo;
@JSONField(name = InputDataTypeConst.INV_INFO)
private T invinfo;
@JSONField(name = InputDataTypeConst.SEL_INFO)
private T selinfo;
@JSONField(name = InputDataTypeConst.ADM_INFO)
private T adminfo;
public InputData(T param, String insuplcAdmdvs, String flag) {
this.insuplcAdmdvs = insuplcAdmdvs == null ? "" : insuplcAdmdvs;
if (InputDataTypeConst.DATA.equals(flag)) {
this.data = param;
} else if (InputDataTypeConst.FEE_DETAIL.equals(flag)) {
this.feeDetail = param;
} else if (InputDataTypeConst.SIGN_IN.equals(flag)) {
this.signIn = param;
} else if (InputDataTypeConst.SIGN_OUT.equals(flag)) {
this.signOut = param;
} else if (InputDataTypeConst.PURC_INFO.equals(flag)) {
this.purcinfo = param;
} else if (InputDataTypeConst.INV_INFO.equals(flag)) {
this.invinfo = param;
} else if (InputDataTypeConst.SEL_INFO.equals(flag)) {
this.selinfo = param;
}
}
public InputData(T param1, H param2, String insuplcAdmdvs, String flag) {
this.insuplcAdmdvs = insuplcAdmdvs == null ? "" : insuplcAdmdvs;
if (InputDataTypeConst.MD_TRT_INFO.equals(flag)) {
this.mdTrtInfo = param1;
this.diSeInfo = param2;
} else if (InputDataTypeConst.DRUG_INFO.equals(flag)) {
this.druginfo = param1;
this.drugdetail = param2;
} else if (InputDataTypeConst.DSCG_INFO.equals(flag)) {
this.dscginfo = param1;
this.diSeInfo = param2;
} else if (InputDataTypeConst.ADM_INFO.equals(flag)) {
this.adminfo = param1;
this.diSeInfo = param2;
}
}
}

View File

@@ -1,106 +0,0 @@
package com.openhis.web.ybmanage.dto;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* PDF模板替换内容实体类
*
* @author liuhr
* @date 2025/4/30
*/
@Data
@Accessors(chain = true)
public class PDFInputDto {
/** 医保电子处方追溯码 */
private String rxTraceCode;
/** 机构名 */
private String orgName;
/** 门诊/住院病历号 */
private String iptOtpNo;
/** 院内处方编号 */
private String prescriptionNo;
/** 科别/病区和床位 */
private String locationName;
/** 姓名 */
private String patnName;
/** 性别 */
private String gender;
/** 年龄 */
private BigDecimal patnAge;
/** 费别 */
private String hiFeesetlType;
/** 开具日期 */
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date prscTime;
/** 临床诊断 */
private String diagName;
/** 处方有效天数 */
private BigDecimal valiDays;
/** 开方医师 */
private String prscDrName;
/** 审核药师 */
private String pharName;
/** 调配、复核药师 */
private String disRevPharName;
/** 核对、发药药师 */
private String checkPharName;
/** 延长处方用量原因 */
private String reason;
/** 药品信息列表 */
private List<MedDetail> medDetailList;
/**
* 药品明细信息
*/
@Data
@AllArgsConstructor
@NoArgsConstructor // 关键注解
public static class MedDetail {
/** 药品名字 */
private String medName;
/** 药品规格 */
private String drugSpec;
/** 单次用量 */
private String sinDoscnt;
/** 单次剂量单位 */
private String sinDosunt;
/** 使用频次编码 */
private String usedFrquCodg;
/** 用药途径 */
private String medWay;
}
}

View File

@@ -1,15 +0,0 @@
package com.openhis.pojo;
import lombok.Data;
/**
* 医保入参
*/
@Data
public class RequestData<T> {
private T data;
public RequestData(T param) {
this.data = param;
}
}

View File

@@ -1,40 +0,0 @@
package com.openhis.pojo;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
/**
* 医保结果
*/
@Data
public class ResultBody {
/** 交易状态码 */
@JSONField(name="infcode")
private String infcode;
/** 发送方报文ID */
@JSONField(name="warnMsg")
private String warn_msg;
/** 数字签名信息 */
@JSONField(name="cainfo")
private String cainfo;
/** 错误信息 */
@JSONField(name="err_msg")
private String errMsg;
/** 接收报文时间 */
@JSONField(name="refmsg_time")
private String refmsgTime;
/** 签名类型 */
@JSONField(name="signtype")
private String signtype;
/** 响应报文时间 */
@JSONField(name="respond_time")
private String respondTime;
/** 接收方报文ID */
@JSONField(name="inf_refmsgid")
private String infRefmsgid;
/** 交易输出 */
@JSONField(name="output")
private String output;
}

View File

@@ -1,73 +0,0 @@
package com.openhis.pojo;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Builder;
import lombok.Data;
/**
* 接口交易报文实体
* @param <T>
*/
@Data
@Builder
public class TransBody<T> {
/** 交易编号 */
@JSONField(name="infno")
private String infno;
/** 发送方报文ID */
@JSONField(name="msgid")
private String msgid;
/** 就医地医保区划 */
@JSONField(name="mdtrtarea_admvs")
private String mdtrtareaAdmvs;
/** 参保地医保区划 */
@JSONField(name="insuplc_admdvs")
private String insuplcAdmdvs;
/** 接收方系统代码 */
@JSONField(name="recer_sys_code")
private String recerSysCode;
/** 设备编号 */
@JSONField(name="dev_no")
private String devNo;
/** 设备安全信息 */
@JSONField(name="dev_safe_info")
private String devSafeInfo;
/** 数字签名信息 */
@JSONField(name="cainfo")
private String cainfo;
/** 签名类型 */
@JSONField(name="signtype")
private String signtype;
/** 接口版本号 */
@JSONField(name="infver")
private String infver;
/** 经办人类别 */
@JSONField(name="opter_type")
private String opterType;
/** 经办人 */
@JSONField(name="opter")
private String opter;
/** 经办人姓名 */
@JSONField(name="opter_name")
private String opterName;
/** 交易时间 */
@JSONField(name="inf_time")
private String infTime;
/** 定点医药机构编号 */
@JSONField(name="fixmedins_code")
private String fixmedinsCode;
/** 定点医药机构名称 */
@JSONField(name="fixmedins_name")
private String fixmedinsName;
/** 交易签到流水号 */
@JSONField(name="sign_no")
private String signNo;
@JSONField(name="enc_type")
private String encType;
/** 交易输入 */
@JSONField(name="input")
private T input;
}

View File

@@ -1,252 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.openhis.config.InterfaceConfig;
import com.openhis.utils.RedisUtil;
import com.openhis.vo.FileDownload;
import com.openhis.vo.FileResult;
import com.openhis.vo.Result;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.*;
/**
* 文件服务
*
* @author SunJQ
* @date 2025-05-04
*/
@Service
public class FileService {
@Autowired
private InterfaceConfig interfaceConfig;
@Autowired
private RedisUtil redisUtil;
private static final String url = "http://ddjk.jlhs.gov.cn:20215/mbs/fsi/api/fileupload";
/**
* 调用普通交易及文件下载交易
*/
public Result<?> downloadFile(FileResult fileResult) {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost(url);
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(10000).setSocketTimeout(10000).build();
httppost.setConfig(requestConfig);
FileDownload fileDownload = new FileDownload();
fileDownload.setFilename(fileResult.getFilename()).setFileQuryNo(fileResult.getFileQuryNo()).setFixmedinsCode(fileResult.getFixmedinsCode());
ByteArrayEntity entity = new ByteArrayEntity(JSON.toJSONString(fileDownload).getBytes(StandardCharsets.UTF_8));
entity.setContentType("text/plain");
httppost.setEntity(entity);
CloseableHttpResponse response = null;
try {
response = httpclient.execute(httppost);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
httppost.abort();
throw new RuntimeException("HttpClient,error status code :" + statusCode);
}
HttpEntity responseEntity = response.getEntity();
String result;
if (responseEntity != null) {
if (responseEntity.getContentType().getValue().contains("application/octet-stream")) {
//拼接文件路径
String filePath = interfaceConfig.getFilePath();
long time = new Date().getTime();
InputStream content = responseEntity.getContent();
//返回文件流
File file = new File(filePath+"\\\\"+time+".txt");
FileOutputStream fileOutputStream = new FileOutputStream(file);
int temp;
while ((temp = content.read()) != -1) {
fileOutputStream.write(temp);
}
fileOutputStream.close();
return Result.okMsg("文件下载成功"+filePath+"\\\\"+time+".txt");
} else {
//返回字符串
result = EntityUtils.toString(responseEntity, "UTF-8");
System.out.println(result);
}
}
EntityUtils.consume(entity);
} catch (ClientProtocolException e) {
throw new RuntimeException("提交给服务器的请求不符合HTTP协议", e);
} catch (IOException e) {
throw new RuntimeException("向服务器承保接口发起http请求,执行post请求异常", e);
} finally {
if (response != null) {
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (httpclient != null) {
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.error("下载失败");
}
/**
* 调用文件上传交易
*/
public Result uploadFile(MultipartFile file, String text, String fixmedinsCode, String admvs, String userId) {
HttpEntity responseEntity = null;
try {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost(url);
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(10000)
.setSocketTimeout(10000)
.build();
httppost.setConfig(requestConfig);
// 设置认证头
httppost.setHeader("Authorization", String.valueOf(
redisUtil.get("USER_TOKEN:USER_TOKEN_" + admvs + ":" + userId)
));
// 创建JSON请求体 - 这是关键改变!
JSONObject requestBody = new JSONObject();
requestBody.put("fixmedins_code", fixmedinsCode);
requestBody.put("filename", file.getOriginalFilename());
requestBody.put("file", Base64.getEncoder().encodeToString(file.getBytes()));
// 设置JSON请求体
StringEntity entity = new StringEntity(
requestBody.toJSONString(),
ContentType.APPLICATION_JSON
);
httppost.setEntity(entity);
System.out.println("Sending JSON: " + requestBody.toJSONString());
try (CloseableHttpResponse response = httpclient.execute(httppost)) {
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
throw new RuntimeException("HTTP error, status code: " + statusCode);
}
responseEntity = response.getEntity();
if (responseEntity != null) {
String result = EntityUtils.toString(responseEntity, StandardCharsets.UTF_8);
System.out.println("Response: " + result);
return Result.ok(result);
// 处理返回结果...
}
}
} catch (Exception e) {
throw new RuntimeException("Request failed: " + e.getMessage(), e);
}
return Result.ok(responseEntity);
}
public FileResult uploadFile(InputStream fileStream,
String filename,
String fixmedinsCode) throws IOException{
// // 1. 预处理校验(与之前方案一致)
// validateZipFile(fileData);
// List<String> txtLines = extractTxtContent(fileData);
// validateTxtFormat(txtLines);
// 2. 构建请求(关键修改点)
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
// 构建multipart请求体参考医保局示例
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setCharset(StandardCharsets.UTF_8);
// 添加JSON参数根据实际接口要求调整
builder.addTextBody("jsonStr", buildJsonRequest(filename, fixmedinsCode));
// 添加文件参数(注意参数名需与接口文档一致)
builder.addBinaryBody(
"in", // 对应接口参数代码"in"
IOUtils.toByteArray(fileStream),
ContentType.APPLICATION_OCTET_STREAM,
filename
);
HttpEntity entity = builder.build();
httpPost.setEntity(entity);
// 3. 执行请求(关键修改点)
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
throw new RuntimeException("医保接口调用失败,状态码:" + statusCode);
}
// 解析响应(参考医保局示例)
HttpEntity responseEntity = response.getEntity();
String responseBody = EntityUtils.toString(responseEntity, StandardCharsets.UTF_8);
return parseMedicareResponse(responseBody);
}
}
private String buildJsonRequest(String filename, String fixmedinsCode) {
// 根据实际接口要求构建JSON请求体
return String.format(
"{" +
"\"filename\":\"%s\"," +
"\"fixmedins_code\":\"%s\"" +
"}",
filename,
fixmedinsCode
);
}
private FileResult parseMedicareResponse(String jsonResponse) {
// 解析医保局返回的JSON响应根据实际响应结构调整
// 示例解析逻辑,需替换为实际解析代码
ObjectMapper mapper = new ObjectMapper();
try {
return mapper.readValue(jsonResponse, FileResult.class);
} catch (JsonProcessingException e) {
throw new RuntimeException("响应解析失败", e);
}
}
}

View File

@@ -1,47 +0,0 @@
package com.openhis.service;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
import com.openhis.vo.BaseParam;
import java.util.Map;
/**
*
*/
public interface HandlerService {
/**
* 发送数据
* @param inputData
* @return
*/
ResultBody handle(InputData inputData, BaseParam baseParam);
/**
* 初始化接口报文
* @param intNum
* @param inputData
* @return
*/
String initTransBody(String intNum,InputData inputData,BaseParam baseParam);
/**
* 发送数据
* @return
*/
Map<String,String> getHeader(BaseParam baseParam);
/**
* 发送数据
* @param url
* @param transBody
* @return
*/
ResultBody sendDatas(String url, String transBody,BaseParam baseParam);
/**
* 获取token
* @return
*/
String getToken(BaseParam baseParam);
}

View File

@@ -1,40 +0,0 @@
package com.openhis.service;
import java.util.Map;
import com.alibaba.fastjson2.JSONObject;
import com.openhis.domain.BaseResponse;
import com.openhis.pojo.RequestData;
import com.openhis.vo.BaseParam;
/**
*
*/
public interface IElepHandlerService {
/**
* 发送数据
* @param requestData 请求数据
* @return 请求数据
*/
BaseResponse elepHandle(RequestData requestData, BaseParam baseParam);
/**
* 初始化接口报文
* @param intNum 类型
* @param requestData 请求数据
* @return
*/
JSONObject initTransBody(String intNum, RequestData requestData, BaseParam baseParam);
/**
* 发送数据
* @param url url
* @param request 请求数据
* @return
*/
BaseResponse sendDatas(String url, JSONObject request,BaseParam baseParam);
}

View File

@@ -1,69 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.service;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.openhis.domain.*;
import com.openhis.vo.BaseParam;
import com.openhis.vo.Result;
import org.springframework.web.bind.annotation.PostMapping;
/**
*
* @author yuxj
* @date 2025-04-17
*/
public interface IYbElepService {
/**
* 电子处方上传预核验
*
* @param baseParam 处方信息
* @return
*/
Result<?> preCheckPrescription(BaseParam baseParam);
/**
* 电子处方医保电子签名
*
* @param baseParam 电子签名信息
* @return
*/
Result<?> signature(BaseParam baseParam);
/**
* 电子处方上传
*
* @param baseParam 上传信息
* @return
*/
Result<?> upload(BaseParam baseParam);
/**
* 电子处方撤销
*
* @param baseParam 撤销信息
* @return
*/
Result<?> revoke(BaseParam baseParam);
/**
* 电子处方信息查询
*
* @param baseParam 查询信息
* @return
*/
Result<?> querPrescription(BaseParam baseParam);
/**
* 电子处方取药结果查询
*
* @param baseParam 撤销信息
* @return
*/
Result<?> medresult(BaseParam baseParam);
}

View File

@@ -1,348 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.service;
import javax.servlet.http.HttpServletRequest;
import com.openhis.vo.*;
/**
* TODO:医保同一服务层
*
* @author SunJQ
* @date 2025-03-19
*/
public interface YbService {
/**
* 签到
*
* @param sign
* @param request
* @return
*/
Result<?> signIn(BaseParam sign, HttpServletRequest request);
/**
* 签到
*
* @param sign
* @return
*/
Result<?> signOut(BaseParam sign);
/**
* 读卡获取身份信息
*
* @param baseParam
* @return
*/
Result<?> getPerInfo(BaseParam baseParam);
/**
* 挂号
*
* @param baseParam
* @return
*/
Result<?> reg(BaseParam baseParam);
/**
* 退号
*
* @param baseParam
* @return
*/
Result<?> cancelReg(BaseParam baseParam);
/**
* 门诊就诊信息上传
*
* @param
* @return
*/
Result<?> saveMedical(BaseParam baseParam);
/**
* 门诊费用明细上传
*
* @param baseParam
* @return
*/
Result<?> upFeeDetail(BaseParam baseParam);
/**
* 门诊费预结算
*
* @param baseParam
* @return
*/
Result<?> preSetl(BaseParam baseParam);
/**
* 门诊费用明细撤销
*
* @param baseParam
* @return
*/
Result<?> cancelFeeDetail(BaseParam baseParam);
/**
* 门诊费用结算
*
* @param
* @return
*/
Result<?> setl(BaseParam baseParam);
/**
* 门诊费用撤销
*
* @param
* @return
*/
Result<?> cancelSetl(BaseParam baseParam);
/**
* 目录下载
*
* @param fileDownload
* @return
*/
Result<?> download(BaseParam baseParam, FileDownload fileDownload);
/**
* 预结算
*
* @param baseParam
* @return
*/
Result<?> preSettle(BaseParam baseParam);
/**
* 目录对照
*
* @param baseParam
* @return
*/
Result<?> directoryCheck(BaseParam baseParam);
/**
* 目录对照撤销
*
* @param baseParam
* @return
*/
Result<?> directoryUnCheck(BaseParam baseParam);
/**
* 对总账
*
* @param baseParam
* @return
*/
Result<?> reconcileGeneralLedger(BaseParam baseParam);
/**
* 明细对账
*
* @param financial3202Param
* @return
*/
Result<?> reconcileGeneralLedgerDetail(BaseParam baseParam, FinancialSettlement3202Param financial3202Param);
/**
* 第三方异常数据结算
*
* @param financialSettlement3209AParam
* @return
*/
Result<?> threePartSearch(BaseParam baseParam, FinancialSettlement3209AParam financialSettlement3209AParam);
/**
* 清算申请
*
* @param
* @return
*/
Result<?> applyFinancialClearing(BaseParam baseParam);
/**
* 清算申请状态查询
*
* @param clearing3205AParma
* @return
*/
Result<?> getFinancialClearingStatus(BaseParam baseParam, Clearing3205AParma clearing3205AParma);
/**
* 撤销清算申请
*
* @param financial3204Param
* @return
*/
Result<?> cancelFinancialClearing(BaseParam baseParam, Financial3204Param financial3204Param);
/**
* 库存盘点上传
*
* @param baseParam
* @return
*/
Result<?> uploadInventoryCount(BaseParam baseParam);
/**
* 库存信息变更
*
* @param baseParam
* @return
*/
Result<?> updateInventoryCount(BaseParam baseParam);
/**
* 商品采购
*
* @param baseParam
* @return
*/
Result<?> procurement(BaseParam baseParam);
/**
* 商品采购撤销
*
* @param baseParam
* @return
*/
Result<?> cancelProcurement(BaseParam baseParam);
/**
* 商品销售
*
* @param baseParam
* @return
*/
Result<?> merchandise(BaseParam baseParam);
/**
* 商品销售退货
*
* @param baseParam
* @return
*/
Result<?> cancelMerchandise(BaseParam baseParam);
Result<?> deleteGoodsInfo(BaseParam baseParam, Medical3507Param medical3507Param);
/**
* 医保目录信息查询
*
* @param baseParam
* @return
*/
Result<?> queryYbCatalogue(BaseParam baseParam);
/**
* 3206A
*
* @param baseParam
* @return
*/
Result<?> getClrOptins(BaseParam baseParam);
/**
* 【2301】上传住院费用明细
*
* @param baseParam
* @return
*/
Result<?> uploadInpatientFeeDetail(BaseParam baseParam);
/**
* 【2302】住院费用明细撤销
*
* @param baseParam
* @return
*/
Result<?> cancelInpatientFeeDetail(BaseParam baseParam);
/**
* 【2303】住院预结算
*
* @param baseParam
* @return
*/
Result<?> prePayInpatient(BaseParam baseParam);
/**
* 【2304】住院结算
*
* @param baseParam
* @return
*/
Result<?> payInpatient(BaseParam baseParam);
/**
* 【2305】取消住院结算
*
* @param baseParam
* @return
*/
Result<?> cancelInpatientPay(BaseParam baseParam);
/**
* 【2401】 办理入院
*
* @param baseParam
* @return
*/
Result<?> inpatientReg(BaseParam baseParam);
/**
* 【2402】 办理出院
*
* @param baseParam
* @return
*/
Result<?> dischargePatient(BaseParam baseParam);
/**
* 【2403】 住院信息变更
*
* @param baseParam
* @return
*/
Result<?> changeInpatientInfo(BaseParam baseParam);
/**
* 【2404】 撤销入院
*
* @param baseParam
* @return
*/
Result<?> cancelInpatientReg(BaseParam baseParam);
/**
* 【2405】 撤销出院
*
* @param baseParam
* @return
*/
Result<?> cancelDischargePatient(BaseParam baseParam);
/**
* 【3101】明细审核事前事中分析服务
*
* @param baseParam 基础参数
* @return 结果
*/
Result<?> yb3101PreMidAnalysis(BaseParam baseParam);
/**
* 【3103】事前事中服务反馈服务
*
* @param baseParam 基础参数
* @return 结果
*/
Result<?> yb3103PreMidFeedback(BaseParam baseParam);
}

View File

@@ -1,170 +0,0 @@
package com.openhis.service.impl;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.core.common.exception.ServiceException;
import com.openhis.domain.BaseResponse;
import com.openhis.pojo.RequestData;
import com.openhis.service.IElepHandlerService;
import com.openhis.utils.HseEncAndDecUtil;
import com.openhis.utils.RedisUtil;
import com.openhis.utils.SignUtil;
import com.openhis.vo.BaseParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
/**
* 医保交易
*/
@Component
@Slf4j
public abstract class ElepHandlerServiceImpl implements IElepHandlerService {
Logger logger = LoggerFactory.getLogger(ElepHandlerServiceImpl.class);
/**********************************************************************
*
* @method handle
* @author TianYi
* @Date 2021-08-13
* @param requestData
* @return
* @description 发送数据
**********************************************************************/
@Override
public abstract BaseResponse elepHandle(RequestData requestData, BaseParam baseParam);
/**********************************************************************
*
* @method sendDatas
* @author TianYi
* @Date 2021-08-13
* @param intNum
* @param requestData
* @return
* @description 初始化数据体
**********************************************************************/
@Override
public JSONObject initTransBody(String intNum, RequestData requestData, BaseParam baseParam) {
String prePrvKey = baseParam.getBaseInfo().getPrePrvKey();
String appId = baseParam.getBaseInfo().getPreAppId();
String appSecret = baseParam.getBaseInfo().getPreAppSecret();
String sortedData = SignUtil.getValue(JSONObject.toJSONString(requestData.getData()));
logger.info("" + intNum + "】 整体入参:====" + JSONObject.toJSONString(sortedData));
System.out.println("" + intNum + "】 整体入参:====" + JSONObject.toJSONString(sortedData));
// 加密数据
try {
JSONObject jsonObject = JSON.parseObject(sortedData);
JSONObject inputObject = HseEncAndDecUtil.encryptMsg(appId, appSecret, prePrvKey, "", jsonObject);
logger.info("" + intNum + "】 加密后的整体入参:====" + JSONObject.toJSONString(inputObject));
System.out.println("" + intNum + "】 加密后的整体入参:====" + JSONObject.toJSONString(inputObject));
return inputObject;
} catch (Exception e) {
throw new ServiceException("加密数据异常");
}
}
/**********************************************************************
*
* @method sendDatas
* @author TianYi
* @Date 2021-08-13
* @param url
* @param request
* @return
* @description 发送数据
**********************************************************************/
@Override
public BaseResponse sendDatas(String url, JSONObject request, BaseParam baseParam) {
String appId = baseParam.getBaseInfo().getPreAppId();
String appSecret = baseParam.getBaseInfo().getPreAppSecret();
logger.info("响应URL====" + url);
System.out.println("响应URL====" + url);
CloseableHttpClient client = HttpClients.createDefault();
String encData = request.getString("encData");
String signData = request.getString("signData");
request.remove("encData");
request.remove("signData");
String sortjson = SignUtil.getValue(request);
sortjson = sortjson.substring(0, sortjson.length() - 1) + ",\"encData\":\"" + encData + "\"" + ",\"signData\":\"" + signData + "\"}";
BaseResponse response = null;
HttpPost httpPost = new HttpPost(url);
StringEntity entity;
try {
entity = new StringEntity(sortjson);//解决中文乱码问题
} catch (UnsupportedEncodingException e) {
throw new ServiceException("解决中文乱码问题失败");
}
httpPost.addHeader("Content-Type", "application/json; charset=utf-8");
httpPost.setEntity(entity);
try {
HttpResponse resp = client.execute(httpPost);//执行时机
String respResult = "";
StatusLine statusLine = resp.getStatusLine();//获取请求对象中的响应行对象
int responseCode = statusLine.getStatusCode();//从状态行中获取状态码
if (responseCode == 200) {
HttpEntity entity2 = resp.getEntity();
if (entity2 != null) {
System.out.println("响应内容:");
System.out.println(JSON.toJSONString(response));
//根据httpclient的官方说明中EntityUtils.toString(httpEntity) 这个被调用一次后就会自动销毁
BufferedReader in = new BufferedReader(new InputStreamReader(resp.getEntity().getContent(), "UTF-8"));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
String content = sb.toString();
response = JSONObject.parseObject(content, BaseResponse.class);
System.out.println("响应之后出参:====" + response);
logger.info("出参数据:====" + response);
//数据解密
String testdecData = null;
if (response.getCode() == 0){
try {
testdecData = HseEncAndDecUtil.sm4Decrypt(appId, appSecret, response.getEncData());
System.out.println("解密后的数据" + testdecData);
logger.info("解密后的出参数据:====" + testdecData);
response.setEncData(testdecData);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return response;
}
} else {
throw new ServiceException("电子处方网络请求失败");
}
client.close();
} catch (IOException e) {
throw new ServiceException("电子处方网络请求失败");
}
return response;
}
}

View File

@@ -1,179 +0,0 @@
package com.openhis.service.impl;
import static com.alibaba.fastjson.JSON.parseObject;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
import com.openhis.vo.BaseParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.openhis.config.InterfaceConfig;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
import com.openhis.pojo.TransBody;
import com.openhis.service.HandlerService;
import com.openhis.utils.BusnessIdUtil;
import com.openhis.utils.EasyGmUtils;
import com.openhis.utils.HttpClientUtil;
import com.openhis.utils.RedisUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.http.HttpRequest;
import lombok.extern.slf4j.Slf4j;
/**
* 医保交易
*/
@Component
@Slf4j
public abstract class HandlerServiceImpl implements HandlerService {
/**
* 中心接口配置
*/
@Autowired
protected InterfaceConfig interfaceConfig;
/**
* redis工具
*/
@Autowired
private RedisUtil redisUtil;
/**
* 多租户服务
*/
@Autowired
private BusnessIdUtil busnessIdUtil;
Logger logger = LoggerFactory.getLogger(HandlerServiceImpl.class);
@Override
public abstract ResultBody handle(InputData inputData, BaseParam baseParam);
@Override
public String initTransBody(String intNum, InputData inputData, BaseParam baseParam) {
// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// com.openhis.vo.LoginUser sysUser = loginUserUtil.getLoginUser();
// 从缓存中获取签到编号
String signNo = "";
if (redisUtil.hasKey("USER_SIGNNO:"+ baseParam.getBaseInfo().getAdmvs()+ ":" + baseParam.getBaseInfo().getUserId())) {
signNo = redisUtil.get("USER_SIGNNO:"+ baseParam.getBaseInfo().getAdmvs()+ ":" + baseParam.getBaseInfo().getUserId()).toString();
}
if("9001".equals(intNum)){
signNo = "";
}
logger.info("" + intNum + "】加密前的input====" + JSONObject.toJSONString(inputData));
System.out.println("" + intNum + "】加密前的input====" + JSONObject.toJSONString(inputData));
TransBody transBody = TransBody.builder().infno(intNum)
.msgid(busnessIdUtil.getMsgid(baseParam.getBaseInfo().getFixmedinsCode()))
.mdtrtareaAdmvs(baseParam.getBaseInfo().getAdmvs())
.insuplcAdmdvs(intNum.equals("9001") || intNum.equals("1101") || intNum.equals("3206A") || intNum.equals("3301") || intNum.equals("3302")|| intNum.equals("3203A") ? baseParam.getBaseInfo().getAdmvs()
: baseParam.getBaseInfo().getInsuplcAdmdvs())
.recerSysCode("sys01").devNo("").devSafeInfo("")
.cainfo(interfaceConfig.getIsEncrypt() ? sign(JSONObject.toJSONString(inputData),baseParam) : "")
.signtype(interfaceConfig.getIsEncrypt() ? "SM2" : "").infver("V1.0").opterType("1").encType("SM4")
.opter(baseParam.getBaseInfo().getUserId().toString()).opterName(baseParam.getBaseInfo().getRealname())
.infTime(DateUtil.now()).fixmedinsCode(baseParam.getBaseInfo().getFixmedinsCode())
.fixmedinsName(baseParam.getBaseInfo().getFixmedinsName()).signNo(signNo)
// .fixmedinsName(baseParam.getBaseInfo().getFixmedinsName()).signNo("220000202505210958500117447359")
.input(interfaceConfig.getIsEncrypt() ? encrypt(JSONObject.toJSONString(inputData),baseParam) : inputData).build();
System.out.println("" + intNum + "" + " 整体入参:====" + JSONObject.toJSONString(transBody));
logger.info("" + intNum + "】 整体入参:====" + JSONObject.toJSONString(transBody));
return JSONObject.toJSONString(transBody);
}
@Override
public Map<String, String> getHeader(BaseParam baseParam) {
Map<String, String> header = new HashMap();
header.put("Authorization", "Bearer " + this.getToken(baseParam));
header.put(HttpHeaders.CONTENT_TYPE, "application/json");
return header;
}
@Override
public ResultBody sendDatas(String url, String transBody, BaseParam baseParam) {
String result =
HttpRequest.post(url).addHeaders(getHeader(baseParam)).body(transBody).timeout(20000).execute().body();
System.out.println("解密之前医保返回出参:====" + result);
logger.info("解密之前医保返回出参:====" + result);
ResultBody resultBody = JSONObject.parseObject(result, ResultBody.class);
// 判断返回值是否需要解密
String decryptFlag = baseParam.getBaseInfo().getDecryptFlag();
if (interfaceConfig.getIsEncrypt()&&"1".equals(decryptFlag)) {
decrypt(resultBody,baseParam);
}
System.out.println("解密之后出参:====" + resultBody);
logger.info("解密之后出参:====" + resultBody);
return resultBody;
}
@Override
public String getToken(BaseParam baseParam) {
String accessToken = "";
Long userId = baseParam.getBaseInfo().getUserId();
if (redisUtil.hasKey("USER_TOKEN:USER_TOKEN_"+baseParam.getBaseInfo().getAdmvs()+ ":" + userId)) {
// 获取缓存
accessToken = String.valueOf(redisUtil.get("USER_TOKEN:USER_TOKEN_"+baseParam.getBaseInfo().getAdmvs()+ ":" + userId));
} else {
Map parmap = new HashMap<String, String>();
parmap.put("username", baseParam.getBaseInfo().getYbUsername());
parmap.put("password", baseParam.getBaseInfo().getYbPassword());
parmap.put("scope", baseParam.getBaseInfo().getYbScope());
parmap.put("grant_type", baseParam.getBaseInfo().getYbGrantType());
System.out.println(parmap);
Map headermap = new HashMap<String, String>();
headermap.put("Authorization", "Basic " + Base64.getEncoder().encodeToString(
(baseParam.getBaseInfo().getYbClientId() + ":" + baseParam.getBaseInfo().getYbClientSecret()).getBytes(StandardCharsets.UTF_8)));
headermap.put(HttpHeaders.CONTENT_TYPE, "application/x-www-form-urlencoded");
System.out.println(interfaceConfig.getAddress() + ServiceAdrEnum.TOKEN.getAddress());
String result = HttpClientUtil.sendIOPost(interfaceConfig.getAddress() + ServiceAdrEnum.TOKEN.getAddress(),
parmap, headermap, "utf8", null);
System.out.println(result);
accessToken = JSON.parseObject(result).getString("access_token");
// 数据插入缓存set中的参数含义key值user对象缓存存在时间10long类型时间单位
System.out.println("token:"+accessToken);
redisUtil.set("USER_TOKEN:USER_TOKEN_"+baseParam.getBaseInfo().getAdmvs()+ ":" + userId, accessToken, interfaceConfig.getTime());
log.info("数据插入缓存" + accessToken);
}
return accessToken;
}
private String sign(String signBody,BaseParam baseParam) {
byte[] prvKey = Base64.getDecoder().decode(baseParam.getBaseInfo().getYbCliPrvKey());
byte[] asig = EasyGmUtils.signSm3WithSm2(signBody.getBytes(StandardCharsets.UTF_8),
baseParam.getBaseInfo().getYbClientId().getBytes(StandardCharsets.UTF_8), prvKey);
String signStr = new String(Base64.getEncoder().encode(asig));
return signStr;
}
private String encrypt(String param,BaseParam baseParam) {
byte[] encrypt = param.getBytes();
byte[] bs = EasyGmUtils.sm4Encrypt(baseParam.getBaseInfo().getYbClientId().getBytes(StandardCharsets.UTF_8), encrypt);
String result = new String(Base64.getEncoder().encode(bs));
return result;
}
private void decrypt(ResultBody resultBody, BaseParam baseParam) {
System.out.println(JSON.toJSONString(resultBody));
byte[] result = EasyGmUtils.sm4Decrypt(baseParam.getBaseInfo().getYbClientId().getBytes(StandardCharsets.UTF_8),
Base64.getDecoder().decode(resultBody.getOutput()));
resultBody.setOutput(new String(result));
}
}

View File

@@ -1,341 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.service.impl;
import static com.alibaba.fastjson.JSON.parseObject;
import java.io.IOException;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.core.common.utils.SecurityUtils;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.itextpdf.text.DocumentException;
import com.openhis.common.constant.CommonConstants;
import com.openhis.common.enums.ybenums.YbDrugMedWay;
import com.openhis.common.enums.ybenums.YbGender;
import com.openhis.common.enums.ybenums.YbUsedFrqu;
import com.openhis.component.ElepHandlerIntDispatcher;
import com.openhis.config.InterfaceConfig;
import com.openhis.config.Tenant;
import com.openhis.enums.ElepServiceAdrEnum;
import com.openhis.pojo.RequestData;
import com.openhis.utils.PDFTemplateFillerUtil;
import com.openhis.utils.RedisUtil;
import com.openhis.vo.BaseInfo;
import com.openhis.vo.BaseParam;
import com.openhis.web.ybmanage.dto.PDFInputDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.openhis.domain.*;
import com.openhis.service.*;
import com.openhis.vo.Result;
/**
* @author yuxj
* @date 2025-04-17
*/
@Service
public class YbElepServiceImpl implements IYbElepService {
/**
* 接口分发器
*/
@Autowired
private ElepHandlerIntDispatcher elepHandlerIntDispatcher;
/**
* redis工具
*/
@Autowired
private RedisUtil redisUtil;
/**
* 中心接口配置
*/
@Autowired
protected InterfaceConfig interfaceConfig;
@Autowired
private Tenant tenant;
/**
* 电子处方上传预核验
*
* @param baseParam 处方信息
* @return 返回值
*/
public Result<?> preCheckPrescription(BaseParam baseParam) {
BaseInfo baseInfo = baseParam.getBaseInfo();
baseInfo.setAdmvs(baseInfo.getAdmvs()).setFixmedinsCode(baseInfo.getFixmedinsCode()).setFixmedinsName(baseInfo.getFixmedinsName());
PreCheckPrescription prescriptioninfo =
JSON.parseObject(JSON.toJSONString(baseParam.getData()), PreCheckPrescription.class);
// 调用分发器处理预核验业务
BaseResponse result = elepHandlerIntDispatcher.dispatcher(ElepServiceAdrEnum.A0001.toString(),
new RequestData(prescriptioninfo), baseParam);
// 检查服务调用是否成功
if (result.getCode() == 0) {
// 解析返回结果中的数据
ElepVeriPrescriptionOutput output = null;
try {
ObjectMapper objectMapper = new ObjectMapper();
output = objectMapper.readValue(result.getEncData(), ElepVeriPrescriptionOutput.class);
} catch (Exception e) {
Result.error("返回参数转换错误");
}
// 做成PDF
List<PDFInputDto.MedDetail> medDetailList = new ArrayList<>();
PDFInputDto.MedDetail medDetail;
String pattern = "\\s*\\([^)]*\\)$";
for (ElepVeriPrescriptionDetail item : prescriptioninfo.getRxdrugdetail()) {
medDetail = new PDFInputDto.MedDetail();
// 药品名字
medDetail.setMedName(item.getDrugGenname());
// 药品规格
medDetail.setDrugSpec(item.getDrugSpec() + " * " + item.getDrugCnt() + item.getDrugDosunt());
// 单次用量
medDetail.setSinDoscnt("每次" + item.getSinDoscnt());
// 单次剂量单
medDetail.setSinDosunt(item.getSinDosunt());
// 使用频次编码
medDetail.setUsedFrquCodg(YbUsedFrqu.getByValue(item.getUsedFrquCodg()).getDescription().replaceAll(pattern, ""));
// 用药途径
medDetail.setMedWay(YbDrugMedWay.getByValue(item.getMedcWayCodg()).getDescription());
medDetailList.add(medDetail);
}
// 主诊断名称
String diagName = prescriptioninfo.getDiseinfo().getDiagName();
// 做成原始PDF文件
PDFInputDto pdfInputDto = new PDFInputDto()
// 医保电子处方追溯码
.setRxTraceCode(output.getRxTraceCode())
// 机构名
.setOrgName(prescriptioninfo.getMdtrtinfo().getFixmedinsName())
// 门诊/住院病历号
.setIptOtpNo(prescriptioninfo.getMdtrtinfo().getIptOtpNo())
// 院内处方编号
.setPrescriptionNo(prescriptioninfo.getHospRxno())
// 科别/病区和床位
.setLocationName(prescriptioninfo.getMdtrtinfo().getPrscDeptName())
// 姓名
.setPatnName(prescriptioninfo.getMdtrtinfo().getPatnName())
// 性别
.setGender(YbGender.getByValue(prescriptioninfo.getMdtrtinfo().getGend()).getDescription())
// 年龄
.setPatnAge(new BigDecimal(prescriptioninfo.getMdtrtinfo().getPatnAge()))
// 费别
.setHiFeesetlType(baseInfo.getMedType())
// 开具日期
.setPrscTime(prescriptioninfo.getPrscTime())
// 临床诊断
.setDiagName(diagName)
// 处方有效天数
.setValiDays(new BigDecimal(prescriptioninfo.getValiDays()))
// 开方医师
.setPrscDrName(prescriptioninfo.getMdtrtinfo().getPrscDrName())
// 审核药师
.setPharName(baseInfo.getDutyDoctorName())
// 调配、复核药师
.setDisRevPharName(null)
// 核对、发药药师
.setCheckPharName(null)
// 延长处方用量原因
.setReason(null)
// 药品明细信息
.setMedDetailList(medDetailList);
// 获取当前日期
LocalDate currentDate = LocalDate.now();
// 定义格式yyyyMMdd
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
// 格式化日期
String formattedDate = currentDate.format(formatter);
//创建日期文件夹
Boolean pathFlg = PDFTemplateFillerUtil.makePath(baseInfo.getOutputPath(), formattedDate);
if (!pathFlg) {
return Result.error("创建文件夹时发生错误");
}
//pdf模板文件全路径
String templatePath = baseInfo.getTemplatePath();
//生成的pdf模板文件全路径
String outputPath = baseInfo.getOutputPath() + formattedDate + "\\" + prescriptioninfo.getHospRxno() + ".pdf";
//盖章全路径
String hospitalSealPath = baseInfo.getHospitalSealPath();
try {
PDFTemplateFillerUtil.fillPdfTemplate(templatePath, outputPath, hospitalSealPath, pdfInputDto);
System.out.println("PDF 填充完成,文件已保存到:" + outputPath);
} catch (IOException | DocumentException e) {
e.printStackTrace();
System.err.println("填充 PDF 时发生错误:" + e.getMessage());
return Result.error("填充 PDF 时发生错误:" + e.getMessage());
}
// 将pdf的名字保存
redisUtil.set("RxFileName", outputPath);
// 返回成功响应
return Result.ok("电子处方上传预核验成功!", output);
}
return Result.error(result.getMessage());
}
/**
* 电子处方医保电子签名
*
* @param baseParam 电子签名信息
* @return 返回值
*/
public Result<?> signature(BaseParam baseParam) {
BaseInfo baseInfo = baseParam.getBaseInfo();
baseInfo.setAdmvs(baseInfo.getAdmvs()).setFixmedinsCode(baseInfo.getFixmedinsCode()).setFixmedinsName(baseInfo.getFixmedinsName());
ElepSignatureInput signatureInput =
JSON.parseObject(JSON.toJSONString(baseParam.getData()), ElepSignatureInput.class);
String prescriptionNo = signatureInput.getPrescriptionNo();
signatureInput.setPrescriptionNo(null);
// 调用分发器处理电子签名业务
BaseResponse result = elepHandlerIntDispatcher.dispatcher(ElepServiceAdrEnum.A0002.toString(),
new RequestData(signatureInput), baseParam);
// 检查服务调用是否成功
if (result.getCode() == 0) {
// 解析返回结果中的数据
ElepSignatureOutput output =
parseObject(parseObject(result.getEncData()).toString(), ElepSignatureOutput.class);
LocalDate currentDate = LocalDate.now();
// 定义格式yyyyMMdd
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
// 格式化日期
String formattedDate = currentDate.format(formatter);
String folderPath = baseInfo.getOutputPath() + formattedDate + "\\"; // Windows 绝对路径,注意末尾的反斜杠
String fileName = prescriptionNo + ".pdf"; // 文件名由处方号拼接而成
// 拼接完整的文件路径
String filePath = folderPath + fileName;
// 做成PDF文件
boolean rxFileBool = PDFTemplateFillerUtil.makePDF(output.getRxFile(), filePath);
if (!rxFileBool) {
return Result.error("PDF文件做成失败");
}
// 返回成功响应
return Result.ok("电子处方医保电子签名成功!", output);
}
return Result.error(result.getMessage());
}
/**
* 电子处方上传
*
* @param baseParam 上传信息
* @return 返回值
*/
public Result<?> upload(BaseParam baseParam) {
BaseInfo baseInfo = baseParam.getBaseInfo();
baseInfo.setAdmvs(baseInfo.getAdmvs()).setFixmedinsCode(baseInfo.getFixmedinsCode()).setFixmedinsName(baseInfo.getFixmedinsName());
ElepUploadInput uploadInput =
JSON.parseObject(JSON.toJSONString(baseParam.getData()), ElepUploadInput.class);
// 调用分发器处理上传业务
BaseResponse result = elepHandlerIntDispatcher.dispatcher(ElepServiceAdrEnum.A0003.toString(),
new RequestData(uploadInput), baseParam);
// 检查服务调用是否成功
if (result.getCode() == 0) {
// 解析返回结果中的数据
ElepUploadOutput output = parseObject(parseObject(result.getEncData()).toString(), ElepUploadOutput.class);
// 返回成功响应
return Result.ok("电子处方上传成功!", output);
}
return Result.error(result.getMessage());
}
/**
* 电子处方撤销
*
* @param baseParam 撤销信息
* @return 返回值
*/
public Result<?> revoke(BaseParam baseParam) {
BaseInfo baseInfo = baseParam.getBaseInfo();
baseInfo.setAdmvs(baseInfo.getAdmvs()).setFixmedinsCode(baseInfo.getFixmedinsCode()).setFixmedinsName(baseInfo.getFixmedinsName());
ElepRevokeInput revokeInput =
JSON.parseObject(JSON.toJSONString(baseParam.getData()), ElepRevokeInput.class);
// 调用分发器处理上传业务
BaseResponse result = elepHandlerIntDispatcher.dispatcher(ElepServiceAdrEnum.A0004.toString(),
new RequestData(revokeInput), baseParam);
// 检查服务调用是否成功
if (result.getCode() == 0) {
// 解析返回结果中的数据
ElepRevokeOutput output = parseObject(parseObject(result.getEncData()).toString(), ElepRevokeOutput.class);
// 返回成功响应
return Result.ok("电子处方撤销成功!", output);
}
return Result.error(result.getMessage());
}
/**
* 电子处方信息查询
*
* @param baseParam 查询信息
* @return 返回值
*/
public Result<?> querPrescription(BaseParam baseParam) {
BaseInfo baseInfo = baseParam.getBaseInfo();
baseInfo.setAdmvs(baseInfo.getAdmvs()).setFixmedinsCode(baseInfo.getFixmedinsCode()).setFixmedinsName(baseInfo.getFixmedinsName());
ElepQuerPrescriptionInput querPrescriptionInput =
JSON.parseObject(JSON.toJSONString(baseParam.getData()), ElepQuerPrescriptionInput.class);
// (ElepQuerPrescriptionInput)baseParam.getData();
// 调用分发器处理信息查询业务
BaseResponse result = elepHandlerIntDispatcher.dispatcher(ElepServiceAdrEnum.A0005.toString(),
new RequestData(querPrescriptionInput), baseParam);
// 检查服务调用是否成功
if (result.getCode() == 0) {
// 解析返回结果中的数据
QueryPrescription output =
parseObject(parseObject(result.getEncData()).toString(), QueryPrescription.class);
// 返回成功响应
return Result.ok("电子处方信息查询成功!", output);
}
return Result.error(result.getMessage());
}
/**
* 电子处方取药结果查询
*
* @param baseParam 撤销信息
* @return 返回值
*/
public Result<?> medresult(BaseParam baseParam) {
BaseInfo baseInfo = baseParam.getBaseInfo();
baseInfo.setAdmvs(baseInfo.getAdmvs()).setFixmedinsCode(baseInfo.getFixmedinsCode()).setFixmedinsName(baseInfo.getFixmedinsName());
ElepMedresultInput medresultInput =
JSON.parseObject(JSON.toJSONString(baseParam.getData()), ElepMedresultInput.class);
// 调用分发器处理结果查询业务
BaseResponse result = elepHandlerIntDispatcher.dispatcher(ElepServiceAdrEnum.A0006.toString(),
new RequestData(medresultInput), baseParam);
// 检查服务调用是否成功
if (result.getCode() == 0) {
// 解析返回结果中的数据
MedicationResultInquiry output =
parseObject(parseObject(result.getEncData()).toString(), MedicationResultInquiry.class);
// 返回成功响应
return Result.ok("电子处方取药结果查询成功!", output);
}
return Result.error(result.getMessage());
}
}

View File

@@ -1,32 +0,0 @@
package com.openhis.service.impl.clinc;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 门诊就诊信息上传
*
* @author SunJQ
* @date 2025-05-07
*/
@Service
@HandlerInt(ServiceAdrEnum.C2203)
public class ClinicDiagInfoUpServiceImpl extends HandlerServiceImpl {
/**
* 处理交易
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.C2203.getAddress(),initTransBody(ServiceAdrEnum.C2203.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,30 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.service.impl.clinc;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
/**
* 费用明细撤销
*
* @author SunJQ
* @date 2025-05-07
*/
@Service
@HandlerInt(ServiceAdrEnum.C2205)
public class ClinicFeeDetailDelServiceImpl extends HandlerServiceImpl {
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ ServiceAdrEnum.C2205.getAddress(),initTransBody(ServiceAdrEnum.C2205.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,25 +0,0 @@
package com.openhis.service.impl.clinc;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 费用明细上传
*/
@Service
@HandlerInt(ServiceAdrEnum.C2204)
public class ClinicFeeDetailUpServiceImpl extends HandlerServiceImpl {
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.C2204.getAddress(),initTransBody(ServiceAdrEnum.C2204.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,29 +0,0 @@
package com.openhis.service.impl.clinc;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 门诊预结算
*/
@Service
@HandlerInt(ServiceAdrEnum.C2206)
public class ClinicPreSetlServiceImpl extends HandlerServiceImpl {
/**
* 处理交易
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.C2206.getAddress(),initTransBody(ServiceAdrEnum.C2206.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,29 +0,0 @@
package com.openhis.service.impl.clinc;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 撤销挂号接口
*/
@Service
@HandlerInt(ServiceAdrEnum.C2202)
public class ClinicReRegServiceImpl extends HandlerServiceImpl {
/**
* 处理交易
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.C2202.getAddress(),initTransBody(ServiceAdrEnum.C2202.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,29 +0,0 @@
package com.openhis.service.impl.clinc;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 门诊反结
*/
@Service
@HandlerInt(ServiceAdrEnum.C2208)
public class ClinicReSetlServiceImpl extends HandlerServiceImpl {
/**
* 处理交易
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.C2208.getAddress(),initTransBody(ServiceAdrEnum.C2208.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,35 +0,0 @@
package com.openhis.service.impl.clinc;
import com.alibaba.fastjson2.JSON;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 挂号接口
*/
@Service
@HandlerInt(ServiceAdrEnum.C2201)
public class ClinicRegServiceImpl extends HandlerServiceImpl {
Logger logger = LoggerFactory.getLogger(ClinicRegServiceImpl.class);
/**
* 处理交易
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
logger.info(ServiceAdrEnum.C2201.getDescription()+" : "+ JSON.toJSONString(inputData));
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.C2201.getAddress(),initTransBody(ServiceAdrEnum.C2201.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,29 +0,0 @@
package com.openhis.service.impl.clinc;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 门诊结算
*/
@Service
@HandlerInt(ServiceAdrEnum.C2207)
public class ClinicSetlServiceImpl extends HandlerServiceImpl {
/**
* 处理交易
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.C2207.getAddress(),initTransBody(ServiceAdrEnum.C2207.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,32 +0,0 @@
package com.openhis.service.impl.common;
import com.core.common.utils.SecurityUtils;
import com.openhis.common.constant.CommonConstants;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.ElepHandlerInt;
import com.openhis.domain.BaseResponse;
import com.openhis.enums.ElepServiceAdrEnum;
import com.openhis.pojo.RequestData;
import com.openhis.service.impl.ElepHandlerServiceImpl;
/**
* 电子处方取药结果查询
*/
@ElepHandlerInt(ElepServiceAdrEnum.A0006)
@Service
public class MedresultServiceImpl extends ElepHandlerServiceImpl {
/**
* 处理交易
* @param requestData 请求信息
* @return
*/
@Override
public BaseResponse elepHandle(RequestData requestData, BaseParam baseParam){
String eleAddress = baseParam.getBaseInfo().getEleAddress();
return sendDatas(eleAddress+ ElepServiceAdrEnum.A0006.getAddress(),initTransBody(ElepServiceAdrEnum.A0006.getNum(),requestData,baseParam),baseParam);
}
}

View File

@@ -1,37 +0,0 @@
package com.openhis.service.impl.common;
import com.core.common.utils.SecurityUtils;
import com.openhis.annotation.ElepHandlerInt;
import com.openhis.common.constant.CommonConstants;
import com.openhis.domain.BaseResponse;
import com.openhis.enums.ElepServiceAdrEnum;
import com.openhis.pojo.RequestData;
import com.openhis.service.impl.ElepHandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
import com.openhis.service.impl.HandlerServiceImpl;
/**
* 电子处方上传预核验接口
*/
@ElepHandlerInt(ElepServiceAdrEnum.A0001)
@Service
public class PreCheckPrescriptionServiceImpl extends ElepHandlerServiceImpl {
/**
* 处理交易
* @param requestData 请求信息
* @return
*/
@Override
public BaseResponse elepHandle(RequestData requestData, BaseParam baseParam){
String eleAddress = baseParam.getBaseInfo().getEleAddress();
return sendDatas(eleAddress+ ElepServiceAdrEnum.A0001.getAddress(),initTransBody(ElepServiceAdrEnum.A0001.getNum(),requestData, baseParam), baseParam);
}
}

View File

@@ -1,32 +0,0 @@
package com.openhis.service.impl.common;
import com.core.common.utils.SecurityUtils;
import com.openhis.common.constant.CommonConstants;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.ElepHandlerInt;
import com.openhis.domain.BaseResponse;
import com.openhis.enums.ElepServiceAdrEnum;
import com.openhis.pojo.RequestData;
import com.openhis.service.impl.ElepHandlerServiceImpl;
/**
* 电子处方信息查询
*/
@ElepHandlerInt(ElepServiceAdrEnum.A0005)
@Service
public class QuerPrescriptionServiceImpl extends ElepHandlerServiceImpl {
/**
* 处理交易
* @param requestData 请求信息
* @return
*/
@Override
public BaseResponse elepHandle(RequestData requestData, BaseParam baseParam){
String eleAddress = baseParam.getBaseInfo().getEleAddress();
return sendDatas(eleAddress+ ElepServiceAdrEnum.A0005.getAddress(),initTransBody(ElepServiceAdrEnum.A0005.getNum(),requestData, baseParam), baseParam);
}
}

View File

@@ -1,32 +0,0 @@
package com.openhis.service.impl.common;
import com.core.common.utils.SecurityUtils;
import com.openhis.common.constant.CommonConstants;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.ElepHandlerInt;
import com.openhis.domain.BaseResponse;
import com.openhis.enums.ElepServiceAdrEnum;
import com.openhis.pojo.RequestData;
import com.openhis.service.impl.ElepHandlerServiceImpl;
/**
* 电子处方撤销
*/
@ElepHandlerInt(ElepServiceAdrEnum.A0004)
@Service
public class RevokeServiceImpl extends ElepHandlerServiceImpl {
/**
* 处理交易
* @param requestData 请求信息
* @return
*/
@Override
public BaseResponse elepHandle(RequestData requestData, BaseParam baseParam){
String eleAddress = baseParam.getBaseInfo().getEleAddress();
return sendDatas(eleAddress+ElepServiceAdrEnum.A0004.getAddress(),initTransBody(ElepServiceAdrEnum.A0004.getNum(),requestData, baseParam), baseParam);
}
}

View File

@@ -1,32 +0,0 @@
package com.openhis.service.impl.common;
import com.core.common.utils.SecurityUtils;
import com.openhis.common.constant.CommonConstants;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.ElepHandlerInt;
import com.openhis.domain.BaseResponse;
import com.openhis.enums.ElepServiceAdrEnum;
import com.openhis.pojo.RequestData;
import com.openhis.service.impl.ElepHandlerServiceImpl;
/**
* 电子处方医保电子签名
*/
@ElepHandlerInt(ElepServiceAdrEnum.A0002)
@Service
public class SignatureServiceImpl extends ElepHandlerServiceImpl {
/**
* 处理交易
* @param requestData 请求信息
* @return
*/
@Override
public BaseResponse elepHandle(RequestData requestData, BaseParam baseParam){
String eleAddress = baseParam.getBaseInfo().getEleAddress();
return sendDatas(eleAddress+ElepServiceAdrEnum.A0002.getAddress(),initTransBody(ElepServiceAdrEnum.A0002.getNum(),requestData, baseParam), baseParam);
}
}

View File

@@ -1,33 +0,0 @@
package com.openhis.service.impl.common;
import com.core.common.utils.SecurityUtils;
import com.openhis.common.constant.CommonConstants;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.ElepHandlerInt;
import com.openhis.domain.BaseResponse;
import com.openhis.enums.ElepServiceAdrEnum;
import com.openhis.pojo.RequestData;
import com.openhis.service.impl.ElepHandlerServiceImpl;
/**
* 电子处方上传
*/
@ElepHandlerInt(ElepServiceAdrEnum.A0003)
@Service
public class UploadServiceImpl extends ElepHandlerServiceImpl {
/**
* 处理交易
*
* @param requestData 请求信息
* @return
*/
@Override
public BaseResponse elepHandle(RequestData requestData, BaseParam baseParam) {
String eleAddress = baseParam.getBaseInfo().getEleAddress();
return sendDatas(eleAddress + ElepServiceAdrEnum.A0003.getAddress(), initTransBody(ElepServiceAdrEnum.A0003.getNum(), requestData, baseParam), baseParam);
}
}

View File

@@ -1,29 +0,0 @@
package com.openhis.service.impl.directory;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 药品目录对照上传
*/
@HandlerInt(ServiceAdrEnum.P3301)
@Service
public class DrugContrastUpServiceImpl extends HandlerServiceImpl {
/**
*
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.P3301.getAddress(),initTransBody(ServiceAdrEnum.P3301.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,29 +0,0 @@
package com.openhis.service.impl.directory;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 目录对照撤销
*/
@HandlerInt(ServiceAdrEnum.P3302)
@Service
public class RepealDrugContrastUpServiceImpl extends HandlerServiceImpl {
/**
* 处理交易
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.P3302.getAddress(),initTransBody(ServiceAdrEnum.P3302.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,28 +0,0 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.service.impl.down;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
/**
* TODO:目录下载服务
*
* @author SunJQ
* @date 2025-03-25
*/
@Service
@HandlerInt(ServiceAdrEnum.D1301)
public class DownloadServiceImpl extends HandlerServiceImpl {
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam) {
ServiceAdrEnum anEnum = ServiceAdrEnum.getEnum(inputData.getData().toString());
return sendDatas(interfaceConfig.getAddress()+anEnum.getAddress(),initTransBody(anEnum.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,29 +0,0 @@
package com.openhis.service.impl.drugstore;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 药店预结算
*/
@Service
@HandlerInt(ServiceAdrEnum.D2101)
public class DrugPreSetlServiceImpl extends HandlerServiceImpl {
/**
* 处理交易
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.D2101.getAddress(),initTransBody(ServiceAdrEnum.D2101.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,29 +0,0 @@
package com.openhis.service.impl.drugstore;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 药店结算撤销
*/
@Service
@HandlerInt(ServiceAdrEnum.D2103)
public class DrugReSetlServiceImpl extends HandlerServiceImpl {
/**
* 处理交易
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.D2103.getAddress(),initTransBody(ServiceAdrEnum.D2103.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,29 +0,0 @@
package com.openhis.service.impl.drugstore;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 药店结算
*/
@Service
@HandlerInt(ServiceAdrEnum.D2102)
public class DrugSetlServiceImpl extends HandlerServiceImpl {
/**
* 处理交易
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.D2102.getAddress(),initTransBody(ServiceAdrEnum.D2102.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,29 +0,0 @@
package com.openhis.service.impl.filing;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 人员定点备案撤销
*/
@Service
@HandlerInt(ServiceAdrEnum.F2505)
public class FixmedinsServiceImpl extends HandlerServiceImpl {
/**
*
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.F2505.getAddress(),initTransBody(ServiceAdrEnum.F2505.getNum(),inputData, baseParam),baseParam);
}
}

View File

@@ -1,29 +0,0 @@
package com.openhis.service.impl.filing;
import com.openhis.service.impl.HandlerServiceImpl;
import com.openhis.vo.BaseParam;
import org.springframework.stereotype.Service;
import com.openhis.annotation.HandlerInt;
import com.openhis.enums.ServiceAdrEnum;
import com.openhis.pojo.InputData;
import com.openhis.pojo.ResultBody;
/**
* 人员定点备案撤销
*/
@Service
@HandlerInt(ServiceAdrEnum.F2506)
public class ReFixmedinsServiceImpl extends HandlerServiceImpl {
/**
* 处理交易
* @param inputData
* @return
*/
@Override
public ResultBody handle(InputData inputData, BaseParam baseParam){
return sendDatas(interfaceConfig.getAddress()+ServiceAdrEnum.F2506.getAddress(),initTransBody(ServiceAdrEnum.F2506.getNum(),inputData, baseParam),baseParam);
}
}

Some files were not shown because too many files have changed in this diff Show More