| 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 |  |  |