"Operation Type" added to ZusHooks messages

Outbound ZusHooks messages will now include an "Operation Type" field in order to provide insight on what has changed for a given FHIR resource.

UPSERTindicates that the resource has been created or updated

DELETEindicates that the resource has been deleted

The below examples depict messages for an update to a Patient resource followed by deletion of that resource:

{
  "message_id": "88ff081c-345c-46be-9306-a43252dc79c1",
  "source": "com.zushealth.zushooks",
  "time": "2024-02-29T02:09:27Z",
  "resourceId": "Patient/7129905b-45cf-4bb1-9129-1f077a39deec",
  "ownerId": "builder/a870079b-b6b2-483d-a5b0-b14d0ac38634",
  "resourceIncluded": false,
  "resource": {
    "UPID": "0fae3a5d-b3f9-4412-b0ed-5d2224aba635"
  },
  "operationType": "UPSERT"
}
{
  "message_id": "88ff081c-345c-46be-9306-a43252dc79c1",
  "source": "com.zushealth.zushooks",
  "time": "2024-02-29T02:27:27Z",
  "resourceId": "Patient/7129905b-45cf-4bb1-9129-1f077a39deec",
  "ownerId": "builder/a870079b-b6b2-483d-a5b0-b14d0ac38634",
  "resourceIncluded": false,
  "resource": {
    "UPID": "0fae3a5d-b3f9-4412-b0ed-5d2224aba635"
  },
  "operationType": "DELETE"
}

This update is purely additive - please review parsing logic in any downstream applications to ensure such changes are tolerated.