// GET: api/Claim public IEnumerable <string> Get() { HicapsConnectControl.HicapsConnectControl ctr = new HicapsConnectControl.HicapsConnectControl(); ctr.createobject("0.0.0.0:0:SEE55A:COMT"); HicapsConnectControl.HicapsConnectControl.TerminalTestResponse myResponse = ctr.sendTerminalTest("0.0.0.0:0:SEE55A:COMT"); var arr = ctr.getTerminalList(); HicapsConnectControl.HicapsConnectControl.ClaimPharmRequest req = new HicapsConnectControl.HicapsConnectControl.ClaimPharmRequest(); req.ProviderNumberId = "0540961A"; req.ClaimDetails.Add("01R001001112008000"); req.ServerUrl = "SEE55A"; req.PmsKey = "8562026"; req.SoftwareVendorName = "HICAPSConnectClient"; req.PrintReceiptOnTerminal = false; var res = ctr.sendClaimRequest(req); return(new string[] { "value1", "value2" }); }
private void SendButton_Click(object sender, RoutedEventArgs e) { SendButton.IsEnabled = false; HicapsConnectControl.HicapsConnectControl.ClaimPharmRequest request; //HicapsConnectControl.HicapsConnectControl.AllItemListRequest itemRequest; main.hicaps.DisplayStatusWindow(true); if (QuoteMode) { // fields of a QuoteRequest are filled identically to those of a ClaimRequest. request = new HicapsConnectControl.HicapsConnectControl.QuotePharmRequest(); } else { request = new HicapsConnectControl.HicapsConnectControl.ClaimPharmRequest(); } // set provider request.ProviderNumberId = Utils.getProviderNumberId(ProviderCombo.Text); if (request.ProviderNumberId == null || request.ProviderNumberId == "00000000") { // inform user that a correct provider is needed MessageBox.Show("The selected provider is not valid. Please select another one."); SendButton.IsEnabled = true; return; } // add item details if (claimItems.Count < 1) { MessageBox.Show("There must be at least one claim item"); SendButton.IsEnabled = true; return; } int i = 0; foreach (ItemRow row in claimItems) { string rowNumber = "Row " + i + 1 + ": "; if (row.Dos == null) { MessageBox.Show(rowNumber + "Please select a date of service"); ClaimDetails.SelectedIndex = i; SendButton.IsEnabled = true; return; } try { if (row.ItemNumber.Length < 3) { MessageBox.Show(rowNumber + "Item Number must be 3 or greater characters"); ClaimDetails.SelectedIndex = i; SendButton.IsEnabled = true; return; } //else if (!row.ItemNumber.OnlyNumbers()) //{ // MessageBox.Show(rowNumber + "Item Number must consist of digits"); // ClaimDetails.SelectedIndex = i; // return; //} //GJ:Commented the old way to add the line as for the compound indicator should use the Compound column of each row instead of the UseAlternateBodyPart checkbox //request.addClaimPharmLine(row.PatientId, row.ItemNumber, row.ScriptNumber, UseAlternateBodyPart.IsChecked != null && UseAlternateBodyPart.IsChecked.Value, // row.Dos ?? DateTime.MinValue, // row.ItemFee.ParseCurrency() ?? 0); request.addClaimPharmLine(row.PatientId, row.ItemNumber, row.ScriptNumber, row.Compound == "Compound", row.Dos ?? DateTime.MinValue, row.ItemFee.ParseCurrency() ?? 0); } catch (Exception ex) { MessageBox.Show(ex.Message); SendButton.IsEnabled = true; return; } i++; } request.ServerUrl = main.currentTerminal; request.PmsKey = Utils.PMSKey; request.SoftwareVendorName = Utils.VendorName; request.PrintReceiptOnTerminal = Properties.Settings.Default.PrintClaimReceipt; // send request HicapsConnectControl.HicapsConnectControl.ClaimPharmResponse response; if (QuoteMode) { // converts the request to a QuoteRequest and the response to a ClaimResponse // while calling sendQuoteRequest main.SyncStatus("Sending Quote Request..."); response = main.hicaps.sendQuotePharmRequest((HicapsConnectControl.HicapsConnectControl.QuotePharmRequest)request); } else { main.SyncStatus("Sending Claim Request..."); response = main.hicaps.sendClaimPharmRequest(request); } main.ResetStatus(); if (response != null) { if (response.GetType() == typeof(HicapsConnectControl.HicapsConnectControl.ClaimPharmResponse)) { main.claimLog.LogClaim(response); } if (response.GetType() == typeof(HicapsConnectControl.HicapsConnectControl.QuotePharmResponse)) { main.claimLog.LogQuote((HicapsConnectControl.HicapsConnectControl.QuotePharmResponse)response); } main.cancel.UpdateTransactions(); _latestResponse = response; } dumpClaimResponseToDebug(response); if (response.ResponseCode != "00") { new ResponseError(response.ResponseCode, response.ResponseText).ShowDialog(); } else { // i.e. successful claim clearEntryFields(true); claimItems.Clear(); ClaimDetails.Items.Refresh(); } ////Display wait window //wait.Visibility = Visibility.Visible; //ForceUIToUpdate(); // print provider receipt if needed if (!QuoteMode && Settings.Default.PrintProviderClaimReceiptLocal) { //Display wait window wait.Visibility = Visibility.Visible; ForceUIToUpdate(); var rec = new PharmaceuticalReceipt(response, ReceiptFor.Provider); //Close wait window wait.Visibility = Visibility.Collapsed; rec.printReport(true); } // print customer receipt if needed bool shouldPrint = false; PharmaceuticalReceipt r; if (QuoteMode) { shouldPrint = Settings.Default.PrintQuoteReceiptLocal; var quoteResponse = (HicapsConnectControl.HicapsConnectControl.QuotePharmResponse)response; r = new PharmaceuticalReceipt(quoteResponse); } else { shouldPrint = Settings.Default.PrintCustomerClaimReceiptLocal; r = new PharmaceuticalReceipt(response, ReceiptFor.Customer); } if (shouldPrint) { r.printReport(false); } if (response.ResponseCode == "00") { // process claim-to-sale // todo: is gap really calculated this way? decimal gap = response.TransactionAmount - response.BenefitAmount; if (gap > 0 && !QuoteMode) { if (main.setup.ClaimToSale && main.setup.ClaimToSalePopup) { ClaimToSalePopup popup = new ClaimToSalePopup(gap); popup.Show(); } else if (main.setup.ClaimToSale && !main.setup.ClaimToSalePopup) { main.eftpos.doClaimToSale(); } else { // ClaimToSale is not checked. Do nothing } } } main.hicaps.DisplayStatusWindow(false); SendButton.IsEnabled = true; }