diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/controller/YbController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/controller/YbController.java index d6fc3a1b2..8558b9b1f 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/controller/YbController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/controller/YbController.java @@ -22,25 +22,29 @@ import com.healthlink.his.clinical.service.IConditionDefinitionService; import com.healthlink.his.common.constant.CommonConstants; import com.healthlink.his.financial.domain.Contract; import com.healthlink.his.financial.service.IContractService; -import com.healthlink.his.web.ybmanage.dto.*; +import com.healthlink.his.web.ybmanage.dto.Financial3202WebParam; +import com.healthlink.his.web.ybmanage.dto.FinancialHand3201WebParam; +import com.healthlink.his.web.ybmanage.dto.FinancialHand3203AWebParam; +import com.healthlink.his.web.ybmanage.dto.Yb2401InpatientRegParamDto; +import com.healthlink.his.web.ybmanage.dto.Yb5205SpecialDiseaseWebParam; import com.healthlink.his.web.ybmanage.service.IYbService; import com.healthlink.his.yb.domain.FinancialApplyRecord; import com.healthlink.his.yb.domain.InfoPerson; import com.healthlink.his.yb.domain.InpatientDischarge; import com.healthlink.his.yb.domain.InpatientReg; +import com.healthlink.his.yb.domain.Sign; import com.healthlink.his.yb.dto.*; -import com.healthlink.his.yb.dto.Catalogue1312Output; -import com.healthlink.his.yb.dto.Clinic2208UnSetlInfoOutput; -import com.healthlink.his.yb.dto.Financial3203AWebParam; -import com.healthlink.his.yb.dto.Info1101Output; -import com.healthlink.his.yb.dto.PatientInfoDto; -import com.healthlink.his.yb.dto.Result; -import com.healthlink.his.yb.dto.Settlement3201WebParam; -import com.healthlink.his.yb.dto.Settlement3202WebParam; -import com.healthlink.his.yb.dto.Settlement3209AWebParam; +import com.healthlink.his.yb.dto.Yb2401InputInpatientMdtrtInfo; +import com.healthlink.his.yb.dto.Yb2402InputParam; +import com.healthlink.his.yb.dto.Yb2403InputParam; +import com.healthlink.his.yb.dto.Yb2404InputInpatient; +import com.healthlink.his.yb.dto.Yb2405InputInpatient; +import com.healthlink.his.yb.dto.Yb2601InputParam; +import com.healthlink.his.yb.dto.Yb5205InputSpecialDisease; +import com.healthlink.his.yb.dto.Yb5205OutputSpecialDisease; import com.healthlink.his.yb.service.IPerinfoService; -import com.healthlink.his.yb.service.YbDao; -import com.healthlink.his.yb.service.YbHttpUtils; +import com.healthlink.his.yb.service.IYbDao; +import com.healthlink.his.yb.service.IYbHttpUtils; import com.healthlink.his.yb.util.CommonConstant; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -76,9 +80,9 @@ public class YbController { private static final Logger log = LoggerFactory.getLogger(YbController.class); @Autowired - YbDao ybDao; + IYbDao ybDao; @Autowired - YbHttpUtils ybHttpUtils; + IYbHttpUtils ybHttpUtils; @Autowired IPatientService patientService; @Autowired diff --git a/healthlink-his-server/healthlink-his-domain/pom.xml b/healthlink-his-server/healthlink-his-domain/pom.xml index b6847ac57..0c55a88a5 100755 --- a/healthlink-his-server/healthlink-his-domain/pom.xml +++ b/healthlink-his-server/healthlink-his-domain/pom.xml @@ -1,4 +1,4 @@ - + @@ -100,6 +100,12 @@ + + + org.springframework + spring-web + provided + diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/IYbDao.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/IYbDao.java new file mode 100644 index 000000000..f07438b44 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/IYbDao.java @@ -0,0 +1,123 @@ +package com.healthlink.his.yb.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.healthlink.his.financial.domain.Contract; +import com.healthlink.his.yb.domain.ClinicReg; +import com.healthlink.his.yb.domain.FinancialApplyRecord; +import com.healthlink.his.yb.domain.InpatientDischarge; +import com.healthlink.his.yb.domain.InpatientReg; +import com.healthlink.his.yb.domain.InpatientSettle; +import com.healthlink.his.yb.dto.Sign; +import com.healthlink.his.yb.dto.*; +import com.healthlink.his.yb.enums.YbMdtrtCertType; +import com.healthlink.his.yb.enums.YbMedType; +import com.healthlink.his.yb.model.Clinic2207OrderModel; +import com.healthlink.his.yb.model.Clinic2207OrderParam; +import com.healthlink.his.financial.model.PaymentedItemModel; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 医保数据访问接口 + */ +public interface IYbDao { + + // === 基础方法 === + Info1101ReadcardParam getReadCard(String certType, String certNo); + void saveReadcardAndPerinfo(Info1101ReadcardParam readcard, Info1101Output perInfo); + Sign getSignParam(String id, String mac, String ip); + PatientInfoDto getPatent(Info1101Output perInfo); + + // === 挂号相关 === + ClinicReg getReg(YbMdtrtCertType ybMdtrtCertTypeLong, String busiCardInfo, Long encounterId, YbMedType medType, Integer tenantId); + void saveReg(ClinicReg2201Output regResult); + void UpdateRegByMdtrtId(ClinicReg regResult); + ClinicReg getUnReg(Long encounterId, Integer tenantId); + ClinicReg get2202Reg(Long id, Integer tenantId); + ClinicReg2201Output getClinicRegByEncounterId(Long encounterId); + void saveUnReg(ClinicReg2201Output regResult); + + // === 门诊结算相关 === + Clinic2203MedicalParam getClinicMedical2203Param(Long encounterId, Integer tenantId, ClinicReg2201Output reg2201Output, com.healthlink.his.yb.enums.YbMedType ybMedType); + Clinic2204OrderParam getClinicOrder2204Param(Integer tenantId, List paymentedItemList, ClinicReg2201Output reg2201Output); + Clinic2206OrderParam getClinicOrder2206Param(BigDecimal payFee, ClinicReg2201Output reg, String chrgBchno, String busiCardInfo); + Clinic2205OrderParam getClinic2205OrderParam(Long encounterId, String chrgBchno); + Clinic2207OrderParam getClinicOrder2207(Long encounterId, Integer tenantId, String psnSetlWay, String chrgBchno, String medType); + Clinic2208UnSetlInfoParam getClinicOrder2208(Integer tenantId, String settleId); + void saveClinic2207OrderResult(String paymentNo, Clinic2207OrderParam clinicOrder2207, Clinic2207OrderModel clinic2207OrderResult); + void saveClinic2207Record(Clinic2207OrderParam clinicOrder2207, Clinic2207OrderModel clinic2206OrderResult); + void saveClinic2207Record(String paymentNo, Clinic2207OrderParam clinicOrder2207, Clinic2207OrderModel clinic2206OrderResult); + void saveClinicOrder2206Param(Clinic2206OrderParam clinic2206OrderParam, Clinic2206OrderOutput clinic2206OrderResult, Clinic2203MedicalParam medical2203Param, Clinic2204OrderParam clinic2204OrderParam, Clinic2204OrderResult clinic2204OrderResult); + void saveUnSettleRecord(String settleId, Clinic2208UnSetlInfoParam clinicOrder2207, Clinic2208UnSetlInfoOutput clinic2208UnSetlInfoOutput); + void saveSign(Sign signParam, Sign9001Result signResult); + + // === 目录审核相关 === + MedicalDirectory3301Param getMedicalDirectory3301Param(String tableName, Long id); + MedicalDirectory3301Param getMedicalDirectory3301ParamMedication(String categoryCode, String busNo, String name, String ybNo); + MedicalDirectory3302Param getMedicalDirectory3302Param(String tableName, Long id); + MedicalDirectory3302Param getMedicalDirectory3302ParamMedication(String categoryCode, String busNo, String ybNo); + void saveDirectoryHistory(String tableName, Long id, Integer s, MedicalDirectory3301Param medicalDirectory3301Param); + void saveDirectoryHistory(String tableName, Long id, Integer s, MedicalDirectory3302Param medicalDirectory3302Param); + + // === 对账相关 === + Financial3201Param getFinancial3201Param(Settlement3201WebParam reconciliation3201Param); + void saveReconcileGeneralLedger(Financial3201Output financial3201Output, Financial3201Param financial3201Param); + List paymentCompareYbSettle(Settlement3202WebParam settlement3202WebParam); + List paymentCompareYbSettle(List settlementIdList); + FinancialSettlement3202Param getFinancialSettlement3202Param(List settlementIdList, BigDecimal a, BigDecimal b); + FinancialSettlement3209AParam getFinancialSettlement3209AParam(Settlement3209AWebParam settlement3209AWebParam); + List reconcileGeneralLedgerDetail(Settlement3201WebParam settlement3201WebParam); + + // === 清算相关 === + Clearing3205AParma getClearing3205AParma(Clearing3205AWebParma clearing3205AWebParma); + Financial3203AParam getFinancial3203AParam(Financial3203AWebParam financial3203AWebParam); + Financial3203AParam getFinancial3203AParam(List financial3202FileParams, String beginTime, String endTime, String clrType, String clrOptins); + Financial3203AParam getFinancial3203AParamForTime(Financial3203AParam financial3203AParam, String beginTime, String endTime); + Financial3203AParam getInitFinancial3203AParam(List financial3202FileParams); + void save3203AFinancialClearingApplycation(Financial3203AParam financial3203AParam, String s); + void save3204AFinancialClearingApplycation(String clrAppyEvtId, String clrOptins); + FinancialApplyRecord getFinancial3204ParamByClrAppyEvtId(String clrAppyEvtId); + Page getFinancial3203APage(String searchKey, Integer pageNo, Integer pageSize, jakarta.servlet.http.HttpServletRequest request); + + // === 库存相关 === + MedicalInventory3501Param getMedicalInventory3501Param(Long id, Integer talentId); + MedicalInventory3502Param getMedicalInventory3502Param(Long id, String invChgType, Integer talentId); + Medical3503Param getMedical3503Param(Long id, Integer talentId); + Medical3505Param getMedical3505Param(Long id, String ListType, Integer talentId); + Medical3506Param getMedical3506Param(Long id, String ListType, Integer talentId); + Medical3507Param getMedical3507Param(Long id, String invDataType); + MedicalPurchase3504Param getMedicalPurchase3504Param(Long id, Integer talentId); + void saveInventoryCheckRecord(MedicalInventory3501Param medicalInventory3501Param, String resultMessage); + void saveInventoryChangeRecord(MedicalInventory3502Param medicalInventory3502Param, String resultMessage); + void saveInventoryPurchaseRecord(Medical3503Param medical3503Param, String resultMessage); + void saveInventoryPurchaseReturnRecord(MedicalPurchase3504Param medicalPurchase3504Param, String resultMessage); + void saveInventorySaleRecord(Medical3505Param medical3505Param, String retRslt); + void saveInventorySaleReturnRecord(Medical3506Param medical3506Param, String retRslt); + void saveInventoryDelRecord(Medical3507Param medical3507Param); + + // === 住院相关 === + void save2401InpatientReg(InpatientReg inpatientReg); + void save2402InpatientDscg(InpatientDischarge inpatientReg); + void save2403InputInpatient(Yb2403InputParam yb2403InputParam); + void updateInpatientRegById(InpatientReg inpatientReg); + Yb2401InputInpatientMdtrtInfo getYb2401InputInpatientMdtrtInfo(Long encounterId); + Yb2402InputParam getYb2402InputInpatientDscgInfo(Long encounterId, Contract contract); + Yb2403InputParam getYb2403InputParam(Long encounterId); + Yb2404InputInpatient getYb2404InputInpatient(Long encounterId); + Yb2405InputInpatient getYb2405InputInpatient(Long encounterId); + + // === 费用明细相关 === + Yb2301InputFeeDetailModel getYb2301FeeDetailParam(Long encounterId, List chargeItemIds); + Yb2302InputInpatient getYb2302InpatientParam(Long chargeItemId); + Yb2303InputInpatient getYb2303InpatientPram(Long encounterId, List chargeItemIds); + Yb2304InputInpatient getYb2304InpatientParam(PaymentInpatientDto paymentDto); + Yb2305InputInpatient getYb2305InpatientParam(InpatientSettle inpatientSettle); + void save2301YbFeeDetail(List yb2301OutputResults, List feedetail, Long encounterId); + void save2303InpatientPreSettle(Yb2303OutputSetInfo yb2303OutputSetInfo); + + // === 特病相关 === + Yb5205InputSpecialDisease yb5205SpecialDiseaseDrugRecordSearch(Long patientId, Date begntime, Date endtime); +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/IYbHttpUtils.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/IYbHttpUtils.java new file mode 100644 index 000000000..981a08903 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/IYbHttpUtils.java @@ -0,0 +1,103 @@ +package com.healthlink.his.yb.service; + +import com.healthlink.his.financial.domain.Contract; +import com.healthlink.his.yb.domain.ClinicReg; +import com.healthlink.his.yb.domain.InpatientReg; +import com.healthlink.his.yb.dto.Sign; +import com.healthlink.his.yb.dto.*; +import com.healthlink.his.yb.model.Clinic2207OrderModel; +import com.healthlink.his.yb.model.Clinic2207OrderParam; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.multipart.MultipartFile; +import tools.jackson.databind.JsonNode; +import java.util.List; + +/** + * 医保HTTP工具接口 + */ +public interface IYbHttpUtils { + + // === 基础方法 === + Info1101Output getPerInfo(Info1101ReadcardParam readcard); + Sign9001Result sign(Sign signParam, Contract contract); + FileResult queryCatalog(CatalogFileInput catalogFileInput); + String downLoadFile(FileResult fileResult); + + // === 挂号相关 === + ClinicReg2201Output reg(ClinicReg reg, Contract contract); + ClinicReg2201Output cancelReg(ClinicReg reg, Contract contract); + + // === 门诊结算相关 === + Result upload2203Record(Clinic2203MedicalParam medical2203Param, Contract contract); + Clinic2204OrderResult upload2204Record(Clinic2204OrderParam clinic2204OrderParam, Contract contract); + Clinic2206OrderOutput upload2206Record(Clinic2206OrderParam clinic2206OrderParam, Contract contract); + Clinic2207OrderModel settle(Clinic2207OrderParam clinicOrder2207, Contract contract); + void unPreSettle(Clinic2205OrderParam clinic2205OrderParam, Contract contract); + Clinic2208UnSetlInfoOutput unSettle(Clinic2208UnSetlInfoParam clinicOrder2208, Contract contract); + + // === 目录审核相关 === + Result directoryCheck(MedicalDirectory3301ListParam medicalDirectory3301ListParam); + Result directoryUnCheck(MedicalDirectory3302Param medicalDirectory3302Param); + + // === 对账相关 === + Result reconcileGeneralLedger(Financial3201Param financial3201Param); + FinancialSettlement3202Result reconcileGeneralLedgerDetail(FinancialSettlement3202Param financial3202Param); + + // === 清算相关 === + String applyFinancialClearing(Financial3203AParam financial3203AParam); + Result cancelFinancialClearing(Financial3204Param financial3204Param); + Clearing3205AResult getFinancialClearingStatus(Clearing3205AParma clearing3205AParma); + Result getClrOptins(Clearing3206AParam clearing3206AParam); + + // === 库存相关 === + Result uploadInventoryCount(MedicalInventory3501Param medicalInventory3501Param); + Result updateInventoryCount(MedicalInventory3502Param medicalInventory3502Param); + Result procurement(Medical3503Param medical3503Param); + Result cancelProcurement(MedicalPurchase3504Param medicalPurchase3504Param); + Result merchandise(Medical3505Param medical3505Param, Contract contract); + Result cancelMerchandise(Medical3506Param medical3506Param, Contract contract); + Result deleteGoodsInfo(Medical3507Param medical3507Param); + MedicalInventory3511Output querySalesInfo(MedicalInventory3511Param medicalInventory3511Param); + Result query3512(MedicalInventory3512Param inventory3512Param, Contract contract); + Result query3513(MedicalInventory3513Param inventory3513Param, Contract contract); + + // === 住院相关 === + InpatientReg inpatientReg(JsonNode jsonObject, String contractNo); + Yb2402InputParam inpatientCheckOut(Yb2402InputParam yb2402InputInpatientDscgInfo, String contractNo); + void cancelInpatientCheckOut(Yb2405InputInpatient yb2405InputInpatient, String contractNo); + void updateInpatientInfo(Yb2403InputParam yb2403InputInpatient, String contractNo); + void cancelInpatientReg(Yb2404InputInpatient yb2404InputInpatient, String contractNo); + + // === 住院结算相关 === + Yb2303OutputSetInfo inpatientPreSettle(Yb2303InputInpatient yb2303InputInpatient); + Yb2304OutputSetlInfo inpatientSettle(Contract contract, Yb2304InputInpatient yb2304InpatientParam); + Yb2305OutputSetlInfo inpatientUnSettle(Contract contract, Yb2305InputInpatient yb2305InpatientParam); + void cancel2302FeeDetailUp(Yb2302InpatientParam yb2302InpatientParam, Contract contract); + + // === 费用明细相关 === + Yb3101OutputResult yb3101PreMidAnalysis(Yb3101InputData data); + void yb3103PreMidFeedback(Yb3103InputData data); + + // === 费用上传相关 === + void yb4101Up(Yb4101AInputData yb4101AInputData, Contract contract); + void yb4102Up(Yb4102InputStastInfo yb4102InputStastInfo); + + // === 电子病历相关 === + void emrUp(Yb4401InputDto yb4401InputDto); + + // === 目录查询相关 === + List queryYbCatalogue(Catalogue1312QueryParam catalogue1312QueryParam); + + // === 文件上传相关 === + ResponseEntity upload9101(MultipartFile file, String filename); + + // === 三方查询相关 === + List threePartSearch(FinancialSettlement3209AParam financialSettlement3209AParam); + + // === 特病查询相关 === + List yb5205SpecialDiseaseDrugRecordSearch(Yb5205InputSpecialDisease yb5205InputSpecialDisease); + + // === 冲销相关 === + void ybToReverse(Yb2601InputParam toReverse, Contract contract); +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/IYbManager.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/IYbManager.java new file mode 100644 index 000000000..0c876c411 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/IYbManager.java @@ -0,0 +1,94 @@ +package com.healthlink.his.yb.service; + +import com.core.common.core.domain.R; +import com.healthlink.his.administration.domain.Organization; +import com.healthlink.his.administration.domain.Patient; +import com.healthlink.his.administration.domain.Organization; +import com.healthlink.his.administration.domain.Practitioner; +import com.healthlink.his.administration.domain.Practitioner; +import com.healthlink.his.financial.domain.Contract; +import com.healthlink.his.financial.model.PaymentResult; +import com.healthlink.his.financial.model.PaymentedItemModel; +import com.healthlink.his.yb.domain.ClinicReg; +import com.healthlink.his.yb.domain.InpatientSettle; +import com.healthlink.his.yb.dto.*; +import com.healthlink.his.yb.enums.YbMdtrtCertType; +import com.healthlink.his.yb.enums.YbMedType; +import com.healthlink.his.yb.model.*; +import com.healthlink.his.yb.dto.*; + +import java.util.Date; +import java.util.List; + +/** + * 医保服务接口 + */ +public interface IYbManager { + + R getPerInfo(String certType, String certNo); + + ClinicReg2201Output createRegWithMedType(Contract contract, YbMdtrtCertType ybMdtrtCertTypeLong, + String busiCardInfo, Long encounterId, YbMedType medType); + + R cancelReg(CancelRegPaymentModel cancelRegPaymentDto); + + R cancelRegById(ClinicReg clinicReg); + + Clinic2206OrderOutput getPreSettleInfo(OutpatientRegistrationModel cancelRegPaymentModel, + Patient patient, Organization organization, Practitioner doctor); + + Clinic2206OrderOutput preSettle(Contract contract, Long encounterId, YbMdtrtCertType ybMdtrtCertType, + String busiCardInfo, ClinicReg2201Output reg2201Output, String payWay, + List paymentedItemList, YbMedType ybMedType); + + R unSettle(String settleId); + + R directoryCheck(String tableName, Long id); + + R directoryCheckMedication(String categoryCode, String busNo, String name, String ybNo); + + R directoryUnCheck(String tableName, Long id); + + R reconcileGeneralLedger(Settlement3201WebParam settlement3201WebParam); + + R reconcileGeneralLedgerDetail(Settlement3202WebParam settlement3202WebParam); + + R threePartSearch(Settlement3209AWebParam settlement3209AWebParam); + + R applyFinancialClearing(Financial3203AWebParam financial3203AWebParam); + + R cancelFinancialClearing(String clrAppyEvtId, String clrOptins); + + R getFinancialClearingStatus(Clearing3205AWebParma clearing3205AWebParma); + + R uploadInventoryCount(MedicalInventory3501Param medicalInventory3501Param, Date stocktakingTime); + + R updateInventoryCount(MedicalInventory3502Param medicalInventory3502Param); + + R procurement(Medical3503Param medical3503Param); + + R cancelProcurement(MedicalPurchase3504Param medicalPurchase3504Param); + + R merchandise(Medical3505Param medical3505Param, Contract contract); + + R cancelMerchandise(Medical3506Param medical3506Param, Contract contract); + + R deleteGoodsInfo(Long id, String listType); + + Clinic2207OrderModel settle(Contract contract, String chrgBchno, String busiCardInfo, + YbMdtrtCertType ybMdtrtCertType, Integer minpacuntDrugTracCnt, Integer mcsTracCnt); + + PaymentResult settle(Contract contract, String chrgBchno); + + ClinicReg2201Output getClinicRegByEncounterId(Long encounterId); + + void unPreSettle(Long encounterId, String s); + + Yb2303OutputSetInfo preSettleInpatient(PrePaymentDto prePaymentDto); + + Yb2304OutputSetlInfo inpatientSettle(Contract contract, PaymentInpatientDto paymentDto); + + Yb2305OutputSetlInfo inpatientUnSettle(Contract contract, InpatientSettle inpatientSettle); + + void hospitalAdmission(); +}