{"documentInfo":{"documentType":"https://xbrl.org/PWD/2026-09-01/compiled","namespaces":{"xbrl":"https://xbrl.org/PWD/2026-09-01","xbrlr":"https://xbrl.org/PWD/2026-09-01/report","xbrla":"https://xbrl.org/PWD/2026-09-01/accounting","xs":"http://www.w3.org/2001/XMLSchema","iso4217":"http://www.xbrl.org/2003/iso4217","utr":"https://xbrl.org/PWD/2026-09-01/utr","rpt":"https://robosystems.ai/tavi/report/0001628280-25-035765","cik":"http://www.sec.gov/CIK","dei":"http://xbrl.sec.gov/dei/2024","us-gaap":"http://fasb.org/us-gaap/2024","srt":"http://fasb.org/srt/2024","dtr-types":"http://www.xbrl.org/dtr/type/2022-03-31","xbrli":"http://www.xbrl.org/2003/instance","cyd":"http://xbrl.sec.gov/cyd/2024","ecd":"http://xbrl.sec.gov/ecd/2024","csbr":"http://championsoncology.com/20250430","dtr-types1":"http://www.xbrl.org/dtr/type/2020-01-21"},"description":"10-K 0001628280-25-035765 (CIK 0000771856) projected from XBRL by xbrlkit"},"xbrlModel":{"name":"rpt:Report","modelType":"xbrl:report","properties":[{"property":"xbrl:reportFilingDate","value":"2025-07-23"}],"entities":[{"name":"cik:0000771856"}],"units":[{"name":"iso4217:USD","dataType":"xbrlr:monetary"},{"name":"xbrla:shares","dataType":"xbrla:sharesType"},{"name":"rpt:unit-3","dataType":"xbrlr:perShare","compositeUnitRepresentation":["iso4217:USD/xbrla:shares"]},{"name":"csbr:subsidiary","dataType":"xs:decimal"},{"name":"csbr:segment","dataType":"xs:decimal"},{"name":"csbr:institution","dataType":"xs:decimal"}],"dataTypes":[{"name":"dei:nonemptySequenceNumberItemType","baseType":"xs:token"},{"name":"dei:internationalNameItemType","baseType":"xs:token"},{"name":"xbrli:gMonthDayItemType","baseType":"xs:gMonthDay"},{"name":"dei:fiscalPeriodItemType","baseType":"xs:token"},{"name":"dei:submissionTypeItemType","baseType":"xs:string"},{"name":"dei:stateOrProvinceItemType","baseType":"xs:string"},{"name":"dei:centralIndexKeyItemType","baseType":"xs:token"},{"name":"dei:yesNoItemType","baseType":"xs:token"},{"name":"dei:fileNumberItemType","baseType":"xs:string"},{"name":"dei:filerCategoryItemType","baseType":"xs:string"},{"name":"dei:edgarStateCountryItemType","baseType":"xs:string"},{"name":"dei:employerIdItemType","baseType":"xs:token"},{"name":"dei:securityTitleItemType","baseType":"xs:normalizedString"},{"name":"dei:edgarExchangeCodeItemType","baseType":"xs:normalizedString"},{"name":"dei:tradingSymbolItemType","baseType":"xs:normalizedString"}],"concepts":[{"name":"csbr:AssetsAndLiabilitiesLesseeTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"csbr:CollaborationArrangementRoyaltyFee","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"csbr:CollaborationArrangementRoyaltyFeePercentOfContractPrice","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"csbr:DeferredTaxAssetsTaxDeferredExpenseOperatingLeases","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"csbr:DeferredTaxLiabilitiesCapitalizedResearchAndDevelopmentCosts","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"csbr:DeferredTaxLiabilityDeferredExpenseDepreciationAndAmortization","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"csbr:DepreciationAndAmortizationExcludingFinanceLeases","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"csbr:EffectiveIncomeTaxRateReconciliationDeferredTaxAssetAdjustmentPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"csbr:EffectiveIncomeTaxRateReconciliationIncreaseInUncertainTaxPosition","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"csbr:EffectiveIncomeTaxRateReconciliationPermanentDifferences","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"csbr:FinanceLeaseCost","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"csbr:FinanceLeaseLiabilityToBePaidAfterYearThree","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"csbr:IncreaseDecreaseInOperatingLeaseRightOfUseAssets","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"csbr:IncreaseDecreaseInUncertainTaxPosition","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"csbr:InsentiveBonusPercentage","dataType":"xbrlr:pureType","periodType":"duration","nillable":true},{"name":"csbr:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"csbr:NumberOfMajorInstitutionsWithCashBalances","dataType":"xs:integer","periodType":"instant","nillable":true},{"name":"csbr:NumberofOperatingSubsidiaries","dataType":"xs:integer","periodType":"duration","nillable":true},{"name":"csbr:OperatingLossCarryforwardsLimitationsOnUseAmount","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"csbr:PresentValueMinimumFutureObligationsInterestRate","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"csbr:SalesAndMarketingExpensePolicyPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"csbr:ShareBasedCompensationAnnualBaseCompensationAmount","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsAggregateIntrinsicValueGranted","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsGrantInPeriodWeightedAverageRemainingContractualTerm","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCanceledInPeriod","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedWeightedAverageRemainingContractualTerm","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedPercentage","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"csbr:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsCanceledInPeriodWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"csbr:SharebasedCompensationArrangementbySharebasedPaymentAwardTermofOptiontoPurchase","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"csbr:StockOptionsAwardSharesToPurchaseCommonStock","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"csbr:StockOptionsAwardSharesToPurchaseUnregisteredCommonStock","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"csbr:WorkingCapitalDeficit","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementProcessesIntegratedFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementThirdPartyEngagedFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskRoleOfManagementTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:AmendmentFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:AuditorFirmId","dataType":"dei:nonemptySequenceNumberItemType","periodType":"duration","nillable":true},{"name":"dei:AuditorLocation","dataType":"dei:internationalNameItemType","periodType":"duration","nillable":true},{"name":"dei:AuditorName","dataType":"dei:internationalNameItemType","periodType":"duration","nillable":true},{"name":"dei:CityAreaCode","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:CurrentFiscalYearEndDate","dataType":"xbrli:gMonthDayItemType","periodType":"duration","nillable":true},{"name":"dei:DocumentAnnualReport","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:DocumentFinStmtErrorCorrectionFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:DocumentFiscalPeriodFocus","dataType":"dei:fiscalPeriodItemType","periodType":"duration","nillable":true},{"name":"dei:DocumentFiscalYearFocus","dataType":"xs:gYear","periodType":"duration","nillable":true},{"name":"dei:DocumentPeriodEndDate","dataType":"xs:date","periodType":"duration","nillable":true},{"name":"dei:DocumentTransitionReport","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:DocumentType","dataType":"dei:submissionTypeItemType","periodType":"duration","nillable":true},{"name":"dei:DocumentsIncorporatedByReferenceTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"dei:EntityAddressAddressLine1","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:EntityAddressAddressLine2","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:EntityAddressCityOrTown","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:EntityAddressPostalZipCode","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:EntityAddressStateOrProvince","dataType":"dei:stateOrProvinceItemType","periodType":"duration","nillable":true},{"name":"dei:EntityCentralIndexKey","dataType":"dei:centralIndexKeyItemType","periodType":"duration","nillable":true},{"name":"dei:EntityCommonStockSharesOutstanding","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"dei:EntityCurrentReportingStatus","dataType":"dei:yesNoItemType","periodType":"duration","nillable":true},{"name":"dei:EntityEmergingGrowthCompany","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:EntityFileNumber","dataType":"dei:fileNumberItemType","periodType":"duration","nillable":true},{"name":"dei:EntityFilerCategory","dataType":"dei:filerCategoryItemType","periodType":"duration","nillable":true},{"name":"dei:EntityIncorporationStateCountryCode","dataType":"dei:edgarStateCountryItemType","periodType":"duration","nillable":true},{"name":"dei:EntityInteractiveDataCurrent","dataType":"dei:yesNoItemType","periodType":"duration","nillable":true},{"name":"dei:EntityPublicFloat","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"dei:EntityRegistrantName","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:EntityShellCompany","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:EntitySmallBusiness","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:EntityTaxIdentificationNumber","dataType":"dei:employerIdItemType","periodType":"duration","nillable":true},{"name":"dei:EntityVoluntaryFilers","dataType":"dei:yesNoItemType","periodType":"duration","nillable":true},{"name":"dei:EntityWellKnownSeasonedIssuer","dataType":"dei:yesNoItemType","periodType":"duration","nillable":true},{"name":"dei:IcfrAuditorAttestationFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:LocalPhoneNumber","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:Security12bTitle","dataType":"dei:securityTitleItemType","periodType":"duration","nillable":true},{"name":"dei:SecurityExchangeName","dataType":"dei:edgarExchangeCodeItemType","periodType":"duration","nillable":true},{"name":"dei:TradingSymbol","dataType":"dei:tradingSymbolItemType","periodType":"duration","nillable":true},{"name":"ecd:Additional402vDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AdjToCompAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:AdjToNonPeoNeoCompFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AdjToPeoCompFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AggtErrCompAmt","dataType":"xbrlr:monetary","periodType":"instant","nillable":true},{"name":"ecd:AggtErrCompNotYetDeterminedTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AwardExrcPrice","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"ecd:AwardGrantDateFairValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true},{"name":"ecd:AwardTmgHowMnpiCnsdrdTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AwardTmgMethodTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AwardTmgMnpiCnsdrdFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:AwardTmgMnpiDiscTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AwardTmgPredtrmndFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:AwardUndrlygSecuritiesAmt","dataType":"xs:decimal","periodType":"instant","nillable":true},{"name":"ecd:AwardsCloseToMnpiDiscIndName","dataType":"xs:string","periodType":"instant","nillable":true},{"name":"ecd:AwardsCloseToMnpiDiscTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:ChangedPeerGroupFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:CoSelectedMeasureAmt","dataType":"xs:decimal","periodType":"duration","nillable":true},{"name":"ecd:CoSelectedMeasureName","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"ecd:CompActuallyPaidVsCoSelectedMeasureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:CompActuallyPaidVsNetIncomeTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:CompActuallyPaidVsOtherMeasureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:CompActuallyPaidVsTotalShareholderRtnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:EqtyAwrdsAdjFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:EquityValuationAssumptionDifferenceFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:ErrCompAnalysisTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:ForgoneRecoveryDueToExpenseOfEnforcementAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:ForgoneRecoveryDueToViolationOfHomeCountryLawAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:ForgoneRecoveryExplanationOfImpracticabilityTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:ForgoneRecoveryIndName","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:InsiderTrdPoliciesProcAdoptedFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:InsiderTrdPoliciesProcNotAdoptedTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:MeasureName","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"ecd:MnpiDiscTimedForCompValFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:MtrlTermsOfTrdArrTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:NamedExecutiveOfficersFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:NonGaapMeasureDescriptionTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:NonPeoNeoAvgCompActuallyPaidAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:NonPeoNeoAvgTotalCompAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:NonRule10b51ArrAdoptedFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:NonRule10b51ArrTrmntdFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:OtherPerfMeasureAmt","dataType":"xs:decimal","periodType":"duration","nillable":true},{"name":"ecd:OutstandingAggtErrCompAmt","dataType":"xbrlr:monetary","periodType":"instant","nillable":true},{"name":"ecd:OutstandingRecoveryCompAmt","dataType":"xbrlr:monetary","periodType":"instant","nillable":true},{"name":"ecd:OutstandingRecoveryIndName","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:PeerGroupIssuersFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:PeerGroupTotalShareholderRtnAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:PeoActuallyPaidCompAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:PeoName","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"ecd:PeoTotalCompAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:PnsnBnftsAdjFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:PvpTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:RestatementDeterminationDate","dataType":"xs:date","periodType":"duration","nillable":true},{"name":"ecd:RestatementDoesNotRequireRecoveryTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:Rule10b51ArrAdoptedFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:Rule10b51ArrTrmntdFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:StkPrcOrTsrEstimationMethodTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:TabularListTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:TotalShareholderRtnAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:TotalShareholderRtnVsPeerGroupTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:TrdArrAdoptionDate","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:TrdArrDuration","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"ecd:TrdArrExpirationDate","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:TrdArrIndName","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:TrdArrIndTitle","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:TrdArrSecuritiesAggAvailAmt","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"ecd:TrdArrTerminationDate","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:UndrlygSecurityMktPriceChngPct","dataType":"xbrlr:pureType","periodType":"instant","nillable":true},{"name":"srt:StockRepurchaseProgramAuthorizedAmount1","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AccountsPayableCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AccountsReceivableGross","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:AccountsReceivableGrossCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:AccountsReceivableNetCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:AccruedLiabilitiesCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AdditionalPaidInCapitalCommonStock","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AllocatedShareBasedCompensationExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:AllowanceForDoubtfulAccountsReceivable","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:Assets","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:AssetsCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:AssetsFairValueDisclosure","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:BasisOfAccountingPolicyPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:CapitalExpendituresIncurredButNotYetPaid","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:Cash","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CashEquivalentsAtCarryingValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CommitmentsAndContingenciesDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:CommonStockParOrStatedValuePerShare","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"us-gaap:CommonStockSharesAuthorized","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:CommonStockSharesIssued","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:CommonStockSharesOutstanding","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:CommonStockValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ConcentrationRiskDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ConcentrationRiskPercentage1","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:ConsolidationPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ContractWithCustomerLiability","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ContractWithCustomerLiabilityCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:CostOfGoodsAndServicesSold","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CostOfSalesPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:CurrentFederalTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CurrentForeignTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CurrentIncomeTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsGross","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsLiabilitiesNet","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsValuationAllowance","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:Depreciation","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DepreciationAndAmortization","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DepreciationDepletionAndAmortization","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DisaggregationOfRevenueTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:EarningsPerShareBasic","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:EarningsPerShareDiluted","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:EarningsPerSharePolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:EarningsPerShareTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:FairValueMeasurementPolicyPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperations","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:FinanceLeaseInterestExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:FinanceLeaseInterestPaymentOnLiability","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:FinanceLeaseLiability","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:FinanceLeaseLiabilityCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:FinanceLeaseLiabilityNoncurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:FinanceLeaseLiabilityPaymentsDue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList","dataType":"xbrlr:enumeration","periodType":"instant","nillable":true},{"name":"us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:FinanceLeasePrincipalPayments","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:FinanceLeaseRightOfUseAsset","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList","dataType":"xbrlr:enumeration","periodType":"instant","nillable":true},{"name":"us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperations","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:GeneralAndAdministrativeExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:Goodwill","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:GoodwillImpairmentLoss","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ImpairmentOfLongLivedAssetsHeldForUse","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncomeTaxDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:IncomeTaxExaminationPenaltiesAndInterestExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:IncreaseDecreaseInAccountsPayable","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncreaseDecreaseInAccountsReceivable","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncreaseDecreaseInAccruedLiabilities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncreaseDecreaseInContractWithCustomerLiability","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncreaseDecreaseInOperatingLeaseLiability","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncreaseDecreaseInOtherNoncurrentAssets","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:LeaseCost","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:LeaseCostTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:LesseeFinanceLeasesTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:LesseeLeasesPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeasesTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:Liabilities","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LiabilitiesAndStockholdersEquity","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LiabilitiesCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LiabilitiesFairValueDisclosure","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:NetCashProvidedByUsedInFinancingActivities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:NetCashProvidedByUsedInInvestingActivities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:NetCashProvidedByUsedInOperatingActivities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"us-gaap:NetIncomeLoss","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:NumberOfOperatingSegments","dataType":"xs:integer","periodType":"duration","nillable":true},{"name":"us-gaap:NumberOfReportableSegments","dataType":"xs:integer","periodType":"duration","nillable":true},{"name":"us-gaap:OfficersCompensation","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OperatingCostsAndExpenses","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OperatingIncomeLoss","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OperatingLeaseCost","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OperatingLeaseExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OperatingLeaseLiability","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OperatingLeaseLiabilityCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OperatingLeaseLiabilityNoncurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OperatingLeaseRightOfUseAsset","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","dataType":"xbrlr:percent","periodType":"instant","nillable":true},{"name":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","dataType":"xbrlr:duration","periodType":"instant","nillable":true},{"name":"us-gaap:OperatingLossCarryforwards","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:OtherAssetsNoncurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OtherLiabilitiesCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OtherLiabilitiesNoncurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OtherNonoperatingIncomeExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PaymentsForRepurchaseOfCommonStock","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ProceedsFromStockOptionsExercised","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:PropertyPlantAndEquipmentDisposals","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PropertyPlantAndEquipmentGross","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:PropertyPlantAndEquipmentPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:PropertyPlantAndEquipmentTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:PropertyPlantAndEquipmentUsefulLife","dataType":"xbrlr:duration","periodType":"instant","nillable":true},{"name":"us-gaap:ProvisionForDoubtfulAccounts","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:RelatedPartyTransactionAmountsOfTransaction","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:RelatedPartyTransactionsDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ResearchAndDevelopmentExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ResearchAndDevelopmentExpensePolicy","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:RetainedEarningsAccumulatedDeficit","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:RevenueFromContractWithCustomerPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:RevenueFromContractWithCustomerTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","dataType":"xbrlr:duration","periodType":"instant","nillable":true},{"name":"us-gaap:RoyaltyExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:SegmentReportingPolicyPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:SellingAndMarketingExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ShareBasedCompensation","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:SignificantAccountingPoliciesTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperations","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:StockIssuedDuringPeriodSharesOther","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:StockIssuedDuringPeriodValueOther","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:StockholdersEquity","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:SubsequentEventsTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:TaxAdjustmentsSettlementsAndUnusualProvisions","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:TreasuryStockAcquiredAverageCostPerShare","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:TreasuryStockCommonShares","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:TreasuryStockCommonValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:TreasuryStockSharesAcquired","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:TreasuryStockValueAcquiredCostMethod","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:TypeOfCostGoodOrServiceExtensibleList","dataType":"xbrlr:enumeration","periodType":"duration","nillable":true},{"name":"us-gaap:TypeOfRevenueExtensibleList","dataType":"xbrlr:enumeration","periodType":"duration","nillable":true},{"name":"us-gaap:UnbilledContractsReceivable","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:UnrecognizedTaxBenefits","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:UseOfEstimates","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","dataType":"xbrla:sharesType","periodType":"duration","nillable":true}],"headings":[{"name":"csbr:AuditorInformationAbstract"},{"name":"csbr:CommitmentsAndContingenciesLineItems"},{"name":"csbr:CommitmentsAndContingenciesTable"},{"name":"cyd:CybersecurityRiskManagementStrategyAndGovernanceAbstract"},{"name":"cyd:CybersecurityRiskManagementStrategyAndGovernanceLineItems"},{"name":"cyd:CybersecurityRiskManagementStrategyAndGovernanceTable"},{"name":"dei:CoverAbstract"},{"name":"ecd:AdjLineItems"},{"name":"ecd:AwardTmgDiscLineItems"},{"name":"ecd:AwardTmgDiscTable"},{"name":"ecd:AwardsCloseToMnpiDiscLineItems"},{"name":"ecd:AwardsCloseToMnpiDiscTable"},{"name":"ecd:ErrCompRecoveryTable"},{"name":"ecd:ForgoneRecoveriesByIndTable"},{"name":"ecd:ForgoneRecoveriesLineItems"},{"name":"ecd:InsiderTradingArrLineItems"},{"name":"ecd:InsiderTradingPoliciesProcLineItems"},{"name":"ecd:InsiderTradingPoliciesProcTable"},{"name":"ecd:OutstandingRecoveriesByIndTable"},{"name":"ecd:OutstandingRecoveriesLineItems"},{"name":"ecd:PayVsPerformanceDisclosureLineItems"},{"name":"ecd:PayVsPerformanceDisclosureWithAdditionalMeasuresLineItems"},{"name":"ecd:PayVsPerformanceTableLineItems"},{"name":"ecd:PvpAdjTable"},{"name":"ecd:PvpMeasuresLineItems"},{"name":"ecd:PvpMeasuresTable"},{"name":"ecd:PvpTable"},{"name":"ecd:PvpTabularListTable"},{"name":"ecd:PvpTabularListsLineItems"},{"name":"ecd:PvpTabularListsTable"},{"name":"ecd:PvpWithAdditionalMeasuresTable"},{"name":"ecd:RecoveryOfErrCompDisclosureLineItems"},{"name":"ecd:TabularListMeasuresLineItems"},{"name":"ecd:TradingArrByIndTable"},{"name":"us-gaap:AccountingPoliciesAbstract"},{"name":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"},{"name":"us-gaap:AssetsAbstract"},{"name":"us-gaap:AssetsCurrentAbstract"},{"name":"us-gaap:ClassOfStockLineItems"},{"name":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract"},{"name":"us-gaap:DisaggregationOfRevenueLineItems"},{"name":"us-gaap:DisaggregationOfRevenueTable"},{"name":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"},{"name":"us-gaap:EarningsPerShareAbstract"},{"name":"us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"},{"name":"us-gaap:EntityWideRevenueMajorCustomerLineItems"},{"name":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperationsAbstract"},{"name":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperationsAbstract"},{"name":"us-gaap:IncomeStatementAbstract"},{"name":"us-gaap:IncomeTaxDisclosureAbstract"},{"name":"us-gaap:IncreaseDecreaseInOperatingLiabilitiesAbstract"},{"name":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward"},{"name":"us-gaap:LeasesAbstract"},{"name":"us-gaap:LesseeLeaseDescriptionLineItems"},{"name":"us-gaap:LesseeLeaseDescriptionTable"},{"name":"us-gaap:LiabilitiesAndStockholdersEquityAbstract"},{"name":"us-gaap:LiabilitiesCurrentAbstract"},{"name":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract"},{"name":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract"},{"name":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract"},{"name":"us-gaap:NetIncomeLossAvailableToCommonStockholdersBasicAbstract"},{"name":"us-gaap:NoncashInvestingAndFinancingItemsAbstract"},{"name":"us-gaap:NonoperatingIncomeExpenseAbstract"},{"name":"us-gaap:OperatingExpensesAbstract"},{"name":"us-gaap:OperatingLeaseLiabilitiesPaymentsDueAbstract"},{"name":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"},{"name":"us-gaap:PropertyPlantAndEquipmentAbstract"},{"name":"us-gaap:PropertyPlantAndEquipmentLineItems"},{"name":"us-gaap:ReceivablesAbstract"},{"name":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward"},{"name":"us-gaap:RelatedPartyTransactionLineItems"},{"name":"us-gaap:RelatedPartyTransactionsAbstract"},{"name":"us-gaap:RevenueFromContractWithCustomerAbstract"},{"name":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems"},{"name":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable"},{"name":"us-gaap:RisksAndUncertaintiesAbstract"},{"name":"us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"},{"name":"us-gaap:ScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable"},{"name":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable"},{"name":"us-gaap:ScheduleOfRelatedPartyTransactionsByRelatedPartyTable"},{"name":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"},{"name":"us-gaap:ScheduleOfStockByClassTable"},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"},{"name":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperationsAbstract"},{"name":"us-gaap:StatementLineItems"},{"name":"us-gaap:StatementOfCashFlowsAbstract"},{"name":"us-gaap:StatementOfFinancialPositionAbstract"},{"name":"us-gaap:StatementOfStockholdersEquityAbstract"},{"name":"us-gaap:StatementTable"},{"name":"us-gaap:StockholdersEquityAbstract"},{"name":"us-gaap:SubsequentEventLineItems"},{"name":"us-gaap:SubsequentEventTable"},{"name":"us-gaap:SubsequentEventsAbstract"},{"name":"us-gaap:WeightedAverageNumberOfSharesOutstandingAbstract"}],"dimensions":[{"name":"csbr:FinanceLeaseAxis","domainClass":"csbr:FinanceLeaseDomain"},{"name":"csbr:TriggeringEventAxis","domainClass":"csbr:TriggeringEventDomain"},{"name":"ecd:AdjToCompAxis","domainClass":"ecd:AllAdjToCompMember"},{"name":"ecd:ExecutiveCategoryAxis","domainClass":"ecd:AllExecutiveCategoriesMember"},{"name":"ecd:IndividualAxis","domainClass":"ecd:AllIndividualsMember"},{"name":"ecd:MeasureAxis"},{"name":"ecd:RestatementDateAxis"},{"name":"ecd:TradingArrAxis","domainClass":"ecd:AllTradingArrangementsMember"},{"name":"srt:CounterpartyNameAxis","domainClass":"srt:RepurchaseAgreementCounterpartyNameDomain"},{"name":"srt:MajorCustomersAxis","domainClass":"srt:NameOfMajorCustomerDomain"},{"name":"srt:ProductOrServiceAxis","domainClass":"srt:ProductsAndServicesDomain"},{"name":"srt:RangeAxis","domainClass":"srt:RangeMember"},{"name":"srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis","domainClass":"srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"},{"name":"srt:TitleOfIndividualAxis","domainClass":"srt:TitleOfIndividualWithRelationshipToEntityDomain"},{"name":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis","domainClass":"us-gaap:AntidilutiveSecuritiesNameDomain"},{"name":"us-gaap:AwardTypeAxis","domainClass":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"},{"name":"us-gaap:ConcentrationRiskByBenchmarkAxis","domainClass":"us-gaap:ConcentrationRiskBenchmarkDomain"},{"name":"us-gaap:ConcentrationRiskByTypeAxis","domainClass":"us-gaap:ConcentrationRiskTypeDomain"},{"name":"us-gaap:FairValueByMeasurementFrequencyAxis","domainClass":"us-gaap:FairValueMeasurementFrequencyDomain"},{"name":"us-gaap:IncomeStatementLocationAxis","domainClass":"us-gaap:IncomeStatementLocationDomain"},{"name":"us-gaap:PlanNameAxis","domainClass":"us-gaap:PlanNameDomain"},{"name":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","domainClass":"us-gaap:PropertyPlantAndEquipmentTypeDomain"},{"name":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"},{"name":"us-gaap:StatementClassOfStockAxis","domainClass":"us-gaap:ClassOfStockDomain"},{"name":"us-gaap:StatementEquityComponentsAxis","domainClass":"us-gaap:EquityComponentDomain"},{"name":"us-gaap:SubsequentEventTypeAxis","domainClass":"us-gaap:SubsequentEventTypeDomain"}],"domainClasses":[{"name":"csbr:FinanceLeaseDomain"},{"name":"csbr:TriggeringEventDomain"},{"name":"ecd:AllAdjToCompMember"},{"name":"ecd:AllExecutiveCategoriesMember"},{"name":"ecd:AllIndividualsMember"},{"name":"ecd:AllTradingArrangementsMember"},{"name":"srt:NameOfMajorCustomerDomain"},{"name":"srt:ProductsAndServicesDomain"},{"name":"srt:RangeMember"},{"name":"srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"},{"name":"srt:RepurchaseAgreementCounterpartyNameDomain"},{"name":"srt:TitleOfIndividualWithRelationshipToEntityDomain"},{"name":"us-gaap:AntidilutiveSecuritiesNameDomain"},{"name":"us-gaap:ClassOfStockDomain"},{"name":"us-gaap:ConcentrationRiskBenchmarkDomain"},{"name":"us-gaap:ConcentrationRiskTypeDomain"},{"name":"us-gaap:EquityComponentDomain"},{"name":"us-gaap:FairValueMeasurementFrequencyDomain"},{"name":"us-gaap:IncomeStatementLocationDomain"},{"name":"us-gaap:PlanNameDomain"},{"name":"us-gaap:PropertyPlantAndEquipmentTypeDomain"},{"name":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"},{"name":"us-gaap:SubsequentEventTypeDomain"}],"domainNetworks":[{"name":"rpt:domain-0","root":"us-gaap:EquityComponentDomain","relationships":[{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:CommonStockMember"},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:TreasuryStockCommonMember"},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:AdditionalPaidInCapitalMember"},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:RetainedEarningsMember"}]},{"name":"rpt:domain-1","root":"srt:RangeMember","relationships":[{"source":"srt:RangeMember","target":"srt:MinimumMember"},{"source":"srt:RangeMember","target":"srt:MaximumMember"}]},{"name":"rpt:domain-2","root":"us-gaap:AntidilutiveSecuritiesNameDomain","relationships":[{"source":"us-gaap:AntidilutiveSecuritiesNameDomain","target":"us-gaap:EmployeeStockOptionMember"}]},{"name":"rpt:domain-3","root":"srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain","relationships":[{"source":"srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain","target":"csbr:CorporateHeadquartersMember"},{"source":"srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain","target":"csbr:RockvilleMDMember"},{"source":"srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain","target":"csbr:MilanItalyMember"}]},{"name":"rpt:domain-4","root":"srt:RepurchaseAgreementCounterpartyNameDomain","relationships":[{"source":"srt:RepurchaseAgreementCounterpartyNameDomain","target":"csbr:OperatingSubsidiariesMember"}]},{"name":"rpt:domain-5","root":"us-gaap:PropertyPlantAndEquipmentTypeDomain","relationships":[{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"csbr:FinanceLeasedAssetsMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:EquipmentMember"}]},{"name":"rpt:domain-6","root":"csbr:FinanceLeaseDomain","relationships":[{"source":"csbr:FinanceLeaseDomain","target":"csbr:A2022FinanceLeaseMember"},{"source":"csbr:FinanceLeaseDomain","target":"csbr:A2023FinanceLeaseMember"}]},{"name":"rpt:domain-7","root":"us-gaap:PropertyPlantAndEquipmentTypeDomain","relationships":[{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:FurnitureAndFixturesMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:ComputerEquipmentMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"csbr:LaboratoryEquipmentMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:SoftwareAndSoftwareDevelopmentCostsMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"csbr:AssetInProgressMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:LeaseholdImprovementsMember"}]},{"name":"rpt:domain-8","root":"srt:TitleOfIndividualWithRelationshipToEntityDomain","relationships":[{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"srt:BoardOfDirectorsChairmanMember"}]},{"name":"rpt:domain-9","root":"srt:RepurchaseAgreementCounterpartyNameDomain","relationships":[{"source":"srt:RepurchaseAgreementCounterpartyNameDomain","target":"csbr:BoardMemberOneMember"}]},{"name":"rpt:domain-10","root":"srt:ProductsAndServicesDomain","relationships":[{"source":"srt:ProductsAndServicesDomain","target":"csbr:PharmacologyServicesMember"},{"source":"srt:ProductsAndServicesDomain","target":"us-gaap:LicenseAndMaintenanceMember"},{"source":"srt:ProductsAndServicesDomain","target":"us-gaap:ProductAndServiceOtherMember"},{"source":"srt:ProductsAndServicesDomain","target":"csbr:PersonalizedOncologyServicesMember"}]},{"name":"rpt:domain-11","root":"us-gaap:IncomeStatementLocationDomain","relationships":[{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:GeneralAndAdministrativeExpenseMember"},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:SellingAndMarketingExpenseMember"},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:ResearchAndDevelopmentExpenseMember"},{"source":"us-gaap:IncomeStatementLocationDomain","target":"csbr:TranslationalOncologySolutionsCostOfSalesMember"}]},{"name":"rpt:domain-12","root":"us-gaap:ConcentrationRiskTypeDomain","relationships":[{"source":"us-gaap:ConcentrationRiskTypeDomain","target":"us-gaap:CustomerConcentrationRiskMember"}]},{"name":"rpt:domain-13","root":"us-gaap:ConcentrationRiskBenchmarkDomain","relationships":[{"source":"us-gaap:ConcentrationRiskBenchmarkDomain","target":"us-gaap:SalesRevenueNetMember"},{"source":"us-gaap:ConcentrationRiskBenchmarkDomain","target":"us-gaap:AccountsReceivableMember"}]},{"name":"rpt:domain-14","root":"srt:NameOfMajorCustomerDomain","relationships":[{"source":"srt:NameOfMajorCustomerDomain","target":"csbr:CustomerOneMember"},{"source":"srt:NameOfMajorCustomerDomain","target":"csbr:CustomerTwoMember"}]},{"name":"rpt:domain-15","root":"us-gaap:PlanNameDomain","relationships":[{"source":"us-gaap:PlanNameDomain","target":"csbr:EquityIncentivePlan2021Member"},{"source":"us-gaap:PlanNameDomain","target":"csbr:EquityIncentivePlan2010Member"},{"source":"us-gaap:PlanNameDomain","target":"csbr:DirectorCompensationPlanMember"}]},{"name":"rpt:domain-16","root":"srt:RangeMember","relationships":[{"source":"srt:RangeMember","target":"srt:MaximumMember"},{"source":"srt:RangeMember","target":"srt:MinimumMember"}]},{"name":"rpt:domain-17","root":"srt:TitleOfIndividualWithRelationshipToEntityDomain","relationships":[{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"csbr:IndependentDirectorsMember"},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"srt:BoardOfDirectorsChairmanMember"},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"csbr:ChairpersonOfACommitteeMember"}]},{"name":"rpt:domain-18","root":"csbr:TriggeringEventDomain","relationships":[{"source":"csbr:TriggeringEventDomain","target":"csbr:OptionsAndCashMember"}]},{"name":"rpt:domain-19","root":"us-gaap:ClassOfStockDomain","relationships":[{"source":"us-gaap:ClassOfStockDomain","target":"us-gaap:CommonStockMember"}]},{"name":"rpt:domain-20","root":"srt:TitleOfIndividualWithRelationshipToEntityDomain","relationships":[{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"csbr:DirectorsAndEmployeesMember"},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"csbr:NonEmployeesMember"}]},{"name":"rpt:domain-21","root":"us-gaap:SubsequentEventTypeDomain","relationships":[{"source":"us-gaap:SubsequentEventTypeDomain","target":"us-gaap:SubsequentEventMember"}]},{"name":"rpt:domain-22","root":"srt:TitleOfIndividualWithRelationshipToEntityDomain","relationships":[{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"srt:ChiefFinancialOfficerMember"}]},{"name":"rpt:domain-23","root":"us-gaap:FairValueMeasurementFrequencyDomain","relationships":[{"source":"us-gaap:FairValueMeasurementFrequencyDomain","target":"us-gaap:FairValueMeasurementsNonrecurringMember"},{"source":"us-gaap:FairValueMeasurementFrequencyDomain","target":"us-gaap:FairValueMeasurementsRecurringMember"}]},{"name":"rpt:domain-24","root":"srt:ProductsAndServicesDomain","relationships":[{"source":"srt:ProductsAndServicesDomain","target":"csbr:FewContractsMember"}]},{"name":"rpt:domain-25","root":"ecd:AllIndividualsMember","relationships":[{"source":"ecd:AllIndividualsMember","target":"ecd:NonNeosMember"}]},{"name":"rpt:domain-26","root":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","relationships":[{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockOptionMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:StockAppreciationRightsSARSMember"}]},{"name":"rpt:domain-27","root":"ecd:AllTradingArrangementsMember","relationships":[]},{"name":"rpt:domain-28","root":"ecd:AllExecutiveCategoriesMember","relationships":[{"source":"ecd:AllExecutiveCategoriesMember","target":"ecd:PeoMember"},{"source":"ecd:AllExecutiveCategoriesMember","target":"ecd:NonPeoNeoMember"}]},{"name":"rpt:domain-29","root":"ecd:AllAdjToCompMember","relationships":[{"source":"ecd:AllAdjToCompMember","target":"ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember"},{"source":"ecd:AllAdjToCompMember","target":"ecd:AggtPnsnAdjsSvcCstMember"},{"source":"ecd:AllAdjToCompMember","target":"ecd:EqtyAwrdsAdjsMember"},{"source":"ecd:AggtPnsnAdjsSvcCstMember","target":"ecd:PnsnAdjsSvcCstMember"},{"source":"ecd:AggtPnsnAdjsSvcCstMember","target":"ecd:PnsnAdjsPrrSvcCstMember"},{"source":"ecd:EqtyAwrdsAdjsMember","target":"ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember"},{"source":"ecd:EqtyAwrdsAdjsMember","target":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember"},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember"},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember"},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember"},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember"},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember"},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember"}]}],"members":[{"name":"csbr:A2022FinanceLeaseMember","domainClasses":["csbr:FinanceLeaseDomain"]},{"name":"csbr:A2023FinanceLeaseMember","domainClasses":["csbr:FinanceLeaseDomain"]},{"name":"csbr:AssetInProgressMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"csbr:BoardMemberOneMember","domainClasses":["srt:RepurchaseAgreementCounterpartyNameDomain"]},{"name":"csbr:ChairpersonOfACommitteeMember","domainClasses":["srt:TitleOfIndividualWithRelationshipToEntityDomain"]},{"name":"csbr:CorporateHeadquartersMember","domainClasses":["srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"]},{"name":"csbr:CustomerOneMember","domainClasses":["srt:NameOfMajorCustomerDomain"]},{"name":"csbr:CustomerTwoMember","domainClasses":["srt:NameOfMajorCustomerDomain"]},{"name":"csbr:DirectorCompensationPlanMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"csbr:DirectorsAndEmployeesMember","domainClasses":["srt:TitleOfIndividualWithRelationshipToEntityDomain"]},{"name":"csbr:EquityIncentivePlan2010Member","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"csbr:EquityIncentivePlan2021Member","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"csbr:FewContractsMember","domainClasses":["srt:ProductsAndServicesDomain"]},{"name":"csbr:FinanceLeasedAssetsMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"csbr:IndependentDirectorsMember","domainClasses":["srt:TitleOfIndividualWithRelationshipToEntityDomain"]},{"name":"csbr:LaboratoryEquipmentMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"csbr:MilanItalyMember","domainClasses":["srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"]},{"name":"csbr:NonEmployeesMember","domainClasses":["srt:TitleOfIndividualWithRelationshipToEntityDomain"]},{"name":"csbr:OperatingSubsidiariesMember","domainClasses":["srt:RepurchaseAgreementCounterpartyNameDomain"]},{"name":"csbr:OptionsAndCashMember","domainClasses":["csbr:TriggeringEventDomain"]},{"name":"csbr:PersonalizedOncologyServicesMember","domainClasses":["srt:ProductsAndServicesDomain"]},{"name":"csbr:PharmacologyServicesMember","domainClasses":["srt:ProductsAndServicesDomain"]},{"name":"csbr:RockvilleMDMember","domainClasses":["srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"]},{"name":"csbr:TranslationalOncologySolutionsCostOfSalesMember","domainClasses":["us-gaap:IncomeStatementLocationDomain"]},{"name":"ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:AggtPnsnAdjsSvcCstMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:EqtyAwrdsAdjsMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:NonNeosMember","domainClasses":["ecd:AllIndividualsMember"]},{"name":"ecd:NonPeoNeoMember","domainClasses":["ecd:AllExecutiveCategoriesMember"]},{"name":"ecd:PeoMember","domainClasses":["ecd:AllExecutiveCategoriesMember"]},{"name":"ecd:PnsnAdjsPrrSvcCstMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:PnsnAdjsSvcCstMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"srt:BoardOfDirectorsChairmanMember","domainClasses":["srt:TitleOfIndividualWithRelationshipToEntityDomain"]},{"name":"srt:ChiefFinancialOfficerMember","domainClasses":["srt:TitleOfIndividualWithRelationshipToEntityDomain"]},{"name":"srt:MaximumMember","domainClasses":["srt:RangeMember"]},{"name":"srt:MinimumMember","domainClasses":["srt:RangeMember"]},{"name":"us-gaap:AccountsReceivableMember","domainClasses":["us-gaap:ConcentrationRiskBenchmarkDomain"]},{"name":"us-gaap:AdditionalPaidInCapitalMember","domainClasses":["us-gaap:EquityComponentDomain"]},{"name":"us-gaap:CommonStockMember","domainClasses":["us-gaap:ClassOfStockDomain","us-gaap:EquityComponentDomain"]},{"name":"us-gaap:ComputerEquipmentMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"us-gaap:CustomerConcentrationRiskMember","domainClasses":["us-gaap:ConcentrationRiskTypeDomain"]},{"name":"us-gaap:EmployeeStockOptionMember","domainClasses":["us-gaap:AntidilutiveSecuritiesNameDomain","us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"]},{"name":"us-gaap:EquipmentMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"us-gaap:FairValueMeasurementsNonrecurringMember","domainClasses":["us-gaap:FairValueMeasurementFrequencyDomain"]},{"name":"us-gaap:FairValueMeasurementsRecurringMember","domainClasses":["us-gaap:FairValueMeasurementFrequencyDomain"]},{"name":"us-gaap:FurnitureAndFixturesMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"us-gaap:GeneralAndAdministrativeExpenseMember","domainClasses":["us-gaap:IncomeStatementLocationDomain"]},{"name":"us-gaap:LeaseholdImprovementsMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"us-gaap:LicenseAndMaintenanceMember","domainClasses":["srt:ProductsAndServicesDomain"]},{"name":"us-gaap:ProductAndServiceOtherMember","domainClasses":["srt:ProductsAndServicesDomain"]},{"name":"us-gaap:ResearchAndDevelopmentExpenseMember","domainClasses":["us-gaap:IncomeStatementLocationDomain"]},{"name":"us-gaap:RetainedEarningsMember","domainClasses":["us-gaap:EquityComponentDomain"]},{"name":"us-gaap:SalesRevenueNetMember","domainClasses":["us-gaap:ConcentrationRiskBenchmarkDomain"]},{"name":"us-gaap:SellingAndMarketingExpenseMember","domainClasses":["us-gaap:IncomeStatementLocationDomain"]},{"name":"us-gaap:SoftwareAndSoftwareDevelopmentCostsMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"us-gaap:StockAppreciationRightsSARSMember","domainClasses":["us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"]},{"name":"us-gaap:SubsequentEventMember","domainClasses":["us-gaap:SubsequentEventTypeDomain"]},{"name":"us-gaap:TreasuryStockCommonMember","domainClasses":["us-gaap:EquityComponentDomain"]}],"cubes":[{"name":"rpt:cube-0","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:StatementEquityComponentsAxis","domainNetwork":"rpt:domain-0","optional":true}]},{"name":"rpt:cube-1","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:RangeAxis","domainNetwork":"rpt:domain-1","optional":true}]},{"name":"rpt:cube-2","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis","domainNetwork":"rpt:domain-2","optional":true}]},{"name":"rpt:cube-3","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis","domainNetwork":"rpt:domain-3","optional":true}]},{"name":"rpt:cube-4","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:CounterpartyNameAxis","domainNetwork":"rpt:domain-4","optional":true}]},{"name":"rpt:cube-5","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","domainNetwork":"rpt:domain-5","optional":true},{"dimension":"csbr:FinanceLeaseAxis","domainNetwork":"rpt:domain-6","optional":true}]},{"name":"rpt:cube-6","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","domainNetwork":"rpt:domain-7","optional":true}]},{"name":"rpt:cube-7","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:TitleOfIndividualAxis","domainNetwork":"rpt:domain-8","optional":true},{"dimension":"srt:CounterpartyNameAxis","domainNetwork":"rpt:domain-9","optional":true}]},{"name":"rpt:cube-8","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:ProductOrServiceAxis","domainNetwork":"rpt:domain-10","optional":true}]},{"name":"rpt:cube-9","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:IncomeStatementLocationAxis","domainNetwork":"rpt:domain-11","optional":true}]},{"name":"rpt:cube-10","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:ConcentrationRiskByTypeAxis","domainNetwork":"rpt:domain-12","optional":true},{"dimension":"us-gaap:ConcentrationRiskByBenchmarkAxis","domainNetwork":"rpt:domain-13","optional":true},{"dimension":"srt:MajorCustomersAxis","domainNetwork":"rpt:domain-14","optional":true}]},{"name":"rpt:cube-11","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:PlanNameAxis","domainNetwork":"rpt:domain-15","optional":true},{"dimension":"srt:RangeAxis","domainNetwork":"rpt:domain-16","optional":true},{"dimension":"srt:TitleOfIndividualAxis","domainNetwork":"rpt:domain-17","optional":true},{"dimension":"csbr:TriggeringEventAxis","domainNetwork":"rpt:domain-18","optional":true},{"dimension":"us-gaap:StatementClassOfStockAxis","domainNetwork":"rpt:domain-19","optional":true}]},{"name":"rpt:cube-12","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:TitleOfIndividualAxis","domainNetwork":"rpt:domain-20","optional":true}]},{"name":"rpt:cube-13","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:SubsequentEventTypeAxis","domainNetwork":"rpt:domain-21","optional":true},{"dimension":"srt:TitleOfIndividualAxis","domainNetwork":"rpt:domain-22","optional":true}]},{"name":"rpt:cube-14","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:FairValueByMeasurementFrequencyAxis","domainNetwork":"rpt:domain-23","optional":true},{"dimension":"srt:RangeAxis","domainNetwork":"rpt:domain-1","optional":true},{"dimension":"srt:ProductOrServiceAxis","domainNetwork":"rpt:domain-24","optional":true},{"dimension":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"}]},{"name":"rpt:cube-15","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:FairValueByMeasurementFrequencyAxis","domainNetwork":"rpt:domain-23","optional":true},{"dimension":"srt:RangeAxis","domainNetwork":"rpt:domain-1","optional":true},{"dimension":"srt:ProductOrServiceAxis","domainNetwork":"rpt:domain-24","optional":true}]},{"name":"rpt:cube-16","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:ProductOrServiceAxis","domainNetwork":"rpt:domain-24","optional":true},{"dimension":"srt:RangeAxis","domainNetwork":"rpt:domain-1","optional":true},{"dimension":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"}]},{"name":"rpt:cube-17","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:ProductOrServiceAxis","domainNetwork":"rpt:domain-24","optional":true},{"dimension":"srt:RangeAxis","domainNetwork":"rpt:domain-1","optional":true}]},{"name":"rpt:cube-18","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true}]},{"name":"rpt:cube-19","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true}]},{"name":"rpt:cube-20","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-25","optional":true},{"dimension":"us-gaap:AwardTypeAxis","domainNetwork":"rpt:domain-26","optional":true}]},{"name":"rpt:cube-21","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"ecd:RestatementDateAxis"}]},{"name":"rpt:cube-22","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"ecd:RestatementDateAxis"},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-25","optional":true}]},{"name":"rpt:cube-23","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"ecd:TradingArrAxis","domainNetwork":"rpt:domain-27","optional":true},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-25","optional":true}]},{"name":"rpt:cube-24","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true}]},{"name":"rpt:cube-25","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"ecd:RestatementDateAxis"},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-25","optional":true}]},{"name":"rpt:cube-26","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"ecd:ExecutiveCategoryAxis","domainNetwork":"rpt:domain-28","optional":true},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-25","optional":true},{"dimension":"ecd:AdjToCompAxis","domainNetwork":"rpt:domain-29","optional":true}]},{"name":"rpt:cube-27","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true}]},{"name":"rpt:cube-28","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"ecd:ExecutiveCategoryAxis","domainNetwork":"rpt:domain-28","optional":true},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-25","optional":true},{"dimension":"ecd:MeasureAxis"}]},{"name":"rpt:cube-29","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"ecd:MeasureAxis"}]},{"name":"rpt:cube-30","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-25","optional":true}]},{"name":"rpt:cube-31","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"ecd:ExecutiveCategoryAxis","domainNetwork":"rpt:domain-28","optional":true},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-25","optional":true},{"dimension":"ecd:MeasureAxis"}]},{"name":"rpt:cube-32","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"ecd:ExecutiveCategoryAxis","domainNetwork":"rpt:domain-28","optional":true},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-25","optional":true}]},{"name":"rpt:cube-undimensioned","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true}]}],"labels":[{"forObject":"csbr:A2022FinanceLeaseMember","labelType":"xbrl:terseLabel","value":"2022 Finance Lease","language":"en-US"},{"forObject":"csbr:A2022FinanceLeaseMember","labelType":"xbrl:label","value":"2022 Finance Lease [Member]","language":"en-US"},{"forObject":"csbr:A2022FinanceLeaseMember","labelType":"xbrl:documentation","value":"2022 Finance Lease","language":"en-US"},{"forObject":"csbr:A2023FinanceLeaseMember","labelType":"xbrl:terseLabel","value":"2023 Finance Lease","language":"en-US"},{"forObject":"csbr:A2023FinanceLeaseMember","labelType":"xbrl:label","value":"2023 Finance Lease [Member]","language":"en-US"},{"forObject":"csbr:A2023FinanceLeaseMember","labelType":"xbrl:documentation","value":"2023 Finance Lease","language":"en-US"},{"forObject":"csbr:AssetInProgressMember","labelType":"xbrl:terseLabel","value":"Assets in progress","language":"en-US"},{"forObject":"csbr:AssetInProgressMember","labelType":"xbrl:label","value":"Asset In Progress [Member]","language":"en-US"},{"forObject":"csbr:AssetInProgressMember","labelType":"xbrl:documentation","value":"Asset In Progress","language":"en-US"},{"forObject":"csbr:AssetsAndLiabilitiesLesseeTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Assets And Liabilities","language":"en-US"},{"forObject":"csbr:AssetsAndLiabilitiesLesseeTableTextBlock","labelType":"xbrl:label","value":"Assets And Liabilities, Lessee [Table Text Block]","language":"en-US"},{"forObject":"csbr:AssetsAndLiabilitiesLesseeTableTextBlock","labelType":"xbrl:documentation","value":"Assets And Liabilities, Lessee [Text Block]","language":"en-US"},{"forObject":"csbr:AuditorInformationAbstract","labelType":"xbrl:label","value":"Auditor Information [Abstract]","language":"en-US"},{"forObject":"csbr:AuditorInformationAbstract","labelType":"xbrl:documentation","value":"Auditor Information [Abstract]","language":"en-US"},{"forObject":"csbr:BoardMemberOneMember","labelType":"xbrl:terseLabel","value":"Board Member One","language":"en-US"},{"forObject":"csbr:BoardMemberOneMember","labelType":"xbrl:label","value":"Board Member One [Member]","language":"en-US"},{"forObject":"csbr:BoardMemberOneMember","labelType":"xbrl:documentation","value":"Board Member One [Member]","language":"en-US"},{"forObject":"csbr:ChairpersonOfACommitteeMember","labelType":"xbrl:terseLabel","value":"Chairperson of a Committee","language":"en-US"},{"forObject":"csbr:ChairpersonOfACommitteeMember","labelType":"xbrl:label","value":"Chairperson Of A Committee [Member]","language":"en-US"},{"forObject":"csbr:ChairpersonOfACommitteeMember","labelType":"xbrl:documentation","value":"Chairperson Of A Committee","language":"en-US"},{"forObject":"csbr:CollaborationArrangementRoyaltyFee","labelType":"xbrl:terseLabel","value":"Royalty fee per tumor sample","language":"en-US"},{"forObject":"csbr:CollaborationArrangementRoyaltyFee","labelType":"xbrl:label","value":"Collaboration Arrangement Royalty Fee","language":"en-US"},{"forObject":"csbr:CollaborationArrangementRoyaltyFee","labelType":"xbrl:documentation","value":"Collaboration Arrangement Royalty Fee","language":"en-US"},{"forObject":"csbr:CollaborationArrangementRoyaltyFeePercentOfContractPrice","labelType":"xbrl:terseLabel","value":"Royalty payment, as percent of contract price","language":"en-US"},{"forObject":"csbr:CollaborationArrangementRoyaltyFeePercentOfContractPrice","labelType":"xbrl:label","value":"Collaboration Arrangement, Royalty Fee, Percent Of Contract Price","language":"en-US"},{"forObject":"csbr:CollaborationArrangementRoyaltyFeePercentOfContractPrice","labelType":"xbrl:documentation","value":"Collaboration Arrangement, Royalty Fee, Percent Of Contract Price","language":"en-US"},{"forObject":"csbr:CommitmentsAndContingenciesLineItems","labelType":"xbrl:verboseLabel","value":"Commitments and Contingencies [Line Items]","language":"en-US"},{"forObject":"csbr:CommitmentsAndContingenciesLineItems","labelType":"xbrl:label","value":"Commitments and Contingencies [Line Items]","language":"en-US"},{"forObject":"csbr:CommitmentsAndContingenciesTable","labelType":"xbrl:terseLabel","value":"Commitments and Contingencies [Table]","language":"en-US"},{"forObject":"csbr:CommitmentsAndContingenciesTable","labelType":"xbrl:label","value":"Commitments and Contingencies [Table]","language":"en-US"},{"forObject":"csbr:CorporateHeadquartersMember","labelType":"xbrl:terseLabel","value":"Corporate Headquarters","language":"en-US"},{"forObject":"csbr:CorporateHeadquartersMember","labelType":"xbrl:label","value":"Corporate Headquarters [Member]","language":"en-US"},{"forObject":"csbr:CustomerOneMember","labelType":"xbrl:terseLabel","value":"Customer One","language":"en-US"},{"forObject":"csbr:CustomerOneMember","labelType":"xbrl:label","value":"Customer One [Member]","language":"en-US"},{"forObject":"csbr:CustomerOneMember","labelType":"xbrl:documentation","value":"Customer One","language":"en-US"},{"forObject":"csbr:CustomerTwoMember","labelType":"xbrl:terseLabel","value":"Customer Two","language":"en-US"},{"forObject":"csbr:CustomerTwoMember","labelType":"xbrl:label","value":"Customer Two [Member]","language":"en-US"},{"forObject":"csbr:CustomerTwoMember","labelType":"xbrl:documentation","value":"Customer Two","language":"en-US"},{"forObject":"csbr:DeferredTaxAssetsTaxDeferredExpenseOperatingLeases","labelType":"xbrl:terseLabel","value":"Operating leases","language":"en-US"},{"forObject":"csbr:DeferredTaxAssetsTaxDeferredExpenseOperatingLeases","labelType":"xbrl:label","value":"Deferred Tax Assets, Tax Deferred Expense, Operating Leases","language":"en-US"},{"forObject":"csbr:DeferredTaxAssetsTaxDeferredExpenseOperatingLeases","labelType":"xbrl:documentation","value":"Deferred Tax Assets, Tax Deferred Expense, Operating Leases","language":"en-US"},{"forObject":"csbr:DeferredTaxLiabilitiesCapitalizedResearchAndDevelopmentCosts","labelType":"xbrl:terseLabel","value":"Capitalized research and development costs","language":"en-US"},{"forObject":"csbr:DeferredTaxLiabilitiesCapitalizedResearchAndDevelopmentCosts","labelType":"xbrl:label","value":"Deferred Tax Liabilities, Capitalized Research and Development Costs","language":"en-US"},{"forObject":"csbr:DeferredTaxLiabilitiesCapitalizedResearchAndDevelopmentCosts","labelType":"xbrl:documentation","value":"Deferred Tax Liabilities, Capitalized Research and Development Costs","language":"en-US"},{"forObject":"csbr:DeferredTaxLiabilityDeferredExpenseDepreciationAndAmortization","labelType":"xbrl:negatedTerseLabel","value":"Depreciation and amortization","language":"en-US"},{"forObject":"csbr:DeferredTaxLiabilityDeferredExpenseDepreciationAndAmortization","labelType":"xbrl:label","value":"Deferred Tax Liability Deferred Expense Depreciation And Amortization","language":"en-US"},{"forObject":"csbr:DeferredTaxLiabilityDeferredExpenseDepreciationAndAmortization","labelType":"xbrl:documentation","value":"Amount before allocation of valuation allowances of deferred tax liability attributable to deductible temporary differences from depreciation and amortization.","language":"en-US"},{"forObject":"csbr:DepreciationAndAmortizationExcludingFinanceLeases","labelType":"xbrl:terseLabel","value":"Finance lease, depreciation and amortization expenses","language":"en-US"},{"forObject":"csbr:DepreciationAndAmortizationExcludingFinanceLeases","labelType":"xbrl:label","value":"Depreciation And Amortization, Excluding Finance Leases","language":"en-US"},{"forObject":"csbr:DepreciationAndAmortizationExcludingFinanceLeases","labelType":"xbrl:documentation","value":"Depreciation And Amortization, Excluding Finance Leases","language":"en-US"},{"forObject":"csbr:DirectorCompensationPlanMember","labelType":"xbrl:terseLabel","value":"Director Compensation Plan","language":"en-US"},{"forObject":"csbr:DirectorCompensationPlanMember","labelType":"xbrl:label","value":"Director Compensation Plan [Member]","language":"en-US"},{"forObject":"csbr:DirectorsAndEmployeesMember","labelType":"xbrl:terseLabel","value":"Directors and Employees","language":"en-US"},{"forObject":"csbr:DirectorsAndEmployeesMember","labelType":"xbrl:label","value":"Directors and Employees [Member]","language":"en-US"},{"forObject":"csbr:EffectiveIncomeTaxRateReconciliationDeferredTaxAssetAdjustmentPercent","labelType":"xbrl:terseLabel","value":"Deferred tax asset adjustment","language":"en-US"},{"forObject":"csbr:EffectiveIncomeTaxRateReconciliationDeferredTaxAssetAdjustmentPercent","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Deferred Tax Asset Adjustment, Percent","language":"en-US"},{"forObject":"csbr:EffectiveIncomeTaxRateReconciliationDeferredTaxAssetAdjustmentPercent","labelType":"xbrl:documentation","value":"Effective Income Tax Rate Reconciliation, Deferred Tax Asset Adjustment, Percent","language":"en-US"},{"forObject":"csbr:EffectiveIncomeTaxRateReconciliationIncreaseInUncertainTaxPosition","labelType":"xbrl:negatedLabel","value":"Decrease in uncertain tax position","language":"en-US"},{"forObject":"csbr:EffectiveIncomeTaxRateReconciliationIncreaseInUncertainTaxPosition","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation Increase In Uncertain Tax Position","language":"en-US"},{"forObject":"csbr:EffectiveIncomeTaxRateReconciliationIncreaseInUncertainTaxPosition","labelType":"xbrl:documentation","value":"Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to Increase in uncertain tax position.","language":"en-US"},{"forObject":"csbr:EffectiveIncomeTaxRateReconciliationPermanentDifferences","labelType":"xbrl:negatedLabel","value":"Permanent differences","language":"en-US"},{"forObject":"csbr:EffectiveIncomeTaxRateReconciliationPermanentDifferences","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation Permanent Differences","language":"en-US"},{"forObject":"csbr:EffectiveIncomeTaxRateReconciliationPermanentDifferences","labelType":"xbrl:documentation","value":"Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to permanent differences.","language":"en-US"},{"forObject":"csbr:EquityIncentivePlan2010Member","labelType":"xbrl:terseLabel","value":"Equity Incentive Plan 2010","language":"en-US"},{"forObject":"csbr:EquityIncentivePlan2010Member","labelType":"xbrl:label","value":"Equity Incentive Plan 2010 [Member]","language":"en-US"},{"forObject":"csbr:EquityIncentivePlan2021Member","labelType":"xbrl:terseLabel","value":"Equity Incentive Plan 2021","language":"en-US"},{"forObject":"csbr:EquityIncentivePlan2021Member","labelType":"xbrl:label","value":"Equity Incentive Plan 2021 [Member]","language":"en-US"},{"forObject":"csbr:EquityIncentivePlan2021Member","labelType":"xbrl:documentation","value":"Equity Incentive Plan 2021","language":"en-US"},{"forObject":"csbr:FewContractsMember","labelType":"xbrl:terseLabel","value":"Few Contracts","language":"en-US"},{"forObject":"csbr:FewContractsMember","labelType":"xbrl:label","value":"Few Contracts [Member]","language":"en-US"},{"forObject":"csbr:FewContractsMember","labelType":"xbrl:documentation","value":"Few contracts.","language":"en-US"},{"forObject":"csbr:FinanceLeaseAxis","labelType":"xbrl:terseLabel","value":"Finance Lease [Axis]","language":"en-US"},{"forObject":"csbr:FinanceLeaseAxis","labelType":"xbrl:label","value":"Finance Lease [Axis]","language":"en-US"},{"forObject":"csbr:FinanceLeaseAxis","labelType":"xbrl:documentation","value":"Finance Lease","language":"en-US"},{"forObject":"csbr:FinanceLeaseCost","labelType":"xbrl:terseLabel","value":"Finance lease costs","language":"en-US"},{"forObject":"csbr:FinanceLeaseCost","labelType":"xbrl:label","value":"Finance Lease, Cost","language":"en-US"},{"forObject":"csbr:FinanceLeaseCost","labelType":"xbrl:documentation","value":"Finance Lease, Cost","language":"en-US"},{"forObject":"csbr:FinanceLeaseDomain","labelType":"xbrl:terseLabel","value":"Finance Lease [Domain]","language":"en-US"},{"forObject":"csbr:FinanceLeaseDomain","labelType":"xbrl:label","value":"Finance Lease [Domain]","language":"en-US"},{"forObject":"csbr:FinanceLeaseDomain","labelType":"xbrl:documentation","value":"Finance Lease [Domain]","language":"en-US"},{"forObject":"csbr:FinanceLeaseLiabilityToBePaidAfterYearThree","labelType":"xbrl:terseLabel","value":"Thereafter","language":"en-US"},{"forObject":"csbr:FinanceLeaseLiabilityToBePaidAfterYearThree","labelType":"xbrl:label","value":"Finance Lease, Liability, to be Paid, after Year Three","language":"en-US"},{"forObject":"csbr:FinanceLeaseLiabilityToBePaidAfterYearThree","labelType":"xbrl:documentation","value":"Finance Lease, Liability, to be Paid, after Year Three","language":"en-US"},{"forObject":"csbr:FinanceLeasedAssetsMember","labelType":"xbrl:terseLabel","value":"Finance Leased Assets","language":"en-US"},{"forObject":"csbr:FinanceLeasedAssetsMember","labelType":"xbrl:label","value":"Finance Leased Assets [Member]","language":"en-US"},{"forObject":"csbr:FinanceLeasedAssetsMember","labelType":"xbrl:documentation","value":"Finance Leased Assets [Member]","language":"en-US"},{"forObject":"csbr:IncreaseDecreaseInOperatingLeaseRightOfUseAssets","labelType":"xbrl:terseLabel","value":"Operating lease right-of-use assets","language":"en-US"},{"forObject":"csbr:IncreaseDecreaseInOperatingLeaseRightOfUseAssets","labelType":"xbrl:label","value":"Increase (Decrease) In Operating Lease, Right Of Use Assets","language":"en-US"},{"forObject":"csbr:IncreaseDecreaseInOperatingLeaseRightOfUseAssets","labelType":"xbrl:documentation","value":"Increase (Decrease) In Operating Lease, Right Of Use Assets","language":"en-US"},{"forObject":"csbr:IncreaseDecreaseInUncertainTaxPosition","labelType":"xbrl:negatedTerseLabel","value":"Decrease in uncertain tax position","language":"en-US"},{"forObject":"csbr:IncreaseDecreaseInUncertainTaxPosition","labelType":"xbrl:label","value":"Increase (Decrease) In Uncertain Tax Position","language":"en-US"},{"forObject":"csbr:IncreaseDecreaseInUncertainTaxPosition","labelType":"xbrl:documentation","value":"Increase (Decrease) In Uncertain Tax Position","language":"en-US"},{"forObject":"csbr:IndependentDirectorsMember","labelType":"xbrl:terseLabel","value":"Independent Directors","language":"en-US"},{"forObject":"csbr:IndependentDirectorsMember","labelType":"xbrl:label","value":"Independent Directors [Member]","language":"en-US"},{"forObject":"csbr:IndependentDirectorsMember","labelType":"xbrl:documentation","value":"Independent Directors","language":"en-US"},{"forObject":"csbr:InsentiveBonusPercentage","labelType":"xbrl:terseLabel","value":"Insentive bonus","language":"en-US"},{"forObject":"csbr:InsentiveBonusPercentage","labelType":"xbrl:label","value":"Insentive Bonus, Percentage","language":"en-US"},{"forObject":"csbr:InsentiveBonusPercentage","labelType":"xbrl:documentation","value":"Insentive Bonus, Percentage","language":"en-US"},{"forObject":"csbr:LaboratoryEquipmentMember","labelType":"xbrl:terseLabel","value":"Laboratory equipment","language":"en-US"},{"forObject":"csbr:LaboratoryEquipmentMember","labelType":"xbrl:label","value":"Laboratory Equipment [Member]","language":"en-US"},{"forObject":"csbr:LaboratoryEquipmentMember","labelType":"xbrl:documentation","value":"Laboratory Equipment","language":"en-US"},{"forObject":"csbr:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour","labelType":"xbrl:terseLabel","value":"Thereafter","language":"en-US"},{"forObject":"csbr:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, after Year Four","language":"en-US"},{"forObject":"csbr:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour","labelType":"xbrl:documentation","value":"Lessee, Operating Lease, Liability, to be Paid, after Year Four","language":"en-US"},{"forObject":"csbr:MilanItalyMember","labelType":"xbrl:terseLabel","value":"Milan, Italy","language":"en-US"},{"forObject":"csbr:MilanItalyMember","labelType":"xbrl:label","value":"Milan, Italy [Member]","language":"en-US"},{"forObject":"csbr:MilanItalyMember","labelType":"xbrl:documentation","value":"Milan, Italy","language":"en-US"},{"forObject":"csbr:NonEmployeesMember","labelType":"xbrl:verboseLabel","value":"Non- Employees","language":"en-US"},{"forObject":"csbr:NonEmployeesMember","labelType":"xbrl:label","value":"Non Employees [Member]","language":"en-US"},{"forObject":"csbr:NumberOfMajorInstitutionsWithCashBalances","labelType":"xbrl:terseLabel","value":"Number of major institutions with cash balances","language":"en-US"},{"forObject":"csbr:NumberOfMajorInstitutionsWithCashBalances","labelType":"xbrl:label","value":"Number Of Major Institutions With Cash Balances","language":"en-US"},{"forObject":"csbr:NumberOfMajorInstitutionsWithCashBalances","labelType":"xbrl:documentation","value":"Number Of Major Institutions With Cash Balances","language":"en-US"},{"forObject":"csbr:NumberofOperatingSubsidiaries","labelType":"xbrl:terseLabel","value":"Number of operating subsidiaries","language":"en-US"},{"forObject":"csbr:NumberofOperatingSubsidiaries","labelType":"xbrl:label","value":"Number of Operating Subsidiaries","language":"en-US"},{"forObject":"csbr:NumberofOperatingSubsidiaries","labelType":"xbrl:documentation","value":"Number of Operating Subsidiaries","language":"en-US"},{"forObject":"csbr:OperatingLossCarryforwardsLimitationsOnUseAmount","labelType":"xbrl:terseLabel","value":"Operating loss, limitations on use","language":"en-US"},{"forObject":"csbr:OperatingLossCarryforwardsLimitationsOnUseAmount","labelType":"xbrl:label","value":"Operating Loss Carryforwards, Limitations On Use, Amount","language":"en-US"},{"forObject":"csbr:OperatingLossCarryforwardsLimitationsOnUseAmount","labelType":"xbrl:documentation","value":"Operating Loss Carryforwards, Limitations On Use, Amount","language":"en-US"},{"forObject":"csbr:OperatingSubsidiariesMember","labelType":"xbrl:terseLabel","value":"Operating Subsidiaries","language":"en-US"},{"forObject":"csbr:OperatingSubsidiariesMember","labelType":"xbrl:label","value":"Operating Subsidiaries [Member]","language":"en-US"},{"forObject":"csbr:OperatingSubsidiariesMember","labelType":"xbrl:documentation","value":"Operating Subsidiaries","language":"en-US"},{"forObject":"csbr:OptionsAndCashMember","labelType":"xbrl:terseLabel","value":"Options and Cash","language":"en-US"},{"forObject":"csbr:OptionsAndCashMember","labelType":"xbrl:label","value":"Options And Cash [Member]","language":"en-US"},{"forObject":"csbr:OptionsAndCashMember","labelType":"xbrl:documentation","value":"Options And Cash","language":"en-US"},{"forObject":"csbr:PersonalizedOncologyServicesMember","labelType":"xbrl:terseLabel","value":"Personalized oncology services","language":"en-US"},{"forObject":"csbr:PersonalizedOncologyServicesMember","labelType":"xbrl:label","value":"Personalized Oncology Services [Member]","language":"en-US"},{"forObject":"csbr:PersonalizedOncologyServicesMember","labelType":"xbrl:documentation","value":"Personalized Oncology Services [Member]","language":"en-US"},{"forObject":"csbr:PharmacologyServicesMember","labelType":"xbrl:terseLabel","value":"Pharmacology services","language":"en-US"},{"forObject":"csbr:PharmacologyServicesMember","labelType":"xbrl:label","value":"Pharmacology Services [Member]","language":"en-US"},{"forObject":"csbr:PharmacologyServicesMember","labelType":"xbrl:documentation","value":"Pharmacology Services [Member]","language":"en-US"},{"forObject":"csbr:PresentValueMinimumFutureObligationsInterestRate","labelType":"xbrl:terseLabel","value":"Present value of minimum future obligations interest rate","language":"en-US"},{"forObject":"csbr:PresentValueMinimumFutureObligationsInterestRate","labelType":"xbrl:label","value":"Present Value Minimum Future Obligations Interest Rate","language":"en-US"},{"forObject":"csbr:PresentValueMinimumFutureObligationsInterestRate","labelType":"xbrl:documentation","value":"Present Value Minimum Future Obligations Interest Rate","language":"en-US"},{"forObject":"csbr:RockvilleMDMember","labelType":"xbrl:terseLabel","value":"Rockville, MD","language":"en-US"},{"forObject":"csbr:RockvilleMDMember","labelType":"xbrl:label","value":"Rockville, MD [Member]","language":"en-US"},{"forObject":"csbr:RockvilleMDMember","labelType":"xbrl:documentation","value":"Rockville, MD [Member]","language":"en-US"},{"forObject":"csbr:SalesAndMarketingExpensePolicyPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Sales and Marketing","language":"en-US"},{"forObject":"csbr:SalesAndMarketingExpensePolicyPolicyTextBlock","labelType":"xbrl:label","value":"Sales And Marketing Expense, Policy [Policy Text Block]","language":"en-US"},{"forObject":"csbr:SalesAndMarketingExpensePolicyPolicyTextBlock","labelType":"xbrl:documentation","value":"Sales And Marketing Expense, Policy","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationAnnualBaseCompensationAmount","labelType":"xbrl:terseLabel","value":"Annual base compensation mount","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationAnnualBaseCompensationAmount","labelType":"xbrl:label","value":"Share-Based Compensation, Annual Base Compensation Amount","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationAnnualBaseCompensationAmount","labelType":"xbrl:documentation","value":"Share-Based Compensation, Annual Base Compensation Amount","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsAggregateIntrinsicValueGranted","labelType":"xbrl:terseLabel","value":"Aggregate Intrinsic Value, Granted","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsAggregateIntrinsicValueGranted","labelType":"xbrl:label","value":"Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Options Aggregate Intrinsic Value Granted","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsAggregateIntrinsicValueGranted","labelType":"xbrl:documentation","value":"Intrinsic value of equity-based compensation awards granted.","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsGrantInPeriodWeightedAverageRemainingContractualTerm","labelType":"xbrl:verboseLabel","value":"Weighted Average Remaining Contractual Term, Outstanding, Ending Balance (in years)","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsGrantInPeriodWeightedAverageRemainingContractualTerm","labelType":"xbrl:label","value":"Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Options Grant in Period Weighted Average Remaining Contractual Term","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsGrantInPeriodWeightedAverageRemainingContractualTerm","labelType":"xbrl:documentation","value":"Weighted average remaining contractual term for option awards granted, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCanceledInPeriod","labelType":"xbrl:negatedLabel","value":"Canceled (in shares)","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCanceledInPeriod","labelType":"xbrl:label","value":"Share Based Compensation Arrangement By Share Based Payment Award Options Canceled In Period","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCanceledInPeriod","labelType":"xbrl:documentation","value":"The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedWeightedAverageRemainingContractualTerm","labelType":"xbrl:terseLabel","value":"Weighted Average Remaining Contractual Life, Granted","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedWeightedAverageRemainingContractualTerm","labelType":"xbrl:label","value":"Share Based Compensation Arrangement By Share Based Payment Award Options Granted Weighted Average Remaining Contractual Term","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedWeightedAverageRemainingContractualTerm","labelType":"xbrl:documentation","value":"Weighted average remaining contractual term for option awards granted, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedPercentage","labelType":"xbrl:terseLabel","value":"Vested percent","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedPercentage","labelType":"xbrl:label","value":"Share Based Compensation Arrangement by Share Based Payment Award Options Vested Percentage","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedPercentage","labelType":"xbrl:documentation","value":"Percentage of stock vested for share based compensation arrangement by share based payment award options during the period.","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsCanceledInPeriodWeightedAverageExercisePrice","labelType":"xbrl:verboseLabel","value":"Weighted Average Exercise Price, Canceled (in usd per share)","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsCanceledInPeriodWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share Based Compensation Arrangements By Share Based Payment Award Options Canceled In Period Weighted Average Exercise Price","language":"en-US"},{"forObject":"csbr:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsCanceledInPeriodWeightedAverageExercisePrice","labelType":"xbrl:documentation","value":"Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.","language":"en-US"},{"forObject":"csbr:SharebasedCompensationArrangementbySharebasedPaymentAwardTermofOptiontoPurchase","labelType":"xbrl:terseLabel","value":"Term of option to purchase","language":"en-US"},{"forObject":"csbr:SharebasedCompensationArrangementbySharebasedPaymentAwardTermofOptiontoPurchase","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Term of Option to Purchase","language":"en-US"},{"forObject":"csbr:SharebasedCompensationArrangementbySharebasedPaymentAwardTermofOptiontoPurchase","labelType":"xbrl:documentation","value":"Share-based Compensation Arrangement by Share-based Payment Award, Term of Option to Purchase","language":"en-US"},{"forObject":"csbr:StockOptionsAwardSharesToPurchaseCommonStock","labelType":"xbrl:terseLabel","value":"Stock options award shares to purchase common stock (in shares)","language":"en-US"},{"forObject":"csbr:StockOptionsAwardSharesToPurchaseCommonStock","labelType":"xbrl:label","value":"Stock options award Shares to purchase common Stock","language":"en-US"},{"forObject":"csbr:StockOptionsAwardSharesToPurchaseCommonStock","labelType":"xbrl:documentation","value":"Number of shares to purchase common stock option awards during the reporting period.","language":"en-US"},{"forObject":"csbr:StockOptionsAwardSharesToPurchaseUnregisteredCommonStock","labelType":"xbrl:terseLabel","value":"Stock option award shares to purchase unregistered common stock (in shares)","language":"en-US"},{"forObject":"csbr:StockOptionsAwardSharesToPurchaseUnregisteredCommonStock","labelType":"xbrl:label","value":"Stock Options Award Shares To Purchase Unregistered Common Stock","language":"en-US"},{"forObject":"csbr:StockOptionsAwardSharesToPurchaseUnregisteredCommonStock","labelType":"xbrl:documentation","value":"Number of shares to purchase of unregistered common stock option awards during the reporting period.","language":"en-US"},{"forObject":"csbr:TranslationalOncologySolutionsCostOfSalesMember","labelType":"xbrl:verboseLabel","value":"TOS cost of sales","language":"en-US"},{"forObject":"csbr:TranslationalOncologySolutionsCostOfSalesMember","labelType":"xbrl:label","value":"Translational Oncology Solutions Cost Of Sales [Member]","language":"en-US"},{"forObject":"csbr:TriggeringEventAxis","labelType":"xbrl:terseLabel","value":"Triggering Event [Axis]","language":"en-US"},{"forObject":"csbr:TriggeringEventAxis","labelType":"xbrl:label","value":"Triggering Event [Axis]","language":"en-US"},{"forObject":"csbr:TriggeringEventAxis","labelType":"xbrl:documentation","value":"Triggering Event","language":"en-US"},{"forObject":"csbr:TriggeringEventDomain","labelType":"xbrl:terseLabel","value":"Triggering Event [Domain]","language":"en-US"},{"forObject":"csbr:TriggeringEventDomain","labelType":"xbrl:label","value":"Triggering Event [Domain]","language":"en-US"},{"forObject":"csbr:TriggeringEventDomain","labelType":"xbrl:documentation","value":"Triggering Event","language":"en-US"},{"forObject":"csbr:WorkingCapitalDeficit","labelType":"xbrl:terseLabel","value":"Working capital deficit","language":"en-US"},{"forObject":"csbr:WorkingCapitalDeficit","labelType":"xbrl:label","value":"Working Capital Deficit","language":"en-US"},{"forObject":"csbr:WorkingCapitalDeficit","labelType":"xbrl:documentation","value":"Working Capital Deficit","language":"en-US"},{"forObject":"cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Board Committee or Subcommittee Responsible for Oversight [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Board of Directors Oversight [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Management Expertise of Management Responsible [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag","labelType":"xbrl:label","value":"Cybersecurity Risk Management Positions or Committees Responsible [Flag]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag","labelType":"xbrl:label","value":"Cybersecurity Risk Management Positions or Committees Responsible Report to Board [Flag]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Management Positions or Committees Responsible [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Management Processes for Assessing, Identifying, and Managing Threats [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementProcessesIntegratedFlag","labelType":"xbrl:label","value":"Cybersecurity Risk Management Processes Integrated [Flag]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Management Processes Integrated [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementStrategyAndGovernanceAbstract","labelType":"xbrl:label","value":"Cybersecurity Risk Management, Strategy, and Governance [Abstract]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementStrategyAndGovernanceLineItems","labelType":"xbrl:label","value":"Cybersecurity Risk Management, Strategy, and Governance [Line Items]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementStrategyAndGovernanceTable","labelType":"xbrl:label","value":"Cybersecurity Risk Management, Strategy, and Governance [Table]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementThirdPartyEngagedFlag","labelType":"xbrl:label","value":"Cybersecurity Risk Management Third Party Engaged [Flag]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag","labelType":"xbrl:label","value":"Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Flag]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Process for Informing Board Committee or Subcommittee Responsible for Oversight [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Process for Informing Management or Committees Responsible [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskRoleOfManagementTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Role of Management [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag","labelType":"xbrl:label","value":"Cybersecurity Risk Third Party Oversight and Identification Processes [Flag]","language":"en-US"},{"forObject":"dei:AmendmentFlag","labelType":"xbrl:terseLabel","value":"Amendment Flag","language":"en-US"},{"forObject":"dei:AmendmentFlag","labelType":"xbrl:label","value":"Amendment Flag","language":"en-US"},{"forObject":"dei:AuditorFirmId","labelType":"xbrl:terseLabel","value":"Auditor Firm ID","language":"en-US"},{"forObject":"dei:AuditorFirmId","labelType":"xbrl:label","value":"Auditor Firm ID","language":"en-US"},{"forObject":"dei:AuditorLocation","labelType":"xbrl:terseLabel","value":"Auditor Location","language":"en-US"},{"forObject":"dei:AuditorLocation","labelType":"xbrl:label","value":"Auditor Location","language":"en-US"},{"forObject":"dei:AuditorName","labelType":"xbrl:terseLabel","value":"Auditor Name","language":"en-US"},{"forObject":"dei:AuditorName","labelType":"xbrl:label","value":"Auditor Name","language":"en-US"},{"forObject":"dei:CityAreaCode","labelType":"xbrl:terseLabel","value":"City Area Code","language":"en-US"},{"forObject":"dei:CityAreaCode","labelType":"xbrl:label","value":"City Area Code","language":"en-US"},{"forObject":"dei:CoverAbstract","labelType":"xbrl:label","value":"Cover [Abstract]","language":"en-US"},{"forObject":"dei:CurrentFiscalYearEndDate","labelType":"xbrl:terseLabel","value":"Current Fiscal Year End Date","language":"en-US"},{"forObject":"dei:CurrentFiscalYearEndDate","labelType":"xbrl:label","value":"Current Fiscal Year End Date","language":"en-US"},{"forObject":"dei:DocumentAnnualReport","labelType":"xbrl:terseLabel","value":"Document Annual Report","language":"en-US"},{"forObject":"dei:DocumentAnnualReport","labelType":"xbrl:label","value":"Document Annual Report","language":"en-US"},{"forObject":"dei:DocumentFinStmtErrorCorrectionFlag","labelType":"xbrl:terseLabel","value":"Document Financial Statement Error Correction","language":"en-US"},{"forObject":"dei:DocumentFinStmtErrorCorrectionFlag","labelType":"xbrl:label","value":"Document Financial Statement Error Correction [Flag]","language":"en-US"},{"forObject":"dei:DocumentFiscalPeriodFocus","labelType":"xbrl:terseLabel","value":"Document Fiscal Period Focus","language":"en-US"},{"forObject":"dei:DocumentFiscalPeriodFocus","labelType":"xbrl:label","value":"Document Fiscal Period Focus","language":"en-US"},{"forObject":"dei:DocumentFiscalYearFocus","labelType":"xbrl:terseLabel","value":"Document Fiscal Year Focus","language":"en-US"},{"forObject":"dei:DocumentFiscalYearFocus","labelType":"xbrl:label","value":"Document Fiscal Year Focus","language":"en-US"},{"forObject":"dei:DocumentPeriodEndDate","labelType":"xbrl:terseLabel","value":"Document Period End Date","language":"en-US"},{"forObject":"dei:DocumentPeriodEndDate","labelType":"xbrl:label","value":"Document Period End Date","language":"en-US"},{"forObject":"dei:DocumentTransitionReport","labelType":"xbrl:terseLabel","value":"Document Transition Report","language":"en-US"},{"forObject":"dei:DocumentTransitionReport","labelType":"xbrl:label","value":"Document Transition Report","language":"en-US"},{"forObject":"dei:DocumentType","labelType":"xbrl:terseLabel","value":"Document Type","language":"en-US"},{"forObject":"dei:DocumentType","labelType":"xbrl:label","value":"Document Type","language":"en-US"},{"forObject":"dei:DocumentsIncorporatedByReferenceTextBlock","labelType":"xbrl:terseLabel","value":"Documents Incorporated by Reference","language":"en-US"},{"forObject":"dei:DocumentsIncorporatedByReferenceTextBlock","labelType":"xbrl:label","value":"Documents Incorporated by Reference [Text Block]","language":"en-US"},{"forObject":"dei:EntityAddressAddressLine1","labelType":"xbrl:terseLabel","value":"Entity Address, Address Line One","language":"en-US"},{"forObject":"dei:EntityAddressAddressLine1","labelType":"xbrl:label","value":"Entity Address, Address Line One","language":"en-US"},{"forObject":"dei:EntityAddressAddressLine2","labelType":"xbrl:terseLabel","value":"Entity Address, Address Line Two","language":"en-US"},{"forObject":"dei:EntityAddressAddressLine2","labelType":"xbrl:label","value":"Entity Address, Address Line Two","language":"en-US"},{"forObject":"dei:EntityAddressCityOrTown","labelType":"xbrl:terseLabel","value":"Entity Address, City or Town","language":"en-US"},{"forObject":"dei:EntityAddressCityOrTown","labelType":"xbrl:label","value":"Entity Address, City or Town","language":"en-US"},{"forObject":"dei:EntityAddressPostalZipCode","labelType":"xbrl:terseLabel","value":"Entity Address, Postal Zip Code","language":"en-US"},{"forObject":"dei:EntityAddressPostalZipCode","labelType":"xbrl:label","value":"Entity Address, Postal Zip Code","language":"en-US"},{"forObject":"dei:EntityAddressStateOrProvince","labelType":"xbrl:terseLabel","value":"Entity Address, State or Province","language":"en-US"},{"forObject":"dei:EntityAddressStateOrProvince","labelType":"xbrl:label","value":"Entity Address, State or Province","language":"en-US"},{"forObject":"dei:EntityCentralIndexKey","labelType":"xbrl:terseLabel","value":"Entity Central Index Key","language":"en-US"},{"forObject":"dei:EntityCentralIndexKey","labelType":"xbrl:label","value":"Entity Central Index Key","language":"en-US"},{"forObject":"dei:EntityCommonStockSharesOutstanding","labelType":"xbrl:terseLabel","value":"Entity Common Stock, Shares Outstanding (in shares)","language":"en-US"},{"forObject":"dei:EntityCommonStockSharesOutstanding","labelType":"xbrl:label","value":"Entity Common Stock, Shares Outstanding","language":"en-US"},{"forObject":"dei:EntityCurrentReportingStatus","labelType":"xbrl:terseLabel","value":"Entity Current Reporting Status","language":"en-US"},{"forObject":"dei:EntityCurrentReportingStatus","labelType":"xbrl:label","value":"Entity Current Reporting Status","language":"en-US"},{"forObject":"dei:EntityEmergingGrowthCompany","labelType":"xbrl:terseLabel","value":"Entity Emerging Growth Company","language":"en-US"},{"forObject":"dei:EntityEmergingGrowthCompany","labelType":"xbrl:label","value":"Entity Emerging Growth Company","language":"en-US"},{"forObject":"dei:EntityFileNumber","labelType":"xbrl:terseLabel","value":"Entity File Number","language":"en-US"},{"forObject":"dei:EntityFileNumber","labelType":"xbrl:label","value":"Entity File Number","language":"en-US"},{"forObject":"dei:EntityFilerCategory","labelType":"xbrl:terseLabel","value":"Entity Filer Category","language":"en-US"},{"forObject":"dei:EntityFilerCategory","labelType":"xbrl:label","value":"Entity Filer Category","language":"en-US"},{"forObject":"dei:EntityIncorporationStateCountryCode","labelType":"xbrl:terseLabel","value":"Entity Incorporation, State or Country Code","language":"en-US"},{"forObject":"dei:EntityIncorporationStateCountryCode","labelType":"xbrl:label","value":"Entity Incorporation, State or Country Code","language":"en-US"},{"forObject":"dei:EntityInteractiveDataCurrent","labelType":"xbrl:terseLabel","value":"Entity Interactive Data Current","language":"en-US"},{"forObject":"dei:EntityInteractiveDataCurrent","labelType":"xbrl:label","value":"Entity Interactive Data Current","language":"en-US"},{"forObject":"dei:EntityPublicFloat","labelType":"xbrl:terseLabel","value":"Entity Public Float","language":"en-US"},{"forObject":"dei:EntityPublicFloat","labelType":"xbrl:label","value":"Entity Public Float","language":"en-US"},{"forObject":"dei:EntityRegistrantName","labelType":"xbrl:terseLabel","value":"Entity Registrant Name","language":"en-US"},{"forObject":"dei:EntityRegistrantName","labelType":"xbrl:label","value":"Entity Registrant Name","language":"en-US"},{"forObject":"dei:EntityShellCompany","labelType":"xbrl:terseLabel","value":"Entity Shell Company","language":"en-US"},{"forObject":"dei:EntityShellCompany","labelType":"xbrl:label","value":"Entity Shell Company","language":"en-US"},{"forObject":"dei:EntitySmallBusiness","labelType":"xbrl:terseLabel","value":"Entity Small Business","language":"en-US"},{"forObject":"dei:EntitySmallBusiness","labelType":"xbrl:label","value":"Entity Small Business","language":"en-US"},{"forObject":"dei:EntityTaxIdentificationNumber","labelType":"xbrl:terseLabel","value":"Entity Tax Identification Number","language":"en-US"},{"forObject":"dei:EntityTaxIdentificationNumber","labelType":"xbrl:label","value":"Entity Tax Identification Number","language":"en-US"},{"forObject":"dei:EntityVoluntaryFilers","labelType":"xbrl:terseLabel","value":"Entity Voluntary Filers","language":"en-US"},{"forObject":"dei:EntityVoluntaryFilers","labelType":"xbrl:label","value":"Entity Voluntary Filers","language":"en-US"},{"forObject":"dei:EntityWellKnownSeasonedIssuer","labelType":"xbrl:terseLabel","value":"Entity Well-known Seasoned Issuer","language":"en-US"},{"forObject":"dei:EntityWellKnownSeasonedIssuer","labelType":"xbrl:label","value":"Entity Well-known Seasoned Issuer","language":"en-US"},{"forObject":"dei:IcfrAuditorAttestationFlag","labelType":"xbrl:terseLabel","value":"ICFR Auditor Attestation Flag","language":"en-US"},{"forObject":"dei:IcfrAuditorAttestationFlag","labelType":"xbrl:label","value":"ICFR Auditor Attestation Flag","language":"en-US"},{"forObject":"dei:LocalPhoneNumber","labelType":"xbrl:terseLabel","value":"Local Phone Number","language":"en-US"},{"forObject":"dei:LocalPhoneNumber","labelType":"xbrl:label","value":"Local Phone Number","language":"en-US"},{"forObject":"dei:Security12bTitle","labelType":"xbrl:terseLabel","value":"Title of 12(b) Security","language":"en-US"},{"forObject":"dei:Security12bTitle","labelType":"xbrl:label","value":"Title of 12(b) Security","language":"en-US"},{"forObject":"dei:SecurityExchangeName","labelType":"xbrl:terseLabel","value":"Security Exchange Name","language":"en-US"},{"forObject":"dei:SecurityExchangeName","labelType":"xbrl:label","value":"Security Exchange Name","language":"en-US"},{"forObject":"dei:TradingSymbol","labelType":"xbrl:terseLabel","value":"Trading Symbol","language":"en-US"},{"forObject":"dei:TradingSymbol","labelType":"xbrl:label","value":"Trading Symbol","language":"en-US"},{"forObject":"ecd:Additional402vDisclosureTextBlock","labelType":"xbrl:terseLabel","value":"Additional 402(v) Disclosure","language":"en-US"},{"forObject":"ecd:Additional402vDisclosureTextBlock","labelType":"xbrl:label","value":"Additional 402(v) Disclosure [Text Block]","language":"en-US"},{"forObject":"ecd:AdjToCompAmt","labelType":"xbrl:terseLabel","value":"Adjustment to Compensation, Amount","language":"en-US"},{"forObject":"ecd:AdjToCompAmt","labelType":"xbrl:label","value":"Adjustment to Compensation Amount","language":"en-US"},{"forObject":"ecd:AdjToCompAxis","labelType":"xbrl:terseLabel","value":"Adjustment to Compensation:","language":"en-US"},{"forObject":"ecd:AdjToCompAxis","labelType":"xbrl:label","value":"Adjustment to Compensation [Axis]","language":"en-US"},{"forObject":"ecd:AdjToNonPeoNeoCompFnTextBlock","labelType":"xbrl:terseLabel","value":"Adjustment to Non-PEO NEO Compensation Footnote","language":"en-US"},{"forObject":"ecd:AdjToNonPeoNeoCompFnTextBlock","labelType":"xbrl:label","value":"Adjustment to Non-PEO NEO Compensation Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:AdjToPeoCompFnTextBlock","labelType":"xbrl:terseLabel","value":"Adjustment To PEO Compensation, Footnote","language":"en-US"},{"forObject":"ecd:AdjToPeoCompFnTextBlock","labelType":"xbrl:label","value":"Adjustment To PEO Compensation, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember","labelType":"xbrl:terseLabel","value":"Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table","language":"en-US"},{"forObject":"ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember","labelType":"xbrl:label","value":"Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]","language":"en-US"},{"forObject":"ecd:AggtErrCompAmt","labelType":"xbrl:terseLabel","value":"Aggregate Erroneous Compensation Amount","language":"en-US"},{"forObject":"ecd:AggtErrCompAmt","labelType":"xbrl:label","value":"Aggregate Erroneous Compensation Amount","language":"en-US"},{"forObject":"ecd:AggtErrCompNotYetDeterminedTextBlock","labelType":"xbrl:terseLabel","value":"Aggregate Erroneous Compensation Not Yet Determined","language":"en-US"},{"forObject":"ecd:AggtErrCompNotYetDeterminedTextBlock","labelType":"xbrl:label","value":"Aggregate Erroneous Compensation Not Yet Determined [Text Block]","language":"en-US"},{"forObject":"ecd:AggtPnsnAdjsSvcCstMember","labelType":"xbrl:terseLabel","value":"Aggregate Pension Adjustments Service Cost","language":"en-US"},{"forObject":"ecd:AggtPnsnAdjsSvcCstMember","labelType":"xbrl:label","value":"Aggregate Pension Adjustments Service Cost [Member]","language":"en-US"},{"forObject":"ecd:AllAdjToCompMember","labelType":"xbrl:terseLabel","value":"All Adjustments to Compensation","language":"en-US"},{"forObject":"ecd:AllAdjToCompMember","labelType":"xbrl:label","value":"All Adjustments to Compensation [Member]","language":"en-US"},{"forObject":"ecd:AllExecutiveCategoriesMember","labelType":"xbrl:terseLabel","value":"All Executive Categories","language":"en-US"},{"forObject":"ecd:AllExecutiveCategoriesMember","labelType":"xbrl:label","value":"All Executive Categories [Member]","language":"en-US"},{"forObject":"ecd:AllIndividualsMember","labelType":"xbrl:terseLabel","value":"All Individuals","language":"en-US"},{"forObject":"ecd:AllIndividualsMember","labelType":"xbrl:label","value":"All Individuals [Member]","language":"en-US"},{"forObject":"ecd:AllTradingArrangementsMember","labelType":"xbrl:terseLabel","value":"All Trading Arrangements","language":"en-US"},{"forObject":"ecd:AllTradingArrangementsMember","labelType":"xbrl:label","value":"All Trading Arrangements [Member]","language":"en-US"},{"forObject":"ecd:AwardExrcPrice","labelType":"xbrl:terseLabel","value":"Exercise Price","language":"en-US"},{"forObject":"ecd:AwardExrcPrice","labelType":"xbrl:label","value":"Award Exercise Price","language":"en-US"},{"forObject":"ecd:AwardGrantDateFairValue","labelType":"xbrl:terseLabel","value":"Fair Value as of Grant Date","language":"en-US"},{"forObject":"ecd:AwardGrantDateFairValue","labelType":"xbrl:label","value":"Award Grant Date Fair Value","language":"en-US"},{"forObject":"ecd:AwardTmgDiscLineItems","labelType":"xbrl:label","value":"Award Timing Disclosures [Line Items]","language":"en-US"},{"forObject":"ecd:AwardTmgHowMnpiCnsdrdTextBlock","labelType":"xbrl:terseLabel","value":"Award Timing, How MNPI Considered","language":"en-US"},{"forObject":"ecd:AwardTmgHowMnpiCnsdrdTextBlock","labelType":"xbrl:label","value":"Award Timing, How MNPI Considered [Text Block]","language":"en-US"},{"forObject":"ecd:AwardTmgMethodTextBlock","labelType":"xbrl:terseLabel","value":"Award Timing Method","language":"en-US"},{"forObject":"ecd:AwardTmgMethodTextBlock","labelType":"xbrl:label","value":"Award Timing Method [Text Block]","language":"en-US"},{"forObject":"ecd:AwardTmgMnpiCnsdrdFlag","labelType":"xbrl:terseLabel","value":"Award Timing MNPI Considered","language":"en-US"},{"forObject":"ecd:AwardTmgMnpiCnsdrdFlag","labelType":"xbrl:label","value":"Award Timing MNPI Considered [Flag]","language":"en-US"},{"forObject":"ecd:AwardTmgMnpiDiscTextBlock","labelType":"xbrl:terseLabel","value":"Award Timing MNPI Disclosure","language":"en-US"},{"forObject":"ecd:AwardTmgMnpiDiscTextBlock","labelType":"xbrl:label","value":"Award Timing MNPI Disclosure [Text Block]","language":"en-US"},{"forObject":"ecd:AwardTmgPredtrmndFlag","labelType":"xbrl:terseLabel","value":"Award Timing Predetermined","language":"en-US"},{"forObject":"ecd:AwardTmgPredtrmndFlag","labelType":"xbrl:label","value":"Award Timing Predetermined [Flag]","language":"en-US"},{"forObject":"ecd:AwardUndrlygSecuritiesAmt","labelType":"xbrl:terseLabel","value":"Underlying Securities","language":"en-US"},{"forObject":"ecd:AwardUndrlygSecuritiesAmt","labelType":"xbrl:label","value":"Award Underlying Securities Amount","language":"en-US"},{"forObject":"ecd:AwardsCloseToMnpiDiscIndName","labelType":"xbrl:terseLabel","value":"Name","language":"en-US"},{"forObject":"ecd:AwardsCloseToMnpiDiscIndName","labelType":"xbrl:label","value":"Awards Close in Time to MNPI Disclosures, Individual Name","language":"en-US"},{"forObject":"ecd:AwardsCloseToMnpiDiscTable","labelType":"xbrl:terseLabel","value":"Awards Close in Time to MNPI Disclosures","language":"en-US"},{"forObject":"ecd:AwardsCloseToMnpiDiscTable","labelType":"xbrl:label","value":"Awards Close in Time to MNPI Disclosures [Table]","language":"en-US"},{"forObject":"ecd:AwardsCloseToMnpiDiscTableTextBlock","labelType":"xbrl:terseLabel","value":"Awards Close in Time to MNPI Disclosures, Table","language":"en-US"},{"forObject":"ecd:AwardsCloseToMnpiDiscTableTextBlock","labelType":"xbrl:label","value":"Awards Close in Time to MNPI Disclosures [Table Text Block]","language":"en-US"},{"forObject":"ecd:ChangedPeerGroupFnTextBlock","labelType":"xbrl:terseLabel","value":"Changed Peer Group, Footnote","language":"en-US"},{"forObject":"ecd:ChangedPeerGroupFnTextBlock","labelType":"xbrl:label","value":"Changed Peer Group, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember","labelType":"xbrl:terseLabel","value":"Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year","language":"en-US"},{"forObject":"ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember","labelType":"xbrl:label","value":"Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]","language":"en-US"},{"forObject":"ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember","labelType":"xbrl:terseLabel","value":"Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested","language":"en-US"},{"forObject":"ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember","labelType":"xbrl:label","value":"Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]","language":"en-US"},{"forObject":"ecd:CoSelectedMeasureAmt","labelType":"xbrl:terseLabel","value":"Company Selected Measure Amount","language":"en-US"},{"forObject":"ecd:CoSelectedMeasureAmt","labelType":"xbrl:label","value":"Company Selected Measure Amount","language":"en-US"},{"forObject":"ecd:CoSelectedMeasureName","labelType":"xbrl:terseLabel","value":"Company Selected Measure Name","language":"en-US"},{"forObject":"ecd:CoSelectedMeasureName","labelType":"xbrl:label","value":"Company Selected Measure Name","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsCoSelectedMeasureTextBlock","labelType":"xbrl:terseLabel","value":"Compensation Actually Paid vs. Company Selected Measure","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsCoSelectedMeasureTextBlock","labelType":"xbrl:label","value":"Compensation Actually Paid vs. Company Selected Measure [Text Block]","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsNetIncomeTextBlock","labelType":"xbrl:terseLabel","value":"Compensation Actually Paid vs. Net Income","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsNetIncomeTextBlock","labelType":"xbrl:label","value":"Compensation Actually Paid vs. Net Income [Text Block]","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsOtherMeasureTextBlock","labelType":"xbrl:terseLabel","value":"Compensation Actually Paid vs. Other Measure","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsOtherMeasureTextBlock","labelType":"xbrl:label","value":"Compensation Actually Paid vs. Other Measure [Text Block]","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsTotalShareholderRtnTextBlock","labelType":"xbrl:terseLabel","value":"Compensation Actually Paid vs. Total Shareholder Return","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsTotalShareholderRtnTextBlock","labelType":"xbrl:label","value":"Compensation Actually Paid vs. Total Shareholder Return [Text Block]","language":"en-US"},{"forObject":"ecd:DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember","labelType":"xbrl:terseLabel","value":"Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year","language":"en-US"},{"forObject":"ecd:DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember","labelType":"xbrl:label","value":"Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]","language":"en-US"},{"forObject":"ecd:EqtyAwrdsAdjFnTextBlock","labelType":"xbrl:terseLabel","value":"Equity Awards Adjustments, Footnote","language":"en-US"},{"forObject":"ecd:EqtyAwrdsAdjFnTextBlock","labelType":"xbrl:label","value":"Equity Awards Adjustments, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","labelType":"xbrl:terseLabel","value":"Equity Awards Adjustments, Excluding Value Reported in Compensation Table","language":"en-US"},{"forObject":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","labelType":"xbrl:label","value":"Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]","language":"en-US"},{"forObject":"ecd:EqtyAwrdsAdjsMember","labelType":"xbrl:terseLabel","value":"Equity Awards Adjustments","language":"en-US"},{"forObject":"ecd:EqtyAwrdsAdjsMember","labelType":"xbrl:label","value":"Equity Awards Adjustments [Member]","language":"en-US"},{"forObject":"ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember","labelType":"xbrl:terseLabel","value":"Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table","language":"en-US"},{"forObject":"ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember","labelType":"xbrl:label","value":"Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]","language":"en-US"},{"forObject":"ecd:EquityValuationAssumptionDifferenceFnTextBlock","labelType":"xbrl:terseLabel","value":"Equity Valuation Assumption Difference, Footnote","language":"en-US"},{"forObject":"ecd:EquityValuationAssumptionDifferenceFnTextBlock","labelType":"xbrl:label","value":"Equity Valuation Assumption Difference, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:ErrCompAnalysisTextBlock","labelType":"xbrl:terseLabel","value":"Erroneous Compensation Analysis","language":"en-US"},{"forObject":"ecd:ErrCompAnalysisTextBlock","labelType":"xbrl:label","value":"Erroneous Compensation Analysis [Text Block]","language":"en-US"},{"forObject":"ecd:ErrCompRecoveryTable","labelType":"xbrl:terseLabel","value":"Erroneously Awarded Compensation Recovery","language":"en-US"},{"forObject":"ecd:ErrCompRecoveryTable","labelType":"xbrl:label","value":"Erroneously Awarded Compensation Recovery [Table]","language":"en-US"},{"forObject":"ecd:ExecutiveCategoryAxis","labelType":"xbrl:terseLabel","value":"Executive Category:","language":"en-US"},{"forObject":"ecd:ExecutiveCategoryAxis","labelType":"xbrl:label","value":"Executive Category [Axis]","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt","labelType":"xbrl:terseLabel","value":"Forgone Recovery due to Disqualification of Tax Benefits, Amount","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt","labelType":"xbrl:label","value":"Forgone Recovery due to Disqualification of Tax Benefits, Amount","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryDueToExpenseOfEnforcementAmt","labelType":"xbrl:terseLabel","value":"Forgone Recovery due to Expense of Enforcement, Amount","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryDueToExpenseOfEnforcementAmt","labelType":"xbrl:label","value":"Forgone Recovery due to Expense of Enforcement, Amount","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryDueToViolationOfHomeCountryLawAmt","labelType":"xbrl:terseLabel","value":"Forgone Recovery due to Violation of Home Country Law, Amount","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryDueToViolationOfHomeCountryLawAmt","labelType":"xbrl:label","value":"Forgone Recovery due to Violation of Home Country Law, Amount","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryExplanationOfImpracticabilityTextBlock","labelType":"xbrl:terseLabel","value":"Forgone Recovery, Explanation of Impracticability","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryExplanationOfImpracticabilityTextBlock","labelType":"xbrl:label","value":"Forgone Recovery, Explanation of Impracticability [Text Block]","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryIndName","labelType":"xbrl:terseLabel","value":"Name","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryIndName","labelType":"xbrl:label","value":"Forgone Recovery, Individual Name","language":"en-US"},{"forObject":"ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember","labelType":"xbrl:terseLabel","value":"Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year","language":"en-US"},{"forObject":"ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember","labelType":"xbrl:label","value":"Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]","language":"en-US"},{"forObject":"ecd:IndividualAxis","labelType":"xbrl:terseLabel","value":"Individual:","language":"en-US"},{"forObject":"ecd:IndividualAxis","labelType":"xbrl:label","value":"Individual [Axis]","language":"en-US"},{"forObject":"ecd:InsiderTradingArrLineItems","labelType":"xbrl:label","value":"Insider Trading Arrangements [Line Items]","language":"en-US"},{"forObject":"ecd:InsiderTradingPoliciesProcLineItems","labelType":"xbrl:label","value":"Insider Trading Policies and Procedures [Line Items]","language":"en-US"},{"forObject":"ecd:InsiderTrdPoliciesProcAdoptedFlag","labelType":"xbrl:terseLabel","value":"Insider Trading Policies and Procedures Adopted","language":"en-US"},{"forObject":"ecd:InsiderTrdPoliciesProcAdoptedFlag","labelType":"xbrl:label","value":"Insider Trading Policies and Procedures Adopted [Flag]","language":"en-US"},{"forObject":"ecd:InsiderTrdPoliciesProcNotAdoptedTextBlock","labelType":"xbrl:terseLabel","value":"Insider Trading Policies and Procedures Not Adopted","language":"en-US"},{"forObject":"ecd:InsiderTrdPoliciesProcNotAdoptedTextBlock","labelType":"xbrl:label","value":"Insider Trading Policies and Procedures Not Adopted [Text Block]","language":"en-US"},{"forObject":"ecd:MeasureAxis","labelType":"xbrl:terseLabel","value":"Measure:","language":"en-US"},{"forObject":"ecd:MeasureAxis","labelType":"xbrl:label","value":"Measure [Axis]","language":"en-US"},{"forObject":"ecd:MeasureName","labelType":"xbrl:terseLabel","value":"Name","language":"en-US"},{"forObject":"ecd:MeasureName","labelType":"xbrl:label","value":"Measure Name","language":"en-US"},{"forObject":"ecd:MnpiDiscTimedForCompValFlag","labelType":"xbrl:terseLabel","value":"MNPI Disclosure Timed for Compensation Value","language":"en-US"},{"forObject":"ecd:MnpiDiscTimedForCompValFlag","labelType":"xbrl:label","value":"MNPI Disclosure Timed for Compensation Value [Flag]","language":"en-US"},{"forObject":"ecd:MtrlTermsOfTrdArrTextBlock","labelType":"xbrl:terseLabel","value":"Material Terms of Trading Arrangement","language":"en-US"},{"forObject":"ecd:MtrlTermsOfTrdArrTextBlock","labelType":"xbrl:label","value":"Material Terms of Trading Arrangement [Text Block]","language":"en-US"},{"forObject":"ecd:NamedExecutiveOfficersFnTextBlock","labelType":"xbrl:terseLabel","value":"Named Executive Officers, Footnote","language":"en-US"},{"forObject":"ecd:NamedExecutiveOfficersFnTextBlock","labelType":"xbrl:label","value":"Named Executive Officers, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:NonGaapMeasureDescriptionTextBlock","labelType":"xbrl:terseLabel","value":"Non-GAAP Measure Description","language":"en-US"},{"forObject":"ecd:NonGaapMeasureDescriptionTextBlock","labelType":"xbrl:label","value":"Non-GAAP Measure Description [Text Block]","language":"en-US"},{"forObject":"ecd:NonNeosMember","labelType":"xbrl:terseLabel","value":"Non-NEOs","language":"en-US"},{"forObject":"ecd:NonNeosMember","labelType":"xbrl:label","value":"Non-NEOs [Member]","language":"en-US"},{"forObject":"ecd:NonPeoNeoAvgCompActuallyPaidAmt","labelType":"xbrl:terseLabel","value":"Non-PEO NEO Average Compensation Actually Paid Amount","language":"en-US"},{"forObject":"ecd:NonPeoNeoAvgCompActuallyPaidAmt","labelType":"xbrl:label","value":"Non-PEO NEO Average Compensation Actually Paid Amount","language":"en-US"},{"forObject":"ecd:NonPeoNeoAvgTotalCompAmt","labelType":"xbrl:terseLabel","value":"Non-PEO NEO Average Total Compensation Amount","language":"en-US"},{"forObject":"ecd:NonPeoNeoAvgTotalCompAmt","labelType":"xbrl:label","value":"Non-PEO NEO Average Total Compensation Amount","language":"en-US"},{"forObject":"ecd:NonPeoNeoMember","labelType":"xbrl:terseLabel","value":"Non-PEO NEO","language":"en-US"},{"forObject":"ecd:NonPeoNeoMember","labelType":"xbrl:label","value":"Non-PEO NEO [Member]","language":"en-US"},{"forObject":"ecd:NonRule10b51ArrAdoptedFlag","labelType":"xbrl:terseLabel","value":"Non-Rule 10b5-1 Arrangement Adopted","language":"en-US"},{"forObject":"ecd:NonRule10b51ArrAdoptedFlag","labelType":"xbrl:label","value":"Non-Rule 10b5-1 Arrangement Adopted [Flag]","language":"en-US"},{"forObject":"ecd:NonRule10b51ArrTrmntdFlag","labelType":"xbrl:terseLabel","value":"Non-Rule 10b5-1 Arrangement Terminated","language":"en-US"},{"forObject":"ecd:NonRule10b51ArrTrmntdFlag","labelType":"xbrl:label","value":"Non-Rule 10b5-1 Arrangement Terminated [Flag]","language":"en-US"},{"forObject":"ecd:OtherPerfMeasureAmt","labelType":"xbrl:terseLabel","value":"Other Performance Measure, Amount","language":"en-US"},{"forObject":"ecd:OtherPerfMeasureAmt","labelType":"xbrl:label","value":"Other Performance Measure, Amount","language":"en-US"},{"forObject":"ecd:OutstandingAggtErrCompAmt","labelType":"xbrl:terseLabel","value":"Outstanding Aggregate Erroneous Compensation Amount","language":"en-US"},{"forObject":"ecd:OutstandingAggtErrCompAmt","labelType":"xbrl:label","value":"Outstanding Aggregate Erroneous Compensation Amount","language":"en-US"},{"forObject":"ecd:OutstandingRecoveryCompAmt","labelType":"xbrl:terseLabel","value":"Compensation Amount","language":"en-US"},{"forObject":"ecd:OutstandingRecoveryCompAmt","labelType":"xbrl:label","value":"Outstanding Recovery Compensation Amount","language":"en-US"},{"forObject":"ecd:OutstandingRecoveryIndName","labelType":"xbrl:terseLabel","value":"Name","language":"en-US"},{"forObject":"ecd:OutstandingRecoveryIndName","labelType":"xbrl:label","value":"Outstanding Recovery, Individual Name","language":"en-US"},{"forObject":"ecd:PayVsPerformanceDisclosureLineItems","labelType":"xbrl:label","value":"Pay vs Performance Disclosure [Line Items]","language":"en-US"},{"forObject":"ecd:PeerGroupIssuersFnTextBlock","labelType":"xbrl:terseLabel","value":"Peer Group Issuers, Footnote","language":"en-US"},{"forObject":"ecd:PeerGroupIssuersFnTextBlock","labelType":"xbrl:label","value":"Peer Group Issuers, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:PeerGroupTotalShareholderRtnAmt","labelType":"xbrl:terseLabel","value":"Peer Group Total Shareholder Return Amount","language":"en-US"},{"forObject":"ecd:PeerGroupTotalShareholderRtnAmt","labelType":"xbrl:label","value":"Peer Group Total Shareholder Return Amount","language":"en-US"},{"forObject":"ecd:PeoActuallyPaidCompAmt","labelType":"xbrl:terseLabel","value":"PEO Actually Paid Compensation Amount","language":"en-US"},{"forObject":"ecd:PeoActuallyPaidCompAmt","labelType":"xbrl:label","value":"PEO Actually Paid Compensation Amount","language":"en-US"},{"forObject":"ecd:PeoMember","labelType":"xbrl:terseLabel","value":"PEO","language":"en-US"},{"forObject":"ecd:PeoMember","labelType":"xbrl:label","value":"PEO [Member]","language":"en-US"},{"forObject":"ecd:PeoName","labelType":"xbrl:terseLabel","value":"PEO Name","language":"en-US"},{"forObject":"ecd:PeoName","labelType":"xbrl:label","value":"PEO Name","language":"en-US"},{"forObject":"ecd:PeoTotalCompAmt","labelType":"xbrl:terseLabel","value":"PEO Total Compensation Amount","language":"en-US"},{"forObject":"ecd:PeoTotalCompAmt","labelType":"xbrl:label","value":"PEO Total Compensation Amount","language":"en-US"},{"forObject":"ecd:PnsnAdjsPrrSvcCstMember","labelType":"xbrl:terseLabel","value":"Pension Adjustments Prior Service Cost","language":"en-US"},{"forObject":"ecd:PnsnAdjsPrrSvcCstMember","labelType":"xbrl:label","value":"Pension Adjustments Prior Service Cost [Member]","language":"en-US"},{"forObject":"ecd:PnsnAdjsSvcCstMember","labelType":"xbrl:terseLabel","value":"Pension Adjustments Service Cost","language":"en-US"},{"forObject":"ecd:PnsnAdjsSvcCstMember","labelType":"xbrl:label","value":"Pension Adjustments Service Cost [Member]","language":"en-US"},{"forObject":"ecd:PnsnBnftsAdjFnTextBlock","labelType":"xbrl:terseLabel","value":"Pension Benefits Adjustments, Footnote","language":"en-US"},{"forObject":"ecd:PnsnBnftsAdjFnTextBlock","labelType":"xbrl:label","value":"Pension Benefits Adjustments, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:PvpTable","labelType":"xbrl:terseLabel","value":"Pay vs Performance Disclosure","language":"en-US"},{"forObject":"ecd:PvpTable","labelType":"xbrl:label","value":"Pay vs Performance Disclosure [Table]","language":"en-US"},{"forObject":"ecd:PvpTableTextBlock","labelType":"xbrl:terseLabel","value":"Pay vs Performance Disclosure, Table","language":"en-US"},{"forObject":"ecd:PvpTableTextBlock","labelType":"xbrl:label","value":"Pay vs Performance [Table Text Block]","language":"en-US"},{"forObject":"ecd:RecoveryOfErrCompDisclosureLineItems","labelType":"xbrl:label","value":"Recovery of Erroneously Awarded Compensation Disclosure [Line Items]","language":"en-US"},{"forObject":"ecd:RestatementDateAxis","labelType":"xbrl:terseLabel","value":"Restatement Determination Date:","language":"en-US"},{"forObject":"ecd:RestatementDateAxis","labelType":"xbrl:label","value":"Restatement Determination Date [Axis]","language":"en-US"},{"forObject":"ecd:RestatementDeterminationDate","labelType":"xbrl:terseLabel","value":"Restatement Determination Date","language":"en-US"},{"forObject":"ecd:RestatementDeterminationDate","labelType":"xbrl:label","value":"Restatement Determination Date","language":"en-US"},{"forObject":"ecd:RestatementDoesNotRequireRecoveryTextBlock","labelType":"xbrl:terseLabel","value":"Restatement does not require Recovery","language":"en-US"},{"forObject":"ecd:RestatementDoesNotRequireRecoveryTextBlock","labelType":"xbrl:label","value":"Restatement Does Not Require Recovery [Text Block]","language":"en-US"},{"forObject":"ecd:Rule10b51ArrAdoptedFlag","labelType":"xbrl:terseLabel","value":"Rule 10b5-1 Arrangement Adopted","language":"en-US"},{"forObject":"ecd:Rule10b51ArrAdoptedFlag","labelType":"xbrl:label","value":"Rule 10b5-1 Arrangement Adopted [Flag]","language":"en-US"},{"forObject":"ecd:Rule10b51ArrTrmntdFlag","labelType":"xbrl:terseLabel","value":"Rule 10b5-1 Arrangement Terminated","language":"en-US"},{"forObject":"ecd:Rule10b51ArrTrmntdFlag","labelType":"xbrl:label","value":"Rule 10b5-1 Arrangement Terminated [Flag]","language":"en-US"},{"forObject":"ecd:StkPrcOrTsrEstimationMethodTextBlock","labelType":"xbrl:terseLabel","value":"Stock Price or TSR Estimation Method","language":"en-US"},{"forObject":"ecd:StkPrcOrTsrEstimationMethodTextBlock","labelType":"xbrl:label","value":"Stock Price or TSR Estimation Method [Text Block]","language":"en-US"},{"forObject":"ecd:TabularListTableTextBlock","labelType":"xbrl:terseLabel","value":"Tabular List, Table","language":"en-US"},{"forObject":"ecd:TabularListTableTextBlock","labelType":"xbrl:label","value":"Tabular List [Table Text Block]","language":"en-US"},{"forObject":"ecd:TotalShareholderRtnAmt","labelType":"xbrl:terseLabel","value":"Total Shareholder Return Amount","language":"en-US"},{"forObject":"ecd:TotalShareholderRtnAmt","labelType":"xbrl:label","value":"Total Shareholder Return Amount","language":"en-US"},{"forObject":"ecd:TotalShareholderRtnVsPeerGroupTextBlock","labelType":"xbrl:terseLabel","value":"Total Shareholder Return Vs Peer Group","language":"en-US"},{"forObject":"ecd:TotalShareholderRtnVsPeerGroupTextBlock","labelType":"xbrl:label","value":"Total Shareholder Return Vs Peer Group [Text Block]","language":"en-US"},{"forObject":"ecd:TradingArrAxis","labelType":"xbrl:terseLabel","value":"Trading Arrangement:","language":"en-US"},{"forObject":"ecd:TradingArrAxis","labelType":"xbrl:label","value":"Trading Arrangement [Axis]","language":"en-US"},{"forObject":"ecd:TradingArrByIndTable","labelType":"xbrl:terseLabel","value":"Trading Arrangements, by Individual","language":"en-US"},{"forObject":"ecd:TradingArrByIndTable","labelType":"xbrl:label","value":"Trading Arrangements, by Individual [Table]","language":"en-US"},{"forObject":"ecd:TrdArrAdoptionDate","labelType":"xbrl:terseLabel","value":"Adoption Date","language":"en-US"},{"forObject":"ecd:TrdArrAdoptionDate","labelType":"xbrl:label","value":"Trading Arrangement Adoption Date","language":"en-US"},{"forObject":"ecd:TrdArrDuration","labelType":"xbrl:terseLabel","value":"Arrangement Duration","language":"en-US"},{"forObject":"ecd:TrdArrDuration","labelType":"xbrl:label","value":"Trading Arrangement Duration","language":"en-US"},{"forObject":"ecd:TrdArrExpirationDate","labelType":"xbrl:terseLabel","value":"Expiration Date","language":"en-US"},{"forObject":"ecd:TrdArrExpirationDate","labelType":"xbrl:label","value":"Trading Arrangement Expiration Date","language":"en-US"},{"forObject":"ecd:TrdArrIndName","labelType":"xbrl:terseLabel","value":"Name","language":"en-US"},{"forObject":"ecd:TrdArrIndName","labelType":"xbrl:label","value":"Trading Arrangement, Individual Name","language":"en-US"},{"forObject":"ecd:TrdArrIndTitle","labelType":"xbrl:terseLabel","value":"Title","language":"en-US"},{"forObject":"ecd:TrdArrIndTitle","labelType":"xbrl:label","value":"Trading Arrangement, Individual Title","language":"en-US"},{"forObject":"ecd:TrdArrSecuritiesAggAvailAmt","labelType":"xbrl:terseLabel","value":"Aggregate Available","language":"en-US"},{"forObject":"ecd:TrdArrSecuritiesAggAvailAmt","labelType":"xbrl:label","value":"Trading Arrangement, Securities Aggregate Available Amount","language":"en-US"},{"forObject":"ecd:TrdArrTerminationDate","labelType":"xbrl:terseLabel","value":"Termination Date","language":"en-US"},{"forObject":"ecd:TrdArrTerminationDate","labelType":"xbrl:label","value":"Trading Arrangement Termination Date","language":"en-US"},{"forObject":"ecd:UndrlygSecurityMktPriceChngPct","labelType":"xbrl:terseLabel","value":"Underlying Security Market Price Change","language":"en-US"},{"forObject":"ecd:UndrlygSecurityMktPriceChngPct","labelType":"xbrl:label","value":"Underlying Security Market Price Change, Percent","language":"en-US"},{"forObject":"ecd:VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember","labelType":"xbrl:terseLabel","value":"Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year","language":"en-US"},{"forObject":"ecd:VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember","labelType":"xbrl:label","value":"Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]","language":"en-US"},{"forObject":"ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember","labelType":"xbrl:terseLabel","value":"Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested","language":"en-US"},{"forObject":"ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember","labelType":"xbrl:label","value":"Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]","language":"en-US"},{"forObject":"srt:BoardOfDirectorsChairmanMember","labelType":"xbrl:terseLabel","value":"Board of Directors Chairman","language":"en-US"},{"forObject":"srt:BoardOfDirectorsChairmanMember","labelType":"xbrl:verboseLabel","value":"Board Member","language":"en-US"},{"forObject":"srt:BoardOfDirectorsChairmanMember","labelType":"xbrl:label","value":"Board of Directors Chairman [Member]","language":"en-US"},{"forObject":"srt:ChiefFinancialOfficerMember","labelType":"xbrl:terseLabel","value":"Chief Financial Officer","language":"en-US"},{"forObject":"srt:ChiefFinancialOfficerMember","labelType":"xbrl:label","value":"Chief Financial Officer [Member]","language":"en-US"},{"forObject":"srt:CounterpartyNameAxis","labelType":"xbrl:terseLabel","value":"Counterparty Name [Axis]","language":"en-US"},{"forObject":"srt:CounterpartyNameAxis","labelType":"xbrl:label","value":"Counterparty Name [Axis]","language":"en-US"},{"forObject":"srt:MajorCustomersAxis","labelType":"xbrl:terseLabel","value":"Customer [Axis]","language":"en-US"},{"forObject":"srt:MajorCustomersAxis","labelType":"xbrl:label","value":"Customer [Axis]","language":"en-US"},{"forObject":"srt:MaximumMember","labelType":"xbrl:terseLabel","value":"Maximum","language":"en-US"},{"forObject":"srt:MaximumMember","labelType":"xbrl:label","value":"Maximum [Member]","language":"en-US"},{"forObject":"srt:MinimumMember","labelType":"xbrl:terseLabel","value":"Minimum","language":"en-US"},{"forObject":"srt:MinimumMember","labelType":"xbrl:label","value":"Minimum [Member]","language":"en-US"},{"forObject":"srt:NameOfMajorCustomerDomain","labelType":"xbrl:terseLabel","value":"Customer [Domain]","language":"en-US"},{"forObject":"srt:NameOfMajorCustomerDomain","labelType":"xbrl:label","value":"Customer [Domain]","language":"en-US"},{"forObject":"srt:ProductOrServiceAxis","labelType":"xbrl:terseLabel","value":"Product and Service [Axis]","language":"en-US"},{"forObject":"srt:ProductOrServiceAxis","labelType":"xbrl:label","value":"Product and Service [Axis]","language":"en-US"},{"forObject":"srt:ProductsAndServicesDomain","labelType":"xbrl:terseLabel","value":"Product and Service [Domain]","language":"en-US"},{"forObject":"srt:ProductsAndServicesDomain","labelType":"xbrl:label","value":"Product and Service [Domain]","language":"en-US"},{"forObject":"srt:RangeAxis","labelType":"xbrl:terseLabel","value":"Statistical Measurement [Axis]","language":"en-US"},{"forObject":"srt:RangeAxis","labelType":"xbrl:label","value":"Statistical Measurement [Axis]","language":"en-US"},{"forObject":"srt:RangeMember","labelType":"xbrl:terseLabel","value":"Statistical Measurement [Domain]","language":"en-US"},{"forObject":"srt:RangeMember","labelType":"xbrl:label","value":"Statistical Measurement [Domain]","language":"en-US"},{"forObject":"srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis","labelType":"xbrl:terseLabel","value":"Name of Property [Axis]","language":"en-US"},{"forObject":"srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis","labelType":"xbrl:label","value":"Name of Property [Axis]","language":"en-US"},{"forObject":"srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain","labelType":"xbrl:terseLabel","value":"Name of Property [Domain]","language":"en-US"},{"forObject":"srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain","labelType":"xbrl:label","value":"Name of Property [Domain]","language":"en-US"},{"forObject":"srt:RepurchaseAgreementCounterpartyNameDomain","labelType":"xbrl:terseLabel","value":"Counterparty Name [Domain]","language":"en-US"},{"forObject":"srt:RepurchaseAgreementCounterpartyNameDomain","labelType":"xbrl:label","value":"Counterparty Name [Domain]","language":"en-US"},{"forObject":"srt:StockRepurchaseProgramAuthorizedAmount1","labelType":"xbrl:terseLabel","value":"Share repurchase program, authorized amount","language":"en-US"},{"forObject":"srt:StockRepurchaseProgramAuthorizedAmount1","labelType":"xbrl:label","value":"Share Repurchase Program, Authorized, Amount","language":"en-US"},{"forObject":"srt:TitleOfIndividualAxis","labelType":"xbrl:terseLabel","value":"Title of Individual [Axis]","language":"en-US"},{"forObject":"srt:TitleOfIndividualAxis","labelType":"xbrl:label","value":"Title and Position [Axis]","language":"en-US"},{"forObject":"srt:TitleOfIndividualWithRelationshipToEntityDomain","labelType":"xbrl:terseLabel","value":"Title of Individual [Domain]","language":"en-US"},{"forObject":"srt:TitleOfIndividualWithRelationshipToEntityDomain","labelType":"xbrl:label","value":"Title and Position [Domain]","language":"en-US"},{"forObject":"us-gaap:AccountingPoliciesAbstract","labelType":"xbrl:terseLabel","value":"Accounting Policies [Abstract]","language":"en-US"},{"forObject":"us-gaap:AccountingPoliciesAbstract","labelType":"xbrl:label","value":"Accounting Policies [Abstract]","language":"en-US"},{"forObject":"us-gaap:AccountsPayableCurrent","labelType":"xbrl:verboseLabel","value":"Accounts payable","language":"en-US"},{"forObject":"us-gaap:AccountsPayableCurrent","labelType":"xbrl:label","value":"Accounts Payable, Current","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableGross","labelType":"xbrl:terseLabel","value":"Accounts receivable","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableGross","labelType":"xbrl:label","value":"Accounts Receivable, before Allowance for Credit Loss","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableGrossCurrent","labelType":"xbrl:totalLabel","value":"Total accounts receivable and unbilled services","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableGrossCurrent","labelType":"xbrl:label","value":"Accounts Receivable, before Allowance for Credit Loss, Current","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableMember","labelType":"xbrl:terseLabel","value":"Accounts Receivable","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableMember","labelType":"xbrl:label","value":"Accounts Receivable [Member]","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableNetCurrent","labelType":"xbrl:verboseLabel","value":"Accounts receivable, net","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableNetCurrent","labelType":"xbrl:totalLabel","value":"Total accounts receivable, net","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableNetCurrent","labelType":"xbrl:label","value":"Accounts Receivable, after Allowance for Credit Loss, Current","language":"en-US"},{"forObject":"us-gaap:AccruedLiabilitiesCurrent","labelType":"xbrl:verboseLabel","value":"Accrued liabilities","language":"en-US"},{"forObject":"us-gaap:AccruedLiabilitiesCurrent","labelType":"xbrl:label","value":"Accrued Liabilities, Current","language":"en-US"},{"forObject":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","labelType":"xbrl:negatedLabel","value":"Less: Accumulated depreciation and amortization","language":"en-US"},{"forObject":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","labelType":"xbrl:terseLabel","value":"Accumulated depreciation","language":"en-US"},{"forObject":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","labelType":"xbrl:label","value":"Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment","language":"en-US"},{"forObject":"us-gaap:AdditionalPaidInCapitalCommonStock","labelType":"xbrl:verboseLabel","value":"Additional paid-in capital","language":"en-US"},{"forObject":"us-gaap:AdditionalPaidInCapitalCommonStock","labelType":"xbrl:label","value":"Additional Paid in Capital, Common Stock","language":"en-US"},{"forObject":"us-gaap:AdditionalPaidInCapitalMember","labelType":"xbrl:terseLabel","value":"Additional Paid-in Capital","language":"en-US"},{"forObject":"us-gaap:AdditionalPaidInCapitalMember","labelType":"xbrl:label","value":"Additional Paid-in Capital [Member]","language":"en-US"},{"forObject":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","labelType":"xbrl:verboseLabel","value":"Stock-based compensation expense","language":"en-US"},{"forObject":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","labelType":"xbrl:label","value":"APIC, Share-Based Payment Arrangement, Increase for Cost Recognition","language":"en-US"},{"forObject":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","labelType":"xbrl:verboseLabel","value":"Adjustments to reconcile net income (loss) to net cash provided by (used in)\u00a0operating activities:","language":"en-US"},{"forObject":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","labelType":"xbrl:label","value":"Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]","language":"en-US"},{"forObject":"us-gaap:AllocatedShareBasedCompensationExpense","labelType":"xbrl:terseLabel","value":"Total stock-based compensation expense","language":"en-US"},{"forObject":"us-gaap:AllocatedShareBasedCompensationExpense","labelType":"xbrl:label","value":"Share-Based Payment Arrangement, Expense","language":"en-US"},{"forObject":"us-gaap:AllowanceForDoubtfulAccountsReceivable","labelType":"xbrl:negatedTerseLabel","value":"Less: allowance for estimated credit losses","language":"en-US"},{"forObject":"us-gaap:AllowanceForDoubtfulAccountsReceivable","labelType":"xbrl:label","value":"Accounts Receivable, Allowance for Credit Loss","language":"en-US"},{"forObject":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","labelType":"xbrl:terseLabel","value":"Total common stock equivalents","language":"en-US"},{"forObject":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","labelType":"xbrl:label","value":"Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount","language":"en-US"},{"forObject":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis","labelType":"xbrl:terseLabel","value":"Antidilutive Securities [Axis]","language":"en-US"},{"forObject":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis","labelType":"xbrl:label","value":"Antidilutive Securities [Axis]","language":"en-US"},{"forObject":"us-gaap:AntidilutiveSecuritiesNameDomain","labelType":"xbrl:terseLabel","value":"Antidilutive Securities, Name [Domain]","language":"en-US"},{"forObject":"us-gaap:AntidilutiveSecuritiesNameDomain","labelType":"xbrl:label","value":"Antidilutive Securities, Name [Domain]","language":"en-US"},{"forObject":"us-gaap:Assets","labelType":"xbrl:totalLabel","value":"Total assets","language":"en-US"},{"forObject":"us-gaap:Assets","labelType":"xbrl:label","value":"Assets","language":"en-US"},{"forObject":"us-gaap:AssetsAbstract","labelType":"xbrl:verboseLabel","value":"ASSETS","language":"en-US"},{"forObject":"us-gaap:AssetsAbstract","labelType":"xbrl:label","value":"Assets [Abstract]","language":"en-US"},{"forObject":"us-gaap:AssetsCurrent","labelType":"xbrl:totalLabel","value":"Total current assets","language":"en-US"},{"forObject":"us-gaap:AssetsCurrent","labelType":"xbrl:label","value":"Assets, Current","language":"en-US"},{"forObject":"us-gaap:AssetsCurrentAbstract","labelType":"xbrl:terseLabel","value":"Current assets:","language":"en-US"},{"forObject":"us-gaap:AssetsCurrentAbstract","labelType":"xbrl:label","value":"Assets, Current [Abstract]","language":"en-US"},{"forObject":"us-gaap:AssetsFairValueDisclosure","labelType":"xbrl:terseLabel","value":"Assets, fair value","language":"en-US"},{"forObject":"us-gaap:AssetsFairValueDisclosure","labelType":"xbrl:label","value":"Assets, Fair Value Disclosure","language":"en-US"},{"forObject":"us-gaap:AwardTypeAxis","labelType":"xbrl:terseLabel","value":"Award Type","language":"en-US"},{"forObject":"us-gaap:AwardTypeAxis","labelType":"xbrl:label","value":"Award Type [Axis]","language":"en-US"},{"forObject":"us-gaap:BasisOfAccountingPolicyPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Basis of Presentation","language":"en-US"},{"forObject":"us-gaap:BasisOfAccountingPolicyPolicyTextBlock","labelType":"xbrl:label","value":"Basis of Accounting, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:CapitalExpendituresIncurredButNotYetPaid","labelType":"xbrl:terseLabel","value":"Equipment purchased in accounts payable","language":"en-US"},{"forObject":"us-gaap:CapitalExpendituresIncurredButNotYetPaid","labelType":"xbrl:label","value":"Capital Expenditures Incurred but Not yet Paid","language":"en-US"},{"forObject":"us-gaap:Cash","labelType":"xbrl:verboseLabel","value":"Cash","language":"en-US"},{"forObject":"us-gaap:Cash","labelType":"xbrl:terseLabel","value":"Cash","language":"en-US"},{"forObject":"us-gaap:Cash","labelType":"xbrl:label","value":"Cash","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy","labelType":"xbrl:terseLabel","value":"Cash and Cash Equivalents","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy","labelType":"xbrl:label","value":"Cash and Cash Equivalents, Restricted Cash and Cash Equivalents, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","labelType":"xbrl:periodStartLabel","value":"Cash, beginning of year","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","labelType":"xbrl:periodEndLabel","value":"Cash, end of year","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","labelType":"xbrl:label","value":"Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","labelType":"xbrl:totalLabel","value":"Increase (decrease) in cash","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","labelType":"xbrl:label","value":"Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect","language":"en-US"},{"forObject":"us-gaap:CashEquivalentsAtCarryingValue","labelType":"xbrl:terseLabel","value":"Cash equivalents","language":"en-US"},{"forObject":"us-gaap:CashEquivalentsAtCarryingValue","labelType":"xbrl:label","value":"Cash Equivalents, at Carrying Value","language":"en-US"},{"forObject":"us-gaap:ClassOfStockDomain","labelType":"xbrl:terseLabel","value":"Class of Stock [Domain]","language":"en-US"},{"forObject":"us-gaap:ClassOfStockDomain","labelType":"xbrl:label","value":"Class of Stock [Domain]","language":"en-US"},{"forObject":"us-gaap:ClassOfStockLineItems","labelType":"xbrl:terseLabel","value":"Class of Stock [Line Items]","language":"en-US"},{"forObject":"us-gaap:ClassOfStockLineItems","labelType":"xbrl:label","value":"Class of Stock [Line Items]","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","labelType":"xbrl:terseLabel","value":"Commitments and Contingencies Disclosure [Abstract]","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","labelType":"xbrl:label","value":"Commitments and Contingencies Disclosure [Abstract]","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingenciesDisclosureTextBlock","labelType":"xbrl:verboseLabel","value":"Commitments and Contingencies","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingenciesDisclosureTextBlock","labelType":"xbrl:label","value":"Commitments and Contingencies Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:CommonStockMember","labelType":"xbrl:terseLabel","value":"Common Stock","language":"en-US"},{"forObject":"us-gaap:CommonStockMember","labelType":"xbrl:label","value":"Common Stock [Member]","language":"en-US"},{"forObject":"us-gaap:CommonStockParOrStatedValuePerShare","labelType":"xbrl:terseLabel","value":"Common stock, par value (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:CommonStockParOrStatedValuePerShare","labelType":"xbrl:label","value":"Common Stock, Par or Stated Value Per Share","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesAuthorized","labelType":"xbrl:terseLabel","value":"Common stock, shares authorized (in shares)","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesAuthorized","labelType":"xbrl:label","value":"Common Stock, Shares Authorized","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesIssued","labelType":"xbrl:terseLabel","value":"Common stock, shares issued (in shares)","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesIssued","labelType":"xbrl:label","value":"Common Stock, Shares, Issued","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesOutstanding","labelType":"xbrl:terseLabel","value":"Common stock, shares outstanding (in shares)","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesOutstanding","labelType":"xbrl:periodStartLabel","value":"Beginning balance (in shares)","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesOutstanding","labelType":"xbrl:periodEndLabel","value":"Ending balance (in shares)","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesOutstanding","labelType":"xbrl:label","value":"Common Stock, Shares, Outstanding","language":"en-US"},{"forObject":"us-gaap:CommonStockValue","labelType":"xbrl:verboseLabel","value":"Common stock, $.001 par value; 200,000,000 shares authorized; 13,897,503 and 13,714,099 shares issued; and 13,777,170 and 13,593,766 shares outstanding at April 30, 2025 and 2024, respectively","language":"en-US"},{"forObject":"us-gaap:CommonStockValue","labelType":"xbrl:label","value":"Common Stock, Value, Issued","language":"en-US"},{"forObject":"us-gaap:ComputerEquipmentMember","labelType":"xbrl:terseLabel","value":"Computer equipment and software","language":"en-US"},{"forObject":"us-gaap:ComputerEquipmentMember","labelType":"xbrl:label","value":"Computer Equipment [Member]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskBenchmarkDomain","labelType":"xbrl:terseLabel","value":"Concentration Risk Benchmark [Domain]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskBenchmarkDomain","labelType":"xbrl:label","value":"Concentration Risk Benchmark [Domain]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskByBenchmarkAxis","labelType":"xbrl:terseLabel","value":"Concentration Risk Benchmark [Axis]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskByBenchmarkAxis","labelType":"xbrl:label","value":"Concentration Risk Benchmark [Axis]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskByTypeAxis","labelType":"xbrl:terseLabel","value":"Concentration Risk Type [Axis]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskByTypeAxis","labelType":"xbrl:label","value":"Concentration Risk Type [Axis]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskDisclosureTextBlock","labelType":"xbrl:terseLabel","value":"Significant Customers","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskDisclosureTextBlock","labelType":"xbrl:label","value":"Concentration Risk Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskPercentage1","labelType":"xbrl:terseLabel","value":"Concentration risk percentage","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskPercentage1","labelType":"xbrl:label","value":"Concentration Risk, Percentage","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskTypeDomain","labelType":"xbrl:terseLabel","value":"Concentration Risk Type [Domain]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskTypeDomain","labelType":"xbrl:label","value":"Concentration Risk Type [Domain]","language":"en-US"},{"forObject":"us-gaap:ConsolidationPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Principles of Consolidation","language":"en-US"},{"forObject":"us-gaap:ConsolidationPolicyTextBlock","labelType":"xbrl:label","value":"Consolidation, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Deferred Revenue","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock","labelType":"xbrl:label","value":"Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiability","labelType":"xbrl:terseLabel","value":"Deferred revenue","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiability","labelType":"xbrl:label","value":"Contract with Customer, Liability","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiabilityCurrent","labelType":"xbrl:verboseLabel","value":"Deferred revenue","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiabilityCurrent","labelType":"xbrl:label","value":"Contract with Customer, Liability, Current","language":"en-US"},{"forObject":"us-gaap:CostOfGoodsAndServicesSold","labelType":"xbrl:verboseLabel","value":"Cost of oncology revenue","language":"en-US"},{"forObject":"us-gaap:CostOfGoodsAndServicesSold","labelType":"xbrl:label","value":"Cost of Goods and Services Sold","language":"en-US"},{"forObject":"us-gaap:CostOfSalesPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Cost of Oncology Services","language":"en-US"},{"forObject":"us-gaap:CostOfSalesPolicyTextBlock","labelType":"xbrl:label","value":"Cost of Goods and Service [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:CurrentFederalTaxExpenseBenefit","labelType":"xbrl:terseLabel","value":"Current","language":"en-US"},{"forObject":"us-gaap:CurrentFederalTaxExpenseBenefit","labelType":"xbrl:label","value":"Current Federal Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:CurrentForeignTaxExpenseBenefit","labelType":"xbrl:terseLabel","value":"Current","language":"en-US"},{"forObject":"us-gaap:CurrentForeignTaxExpenseBenefit","labelType":"xbrl:label","value":"Current Foreign Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:CurrentIncomeTaxExpenseBenefit","labelType":"xbrl:totalLabel","value":"Current, total","language":"en-US"},{"forObject":"us-gaap:CurrentIncomeTaxExpenseBenefit","labelType":"xbrl:label","value":"Current Income Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","labelType":"xbrl:terseLabel","value":"Current","language":"en-US"},{"forObject":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","labelType":"xbrl:label","value":"Current State and Local Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:CustomerConcentrationRiskMember","labelType":"xbrl:terseLabel","value":"Customer Concentration Risk","language":"en-US"},{"forObject":"us-gaap:CustomerConcentrationRiskMember","labelType":"xbrl:label","value":"Customer Concentration Risk [Member]","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsGross","labelType":"xbrl:totalLabel","value":"Total deferred tax assets","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsGross","labelType":"xbrl:label","value":"Deferred Tax Assets, Gross","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsLiabilitiesNet","labelType":"xbrl:totalLabel","value":"Net deferred tax asset","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsLiabilitiesNet","labelType":"xbrl:label","value":"Deferred Tax Assets, Net","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","labelType":"xbrl:verboseLabel","value":"Net operating loss carry-forward","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","labelType":"xbrl:label","value":"Deferred Tax Assets, Operating Loss Carryforwards","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","labelType":"xbrl:verboseLabel","value":"Stock-based compensation expense","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","labelType":"xbrl:label","value":"Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-Based Compensation Cost","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","labelType":"xbrl:verboseLabel","value":"Accrued liabilities","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","labelType":"xbrl:label","value":"Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Accrued Liabilities","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsValuationAllowance","labelType":"xbrl:negatedLabel","value":"Less: Valuation allowance","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsValuationAllowance","labelType":"xbrl:terseLabel","value":"Deferred tax assets, valuation allowance","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsValuationAllowance","labelType":"xbrl:label","value":"Deferred Tax Assets, Valuation Allowance","language":"en-US"},{"forObject":"us-gaap:Depreciation","labelType":"xbrl:terseLabel","value":"Depreciation","language":"en-US"},{"forObject":"us-gaap:Depreciation","labelType":"xbrl:label","value":"Depreciation","language":"en-US"},{"forObject":"us-gaap:DepreciationAndAmortization","labelType":"xbrl:verboseLabel","value":"Depreciation and amortization expense","language":"en-US"},{"forObject":"us-gaap:DepreciationAndAmortization","labelType":"xbrl:label","value":"Depreciation, Depletion and Amortization, Nonproduction","language":"en-US"},{"forObject":"us-gaap:DepreciationDepletionAndAmortization","labelType":"xbrl:terseLabel","value":"Finance lease, depreciation and amortization expenses","language":"en-US"},{"forObject":"us-gaap:DepreciationDepletionAndAmortization","labelType":"xbrl:label","value":"Depreciation, Depletion and Amortization","language":"en-US"},{"forObject":"us-gaap:DisaggregationOfRevenueLineItems","labelType":"xbrl:terseLabel","value":"Disaggregation of Revenue [Line Items]","language":"en-US"},{"forObject":"us-gaap:DisaggregationOfRevenueLineItems","labelType":"xbrl:label","value":"Disaggregation of Revenue [Line Items]","language":"en-US"},{"forObject":"us-gaap:DisaggregationOfRevenueTable","labelType":"xbrl:terseLabel","value":"Disaggregation of Revenue [Table]","language":"en-US"},{"forObject":"us-gaap:DisaggregationOfRevenueTable","labelType":"xbrl:label","value":"Disaggregation of Revenue [Table]","language":"en-US"},{"forObject":"us-gaap:DisaggregationOfRevenueTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Disaggregation of Revenue","language":"en-US"},{"forObject":"us-gaap:DisaggregationOfRevenueTableTextBlock","labelType":"xbrl:label","value":"Disaggregation of Revenue [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock","labelType":"xbrl:verboseLabel","value":"Stock-based Payments","language":"en-US"},{"forObject":"us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock","labelType":"xbrl:label","value":"Share-Based Payment Arrangement [Text Block]","language":"en-US"},{"forObject":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","labelType":"xbrl:terseLabel","value":"Share-based Payment Arrangement [Abstract]","language":"en-US"},{"forObject":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","labelType":"xbrl:label","value":"Share-Based Payment Arrangement [Abstract]","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareAbstract","labelType":"xbrl:terseLabel","value":"Net income (loss) per common share outstanding","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareAbstract","labelType":"xbrl:label","value":"Earnings Per Share [Abstract]","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasic","labelType":"xbrl:verboseLabel","value":"basic (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasic","labelType":"xbrl:terseLabel","value":"Basic net loss per share (in usd per share)","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasic","labelType":"xbrl:label","value":"Earnings Per Share, Basic","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareDiluted","labelType":"xbrl:verboseLabel","value":"diluted (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareDiluted","labelType":"xbrl:netLabel","value":"Diluted net income (loss) per share (in usd per share)","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareDiluted","labelType":"xbrl:label","value":"Earnings Per Share, Diluted","language":"en-US"},{"forObject":"us-gaap:EarningsPerSharePolicyTextBlock","labelType":"xbrl:terseLabel","value":"Earnings Per Share","language":"en-US"},{"forObject":"us-gaap:EarningsPerSharePolicyTextBlock","labelType":"xbrl:label","value":"Earnings Per Share, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareTextBlock","labelType":"xbrl:terseLabel","value":"Earnings Per Share","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareTextBlock","labelType":"xbrl:label","value":"Earnings Per Share [Text Block]","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","labelType":"xbrl:totalLabel","value":"Income tax expense","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","labelType":"xbrl:verboseLabel","value":"Federal income tax at statutory rate","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","labelType":"xbrl:verboseLabel","value":"Change in valuation allowance","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","labelType":"xbrl:terseLabel","value":"US vs. foreign tax rate difference","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","labelType":"xbrl:verboseLabel","value":"State income tax, net of federal benefit","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent","language":"en-US"},{"forObject":"us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems","labelType":"xbrl:terseLabel","value":"Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]","language":"en-US"},{"forObject":"us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems","labelType":"xbrl:label","value":"Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]","language":"en-US"},{"forObject":"us-gaap:EmployeeStockOptionMember","labelType":"xbrl:terseLabel","value":"Stock options","language":"en-US"},{"forObject":"us-gaap:EmployeeStockOptionMember","labelType":"xbrl:label","value":"Share-Based Payment Arrangement, Option [Member]","language":"en-US"},{"forObject":"us-gaap:EntityWideRevenueMajorCustomerLineItems","labelType":"xbrl:terseLabel","value":"Revenue, Major Customer [Line Items]","language":"en-US"},{"forObject":"us-gaap:EntityWideRevenueMajorCustomerLineItems","labelType":"xbrl:label","value":"Revenue, Major Customer [Line Items]","language":"en-US"},{"forObject":"us-gaap:EquipmentMember","labelType":"xbrl:terseLabel","value":"Laboratory Equipment","language":"en-US"},{"forObject":"us-gaap:EquipmentMember","labelType":"xbrl:label","value":"Equipment [Member]","language":"en-US"},{"forObject":"us-gaap:EquityComponentDomain","labelType":"xbrl:terseLabel","value":"Equity Component [Domain]","language":"en-US"},{"forObject":"us-gaap:EquityComponentDomain","labelType":"xbrl:label","value":"Equity Component [Domain]","language":"en-US"},{"forObject":"us-gaap:FairValueByMeasurementFrequencyAxis","labelType":"xbrl:terseLabel","value":"Measurement Frequency [Axis]","language":"en-US"},{"forObject":"us-gaap:FairValueByMeasurementFrequencyAxis","labelType":"xbrl:label","value":"Measurement Frequency [Axis]","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementFrequencyDomain","labelType":"xbrl:terseLabel","value":"Measurement Frequency [Domain]","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementFrequencyDomain","labelType":"xbrl:label","value":"Measurement Frequency [Domain]","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementPolicyPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Fair Value","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementPolicyPolicyTextBlock","labelType":"xbrl:label","value":"Fair Value Measurement, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementsNonrecurringMember","labelType":"xbrl:terseLabel","value":"Nonrecurring Basis","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementsNonrecurringMember","labelType":"xbrl:label","value":"Fair Value, Nonrecurring [Member]","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementsRecurringMember","labelType":"xbrl:terseLabel","value":"Recurring Basis","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementsRecurringMember","labelType":"xbrl:label","value":"Fair Value, Recurring [Member]","language":"en-US"},{"forObject":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperations","labelType":"xbrl:totalLabel","value":"Total","language":"en-US"},{"forObject":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperations","labelType":"xbrl:label","value":"Federal Income Tax Expense (Benefit), Continuing Operations","language":"en-US"},{"forObject":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperationsAbstract","labelType":"xbrl:terseLabel","value":"Federal","language":"en-US"},{"forObject":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperationsAbstract","labelType":"xbrl:label","value":"Federal Income Tax Expense (Benefit), Continuing Operations [Abstract]","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseInterestExpense","labelType":"xbrl:terseLabel","value":"Interest on lease liabilities","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseInterestExpense","labelType":"xbrl:label","value":"Finance Lease, Interest Expense","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseInterestPaymentOnLiability","labelType":"xbrl:terseLabel","value":"Interest on finance lease liability","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseInterestPaymentOnLiability","labelType":"xbrl:label","value":"Finance Lease, Interest Payment on Liability","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiability","labelType":"xbrl:totalLabel","value":"Present value of minimum lease payments","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiability","labelType":"xbrl:label","value":"Finance Lease, Liability","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityCurrent","labelType":"xbrl:terseLabel","value":"Current portion financing lease","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityCurrent","labelType":"xbrl:label","value":"Finance Lease, Liability, Current","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Future Minimum Lease Payments","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock","labelType":"xbrl:label","value":"Finance Lease, Liability, to be Paid, Maturity [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityNoncurrent","labelType":"xbrl:terseLabel","value":"Long-term portion financing lease","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityNoncurrent","labelType":"xbrl:label","value":"Finance Lease, Liability, Noncurrent","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityPaymentsDue","labelType":"xbrl:totalLabel","value":"Total undiscounted liabilities","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityPaymentsDue","labelType":"xbrl:label","value":"Finance Lease, Liability, to be Paid","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths","labelType":"xbrl:terseLabel","value":"2026","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths","labelType":"xbrl:label","value":"Finance Lease, Liability, to be Paid, Year One","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree","labelType":"xbrl:terseLabel","value":"2028","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree","labelType":"xbrl:label","value":"Finance Lease, Liability, to be Paid, Year Three","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo","labelType":"xbrl:terseLabel","value":"2027","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo","labelType":"xbrl:label","value":"Finance Lease, Liability, to be Paid, Year Two","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList","labelType":"xbrl:terseLabel","value":"Finance Lease, Liability, Statement of Financial Position [Extensible Enumeration]","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList","labelType":"xbrl:label","value":"Finance Lease, Liability, Statement of Financial Position [Extensible Enumeration]","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount","labelType":"xbrl:negatedTerseLabel","value":"Less: Imputed interest","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount","labelType":"xbrl:label","value":"Finance Lease, Liability, Undiscounted Excess Amount","language":"en-US"},{"forObject":"us-gaap:FinanceLeasePrincipalPayments","labelType":"xbrl:negatedLabel","value":"Finance lease payments","language":"en-US"},{"forObject":"us-gaap:FinanceLeasePrincipalPayments","labelType":"xbrl:label","value":"Finance Lease, Principal Payments","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseRightOfUseAsset","labelType":"xbrl:terseLabel","value":"Assets under finance lease","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseRightOfUseAsset","labelType":"xbrl:label","value":"Finance Lease, Right-of-Use Asset, after Accumulated Amortization","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","labelType":"xbrl:terseLabel","value":"Finance lease, depreciation and amortization expense","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","labelType":"xbrl:verboseLabel","value":"Amortization of leased assets","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","labelType":"xbrl:label","value":"Finance Lease, Right-of-Use Asset, Amortization","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList","labelType":"xbrl:terseLabel","value":"Finance lease, right-of-use asset, statement of financial position [Extensible Enumeration]","language":"en-US"},{"forObject":"us-gaap:FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList","labelType":"xbrl:label","value":"Finance Lease, Right-of-Use Asset, Statement of Financial Position [Extensible Enumeration]","language":"en-US"},{"forObject":"us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Foreign Currency","language":"en-US"},{"forObject":"us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock","labelType":"xbrl:label","value":"Foreign Currency Transactions and Translations Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperations","labelType":"xbrl:totalLabel","value":"Total","language":"en-US"},{"forObject":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperations","labelType":"xbrl:label","value":"Foreign Income Tax Expense (Benefit), Continuing Operations","language":"en-US"},{"forObject":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperationsAbstract","labelType":"xbrl:terseLabel","value":"Foreign","language":"en-US"},{"forObject":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperationsAbstract","labelType":"xbrl:label","value":"Foreign Income Tax Expense (Benefit), Continuing Operations [Abstract]","language":"en-US"},{"forObject":"us-gaap:FurnitureAndFixturesMember","labelType":"xbrl:terseLabel","value":"Furniture and fixtures","language":"en-US"},{"forObject":"us-gaap:FurnitureAndFixturesMember","labelType":"xbrl:label","value":"Furniture and Fixtures [Member]","language":"en-US"},{"forObject":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","labelType":"xbrl:negatedLabel","value":"Loss on disposal of equipment","language":"en-US"},{"forObject":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","labelType":"xbrl:negatedTerseLabel","value":"Net loss on disposal of equipment","language":"en-US"},{"forObject":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","labelType":"xbrl:label","value":"Gain (Loss) on Disposition of Property Plant Equipment","language":"en-US"},{"forObject":"us-gaap:GeneralAndAdministrativeExpense","labelType":"xbrl:terseLabel","value":"General and administrative","language":"en-US"},{"forObject":"us-gaap:GeneralAndAdministrativeExpense","labelType":"xbrl:label","value":"General and Administrative Expense","language":"en-US"},{"forObject":"us-gaap:GeneralAndAdministrativeExpenseMember","labelType":"xbrl:terseLabel","value":"General and administrative","language":"en-US"},{"forObject":"us-gaap:GeneralAndAdministrativeExpenseMember","labelType":"xbrl:label","value":"General and Administrative Expense [Member]","language":"en-US"},{"forObject":"us-gaap:Goodwill","labelType":"xbrl:verboseLabel","value":"Goodwill","language":"en-US"},{"forObject":"us-gaap:Goodwill","labelType":"xbrl:label","value":"Goodwill","language":"en-US"},{"forObject":"us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Goodwill","language":"en-US"},{"forObject":"us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock","labelType":"xbrl:label","value":"Goodwill and Intangible Assets, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:GoodwillImpairmentLoss","labelType":"xbrl:terseLabel","value":"Impairment of goodwill","language":"en-US"},{"forObject":"us-gaap:GoodwillImpairmentLoss","labelType":"xbrl:label","value":"Goodwill, Impairment Loss","language":"en-US"},{"forObject":"us-gaap:ImpairmentOfLongLivedAssetsHeldForUse","labelType":"xbrl:terseLabel","value":"Asset impairment","language":"en-US"},{"forObject":"us-gaap:ImpairmentOfLongLivedAssetsHeldForUse","labelType":"xbrl:label","value":"Impairment, Long-Lived Asset, Held-for-Use","language":"en-US"},{"forObject":"us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Impairment of Long-Lived Assets","language":"en-US"},{"forObject":"us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock","labelType":"xbrl:label","value":"Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","labelType":"xbrl:totalLabel","value":"Income (loss) before income tax expense","language":"en-US"},{"forObject":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","labelType":"xbrl:label","value":"Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest","language":"en-US"},{"forObject":"us-gaap:IncomeStatementAbstract","labelType":"xbrl:terseLabel","value":"Income Statement [Abstract]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementAbstract","labelType":"xbrl:label","value":"Income Statement [Abstract]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementLocationAxis","labelType":"xbrl:terseLabel","value":"Income Statement Location [Axis]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementLocationAxis","labelType":"xbrl:label","value":"Statement of Income Location, Balance [Axis]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementLocationDomain","labelType":"xbrl:terseLabel","value":"Income Statement Location [Domain]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementLocationDomain","labelType":"xbrl:label","value":"Statement of Income Location, Balance [Domain]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxDisclosureAbstract","labelType":"xbrl:terseLabel","value":"Income Tax Disclosure [Abstract]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxDisclosureAbstract","labelType":"xbrl:label","value":"Income Tax Disclosure [Abstract]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxDisclosureTextBlock","labelType":"xbrl:terseLabel","value":"Provision for (Benefit from) Income Taxes","language":"en-US"},{"forObject":"us-gaap:IncomeTaxDisclosureTextBlock","labelType":"xbrl:label","value":"Income Tax Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExaminationPenaltiesAndInterestExpense","labelType":"xbrl:terseLabel","value":"Interest and or penalties","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExaminationPenaltiesAndInterestExpense","labelType":"xbrl:label","value":"Income Tax Examination, Penalties and Interest Expense","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExpenseBenefit","labelType":"xbrl:terseLabel","value":"Benefit for income tax","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExpenseBenefit","labelType":"xbrl:negatedTerseLabel","value":"Benefit for income tax","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExpenseBenefit","labelType":"xbrl:totalLabel","value":"Provision for income tax","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExpenseBenefit","labelType":"xbrl:label","value":"Income Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Income Taxes","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPolicyTextBlock","labelType":"xbrl:label","value":"Income Tax, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInAccountsPayable","labelType":"xbrl:verboseLabel","value":"Accounts payable","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInAccountsPayable","labelType":"xbrl:label","value":"Increase (Decrease) in Accounts Payable","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInAccountsReceivable","labelType":"xbrl:negatedLabel","value":"Accounts receivable","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInAccountsReceivable","labelType":"xbrl:label","value":"Increase (Decrease) in Accounts Receivable","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInAccruedLiabilities","labelType":"xbrl:verboseLabel","value":"Accrued liabilities","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInAccruedLiabilities","labelType":"xbrl:label","value":"Increase (Decrease) in Accrued Liabilities","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInContractWithCustomerLiability","labelType":"xbrl:verboseLabel","value":"Deferred revenue","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInContractWithCustomerLiability","labelType":"xbrl:label","value":"Increase (Decrease) in Contract with Customer, Liability","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInOperatingLeaseLiability","labelType":"xbrl:terseLabel","value":"Operating lease liabilities","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInOperatingLeaseLiability","labelType":"xbrl:label","value":"Increase (Decrease) in Operating Lease Liability","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInOperatingLiabilitiesAbstract","labelType":"xbrl:verboseLabel","value":"Changes in operating assets and liabilities:","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInOperatingLiabilitiesAbstract","labelType":"xbrl:label","value":"Increase (Decrease) in Operating Liabilities [Abstract]","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInOtherNoncurrentAssets","labelType":"xbrl:negatedLabel","value":"Other long term assets","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInOtherNoncurrentAssets","labelType":"xbrl:label","value":"Increase (Decrease) in Other Noncurrent Assets","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","labelType":"xbrl:negatedLabel","value":"Prepaid expenses and other current assets","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","labelType":"xbrl:label","value":"Increase (Decrease) in Prepaid Expense and Other Assets","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","labelType":"xbrl:terseLabel","value":"Increase (Decrease) in Stockholders' Equity [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","labelType":"xbrl:label","value":"Increase (Decrease) in Stockholders' Equity [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants","labelType":"xbrl:terseLabel","value":"Incremental shares from assumed exercise of stock options (in shares)","language":"en-US"},{"forObject":"us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants","labelType":"xbrl:label","value":"Incremental Common Shares Attributable to Dilutive Effect of Call Options and Warrants","language":"en-US"},{"forObject":"us-gaap:LeaseCost","labelType":"xbrl:totalLabel","value":"Total lease costs","language":"en-US"},{"forObject":"us-gaap:LeaseCost","labelType":"xbrl:label","value":"Lease, Cost","language":"en-US"},{"forObject":"us-gaap:LeaseCostTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Components of Lease Expense","language":"en-US"},{"forObject":"us-gaap:LeaseCostTableTextBlock","labelType":"xbrl:label","value":"Lease, Cost [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:LeaseholdImprovementsMember","labelType":"xbrl:terseLabel","value":"Leasehold improvements","language":"en-US"},{"forObject":"us-gaap:LeaseholdImprovementsMember","labelType":"xbrl:label","value":"Leasehold Improvements [Member]","language":"en-US"},{"forObject":"us-gaap:LeasesAbstract","labelType":"xbrl:terseLabel","value":"Leases [Abstract]","language":"en-US"},{"forObject":"us-gaap:LeasesAbstract","labelType":"xbrl:label","value":"Leases [Abstract]","language":"en-US"},{"forObject":"us-gaap:LesseeFinanceLeasesTextBlock","labelType":"xbrl:terseLabel","value":"Leases","language":"en-US"},{"forObject":"us-gaap:LesseeFinanceLeasesTextBlock","labelType":"xbrl:label","value":"Lessee, Finance Leases [Text Block]","language":"en-US"},{"forObject":"us-gaap:LesseeLeaseDescriptionLineItems","labelType":"xbrl:terseLabel","value":"Lessee, Lease, Description [Line Items]","language":"en-US"},{"forObject":"us-gaap:LesseeLeaseDescriptionLineItems","labelType":"xbrl:label","value":"Lessee, Lease, Description [Line Items]","language":"en-US"},{"forObject":"us-gaap:LesseeLeaseDescriptionTable","labelType":"xbrl:terseLabel","value":"Lessee, Lease, Description [Table]","language":"en-US"},{"forObject":"us-gaap:LesseeLeaseDescriptionTable","labelType":"xbrl:label","value":"Lessee, Lease, Description [Table]","language":"en-US"},{"forObject":"us-gaap:LesseeLeasesPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Leases","language":"en-US"},{"forObject":"us-gaap:LesseeLeasesPolicyTextBlock","labelType":"xbrl:label","value":"Lessee, Leases [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Future Operating Lease Payments","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","labelType":"xbrl:totalLabel","value":"\u00a0Total undiscounted liabilities","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","labelType":"xbrl:verboseLabel","value":"2026","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, Year One","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","labelType":"xbrl:terseLabel","value":"2029","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, Year Four","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","labelType":"xbrl:terseLabel","value":"2028","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, Year Three","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","labelType":"xbrl:terseLabel","value":"2027","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, Year Two","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","labelType":"xbrl:negatedTerseLabel","value":"Less: Imputed interest","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, Undiscounted Excess Amount","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeasesTextBlock","labelType":"xbrl:terseLabel","value":"Leases","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeasesTextBlock","labelType":"xbrl:label","value":"Lessee, Operating Leases [Text Block]","language":"en-US"},{"forObject":"us-gaap:Liabilities","labelType":"xbrl:totalLabel","value":"Total liabilities","language":"en-US"},{"forObject":"us-gaap:Liabilities","labelType":"xbrl:label","value":"Liabilities","language":"en-US"},{"forObject":"us-gaap:LiabilitiesAndStockholdersEquity","labelType":"xbrl:totalLabel","value":"Total liabilities and stockholders' equity (deficiency)","language":"en-US"},{"forObject":"us-gaap:LiabilitiesAndStockholdersEquity","labelType":"xbrl:label","value":"Liabilities and Equity","language":"en-US"},{"forObject":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","labelType":"xbrl:verboseLabel","value":"LIABILITIES AND STOCKHOLDERS' EQUITY (DEFICIENCY)","language":"en-US"},{"forObject":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","labelType":"xbrl:label","value":"Liabilities and Equity [Abstract]","language":"en-US"},{"forObject":"us-gaap:LiabilitiesCurrent","labelType":"xbrl:totalLabel","value":"Total current liabilities","language":"en-US"},{"forObject":"us-gaap:LiabilitiesCurrent","labelType":"xbrl:label","value":"Liabilities, Current","language":"en-US"},{"forObject":"us-gaap:LiabilitiesCurrentAbstract","labelType":"xbrl:verboseLabel","value":"Current liabilities:","language":"en-US"},{"forObject":"us-gaap:LiabilitiesCurrentAbstract","labelType":"xbrl:label","value":"Liabilities, Current [Abstract]","language":"en-US"},{"forObject":"us-gaap:LiabilitiesFairValueDisclosure","labelType":"xbrl:terseLabel","value":"Liabilities, fair value","language":"en-US"},{"forObject":"us-gaap:LiabilitiesFairValueDisclosure","labelType":"xbrl:label","value":"Liabilities, Fair Value Disclosure","language":"en-US"},{"forObject":"us-gaap:LicenseAndMaintenanceMember","labelType":"xbrl:terseLabel","value":"TOS data license revenue","language":"en-US"},{"forObject":"us-gaap:LicenseAndMaintenanceMember","labelType":"xbrl:label","value":"License and Maintenance [Member]","language":"en-US"},{"forObject":"us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock","labelType":"xbrl:terseLabel","value":"Accounts Receivable, Unbilled Services and Deferred Revenue","language":"en-US"},{"forObject":"us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock","labelType":"xbrl:label","value":"Loans, Notes, Trade and Other Receivables Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInFinancingActivities","labelType":"xbrl:totalLabel","value":"Net cash provided by (used in) financing activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInFinancingActivities","labelType":"xbrl:label","value":"Net Cash Provided by (Used in) Financing Activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","labelType":"xbrl:verboseLabel","value":"Financing activities:","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","labelType":"xbrl:label","value":"Net Cash Provided by (Used in) Financing Activities [Abstract]","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInInvestingActivities","labelType":"xbrl:totalLabel","value":"Net cash used in investing activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInInvestingActivities","labelType":"xbrl:label","value":"Net Cash Provided by (Used in) Investing Activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","labelType":"xbrl:verboseLabel","value":"Investing activities:","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","labelType":"xbrl:label","value":"Net Cash Provided by (Used in) Investing Activities [Abstract]","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInOperatingActivities","labelType":"xbrl:totalLabel","value":"Net cash provided by (used in) operating activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInOperatingActivities","labelType":"xbrl:label","value":"Net Cash Provided by (Used in) Operating Activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","labelType":"xbrl:verboseLabel","value":"Operating activities:","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","labelType":"xbrl:label","value":"Net Cash Provided by (Used in) Operating Activities [Abstract]","language":"en-US"},{"forObject":"us-gaap:NetIncomeLoss","labelType":"xbrl:totalLabel","value":"Net income (loss)","language":"en-US"},{"forObject":"us-gaap:NetIncomeLoss","labelType":"xbrl:netLabel","value":"Net income (loss)","language":"en-US"},{"forObject":"us-gaap:NetIncomeLoss","labelType":"xbrl:terseLabel","value":"Net income (loss) attributable to common stockholders","language":"en-US"},{"forObject":"us-gaap:NetIncomeLoss","labelType":"xbrl:label","value":"Net Income (Loss) Attributable to Parent","language":"en-US"},{"forObject":"us-gaap:NetIncomeLossAvailableToCommonStockholdersBasicAbstract","labelType":"xbrl:verboseLabel","value":"Basic and diluted net income (loss) per share computation (dollars in thousands):","language":"en-US"},{"forObject":"us-gaap:NetIncomeLossAvailableToCommonStockholdersBasicAbstract","labelType":"xbrl:label","value":"Net Income (Loss) Available to Common Stockholders, Basic [Abstract]","language":"en-US"},{"forObject":"us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted","labelType":"xbrl:terseLabel","value":"Net income (loss) attributable to common stockholders","language":"en-US"},{"forObject":"us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted","labelType":"xbrl:label","value":"Net Income (Loss) Available to Common Stockholders, Diluted","language":"en-US"},{"forObject":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Recent Accounting Pronouncements","language":"en-US"},{"forObject":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","labelType":"xbrl:label","value":"New Accounting Pronouncements, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:NoncashInvestingAndFinancingItemsAbstract","labelType":"xbrl:terseLabel","value":"Non-cash investing activities:","language":"en-US"},{"forObject":"us-gaap:NoncashInvestingAndFinancingItemsAbstract","labelType":"xbrl:label","value":"Noncash Investing and Financing Items [Abstract]","language":"en-US"},{"forObject":"us-gaap:NonoperatingIncomeExpenseAbstract","labelType":"xbrl:terseLabel","value":"Other income (expense):","language":"en-US"},{"forObject":"us-gaap:NonoperatingIncomeExpenseAbstract","labelType":"xbrl:label","value":"Nonoperating Income (Expense) [Abstract]","language":"en-US"},{"forObject":"us-gaap:NumberOfOperatingSegments","labelType":"xbrl:terseLabel","value":"Number of operating segments","language":"en-US"},{"forObject":"us-gaap:NumberOfOperatingSegments","labelType":"xbrl:label","value":"Number of Operating Segments","language":"en-US"},{"forObject":"us-gaap:NumberOfReportableSegments","labelType":"xbrl:terseLabel","value":"Number of reportable segments","language":"en-US"},{"forObject":"us-gaap:NumberOfReportableSegments","labelType":"xbrl:label","value":"Number of Reportable Segments","language":"en-US"},{"forObject":"us-gaap:OfficersCompensation","labelType":"xbrl:terseLabel","value":"Annual basic salary","language":"en-US"},{"forObject":"us-gaap:OfficersCompensation","labelType":"xbrl:label","value":"Salary and Wage, Officer, Excluding Cost of Good and Service Sold","language":"en-US"},{"forObject":"us-gaap:OperatingCostsAndExpenses","labelType":"xbrl:totalLabel","value":"Total costs and operating expenses","language":"en-US"},{"forObject":"us-gaap:OperatingCostsAndExpenses","labelType":"xbrl:label","value":"Operating Costs and Expenses","language":"en-US"},{"forObject":"us-gaap:OperatingExpensesAbstract","labelType":"xbrl:verboseLabel","value":"Costs and operating expenses:","language":"en-US"},{"forObject":"us-gaap:OperatingExpensesAbstract","labelType":"xbrl:label","value":"Operating Expenses [Abstract]","language":"en-US"},{"forObject":"us-gaap:OperatingIncomeLoss","labelType":"xbrl:totalLabel","value":"Income (loss) from operations","language":"en-US"},{"forObject":"us-gaap:OperatingIncomeLoss","labelType":"xbrl:label","value":"Operating Income (Loss)","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseCost","labelType":"xbrl:terseLabel","value":"Operating lease costs","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseCost","labelType":"xbrl:label","value":"Operating Lease, Cost","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseExpense","labelType":"xbrl:terseLabel","value":"Operating leases, rent expense","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseExpense","labelType":"xbrl:label","value":"Operating Lease, Expense","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilitiesPaymentsDueAbstract","labelType":"xbrl:terseLabel","value":"Lessee, Operating Lease, Liability, Payment, Due [Abstract]","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilitiesPaymentsDueAbstract","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiability","labelType":"xbrl:terseLabel","value":"Present value of minimum lease payments","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiability","labelType":"xbrl:label","value":"Operating Lease, Liability","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityCurrent","labelType":"xbrl:terseLabel","value":"Current portion of operating lease liabilities","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityCurrent","labelType":"xbrl:verboseLabel","value":"Current portion of operating lease liabilities","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityCurrent","labelType":"xbrl:label","value":"Operating Lease, Liability, Current","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityNoncurrent","labelType":"xbrl:terseLabel","value":"Non-current portion operating lease liabilities","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityNoncurrent","labelType":"xbrl:verboseLabel","value":"Non-current portion of operating lease liabilities","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityNoncurrent","labelType":"xbrl:label","value":"Operating Lease, Liability, Noncurrent","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseRightOfUseAsset","labelType":"xbrl:terseLabel","value":"Operating lease right-of-use assets, net","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseRightOfUseAsset","labelType":"xbrl:verboseLabel","value":"Operating lease right-of-use assets, net","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseRightOfUseAsset","labelType":"xbrl:label","value":"Operating Lease, Right-of-Use Asset","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","labelType":"xbrl:terseLabel","value":"Weighted average discount rate, percent","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","labelType":"xbrl:label","value":"Operating Lease, Weighted Average Discount Rate, Percent","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","labelType":"xbrl:terseLabel","value":"Weighted average remaining lease term (in years)","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","labelType":"xbrl:label","value":"Operating Lease, Weighted Average Remaining Lease Term","language":"en-US"},{"forObject":"us-gaap:OperatingLossCarryforwards","labelType":"xbrl:terseLabel","value":"Operating loss carryforwards","language":"en-US"},{"forObject":"us-gaap:OperatingLossCarryforwards","labelType":"xbrl:label","value":"Operating Loss Carryforwards","language":"en-US"},{"forObject":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract","labelType":"xbrl:terseLabel","value":"Organization, Consolidation and Presentation of Financial Statements [Abstract]","language":"en-US"},{"forObject":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract","labelType":"xbrl:label","value":"Organization, Consolidation and Presentation of Financial Statements [Abstract]","language":"en-US"},{"forObject":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock","labelType":"xbrl:verboseLabel","value":"Organization and Basis of Presentation","language":"en-US"},{"forObject":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock","labelType":"xbrl:label","value":"Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:OtherAssetsNoncurrent","labelType":"xbrl:terseLabel","value":"Other long term assets","language":"en-US"},{"forObject":"us-gaap:OtherAssetsNoncurrent","labelType":"xbrl:label","value":"Other Assets, Noncurrent","language":"en-US"},{"forObject":"us-gaap:OtherLiabilitiesCurrent","labelType":"xbrl:terseLabel","value":"Other current liabilities","language":"en-US"},{"forObject":"us-gaap:OtherLiabilitiesCurrent","labelType":"xbrl:label","value":"Other Liabilities, Current","language":"en-US"},{"forObject":"us-gaap:OtherLiabilitiesNoncurrent","labelType":"xbrl:verboseLabel","value":"Other non-current liabilities","language":"en-US"},{"forObject":"us-gaap:OtherLiabilitiesNoncurrent","labelType":"xbrl:label","value":"Other Liabilities, Noncurrent","language":"en-US"},{"forObject":"us-gaap:OtherNonoperatingIncomeExpense","labelType":"xbrl:verboseLabel","value":"Other income, net","language":"en-US"},{"forObject":"us-gaap:OtherNonoperatingIncomeExpense","labelType":"xbrl:label","value":"Other Nonoperating Income (Expense)","language":"en-US"},{"forObject":"us-gaap:PaymentsForRepurchaseOfCommonStock","labelType":"xbrl:negatedTerseLabel","value":"Repurchases of common stock","language":"en-US"},{"forObject":"us-gaap:PaymentsForRepurchaseOfCommonStock","labelType":"xbrl:label","value":"Payments for Repurchase of Common Stock","language":"en-US"},{"forObject":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","labelType":"xbrl:negatedLabel","value":"Purchase of property and equipment","language":"en-US"},{"forObject":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","labelType":"xbrl:label","value":"Payments to Acquire Property, Plant, and Equipment","language":"en-US"},{"forObject":"us-gaap:PlanNameAxis","labelType":"xbrl:terseLabel","value":"Plan Name [Axis]","language":"en-US"},{"forObject":"us-gaap:PlanNameAxis","labelType":"xbrl:label","value":"Plan Name [Axis]","language":"en-US"},{"forObject":"us-gaap:PlanNameDomain","labelType":"xbrl:terseLabel","value":"Plan Name [Domain]","language":"en-US"},{"forObject":"us-gaap:PlanNameDomain","labelType":"xbrl:label","value":"Plan Name [Domain]","language":"en-US"},{"forObject":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","labelType":"xbrl:verboseLabel","value":"Prepaid expenses and other current assets","language":"en-US"},{"forObject":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","labelType":"xbrl:label","value":"Prepaid Expense and Other Assets, Current","language":"en-US"},{"forObject":"us-gaap:ProceedsFromStockOptionsExercised","labelType":"xbrl:terseLabel","value":"Proceeds from exercise of options","language":"en-US"},{"forObject":"us-gaap:ProceedsFromStockOptionsExercised","labelType":"xbrl:label","value":"Proceeds from Stock Options Exercised","language":"en-US"},{"forObject":"us-gaap:ProductAndServiceOtherMember","labelType":"xbrl:terseLabel","value":"Other TOS revenue","language":"en-US"},{"forObject":"us-gaap:ProductAndServiceOtherMember","labelType":"xbrl:label","value":"Product and Service, Other [Member]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentAbstract","labelType":"xbrl:terseLabel","value":"Property, Plant and Equipment [Abstract]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentAbstract","labelType":"xbrl:label","value":"Property, Plant and Equipment [Abstract]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","labelType":"xbrl:verboseLabel","value":"Property and equipment, net","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","labelType":"xbrl:totalLabel","value":"Property and equipment, net","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","labelType":"xbrl:label","value":"Property, Plant, and Equipment and Finance Lease Right-of-Use Asset, after Accumulated Depreciation and Amortization","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","labelType":"xbrl:terseLabel","value":"Property, Plant and Equipment, Type [Axis]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","labelType":"xbrl:label","value":"Long-Lived Tangible Asset [Axis]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock","labelType":"xbrl:terseLabel","value":"Property and Equipment","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock","labelType":"xbrl:label","value":"Property, Plant and Equipment Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentDisposals","labelType":"xbrl:terseLabel","value":"Disposed of lab equipment","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentDisposals","labelType":"xbrl:label","value":"Property, Plant and Equipment, Disposals","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentGross","labelType":"xbrl:terseLabel","value":"Total property and equipment","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentGross","labelType":"xbrl:label","value":"Property, Plant and Equipment, Gross","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentLineItems","labelType":"xbrl:terseLabel","value":"Property, Plant and Equipment [Line Items]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentLineItems","labelType":"xbrl:label","value":"Property, Plant and Equipment [Line Items]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Property and Equipment","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentPolicyTextBlock","labelType":"xbrl:label","value":"Property, Plant and Equipment, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Property and Equipment","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentTextBlock","labelType":"xbrl:label","value":"Property, Plant and Equipment [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentTypeDomain","labelType":"xbrl:terseLabel","value":"Property, Plant and Equipment, Type [Domain]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentTypeDomain","labelType":"xbrl:label","value":"Long-Lived Tangible Asset [Domain]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentUsefulLife","labelType":"xbrl:terseLabel","value":"Useful life","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentUsefulLife","labelType":"xbrl:label","value":"Property, Plant and Equipment, Useful Life","language":"en-US"},{"forObject":"us-gaap:ProvisionForDoubtfulAccounts","labelType":"xbrl:terseLabel","value":"Allowance and estimated credit losses","language":"en-US"},{"forObject":"us-gaap:ProvisionForDoubtfulAccounts","labelType":"xbrl:label","value":"Accounts Receivable, Credit Loss Expense (Reversal)","language":"en-US"},{"forObject":"us-gaap:ReceivablesAbstract","labelType":"xbrl:terseLabel","value":"Receivables [Abstract]","language":"en-US"},{"forObject":"us-gaap:ReceivablesAbstract","labelType":"xbrl:label","value":"Receivables [Abstract]","language":"en-US"},{"forObject":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","labelType":"xbrl:terseLabel","value":"Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","labelType":"xbrl:label","value":"Unrecognized Tax Benefits [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:RelatedPartyTransactionAmountsOfTransaction","labelType":"xbrl:verboseLabel","value":"Related related party transaction, amounts of transaction","language":"en-US"},{"forObject":"us-gaap:RelatedPartyTransactionAmountsOfTransaction","labelType":"xbrl:label","value":"Related Party Transaction, Amounts of Transaction","language":"en-US"},{"forObject":"us-gaap:RelatedPartyTransactionLineItems","labelType":"xbrl:terseLabel","value":"Related Party Transaction [Line Items]","language":"en-US"},{"forObject":"us-gaap:RelatedPartyTransactionLineItems","labelType":"xbrl:label","value":"Related Party Transaction [Line Items]","language":"en-US"},{"forObject":"us-gaap:RelatedPartyTransactionsAbstract","labelType":"xbrl:terseLabel","value":"Related Party Transactions [Abstract]","language":"en-US"},{"forObject":"us-gaap:RelatedPartyTransactionsAbstract","labelType":"xbrl:label","value":"Related Party Transactions [Abstract]","language":"en-US"},{"forObject":"us-gaap:RelatedPartyTransactionsDisclosureTextBlock","labelType":"xbrl:verboseLabel","value":"Related Party Transactions","language":"en-US"},{"forObject":"us-gaap:RelatedPartyTransactionsDisclosureTextBlock","labelType":"xbrl:label","value":"Related Party Transactions Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:ResearchAndDevelopmentExpense","labelType":"xbrl:verboseLabel","value":"Research and development","language":"en-US"},{"forObject":"us-gaap:ResearchAndDevelopmentExpense","labelType":"xbrl:label","value":"Research and Development Expense","language":"en-US"},{"forObject":"us-gaap:ResearchAndDevelopmentExpenseMember","labelType":"xbrl:terseLabel","value":"Research and development","language":"en-US"},{"forObject":"us-gaap:ResearchAndDevelopmentExpenseMember","labelType":"xbrl:label","value":"Research and Development Expense [Member]","language":"en-US"},{"forObject":"us-gaap:ResearchAndDevelopmentExpensePolicy","labelType":"xbrl:terseLabel","value":"Research and Development","language":"en-US"},{"forObject":"us-gaap:ResearchAndDevelopmentExpensePolicy","labelType":"xbrl:label","value":"Research and Development Expense, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:RetainedEarningsAccumulatedDeficit","labelType":"xbrl:verboseLabel","value":"Accumulated deficit","language":"en-US"},{"forObject":"us-gaap:RetainedEarningsAccumulatedDeficit","labelType":"xbrl:negatedTerseLabel","value":"Accumulated deficit","language":"en-US"},{"forObject":"us-gaap:RetainedEarningsAccumulatedDeficit","labelType":"xbrl:label","value":"Retained Earnings (Accumulated Deficit)","language":"en-US"},{"forObject":"us-gaap:RetainedEarningsMember","labelType":"xbrl:terseLabel","value":"Accumulated Deficit","language":"en-US"},{"forObject":"us-gaap:RetainedEarningsMember","labelType":"xbrl:label","value":"Retained Earnings [Member]","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerAbstract","labelType":"xbrl:terseLabel","value":"Revenue from Contract with Customer [Abstract]","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerAbstract","labelType":"xbrl:label","value":"Revenue from Contract with Customer [Abstract]","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","labelType":"xbrl:terseLabel","value":"Oncology revenue","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","labelType":"xbrl:verboseLabel","value":"Revenue","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","labelType":"xbrl:netLabel","value":"Total oncology revenue","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","labelType":"xbrl:label","value":"Revenue from Contract with Customer, Excluding Assessed Tax","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Revenue Recognition","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerPolicyTextBlock","labelType":"xbrl:label","value":"Revenue from Contract with Customer [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerTextBlock","labelType":"xbrl:terseLabel","value":"Revenue from Contracts with Customers","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerTextBlock","labelType":"xbrl:label","value":"Revenue from Contract with Customer [Text Block]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems","labelType":"xbrl:terseLabel","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems","labelType":"xbrl:label","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","labelType":"xbrl:terseLabel","value":"Revenue arrangements by service contract period","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","labelType":"xbrl:label","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis","labelType":"xbrl:terseLabel","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis","labelType":"xbrl:label","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","labelType":"xbrl:terseLabel","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","labelType":"xbrl:label","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]","language":"en-US"},{"forObject":"us-gaap:RisksAndUncertaintiesAbstract","labelType":"xbrl:terseLabel","value":"Risks and Uncertainties [Abstract]","language":"en-US"},{"forObject":"us-gaap:RisksAndUncertaintiesAbstract","labelType":"xbrl:label","value":"Risks and Uncertainties [Abstract]","language":"en-US"},{"forObject":"us-gaap:RoyaltyExpense","labelType":"xbrl:terseLabel","value":"Royalty expense","language":"en-US"},{"forObject":"us-gaap:RoyaltyExpense","labelType":"xbrl:label","value":"Royalty Expense","language":"en-US"},{"forObject":"us-gaap:SalesRevenueNetMember","labelType":"xbrl:terseLabel","value":"Revenue","language":"en-US"},{"forObject":"us-gaap:SalesRevenueNetMember","labelType":"xbrl:label","value":"Revenue Benchmark [Member]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Accounts Receivable and Unbilled Services","language":"en-US"},{"forObject":"us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock","labelType":"xbrl:label","value":"Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Potentially Dilutive Stock-based Instruments","language":"en-US"},{"forObject":"us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock","labelType":"xbrl:label","value":"Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Components of Provision (Benefit) for Income Taxes","language":"en-US"},{"forObject":"us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock","labelType":"xbrl:label","value":"Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Deferred Tax Assets and Liabilities","language":"en-US"},{"forObject":"us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock","labelType":"xbrl:label","value":"Schedule of Deferred Tax Assets and Liabilities [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Earnings Per Share, Basic and Diluted","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock","labelType":"xbrl:label","value":"Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Effective Income Tax Rate Reconciliation","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock","labelType":"xbrl:label","value":"Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable","labelType":"xbrl:terseLabel","value":"Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable","labelType":"xbrl:label","value":"Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock","labelType":"xbrl:verboseLabel","value":"Schedule of Allocation of Share Based Compensation Expense","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock","labelType":"xbrl:label","value":"Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable","labelType":"xbrl:terseLabel","value":"Schedule of Revenue by Major Customers, by Reporting Segments [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable","labelType":"xbrl:label","value":"Schedule of Revenue by Major Customers, by Reporting Segments [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","labelType":"xbrl:terseLabel","value":"Property, Plant and Equipment [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","labelType":"xbrl:label","value":"Property, Plant and Equipment [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfRelatedPartyTransactionsByRelatedPartyTable","labelType":"xbrl:terseLabel","value":"Schedule of Related Party Transactions, by Related Party [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfRelatedPartyTransactionsByRelatedPartyTable","labelType":"xbrl:label","value":"Related Party Transaction [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","labelType":"xbrl:terseLabel","value":"Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","labelType":"xbrl:label","value":"Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock","labelType":"xbrl:verboseLabel","value":"Schedule of Stock Option Activity","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock","labelType":"xbrl:label","value":"Share-Based Payment Arrangement, Option, Activity [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock","labelType":"xbrl:verboseLabel","value":"Schedule of Valuation Assumptions for Stock Options","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock","labelType":"xbrl:label","value":"Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfStockByClassTable","labelType":"xbrl:terseLabel","value":"Schedule of Stock by Class [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfStockByClassTable","labelType":"xbrl:label","value":"Stock, Class of Stock [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Change in Uncertain Tax Positions","language":"en-US"},{"forObject":"us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock","labelType":"xbrl:label","value":"Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:SegmentReportingPolicyPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Segment Reporting","language":"en-US"},{"forObject":"us-gaap:SegmentReportingPolicyPolicyTextBlock","labelType":"xbrl:label","value":"Segment Reporting, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:SellingAndMarketingExpense","labelType":"xbrl:verboseLabel","value":"Sales and marketing","language":"en-US"},{"forObject":"us-gaap:SellingAndMarketingExpense","labelType":"xbrl:label","value":"Selling and Marketing Expense","language":"en-US"},{"forObject":"us-gaap:SellingAndMarketingExpenseMember","labelType":"xbrl:terseLabel","value":"Sales and marketing","language":"en-US"},{"forObject":"us-gaap:SellingAndMarketingExpenseMember","labelType":"xbrl:label","value":"Selling and Marketing Expense [Member]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensation","labelType":"xbrl:verboseLabel","value":"Stock-based compensation expense","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensation","labelType":"xbrl:label","value":"Share-Based Payment Arrangement, Noncash Expense","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","labelType":"xbrl:terseLabel","value":"Vesting period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","labelType":"xbrl:verboseLabel","value":"Dividend yield","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum","labelType":"xbrl:verboseLabel","value":"Volatility rate maximum (in percent)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate, Maximum","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum","labelType":"xbrl:verboseLabel","value":"Volatility rate minimum (in percent)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate, Minimum","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum","labelType":"xbrl:verboseLabel","value":"Risk-free interest rates maximum (in percent)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate, Maximum","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum","labelType":"xbrl:verboseLabel","value":"Risk-free interest rates minimum (in percent)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate, Minimum","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","labelType":"xbrl:terseLabel","value":"Share-based Compensation Arrangement by Share-based Payment Award [Line Items]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","labelType":"xbrl:terseLabel","value":"Number of shares available for grant (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","labelType":"xbrl:terseLabel","value":"Exercisable (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","labelType":"xbrl:terseLabel","value":"Weighted Average Exercise Price, Exercisable (in usd per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod","labelType":"xbrl:negatedLabel","value":"Expired (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Expirations in Period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","labelType":"xbrl:negatedLabel","value":"Forfeited (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod","labelType":"xbrl:terseLabel","value":"Shares granted, net of forfeitures (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Net of Forfeitures","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","labelType":"xbrl:verboseLabel","value":"Granted (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","labelType":"xbrl:terseLabel","value":"Grants in period, weighted average grant date fair value (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","labelType":"xbrl:periodStartLabel","value":"Aggregate Intrinsic Value, Outstanding, Beginning Balance","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","labelType":"xbrl:periodEndLabel","value":"Aggregate Intrinsic Value, Outstanding, Ending Balance","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","labelType":"xbrl:periodStartLabel","value":"Outstanding, Beginning Balance (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","labelType":"xbrl:periodEndLabel","value":"Outstanding, Ending Balance (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","labelType":"xbrl:terseLabel","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","labelType":"xbrl:periodStartLabel","value":"Weighted Average Exercise Price, Outstanding, Beginning Balance (in usd per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","labelType":"xbrl:periodEndLabel","value":"Weighted Average Exercise Price, Outstanding, Ending Balance (in usd per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","labelType":"xbrl:terseLabel","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","labelType":"xbrl:verboseLabel","value":"Aggregate Intrinsic Value, Vested and expected to vest","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","labelType":"xbrl:verboseLabel","value":"Vested and expected to vest (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","labelType":"xbrl:terseLabel","value":"Weighted Average Exercise Price, Vested and Expected to Vest (in usd per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","labelType":"xbrl:terseLabel","value":"All Award Types","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","labelType":"xbrl:label","value":"Award Type [Domain]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","labelType":"xbrl:verboseLabel","value":"Weighted Average Exercise Price, Exercised (in usd per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice","labelType":"xbrl:verboseLabel","value":"Weighted Average Exercise Price, Expired (in usd per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","labelType":"xbrl:verboseLabel","value":"Weighted Average Exercise Price, Forfeited (in usd per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice","labelType":"xbrl:verboseLabel","value":"Weighted Average Exercise Price, Granted (in usd per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy","labelType":"xbrl:terseLabel","value":"Stock-based Payments","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy","labelType":"xbrl:label","value":"Share-Based Payment Arrangement [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber","labelType":"xbrl:terseLabel","value":"Purchase of common stock vested (in shares)","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Accelerated Vesting, Number","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod","labelType":"xbrl:terseLabel","value":"Expiration term of awards","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","labelType":"xbrl:verboseLabel","value":"Expected term (in years)","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","labelType":"xbrl:verboseLabel","value":"Aggregate Intrinsic Value, Exercisable","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Intrinsic Value","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","labelType":"xbrl:verboseLabel","value":"Weighted Average Remaining Contractual Life (Years), Exercisable","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","labelType":"xbrl:verboseLabel","value":"Weighted Average Remaining Contractual Term, Outstanding, Beginning Balance (in years)","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","labelType":"xbrl:verboseLabel","value":"Weighted Average Remaining Contractual Life (Years), Vested and expected to vest","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent","labelType":"xbrl:terseLabel","value":"Strike price as percent of market value","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Purchase Price of Common Stock, Percent","language":"en-US"},{"forObject":"us-gaap:SignificantAccountingPoliciesTextBlock","labelType":"xbrl:terseLabel","value":"Summary of Significant Accounting Policies","language":"en-US"},{"forObject":"us-gaap:SignificantAccountingPoliciesTextBlock","labelType":"xbrl:label","value":"Significant Accounting Policies [Text Block]","language":"en-US"},{"forObject":"us-gaap:SoftwareAndSoftwareDevelopmentCostsMember","labelType":"xbrl:terseLabel","value":"Capitalized software development costs","language":"en-US"},{"forObject":"us-gaap:SoftwareAndSoftwareDevelopmentCostsMember","labelType":"xbrl:label","value":"Software and Software Development Costs [Member]","language":"en-US"},{"forObject":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperations","labelType":"xbrl:totalLabel","value":"Total","language":"en-US"},{"forObject":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperations","labelType":"xbrl:label","value":"State and Local Income Tax Expense (Benefit), Continuing Operations","language":"en-US"},{"forObject":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperationsAbstract","labelType":"xbrl:terseLabel","value":"State","language":"en-US"},{"forObject":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperationsAbstract","labelType":"xbrl:label","value":"State and Local Income Tax Expense (Benefit), Continuing Operations [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementClassOfStockAxis","labelType":"xbrl:terseLabel","value":"Class of Stock [Axis]","language":"en-US"},{"forObject":"us-gaap:StatementClassOfStockAxis","labelType":"xbrl:label","value":"Class of Stock [Axis]","language":"en-US"},{"forObject":"us-gaap:StatementEquityComponentsAxis","labelType":"xbrl:terseLabel","value":"Equity Components [Axis]","language":"en-US"},{"forObject":"us-gaap:StatementEquityComponentsAxis","labelType":"xbrl:label","value":"Equity Components [Axis]","language":"en-US"},{"forObject":"us-gaap:StatementLineItems","labelType":"xbrl:terseLabel","value":"Statement [Line Items]","language":"en-US"},{"forObject":"us-gaap:StatementLineItems","labelType":"xbrl:label","value":"Statement [Line Items]","language":"en-US"},{"forObject":"us-gaap:StatementOfCashFlowsAbstract","labelType":"xbrl:terseLabel","value":"Statement of Cash Flows [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementOfCashFlowsAbstract","labelType":"xbrl:label","value":"Statement of Cash Flows [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementOfFinancialPositionAbstract","labelType":"xbrl:terseLabel","value":"Statement of Financial Position [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementOfFinancialPositionAbstract","labelType":"xbrl:label","value":"Statement of Financial Position [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementOfStockholdersEquityAbstract","labelType":"xbrl:terseLabel","value":"Statement of Stockholders' Equity [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementOfStockholdersEquityAbstract","labelType":"xbrl:label","value":"Statement of Stockholders' Equity [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementTable","labelType":"xbrl:terseLabel","value":"Statement [Table]","language":"en-US"},{"forObject":"us-gaap:StatementTable","labelType":"xbrl:label","value":"Statement [Table]","language":"en-US"},{"forObject":"us-gaap:StockAppreciationRightsSARSMember","labelType":"xbrl:terseLabel","value":"Stock Appreciation Rights (SARs)","language":"en-US"},{"forObject":"us-gaap:StockAppreciationRightsSARSMember","labelType":"xbrl:label","value":"Stock Appreciation Rights (SARs) [Member]","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesOther","labelType":"xbrl:verboseLabel","value":"Issuance of common stock on exercise of stock options (in shares)","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesOther","labelType":"xbrl:label","value":"Stock Issued During Period, Shares, Other","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","labelType":"xbrl:negatedLabel","value":"Exercised (in shares)","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodValueOther","labelType":"xbrl:verboseLabel","value":"Issuance of common stock on exercise of stock options","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodValueOther","labelType":"xbrl:label","value":"Stock Issued During Period, Value, Other","language":"en-US"},{"forObject":"us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1","labelType":"xbrl:terseLabel","value":"Remaining repurchase amount","language":"en-US"},{"forObject":"us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1","labelType":"xbrl:label","value":"Share Repurchase Program, Remaining Authorized, Amount","language":"en-US"},{"forObject":"us-gaap:StockholdersEquity","labelType":"xbrl:totalLabel","value":"Total stockholders' equity (deficiency)","language":"en-US"},{"forObject":"us-gaap:StockholdersEquity","labelType":"xbrl:periodStartLabel","value":"Beginning balance","language":"en-US"},{"forObject":"us-gaap:StockholdersEquity","labelType":"xbrl:periodEndLabel","value":"Ending balance","language":"en-US"},{"forObject":"us-gaap:StockholdersEquity","labelType":"xbrl:label","value":"Equity, Attributable to Parent","language":"en-US"},{"forObject":"us-gaap:StockholdersEquityAbstract","labelType":"xbrl:verboseLabel","value":"Stockholders' equity (deficiency):","language":"en-US"},{"forObject":"us-gaap:StockholdersEquityAbstract","labelType":"xbrl:label","value":"Equity, Attributable to Parent [Abstract]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventLineItems","labelType":"xbrl:terseLabel","value":"Subsequent Event [Line Items]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventLineItems","labelType":"xbrl:label","value":"Subsequent Event [Line Items]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventMember","labelType":"xbrl:terseLabel","value":"Subsequent Event","language":"en-US"},{"forObject":"us-gaap:SubsequentEventMember","labelType":"xbrl:label","value":"Subsequent Event [Member]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventTable","labelType":"xbrl:terseLabel","value":"Subsequent Event [Table]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventTable","labelType":"xbrl:label","value":"Subsequent Event [Table]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventTypeAxis","labelType":"xbrl:terseLabel","value":"Subsequent Event Type [Axis]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventTypeAxis","labelType":"xbrl:label","value":"Subsequent Event Type [Axis]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventTypeDomain","labelType":"xbrl:terseLabel","value":"Subsequent Event Type [Domain]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventTypeDomain","labelType":"xbrl:label","value":"Subsequent Event Type [Domain]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventsAbstract","labelType":"xbrl:terseLabel","value":"Subsequent Events [Abstract]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventsAbstract","labelType":"xbrl:label","value":"Subsequent Events [Abstract]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventsTextBlock","labelType":"xbrl:terseLabel","value":"Subsequent Events","language":"en-US"},{"forObject":"us-gaap:SubsequentEventsTextBlock","labelType":"xbrl:label","value":"Subsequent Events [Text Block]","language":"en-US"},{"forObject":"us-gaap:TaxAdjustmentsSettlementsAndUnusualProvisions","labelType":"xbrl:terseLabel","value":"Provision adjustment","language":"en-US"},{"forObject":"us-gaap:TaxAdjustmentsSettlementsAndUnusualProvisions","labelType":"xbrl:label","value":"Tax Adjustments, Settlements, and Unusual Provisions","language":"en-US"},{"forObject":"us-gaap:TreasuryStockAcquiredAverageCostPerShare","labelType":"xbrl:terseLabel","value":"Treasury stock average price (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:TreasuryStockAcquiredAverageCostPerShare","labelType":"xbrl:label","value":"Shares Acquired, Average Cost Per Share","language":"en-US"},{"forObject":"us-gaap:TreasuryStockCommonMember","labelType":"xbrl:terseLabel","value":"Treasury Stock","language":"en-US"},{"forObject":"us-gaap:TreasuryStockCommonMember","labelType":"xbrl:label","value":"Treasury Stock, Common [Member]","language":"en-US"},{"forObject":"us-gaap:TreasuryStockCommonShares","labelType":"xbrl:periodStartLabel","value":"Beginning balance (in shares)","language":"en-US"},{"forObject":"us-gaap:TreasuryStockCommonShares","labelType":"xbrl:periodEndLabel","value":"Ending balance (in shares)","language":"en-US"},{"forObject":"us-gaap:TreasuryStockCommonShares","labelType":"xbrl:label","value":"Treasury Stock, Common, Shares","language":"en-US"},{"forObject":"us-gaap:TreasuryStockCommonValue","labelType":"xbrl:negatedTerseLabel","value":"Treasury Stock, at cost","language":"en-US"},{"forObject":"us-gaap:TreasuryStockCommonValue","labelType":"xbrl:label","value":"Treasury Stock, Common, Value","language":"en-US"},{"forObject":"us-gaap:TreasuryStockSharesAcquired","labelType":"xbrl:verboseLabel","value":"Repurchase of common stock (in shares)","language":"en-US"},{"forObject":"us-gaap:TreasuryStockSharesAcquired","labelType":"xbrl:terseLabel","value":"Treasury stock (in shares)","language":"en-US"},{"forObject":"us-gaap:TreasuryStockSharesAcquired","labelType":"xbrl:label","value":"Treasury Stock, Shares, Acquired","language":"en-US"},{"forObject":"us-gaap:TreasuryStockValueAcquiredCostMethod","labelType":"xbrl:negatedLabel","value":"Repurchase of common stock","language":"en-US"},{"forObject":"us-gaap:TreasuryStockValueAcquiredCostMethod","labelType":"xbrl:terseLabel","value":"Treasury stock approximate value","language":"en-US"},{"forObject":"us-gaap:TreasuryStockValueAcquiredCostMethod","labelType":"xbrl:label","value":"Treasury Stock, Value, Acquired, Cost Method","language":"en-US"},{"forObject":"us-gaap:TypeOfCostGoodOrServiceExtensibleList","labelType":"xbrl:terseLabel","value":"Cost, Product and Service [Extensible Enumeration]","language":"en-US"},{"forObject":"us-gaap:TypeOfCostGoodOrServiceExtensibleList","labelType":"xbrl:label","value":"Cost, Product and Service [Extensible Enumeration]","language":"en-US"},{"forObject":"us-gaap:TypeOfRevenueExtensibleList","labelType":"xbrl:terseLabel","value":"Revenue, Product and Service [Extensible Enumeration]","language":"en-US"},{"forObject":"us-gaap:TypeOfRevenueExtensibleList","labelType":"xbrl:label","value":"Revenue, Product and Service [Extensible Enumeration]","language":"en-US"},{"forObject":"us-gaap:UnbilledContractsReceivable","labelType":"xbrl:terseLabel","value":"Unbilled services","language":"en-US"},{"forObject":"us-gaap:UnbilledContractsReceivable","labelType":"xbrl:label","value":"Unbilled Contracts Receivable","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefits","labelType":"xbrl:terseLabel","value":"Unrecognized tax benefits","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefits","labelType":"xbrl:periodStartLabel","value":"Balance, beginning of the year","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefits","labelType":"xbrl:periodEndLabel","value":"Balance, end of year","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefits","labelType":"xbrl:label","value":"Unrecognized Tax Benefits","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities","labelType":"xbrl:negatedTerseLabel","value":"Payment made on tax positions related to prior years","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities","labelType":"xbrl:label","value":"Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","labelType":"xbrl:verboseLabel","value":"Addition based on tax positions related to current year","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","labelType":"xbrl:label","value":"Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","labelType":"xbrl:verboseLabel","value":"Addition based on tax positions related to prior years","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","labelType":"xbrl:label","value":"Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations","labelType":"xbrl:negatedTerseLabel","value":"Expiration of statute of limitations","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations","labelType":"xbrl:label","value":"Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations","language":"en-US"},{"forObject":"us-gaap:UseOfEstimates","labelType":"xbrl:terseLabel","value":"Use of Estimates","language":"en-US"},{"forObject":"us-gaap:UseOfEstimates","labelType":"xbrl:label","value":"Use of Estimates, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","labelType":"xbrl:terseLabel","value":"Deferred tax assets, valuation allowance, increase (decrease)","language":"en-US"},{"forObject":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","labelType":"xbrl:label","value":"Valuation Allowance, Deferred Tax Asset, Increase (Decrease), Amount","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","labelType":"xbrl:verboseLabel","value":"diluted (in shares)","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","labelType":"xbrl:terseLabel","value":"Adjusted weighted average share \u2013 diluted (in shares)","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","labelType":"xbrl:label","value":"Weighted Average Number of Shares Outstanding, Diluted","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfSharesOutstandingAbstract","labelType":"xbrl:terseLabel","value":"Weighted average common shares outstanding","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfSharesOutstandingAbstract","labelType":"xbrl:label","value":"Weighted Average Number of Shares Outstanding, Diluted [Abstract]","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","labelType":"xbrl:terseLabel","value":"basic (in shares)","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","labelType":"xbrl:verboseLabel","value":"Weighted Average common shares, basic (in shares)","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","labelType":"xbrl:label","value":"Weighted Average Number of Shares Outstanding, Basic","language":"en-US"},{"forObject":"cik:0000771856","labelType":"xbrl:label","value":"CHAMPIONS ONCOLOGY, INC.","language":"en-US"},{"forObject":"rpt:group-0","labelType":"xbrl:label","value":"9952158 - Disclosure - Accounts Receivable, Unbilled Services and Deferred Revenue","language":"en-US"},{"forObject":"rpt:group-1","labelType":"xbrl:label","value":"9955522 - Disclosure - Accounts Receivable, Unbilled Services and Deferred Revenue - Schedule of Accounts Receivable and Unbilled Services (Details)","language":"en-US"},{"forObject":"rpt:group-2","labelType":"xbrl:label","value":"9955523 - Disclosure - Accounts Receivable, Unbilled Services and Deferred Revenue - Schedule of Deferred Revenue (Details)","language":"en-US"},{"forObject":"rpt:group-3","labelType":"xbrl:label","value":"9955512 - Disclosure - Accounts Receivable, Unbilled Services and Deferred Revenue (Tables)","language":"en-US"},{"forObject":"rpt:group-4","labelType":"xbrl:label","value":"0000002 - Document - Audit Information","language":"en-US"},{"forObject":"rpt:group-5","labelType":"xbrl:label","value":"9952151 - Statement - CONSOLIDATED BALANCE SHEETS","language":"en-US"},{"forObject":"rpt:group-6","labelType":"xbrl:label","value":"9952152 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)","language":"en-US"},{"forObject":"rpt:group-7","labelType":"xbrl:label","value":"9952154 - Statement - CONSOLIDATED STATEMENT OF CHANGES IN STOCKHOLDERS\u2019 (DEFICIENCY) EQUITY","language":"en-US"},{"forObject":"rpt:group-8","labelType":"xbrl:label","value":"9952155 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS","language":"en-US"},{"forObject":"rpt:group-9","labelType":"xbrl:label","value":"9952153 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS","language":"en-US"},{"forObject":"rpt:group-10","labelType":"xbrl:label","value":"9952162 - Disclosure - Commitments and Contingencies","language":"en-US"},{"forObject":"rpt:group-11","labelType":"xbrl:label","value":"9955529 - Disclosure - Commitments and Contingencies (Details)","language":"en-US"},{"forObject":"rpt:group-12","labelType":"xbrl:label","value":"0000001 - Document - Cover","language":"en-US"},{"forObject":"rpt:group-13","labelType":"xbrl:label","value":"9952165 - Disclosure - Earnings Per Share","language":"en-US"},{"forObject":"rpt:group-14","labelType":"xbrl:label","value":"9955539 - Disclosure - Earnings Per Share - Schedule of Earnings Per Share, Basic and Diluted (Details)","language":"en-US"},{"forObject":"rpt:group-15","labelType":"xbrl:label","value":"9955540 - Disclosure - Earnings Per Share - Schedule of Potentially Dilutive Stock-based Instruments (Details)","language":"en-US"},{"forObject":"rpt:group-16","labelType":"xbrl:label","value":"9955517 - Disclosure - Earnings Per Share (Tables)","language":"en-US"},{"forObject":"rpt:group-17","labelType":"xbrl:label","value":"9952167 - Disclosure - Leases","language":"en-US"},{"forObject":"rpt:group-18","labelType":"xbrl:label","value":"9955542 - Disclosure - Leases - Narrative (Details)","language":"en-US"},{"forObject":"rpt:group-19","labelType":"xbrl:label","value":"9955544 - Disclosure - Leases - Schedule of Future Minimum Lease Payments (Details)","language":"en-US"},{"forObject":"rpt:group-20","labelType":"xbrl:label","value":"9955545 - Disclosure - Leases - Schedule of Lease Costs (Details)","language":"en-US"},{"forObject":"rpt:group-21","labelType":"xbrl:label","value":"9955543 - Disclosure - Leases - Schedule of ROU Assets and Lease Liabilities (Details)","language":"en-US"},{"forObject":"rpt:group-22","labelType":"xbrl:label","value":"9955518 - Disclosure - Leases (Tables)","language":"en-US"},{"forObject":"rpt:group-23","labelType":"xbrl:label","value":"9952156 - Disclosure - Organization and Basis of Presentation","language":"en-US"},{"forObject":"rpt:group-24","labelType":"xbrl:label","value":"9955519 - Disclosure - Organization and Basis of Presentation (Details)","language":"en-US"},{"forObject":"rpt:group-25","labelType":"xbrl:label","value":"9952159 - Disclosure - Property and Equipment","language":"en-US"},{"forObject":"rpt:group-26","labelType":"xbrl:label","value":"9955525 - Disclosure - Property and Equipment - Narrative (Details)","language":"en-US"},{"forObject":"rpt:group-27","labelType":"xbrl:label","value":"9955526 - Disclosure - Property and Equipment - Schedule of Future Minimum Lease Payments (Details)","language":"en-US"},{"forObject":"rpt:group-28","labelType":"xbrl:label","value":"9955524 - Disclosure - Property and Equipment - Schedule of Property and Equipment (Details)","language":"en-US"},{"forObject":"rpt:group-29","labelType":"xbrl:label","value":"9955513 - Disclosure - Property and Equipment (Tables)","language":"en-US"},{"forObject":"rpt:group-30","labelType":"xbrl:label","value":"9952164 - Disclosure - Provision for (Benefit from) Income Taxes","language":"en-US"},{"forObject":"rpt:group-31","labelType":"xbrl:label","value":"9955537 - Disclosure - Provision for (Benefit from) Income Taxes - Narrative (Details)","language":"en-US"},{"forObject":"rpt:group-32","labelType":"xbrl:label","value":"9955538 - Disclosure - Provision for (Benefit from) Income Taxes - Schedule of Change in Uncertain Tax Positions (Details)","language":"en-US"},{"forObject":"rpt:group-33","labelType":"xbrl:label","value":"9955536 - Disclosure - Provision for (Benefit from) Income Taxes - Schedule of Components of Deferred Tax Assets and Liabilities (Details)","language":"en-US"},{"forObject":"rpt:group-34","labelType":"xbrl:label","value":"9955534 - Disclosure - Provision for (Benefit from) Income Taxes - Schedule of Components of Provision (Benefit) for Income Taxes (Details)","language":"en-US"},{"forObject":"rpt:group-35","labelType":"xbrl:label","value":"9955535 - Disclosure - Provision for (Benefit from) Income Taxes - Schedule of Reconciliation of Effective Tax Rate (Details)","language":"en-US"},{"forObject":"rpt:group-36","labelType":"xbrl:label","value":"9955516 - Disclosure - Provision for (Benefit from) Income Taxes (Tables)","language":"en-US"},{"forObject":"rpt:group-37","labelType":"xbrl:label","value":"9952166 - Disclosure - Related Party Transactions","language":"en-US"},{"forObject":"rpt:group-38","labelType":"xbrl:label","value":"9955541 - Disclosure - Related Party Transactions (Details)","language":"en-US"},{"forObject":"rpt:group-39","labelType":"xbrl:label","value":"9952160 - Disclosure - Revenue from Contracts with Customers","language":"en-US"},{"forObject":"rpt:group-40","labelType":"xbrl:label","value":"9955527 - Disclosure - Revenue from Contracts with Customers (Details)","language":"en-US"},{"forObject":"rpt:group-41","labelType":"xbrl:label","value":"9955514 - Disclosure - Revenue from Contracts with Customers (Tables)","language":"en-US"},{"forObject":"rpt:group-42","labelType":"xbrl:label","value":"9955531 - Disclosure - Share-Based Payments - Schedule of Allocation of Share Based Compensation Expense (Details)","language":"en-US"},{"forObject":"rpt:group-43","labelType":"xbrl:label","value":"9955532 - Disclosure - Share-Based Payments - Schedule of Valuation Assumptions for Stock Options (Details)","language":"en-US"},{"forObject":"rpt:group-44","labelType":"xbrl:label","value":"9952161 - Disclosure - Significant Customers","language":"en-US"},{"forObject":"rpt:group-45","labelType":"xbrl:label","value":"9955528 - Disclosure - Significant Customers (Details)","language":"en-US"},{"forObject":"rpt:group-46","labelType":"xbrl:label","value":"9952163 - Disclosure - Stock-based Payments","language":"en-US"},{"forObject":"rpt:group-47","labelType":"xbrl:label","value":"9955530 - Disclosure - Stock-based Payments - Narrative (Details)","language":"en-US"},{"forObject":"rpt:group-48","labelType":"xbrl:label","value":"9955533 - Disclosure - Stock-based Payments - Schedule of Stock Option Activity (Details)","language":"en-US"},{"forObject":"rpt:group-49","labelType":"xbrl:label","value":"9955515 - Disclosure - Stock-based Payments (Tables)","language":"en-US"},{"forObject":"rpt:group-50","labelType":"xbrl:label","value":"9952168 - Disclosure - Subsequent Events","language":"en-US"},{"forObject":"rpt:group-51","labelType":"xbrl:label","value":"9955546 - Disclosure - Subsequent Events (Details)","language":"en-US"},{"forObject":"rpt:group-52","labelType":"xbrl:label","value":"9952157 - Disclosure - Summary of Significant Accounting Policies","language":"en-US"},{"forObject":"rpt:group-53","labelType":"xbrl:label","value":"9955520 - Disclosure - Summary of Significant Accounting Policies - Narrative (Details)","language":"en-US"},{"forObject":"rpt:group-54","labelType":"xbrl:label","value":"9955511 - Disclosure - Summary of Significant Accounting Policies (Policies)","language":"en-US"},{"forObject":"rpt:group-55","labelType":"xbrl:label","value":"9955521 - Disclosure - Summary of Significant Accounting Policies - Revenue Recognition (Details)","language":"en-US"},{"forObject":"rpt:group-56","labelType":"xbrl:label","value":"995550 - Disclosure - Cybersecurity Risk Management and Strategy Disclosure","language":"en-US"},{"forObject":"rpt:group-57","labelType":"xbrl:label","value":"995443 - Disclosure - Award Timing Disclosure","language":"en-US"},{"forObject":"rpt:group-58","labelType":"xbrl:label","value":"995440 - Disclosure - Recovery of Erroneously Awarded Compensation","language":"en-US"},{"forObject":"rpt:group-59","labelType":"xbrl:label","value":"995445 - Disclosure - Insider Trading Arrangements","language":"en-US"},{"forObject":"rpt:group-60","labelType":"xbrl:label","value":"995447 - Disclosure - Insider Trading Policies and Procedures","language":"en-US"},{"forObject":"rpt:group-61","labelType":"xbrl:label","value":"995410 - Disclosure - Pay vs Performance Disclosure","language":"en-US"},{"forObject":"rpt:group-62","labelType":"xbrl:label","value":"9955544 - Disclosure - Leases - Schedule of Future Minimum Lease Payments (Details)","language":"en-US"},{"forObject":"rpt:group-63","labelType":"xbrl:label","value":"9955526 - Disclosure - Property and Equipment - Schedule of Future Minimum Lease Payments (Details)","language":"en-US"},{"forObject":"rpt:group-64","labelType":"xbrl:label","value":"9955534 - Disclosure - Provision for (Benefit from) Income Taxes - Schedule of Components of Provision (Benefit) for Income Taxes (Details)","language":"en-US"},{"forObject":"rpt:group-65","labelType":"xbrl:label","value":"9955520 - Disclosure - Summary of Significant Accounting Policies - Narrative (Details)","language":"en-US"},{"forObject":"rpt:group-66","labelType":"xbrl:label","value":"9955521 - Disclosure - Summary of Significant Accounting Policies - Revenue Recognition (Details)","language":"en-US"},{"forObject":"rpt:group-67","labelType":"xbrl:label","value":"995444 - Document - Awards Close To MNPI Disclosures","language":"en-US"},{"forObject":"rpt:group-68","labelType":"xbrl:label","value":"995441 - Document - Forgone Recoveries, by Individual","language":"en-US"},{"forObject":"rpt:group-69","labelType":"xbrl:label","value":"995446 - Document - Insider Trading Arrangements, by Individual","language":"en-US"},{"forObject":"rpt:group-70","labelType":"xbrl:label","value":"995442 - Document - Outstanding Recoveries","language":"en-US"},{"forObject":"rpt:group-71","labelType":"xbrl:label","value":"995413 - Disclosure - Adjustments to Compensation","language":"en-US"},{"forObject":"rpt:group-72","labelType":"xbrl:label","value":"995411 - Disclosure - Pay vs Performance Disclosure, with Additional Measures","language":"en-US"},{"forObject":"rpt:group-73","labelType":"xbrl:label","value":"995424 - Disclosure - Measures","language":"en-US"},{"forObject":"rpt:group-74","labelType":"xbrl:label","value":"995412 - Document - Pay vs Performance Table","language":"en-US"},{"forObject":"rpt:group-75","labelType":"xbrl:label","value":"995415 - Disclosure - Tabular List Measures","language":"en-US"},{"forObject":"rpt:group-76","labelType":"xbrl:label","value":"995414 - Disclosure - Tabular Lists by Executive Category","language":"en-US"}],"networks":[{"name":"rpt:network-presentation-39","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:ReceivablesAbstract","order":1.0},{"source":"us-gaap:ReceivablesAbstract","target":"us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-40","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:ReceivablesAbstract","order":1.0},{"source":"us-gaap:ReceivablesAbstract","target":"us-gaap:AccountsReceivableGross","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ReceivablesAbstract","target":"us-gaap:UnbilledContractsReceivable","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ReceivablesAbstract","target":"us-gaap:AccountsReceivableGrossCurrent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:ReceivablesAbstract","target":"us-gaap:AllowanceForDoubtfulAccountsReceivable","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:ReceivablesAbstract","target":"us-gaap:AccountsReceivableNetCurrent","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-41","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:ReceivablesAbstract","order":1.0},{"source":"us-gaap:ReceivablesAbstract","target":"us-gaap:ContractWithCustomerLiability","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-42","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:ReceivablesAbstract","order":1.0},{"source":"us-gaap:ReceivablesAbstract","target":"us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ReceivablesAbstract","target":"us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-43","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"csbr:AuditorInformationAbstract","order":1.0},{"source":"csbr:AuditorInformationAbstract","target":"dei:AuditorFirmId","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"csbr:AuditorInformationAbstract","target":"dei:AuditorName","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"csbr:AuditorInformationAbstract","target":"dei:AuditorLocation","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-44","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StatementOfFinancialPositionAbstract","order":1.0},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:AssetsAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:AssetsCurrentAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AssetsCurrentAbstract","target":"us-gaap:Cash","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:LiabilitiesCurrentAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesCurrentAbstract","target":"us-gaap:AccountsPayableCurrent","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StockholdersEquityAbstract","target":"us-gaap:CommonStockValue","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsCurrentAbstract","target":"us-gaap:AccountsReceivableNetCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:OperatingLeaseRightOfUseAsset","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesCurrentAbstract","target":"us-gaap:AccruedLiabilitiesCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:OperatingLeaseLiabilityNoncurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityAbstract","target":"us-gaap:TreasuryStockCommonValue","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:AssetsCurrentAbstract","target":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesCurrentAbstract","target":"us-gaap:OperatingLeaseLiabilityCurrent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:OtherLiabilitiesNoncurrent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StockholdersEquityAbstract","target":"us-gaap:AdditionalPaidInCapitalCommonStock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsCurrentAbstract","target":"us-gaap:AssetsCurrent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:OtherAssetsNoncurrent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LiabilitiesCurrentAbstract","target":"us-gaap:OtherLiabilitiesCurrent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:Liabilities","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:StockholdersEquityAbstract","target":"us-gaap:RetainedEarningsAccumulatedDeficit","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:Goodwill","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesCurrentAbstract","target":"us-gaap:ContractWithCustomerLiabilityCurrent","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:StockholdersEquityAbstract","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StockholdersEquityAbstract","target":"us-gaap:StockholdersEquity","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:Assets","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:LiabilitiesCurrentAbstract","target":"us-gaap:LiabilitiesCurrent","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:LiabilitiesAndStockholdersEquity","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-45","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StatementOfFinancialPositionAbstract","order":1.0},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:CommonStockParOrStatedValuePerShare","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:CommonStockSharesAuthorized","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:CommonStockSharesIssued","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:CommonStockSharesOutstanding","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-46","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StatementOfStockholdersEquityAbstract","order":1.0},{"source":"us-gaap:StatementOfStockholdersEquityAbstract","target":"us-gaap:StatementTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementTable","target":"us-gaap:StatementEquityComponentsAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementEquityComponentsAxis","target":"us-gaap:EquityComponentDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:CommonStockMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:CommonStockSharesOutstanding","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:TreasuryStockCommonMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementTable","target":"us-gaap:StatementLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:TreasuryStockCommonShares","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:AdditionalPaidInCapitalMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockholdersEquity","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:RetainedEarningsMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockIssuedDuringPeriodSharesOther","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockIssuedDuringPeriodValueOther","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:TreasuryStockSharesAcquired","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:TreasuryStockValueAcquiredCostMethod","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:NetIncomeLoss","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:netLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:CommonStockSharesOutstanding","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:TreasuryStockCommonShares","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockholdersEquity","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]}]},{"name":"rpt:network-presentation-47","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StatementOfCashFlowsAbstract","order":1.0},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:NetIncomeLoss","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:netLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:ShareBasedCompensation","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingLiabilitiesAbstract","target":"us-gaap:IncreaseDecreaseInAccountsReceivable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","target":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:ProceedsFromStockOptionsExercised","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:NoncashInvestingAndFinancingItemsAbstract","target":"us-gaap:CapitalExpendituresIncurredButNotYetPaid","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:DepreciationAndAmortization","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingLiabilitiesAbstract","target":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","target":"us-gaap:NetCashProvidedByUsedInInvestingActivities","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:PaymentsForRepurchaseOfCommonStock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingLiabilitiesAbstract","target":"us-gaap:IncreaseDecreaseInOtherNoncurrentAssets","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:NetCashProvidedByUsedInOperatingActivities","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:FinanceLeasePrincipalPayments","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"csbr:IncreaseDecreaseInUncertainTaxPosition","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingLiabilitiesAbstract","target":"us-gaap:IncreaseDecreaseInAccountsPayable","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:NetCashProvidedByUsedInFinancingActivities","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"csbr:IncreaseDecreaseInOperatingLeaseRightOfUseAssets","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingLiabilitiesAbstract","target":"us-gaap:IncreaseDecreaseInAccruedLiabilities","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:ProvisionForDoubtfulAccounts","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingLiabilitiesAbstract","target":"us-gaap:IncreaseDecreaseInOperatingLeaseLiability","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:IncreaseDecreaseInOperatingLiabilitiesAbstract","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingLiabilitiesAbstract","target":"us-gaap:IncreaseDecreaseInContractWithCustomerLiability","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:NoncashInvestingAndFinancingItemsAbstract","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-48","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeStatementAbstract","order":1.0},{"source":"us-gaap:IncomeStatementAbstract","target":"us-gaap:TypeOfRevenueExtensibleList","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:TypeOfCostGoodOrServiceExtensibleList","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:NonoperatingIncomeExpenseAbstract","target":"us-gaap:OtherNonoperatingIncomeExpense","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EarningsPerShareAbstract","target":"us-gaap:EarningsPerShareBasic","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:WeightedAverageNumberOfSharesOutstandingAbstract","target":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementAbstract","target":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:CostOfGoodsAndServicesSold","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EarningsPerShareAbstract","target":"us-gaap:EarningsPerShareDiluted","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:WeightedAverageNumberOfSharesOutstandingAbstract","target":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncomeStatementAbstract","target":"us-gaap:OperatingExpensesAbstract","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:ResearchAndDevelopmentExpense","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:SellingAndMarketingExpense","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncomeStatementAbstract","target":"us-gaap:OperatingIncomeLoss","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:GeneralAndAdministrativeExpense","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementAbstract","target":"us-gaap:NonoperatingIncomeExpenseAbstract","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:IncomeStatementAbstract","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:OperatingCostsAndExpenses","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:IncomeStatementAbstract","target":"us-gaap:IncomeTaxExpenseBenefit","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementAbstract","target":"us-gaap:NetIncomeLoss","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:IncomeStatementAbstract","target":"us-gaap:EarningsPerShareAbstract","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementAbstract","target":"us-gaap:WeightedAverageNumberOfSharesOutstandingAbstract","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-49","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","order":1.0},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:CommitmentsAndContingenciesDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-50","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","order":1.0},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"csbr:CommitmentsAndContingenciesTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"csbr:CommitmentsAndContingenciesTable","target":"srt:RangeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeAxis","target":"srt:RangeMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MinimumMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"csbr:CommitmentsAndContingenciesLineItems","target":"csbr:CollaborationArrangementRoyaltyFee","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MaximumMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"csbr:CommitmentsAndContingenciesTable","target":"csbr:CommitmentsAndContingenciesLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"csbr:CommitmentsAndContingenciesLineItems","target":"csbr:CollaborationArrangementRoyaltyFeePercentOfContractPrice","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"csbr:CommitmentsAndContingenciesLineItems","target":"us-gaap:RoyaltyExpense","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-51","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"dei:CoverAbstract","order":1.0},{"source":"dei:CoverAbstract","target":"dei:DocumentType","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentAnnualReport","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentPeriodEndDate","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:CurrentFiscalYearEndDate","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentTransitionReport","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityFileNumber","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityRegistrantName","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityIncorporationStateCountryCode","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityTaxIdentificationNumber","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressAddressLine1","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressAddressLine2","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressPostalZipCode","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressCityOrTown","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressStateOrProvince","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:CityAreaCode","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:LocalPhoneNumber","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:Security12bTitle","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:TradingSymbol","order":18.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:SecurityExchangeName","order":19.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityWellKnownSeasonedIssuer","order":20.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityVoluntaryFilers","order":21.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityCurrentReportingStatus","order":22.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityInteractiveDataCurrent","order":23.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityFilerCategory","order":24.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntitySmallBusiness","order":25.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityEmergingGrowthCompany","order":26.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:IcfrAuditorAttestationFlag","order":27.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentFinStmtErrorCorrectionFlag","order":28.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityShellCompany","order":29.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityPublicFloat","order":30.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityCommonStockSharesOutstanding","order":31.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentsIncorporatedByReferenceTextBlock","order":32.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityCentralIndexKey","order":33.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:AmendmentFlag","order":34.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentFiscalPeriodFocus","order":35.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentFiscalYearFocus","order":36.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-52","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EarningsPerShareAbstract","order":1.0},{"source":"us-gaap:EarningsPerShareAbstract","target":"us-gaap:EarningsPerShareTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-53","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EarningsPerShareAbstract","order":1.0},{"source":"us-gaap:EarningsPerShareAbstract","target":"us-gaap:NetIncomeLossAvailableToCommonStockholdersBasicAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetIncomeLossAvailableToCommonStockholdersBasicAbstract","target":"us-gaap:NetIncomeLoss","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:NetIncomeLossAvailableToCommonStockholdersBasicAbstract","target":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetIncomeLossAvailableToCommonStockholdersBasicAbstract","target":"us-gaap:EarningsPerShareBasic","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:NetIncomeLossAvailableToCommonStockholdersBasicAbstract","target":"us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:NetIncomeLossAvailableToCommonStockholdersBasicAbstract","target":"us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:NetIncomeLossAvailableToCommonStockholdersBasicAbstract","target":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:NetIncomeLossAvailableToCommonStockholdersBasicAbstract","target":"us-gaap:EarningsPerShareDiluted","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:netLabel"}]}]},{"name":"rpt:network-presentation-54","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EarningsPerShareAbstract","order":1.0},{"source":"us-gaap:EarningsPerShareAbstract","target":"us-gaap:ScheduleOfStockByClassTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfStockByClassTable","target":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis","target":"us-gaap:AntidilutiveSecuritiesNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AntidilutiveSecuritiesNameDomain","target":"us-gaap:EmployeeStockOptionMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ClassOfStockLineItems","target":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfStockByClassTable","target":"us-gaap:ClassOfStockLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-55","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EarningsPerShareAbstract","order":1.0},{"source":"us-gaap:EarningsPerShareAbstract","target":"us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EarningsPerShareAbstract","target":"us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-56","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LeasesAbstract","order":1.0},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:LesseeOperatingLeasesTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:LesseeFinanceLeasesTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-57","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LeasesAbstract","order":1.0},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:LesseeLeaseDescriptionTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LesseeLeaseDescriptionTable","target":"srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis","target":"srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain","target":"csbr:CorporateHeadquartersMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LesseeLeaseDescriptionLineItems","target":"us-gaap:OperatingLeaseExpense","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain","target":"csbr:RockvilleMDMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LesseeLeaseDescriptionTable","target":"us-gaap:LesseeLeaseDescriptionLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LesseeLeaseDescriptionLineItems","target":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RealEstateAndAccumulatedDepreciationNameOfPropertyDomain","target":"csbr:MilanItalyMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LesseeLeaseDescriptionLineItems","target":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-58","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LeasesAbstract","order":1.0},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:OperatingLeaseLiabilitiesPaymentsDueAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:OperatingLeaseLiabilitiesPaymentsDueAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:OperatingLeaseLiabilitiesPaymentsDueAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:OperatingLeaseLiabilitiesPaymentsDueAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:OperatingLeaseLiabilitiesPaymentsDueAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:OperatingLeaseLiabilitiesPaymentsDueAbstract","target":"csbr:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:OperatingLeaseLiabilitiesPaymentsDueAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:OperatingLeaseLiabilitiesPaymentsDueAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:OperatingLeaseLiabilitiesPaymentsDueAbstract","target":"us-gaap:OperatingLeaseLiability","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-59","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LeasesAbstract","order":1.0},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:OperatingLeaseCost","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:FinanceLeaseInterestExpense","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:LeaseCost","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-60","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LeasesAbstract","order":1.0},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:OperatingLeaseRightOfUseAsset","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:OperatingLeaseLiabilityCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:OperatingLeaseLiabilityNoncurrent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-61","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LeasesAbstract","order":1.0},{"source":"us-gaap:LeasesAbstract","target":"csbr:AssetsAndLiabilitiesLesseeTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LeasesAbstract","target":"us-gaap:LeaseCostTableTextBlock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-62","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract","order":1.0},{"source":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract","target":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-63","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract","order":1.0},{"source":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract","target":"csbr:NumberofOperatingSubsidiaries","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueTable","target":"srt:CounterpartyNameAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:CounterpartyNameAxis","target":"srt:RepurchaseAgreementCounterpartyNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RepurchaseAgreementCounterpartyNameDomain","target":"csbr:OperatingSubsidiariesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueLineItems","target":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract","target":"us-gaap:NumberOfReportableSegments","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueTable","target":"us-gaap:DisaggregationOfRevenueLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract","target":"us-gaap:DisaggregationOfRevenueTable","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-64","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:PropertyPlantAndEquipmentAbstract","order":1.0},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-65","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:PropertyPlantAndEquipmentAbstract","order":1.0},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","target":"us-gaap:PropertyPlantAndEquipmentTypeDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"csbr:FinanceLeasedAssetsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"csbr:FinanceLeaseAxis","target":"csbr:FinanceLeaseDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"csbr:FinanceLeaseDomain","target":"csbr:A2022FinanceLeaseMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:DepreciationDepletionAndAmortization","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:EquipmentMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"csbr:FinanceLeaseAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"csbr:FinanceLeaseDomain","target":"csbr:A2023FinanceLeaseMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"csbr:DepreciationAndAmortizationExcludingFinanceLeases","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"us-gaap:PropertyPlantAndEquipmentLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:FinanceLeaseRightOfUseAsset","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:Depreciation","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:PropertyPlantAndEquipmentDisposals","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"csbr:FinanceLeaseCost","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"csbr:PresentValueMinimumFutureObligationsInterestRate","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:FinanceLeaseInterestPaymentOnLiability","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-66","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:PropertyPlantAndEquipmentAbstract","order":1.0},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"csbr:FinanceLeaseLiabilityToBePaidAfterYearThree","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:FinanceLeaseLiabilityPaymentsDue","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:FinanceLeaseLiability","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:FinanceLeaseLiabilityCurrent","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:FinanceLeaseLiabilityNoncurrent","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-67","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:PropertyPlantAndEquipmentAbstract","order":1.0},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","target":"us-gaap:PropertyPlantAndEquipmentTypeDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:FurnitureAndFixturesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:PropertyPlantAndEquipmentGross","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:ComputerEquipmentMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"us-gaap:PropertyPlantAndEquipmentLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"csbr:LaboratoryEquipmentMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:SoftwareAndSoftwareDevelopmentCostsMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"csbr:AssetInProgressMember","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:FinanceLeaseLiabilityCurrent","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:LeaseholdImprovementsMember","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:FinanceLeaseLiabilityNoncurrent","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-68","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:PropertyPlantAndEquipmentAbstract","order":1.0},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:PropertyPlantAndEquipmentTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentAbstract","target":"us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-69","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:IncomeTaxDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-70","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:DeferredTaxAssetsValuationAllowance","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:OperatingLossCarryforwards","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"csbr:OperatingLossCarryforwardsLimitationsOnUseAmount","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:UnrecognizedTaxBenefits","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-71","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","target":"us-gaap:UnrecognizedTaxBenefits","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","target":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","target":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","target":"us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","target":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","target":"us-gaap:UnrecognizedTaxBenefits","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]}]},{"name":"rpt:network-presentation-72","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"csbr:DeferredTaxAssetsTaxDeferredExpenseOperatingLeases","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"csbr:DeferredTaxLiabilityDeferredExpenseDepreciationAndAmortization","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"csbr:DeferredTaxLiabilitiesCapitalizedResearchAndDevelopmentCosts","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:DeferredTaxAssetsGross","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:DeferredTaxAssetsValuationAllowance","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:DeferredTaxAssetsLiabilitiesNet","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-73","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperationsAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:CurrentFederalTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:CurrentForeignTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperations","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperationsAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperations","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperations","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperationsAbstract","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:CurrentIncomeTaxExpenseBenefit","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:IncomeTaxExpenseBenefit","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-74","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"csbr:EffectiveIncomeTaxRateReconciliationPermanentDifferences","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"csbr:EffectiveIncomeTaxRateReconciliationIncreaseInUncertainTaxPosition","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"csbr:EffectiveIncomeTaxRateReconciliationDeferredTaxAssetAdjustmentPercent","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-75","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-76","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RelatedPartyTransactionsAbstract","order":1.0},{"source":"us-gaap:RelatedPartyTransactionsAbstract","target":"us-gaap:RelatedPartyTransactionsDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-77","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RelatedPartyTransactionsAbstract","order":1.0},{"source":"us-gaap:RelatedPartyTransactionsAbstract","target":"us-gaap:ScheduleOfRelatedPartyTransactionsByRelatedPartyTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfRelatedPartyTransactionsByRelatedPartyTable","target":"srt:TitleOfIndividualAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualAxis","target":"srt:TitleOfIndividualWithRelationshipToEntityDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"srt:BoardOfDirectorsChairmanMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"srt:CounterpartyNameAxis","target":"srt:RepurchaseAgreementCounterpartyNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RepurchaseAgreementCounterpartyNameDomain","target":"csbr:BoardMemberOneMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RelatedPartyTransactionLineItems","target":"us-gaap:RelatedPartyTransactionAmountsOfTransaction","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ScheduleOfRelatedPartyTransactionsByRelatedPartyTable","target":"srt:CounterpartyNameAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfRelatedPartyTransactionsByRelatedPartyTable","target":"us-gaap:RelatedPartyTransactionLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-78","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:RevenueFromContractWithCustomerTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-79","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:DisaggregationOfRevenueTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueTable","target":"srt:ProductOrServiceAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductOrServiceAxis","target":"srt:ProductsAndServicesDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductsAndServicesDomain","target":"csbr:PharmacologyServicesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueLineItems","target":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:netLabel"}]},{"source":"srt:ProductsAndServicesDomain","target":"us-gaap:LicenseAndMaintenanceMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueTable","target":"us-gaap:DisaggregationOfRevenueLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductsAndServicesDomain","target":"us-gaap:ProductAndServiceOtherMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductsAndServicesDomain","target":"csbr:PersonalizedOncologyServicesMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-80","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:DisaggregationOfRevenueTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-81","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","order":1.0},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable","target":"us-gaap:IncomeStatementLocationAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementLocationAxis","target":"us-gaap:IncomeStatementLocationDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:GeneralAndAdministrativeExpenseMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems","target":"us-gaap:AllocatedShareBasedCompensationExpense","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:SellingAndMarketingExpenseMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable","target":"us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:ResearchAndDevelopmentExpenseMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementLocationDomain","target":"csbr:TranslationalOncologySolutionsCostOfSalesMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-82","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","order":1.0},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-83","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RisksAndUncertaintiesAbstract","order":1.0},{"source":"us-gaap:RisksAndUncertaintiesAbstract","target":"us-gaap:ConcentrationRiskDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-84","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RisksAndUncertaintiesAbstract","order":1.0},{"source":"us-gaap:RisksAndUncertaintiesAbstract","target":"us-gaap:ScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable","target":"us-gaap:ConcentrationRiskByTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskByTypeAxis","target":"us-gaap:ConcentrationRiskTypeDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskTypeDomain","target":"us-gaap:CustomerConcentrationRiskMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskByBenchmarkAxis","target":"us-gaap:ConcentrationRiskBenchmarkDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskBenchmarkDomain","target":"us-gaap:SalesRevenueNetMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:MajorCustomersAxis","target":"srt:NameOfMajorCustomerDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:NameOfMajorCustomerDomain","target":"csbr:CustomerOneMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EntityWideRevenueMajorCustomerLineItems","target":"us-gaap:ConcentrationRiskPercentage1","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable","target":"us-gaap:ConcentrationRiskByBenchmarkAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskBenchmarkDomain","target":"us-gaap:AccountsReceivableMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:NameOfMajorCustomerDomain","target":"csbr:CustomerTwoMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable","target":"srt:MajorCustomersAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable","target":"us-gaap:EntityWideRevenueMajorCustomerLineItems","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-85","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","order":1.0},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-86","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","order":1.0},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:PlanNameAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameAxis","target":"us-gaap:PlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"csbr:EquityIncentivePlan2021Member","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeAxis","target":"srt:RangeMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MaximumMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualAxis","target":"srt:TitleOfIndividualWithRelationshipToEntityDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"csbr:IndependentDirectorsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"csbr:TriggeringEventAxis","target":"csbr:TriggeringEventDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"csbr:TriggeringEventDomain","target":"csbr:OptionsAndCashMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementClassOfStockAxis","target":"us-gaap:ClassOfStockDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ClassOfStockDomain","target":"us-gaap:CommonStockMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:AllocatedShareBasedCompensationExpense","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"csbr:EquityIncentivePlan2010Member","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"srt:RangeAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MinimumMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"srt:BoardOfDirectorsChairmanMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"csbr:DirectorCompensationPlanMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"srt:TitleOfIndividualAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"csbr:ChairpersonOfACommitteeMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"csbr:TriggeringEventAxis","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:StatementClassOfStockAxis","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"csbr:SharebasedCompensationArrangementbySharebasedPaymentAwardTermofOptiontoPurchase","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"csbr:StockOptionsAwardSharesToPurchaseCommonStock","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"csbr:StockOptionsAwardSharesToPurchaseUnregisteredCommonStock","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"csbr:ShareBasedCompensationAnnualBaseCompensationAmount","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedPercentage","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"srt:StockRepurchaseProgramAuthorizedAmount1","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:TreasuryStockSharesAcquired","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:TreasuryStockAcquiredAverageCostPerShare","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:TreasuryStockValueAcquiredCostMethod","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-87","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","order":1.0},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"srt:TitleOfIndividualAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualAxis","target":"srt:TitleOfIndividualWithRelationshipToEntityDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"csbr:DirectorsAndEmployeesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"csbr:NonEmployeesMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCanceledInPeriod","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"csbr:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsCanceledInPeriodWeightedAverageExercisePrice","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedWeightedAverageRemainingContractualTerm","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsGrantInPeriodWeightedAverageRemainingContractualTerm","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsAggregateIntrinsicValueGranted","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-88","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","order":1.0},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-89","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:SubsequentEventsAbstract","order":1.0},{"source":"us-gaap:SubsequentEventsAbstract","target":"us-gaap:SubsequentEventsTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-90","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:SubsequentEventsAbstract","order":1.0},{"source":"us-gaap:SubsequentEventsAbstract","target":"us-gaap:SubsequentEventTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsequentEventTable","target":"us-gaap:SubsequentEventTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsequentEventTypeAxis","target":"us-gaap:SubsequentEventTypeDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsequentEventTypeDomain","target":"us-gaap:SubsequentEventMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualAxis","target":"srt:TitleOfIndividualWithRelationshipToEntityDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"srt:ChiefFinancialOfficerMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsequentEventLineItems","target":"us-gaap:OfficersCompensation","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsequentEventTable","target":"srt:TitleOfIndividualAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsequentEventLineItems","target":"csbr:InsentiveBonusPercentage","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsequentEventTable","target":"us-gaap:SubsequentEventLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsequentEventLineItems","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsequentEventLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsequentEventLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-91","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccountingPoliciesAbstract","order":1.0},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:SignificantAccountingPoliciesTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-92","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccountingPoliciesAbstract","order":1.0},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"us-gaap:FairValueByMeasurementFrequencyAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueByMeasurementFrequencyAxis","target":"us-gaap:FairValueMeasurementFrequencyDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueMeasurementFrequencyDomain","target":"us-gaap:FairValueMeasurementsNonrecurringMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeAxis","target":"srt:RangeMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MinimumMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductOrServiceAxis","target":"srt:ProductsAndServicesDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductsAndServicesDomain","target":"csbr:FewContractsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:Cash","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueMeasurementFrequencyDomain","target":"us-gaap:FairValueMeasurementsRecurringMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"srt:RangeAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MaximumMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:CashEquivalentsAtCarryingValue","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"srt:ProductOrServiceAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"csbr:NumberOfMajorInstitutionsWithCashBalances","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:NetIncomeLoss","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"us-gaap:PropertyPlantAndEquipmentLineItems","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:RetainedEarningsAccumulatedDeficit","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"csbr:WorkingCapitalDeficit","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:LiabilitiesFairValueDisclosure","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:AssetsFairValueDisclosure","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:PropertyPlantAndEquipmentUsefulLife","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:ImpairmentOfLongLivedAssetsHeldForUse","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:GoodwillImpairmentLoss","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:UnrecognizedTaxBenefits","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:IncomeTaxExaminationPenaltiesAndInterestExpense","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:IncomeTaxExpenseBenefit","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:TaxAdjustmentsSettlementsAndUnusualProvisions","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:NumberOfOperatingSegments","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:NumberOfReportableSegments","order":18.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-93","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccountingPoliciesAbstract","order":1.0},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:BasisOfAccountingPolicyPolicyTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:ConsolidationPolicyTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:UseOfEstimates","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:FairValueMeasurementPolicyPolicyTextBlock","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:PropertyPlantAndEquipmentPolicyTextBlock","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:LesseeLeasesPolicyTextBlock","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:CostOfSalesPolicyTextBlock","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:ResearchAndDevelopmentExpensePolicy","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"csbr:SalesAndMarketingExpensePolicyPolicyTextBlock","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:EarningsPerSharePolicyTextBlock","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:IncomeTaxPolicyTextBlock","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:RevenueFromContractWithCustomerPolicyTextBlock","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:SegmentReportingPolicyPolicyTextBlock","order":18.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","order":19.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-94","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccountingPoliciesAbstract","order":1.0},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","target":"srt:ProductOrServiceAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductOrServiceAxis","target":"srt:ProductsAndServicesDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductsAndServicesDomain","target":"csbr:FewContractsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeAxis","target":"srt:RangeMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MinimumMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems","target":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","target":"srt:RangeAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MaximumMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","target":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","target":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-95","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"cyd:CybersecurityRiskManagementStrategyAndGovernanceAbstract","order":1.0},{"source":"cyd:CybersecurityRiskManagementStrategyAndGovernanceAbstract","target":"cyd:CybersecurityRiskManagementStrategyAndGovernanceTable","order":1.0},{"source":"cyd:CybersecurityRiskManagementStrategyAndGovernanceLineItems","target":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","order":1.0},{"source":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","target":"cyd:CybersecurityRiskManagementProcessesIntegratedFlag","order":1.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","order":1.0},{"source":"cyd:CybersecurityRiskManagementStrategyAndGovernanceAbstract","target":"cyd:CybersecurityRiskManagementStrategyAndGovernanceLineItems","order":2.0},{"source":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","target":"cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock","order":2.0},{"source":"cyd:CybersecurityRiskManagementStrategyAndGovernanceLineItems","target":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","order":2.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","order":2.0},{"source":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","target":"cyd:CybersecurityRiskManagementThirdPartyEngagedFlag","order":3.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskRoleOfManagementTextBlock","order":3.0},{"source":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","target":"cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag","order":4.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag","order":4.0},{"source":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","target":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag","order":5.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock","order":5.0},{"source":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","target":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock","order":6.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock","order":6.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock","order":7.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag","order":8.0}]},{"name":"rpt:network-presentation-96","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"ecd:AwardTmgDiscLineItems","order":1.0},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardTmgMnpiDiscTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardsCloseToMnpiDiscTable","target":"ecd:IndividualAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:IndividualAxis","target":"ecd:AllIndividualsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AwardTypeAxis","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockOptionMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardTmgMethodTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardsCloseToMnpiDiscTable","target":"us-gaap:AwardTypeAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:StockAppreciationRightsSARSMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardTmgPredtrmndFlag","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardTmgMnpiCnsdrdFlag","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardTmgHowMnpiCnsdrdTextBlock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:MnpiDiscTimedForCompValFlag","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardsCloseToMnpiDiscTableTextBlock","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardsCloseToMnpiDiscTable","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardsCloseToMnpiDiscIndName","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardUndrlygSecuritiesAmt","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardExrcPrice","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardGrantDateFairValue","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:UndrlygSecurityMktPriceChngPct","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-97","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"ecd:RecoveryOfErrCompDisclosureLineItems","order":1.0},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ErrCompRecoveryTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:ErrCompRecoveryTable","target":"ecd:RestatementDateAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:IndividualAxis","target":"ecd:AllIndividualsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllIndividualsMember","target":"ecd:NonNeosMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:ErrCompRecoveryTable","target":"ecd:IndividualAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:RestatementDeterminationDate","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:AggtErrCompAmt","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ErrCompAnalysisTextBlock","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:StkPrcOrTsrEstimationMethodTextBlock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:OutstandingAggtErrCompAmt","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:AggtErrCompNotYetDeterminedTextBlock","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ForgoneRecoveryIndName","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ForgoneRecoveryDueToExpenseOfEnforcementAmt","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ForgoneRecoveryDueToViolationOfHomeCountryLawAmt","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ForgoneRecoveryExplanationOfImpracticabilityTextBlock","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:OutstandingRecoveryIndName","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:OutstandingRecoveryCompAmt","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:RestatementDoesNotRequireRecoveryTextBlock","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-98","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"ecd:InsiderTradingArrLineItems","order":1.0},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TradingArrByIndTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:TradingArrByIndTable","target":"ecd:TradingArrAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:TradingArrAxis","target":"ecd:AllTradingArrangementsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:IndividualAxis","target":"ecd:AllIndividualsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:TradingArrByIndTable","target":"ecd:IndividualAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:MtrlTermsOfTrdArrTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrIndName","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrIndTitle","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:Rule10b51ArrAdoptedFlag","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:NonRule10b51ArrAdoptedFlag","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrAdoptionDate","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:Rule10b51ArrTrmntdFlag","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:NonRule10b51ArrTrmntdFlag","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrTerminationDate","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrExpirationDate","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrDuration","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrSecuritiesAggAvailAmt","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-99","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"ecd:InsiderTradingPoliciesProcLineItems","order":1.0},{"source":"ecd:InsiderTradingPoliciesProcLineItems","target":"ecd:InsiderTrdPoliciesProcAdoptedFlag","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingPoliciesProcLineItems","target":"ecd:InsiderTrdPoliciesProcNotAdoptedTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-100","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"ecd:PayVsPerformanceDisclosureLineItems","order":1.0},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PvpTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PvpTable","target":"ecd:ExecutiveCategoryAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:ExecutiveCategoryAxis","target":"ecd:AllExecutiveCategoriesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllExecutiveCategoriesMember","target":"ecd:PeoMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:IndividualAxis","target":"ecd:AllIndividualsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AdjToCompAxis","target":"ecd:AllAdjToCompMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllAdjToCompMember","target":"ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AggtPnsnAdjsSvcCstMember","target":"ecd:PnsnAdjsSvcCstMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsMember","target":"ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllExecutiveCategoriesMember","target":"ecd:NonPeoNeoMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PvpTable","target":"ecd:IndividualAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllAdjToCompMember","target":"ecd:AggtPnsnAdjsSvcCstMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AggtPnsnAdjsSvcCstMember","target":"ecd:PnsnAdjsPrrSvcCstMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsMember","target":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PvpTableTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PvpTable","target":"ecd:AdjToCompAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllAdjToCompMember","target":"ecd:EqtyAwrdsAdjsMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:CoSelectedMeasureName","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PvpTable","target":"ecd:MeasureAxis","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:NamedExecutiveOfficersFnTextBlock","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PeerGroupIssuersFnTextBlock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:ChangedPeerGroupFnTextBlock","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PeoTotalCompAmt","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PeoActuallyPaidCompAmt","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:AdjToPeoCompFnTextBlock","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:NonPeoNeoAvgTotalCompAmt","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:NonPeoNeoAvgCompActuallyPaidAmt","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:AdjToNonPeoNeoCompFnTextBlock","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:EquityValuationAssumptionDifferenceFnTextBlock","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:CompActuallyPaidVsTotalShareholderRtnTextBlock","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:CompActuallyPaidVsNetIncomeTextBlock","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:CompActuallyPaidVsCoSelectedMeasureTextBlock","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:TotalShareholderRtnVsPeerGroupTextBlock","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:CompActuallyPaidVsOtherMeasureTextBlock","order":18.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:TabularListTableTextBlock","order":19.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:TotalShareholderRtnAmt","order":20.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PeerGroupTotalShareholderRtnAmt","order":21.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"us-gaap:NetIncomeLoss","order":22.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:CoSelectedMeasureAmt","order":23.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:OtherPerfMeasureAmt","order":24.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:AdjToCompAmt","order":25.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PeoName","order":26.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:MeasureName","order":27.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:NonGaapMeasureDescriptionTextBlock","order":28.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:Additional402vDisclosureTextBlock","order":29.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PnsnBnftsAdjFnTextBlock","order":30.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:EqtyAwrdsAdjFnTextBlock","order":31.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-calculation-101","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccountsReceivableNetCurrent","order":1.0},{"source":"us-gaap:AccountsReceivableGrossCurrent","target":"us-gaap:AccountsReceivableGross","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccountsReceivableNetCurrent","target":"us-gaap:AccountsReceivableGrossCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccountsReceivableGrossCurrent","target":"us-gaap:UnbilledContractsReceivable","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccountsReceivableNetCurrent","target":"us-gaap:AllowanceForDoubtfulAccountsReceivable","order":2.0,"properties":[{"property":"xbrl:weight","value":-1.0}]}]},{"name":"rpt:network-calculation-102","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:Assets","order":1.0},{"source":"xbrl:rootSource","target":"us-gaap:LiabilitiesAndStockholdersEquity","order":2.0},{"source":"us-gaap:StockholdersEquity","target":"us-gaap:CommonStockValue","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Assets","target":"us-gaap:AssetsCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquity","target":"us-gaap:Liabilities","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Liabilities","target":"us-gaap:LiabilitiesCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:Cash","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesCurrent","target":"us-gaap:AccountsPayableCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:StockholdersEquity","target":"us-gaap:AdditionalPaidInCapitalCommonStock","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Assets","target":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquity","target":"us-gaap:StockholdersEquity","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Liabilities","target":"us-gaap:OtherLiabilitiesNoncurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:AccountsReceivableNetCurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesCurrent","target":"us-gaap:AccruedLiabilitiesCurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:StockholdersEquity","target":"us-gaap:RetainedEarningsAccumulatedDeficit","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Assets","target":"us-gaap:Goodwill","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Liabilities","target":"us-gaap:OperatingLeaseLiabilityNoncurrent","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesCurrent","target":"us-gaap:ContractWithCustomerLiabilityCurrent","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:StockholdersEquity","target":"us-gaap:TreasuryStockCommonValue","order":4.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:Assets","target":"us-gaap:OtherAssetsNoncurrent","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesCurrent","target":"us-gaap:OperatingLeaseLiabilityCurrent","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Assets","target":"us-gaap:OperatingLeaseRightOfUseAsset","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesCurrent","target":"us-gaap:OtherLiabilitiesCurrent","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-103","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","order":1.0},{"source":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","target":"us-gaap:NetCashProvidedByUsedInOperatingActivities","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivities","target":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","order":1.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"us-gaap:PaymentsForRepurchaseOfCommonStock","order":1.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:NetIncomeLoss","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","target":"us-gaap:NetCashProvidedByUsedInInvestingActivities","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"us-gaap:FinanceLeasePrincipalPayments","order":2.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:ShareBasedCompensation","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","target":"us-gaap:NetCashProvidedByUsedInFinancingActivities","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"us-gaap:ProceedsFromStockOptionsExercised","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:DepreciationAndAmortization","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","order":4.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"csbr:IncreaseDecreaseInOperatingLeaseRightOfUseAssets","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:ProvisionForDoubtfulAccounts","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInAccountsReceivable","order":7.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","order":8.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInAccountsPayable","order":9.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInAccruedLiabilities","order":10.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInContractWithCustomerLiability","order":11.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInOperatingLeaseLiability","order":12.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"csbr:IncreaseDecreaseInUncertainTaxPosition","order":13.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInOtherNoncurrentAssets","order":14.0,"properties":[{"property":"xbrl:weight","value":-1.0}]}]},{"name":"rpt:network-calculation-104","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:NetIncomeLoss","order":1.0},{"source":"us-gaap:OperatingCostsAndExpenses","target":"us-gaap:CostOfGoodsAndServicesSold","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingIncomeLoss","target":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","target":"us-gaap:OperatingIncomeLoss","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetIncomeLoss","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingCostsAndExpenses","target":"us-gaap:ResearchAndDevelopmentExpense","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingIncomeLoss","target":"us-gaap:OperatingCostsAndExpenses","order":2.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","target":"us-gaap:OtherNonoperatingIncomeExpense","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetIncomeLoss","target":"us-gaap:IncomeTaxExpenseBenefit","order":2.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:OperatingCostsAndExpenses","target":"us-gaap:SellingAndMarketingExpense","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingCostsAndExpenses","target":"us-gaap:GeneralAndAdministrativeExpense","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingCostsAndExpenses","target":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","order":5.0,"properties":[{"property":"xbrl:weight","value":-1.0}]}]},{"name":"rpt:network-calculation-105","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","order":1.0},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:OperatingLeaseLiability","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-106","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","order":1.0},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"csbr:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-107","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LeaseCost","order":1.0},{"source":"us-gaap:LeaseCost","target":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LeaseCost","target":"us-gaap:FinanceLeaseInterestExpense","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LeaseCost","target":"us-gaap:OperatingLeaseCost","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-108","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:FinanceLeaseLiabilityPaymentsDue","order":1.0},{"source":"us-gaap:FinanceLeaseLiabilityPaymentsDue","target":"us-gaap:FinanceLeaseLiability","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:FinanceLeaseLiabilityPaymentsDue","target":"us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-109","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:FinanceLeaseLiabilityPaymentsDue","order":1.0},{"source":"us-gaap:FinanceLeaseLiabilityPaymentsDue","target":"us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:FinanceLeaseLiabilityPaymentsDue","target":"us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:FinanceLeaseLiabilityPaymentsDue","target":"us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:FinanceLeaseLiabilityPaymentsDue","target":"csbr:FinanceLeaseLiabilityToBePaidAfterYearThree","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-110","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:FinanceLeaseLiability","order":1.0},{"source":"xbrl:rootSource","target":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","order":2.0},{"source":"us-gaap:FinanceLeaseLiability","target":"us-gaap:FinanceLeaseLiabilityCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","target":"us-gaap:PropertyPlantAndEquipmentGross","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:FinanceLeaseLiability","target":"us-gaap:FinanceLeaseLiabilityNoncurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","target":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","order":2.0,"properties":[{"property":"xbrl:weight","value":-1.0}]}]},{"name":"rpt:network-calculation-111","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:DeferredTaxAssetsLiabilitiesNet","order":1.0},{"source":"us-gaap:DeferredTaxAssetsLiabilitiesNet","target":"us-gaap:DeferredTaxAssetsGross","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsLiabilitiesNet","target":"us-gaap:DeferredTaxAssetsValuationAllowance","order":2.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"csbr:DeferredTaxLiabilityDeferredExpenseDepreciationAndAmortization","order":2.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"csbr:DeferredTaxAssetsTaxDeferredExpenseOperatingLeases","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"csbr:DeferredTaxLiabilitiesCapitalizedResearchAndDevelopmentCosts","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-112","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperations","order":1.0},{"source":"xbrl:rootSource","target":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperations","order":2.0},{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxExpenseBenefit","order":3.0},{"source":"xbrl:rootSource","target":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperations","order":4.0},{"source":"us-gaap:CurrentIncomeTaxExpenseBenefit","target":"us-gaap:CurrentFederalTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:CurrentIncomeTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperations","target":"us-gaap:CurrentForeignTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperations","target":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperations","target":"us-gaap:CurrentFederalTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:CurrentIncomeTaxExpenseBenefit","target":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:CurrentIncomeTaxExpenseBenefit","target":"us-gaap:CurrentForeignTaxExpenseBenefit","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-113","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxExpenseBenefit","order":1.0},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperations","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperations","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperations","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-114","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","order":1.0},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"csbr:EffectiveIncomeTaxRateReconciliationPermanentDifferences","order":4.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"csbr:EffectiveIncomeTaxRateReconciliationIncreaseInUncertainTaxPosition","order":5.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"csbr:EffectiveIncomeTaxRateReconciliationDeferredTaxAssetAdjustmentPercent","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","order":7.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]}],"groups":[{"name":"rpt:group-0","groupURI":"http://championsoncology.com/role/AccountsReceivableUnbilledServicesandDeferredRevenue"},{"name":"rpt:group-1","groupURI":"http://championsoncology.com/role/AccountsReceivableUnbilledServicesandDeferredRevenueScheduleofAccountsReceivableandUnbilledServicesDetails"},{"name":"rpt:group-2","groupURI":"http://championsoncology.com/role/AccountsReceivableUnbilledServicesandDeferredRevenueScheduleofDeferredRevenueDetails"},{"name":"rpt:group-3","groupURI":"http://championsoncology.com/role/AccountsReceivableUnbilledServicesandDeferredRevenueTables"},{"name":"rpt:group-4","groupURI":"http://championsoncology.com/role/AuditInformation"},{"name":"rpt:group-5","groupURI":"http://championsoncology.com/role/CONSOLIDATEDBALANCESHEETS"},{"name":"rpt:group-6","groupURI":"http://championsoncology.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"},{"name":"rpt:group-7","groupURI":"http://championsoncology.com/role/CONSOLIDATEDSTATEMENTOFCHANGESINSTOCKHOLDERSDEFICIENCYEQUITY"},{"name":"rpt:group-8","groupURI":"http://championsoncology.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"},{"name":"rpt:group-9","groupURI":"http://championsoncology.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"},{"name":"rpt:group-10","groupURI":"http://championsoncology.com/role/CommitmentsandContingencies"},{"name":"rpt:group-11","groupURI":"http://championsoncology.com/role/CommitmentsandContingenciesDetails"},{"name":"rpt:group-12","groupURI":"http://championsoncology.com/role/Cover"},{"name":"rpt:group-13","groupURI":"http://championsoncology.com/role/EarningsPerShare"},{"name":"rpt:group-14","groupURI":"http://championsoncology.com/role/EarningsPerShareScheduleofEarningsPerShareBasicandDilutedDetails"},{"name":"rpt:group-15","groupURI":"http://championsoncology.com/role/EarningsPerShareScheduleofPotentiallyDilutiveStockbasedInstrumentsDetails"},{"name":"rpt:group-16","groupURI":"http://championsoncology.com/role/EarningsPerShareTables"},{"name":"rpt:group-17","groupURI":"http://championsoncology.com/role/Leases"},{"name":"rpt:group-18","groupURI":"http://championsoncology.com/role/LeasesNarrativeDetails"},{"name":"rpt:group-19","groupURI":"http://championsoncology.com/role/LeasesScheduleofFutureMinimumLeasePaymentsDetails"},{"name":"rpt:group-20","groupURI":"http://championsoncology.com/role/LeasesScheduleofLeaseCostsDetails"},{"name":"rpt:group-21","groupURI":"http://championsoncology.com/role/LeasesScheduleofROUAssetsandLeaseLiabilitiesDetails"},{"name":"rpt:group-22","groupURI":"http://championsoncology.com/role/LeasesTables"},{"name":"rpt:group-23","groupURI":"http://championsoncology.com/role/OrganizationandBasisofPresentation"},{"name":"rpt:group-24","groupURI":"http://championsoncology.com/role/OrganizationandBasisofPresentationDetails"},{"name":"rpt:group-25","groupURI":"http://championsoncology.com/role/PropertyandEquipment"},{"name":"rpt:group-26","groupURI":"http://championsoncology.com/role/PropertyandEquipmentNarrativeDetails"},{"name":"rpt:group-27","groupURI":"http://championsoncology.com/role/PropertyandEquipmentScheduleofFutureMinimumLeasePaymentsDetails"},{"name":"rpt:group-28","groupURI":"http://championsoncology.com/role/PropertyandEquipmentScheduleofPropertyandEquipmentDetails"},{"name":"rpt:group-29","groupURI":"http://championsoncology.com/role/PropertyandEquipmentTables"},{"name":"rpt:group-30","groupURI":"http://championsoncology.com/role/ProvisionforBenefitfromIncomeTaxes"},{"name":"rpt:group-31","groupURI":"http://championsoncology.com/role/ProvisionforBenefitfromIncomeTaxesNarrativeDetails"},{"name":"rpt:group-32","groupURI":"http://championsoncology.com/role/ProvisionforBenefitfromIncomeTaxesScheduleofChangeinUncertainTaxPositionsDetails"},{"name":"rpt:group-33","groupURI":"http://championsoncology.com/role/ProvisionforBenefitfromIncomeTaxesScheduleofComponentsofDeferredTaxAssetsandLiabilitiesDetails"},{"name":"rpt:group-34","groupURI":"http://championsoncology.com/role/ProvisionforBenefitfromIncomeTaxesScheduleofComponentsofProvisionBenefitforIncomeTaxesDetails"},{"name":"rpt:group-35","groupURI":"http://championsoncology.com/role/ProvisionforBenefitfromIncomeTaxesScheduleofReconciliationofEffectiveTaxRateDetails"},{"name":"rpt:group-36","groupURI":"http://championsoncology.com/role/ProvisionforBenefitfromIncomeTaxesTables"},{"name":"rpt:group-37","groupURI":"http://championsoncology.com/role/RelatedPartyTransactions"},{"name":"rpt:group-38","groupURI":"http://championsoncology.com/role/RelatedPartyTransactionsDetails"},{"name":"rpt:group-39","groupURI":"http://championsoncology.com/role/RevenuefromContractswithCustomers"},{"name":"rpt:group-40","groupURI":"http://championsoncology.com/role/RevenuefromContractswithCustomersDetails"},{"name":"rpt:group-41","groupURI":"http://championsoncology.com/role/RevenuefromContractswithCustomersTables"},{"name":"rpt:group-42","groupURI":"http://championsoncology.com/role/ShareBasedPaymentsScheduleofAllocationofShareBasedCompensationExpenseDetails"},{"name":"rpt:group-43","groupURI":"http://championsoncology.com/role/ShareBasedPaymentsScheduleofValuationAssumptionsforStockOptionsDetails"},{"name":"rpt:group-44","groupURI":"http://championsoncology.com/role/SignificantCustomers"},{"name":"rpt:group-45","groupURI":"http://championsoncology.com/role/SignificantCustomersDetails"},{"name":"rpt:group-46","groupURI":"http://championsoncology.com/role/StockbasedPayments"},{"name":"rpt:group-47","groupURI":"http://championsoncology.com/role/StockbasedPaymentsNarrativeDetails"},{"name":"rpt:group-48","groupURI":"http://championsoncology.com/role/StockbasedPaymentsScheduleofStockOptionActivityDetails"},{"name":"rpt:group-49","groupURI":"http://championsoncology.com/role/StockbasedPaymentsTables"},{"name":"rpt:group-50","groupURI":"http://championsoncology.com/role/SubsequentEvents"},{"name":"rpt:group-51","groupURI":"http://championsoncology.com/role/SubsequentEventsDetails"},{"name":"rpt:group-52","groupURI":"http://championsoncology.com/role/SummaryofSignificantAccountingPolicies"},{"name":"rpt:group-53","groupURI":"http://championsoncology.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"},{"name":"rpt:group-54","groupURI":"http://championsoncology.com/role/SummaryofSignificantAccountingPoliciesPolicies"},{"name":"rpt:group-55","groupURI":"http://championsoncology.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"},{"name":"rpt:group-56","groupURI":"http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"},{"name":"rpt:group-57","groupURI":"http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"},{"name":"rpt:group-58","groupURI":"http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"},{"name":"rpt:group-59","groupURI":"http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"},{"name":"rpt:group-60","groupURI":"http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"},{"name":"rpt:group-61","groupURI":"http://xbrl.sec.gov/ecd/role/PvpDisclosure"},{"name":"rpt:group-62","groupURI":"http://championsoncology.com/role/LeasesScheduleofFutureMinimumLeasePaymentsDetails_1"},{"name":"rpt:group-63","groupURI":"http://championsoncology.com/role/PropertyandEquipmentScheduleofFutureMinimumLeasePaymentsDetails_1"},{"name":"rpt:group-64","groupURI":"http://championsoncology.com/role/ProvisionforBenefitfromIncomeTaxesScheduleofComponentsofProvisionBenefitforIncomeTaxesDetails_1"},{"name":"rpt:group-65","groupURI":"http://championsoncology.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails_1"},{"name":"rpt:group-66","groupURI":"http://championsoncology.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails_1"},{"name":"rpt:group-67","groupURI":"http://xbrl.sec.gov/ecd/role/AwardsCloseToMnpiDisc"},{"name":"rpt:group-68","groupURI":"http://xbrl.sec.gov/ecd/role/ForgoneRecoveries"},{"name":"rpt:group-69","groupURI":"http://xbrl.sec.gov/ecd/role/InsiderTradingArrangementsByInd"},{"name":"rpt:group-70","groupURI":"http://xbrl.sec.gov/ecd/role/OutstandingRecoveries"},{"name":"rpt:group-71","groupURI":"http://xbrl.sec.gov/ecd/role/PvpAdjustmentsToCompensation"},{"name":"rpt:group-72","groupURI":"http://xbrl.sec.gov/ecd/role/PvpDisclosureWithAdditionalMeasures"},{"name":"rpt:group-73","groupURI":"http://xbrl.sec.gov/ecd/role/PvpMeasures"},{"name":"rpt:group-74","groupURI":"http://xbrl.sec.gov/ecd/role/PvpTable"},{"name":"rpt:group-75","groupURI":"http://xbrl.sec.gov/ecd/role/TabularListMeasures"},{"name":"rpt:group-76","groupURI":"http://xbrl.sec.gov/ecd/role/TabularListsByExecutiveCategory"}],"groupContents":[{"groupName":"rpt:group-0","forObject":"rpt:network-presentation-39"},{"groupName":"rpt:group-1","forObject":"rpt:network-presentation-40"},{"groupName":"rpt:group-2","forObject":"rpt:network-presentation-41"},{"groupName":"rpt:group-3","forObject":"rpt:network-presentation-42"},{"groupName":"rpt:group-4","forObject":"rpt:network-presentation-43"},{"groupName":"rpt:group-5","forObject":"rpt:network-presentation-44"},{"groupName":"rpt:group-6","forObject":"rpt:network-presentation-45"},{"groupName":"rpt:group-7","forObject":"rpt:network-presentation-46"},{"groupName":"rpt:group-8","forObject":"rpt:network-presentation-47"},{"groupName":"rpt:group-9","forObject":"rpt:network-presentation-48"},{"groupName":"rpt:group-10","forObject":"rpt:network-presentation-49"},{"groupName":"rpt:group-11","forObject":"rpt:network-presentation-50"},{"groupName":"rpt:group-12","forObject":"rpt:network-presentation-51"},{"groupName":"rpt:group-13","forObject":"rpt:network-presentation-52"},{"groupName":"rpt:group-14","forObject":"rpt:network-presentation-53"},{"groupName":"rpt:group-15","forObject":"rpt:network-presentation-54"},{"groupName":"rpt:group-16","forObject":"rpt:network-presentation-55"},{"groupName":"rpt:group-17","forObject":"rpt:network-presentation-56"},{"groupName":"rpt:group-18","forObject":"rpt:network-presentation-57"},{"groupName":"rpt:group-19","forObject":"rpt:network-presentation-58"},{"groupName":"rpt:group-20","forObject":"rpt:network-presentation-59"},{"groupName":"rpt:group-21","forObject":"rpt:network-presentation-60"},{"groupName":"rpt:group-22","forObject":"rpt:network-presentation-61"},{"groupName":"rpt:group-23","forObject":"rpt:network-presentation-62"},{"groupName":"rpt:group-24","forObject":"rpt:network-presentation-63"},{"groupName":"rpt:group-25","forObject":"rpt:network-presentation-64"},{"groupName":"rpt:group-26","forObject":"rpt:network-presentation-65"},{"groupName":"rpt:group-27","forObject":"rpt:network-presentation-66"},{"groupName":"rpt:group-28","forObject":"rpt:network-presentation-67"},{"groupName":"rpt:group-29","forObject":"rpt:network-presentation-68"},{"groupName":"rpt:group-30","forObject":"rpt:network-presentation-69"},{"groupName":"rpt:group-31","forObject":"rpt:network-presentation-70"},{"groupName":"rpt:group-32","forObject":"rpt:network-presentation-71"},{"groupName":"rpt:group-33","forObject":"rpt:network-presentation-72"},{"groupName":"rpt:group-34","forObject":"rpt:network-presentation-73"},{"groupName":"rpt:group-35","forObject":"rpt:network-presentation-74"},{"groupName":"rpt:group-36","forObject":"rpt:network-presentation-75"},{"groupName":"rpt:group-37","forObject":"rpt:network-presentation-76"},{"groupName":"rpt:group-38","forObject":"rpt:network-presentation-77"},{"groupName":"rpt:group-39","forObject":"rpt:network-presentation-78"},{"groupName":"rpt:group-40","forObject":"rpt:network-presentation-79"},{"groupName":"rpt:group-41","forObject":"rpt:network-presentation-80"},{"groupName":"rpt:group-42","forObject":"rpt:network-presentation-81"},{"groupName":"rpt:group-43","forObject":"rpt:network-presentation-82"},{"groupName":"rpt:group-44","forObject":"rpt:network-presentation-83"},{"groupName":"rpt:group-45","forObject":"rpt:network-presentation-84"},{"groupName":"rpt:group-46","forObject":"rpt:network-presentation-85"},{"groupName":"rpt:group-47","forObject":"rpt:network-presentation-86"},{"groupName":"rpt:group-48","forObject":"rpt:network-presentation-87"},{"groupName":"rpt:group-49","forObject":"rpt:network-presentation-88"},{"groupName":"rpt:group-50","forObject":"rpt:network-presentation-89"},{"groupName":"rpt:group-51","forObject":"rpt:network-presentation-90"},{"groupName":"rpt:group-52","forObject":"rpt:network-presentation-91"},{"groupName":"rpt:group-53","forObject":"rpt:network-presentation-92"},{"groupName":"rpt:group-54","forObject":"rpt:network-presentation-93"},{"groupName":"rpt:group-55","forObject":"rpt:network-presentation-94"},{"groupName":"rpt:group-56","forObject":"rpt:network-presentation-95"},{"groupName":"rpt:group-57","forObject":"rpt:network-presentation-96"},{"groupName":"rpt:group-58","forObject":"rpt:network-presentation-97"},{"groupName":"rpt:group-59","forObject":"rpt:network-presentation-98"},{"groupName":"rpt:group-60","forObject":"rpt:network-presentation-99"},{"groupName":"rpt:group-61","forObject":"rpt:network-presentation-100"},{"groupName":"rpt:group-1","forObject":"rpt:network-calculation-101"},{"groupName":"rpt:group-5","forObject":"rpt:network-calculation-102"},{"groupName":"rpt:group-8","forObject":"rpt:network-calculation-103"},{"groupName":"rpt:group-9","forObject":"rpt:network-calculation-104"},{"groupName":"rpt:group-19","forObject":"rpt:network-calculation-105"},{"groupName":"rpt:group-62","forObject":"rpt:network-calculation-106"},{"groupName":"rpt:group-20","forObject":"rpt:network-calculation-107"},{"groupName":"rpt:group-27","forObject":"rpt:network-calculation-108"},{"groupName":"rpt:group-63","forObject":"rpt:network-calculation-109"},{"groupName":"rpt:group-28","forObject":"rpt:network-calculation-110"},{"groupName":"rpt:group-33","forObject":"rpt:network-calculation-111"},{"groupName":"rpt:group-34","forObject":"rpt:network-calculation-112"},{"groupName":"rpt:group-64","forObject":"rpt:network-calculation-113"},{"groupName":"rpt:group-35","forObject":"rpt:network-calculation-114"},{"groupName":"rpt:group-7","forObject":"rpt:cube-0"},{"groupName":"rpt:group-11","forObject":"rpt:cube-1"},{"groupName":"rpt:group-15","forObject":"rpt:cube-2"},{"groupName":"rpt:group-18","forObject":"rpt:cube-3"},{"groupName":"rpt:group-24","forObject":"rpt:cube-4"},{"groupName":"rpt:group-26","forObject":"rpt:cube-5"},{"groupName":"rpt:group-28","forObject":"rpt:cube-6"},{"groupName":"rpt:group-38","forObject":"rpt:cube-7"},{"groupName":"rpt:group-40","forObject":"rpt:cube-8"},{"groupName":"rpt:group-42","forObject":"rpt:cube-9"},{"groupName":"rpt:group-45","forObject":"rpt:cube-10"},{"groupName":"rpt:group-47","forObject":"rpt:cube-11"},{"groupName":"rpt:group-48","forObject":"rpt:cube-12"},{"groupName":"rpt:group-51","forObject":"rpt:cube-13"},{"groupName":"rpt:group-53","forObject":"rpt:cube-14"},{"groupName":"rpt:group-65","forObject":"rpt:cube-15"},{"groupName":"rpt:group-55","forObject":"rpt:cube-16"},{"groupName":"rpt:group-66","forObject":"rpt:cube-17"},{"groupName":"rpt:group-56","forObject":"rpt:cube-18"},{"groupName":"rpt:group-57","forObject":"rpt:cube-19"},{"groupName":"rpt:group-67","forObject":"rpt:cube-20"},{"groupName":"rpt:group-58","forObject":"rpt:cube-21"},{"groupName":"rpt:group-68","forObject":"rpt:cube-22"},{"groupName":"rpt:group-69","forObject":"rpt:cube-23"},{"groupName":"rpt:group-60","forObject":"rpt:cube-24"},{"groupName":"rpt:group-70","forObject":"rpt:cube-25"},{"groupName":"rpt:group-71","forObject":"rpt:cube-26"},{"groupName":"rpt:group-61","forObject":"rpt:cube-27"},{"groupName":"rpt:group-72","forObject":"rpt:cube-28"},{"groupName":"rpt:group-73","forObject":"rpt:cube-29"},{"groupName":"rpt:group-74","forObject":"rpt:cube-30"},{"groupName":"rpt:group-75","forObject":"rpt:cube-31"},{"groupName":"rpt:group-76","forObject":"rpt:cube-32"}],"facts":[{"name":"rpt:f-0","factDimensions":{"xbrl:concept":"dei:EntityCentralIndexKey","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"0000771856","language":"en-us"}]},{"name":"rpt:f-1","factDimensions":{"xbrl:concept":"dei:AmendmentFlag","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"false"}]},{"name":"rpt:f-2","factDimensions":{"xbrl:concept":"dei:DocumentFiscalPeriodFocus","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"FY","language":"en-us"}]},{"name":"rpt:f-3","factDimensions":{"xbrl:concept":"dei:DocumentFiscalYearFocus","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"2025"}]},{"name":"rpt:f-4","factDimensions":{"xbrl:concept":"us-gaap:TypeOfRevenueExtensibleList","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"http://fasb.org/us-gaap/2024#ServiceMember"}]},{"name":"rpt:f-5","factDimensions":{"xbrl:concept":"us-gaap:TypeOfRevenueExtensibleList","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"http://fasb.org/us-gaap/2024#ServiceMember"}]},{"name":"rpt:f-6","factDimensions":{"xbrl:concept":"us-gaap:TypeOfCostGoodOrServiceExtensibleList","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"http://fasb.org/us-gaap/2024#ServiceMember"}]},{"name":"rpt:f-7","factDimensions":{"xbrl:concept":"us-gaap:TypeOfCostGoodOrServiceExtensibleList","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"http://fasb.org/us-gaap/2024#ServiceMember"}]},{"name":"rpt:f-8","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentUsefulLife","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:RangeAxis":"srt:MinimumMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-9","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"http://fasb.org/us-gaap/2024#PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization"}]},{"name":"rpt:f-10","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"http://fasb.org/us-gaap/2024#PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization"}]},{"name":"rpt:f-11","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"http://fasb.org/us-gaap/2024#OtherLiabilitiesCurrent http://fasb.org/us-gaap/2024#OtherLiabilitiesNoncurrent"}]},{"name":"rpt:f-12","factDimensions":{"xbrl:concept":"dei:DocumentType","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"10-K","language":"en-us"}]},{"name":"rpt:f-13","factDimensions":{"xbrl:concept":"dei:DocumentAnnualReport","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"true"}]},{"name":"rpt:f-14","factDimensions":{"xbrl:concept":"dei:DocumentPeriodEndDate","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"2025-04-30"}]},{"name":"rpt:f-15","factDimensions":{"xbrl:concept":"dei:CurrentFiscalYearEndDate","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"--04-30"}]},{"name":"rpt:f-16","factDimensions":{"xbrl:concept":"dei:DocumentTransitionReport","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"false"}]},{"name":"rpt:f-17","factDimensions":{"xbrl:concept":"dei:EntityFileNumber","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"001-11504","language":"en-us"}]},{"name":"rpt:f-18","factDimensions":{"xbrl:concept":"dei:EntityRegistrantName","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"CHAMPIONS ONCOLOGY, INC.","language":"en-us"}]},{"name":"rpt:f-19","factDimensions":{"xbrl:concept":"dei:EntityIncorporationStateCountryCode","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"DE","language":"en-us"}]},{"name":"rpt:f-20","factDimensions":{"xbrl:concept":"dei:EntityTaxIdentificationNumber","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"52-1401755","language":"en-us"}]},{"name":"rpt:f-21","factDimensions":{"xbrl:concept":"dei:EntityAddressAddressLine1","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"One University Plaza","language":"en-us"}]},{"name":"rpt:f-22","factDimensions":{"xbrl:concept":"dei:EntityAddressAddressLine2","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Suite 307","language":"en-us"}]},{"name":"rpt:f-23","factDimensions":{"xbrl:concept":"dei:EntityAddressPostalZipCode","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"07601","language":"en-us"}]},{"name":"rpt:f-24","factDimensions":{"xbrl:concept":"dei:EntityAddressCityOrTown","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Hackensack","language":"en-us"}]},{"name":"rpt:f-25","factDimensions":{"xbrl:concept":"dei:EntityAddressStateOrProvince","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"NJ","language":"en-us"}]},{"name":"rpt:f-26","factDimensions":{"xbrl:concept":"dei:CityAreaCode","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"201","language":"en-us"}]},{"name":"rpt:f-27","factDimensions":{"xbrl:concept":"dei:LocalPhoneNumber","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"808-8400","language":"en-us"}]},{"name":"rpt:f-28","factDimensions":{"xbrl:concept":"dei:Security12bTitle","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Common Stock, par value $0.001 per share","language":"en-us"}]},{"name":"rpt:f-29","factDimensions":{"xbrl:concept":"dei:TradingSymbol","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"CSBR","language":"en-us"}]},{"name":"rpt:f-30","factDimensions":{"xbrl:concept":"dei:SecurityExchangeName","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"NASDAQ","language":"en-us"}]},{"name":"rpt:f-31","factDimensions":{"xbrl:concept":"dei:EntityWellKnownSeasonedIssuer","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"No","language":"en-us"}]},{"name":"rpt:f-32","factDimensions":{"xbrl:concept":"dei:EntityVoluntaryFilers","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"No","language":"en-us"}]},{"name":"rpt:f-33","factDimensions":{"xbrl:concept":"dei:EntityCurrentReportingStatus","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Yes","language":"en-us"}]},{"name":"rpt:f-34","factDimensions":{"xbrl:concept":"dei:EntityInteractiveDataCurrent","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Yes","language":"en-us"}]},{"name":"rpt:f-35","factDimensions":{"xbrl:concept":"dei:EntityFilerCategory","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Non-accelerated Filer","language":"en-us"}]},{"name":"rpt:f-36","factDimensions":{"xbrl:concept":"dei:EntitySmallBusiness","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"true"}]},{"name":"rpt:f-37","factDimensions":{"xbrl:concept":"dei:EntityEmergingGrowthCompany","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"false"}]},{"name":"rpt:f-38","factDimensions":{"xbrl:concept":"dei:IcfrAuditorAttestationFlag","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"false"}]},{"name":"rpt:f-39","factDimensions":{"xbrl:concept":"dei:DocumentFinStmtErrorCorrectionFlag","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"false"}]},{"name":"rpt:f-40","factDimensions":{"xbrl:concept":"dei:EntityShellCompany","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"false"}]},{"name":"rpt:f-41","factDimensions":{"xbrl:concept":"dei:EntityPublicFloat","xbrl:period":"2024-11-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"15400000","decimals":-5}]},{"name":"rpt:f-42","factDimensions":{"xbrl:concept":"dei:EntityCommonStockSharesOutstanding","xbrl:period":"2025-07-22T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13777170"}]},{"name":"rpt:f-43","factDimensions":{"xbrl:concept":"dei:DocumentsIncorporatedByReferenceTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify;text-indent:11.25pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Portions of the Registrant\u2019s definitive Proxy Statement for its 2025 Annual Meeting of Shareholders to be filed with the Securities and Exchange Commission pursuant to Regulation 14A under the Securities Exchange Act of 1934, as amended, are incorporated by reference into Part III of this Form 10-K.</span></div>","language":"en-us"}]},{"name":"rpt:f-44","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We believe we maintain an information technology and security program appropriate for a company of our size, taking into account our operations and risks. We recognize the critical importance of maintaining the trust and confidence of our investors, employees, customers and vendors. We have implemented cybersecurity processes designed to assess, identify, and manage risks from potential unauthorized occurrences on or through our information technology systems that may result in adverse effects on the confidentiality, integrity, and availability of these systems and the data residing therein. These processes include mechanisms, controls, and certain technologies designed to prevent or mitigate system intrusion or data loss, theft, misuse, or other security incidents or vulnerabilities and maintain a stable and secure information technology environment. For example, we conduct ongoing monitoring of critical systems for any compromised or potentially compromised accounts. We conduct regular trainings on cyber and information security, along with phishing simulations, among other topics. In addition, we consult with an outside information technology consultant on a regular basis to assist with assessing, identifying, and managing cybersecurity risks, including to anticipate future threats and trends, and their impact on the Company\u2019s risk environment.</span>","language":"en-us"}]},{"name":"rpt:f-45","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We believe we maintain an information technology and security program appropriate for a company of our size, taking into account our operations and risks. We recognize the critical importance of maintaining the trust and confidence of our investors, employees, customers and vendors. We have implemented cybersecurity processes designed to assess, identify, and manage risks from potential unauthorized occurrences on or through our information technology systems that may result in adverse effects on the confidentiality, integrity, and availability of these systems and the data residing therein. These processes include mechanisms, controls, and certain technologies designed to prevent or mitigate system intrusion or data loss, theft, misuse, or other security incidents or vulnerabilities and maintain a stable and secure information technology environment. For example, we conduct ongoing monitoring of critical systems for any compromised or potentially compromised accounts. We conduct regular trainings on cyber and information security, along with phishing simulations, among other topics. In addition, we consult with an outside information technology consultant on a regular basis to assist with assessing, identifying, and managing cybersecurity risks, including to anticipate future threats and trends, and their impact on the Company\u2019s risk environment.</span>","language":"en-us"}]},{"name":"rpt:f-46","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"true"}]},{"name":"rpt:f-47","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementProcessesIntegratedFlag","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"true"}]},{"name":"rpt:f-48","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementThirdPartyEngagedFlag","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"true"}]},{"name":"rpt:f-49","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Our Board of Directors oversees our risk management process.  The Audit Committee, by way of Board delegation, retains oversight of the Company\u2019s cybersecurity risks. The senior leadership team, including our Chief Financial Officer and Chief Executive Officer, provides periodic reports to our Board, as applicable. Our Vice President of Technology and/or Manager of Information Technology are responsible for leading the assessment and management of cybersecurity threats and periodically updating the Audit Committee as needed.    \u00a0\u00a0\u00a0\u00a0To date, we have not identified risks from known cybersecurity threats, including as a result of any prior cybersecurity incidents, that have materially affected us, including our operations, business strategy, results of operations, or financial condition.","language":"en-us"}]},{"name":"rpt:f-50","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskRoleOfManagementTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Our Board of Directors oversees our risk management process.  The Audit Committee, by way of Board delegation, retains oversight of the Company\u2019s cybersecurity risks. The senior leadership team, including our Chief Financial Officer and Chief Executive Officer, provides periodic reports to our Board, as applicable. Our Vice President of Technology and/or Manager of Information Technology are responsible for leading the assessment and management of cybersecurity threats and periodically updating the Audit Committee as needed.","language":"en-us"}]},{"name":"rpt:f-51","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Our Board of Directors oversees our risk management process.","language":"en-us"}]},{"name":"rpt:f-52","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"The Audit Committee, by way of Board delegation, retains oversight of the Company\u2019s cybersecurity risks. The senior leadership team, including our Chief Financial Officer and Chief Executive Officer, provides periodic reports to our Board, as applicable. Our Vice President of Technology and/or Manager of Information Technology are responsible for leading the assessment and management of cybersecurity threats and periodically updating the Audit Committee as needed.","language":"en-us"}]},{"name":"rpt:f-53","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"The senior leadership team, including our Chief Financial Officer and Chief Executive Officer, provides periodic reports to our Board, as applicable. Our Vice President of Technology and/or Manager of Information Technology are responsible for leading the assessment and management of cybersecurity threats and periodically updating the Audit Committee as needed.","language":"en-us"}]},{"name":"rpt:f-54","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"The senior leadership team, including our Chief Financial Officer and Chief Executive Officer, provides periodic reports to our Board, as applicable.","language":"en-us"}]},{"name":"rpt:f-55","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"true"}]},{"name":"rpt:f-56","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"true"}]},{"name":"rpt:f-57","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Our Vice President of Technology and/or Manager of Information Technology are responsible for leading the assessment and management of cybersecurity threats and periodically updating the Audit Committee as needed.","language":"en-us"}]},{"name":"rpt:f-58","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"false"}]},{"name":"rpt:f-59","factDimensions":{"xbrl:concept":"ecd:Rule10b51ArrTrmntdFlag","xbrl:period":"2025-02-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"false"}]},{"name":"rpt:f-60","factDimensions":{"xbrl:concept":"ecd:NonRule10b51ArrAdoptedFlag","xbrl:period":"2025-02-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"false"}]},{"name":"rpt:f-61","factDimensions":{"xbrl:concept":"ecd:Rule10b51ArrAdoptedFlag","xbrl:period":"2025-02-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"false"}]},{"name":"rpt:f-62","factDimensions":{"xbrl:concept":"ecd:NonRule10b51ArrTrmntdFlag","xbrl:period":"2025-02-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"false"}]},{"name":"rpt:f-63","factDimensions":{"xbrl:concept":"dei:AuditorFirmId","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"274","language":"en-us"}]},{"name":"rpt:f-64","factDimensions":{"xbrl:concept":"dei:AuditorName","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"EISNERAMPER LLP","language":"en-us"}]},{"name":"rpt:f-65","factDimensions":{"xbrl:concept":"dei:AuditorLocation","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Iselin, New Jersey","language":"en-us"}]},{"name":"rpt:f-66","factDimensions":{"xbrl:concept":"us-gaap:Cash","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9785000","decimals":-3}]},{"name":"rpt:f-67","factDimensions":{"xbrl:concept":"us-gaap:Cash","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2618000","decimals":-3}]},{"name":"rpt:f-68","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11234000","decimals":-3}]},{"name":"rpt:f-69","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9526000","decimals":-3}]},{"name":"rpt:f-70","factDimensions":{"xbrl:concept":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1350000","decimals":-3}]},{"name":"rpt:f-71","factDimensions":{"xbrl:concept":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1495000","decimals":-3}]},{"name":"rpt:f-72","factDimensions":{"xbrl:concept":"us-gaap:AssetsCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"22369000","decimals":-3}]},{"name":"rpt:f-73","factDimensions":{"xbrl:concept":"us-gaap:AssetsCurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13639000","decimals":-3}]},{"name":"rpt:f-74","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseRightOfUseAsset","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5080000","decimals":-3}]},{"name":"rpt:f-75","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseRightOfUseAsset","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6252000","decimals":-3}]},{"name":"rpt:f-76","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4375000","decimals":-3}]},{"name":"rpt:f-77","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5721000","decimals":-3}]},{"name":"rpt:f-78","factDimensions":{"xbrl:concept":"us-gaap:OtherAssetsNoncurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"185000","decimals":-3}]},{"name":"rpt:f-79","factDimensions":{"xbrl:concept":"us-gaap:OtherAssetsNoncurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"185000","decimals":-3}]},{"name":"rpt:f-80","factDimensions":{"xbrl:concept":"us-gaap:Goodwill","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"335000","decimals":-3}]},{"name":"rpt:f-81","factDimensions":{"xbrl:concept":"us-gaap:Goodwill","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"335000","decimals":-3}]},{"name":"rpt:f-82","factDimensions":{"xbrl:concept":"us-gaap:Assets","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"32344000","decimals":-3}]},{"name":"rpt:f-83","factDimensions":{"xbrl:concept":"us-gaap:Assets","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"26132000","decimals":-3}]},{"name":"rpt:f-84","factDimensions":{"xbrl:concept":"us-gaap:AccountsPayableCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4248000","decimals":-3}]},{"name":"rpt:f-85","factDimensions":{"xbrl:concept":"us-gaap:AccountsPayableCurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5800000","decimals":-3}]},{"name":"rpt:f-86","factDimensions":{"xbrl:concept":"us-gaap:AccruedLiabilitiesCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2556000","decimals":-3}]},{"name":"rpt:f-87","factDimensions":{"xbrl:concept":"us-gaap:AccruedLiabilitiesCurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2160000","decimals":-3}]},{"name":"rpt:f-88","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1471000","decimals":-3}]},{"name":"rpt:f-89","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1337000","decimals":-3}]},{"name":"rpt:f-90","factDimensions":{"xbrl:concept":"us-gaap:OtherLiabilitiesCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"135000","decimals":-3}]},{"name":"rpt:f-91","factDimensions":{"xbrl:concept":"us-gaap:OtherLiabilitiesCurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"150000","decimals":-3}]},{"name":"rpt:f-92","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"15443000","decimals":-3}]},{"name":"rpt:f-93","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityCurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12094000","decimals":-3}]},{"name":"rpt:f-94","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"23853000","decimals":-3}]},{"name":"rpt:f-95","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesCurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"21541000","decimals":-3}]},{"name":"rpt:f-96","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityNoncurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4634000","decimals":-3}]},{"name":"rpt:f-97","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityNoncurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6093000","decimals":-3}]},{"name":"rpt:f-98","factDimensions":{"xbrl:concept":"us-gaap:OtherLiabilitiesNoncurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"85000","decimals":-3}]},{"name":"rpt:f-99","factDimensions":{"xbrl:concept":"us-gaap:OtherLiabilitiesNoncurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"401000","decimals":-3}]},{"name":"rpt:f-100","factDimensions":{"xbrl:concept":"us-gaap:Liabilities","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"28572000","decimals":-3}]},{"name":"rpt:f-101","factDimensions":{"xbrl:concept":"us-gaap:Liabilities","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"28035000","decimals":-3}]},{"name":"rpt:f-102","factDimensions":{"xbrl:concept":"us-gaap:CommonStockParOrStatedValuePerShare","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.001"}]},{"name":"rpt:f-103","factDimensions":{"xbrl:concept":"us-gaap:CommonStockParOrStatedValuePerShare","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.001"}]},{"name":"rpt:f-104","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesAuthorized","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"200000000"}]},{"name":"rpt:f-105","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesAuthorized","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"200000000"}]},{"name":"rpt:f-106","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesIssued","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13897503"}]},{"name":"rpt:f-107","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesIssued","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13714099"}]},{"name":"rpt:f-108","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13777170"}]},{"name":"rpt:f-109","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13593766"}]},{"name":"rpt:f-110","factDimensions":{"xbrl:concept":"us-gaap:CommonStockValue","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"14000","decimals":-3}]},{"name":"rpt:f-111","factDimensions":{"xbrl:concept":"us-gaap:CommonStockValue","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"14000","decimals":-3}]},{"name":"rpt:f-112","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockCommonValue","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"708000","decimals":-3}]},{"name":"rpt:f-113","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockCommonValue","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"708000","decimals":-3}]},{"name":"rpt:f-114","factDimensions":{"xbrl:concept":"us-gaap:AdditionalPaidInCapitalCommonStock","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"84358000","decimals":-3}]},{"name":"rpt:f-115","factDimensions":{"xbrl:concept":"us-gaap:AdditionalPaidInCapitalCommonStock","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"83384000","decimals":-3}]},{"name":"rpt:f-116","factDimensions":{"xbrl:concept":"us-gaap:RetainedEarningsAccumulatedDeficit","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-79892000","decimals":-3}]},{"name":"rpt:f-117","factDimensions":{"xbrl:concept":"us-gaap:RetainedEarningsAccumulatedDeficit","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-84593000","decimals":-3}]},{"name":"rpt:f-118","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3772000","decimals":-3}]},{"name":"rpt:f-119","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-1903000","decimals":-3}]},{"name":"rpt:f-120","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesAndStockholdersEquity","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"32344000","decimals":-3}]},{"name":"rpt:f-121","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesAndStockholdersEquity","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"26132000","decimals":-3}]},{"name":"rpt:f-122","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"56944000","decimals":-3}]},{"name":"rpt:f-123","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"50155000","decimals":-3}]},{"name":"rpt:f-124","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"28389000","decimals":-3}]},{"name":"rpt:f-125","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"29401000","decimals":-3}]},{"name":"rpt:f-126","factDimensions":{"xbrl:concept":"us-gaap:ResearchAndDevelopmentExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6825000","decimals":-3}]},{"name":"rpt:f-127","factDimensions":{"xbrl:concept":"us-gaap:ResearchAndDevelopmentExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9544000","decimals":-3}]},{"name":"rpt:f-128","factDimensions":{"xbrl:concept":"us-gaap:SellingAndMarketingExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7545000","decimals":-3}]},{"name":"rpt:f-129","factDimensions":{"xbrl:concept":"us-gaap:SellingAndMarketingExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7064000","decimals":-3}]},{"name":"rpt:f-130","factDimensions":{"xbrl:concept":"us-gaap:GeneralAndAdministrativeExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9339000","decimals":-3}]},{"name":"rpt:f-131","factDimensions":{"xbrl:concept":"us-gaap:GeneralAndAdministrativeExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11067000","decimals":-3}]},{"name":"rpt:f-132","factDimensions":{"xbrl:concept":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-293000","decimals":-3}]},{"name":"rpt:f-133","factDimensions":{"xbrl:concept":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-435000","decimals":-3}]},{"name":"rpt:f-134","factDimensions":{"xbrl:concept":"us-gaap:OperatingCostsAndExpenses","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"52391000","decimals":-3}]},{"name":"rpt:f-135","factDimensions":{"xbrl:concept":"us-gaap:OperatingCostsAndExpenses","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"57511000","decimals":-3}]},{"name":"rpt:f-136","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4553000","decimals":-3}]},{"name":"rpt:f-137","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-7356000","decimals":-3}]},{"name":"rpt:f-138","factDimensions":{"xbrl:concept":"us-gaap:OtherNonoperatingIncomeExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"73000","decimals":-3}]},{"name":"rpt:f-139","factDimensions":{"xbrl:concept":"us-gaap:OtherNonoperatingIncomeExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"48000","decimals":-3}]},{"name":"rpt:f-140","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4626000","decimals":-3}]},{"name":"rpt:f-141","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-7308000","decimals":-3}]},{"name":"rpt:f-142","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-75000","decimals":-3}]},{"name":"rpt:f-143","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-32000","decimals":-3}]},{"name":"rpt:f-144","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4701000","decimals":-3}]},{"name":"rpt:f-145","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-7276000","decimals":-3}]},{"name":"rpt:f-146","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.34","decimals":2}]},{"name":"rpt:f-147","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.54","decimals":2}]},{"name":"rpt:f-148","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.33","decimals":2}]},{"name":"rpt:f-149","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.54","decimals":2}]},{"name":"rpt:f-150","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13659786","decimals":0}]},{"name":"rpt:f-151","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13547604","decimals":0}]},{"name":"rpt:f-152","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"14266781","decimals":0}]},{"name":"rpt:f-153","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13547604","decimals":0}]},{"name":"rpt:f-154","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"13558650"}]},{"name":"rpt:f-155","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"14000","decimals":-3}]},{"name":"rpt:f-156","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockCommonShares","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockCommonMember"},"factValues":[{"value":"14422"}]},{"name":"rpt:f-157","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockCommonMember"},"factValues":[{"value":"-74000","decimals":-3}]},{"name":"rpt:f-158","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"82013000","decimals":-3}]},{"name":"rpt:f-159","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-77317000","decimals":-3}]},{"name":"rpt:f-160","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4636000","decimals":-3}]},{"name":"rpt:f-161","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"1118000","decimals":-3}]},{"name":"rpt:f-162","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1118000","decimals":-3}]},{"name":"rpt:f-163","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesOther","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"155449"}]},{"name":"rpt:f-164","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueOther","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"253000","decimals":-3}]},{"name":"rpt:f-165","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueOther","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"253000","decimals":-3}]},{"name":"rpt:f-166","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockSharesAcquired","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockCommonMember"},"factValues":[{"value":"105911"}]},{"name":"rpt:f-167","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockValueAcquiredCostMethod","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockCommonMember"},"factValues":[{"value":"634000","decimals":-3}]},{"name":"rpt:f-168","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockValueAcquiredCostMethod","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"634000","decimals":-3}]},{"name":"rpt:f-169","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-7276000","decimals":-3}]},{"name":"rpt:f-170","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-7276000","decimals":-3}]},{"name":"rpt:f-171","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"13714099"}]},{"name":"rpt:f-172","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"14000","decimals":-3}]},{"name":"rpt:f-173","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockCommonShares","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockCommonMember"},"factValues":[{"value":"120333"}]},{"name":"rpt:f-174","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockCommonMember"},"factValues":[{"value":"-708000","decimals":-3}]},{"name":"rpt:f-175","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"83384000","decimals":-3}]},{"name":"rpt:f-176","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-84593000","decimals":-3}]},{"name":"rpt:f-177","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-1903000","decimals":-3}]},{"name":"rpt:f-178","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"654000","decimals":-3}]},{"name":"rpt:f-179","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"654000","decimals":-3}]},{"name":"rpt:f-180","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesOther","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"183404"}]},{"name":"rpt:f-181","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueOther","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"320000","decimals":-3}]},{"name":"rpt:f-182","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueOther","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"320000","decimals":-3}]},{"name":"rpt:f-183","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"4701000","decimals":-3}]},{"name":"rpt:f-184","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4701000","decimals":-3}]},{"name":"rpt:f-185","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"13897503"}]},{"name":"rpt:f-186","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"14000","decimals":-3}]},{"name":"rpt:f-187","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockCommonShares","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockCommonMember"},"factValues":[{"value":"120333"}]},{"name":"rpt:f-188","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockCommonMember"},"factValues":[{"value":"-708000","decimals":-3}]},{"name":"rpt:f-189","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"84358000","decimals":-3}]},{"name":"rpt:f-190","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-79892000","decimals":-3}]},{"name":"rpt:f-191","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3772000","decimals":-3}]},{"name":"rpt:f-192","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4701000","decimals":-3}]},{"name":"rpt:f-193","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-7276000","decimals":-3}]},{"name":"rpt:f-194","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensation","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"654000","decimals":-3}]},{"name":"rpt:f-195","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensation","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1118000","decimals":-3}]},{"name":"rpt:f-196","factDimensions":{"xbrl:concept":"us-gaap:DepreciationAndAmortization","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1640000","decimals":-3}]},{"name":"rpt:f-197","factDimensions":{"xbrl:concept":"us-gaap:DepreciationAndAmortization","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1867000","decimals":-3}]},{"name":"rpt:f-198","factDimensions":{"xbrl:concept":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-293000","decimals":-3}]},{"name":"rpt:f-199","factDimensions":{"xbrl:concept":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-435000","decimals":-3}]},{"name":"rpt:f-200","factDimensions":{"xbrl:concept":"csbr:IncreaseDecreaseInUncertainTaxPosition","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"181000","decimals":-3}]},{"name":"rpt:f-201","factDimensions":{"xbrl:concept":"csbr:IncreaseDecreaseInUncertainTaxPosition","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-202","factDimensions":{"xbrl:concept":"csbr:IncreaseDecreaseInOperatingLeaseRightOfUseAssets","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1172000","decimals":-3}]},{"name":"rpt:f-203","factDimensions":{"xbrl:concept":"csbr:IncreaseDecreaseInOperatingLeaseRightOfUseAssets","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1066000","decimals":-3}]},{"name":"rpt:f-204","factDimensions":{"xbrl:concept":"us-gaap:ProvisionForDoubtfulAccounts","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-272000","decimals":-3}]},{"name":"rpt:f-205","factDimensions":{"xbrl:concept":"us-gaap:ProvisionForDoubtfulAccounts","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"476000","decimals":-3}]},{"name":"rpt:f-206","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsReceivable","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1436000","decimals":-3}]},{"name":"rpt:f-207","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsReceivable","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1991000","decimals":-3}]},{"name":"rpt:f-208","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-144000","decimals":-3}]},{"name":"rpt:f-209","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"167000","decimals":-3}]},{"name":"rpt:f-210","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInOtherNoncurrentAssets","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-211","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInOtherNoncurrentAssets","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"169000","decimals":-3}]},{"name":"rpt:f-212","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsPayable","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-1749000","decimals":-3}]},{"name":"rpt:f-213","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsPayable","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"465000","decimals":-3}]},{"name":"rpt:f-214","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccruedLiabilities","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"395000","decimals":-3}]},{"name":"rpt:f-215","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccruedLiabilities","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-109000","decimals":-3}]},{"name":"rpt:f-216","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInOperatingLeaseLiability","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-1324000","decimals":-3}]},{"name":"rpt:f-217","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInOperatingLeaseLiability","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-1169000","decimals":-3}]},{"name":"rpt:f-218","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInContractWithCustomerLiability","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3349000","decimals":-3}]},{"name":"rpt:f-219","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInContractWithCustomerLiability","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-683000","decimals":-3}]},{"name":"rpt:f-220","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInOperatingActivities","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7386000","decimals":-3}]},{"name":"rpt:f-221","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInOperatingActivities","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-6137000","decimals":-3}]},{"name":"rpt:f-222","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"389000","decimals":-3}]},{"name":"rpt:f-223","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"836000","decimals":-3}]},{"name":"rpt:f-224","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInInvestingActivities","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-389000","decimals":-3}]},{"name":"rpt:f-225","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInInvestingActivities","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-836000","decimals":-3}]},{"name":"rpt:f-226","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromStockOptionsExercised","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"320000","decimals":-3}]},{"name":"rpt:f-227","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromStockOptionsExercised","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"253000","decimals":-3}]},{"name":"rpt:f-228","factDimensions":{"xbrl:concept":"us-gaap:PaymentsForRepurchaseOfCommonStock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-229","factDimensions":{"xbrl:concept":"us-gaap:PaymentsForRepurchaseOfCommonStock","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"634000","decimals":-3}]},{"name":"rpt:f-230","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeasePrincipalPayments","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"150000","decimals":-3}]},{"name":"rpt:f-231","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeasePrincipalPayments","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"146000","decimals":-3}]},{"name":"rpt:f-232","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInFinancingActivities","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"170000","decimals":-3}]},{"name":"rpt:f-233","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInFinancingActivities","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-527000","decimals":-3}]},{"name":"rpt:f-234","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7167000","decimals":-3}]},{"name":"rpt:f-235","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-7500000","decimals":-3}]},{"name":"rpt:f-236","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2618000","decimals":-3}]},{"name":"rpt:f-237","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10118000","decimals":-3}]},{"name":"rpt:f-238","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9785000","decimals":-3}]},{"name":"rpt:f-239","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2618000","decimals":-3}]},{"name":"rpt:f-240","factDimensions":{"xbrl:concept":"us-gaap:CapitalExpendituresIncurredButNotYetPaid","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"197000","decimals":-3}]},{"name":"rpt:f-241","factDimensions":{"xbrl:concept":"us-gaap:CapitalExpendituresIncurredButNotYetPaid","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-242","factDimensions":{"xbrl:concept":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Organization and Basis of Presentation<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Background</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">Champions Oncology, Inc. (the \u201cCompany\u201d), is engaged in drug discovery and development through data-driven research strategies and innovative pharmacology, biomarker and data platforms.  The Company\u2019s TumorGraft Technology Platform (\"the \"Platform\u201d), a comprehensive Bank of unique, well characterized \"Patient Derived XenoGrafts\" (PDX) models, is an approach to personalizing cancer care based upon the implantation of human tumors in immune-deficient mice. The Company provides a technology platform to pharmaceutical and biotechnology companies using proprietary TumorGraft studies, which the Company believes may be predictive of how drugs may perform in clinical settings. Utilizing the Platform, the Company offers multiple services to pharmaceutical and biotechnology companies seeking personalized approaches to drug development. By performing studies to predict the efficacy of oncology drugs, our Platform is designed to facilitate drug discovery with lower costs and increased speed of drug development as well as increased adoption of existing drugs.</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company has four operating subsidiaries: Champions Oncology (Israel), Limited, Champions Biotechnology U.K., Limited, Champions Oncology S.R.L., and Corellia AI, Inc. For the years ended April\u00a030, 2025 and 2024, there were no revenues earned by these subsidiaries.</span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Basis of Presentation</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div>The accompanying consolidated financial statements have been prepared in accordance with accounting principles generally accepted in the United States of America (\u201cGAAP\u201d). The Company operates in one reportable business segment.","language":"en-us"}]},{"name":"rpt:f-243","factDimensions":{"xbrl:concept":"csbr:NumberofOperatingSubsidiaries","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"csbr:subsidiary"},"factValues":[{"value":"4"}]},{"name":"rpt:f-244","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:CounterpartyNameAxis":"csbr:OperatingSubsidiariesMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-245","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:CounterpartyNameAxis":"csbr:OperatingSubsidiariesMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-246","factDimensions":{"xbrl:concept":"us-gaap:BasisOfAccountingPolicyPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Basis of Presentation</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div>The accompanying consolidated financial statements have been prepared in accordance with accounting principles generally accepted in the United States of America (\u201cGAAP\u201d). The Company operates in one reportable business segment.","language":"en-us"}]},{"name":"rpt:f-247","factDimensions":{"xbrl:concept":"us-gaap:NumberOfReportableSegments","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"csbr:segment"},"factValues":[{"value":"1"}]},{"name":"rpt:f-248","factDimensions":{"xbrl:concept":"us-gaap:SignificantAccountingPoliciesTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Summary of Significant Accounting Policies<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Principles of Consolidation</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.</span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Foreign Currency</span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company\u2019s foreign subsidiaries' functional currency is the U.S. dollar. Transaction gains and losses are recognized in earnings. The Company is subject to foreign exchange rate fluctuations in connection with the Company\u2019s international operations. </span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Use of Estimates</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The preparation of consolidated financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosures of contingent assets and liabilities at the date of the consolidated financial statements and the reported amounts of revenues and expenses during the reporting period.   We base our estimates on historical experience, our observance of trends in particular areas and information or valuations and various other assumptions that we believe to be reasonable under the circumstances and which form the basis for making judgments about the carrying value of assets and liabilities that may not be readily apparent from other sources.\u00a0\u00a0Actual amounts could differ significantly from amounts previously estimated.</span></div><div><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:112%\">Cash and Cash Equivalents</span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company considers only those investments which are highly liquid, readily convertible to cash, and with original maturities of three months or less to be cash equivalents. As of\u00a0April 30, 2025\u00a0and 2024, the Company had cash balances of $9.8 million and $2.6 million, respectively, and no cash equivalents.  The Company maintains its cash balances in three major financial institutions which exceed federally insured limits.  The Company regularly monitors the financial stability of these financial institutions and believes that it is not exposed to any significant credit risk in its cash. If any liquidity and/or financial stability concerns arise with respect to banks and financial institutions, either nationally or in specific regions, the Company's ability to access cash or enter into new financing arrangements may be threatened, which could have a material adverse effect on its business, financial condition and results of operations.</span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Liquidity</span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">    Our liquidity needs have typically arisen from the funding of our research and development programs and the launch of new products, working capital requirements, and other strategic initiatives. In the past, we have met these cash requirements through our cash on hand, working capital management, proceeds from certain private placements and public offerings of our securities, and sales of products and services. For the year ended April 30, 2025, the Company had net income of approximately $4.7 million, an accumulated deficit of approximately $79.9 million, negative working capital of $1.5 million and cash of $9.8 million. Despite the negative working capital, we believe that our cash on hand, together with expected cash flows from operations, are adequate to fund operations through at least August 2026. Should the Company be required to raise additional capital, there can be no assurance that management would be successful in raising such capital on terms acceptable to us, if at all.</span></div><div><span><br/></span></div><div><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Fair Value</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The carrying value of cash, accounts receivable, prepaid expenses, and other current assets, accounts payable, and accrued liabilities approximate their fair value based on the liquidity or the short-term maturities of these instruments. The fair value hierarchy promulgated by GAAP consists of three levels:</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"padding-left:18pt;text-align:justify;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt\">Level one</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"> \u2014 Quoted market prices in active markets for identical assets or liabilities;</span></div><div style=\"padding-left:18pt;text-align:justify;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt\">Level two</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"> \u2014 Inputs other than level one inputs that are either directly or indirectly observable; and</span></div><div style=\"padding-left:18pt;text-align:justify;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt\">Level three</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"> \u2014 Unobservable inputs developed using estimates and assumptions, which are developed by the reporting entity and reflect those assumptions that a market participant would use.</span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Determining which category an asset or liability falls within the hierarchy requires significant judgment. The Company evaluates its hierarchy disclosures each quarter. The Company has no assets or liabilities that are measured at fair value on a recurring and/or non-recurring basis during the years ended April\u00a030, 2025 and 2024.</span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Property and Equipment</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Property and equipment is recorded at cost and primarily consists of laboratory equipment, furniture and fixtures, computer hardware and software, leasehold improvements, and internally developed software. Assets in progress include equipment or software not yet placed in service. Depreciation and amortization is calculated on a straight-line basis over the estimated useful lives of the various assets ranging from <span style=\"-sec-ix-hidden:f-270\">three</span> to seven years. Refer to Footnote 4, \"Property and Equipment\" for a detailed discussion. </span></div><div><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Leases</span></div><div><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"> The Company accounts for its leases under Financial Accounting Standards Board (\"FASB\") ASC Topic 842, Leases (\"ASC 842\"). Under this guidance, arrangements meeting the definition of a lease are classified as operating or financing leases and are recorded on the consolidated balance sheet as both a right-of-use (\"ROU\") asset and lease liability, calculated by discounting fixed lease payments over the lease term at the rate implicit in the lease or the Company\u2019s incremental borrowing rate. As the Company's leases do not provide an implicit rate, the Company uses an incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. Lease liabilities are increased by interest and reduced by payments each period, and the right-of-use asset is amortized over the lease term. For operating leases, interest on the lease liability and the amortization of the right-of-use asset result in straight-line rent expense over the lease term. </span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">   Amortization expense for the ROU asset associated with its finance leases is recognized on a straight-line basis over the term of the lease and interest expense associated with its finance lease is recognized on the balance of the lease liability using the effective interest method based on the estimated incremental borrowing rate.</span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Impairment of Long-Lived Assets</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Impairment losses are to be recognized when the carrying amount of a long-lived asset is not recoverable or exceeds its fair value.\u00a0\u00a0The Company evaluates its long-lived assets for impairment whenever events or changes in circumstances indicate that a carrying value may not be recoverable.\u00a0\u00a0The Company uses estimates of future cash flows over the remaining useful life of a long- lived asset or asset group to determine the recoverability of the asset.\u00a0\u00a0These estimates only include the net cash flows directly associated with, and that are expected to arise as a direct result of, the use and eventual disposition of the asset or asset </span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">group.\u00a0\u00a0The Company did not recognize any impairment losses for the Company\u2019s long-lived assets for the years ended April\u00a030, 2025 and 2024 . Refer to Note 4, \"Property and Equipment\". </span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Goodwill</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Goodwill represents the excess of the purchase price over the fair value of the net tangible and identifiable intangible assets acquired in a business combination. The Company evaluates the carrying value of goodwill annually in connection with the annual budgeting and forecast process and also between annual evaluations if events occur or circumstances change that would more likely than not reduce the fair value of the reporting unit to which goodwill was allocated to below its carrying amount. Such circumstances could include, but are not limited to: (1) a significant adverse change in legal factors, market conditions, or in business climate, (2) unanticipated competition, or (3) an adverse action or assessment by a regulator. When evaluating goodwill for impairment, the Company may first perform an assessment qualitatively whether it is more likely than not that a reporting unit\u2019s carrying amount exceeds its fair value, referred to as a \u201cstep zero\u201d approach. Subsequently (if necessary after step zero), an entity should perform its goodwill impairment test by comparing the fair value of a reporting unit with its carrying value. Under FASB's Accounting Standards Update (\"ASU\") 2014-02, Topic 350, \"Intangibles\u2014Goodwill and Other\" goodwill impairment is measured as the excess of the carrying amount of the reporting unit over its fair value. </span></div><div style=\"text-align:justify;text-indent:36pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Judgments regarding the existence of impairment indicators are based on legal factors, market conditions and operational performance of the businesses.\u00a0\u00a0Future events, including but not limited to continued declines in economic activity, loss of contracts or a significant number of customers, or a rapid increase in costs or capital expenditures, could cause the Company to conclude that impairment indicators exist and that goodwill is impaired.\u00a0For the years ended April\u00a030, 2025 and 2024, the Company's annual assessment did not result in any impairment indicators. </span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Cost of Oncology Revenue</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Cost of oncology revenue consists of direct costs related to laboratory supplies, mice purchases, and maintenance costs for studies completed internally as well as charges from Contract Research Organizations for studies handled externally. Indirect costs include salaries and other payroll related costs of compensation for personnel directly engaged in providing TOS products and services. All costs of performing studies in-house are expensed as incurred. All costs of performing studies from external sources, are expensed when incurred.</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Research and Development</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Research and development costs represent both costs incurred internally for research and development activities, including personnel costs, mice purchases, and maintenance, as well as costs incurred externally to facilitate research activities, such as tumor tissue procurement and characterization expenses.\u00a0\u00a0All research and development costs are expensed as incurred.\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Sales and Marketing</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Sales and marketing expenses represent costs incurred to promote the Company\u2019s products offered, including salaries, benefits and related costs of our sales and marketing personnel, and represent costs of advertising and other selling and marketing expenses. All sales and marketing costs, including advertising costs, are expensed as incurred.</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Earnings Per Share</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Basic net income or loss per share is computed by dividing the net income or loss for the period by the weighted-average number of shares of common stock outstanding during the period. Diluted net income per share is computed by dividing the net income for the period by the weighted-average number of shares of common stock plus dilutive potential common stock considered outstanding during the period. Such dilutive shares consist of incremental shares that would be issued upon exercise of the Company\u2019s common stock options. Dilutive earnings per share is not presented when it would be antidilutive to do so.</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Stock-based Payments</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company typically recognizes expense for stock-based payments based on the fair value of awards on the date of grant.\u00a0\u00a0The Company uses the Black-Scholes option pricing model to estimate fair value.\u00a0\u00a0The Black-Scholes option valuation model was developed for use in estimating the fair value of short-traded options that have no vesting restrictions and are fully transferable.\u00a0\u00a0The option pricing model requires the Company to estimate certain key assumptions such as expected life, volatility, risk free interest rates and dividend yield to determine the fair value of stock-based awards.\u00a0\u00a0These assumptions are based on historical information and management judgment.\u00a0\u00a0The risk-free interest rate used is based on the United States </span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">treasury security rate with a term consistent with the expected term of the award at the time of the grant.\u00a0Since the Company has limited option exercise history, it has generally elected to estimate the expected life of an award based upon the Securities and Exchange Commission-approved \u201csimplified method\u201d noted under the provisions of Staff Accounting Bulletin No. 107 with the continued use of this method extended under the provisions of Staff Accounting Bulletin No. 110. \u00a0Estimated volatility is based upon the historical volatility of the Company's common stock.\u00a0\u00a0The Company does not anticipate paying a dividend, and therefore, no expected dividend yield was used. Forfeitures are accounted for as they occur. </span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company expenses stock-based payments over the period that the awards are expected to vest.\u00a0\u00a0In the event of forfeitures, compensation expense is adjusted.\u00a0\u00a0The Company expenses modification charges in the period of modification and, if required, over the remaining period the awards are expected to vest. The Company will report cash flows resulting from tax deductions in excess of the compensation cost recognized from those options (excess tax benefits) as financing cash flows, if they should arise.</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Income Taxes</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">    Deferred income taxes have been provided to show the effect of temporary differences between the recognition of expenses for financial and income tax reporting purposes and between the tax basis of assets and liabilities, and their reported amounts in the consolidated financial statements.  In assessing the realizability of deferred tax assets, the Company assesses the likelihood that deferred tax assets will be recovered through tax planning strategies or from future taxable income, and to the extent that recovery is not likely or there is insufficient operating history, a valuation allowance is established.  The Company adjusts the valuation allowance in the period management determines it is more likely than not that net deferred tax assets will or will not be realized.  Changes in valuation allowances from period to period are included in the tax provision in the period of change. As of  April\u00a030, 2025 and 2024, the Company provided a valuation allowance for all net deferred tax assets, as recovery is not more likely than not based on an insufficient history of earnings.</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">The Company reflects tax benefits only if it is more likely than not that we will be able to sustain the tax position, based on its technical merits.  If a tax benefit meets this criterion, it is measured and recognized based on the largest amount of benefit that is cumulatively greater than 50% likely to be realized.  As of  April\u00a030, 2025 and 2024, the Company has recorded $0 and $181,000, respectively, of liabilities related to uncertain tax positions relative to one of its foreign operations.</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">The Company\u2019s practice is to recognize interest and/or penalties related to income tax matters in income tax expense. The Company accrued $0 for any additional interest and or penalties on the Company\u2019s consolidated statements of operations for the years ended  April\u00a030, 2025 and 2024, respectively, as the Company believes its recorded liability for uncertain tax positions, if applicable, covers any potential interest and/or penalties. The Company reversed the liability for uncertain tax positions as of April 30, 2025 due to the expiration of the statute of limitations. The Company does not anticipate any significant unrecognized tax benefits to be recorded during the next 12 months. For the years ended  April\u00a030, 2025 and 2024, the Company recognized a benefit for income taxes of $75,000 and $32,000, respectively. These amounts are mainly attributable to taxable income earned in Israel and Italy relating to transfer pricing, U.S. state net operating loss limitations, a $181,000 reversal of an uncertain tax liability in Israel in fiscal 2025, and a return to provision adjustment benefit in Israel of $95,000 in fiscal 2024.</span></div><div><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Revenue Recognition</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company recognizes revenue in accordance with ASC 606, \"Revenue from Contracts with Customers\".  The objective of the standard is to establish a single comprehensive revenue recognition model that is designed to create greater comparability of financial statements across industries and jurisdictions. Under this standard, companies recognize revenue to depict the transfer of goods or services to customers in amounts that reflect the consideration to which the Company expects to be entitled in exchange for those goods or services. </span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">All revenue is generated from contracts with customers. The Company recognizes revenue when control of these services is transferred to the customer in an amount, referred to as the transaction price, that reflects the consideration to which the Company is expected to be entitled in exchange for those services. The Company determines revenue recognition utilizing the following five steps: (1) identification of the contract with a customer, (2) identification of the performance obligations in the contract (promised goods or services that are distinct), (3) determination of the transaction price, (4) allocation of the transaction price to the performance obligations, and (5) recognition of revenue when, or as, the Company transfers control of the product or service for each performance obligation. The Company records revenues net of any tax assessments by governmental authorities, such as value added taxes, that are imposed on and concurrent with specific revenue generating transactions. </span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The majority of the Company's revenue arrangements are service contracts that are completed within a year or less. There are a few contracts that range in duration between 1 and 3 years. Substantially all of the Company's performance obligations, and associated revenue, are transferred to the customer over time. Most of the Company's contracts can be terminated by the customer without cause. In the event of termination, the Company's contracts provide that the customer pay the Company for services rendered through the termination date. The Company generally receives compensation based on a predetermined invoicing schedule relating to specific milestones for that contract. </span></div><div style=\"text-align:justify;text-indent:18pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Amendments to contracts are common. The Company evaluates each amendment which meets the criteria of a contract modification under ASC 606. Each modification is further evaluated to determine whether the contract modification should be accounted for as a separate contract or as a continuation of the original agreement. </span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">      The Company accounts for amendments as a separate contract as they meet the criteria under ASC 606-10-25-12.</span></div><div style=\"text-align:justify\"><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline\">Pharmacology Study and Other Services</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company generally enters into contracts with customers to provide oncology services with payments based on fixed-fee arrangements. At contract inception, the Company assesses the services promised in the contracts with customers to identify the performance obligations in the arrangement. The Company's fixed-fee arrangements for oncology services are considered a single performance obligation because the Company provides a highly-integrated service.</span></div><div style=\"text-indent:18pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company recognizes revenue over time using a progress-based input method since there is no single output measure that would fairly depict the transfer of control over the life of the performance obligation. Revenue is recognized for the single performance obligation over time due to the Company's right to payment for work performed to date and the performance does not create an asset with an alternative use. The Company recognizes revenue as portions of the overall performance obligation are completed as this best depicts the progress toward the complete satisfaction of the performance obligation.</span></div><div style=\"text-align:justify;text-indent:18pt\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline\">License Revenue</span></div><div><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">       The Company also enters into contracts to provide access to certain Patient Derived Xenograft (\"PDX\") model data via a license agreement with payments based on a fixed-fee arrangement. The Company's current data licenses contain a single performance obligation of delivering access to the data license. The Company recognizes this license revenue up-front, at a point in time, when the performance obligation is satisfied with the delivery of the data.</span></div><div style=\"text-indent:18pt\"><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Incremental Costs of Obtaining a Contract (Sales Commissions)</span></div><div><span><br/></span></div><div style=\"text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Under ASC 606, the costs of obtaining a contract can be expensed immediately, rather than capitalized and amortized, if the amortization period is one year or shorter.  Sales commissions for the Company represent contract costs with a term of one year or less.  Therefore, under ASC 606, the Company elected the practical expedient to expense these costs as incurred.\u00a0\u00a0\u00a0\u00a0</span></div><div><span><br/></span></div><div><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Accounts Receivables, Unbilled Services and Deferred Revenue</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In general, billings and payments are established by contractual provisions including predetermined payment schedules, which may or may not correspond to the timing of the transfer of control of the Company's services under the contract. In general, the Company's intention in its invoicing (payment terms) is to maintain cash neutrality over the life of the contract. Upfront payments, when they occur, are intended to cover certain expenses the Company incurs at the beginning of the contract. Neither the Company nor its customers view such upfront payments and contracted payment schedules as a means of financing. Unbilled services primarily arise when the revenue recognized exceeds the amount billed to the customer.  Such situations occur due to divergences between revenue recognition and the invoicing milestones which are based on predetermined payment terms.   </span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred revenue consists of unearned payments received in excess of revenue recognized. As the contracted services are subsequently performed and the associated revenue recognized, the deferred revenue balance is reduced by the amount of the revenue recognized during the period. Deferred revenue is classified as a current liability on the consolidated balance sheet as the Company expects to recognize the associated revenue in less than one year.</span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Segment Reporting </span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Operating segments are identified as components of an enterprise for which separate discrete financial information is available for evaluation by the Company\u2019s chief operating decision maker (\u201cCODM\u201d) and relied upon when making decisions regarding resource allocation and assessing performance. When evaluating the Company\u2019s financial performance, the CODM reviews total revenues, total expenses, and expenses by functional classification, using this information to make decisions on a Company-wide basis.</span></div><div><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">       The Company currently operates in one reportable segment pertaining to oncology services. The CODM for the Company is the Chief Executive Officer (the \u201cCEO\u201d). The Company\u2019s CEO reviews operating results on an aggregate basis and manages the Company\u2019s operations on a consolidated basis for the purpose of evaluating financial performance and allocating resources. Accordingly, the Company has determined that it has a single reportable and operating segment structure. The CEO uses net income or loss as well as revenue results to allocate resources in the annual budgeting and forecasting process and also uses that measure as a basis for evaluating financial performance regularly by comparing actual results with established budgets and forecasts. All significant expense categories are presented on our Consolidated Statements of Operations. The measure of segment assets is reported on the Consolidated Balance Sheet as total assets. Segment revenues and expenses are identical to that disclosed in the accompanying Consolidated Statements of Operations.</span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Recent Accounting Pronouncements</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In November 2023, the FASB issued Accounting Standards Update (\"ASU\") 2023-07, \u201cSegment Reporting\u201d (Topic 280): Improvements to Reportable Segment Disclosures, which is intended to improve reportable segment disclosure requirements, primarily through enhanced disclosures about significant expenses. The amendments require entities to disclose significant segment expenses that are regularly provided to the chief operating decision maker (\u201cCODM\u201d) and included within segment profit and loss, as well as the title and position of the CODM. The Company has adopted this standard effective May 1, 2024, noting that it did not have a material impact on its consolidated financial statements or related disclosures.</span></div><div style=\"text-align:justify;text-indent:36pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In December 2023, the FASB issued ASU 2023-09, \u201cImprovements to Tax Disclosures\u201d (Topic 740). The new guidance is intended to enhance the transparency and decision usefulness of income tax disclosures through changes to the rate reconciliation and the income taxes paid information disclosed. The ASU is effective retrospectively for fiscal years beginning after December 15, 2025, with early adoption permitted. The Company is in the process of completing the assessment of the impact that the adoption of this ASU will have on its financial statements, which is not expected to be material.</span></div><div style=\"text-align:justify;text-indent:13.5pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:13.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In November 2024 and January 2025, the FASB issued ASU 2024-03, \"Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures\" (Subtopic 220-40) \"Disaggregation of Income Statement Expenses\" and ASU 2025-01 \"Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures\" (Subtopic 220-40): Clarifying the Effective Date\". The new guidance is intended to enhance transparency and disclosures by requiring public business entities to disclose additional information about specific expense categories in the notes to financial statements at interim and annual reporting periods. The ASU is effective for the first annual reporting periods after December 15, 2026, and interim periods within annual reporting periods beginning after December 15, 2027, with early adoption permitted. The Company is in the process of evaluating the impact that the adoption of this ASU will have on its financial statements and related disclosures, which is not expected to be material.</span></div>","language":"en-us"}]},{"name":"rpt:f-249","factDimensions":{"xbrl:concept":"us-gaap:ConsolidationPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Principles of Consolidation</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.</span></div>","language":"en-us"}]},{"name":"rpt:f-250","factDimensions":{"xbrl:concept":"us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Foreign Currency</span></div>The Company\u2019s foreign subsidiaries' functional currency is the U.S. dollar. Transaction gains and losses are recognized in earnings. The Company is subject to foreign exchange rate fluctuations in connection with the Company\u2019s international operations.","language":"en-us"}]},{"name":"rpt:f-251","factDimensions":{"xbrl:concept":"us-gaap:UseOfEstimates","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Use of Estimates</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The preparation of consolidated financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosures of contingent assets and liabilities at the date of the consolidated financial statements and the reported amounts of revenues and expenses during the reporting period.   We base our estimates on historical experience, our observance of trends in particular areas and information or valuations and various other assumptions that we believe to be reasonable under the circumstances and which form the basis for making judgments about the carrying value of assets and liabilities that may not be readily apparent from other sources.\u00a0\u00a0Actual amounts could differ significantly from amounts previously estimated.</span></div>","language":"en-us"}]},{"name":"rpt:f-252","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:112%\">Cash and Cash Equivalents</span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">\u00a0</span></div>The Company considers only those investments which are highly liquid, readily convertible to cash, and with original maturities of three months or less to be cash equivalents.","language":"en-us"}]},{"name":"rpt:f-253","factDimensions":{"xbrl:concept":"us-gaap:Cash","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9800000","decimals":-5}]},{"name":"rpt:f-254","factDimensions":{"xbrl:concept":"us-gaap:Cash","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2600000","decimals":-5}]},{"name":"rpt:f-255","factDimensions":{"xbrl:concept":"us-gaap:CashEquivalentsAtCarryingValue","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-256","factDimensions":{"xbrl:concept":"us-gaap:CashEquivalentsAtCarryingValue","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-257","factDimensions":{"xbrl:concept":"csbr:NumberOfMajorInstitutionsWithCashBalances","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"csbr:institution"},"factValues":[{"value":"3"}]},{"name":"rpt:f-258","factDimensions":{"xbrl:concept":"csbr:NumberOfMajorInstitutionsWithCashBalances","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"csbr:institution"},"factValues":[{"value":"3"}]},{"name":"rpt:f-259","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4700000","decimals":-5}]},{"name":"rpt:f-260","factDimensions":{"xbrl:concept":"us-gaap:RetainedEarningsAccumulatedDeficit","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-79900000","decimals":-5}]},{"name":"rpt:f-261","factDimensions":{"xbrl:concept":"csbr:WorkingCapitalDeficit","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1500000","decimals":-5}]},{"name":"rpt:f-262","factDimensions":{"xbrl:concept":"us-gaap:Cash","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9800000","decimals":-5}]},{"name":"rpt:f-263","factDimensions":{"xbrl:concept":"us-gaap:FairValueMeasurementPolicyPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Fair Value</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The carrying value of cash, accounts receivable, prepaid expenses, and other current assets, accounts payable, and accrued liabilities approximate their fair value based on the liquidity or the short-term maturities of these instruments. The fair value hierarchy promulgated by GAAP consists of three levels:</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"padding-left:18pt;text-align:justify;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt\">Level one</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"> \u2014 Quoted market prices in active markets for identical assets or liabilities;</span></div><div style=\"padding-left:18pt;text-align:justify;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt\">Level two</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"> \u2014 Inputs other than level one inputs that are either directly or indirectly observable; and</span></div><div style=\"padding-left:18pt;text-align:justify;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt\">Level three</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"> \u2014 Unobservable inputs developed using estimates and assumptions, which are developed by the reporting entity and reflect those assumptions that a market participant would use.</span></div>Determining which category an asset or liability falls within the hierarchy requires significant judgment. The Company evaluates its hierarchy disclosures each quarter.","language":"en-us"}]},{"name":"rpt:f-264","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesFairValueDisclosure","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:FairValueByMeasurementFrequencyAxis":"us-gaap:FairValueMeasurementsNonrecurringMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-265","factDimensions":{"xbrl:concept":"us-gaap:AssetsFairValueDisclosure","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:FairValueByMeasurementFrequencyAxis":"us-gaap:FairValueMeasurementsNonrecurringMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-266","factDimensions":{"xbrl:concept":"us-gaap:AssetsFairValueDisclosure","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:FairValueByMeasurementFrequencyAxis":"us-gaap:FairValueMeasurementsRecurringMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-267","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesFairValueDisclosure","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:FairValueByMeasurementFrequencyAxis":"us-gaap:FairValueMeasurementsRecurringMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-268","factDimensions":{"xbrl:concept":"us-gaap:AssetsFairValueDisclosure","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:FairValueByMeasurementFrequencyAxis":"us-gaap:FairValueMeasurementsRecurringMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-269","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesFairValueDisclosure","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:FairValueByMeasurementFrequencyAxis":"us-gaap:FairValueMeasurementsNonrecurringMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-270","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesFairValueDisclosure","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:FairValueByMeasurementFrequencyAxis":"us-gaap:FairValueMeasurementsRecurringMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-271","factDimensions":{"xbrl:concept":"us-gaap:AssetsFairValueDisclosure","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:FairValueByMeasurementFrequencyAxis":"us-gaap:FairValueMeasurementsNonrecurringMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-272","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Property and Equipment</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div>Property and equipment is recorded at cost and primarily consists of laboratory equipment, furniture and fixtures, computer hardware and software, leasehold improvements, and internally developed software. Assets in progress include equipment or software not yet placed in service. Depreciation and amortization is calculated on a straight-line basis over the estimated useful lives of the various assets ranging from <span style=\"-sec-ix-hidden:f-270\">three</span> to seven years.","language":"en-us"}]},{"name":"rpt:f-273","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentUsefulLife","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"P7Y"}]},{"name":"rpt:f-274","factDimensions":{"xbrl:concept":"us-gaap:LesseeLeasesPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Leases</span></div><div><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"> The Company accounts for its leases under Financial Accounting Standards Board (\"FASB\") ASC Topic 842, Leases (\"ASC 842\"). Under this guidance, arrangements meeting the definition of a lease are classified as operating or financing leases and are recorded on the consolidated balance sheet as both a right-of-use (\"ROU\") asset and lease liability, calculated by discounting fixed lease payments over the lease term at the rate implicit in the lease or the Company\u2019s incremental borrowing rate. As the Company's leases do not provide an implicit rate, the Company uses an incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. Lease liabilities are increased by interest and reduced by payments each period, and the right-of-use asset is amortized over the lease term. For operating leases, interest on the lease liability and the amortization of the right-of-use asset result in straight-line rent expense over the lease term. </span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">   Amortization expense for the ROU asset associated with its finance leases is recognized on a straight-line basis over the term of the lease and interest expense associated with its finance lease is recognized on the balance of the lease liability using the effective interest method based on the estimated incremental borrowing rate.</span></div>","language":"en-us"}]},{"name":"rpt:f-275","factDimensions":{"xbrl:concept":"us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Impairment of Long-Lived Assets</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Impairment losses are to be recognized when the carrying amount of a long-lived asset is not recoverable or exceeds its fair value.\u00a0\u00a0The Company evaluates its long-lived assets for impairment whenever events or changes in circumstances indicate that a carrying value may not be recoverable.\u00a0\u00a0The Company uses estimates of future cash flows over the remaining useful life of a long- lived asset or asset group to determine the recoverability of the asset.\u00a0\u00a0These estimates only include the net cash flows directly associated with, and that are expected to arise as a direct result of, the use and eventual disposition of the asset or asset </span></div>group.","language":"en-us"}]},{"name":"rpt:f-276","factDimensions":{"xbrl:concept":"us-gaap:ImpairmentOfLongLivedAssetsHeldForUse","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-277","factDimensions":{"xbrl:concept":"us-gaap:ImpairmentOfLongLivedAssetsHeldForUse","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-278","factDimensions":{"xbrl:concept":"us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Goodwill</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Goodwill represents the excess of the purchase price over the fair value of the net tangible and identifiable intangible assets acquired in a business combination. The Company evaluates the carrying value of goodwill annually in connection with the annual budgeting and forecast process and also between annual evaluations if events occur or circumstances change that would more likely than not reduce the fair value of the reporting unit to which goodwill was allocated to below its carrying amount. Such circumstances could include, but are not limited to: (1) a significant adverse change in legal factors, market conditions, or in business climate, (2) unanticipated competition, or (3) an adverse action or assessment by a regulator. When evaluating goodwill for impairment, the Company may first perform an assessment qualitatively whether it is more likely than not that a reporting unit\u2019s carrying amount exceeds its fair value, referred to as a \u201cstep zero\u201d approach. Subsequently (if necessary after step zero), an entity should perform its goodwill impairment test by comparing the fair value of a reporting unit with its carrying value. Under FASB's Accounting Standards Update (\"ASU\") 2014-02, Topic 350, \"Intangibles\u2014Goodwill and Other\" goodwill impairment is measured as the excess of the carrying amount of the reporting unit over its fair value. </span></div>Judgments regarding the existence of impairment indicators are based on legal factors, market conditions and operational performance of the businesses.\u00a0\u00a0Future events, including but not limited to continued declines in economic activity, loss of contracts or a significant number of customers, or a rapid increase in costs or capital expenditures, could cause the Company to conclude that impairment indicators exist and that goodwill is impaired.","language":"en-us"}]},{"name":"rpt:f-279","factDimensions":{"xbrl:concept":"us-gaap:GoodwillImpairmentLoss","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-280","factDimensions":{"xbrl:concept":"us-gaap:GoodwillImpairmentLoss","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-281","factDimensions":{"xbrl:concept":"us-gaap:CostOfSalesPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Cost of Oncology Revenue</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Cost of oncology revenue consists of direct costs related to laboratory supplies, mice purchases, and maintenance costs for studies completed internally as well as charges from Contract Research Organizations for studies handled externally. Indirect costs include salaries and other payroll related costs of compensation for personnel directly engaged in providing TOS products and services. All costs of performing studies in-house are expensed as incurred. All costs of performing studies from external sources, are expensed when incurred.</span></div>","language":"en-us"}]},{"name":"rpt:f-282","factDimensions":{"xbrl:concept":"us-gaap:ResearchAndDevelopmentExpensePolicy","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Research and Development</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div>Research and development costs represent both costs incurred internally for research and development activities, including personnel costs, mice purchases, and maintenance, as well as costs incurred externally to facilitate research activities, such as tumor tissue procurement and characterization expenses.\u00a0\u00a0All research and development costs are expensed as incurred.","language":"en-us"}]},{"name":"rpt:f-283","factDimensions":{"xbrl:concept":"csbr:SalesAndMarketingExpensePolicyPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Sales and Marketing</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Sales and marketing expenses represent costs incurred to promote the Company\u2019s products offered, including salaries, benefits and related costs of our sales and marketing personnel, and represent costs of advertising and other selling and marketing expenses. All sales and marketing costs, including advertising costs, are expensed as incurred.</span></div>","language":"en-us"}]},{"name":"rpt:f-284","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerSharePolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Earnings Per Share</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Basic net income or loss per share is computed by dividing the net income or loss for the period by the weighted-average number of shares of common stock outstanding during the period. Diluted net income per share is computed by dividing the net income for the period by the weighted-average number of shares of common stock plus dilutive potential common stock considered outstanding during the period. Such dilutive shares consist of incremental shares that would be issued upon exercise of the Company\u2019s common stock options. Dilutive earnings per share is not presented when it would be antidilutive to do so.</span></div>","language":"en-us"}]},{"name":"rpt:f-285","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Stock-based Payments</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company typically recognizes expense for stock-based payments based on the fair value of awards on the date of grant.\u00a0\u00a0The Company uses the Black-Scholes option pricing model to estimate fair value.\u00a0\u00a0The Black-Scholes option valuation model was developed for use in estimating the fair value of short-traded options that have no vesting restrictions and are fully transferable.\u00a0\u00a0The option pricing model requires the Company to estimate certain key assumptions such as expected life, volatility, risk free interest rates and dividend yield to determine the fair value of stock-based awards.\u00a0\u00a0These assumptions are based on historical information and management judgment.\u00a0\u00a0The risk-free interest rate used is based on the United States </span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">treasury security rate with a term consistent with the expected term of the award at the time of the grant.\u00a0Since the Company has limited option exercise history, it has generally elected to estimate the expected life of an award based upon the Securities and Exchange Commission-approved \u201csimplified method\u201d noted under the provisions of Staff Accounting Bulletin No. 107 with the continued use of this method extended under the provisions of Staff Accounting Bulletin No. 110. \u00a0Estimated volatility is based upon the historical volatility of the Company's common stock.\u00a0\u00a0The Company does not anticipate paying a dividend, and therefore, no expected dividend yield was used. Forfeitures are accounted for as they occur. </span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company expenses stock-based payments over the period that the awards are expected to vest.\u00a0\u00a0In the event of forfeitures, compensation expense is adjusted.\u00a0\u00a0The Company expenses modification charges in the period of modification and, if required, over the remaining period the awards are expected to vest. The Company will report cash flows resulting from tax deductions in excess of the compensation cost recognized from those options (excess tax benefits) as financing cash flows, if they should arise.</span></div>","language":"en-us"}]},{"name":"rpt:f-286","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Income Taxes</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">    Deferred income taxes have been provided to show the effect of temporary differences between the recognition of expenses for financial and income tax reporting purposes and between the tax basis of assets and liabilities, and their reported amounts in the consolidated financial statements.  In assessing the realizability of deferred tax assets, the Company assesses the likelihood that deferred tax assets will be recovered through tax planning strategies or from future taxable income, and to the extent that recovery is not likely or there is insufficient operating history, a valuation allowance is established.  The Company adjusts the valuation allowance in the period management determines it is more likely than not that net deferred tax assets will or will not be realized.  Changes in valuation allowances from period to period are included in the tax provision in the period of change. As of  April\u00a030, 2025 and 2024, the Company provided a valuation allowance for all net deferred tax assets, as recovery is not more likely than not based on an insufficient history of earnings.</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">The Company reflects tax benefits only if it is more likely than not that we will be able to sustain the tax position, based on its technical merits.  If a tax benefit meets this criterion, it is measured and recognized based on the largest amount of benefit that is cumulatively greater than 50% likely to be realized.  As of  April\u00a030, 2025 and 2024, the Company has recorded $0 and $181,000, respectively, of liabilities related to uncertain tax positions relative to one of its foreign operations.</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">The Company\u2019s practice is to recognize interest and/or penalties related to income tax matters in income tax expense. The Company accrued $0 for any additional interest and or penalties on the Company\u2019s consolidated statements of operations for the years ended  April\u00a030, 2025 and 2024, respectively, as the Company believes its recorded liability for uncertain tax positions, if applicable, covers any potential interest and/or penalties. The Company reversed the liability for uncertain tax positions as of April 30, 2025 due to the expiration of the statute of limitations. The Company does not anticipate any significant unrecognized tax benefits to be recorded during the next 12 months. For the years ended  April\u00a030, 2025 and 2024, the Company recognized a benefit for income taxes of $75,000 and $32,000, respectively. These amounts are mainly attributable to taxable income earned in Israel and Italy relating to transfer pricing, U.S. state net operating loss limitations, a $181,000 reversal of an uncertain tax liability in Israel in fiscal 2025, and a return to provision adjustment benefit in Israel of $95,000 in fiscal 2024.</span></div>","language":"en-us"}]},{"name":"rpt:f-287","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-288","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"181000","decimals":-3}]},{"name":"rpt:f-289","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExaminationPenaltiesAndInterestExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-290","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExaminationPenaltiesAndInterestExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-291","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-75000","decimals":-3}]},{"name":"rpt:f-292","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-32000","decimals":-3}]},{"name":"rpt:f-293","factDimensions":{"xbrl:concept":"us-gaap:TaxAdjustmentsSettlementsAndUnusualProvisions","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"181000","decimals":-3}]},{"name":"rpt:f-294","factDimensions":{"xbrl:concept":"us-gaap:TaxAdjustmentsSettlementsAndUnusualProvisions","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"95000","decimals":-3}]},{"name":"rpt:f-295","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Revenue Recognition</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company recognizes revenue in accordance with ASC 606, \"Revenue from Contracts with Customers\".  The objective of the standard is to establish a single comprehensive revenue recognition model that is designed to create greater comparability of financial statements across industries and jurisdictions. Under this standard, companies recognize revenue to depict the transfer of goods or services to customers in amounts that reflect the consideration to which the Company expects to be entitled in exchange for those goods or services. </span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">All revenue is generated from contracts with customers. The Company recognizes revenue when control of these services is transferred to the customer in an amount, referred to as the transaction price, that reflects the consideration to which the Company is expected to be entitled in exchange for those services. The Company determines revenue recognition utilizing the following five steps: (1) identification of the contract with a customer, (2) identification of the performance obligations in the contract (promised goods or services that are distinct), (3) determination of the transaction price, (4) allocation of the transaction price to the performance obligations, and (5) recognition of revenue when, or as, the Company transfers control of the product or service for each performance obligation. The Company records revenues net of any tax assessments by governmental authorities, such as value added taxes, that are imposed on and concurrent with specific revenue generating transactions. </span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The majority of the Company's revenue arrangements are service contracts that are completed within a year or less. There are a few contracts that range in duration between 1 and 3 years. Substantially all of the Company's performance obligations, and associated revenue, are transferred to the customer over time. Most of the Company's contracts can be terminated by the customer without cause. In the event of termination, the Company's contracts provide that the customer pay the Company for services rendered through the termination date. The Company generally receives compensation based on a predetermined invoicing schedule relating to specific milestones for that contract. </span></div><div style=\"text-align:justify;text-indent:18pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Amendments to contracts are common. The Company evaluates each amendment which meets the criteria of a contract modification under ASC 606. Each modification is further evaluated to determine whether the contract modification should be accounted for as a separate contract or as a continuation of the original agreement. </span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">      The Company accounts for amendments as a separate contract as they meet the criteria under ASC 606-10-25-12.</span></div><div style=\"text-align:justify\"><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline\">Pharmacology Study and Other Services</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company generally enters into contracts with customers to provide oncology services with payments based on fixed-fee arrangements. At contract inception, the Company assesses the services promised in the contracts with customers to identify the performance obligations in the arrangement. The Company's fixed-fee arrangements for oncology services are considered a single performance obligation because the Company provides a highly-integrated service.</span></div><div style=\"text-indent:18pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company recognizes revenue over time using a progress-based input method since there is no single output measure that would fairly depict the transfer of control over the life of the performance obligation. Revenue is recognized for the single performance obligation over time due to the Company's right to payment for work performed to date and the performance does not create an asset with an alternative use. The Company recognizes revenue as portions of the overall performance obligation are completed as this best depicts the progress toward the complete satisfaction of the performance obligation.</span></div><div style=\"text-align:justify;text-indent:18pt\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline\">License Revenue</span></div><div><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">       The Company also enters into contracts to provide access to certain Patient Derived Xenograft (\"PDX\") model data via a license agreement with payments based on a fixed-fee arrangement. The Company's current data licenses contain a single performance obligation of delivering access to the data license. The Company recognizes this license revenue up-front, at a point in time, when the performance obligation is satisfied with the delivery of the data.</span></div><div style=\"text-indent:18pt\"><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Incremental Costs of Obtaining a Contract (Sales Commissions)</span></div><div><span><br/></span></div><div style=\"text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Under ASC 606, the costs of obtaining a contract can be expensed immediately, rather than capitalized and amortized, if the amortization period is one year or shorter.  Sales commissions for the Company represent contract costs with a term of one year or less.  Therefore, under ASC 606, the Company elected the practical expedient to expense these costs as incurred.\u00a0\u00a0\u00a0\u00a0</span></div><div><span><br/></span></div><div><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Accounts Receivables, Unbilled Services and Deferred Revenue</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In general, billings and payments are established by contractual provisions including predetermined payment schedules, which may or may not correspond to the timing of the transfer of control of the Company's services under the contract. In general, the Company's intention in its invoicing (payment terms) is to maintain cash neutrality over the life of the contract. Upfront payments, when they occur, are intended to cover certain expenses the Company incurs at the beginning of the contract. Neither the Company nor its customers view such upfront payments and contracted payment schedules as a means of financing. Unbilled services primarily arise when the revenue recognized exceeds the amount billed to the customer.  Such situations occur due to divergences between revenue recognition and the invoicing milestones which are based on predetermined payment terms.   </span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred revenue consists of unearned payments received in excess of revenue recognized. As the contracted services are subsequently performed and the associated revenue recognized, the deferred revenue balance is reduced by the amount of the revenue recognized during the period. Deferred revenue is classified as a current liability on the consolidated balance sheet as the Company expects to recognize the associated revenue in less than one year.</span></div>","language":"en-us"}]},{"name":"rpt:f-296","factDimensions":{"xbrl:concept":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis":"2025-05-01","srt:ProductOrServiceAxis":"csbr:FewContractsMember","srt:RangeAxis":"srt:MinimumMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-297","factDimensions":{"xbrl:concept":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis":"2025-05-01","srt:ProductOrServiceAxis":"csbr:FewContractsMember","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-298","factDimensions":{"xbrl:concept":"us-gaap:SegmentReportingPolicyPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Segment Reporting </span></div><div style=\"text-align:justify;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Operating segments are identified as components of an enterprise for which separate discrete financial information is available for evaluation by the Company\u2019s chief operating decision maker (\u201cCODM\u201d) and relied upon when making decisions regarding resource allocation and assessing performance. When evaluating the Company\u2019s financial performance, the CODM reviews total revenues, total expenses, and expenses by functional classification, using this information to make decisions on a Company-wide basis.</span></div><div><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">       The Company currently operates in one reportable segment pertaining to oncology services. The CODM for the Company is the Chief Executive Officer (the \u201cCEO\u201d). The Company\u2019s CEO reviews operating results on an aggregate basis and manages the Company\u2019s operations on a consolidated basis for the purpose of evaluating financial performance and allocating resources. Accordingly, the Company has determined that it has a single reportable and operating segment structure. The CEO uses net income or loss as well as revenue results to allocate resources in the annual budgeting and forecasting process and also uses that measure as a basis for evaluating financial performance regularly by comparing actual results with established budgets and forecasts. All significant expense categories are presented on our Consolidated Statements of Operations. The measure of segment assets is reported on the Consolidated Balance Sheet as total assets. Segment revenues and expenses are identical to that disclosed in the accompanying Consolidated Statements of Operations.</span></div>","language":"en-us"}]},{"name":"rpt:f-299","factDimensions":{"xbrl:concept":"us-gaap:NumberOfOperatingSegments","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"csbr:segment"},"factValues":[{"value":"1"}]},{"name":"rpt:f-300","factDimensions":{"xbrl:concept":"us-gaap:NumberOfReportableSegments","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"csbr:segment"},"factValues":[{"value":"1"}]},{"name":"rpt:f-301","factDimensions":{"xbrl:concept":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Recent Accounting Pronouncements</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In November 2023, the FASB issued Accounting Standards Update (\"ASU\") 2023-07, \u201cSegment Reporting\u201d (Topic 280): Improvements to Reportable Segment Disclosures, which is intended to improve reportable segment disclosure requirements, primarily through enhanced disclosures about significant expenses. The amendments require entities to disclose significant segment expenses that are regularly provided to the chief operating decision maker (\u201cCODM\u201d) and included within segment profit and loss, as well as the title and position of the CODM. The Company has adopted this standard effective May 1, 2024, noting that it did not have a material impact on its consolidated financial statements or related disclosures.</span></div><div style=\"text-align:justify;text-indent:36pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In December 2023, the FASB issued ASU 2023-09, \u201cImprovements to Tax Disclosures\u201d (Topic 740). The new guidance is intended to enhance the transparency and decision usefulness of income tax disclosures through changes to the rate reconciliation and the income taxes paid information disclosed. The ASU is effective retrospectively for fiscal years beginning after December 15, 2025, with early adoption permitted. The Company is in the process of completing the assessment of the impact that the adoption of this ASU will have on its financial statements, which is not expected to be material.</span></div><div style=\"text-align:justify;text-indent:13.5pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:13.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In November 2024 and January 2025, the FASB issued ASU 2024-03, \"Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures\" (Subtopic 220-40) \"Disaggregation of Income Statement Expenses\" and ASU 2025-01 \"Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures\" (Subtopic 220-40): Clarifying the Effective Date\". The new guidance is intended to enhance transparency and disclosures by requiring public business entities to disclose additional information about specific expense categories in the notes to financial statements at interim and annual reporting periods. The ASU is effective for the first annual reporting periods after December 15, 2026, and interim periods within annual reporting periods beginning after December 15, 2027, with early adoption permitted. The Company is in the process of evaluating the impact that the adoption of this ASU will have on its financial statements and related disclosures, which is not expected to be material.</span></div>","language":"en-us"}]},{"name":"rpt:f-302","factDimensions":{"xbrl:concept":"us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Accounts Receivable, Unbilled Services and Deferred Revenue<div style=\"text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Accounts receivable and unbilled services were as follows (in thousands):  </span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:93.859%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:59.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.828%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.734%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.205%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.046%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.740%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2025</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2024</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2023</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Accounts receivable</span></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6,865\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,886\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3,843\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Unbilled services</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5,398\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5,941\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,993\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total accounts receivable and unbilled services</span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">12,263\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">10,827\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">8,836\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Less: allowance for estimated credit losses</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(1,029)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(1,301)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(825)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total accounts receivable, net</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">11,234\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">9,526\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">8,011\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:7pt;font-weight:400;line-height:120%\"> </span></div><div style=\"text-indent:18pt\"><span><br/></span></div><div style=\"text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred revenue was as follows (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.543%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:55.298%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.960%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.589%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.960%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.431%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.962%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2025</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2024</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2023</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Deferred revenue</span></td><td style=\"background-color:#bfe4ff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#bfe4ff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">15,443\u00a0</span></td><td style=\"background-color:#bfe4ff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td style=\"background-color:#bfe4ff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#bfe4ff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">12,094\u00a0</span></td><td style=\"background-color:#bfe4ff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#bfe4ff;padding:0 1pt\"></td><td style=\"background-color:#bfe4ff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#bfe4ff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">12,776\u00a0</span></td><td style=\"background-color:#bfe4ff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div><span><br/></span></div><div style=\"text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred revenue is shown as a current liability on the Company's balance sheet.</span></div>","language":"en-us"}]},{"name":"rpt:f-303","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Accounts receivable and unbilled services were as follows (in thousands):  </span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:93.859%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:59.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.828%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.734%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.205%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.046%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.740%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2025</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2024</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2023</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Accounts receivable</span></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6,865\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,886\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3,843\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Unbilled services</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5,398\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5,941\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,993\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total accounts receivable and unbilled services</span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">12,263\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">10,827\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">8,836\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Less: allowance for estimated credit losses</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(1,029)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(1,301)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(825)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total accounts receivable, net</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">11,234\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">9,526\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">8,011\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-304","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableGross","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6865000","decimals":-3}]},{"name":"rpt:f-305","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableGross","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4886000","decimals":-3}]},{"name":"rpt:f-306","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableGross","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3843000","decimals":-3}]},{"name":"rpt:f-307","factDimensions":{"xbrl:concept":"us-gaap:UnbilledContractsReceivable","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5398000","decimals":-3}]},{"name":"rpt:f-308","factDimensions":{"xbrl:concept":"us-gaap:UnbilledContractsReceivable","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5941000","decimals":-3}]},{"name":"rpt:f-309","factDimensions":{"xbrl:concept":"us-gaap:UnbilledContractsReceivable","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4993000","decimals":-3}]},{"name":"rpt:f-310","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableGrossCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12263000","decimals":-3}]},{"name":"rpt:f-311","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableGrossCurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10827000","decimals":-3}]},{"name":"rpt:f-312","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableGrossCurrent","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8836000","decimals":-3}]},{"name":"rpt:f-313","factDimensions":{"xbrl:concept":"us-gaap:AllowanceForDoubtfulAccountsReceivable","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1029000","decimals":-3}]},{"name":"rpt:f-314","factDimensions":{"xbrl:concept":"us-gaap:AllowanceForDoubtfulAccountsReceivable","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1301000","decimals":-3}]},{"name":"rpt:f-315","factDimensions":{"xbrl:concept":"us-gaap:AllowanceForDoubtfulAccountsReceivable","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"825000","decimals":-3}]},{"name":"rpt:f-316","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11234000","decimals":-3}]},{"name":"rpt:f-317","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9526000","decimals":-3}]},{"name":"rpt:f-318","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8011000","decimals":-3}]},{"name":"rpt:f-319","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred revenue was as follows (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.543%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:55.298%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.960%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.589%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.960%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.431%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.962%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2025</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2024</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2023</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Deferred revenue</span></td><td style=\"background-color:#bfe4ff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#bfe4ff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">15,443\u00a0</span></td><td style=\"background-color:#bfe4ff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td style=\"background-color:#bfe4ff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#bfe4ff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">12,094\u00a0</span></td><td style=\"background-color:#bfe4ff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#bfe4ff;padding:0 1pt\"></td><td style=\"background-color:#bfe4ff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#bfe4ff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">12,776\u00a0</span></td><td style=\"background-color:#bfe4ff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-320","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiability","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"15443000","decimals":-3}]},{"name":"rpt:f-321","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiability","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12094000","decimals":-3}]},{"name":"rpt:f-322","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiability","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12776000","decimals":-3}]},{"name":"rpt:f-323","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Property and Equipment<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Property and equipment consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30,</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Furniture and fixtures</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">246\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">246\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Computer equipment and software</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,165\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,152\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Laboratory equipment</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">11,323\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">11,506\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Capitalized software development costs</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,888\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,888\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Assets in progress</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">124\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Leasehold improvements</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">317\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">317\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total property and equipment</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">16,063\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">16,112\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Less: Accumulated depreciation and amortization</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(11,688)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(10,391)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\"><span style=\"-sec-ix-hidden:f-339\"><span style=\"-sec-ix-hidden:f-340\">Property and equipment, net</span></span></span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,375\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5,721\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0\u00a0\u00a0\u00a0Depreciation and amortization expense was $1.6\u00a0million and $1.9\u00a0million for the years ended April\u00a030, 2025 and 2024, respectively.  Depreciation and amortization expense, excluding expense recorded under finance leases, was\u00a0$1.5 million and $1.7 million\u00a0for the years ended\u00a0April 30, 2025\u00a0and\u00a02024, respectively. </span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0\u00a0\u00a0\u00a0As of\u00a0April 30, 2025\u00a0and\u00a02024, property, plant and equipment included gross assets held under finance leases of $1.0\u00a0million, respectively. Related depreciation expense for these assets was approximately $150,000 and $146,000 for the years ended\u00a0April\u00a030, 2025\u00a0and\u00a02024, respectively.   </span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">During the year ended April 30, 2025, the Company disposed of lab equipment with a cost of $636,000 and accumulated depreciation of $343,000 as of the disposal date, resulting in a loss on disposal of equipment recorded of $293,000.  During the year ended April 30, 2024, the Company disposed of lab equipment with a cost of $542,000 and accumulated depreciation of $107,000 as of the disposal date, resulting in a loss on disposal of equipment recorded of $435,000. </span></div><div style=\"text-align:justify;text-indent:36pt\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Finance Lease</span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">During fiscal 2022, the Company recognized a finance lease for laboratory equipment.  This equipment was obtained as the result of a laboratory supplies purchase commitment with costs of approximately $370,000 at inception through December 2025. Cash payments for this lease are in the form of consideration for purchasing lab supplies under a purchase commitment agreement. The present value of the minimum future obligations of $370,000 was calculated based on an interest rate of 3.25%. Depreciation and amortization expense related to this finance lease was $77,000 and $75,000 for the years ended April 30, 2025 and 2024, respectively.  Interest on the related finance lease liability was approximately $3,000 and $6,000 for the years ended April 30, 2025 and 2024, respectively.</span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">During fiscal 2023, the Company recognized a finance lease for laboratory equipment.  This equipment was obtained as the result of a laboratory supplies purchase commitment with costs of approximately $368,000 at inception through May 2027. Cash payments for this lease are in the form of consideration for purchasing lab supplies under a purchase commitment agreement. The present value of the minimum future obligations of $368,000 was calculated based on an interest rate of 3.5%. Depreciation and amortization expense related to this finance lease was $73,000 and $71,000 for the years ended April 30, 2025 </span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">and 2024, respectively. Interest on the related finance lease liability was approximately $7,000 and $9,000 for the years ended April 30, 2025 and 2024, respectively.</span></div><div style=\"text-align:justify;text-indent:36pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Future minimum lease payments due each fiscal year as follows (in thousands):</span></div><div style=\"text-align:justify;text-indent:36pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:36pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:74.415%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:23.850%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:48.998%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.852%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2026</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">140\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2027</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">80\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2028</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">7\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Thereafter</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total undiscounted liabilities</span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">227\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Less: Imputed interest</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(7)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Present value of minimum lease payments</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">220\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:6pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:3pt double #000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Current portion financing lease</span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">135\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Long-term portion financing lease</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">85\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td></tr></table></div>As noted above, the Company's financing leases are for laboratory equipment. The associated liabilities for these leases are classified on the consolidated balance sheets within other current and <span style=\"-sec-ix-hidden:f-381\">other non-current liabilities</span>.","language":"en-us"}]},{"name":"rpt:f-324","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Property and equipment consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30,</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Furniture and fixtures</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">246\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">246\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Computer equipment and software</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,165\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,152\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Laboratory equipment</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">11,323\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">11,506\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Capitalized software development costs</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,888\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,888\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Assets in progress</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">124\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Leasehold improvements</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">317\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">317\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total property and equipment</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">16,063\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">16,112\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Less: Accumulated depreciation and amortization</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(11,688)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(10,391)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\"><span style=\"-sec-ix-hidden:f-339\"><span style=\"-sec-ix-hidden:f-340\">Property and equipment, net</span></span></span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,375\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5,721\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-325","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:FurnitureAndFixturesMember"},"factValues":[{"value":"246000","decimals":-3}]},{"name":"rpt:f-326","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:FurnitureAndFixturesMember"},"factValues":[{"value":"246000","decimals":-3}]},{"name":"rpt:f-327","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:ComputerEquipmentMember"},"factValues":[{"value":"2165000","decimals":-3}]},{"name":"rpt:f-328","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:ComputerEquipmentMember"},"factValues":[{"value":"2152000","decimals":-3}]},{"name":"rpt:f-329","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"csbr:LaboratoryEquipmentMember"},"factValues":[{"value":"11323000","decimals":-3}]},{"name":"rpt:f-330","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"csbr:LaboratoryEquipmentMember"},"factValues":[{"value":"11506000","decimals":-3}]},{"name":"rpt:f-331","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:SoftwareAndSoftwareDevelopmentCostsMember"},"factValues":[{"value":"1888000","decimals":-3}]},{"name":"rpt:f-332","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:SoftwareAndSoftwareDevelopmentCostsMember"},"factValues":[{"value":"1888000","decimals":-3}]},{"name":"rpt:f-333","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"csbr:AssetInProgressMember"},"factValues":[{"value":"124000","decimals":-3}]},{"name":"rpt:f-334","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"csbr:AssetInProgressMember"},"factValues":[{"value":"3000","decimals":-3}]},{"name":"rpt:f-335","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:LeaseholdImprovementsMember"},"factValues":[{"value":"317000","decimals":-3}]},{"name":"rpt:f-336","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:LeaseholdImprovementsMember"},"factValues":[{"value":"317000","decimals":-3}]},{"name":"rpt:f-337","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"16063000","decimals":-3}]},{"name":"rpt:f-338","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"16112000","decimals":-3}]},{"name":"rpt:f-339","factDimensions":{"xbrl:concept":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11688000","decimals":-3}]},{"name":"rpt:f-340","factDimensions":{"xbrl:concept":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10391000","decimals":-3}]},{"name":"rpt:f-341","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4375000","decimals":-3}]},{"name":"rpt:f-342","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5721000","decimals":-3}]},{"name":"rpt:f-343","factDimensions":{"xbrl:concept":"us-gaap:DepreciationDepletionAndAmortization","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1600000","decimals":-5}]},{"name":"rpt:f-344","factDimensions":{"xbrl:concept":"us-gaap:DepreciationDepletionAndAmortization","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1900000","decimals":-5}]},{"name":"rpt:f-345","factDimensions":{"xbrl:concept":"csbr:DepreciationAndAmortizationExcludingFinanceLeases","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1500000","decimals":-3}]},{"name":"rpt:f-346","factDimensions":{"xbrl:concept":"csbr:DepreciationAndAmortizationExcludingFinanceLeases","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1700000","decimals":-5}]},{"name":"rpt:f-347","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseRightOfUseAsset","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1000000","decimals":-5}]},{"name":"rpt:f-348","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseRightOfUseAsset","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1000000","decimals":-5}]},{"name":"rpt:f-349","factDimensions":{"xbrl:concept":"us-gaap:Depreciation","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"csbr:FinanceLeasedAssetsMember"},"factValues":[{"value":"150000","decimals":-3}]},{"name":"rpt:f-350","factDimensions":{"xbrl:concept":"us-gaap:Depreciation","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"csbr:FinanceLeasedAssetsMember"},"factValues":[{"value":"146000","decimals":-3}]},{"name":"rpt:f-351","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentDisposals","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:EquipmentMember"},"factValues":[{"value":"636000","decimals":-3}]},{"name":"rpt:f-352","factDimensions":{"xbrl:concept":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:EquipmentMember"},"factValues":[{"value":"343000","decimals":-3}]},{"name":"rpt:f-353","factDimensions":{"xbrl:concept":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:EquipmentMember"},"factValues":[{"value":"-293000","decimals":-3}]},{"name":"rpt:f-354","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentDisposals","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:EquipmentMember"},"factValues":[{"value":"542000","decimals":-3}]},{"name":"rpt:f-355","factDimensions":{"xbrl:concept":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:EquipmentMember"},"factValues":[{"value":"107000","decimals":-3}]},{"name":"rpt:f-356","factDimensions":{"xbrl:concept":"us-gaap:GainLossOnSaleOfPropertyPlantEquipment","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:EquipmentMember"},"factValues":[{"value":"-435000","decimals":-3}]},{"name":"rpt:f-357","factDimensions":{"xbrl:concept":"csbr:FinanceLeaseCost","xbrl:period":"2021-05-01T00:00:00/2022-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","csbr:FinanceLeaseAxis":"csbr:A2022FinanceLeaseMember"},"factValues":[{"value":"370000","decimals":-3}]},{"name":"rpt:f-358","factDimensions":{"xbrl:concept":"csbr:FinanceLeaseCost","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","csbr:FinanceLeaseAxis":"csbr:A2022FinanceLeaseMember"},"factValues":[{"value":"370000","decimals":-3}]},{"name":"rpt:f-359","factDimensions":{"xbrl:concept":"csbr:PresentValueMinimumFutureObligationsInterestRate","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","csbr:FinanceLeaseAxis":"csbr:A2022FinanceLeaseMember"},"factValues":[{"value":"0.0325"}]},{"name":"rpt:f-360","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","csbr:FinanceLeaseAxis":"csbr:A2022FinanceLeaseMember"},"factValues":[{"value":"77000","decimals":-3}]},{"name":"rpt:f-361","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","csbr:FinanceLeaseAxis":"csbr:A2022FinanceLeaseMember"},"factValues":[{"value":"75000","decimals":-3}]},{"name":"rpt:f-362","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseInterestPaymentOnLiability","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","csbr:FinanceLeaseAxis":"csbr:A2022FinanceLeaseMember"},"factValues":[{"value":"3000","decimals":-3}]},{"name":"rpt:f-363","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseInterestPaymentOnLiability","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","csbr:FinanceLeaseAxis":"csbr:A2022FinanceLeaseMember"},"factValues":[{"value":"6000","decimals":-3}]},{"name":"rpt:f-364","factDimensions":{"xbrl:concept":"csbr:FinanceLeaseCost","xbrl:period":"2022-05-01T00:00:00/2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","csbr:FinanceLeaseAxis":"csbr:A2023FinanceLeaseMember"},"factValues":[{"value":"368000","decimals":-3}]},{"name":"rpt:f-365","factDimensions":{"xbrl:concept":"csbr:FinanceLeaseCost","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","csbr:FinanceLeaseAxis":"csbr:A2023FinanceLeaseMember"},"factValues":[{"value":"368000","decimals":-3}]},{"name":"rpt:f-366","factDimensions":{"xbrl:concept":"csbr:PresentValueMinimumFutureObligationsInterestRate","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","csbr:FinanceLeaseAxis":"csbr:A2023FinanceLeaseMember"},"factValues":[{"value":"0.035"}]},{"name":"rpt:f-367","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","csbr:FinanceLeaseAxis":"csbr:A2023FinanceLeaseMember"},"factValues":[{"value":"73000","decimals":-3}]},{"name":"rpt:f-368","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","csbr:FinanceLeaseAxis":"csbr:A2023FinanceLeaseMember"},"factValues":[{"value":"71000","decimals":-3}]},{"name":"rpt:f-369","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseInterestPaymentOnLiability","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","csbr:FinanceLeaseAxis":"csbr:A2023FinanceLeaseMember"},"factValues":[{"value":"7000","decimals":-3}]},{"name":"rpt:f-370","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseInterestPaymentOnLiability","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","csbr:FinanceLeaseAxis":"csbr:A2023FinanceLeaseMember"},"factValues":[{"value":"9000","decimals":-3}]},{"name":"rpt:f-371","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Future minimum lease payments due each fiscal year as follows (in thousands):</span></div><div style=\"text-align:justify;text-indent:36pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:36pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:74.415%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:23.850%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:48.998%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.852%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2026</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">140\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2027</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">80\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2028</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">7\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Thereafter</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total undiscounted liabilities</span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">227\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Less: Imputed interest</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(7)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Present value of minimum lease payments</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">220\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:6pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:3pt double #000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Current portion financing lease</span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">135\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Long-term portion financing lease</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">85\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-372","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"140000","decimals":-3}]},{"name":"rpt:f-373","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"80000","decimals":-3}]},{"name":"rpt:f-374","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7000","decimals":-3}]},{"name":"rpt:f-375","factDimensions":{"xbrl:concept":"csbr:FinanceLeaseLiabilityToBePaidAfterYearThree","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-376","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseLiabilityPaymentsDue","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"227000","decimals":-3}]},{"name":"rpt:f-377","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7000","decimals":-3}]},{"name":"rpt:f-378","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseLiability","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"220000","decimals":-3}]},{"name":"rpt:f-379","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseLiabilityCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"135000","decimals":-3}]},{"name":"rpt:f-380","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseLiabilityNoncurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"85000","decimals":-3}]},{"name":"rpt:f-381","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Revenue from Contracts with Customers<div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Oncology Revenue</span></div><div><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">       The following table represents disaggregated revenue for the twelve months ended April\u00a030, 2025 and 2024:</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:71.345%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.416%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.219%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.824%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.014%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.827%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Pharmacology services</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">48,585\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">47,035\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">TOS data license revenue </span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,676\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Other TOS revenue</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3,683\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3,102\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Personalized oncology services</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">18\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total oncology revenue</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">56,944\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">50,155\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr></table></div><div style=\"margin-top:5pt;text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"> </span></div><div style=\"margin-top:5pt;text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Other TOS revenue represents additional services provided to the Company's pharmaceutical and biotechnology customers,  specifically flow cytometry services, and SaaS provided via our Lumin Bioinformatics software. </span></div><div style=\"margin-top:5pt\"><span><br/></span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Contract Balances</span></div>Contract assets include unbilled amounts typically resulting from revenue recognized in excess of the amounts billed to the customer for which the right to payment is subject to factors other than the passage of time. These amounts may not exceed their net realizable value. Contract assets are classified as current. Contract liabilities consist of customer payments received in advance of performance and billings in excess of revenue recognized, net of revenue recognized from the balance at the beginning of the period. Contract assets and liabilities are presented on the balance sheet on a net contract-by-contract basis at the end of each reporting period.  Refer to Note 3 for related balances.","language":"en-us"}]},{"name":"rpt:f-382","factDimensions":{"xbrl:concept":"us-gaap:DisaggregationOfRevenueTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"The following table represents disaggregated revenue for the twelve months ended April\u00a030, 2025 and 2024:<div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:71.345%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.416%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.219%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.824%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.014%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.827%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Pharmacology services</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">48,585\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">47,035\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">TOS data license revenue </span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,676\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Other TOS revenue</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3,683\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3,102\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Personalized oncology services</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">18\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total oncology revenue</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">56,944\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">50,155\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-383","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"csbr:PharmacologyServicesMember"},"factValues":[{"value":"48585000","decimals":-3}]},{"name":"rpt:f-384","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"csbr:PharmacologyServicesMember"},"factValues":[{"value":"47035000","decimals":-3}]},{"name":"rpt:f-385","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"us-gaap:LicenseAndMaintenanceMember"},"factValues":[{"value":"4676000","decimals":-3}]},{"name":"rpt:f-386","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"us-gaap:LicenseAndMaintenanceMember"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-387","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"us-gaap:ProductAndServiceOtherMember"},"factValues":[{"value":"3683000","decimals":-3}]},{"name":"rpt:f-388","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"us-gaap:ProductAndServiceOtherMember"},"factValues":[{"value":"3102000","decimals":-3}]},{"name":"rpt:f-389","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"csbr:PersonalizedOncologyServicesMember"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-390","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"csbr:PersonalizedOncologyServicesMember"},"factValues":[{"value":"18000","decimals":-3}]},{"name":"rpt:f-391","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"56944000","decimals":-3}]},{"name":"rpt:f-392","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"50155000","decimals":-3}]},{"name":"rpt:f-393","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskDisclosureTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Significant Customers<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">For the year ended April\u00a030, 2025, two of our customers accounted for 10% or more of our total revenue, at 13% and 10%, respectively.  For the year ended April 30, 2024, one of our customers accounted for 10% or more of our total revenue, at 10%.  This same customer qualified as significant in both years ending 2025 and 2024, at 13% and 10%, respectively, with an additional customer qualifying as significant for the year ending 2025 at 10%. </span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div>As of April\u00a030, 2025, one customer, who is also one of our two significant customers, accounted for 19% of our total accounts receivable balance.","language":"en-us"}]},{"name":"rpt:f-394","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:MajorCustomersAxis":"csbr:CustomerOneMember","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:SalesRevenueNetMember"},"factValues":[{"value":"0.13","decimals":2}]},{"name":"rpt:f-395","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:MajorCustomersAxis":"csbr:CustomerTwoMember","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:SalesRevenueNetMember"},"factValues":[{"value":"0.10","decimals":2}]},{"name":"rpt:f-396","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:MajorCustomersAxis":"csbr:CustomerOneMember","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:SalesRevenueNetMember"},"factValues":[{"value":"0.10","decimals":2}]},{"name":"rpt:f-397","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:MajorCustomersAxis":"csbr:CustomerOneMember","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:SalesRevenueNetMember"},"factValues":[{"value":"0.13","decimals":2}]},{"name":"rpt:f-398","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:MajorCustomersAxis":"csbr:CustomerTwoMember","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:SalesRevenueNetMember"},"factValues":[{"value":"0.10","decimals":2}]},{"name":"rpt:f-399","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:MajorCustomersAxis":"csbr:CustomerTwoMember","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:SalesRevenueNetMember"},"factValues":[{"value":"0.10","decimals":2}]},{"name":"rpt:f-400","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:MajorCustomersAxis":"csbr:CustomerOneMember","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:AccountsReceivableMember"},"factValues":[{"value":"0.19","decimals":2}]},{"name":"rpt:f-401","factDimensions":{"xbrl:concept":"us-gaap:CommitmentsAndContingenciesDisclosureTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Commitments and Contingencies<div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Legal Matters</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company is not currently party to any legal matters to its knowledge. The Company is not aware of any other matters that would have a material impact on the Company\u2019s financial position or results of operations.</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">\u00a0</span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Registration Payment Arrangements</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company has entered into an Amended and Restated Registration Rights Agreement in connection with a private placement in March 2015. This Amended and Restated Registration Rights Agreement contains provisions that may call for the Company to pay penalties in certain circumstances. This registration payment arrangement primarily relates to the Company\u2019s ability to file a registration statement within a particular time period, have a registration statement declared effective within a particular time period and to maintain the effectiveness of the registration statement for a particular time period. The Company has not accrued any liquidated damages associated with the Amended and Restated Registration Right Agreement as the Company has filed the required registration statement and anticipates continued compliance with the agreement.</span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Royalties</span></div>The Company contracts with third-party vendors to license tumor samples for development into PDX models and use in our TOS business. These types of arrangements have an upfront fee ranging from approximately nil\u00a0to $30,000 per tumor sample depending on the successful growth of the tumor model and ability to develop them into a sellable product. The upfront costs are expensed as incurred. In addition, under certain agreements, for a limited period of time, the Company is subject to royalty payments if the licensed tumor models are used for sale in\u00a0our TOS business,\u00a0ranging from 2% to 20% of the contract price\u00a0after recouping certain initiation costs.  Some of these arrangements also set forth an annual minimum royalty due regardless of tumor models used for sale.   For the years ended April\u00a030, 2025 and 2024, the Company has recognized approximately $462,000 and  $362,000 in expense related to these royalty arrangements, respectively. Royalty expense is included in cost of oncology revenue in the accompanying consolidated statements of operations.","language":"en-us"}]},{"name":"rpt:f-402","factDimensions":{"xbrl:concept":"csbr:CollaborationArrangementRoyaltyFee","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:RangeAxis":"srt:MinimumMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-403","factDimensions":{"xbrl:concept":"csbr:CollaborationArrangementRoyaltyFee","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"30000"}]},{"name":"rpt:f-404","factDimensions":{"xbrl:concept":"csbr:CollaborationArrangementRoyaltyFeePercentOfContractPrice","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:RangeAxis":"srt:MinimumMember"},"factValues":[{"value":"0.02"}]},{"name":"rpt:f-405","factDimensions":{"xbrl:concept":"csbr:CollaborationArrangementRoyaltyFeePercentOfContractPrice","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"0.20"}]},{"name":"rpt:f-406","factDimensions":{"xbrl:concept":"us-gaap:RoyaltyExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"462000","decimals":-3}]},{"name":"rpt:f-407","factDimensions":{"xbrl:concept":"us-gaap:RoyaltyExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"362000","decimals":-3}]},{"name":"rpt:f-408","factDimensions":{"xbrl:concept":"us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Stock-based Payments<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Stock-based compensation in the amount of $654,000 and </span><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">$1.1\u00a0million</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"> was recognized for years ended April\u00a030, 2025 and 2024, respectively.\u00a0Stock-based compensation costs were recorded as follows (in thousands):</span></div><div><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">General and administrative</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">414\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">706\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Sales and marketing</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">125\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">168\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Research and development</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">10\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">21\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">TOS cost of sales</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">105\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">223\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total stock-based compensation expense</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">654\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,118\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div><span><br/></span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company has in place a 2021 Equity Incentive Plan and 2010 Equity Incentive Plan (\"the Plans\"). In general, these Plans provide for stock-based compensation to the Company\u2019s employees, directors and non-employees. The Plans also provide for limits on the aggregate number of shares that may be granted, the term of grants and the strike price of option awards.</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">2021 Equity Incentive Plan</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">As part of the 2021 Annual Shareholders Meeting, shareholders approved the adoption of the 2021 Equity Incentive Plan (\u201c2021 Equity Plan\u201d). The purpose of the 2021 Equity Plan is to grant (i) Non-statutory Stock Options; (ii) Incentive Stock </span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Options; (iii) Restricted Stock Awards; and/or (iv) Stock Appreciation Rights (collectively, stock-based compensation) to its employees, directors and non-employees. Total stock awards under the 2021 Equity Plan shall not exceed 2\u00a0million shares of common stock. Options and Stock Appreciation Rights expire no later than ten years from the date of grant and the awards vest as determined by the Board of Directors (the \"Board\") or Chief Executive Officer. Options and Stock Appreciation Rights have a strike price not less than 100% of the fair market value of the common stock subject to the option or right at the date of grant.  As of April 30, 2025, approximately 1.2\u00a0million shares were left to issue under this plan. </span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">2010 Equity Incentive Plan</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">On February 18, 2011, shareholders owning a majority of the issued and outstanding shares of the Company executed a written consent approving the 2010 Equity Incentive Plan (\u201c2010 Equity Plan\u201d). The purpose of the 2010 Equity Plan is to grant (i) Non-statutory Stock Options; (ii) Restricted Stock Awards; and (iii) Stock Appreciation Rights (collectively, stock-based compensation) to its employees, directors and non-employees. Total stock awards under the 2010 Equity Plan shall not exceed 30,000,000 shares of common stock. Options and Stock Appreciation Rights expire no later than ten years from the date of grant and the awards vest as determined by the Board. Options and Stock Appreciation Rights have a strike price not less than 100% of the fair market value of the common stock subject to the option or right at the date of grant.  After February 2021, no more shares were available to be issued from this plan. </span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Director Compensation Plan</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:107%\">On December 12, 2013, the Compensation Committee of the Board (the \"Committee\") adopted changes to the Director Compensation Plan of 2010 (the \u201cDirector Plan\u201d) effective December 1, 2013.\u00a0\u00a0Under the Director Plan, independent directors of the Company were entitled to an annual award of a five-year option to purchase 8,333 shares of the Company\u2019s common stock, and the Chairman of the Board of the Company was entitled to an annual award of a five-year option to purchase 16,667 shares of the Company\u2019s common stock.\u00a0\u00a0Independent directors who serve as chairperson of a committee were also to receive an annual grant of a five-year option to purchase 1,667 shares of the Company\u2019s common stock. During fiscal year 2021, the Committee adopted the Director Compensation Plan of 2021 (the \"2021 Plan\").  Under the 2021 Plan, independent directors are entitled to an annual base compensation of $100,000 which can be received in either ten-year options to purchase shares of the Company's stock, which vest fully over a one-year period, or a combination of options and cash, where cash received is not to exceed $35,000.  The Chairman of the Board\u2019s annual compensation was set at an equivalent of $150,000. Compensation for independent directors who serve as chairperson of a committee was set at an equivalent of between $110,000 to $120,000. All options issued under the 2021 Plan vest quarterly at a rate of 25%. Option grants will typically be issued after the annual shareholder meeting which will generally be held in October of each year. New directors will receive compensation upon joining the Board equal to a pro-rata equivalent for the remainder of the year.\u00a0Options issued under the 2021 Plan are issued pursuant to the 2021 Equity Plan.\u00a0</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Stock Option Grants</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Black-Scholes weighted average assumptions used to calculate the fair value of options granted during the years ended April\u00a030, 2025 and 2024 were as follows:</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:53.432%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:18.636%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.530%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.902%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Expected term in years</span></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6</span></div></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a06</span></div></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Risk-free interest rates</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3.6% - 4.5%</span></div></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.0% - 4.5%</span></div></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Volatility</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">54% - 63%</span></div></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">63% - 64%</span></div></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Dividend yield</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0%</span></div></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0%</span></div></td></tr></table></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The weighted average fair value of stock options granted during the years ended April\u00a030, 2025 and 2024, was $2.86 and $3.75, respectively. The Company\u2019s stock options activity and related information as of and for the years ended April\u00a030, 2025 and 2024 is as follows:</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:24.744%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.651%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Directors<br/>and<br/>Employees</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Non-<br/>Employees</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Total</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Weighted<br/>Average<br/>Exercise<br/>Price</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Weighted<br/>Average<br/>Remaining<br/>Contractual<br/>Life (Years)</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Aggregate<br/>Intrinsic<br/>Value</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Outstanding, May 1, 2024</span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,883,166\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">36,331\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,919,497\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.04\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.2</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,172,000\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Granted</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">330,955\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">330,955\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.01\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">9.6</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Exercised</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(183,404)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(183,404)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3.64\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Canceled</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(83,325)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(83,325)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.83\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Forfeited</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(268,375)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(268,375)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6.05\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Expired</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(36,666)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(36,666)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.43\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Outstanding, April 30, 2025</span></div></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,642,351\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">36,331\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,678,682\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.98\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.9</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,434,000\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Vested and expected to vest as of April 30, 2025</span></div></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,642,351\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">36,331\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,678,682\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.98\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.9</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,434,000\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Exercisable as of April 30, 2025</span></div></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,461,067\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5,625\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,466,692\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.86\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.3</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,096,000\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%\">\u00a0</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:24.744%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.651%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Directors<br/>and<br/>Employees</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Non-<br/>Employees</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Total</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Weighted<br/>Average<br/>Exercise<br/>Price</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Weighted<br/>Average<br/>Remaining<br/>Contractual<br/>Life (Years)</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Aggregate<br/>Intrinsic<br/>Value</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Outstanding, May 1, 2023</span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,739,336\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">36,331\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,775,667\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.8</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.6</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,683,000\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Granted</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">444,730\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">444,730\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6.08\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">9.5</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"2\" style=\"border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Exercised</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(155,449)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(155,449)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2.31\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Canceled</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(50,535)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(50,535)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.82\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Forfeited</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(40,750)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(40,750)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6.21\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Expired</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(54,166)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(54,166)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">12.78\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Outstanding, April 30, 2024</span></div></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,883,166\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">36,331\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,919,497\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.04\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.2</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,172,000\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Vested and expected to vest as of April 30, 2024</span></div></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,883,166\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">36,331\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,919,497\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.04\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.2</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,172,000\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Exercisable as of April 30, 2024</span></div></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,481,145\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3,750\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,484,895\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.65\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.2</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,172,000\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Share Repurchase Program</span></div>On March 29, 2023, the Board of Directors approved a share repurchase program authorizing the Company to purchase up to an aggregate of $5.0\u00a0million of the Company\u2019s common stock. The share repurchase program is designed in accordance with Rule 10b-18 of the Exchange Act. The shares may be purchased from time to time in the open market, as permitted under applicable rules and regulations, at prevailing market prices. The timing and amount of repurchases will depend on market conditions, share price, applicable legal requirements and other factors. The program does not obligate the Company to acquire a minimum number of shares. As of April 30, 2025, the Company had purchased approximately  120,300 shares of its common stock, at an average price of $5.73 per share, totaling approximately $708,000 and leaving an available balance of approximately $4.3\u00a0million authorized by the Board for use in the program as of that date.  The Company did not purchase any shares of its common stock during the year ended April 30, 2025.","language":"en-us"}]},{"name":"rpt:f-409","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"654000","decimals":-3}]},{"name":"rpt:f-410","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1100000","decimals":-5}]},{"name":"rpt:f-411","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Stock-based compensation costs were recorded as follows (in thousands):<div><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">General and administrative</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">414\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">706\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Sales and marketing</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">125\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">168\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Research and development</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">10\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">21\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">TOS cost of sales</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">105\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">223\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total stock-based compensation expense</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">654\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,118\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-412","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:GeneralAndAdministrativeExpenseMember"},"factValues":[{"value":"414000","decimals":-3}]},{"name":"rpt:f-413","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:GeneralAndAdministrativeExpenseMember"},"factValues":[{"value":"706000","decimals":-3}]},{"name":"rpt:f-414","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:SellingAndMarketingExpenseMember"},"factValues":[{"value":"125000","decimals":-3}]},{"name":"rpt:f-415","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:SellingAndMarketingExpenseMember"},"factValues":[{"value":"168000","decimals":-3}]},{"name":"rpt:f-416","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:ResearchAndDevelopmentExpenseMember"},"factValues":[{"value":"10000","decimals":-3}]},{"name":"rpt:f-417","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:ResearchAndDevelopmentExpenseMember"},"factValues":[{"value":"21000","decimals":-3}]},{"name":"rpt:f-418","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"csbr:TranslationalOncologySolutionsCostOfSalesMember"},"factValues":[{"value":"105000","decimals":-3}]},{"name":"rpt:f-419","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"csbr:TranslationalOncologySolutionsCostOfSalesMember"},"factValues":[{"value":"223000","decimals":-3}]},{"name":"rpt:f-420","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"654000","decimals":-3}]},{"name":"rpt:f-421","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1118000","decimals":-3}]},{"name":"rpt:f-422","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","xbrl:period":"2021-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"csbr:EquityIncentivePlan2021Member","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"2000000"}]},{"name":"rpt:f-423","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","us-gaap:PlanNameAxis":"csbr:EquityIncentivePlan2021Member"},"factValues":[{"value":"P10Y"}]},{"name":"rpt:f-424","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","us-gaap:PlanNameAxis":"csbr:EquityIncentivePlan2021Member"},"factValues":[{"value":"1"}]},{"name":"rpt:f-425","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"csbr:EquityIncentivePlan2021Member"},"factValues":[{"value":"1200000","decimals":-5}]},{"name":"rpt:f-426","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod","xbrl:period":"2011-02-18T00:00:00/2011-02-19T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"csbr:EquityIncentivePlan2010Member","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"30000000"}]},{"name":"rpt:f-427","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","us-gaap:PlanNameAxis":"csbr:EquityIncentivePlan2010Member"},"factValues":[{"value":"P10Y"}]},{"name":"rpt:f-428","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","us-gaap:PlanNameAxis":"csbr:EquityIncentivePlan2010Member"},"factValues":[{"value":"1"}]},{"name":"rpt:f-429","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","xbrl:period":"2021-03-02T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"csbr:EquityIncentivePlan2010Member"},"factValues":[{"value":"0"}]},{"name":"rpt:f-430","factDimensions":{"xbrl:concept":"csbr:SharebasedCompensationArrangementbySharebasedPaymentAwardTermofOptiontoPurchase","xbrl:period":"2013-12-12T00:00:00/2013-12-13T00:00:00","xbrl:entity":"cik:0000771856","srt:TitleOfIndividualAxis":"csbr:IndependentDirectorsMember","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember"},"factValues":[{"value":"P5Y"}]},{"name":"rpt:f-431","factDimensions":{"xbrl:concept":"csbr:StockOptionsAwardSharesToPurchaseCommonStock","xbrl:period":"2013-12-12T00:00:00/2013-12-13T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:IndependentDirectorsMember","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember"},"factValues":[{"value":"8333"}]},{"name":"rpt:f-432","factDimensions":{"xbrl:concept":"csbr:SharebasedCompensationArrangementbySharebasedPaymentAwardTermofOptiontoPurchase","xbrl:period":"2013-12-12T00:00:00/2013-12-13T00:00:00","xbrl:entity":"cik:0000771856","srt:TitleOfIndividualAxis":"srt:BoardOfDirectorsChairmanMember","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember"},"factValues":[{"value":"P5Y"}]},{"name":"rpt:f-433","factDimensions":{"xbrl:concept":"csbr:StockOptionsAwardSharesToPurchaseCommonStock","xbrl:period":"2013-12-12T00:00:00/2013-12-13T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:ChairpersonOfACommitteeMember","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember"},"factValues":[{"value":"16667"}]},{"name":"rpt:f-434","factDimensions":{"xbrl:concept":"csbr:SharebasedCompensationArrangementbySharebasedPaymentAwardTermofOptiontoPurchase","xbrl:period":"2013-12-12T00:00:00/2013-12-13T00:00:00","xbrl:entity":"cik:0000771856","srt:TitleOfIndividualAxis":"csbr:ChairpersonOfACommitteeMember","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember"},"factValues":[{"value":"P5Y"}]},{"name":"rpt:f-435","factDimensions":{"xbrl:concept":"csbr:StockOptionsAwardSharesToPurchaseUnregisteredCommonStock","xbrl:period":"2013-12-12T00:00:00/2013-12-13T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:ChairpersonOfACommitteeMember","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember"},"factValues":[{"value":"1667"}]},{"name":"rpt:f-436","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationAnnualBaseCompensationAmount","xbrl:period":"2020-05-01T00:00:00/2021-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:TitleOfIndividualAxis":"csbr:IndependentDirectorsMember","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember"},"factValues":[{"value":"100000"}]},{"name":"rpt:f-437","factDimensions":{"xbrl:concept":"csbr:SharebasedCompensationArrangementbySharebasedPaymentAwardTermofOptiontoPurchase","xbrl:period":"2020-05-01T00:00:00/2021-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:TitleOfIndividualAxis":"csbr:IndependentDirectorsMember","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember"},"factValues":[{"value":"P10Y"}]},{"name":"rpt:f-438","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","xbrl:period":"2020-05-01T00:00:00/2021-05-01T00:00:00","xbrl:entity":"cik:0000771856","srt:TitleOfIndividualAxis":"csbr:IndependentDirectorsMember","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-439","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationAnnualBaseCompensationAmount","xbrl:period":"2020-05-01T00:00:00/2021-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember","csbr:TriggeringEventAxis":"csbr:OptionsAndCashMember","srt:TitleOfIndividualAxis":"csbr:IndependentDirectorsMember","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"35000"}]},{"name":"rpt:f-440","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationAnnualBaseCompensationAmount","xbrl:period":"2020-05-01T00:00:00/2021-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:TitleOfIndividualAxis":"srt:BoardOfDirectorsChairmanMember","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember"},"factValues":[{"value":"150000"}]},{"name":"rpt:f-441","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationAnnualBaseCompensationAmount","xbrl:period":"2020-05-01T00:00:00/2021-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember","srt:TitleOfIndividualAxis":"csbr:ChairpersonOfACommitteeMember","srt:RangeAxis":"srt:MinimumMember"},"factValues":[{"value":"110000"}]},{"name":"rpt:f-442","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationAnnualBaseCompensationAmount","xbrl:period":"2020-05-01T00:00:00/2021-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember","srt:TitleOfIndividualAxis":"csbr:ChairpersonOfACommitteeMember","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"120000"}]},{"name":"rpt:f-443","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedPercentage","xbrl:period":"2013-12-12T00:00:00/2013-12-13T00:00:00","xbrl:entity":"cik:0000771856","us-gaap:PlanNameAxis":"csbr:DirectorCompensationPlanMember"},"factValues":[{"value":"0.25"}]},{"name":"rpt:f-444","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Black-Scholes weighted average assumptions used to calculate the fair value of options granted during the years ended April\u00a030, 2025 and 2024 were as follows:</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:53.432%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:18.636%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.530%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.902%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Expected term in years</span></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6</span></div></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a06</span></div></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Risk-free interest rates</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3.6% - 4.5%</span></div></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.0% - 4.5%</span></div></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Volatility</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">54% - 63%</span></div></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">63% - 64%</span></div></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Dividend yield</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0%</span></div></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0%</span></div></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-445","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P6Y"}]},{"name":"rpt:f-446","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P6Y"}]},{"name":"rpt:f-447","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.036"}]},{"name":"rpt:f-448","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.045"}]},{"name":"rpt:f-449","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.040"}]},{"name":"rpt:f-450","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.045"}]},{"name":"rpt:f-451","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.54"}]},{"name":"rpt:f-452","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.63"}]},{"name":"rpt:f-453","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.63"}]},{"name":"rpt:f-454","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.64"}]},{"name":"rpt:f-455","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0"}]},{"name":"rpt:f-456","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0"}]},{"name":"rpt:f-457","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"2.86","decimals":2}]},{"name":"rpt:f-458","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"3.75","decimals":2}]},{"name":"rpt:f-459","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"The Company\u2019s stock options activity and related information as of and for the years ended April\u00a030, 2025 and 2024 is as follows:<div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:24.744%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.651%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Directors<br/>and<br/>Employees</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Non-<br/>Employees</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Total</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Weighted<br/>Average<br/>Exercise<br/>Price</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Weighted<br/>Average<br/>Remaining<br/>Contractual<br/>Life (Years)</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Aggregate<br/>Intrinsic<br/>Value</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Outstanding, May 1, 2024</span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,883,166\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">36,331\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,919,497\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.04\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.2</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,172,000\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Granted</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">330,955\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">330,955\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.01\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">9.6</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Exercised</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(183,404)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(183,404)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3.64\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Canceled</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(83,325)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(83,325)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.83\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Forfeited</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(268,375)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(268,375)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6.05\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Expired</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(36,666)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(36,666)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.43\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Outstanding, April 30, 2025</span></div></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,642,351\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">36,331\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,678,682\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.98\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.9</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,434,000\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Vested and expected to vest as of April 30, 2025</span></div></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,642,351\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">36,331\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,678,682\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.98\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.9</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,434,000\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Exercisable as of April 30, 2025</span></div></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,461,067\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5,625\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,466,692\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.86\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.3</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,096,000\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%\">\u00a0</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:24.744%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.647%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.534%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.651%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Directors<br/>and<br/>Employees</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Non-<br/>Employees</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Total</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Weighted<br/>Average<br/>Exercise<br/>Price</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Weighted<br/>Average<br/>Remaining<br/>Contractual<br/>Life (Years)</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Aggregate<br/>Intrinsic<br/>Value</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Outstanding, May 1, 2023</span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,739,336\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">36,331\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,775,667\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.8</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.6</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,683,000\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Granted</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">444,730\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">444,730\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6.08\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">9.5</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"2\" style=\"border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Exercised</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(155,449)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(155,449)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2.31\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Canceled</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(50,535)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(50,535)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.82\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Forfeited</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(40,750)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(40,750)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6.21\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Expired</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(54,166)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(54,166)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">12.78\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Outstanding, April 30, 2024</span></div></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,883,166\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">36,331\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,919,497\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.04\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.2</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,172,000\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Vested and expected to vest as of April 30, 2024</span></div></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,883,166\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">36,331\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,919,497\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.04\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5.2</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,172,000\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Exercisable as of April 30, 2024</span></div></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,481,145\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3,750\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,484,895\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.65\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.2</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,172,000\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-460","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"1883166"}]},{"name":"rpt:f-461","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"36331"}]},{"name":"rpt:f-462","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"1919497"}]},{"name":"rpt:f-463","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"5.04","decimals":2}]},{"name":"rpt:f-464","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P5Y2M12D"}]},{"name":"rpt:f-465","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2172000","decimals":-3}]},{"name":"rpt:f-466","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"330955"}]},{"name":"rpt:f-467","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-468","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"330955"}]},{"name":"rpt:f-469","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"5.01","decimals":2}]},{"name":"rpt:f-470","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedWeightedAverageRemainingContractualTerm","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P9Y7M6D"}]},{"name":"rpt:f-471","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsAggregateIntrinsicValueGranted","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-472","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"183404"}]},{"name":"rpt:f-473","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-474","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"183404"}]},{"name":"rpt:f-475","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"3.64","decimals":2}]},{"name":"rpt:f-476","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCanceledInPeriod","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"83325"}]},{"name":"rpt:f-477","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCanceledInPeriod","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-478","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCanceledInPeriod","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"83325"}]},{"name":"rpt:f-479","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsCanceledInPeriodWeightedAverageExercisePrice","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"5.83","decimals":2}]},{"name":"rpt:f-480","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"268375"}]},{"name":"rpt:f-481","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-482","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"268375"}]},{"name":"rpt:f-483","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"6.05","decimals":2}]},{"name":"rpt:f-484","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"36666"}]},{"name":"rpt:f-485","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-486","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"36666"}]},{"name":"rpt:f-487","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"5.43","decimals":2}]},{"name":"rpt:f-488","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"1642351"}]},{"name":"rpt:f-489","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"36331"}]},{"name":"rpt:f-490","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"1678682"}]},{"name":"rpt:f-491","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"4.98","decimals":2}]},{"name":"rpt:f-492","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsGrantInPeriodWeightedAverageRemainingContractualTerm","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P4Y10M24D"}]},{"name":"rpt:f-493","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4434000","decimals":-3}]},{"name":"rpt:f-494","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"1642351"}]},{"name":"rpt:f-495","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"36331"}]},{"name":"rpt:f-496","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"1678682"}]},{"name":"rpt:f-497","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"4.98","decimals":2}]},{"name":"rpt:f-498","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P4Y10M24D"}]},{"name":"rpt:f-499","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4434000","decimals":-3}]},{"name":"rpt:f-500","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"1461067"}]},{"name":"rpt:f-501","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"5625"}]},{"name":"rpt:f-502","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"1466692"}]},{"name":"rpt:f-503","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"4.86","decimals":2}]},{"name":"rpt:f-504","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P4Y3M18D"}]},{"name":"rpt:f-505","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4096000","decimals":-3}]},{"name":"rpt:f-506","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"1739336"}]},{"name":"rpt:f-507","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"36331"}]},{"name":"rpt:f-508","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"1775667"}]},{"name":"rpt:f-509","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"4.8","decimals":2}]},{"name":"rpt:f-510","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","xbrl:period":"2022-05-01T00:00:00/2023-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P4Y7M6D"}]},{"name":"rpt:f-511","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2683000","decimals":-3}]},{"name":"rpt:f-512","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"444730"}]},{"name":"rpt:f-513","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-514","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"444730"}]},{"name":"rpt:f-515","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"6.08","decimals":2}]},{"name":"rpt:f-516","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedWeightedAverageRemainingContractualTerm","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P9Y6M"}]},{"name":"rpt:f-517","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsAggregateIntrinsicValueGranted","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-518","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"155449"}]},{"name":"rpt:f-519","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-520","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"155449"}]},{"name":"rpt:f-521","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"2.31","decimals":2}]},{"name":"rpt:f-522","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCanceledInPeriod","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"50535"}]},{"name":"rpt:f-523","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCanceledInPeriod","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-524","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsCanceledInPeriod","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"50535"}]},{"name":"rpt:f-525","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsCanceledInPeriodWeightedAverageExercisePrice","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"4.82","decimals":2}]},{"name":"rpt:f-526","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"40750"}]},{"name":"rpt:f-527","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-528","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"40750"}]},{"name":"rpt:f-529","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"6.21","decimals":2}]},{"name":"rpt:f-530","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"54166"}]},{"name":"rpt:f-531","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-532","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"54166"}]},{"name":"rpt:f-533","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"12.78","decimals":2}]},{"name":"rpt:f-534","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"1883166"}]},{"name":"rpt:f-535","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"36331"}]},{"name":"rpt:f-536","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"1919497"}]},{"name":"rpt:f-537","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"5.04","decimals":2}]},{"name":"rpt:f-538","factDimensions":{"xbrl:concept":"csbr:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOptionsGrantInPeriodWeightedAverageRemainingContractualTerm","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P5Y2M12D"}]},{"name":"rpt:f-539","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2172000","decimals":-3}]},{"name":"rpt:f-540","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"1883166"}]},{"name":"rpt:f-541","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"36331"}]},{"name":"rpt:f-542","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"1919497"}]},{"name":"rpt:f-543","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"5.04","decimals":2}]},{"name":"rpt:f-544","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P5Y2M12D"}]},{"name":"rpt:f-545","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2172000","decimals":-3}]},{"name":"rpt:f-546","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:DirectorsAndEmployeesMember"},"factValues":[{"value":"1481145"}]},{"name":"rpt:f-547","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"csbr:NonEmployeesMember"},"factValues":[{"value":"3750"}]},{"name":"rpt:f-548","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"1484895"}]},{"name":"rpt:f-549","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"4.65","decimals":2}]},{"name":"rpt:f-550","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P4Y2M12D"}]},{"name":"rpt:f-551","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2172000","decimals":-3}]},{"name":"rpt:f-552","factDimensions":{"xbrl:concept":"srt:StockRepurchaseProgramAuthorizedAmount1","xbrl:period":"2023-03-30T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5000000"}]},{"name":"rpt:f-553","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockSharesAcquired","xbrl:period":"2023-03-30T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"120300","decimals":-2}]},{"name":"rpt:f-554","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockAcquiredAverageCostPerShare","xbrl:period":"2023-03-30T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"5.73","decimals":2}]},{"name":"rpt:f-555","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockValueAcquiredCostMethod","xbrl:period":"2023-03-30T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"708000","decimals":-3}]},{"name":"rpt:f-556","factDimensions":{"xbrl:concept":"us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4300000","decimals":-5}]},{"name":"rpt:f-557","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockValueAcquiredCostMethod","xbrl:period":"2023-03-30T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","us-gaap:StatementClassOfStockAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-558","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxDisclosureTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Provision for (Benefit from) Income Taxes<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The components of the (benefit) provision for income taxes are as follows (in thousands):</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:49.779%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.632%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"21\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30, 2025</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Federal</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">State</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Foreign</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Total</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Current</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">20\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(95)</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(75)</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">20\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(95)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(75)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:49.779%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.632%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"21\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30, 2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Federal</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">State</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Foreign</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Total</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Current</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">7\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(39)</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(32)</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">7\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(39)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(32)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"text-align:center;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">A reconciliation between the Company\u2019s effective tax rate and the United States statutory tax rate for the years ended April\u00a030, 2025 and 2024 is as follows:</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Federal income tax at statutory rate</span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">21.0\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">21.0\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">%</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">US vs. foreign tax rate difference</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0.2\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(0.1)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">State income tax, net of federal benefit</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.1\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(2.3)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Permanent differences</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(0.6)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0.4\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Decrease in uncertain tax position</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(3.9)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Deferred tax asset adjustment</span></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">48.2\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Change in valuation allowance</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(70.6)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(18.5)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Income tax expense</span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(1.6)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0.5\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred income taxes reflect the net tax effects of temporary differences between the carrying amounts of assets and liabilities for financial reporting purposes and the amounts used for income tax purposes.\u00a0\u00a0Significant components of the Company\u2019s deferred tax assets and liabilities as of April\u00a030, 2025 and 2024 consist of the following (in thousands):</span><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">As of April 30,</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Accrued liabilities</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,633\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,269\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Operating leases</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">250\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">279\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Depreciation and amortization</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(217)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(318)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Stock-based compensation expense</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,212\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3,792\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Capitalized research and development costs</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3,712\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,046\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Net operating loss carry-forward</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">8,248\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">9,038\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total deferred tax assets</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">14,838\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">18,106\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Less: Valuation allowance</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(14,838)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(18,106)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Net deferred tax asset</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:0.730%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:98.900%\"></td><td style=\"width:0.1%\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr></table></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">Management has evaluated the available evidence about future tax planning strategies, taxable income, and other possible sources of realization of deferred tax assets and has established a full valuation allowance against its net deferred tax assets as </span></div><div style=\"text-align:justify\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">of\u00a0April\u00a030, 2025\u00a0and\u00a02024.\u00a0\u00a0For the years ended\u00a0April\u00a030, 2025\u00a0and\u00a02024, the Company recorded a valuation allowance of\u00a0$14.8\u00a0million and $18.1\u00a0million, respectively.\u00a0The net decrease in the valuation allowance of $3.3\u00a0million during the fiscal year ended April 30, 2025, was mainly due to decreases in the deferred tax assets related to the net operating loss carryforward, stock-based compensation, and capitalized research expenses. The net increase in the valuation allowance of $1.4\u00a0million during the fiscal year ended April 30, 2024 was mainly due to increases in the deferred tax assets related to capitalized research expenses and other timing differences. Management continues to assess the realizability of the deferred tax assets at each interim and annual balance sheet date based upon actual and forecasted operating results.</span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">As of\u00a0April\u00a030, 2025\u00a0and\u00a02024, the Company\u2019s estimated U.S. net operating loss carry-forwards were approximately $35.1\u00a0million and\u00a0$38.6\u00a0million, respectively. Net operating losses generated prior to May 1, 2018 have a 20-year carryforward and will begin expiring in\u00a02034\u00a0for federal and\u00a02031\u00a0for state purposes. Losses generated in the fiscal years since the year ended April 30, 2019 may be carried forward indefinitely.\u00a0\u00a0A valuation allowance has been recorded against all of these loss carryforwards.</span></div><div style=\"text-align:justify;text-indent:33.75pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Under the provisions of the Internal Revenue Code, certain substantial changes in the Company\u2019s ownership may result in a limitation on the amount of net operating losses that may be utilized in future years. During the fiscal year ended April 30, 2013, approximately\u00a0$12.0 million\u00a0of the Company\u2019s net operating losses became subject to limitation under Internal Revenue Code Section 382 in connection with an ownership change on January 28, 2013. As a result of the ownership change, the Company\u2019s annual limitation on its use of net operating loss carry-forwards is approximately\u00a0$432,000.</span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0The Company files income tax returns in various jurisdictions with varying statutes of limitations.\u00a0\u00a0As of\u00a0April\u00a030, 2025, the earliest tax year still subject to examination for state purposes is fiscal 2021.\u00a0\u00a0The Company\u2019s tax years for periods ending April 30, 2014 and forward are subject to examination by the United States and certain states due to the carry-forward of unutilized net operating losses.</span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The following table indicates the changes to the Company\u2019s uncertain tax positions for the period and years ended April\u00a030, 2025 and 2024 in thousands:</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Balance, beginning of the year</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">181\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">181\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Addition based on tax positions related to prior years</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Payment made on tax positions related to prior years</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Expiration of statute of limitations</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(181)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Addition based on tax positions related to current year</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Balance, end of year</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">181\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">As of April 30, 2024, the above amounts of $181,000 was included in other long-term liabilities.</span></div>","language":"en-us"}]},{"name":"rpt:f-559","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The components of the (benefit) provision for income taxes are as follows (in thousands):</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:49.779%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.632%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"21\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30, 2025</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Federal</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">State</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Foreign</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Total</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Current</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">20\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(95)</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(75)</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">20\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(95)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(75)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:49.779%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.632%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"21\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30, 2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Federal</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">State</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Foreign</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Total</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Current</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">7\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(39)</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(32)</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">7\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(39)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(32)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-560","factDimensions":{"xbrl:concept":"us-gaap:CurrentFederalTaxExpenseBenefit","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-561","factDimensions":{"xbrl:concept":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20000","decimals":-3}]},{"name":"rpt:f-562","factDimensions":{"xbrl:concept":"us-gaap:CurrentForeignTaxExpenseBenefit","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-95000","decimals":-3}]},{"name":"rpt:f-563","factDimensions":{"xbrl:concept":"us-gaap:CurrentIncomeTaxExpenseBenefit","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-75000","decimals":-3}]},{"name":"rpt:f-564","factDimensions":{"xbrl:concept":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperations","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-565","factDimensions":{"xbrl:concept":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperations","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20000","decimals":-3}]},{"name":"rpt:f-566","factDimensions":{"xbrl:concept":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperations","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-95000","decimals":-3}]},{"name":"rpt:f-567","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-75000","decimals":-3}]},{"name":"rpt:f-568","factDimensions":{"xbrl:concept":"us-gaap:CurrentFederalTaxExpenseBenefit","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-569","factDimensions":{"xbrl:concept":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7000","decimals":-3}]},{"name":"rpt:f-570","factDimensions":{"xbrl:concept":"us-gaap:CurrentForeignTaxExpenseBenefit","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-39000","decimals":-3}]},{"name":"rpt:f-571","factDimensions":{"xbrl:concept":"us-gaap:CurrentIncomeTaxExpenseBenefit","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-32000","decimals":-3}]},{"name":"rpt:f-572","factDimensions":{"xbrl:concept":"us-gaap:FederalIncomeTaxExpenseBenefitContinuingOperations","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-573","factDimensions":{"xbrl:concept":"us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperations","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7000","decimals":-3}]},{"name":"rpt:f-574","factDimensions":{"xbrl:concept":"us-gaap:ForeignIncomeTaxExpenseBenefitContinuingOperations","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-39000","decimals":-3}]},{"name":"rpt:f-575","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-32000","decimals":-3}]},{"name":"rpt:f-576","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">A reconciliation between the Company\u2019s effective tax rate and the United States statutory tax rate for the years ended April\u00a030, 2025 and 2024 is as follows:</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Federal income tax at statutory rate</span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">21.0\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">21.0\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">%</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">US vs. foreign tax rate difference</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0.2\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(0.1)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">State income tax, net of federal benefit</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4.1\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(2.3)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Permanent differences</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(0.6)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0.4\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Decrease in uncertain tax position</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(3.9)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Deferred tax asset adjustment</span></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">48.2\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Change in valuation allowance</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(70.6)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(18.5)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Income tax expense</span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(1.6)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0.5\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-577","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.210"}]},{"name":"rpt:f-578","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.210"}]},{"name":"rpt:f-579","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.002","decimals":3}]},{"name":"rpt:f-580","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"-0.001","decimals":3}]},{"name":"rpt:f-581","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.041","decimals":3}]},{"name":"rpt:f-582","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"-0.023","decimals":3}]},{"name":"rpt:f-583","factDimensions":{"xbrl:concept":"csbr:EffectiveIncomeTaxRateReconciliationPermanentDifferences","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.006","decimals":3}]},{"name":"rpt:f-584","factDimensions":{"xbrl:concept":"csbr:EffectiveIncomeTaxRateReconciliationPermanentDifferences","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"-0.004","decimals":3}]},{"name":"rpt:f-585","factDimensions":{"xbrl:concept":"csbr:EffectiveIncomeTaxRateReconciliationIncreaseInUncertainTaxPosition","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.039","decimals":3}]},{"name":"rpt:f-586","factDimensions":{"xbrl:concept":"csbr:EffectiveIncomeTaxRateReconciliationIncreaseInUncertainTaxPosition","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0","decimals":3}]},{"name":"rpt:f-587","factDimensions":{"xbrl:concept":"csbr:EffectiveIncomeTaxRateReconciliationDeferredTaxAssetAdjustmentPercent","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.482","decimals":3}]},{"name":"rpt:f-588","factDimensions":{"xbrl:concept":"csbr:EffectiveIncomeTaxRateReconciliationDeferredTaxAssetAdjustmentPercent","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0","decimals":3}]},{"name":"rpt:f-589","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"-0.706","decimals":3}]},{"name":"rpt:f-590","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"-0.185","decimals":3}]},{"name":"rpt:f-591","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"-0.016","decimals":3}]},{"name":"rpt:f-592","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.005","decimals":3}]},{"name":"rpt:f-593","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Significant components of the Company\u2019s deferred tax assets and liabilities as of April\u00a030, 2025 and 2024 consist of the following (in thousands):<table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">As of April 30,</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Accrued liabilities</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,633\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,269\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Operating leases</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">250\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">279\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Depreciation and amortization</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(217)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(318)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Stock-based compensation expense</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,212\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3,792\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Capitalized research and development costs</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">3,712\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,046\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Net operating loss carry-forward</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">8,248\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">9,038\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total deferred tax assets</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">14,838\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">18,106\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Less: Valuation allowance</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(14,838)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(18,106)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:14pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Net deferred tax asset</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table>","language":"en-us"}]},{"name":"rpt:f-594","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1633000","decimals":-3}]},{"name":"rpt:f-595","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1269000","decimals":-3}]},{"name":"rpt:f-596","factDimensions":{"xbrl:concept":"csbr:DeferredTaxAssetsTaxDeferredExpenseOperatingLeases","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"250000","decimals":-3}]},{"name":"rpt:f-597","factDimensions":{"xbrl:concept":"csbr:DeferredTaxAssetsTaxDeferredExpenseOperatingLeases","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"279000","decimals":-3}]},{"name":"rpt:f-598","factDimensions":{"xbrl:concept":"csbr:DeferredTaxLiabilityDeferredExpenseDepreciationAndAmortization","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"217000","decimals":-3}]},{"name":"rpt:f-599","factDimensions":{"xbrl:concept":"csbr:DeferredTaxLiabilityDeferredExpenseDepreciationAndAmortization","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"318000","decimals":-3}]},{"name":"rpt:f-600","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1212000","decimals":-3}]},{"name":"rpt:f-601","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3792000","decimals":-3}]},{"name":"rpt:f-602","factDimensions":{"xbrl:concept":"csbr:DeferredTaxLiabilitiesCapitalizedResearchAndDevelopmentCosts","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3712000","decimals":-3}]},{"name":"rpt:f-603","factDimensions":{"xbrl:concept":"csbr:DeferredTaxLiabilitiesCapitalizedResearchAndDevelopmentCosts","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4046000","decimals":-3}]},{"name":"rpt:f-604","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8248000","decimals":-3}]},{"name":"rpt:f-605","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9038000","decimals":-3}]},{"name":"rpt:f-606","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsGross","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"14838000","decimals":-3}]},{"name":"rpt:f-607","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsGross","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"18106000","decimals":-3}]},{"name":"rpt:f-608","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsValuationAllowance","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"14838000","decimals":-3}]},{"name":"rpt:f-609","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsValuationAllowance","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"18106000","decimals":-3}]},{"name":"rpt:f-610","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsLiabilitiesNet","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-611","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsLiabilitiesNet","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-612","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsValuationAllowance","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"14800000","decimals":-5}]},{"name":"rpt:f-613","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsValuationAllowance","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"18100000","decimals":-5}]},{"name":"rpt:f-614","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-3300000","decimals":-5}]},{"name":"rpt:f-615","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1400000","decimals":-5}]},{"name":"rpt:f-616","factDimensions":{"xbrl:concept":"us-gaap:OperatingLossCarryforwards","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"35100000","decimals":-5}]},{"name":"rpt:f-617","factDimensions":{"xbrl:concept":"us-gaap:OperatingLossCarryforwards","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"38600000","decimals":-5}]},{"name":"rpt:f-618","factDimensions":{"xbrl:concept":"csbr:OperatingLossCarryforwardsLimitationsOnUseAmount","xbrl:period":"2013-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12000000.0","decimals":-5}]},{"name":"rpt:f-619","factDimensions":{"xbrl:concept":"csbr:OperatingLossCarryforwardsLimitationsOnUseAmount","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"432000","decimals":-3}]},{"name":"rpt:f-620","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify;text-indent:9pt\"><span style=\"background-color:#ffffff;color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The following table indicates the changes to the Company\u2019s uncertain tax positions for the period and years ended April\u00a030, 2025 and 2024 in thousands:</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Balance, beginning of the year</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">181\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">181\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Addition based on tax positions related to prior years</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Payment made on tax positions related to prior years</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Expiration of statute of limitations</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(181)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Addition based on tax positions related to current year</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Balance, end of year</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">181\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-621","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"181000","decimals":-3}]},{"name":"rpt:f-622","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2023-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"181000","decimals":-3}]},{"name":"rpt:f-623","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-624","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-625","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-626","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-627","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"181000","decimals":-3}]},{"name":"rpt:f-628","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-629","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-630","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-631","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-632","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"181000","decimals":-3}]},{"name":"rpt:f-633","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"181000","decimals":-3}]},{"name":"rpt:f-634","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Earnings Per Share<div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">A reconciliation of net income and number of shares used in computing basic and diluted earnings per share was as follows:</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Basic and diluted net income (loss) per share computation (dollars in thousands):</span></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Net income (loss) attributable to common stockholders</span></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,701\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(7,276)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Weighted Average common shares - basic and diluted</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">13,659,786\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">13,547,604\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Basic and diluted net income (loss) per share</span></td><td style=\"border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0.34\u00a0</span></td><td style=\"border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(0.54)</span></td><td style=\"border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Diluted income (loss) per share computation</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Net income (loss) attributable to common stockholders</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,701\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(7,276)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Weighted Average common shares</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">13,659,786\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">13,547,604\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Incremental shares from assumed exercise of stock options</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">606,995\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Adjusted weighted average share \u2013 diluted</span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">14,266,781\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">13,547,604\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Diluted net income (loss) per share</span></td><td style=\"border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0.33\u00a0</span></td><td style=\"border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(0.54)</span></td><td style=\"border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The following table reflects the total potential stock-based instruments outstanding at April\u00a030, 2025 and 2024 that could have an effect on the future computation of dilution per common share.  These figures were not included in the above calculation as, to do so, would be antidilutive:</span></div><div style=\"margin-top:5pt;text-align:justify\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Stock options</span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">126,353\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,919,497\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total common stock equivalents</span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">126,353\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,919,497\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-635","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">A reconciliation of net income and number of shares used in computing basic and diluted earnings per share was as follows:</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Basic and diluted net income (loss) per share computation (dollars in thousands):</span></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Net income (loss) attributable to common stockholders</span></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,701\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(7,276)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Weighted Average common shares - basic and diluted</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">13,659,786\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">13,547,604\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Basic and diluted net income (loss) per share</span></td><td style=\"border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0.34\u00a0</span></td><td style=\"border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(0.54)</span></td><td style=\"border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Diluted income (loss) per share computation</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Net income (loss) attributable to common stockholders</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,701\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(7,276)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Weighted Average common shares</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">13,659,786\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">13,547,604\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Incremental shares from assumed exercise of stock options</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">606,995\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Adjusted weighted average share \u2013 diluted</span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">14,266,781\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">13,547,604\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Diluted net income (loss) per share</span></td><td style=\"border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">0.33\u00a0</span></td><td style=\"border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(0.54)</span></td><td style=\"border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-636","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4701000","decimals":-3}]},{"name":"rpt:f-637","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-7276000","decimals":-3}]},{"name":"rpt:f-638","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13659786","decimals":0}]},{"name":"rpt:f-639","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13547604","decimals":0}]},{"name":"rpt:f-640","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.34","decimals":2}]},{"name":"rpt:f-641","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.54","decimals":2}]},{"name":"rpt:f-642","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4701000","decimals":-3}]},{"name":"rpt:f-643","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-7276000","decimals":-3}]},{"name":"rpt:f-644","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13659786","decimals":0}]},{"name":"rpt:f-645","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13547604","decimals":0}]},{"name":"rpt:f-646","factDimensions":{"xbrl:concept":"us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"606995","decimals":0}]},{"name":"rpt:f-647","factDimensions":{"xbrl:concept":"us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0","decimals":0}]},{"name":"rpt:f-648","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"14266781","decimals":0}]},{"name":"rpt:f-649","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13547604","decimals":0}]},{"name":"rpt:f-650","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.33","decimals":2}]},{"name":"rpt:f-651","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.54","decimals":2}]},{"name":"rpt:f-652","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The following table reflects the total potential stock-based instruments outstanding at April\u00a030, 2025 and 2024 that could have an effect on the future computation of dilution per common share.  These figures were not included in the above calculation as, to do so, would be antidilutive:</span></div><div style=\"margin-top:5pt;text-align:justify\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.706%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.630%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.533%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.631%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Stock options</span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">126,353\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,919,497\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total common stock equivalents</span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">126,353\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,919,497\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-653","factDimensions":{"xbrl:concept":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"126353","decimals":0}]},{"name":"rpt:f-654","factDimensions":{"xbrl:concept":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"1919497","decimals":0}]},{"name":"rpt:f-655","factDimensions":{"xbrl:concept":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"126353","decimals":0}]},{"name":"rpt:f-656","factDimensions":{"xbrl:concept":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"1919497","decimals":0}]},{"name":"rpt:f-657","factDimensions":{"xbrl:concept":"us-gaap:RelatedPartyTransactionsDisclosureTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Related Party Transactions<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Related party transactions include transactions between the Company and its shareholders, management, or affiliates.\u00a0\u00a0The following transactions were in the normal course of operations and were measured at the exchange amount, which is the amount of consideration established and agreed to by the parties.</span></div><div style=\"text-align:justify;text-indent:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Consulting Services</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">For fiscal years ended April\u00a030, 2025 and 2024, the Company paid a member of its Board of Directors $12,000 and $36,000, respectively for consulting services unrelated to his duties as a board member.  All of the amounts paid to this related party have been recognized in expense in the period the services were performed within general and administrative expenses in the accompanying consolidated statements of operations.</span></div>","language":"en-us"}]},{"name":"rpt:f-658","factDimensions":{"xbrl:concept":"us-gaap:RelatedPartyTransactionAmountsOfTransaction","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:TitleOfIndividualAxis":"srt:BoardOfDirectorsChairmanMember","srt:CounterpartyNameAxis":"csbr:BoardMemberOneMember"},"factValues":[{"value":"12000","decimals":-3}]},{"name":"rpt:f-659","factDimensions":{"xbrl:concept":"us-gaap:RelatedPartyTransactionAmountsOfTransaction","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:TitleOfIndividualAxis":"srt:BoardOfDirectorsChairmanMember","srt:CounterpartyNameAxis":"csbr:BoardMemberOneMember"},"factValues":[{"value":"36000","decimals":-3}]},{"name":"rpt:f-660","factDimensions":{"xbrl:concept":"us-gaap:LesseeFinanceLeasesTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Leases<div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company accounts for its leases under ASC 842.\u00a0Under this guidance, arrangements meeting the definition of a lease are classified as operating or financing leases, and are recorded on the consolidated balance sheet as both an operating lease ROU asset and operating lease liability, calculated by discounting fixed lease payments over the lease term at the rate implicit in the lease or the Company\u2019s incremental borrowing rate. Lease liabilities are increased by interest and reduced by payments each period, and the right of use asset is amortized over the lease term. For operating leases, interest on the lease liability and the amortization of the right of use asset result in straight-line rent expense over the lease term. Variable lease expenses, if any, are recorded when incurred. The Company has elected to apply the short-term lease exemption practical expedient for each class of underlying assets and excludes short-term leases having initial terms of 12 months or less. The Company recognizes rent expense on a straight-line basis over the lease term for these short-term leases. The Company has determined that no material embedded leases exist. Under ASC 842, the Company determines if an arrangement is a lease at inception. ROU assets and liabilities are recognized at commencement date based on the present value of remaining lease payments over the lease term. For this purpose, the Company considers only payments that are fixed and determinable at the time of commencement. As the </span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Company's leases do not provide an implicit rate, the Company uses an incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.</span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Operating Leases</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:13.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company currently leases certain office equipment and its office and laboratory facilities under non-cancelable operating leases. Rent expense for operating leases is recognized on a straight-line basis over the lease term from the lease commencement date through the scheduled expiration date. Rent expenses totaled $1.8 million for the years ended April\u00a030, 2025 and 2024. </span></div><div style=\"text-align:justify;text-indent:15.75pt\"><span><br/></span></div><div style=\"text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company leases the following facilities:</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"padding-left:18pt;text-align:justify;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt\">One University Plaza, Suite 307, Hackensack, New Jersey 07601, which, since November 2011, serves as the Company\u2019s corporate headquarters. The lease expires in November 2026. The Company recognized $75,000 and $77,000 of rent expense relative to this lease for fiscal 2025 and 2024, respectively.</span></div><div style=\"padding-left:18pt;text-align:justify;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt\">1330 Piccard Drive Suite 025, Rockville, MD 20850, which consists of laboratory and office space where the Company conducts operations related to its primary service offerings. The Company executed the original lease in January 2017. The lease was amended to expand the premises and extend the expiration date in March 2020 and again in December 2020.  The operating commencement date was August 11, 2017. This lease expires in February 2029. The Company recognized $1.7\u00a0million of rent expense for both fiscal 2025 and 2024.</span></div><div style=\"padding-left:18pt;text-align:justify;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt\">VIA LEONE XIII, 14, Milan, Italy, which consists of laboratory and office space where the Company conducts operations related to its flow cytometry service offerings. During fiscal 2023, the Company executed its current lease for this office and laboratory space. The lease expires October 31, 2028. The Company recognized $50,000 of rent expense associated with this lease in Italy for both fiscal 2025 and 2024. </span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:4.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"> ROU assets and lease liabilities related to the Company's current operating leases are as follows (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center;text-indent:9pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:77.631%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:48.805%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.947%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.948%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2025</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Operating lease right-of-use assets, net<br/></span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5,080\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6,252\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:top\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Current portion of operating lease liabilities<br/></span></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,471\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,337\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Non-current portion of operating lease liabilities</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,634\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6,093\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"text-align:justify\"><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">As of April 30, 2025, the weighted average remaining operating lease term and the weighted average discount rate were\u00a0 3.75 years and\u00a05.89%, respectively.  As of April 30, 2024, the weighted average remaining operating lease term and the weighted average discount rate were\u00a04.7 years and\u00a05.88%, respectively.  </span></div><div><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Future minimum lease payments for operating leases due each fiscal year as follows (in thousands):</span></div><div><span><br/></span></div><div style=\"margin-top:5pt;text-align:center;text-indent:9pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:54.385%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.168%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.632%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2026</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,956\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2027</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,922\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2028</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,871\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2029</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,392\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Thereafter</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0Total undiscounted liabilities </span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">11,141\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Less: Imputed interest </span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(5,036)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Present value of minimum lease payments</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6,105\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The composition of total lease cost for the years ended April 30, 2025 and 2024 were as follows (in thousands): </span></div><div style=\"padding-left:13.5pt;text-align:justify\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:85.233%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:48.128%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:21.713%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.486%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:20.169%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:4.904%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Operating lease costs</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,730\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,680\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Financing lease costs:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0Amortization of leased assets</span></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">150\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">146\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0Interest on lease liabilities </span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">10\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">15\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total lease costs</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,890\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,841\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:3pt double #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:3pt double #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr></table></div><div><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Refer to Note 4, Property and Equipment, for more information on financing leases.</span></div>","language":"en-us"}]},{"name":"rpt:f-661","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeasesTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Leases<div style=\"text-align:justify;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company accounts for its leases under ASC 842.\u00a0Under this guidance, arrangements meeting the definition of a lease are classified as operating or financing leases, and are recorded on the consolidated balance sheet as both an operating lease ROU asset and operating lease liability, calculated by discounting fixed lease payments over the lease term at the rate implicit in the lease or the Company\u2019s incremental borrowing rate. Lease liabilities are increased by interest and reduced by payments each period, and the right of use asset is amortized over the lease term. For operating leases, interest on the lease liability and the amortization of the right of use asset result in straight-line rent expense over the lease term. Variable lease expenses, if any, are recorded when incurred. The Company has elected to apply the short-term lease exemption practical expedient for each class of underlying assets and excludes short-term leases having initial terms of 12 months or less. The Company recognizes rent expense on a straight-line basis over the lease term for these short-term leases. The Company has determined that no material embedded leases exist. Under ASC 842, the Company determines if an arrangement is a lease at inception. ROU assets and liabilities are recognized at commencement date based on the present value of remaining lease payments over the lease term. For this purpose, the Company considers only payments that are fixed and determinable at the time of commencement. As the </span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Company's leases do not provide an implicit rate, the Company uses an incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.</span></div><div style=\"text-align:justify;text-indent:9pt\"><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Operating Leases</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:13.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company currently leases certain office equipment and its office and laboratory facilities under non-cancelable operating leases. Rent expense for operating leases is recognized on a straight-line basis over the lease term from the lease commencement date through the scheduled expiration date. Rent expenses totaled $1.8 million for the years ended April\u00a030, 2025 and 2024. </span></div><div style=\"text-align:justify;text-indent:15.75pt\"><span><br/></span></div><div style=\"text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Company leases the following facilities:</span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u00a0</span></div><div style=\"padding-left:18pt;text-align:justify;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt\">One University Plaza, Suite 307, Hackensack, New Jersey 07601, which, since November 2011, serves as the Company\u2019s corporate headquarters. The lease expires in November 2026. The Company recognized $75,000 and $77,000 of rent expense relative to this lease for fiscal 2025 and 2024, respectively.</span></div><div style=\"padding-left:18pt;text-align:justify;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt\">1330 Piccard Drive Suite 025, Rockville, MD 20850, which consists of laboratory and office space where the Company conducts operations related to its primary service offerings. The Company executed the original lease in January 2017. The lease was amended to expand the premises and extend the expiration date in March 2020 and again in December 2020.  The operating commencement date was August 11, 2017. This lease expires in February 2029. The Company recognized $1.7\u00a0million of rent expense for both fiscal 2025 and 2024.</span></div><div style=\"padding-left:18pt;text-align:justify;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt\">VIA LEONE XIII, 14, Milan, Italy, which consists of laboratory and office space where the Company conducts operations related to its flow cytometry service offerings. During fiscal 2023, the Company executed its current lease for this office and laboratory space. The lease expires October 31, 2028. The Company recognized $50,000 of rent expense associated with this lease in Italy for both fiscal 2025 and 2024. </span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:4.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"> ROU assets and lease liabilities related to the Company's current operating leases are as follows (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center;text-indent:9pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:77.631%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:48.805%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.947%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.948%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2025</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Operating lease right-of-use assets, net<br/></span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5,080\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6,252\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:top\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Current portion of operating lease liabilities<br/></span></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,471\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,337\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Non-current portion of operating lease liabilities</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,634\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6,093\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"text-align:justify\"><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">As of April 30, 2025, the weighted average remaining operating lease term and the weighted average discount rate were\u00a0 3.75 years and\u00a05.89%, respectively.  As of April 30, 2024, the weighted average remaining operating lease term and the weighted average discount rate were\u00a04.7 years and\u00a05.88%, respectively.  </span></div><div><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Future minimum lease payments for operating leases due each fiscal year as follows (in thousands):</span></div><div><span><br/></span></div><div style=\"margin-top:5pt;text-align:center;text-indent:9pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:54.385%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.168%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.632%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2026</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,956\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2027</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,922\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2028</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,871\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2029</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,392\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Thereafter</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0Total undiscounted liabilities </span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">11,141\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Less: Imputed interest </span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(5,036)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Present value of minimum lease payments</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6,105\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The composition of total lease cost for the years ended April 30, 2025 and 2024 were as follows (in thousands): </span></div><div style=\"padding-left:13.5pt;text-align:justify\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:85.233%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:48.128%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:21.713%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.486%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:20.169%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:4.904%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Operating lease costs</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,730\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,680\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Financing lease costs:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0Amortization of leased assets</span></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">150\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">146\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0Interest on lease liabilities </span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">10\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">15\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total lease costs</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,890\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,841\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:3pt double #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:3pt double #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr></table></div><div><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Refer to Note 4, Property and Equipment, for more information on financing leases.</span></div>","language":"en-us"}]},{"name":"rpt:f-662","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1800000","decimals":-5}]},{"name":"rpt:f-663","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1800000","decimals":-5}]},{"name":"rpt:f-664","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis":"csbr:CorporateHeadquartersMember"},"factValues":[{"value":"75000","decimals":-3}]},{"name":"rpt:f-665","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis":"csbr:CorporateHeadquartersMember"},"factValues":[{"value":"77000","decimals":-3}]},{"name":"rpt:f-666","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis":"csbr:RockvilleMDMember"},"factValues":[{"value":"1700000","decimals":-5}]},{"name":"rpt:f-667","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis":"csbr:RockvilleMDMember"},"factValues":[{"value":"1700000","decimals":-5}]},{"name":"rpt:f-668","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis":"csbr:MilanItalyMember"},"factValues":[{"value":"50000","decimals":-3}]},{"name":"rpt:f-669","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis":"csbr:MilanItalyMember"},"factValues":[{"value":"50000","decimals":-3}]},{"name":"rpt:f-670","factDimensions":{"xbrl:concept":"csbr:AssetsAndLiabilitiesLesseeTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"ROU assets and lease liabilities related to the Company's current operating leases are as follows (in thousands):<div style=\"margin-top:5pt;text-align:center;text-indent:9pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:77.631%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:48.805%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.947%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.948%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2025</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">April 30, 2024</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Operating lease right-of-use assets, net<br/></span></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">5,080\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6,252\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:top\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Current portion of operating lease liabilities<br/></span></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,471\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,337\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Non-current portion of operating lease liabilities</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">4,634\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6,093\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-671","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseRightOfUseAsset","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5080000","decimals":-3}]},{"name":"rpt:f-672","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseRightOfUseAsset","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6252000","decimals":-3}]},{"name":"rpt:f-673","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1471000","decimals":-3}]},{"name":"rpt:f-674","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1337000","decimals":-3}]},{"name":"rpt:f-675","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityNoncurrent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4634000","decimals":-3}]},{"name":"rpt:f-676","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityNoncurrent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6093000","decimals":-3}]},{"name":"rpt:f-677","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P3Y9M"}]},{"name":"rpt:f-678","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.0589","decimals":4}]},{"name":"rpt:f-679","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"P4Y8M12D"}]},{"name":"rpt:f-680","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","xbrl:period":"2024-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"0.0588","decimals":4}]},{"name":"rpt:f-681","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Future minimum lease payments for operating leases due each fiscal year as follows (in thousands):</span></div><div><span><br/></span></div><div style=\"margin-top:5pt;text-align:center;text-indent:9pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:54.385%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:74.168%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:23.632%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2026</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,956\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2027</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,922\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2028</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,871\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2029</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">2,392\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Thereafter</span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0Total undiscounted liabilities </span></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">11,141\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Less: Imputed interest </span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">(5,036)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Present value of minimum lease payments</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">6,105\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-682","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2956000","decimals":-3}]},{"name":"rpt:f-683","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2922000","decimals":-3}]},{"name":"rpt:f-684","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2871000","decimals":-3}]},{"name":"rpt:f-685","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2392000","decimals":-3}]},{"name":"rpt:f-686","factDimensions":{"xbrl:concept":"csbr:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-687","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11141000","decimals":-3}]},{"name":"rpt:f-688","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5036000","decimals":-3}]},{"name":"rpt:f-689","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiability","xbrl:period":"2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6105000","decimals":-3}]},{"name":"rpt:f-690","factDimensions":{"xbrl:concept":"us-gaap:LeaseCostTableTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:justify\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The composition of total lease cost for the years ended April 30, 2025 and 2024 were as follows (in thousands): </span></div><div style=\"padding-left:13.5pt;text-align:justify\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:85.233%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:48.128%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:21.713%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.486%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:20.169%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:4.904%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">Year Ended April 30,</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Operating lease costs</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,730\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,680\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Financing lease costs:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0Amortization of leased assets</span></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">150\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">146\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0Interest on lease liabilities </span></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">10\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">15\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">Total lease costs</span></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,890\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">1,841\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr style=\"height:15pt\"><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:3pt double #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:3pt double #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-691","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseCost","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1730000","decimals":-3}]},{"name":"rpt:f-692","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseCost","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1680000","decimals":-3}]},{"name":"rpt:f-693","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"150000","decimals":-3}]},{"name":"rpt:f-694","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseRightOfUseAssetAmortization","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"146000","decimals":-3}]},{"name":"rpt:f-695","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseInterestExpense","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10000","decimals":-3}]},{"name":"rpt:f-696","factDimensions":{"xbrl:concept":"us-gaap:FinanceLeaseInterestExpense","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"15000","decimals":-3}]},{"name":"rpt:f-697","factDimensions":{"xbrl:concept":"us-gaap:LeaseCost","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1890000","decimals":-3}]},{"name":"rpt:f-698","factDimensions":{"xbrl:concept":"us-gaap:LeaseCost","xbrl:period":"2023-05-01T00:00:00/2024-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1841000","decimals":-3}]},{"name":"rpt:f-699","factDimensions":{"xbrl:concept":"us-gaap:SubsequentEventsTextBlock","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856","xbrl:language":"en-us"},"factValues":[{"value":"Subsequent Events<div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Appointment of New Chief Executive Officer </span></div><div><span><br/></span></div><div style=\"text-align:justify;text-indent:13.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">Subsequent to the balance sheet date of April 30, 2025, the Board of Directors announced the appointment of Robert Brainin as the Company's new Chief Executive Officer, effective August 25, 2025. Mr. Brainin, who has served on the Company's Board of Directors since 2021 and will remain on the Board as a Director, will succeed Dr. Ronnie Morris, who has led the Company as CEO since 2017. Dr. Morris will transition to the role of Executive Chairman of the Board, supporting the leadership transition while remaining actively involved in the Company\u2019s strategic initiatives. </span></div><div style=\"text-align:justify\"><span><br/></span></div><div style=\"text-align:justify;text-indent:13.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\">Mr. Brainin has entered into an Employment Agreement with the Company. Pursuant to the agreement, he will receive an annual base salary of $500,000 and will have the opportunity to earn a discretionary target incentive bonus of 75% of his base salary. He will also receive multiple equity awards, including 225,000 options to purchase the Company\u2019s common stock, which will vest over a four-year period, and 475,000 options to purchase the Company\u2019s common stock, which will vest at varying time points and are based on varying performance criteria. </span></div><div><span><br/></span></div><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Tax Update </span></div><div><span><br/></span></div><div style=\"text-indent:13.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">On July 4, 2025, the One Big Beautiful Bill was enacted, introducing significant and wide-ranging changes to the U.S. tax system. These include expanded deductions for certain expenses, the restoration of 100% bonus depreciation, and immediate expensing for U.S.-based research and development. The legislation also reinstates EBITDA-based interest deductions and makes several business tax incentives permanent.  </span></div>The Company is currently assessing the potential impact of this legislation on its financial position, results of operations, and cash flows. In accordance with U.S. GAAP, the effects, if any, will be recognized in the period of enactment.","language":"en-us"}]},{"name":"rpt:f-700","factDimensions":{"xbrl:concept":"us-gaap:OfficersCompensation","xbrl:period":"2025-08-25T00:00:00/2025-08-26T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"iso4217:USD","srt:TitleOfIndividualAxis":"srt:ChiefFinancialOfficerMember","us-gaap:SubsequentEventTypeAxis":"us-gaap:SubsequentEventMember"},"factValues":[{"value":"500000"}]},{"name":"rpt:f-701","factDimensions":{"xbrl:concept":"csbr:InsentiveBonusPercentage","xbrl:period":"2025-08-25T00:00:00/2025-08-26T00:00:00","xbrl:entity":"cik:0000771856","srt:TitleOfIndividualAxis":"srt:ChiefFinancialOfficerMember","us-gaap:SubsequentEventTypeAxis":"us-gaap:SubsequentEventMember"},"factValues":[{"value":"0.75"}]},{"name":"rpt:f-702","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber","xbrl:period":"2025-08-25T00:00:00/2025-08-26T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"srt:ChiefFinancialOfficerMember","us-gaap:SubsequentEventTypeAxis":"us-gaap:SubsequentEventMember"},"factValues":[{"value":"225000"}]},{"name":"rpt:f-703","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","xbrl:period":"2025-08-25T00:00:00/2025-08-26T00:00:00","xbrl:entity":"cik:0000771856","srt:TitleOfIndividualAxis":"srt:ChiefFinancialOfficerMember","us-gaap:SubsequentEventTypeAxis":"us-gaap:SubsequentEventMember"},"factValues":[{"value":"P4Y"}]},{"name":"rpt:f-704","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","xbrl:period":"2025-08-26T00:00:00","xbrl:entity":"cik:0000771856","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"srt:ChiefFinancialOfficerMember","us-gaap:SubsequentEventTypeAxis":"us-gaap:SubsequentEventMember"},"factValues":[{"value":"475000"}]},{"name":"rpt:f-705","factDimensions":{"xbrl:concept":"ecd:InsiderTrdPoliciesProcAdoptedFlag","xbrl:period":"2024-05-01T00:00:00/2025-05-01T00:00:00","xbrl:entity":"cik:0000771856"},"factValues":[{"value":"true"}]}]}}