Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/timlegge/perl-health-shc
Perl module for Smart Health Card Validation and Data Extraction
https://github.com/timlegge/perl-health-shc
immunization jwt-token perl shc smarthealthcard vaccine
Last synced: 8 days ago
JSON representation
Perl module for Smart Health Card Validation and Data Extraction
- Host: GitHub
- URL: https://github.com/timlegge/perl-health-shc
- Owner: timlegge
- Created: 2021-12-25T18:04:16.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-21T02:45:38.000Z (2 months ago)
- Last Synced: 2024-10-27T11:12:25.316Z (about 2 months ago)
- Topics: immunization, jwt-token, perl, shc, smarthealthcard, vaccine
- Language: Perl
- Homepage: https://metacpan.org/pod/Health::SHC
- Size: 160 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- Changelog: Changes
Awesome Lists containing this project
README
NAME
Health::SHC - Verify Smart Health Card Signature and Extract data.SYNOPSIS
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";
}DESCRIPTION
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
* JapanThe 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.COPYRIGHT
The following copyright notice applies to all the files provided in this
distribution, including binary files, unless explicitly noted otherwise.Copyright 2021 - 2024 Timothy Legge
LICENCE
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.METHODS
new(...)
Constructor; see OPTIONS above.get_patients($data)
Arguments: $data: string Smart Health Card data without the "shc:/"
prefixReturns: hash containing the Patient information
get_immunizations($data)
Arguments: $data: string Smart Health Card data without the "shc:/"
prefixReturns: hash containing the Immunization data
get_vaccines($data)
Arguments: $data: string Smart Health Card data without the "shc:/"
prefixReturns: hash containing the Vaccine data