| Stockholders' Equity (Tables)
 | 9 Months Ended | 
| Jan. 31, 2021 | 
|---|
| Schedule of Restricted Stock Unit Activity | A summary of the Company’s RSU activity which were granted under the 2012 and 2018 Equity Incentive Plans during the nine months ended JanuaryÌý31, 2021 is presented below: 
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
| Restricted Stock Units |  | Number of Shares |  | Weighted Average Grant Price |  
| Unvested balance outstanding, April 30, 2020 |  | 643,175Ìý |  |  | $ | 5.64Ìý |  |  
| Granted |  | 251,521Ìý |  |  | 9.82Ìý |  |  
| Exercised |  | —Ìý |  |  | —Ìý |  |  
| Forfeits |  | (19,250) |  |  | 8.94Ìý |  |  
| Vested |  | (206,109) |  |  | 12.46Ìý |  |  
| Expired |  | —Ìý |  |  | —Ìý |  |  
| Unvested balance outstanding, January 31, 2021 |  | 669,337Ìý |  |  | $ | 6.95Ìý |  |  
|  |  |  |  |  |  | 
| Summary of Warrant Activity | A summary of the Company’s warrant activity during the nine months ended JanuaryÌý31, 2021 is presented below: 
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
| Warrants |  | Number of Shares
 |  | Weighted Average
 Exercise
 Price
 |  | Weighted Average
 Remaining
 Contractual
 Term
 |  | Aggregate Intrinsic
 Value
 |  
| Balance Outstanding, April 30, 2020 |  | 566,223Ìý |  |  | $ | 6.22Ìý |  |  | 3.17 |  | $ | 950,100Ìý |  |  
| Granted |  | —Ìý |  |  | $ | —Ìý |  |  | —Ìý |  |  | —Ìý |  |  
| Exercised |  | (192,049) |  |  | $ | 5.60Ìý |  |  | —Ìý |  |  | —Ìý |  |  
| Surrendered |  | —Ìý |  |  | $ | —Ìý |  |  | —Ìý |  |  | —Ìý |  |  
| Expired |  | —Ìý |  |  | $ | —Ìý |  |  | —Ìý |  |  | —Ìý |  |  
| Balance Outstanding, January 31, 2021 |  | 374,174Ìý |  |  | $ | 6.37Ìý |  |  | 2.14 |  | $ | 1,151,369Ìý |  |  
|  |  |  |  |  |  |  |  |  |  
| Exercisable, January 31, 2021 |  | 374,174Ìý |  |  | $ | 6.37Ìý |  |  | 2.14 |  | $ | 1,151,369Ìý |  |  | 
| Warrant | Ìý | 
| Share-based Payment Arrangement, Option, Exercise Price Range | 
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
| OUTSTANDING WARRANTS |  | EXERCISABLE WARRANTS |  
| Exercise Price
 |  | Weighted Average
 Exercise
 Price
 |  | Outstanding No. of
 Warrants
 |  | Weighted Average
 Exercise
 Price
 |  | Weighted Average
 Remaining Life
 In Years
 |  | Exercisable No. of
 Warrants
 |  
| $ | 4.89Ìý |  |  | $ | 4.89Ìý |  |  | 50,000Ìý |  |  | $ | 4.89Ìý |  |  | 3.44 |  | 50,000Ìý |  |  
| $ | 6.00Ìý |  |  | $ | 6.00Ìý |  |  | 100,000Ìý |  |  | $ | 6.00Ìý |  |  | 3.09 |  | 100,000Ìý |  |  
| $ | 6.87Ìý |  |  | $ | 6.87Ìý |  |  | 224,174Ìý |  |  | $ | 6.87Ìý |  |  | 1.48 |  | 224,174Ìý |  |  
| Ìý |  |  |  | 374,174Ìý |  |  | Ìý |  | Ìý |  | 374,174Ìý |  |  | 
| Stock Incentive Plan and Stock Option Grants to Employees and Directors | Ìý | 
| Share-based Payment Arrangement, Option, Exercise Price Range | 
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
| OUTSTANDING OPTIONS |  | EXERCISABLE OPTIONS |  
| Exercise Price
 |  | Weighted Average
 Exercise
 Price
 |  | Outstanding No. of
 Options
 |  | Weighted Average
 Exercise
 Price
 |  | Weighted Average
 Remaining Life
 In Years
 |  | Exercisable No. of
 Options
 |  
|  |  |  |  |  |  |  |  |  |  |  |  
| $1.57 to $2.10 |  | $ | 1.92Ìý |  |  | 29,167Ìý |  |  | $ | 1.92Ìý |  |  | 0.44 |  | 29,167Ìý |  |  
|  |  |  |  |  |  |  |  |  |  |  |  
| $2.28 to $2.76 |  | $ | 2.76Ìý |  |  | 11,415Ìý |  |  | $ | 2.76Ìý |  |  | 0.67 |  | 11,415Ìý |  |  
|  |  |  |  |  |  |  |  |  |  |  |  
| $3.24 to $4.38 |  | $ | 3.82Ìý |  |  | 188,639Ìý |  |  | $ | 3.75Ìý |  |  | 1.32 |  | 146,804Ìý |  |  
|  |  |  |  |  |  |  |  |  |  |  |  
| $4.50 to $5.20 |  | $ | 4.94Ìý |  |  | 362,818Ìý |  |  | $ | 4.95Ìý |  |  | 1.82 |  | 297,714Ìý |  |  
|  |  |  |  |  |  |  |  |  |  |  |  
| $5.95 to $6.28 |  | $ | 6.10Ìý |  |  | 66,000Ìý |  |  | $ | 6.10Ìý |  |  | 1.47 |  | 66,000Ìý |  |  
|  |  |  |  |  |  |  |  |  |  |  |  
| $7.17 to $7.55 |  | $ | 7.44Ìý |  |  | 444,425Ìý |  |  | $ | 7.43Ìý |  |  | 2.62 |  | 329,175Ìý |  |  
|  |  |  |  |  |  |  |  |  |  |  |  
| $8.57 to $9.07 |  | $ | 8.98Ìý |  |  | 157,749Ìý |  |  | $ | 8.98Ìý |  |  | 1.93 |  | 157,749Ìý |  |  
|  |  |  |  |  |  |  |  |  |  |  |  
| Options only |  |  |  | 1,260,213Ìý |  |  |  |  |  |  | 1,038,024Ìý |  |  | 
| Summary of Stock Option Activity | A summary of the Company’s stock option activity for employees and directors during the nine months ended JanuaryÌý31, 2021, is presented below: 
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
| Options |  | Number of Shares
 |  | Weighted Average
 Exercise
 Price
 |  | Weighted Average
 Remaining
 Contractual
 Term
 |  | Aggregate Intrinsic
 Value
 |  
| Balance Outstanding, April 30, 2020 |  | 2,740,539Ìý |  |  | $ | 4.62Ìý |  |  | 1.97 |  | $ | 9,146,198Ìý |  |  
| Granted |  | —Ìý |  |  | $ | —Ìý |  |  | —Ìý |  |  | —Ìý |  |  
| Exercised |  | (1,400,832) |  |  | $ | 10.80Ìý |  |  | —Ìý |  |  | —Ìý |  |  
| Forfeited |  | (7,585) |  |  | $ | 6.23Ìý |  |  | —Ìý |  |  | —Ìý |  |  
| Expired |  | (71,909) |  |  | $ | 3.98Ìý |  |  | —Ìý |  |  | —Ìý |  |  
| Balance Outstanding, JanuaryÌý31, 2021 |  | 1,260,213Ìý |  |  | $ | 6.13Ìý |  |  | 2.08 |  | $ | 4,184,115Ìý |  |  
|  |  |  |  |  |  |  |  |  |  
| Exercisable, JanuaryÌý31, 2021 |  | 1,038,024Ìý |  |  | $ | 6.14Ìý |  |  | 1.94 |  | $ | 3,432,509Ìý |  |  |