781 lines
35 KiB
JSON
781 lines
35 KiB
JSON
{
|
|
"info": {
|
|
"_postman_id": "5764bcaa-18fb-4cdd-a909-cf604ea5ab47",
|
|
"name": "lifen-api",
|
|
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
|
|
},
|
|
"item": [
|
|
{
|
|
"name": "a Json Web Token",
|
|
"event": [
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"exec": [
|
|
"pm.test(\"Auth succed\", function () {\r",
|
|
" if(pm.response.headers.get(\"Content-Type\") === \"application/json\") {\r",
|
|
" const responseJson = pm.response.json();\r",
|
|
" pm.globals.set(\"json_web_token\", responseJson.access_token);\r",
|
|
" now = new Date();\r",
|
|
" now.setTime(now.getTime() + (responseJson.expires_in * 1000));\r",
|
|
" pm.globals.set(\"token_expiration\", now);\r",
|
|
" // We save the expiration date to be challenged in each request. Renew it on pre-request script if necessary.\r",
|
|
" }\r",
|
|
"});"
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
}
|
|
],
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\r\n\t\"client_id\": \"szVsMPaDPUdwqngGiLoHfXFT5XCYPFcy\",\r\n \"client_secret\": \"sMp2PB-QWBZupCB4IXJrWDJ-7tlpUl09vQ2tMKdy049He7-g93ofbXz7ESlAc82B\",\r\n \"audience\": \"post-prod-apis\",\r\n \"grant_type\": \"client_credentials\"\r\n}",
|
|
"options": {
|
|
"raw": {
|
|
"language": "json"
|
|
}
|
|
}
|
|
},
|
|
"url": {
|
|
"raw": "https://lifen-post-prod.eu.auth0.com/oauth/token",
|
|
"protocol": "https",
|
|
"host": [
|
|
"lifen-post-prod",
|
|
"eu",
|
|
"auth0",
|
|
"com"
|
|
],
|
|
"path": [
|
|
"oauth",
|
|
"token"
|
|
]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Binary n°1615660",
|
|
"event": [
|
|
{
|
|
"listen": "prerequest",
|
|
"script": {
|
|
"exec": [
|
|
""
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
},
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"exec": [
|
|
"pm.test(\"Check that the binary exists\", function () {",
|
|
" // Chaiexcept syntax",
|
|
" pm.response.to.have.status(200);",
|
|
"});",
|
|
"",
|
|
"pm.test(\"Check that the binary is a PDF type\", function () {",
|
|
" pm.expect(pm.response.headers.get(\"Content-Type\"), \"The response is not a PDF\").to.include(\"application/pdf\");",
|
|
"});"
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
}
|
|
],
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [],
|
|
"url": {
|
|
"raw": "https://{{baseURL}}/fhir/Binary/1615660",
|
|
"protocol": "https",
|
|
"host": [
|
|
"{{baseURL}}"
|
|
],
|
|
"path": [
|
|
"fhir",
|
|
"Binary",
|
|
"1615660"
|
|
]
|
|
}
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "DocumentReference",
|
|
"event": [
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"exec": [
|
|
"pm.environment.set(\"documentReferenceId\", \"\");",
|
|
"",
|
|
"pm.test(\"The binary is correclty proccessed as a Document Reference in the server\", function () {",
|
|
" // chaisinon syntax",
|
|
" pm.response.to.have.status(201);",
|
|
" pm.expect(pm.response.headers.get(\"Content-Type\")).to.equal(\"application/fhir+json;charset=UTF-8\");",
|
|
"});",
|
|
"",
|
|
"const responseJson = pm.response.json();",
|
|
"",
|
|
"pm.test(\"The response is a DocumentReference\", function () {",
|
|
" pm.expect(responseJson.resourceType, \"The server did not returned a documentReferenceId\").to.eq(\"DocumentReference\");",
|
|
"});",
|
|
"",
|
|
"pm.test(\"The response have a documentReferenceId (and store it)\", function () {",
|
|
" pm.expect(responseJson.id, \"The server did not returned a documentReferenceId\").to.not.be.empty;",
|
|
" console.log(`Fetched documentReferenceId: ${responseJson.id}`);",
|
|
"",
|
|
" // Best practice : separate setup / teardown logic from the testscript itself (ie: action to store data outside of this function)",
|
|
" pm.environment.set(\"documentReferenceId\", responseJson.id);",
|
|
" pm.expect(pm.environment.get(\"documentReferenceId\")).to.not.be.empty;",
|
|
"});",
|
|
"",
|
|
"pm.test(\"The document Reference status is 'Current'\", function () {",
|
|
" pm.expect(responseJson.status).to.be.equals(\"current\");",
|
|
"});",
|
|
"",
|
|
"pm.test(\"The document Reference status is 'Draft'\", function () {",
|
|
" // This test SHOULD fail!!!",
|
|
" pm.expect(responseJson.status, \"This test MUST fail\").to.be.equals(\"draft\");",
|
|
"});",
|
|
"",
|
|
"pm.test(\"The document status is 'final'\", function () {",
|
|
" const responseJson = pm.response.json();",
|
|
" pm.expect(responseJson.docStatus).to.be.equals(\"final\");",
|
|
"});"
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
},
|
|
{
|
|
"listen": "prerequest",
|
|
"script": {
|
|
"exec": [
|
|
""
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
}
|
|
],
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json",
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "Prefer",
|
|
"value": "return=representation",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\r\n \"status\": \"current\",\r\n \"docStatus\": \"final\",\r\n \"type\": {\r\n \"coding\": [\r\n {\r\n \"system\": \"http://loinc.org\",\r\n \"code\": \"34109-9\",\r\n \"display\": \"Document médical\"\r\n }\r\n ]\r\n },\r\n \"indexed\": \"2021-02-11T09:25:39Z\",\r\n \"description\": \"aelgain-copiepatient.pdf\",\r\n \"content\": [\r\n {\r\n \"attachment\": {\r\n \"contentType\": \"application/pdf\",\r\n \"url\": \"Binary/1615660\",\r\n \"title\": \"aelgain-copiepatient.pdf\"\r\n }\r\n }\r\n ],\r\n \"resourceType\": \"DocumentReference\"\r\n}",
|
|
"options": {
|
|
"raw": {
|
|
"language": "json"
|
|
}
|
|
}
|
|
},
|
|
"url": {
|
|
"raw": "https://{{baseURL}}/fhir/DocumentReference",
|
|
"protocol": "https",
|
|
"host": [
|
|
"{{baseURL}}"
|
|
],
|
|
"path": [
|
|
"fhir",
|
|
"DocumentReference"
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "DocumentReference",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json",
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "Prefer",
|
|
"value": "return=representation",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\r\n \"status\": \"current\",\r\n \"docStatus\": \"final\",\r\n \"type\": {\r\n \"coding\": [\r\n {\r\n \"system\": \"http://loinc.org\",\r\n \"code\": \"34109-9\",\r\n \"display\": \"Document médical\"\r\n }\r\n ]\r\n },\r\n \"indexed\": \"2021-02-11T09:25:39Z\",\r\n \"description\": \"aelgain-copiepatient.pdf\",\r\n \"content\": [\r\n {\r\n \"attachment\": {\r\n \"contentType\": \"application/pdf\",\r\n \"url\": \"Binary/1615660\",\r\n \"title\": \"aelgain-copiepatient.pdf\"\r\n }\r\n }\r\n ],\r\n \"resourceType\": \"DocumentReference\"\r\n}"
|
|
},
|
|
"url": {
|
|
"raw": "https://{{baseURL}}/fhir/DocumentReference",
|
|
"protocol": "https",
|
|
"host": [
|
|
"{{baseURL}}"
|
|
],
|
|
"path": [
|
|
"fhir",
|
|
"DocumentReference"
|
|
]
|
|
}
|
|
},
|
|
"status": "Created",
|
|
"code": 201,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Date",
|
|
"value": "Thu, 02 Sep 2021 10:46:54 GMT"
|
|
},
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/fhir+json;charset=UTF-8"
|
|
},
|
|
{
|
|
"key": "Transfer-Encoding",
|
|
"value": "chunked"
|
|
},
|
|
{
|
|
"key": "Connection",
|
|
"value": "keep-alive"
|
|
},
|
|
{
|
|
"key": "X-B3-TraceId",
|
|
"value": "436009ec5e759266"
|
|
},
|
|
{
|
|
"key": "X-B3-SpanId",
|
|
"value": "436009ec5e759266"
|
|
},
|
|
{
|
|
"key": "X-B3-Sampled",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"key": "X-Powered-By",
|
|
"value": "HAPI FHIR 4.2.0 REST Server (FHIR Server; FHIR 3.0.2/DSTU3)"
|
|
},
|
|
{
|
|
"key": "X-FHIR-Request-Validation",
|
|
"value": "No issues detected"
|
|
},
|
|
{
|
|
"key": "ETag",
|
|
"value": "W/\"1\""
|
|
},
|
|
{
|
|
"key": "X-Request-ID",
|
|
"value": "5192ef4952692aa423763c0e8ca8d950"
|
|
},
|
|
{
|
|
"key": "Content-Location",
|
|
"value": "https://fhir-api.public.post-prod.lifen.fr/fhir/dstu3/DocumentReference/1721103/_history/1"
|
|
},
|
|
{
|
|
"key": "Last-Modified",
|
|
"value": "Thu, 02 Sep 2021 10:46:51 GMT"
|
|
},
|
|
{
|
|
"key": "Location",
|
|
"value": "https://fhir-api.public.post-prod.lifen.fr/fhir/dstu3/DocumentReference/1721103/_history/1"
|
|
},
|
|
{
|
|
"key": "Content-Encoding",
|
|
"value": "gzip"
|
|
},
|
|
{
|
|
"key": "Strict-Transport-Security",
|
|
"value": "max-age=15724800; includeSubDomains"
|
|
},
|
|
{
|
|
"key": "Access-Control-Allow-Origin",
|
|
"value": "*"
|
|
},
|
|
{
|
|
"key": "Access-Control-Allow-Credentials",
|
|
"value": "true"
|
|
}
|
|
],
|
|
"cookie": [],
|
|
"body": "{\n \"resourceType\": \"DocumentReference\",\n \"id\": \"1721103\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2021-09-02T10:46:51.615+00:00\",\n \"profile\": [\n \"http://lifen.fr/fhir/StructureDefinition/LifenDocumentReferenceCoreProfile\"\n ],\n \"tag\": [\n {\n \"system\": \"https://www.lifen.fr/default\",\n \"code\": \"DEFAULT\",\n \"display\": \"Default tag\"\n }\n ]\n },\n \"status\": \"current\",\n \"docStatus\": \"final\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"34109-9\",\n \"display\": \"Document médical\"\n }\n ]\n },\n \"indexed\": \"2021-02-11T09:25:39Z\",\n \"description\": \"aelgain-copiepatient.pdf\",\n \"content\": [\n {\n \"attachment\": {\n \"contentType\": \"application/pdf\",\n \"url\": \"Binary/1615660\",\n \"title\": \"aelgain-copiepatient.pdf\"\n }\n }\n ]\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "CommunicationRequest",
|
|
"event": [
|
|
{
|
|
"listen": "prerequest",
|
|
"script": {
|
|
"exec": [
|
|
""
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
},
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"exec": [
|
|
"pm.environment.set(\"commuicationRequestId\", \"\");",
|
|
"",
|
|
"pm.test(\"The CommunicationRequest is created\", function () {",
|
|
" // chaisinon syntax",
|
|
" pm.response.to.have.status(201);",
|
|
" pm.expect(pm.response.headers.get(\"Content-Type\")).to.equal(\"application/fhir+json;charset=UTF-8\");",
|
|
"});",
|
|
"",
|
|
"const responseJson = pm.response.json();",
|
|
"",
|
|
"pm.test(\"The response have a communicationRequestId (and store it)\", function () {",
|
|
" pm.expect(responseJson.id, \"The server did not returned a CommunicationRequestId\").to.not.be.empty;",
|
|
" console.log(`Fetched commuicationRequestId: ${responseJson.id}`);",
|
|
"",
|
|
" // Best practice : separate setup / teardown logic from the testscript itself (ie: action to store data outside of this function)",
|
|
" pm.environment.set(\"commuicationRequestId\", responseJson.id);",
|
|
" pm.expect(pm.environment.get(\"commuicationRequestId\")).to.not.be.empty;",
|
|
"});",
|
|
"",
|
|
"pm.test(\"The CommunicationRequest status is 'Draft'\", function () {",
|
|
" pm.expect(responseJson.status).to.be.equals(\"draft\");",
|
|
"});"
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
}
|
|
],
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json",
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "Prefer",
|
|
"value": "return=representation",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n\t\"meta\": {\n \"tag\": [\n {\n \"system\": \"http://lifen.fr/fhir/tag/verified/sender\",\n \"code\": \"SENDER_VERIFIED\",\n \"display\": \"Sender is verified and should not be changed.\"\n },\n {\n \"system\": \"http://lifen.fr/fhir/tag/processing/mode\",\n \"code\": \"IMMEDIATE_MODE\",\n \"display\": \"request should be treated in immediate mode\"\n },\n {\n \"system\": \"http://lifen.fr/fhir/CodeSystem/Resource/Tag/PatientAutomaticResending\",\n \"code\": \"NONE\",\n \"display\": \"Patient communication should not be resent\"\n }\n ]\n\t},\n \"status\": \"draft\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://lifen.fr/fhir/CodeSystem/communication-category\",\n \"code\": \"MEDICAL_REPORT\"\n }\n ]\n }\n ],\n \"priority\": \"routine\",\n \"payload\": [\n {\n \"contentReference\": {\n \"reference\": \"DocumentReference/{{documentReferenceId}}\"\n }\n }\n ],\n \"sender\": {\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/Resource/Extension/Source\",\n \"valueCode\": \"USER\"\n }\n ],\n \"reference\": \"Organization/2\"\n },\n \"requester\": {\n \"agent\": {\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/communicationrequest-requester-user-uuid\",\n \"valueString\": \"ea07d7c6-ff4b-43fc-9765-e4235886d30c\"\n }\n ],\n \"reference\": \"Organization/2\"\n }\n },\n \"resourceType\": \"CommunicationRequest\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "https://{{baseURL}}/fhir/CommunicationRequest",
|
|
"protocol": "https",
|
|
"host": [
|
|
"{{baseURL}}"
|
|
],
|
|
"path": [
|
|
"fhir",
|
|
"CommunicationRequest"
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "CommunicationRequest",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json",
|
|
"type": "text"
|
|
},
|
|
{
|
|
"key": "Prefer",
|
|
"value": "return=representation",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n\t\"meta\": {\n \"tag\": [\n {\n \"system\": \"http://lifen.fr/fhir/tag/verified/sender\",\n \"code\": \"SENDER_VERIFIED\",\n \"display\": \"Sender is verified and should not be changed.\"\n },\n {\n \"system\": \"http://lifen.fr/fhir/tag/processing/mode\",\n \"code\": \"IMMEDIATE_MODE\",\n \"display\": \"request should be treated in immediate mode\"\n },\n {\n \"system\": \"http://lifen.fr/fhir/CodeSystem/Resource/Tag/PatientAutomaticResending\",\n \"code\": \"NONE\",\n \"display\": \"Patient communication should not be resent\"\n }\n ]\n\t},\n \"status\": \"draft\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://lifen.fr/fhir/CodeSystem/communication-category\",\n \"code\": \"MEDICAL_REPORT\"\n }\n ]\n }\n ],\n \"priority\": \"routine\",\n \"payload\": [\n {\n \"contentReference\": {\n \"reference\": \"DocumentReference/{{documentReferenceId}}\"\n }\n }\n ],\n \"sender\": {\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/Resource/Extension/Source\",\n \"valueCode\": \"USER\"\n }\n ],\n \"reference\": \"Organization/2\"\n },\n \"requester\": {\n \"agent\": {\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/communicationrequest-requester-user-uuid\",\n \"valueString\": \"ea07d7c6-ff4b-43fc-9765-e4235886d30c\"\n }\n ],\n \"reference\": \"Organization/2\"\n }\n },\n \"resourceType\": \"CommunicationRequest\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "https://{{baseURL}}/fhir/CommunicationRequest",
|
|
"protocol": "https",
|
|
"host": [
|
|
"{{baseURL}}"
|
|
],
|
|
"path": [
|
|
"fhir",
|
|
"CommunicationRequest"
|
|
]
|
|
}
|
|
},
|
|
"status": "Created",
|
|
"code": 201,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Date",
|
|
"value": "Thu, 02 Sep 2021 11:00:17 GMT"
|
|
},
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/fhir+json;charset=UTF-8"
|
|
},
|
|
{
|
|
"key": "Transfer-Encoding",
|
|
"value": "chunked"
|
|
},
|
|
{
|
|
"key": "Connection",
|
|
"value": "keep-alive"
|
|
},
|
|
{
|
|
"key": "X-B3-TraceId",
|
|
"value": "0226a8841b438fd4"
|
|
},
|
|
{
|
|
"key": "X-B3-SpanId",
|
|
"value": "0226a8841b438fd4"
|
|
},
|
|
{
|
|
"key": "X-B3-Sampled",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"key": "X-Powered-By",
|
|
"value": "HAPI FHIR 4.2.0 REST Server (FHIR Server; FHIR 3.0.2/DSTU3)"
|
|
},
|
|
{
|
|
"key": "X-FHIR-Request-Validation",
|
|
"value": "No issues detected"
|
|
},
|
|
{
|
|
"key": "ETag",
|
|
"value": "W/\"1\""
|
|
},
|
|
{
|
|
"key": "X-Request-ID",
|
|
"value": "bb302f7a6e1c80901826d099d449c572"
|
|
},
|
|
{
|
|
"key": "Content-Location",
|
|
"value": "https://fhir-api.public.post-prod.lifen.fr/fhir/dstu3/CommunicationRequest/1721115/_history/1"
|
|
},
|
|
{
|
|
"key": "Last-Modified",
|
|
"value": "Thu, 02 Sep 2021 11:00:16 GMT"
|
|
},
|
|
{
|
|
"key": "Location",
|
|
"value": "https://fhir-api.public.post-prod.lifen.fr/fhir/dstu3/CommunicationRequest/1721115/_history/1"
|
|
},
|
|
{
|
|
"key": "Content-Encoding",
|
|
"value": "gzip"
|
|
},
|
|
{
|
|
"key": "Strict-Transport-Security",
|
|
"value": "max-age=15724800; includeSubDomains"
|
|
},
|
|
{
|
|
"key": "Access-Control-Allow-Origin",
|
|
"value": "*"
|
|
},
|
|
{
|
|
"key": "Access-Control-Allow-Credentials",
|
|
"value": "true"
|
|
}
|
|
],
|
|
"cookie": [],
|
|
"body": "{\n \"resourceType\": \"CommunicationRequest\",\n \"id\": \"1721115\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2021-09-02T11:00:16.495+00:00\",\n \"profile\": [\n \"http://lifen.fr/fhir/StructureDefinition/LifenCommunicationRequestCoreProfile\"\n ],\n \"tag\": [\n {\n \"system\": \"http://lifen.fr/fhir/tag/verified/sender\",\n \"code\": \"SENDER_VERIFIED\",\n \"display\": \"Sender is verified and should not be changed.\"\n },\n {\n \"system\": \"http://lifen.fr/fhir/tag/processing/mode\",\n \"code\": \"IMMEDIATE_MODE\",\n \"display\": \"request should be treated in immediate mode\"\n },\n {\n \"system\": \"http://lifen.fr/fhir/CodeSystem/Resource/Tag/PatientAutomaticResending\",\n \"code\": \"NONE\",\n \"display\": \"Patient communication should not be resent\"\n }\n ]\n },\n \"status\": \"draft\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://lifen.fr/fhir/CodeSystem/communication-category\",\n \"code\": \"MEDICAL_REPORT\"\n }\n ]\n }\n ],\n \"priority\": \"routine\",\n \"payload\": [\n {\n \"contentReference\": {\n \"reference\": \"DocumentReference/1721113\"\n }\n }\n ],\n \"authoredOn\": \"2021-09-02T11:00:16+00:00\",\n \"sender\": {\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/Resource/Extension/Source\",\n \"valueCode\": \"USER\"\n }\n ],\n \"reference\": \"Organization/2\"\n },\n \"requester\": {\n \"agent\": {\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/communicationrequest-requester-user-uuid\",\n \"valueString\": \"ea07d7c6-ff4b-43fc-9765-e4235886d30c\"\n }\n ],\n \"reference\": \"Organization/2\"\n }\n }\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "CommunicationRequest",
|
|
"event": [
|
|
{
|
|
"listen": "prerequest",
|
|
"script": {
|
|
"exec": [
|
|
"setTimeout(function(){}, 10000);"
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
},
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"exec": [
|
|
"pm.test(\"Created Communication Request exists\", function () {",
|
|
" pm.expect(pm.environment.get(\"commuicationRequestId\"), \"A commuicationRequestId is required for this test to pass :( \").to.not.be.empty;",
|
|
" // chai expect syntaxes",
|
|
" pm.response.to.have.status(200);",
|
|
" pm.expect(pm.response.headers.get(\"Content-Type\")).to.equal(\"application/fhir+json;charset=UTF-8\");",
|
|
"});",
|
|
"",
|
|
"const responseJson = pm.response.json();",
|
|
"",
|
|
"pm.test(\"It have a 'subject' section\", function() {",
|
|
" pm.expect(responseJson, \"The Communication Request must have a suject section\").to.have.property('subject').to.be.an('object');",
|
|
"});",
|
|
"",
|
|
"pm.test(\"It have a 'recipient' section\", function() {",
|
|
" pm.expect(responseJson, \"The Communication Request must have a recipient list\").to.have.property('recipient').to.be.an('array', \"Recipients must not be empty\").that.is.not.empty;",
|
|
"});",
|
|
"",
|
|
"pm.test(\"It have a Patient ID (and store it)\", function () {",
|
|
" pm.environment.set(\"patientId\", responseJson.subject.reference);",
|
|
" // note : we rely on the subject part to get the patientId, but it could not be reliable. Need more docs to select which one to choose.",
|
|
"",
|
|
" pm.expect(pm.environment.get(\"patientId\"), \"Saving the patientId failed.\").to.not.equal(\"\");",
|
|
" console.log(`Fetched patientId: ${responseJson.subject.reference}`);",
|
|
" // Best practice : separate setup / teardown logic from the testscript itself (ie: action to store outside of this function)",
|
|
"",
|
|
"});",
|
|
"",
|
|
"pm.test(\"That the CommunicationRequest status is 'Suspended'\", function () {",
|
|
" pm.expect(responseJson.status, \"The CommunicationRequest is not 'Suspended'\").to.be.equals(\"suspended\");",
|
|
" // could appreciate more intel on the workflow and possible statuses. It could be interesting to test that certains status transitions can't be performed (ie: suspended -> created) ",
|
|
"});",
|
|
"",
|
|
"pm.test(\"That recipients are referenced\", function() {",
|
|
" pm.expect(responseJson.recipient, \"Recipients must have a reference property\").to.satisfy(function(recipients) {",
|
|
" recipients.forEach((aRecipient) => {",
|
|
" if(!aRecipient.hasOwnProperty(\"reference\")) return false;",
|
|
" });",
|
|
" return true;",
|
|
" });",
|
|
"});"
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
}
|
|
],
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [],
|
|
"url": {
|
|
"raw": "https://{{baseURL}}/fhir/CommunicationRequest/{{commuicationRequestId}}",
|
|
"protocol": "https",
|
|
"host": [
|
|
"{{baseURL}}"
|
|
],
|
|
"path": [
|
|
"fhir",
|
|
"CommunicationRequest",
|
|
"{{commuicationRequestId}}"
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "CommunicationRequest",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [],
|
|
"url": {
|
|
"raw": "https://{{baseURL}}/fhir/CommunicationRequest/{{commuicationRequestId}}",
|
|
"protocol": "https",
|
|
"host": [
|
|
"{{baseURL}}"
|
|
],
|
|
"path": [
|
|
"fhir",
|
|
"CommunicationRequest",
|
|
"{{commuicationRequestId}}"
|
|
]
|
|
}
|
|
},
|
|
"status": "OK",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Date",
|
|
"value": "Thu, 02 Sep 2021 11:01:25 GMT"
|
|
},
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/fhir+json;charset=UTF-8"
|
|
},
|
|
{
|
|
"key": "Transfer-Encoding",
|
|
"value": "chunked"
|
|
},
|
|
{
|
|
"key": "Connection",
|
|
"value": "keep-alive"
|
|
},
|
|
{
|
|
"key": "X-B3-TraceId",
|
|
"value": "197d894e89bb1bf5"
|
|
},
|
|
{
|
|
"key": "X-B3-SpanId",
|
|
"value": "197d894e89bb1bf5"
|
|
},
|
|
{
|
|
"key": "X-B3-Sampled",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"key": "X-Powered-By",
|
|
"value": "HAPI FHIR 4.2.0 REST Server (FHIR Server; FHIR 3.0.2/DSTU3)"
|
|
},
|
|
{
|
|
"key": "ETag",
|
|
"value": "W/\"2\""
|
|
},
|
|
{
|
|
"key": "X-Request-ID",
|
|
"value": "44ff89f0b02d19e5cd4b286df64f02fe"
|
|
},
|
|
{
|
|
"key": "Content-Location",
|
|
"value": "https://fhir-api.public.post-prod.lifen.fr/fhir/dstu3/CommunicationRequest/1721115/_history/2"
|
|
},
|
|
{
|
|
"key": "Last-Modified",
|
|
"value": "Thu, 02 Sep 2021 11:00:33 GMT"
|
|
},
|
|
{
|
|
"key": "Content-Encoding",
|
|
"value": "gzip"
|
|
},
|
|
{
|
|
"key": "Strict-Transport-Security",
|
|
"value": "max-age=15724800; includeSubDomains"
|
|
},
|
|
{
|
|
"key": "Access-Control-Allow-Origin",
|
|
"value": "*"
|
|
},
|
|
{
|
|
"key": "Access-Control-Allow-Credentials",
|
|
"value": "true"
|
|
}
|
|
],
|
|
"cookie": [],
|
|
"body": "{\n \"resourceType\": \"CommunicationRequest\",\n \"id\": \"1721115\",\n \"meta\": {\n \"versionId\": \"2\",\n \"lastUpdated\": \"2021-09-02T11:00:33.000+00:00\",\n \"profile\": [\n \"http://lifen.fr/fhir/StructureDefinition/LifenCommunicationRequestCoreProfile\"\n ],\n \"tag\": [\n {\n \"system\": \"http://lifen.fr/fhir/tag/verified/sender\",\n \"code\": \"SENDER_VERIFIED\",\n \"display\": \"Sender is verified and should not be changed.\"\n },\n {\n \"system\": \"http://lifen.fr/fhir/CodeSystem/Resource/Tag/PatientAutomaticResending\",\n \"code\": \"NONE\",\n \"display\": \"Patient communication should not be resent\"\n },\n {\n \"system\": \"http://lifen.fr/fhir/tag/processing/mode\",\n \"code\": \"IMMEDIATE_MODE\",\n \"display\": \"request should be treated in immediate mode\"\n },\n {\n \"system\": \"http://lifen.fr/fhir/tag/processing/ia\",\n \"code\": \"PROCESSED\",\n \"display\": \"ressource processed by Irene\"\n }\n ]\n },\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/LifenExtensionCommunicationRequestSendingStatus\",\n \"valueCode\": \"READY_TO_SEND\"\n }\n ],\n \"status\": \"suspended\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://lifen.fr/fhir/CodeSystem/communication-category\",\n \"code\": \"MEDICAL_REPORT\"\n }\n ]\n }\n ],\n \"priority\": \"routine\",\n \"medium\": [\n {\n \"coding\": [\n {\n \"id\": \"469965\",\n \"system\": \"http://lifen.fr/fhir/CodeSystem/communication-medium\",\n \"code\": \"MSSANTE\",\n \"display\": \"william.eclancher@medecin.mssante.fr\"\n }\n ]\n },\n {\n \"coding\": [\n {\n \"id\": \"1309813159882648557\",\n \"system\": \"http://lifen.fr/fhir/CodeSystem/communication-medium\",\n \"code\": \"MAIL\",\n \"display\": \"ael.gain@lifen.fr\"\n }\n ]\n }\n ],\n \"subject\": {\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/match-grade\",\n \"valueCode\": \"certain\"\n }\n ],\n \"reference\": \"Patient/1615460\"\n },\n \"recipient\": [\n {\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/communicationrequest-recipient-details\",\n \"valueContactPoint\": {\n \"id\": \"469965\",\n \"extension\": [\n {\n \"url\": \"http://interopsante.org/fhir/structuredefinition/fr-email-domain\",\n \"valueCoding\": {\n \"system\": \"http://interopsante.org/fhir/valueset/fr-email-domain\",\n \"code\": \"mssante\",\n \"display\": \"MSSanté\"\n }\n }\n ],\n \"system\": \"email\",\n \"value\": \"william.eclancher@medecin.mssante.fr\",\n \"use\": \"work\",\n \"rank\": 1\n }\n }\n ],\n \"reference\": \"Practitioner/120849\"\n },\n {\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/communicationrequest-recipient-details\",\n \"valueContactPoint\": {\n \"id\": \"1309813159882648557\",\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/Resource/Extension/EmailAddressVerification-1.0\",\n \"valueCode\": \"VALID\"\n }\n ],\n \"system\": \"email\",\n \"value\": \"ael.gain@lifen.fr\",\n \"use\": \"work\"\n }\n }\n ],\n \"reference\": \"Patient/1615460\"\n }\n ],\n \"payload\": [\n {\n \"contentReference\": {\n \"reference\": \"DocumentReference/1721113\"\n }\n }\n ],\n \"authoredOn\": \"2021-09-02T11:00:16+00:00\",\n \"sender\": {\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/Resource/Extension/Source\",\n \"valueCode\": \"USER\"\n }\n ],\n \"reference\": \"Organization/2\"\n },\n \"requester\": {\n \"agent\": {\n \"extension\": [\n {\n \"url\": \"http://lifen.fr/fhir/StructureDefinition/communicationrequest-requester-user-uuid\",\n \"valueString\": \"ea07d7c6-ff4b-43fc-9765-e4235886d30c\"\n }\n ],\n \"reference\": \"Organization/2\"\n }\n }\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Patient",
|
|
"event": [
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"exec": [
|
|
"pm.test(\"The Patient exists\", function () {",
|
|
" pm.expect(pm.environment.get(\"patientId\"), \"A patientId is required for this test to pass :( \").to.not.be.empty;",
|
|
" // chai expect syntaxes",
|
|
" pm.response.to.have.status(200);",
|
|
" pm.expect(pm.response.headers.get(\"Content-Type\")).to.equal(\"application/fhir+json;charset=UTF-8\");",
|
|
"});",
|
|
"",
|
|
"const responseJson = pm.response.json();",
|
|
"",
|
|
"pm.test(\"It fetch the right Patient\", function () {",
|
|
" pm.expect(responseJson.id, \"The server did not returned the expected Patient\").to.equals(pm.environment.get(\"patientId\").split(\"/\")[1]);",
|
|
"});",
|
|
"",
|
|
"pm.test(\"That the patient have a at least one given name, and a last name\", function() {",
|
|
" pm.expect(responseJson.name, \"The Patient doesn't have a name\").to.be.an(\"array\").that.is.not.empty;",
|
|
" // Magic number, We can improve to check each item in the list.",
|
|
" pm.expect(responseJson.name[0], \"The Patient doesn't have a last name\").to.have.property('family');",
|
|
" pm.expect(responseJson.name[0], \"The Patient doesn't have a given name\").to.have.property('given').that.is.an(\"array\").that.is.not.empty; ",
|
|
"});"
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
}
|
|
],
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [],
|
|
"url": {
|
|
"raw": "https://{{baseURL}}/fhir/{{patientId}}",
|
|
"protocol": "https",
|
|
"host": [
|
|
"{{baseURL}}"
|
|
],
|
|
"path": [
|
|
"fhir",
|
|
"{{patientId}}"
|
|
]
|
|
}
|
|
},
|
|
"response": []
|
|
}
|
|
],
|
|
"auth": {
|
|
"type": "bearer",
|
|
"bearer": [
|
|
{
|
|
"key": "token",
|
|
"value": "{{json_web_token}}",
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"event": [
|
|
{
|
|
"listen": "prerequest",
|
|
"script": {
|
|
"type": "text/javascript",
|
|
"exec": [
|
|
"now = new Date();",
|
|
"token_date = new Date(pm.globals.get(\"token_expiration\"));",
|
|
"// if current token is expired…",
|
|
"if(token_date < now){",
|
|
" // …request new one",
|
|
" const postRequest = {",
|
|
" url: 'https://lifen-post-prod.eu.auth0.com/oauth/token',",
|
|
" method: 'POST',",
|
|
" header: {",
|
|
" 'Content-Type': 'application/json',",
|
|
" },",
|
|
" body: {",
|
|
" mode: 'raw',",
|
|
" raw: JSON.stringify(",
|
|
" {",
|
|
" client_id: 'szVsMPaDPUdwqngGiLoHfXFT5XCYPFcy',",
|
|
" client_secret: 'sMp2PB-QWBZupCB4IXJrWDJ-7tlpUl09vQ2tMKdy049He7-g93ofbXz7ESlAc82B',",
|
|
" audience: 'post-prod-apis',",
|
|
" grant_type: 'client_credentials'",
|
|
" }",
|
|
" )",
|
|
" }",
|
|
" };",
|
|
" // save it in globals",
|
|
" pm.sendRequest(postRequest, function (err, response) {",
|
|
" if(err != undefined) throw err;",
|
|
" const responseJson = response.json();",
|
|
" pm.globals.set(\"json_web_token\", responseJson.access_token);",
|
|
" now.setTime(now.getTime() + (responseJson.expires_in * 1000));",
|
|
" pm.globals.set(\"token_expiration\", now);",
|
|
" });",
|
|
"}"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"type": "text/javascript",
|
|
"exec": [
|
|
""
|
|
]
|
|
}
|
|
}
|
|
]
|
|
} |