Sender Responsibility: The sender is responsible for ensuring the desired order of calls to the Connect APIs. It is suggested that the sender maintain a queue of outgoing calls / messages so that message sequence is persistent in the event of system failure.
Receiver Responsibility: The receiver is responsible for monitoring the availableMessages queue and process retrieval calls to the Connect APIs in the order specified.
Message | NEW | XXXX | NNNN |
---|---|---|---|
PAT_UPD | Y | DRB3/4/5 | DRB3/4/5 |
Donor_DIFF | Y | DRB3/4/5 | DRB3/4/5 |
TYP_RES | Y | DRB3/4/5 | DRB3/4/5 |
SMP_RES | Y | DRB3/4/5 | DRB3/4/5 |
As one can see from the first sentence above, the API documentation is part of the new documentation set. This API documentation is called "swagger" for shortness. It is located at this publicly available address: https://apispecs.wmda.info/
At this address one can find both Search & Match API specifications and Connect API specifications:
Since the communication is now split to communication with WMDA's Search & Match and messaging with other registries, each API request in the Semantics may be represented in two styles:
Wherever suitable, we included EMDIS names of the messages in parentheses, e.g. 5.1 - Extended Typing Request (TYP_REQ).
In many cases, the current implementation of EMDIS messages will require a conversion of the flat EMDIS message structure into the nested (multi-level) structure of the API messages. All the fields in API have better names: e.g., REQ_DATE becomes requestDate.
EMDIS rules from the EMDIS Semantics are modified accordingly to the new reality and are added to each message, where applicable.
The table below shows recommended sets of API endpoints to be implemented depending on your use of services:
Service in use API endpoint \ | Comment | mandatory for Patient & Search | mandatory for Patient & Search, download Registry | mandatory for Connect | mandatory for Connect, download Registry | Comment |
---|---|---|---|---|---|---|
SEARCH & MATCH | ||||||
PATIENTS | ||||||
/patients [POST] | Create a patient | yes | no | yes | no | |
/patients [PUT] | Update an existing patient | no | no | yes | no | |
/patients [GET] | Retrieved patients list | no | no | no | no | Search and Match Service Graphical User Interface (GUI) content, optional for participating organisations |
/patients/{wmdaId} [GET] | Retrieve | no | no | no | no | Search and Match Service GUI content, optional for participating organisations |
/patients/status [PUT] | yes | no | no | no | ||
/patients/user [PUT] | no | no | no | no | Search and Match Service GUI content, optional for participating organisations | |
SEARCH | ||||||
/searches [POST] | yes | no | yes | no | for recommendations see semantics | |
/searches/patientSearches/{wmdaId} [GET] | yes | no | yes | no | ||
/searches/refreshAllPatientSearches [POST] | no | no | no | no | Search and Match Service GUI content, optional for participating organisations | |
/searches/{searchId} [GET] | no | no | no | no | highly recommended | |
/searches/refreshAllPatientSearches [POST] | no | no | no | no | ||
/searches/searchResults/donors [POST] | yes | no | yes | no | at least one of those is mandatory, | |
/searches/searchResults/cbus [POST] | ||||||
/searches/{searchId}/searchResults/adcu [GET] | ||||||
/searches/{searchId}/searchResults/registries [GET] | no | no | no | no | Search and Match Service GUI content, optional for participating organisations | |
/searches/{searchId}/searchResults/cbbs [GET] | no | no | no | no | Search and Match Service GUI content, optional for participating organisations | |
/searches/selected/donors [POST] | no | no | no | no | Search and Match Service GUI content, optional for participating organisations | |
/searches/selected/cbus [POST] | no | no | no | no | Search and Match Service GUI content, optional for participating organisations | |
/searches/donors/{searchResultsId} [GET] | no | no | no | no | Search and Match Service GUI content, optional for participating organisations | |
/searches/cbus/{searchResultsId} [GET] | no | no | no | no | Search and Match Service GUI content, optional for participating organisations | |
DASHBOARD | ||||||
for all | no | no | no | no | Search and Match Service GUI content, optional for participating organisations | |
CONNECT API | ||||||
ATTACHMENT | ||||||
/api/v1/attachmentTicket [POST] | no | no | Optional for participating organisations | |||
/api/v1/attachmentDownloadURL [POST] | no | no | Optional for participating organisations | |||
/api/v1/attachmentDownloadedNotification [POST] | no | no | Optional for participating organisations | |||
RETRIEVE | ||||||
/api/v1/availableMessages [POST] | yes | yes | ||||
ADMIN | ||||||
/api/v1/alertRetrieve [GET] | no | no | recommended | |||
/api/v1/alertUpdateRetrieve [GET] | no | no | recommended | |||
PATIENT | ||||||
/api/v1/updateRegisteredPatient [POST] | yes (PR) | yes (PR) | ||||
/api/v1/updateRegisteredPatientRetrieve [GET] | yes (DR) | yes (DR) | ||||
PING | ||||||
/api/v1/pingRequest [POST] | no | no | Optional for participating organisations | |||
/api/v1/pingRetrieve [POST] | no | no | Optional for participating organisations | |||
TEXT MESSAGE | ||||||
/api/v1/textMessageRequest [POST] | no | no | Optional for participating organisations | |||
/api/v1/TextMessageRetrieve [GET] | no | no | Optional for participating organisations | |||
REQUEST | ||||||
/api/v1/genericRequestRequest [POST] | no | no | ||||
/api/v1/genericRequestRetrieve [GET] | no | no | ||||
/api/v1/extendedTypingRequestRequest [POST] | yes (PR) | yes (PR) | ||||
/api/v1/extendedTypingRequestRetrieve [POST] | no | no | recommended for DCs with incompletely typed donors | |||
/api/v1/extendedTypingResponseRequest [POST] | no | no | recommended for DCs with incompletely typed donors | |||
/api/v1/extendedTypingResponseRetrieve [POST] | yes (PR) | yes (PR) | ||||
/api/v1/sampleRequestRequest [POST] | yes (PR) | yes (PR) | ||||
/api/v1/sampleRequestRetrieve [POST] | yes (DR, CBB) | yes (DR, CBB) | ||||
/api/v1/sampleInfoRequest [POST] | yes (DR, CBB) | yes (DR, CBB) | ||||
/api/v1/sampleInfoRetrieve [POST] | yes (PR) | yes (PR) | ||||
/api/v1/sampleArrivalRequest [POST] | yes (DR, CBB) | yes (DR, CBB) | ||||
/api/v1/sampleArrivalRetrieve [POST] | yes (PR) | yes (PR) | ||||
/api/v1/sampleResponseRequest [POST] | yes (PR) | yes (PR) | ||||
/api/v1/sampleResponseRetrieve [POST] | yes (DR, CBB) | yes (DR, CBB) | ||||
/api/v1/infectiousDiseaseMarkerRequest [POST] | yes (PR) | yes (PR) | ||||
/api/v1/infectiousDiseaseMarkerRequestRetrieve [POST] | yes (DR) | yes (DR) | ||||
/api/v1/infectiousDiseaseMarkerResultRequest [POST] | yes (DR) | yes (DR) | ||||
/api/v1/infectiousDiseaseMarkerResultRetrieve [POST] | yes (PR) | yes (PR) | ||||
/api/v1/reservationRequestRequest [POST] | yes (PR) | yes (PR) | ||||
/api/v1/reservationRequestRetrieve [POST] | yes (DR) | yes (DR) | ||||
/api/v1/reservationResponseRequest [POST] | yes (DR) | yes (DR) | ||||
/api/v1/reservationResponseRetrieve [POST] | yes (PR) | yes (PR) | ||||
/api/v1/reservationReleaseRequest [POST] | yes (PR) | yes (PR) | ||||
/api/v1/reservationReleaseRetrieve [POST] | yes (DR) | yes (DR) | ||||
/api/v1/requestCancellationRequest [POST] | yes (PR) | yes (PR) | ||||
/api/v1/requestCancellationRetrieve [POST] | yes (DR) | yes (DR) | ||||
/api/v1/requestRejectedRequest [POST] | yes (DR) | yes (DR) | ||||
/api/v1/requestRejectedRetrieve [POST] | yes (PR) | yes (PR) | ||||
/api/v1/resultReminderRequest [POST] | no | no | recommended | |||
/api/v1/resultReminderRetrieve [POST] | no | no | recommended | |||
GENERAL | ||||||
/api/v1/messageResponse [POST] | yes | yes | ||||
/api/v1/messageResponseRetrieve [POST] | yes | yes | ||||
/api/v1/messageAcknowledgementRequest [POST] | all replaced by the messageResponse | |||||
/api/v1/messageAcknowledgementRetrieve [POST] | ||||||
/api/v1/warningRequest [POST] | ||||||
/api/v1/warningRetrieve [POST] | ||||||
/api/v1/messageDenialRequest [POST] | ||||||
/api/v1/messageDenialRetrieve [POST] | ||||||
CBU | ||||||
/api/v1/cordBloodUnitReportRequestRequest | on hold | no | no | should be generalised to CBU and ADCUs, etc... | ||
/api/v1/cordBloodUnitReportRequestRetrieve | on hold | yes (CBB) | yes (CBB) | |||
/api/v1/cordBloodUnitReportResponseRequest | on hold | no | no | |||
/api/v1/cordBloodUnitReportResponseRetrieve | on hold | yes (CBB) | yes (CBB) | |||