Health::SHC - Verify Smart Health Card Signature and Extract data.
use Health::SHC::Validate; my $shc_valid = Health::SHC::Validate->new(); # Use builtin trusted keys my $data = $shc_valid->get_valid_data($qr); # Use your own keys to validate - you may trust them my $data = $shc_valid->get_valid_data($qr, $keys_json); use Health::SHC; my $sh = Health::SHC->new(); my @patients = $sh->get_patients($data); foreach (@patients) { print "Patient: ", $_->{given}, " ", $_->{middle}, " ", $_->{family}, "\n"; } my @immunizations = $sh->get_immunizations($data); print "Vacination Provider", "\t", "Date", "\n"; foreach (@immunizations) { print $_->{provider}, "\t", $_->{date}, "\n"; } my @vaccines = $sh->get_vaccines($data); print "Manufacturer\tLot Number\tCode\tCode System\n"; foreach (@vaccines) { print $_->{manufacturer}, "\t\t", $_->{lotNumber}, "\t\t"; my $codes = $_->{codes}; foreach my $tmp (@$codes) { print $tmp->{code}, "\t", $tmp->{system}, "\t"; } print "\n"; }
This perl module can extract a Smart Health Card's data from PDFs or image file. The extracted shc:/ Smart Health Card URI is decoded and the signature checked. The module provide several methods to retrieve the data in a more usable format.
Health::SHC supports QR codes for the following regions:
* Québec * British Columbia * Saskatchewan * Alberta * Newfoundland and Labrador * Nova Scotia * Ontario * Northwest Territories * Yukon * New Brunswick/Nouveau-Brunswick * Japan
The keys in share/keys.json (and supported regions) are based on the keys included with https://github.com/obrassard/shc-extractor.
Additional regions can be added with a pull request or by logging an issue at https://github.com/timlegge/perl-Health-SHC/issues.
The following copyright notice applies to all the files provided in this distribution, including binary files, unless explicitly noted otherwise.
Copyright 2021 Timothy Legge <timlegge@cpan.org>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Constructor; see OPTIONS above.
Arguments: $data: string Smart Health Card data without the "shc:/" prefix
Returns: hash containing the Patient information
Returns: hash containing the Immunization data
Returns: hash containing the Vaccine data
To install Health::SHC, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Health::SHC
CPAN shell
perl -MCPAN -e shell install Health::SHC
For more information on module installation, please visit the detailed CPAN module installation guide.