FHIR Chat · Smart health Cards · australia

Stream: australia

Topic: Smart health Cards


view this post on Zulip Grahame Grieve (Sep 22 2021 at 07:47):

An implementer here in Australia is pushing out a Smart health cards implementation to the public as soon as possible (weeks). People will be able to download there vaccination record from their vaccination hub as a Smart Health Card.

I've just met with the team, and one of the things we discussed was coding the vaccinations. What we decided to do was publish them using CVX codes, along with a consumer friendly display, and that I'd publish and maintain a CVX / AIR map, along with a value set.

So:
A candidate value set, with recommended consumer friendly terms for the vaccines: https://github.com/HealthIntersections/australian-fhir-support/blob/main/fhir/ValueSet/shc-cvx-covid.json

A mapping from AIR to CVX and vice-versa:https://github.com/HealthIntersections/australian-fhir-support/blob/main/fhir/ConceptMap/covid-cvx-air-mapping.json

view this post on Zulip Grahame Grieve (Sep 22 2021 at 07:47):

comments welcome

view this post on Zulip Grahame Grieve (Sep 22 2021 at 07:48):

or PRs

view this post on Zulip Grahame Grieve (Sep 22 2021 at 07:53):

And also, on that subject:

view this post on Zulip Grahame Grieve (Sep 22 2021 at 07:53):

The Board of HL7 Australia invites you to join a free Webinar on Tuesday 5 October 2021 at 09:00 AEDT to hear from key thinkers and implementors of SMART Health Cards and FHIR resources.

The subject of verifiable COVID immunisation and lab certificates is a very fast-moving subject here in Australia and New Zealand.

In the USA, Canada, and elsewhere, government immunisation registries, healthcare providers, EHR vendors, private employers, and technology companies are building an infrastructure based on SMART Health Cards and FHIR resources.

This work is coordinated through the VCI consortium (https://vci.org/), supported by HL7. Come and listen to the panel of key thinkers and implementors for this work, including leaders from the Health IT community in USA. They'll describe their intent, how the specification works, and how it's been adopted in the Apple and Android ecosystems. This technology is in production today.

view this post on Zulip Grahame Grieve (Sep 22 2021 at 07:53):

For full details and to register go to:
https://lnkd.in/gQj77KMF

view this post on Zulip Peter Jordan (Sep 22 2021 at 09:02):

Grahame Grieve said:

comments welcome

I have some reservations about consumer-friendly terms for Vaccines that are abbreviated trade names and don't include the name of the target disease. In NZ, we have 'Pfizer/BioNTech' as the term for CVX 208 on our Vaccination Cards, but it's not actually the name of the vaccine. Both the long, short and product names contain 'COVID-19' see here. So I'd suggest using 'Pfizer-BioNTech COVID-19 Vaccine' rather than 'Pfizer (Comirnaty)' which is a manufacturer and trade name'.

view this post on Zulip Grahame Grieve (Sep 22 2021 at 10:10):

certainly not BioNTech. Just Pfizer. But maybe Covid? I'm open to perspectives on this

view this post on Zulip Max Masnick (Sep 22 2021 at 10:16):

Can you talk more about the use case for including the display names in the SHC, rather than relying on a lookup?

view this post on Zulip Max Masnick (Sep 22 2021 at 10:19):

For context, currently the FHIR IG says display SHOULD NOT be populated. The thinking here is that Verifier apps or wallets will handle the code lookup/display, and we want to minimize payload size in the SHC.

We're getting into some of the technical details over in the SHC stream, but I want to make sure I understand the Australia use case specifically to make sure we're considering this fully for the IG.

view this post on Zulip Grahame Grieve (Sep 22 2021 at 10:40):

well, our analysis of the workflow is that when the smart health cards are displayed, we must have a meaningful name to the australian consumer displayed. We cannot rely on that - even if the spec says that should be able to.

view this post on Zulip Grahame Grieve (Sep 22 2021 at 10:40):

But if we populate display ourselves, we get the display that we need

view this post on Zulip Grahame Grieve (Sep 22 2021 at 11:03):

ok. here's a 118n value set:

view this post on Zulip Grahame Grieve (Sep 22 2021 at 11:03):

{
  "resourceType": "ValueSet",
  "id": "shc-covid-cvx",
  "language" : "en",
  "url": "http://healthintersections.com.au/fhir/ValueSet/shc-covid-cvx",
  "version": "4.0.1",
  "name": "ShcCovidCvxCodesAustralia",
  "title": "CVX Covid Codes for use in Australian Smart Health Cards",
  "status": "draft",
  "date": "2021-09-22",
  "publisher": "Health Intersections",
  "contact": [
    {
      "name": "Grahame Grieve",
      "telecom": [
        {
          "system": "email",
          "value": "grahame@healthintersections.com.au"
        }
      ]
    }
  ],
  "description": "A list of CVX codes with recommended consumer suitable displays for use in Australian Smart Health Cards",
  "jurisdiction": [
    {
      "coding": [
        {
          "system": "urn:iso:std:iso:3166",
          "code": "AU"
        }
      ]
    }
  ],
  "copyright": "Creative Commons 0",
  "compose": {
    "include": [
      {
        "system": "http://hl7.org/fhir/sid/cvx",
        "concept": [
          {
            "code": "210",
            "display": "COVID-19 vaccine, vector-nr, rS-ChAdOx1, PF, 0.5 mL",
            "designation" : [{
               "language" : "en-AU",
               "use" : {
                 "system" : "http://example.org/fhir/CodeSystem/designation-use",
                 "use" : "consumer-friendly"
               },
               "value" : "AstraZeneca (Vaxzevria)"
            }]
          },
          {
            "code": "208",
            "display": "COVID-19, mRNA, LNP-S, PF, 30 mcg/0.3 mL dose",
            "designation" : [{
               "language" : "en-AU",
               "use" : {
                 "system" : "http://example.org/fhir/CodeSystem/designation-use",
                 "use" : "consumer-friendly"
               },
               "value" : "Pfizer (Comirnaty)"
            }, {
               "language" : "en-US",
               "use" : {
                 "system" : "http://example.org/fhir/CodeSystem/designation-use",
                 "use" : "consumer-friendly"
               },
               "value" : "Pfizer/Covid"
            }, {
               "language" : "en-NZ",
               "use" : {
                 "system" : "http://example.org/fhir/CodeSystem/designation-use",
                 "use" : "consumer-friendly"
               },
               "value" : "Pfizer-BioNTech COVID-19 Vaccine"
            }]
          },
          {
            "code": "207",
            "display": "COVID-19, mRNA, LNP-S, PF, 100 mcg or 50 mcg dose",
            "designation" : [{
               "language" : "en-AU",
               "use" : {
                 "system" : "http://example.org/fhir/CodeSystem/designation-use",
                 "use" : "consumer-friendly"
               },
               "value" : "Moderna (Spikevax)"
            }, {
               "language" : "en-US",
               "use" : {
                 "system" : "http://example.org/fhir/CodeSystem/designation-use",
                 "use" : "consumer-friendly"
               },
               "value" : "Pfizer/Moderna"
            }]
          }
        ]
      }
    ]
  }
}

view this post on Zulip Grahame Grieve (Sep 22 2021 at 11:04):

so far, that has only english. The base language of the resource is englsih, so the unadorned display is in english. In addition, the codes all of an Australian consumer friendly display, and also some example UK and NZ terms.

view this post on Zulip Grahame Grieve (Sep 22 2021 at 11:04):

adding other languages etc is a linear extension of this idea

view this post on Zulip Max Masnick (Sep 22 2021 at 11:10):

Thank you, it's very helpful to see this.

view this post on Zulip Grahame Grieve (Sep 22 2021 at 11:11):

I should have put that in the other stream. I'll clone it there

view this post on Zulip Angus Millar (Sep 23 2021 at 04:13):

I would also like Covid lab results discussed in the Australian context. At Sonic we are fielding multiple requests for much the same think from a myriad of different vendors. We can do them all, we need a consistent approach.

view this post on Zulip Grahame Grieve (Sep 23 2021 at 04:30):

'do them'? what exactly do you mean?

view this post on Zulip Angus Millar (Sep 23 2021 at 04:33):

That should have been, "We can't do them all". I mean each are trying to solve the same problem with many different approaches, different payloads, different encodings, but generally they are all trying to prove/ validate a
Neg covid test result.

view this post on Zulip Angus Millar (Sep 23 2021 at 04:42):

IATA, AOkPass, Perth Airport & Singapore Airlines, others. Each have approached us wanting a way to confirm a Neg Covid test. Each come with their own custom design of how to do it. As I say, we can't built them all. We need a single approach in Australia so we can drive the conversation and say, we do this, will that work for you.

view this post on Zulip Grahame Grieve (Sep 23 2021 at 06:41):

well, smart health cards are a potential solution. or a potential extra one. I don't know. But you can just say, we're going to issue smart health cards, figure it out from there. If you want an example of a negative and a positive health card, let me know.

view this post on Zulip Angus Millar (Sep 23 2021 at 06:43):

We need a central public key repository, such as VCI for OZ

view this post on Zulip Grahame Grieve (Sep 23 2021 at 06:43):

and they can figure it from there, btw. If you issue cards, and get your crypto lined up, and register with vci.org, then bingo, there's a free app anyone can use to verify that the card hasn't been tampered with, and what it says, and it's pretty straight to read it programatically

view this post on Zulip Grahame Grieve (Sep 23 2021 at 06:43):

no we just use vci directly. we can

view this post on Zulip Angus Millar (Sep 23 2021 at 06:45):

I've already got the implementation: https://github.com/angusmillar/SmartHealthCard

view this post on Zulip Angus Millar (Sep 23 2021 at 06:45):

So can we use VCI here in oz

view this post on Zulip Grahame Grieve (Sep 23 2021 at 06:45):

great. so all you have to do is publish your jwks and register with vci. What are you putting in the card?

view this post on Zulip Angus Millar (Sep 23 2021 at 06:48):

Well Covid 19 test results, we still need to work through the detailed mapping to the conformance profile. We are getting the mappings together across all our Oz labs now

view this post on Zulip Angus Millar (Sep 23 2021 at 06:49):

Does that free app work in Oz, this is the common pass app?

view this post on Zulip Grahame Grieve (Sep 23 2021 at 06:49):

yep it works fine.

view this post on Zulip Angus Millar (Sep 23 2021 at 06:50):

Ok, maybe we are closer than we think then

view this post on Zulip Grahame Grieve (Sep 23 2021 at 06:50):

I'd like to help with the mapping

view this post on Zulip Angus Millar (Sep 23 2021 at 06:51):

I need to chase down the VCI part, I emailed asking questions and had no reply

view this post on Zulip Angus Millar (Sep 23 2021 at 06:51):

I'm sure they are flatout with the US stuff

view this post on Zulip Grahame Grieve (Sep 23 2021 at 06:51):

what do you want to know?

view this post on Zulip Angus Millar (Sep 23 2021 at 06:52):

How to get to the position of registering my public key JWKS

view this post on Zulip Angus Millar (Sep 23 2021 at 06:53):

I've followed all I can from their web site

view this post on Zulip Angus Millar (Sep 23 2021 at 06:54):

Signed up, emailed them. Next thing was to go to one of their monthly meetings in the wee hours

view this post on Zulip Grahame Grieve (Sep 23 2021 at 06:56):

the process is roughly:

PRs are mostly only a few days old

view this post on Zulip Grahame Grieve (Sep 23 2021 at 06:56):

https://github.com/the-commons-project/vci-directory/pulls

view this post on Zulip Grahame Grieve (Sep 23 2021 at 06:58):

I'd love to test it out, but I'm not a candidate, since I'm only a test server

view this post on Zulip Grahame Grieve (Sep 23 2021 at 06:58):

you don't need to be a vci member to be in the registry

view this post on Zulip Angus Millar (Sep 23 2021 at 07:04):

Thanks Grahame, that makes things much clearer. I think we can do this. We really need to do this. We are also in the middle of the IATA Travel pass integration work, we are currently getting the mappings together from across the difference labs. So that will put us in a good position to also do the SHC

view this post on Zulip Grahame Grieve (Sep 23 2021 at 07:09):

what LOINC codes are you using?

view this post on Zulip Angus Millar (Sep 23 2021 at 07:12):

We have them, but I can't look them up now. I'm actually on my phone, first day of my 10 day Holliday in Port Douglas.

view this post on Zulip Angus Millar (Sep 23 2021 at 07:14):

Sorry, Victorians probably don't want to hear that, lol

view this post on Zulip Grahame Grieve (Sep 23 2021 at 07:14):

holiday? ahh I remember. Seems like a long time ago but I suppose I can't complain ;-)

view this post on Zulip Max Masnick (Sep 23 2021 at 20:49):

Hi @Angus Millar -- I'm one of the authors of the SMART Health Card FHIR IG, including the lab test results profile. Happy to be helpful however we can.

view this post on Zulip Angus Millar (Sep 25 2021 at 05:37):

@Max Masnick Thanks for the offer Max, i will certainly keep you in mind once I get down to the Nitty gritty of it.

view this post on Zulip Jim Steel (Sep 27 2021 at 00:04):

A shame about the CVX codes. Was it too much of a blowout in size to include AIR codes in addition?

view this post on Zulip Grahame Grieve (Sep 27 2021 at 20:05):

no, and it's possible to include AIR codes. But they're not going to supported by consumer level apps that come from outside Australia, and there's a nice tight 1:1 mapping with CVX for the vaccines that count, so you can leave AIR out and just use CVX

view this post on Zulip Grahame Grieve (Oct 11 2021 at 22:53):

From an email I was sent:

We are pleased to update SHC are now live for patients who have been vaccinated at Sydney Olympic Park vaccination centre, THey can view / download PDF through our patient login portal.

https://vaccination-staging.slhd.nsw.gov.au/vc/SydneyOlympicPark/2

view this post on Zulip Grahame Grieve (Oct 27 2021 at 22:02):

if you have an Australian Covid Passport (that is, an international one), then you can convert it to a Smart Health Card.

You need PostMan (for now). Post your icao covid passport as the body to https://test.fhir.org/icao/process, just as the body, with a Content-Type header of application/json, and you will get a valid Smart healthcard back containing the same information, signed by test.fhir.org.

you can ask for a reply in one of three formats using the Accept header:

application/jwt - the SHC as a JWT
application/smart-health-card - the SHC as a qr code source
image/png - the actual qr code as a PNG

note that I only support Australian covid passports right now, but I can add other countries - if there are any (I'm told there isn't) - if people send me a sample covid passport so I can check it. (The Australian covid passport is not valid against the spec...)

If you're interested, the source for the conversion is found here: https://github.com/HealthIntersections/fhirserver/blob/gg-wip/library/fhir/fhir_icao.pas

view this post on Zulip Josh Mandel (Oct 27 2021 at 22:18):

Super cool! Is application/smart-health-card a JSON file with an array of JWS inside and a .smart-health-card extension?

view this post on Zulip Grahame Grieve (Oct 27 2021 at 22:19):

actually, not right now. It's just shc:/.... but it's on my list to fix that up

view this post on Zulip Grahame Grieve (Nov 05 2021 at 04:31):

http://www.healthintersections.com.au/?p=3085

view this post on Zulip Grahame Grieve (Nov 23 2021 at 00:40):

{
    "kty": "EC",
    "d": "SH9KlGYTJyc3RCzrxeD5CU5H2wnOKxzukdqwEbtJH3A",
    "use": "sig",
    "crv": "P-256",
    "kid": "R1Mn_7XO0J1ev3AjxXcgAK19l0mtTj1hH5D3ac-3PYg",
    "x": "Ud2ChsLurFu9GSWKOApVzmrkNI8Y5mdXIqgx5VcOTF4",
    "y": "LtV1UGjSPVQOd0jb94AZTPvaQODjhSd91rhTpWKuxmU",
    "alg": "ES256"
}

view this post on Zulip Grahame Grieve (Nov 23 2021 at 00:40):

-----BEGIN PRIVATE KEY-----
MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCBIf0qUZhMnJzdELOvF
4PkJTkfbCc4rHO6R2rARu0kfcA==
-----END PRIVATE KEY-----

view this post on Zulip Angus Millar (Nov 23 2021 at 00:47):

This link may also be useful to people in the SMART Health Card track, it contains links to libraries to assist in creating the QR Codes in different languages : Libraries for SMART Health Cards

view this post on Zulip Angus Millar (Nov 23 2021 at 00:52):

I also found this online tool for checking all the technical parts of a SMART Health Card very useful: VerifierPortal

view this post on Zulip Angus Millar (Nov 23 2021 at 00:57):

(deleted)

view this post on Zulip Grahame Grieve (Nov 23 2021 at 01:06):

@Angus Millar I've updated the keys on healthintersections.com.au/hacking, and added http://healthintersections.com.au/hacking/private-key.pem

view this post on Zulip IG (Nov 23 2021 at 01:32):

Is it possible to add an extension to the Resources in the Smart Health Card Bundles, for example the Patient Resource? Grahame mentioned the lack of Gender.

view this post on Zulip Josh Mandel (Nov 23 2021 at 02:40):

It's possible, though not if you're following the profiles we publish for COVID vaccines, which are fairly locked down.

view this post on Zulip David McKillop (Nov 23 2021 at 03:17):

@Grahame Grieve RCPA link for COVID terms

view this post on Zulip Angus Millar (Nov 23 2021 at 03:23):

Here is the base spec link regarding types: types

view this post on Zulip Grahame Grieve (Nov 23 2021 at 03:24):

we agreed that gender could be approved by a jurisdiction

view this post on Zulip Chris Royle (Nov 23 2021 at 04:35):

is there a util in linux to DEFLATE properly?

view this post on Zulip Grahame Grieve (Nov 23 2021 at 05:09):

function DeflateRfc1951(b : TBytes) : TBytes;
var
  s : TBytesStream;
  z : TZCompressionStream;
begin
  s := TBytesStream.create();
  try
    z := TZCompressionStream.create(s, zcMax, -15);
    try
      z.Write(b, length(b));
    finally
      z.free;
    end;
    result := s.Bytes;
    setLength(result, s.size);
  finally
    s.free;
  end;
end;

view this post on Zulip Angus Millar (Nov 23 2021 at 05:09):

.NET

public static async Task<byte[]> CompressAsync(string input)
    {
      // Remove BOM and ZERO WIDTH SPACE
      input = input.Trim(new char[] { '\uFEFF', '\u200B' });

      using (MemoryStream MemoryStream = new MemoryStream())
      {
        using (DeflateStream DeflateStream = new DeflateStream(MemoryStream, CompressionMode.Compress))
        {
          // set encoderShouldEmitUTF8Identifier to false to not include the BOM
          using (StreamWriter StreamWriter = new StreamWriter(DeflateStream, new UTF8Encoding(encoderShouldEmitUTF8Identifier: false)))
          {
            await StreamWriter.WriteAsync(input);
          }
        }
        return MemoryStream.ToArray();
      }
    }

view this post on Zulip Grahame Grieve (Nov 23 2021 at 05:11):

https://stackoverflow.com/questions/27066133/how-to-create-bare-deflate-stream-from-file-in-linux

view this post on Zulip Tobias Huegle (Nov 23 2021 at 05:12):

FYI I'm using this Java library: https://javadoc.io/doc/com.nimbusds/nimbus-jose-jwt/8.7/com/nimbusds/jose/util/DeflateUtils.html

view this post on Zulip Grahame Grieve (Nov 23 2021 at 05:20):

all deflates are the same except for the undocumented ways that they are not

view this post on Zulip Tobias Huegle (Nov 23 2021 at 06:22):

Here is my lab example and how it renders on the iPhone health kit. It works fine but the way the codes are displayed is ambiguous and for the average user not immediately visible if positive or negative.

smarthealthcard_qr.png applehealth_1.png applehealth_2.png applehealth_3.png

view this post on Zulip Tobias Huegle (Nov 23 2021 at 06:36):

@Grahame Grieve did some more testing. Health kit needs a display value on the observation interpretation. If this is set it displays in a more meaningful way. Questions resolved - sorry.

view this post on Zulip Grahame Grieve (Nov 23 2021 at 11:14):

@Pascal Pfiffner this might be something for you to debug?

view this post on Zulip Irit Loy (Nov 23 2021 at 19:32):

Hi, we have FHIR APIs that enable us to get data from our clinical repository, what we have at the moment is an application that retrieves the data by calling the API then parse minimize and compress to generate the QR code. We wanted to check the option of supporting a FHIR endpoint to allow the $health-cards-issue operation. Would that be an operation that needs to be added to the FHIR Server so it can be applied on the Patient endpoint? Has someone added this kind of support to their FHIR server?

view this post on Zulip Grahame Grieve (Nov 23 2021 at 22:25):

yes it does need to be added, and yes I did add it on test.fhir.org, and you can test it there - just choose a patient with existing immunizations, and you'll get an SHC returned

view this post on Zulip Angus Millar (Nov 23 2021 at 22:59):

.NET 5.0 Core SMART Health Card library that encodes/decodes both the JWT and QR Code : SmartHealthCard

view this post on Zulip Angus Millar (Nov 23 2021 at 23:05):

Here is your Covid-19 SMART Health Card QR Code Grahame. Could you confirm it works for me?
image.png

view this post on Zulip Angus Millar (Nov 23 2021 at 23:32):

Here is another with the correct types:
image.png

view this post on Zulip Grahame Grieve (Nov 23 2021 at 23:36):

that works!

view this post on Zulip Irit Loy (Nov 24 2021 at 00:51):

We've got this QR for Covid vaccines : Screen-Shot-2021-11-24-at-12.13.37-PM.png

view this post on Zulip Grahame Grieve (Nov 24 2021 at 01:08):

can you provide that in higher resolution? That's not good enough to scan

view this post on Zulip Isaac Vetter (Nov 24 2021 at 01:10):

App capability rough draft: https://github.com/the-commons-project/vci-directory/pull/266/files?short_path=079ab6a#diff-079ab6aac49b6a91cc73724dbad90b9dbe6d8973095800295c8ee569f6e83b78

view this post on Zulip Isaac Vetter (Nov 24 2021 at 01:11):

SHC Key Aggregation slides: https://docs.google.com/presentation/d/1PU-W5RWOqsupfVdDTGiOujaO3ab39RnpvRgDqJJ9Q2Q/edit#slide=id.gfc0d2dd4c6_7_0

view this post on Zulip Irit Loy (Nov 24 2021 at 01:23):

Here is same one without the resizing Screen-Shot-2021-11-24-at-2.24.33-PM.png

view this post on Zulip Grahame Grieve (Nov 24 2021 at 01:30):

almost! but you cut the last line of pixels off.

view this post on Zulip Grahame Grieve (Nov 24 2021 at 01:30):

does work on iphone nicely though

view this post on Zulip Irit Loy (Nov 24 2021 at 01:33):

Thanks Grahame! hopefully this one will work Screen-Shot-2021-11-24-at-2.32.18-PM.png

view this post on Zulip Angus Millar (Nov 24 2021 at 01:33):

Here is an INR & Warfarin QR code:
image.png

view this post on Zulip Grahame Grieve (Nov 24 2021 at 01:35):

@Pascal Pfiffner when you import @Angus Millar's card into iOS, you don't see the actual result of the test?

view this post on Zulip Grahame Grieve (Nov 24 2021 at 01:38):

Health kit needs a display value on the observation interpretation. If this is set it displays in a more meaningful way.

@Tobias Huegle wrote this - might be relevant?

view this post on Zulip Angus Millar (Nov 24 2021 at 01:50):

In this new QR Code I added an observation.interpretation.display to the INR observation. Yet still, no result values were seen on either the INR or the Warfrin obs
image.png

view this post on Zulip Chris Royle (Nov 24 2021 at 02:38):

2021-11-24_12h37_08.png

view this post on Zulip Grahame Grieve (Nov 24 2021 at 02:39):

-verifiableDredential.YsWHhpcyCpcyChJIOpbYCs[TCFRzSJJIOZ[[REpkEbyCwcmWYmTkJISoZYRgaYRgaYNgZTCzaXduaX?a?Ycmlu[wo1}

view this post on Zulip Tobias Huegle (Nov 24 2021 at 02:53):

@Angus Millar here is an example of a test result imported into health kit that shows the result. When I set a display value here it shows correctly:

 "valueCodeableConcept": {
            "coding": [
              {
                "system": "http://snomed.info/sct",
                "code": "260373001",
                "display": "positive"
              }

health-kit.png test-card.png

view this post on Zulip Grahame Grieve (Nov 24 2021 at 03:22):

ahh ok. a coded result, not a quantity result. Seems like there's a problem with some quantity observations

view this post on Zulip Grahame Grieve (Nov 24 2021 at 03:42):

8F0AEB08-C550-486E-9A03-CFDFDDE1D216.png

view this post on Zulip Grahame Grieve (Nov 24 2021 at 03:46):

THanks Jason!

view this post on Zulip Grahame Grieve (Nov 24 2021 at 03:56):

A shame about the CVX codes. Was it too much of a blowout in size to include AIR codes in addition?

@Jim Steel yes, it is, and it provides no value over translating them

view this post on Zulip Chris Royle (Nov 24 2021 at 03:57):

pretty please....
sample.png

view this post on Zulip Grahame Grieve (Nov 24 2021 at 03:58):

eyK7aYBiPiKFSVZiMDKhbHciPiKGVzJb[/?/?\=wkM?/?M?c1TfOd?lMepcmYfvwQ{XHOnRVsxPXwwbYSVajGoTEWFNko:E0XwOP[2vuECx?x\kGx\kF?[xOWH1l?Cbzv?Ycmlu[yCZRkHZ[YE[X?C?mcXx?EXx?EXP?b?HxEPfFETnJIOZ[[REp[

view this post on Zulip Chris Royle (Nov 24 2021 at 04:07):

Grahame - I have this as my string before I convert to qr
shc:/5676301052442160356030253841456032233059532754603560302641772953460297029647167462329102963297540439573455936332566754644457737436784327346537417075354374745344384152612666392442253362661324034374343546057372546343453757059252953506062437360744707681361416844306642444230687417658564346433352556362225213433450341211693046839593632354153603361247777705477723367136526937356640224287126412411336114265417172265663160753241576668523053644341667762604266295265611230641316110139504355123126713829646935553972335250675708276024777067142713737126860361169687557132543246286874383067756942227673351128167433929305444317376656566412613077333145612761135755387631366299357768676968577641535503921117129276434215343666223222983253372976603675717482174836123841225974576127562836412369257550643040725263831543410312873767174672241756683610353337323050661171346722461143275711322525426664524345752934672140463372617533688567776522726664682960724432231754164635725458323222604472251169416939625334664686545686031588754077434346746670346461723067765864625247755242110726274454575463860636310406935311287362543428158444530122527284258972332366275830763741735768724464066132967269155227272736686172703356743664724040747054763911253594676127570259223930272342667182970747428383432424335554428254086424259437671263440928307156114137146274840287164778342845521294355435029634421731715546512376931257730452611334658132775216859342525612127267674345574237345724452462265473544352739975654021592731338423977265762597444692339453267566829467468645946283546126654246965733130677556226126716253867756116737772254111226342257112652456466540735952136463552361597465284010567131464028654339293253627152456377442466672232773568126225763134705029415529652369763955266935399685028553141503616127391385437696724134549754527125837766534557242275967547622675476225929283467534422704639222537773829292834454646372467622453762274546442446439622928386645443758524437585244335845392277524355725243965292834454646372467466

view this post on Zulip Chris Royle (Nov 24 2021 at 04:12):

And, here is the source prior to conversion to shc...
eyJ6aXAiOiJERUYiLCJhbGciOiJFUzI1NiIsImtpZCI6IlIxTW5fN1hPMEoxZXYzQWp4WGNnQUsxOWwwbXRUajFoSDVEM2FjLTNQWWcifQ.1ZNNbxshEIb_ikWviw0s3q9jUqXJoVXVJq3UygeWZWMadlkBa9WN_N87rJ0qShPLOUbiMjDzzscz3CPtParQOoTBV4tFUD7M27V2c-tuF1oKixLU1y2qaJbmWUozkiVoI1F1j8J2UKj6-S_Wd8KFtRImrOdSuMa_2xs4GiDzsp-0G93Q8qiP7rqx139E0LZHqwRJpxrVBy3M17H-pWSIJcXKvynno0-F-JzMKYjG27Oxb4yKPk55OzqprqfyUb1_SA7tIGmNAbWokCBI4LbQIyiPxtw4Aw4P8RUBhwfjGeHPUCrEx_mJTu1FRKcN6KHvytwpB0-3eqP6OMQLJ_o7tNpBZ7WG1t-LEEVomaWYxIN2u-TZMujxMq4ezy1BuomqIiuXLC-xUm2OucgLLBiXuE7rUrSkbNo0qnYqiKg4xTzWWZwosNmjuJpygm2EDzdDA63FG0YYxZRill6TrOK84vkcNH-gXYJ8EGH0E45uMCoGgJyQUvfq3DZTo9I2ur-dBuu3PqjusMewPmuTTwscyS-8bhZy8xsE5BSJGCVot4IswwHRNLVWOdXHET4mDE5WytFNT5HJte7UQ-0kw4THtmz4NHY1AIWdW_IlXA3KtdZ18QrKEzJYF7M02g9GxA24hNEE288uppWYfVQNfDYDkFcvcWav55xnTAhGKM4VSzFfkhwXrCSYLpeqIZwqmhZHOZ8ocDrnvKJpxeBjFtkb4pxj-pQzBc78FNBf7FaY2ZnTvha9ml1aP-hwnHT6etKZTHnWSILbktaYlzXDopBLzOq8kEyKNs_IUdInCrySdFrOS5q_HdKU_P-jGS94cQrpD9Y05xYG8gQynN1f.VGhpcyBpcyBhIHNpbXBsZSBEQzRIIHN0cmluZyB0byBwcmV0ZW5kIHRoYXQgaXQgaXMgYSBzaWduaW5nIHN0cmluZwo

view this post on Zulip Grahame Grieve (Nov 24 2021 at 04:18):

yes there's some problems with the shc:/ generation

view this post on Zulip Chris Royle (Nov 24 2021 at 04:22):

thanks mate - I think i know why - but it isn't going to be quick. Thanks for all your help, and those of the team. It was fun, and great to exercise the standard.

view this post on Zulip Grahame Grieve (Nov 24 2021 at 04:27):

the first 2 characters are encoded correctly - 5676.

view this post on Zulip Grahame Grieve (Nov 24 2021 at 04:27):

but after that it starts to diverge - like you're carrying state forward?

view this post on Zulip Chris Royle (Nov 24 2021 at 04:35):

what about this one? 4ddcb8de-9c72-4175-b56a-8b69f66bacfc.png

view this post on Zulip Grahame Grieve (Nov 24 2021 at 04:36):

well, it starts with shc:\ not shc:/

view this post on Zulip Grahame Grieve (Nov 24 2021 at 04:37):

but still going wrong on the 3rd character

view this post on Zulip Grahame Grieve (Nov 24 2021 at 04:38):

no - fourth character not third character

view this post on Zulip Chris Royle (Nov 24 2021 at 04:38):

4766caed-2cf6-433b-82ef-0f4fa8d9408e.png

view this post on Zulip Grahame Grieve (Nov 24 2021 at 04:40):

still wrong on the 4th character

view this post on Zulip Grahame Grieve (Nov 24 2021 at 04:40):

(shc:/ is correct this time)

view this post on Zulip Chris Royle (Nov 24 2021 at 04:41):

is it still wrong?

view this post on Zulip Grahame Grieve (Nov 24 2021 at 04:54):

y

view this post on Zulip Chris Royle (Nov 24 2021 at 04:59):

found the problem - it was the subtracation of 45 from the ord.

view this post on Zulip Chris Royle (Nov 24 2021 at 04:59):

9b5d00b3-dc90-411e-a6c7-f1418ea2cb5b.png

view this post on Zulip Grahame Grieve (Nov 24 2021 at 05:07):

yes that's good

view this post on Zulip Grahame Grieve (Nov 24 2021 at 05:10):

Apple health doesn't like it though. Looking at it:

  • no id or meta properties in the resources
  • the signature fails because you have https://test.fhir.org/icao for the issuer - but you don't have that private key

view this post on Zulip Grahame Grieve (Nov 24 2021 at 05:10):

that's probably the apple health issue

view this post on Zulip Chris Royle (Nov 24 2021 at 05:11):

good point - i will have to remove the id / meta tags

view this post on Zulip Chris Royle (Nov 24 2021 at 05:12):

What algorithm do we use to sign the header / payload?

view this post on Zulip Chris Royle (Nov 24 2021 at 05:12):

is it sha256?

view this post on Zulip Grahame Grieve (Nov 24 2021 at 05:12):

es256

view this post on Zulip Grahame Grieve (Nov 24 2021 at 05:12):

and you need an es256 key not an rsa key

view this post on Zulip Chris Royle (Nov 24 2021 at 05:12):

ok

view this post on Zulip Grahame Grieve (Nov 24 2021 at 05:12):

the examples I provided and in the spec are all es256 keys

view this post on Zulip Chris Royle (Nov 24 2021 at 06:22):

thanks - was just looking to create a PEM version of the ES256 keys. (unless you have those somewhere)?

view this post on Zulip Angus Millar (Nov 24 2021 at 06:24):

Thanks for that @Tobias Huegle, As Grahame said, it looks like CodeableConcept works yet Quantity does not.

view this post on Zulip Grahame Grieve (Nov 24 2021 at 07:28):

@Chris Royle there's a PEM of the public key here: http://healthintersections.com.au/hacking/private-key.pem

view this post on Zulip Grahame Grieve (Nov 24 2021 at 07:29):

but you can generate your own, just go to https://mkjwk.org/ and choose EC, 256, signature, ES256, SHA-256 for KeyId, and yes for X.509

view this post on Zulip Chris Royle (Nov 24 2021 at 07:36):

thanks @Grahame Grieve got it. I'll will try my new process with the pem.

view this post on Zulip Grahame Grieve (Nov 25 2021 at 00:00):

HEY @Isaac Vetter with regard to this:

App capability rough draft

would you consider adding another table for dev tools & validators? or two tables? Criteria: have to have specific support for SHC spec. Known tools:

  • health dev tools
  • portal (dev + verifier portals, in fact)
  • fhir validator
  • my fhir toolkit (still coming)
  • ....?

view this post on Zulip Pascal Pfiffner (Nov 25 2021 at 18:10):

@Angus Millar @Grahame Grieve when scanning the above card it says "COVID-19 Lab" (probably because you have the #covid19 type still in there) and then I see Warfarin and INR, both from Nov 24. Warfarin is 6mg and INR is 3.1 (and it even says out of range because you added the reference range). Is that not what you're seeing?

view this post on Zulip Grahame Grieve (Nov 25 2021 at 18:12):

no we don't see the values

view this post on Zulip Pascal Pfiffner (Nov 25 2021 at 18:12):

@Chris Royle when your QR looks like it has a somewhat regular pattern, like your last 3 QR codes looking at the right ⅔ of the QR, it's usually because you're not compressing the content. Also, those codes are larger than v22. The validator tool should inform you about all these issues.

view this post on Zulip Pascal Pfiffner (Nov 25 2021 at 18:13):

Grahame Grieve said:

no we don't see the values

I'm on a slightly newer beta, so this may be fixed/improved soon.

view this post on Zulip Grahame Grieve (Nov 25 2021 at 18:15):

800358A7-0E73-4897-B08C-A1B976849C6D.png

view this post on Zulip Grahame Grieve (Nov 25 2021 at 18:15):

829E26F2-4B4F-4976-9308-AC3AD019A972.png

view this post on Zulip Grahame Grieve (Nov 25 2021 at 18:15):

EE6052E1-CDAA-4747-8DD2-35C6DEA05562.png

view this post on Zulip Grahame Grieve (Nov 25 2021 at 18:15):

A66B652C-2D8B-475F-971D-8B155A5783FA.png

view this post on Zulip Pascal Pfiffner (Nov 25 2021 at 18:17):

In the latest 15.2 beta you should see the values.

view this post on Zulip Angus Millar (Nov 26 2021 at 12:50):

Same here @Pascal Pfiffner. I fixed up the '#covid19 type' issue in the QR below. I see the same outcome, no result values.
I'll eagerly await iOS 15.2. However, I believe I need a Mac PC to upgrade my iPhone to a beta release. I'll try and get my hands on one somehow.
Thanks again for looking into it; much appreciated.
image.png

view this post on Zulip Pascal Pfiffner (Nov 26 2021 at 16:06):

Haven’t tried in a while, but I thought you can just install the profile from http://beta.apple.com/sp/betaprogram/

view this post on Zulip Isaac Vetter (Nov 26 2021 at 17:28):

@Grahame Grieve, fyi - https://github.com/the-commons-project/vci-directory/pull/266/files?short_path=079ab6a#diff-079ab6aac49b6a91cc73724dbad90b9dbe6d8973095800295c8ee569f6e83b78

view this post on Zulip Grahame Grieve (Dec 02 2021 at 08:59):

FYI for smart card use in Australia: https://github.com/dvci/shc-terminology/blob/main/ValueSet/shc-covid-cvx.json


Last updated: Apr 12 2022 at 19:14 UTC