# 租戶管理 [TOC] ## 租戶列表 ```url POST /tenant/list ``` ### Request 欄位 | 型態 | 必填 | 說明 ---|---|---|--- query | json | | 查詢條件json pagination | json | | 分頁json sorter | json | | 排序json, 預設是用更新時間降序排列 #### query (查詢條件json) 欄位 | 型態 | 必填 | 說明 ---|---|---|--- tenantType| string | | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商 status| bool | | 啟用狀態, true: 啟用, false: 停用, 未填則表示全部 name| string | | 關鍵字,查詢機構或經銷階層名稱 #### pagination (分頁json) 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- current | int | | 1 | 當前頁數 pageSize | int | | 10 | 每頁結果數量,-1 為顯示所有 #### sorter (排序json) 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- field | string | | 預設為updateTime | 排序欄位, 可排序欄位:name, tenantType, dealerName, divisions, contact, telephone, status, updateTime order | string | | desc | 升序或降序 ```javascript { "query": { "tenantType": "DEALER", "status": true }, "pagination": { "current": 1, "pageSize": 10 }, "sorter": { "field": "updateTime", "order": "asc" } } ``` ### Response 欄位 | 型態 | 說明 ---|---|--- id | string | 租戶 id name | string | 租戶名稱 idNo | string | 租戶統編 tenantType | string | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商 dealerId | string | 經銷階層租戶id dealerName | string | 經銷階層租戶名稱 divisions | string | 服務科別名稱組合, 當tenant_type為BUSINESS時,不會有divisons tenantDivisions | json array | 服務科別 json array, 當tenant_type為BUSINESS時,不會有tenantDivisions industryTypes | string array | 租戶業別列表, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他 contact | string | 聯絡人 telephone | string | 電話 status | bool | 啟用狀態, true: 啟用, false: 停用 updateTime | timestamp | 最後更新時間 shortName | string | 簡稱 address | string | 地址 thumbnailObjectKey | string | logo縮圖objectKey thumbnailUrl | string | logo縮圖URL #### tenantDivisions 服務科別 json 欄位 | 型態 | 說明 ---|---|--- divisionId | string | 服務科別id divisionName | string | 服務科別名稱 ```javascript { "httpCode": 200, "result": { "data": [ { "id": "594bcf8d-a134-4efd-9366-392b8194e631", "name": "租戶_HOSPITAL_Test_1", "idNo": "3345678", "tenantType": "HOSPITAL", "dealerId": "WMT", "status": true, "contact": "張三AA", "telephone": "0987000000", "email": "abcd@tttt.cc", "createTime": 1610588709000, "updateTime": 1610588709000, "platformId": "WMT", "dealerName": "緯創醫學", "divisions": "腎臟科1,心臟科61", "tenantDivisions": [ { "divisionId": "db72e3a9-18f3-4f1f-a6d6-7c3370799f49", "divisionName": "腎臟科1" }, { "divisionId": "32a00fa4-5d97-480a-9c2e-c2959ccc73ff", "divisionName": "心臟科61" } ], "IndustryTypeList": [ "HEALTH_CHECK_CENTER", "MEDICAL_CENTER" ], "shortName": "租戶_T1", "address": "高雄市苓雅區苓前南路2號", "thumbnailObjectKey": "tenant/thumbnail/43bb92d3-33a4-48b5-8bd7-b3bb9a78ebd3.png", "thumbnailUrl": "http://content-service/swift/v1/tenant/thumbnail/43bb92d3-33a4-48b5-8bd7-b3bb9a78ebd3.png" }, ... ] } } ``` ## 經銷階層租戶列表 ```url POST /tenant/dealerList ``` ### Request 欄位 | 型態 | 必填 | 說明 ---|---|---|--- query | json | | 查詢條件json pagination | json | | 分頁json sorter | json | | 排序json, 預設是用更新時間降序排列 #### query (查詢條件json) 欄位 | 型態 | 必填 | 說明 ---|---|---|--- #### pagination (分頁json) 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- current | int | | 1 | 當前頁數 pageSize | int | | 10 | 每頁結果數量,-1 為顯示所有 #### sorter (排序json) 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- field | string | | | 排序欄位 order | string | | desc | 升序或降序 ```javascript { "query": { }, "pagination": { "current": 1, "pageSize": 10 }, "sorter": { } } ``` ### Response 欄位 | 型態 | 說明 ---|---|--- id | string | 租戶 id name | string | 租戶名稱 ```javascript { "httpCode": 200, "result": { "data": [ { "id": "594bcf8d-a134-4efd-9366-392b8194e631", "name": "租戶_HOSPITAL_Test_1" }, { "id": "7a198963-e2aa-4937-92ad-c8bc9b4d926c", "name": "租戶Test_HOSPITAL", }, ... ] } } ``` ## 取得上傳網址 ```url POST /tenant/get-upload-url ``` * 新增/編輯租戶時用來上傳logo縮圖 #### Request 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- isMultipart | boolean | Y | false | 是否使用分段上傳 isThumbnail | boolean | Y | false | 上傳的是否為縮圖 fileName | String | Y | | 檔名,不包含副檔名,限制最多50字 fileType | String | Y | | 副檔名, 限制最多10字 totalPart | int | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 總分塊數量,不可小於2 parts | Array [...part] | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | part 資訊 * part(Object) 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- chunkSize | int | Y | | 該 chunk 的大小, bytes md5 | string | Y | | 該 part 的 md5 part | int | Y | | part number, 第幾塊 chunk ```javascript // 單檔 { "isMultipart": false, "isThumbnail": false, "fileName": "ad_bg_jp", "fileType": "png" } // 分塊上傳 { "isMultipart": true, "isThumbnail": false, "fileName": "giphy (7)", "fileType": "mp4", "totalPart": 2, "parts": [ { "chunkSize": 5242880, "md5": "5AACA89868CD486D81192221CF9F9415", "part": 1 }, { "chunkSize": 3145728, "md5": "5AACA89868CD486D81192221CF9F9415", "part": 2 } ] } ``` #### Response * data 欄位 | 型態 | 說明 --- | --- | --- objectKey | string | storage 中的 objectKey, **unique** uploadId | string | 識別該次上傳的 uploadId fileName | string | 名稱 fileType | string | 副檔名 url | string | 單檔上傳的時候,才會回傳該 url, 時效 3600 秒 parts | [...part] | multipart上傳各part的url * part(Object) 欄位 | 型態 | 說明 --- | --- | --- chunkSize | int | 該 chunk 的大小, bytes md5 | string | 該 part 的 md5 part | int | part number, 第幾塊 chunk url | string | 可上傳的 url, 時效 3600 秒 ```javascript // HttpStatus:422, 上傳的檔案類型不允許 { "errorMsg": "SERVICE_ERROR.UPLOAD_FILE_TYPE_NOT_ALLOWED", "httpCode": 422 } // HttpStatus: 200 // 單檔 { "httpCode": 200, "result": { "data": { "objectKey": "event/9f9de11b-12b9-4964-bae8-3233e9da065b.png", "uploadId": "11becd09-7571-4b0d-b8ee-cb3f09f66cf0", "fileName": "ad_bg_jp", "fileType": "png", // 單檔 才有 url "url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh/event%2F9f9de11b-12b9-4964-bae8-3233e9da065b.png?temp_url_sig=e61d9e721d860294bde4d0151e111ebf8ed57ed7&temp_url_expires=1554114780" } } } // 分塊上傳 { "httpCode": 200, "result": { "data": { "objectKey": "event/f76adf26-1e22-4b18-980d-b9a68efc5171.mp4", "uploadId": "53fde368-43d9-455f-a610-62091fc30be6", "fileName": "giphy (7)", "fileType": "mp4", "parts": [ { "chunkSize": 5242880, "md5": "5AACA89868CD486D81192221CF9F9415", "part": 1, "url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh_segments/event%2Ff76adf26-1e22-4b18-980d-b9a68efc5171.mp4%2F1?temp_url_sig=796c52b00f75b62be658533b2fadbc7f14381e36&temp_url_expires=1554263771" }, { "chunkSize": 3145728, "md5": "5AACA89868CD486D81192221CF9F9415", "part": 2, "url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh_segments/event%2Ff76adf26-1e22-4b18-980d-b9a68efc5171.mp4%2F2?temp_url_sig=ad71de81dfbcd94bce4a091f2630c6f1373ff3cd&temp_url_expires=1554263771" } ] } } } ``` ## 新增租戶 ```url POST /tenant/add ``` ### Request 欄位 | 型態 | 必填 | 說明 ---|---|---|--- name | string | Y | 租戶名稱 idNo | string | | 租戶統編 tenantType | string | Y | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商 dealerId | string | Y | 經銷階層租戶id contact | string | Y | 聯絡人 telephone | string | | 電話 email | string | N | email divisions | string array | Y | 服務科別id array, 當tenant_type為BUSINESS時,帶入空陣列[] industryTypeList | string array | Y | 租戶業別列表, 可多選, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他 featureList | string array | | 啟用服務列表, 可多選, SOS:緊急救援, 目前僅開放tenantType為HOSPITAL的租戶可以啟用 shortName | string | | 簡稱 address | string | | 地址 vdToken|string||醫馥通行碼 thumbnailObjectKey | string | | logo縮圖ObjectKey isThumbnailMultipart | boolean | false | 縮圖上傳時是否分塊上傳,預設為 false thumbnailTotalPart | int | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 縮圖上傳的總分塊數量,不可小於2 thumbnailUploadId | string | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 從 /tenant/get-upload-url 取得的 uploadId ```javascript { "name": "租戶Test_DEALER22", "idNo": "3345678", "tenantType": "HOSPITAL", "dealerId": "WMT", "contact": "小李", "telephone": "07-33345678", "email": "abc111@aaaa.aaaa", "divisions":[ "db72e3a9-18f3-4f1f-a6d6-7c3370799f49" ], "industryTypeList": [ "HEALTH_CHECK_CENTER" ], "featureList": [ "SOS" ], "shortName": "租戶_TD2", "address": "高雄市苓雅區苓前南路2號", "vdToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0ZW5hbnRUeXBlIjoiUExBVEZPUk0iLCJzdWIiOiJXaWNjS01VSCIsImxvZ2luVHlwZSI6ImttdWgiLCJkaXNwbGF5TmFtZSI6IkgzNjXlubPlj7DnrqHnkIblk6EiLCJpc3MiOiJXaXN0cm9uIFNXUEMiLCJyb2xlVHlwZSI6IlBMQVRGT1JNX0FETUlOIiwidXNlcklkIjoicGxhdGZvcm1AeW9wbWFpbC5jb20iLCJhY2NvdW50SWQiOiI4NzAzMWJjMS0zNWNlLTQzZDYtOTY4MC1hOWNjZGRlMzIwZTgiLCJhcmVhQ29kZSI6IldNVCIsInRlbmFudE5hbWUiOiIiLCJzdXJuYW1lIjoiSDM2NeW5s-WPsOeuoeeQhuWToSIsImhvdXNlaG9sZE1lbWJlcklkIjoiIiwidGVuYW50SWQiOiJXTVQiLCJqdGkiOiJkMThjN2U3NS04YWIwLTQzM2MtOWE4OS0zYjQ2OTYwMjM4YWIifQ.Kjc9FNWmlE_x0nJ9z7S2RXjnDu_R1LKV_i7TxX1liO8" } ``` ### Response 欄位 | 型態 | 說明 ---|---|--- id | string | 租戶 id name | string | 租戶名稱 idNo | string | 租戶統編 tenantType | string | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商 dealerId | string | 經銷階層租戶id dealerName | string | 經銷階層租戶名稱 divisions | string | 服務科別 contact | string | 聯絡人 telephone | string | 電話 status | bool | 啟用狀態, true: 啟用, false: 停用 updateTime | timestamp | 最後更新時間 shortName | string | 簡稱 address | string | 地址 thumbnailObjectKey | string | logo縮圖objectKey ```javascript //httpCode: 200 { "httpCode": 200, "result": { "data": { "id": "9da3256e-c940-48c2-86c2-087b24bd47b1", "name": "租戶Test_DEALER22", "idNo": "3345678", "tenantType": "DEALER", "dealerId": "WMT", "status": false, "contact": "小李", "telephone": "07-33345678", "email": "abc111@aaaa.aaaa", "createTime": 1610592296000, "updateTime": 1610592296000, "platformId": "WMT", "shortName": "租戶_TD2", "address": "高雄市苓雅區苓前南路2號" } } } //httpCode: 422 { "errorMsg": "SERVICE_ERROR.DIVISION_DISABLED", "httpCode": 422 } ``` ## 編輯租戶 ```url POST /tenant/update ``` ### Request 欄位 | 型態 | 必填 | 說明 ---|---|---|--- id | string | Y | 租戶id name | string | Y | 租戶名稱 idNo | string | | 租戶統編 tenantType | string | Y | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商 dealerId | string | Y | 經銷階層租戶id contact | string | Y | 聯絡人 telephone | string | | 電話 email | string | N | email divisions | string array | Y | 服務科別id array,當tenantType為BUSINESS時,帶入空陣列[] idNo | string | | 租戶統編 industryTypeList | string array | Y | 租戶業別列表, 可多選, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他 featureList | string array | | 啟用服務列表, 可多選, SOS:緊急救援, 目前僅開放tenantType為HOSPITAL的租戶可以啟用 shortName | string | | 簡稱 address | string | | 地址 vdToken|string||醫馥通行碼 thumbnailObjectKey | string | | logo縮圖ObjectKey isThumbnailMultipart | boolean | false | 縮圖上傳時是否分塊上傳,預設為 false thumbnailTotalPart | int | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 縮圖上傳的總分塊數量,不可小於2 thumbnailUploadId | string | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 從 /tenant/get-upload-url 取得的 uploadId ```javascript { "id": "594bcf8d-a134-4efd-9366-392b8194e631", "name": "租戶_HOSPITAL_Test_1", "idNo": "3345678", "tenantType": "HOSPITAL", "dealerId": "WMT", "contact": "張三AA", "telephone": "0987000000", "email": "abcd@tttt.cc", "divisions":[ "db72e3a9-18f3-4f1f-a6d6-7c3370799f49", "32a00fa4-5d97-480a-9c2e-c2959ccc73ff" ], "industryTypeList": [ "HEALTH_CHECK_CENTER" ], "featureList": [ "SOS" ], "shortName": "租戶_T1", "address": "高雄市苓雅區苓前南路2號", "vdToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0ZW5hbnRUeXBlIjoiUExBVEZPUk0iLCJzdWIiOiJXaWNjS01VSCIsImxvZ2luVHlwZSI6ImttdWgiLCJkaXNwbGF5TmFtZSI6IkgzNjXlubPlj7DnrqHnkIblk6EiLCJpc3MiOiJXaXN0cm9uIFNXUEMiLCJyb2xlVHlwZSI6IlBMQVRGT1JNX0FETUlOIiwidXNlcklkIjoicGxhdGZvcm1AeW9wbWFpbC5jb20iLCJhY2NvdW50SWQiOiI4NzAzMWJjMS0zNWNlLTQzZDYtOTY4MC1hOWNjZGRlMzIwZTgiLCJhcmVhQ29kZSI6IldNVCIsInRlbmFudE5hbWUiOiIiLCJzdXJuYW1lIjoiSDM2NeW5s-WPsOeuoeeQhuWToSIsImhvdXNlaG9sZE1lbWJlcklkIjoiIiwidGVuYW50SWQiOiJXTVQiLCJqdGkiOiJkMThjN2U3NS04YWIwLTQzM2MtOWE4OS0zYjQ2OTYwMjM4YWIifQ.Kjc9FNWmlE_x0nJ9z7S2RXjnDu_R1LKV_i7TxX1liO8" } ``` ### Response 欄位 | 型態 | 說明 ---|---|--- id | string | 租戶 id name | string | 租戶名稱 idNo | string | 租戶統編 tenantType | string | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商 dealerId | string | 經銷階層租戶id dealerName | string | 經銷階層租戶名稱 divisions | string | 服務科別 contact | string | 聯絡人 telephone | string | 電話 status | bool | 啟用狀態, true: 啟用, false: 停用 updateTime | timestamp | 最後更新時間 shortName | string | 簡稱 address | string | 地址 thumbnailObjectKey | string | logo縮圖objectKey ```javascript //httpCode: 200 { "httpCode": 200, "result": { "data": { "id": "594bcf8d-a134-4efd-9366-392b8194e631", "name": "租戶_HOSPITAL_Test_1", "idNo": "3345678", "tenantType": "HOSPITAL", "dealerId": "WMT", "status": true, "contact": "張三AA", "telephone": "0987000000", "email": "abcd@tttt.cc", "createTime": 1610588709000, "updateTime": 1610592450000, "platformId": "WMT", "shortName": "租戶_T1", "address": "高雄市苓雅區苓前南路2號" } } } //httpCode: 422 { "errorMsg": "SERVICE_ERROR.TENANT_DEALER_RECURSIVE", "httpCode": 422 } //httpCode: 422 { "errorMsg": "SERVICE_ERROR.DIVISION_DISABLED", "httpCode": 422 } ``` ## 啟用停用租戶 ```url POST /tenant/status ``` ### Request 欄位 | 型態 | 必填 | 說明 ---|---|---|--- id | string | Y | 租戶id status | bool | Y | 啟用狀態, true: 啟用, false: 停用 ```javascript { "id": "594bcf8d-a134-4efd-9366-392b8194e631", "status": true } ``` ### Response 欄位 | 型態 | 說明 ---|---|--- id | string | 租戶 id name | string | 租戶名稱 idNo | string | 租戶統編 tenantType | string | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商 dealerId | string | 經銷階層租戶id dealerName | string | 經銷階層租戶名稱 divisions | string | 服務科別 contact | string | 聯絡人 telephone | string | 電話 status | bool | 啟用狀態, true: 啟用, false: 停用 updateTime | timestamp | 最後更新時間 shortName | string | 簡稱 address | string | 地址 thumbnailObjectKey | string | logo縮圖objectKey ```javascript { "httpCode": 200, "result": { "data": { "id": "594bcf8d-a134-4efd-9366-392b8194e631", "name": "租戶_HOSPITAL_Test_1", "idNo": "3345678", "tenantType": "HOSPITAL", "dealerId": "WMT", "status": true, "contact": "張三AA", "telephone": "0987000000", "email": "abcd@tttt.cc", "createTime": 1610588709000, "updateTime": 1610592450000, "platformId": "WMT", "shortName": "租戶_T1", "address": "高雄市苓雅區苓前南路2號" } } } ``` ## 產生收案QRCode ```url POST /tenant/gen-add-case-qrcode ``` * 租戶管理人員使用 * 目前僅限於 tenantType="HOSPITAL" 和 tenantType="BUSINESS"的租戶使用 - tenantType="HOSPITAL" * 產出的QRCode內容格式有2種 - health365:://add-case-qrcode?tenantId=xxxxxxxx - health365:://add-case-qrcode?tenantId=xxxxxxxx&staffId=xxxxx - tenantType="BUSINESS" QRCode內容格式為 health365:://company/add-case-qrcode?tenantId=xxxxxxxx&tenantName=xxxxxxxx ### Request 欄位 | 型態 | 必填 | 說明 --- | --- | --- | --- staffId | string | | 收案處理人員account id, tenantType="HOSPITAL"時可選填 ```javascript { "staffId": "816ab265-d00e-4092-9c68-fcab0b66a4cb" } ``` ### Response 欄位 | 型態 | 說明 --- | --- | --- id | string | 租戶 id name | string | 租戶名稱 idNo | string | 租戶統編 tenantType | string | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商 dealerId | string | 經銷階層租戶id dealerName | string | 經銷階層租戶名稱 divisions | string | 服務科別 contact | string | 聯絡人 telephone | string | 電話 status | bool | 啟用狀態, true: 啟用, false: 停用 updateTime | timestamp | 最後更新時間 shortName | string | 簡稱 address | string | 地址 thumbnailObjectKey | string | logo縮圖objectKey base64QrCode | string | QRCode base64字串 ```javascript { "httpCode": 200, "result": { "data": { "id": "WMT", "name": "緯創醫學", "tenantType": "PLATFORM", "status": true, "createTime": 1611823813000, "updateTime": 1611823813000, "timeZone": "Asia/Taipei", "base64QrCode": "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8xllnzP7Q9nrHFjAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawenc/e3hZcQrHo7IDdFmb7nvNRbcXsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGCtT7Zpv3ykE1VSWLjb2yZYdYVlc+LjwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsID1GKxPX8Z2v7BGC1sxW82Fz7nFkbFdAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAWsabAK2+YlTbuF9cKHH7s7t1znW+54YAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMA62LRb5keyuKz+zrEGy9KWtT57cPF/GMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCA9SKwCqfAskWWPfctBTY2yjRWdYsCLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1h3glU4oLT6NbMf3/JG2YuqMMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCAVQHW2IBSVtsto0yT9XTZGxX+ehbW+DwjsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGCVVt59YH35SIVc/vUlu8kn9rOwPkcPFFjAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawREQ6AywRAZaICLBEBFgiIsASEQGWiABLRARYIiLAEhFgiYgAS0QEWCICLBERYImIPMk/MandjctwlJEAAAAASUVORK5CYII=", "featureList": [], "industryTypeList": [] } } } ```