{ "info": { "_postman_id": "a5e8f1d2-3b4c-4e5f-9a8b-7c6d5e4f3a2b", "name": "HIS Work Schedule API v3.0", "description": "Postman Collection for SIS SOFT HIS Work Schedule API v3.0 integration, including OAuth2 Token, Work Schedules, Work Schedule Days, and Test Cases.", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "variable": [ { "key": "baseUrl", "value": "https://dhs.sisvietnam.vn", "type": "string" }, { "key": "clientId", "value": "DigitalHealthSolutions_HospitalIntegration", "type": "string" }, { "key": "clientSecret", "value": "XPWFParRQldtZopqdDFLPYblIzauxuWT", "type": "string" }, { "key": "scope", "value": "HospitalIntegration", "type": "string" }, { "key": "tenantId", "value": "3a0f747c-57b6-753b-ba21-3987e8e93b9a", "type": "string" }, { "key": "accessToken", "value": "", "type": "string" }, { "key": "doctorCode", "value": "01472", "type": "string" } ], "item": [ { "name": "01 - Get Hospital Integration Token", "event": [ { "listen": "test", "script": { "exec": [ "var jsonData = pm.response.json();", "if (jsonData.access_token) {", " pm.collectionVariables.set('accessToken', jsonData.access_token);", " pm.environment.set('accessToken', jsonData.access_token);", " console.log('Access token saved successfully.');", "}" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/x-www-form-urlencoded", "type": "text" } ], "body": { "mode": "urlencoded", "urlencoded": [ { "key": "grant_type", "value": "client_credentials", "type": "text" }, { "key": "client_id", "value": "{{clientId}}", "type": "text" }, { "key": "client_secret", "value": "{{clientSecret}}", "type": "text" }, { "key": "scope", "value": "{{scope}}", "type": "text" } ] }, "url": { "raw": "{{baseUrl}}/connect/token", "host": [ "{{baseUrl}}" ], "path": [ "connect", "token" ] }, "description": "OAuth 2.0 Client Credentials token request. Saves access_token into collection/environment variable {{accessToken}}." }, "response": [] }, { "name": "02 - Get Doctors With Work Schedules", "event": [ { "listen": "test", "script": { "exec": [ "var jsonData = pm.response.json();", "if (jsonData.data && jsonData.data.doctors && jsonData.data.doctors.length > 0) {", " var code = jsonData.data.doctors[0].doctorCode;", " pm.collectionVariables.set('doctorCode', code);", " console.log('Saved doctorCode:', code);", "}" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{accessToken}}", "type": "text" }, { "key": "__tenant", "value": "{{tenantId}}", "type": "text" } ], "url": { "raw": "{{baseUrl}}/api/app/his/doctors/work-schedules?fromDate=2026-07-28&toDate=2026-08-11", "host": [ "{{baseUrl}}" ], "path": [ "api", "app", "his", "doctors", "work-schedules" ], "query": [ { "key": "fromDate", "value": "2026-07-28" }, { "key": "toDate", "value": "2026-08-11" } ] }, "description": "Returns list of doctors with active work schedules in requested date range." }, "response": [] }, { "name": "03 - Get Doctor Work Schedule Days", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{accessToken}}", "type": "text" }, { "key": "__tenant", "value": "{{tenantId}}", "type": "text" } ], "url": { "raw": "{{baseUrl}}/api/app/his/doctors/{{doctorCode}}/work-schedule-days?fromDate=2026-07-28&toDate=2026-08-11", "host": [ "{{baseUrl}}" ], "path": [ "api", "app", "his", "doctors", "{{doctorCode}}", "work-schedule-days" ], "query": [ { "key": "fromDate", "value": "2026-07-28" }, { "key": "toDate", "value": "2026-08-11" } ] }, "description": "Returns active work schedule days for a specific doctorCode." }, "response": [] }, { "name": "04 - Invalid Date Format (HTTP 400)", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{accessToken}}", "type": "text" }, { "key": "__tenant", "value": "{{tenantId}}", "type": "text" } ], "url": { "raw": "{{baseUrl}}/api/app/his/doctors/work-schedules?fromDate=28-07-2026", "host": [ "{{baseUrl}}" ], "path": [ "api", "app", "his", "doctors", "work-schedules" ], "query": [ { "key": "fromDate", "value": "28-07-2026" } ] }, "description": "Test case for HTTP 400 WORK_SCHEDULE_INVALID_DATE_FORMAT." }, "response": [] }, { "name": "05 - Missing Token (HTTP 401)", "request": { "method": "GET", "header": [ { "key": "__tenant", "value": "{{tenantId}}", "type": "text" } ], "url": { "raw": "{{baseUrl}}/api/app/his/doctors/work-schedules", "host": [ "{{baseUrl}}" ], "path": [ "api", "app", "his", "doctors", "work-schedules" ] }, "description": "Test case for HTTP 401 UNAUTHORIZED when Authorization header is omitted." }, "response": [] }, { "name": "06 - Invalid Client Token (HTTP 403)", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer INVALID_CLIENT_TOKEN", "type": "text" }, { "key": "__tenant", "value": "{{tenantId}}", "type": "text" } ], "url": { "raw": "{{baseUrl}}/api/app/his/doctors/work-schedules", "host": [ "{{baseUrl}}" ], "path": [ "api", "app", "his", "doctors", "work-schedules" ] }, "description": "Test case for HTTP 403 FORBIDDEN when using token from wrong client or scope." }, "response": [] }, { "name": "07 - Doctor Not Found (HTTP 404)", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{accessToken}}", "type": "text" }, { "key": "__tenant", "value": "{{tenantId}}", "type": "text" } ], "url": { "raw": "{{baseUrl}}/api/app/his/doctors/UNKNOWN_DOCTOR_CODE/work-schedule-days", "host": [ "{{baseUrl}}" ], "path": [ "api", "app", "his", "doctors", "UNKNOWN_DOCTOR_CODE", "work-schedule-days" ] }, "description": "Test case for HTTP 404 DOCTOR_NOT_FOUND when doctorCode does not exist." }, "response": [] } ] }