Stockholders' Equity - Stock Options (Details)  | 
1 Months Ended | 12 Months Ended | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 
 Dec. 09, 2019  
$ / shares  
shares 
 | 
 Aug. 01, 2019  
USD ($)  
subsidiary  
$ / shares  
shares 
 | 
 May 13, 2019  
$ / shares  
shares 
 | 
 Apr. 30, 2019  
USD ($)  
employee  
$ / shares  
shares 
 | 
 Dec. 24, 2018  
USD ($)  
$ / shares  
shares 
 | 
 Dec. 13, 2018  
USD ($)  
subsidiary  
$ / shares  
shares 
 | 
 Sep. 06, 2018  
USD ($)  
shares 
 | 
 Jul. 19, 2018  
USD ($)  
$ / shares  
shares 
 | 
 Apr. 30, 2020  
USD ($)  
$ / shares  
shares 
 | 
 Apr. 30, 2020  
USD ($)  
shares 
 | 
 Apr. 30, 2019  
USD ($)  
employee  
$ / shares 
 | 
 Jan. 31, 2020  
USD ($) 
 | 
 Dec. 30, 2019  
shares 
 | 
 Jul. 31, 2019  
USD ($) 
 | 
 Mar. 13, 2012  
shares 
 | 
|
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Compensation expense | $ | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 1,289,546 | $ 1,190,385 | Ìý | Ìý | Ìý | Ìý | 
| Unrecognized compensation costs | $ | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 724,965 | $ 724,965 | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Weighted average recognition period | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 1 year 8 months 12 days | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Payment Arrangement, Option | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | 61,000 | 59,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Exercise price (in dollars per share) | $ / shares | $ 6.92 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Fair value of options granted | $ | Ìý | $ 83,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 116,000 | Ìý | Ìý | Ìý | 
| Weighted average exercise price of options granted (in dollars per share) | $ / shares | Ìý | $ 3.99 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Number of employees granted options | subsidiary | Ìý | 26 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Recognition period of options | Ìý | 36 months | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Non-qualified stock options to certain former directors | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | 30,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Fair value of options granted | $ | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 33,600 | Ìý | 
| Term of options | Ìý | Ìý | five | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Exercise price of options (in dollars per share) | $ / shares | Ìý | Ìý | $ 4.12 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Executive Officer | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Stock-based compensation expense | $ | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 0 | $ 0 | Ìý | Ìý | Ìý | Ìý | 
| Employees | Share-based Payment Arrangement, Option | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 6,900 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Exercise price (in dollars per share) | $ / shares | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 4.58 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Fair value of options granted | $ | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 11,088 | $ 11,088 | Ìý | Ìý | Ìý | Ìý | Ìý | 
| 44 Employees | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | Ìý | 65,750 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Number of employees granted options | employee | Ìý | Ìý | Ìý | 44 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 44 | Ìý | Ìý | Ìý | Ìý | 
| Exercise price of options (in dollars per share) | $ / shares | Ìý | Ìý | Ìý | $ 4.56 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 4.56 | Ìý | Ìý | Ìý | Ìý | 
| Fair value of options | $ | Ìý | Ìý | Ìý | $ 117,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Options term | Ìý | Ìý | Ìý | 36 months | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Three Directors | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | Ìý | Ìý | 61,667 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Director One | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | Ìý | Ìý | 41,667 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Weighted average exercise price of options granted (in dollars per share) | $ / shares | Ìý | Ìý | Ìý | Ìý | $ 5.14 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Two Other Directors | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | Ìý | Ìý | 10,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Director | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Fair value of options | $ | Ìý | Ìý | Ìý | Ìý | $ 123,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Options term | Ìý | Ìý | Ìý | Ìý | 36 months | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| 61 Employees | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | Ìý | Ìý | Ìý | 89,125 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Weighted average exercise price of options granted (in dollars per share) | $ / shares | Ìý | Ìý | Ìý | Ìý | Ìý | $ 5.20 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Number of employees granted options | subsidiary | Ìý | Ìý | Ìý | Ìý | Ìý | 61 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Fair value of options | $ | Ìý | Ìý | Ìý | Ìý | Ìý | $ 136,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Options term | Ìý | Ìý | Ìý | Ìý | Ìý | 36 months | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Chief Executive Officer | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Weighted average recognition period | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 5 years | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 200,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Exercise price of options granted (in dollars per share) | $ / shares | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 7.55 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Chief Operating Officer | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 180,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| CAO | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 180,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Board of Directors Chairman | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 560,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Weighted average exercise price of options granted (in dollars per share) | $ / shares | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 2.56 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Fair value of options | $ | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 1,433,600 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Chief Financial Officer | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Weighted average recognition period | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 5 years | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 180,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Fair value of options | $ | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 257,400 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Options term | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 36 months | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Chief Accounting Officer | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Weighted average recognition period | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 5 years | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Granted (in shares) | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 50,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Fair value of options | $ | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | $ 71,500 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| 2012 Equity Incentive Plan | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Number of shares authorized (in shares) | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 3,500,000 | 
| Shares reserved for future issuance (in shares) | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 179,380 | 179,380 | Ìý | Ìý | Ìý | Ìý | Ìý | 
| 2018 Equity Incentive Plan | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 
| Number of shares authorized (in shares) | Ìý | Ìý | Ìý | Ìý | Ìý | 500,000 | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 1,100,000 | Ìý | Ìý | 
| Shares reserved for future issuance (in shares) | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | Ìý | 47,277 | 47,277 | Ìý | Ìý | Ìý | Ìý | Ìý |