⚠Due to planned maintenance you will experience short (<30 min) downtime between 08:00 - 08:30 CET.
Table of Contents |
---|
6.1 Embedded
...
blocks
6.1.1 Embedded Meta block
The additional meta-information "blocks" are added to ensure the receiving registry is aware of:
- A message identifier
- A timestamp
- What Which registry sent the information (sending registry)
- What type of response is provided by the WMDA Match Connect system
- Any failed validations detected by the Match Connect system
- A sequence number, so that the receiving registry knows if any message is missing.
DetailsFieldstring systems the type of message just sent by calling this
metaInformation* |
| Field |
| |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
Details | remarkType | |||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
|
6.1.2 Embedded Address block (NEW_ADD)
With this message block, the contact information of the hub's institutions, namely Financial institutionsFinancial institutions, Transplant Centers, and Laboratories are shared with the partner hubs. Thus a partner hub partner hub has all the required contact information for the Institution contained in Donor Requests.
- Hubs are required to keep this contact information up to date.
- It’s not only useless but forbidden to give a postbox (POB) in a LAB address since this address is used for the delivery of samples. For the same reason ZIP code, City, and Country are required in the address block.
- The contactPerson is required if the INST_TYPE is ”LAB”.
- The EMDIS ID (
Organisation unique identifier for the institution (formerly known as INST_ID)
of an institution should:
- Should remain stable over time and
- must not be assigned to different institutions
- Is a unique reference to an institution
- Allows local address management if needed (e.
- g. for other use cases) by receiving registry and backward compatibility to existing EMDIS implementations.
- Provided by the local registry system.
- Should be worldwide unique.
- Should follow the construct of ION + local address id.
- The ION to be used is the ION of the patient registering registry (PR).
- Should follow the construct of ION + local address id.
- Should be provided as a user-friendly (displayable) id for use on screens and on documentation.
In the Match-Connect systemIn the Match-Connect system, the addresses will be embedded in the donor requests. See Chapter Requests for details.
Message structure:
SendRetrieveaddressRequest Expand
Field
*
false
10
minLength
3
hub code
hub code usually are the two-character ISO country code of the registry (e.g. NL for Netherlands) In the case of multiple registries in one country, a replacement code will be assigned.
Should
line1
nullable
true
maxLength
60
nullable: true
contactPerson
maxLength: 20
maxLength: 20
maximum: 9999
minimum: 0
maxLength: 4
minLength: 4
example: 1234
title | Request... |
---|
Field |
---|
Details |
---|
organisationId |
string |
true |
19 |
example: |
9999123456 Organisation unique identifier for the institution.
|
|
|
|
organisation* |
string
nullable: false
maxLength: 60
Address line 1
line2
|
|
|
|
Address line 2
line3postalCode*string
nullable: false
maxLength: 10
city*string
nullable: false
maxLength: 40
country*string
nullable: false
|
maxLength: 60
Address line 3
|
|
minLength: 3
maxLength: 3
HUB = EMDIS Hub
DON = Donor centre
TRA = Transplant centre
HAR = Harvesting centre
LAB = Typing laboratory
FIN = Financial institution
CBB = Cord Blood Bank
| ||||||||||
contactPerson* |
|
string
nullable: true
maxLength: 40
Contact person. Required if type = LAB.
|
|
|
|
|
maxLength: 60
receivingRegistry*stringmaximum: 9999
minimum: 0
maxLength: 4
minLength: 4
example: 1234
4 digit ION of the receiving registry
Expand | ||||
---|---|---|---|---|
| ||||
|
Expand | ||||
---|---|---|---|---|
| ||||
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
6.1.3 Embedded Patient Block
There is no "register patient" endpoint. Instead, an embedded patient block will accompany all requests. The embedded patient block looks as follows:
|
6.1.3 Embedded Patient Block
There is no "register patient" endpoint. Instead, an embedded patient block will accompany all requests. The embedded patient block looks as follows:
Field | Details | ||||
---|---|---|---|---|---|
wmdaId* | integer nullable: false example: 1234 ID provided by the WMDA | ||||
patientId* | string MUST Start with ION of patient registry. Organisation unique identifier for patient. Cannot be set unless "legalTerms" is set to "true". Do not use real names here. | ||||
emdisPatientId | string maxLength: 17 minLength: 3 nullable:true example: AU9654021 MUST start with two letter EMDIS hub code. The value comprises the EMDIS patient identification, where the patient search centre is an EMDIS member, otherwise the value is empty. | ||||
hla* | {...} | ||||
idm | {...} | ||||
dateOfBirth | string($date) nullable: true maxLength: 10 example: 1961-05-27 | ||||
diagnosis | {...} | ||||
diseasePhase | string Enum: | ||||
ethnicity | string Enum: | ||||
poolCountryCode | string maxLength: 2 pattern: ^[A-Z]{2} nullable: true example: NL ISO 3166-1 alpha-2 Country Code (capitalized) | ||||
abo | |||||
Field | Details | ||||
wmdaId* | integer nullable: false example: 1234 ID provided by the WMDA | ||||
patientId* | string maxLength: 17 nullable: false example: XY1234P Organisation unique identifier for the patient. Cannot be set unless "legalTerms" is set to "true". Do not use real names here. | ||||
hla* | {...} | ||||
idm | {...} | ||||
dateOfBirth | string($date) nullable: true maxLength: 10 example: 1961-05-27 | ||||
diagnosis | {...} | ||||
diseasePhase | string Enum: | ||||
ethnicityrhesus | string Enum: | ||||
poolCountryCodeweight | integerstring maxLengthnullable: 2true patternminimum: ^[A-Z]{2} nullable1 maximum: 999true example: NL ISO 3166-1 alpha-2 Country Code (capitalized) 76 | ||||
sexabo | string Enum: | ||||
rhesusfirstName | string nullablemaxLength: true Enum: | weight | integer 50 nullable: true minimumexample: 1 maximum: 999 example: 76 | sex | John First (given name) of the patient |
lastName | stringstring maxLength:50 nullable: true Enumexample: Array [ 2 ] | firstName | Doe Last (family stringmaxLength: 30 nullable: true example: John First (given name) of the patient | ||
lastName | string maxLength: 30 nullable: true example: Doe Last (family name) of the patient | ||||
mic | {...} |
6.1.4 Embedded Donor Block
...
In EMDIS, the following messages are linked to the donor updates:
- IDM_RES
- TYP_RES
- NO_RES
- RSV_RES
These four and newly two more (SMP_ARR and SMP_INFO) will be replaced with the Match-Connect API endpoints that have the donor details embedded in the message. Respective endpoints of IDM_RES and TYP_RES will deliver new IDM and new typing details, and all the mentioned endpoints will also inform the patient registry of the new donor status.
These donor updates are for the receiving registry (patient registry) only and will not be updated in the central HUB. So the sending (donor) registry is responsible to send a DIFF upload to the S&M system in parallel to keep information in sync.
...
Expand | ||
---|---|---|
| ||
|
...
Expand | ||
---|---|---|
| ||
|
...
Expand | ||
---|---|---|
| ||
|
(donor in request)
In case the embedded donor block is part of a message type that may not result in updates of donor-related data, the "embedded donor block (donor in request" block is used.
Only sending a grid, cordId or adcuId for message types with static donor information enhances privacy and security through data minimization.
Donor type | Details | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
donor* |
|
6.1.5 Embedded Donor Block (donor in response)
In EMDIS, the following messages are linked to the donor updates:
- TYP_RES
- IDM_RES
- RSV_RES
These three will be replaced with the Match-Connect API endpoints that have the donor details embedded in the message. Respective endpoints of IDM_RES and TYP_RES will deliver new IDM and new typing details, and all the mentioned endpoints will also inform the patient registry of the new donor status.
The corresponding endpoints in Match-Connect are:
- extendedTypingResponse
- infectiousDiseaseMarkerResponse
- reservationResponse
These donor updates are for the receiving registry (patient registry) only and will not be updated in the central HUB. So the sending (donor) registry is responsible for sending a DIFF upload to the S&M system in parallel to keep information in sync.
Field | Details | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
grid* | string | |||||||||||||||||||||||||||
dateOfBirth* | string | |||||||||||||||||||||||||||
sex | string | |||||||||||||||||||||||||||
hla* |
| |||||||||||||||||||||||||||
abo | string nullable:true Enum: [A, B, O, AB] | |||||||||||||||||||||||||||
rhesus | string nullable:true Enum: [P, N] | |||||||||||||||||||||||||||
donorRegistryIon* | integer($int32) Unique number provided by ICCBBA for the registry that is responsible for the donor/CBU | |||||||||||||||||||||||||||
status* | string | |||||||||||||||||||||||||||
ethnicity | string Enum: | |||||||||||||||||||||||||||
idm | [ ... ] | |||||||||||||||||||||||||||
lastContactDate | string($date) | |||||||||||||||||||||||||||
marrowDonationsCount | integer($int32) | |||||||||||||||||||||||||||
pbscDonationsCount | integer($int32) | |||||||||||||||||||||||||||
donorAttribute | string | |||||||||||||||||||||||||||
weight | integer | |||||||||||||||||||||||||||
height | integer($int32) | |||||||||||||||||||||||||||
kir | [ ... ] | |||||||||||||||||||||||||||
collectionType | string | |||||||||||||||||||||||||||
transfusionsCount | integer($int32) | |||||||||||||||||||||||||||
pregnanciesCount | integer($int32) | |||||||||||||||||||||||||||
reservedPatientId | string | |||||||||||||||||||||||||||
statusEndDate | string($date) | |||||||||||||||||||||||||||
statusReason | string | |||||||||||||||||||||||||||
mic | {...} | |||||||||||||||||||||||||||
ccr5 | string nullable: true Enum: [ DD, DW, WW ] | |||||||||||||||||||||||||||
lastMedicalCheckupDate | string($date) |
Here is the comparison of the DONOR_CB and the API endpoints: EMDIS vs API.xlsx
6.1.6 Embedded general information
Here is the comparison of the DONOR_CB and the API endpoints: EMDIS vs API.xlsx
6.1.5 Embedded WMDA Response block
The WMDA will provide a standard response to request messages sent to Match-Connect. Its structure is as follows:
Field | Details |
---|---|
deliveredAtUtc* | string($date-time) Server-supplied timestamp showing time of Message delivery to receiving registry's inbox queue |
referenceMessageId* | string($uuid) |
responseType* | stringEnum: messages can be failed, if the message has a structure or information that prevent delivery to the receiving registry. This could be incorrect JSON structure and non-existent ION or because the receiving registry does not allow messages from your registry. |
receivingRegistryMessageSequenceNumber | integer Incrementing integer set by WMDA MatchConnect systems that indicates the order in which the messages were received by the WMDA and therefore the order in which messages should be processed. Each receiving registry has its own unique sequence. |
wmdaRemarks | [...] |
...
block
The WMDA will provide a standard response that contains the parameters used to retrieve messages sent to in Match-Connect. Its structure is as follows:follows:
generalInformation* |
|
default: false
|
|
|
|
6.2 Message Response
The message response is intended as an automated response to every user generated message. It serves three purposes:
...
Send (Post) | Retrieve (Post) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
MessageResponseMessageResponseRequest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
6.3 Text message [TXT_MSG]
The TXT_MSG is useful to convey notes or comments pertaining to a particular patient, donor, or patient/donor pair.
...
Send (Post) | Retrieve (Post) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
textMessageRequest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
6.4 Alert message
The Alert message is used to broadcast an important information about the system, like planned service outage. Messages are generated centrally by WMDA. Members are expected to display them to the users.
...
Send | Retrieve (Post) | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AlertRetrieve | |||||||||||||||||||||||||||||||||||||||||
Alerts can only be sent by the WMDA's central system |
|
6.5 Alert Update message
The Alert Update message is used to broadcast an update about some previous alert. Messages are generated centrally by WMDA. Members are expected to display them to the users.
...
Send | Retrieve (Post) | |||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AlertUpdateRetrieve | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Alert updates can only be sent by the WMDA's central system |
|
6.6 Available Messages
This endpoint allows end users to retrieve an overview of all messages that are ready to be downloaded, including their corresponding sequence numbers. This information can be used to retrieve the messages from their respective *retrieve endpoints.
The chronological order of processing If desired, the messages should can be arranged in the local system. This can be done by using the timestamps that are provided with the messages, as part of their meta information.pulled in chronological order, given by the sequence numbers. Each "retrieve" endpoint will have the optional parameter "sequenceNumber", that allows for an indivual collection of the corresponding message(s). If that parameter is left empty all available messages are retrieved (according to the limit set in the parameters).
GET | ||||||||||
availableMessages | ||||||||||
|
Array:
attachment*integer
|
|
|
|
|
|
|
6.7
...
All Available Messages /* Proposed - not yet implemented */
This endpoint allows end users to retrieve an array of all messages that are ready to be downloaded, including their content. This would allow a registry to call just one endpoint to collect all messages.
Limitations:
This option does not work for all applications/tooling, like defining custom API connectors in the 365 PowerPlatform. In those cases the same static structure for all call responses on a specific endpoint is not only IBP, but also required.
Retrieve (Post) | ||||
availableMessagesAll | ||||
|
This endpoint allows end users to retrieve an overview of all messages that are ready to be downloaded, including their corresponding sequence numbers. This information can be used to retrieve the messages from their respective *retrieve endpoints. If desired, the messages can be pulled in chronological order, given by the sequence numbers. Each "retrieve" endpoint will have the optional parameter "sequenceNumber", that allows for an indivual collection of the corresponding message(s). If that parameter is left empty all available messages are retrieved (according to the limit set in the parameters).
GETavailableMessages2 Expand
FieldDetailstotalMessages*integer
example: 6
Count of messages that are ready for retrieval
messagesReadyForRetrieval* Expandtitle
messageResponse
Count
,
example
6
title | Response... |
---|
example: 6
Count of messages that are ready for retrieval
messagesReadyForRetrieval* Expandtitle
|
|
|
|
|
sequenceNumbers integer, List 1, 18
Count integer
sequenceNumbers integer
updatedPatient*Count integer
sequenceNumbers integer
ping*Count integer
sequenceNumbers integer
textMessage*Count integer
sequenceNumbers integer
genericRequest*Count integer
sequenceNumbers integer
extendedTypingRequest*Count integer
sequenceNumbers integer
typingResponse*Count integer
sequenceNumbers integer
sampleRequest*Count integer
sequenceNumbers integer
sampleInfo*Count integer
sequenceNumbers integer
sampleArrival*Count integer
sequenceNumbers integer
sampleResponse*Count integer
sequenceNumbers integer
infectiousDiseaseMarkerRequest*Count integer
sequenceNumbers integer
infectiousDiseaseMarkerResult*Count integer
sequenceNumbers integer
reservationRequest*Count integer
sequenceNumbers integer
reservationResponse*Count integer
sequenceNumbers integer
reservationRelease*Count integer
sequenceNumbers integer
requestCancellation*Count integer
sequenceNumbers integer
requestRejected*Count integer
sequenceNumbers integer
resultReminder*Count integer
sequenceNumbers integer
cordBloodUnitReportRequest*Count integer
sequenceNumbers integer
cordBloodUnitReportResponse*Count integer
sequenceNumbers integer
6.7 Available Messages 3
...
|
6.8 Recover Messages
To recover or "restore" a soft-deleted message, users can call to the "recoverMessages" endpoint. This endpoint allows users to bring back messages that were soft-deleted within a 72 hour timeframe.
This approach provides an additional safety measure for end users. In case a message was mistakenly deleted during the retrieval process, or if there is a need to recover soft-deleted data, this mechanism allows for data recovery without permanent loss.
Users should be aware that the functionality to restore messages is limited to 72 hours. After this window, the soft-deleted messages are permanently removed from the system. Also see: section 2.4.7 Message storage retention policies in the Technical Guidelines chapter.
GETavailableMessages3 Expand
FieldDetailsgeneralInformation*
messages* Expand
FieldDetailsoriginalMessage*
title | Response... |
---|
Expand | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
title | ... |
---|
oneOf:
alert
ping
textMessageRequest
genericRequest
extededTypingRequest
typingResponse
sampleRequest
sampleArrival
sampleInfo
sampleResponse
infectiousDiseaseMarker
infectiousDiseaseMarkerResult
reservationRequest
reservationResponse
reservationRelease
requestCancellation
requestRejected
resultReminder
cordBloodUnitReportRequest
cordBloodUnitReportResponse
POST | ||||||||||||||||||||
recoverMessages | ||||||||||||||||||||
|