| Condensed Consolidated Statements of Changes in Stockholders' Deficit (Unaudited) - USD ($)
 | Total | Common Stock | Additional Paid-in Capital | Accumulated Deficit | Accumulated Other Comprehensive Loss | 
| Beginning balance, amount at Dec. 31, 2020 | $ (24,796,965) | $ 21,971 | $ 10,798,536 | $ (35,655,163) | $ 37,691 | 
| Beginning balance, shares at Dec. 31, 2020 |  | 21,970,638 |  |  |  | 
| Net income (loss) | 88,737 |  |  | 88,737 |  | 
| Foreign currency translation gain (loss) | (79,207) |  |  |  | (79,207) | 
| Stock options exercised | 10,999 | $ 50 | 10,949 |  |  | 
| Stock options exercised, share |  | 50,000 |  |  |  | 
| Share-based compensation | 316,640 | $ 55 | 316,585 |  |  | 
| Share based compensation, share |  | 55,000 |  |  |  | 
| Ending balance, amount at Mar. 31, 2021 | (24,459,796) | $ 22,076 | 11,126,070 | (35,566,426) | (41,516) | 
| Ending balance, shares at Mar. 31, 2021 |  | 22,075,638 |  |  |  | 
| Beginning balance, amount at Dec. 31, 2020 | (24,796,965) | $ 21,971 | 10,798,536 | (35,655,163) | 37,691 | 
| Beginning balance, shares at Dec. 31, 2020 |  | 21,970,638 |  |  |  | 
| Net income (loss) | 1,513,428 |  |  |  |  | 
| Foreign currency translation gain (loss) | (139,716) |  |  |  |  | 
| Ending balance, amount at Sep. 30, 2021 | (22,230,548) | $ 22,300 | 11,990,912 | (34,141,735) | (102,025) | 
| Ending balance, shares at Sep. 30, 2021 |  | 22,299,804 |  |  |  | 
| Beginning balance, amount at Mar. 31, 2021 | (24,459,796) | $ 22,076 | 11,126,070 | (35,566,426) | (41,516) | 
| Beginning balance, shares at Mar. 31, 2021 |  | 22,075,638 |  |  |  | 
| Net income (loss) | 550,455 |  |  | 550,455 |  | 
| Foreign currency translation gain (loss) | 21,207 |  |  |  | 21,207 | 
| Stock options exercised | 15,501 | $ 50 | 15,451 |  |  | 
| Stock options exercised, share |  | 50,000 |  |  |  | 
| Share-based compensation | 441,444 | $ 55 | 441,389 |  |  | 
| Share based compensation, share |  | 55,000 |  |  |  | 
| Ending balance, amount at Jun. 30, 2021 | (23,431,189) | $ 22,181 | 11,582,910 | (35,015,971) | (20,309) | 
| Ending balance, shares at Jun. 30, 2021 |  | 22,180,638 |  |  |  | 
| Net income (loss) | 874,236 |  |  | 874,236 |  | 
| Foreign currency translation gain (loss) | (81,716) |  |  |  | (81,716) | 
| Stock options exercised | 62,816 | $ 119 | 62,697 |  |  | 
| Stock options exercised, share |  | 119,166 |  |  |  | 
| Share-based compensation | 345,305 |  | 345,305 |  |  | 
| Ending balance, amount at Sep. 30, 2021 | (22,230,548) | $ 22,300 | 11,990,912 | (34,141,735) | (102,025) | 
| Ending balance, shares at Sep. 30, 2021 |  | 22,299,804 |  |  |  | 
| Beginning balance, amount at Dec. 31, 2021 | (17,286,423) | $ 23,524 | 16,380,597 | (33,543,351) | (147,193) | 
| Beginning balance, shares at Dec. 31, 2021 |  | 23,523,969 |  |  |  | 
| Net income (loss) | (13,962) |  |  | (13,962) |  | 
| Foreign currency translation gain (loss) | (41,949) |  |  |  | (41,949) | 
| Stock options exercised | 195,456 | $ 220 | 195,236 |  |  | 
| Stock options exercised, share |  | 219,999 |  |  |  | 
| Share-based compensation | 310,002 | $ 19 | 309,983 |  |  | 
| Share based compensation, share |  | 18,965 |  |  |  | 
| Ending balance, amount at Mar. 31, 2022 | (16,836,876) | $ 23,763 | 16,885,816 | (33,557,313) | (189,142) | 
| Ending balance, shares at Mar. 31, 2022 |  | 23,762,933 |  |  |  | 
| Beginning balance, amount at Dec. 31, 2021 | (17,286,423) | $ 23,524 | 16,380,597 | (33,543,351) | (147,193) | 
| Beginning balance, shares at Dec. 31, 2021 |  | 23,523,969 |  |  |  | 
| Net income (loss) | (1,828,293) |  |  |  |  | 
| Foreign currency translation gain (loss) | (233,405) |  |  |  |  | 
| Ending balance, amount at Sep. 30, 2022 | (18,505,952) | $ 24,327 | 17,221,963 | (35,371,644) | (380,598) | 
| Ending balance, shares at Sep. 30, 2022 |  | 24,327,426 |  |  |  | 
| Beginning balance, amount at Mar. 31, 2022 | (16,836,876) | $ 23,763 | 16,885,816 | (33,557,313) | (189,142) | 
| Beginning balance, shares at Mar. 31, 2022 |  | 23,762,933 |  |  |  | 
| Net income (loss) | (1,115,641) |  |  | (1,115,641) |  | 
| Foreign currency translation gain (loss) | (113,585) |  |  |  | (113,585) | 
| Stock options exercised | 734,313 | $ 672 | 733,641 |  |  | 
| Stock options exercised, share |  | 671,665 |  |  |  | 
| Surrender of options | (1,280,133) | $ (366) | (1,279,767) |  |  | 
| Surrender of options, shares |  | 365,751 |  |  |  | 
| Share-based compensation | 315,408 | $ 47 | 315,361 |  |  | 
| Share based compensation, share |  | 47,236 |  |  |  | 
| Ending balance, amount at Jun. 30, 2022 | (18,296,514) | $ 24,116 | 16,655,051 | (34,672,954) | (302,727) | 
| Ending balance, shares at Jun. 30, 2022 |  | 24,116,083 |  |  |  | 
| Net income (loss) | (698,690) |  |  | (698,690) |  | 
| Foreign currency translation gain (loss) | (77,871) |  |  |  | (77,871) | 
| Stock options exercised | 237,983 | $ 182 | 237,801 |  |  | 
| Stock options exercised, share |  | 182,168 |  |  |  | 
| Share-based compensation | 329,140 | $ 29 | 329,111 |  |  | 
| Share based compensation, share |  | 29,175 |  |  |  | 
| Ending balance, amount at Sep. 30, 2022 | $ (18,505,952) | $ 24,327 | $ 17,221,963 | $ (35,371,644) | $ (380,598) | 
| Ending balance, shares at Sep. 30, 2022 |  | 24,327,426 |  |  |  |