From 701b75590ebbdefbee9d7cc1118a5f658a9ddb6f Mon Sep 17 00:00:00 2001 From: jiangs <373297395@qq.com> Date: Wed, 5 Aug 2026 09:08:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E5=8F=89=E9=85=8D=E8=A1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bus/constants/BloodSysLogConstants.java | 1 + .../bus/mapper/XkSampleInfoMapper.java | 3 + .../com/czblood/bus/pojo/XkBloodInfo.java | 69 +++++++++++ .../com/czblood/bus/pojo/XkMatchDetail.java | 53 ++++++++ .../com/czblood/bus/pojo/XkMatchMain.java | 39 ++++++ .../resources/mapper/XkSampleInfoMapper.xml | 7 ++ .../controller/CheckBloodTypeController.java | 6 +- .../controller/MatchBloodController.java | 32 +++++ .../busBloodbank/mapper/MatchBloodMapper.java | 12 ++ .../service/MatchBloodService.java | 8 ++ .../service/impl/MatchBloodServiceImpl.java | 57 +++++++++ .../busBloodbank/utils/MatchBloodUtil.java | 40 ++++++ .../resources/mapper/MatchBloodMapper.xml | 39 ++++++ sql/updatedb_blood.sql | 77 ------------ sql/updatedb_blood_pk.sql | 115 ++++++++++++++++++ 15 files changed, 480 insertions(+), 78 deletions(-) create mode 100644 blood_bus/src/main/java/com/czblood/bus/pojo/XkBloodInfo.java create mode 100644 blood_bus/src/main/java/com/czblood/bus/pojo/XkMatchDetail.java create mode 100644 blood_bus/src/main/java/com/czblood/bus/pojo/XkMatchMain.java create mode 100644 blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/MatchBloodController.java create mode 100644 blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/MatchBloodMapper.java create mode 100644 blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/MatchBloodService.java create mode 100644 blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/MatchBloodServiceImpl.java create mode 100644 blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/utils/MatchBloodUtil.java create mode 100644 blood_bus_bloodbank/src/main/resources/mapper/MatchBloodMapper.xml create mode 100644 sql/updatedb_blood_pk.sql diff --git a/blood_bus/src/main/java/com/czblood/bus/constants/BloodSysLogConstants.java b/blood_bus/src/main/java/com/czblood/bus/constants/BloodSysLogConstants.java index 0568d59..f132a4e 100644 --- a/blood_bus/src/main/java/com/czblood/bus/constants/BloodSysLogConstants.java +++ b/blood_bus/src/main/java/com/czblood/bus/constants/BloodSysLogConstants.java @@ -13,4 +13,5 @@ public class BloodSysLogConstants { public static final String LOG_TYPE_SEARCH_TRANSFUSEBILL_INFO = "申请单扫描登记"; public static final String LOG_TYPE_ACCEPT_SAMPLE_INFO = "标本接收"; public static final String LOG_TYPE_SEND_SAMPLE_INFO = "标本送检"; + public static final String LOG_TYPE_CHECK_BLOOD_TYPE = "血型复核"; } diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkSampleInfoMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkSampleInfoMapper.java index 91fbc4d..bab3920 100644 --- a/blood_bus/src/main/java/com/czblood/bus/mapper/XkSampleInfoMapper.java +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkSampleInfoMapper.java @@ -2,8 +2,11 @@ package com.czblood.bus.mapper; import com.czblood.bus.pojo.XkSampleInfo; +import java.util.List; + public interface XkSampleInfoMapper { XkSampleInfo queryOne(String sampleNo); void insert(XkSampleInfo xkSampleInfo); void update(XkSampleInfo xkSampleInfo); + List queryList(XkSampleInfo xkSampleInfo); } diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkBloodInfo.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkBloodInfo.java new file mode 100644 index 0000000..f3b30b5 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkBloodInfo.java @@ -0,0 +1,69 @@ +package com.czblood.bus.pojo; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("血液信息") +public class XkBloodInfo { + @ApiModelProperty("血液流水号") + private String blood_no; + @ApiModelProperty("产品码") + private String product_no; + @ApiModelProperty("血液批次") + private String blood_batch; + @ApiModelProperty("献血证号") + private String donor_no; + @ApiModelProperty("献血流水号") + private String donblood_no; + @ApiModelProperty("血液品种") + private String blood_breed; + @ApiModelProperty("血型") + private String blood_type; + @ApiModelProperty("RH血型") + private String rh_blood_type; + @ApiModelProperty("容量") + private BigDecimal capacity; + @ApiModelProperty("单位") + private String unit; + @ApiModelProperty("采集日期") + private Date pick_date; + @ApiModelProperty("制备日期") + private Date produce_date; + @ApiModelProperty("有效期日期") + private Date valid_date; + @ApiModelProperty("血袋种类") + private String blood_bag_kind; + @ApiModelProperty("血袋规格") + private String blood_bag_spec; + @ApiModelProperty("血袋号") + private String blood_bag_no; + @ApiModelProperty("血袋生成批号") + private String blood_bag_batch; + @ApiModelProperty("血液状态") + private String blood_status; + @ApiModelProperty("特殊处理") + private String special_deal; + @ApiModelProperty("医院ID") + private String hos_id; + @ApiModelProperty("血液来源") + private String blood_source; + @ApiModelProperty("自编号") + private String auto_no; + @ApiModelProperty("血液分类") + private String blood_sort; + @ApiModelProperty("最后修改时间") + private Date last_modified; + private String abnor_sign; + private String recycle_sign; + private String Remark; +} diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkMatchDetail.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkMatchDetail.java new file mode 100644 index 0000000..36a5630 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkMatchDetail.java @@ -0,0 +1,53 @@ +package com.czblood.bus.pojo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("交叉配血明细表") +public class XkMatchDetail { + private String bill_no; + private Integer sid; + private String hos_id; + @ApiModelProperty("血液流水号") + private String blood_no; + @ApiModelProperty("供者血型正定复核") + private String check_offer_abo; + @ApiModelProperty("供者血型反定复核") + private String check_offer_fabo; + @ApiModelProperty("供者血型正定结论") + private String offer_affirm_abo; + @ApiModelProperty("复核供者Rh(D)") + private String check_offer_rh; + @ApiModelProperty("配血医师") + private String match_medic; + @ApiModelProperty("复核医师") + private String second_match_medic; + @ApiModelProperty("配血日期") + private java.util.Date match_date; + @ApiModelProperty("配血方法") + private String match_method; + @ApiModelProperty("复核配血方法") + private String check_method; + @ApiModelProperty("主侧") + private String first_side; + @ApiModelProperty("次侧") + private String second_side; + @ApiModelProperty("配血结果") + private String result; + private String add_sign; + @ApiModelProperty("延迟天数") + private Integer delay_day; + @ApiModelProperty("延迟标志") + private Integer delay_sign; + private String product_no; + private String position_blood; + private String position_barcode; +} diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkMatchMain.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkMatchMain.java new file mode 100644 index 0000000..01dff67 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkMatchMain.java @@ -0,0 +1,39 @@ +package com.czblood.bus.pojo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("交叉配血") +public class XkMatchMain { + private String bill_no; + private String hos_id; + private String beinhos_id; + private String patient_name; + private String dept_id; + @ApiModelProperty("申请单号") + private String apply_no; + @ApiModelProperty("血型复核单号") + private String check_no; + @ApiModelProperty("条码号") + private String sample_id; + @ApiModelProperty("检验日期") + private Date test_date; + @ApiModelProperty("单据状态") + private String bill_status; + @ApiModelProperty("是否配型") + private String match_sign; + private String remark; + @ApiModelProperty("录入人") + private String input_person; + @ApiModelProperty("录入时间") + private Date input_date; + private Date last_modified; +} diff --git a/blood_bus/src/main/resources/mapper/XkSampleInfoMapper.xml b/blood_bus/src/main/resources/mapper/XkSampleInfoMapper.xml index c6415e2..2a46e75 100644 --- a/blood_bus/src/main/resources/mapper/XkSampleInfoMapper.xml +++ b/blood_bus/src/main/resources/mapper/XkSampleInfoMapper.xml @@ -92,4 +92,11 @@ + \ No newline at end of file diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/CheckBloodTypeController.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/CheckBloodTypeController.java index 0d771cb..605e2b9 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/CheckBloodTypeController.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/CheckBloodTypeController.java @@ -1,12 +1,14 @@ package com.czblood.busBloodbank.controller; -import com.czblood.bus.pojo.XkCheckBloodtype; +import com.czblood.bus.constants.BloodSysLogConstants; import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO; import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO; import com.czblood.busBloodbank.service.CheckBloodTypeService; +import com.czblood.common.annotation.Log; import com.czblood.common.core.controller.BaseController; import com.czblood.common.core.domain.Result; import com.czblood.common.core.page.TableDataInfo; +import com.czblood.common.enums.BusinessType; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; @@ -35,12 +37,14 @@ public class CheckBloodTypeController extends BaseController { return checkBloodTypeService.queryOne(billNo); } + @Log(title = BloodSysLogConstants.LOG_TYPE_CHECK_BLOOD_TYPE, businessType = BusinessType.INSERT) @ApiOperation("保存数据") @PostMapping("/saveData") public Result saveData(@RequestBody XkCheckBloodtypeVO xkCheckBloodtypeVO){ return checkBloodTypeService.saveData(xkCheckBloodtypeVO); } + @Log(title = BloodSysLogConstants.LOG_TYPE_CHECK_BLOOD_TYPE, businessType = BusinessType.DELETE) @ApiOperation("删除数据") @GetMapping("/delCheckBloodTypeInfo") public Result delCheckBloodTypeInfo(String billNo){ diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/MatchBloodController.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/MatchBloodController.java new file mode 100644 index 0000000..5beb83c --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/MatchBloodController.java @@ -0,0 +1,32 @@ +package com.czblood.busBloodbank.controller; + +import com.czblood.busBloodbank.service.MatchBloodService; +import com.czblood.common.core.domain.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@Api(tags = "交叉配血") +@RestController +@RequestMapping("/bus/bloodbank/matchBlood") +public class MatchBloodController { + + @Resource + MatchBloodService matchBloodService; + + @ApiOperation("获取单条数据") + @GetMapping("/queryOne") + public Result queryOne(String billNo){ + return matchBloodService.queryOne(billNo); + } + + @ApiOperation("获取待处理单据") + @GetMapping("/queryWaitInfo") + public Result queryWaitInfo(){ + return matchBloodService.queryWaitInfo(); + } +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/MatchBloodMapper.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/MatchBloodMapper.java new file mode 100644 index 0000000..51f8109 --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/MatchBloodMapper.java @@ -0,0 +1,12 @@ +package com.czblood.busBloodbank.mapper; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +public interface MatchBloodMapper { + List> queryWaitInfo(); + int checkMatchBloodNotOut(String billNo); + int queryCheckBloodTypeCount(String applyNo); + Date querySampleMaxDate(String applyNo); +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/MatchBloodService.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/MatchBloodService.java new file mode 100644 index 0000000..055ed32 --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/MatchBloodService.java @@ -0,0 +1,8 @@ +package com.czblood.busBloodbank.service; + +import com.czblood.common.core.domain.Result; + +public interface MatchBloodService { + Result queryWaitInfo(); + Result queryOne(String billNo); +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/MatchBloodServiceImpl.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/MatchBloodServiceImpl.java new file mode 100644 index 0000000..9d6e7ab --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/MatchBloodServiceImpl.java @@ -0,0 +1,57 @@ +package com.czblood.busBloodbank.service.impl; + +import com.czblood.bus.mapper.XkTransfuseApplyMapper; +import com.czblood.bus.pojo.XkTransfuseApply; +import com.czblood.busBloodbank.mapper.MatchBloodMapper; +import com.czblood.busBloodbank.service.MatchBloodService; +import com.czblood.busBloodbank.utils.MatchBloodUtil; +import com.czblood.common.core.domain.Result; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service +public class MatchBloodServiceImpl implements MatchBloodService { + + @Resource + private MatchBloodMapper matchBloodMapper; + @Resource + XkTransfuseApplyMapper xkTransfuseApplyMapper; + @Resource + MatchBloodUtil matchBloodUtil; + + @Override + public Result queryWaitInfo() { + List> mapList = matchBloodMapper.queryWaitInfo(); + return new Result("0","获取数据成功!",mapList); + } + + @Override + public Result queryOne(String billNo) { + XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(billNo); + if(xkTransfuseApply == null) return new Result("-1","没有获取到申请单数据!"); + if(!xkTransfuseApply.getBill_sort().equals("B")) return new Result("-1","该申请单无需配血!"); + String billStatus = xkTransfuseApply.getBill_stasus(); + switch (billStatus){ + case "C": + return new Result("-1","该申请单已配血!"); + case "Z": + return new Result("-1","该申请单已经作废!"); + case "S": + return new Result("-1","该申请单已经追加配血,可直接在临床发血中发血!"); + case "D": + if(matchBloodMapper.checkMatchBloodNotOut(billNo) > 0) return new Result("-1","检测到该申请单尚有配好的血液未出库,请先出库再进行配血!"); + case "BD": + return new Result("-1","该申请单为补单,若要配血,请先复核血型!"); + case "B": + if(matchBloodMapper.queryCheckBloodTypeCount(billNo) <= 0) return new Result("-1","该申请单尚未复核血型,请先复核血型!"); + case "A": + return new Result("-1","该申请单尚未审核,请先审核!"); + } + Result result = matchBloodUtil.checkSampleValid(billNo); + if(result.getCode().equals("-1")) return result; + return null; + } +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/utils/MatchBloodUtil.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/utils/MatchBloodUtil.java new file mode 100644 index 0000000..b7bc3b7 --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/utils/MatchBloodUtil.java @@ -0,0 +1,40 @@ +package com.czblood.busBloodbank.utils; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import com.czblood.bus.mapper.XkSampleInfoMapper; +import com.czblood.bus.pojo.XkSampleInfo; +import com.czblood.bus.utils.BloodBankUtil; +import com.czblood.busBloodbank.mapper.MatchBloodMapper; +import com.czblood.common.core.domain.Result; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Date; + +@Component +public class MatchBloodUtil { + + @Resource + BloodBankUtil bloodBankUtil; + @Resource + MatchBloodMapper matchBloodMapper; + + public Result checkSampleValid(String applyNo){ + //xkSampleInfoMapper.queryOne() + //当标本采集时间与发血时间的间隔大于本参数时进行相应的操作 + String overstepDay = bloodBankUtil.getParameterValue("overstep_day"); + Date validDate = null; + if(overstepDay != null && !overstepDay.equals("")){ + validDate = DateUtil.offsetDay(bloodBankUtil.getCurrentTimeDate(),-Integer.parseInt(overstepDay)); + } + Date maxPickDate = matchBloodMapper.querySampleMaxDate(applyNo); + if (validDate != null && validDate.compareTo(maxPickDate) > 0) { + //当标本采集时间与发血时间的间隔大于“overstep_day”参数值时,执行本参数定义的操作。‘0’不操作、‘1’提醒、‘2’禁止发血 + String overstepOperate = bloodBankUtil.getParameterValue("overstep_operate"); + if (overstepOperate.equals("1")) return new Result("1", "请注意,标本时间已经超过了设定的有效天数"); + if (overstepOperate.equals("2")) return new Result("-1", "标本时间已经超过了设定的有效天数,不可以继续操作!"); + } + return new Result("0","校验通过!"); + } +} diff --git a/blood_bus_bloodbank/src/main/resources/mapper/MatchBloodMapper.xml b/blood_bus_bloodbank/src/main/resources/mapper/MatchBloodMapper.xml new file mode 100644 index 0000000..013383f --- /dev/null +++ b/blood_bus_bloodbank/src/main/resources/mapper/MatchBloodMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + \ No newline at end of file diff --git a/sql/updatedb_blood.sql b/sql/updatedb_blood.sql index 1581018..e265c0e 100644 --- a/sql/updatedb_blood.sql +++ b/sql/updatedb_blood.sql @@ -47,19 +47,6 @@ if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_t go -IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_apply_before' AND type = 'PK' ) - BEGIN - ALTER TABLE xk_transfuse_apply_before ADD CONSTRAINT PK_xk_transfuse_apply_before PRIMARY KEY CLUSTERED (bill_no); - END -GO - - -IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_apply_testitem' AND type = 'PK' ) - BEGIN - ALTER TABLE xk_transfuse_apply_testitem ADD CONSTRAINT PK_xk_transfuse_apply_testitem PRIMARY KEY CLUSTERED (bill_no,sid); - END -GO - if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_transfuse_apply' AND COLUMN_NAME = 'assess_bill_no') BEGIN alter table xk_transfuse_apply add assess_bill_no varchar(30) @@ -371,33 +358,12 @@ if not exists(select 1 from dbo.xk_dmzd where wordbook_sign = 'BASE') END -IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_dmzd' AND type = 'PK' ) - BEGIN - ALTER TABLE xk_dmzd ADD CONSTRAINT PK_xk_dmzd PRIMARY KEY CLUSTERED (wordbook_sign,wordbook_code); - END -GO - - -IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_patient_info' AND type = 'PK' ) - BEGIN - ALTER TABLE xk_patient_info ADD CONSTRAINT PK_xk_patient_info PRIMARY KEY CLUSTERED (beinhos_id); - END -GO - if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_transfuse_apply_before' AND COLUMN_NAME = 'bill_status') begin alter table xk_transfuse_apply_before add bill_status varchar(10) end go - -IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_hos_info' AND type = 'PK' ) - BEGIN - ALTER TABLE xk_hos_info ADD CONSTRAINT PK_xk_hos_info PRIMARY KEY CLUSTERED (hospital_code); - END -GO - - IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'UQ_sys_user_user_name' AND type = 'UQ') BEGIN ALTER TABLE sys_user ADD CONSTRAINT UQ_sys_user_user_name UNIQUE(user_name); @@ -472,43 +438,12 @@ if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_p end go -IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_parameter' AND type = 'PK' ) - BEGIN - ALTER TABLE xk_parameter ADD CONSTRAINT PK_xk_parameter PRIMARY KEY CLUSTERED (parameter_code); - END -GO - - -IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_apply_approval' AND type = 'PK' ) - BEGIN - ALTER TABLE xk_transfuse_apply_approval ADD CONSTRAINT PK_xk_transfuse_apply_approval PRIMARY KEY CLUSTERED (bill_no); - END -GO - -IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_blood_apply_trans' AND type = 'PK' ) - BEGIN - ALTER TABLE xk_blood_apply_trans ADD CONSTRAINT PK_xk_blood_apply_trans PRIMARY KEY CLUSTERED (blood_breed,sid); - END -GO - - -IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_apply_causalis' AND type = 'PK' ) - BEGIN - ALTER TABLE xk_transfuse_apply_causalis ADD CONSTRAINT PK_xk_transfuse_apply_causalis PRIMARY KEY CLUSTERED (bill_no,Causalis_Code); - END -GO - if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'sys_dept' AND COLUMN_NAME = 'dept_type') begin alter table sys_dept add dept_type varchar(10) end go -IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_apply_bloodbreed' AND type = 'PK' ) - BEGIN - ALTER TABLE xk_transfuse_apply_bloodbreed ADD CONSTRAINT PK_xk_transfuse_apply_bloodbreed PRIMARY KEY CLUSTERED (bill_no,blood_breed); - END -GO if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_transfuse_apply' AND COLUMN_NAME = 'check_date') BEGIN @@ -521,15 +456,3 @@ if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_s alter table xk_search_transfuse_bill add hos_id varchar(10) END GO - -IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_sample_info' AND type = 'PK' ) - BEGIN - ALTER TABLE xk_sample_info ADD CONSTRAINT PK_xk_sample_info PRIMARY KEY CLUSTERED (Sample_No); - END -GO - -IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_check_bloodtype' AND type = 'PK' ) - BEGIN - ALTER TABLE xk_check_bloodtype ADD CONSTRAINT PK_xk_check_bloodtype PRIMARY KEY CLUSTERED (bill_no); - END -GO \ No newline at end of file diff --git a/sql/updatedb_blood_pk.sql b/sql/updatedb_blood_pk.sql new file mode 100644 index 0000000..205c2ae --- /dev/null +++ b/sql/updatedb_blood_pk.sql @@ -0,0 +1,115 @@ +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_apply_before' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_transfuse_apply_before ADD CONSTRAINT PK_xk_transfuse_apply_before PRIMARY KEY CLUSTERED (bill_no); + END +GO + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_apply_testitem' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_transfuse_apply_testitem ADD CONSTRAINT PK_xk_transfuse_apply_testitem PRIMARY KEY CLUSTERED (bill_no,sid); + END +GO + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_dmzd' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_dmzd ADD CONSTRAINT PK_xk_dmzd PRIMARY KEY CLUSTERED (wordbook_sign,wordbook_code); + END +GO + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_patient_info' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_patient_info ADD CONSTRAINT PK_xk_patient_info PRIMARY KEY CLUSTERED (beinhos_id); + END +GO + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_hos_info' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_hos_info ADD CONSTRAINT PK_xk_hos_info PRIMARY KEY CLUSTERED (hospital_code); + END +GO + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_parameter' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_parameter ADD CONSTRAINT PK_xk_parameter PRIMARY KEY CLUSTERED (parameter_code); + END +GO + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_apply_approval' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_transfuse_apply_approval ADD CONSTRAINT PK_xk_transfuse_apply_approval PRIMARY KEY CLUSTERED (bill_no); + END +GO + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_blood_apply_trans' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_blood_apply_trans ADD CONSTRAINT PK_xk_blood_apply_trans PRIMARY KEY CLUSTERED (blood_breed,sid); + END +GO + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_apply_causalis' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_transfuse_apply_causalis ADD CONSTRAINT PK_xk_transfuse_apply_causalis PRIMARY KEY CLUSTERED (bill_no,Causalis_Code); + END +GO + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_apply_bloodbreed' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_transfuse_apply_bloodbreed ADD CONSTRAINT PK_xk_transfuse_apply_bloodbreed PRIMARY KEY CLUSTERED (bill_no,blood_breed); + END +GO + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_sample_info' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_sample_info ADD CONSTRAINT PK_xk_sample_info PRIMARY KEY CLUSTERED (Sample_No); + END +GO + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_check_bloodtype' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_check_bloodtype ADD CONSTRAINT PK_xk_check_bloodtype PRIMARY KEY CLUSTERED (bill_no); + END +GO + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_match_main' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_match_main ADD CONSTRAINT PK_xk_match_main PRIMARY KEY CLUSTERED (bill_no); + END +GO + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_blood_info' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_blood_info ADD CONSTRAINT PK_xk_blood_info PRIMARY KEY CLUSTERED (blood_no,product_no); + END +GO + +ALTER TABLE xk_match_detail ALTER COLUMN product_no VARCHAR(18) NOT NULL; +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_match_detail' AND type = 'PK' ) + BEGIN + + ALTER TABLE xk_match_detail ADD CONSTRAINT PK_xk_match_detail PRIMARY KEY CLUSTERED (bill_no,blood_no,product_no); + END +GO + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_charge_main' AND type = 'PK' ) + BEGIN + + ALTER TABLE xk_charge_main ADD CONSTRAINT PK_xk_charge_main PRIMARY KEY CLUSTERED (bill_no); + END +GO + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_charge_detail' AND type = 'PK' ) + BEGIN + + ALTER TABLE xk_charge_detail ADD CONSTRAINT PK_xk_charge_detail PRIMARY KEY CLUSTERED (bill_no,sid); + END +GO \ No newline at end of file