[{"$id":"http://schema.setarcode.aw/api-error.schema.json","title":"Api - Api Error Object","description":"An Api error object.","type":"object","properties":{"source":{"description":"The source of the Api error","type":"string"},"kid":{"description":"The related kid (if relevant).","$ref":"key.schema.json#/definitions/kid"},"subjectId":{"description":"The subject ID (if relevant).","type":"string"},"requestPattern":{"description":"The request pattern that caused the error e.g. 'keys.verify' or 'vaccines.get'.","type":"string"},"requestExchange":{"description":"The exchange on which the request was received e.g. 'aruba.health.exchange'.","type":"string"},"name":{"description":"The name of the Api error.","type":"string"},"code":{"description":"The code of the Api error.","type":"number"},"message":{"description":"The error message.","type":"string"}},"required":["source","requestPattern","requestExchange","message"]},{"$id":"http://schema.setarcode.aw/base-request.schema.json","title":"Api - A standard Api Request","description":"A standard request to a api","type":"object","properties":{"subjectId":{"type":"string","description":"The subjectId sending the request"},"dataType":{"type":"string","description":"The dataType (schema id) of the request"}},"required":["subjectId","dataType"]},{"$id":"http://schema.setarcode.aw/base-response.schema.json","title":"Api - A standard Api Response","description":"A standard response to api requests","type":"object","properties":{"source":{"type":"string","description":"The source of the message"},"type":{"description":"The service type of the source","$ref":"service.schema.json#/definitions/service-types"},"action":{"type":"string","description":"The action of the message"},"dataType":{"type":"string","description":"The dataType of the message"},"version":{"type":"string","description":"The version of the message"}},"required":["source","type","action","dataType","version"]},{"$id":"http://schema.setarcode.aw/service.schema.json","title":"Api - Service Object","description":"A service object.","type":"object","properties":{"source":{"description":"The service source.","type":"string"},"type":{"description":"The service type.","$ref":"#/definitions/service-types"},"publicKey":{"description":"The public key.","type":"string"}},"definitions":{"service-types":{"type":"string","enum":["keys","members","calendar","vaccines","appointments","prescriptions","notifications","labsReports","timeslots","healthCards"],"javaEnumNames":["keys","members","calendar","vaccines","appointments","prescriptions","notifications","labsReports","timeslots","healthCards"]}},"required":["source","type","publicKey"]},{"$id":"http://schema.setarcode.aw/dates.schema.json","title":"Api - Date definitions","description":"Date definitions for the API","type":"null","definitions":{"utc-date-string":{"description":"UTC date string in the format 'YYYY-MM-DDTHH:MM:SSZ[UTC]'","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z\\[UTC\\]$"},"utc-date-string-millis":{"description":"UTC date string with milliseconds in the format 'YYYY-MM-DDTHH:MM:SS.SSSZ[UTC]'","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z\\[UTC\\]$"},"utc-date-string-any":{"description":"UTC date string with or without milliseconds in the format 'YYYY-MM-DDTHH:MM:SS(.SSS)Z[UTC]'","type":"string","anyOf":[{"$ref":"#/definitions/utc-date-string-millis"},{"$ref":"#/definitions/utc-date-string"}]},"date-of-birth":{"description":"Date of birth in the format 'YYYY-MM-DD'","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}},{"$id":"http://schema.setarcode.aw/key.schema.json","title":"Keys - Key Object","description":"A key object.","type":"object","properties":{"kid":{"description":"The key ID.","$ref":"#/definitions/kid"},"publicKey":{"description":"The public key.","type":"string"},"verificationStatus":{"description":"The verification status.","$ref":"#/definitions/verificationStatus"},"verificationDeniedReason":{"description":"The reason the verification was denied (if status is denied).","type":"string"},"verificationData":{"description":"The verification data.","$ref":"member.schema.json"},"signature":{"description":"The signature.","type":"string"}},"definitions":{"kid":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"verificationStatus":{"description":"The verification status of the key.","type":"string","enum":["pending","approved","denied"]}},"required":["kid","publicKey"]},{"$id":"http://schema.setarcode.aw/keys-back-office-process-request.schema.json","title":"Keys - Back Office Process Request","description":"A request to the back office to process a key. This request must be sent to amq.topic:keys.back-office-process","type":"object","properties":{"kid":{"description":"The key ID.","$ref":"key.schema.json#/definitions/kid"},"subjectId":{"description":"The subject ID.","type":"string"},"azvNumber":{"description":"The AZV number.","type":"string"},"publicKey":{"description":"The public key.","type":"string"},"aNumber":{"description":"The A number (optional).","type":"string"},"azvMemberData":{"description":"The azv member data if any matched (optional).","type":"object","allOf":[{"$ref":"member-azv-properties.schema.json"}],"extends":{"$ref":"member-azv-properties.schema.json"}},"extractedMemberData":{"description":"The extracted member data if any (required).","type":"object","allOf":[{"$ref":"member-properties.schema.json"}],"extends":{"$ref":"member-properties.schema.json"},"properties":{"documentFrontImage":{"type":"string","description":"The document front image jpg data in base64 format"}},"required":["documentFrontImage"]},"manualFaceVerification":{"description":"The manual face verification data if any (optional).","$ref":"keys-verify-request.schema.json#/definitions/manualFaceVerification"},"suggestedCorrections":{"description":"The suggested corrections for the member info (optional).","type":"object","allOf":[{"$ref":"member-properties.schema.json"}],"extends":{"$ref":"member-properties.schema.json"},"required":[]},"authenticityVerified":{"description":"The authenticity of the member data has been verified.","type":"boolean"},"reasonVerifyFailed":{"description":"The reason why the verification failed.","type":"string"}},"required":["kid","subjectId","azvNumber","publicKey","extractedMemberData"]},{"$id":"http://schema.setarcode.aw/keys-back-office-process-response.schema.json","title":"Keys - Back Office Process Response","description":"A response from the back office after processing a key. This response must be sent to amq.topic:keys.back-office-process-response","type":"object","properties":{"id":{"description":"The ID of the key.","type":"string"},"status":{"description":"The status of the process.","$ref":"key.schema.json#/definitions/verificationStatus"},"kid":{"description":"The key ID.","$ref":"key.schema.json#/definitions/kid"},"subjectId":{"description":"The subject ID.","type":"string"},"azvNumber":{"description":"The AZV number.","type":"string"},"publicKey":{"description":"The public key.","type":"string"},"aNumber":{"description":"The A number (optional).","type":"string"}},"allOf":[{"if":{"properties":{"status":{"const":"pending"}}},"then":{"required":["id","status","kid","subjectId","azvNumber","publicKey"]}},{"if":{"properties":{"status":{"const":"approved"}}},"then":{"properties":{"memberData":{"description":"The member data (required).","type":"object","allOf":[{"$ref":"member.schema.json"}],"extends":{"$ref":"member.schema.json"}}},"required":["id","status","kid","subjectId","azvNumber","publicKey","memberData"]}},{"if":{"properties":{"status":{"const":"denied"}}},"then":{"properties":{"reason":{"description":"The reason for denying the key (required).","type":"string"}},"required":["id","status","kid","subjectId","azvNumber","publicKey","reason"]}}]},{"$id":"http://schema.setarcode.aw/keys-change-response.schema.json","title":"Keys - Change Response","description":"A response key changes.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"extends":{"$ref":"base-response.schema.json"},"properties":{"data":{"type":"array","items":{"$ref":"key.schema.json"}}},"required":["data"]},{"$id":"http://schema.setarcode.aw/keys-delete-request.schema.json","title":"Keys - Delete Request","description":"A request to delete a key. This request must be sent to amq.topic:keys.delete","type":"object","allOf":[{"$ref":"key.schema.json"}],"extends":{"$ref":"key.schema.json"},"properties":{"subjectId":{"description":"The subject ID.","type":"string"}},"required":["kid","publicKey","verificationData","signature","subjectId"]},{"$id":"http://schema.setarcode.aw/keys-get-request.schema.json","title":"Keys - Get Key Request","description":"A request to get one or more keys. This request must be sent to amq.topic:keys.get","type":"object","properties":{"kids":{"type":"array","items":{"type":"string","$ref":"key.schema.json#/definitions/kid"}},"subjectId":{"description":"The subject ID.","type":"string"}},"required":["kids","subjectId"]},{"$id":"http://schema.setarcode.aw/keys-get-services-request.schema.json","title":"Keys - Get Services Request","description":"A request the services. This request must be sent to amq.topic:keys.get-services","type":"object","properties":{"subjectId":{"description":"The subject ID.","type":"string"}},"required":["subjectId"]},{"$id":"http://schema.setarcode.aw/keys-register-request.schema.json","title":"Keys - Verify Request","description":"A request to verify a key. This request must be sent to amq.topic:keys.verify","type":"object","allOf":[{"$ref":"key.schema.json"}],"extends":{"$ref":"key.schema.json"},"properties":{"subjectId":{"description":"The subject ID.","type":"string"},"memberAdditionalProperties":{"description":"The additional properties of the member.","type":"object","allOf":[{"$ref":"member-additional-properties.schema.json"}],"extends":{"$ref":"member-additional-properties.schema.json"}}},"required":["kid","publicKey","verificationData","signature","subjectId"]},{"$id":"http://schema.setarcode.aw/keys-services-response.schema.json","title":"Keys - Services Response","description":"A response for services.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"extends":{"$ref":"base-response.schema.json"},"properties":{"data":{"type":"array","items":{"$ref":"service.schema.json"}}},"required":["data"]},{"$id":"http://schema.setarcode.aw/keys-verify-request.schema.json","title":"Keys - Verify Request","description":"A request to verify a key. This request must be sent to amq.topic:keys.verify","type":"object","allOf":[{"properties":{"kid":{"description":"The key ID.","$ref":"key.schema.json#/definitions/kid"},"subjectId":{"description":"The subject ID.","type":"string"},"verificationTransactionId":{"description":"The verification transaction ID.","type":"string"},"azvNumber":{"description":"The AZV number.","type":"string"},"publicKey":{"description":"The public key.","type":"string"},"aNumber":{"description":"The A number (optional).","type":"string"},"suggestedCorrections":{"description":"The suggested corrections for the member info (optional).","type":"object","allOf":[{"$ref":"member-properties.schema.json"}],"extends":{"$ref":"member-properties.schema.json"}}},"required":["kid","subjectId","verificationTransactionId","azvNumber","publicKey"]}],"oneOf":[{"properties":{"faceVerificationTransactionId":{"description":"The face verification transaction ID (if not possible then use manualFaceVerification field).","type":"string"}},"required":["faceVerificationTransactionId"]},{"properties":{"manualFaceVerification":{"$ref":"#/definitions/manualFaceVerification"}},"required":["manualFaceVerification"]}],"definitions":{"manualFaceVerification":{"description":"Instead of a face verification transaction, the face verification is done manually.","type":"object","properties":{"contactPhoneNumber":{"description":"The phone number of the person who verified the face manually.","type":"string"},"frontFaceImageData":{"description":"The front face image data of the person who verified the face manually.","type":"string"},"sideFaceImageData":{"description":"The side face image data of the person who verified the face manually.","type":"string"},"extraDocuments":{"description":"The extra required document(s) of the person who verified the face manually.","type":"array","items":{"type":"object","properties":{"type":{"description":"The type of the required document.","type":"string"},"data":{"description":"The data of the required document.","type":"string"}},"required":["type","data"]}}},"required":["contactPhoneNumber","frontFaceImageData","sideFaceImageData"]}}},{"$id":"http://schema.setarcode.aw/member-additional-properties.schema.json","title":"Members - Member Additional Properties Object","description":"An object containing a member's additional properties.","type":"object","properties":{"generalPractitionerAgbCode":{"description":"The member's general practitioner's AGB code.","type":"string"}},"required":[]},{"$id":"http://schema.setarcode.aw/member-azv-properties.schema.json","title":"Members - Member AZV Properties Object","description":"A member propeties object.","type":"object","properties":{"surname":{"description":"The surname.","type":"string"},"intials":{"description":"The initials.","type":"string"},"dateOfBirth":{"description":"The date of birth.","$ref":"dates.schema.json#/definitions/date-of-birth"}},"required":[]},{"$id":"http://schema.setarcode.aw/member-properties.schema.json","title":"Members - Member Properties Object","description":"A member propeties object.","type":"object","properties":{"surname":{"description":"The surname.","type":"string"},"givenNames":{"description":"The given names.","type":"string"},"dateOfBirth":{"description":"The date of birth.","$ref":"dates.schema.json#/definitions/date-of-birth"},"gender":{"description":"The gender","type":"string"},"azvNumber":{"description":"The AZV number.","type":"string"}},"required":[]},{"$id":"http://schema.setarcode.aw/member.schema.json","title":"Members - Member Object","description":"A member object.","type":"object","allOf":[{"$ref":"member-properties.schema.json"}],"extends":{"$ref":"member-properties.schema.json"},"required":["surname","givenNames","dateOfBirth","azvNumber"]},{"$id":"http://schema.setarcode.aw/member-migration.schema.json","title":"Members - Member Migration Object","description":"A member migration object.","type":"object","properties":{"migrationId":{"description":"The member migration id (patient case id).","type":"string"},"surname":{"description":"The surname.","type":"string"},"givenNames":{"description":"The given names.","type":"string"},"dateOfBirth":{"description":"The date of birth.","$ref":"dates.schema.json#/definitions/date-of-birth"},"gender":{"description":"The gender","type":"string"},"azvNumber":{"description":"The AZV number.","type":"string"},"email":{"description":"The member's email address.","type":"string"}},"required":["migrationId"]},{"$id":"http://schema.setarcode.aw/members-change-response.schema.json","title":"Members - Change Response","description":"A response members changes.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"extends":{"$ref":"base-response.schema.json"},"properties":{"data":{"type":"array","items":{"$ref":"member.schema.json"}}},"required":["data"]},{"$id":"http://schema.setarcode.aw/members-error-response.schema.json","title":"Members - set practitioner error response","description":"An error response published on the requester's members reply channel when a 'members.set-practitioner' request could not be completed. It is published unencrypted on 'aruba.health.exchange' with routing key '<kid>.members', the 'x-error' header set to true and the correlation id of the originating 'members.set-practitioner' request.","type":"object","allOf":[{"$ref":"api-error.schema.json"}],"extends":{"$ref":"api-error.schema.json"},"properties":{"name":{"description":"The stable set-practitioner error code. DOCTOR_IN_OTHER_PRACTICE: the chosen doctor works at another practice than the one the patient is linked to. NOT_LINKED: the patient has no accepted link to change. UNKNOWN_DOCTOR: the chosen doctor is not in the doctors list, or is archived. PROMEDICO_ERROR: any other failure while changing the doctor.","type":"string","enum":["DOCTOR_IN_OTHER_PRACTICE","NOT_LINKED","UNKNOWN_DOCTOR","PROMEDICO_ERROR"],"javaEnumNames":["DOCTOR_IN_OTHER_PRACTICE","NOT_LINKED","UNKNOWN_DOCTOR","PROMEDICO_ERROR"]},"code":{"description":"The numeric counterpart of the set-practitioner error code: 6301 = DOCTOR_IN_OTHER_PRACTICE, 6302 = NOT_LINKED, 6303 = UNKNOWN_DOCTOR, 6304 = PROMEDICO_ERROR.","type":"number","enum":[6301,6302,6303,6304]}},"required":["source","requestPattern","requestExchange","name","code","message"]},{"$id":"http://schema.setarcode.aw/members-get-member-migrations-request.schema.json","title":"Members - Get Member-Migrations ","description":"A request to get member-migrations. This request must be sent to amq.topic:members.get-member-migration","type":"object","properties":{"subjectId":{"type":"string","description":"The subjectId of the member to get the member-migrations"},"replyPublicKey":{"type":"string","description":"The public key to encrypt the response"},"filterUnregisteredMembers":{"type":"boolean","default":true,"description":"Filter unregistered members. The resulting list will only contain members that have not been registered yet. (Optional, Default is true)"}},"required":["subjectId","replyPublicKey"]},{"$id":"http://schema.setarcode.aw/members-migration-change-response.schema.json","title":"Members - Member Migration Change Response","description":"A response member migration changes.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"extends":{"$ref":"base-response.schema.json"},"properties":{"data":{"type":"array","items":{"$ref":"member-migration.schema.json"}}},"required":["data"]},{"$id":"http://schema.setarcode.aw/vaccine-brand.schema.json","title":"Vaccines - Vaccine Brand Object","description":"A vaccine brand object.","type":"object","properties":{"id":{"description":"The unique identifier for a vaccine dose.","type":"number"},"brandName":{"description":"The brand name of the vaccine.","type":"string"},"defualtDosageAmount":{"description":"The default dosage amount for the vaccine.","type":"string"},"defualtVialAmount":{"description":"The default vial amount for the vaccine.","type":"string"},"isoSeriesMax":{"description":"The maximum number of doses in a series for the vaccine.","type":"number"},"isoVaccineProduct":{"description":"The vaccine product code.","type":"string"},"isoVaccineType":{"description":"The vaccine type code.","type":"string"},"isoVaccinemManufacturer":{"description":"The vaccine manufacturer code.","type":"string"}},"required":["id"]},{"$id":"http://schema.setarcode.aw/vaccine-certification-check.schema.json","title":"Vaccines - Vaccine Certification Check Object","description":"A vaccine certification chec object.","type":"object","properties":{"vaccineId":{"description":"The unique identifier of the related vaccine.","type":"number"},"result":{"type":"boolean","description":"The result of the certification check"}},"required":["vaccineId","result"]},{"$id":"http://schema.setarcode.aw/vaccine-certification.schema.json","title":"Vaccines - Vaccine Certification Object","description":"A vaccine certification object.","type":"object","properties":{"vaccineId":{"description":"The unique identifier of the related vaccine.","type":"number"},"data":{"type":"string","description":"The certification pdf data in base64 format"}},"required":["vaccineId","data"]},{"$id":"http://schema.setarcode.aw/vaccine-dose.schema.json","title":"Vaccines - Vaccine Dose Object","description":"A vaccine dose object.","type":"object","properties":{"id":{"description":"The unique identifier for a vaccine dose.","type":"number"},"insertDate":{"description":"The date the vaccine dose was inserted.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"givenBy":{"description":"The person who gave the vaccine dose.","type":"string"},"certifyBy":{"description":"The person who certified the vaccine dose.","type":"string"},"inventory":{"description":"The inventory of the vaccine dose.","$ref":"vaccine-inventory.schema.json"}},"required":["id"]},{"$id":"http://schema.setarcode.aw/vaccine-location.schema.json","title":"Vaccines - Vaccine Inventory Location Object","description":"A vaccine inventory location object.","type":"object","properties":{"id":{"description":"The unique identifier for the vaccine inventory location.","type":"number"},"name":{"description":"The name of the vaccine inventory location.","type":"string"},"address":{"description":"The address of the vaccine inventory location.","type":"string"},"openingTimes":{"description":"The opening times of the vaccine inventory location.","type":"string"},"dossageAllow":{"description":"The dossage allow of the vaccine inventory location.","type":"boolean"},"freezerType":{"description":"The freezer type of the vaccine inventory location.","$ref":"#/definitions/freezer-type"},"insertDate":{"description":"The date the vaccine inventory location was inserted.","$ref":"dates.schema.json#/definitions/utc-date-string-any"}},"definitions":{"freezer-type":{"description":"The freezer type of the vaccine inventory location.","type":"string","enum":["DEEP_FREEZE","FREEZER","COOLER"]}},"required":["id"]},{"$id":"http://schema.setarcode.aw/vaccine-inventory.schema.json","title":"Vaccines - Vaccine Inventory Object","description":"A vaccine inventory object.","type":"object","properties":{"id":{"description":"The unique identifier for the vaccine inventory object.","type":"number"},"accepted":{"description":"The date and time the inventory was accepted.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"acceptedBy":{"description":"The user who accepted the inventory.","type":"string"},"amountOfVials":{"description":"The amount of vials in the inventory.","type":"number"},"boxNumber":{"description":"The box number of the inventory.","type":"string"},"brand":{"description":"The brand of the vaccine.","$ref":"vaccine-brand.schema.json"},"createdBy":{"description":"The user who created the inventory.","type":"string"},"creation":{"description":"The date and time the inventory was created.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"currentDosageLevel":{"description":"The current dosage level of the inventory.","type":"number"},"dosagePerVial":{"description":"The dosage per vial of the inventory.","type":"number"},"location":{"description":"The location of the inventory.","$ref":"vaccine-location.schema.json"},"note":{"description":"A note about the inventory.","type":"string"},"parentInventory":{"description":"The parent inventory of the inventory.","$ref":"vaccine-inventory.schema.json"},"state":{"description":"The state of the inventory.","$ref":"#/definitions/inventory-state"},"totalStartDosage":{"description":"The total start dosage of the inventory.","type":"number"}},"definitions":{"inventory-state":{"description":"The state of the inventory.","type":"string","enum":["IN_TRANSFER","DELIVERED"]}},"required":["id"]},{"$id":"http://schema.setarcode.aw/vaccine-side-effect-questionnaire.schema.json","title":"Vaccines - Vaccine Side Effect Questionnaire","description":"A vaccine side effect questionnaire.","type":"object","properties":{"id":{"description":"The unique identifier for a vaccine dose.","type":"number"},"insertDate":{"description":"The date the questionnaire was inserted.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"data":{"description":"The questionnaire data.","type":"string"}},"required":["id"]},{"$id":"http://schema.setarcode.aw/vaccine.schema.json","title":"Vaccines - Vaccine Object","description":"A vaccine object.","type":"object","properties":{"id":{"description":"The unique identifier for a vaccine.","type":"number"},"enableDate":{"description":"The date the vaccine is enabled.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"enableBy":{"description":"The user who enabled the vaccine.","type":"string"},"certifyBy":{"description":"The user who certified the vaccine.","type":"string"},"suspend":{"description":"The date the vaccine is suspended.","type":"boolean"},"appointment1":{"description":"The date of the first appointment.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"appointment2":{"description":"The date of the second appointment.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"appointment3":{"description":"The date of the third appointment.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"appointment4":{"description":"The date of the fourth appointment.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"appointment5":{"description":"The date of the fifth appointment.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"appointment6":{"description":"The date of the sixth appointment.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"appointment7":{"description":"The date of the seventh appointment.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"appointment8":{"description":"The date of the eighth appointment.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"vaccine1":{"description":"The date of the first vaccine.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"vaccine2":{"description":"The date of the second vaccine.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"vaccine3":{"description":"The date of the third vaccine.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"vaccine4":{"description":"The date of the fourth vaccine.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"vaccine5":{"description":"The date of the fifth vaccine.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"vaccine6":{"description":"The date of the sixth vaccine.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"vaccine7":{"description":"The date of the seventh vaccine.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"vaccine8":{"description":"The date of the eighth vaccine.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"vaccine1Dose":{"description":"The dose of the first vaccine.","$ref":"vaccine-dose.schema.json"},"vaccine2Dose":{"description":"The dose of the second vaccine.","$ref":"vaccine-dose.schema.json"},"vaccine3Dose":{"description":"The dose of the third vaccine.","$ref":"vaccine-dose.schema.json"},"vaccine4Dose":{"description":"The dose of the fourth vaccine.","$ref":"vaccine-dose.schema.json"},"vaccine5Dose":{"description":"The dose of the fifth vaccine.","$ref":"vaccine-dose.schema.json"},"vaccine6Dose":{"description":"The dose of the sixth vaccine.","$ref":"vaccine-dose.schema.json"},"vaccine7Dose":{"description":"The dose of the seventh vaccine.","$ref":"vaccine-dose.schema.json"},"vaccine8Dose":{"description":"The dose of the eighth vaccine.","$ref":"vaccine-dose.schema.json"},"appointmentLocation":{"description":"The location of the appointment.","$ref":"vaccine-location.schema.json"},"sideEffectQuestionnaires":{"description":"The side effect questionnaires.","type":"array","items":{"$ref":"vaccine-side-effect-questionnaire.schema.json"}},"documentSha":{"description":"The SHA of the document.","type":"string"}},"required":["id"]},{"$id":"http://schema.setarcode.aw/vaccines-certification-change-response.schema.json","title":"Vaccines - Certification Change Response","description":"A response vaccine certification changes.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"properties":{"data":{"type":"array","items":{"$ref":"vaccine-certification.schema.json"}}},"required":["data"]},{"$id":"http://schema.setarcode.aw/vaccines-change-response.schema.json","title":"Vaccines - Change Response","description":"A response vaccine changes.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"extends":{"$ref":"base-response.schema.json"},"properties":{"data":{"type":"array","items":{"$ref":"vaccine.schema.json"}}},"required":["data"]},{"$id":"http://schema.setarcode.aw/vaccines-get-certification-request.schema.json","title":"Keys - Get Vaccine Certification Request","description":"A request to get vaccine certification. This request must be sent to amq.topic:vaccines.get-certification","type":"object","allOf":[{"$ref":"base-request.schema.json"}],"properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"},"vaccineId":{"type":"integer","description":"The vaccine id"}},"required":["kid","vaccineId"]},{"$id":"http://schema.setarcode.aw/vaccines-get-request.schema.json","title":"Keys - Get Vaccine Request","description":"A request to get vaccine information. This request must be sent to amq.topic:vaccines.get","type":"object","properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"}},"required":["kid"]},{"$id":"http://schema.setarcode.aw/vaccines-certification-check-response.schema.json","title":"Vaccines - Check Certification Response","description":"A response for the the vaccine certification request. It is either true or false.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"properties":{"data":{"type":"object","$ref":"vaccine-certification-check.schema.json","description":"The result of the certification change."}},"required":["data"]},{"$id":"http://schema.setarcode.aw/vaccines-check-certification-request.schema.json","title":"Keys - Check If Vaccine Certification Can Be Created","description":"A request to check if a vaccine certification can be created. This request must be sent to amq.topic:vaccines.check-certification","type":"object","allOf":[{"$ref":"base-request.schema.json"}],"properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"},"vaccineId":{"type":"integer","description":"The vaccine id"}},"required":["kid","vaccineId"]},{"$id":"http://schema.setarcode.aw/appointment.schema.json","title":"Appointment - Appointment Object","description":"A Appointment object.","type":"object","properties":{"id":{"description":"The unique identifier for a Appointment.","type":"integer"},"startTimestamp":{"description":"The date and time the appointment starts.","$ref":"dates.schema.json#/definitions/utc-date-string-millis"},"endTimestamp":{"description":"The date and time the appointment stops.","$ref":"dates.schema.json#/definitions/utc-date-string-millis"},"title":{"description":"Title of the Appointment","type":"string"},"location":{"description":"Location where Appointment is planned","type":"string"},"geoTag":{"description":"Geo Tag of the location","type":"string"},"reasonDescription":{"description":"Description of the reason for the Appointment","type":"string"},"canBeCanceled":{"description":"Indicates if the Appointment can be canceled","type":"boolean"},"healthCareRole":{"description":"Health Care Role of the person who will be attending the Appointment","type":"string"}},"required":["id","startTimestamp","endTimestamp"]},{"$id":"http://schema.setarcode.aw/appointments-event-response.schema.json","title":"Appointments - List Response","description":"A response appointment list.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"extends":{"$ref":"base-response.schema.json"},"properties":{"data":{"type":"array","items":{"$ref":"appointment.schema.json"}}},"required":["data"]},{"$id":"http://schema.setarcode.aw/appointments-cancel-request.schema.json","title":"Appointments - Cancel Appointments Request","description":"A request to cancel an Appointment. This request must be sent to amq.topic:appointment.cancel","type":"object","properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"},"appointmentId":{"description":"The appointment ID of the appointment to cancel","type":"integer"}},"required":["kid","appointmentId"]},{"$id":"http://schema.setarcode.aw/appointments-get-request.schema.json","title":"Appointments - Get Appointments Request","description":"A request to get Appointment information. This request must be sent to amq.topic:appointment.get","type":"object","properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"}},"required":["kid"]},{"$id":"http://schema.setarcode.aw/appointments-create-request.schema.json","title":"Appointments - create appointment request","description":"A request to create an appointment. This request must be sent to amq.topic:appointment.reserve","type":"object","properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"},"reasonDescription":{"type":"string","description":"Why the patient wants to see the general practitioner, in the patient's own words. Required: the practice reads this to prepare the consultation. The consumer prefixes it with \"AHA: \" so the GP can see the appointment came from the app; that prefix and the triage link are not part of these 255 characters.","minLength":1,"maxLength":255},"startTime":{"description":"The date and time the appointment starts.","$ref":"dates.schema.json#/definitions/utc-date-string-millis"},"endTime":{"description":"The date and time the appointment stops.","$ref":"dates.schema.json#/definitions/utc-date-string-millis"},"timeFormat":{"description":"What startTime and endTime mean. \"utc\" is the real moment, which is what the promedico service books. \"arubaClock\" is the clock time of the practice carried under the UTC label, which the service used to be sent and undid with a fixed +4 hours (AHAV-730). Optional: the app versions already in the stores say nothing and are read as \"utc\", because they echo back the moment the service sent them. Dropped again once those versions are gone.","$ref":"#/definitions/appointment-time-formats"},"videoLink":{"description":"The date and time the appointment stops.","type":"string"},"triageApiSessionId":{"description":"The triage API session ID to send the triage information to the GP.","type":"string"},"triageApiSessionToken":{"description":"The triage API session token to send the triage information to the GP.","type":"string"}},"definitions":{"appointment-time-formats":{"description":"camelCase and not kebab-case on purpose: the promedico service binds these values with JSON-B into the enum jsonschema2pojo generates, and JSON-B matches the Java constant name rather than the value. A hyphenated value has no legal constant name, so the service would abandon the request. Every other enum in this package is camelCase for the same reason.","type":"string","enum":["utc","arubaClock"],"javaEnumNames":["utc","arubaClock"]}},"required":["kid","reasonDescription","startTime","endTime"]},{"$id":"http://schema.setarcode.aw/appointments-error-response.schema.json","title":"Appointments - booking error response","description":"An error response published on the requester's appointments reply channel when an appointment booking request could not be completed. It is published unencrypted on 'aruba.health.exchange' with routing key '<kid>.appointments', the 'x-error' header set to true and the correlation id of the originating 'appointment.reserve' request.","type":"object","allOf":[{"$ref":"api-error.schema.json"}],"extends":{"$ref":"api-error.schema.json"},"properties":{"name":{"description":"The stable booking error code. AGENDA_NOT_FOUND: no agenda matches the GP AGB code. SLOT_OCCUPIED: the requested timeslot was taken. BOOKING_FAILED: any other failure while reserving.","type":"string","enum":["AGENDA_NOT_FOUND","SLOT_OCCUPIED","BOOKING_FAILED"],"javaEnumNames":["AGENDA_NOT_FOUND","SLOT_OCCUPIED","BOOKING_FAILED"]},"code":{"description":"The numeric counterpart of the booking error code: 6001 = AGENDA_NOT_FOUND, 6002 = SLOT_OCCUPIED, 6003 = BOOKING_FAILED.","type":"number","enum":[6001,6002,6003]}},"required":["source","requestPattern","requestExchange","name","code","message"]},{"$id":"http://schema.setarcode.aw/prescription.schema.json","title":"Prescription - prescription Object","description":"A prescription object.","type":"object","properties":{"id":{"description":"The unique identifier for a prescription.","type":"integer"},"startTimestamp":{"description":"The date the prescription starts.","$ref":"dates.schema.json#/definitions/utc-date-string-millis"},"endTimestamp":{"description":"The date the prescription ends.","$ref":"dates.schema.json#/definitions/utc-date-string-millis"},"name":{"description":"Medication name.","type":"string"},"quantity":{"description":"Amount of medication per unity.","type":"integer"},"usageText":{"description":"Text explaining how to use the medication.","type":"string"},"unity":{"description":"Unity of the medication.","type":"string"},"allowedToRepeat":{"description":"Indicates if the prescription can be repeated.","type":"boolean"},"repetitionStatus":{"description":"Status of the prescription repetition. The same three values the response to a repeat request uses (prescription-refill-response.schema.json); a source whose own status vocabulary is wider translates into these or leaves the field out.","type":"string","enum":["UNDEFINED","PENDING","REJECTED"],"javaEnumNames":["UNDEFINED","PENDING","REJECTED"]},"status":{"description":"Why the practice management system does not offer this medication for a repeat, in the source's own vocabulary and with the source's own meaning. The values known today are STOPPED (the medication was stopped and may not be repeated), DISCONTINUED (the prescription expired), REQUEST_PENDING (a repeat request is waiting), AUTHORISATION_PENDING (the repeat is waiting for authorisation) and NOT_ALLOWED (the general practitioner does not allow repeats of this medication through the portal). Deliberately an open string and not an enum: the status drives nothing but an explanation shown next to a medication that cannot be repeated, so a value a client does not know costs it nothing, and a value added upstream cannot change the type a service generates from this schema (AHAV-688 / AHAV-716). Omitted when the source has nothing to say about it.","type":"string"},"repetitionRejectReason":{"description":"What the general practitioner wrote when refusing the last repeat of this prescription, exactly as it was written. Clinical text: it is neither translated nor shortened anywhere on the way to the patient (the rule AHAV-712 set for the patient's own message), so no maximum length is declared here. Omitted when no reason was given.","type":"string"}},"required":["id","startTimestamp","endTimestamp","name","quantity","unity"]},{"$id":"http://schema.setarcode.aw/prescriptions-event-response.schema.json","title":"Prescriptions - List Response","description":"A response of prescription list.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"extends":{"$ref":"base-response.schema.json"},"properties":{"data":{"type":"array","items":{"$ref":"prescription.schema.json"}}},"required":["data"]},{"$id":"http://schema.setarcode.aw/prescriptions-get-request.schema.json","title":"Prescriptions - Get prescriptions request","description":"A request to get prescriptions information. This request must be sent to amq.topic:prescription.get","type":"object","properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"}},"required":["kid"]},{"$id":"http://schema.setarcode.aw/prescription-refill-request.schema.json","title":"Prescriptions - Refill prescription request","description":"A request in order to refill a prescription. This request must be sent to amq.topic:prescription.refill","type":"object","properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"},"prescriptionId":{"type":"integer","description":"The prescription id to get information from."},"description":{"type":"string","description":"Reason for refill."}},"required":["kid","prescriptionId","description"]},{"$id":"http://schema.setarcode.aw/prescription-refill-response.schema.json","title":"Prescriptions - Refill prescription response","description":"The response published on the requester's prescriptions reply channel when a 'prescription.refill' request has been accepted by the practice management system. It is published encrypted on 'aruba.health.exchange' with routing key '<kid>.prescriptions' and the correlation id of the originating request. A repeat that could not be accepted is reported with prescriptions-error-response.schema.json instead.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"extends":{"$ref":"base-response.schema.json"},"properties":{"data":{"type":"object","description":"The repeat the practice management system accepted.","properties":{"prescriptionId":{"description":"The prescription the repeat was requested for.","type":"integer"},"repetitionStatus":{"description":"The status the repeat has right after the request. 'PENDING' until the general practitioner decides; the prescription list carries the same status from then on.","type":"string","enum":["UNDEFINED","PENDING","REJECTED"],"javaEnumNames":["UNDEFINED","PENDING","REJECTED"]},"repetitionRequestId":{"description":"The identifier the practice management system gave the repeat, omitted when it did not name one.","type":"integer"}},"required":["prescriptionId","repetitionStatus"]}},"required":["data"]},{"$id":"http://schema.setarcode.aw/prescriptions-error-response.schema.json","title":"Prescriptions - refill error response","description":"An error response published on the requester's prescriptions reply channel when a 'prescription.refill' request could not be completed. It is published unencrypted on 'aruba.health.exchange' with routing key '<kid>.prescriptions', the 'x-error' header set to true and the correlation id of the originating 'prescription.refill' request.","type":"object","allOf":[{"$ref":"api-error.schema.json"}],"extends":{"$ref":"api-error.schema.json"},"properties":{"name":{"description":"The stable refill error code. NOT_REPEATABLE: the practice management system does not offer this prescription for a repeat. ALREADY_PENDING: a repeat of this prescription is already waiting for the general practitioner. PROMEDICO_ERROR: any other failure while requesting the repeat.","type":"string","enum":["NOT_REPEATABLE","ALREADY_PENDING","PROMEDICO_ERROR"],"javaEnumNames":["NOT_REPEATABLE","ALREADY_PENDING","PROMEDICO_ERROR"]},"code":{"description":"The numeric counterpart of the refill error code: 6101 = NOT_REPEATABLE, 6102 = ALREADY_PENDING, 6103 = PROMEDICO_ERROR.","type":"number","enum":[6101,6102,6103]}},"required":["source","requestPattern","requestExchange","name","code","message"]},{"$id":"http://schema.setarcode.aw/timeslot.schema.json","title":"Timeslot - Timeslot Object","description":"A Timeslot object.","type":"object","properties":{"type":{"description":"Description of the type of meeting purpose","$ref":"#/definitions/timeslot-types"},"startTime":{"description":"The date and time the timeslot starts.","$ref":"dates.schema.json#/definitions/utc-date-string-millis"},"endTime":{"description":"The date and time the timeslot stops.","$ref":"dates.schema.json#/definitions/utc-date-string-millis"}},"definitions":{"timeslot-types":{"type":"string","enum":["consultation","visit","phoneCall","meeting","free","other","videoConsultation"],"javaEnumNames":["consultation","visit","phoneCall","meeting","free","other","videoConsultation"]}},"required":["type","startTime","endTime"]},{"$id":"http://schema.setarcode.aw/timeslots-event-response.schema.json","title":"Timeslots - List Response","description":"A response timeslot list.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"extends":{"$ref":"base-response.schema.json"},"properties":{"data":{"type":"array","items":{"$ref":"timeslot.schema.json"}}},"required":["data"]},{"$id":"http://schema.setarcode.aw/timeslots-get-request.schema.json","title":"Timeslots - Get Timeslots Request","description":"A request to get timeslot information. This request must be sent to amq.topic:timeslot.get","type":"object","properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"},"dateRangeStartTime":{"description":"The date and time range for timeslot starts.","$ref":"dates.schema.json#/definitions/utc-date-string-millis"},"dateRangeEndTime":{"description":"The date and time range for timeslot ends.","$ref":"dates.schema.json#/definitions/utc-date-string-millis"}},"required":["kid"]},{"$id":"http://schema.setarcode.aw/timeslots-error-response.schema.json","title":"Timeslots - timeslots lookup error response","description":"An error response published on the requester's timeslots reply channel when a 'timeslot.get' request could not be answered with a timeslot list. It is published unencrypted on 'aruba.health.exchange' with routing key '<kid>.timeslots', the 'x-error' header set to true and the correlation id of the originating 'timeslot.get' request. It is sent instead of a timeslot list, never next to one: an empty list would be read as 'no free slots', which is not the same as a practice that could not be asked.","type":"object","allOf":[{"$ref":"api-error.schema.json"}],"extends":{"$ref":"api-error.schema.json"},"properties":{"name":{"description":"The stable timeslots error code. AGENDA_UNAVAILABLE: the practice management system could not be asked for the agenda or its open timeslots. TIMESLOTS_FAILED: any other failure while answering the request.","type":"string","enum":["AGENDA_UNAVAILABLE","TIMESLOTS_FAILED"],"javaEnumNames":["AGENDA_UNAVAILABLE","TIMESLOTS_FAILED"]},"code":{"description":"The numeric counterpart of the timeslots error code: 6201 = AGENDA_UNAVAILABLE, 6202 = TIMESLOTS_FAILED.","type":"number","enum":[6201,6202]}},"required":["source","requestPattern","requestExchange","name","code","message"]},{"$id":"http://schema.setarcode.aw/notification-create-request.schema.json","title":"notifications - create notification request","description":"A request to create an notification.","type":"object","properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"},"title":{"type":"string","description":"The notification title."},"message":{"type":"string","description":"The notification message."},"reasonId":{"type":"integer","description":"The reason id of the notification. This ID should be entered by the user in AHE-config."}},"required":["kid","message"]},{"$id":"http://schema.setarcode.aw/notification.schema.json","title":"Notifications - Notification Object","description":"A notification object.","type":"object","properties":{"id":{"description":"The notification id.","type":"string"},"createdTimestamp":{"description":"The notification creation date.","$ref":"dates.schema.json#/definitions/utc-date-string-millis"},"title":{"description":"The notification title.","type":"string"},"message":{"description":"The notification message.","type":"string"}},"required":["id","createdTimestamp","message"]},{"$id":"http://schema.setarcode.aw/notifications-change-response.schema.json","title":"Notifications - Change Response","description":"A response for notification changes.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"extends":{"$ref":"base-response.schema.json"},"properties":{"data":{"type":"array","items":{"$ref":"notification.schema.json"}}},"required":["data"]},{"$id":"http://schema.setarcode.aw/practitioner-event-response.schema.json","title":"Practitioner - Response","description":"A response practitioner.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"extends":{"$ref":"base-response.schema.json"},"properties":{"data":{"type":"object","properties":{"generalPractitionerAgbCode":{"type":"string","description":"AGB code"},"linkStatus":{"description":"Link status of the practitioner office","$ref":"#/definitions/link-status-types"},"rejectedReason":{"type":"string","description":"Reason for rejection by the practitioner office"}}}},"definitions":{"link-status-types":{"type":"string","enum":["approved","rejected","pending"],"javaEnumNames":["approved","rejected","pending"]}},"required":["data"]},{"$id":"http://schema.setarcode.aw/practitioner-set-request.schema.json","title":"Practitioner - Set Request","description":"A request to set the practitioner.","type":"object","properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"},"generalPractitionerAgbCode":{"type":"string","description":"AGB code"}},"required":["kid","generalPractitionerAgbCode"]},{"$id":"http://schema.setarcode.aw/health-card.schema.json","title":"Health Card - Health Card Object","description":"A health card object.","type":"object","properties":{"id":{"description":"The unique identifier for a health card.","type":"string"},"fullName":{"description":"The full name of the member.","type":"string"},"idNumber":{"description":"The members cedula id number.","type":"string"},"validUntilDate":{"description":"The date until the health card is valid.","$ref":"dates.schema.json#/definitions/utc-date-string-any"},"qrCodeLink":{"description":"The link that the health card's quick response code should display.","type":"string"}},"required":["id","fullName","idNumber","validUntilDate","qrCodeLink"]},{"$id":"http://schema.setarcode.aw/health-card-certification.schema.json","title":"Health Card - Health Card Certification Object","description":"A health card certification object.","type":"object","properties":{"healthCardId":{"description":"The unique identifier of the related health card.","type":"string"},"data":{"type":"string","description":"The certification pdf data in base64 format"}},"required":["healthCardId","data"]},{"$id":"http://schema.setarcode.aw/health-card-change-response.schema.json","title":"Health Card - Change Response","description":"A response health card changes.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"extends":{"$ref":"base-response.schema.json"},"properties":{"data":{"description":"The health card change object or null if not set.","anyOf":[{"$ref":"health-card.schema.json"},{"type":"null"}]}},"required":["data"]},{"$id":"http://schema.setarcode.aw/health-card-get-certification-request.schema.json","title":"Health Card - Get Health Card Certification Request","description":"A request to get health card certification. This request must be sent to amq.topic:health-card.get-certification","type":"object","properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"}},"required":["kid"]},{"$id":"http://schema.setarcode.aw/health-card-get-request.schema.json","title":"Health Card - Get Health Card Request","description":"A request to get health card information. This request must be sent to amq.topic:health-card.get","type":"object","properties":{"kid":{"type":"string","$ref":"key.schema.json#/definitions/kid"}},"required":["kid"]},{"$id":"http://schema.setarcode.aw/health-card-certification-change-response.schema.json","title":"Health Card - Certification Change Response","description":"A response health card certification changes.","type":"object","allOf":[{"$ref":"base-response.schema.json"}],"properties":{"data":{"type":["object","null"],"description":"The health card certification change object or null if not set.","anyOf":[{"$ref":"health-card-certification.schema.json"},{"type":"null"}]}},"required":["data"]}]