Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

MethodDescription
GETRetrieve a representation of the resource.
POSTCreate a new resource.
PUTReplace a resource.
DELETEDelete a resource.

...

Affiliate API

 Affiliate Check

Check that an affiliate is in good standing with IHTSDO.

Where possible the affilateId with confirming matching data from the application can be used, otherwise a single match from all affiliates of a member can be used.

Code Block
GET /affiliates/check?member=:memberKey&match=:keyword[&affilateId=:affiliateId]

...

 Parameters

NameTypeOptionalDescription
memberstringMandatoryIdentification of the member country that the affiliate has been accepted by. It is either a two-letter country code or IHTSDO to indicate IHTSDO international. The country codes are a subset of the ISO 3166-1 alpha-2 codes. Valid options: AU BE BN CA CL CZ DK EE ES GB HK IHTSDO IL IN IS LT MT MY NL NZ PL PT SE SG SI SK US UY.
matchstringMandatorySearch keyword within the affiliate record. This will match against a number of identifying fields of the affiliate: organization name, first name, last name, street address, email, alternative email, and third email.
affiliateIdstringOptionalLimit the search to a specific Affilate record.

...

If successful then the API will return with a matched: true.

If there is no match then the API will return with matched: false.

No additional information is provided to diagnose a failed match.

 Examples

A successful match against a Swedish affiliate based on a match against the abc@test.com email address. The affiliate was uniquely identified and the account was in good standing.

Code Block
$ curl -i 'https://mlds.ihtsdotools.org/api/affiliates/check?member=SE&match=abc@test.com'
HTTP/1.1 200 OK
Content-Type: application/json

{"matched":true}

...

An unsuccessful match against an IHTSDO affiliate based a match against the keyword hospital. No affiliate was uniquely identified as many affiliates contained hospital in the searched fields.

Code Block
$ curl -i 'https://mlds.ihtsdotools.org/api/affiliates/check?member=SE&match=abc@test.com'
HTTP/1.1 200 OK
Content-Type: application/json

{"matched":false}

...

A successful match that limited the search to a single specified affiliate. The 'hospital' keyword matched, unlike before, however, by limiting the search to a single affiliate the result was unique.

Code Block
$ curl -i 'https://mlds.ihtsdotools.org/api/affiliates/check?member=IHTSDO&match=hospital&affiliateId=123'
HTTP/1.1 200 OK
Content-Type: application/json

{"matched":true}

...

The match value contains user supplied data and as result may need to be escaped using standard URL rules. For example, matching the email address me+work@email.com would require escaping the + character as %2B when using curl or else the match request would fail.

Code Block
$ curl -i 'https://mlds.ihtsdotools.org/api/affiliates/check?member=IHTSDO&match=me%2Bwork@email.com'
HTTP/1.1 200 OK
Content-Type: application/json

{"matched":true}

...

 

...

Release Packages API

Each member organization can make Release Packages available to their approved affiliates for downloading. A Release Package has a current version and past versions. A Release version can contain multiple files that can be individually downloaded by an affiliate.

Release files are not stored in MLDS and instead a URL is provided where the file can be download from on demand. Files are typically stored on the Amazon s3 service. The URL to directly access the release file is not made available to affiliate users, who instead use a MLDS based URL that in turn download the file from the original location.

 Authentication

The API provides read access to the released packages without authentication; however, to modify and add release packages requires authentication with a user with staff authorization.

 Get all release packages

List all release packages.

Code Block
$ curl -i 'https://mlds.ihtsdotools.org/api/releasePackages'

...

 Response

Code Block
languagexml

...

{
  "releasePackageId": 1911,
  "createdAt": "2015-10-14T13:49:09.163Z",
  "member": {
    "key": "SE"
  },
  "name": "Sweden A",
  "description": "<h3>sweden a release..<br/></h3>",
  "releaseVersions": [{
    "releaseVersionId": 1913,
    "createdAt": "2015-10-14T13:50:26.918Z",
    "name": "sweden a a 1",
    "description": "<p>some kind of version<br/></p>",
    "online": true,
    "publishedAt": null,
    "releaseFiles": [{
      "releaseFileId": 1921,
      "label": "<p>file2<br/></p>",
      "createdAt": "2015-10-14T19:18:39.808Z",
      "clientDownloadUrl": "/api/releasePackages/1911/releaseVersions/1913/releaseFiles/1921/download"
    }, {
      "releaseFileId": 1919,
      "label": "<p>file1<br/></p>",
      "createdAt": "2015-10-14T19:18:30.628Z",
      "clientDownloadUrl": "/api/releasePackages/1911/releaseVersions/1913/releaseFiles/1919/download"
    }]
  }]
}, {
  "releasePackageId": 5267,
  "createdAt": "2015-10-20T14:54:25.733Z",
  "member": {
    "key": "BE"
  },
  "name": "Belgium A",
  "description": "<p>AAAA</p><p><br/></p><p></p>",
  "releaseVersions": [{
    "releaseVersionId": 5269,
    "createdAt": "2015-10-20T14:54:44.829Z",
    "name": "Belgium A 1",
    "description": "<p>A 1<br/></p>",
    "online": true,
    "publishedAt": null,
    "releaseFiles": [{
      "releaseFileId": 5271,
      "label": null,
      "createdAt": "2015-10-20T14:55:01.955Z",
      "clientDownloadUrl": "/api/releasePackages/5267/releaseVersions/5269/releaseFiles/5271/download"
    }]
  }]
}]

 

Get a single Release Package

GET /api/releasePackages/:releasePackageId'

 Get a single Release Version

GET /api/releasePackages/:releasePackageId/releaseVersions/:releaseVersionId'

 Get a single Release File

GET /api/releasePackages/:releasePackageId/releaseVersions/:releaseVersionId/releaseFiles/:releaseFileId'

 Create a new Release Package

POST /api/releasePackages 

 Input

NameTypeDescription
member.keystringMember organization, either IHTSDO or the two letter country code of the member country
namestringName of the Release Package
descriptionstringDescription of the Release Package. Can be plain text or HTML.
{
  "member": {
    "key": "IHTSDO"
  },
  "name": "Another Release",
  "description": "<p>Another Description<br/></p>"
}

 Response

{
  "releasePackageId": 211920,
  "createdAt": "2015-10-28T20:39:41.965Z",
  "member": {
    "key": "SE"
  },
  "name": "Another Release",
  "description": "<p>Another Description<br/></p>",
  "releaseVersions": []
}

 Create a new Release Version

POST /api/releasePackages/:releaseVersionId/releaseVersions

 Input

NameTypeDescription
namestringName of the Release Version
descriptionstringDescription of the Release Version. Can be plain text or HTML.
publishedAtdateOptional - The publish date of the Released Version. Format: YYYY-MM-DD
{
  "name": "First Version",
  "description": "<p><b>First</b> version description <br/></p>"
}

 Response

{
  "releaseVersionId": 211924,
  "createdAt": "2015-10-28T20:48:21.796Z",
  "name": "First Version",
  "description": "<p><b>First</b> version description <br/></p>",
  "online": false,
  "publishedAt": "2015-10-28",
  "releaseFiles": []
}

 Create new Release File

Add a new release file to a Release Version.

POST /api/releasePackages/:releasePackageId/releaseVersions/:releaseVersionId/releaseFiles

 Input

NameTypeDescription
labelstringShort description of the file
downloadUrlstringURL of file content
{
  "label": "<p>Example file</p>",
  "downloadUrl": "http://files.com/example.txt"
}

 Response

{
  "releaseFileId": 211928,
  "label": "<p>Example file</p>",
  "createdAt": "2015-10-29T14:44:52.682Z",
  "clientDownloadUrl": "/api/releasePackages/211920/releaseVersions/211924/releaseFiles/211928/download",
  "downloadUrl": "http://files.com/example.txt"
}

Note that an affiliate download URL is used by affiliates to download the content via MLDS.

 Publish a Release Version Online

...

PUT /api/releasePackages/:releasePackageId/releaseVersions/:releaseVersionId

 Input

NameTypeDescription
namestringName of the Release Version
descriptionstringDescription of the Release Version. Can be plain text or HTML.
onlinebooleanTrue if the release version is available to affiliates to download
{
  "name": "First Version",
  "description": "<p><b>First</b> version description <br/></p>",
  "online": true
}

 Response

{
  "releaseVersionId": 211924,
  "createdAt": "2015-10-28T20:48:21.796Z",
  "name": "First Version",
  "description": "<p><b>First</b> version description <br/></p>",
  "online": true,
  "publishedAt": "2015-10-29",
  "releaseFiles": [{
    "releaseFileId": 211928,
    "label": "<p>Example file</p>",
    "createdAt": "2015-10-29T14:44:52.682Z",
    "clientDownloadUrl": "/api/releasePackages/211920/releaseVersions/211924/releaseFiles/211928/download",
    "downloadUrl": "http://files.com/example.txt"
  }]
}

 Notify Affiliates of Release V

...

POST /api/releasePackages/:releasePackageId/releaseVersions/:releaseVersionId/notifications

 Input

{
}

 Response

{
  "releaseVersionId": 211924,
  "createdAt": "2015-10-28T20:48:21.796Z",
  "name": "First Version",
  "description": "<p><b>First</b> version description <br/></p>",
  "online": true,
  "publishedAt": "2015-10-29",
  "releaseFiles": [{
    "releaseFileId": 211928,
    "label": "<p>Example file</p>",
    "createdAt": "2015-10-29T14:44:52.682Z",
    "clientDownloadUrl": "/api/releasePackages/211920/releaseVersions/211924/releaseFiles/211928/download",
    "downloadUrl": "http://files.com/example.txt"
  }]
}

 Create a Release Package License

...

POST /api/releasePackages/:releasePackageId/license

 Input

NameTypeDescription
fileform-dataFile name of the posted file contents.

...

$ curl -u USER:PASSWORD -i -F "file=@FILE.PDF" 'https://mlds.ihtsdotools.org/api/releasePackages/211920/license'

 Download Release File Content

...

To download a file content the supplied user credentials must be approved to get access to the member's files.

 Response

The response body is the file content.

Where possible the response headers Content-Disposition and Content-Type are set with content meta-data, such as filename.

 Example

Given the existing published Release Package:

...