public void Handle(ProcessInternalStateChangedEvent eventData) { HisOrderData hisOrderData = null; try { hisOrderData = eventData.Process.GetDataStoreItem <HisOrderData>("HisData"); var resultData = eventData.Process.GetDataStoreItem <SettleResultData>("SettleResult"); var receipt = _receiptProvider.GenerateReceipt(hisOrderData, new ReceiptDto { //TODO:设置报销费用 //Reimbursement = resultData.CalculateResultInfo.P10 }); //收费打印单 string hospitalCode = _settingManager.GetSettingValue("<%= classify(name) %>.HospitalCode.Tenant"); var patient = eventData.Process.GetDataStoreItem <PatientData>("Patient"); receipt.Print = _receiptProvider.GeneratePrint(hospitalCode, patient, hisOrderData, resultData); eventData.Process.Receipt = receipt; eventData.Process.Action(new GenerateReceiptAction()); } catch (Exception ex) { Logger.Error($"处理收据时报错:processId:{eventData.Process.Id}, error:{ex}"); eventData.Process.Action(new SettleFailAction { Error = "医保已结算,但生成收据失败。请手动检查此单" }); } }
public void Handle(ProcessInternalStateChangedEvent eventData) { if (eventData.Process.Channel == Metadata.Channel.< %= classify(name) % > && eventData.Process.Type == ProcessType.Refund) { var chargeProcess = _processManager.GetProcess(eventData.Process.ChargeProcessId.Value); var patient = chargeProcess.GetDataStoreItem(nameof(PreSettleAction.Patient)); var hisData = chargeProcess.GetDataStoreItem(nameof(PreSettleAction.HisData)); var settleResult = chargeProcess.GetDataStoreItem(nameof(SettleAction.SettleResult)); eventData.Process.SetDataStoreItem("patient", patient); eventData.Process.SetDataStoreItem("hisData", hisData); eventData.Process.SetDataStoreItem("settleResult", settleResult); } }
public void Handle(ProcessInternalStateChangedEvent eventData) { try { // his data; var chargeReceipt = _processManager.GetProcess(eventData.Process.ChargeProcessId.Value).Receipt; var refundReceipt = _receiptProvider.GenerateRefundReceipt(chargeReceipt); eventData.Process.Receipt = refundReceipt; eventData.Process.Action(new GenerateReceiptAction()); } catch (Exception ex) { Logger.Error($"处理收据时报错:processId:{eventData.Process.Id}, error:{ex}"); eventData.Process.Action(new SettleFailAction { Error = "医保已结算,但生成收据失败。请手动检查此单" }); } }