{ "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": [ "" ] } } ] }