2.1 Rules

MessageNEWXXXXNNNN
PAT_UPDYDRB3/4/5DRB3/4/5
Donor_DIFFYDRB3/4/5DRB3/4/5
TYP_RESYDRB3/4/5DRB3/4/5
SMP_RESYDRB3/4/5DRB3/4/5


2.2 How to read the new semantics if you know EMDIS

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:

  1. Communication with S&M
    1. Most of the Patient API endpoints and all Search API endpoints consist of such messages.
  2. Messaging with other registries

    1. One Patient API and all Connect APIs are represented in this style.

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.


APICommentmandatory for Patient & Searchmandatory for Patient & Search, download Registrymandatory for Connectmandatory for Connect, download RegistryComment
SEARCH & MATCH





PATIENTS





​/patients [POST]Create a patientyesnoyesno
​/patients [PUT]Update an existing patientnonoyesno
​/patients [GET]Retrieved patients listnonononoSearch and Match Service Graphical User Interface (GUI) content, optional for participating organisations
​/patients​/{wmdaId} [GET]Retrieve nonononoSearch and Match Service GUI content, optional for participating organisations
/patients/status [PUT]
yesnoyesno
​/patients​/user [PUT]
nonononoSearch and Match Service GUI content, optional for participating organisations
SEARCH





/searches [POST]
yesnoyesnofor recommendations see semantics (warning)
/searches/patientSearches/{wmdaId} [GET]
yesnoyesno
/searches/refreshAllPatientSearches [POST]
nonononoSearch and Match Service GUI content, optional for participating organisations
/searches/{searchId} [GET]
nonononohighly recommended
/searches/refresh [POST]not yet available




/searches/searchResults/donors [POST]
yesnoyesnoat least one of those is mandatory, 
/searches/searchResults/cbus [POST]
/searches/{searchId}/searchResults/adcu [GET]
​/searches​/{searchId}​/searchResults​/registries [GET]
nonononoSearch and Match Service GUI content, optional for participating organisations
/searches/{searchId}/searchResults/cbbs [GET]
nonononoSearch and Match Service GUI content, optional for participating organisations
/searches/selected/donors [POST]
nonononoSearch and Match Service GUI content, optional for participating organisations
​/searches​/selected​/cbus [POST]
nonononoSearch and Match Service GUI content, optional for participating organisations
/searches/donors/{searchResultsId} [GET]
nonononoSearch and Match Service GUI content, optional for participating organisations
​/searches​/cbus​/{searchResultsId} [GET]
nonononoSearch and Match Service GUI content, optional for participating organisations
DASHBOARD





for all
nonononoSearch and Match Service GUI content, optional for participating organisations







CONNECT API





ATTACHMENT





​/api​/v1​/attachmentTicket [POST]


nonoOptional for participating organisations
/api/v1/attachmentDownloadURL [POST]


nonoOptional for participating organisations
​/api​/v1​/attachmentDownloadedNotification [POST]


nonoOptional for participating organisations
RETRIEVE





​/api​/v1​/retrieveMessages [POST]


yesyes(warning) check with Mark
ADMIN





/api/v1/alertRetrieve [GET]


nonorecommended
/api/v1/alertUpdateRetrieve [GET]


nonorecommended
PATIENT





/api/v1/updateRegisteredPatient [POST]


yes (PR)yes (PR)
​/api​/v1​/updateRegisteredPatientRetrieve [GET]


yes (DR)yes (DR)
PING





​/api​/v1​/pingRequest [POST]


nonoOptional for participating organisations
/api/v1/pingRetrieve [POST]


nonoOptional for participating organisations
TEXT MESSAGE





/api/v1/textMessageRequest [POST]


nonoOptional for participating organisations
​/api​/v1​/TextMessageRetrieve [GET]


nonoOptional for participating organisations
REQUEST





/api/v1/genericRequestRequest [POST]


nono
/api/v1/genericRequestRetrieve [GET]


nono
/api/v1/extendedTypingRequestRequest [POST]


yes (PR)yes (PR)
/api/v1/extendedTypingRequestRetrieve [GET]


nonorecommended for DCs with incompletely typed donors
/api/v1/extendedTypingResponseRequest [POST]


nonorecommended for DCs with incompletely typed donors
/api/v1/extendedTypingResponseRetrieve [GET]


yes (PR)yes (PR)
​/api​/v1​/sampleRequestRequest [POST]


yes (PR)yes (PR)
​/api​/v1​/sampleRequestRetrieve [GET]


yes (DR, CBB)yes (DR, CBB)
​/api​/v1​/sampleInfoRequest [POST]


yes (DR, CBB)yes (DR, CBB)
​/api​/v1​/sampleInfoRetrieve [GET]


yes (PR)yes (PR)
​/api​/v1​/sampleArrivalRequest [POST]


yes (DR, CBB)yes (DR, CBB)
​/api​/v1​/sampleArrivalRetrieve [GET]


yes (PR)yes (PR)
/api/v1/sampleResponseRequest [POST]


yes (PR)yes (PR)
/api/v1/sampleResponseRetrieve [GET]


yes (DR, CBB)yes (DR, CBB)
/api/v1/infectiousDiseaseMarkerRequest [POST]


yes (PR)yes (PR)
/api/v1/infectiousDiseaseMarkerRequestRetrieve [GET]


yes (DR)yes (DR)
​/api​/v1​/infectiousDiseaseMarkerResultRequest [POST]


yes (DR)yes (DR)
/api/v1/infectiousDiseaseMarkerResultRetrieve [GET]


yes (PR)yes (PR)
​/api​/v1​/reservationRequestRequest [POST]


yes (PR)yes (PR)(warning) under discussion in user group
​/api​/v1​/reservationRequestRetrieve [GET]


yes (DR)yes (DR)
​/api​/v1​/reservationResponseRequest [POST]


yes (DR)yes (DR)
/api/v1/reservationResponseRetrieve [GET]


yes (PR)yes (PR)
​/api​/v1​/reservationReleaseRequest [POST]


yes (PR)yes (PR)
​/api​/v1​/reservationReleaseRetrieve [GET]


yes (DR)yes (DR)
/api/v1/requestCancellationRequest [POST]


yes (PR)yes (PR)
/api/v1/requestCancellationRetrieve [GET]


yes (DR)yes (DR)
​/api​/v1​/requestRejectedRequest [POST]


yes (DR)yes (DR)
/api/v1/requestRejectedRetrieve [GET]


yes (PR)yes (PR)
​/api​/v1​/resultReminderRequest [POST]


nonorecommended
/api/v1/resultReminderRetrieve [GET]


nonorecommended
GENERAL





/api/v1/messageResponse [POST]


yesyes
​/api​/v1​/messageResponseRetrieve [GET]


yesyes
/api/v1/messageAcknowledgementRequest [POST]




all replaced by the messageResponse
/api/v1/messageAcknowledgementRetrieve [GET]




​/api​/v1​/warningRequest [POST]




/api/v1/warningRetrieve [GET]




​/api​/v1​/messageDenialRequest [POST]




/api/v1/messageDenialRetrieve [GET]




CBU





/api/v1/cordBloodUnitReportRequestRequeston hold

nonoshould be generalised to CBU and ADCUs, etc...
/api/v1/cordBloodUnitReportRequestRetrieveon hold

yes (CBB)yes (CBB)
/api/v1/cordBloodUnitReportResponseRequeston hold

nono
​/api​/v1​/cordBloodUnitReportResponseRetrieveon hold

yes (CBB)yes (CBB)