imageprocess-20200320/main.tea (4,233 lines of code) (raw):
/**
*
*/
import Util;
import OSS;
import OpenPlatform;
import OSSUtil;
import FileForm;
import Number;
import OpenApi;
import OpenApiUtil;
import EndpointUtil;
extends OpenApi;
init(config: OpenApi.Config){
super(config);
@endpointRule = 'regional';
checkConfig(config);
@endpoint = getEndpoint('imageprocess', @regionId, @endpointRule, @network, @suffix, @endpointMap, @endpoint);
}
function getEndpoint(productId: string, regionId: string, endpointRule: string, network: string, suffix: string, endpointMap: map[string]string, endpoint: string) throws: string{
if (!Util.empty(endpoint)) {
return endpoint;
}
if (!Util.isUnset(endpointMap) && !Util.empty(endpointMap[regionId])) {
return endpointMap[regionId];
}
return EndpointUtil.getEndpointRules(productId, regionId, endpointRule, network, suffix);
}
model AnalyzeChestVesselRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.'),
}
](name='URLList', description='1
This parameter is required.'),
}
model AnalyzeChestVesselAdvanceRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.'),
}
](name='URLList', description='1
This parameter is required.'),
}
model AnalyzeChestVesselResponseBody = {
data?: {
aortaInfo?: {
area?: [ float ](name='Area', description='1'),
coordinates?: [[ float ] ](name='Coordinates'),
labelValue?: long(name='LabelValue', example='2'),
maxArea?: float(name='MaxArea', example='2722'),
maxAreaIndex?: long(name='MaxAreaIndex', example='416'),
maxDiameter?: float(name='MaxDiameter', example='63'),
}(name='AortaInfo'),
pulmonaryInfo?: {
area?: [ float ](name='Area', description='1'),
coordinates?: [[ float ] ](name='Coordinates'),
labelValue?: long(name='LabelValue', example='1'),
maxArea?: float(name='MaxArea', example='928'),
maxAreaIndex?: long(name='MaxAreaIndex', example='0'),
maxDiameter?: float(name='MaxDiameter', example='42'),
nearestAortaArea?: float(name='NearestAortaArea', example='2439'),
}(name='PulmonaryInfo'),
resultURL?: string(name='ResultURL', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/ct_artery_aa_ph/local_test/2021-07-08/6C4713DF-F548-47DF-A456-5DA1C8334444_result_compressed.tgz?Expires=1625732732&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&Signature=5UKVmLfM7GWllIcPr9a6dKz%2B5h****'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='B87D013B-F25F-47DC-ABE1-440F4837AFD2'),
}
model AnalyzeChestVesselResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: AnalyzeChestVesselResponseBody(name='body'),
}
/**
* @summary 主动脉瘤肺动脉高压检测
*
* @param request AnalyzeChestVesselRequest
* @param runtime runtime options for this request RuntimeOptions
* @return AnalyzeChestVesselResponse
*/
async function analyzeChestVesselWithOptions(request: AnalyzeChestVesselRequest, runtime: Util.RuntimeOptions): AnalyzeChestVesselResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.dataSourceType)) {
body['DataSourceType'] = request.dataSourceType;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'AnalyzeChestVessel',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 主动脉瘤肺动脉高压检测
*
* @param request AnalyzeChestVesselRequest
* @return AnalyzeChestVesselResponse
*/
async function analyzeChestVessel(request: AnalyzeChestVesselRequest): AnalyzeChestVesselResponse {
var runtime = new Util.RuntimeOptions{};
return analyzeChestVesselWithOptions(request, runtime);
}
async function analyzeChestVesselAdvance(request: AnalyzeChestVesselAdvanceRequest, runtime: Util.RuntimeOptions): AnalyzeChestVesselResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var analyzeChestVesselReq = new AnalyzeChestVesselRequest{};
OpenApiUtil.convert(request, analyzeChestVesselReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : AnalyzeChestVesselRequest.URLList = analyzeChestVesselReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var analyzeChestVesselResp = analyzeChestVesselWithOptions(analyzeChestVesselReq, runtime);
return analyzeChestVesselResp;
}
model CalcBMDRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
sourceType?: string(name='SourceType', description='This parameter is required.', example='HTTP_FILES'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm'),
}
](name='URLList', description='This parameter is required.'),
}
model CalcBMDAdvanceRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
sourceType?: string(name='SourceType', description='This parameter is required.', example='HTTP_FILES'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm'),
}
](name='URLList', description='This parameter is required.'),
}
model CalcBMDResponseBody = {
data?: {
detections?: [
{
vertBMD?: float(name='VertBMD', example='0.78'),
vertCategory?: float(name='VertCategory', example='NaN'),
vertId?: string(name='VertId', example='L1'),
vertTScore?: float(name='VertTScore', example='-2.5'),
vertZScore?: float(name='VertZScore', example='NaN'),
}
](name='Detections'),
origin?: [ float ](name='Origin'),
resultURL?: string(name='ResultURL', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/calc-bmd/local_test/2023-03-31/7772ECE3-22A7-193F-81B4-B0D6A02B5DAF-result.tgz?Expires=1680486509&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=GWi%2BhCCtamefKVYiS9oZJduswH****'),
spacing?: [ float ](name='Spacing'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='B48DECE6-29FE-1967-92F1-2E072873851A'),
}
model CalcBMDResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: CalcBMDResponseBody(name='body'),
}
/**
* @summary 骨密度估计
*
* @param request CalcBMDRequest
* @param runtime runtime options for this request RuntimeOptions
* @return CalcBMDResponse
*/
async function calcBMDWithOptions(request: CalcBMDRequest, runtime: Util.RuntimeOptions): CalcBMDResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.sourceType)) {
body['SourceType'] = request.sourceType;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'CalcBMD',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 骨密度估计
*
* @param request CalcBMDRequest
* @return CalcBMDResponse
*/
async function calcBMD(request: CalcBMDRequest): CalcBMDResponse {
var runtime = new Util.RuntimeOptions{};
return calcBMDWithOptions(request, runtime);
}
async function calcBMDAdvance(request: CalcBMDAdvanceRequest, runtime: Util.RuntimeOptions): CalcBMDResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var calcBMDReq = new CalcBMDRequest{};
OpenApiUtil.convert(request, calcBMDReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : CalcBMDRequest.URLList = calcBMDReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var calcBMDResp = calcBMDWithOptions(calcBMDReq, runtime);
return calcBMDResp;
}
model CalcCACSRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model CalcCACSAdvanceRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model CalcCACSResponseBody = {
data?: {
detections?: [
{
calciumCenter?: [ long ](name='CalciumCenter'),
calciumId?: long(name='CalciumId', example='1'),
calciumScore?: float(name='CalciumScore', example='19.22474'),
calciumVolume?: float(name='CalciumVolume', example='28.837109'),
}
](name='Detections'),
resultUrl?: string(name='ResultUrl', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/calc-cacs/2020-09-29/2020-09-29-11%3A07%3A41-D74FE0DF-8F80-41EB-B08B-2E67053587EC.tar.gz?Expires=1601350661&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=iB16ms28Y5mzB11ghYUd7upCi4****'),
score?: string(name='Score', example='117.61'),
volumeScore?: string(name='VolumeScore', example='111.96'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='6797D285-9290-4FBB-9742-AA1E286EF3B9'),
}
model CalcCACSResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: CalcCACSResponseBody(name='body'),
}
/**
* @param request CalcCACSRequest
* @param runtime runtime options for this request RuntimeOptions
* @return CalcCACSResponse
*/
async function calcCACSWithOptions(request: CalcCACSRequest, runtime: Util.RuntimeOptions): CalcCACSResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.dataSourceType)) {
body['DataSourceType'] = request.dataSourceType;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'CalcCACS',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @param request CalcCACSRequest
* @return CalcCACSResponse
*/
async function calcCACS(request: CalcCACSRequest): CalcCACSResponse {
var runtime = new Util.RuntimeOptions{};
return calcCACSWithOptions(request, runtime);
}
async function calcCACSAdvance(request: CalcCACSAdvanceRequest, runtime: Util.RuntimeOptions): CalcCACSResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var calcCACSReq = new CalcCACSRequest{};
OpenApiUtil.convert(request, calcCACSReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : CalcCACSRequest.URLList = calcCACSReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var calcCACSResp = calcCACSWithOptions(calcCACSReq, runtime);
return calcCACSResp;
}
model DetectCovid19CadRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
orgId?: string(name='OrgId', description='This parameter is required.', example='0001'),
orgName?: string(name='OrgName', description='This parameter is required.', example='weiyi'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model DetectCovid19CadAdvanceRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
orgId?: string(name='OrgId', description='This parameter is required.', example='0001'),
orgName?: string(name='OrgName', description='This parameter is required.', example='weiyi'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model DetectCovid19CadResponseBody = {
data?: {
lesionRatio?: string(name='LesionRatio', example='0.9387283236994219'),
mask?: string(name='Mask', example='http://algo-app-aic-med-cn-shanghai-prod.oss-cn-shanghai.aliyuncs.com/covid19-dcm/unspecified/2020032702/1b1e1018-6fcf-11ea-8fa1-d20b34387541.nii.gz?Expires=1585276394&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=%2F1LNGWJUqvY0VRYGgg8Ldtb3BF****'),
newProbability?: string(name='NewProbability', example='4.062644e-06'),
normalProbability?: string(name='NormalProbability', example='0.7230905'),
otherProbability?: string(name='OtherProbability', example='0.27690542'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='7CB9B663-3EF8-4C9C-A464-FDA2B5F1E3A4'),
}
model DetectCovid19CadResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: DetectCovid19CadResponseBody(name='body'),
}
/**
* @param request DetectCovid19CadRequest
* @param runtime runtime options for this request RuntimeOptions
* @return DetectCovid19CadResponse
*/
async function detectCovid19CadWithOptions(request: DetectCovid19CadRequest, runtime: Util.RuntimeOptions): DetectCovid19CadResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'DetectCovid19Cad',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @param request DetectCovid19CadRequest
* @return DetectCovid19CadResponse
*/
async function detectCovid19Cad(request: DetectCovid19CadRequest): DetectCovid19CadResponse {
var runtime = new Util.RuntimeOptions{};
return detectCovid19CadWithOptions(request, runtime);
}
async function detectCovid19CadAdvance(request: DetectCovid19CadAdvanceRequest, runtime: Util.RuntimeOptions): DetectCovid19CadResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var detectCovid19CadReq = new DetectCovid19CadRequest{};
OpenApiUtil.convert(request, detectCovid19CadReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : DetectCovid19CadRequest.URLList = detectCovid19CadReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var detectCovid19CadResp = detectCovid19CadWithOptions(detectCovid19CadReq, runtime);
return detectCovid19CadResp;
}
model DetectLiverSteatosisRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
sourceType?: string(name='SourceType', description='This parameter is required.', example='HTTP_FILES'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm'),
}
](name='URLList', description='This parameter is required.'),
}
model DetectLiverSteatosisAdvanceRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
sourceType?: string(name='SourceType', description='This parameter is required.', example='HTTP_FILES'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm'),
}
](name='URLList', description='This parameter is required.'),
}
model DetectLiverSteatosisResponseBody = {
data?: {
detections?: [
{
fatFract?: double(name='FatFract'),
liverHU?: float(name='LiverHU', example='62.07644147383561'),
liverROI1?: float(name='LiverROI1', example='63.50222396850586'),
liverROI2?: float(name='LiverROI2', example='62.23713684082031'),
liverROI3?: float(name='LiverROI3', example='59.78181838989258'),
liverSlice?: float(name='LiverSlice', example='12.0'),
liverSpleenDifference?: float(name='LiverSpleenDifference', example='8.206502275265478'),
liverSpleenRatio?: float(name='LiverSpleenRatio', example='1.15233917834983'),
liverVolume?: float(name='LiverVolume', example='1059.4175610625439'),
maossScore?: double(name='MaossScore'),
prediction?: string(name='Prediction', example='Mod'),
probability?: float(name='Probability', example='0.9457855224609375'),
ROI1Center?: [ long ](name='ROI1Center'),
ROI2Center?: [ long ](name='ROI2Center'),
ROI3Center?: [ long ](name='ROI3Center'),
radius?: long(name='Radius', example='1.0'),
spleenCenter?: [ long ](name='SpleenCenter'),
spleenHU?: float(name='SpleenHU', example='53.86993919857013'),
spleenROI?: float(name='SpleenROI', example='50.553409576416016'),
spleenSlice?: float(name='SpleenSlice', example='9.0'),
spleenVolume?: float(name='SpleenVolume', example='156.01873229470647'),
}
](name='Detections'),
origin?: [ float ](name='Origin'),
resultUrl?: string(name='ResultUrl'),
spacing?: [ float ](name='Spacing'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='39C848F7-D814-1A06-AE0D-AFC706B9700F'),
}
model DetectLiverSteatosisResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: DetectLiverSteatosisResponseBody(name='body'),
}
/**
* @summary 脂肪肝检测
*
* @param request DetectLiverSteatosisRequest
* @param runtime runtime options for this request RuntimeOptions
* @return DetectLiverSteatosisResponse
*/
async function detectLiverSteatosisWithOptions(request: DetectLiverSteatosisRequest, runtime: Util.RuntimeOptions): DetectLiverSteatosisResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.sourceType)) {
body['SourceType'] = request.sourceType;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'DetectLiverSteatosis',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 脂肪肝检测
*
* @param request DetectLiverSteatosisRequest
* @return DetectLiverSteatosisResponse
*/
async function detectLiverSteatosis(request: DetectLiverSteatosisRequest): DetectLiverSteatosisResponse {
var runtime = new Util.RuntimeOptions{};
return detectLiverSteatosisWithOptions(request, runtime);
}
async function detectLiverSteatosisAdvance(request: DetectLiverSteatosisAdvanceRequest, runtime: Util.RuntimeOptions): DetectLiverSteatosisResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var detectLiverSteatosisReq = new DetectLiverSteatosisRequest{};
OpenApiUtil.convert(request, detectLiverSteatosisReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : DetectLiverSteatosisRequest.URLList = detectLiverSteatosisReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var detectLiverSteatosisResp = detectLiverSteatosisWithOptions(detectLiverSteatosisReq, runtime);
return detectLiverSteatosisResp;
}
model DetectLungNoduleRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
orgId?: string(name='OrgId', description='This parameter is required.', example='0001'),
orgName?: string(name='OrgName', description='This parameter is required.', example='weiyi'),
threshold?: float(name='Threshold', example='0.60'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.'),
}
](name='URLList', description='1
This parameter is required.'),
}
model DetectLungNoduleAdvanceRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
orgId?: string(name='OrgId', description='This parameter is required.', example='0001'),
orgName?: string(name='OrgName', description='This parameter is required.', example='weiyi'),
threshold?: float(name='Threshold', example='0.60'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.'),
}
](name='URLList', description='1
This parameter is required.'),
}
model DetectLungNoduleResponseBody = {
data?: {
series?: [
{
elements?: [
{
category?: string(name='Category', example='1'),
confidence?: float(name='Confidence', example='0.7012705768508907'),
diameter?: float(name='Diameter', example='9.730626493692398'),
imageX?: float(name='ImageX', example='308.9676976455463'),
imageY?: float(name='ImageY', example='198.3552282631497'),
imageZ?: float(name='ImageZ', example='20.434030793471255'),
lobe?: string(name='Lobe', example='up'),
lung?: string(name='Lung', example='left'),
majorAxis?: [ float ](name='MajorAxis'),
meanValue?: float(name='MeanValue', example='261.37589112119247'),
minorAxis?: [ float ](name='MinorAxis'),
recistSOPInstanceUID?: string(name='RecistSOPInstanceUID', description='结节最大径位置所在帧的ID标识。', example='1.3.6.1.4.1.14519.5.2.1.6279.6001.468208655866166788627471660948'),
risk?: float(name='Risk', description='结节为恶性的置信度。取值范围0~1。', example='0.173'),
SOPInstanceUID?: string(name='SOPInstanceUID', example='1.3.6.1.4.1.14519.5.2.1.6279.6001.261151233960269013402330853013'),
volume?: float(name='Volume', example='10959.220491175074'),
x?: float(name='X', example='51.24291240631416'),
y?: float(name='Y', example='-32.23147700784307'),
z?: float(name='Z', example='-46.81608170781766'),
}
](name='Elements'),
origin?: [ float ](name='Origin', description='1'),
report?: string(name='Report'),
seriesInstanceUid?: string(name='SeriesInstanceUid', example='1.3.6.1.4.1.14519.5.2.1.6279.6001.179049373636438705059720603192'),
spacing?: [ float ](name='Spacing', description='1'),
}
](name='Series'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='9889ef5b-b973-4dd0-9f26-3b9cc489c436'),
}
model DetectLungNoduleResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: DetectLungNoduleResponseBody(name='body'),
}
/**
* @param request DetectLungNoduleRequest
* @param runtime runtime options for this request RuntimeOptions
* @return DetectLungNoduleResponse
*/
async function detectLungNoduleWithOptions(request: DetectLungNoduleRequest, runtime: Util.RuntimeOptions): DetectLungNoduleResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.threshold)) {
body['Threshold'] = request.threshold;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'DetectLungNodule',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @param request DetectLungNoduleRequest
* @return DetectLungNoduleResponse
*/
async function detectLungNodule(request: DetectLungNoduleRequest): DetectLungNoduleResponse {
var runtime = new Util.RuntimeOptions{};
return detectLungNoduleWithOptions(request, runtime);
}
async function detectLungNoduleAdvance(request: DetectLungNoduleAdvanceRequest, runtime: Util.RuntimeOptions): DetectLungNoduleResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var detectLungNoduleReq = new DetectLungNoduleRequest{};
OpenApiUtil.convert(request, detectLungNoduleReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : DetectLungNoduleRequest.URLList = detectLungNoduleReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var detectLungNoduleResp = detectLungNoduleWithOptions(detectLungNoduleReq, runtime);
return detectLungNoduleResp;
}
model DetectLymphRequest {
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model DetectLymphAdvanceRequest {
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model DetectLymphResponseBody = {
data?: {
lesions?: [
{
boxes?: [ float ](name='Boxes'),
diametermm?: [ float ](name='Diametermm'),
keySlice?: long(name='KeySlice', example='7'),
recist?: [[ float ] ](name='Recist'),
score?: float(name='Score', example='0.6298'),
}
](name='Lesions'),
}(name='Data'),
message?: string(name='Message', description='提交异步任务后的提示信息。', example='该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。'),
requestId?: string(name='RequestId', example='59598577-13C6-12A2-8CBF-A4DA4C9280A1'),
}
model DetectLymphResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: DetectLymphResponseBody(name='body'),
}
/**
* @summary 淋巴结检测
*
* @param request DetectLymphRequest
* @param runtime runtime options for this request RuntimeOptions
* @return DetectLymphResponse
*/
async function detectLymphWithOptions(request: DetectLymphRequest, runtime: Util.RuntimeOptions): DetectLymphResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataSourceType)) {
body['DataSourceType'] = request.dataSourceType;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'DetectLymph',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 淋巴结检测
*
* @param request DetectLymphRequest
* @return DetectLymphResponse
*/
async function detectLymph(request: DetectLymphRequest): DetectLymphResponse {
var runtime = new Util.RuntimeOptions{};
return detectLymphWithOptions(request, runtime);
}
async function detectLymphAdvance(request: DetectLymphAdvanceRequest, runtime: Util.RuntimeOptions): DetectLymphResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var detectLymphReq = new DetectLymphRequest{};
OpenApiUtil.convert(request, detectLymphReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : DetectLymphRequest.URLList = detectLymphReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var detectLymphResp = detectLymphWithOptions(detectLymphReq, runtime);
return detectLymphResp;
}
model DetectPancRequest {
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model DetectPancAdvanceRequest {
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model DetectPancResponseBody = {
data?: {
lesion?: {
mask?: string(name='Mask', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/screen-pdac/2022-05-25_14%3A33%3A30/4CA2BF25-BCDB-9C6C-B14C-EB41E8266588.nii.gz?Expires=1653462210&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&Signature=8t%2FknUrQyyyCU2p7QhMC%2BXBCR****'),
nonPdacVol?: string(name='NonPdacVol', example='0'),
pancVol?: string(name='PancVol', example='0'),
pdacVol?: string(name='PdacVol', example='0'),
possibilities?: [ string ](name='Possibilities'),
}(name='Lesion'),
}(name='Data'),
message?: string(name='Message', description='提交异步任务后的提示信息。', example='该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。'),
requestId?: string(name='RequestId', example='CA1C672A-4F85-1CD9-893D-3434C924C4B2'),
}
model DetectPancResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: DetectPancResponseBody(name='body'),
}
/**
* @summary 胰腺癌检测
*
* @param request DetectPancRequest
* @param runtime runtime options for this request RuntimeOptions
* @return DetectPancResponse
*/
async function detectPancWithOptions(request: DetectPancRequest, runtime: Util.RuntimeOptions): DetectPancResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataSourceType)) {
body['DataSourceType'] = request.dataSourceType;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'DetectPanc',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 胰腺癌检测
*
* @param request DetectPancRequest
* @return DetectPancResponse
*/
async function detectPanc(request: DetectPancRequest): DetectPancResponse {
var runtime = new Util.RuntimeOptions{};
return detectPancWithOptions(request, runtime);
}
async function detectPancAdvance(request: DetectPancAdvanceRequest, runtime: Util.RuntimeOptions): DetectPancResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var detectPancReq = new DetectPancRequest{};
OpenApiUtil.convert(request, detectPancReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : DetectPancRequest.URLList = detectPancReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var detectPancResp = detectPancWithOptions(detectPancReq, runtime);
return detectPancResp;
}
model DetectRibFractureRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
sourceType?: string(name='SourceType', description='This parameter is required.'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model DetectRibFractureAdvanceRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
sourceType?: string(name='SourceType', description='This parameter is required.'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model DetectRibFractureResponseBody = {
data?: {
detections?: [
{
coordinateImage?: [ int32 ](name='CoordinateImage'),
coordinates?: [ int32 ](name='Coordinates'),
fracSOPInstanceUID?: string(name='FracSOPInstanceUID', example='None'),
fractureCategory?: string(name='FractureCategory', example='1'),
fractureConfidence?: float(name='FractureConfidence', example='0.7916666666666667'),
fractureId?: int32(name='FractureId', example='2'),
fractureLocation?: string(name='FractureLocation', example='L4'),
fractureSegment?: long(name='FractureSegment', example='0'),
}
](name='Detections'),
origin?: [ float ](name='Origin'),
resultURL?: string(name='ResultURL', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/detect-rib-fracture/local_test/2020-12-22/result-D5CD101C-F8E5-43CA-9E99-44C783B8F8BE.tar.gz?Expires=1608631727&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=d6c32E1IB4b7Ayo1lpjs%2Bq3Ylv****'),
spacing?: [ float ](name='Spacing'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='5C695B5D-41A6-4202-8BF7-E647698678DF'),
}
model DetectRibFractureResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: DetectRibFractureResponseBody(name='body'),
}
/**
* @param request DetectRibFractureRequest
* @param runtime runtime options for this request RuntimeOptions
* @return DetectRibFractureResponse
*/
async function detectRibFractureWithOptions(request: DetectRibFractureRequest, runtime: Util.RuntimeOptions): DetectRibFractureResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.sourceType)) {
body['SourceType'] = request.sourceType;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'DetectRibFracture',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @param request DetectRibFractureRequest
* @return DetectRibFractureResponse
*/
async function detectRibFracture(request: DetectRibFractureRequest): DetectRibFractureResponse {
var runtime = new Util.RuntimeOptions{};
return detectRibFractureWithOptions(request, runtime);
}
async function detectRibFractureAdvance(request: DetectRibFractureAdvanceRequest, runtime: Util.RuntimeOptions): DetectRibFractureResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var detectRibFractureReq = new DetectRibFractureRequest{};
OpenApiUtil.convert(request, detectRibFractureReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : DetectRibFractureRequest.URLList = detectRibFractureReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var detectRibFractureResp = detectRibFractureWithOptions(detectRibFractureReq, runtime);
return detectRibFractureResp;
}
model DetectSkinDiseaseRequest {
orgId?: string(name='OrgId', description='This parameter is required.', example='0001'),
orgName?: string(name='OrgName', description='This parameter is required.', example='demo'),
url?: string(name='Url', description='This parameter is required.', example='http://viapi-test.oss-cn-shanghai.aliyuncs.com/viapi-3.0domepic/imageprocess/DetectSkinDisease/DetectSkinDisease1.png'),
}
model DetectSkinDiseaseAdvanceRequest {
orgId?: string(name='OrgId', description='This parameter is required.', example='0001'),
orgName?: string(name='OrgName', description='This parameter is required.', example='demo'),
urlObject?: readable(name='Url', description='This parameter is required.', example='http://viapi-test.oss-cn-shanghai.aliyuncs.com/viapi-3.0domepic/imageprocess/DetectSkinDisease/DetectSkinDisease1.png'),
}
model DetectSkinDiseaseResponseBody = {
data?: {
bodyPart?: string(name='BodyPart', example='leg'),
imageQuality?: float(name='ImageQuality', example='90.9812'),
imageType?: string(name='ImageType', example='skin_lesion'),
results?: map[string]any(name='Results'),
resultsEnglish?: map[string]any(name='ResultsEnglish', example='"psoriasis": 0.998, "eczema_dermatitis": 0.0011, "lupus_erythematosus": 0.0004'),
}(name='Data'),
requestId?: string(name='RequestId', example='DE9ABC80-4DD4-4F1B-B95C-D0E438B8FE56'),
}
model DetectSkinDiseaseResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: DetectSkinDiseaseResponseBody(name='body'),
}
/**
* @param request DetectSkinDiseaseRequest
* @param runtime runtime options for this request RuntimeOptions
* @return DetectSkinDiseaseResponse
*/
async function detectSkinDiseaseWithOptions(request: DetectSkinDiseaseRequest, runtime: Util.RuntimeOptions): DetectSkinDiseaseResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.url)) {
body['Url'] = request.url;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'DetectSkinDisease',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @param request DetectSkinDiseaseRequest
* @return DetectSkinDiseaseResponse
*/
async function detectSkinDisease(request: DetectSkinDiseaseRequest): DetectSkinDiseaseResponse {
var runtime = new Util.RuntimeOptions{};
return detectSkinDiseaseWithOptions(request, runtime);
}
async function detectSkinDiseaseAdvance(request: DetectSkinDiseaseAdvanceRequest, runtime: Util.RuntimeOptions): DetectSkinDiseaseResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var detectSkinDiseaseReq = new DetectSkinDiseaseRequest{};
OpenApiUtil.convert(request, detectSkinDiseaseReq);
if(!Util.isUnset(request.urlObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = request.urlObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
detectSkinDiseaseReq.url = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
}
var detectSkinDiseaseResp = detectSkinDiseaseWithOptions(detectSkinDiseaseReq, runtime);
return detectSkinDiseaseResp;
}
model FeedbackSessionRequest {
feedback?: string(name='Feedback', description='This parameter is required.'),
sessionId?: string(name='SessionId', description='This parameter is required.', example='69675e9ddaea4b1ca8b9ddbafd02edc2'),
}
model FeedbackSessionResponseBody = {
requestId?: string(name='RequestId', example='01E1BC28-9155-59F0-BA7E-3706170DEF1B'),
}
model FeedbackSessionResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: FeedbackSessionResponseBody(name='body'),
}
/**
* @summary 会话反馈
*
* @param request FeedbackSessionRequest
* @param runtime runtime options for this request RuntimeOptions
* @return FeedbackSessionResponse
*/
async function feedbackSessionWithOptions(request: FeedbackSessionRequest, runtime: Util.RuntimeOptions): FeedbackSessionResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.feedback)) {
body['Feedback'] = request.feedback;
}
if (!Util.isUnset(request.sessionId)) {
body['SessionId'] = request.sessionId;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'FeedbackSession',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 会话反馈
*
* @param request FeedbackSessionRequest
* @return FeedbackSessionResponse
*/
async function feedbackSession(request: FeedbackSessionRequest): FeedbackSessionResponse {
var runtime = new Util.RuntimeOptions{};
return feedbackSessionWithOptions(request, runtime);
}
model GetAsyncJobResultRequest {
jobId?: string(name='JobId', description='This parameter is required.', example='7CB9B663-3EF8-4C9C-A464-FDA2B5F1E3A4'),
}
model GetAsyncJobResultResponseBody = {
data?: {
errorCode?: string(name='ErrorCode', example='InvalidParameter'),
errorMessage?: string(name='ErrorMessage', example='paramsIllegal'),
jobId?: string(name='JobId', example='CCCAAAFB-5628-40DD-A12C-6F52326C1B03'),
result?: string(name='Result', example='{\\\\"NewProbability\\\\":\\\\"4.062644e-06\\\\",\\\\"NormalProbability\\\\":\\\\"0.7230905\\\\",\\\\"OtherProbability\\\\":\\\\"0.27690542\\\\",\\\\"LesionRatio\\\\":\\\\"0.9387283236994219\\\\",\\\\"Mask\\\\":\\\\"http://algo-app-aic-med-cn-shanghai-prod.oss-cn-shanghai.aliyuncs.com/covid19-dcm/unspecified/2020032702/1b1e1018-6fcf-11ea-8fa1-d20b34387541.nii.gz?Expires=1585276394&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=%2F1LNGWJUqvY0VRYGgg8Ldtb3BF****\\\\"}'),
status?: string(name='Status', example='PROCESS_SUCCESS'),
}(name='Data'),
requestId?: string(name='RequestId', example='7CB9B663-3EF8-4C9C-A464-FDA2B5F1E3A4'),
}
model GetAsyncJobResultResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: GetAsyncJobResultResponseBody(name='body'),
}
/**
* @param request GetAsyncJobResultRequest
* @param runtime runtime options for this request RuntimeOptions
* @return GetAsyncJobResultResponse
*/
async function getAsyncJobResultWithOptions(request: GetAsyncJobResultRequest, runtime: Util.RuntimeOptions): GetAsyncJobResultResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.jobId)) {
body['JobId'] = request.jobId;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'GetAsyncJobResult',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @param request GetAsyncJobResultRequest
* @return GetAsyncJobResultResponse
*/
async function getAsyncJobResult(request: GetAsyncJobResultRequest): GetAsyncJobResultResponse {
var runtime = new Util.RuntimeOptions{};
return getAsyncJobResultWithOptions(request, runtime);
}
model PredictCVDRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm'),
}
](name='URLList', description='This parameter is required.'),
}
model PredictCVDAdvanceRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm'),
}
](name='URLList', description='This parameter is required.'),
}
model PredictCVDResponseBody = {
data?: {
lesion?: {
CVDProbability?: float(name='CVDProbability', example='0.5'),
featureScore?: {
aortaCalciumScore?: [ double ](name='AortaCalciumScore'),
aortaCalciumVolume?: [ double ](name='AortaCalciumVolume'),
aortaMaxDiam?: [ double ](name='AortaMaxDiam'),
aortaMaxDiamStd?: [ double ](name='AortaMaxDiamStd'),
aorticHeightIndex?: [ double ](name='AorticHeightIndex'),
aorticTortuosityIndex?: [ double ](name='AorticTortuosityIndex'),
ascAoMaxDiam?: [ double ](name='AscAoMaxDiam'),
ascendAortaLength?: [ double ](name='AscendAortaLength'),
cardioThoracicRatio?: [ double ](name='CardioThoracicRatio'),
chestWidth?: [ double ](name='ChestWidth'),
coronaryCalciumScore?: [ double ](name='CoronaryCalciumScore'),
coronaryCalciumVol?: [ double ](name='CoronaryCalciumVol'),
deepFeature?: [ double ](name='DeepFeature'),
eatHUMean?: [ double ](name='EatHUMean'),
eatHUSTD?: [ double ](name='EatHUSTD'),
eatVolume?: [ double ](name='EatVolume'),
heartLongDiam?: [ double ](name='HeartLongDiam'),
heartShortDiam?: [ double ](name='HeartShortDiam'),
heartWidth?: [ double ](name='HeartWidth'),
leftLungHighattRatio?: [ double ](name='LeftLungHighattRatio'),
leftLungLowattRatio?: [ double ](name='LeftLungLowattRatio'),
myoEpiRatio?: [ double ](name='MyoEpiRatio'),
rightLungHighattRatio?: [ double ](name='RightLungHighattRatio'),
rightLungLowattRatio?: [ double ](name='RightLungLowattRatio'),
}(name='FeatureScore'),
imagesURL?: string(name='ImagesURL'),
resultURL?: [ string ](name='ResultURL'),
}(name='Lesion'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='7CB9B663-3EF8-4C9C-A464-FDA2B5F1E3A4'),
}
model PredictCVDResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: PredictCVDResponseBody(name='body'),
}
/**
* @summary CVD心血管不良事件预测
*
* @param request PredictCVDRequest
* @param runtime runtime options for this request RuntimeOptions
* @return PredictCVDResponse
*/
async function predictCVDWithOptions(request: PredictCVDRequest, runtime: Util.RuntimeOptions): PredictCVDResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.dataSourceType)) {
body['DataSourceType'] = request.dataSourceType;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'PredictCVD',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary CVD心血管不良事件预测
*
* @param request PredictCVDRequest
* @return PredictCVDResponse
*/
async function predictCVD(request: PredictCVDRequest): PredictCVDResponse {
var runtime = new Util.RuntimeOptions{};
return predictCVDWithOptions(request, runtime);
}
async function predictCVDAdvance(request: PredictCVDAdvanceRequest, runtime: Util.RuntimeOptions): PredictCVDResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var predictCVDReq = new PredictCVDRequest{};
OpenApiUtil.convert(request, predictCVDReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : PredictCVDRequest.URLList = predictCVDReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var predictCVDResp = predictCVDWithOptions(predictCVDReq, runtime);
return predictCVDResp;
}
model RunCTRegistrationRequest {
dataFormat?: string(name='DataFormat', description='DICOM。
This parameter is required.', example='DICOM'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
floatingList?: [
{
floatingURL?: string(name='FloatingURL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/registration/flt/34_P18.4.1.dcm'),
}
](name='FloatingList', description='This parameter is required.'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
referenceList?: [
{
referenceURL?: string(name='ReferenceURL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/registration/ref/33_P18.4.1.dcm'),
}
](name='ReferenceList', description='This parameter is required.'),
}
model RunCTRegistrationAdvanceRequest {
dataFormat?: string(name='DataFormat', description='DICOM。
This parameter is required.', example='DICOM'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
floatingList?: [
{
floatingURLObject?: readable(name='FloatingURL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/registration/flt/34_P18.4.1.dcm'),
}
](name='FloatingList', description='This parameter is required.'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
referenceList?: [
{
referenceURLObject?: readable(name='ReferenceURL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/registration/ref/33_P18.4.1.dcm'),
}
](name='ReferenceList', description='This parameter is required.'),
}
model RunCTRegistrationResponseBody = {
data?: {
DUrl?: string(name='DUrl', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/chest-ct-registration/ctctreg/2020-09-05_13%3A59%3A59_894c42d0-876a-9198-9fd9-09431fb96fad.tar.gz?Expires=1599287399&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&Signature=cWTQtdb7geuEJ46cNO%2BGGimrN****'),
NUrl?: string(name='NUrl', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/chest-ct-registration/ctctreg/2020-09-05_13%3A59%3A59_894c42d0-876a-9198-9fd9-09431fb96fad.nii.gz?Expires=1599287399&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&Signature=Tgjk1WsZFvvyIUMunxizNtivhY****'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='EB3ACFE6-EA75-49E1-83C0-953580F74D88'),
}
model RunCTRegistrationResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: RunCTRegistrationResponseBody(name='body'),
}
/**
* @param request RunCTRegistrationRequest
* @param runtime runtime options for this request RuntimeOptions
* @return RunCTRegistrationResponse
*/
async function runCTRegistrationWithOptions(request: RunCTRegistrationRequest, runtime: Util.RuntimeOptions): RunCTRegistrationResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.dataSourceType)) {
body['DataSourceType'] = request.dataSourceType;
}
if (!Util.isUnset(request.floatingList)) {
body['FloatingList'] = request.floatingList;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.referenceList)) {
body['ReferenceList'] = request.referenceList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'RunCTRegistration',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @param request RunCTRegistrationRequest
* @return RunCTRegistrationResponse
*/
async function runCTRegistration(request: RunCTRegistrationRequest): RunCTRegistrationResponse {
var runtime = new Util.RuntimeOptions{};
return runCTRegistrationWithOptions(request, runtime);
}
async function runCTRegistrationAdvance(request: RunCTRegistrationAdvanceRequest, runtime: Util.RuntimeOptions): RunCTRegistrationResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var runCTRegistrationReq = new RunCTRegistrationRequest{};
OpenApiUtil.convert(request, runCTRegistrationReq);
if(!Util.isUnset(request.floatingList)) {
var i0 : integer = 0;
for (var item0 : request.floatingList) {
if(!Util.isUnset(item0.floatingURLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.floatingURLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : RunCTRegistrationRequest.floatingList = runCTRegistrationReq.floatingList[i0];
tmp.floatingURL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
if(!Util.isUnset(request.referenceList)) {
var i1 : integer = 0;
for (var item0 : request.referenceList) {
if(!Util.isUnset(item0.referenceURLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.referenceURLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : RunCTRegistrationRequest.referenceList = runCTRegistrationReq.referenceList[i1];
tmp.referenceURL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i1 = Number.ltoi(Number.add(Number.itol(i1), Number.itol(1)));
}
}
}
var runCTRegistrationResp = runCTRegistrationWithOptions(runCTRegistrationReq, runtime);
return runCTRegistrationResp;
}
model RunMedQARequest {
answerImageDataList?: [
{
answerImageData?: string(name='AnswerImageData', example='iVBORw0KGgoAAAANSUhEUgAAAoAAAAHJCAIAAACaEB9NAAEAAElEQVR4nNT9Wb****'),
}
](name='AnswerImageDataList'),
answerImageURLList?: [
{
answerImageURL?: string(name='AnswerImageURL', example='https://viapi-oss.oss-cn-shanghai.aliyuncs.com/doc/imageprocess/roseola.jpeg'),
}
](name='AnswerImageURLList'),
answerTextList?: [
{
answerText?: string(name='AnswerText'),
}
](name='AnswerTextList'),
department?: string(name='Department', description='This parameter is required.'),
orgId?: string(name='OrgId', description='This parameter is required.', example='0001'),
orgName?: string(name='OrgName', description='This parameter is required.', example='weiyi'),
questionType?: string(name='QuestionType', description='This parameter is required.', example='chiefComplaint'),
sessionId?: string(name='SessionId', example='d1f6a6c2444f4c01adfadd413938e5c7'),
}
model RunMedQAAdvanceRequest {
answerImageDataList?: [
{
answerImageData?: string(name='AnswerImageData', example='iVBORw0KGgoAAAANSUhEUgAAAoAAAAHJCAIAAACaEB9NAAEAAElEQVR4nNT9Wb****'),
}
](name='AnswerImageDataList'),
answerImageURLList?: [
{
answerImageURLObject?: readable(name='AnswerImageURL', example='https://viapi-oss.oss-cn-shanghai.aliyuncs.com/doc/imageprocess/roseola.jpeg'),
}
](name='AnswerImageURLList'),
answerTextList?: [
{
answerText?: string(name='AnswerText'),
}
](name='AnswerTextList'),
department?: string(name='Department', description='This parameter is required.'),
orgId?: string(name='OrgId', description='This parameter is required.', example='0001'),
orgName?: string(name='OrgName', description='This parameter is required.', example='weiyi'),
questionType?: string(name='QuestionType', description='This parameter is required.', example='chiefComplaint'),
sessionId?: string(name='SessionId', example='d1f6a6c2444f4c01adfadd413938e5c7'),
}
model RunMedQAResponseBody = {
data?: {
answerType?: string(name='AnswerType', example='text'),
options?: [ string ](name='Options'),
question?: string(name='Question'),
questionType?: string(name='QuestionType', example='age'),
reports?: map[string]string(name='Reports'),
sessionId?: string(name='SessionId', example='d1f6a6c2444f4c01adfadd413938e5c7'),
}(name='Data'),
requestId?: string(name='RequestId', example='BFF7EEC3-F6B5-4387-AC1D-BB095A1A02E4'),
}
model RunMedQAResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: RunMedQAResponseBody(name='body'),
}
/**
* @param request RunMedQARequest
* @param runtime runtime options for this request RuntimeOptions
* @return RunMedQAResponse
*/
async function runMedQAWithOptions(request: RunMedQARequest, runtime: Util.RuntimeOptions): RunMedQAResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.answerImageDataList)) {
body['AnswerImageDataList'] = request.answerImageDataList;
}
if (!Util.isUnset(request.answerImageURLList)) {
body['AnswerImageURLList'] = request.answerImageURLList;
}
if (!Util.isUnset(request.answerTextList)) {
body['AnswerTextList'] = request.answerTextList;
}
if (!Util.isUnset(request.department)) {
body['Department'] = request.department;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.questionType)) {
body['QuestionType'] = request.questionType;
}
if (!Util.isUnset(request.sessionId)) {
body['SessionId'] = request.sessionId;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'RunMedQA',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @param request RunMedQARequest
* @return RunMedQAResponse
*/
async function runMedQA(request: RunMedQARequest): RunMedQAResponse {
var runtime = new Util.RuntimeOptions{};
return runMedQAWithOptions(request, runtime);
}
async function runMedQAAdvance(request: RunMedQAAdvanceRequest, runtime: Util.RuntimeOptions): RunMedQAResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var runMedQAReq = new RunMedQARequest{};
OpenApiUtil.convert(request, runMedQAReq);
if(!Util.isUnset(request.answerImageURLList)) {
var i0 : integer = 0;
for (var item0 : request.answerImageURLList) {
if(!Util.isUnset(item0.answerImageURLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.answerImageURLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : RunMedQARequest.answerImageURLList = runMedQAReq.answerImageURLList[i0];
tmp.answerImageURL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var runMedQAResp = runMedQAWithOptions(runMedQAReq, runtime);
return runMedQAResp;
}
model ScreenCRCRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm'),
}
](name='URLList', description='This parameter is required.'),
}
model ScreenCRCAdvanceRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm'),
}
](name='URLList', description='This parameter is required.'),
}
model ScreenCRCResponseBody = {
data?: {
lesion?: {
CRCVolume?: string(name='CRCVolume', example='7.83'),
colorectumVolume?: string(name='ColorectumVolume', example='255.93'),
mask?: string(name='Mask', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/screen_crc/crc_case2_pre.nii.gz?Expires=1680766116&OSSAccessKeyId=LTAI4GC2dJzdf8ZvnC16MFC7&Signature=9n9C%2B2MnyvLwAC%2FwFyxgY********'),
probabilities?: string(name='Probabilities', example='0.0779, 0.9221'),
}(name='Lesion'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='39C848F7-D814-1A06-AE0D-AFC706B9700F'),
}
model ScreenCRCResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: ScreenCRCResponseBody(name='body'),
}
/**
* @summary 结直肠癌筛查
*
* @param request ScreenCRCRequest
* @param runtime runtime options for this request RuntimeOptions
* @return ScreenCRCResponse
*/
async function screenCRCWithOptions(request: ScreenCRCRequest, runtime: Util.RuntimeOptions): ScreenCRCResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.dataSourceType)) {
body['DataSourceType'] = request.dataSourceType;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'ScreenCRC',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 结直肠癌筛查
*
* @param request ScreenCRCRequest
* @return ScreenCRCResponse
*/
async function screenCRC(request: ScreenCRCRequest): ScreenCRCResponse {
var runtime = new Util.RuntimeOptions{};
return screenCRCWithOptions(request, runtime);
}
async function screenCRCAdvance(request: ScreenCRCAdvanceRequest, runtime: Util.RuntimeOptions): ScreenCRCResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var screenCRCReq = new ScreenCRCRequest{};
OpenApiUtil.convert(request, screenCRCReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : ScreenCRCRequest.URLList = screenCRCReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var screenCRCResp = screenCRCWithOptions(screenCRCReq, runtime);
return screenCRCResp;
}
model ScreenChestCTRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
mask?: long(name='Mask', example='4'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.', example='weiyi'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/coronacases_org_001/1.2.112.92121.1.1689.19.2.2020040219072764787101585825****.dcm'),
}
](name='URLList', description='This parameter is required.'),
verbose?: long(name='Verbose', example='0'),
}
model ScreenChestCTAdvanceRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
mask?: long(name='Mask', example='4'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.', example='weiyi'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/coronacases_org_001/1.2.112.92121.1.1689.19.2.2020040219072764787101585825****.dcm'),
}
](name='URLList', description='This parameter is required.'),
verbose?: long(name='Verbose', example='0'),
}
model ScreenChestCTResponseBody = {
data?: {
analyzeChestVessel?: {
aortaInfo?: {
area?: [ float ](name='Area', description='1'),
coordinates?: [[ float ] ](name='Coordinates'),
labelValue?: long(name='LabelValue', example='2'),
maxArea?: float(name='MaxArea', example='2722'),
maxAreaIndex?: long(name='MaxAreaIndex', example='416'),
maxDiameter?: float(name='MaxDiameter', example='63'),
}(name='AortaInfo'),
pulmonaryInfo?: {
area?: [ float ](name='Area', description='1'),
coordinates?: [[ float ] ](name='Coordinates'),
labelValue?: long(name='LabelValue', example='1'),
maxArea?: float(name='MaxArea', example='928'),
maxAreaIndex?: long(name='MaxAreaIndex', example='0'),
maxDiameter?: float(name='MaxDiameter', example='42'),
nearestAortaArea?: float(name='NearestAortaArea', example='2439'),
}(name='PulmonaryInfo'),
resultURL?: string(name='ResultURL', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/ct_artery_aa_ph/local_test/2021-07-08/6C4713DF-F548-47DF-A456-5DA1C8334444_result_compressed.tgz?Expires=1625732732&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&Signature=5UKVmLfM7GWllIcPr9a6dKz%2B5h****'),
}(name='AnalyzeChestVessel'),
CACS?: {
detections?: [
{
calciumCenter?: [ long ](name='CalciumCenter'),
calciumId?: long(name='CalciumId', example='1'),
calciumScore?: float(name='CalciumScore', example='19.22474'),
calciumVolume?: float(name='CalciumVolume', example='28.837109'),
}
](name='Detections'),
resultUrl?: string(name='ResultUrl', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/calc-cacs/2020-09-29/2020-09-29-11%3A07%3A41-D74FE0DF-8F80-41EB-B08B-2E67053587EC.tar.gz?Expires=1601350661&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=iB16ms28Y5mzB11ghYUd7upCi4****'),
score?: string(name='Score', example='4.83'),
seriesInstanceUID?: string(name='SeriesInstanceUID', example='1.2.392.489642.9116.2.6.1.44063.1986736248.1658817546.650139'),
volumeScore?: string(name='VolumeScore', example='111.96'),
}(name='CACS'),
calcBMD?: {
detections?: [
{
vertBMD?: float(name='VertBMD'),
vertCategory?: float(name='VertCategory'),
vertId?: string(name='VertId'),
vertTScore?: float(name='VertTScore'),
vertZScore?: float(name='VertZScore'),
}
](name='Detections'),
origin?: [ float ](name='Origin'),
resultURL?: string(name='ResultURL'),
seriesInstanceUid?: string(name='SeriesInstanceUid'),
spacing?: [ float ](name='Spacing'),
}(name='CalcBMD'),
covid?: {
lesionRatio?: string(name='LesionRatio', example='0.9387283236994219'),
mask?: string(name='Mask', example='http://algo-app-aic-med-cn-shanghai-prod.oss-cn-shanghai.aliyuncs.com/covid19-dcm/unspecified/2020032702/1b1e1018-6fcf-11ea-8fa1-d20b34387541.nii.gz?Expires=1585276394&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=%2F1LNGWJUqvY0VRYGgg8Ldtb3BF****'),
newProbability?: string(name='NewProbability', example='4.062644e-06'),
normalProbability?: string(name='NormalProbability', example='0.7230905'),
otherProbability?: string(name='OtherProbability', example='0.27690542'),
seriesInstanceUID?: string(name='SeriesInstanceUID', example='1.2.392.200036.9116.2.6.1.44063.1805049129.1658817546.650139'),
}(name='Covid'),
detectAD?: {
distanceMap?: string(name='DistanceMap'),
mask?: string(name='Mask'),
possibility?: string(name='Possibility'),
seriesInstanceUid?: string(name='SeriesInstanceUid'),
sliceVal?: int32(name='SliceVal'),
}(name='DetectAD'),
detectLiverSteatosis?: {
detections?: [
{
fatFract?: double(name='FatFract'),
liverHU?: float(name='LiverHU'),
liverROI1?: float(name='LiverROI1'),
liverROI2?: float(name='LiverROI2'),
liverROI3?: float(name='LiverROI3'),
liverSlice?: float(name='LiverSlice'),
liverSpleenDifference?: float(name='LiverSpleenDifference'),
liverSpleenRatio?: float(name='LiverSpleenRatio'),
liverVolume?: float(name='LiverVolume'),
maossScore?: double(name='MaossScore'),
prediction?: string(name='Prediction'),
probability?: float(name='Probability'),
ROI1Center?: [ long ](name='ROI1Center'),
ROI2Center?: [ long ](name='ROI2Center'),
ROI3Center?: [ long ](name='ROI3Center'),
radius?: long(name='Radius'),
spleenCenter?: [ long ](name='SpleenCenter'),
spleenHU?: float(name='SpleenHU'),
spleenROI?: float(name='SpleenROI'),
spleenSlice?: float(name='SpleenSlice'),
spleenVolume?: float(name='SpleenVolume'),
}
](name='Detections'),
origin?: [ float ](name='Origin'),
resultUrl?: string(name='ResultUrl'),
seriesInstanceUid?: string(name='SeriesInstanceUid'),
spacing?: [ float ](name='Spacing'),
}(name='DetectLiverSteatosis'),
detectLymph?: {
lesions?: [
{
boxes?: [ float ](name='Boxes'),
diametermm?: [ float ](name='Diametermm'),
keySlice?: long(name='KeySlice', example='7'),
recist?: [[ float ] ](name='Recist'),
score?: float(name='Score', example='0.6298'),
}
](name='Lesions'),
seriesInstanceUID?: string(name='SeriesInstanceUID', example='1.2.568.200036.9116.2.6.1.44063.1805049129.1357480934.650139'),
}(name='DetectLymph'),
detectPdac?: {
lesion?: {
lesionList?: [
{
diameter?: [ float ](name='Diameter'),
keySlice?: int32(name='KeySlice'),
ROIEndpoints?: [[ int32 ] ](name='ROIEndpoints'),
recistEndpoints?: [[ int32 ] ](name='RecistEndpoints'),
type?: string(name='Type'),
}
](name='LesionList'),
mask?: string(name='Mask', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/screen-pdac/2022-05-25_14%3A33%3A30/4CA2BF25-BCDB-9C6C-B14C-EB41E8266588.nii.gz?Expires=1653462210&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&Signature=8t%2FknUrQyyyCU2p7QhMC%2BXBCR****'),
nonPdacVol?: string(name='NonPdacVol', example='0'),
organList?: [
{
diameter?: [ float ](name='Diameter'),
keySlice?: int32(name='KeySlice'),
ROIEndpoints?: [[ int32 ] ](name='ROIEndpoints'),
recistEndpoints?: [[ int32 ] ](name='RecistEndpoints'),
type?: string(name='Type'),
}
](name='OrganList'),
pancVol?: string(name='PancVol', example='0'),
pdacVol?: string(name='PdacVol', example='0'),
possibilities?: [ string ](name='Possibilities'),
}(name='Lesion'),
seriesInstanceUID?: string(name='SeriesInstanceUID', example='1.2.239.200036.9116.2.6.1.44063.1805049129.1357480934.650139'),
}(name='DetectPdac'),
detectRibFracture?: {
detections?: [
{
coordinateImage?: [ long ](name='CoordinateImage'),
coordinates?: [ long ](name='Coordinates'),
fracSOPInstanceUID?: string(name='FracSOPInstanceUID'),
fractureCategory?: long(name='FractureCategory', example='1'),
fractureConfidence?: float(name='FractureConfidence', example='0.7916666666666667'),
fractureId?: long(name='FractureId', example='2'),
fractureLocation?: string(name='FractureLocation', example='L4'),
fractureSegment?: long(name='FractureSegment', example='0'),
}
](name='Detections'),
fractureMaskURL?: string(name='FractureMaskURL', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/screen-chest-ct/detect-rib-fracture/2022-07-27/2022-07-27-15_15_39-8BBD1C28-383A-548F-AD7D-CB5E0ABA207D_be6ffcb2d2e9494cba8112e07f93f466_ribFracture-mask.nii.gz?Expires=1659165340&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&Signature=2lzFDLfGbhVXsHm%2BKhgpglWmA****'),
origin?: [ float ](name='Origin'),
resultURL?: string(name='ResultURL', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/detect-rib-fracture/local_test/2020-12-22/result-D5CD101C-F8E5-43CA-9E99-44C783B8F8BE.tar.gz?Expires=1608631727&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=d6c32E1IB4b7Ayo1lpjs%2Bq3Ylv****'),
ribSegmentMaskURL?: string(name='RibSegmentMaskURL', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/screen-chest-ct/detect-rib-fracture/2022-07-27/2022-07-27-15_15_39-8BBD1C28-383A-548F-AD7D-CB5E0ABA207D_be6ffcb2d2e9494cba8112e07f93f466_ribFracture-ribmask.nii.gz?Expires=1659165340&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&Signature=5Z%2FCS3B%2B%2Ff6nlBk7alY39LvH3****'),
seriesInstanceUID?: string(name='SeriesInstanceUID', example='1.2.392.489642.9116.2.6.1.78361.1298784213.1658817546.650139'),
spacing?: [ float ](name='Spacing'),
}(name='DetectRibFracture'),
errorMessage?: string(name='ErrorMessage', example='Failed to execute [cacs,covid]'),
lungNodule?: {
series?: [
{
elements?: [
{
category?: string(name='Category', example='1'),
confidence?: float(name='Confidence', example='0.7012705768508907'),
diameter?: float(name='Diameter', example='9.730626493692398'),
imageX?: float(name='ImageX', example='308.9676976455463'),
imageY?: float(name='ImageY', example='198.3552282631497'),
imageZ?: float(name='ImageZ', example='198.3552282631497'),
lobe?: string(name='Lobe', example='up'),
lung?: string(name='Lung', example='left'),
majorAxis?: [ float ](name='MajorAxis'),
meanValue?: float(name='MeanValue', example='261.37589112119247'),
minorAxis?: [ float ](name='MinorAxis'),
recistSOPInstanceUID?: string(name='RecistSOPInstanceUID'),
risk?: float(name='Risk'),
SOPInstanceUID?: string(name='SOPInstanceUID', example='1.3.6.1.4.1.14519.5.2.1.6279.6001.261151233960269013402330853013'),
volume?: float(name='Volume', example='10959.220491175074'),
x?: float(name='X', example='51.24291240631416'),
y?: float(name='Y', example='-32.23147700784307'),
z?: float(name='Z', example='-46.81608170781766'),
}
](name='Elements'),
origin?: [ float ](name='Origin'),
report?: string(name='Report'),
seriesInstanceUid?: string(name='SeriesInstanceUid', example='1.3.6.1.4.1.14519.5.2.1.6279.6001.179049373636438705059720603192'),
spacing?: [ float ](name='Spacing'),
}
](name='Series'),
}(name='LungNodule'),
muscleFat?: {
FAT_TYPE?: int32(name='FAT_TYPE'),
MASK_PATH?: string(name='MASK_PATH'),
MUSCLE_MASS?: int32(name='MUSCLE_MASS'),
MUSCLE_QUALITY?: int32(name='MUSCLE_QUALITY'),
NAMA_TAMA_INDEX_TSCORE?: float(name='NAMA_TAMA_INDEX_TSCORE'),
PERCENT_IMAT?: float(name='PERCENT_IMAT'),
PERCENT_LAMA?: float(name='PERCENT_LAMA'),
PERCENT_NAMA?: float(name='PERCENT_NAMA'),
RENDERING_PATH?: string(name='RENDERING_PATH'),
SFA?: float(name='SFA'),
SFT?: float(name='SFT'),
SMA?: float(name='SMA'),
SMI?: float(name='SMI'),
STUDY_AGE?: int32(name='STUDY_AGE'),
STUDY_GENDER?: string(name='STUDY_GENDER'),
seriesInstanceUid?: string(name='SeriesInstanceUid'),
VERTEBRA_IN_USE?: float(name='VERTEBRA_IN_USE'),
VFA?: float(name='VFA'),
}(name='MuscleFat'),
nestedUrlList?: map[string]any(name='NestedUrlList', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/coronacases_org_001/1.2.112.92121.1.1689.19.2.2020040219072764787101585825****.dcm'),
predictCVD?: {
lesion?: {
CVDProbability?: double(name='CVDProbability'),
featureScore?: {
aortaCalciumScore?: [ double ](name='AortaCalciumScore'),
aortaCalciumVolume?: [ double ](name='AortaCalciumVolume'),
aortaMaxDiam?: [ double ](name='AortaMaxDiam'),
aortaMaxDiamStd?: [ double ](name='AortaMaxDiamStd'),
aorticHeightIndex?: [ double ](name='AorticHeightIndex'),
aorticTortuosityIndex?: [ double ](name='AorticTortuosityIndex'),
ascAoMaxDiam?: [ double ](name='AscAoMaxDiam'),
ascendAortaLength?: [ double ](name='AscendAortaLength'),
cardioThoracicRatio?: [ double ](name='CardioThoracicRatio'),
chestWidth?: [ double ](name='ChestWidth'),
coronaryCalciumScore?: [ double ](name='CoronaryCalciumScore'),
coronaryCalciumVol?: [ double ](name='CoronaryCalciumVol'),
deepFeature?: [ double ](name='DeepFeature'),
eatHUMean?: [ double ](name='EatHUMean'),
eatHUSTD?: [ double ](name='EatHUSTD'),
eatVolume?: [ double ](name='EatVolume'),
heartLongDiam?: [ double ](name='HeartLongDiam'),
heartShortDiam?: [ double ](name='HeartShortDiam'),
heartWidth?: [ double ](name='HeartWidth'),
leftLungHighattRatio?: [ double ](name='LeftLungHighattRatio'),
leftLungLowattRatio?: [ double ](name='LeftLungLowattRatio'),
myoEpiRatio?: [ double ](name='MyoEpiRatio'),
rightLungHighattRatio?: [ double ](name='RightLungHighattRatio'),
rightLungLowattRatio?: [ double ](name='RightLungLowattRatio'),
}(name='FeatureScore'),
imagesURL?: string(name='ImagesURL'),
resultURL?: [ string ](name='ResultURL'),
}(name='Lesion'),
seriesInstanceUid?: string(name='SeriesInstanceUid'),
}(name='PredictCVD'),
screenBC?: {
lesion?: {
left?: {
BCVolume?: string(name='BCVolume'),
breastVolume?: string(name='BreastVolume'),
probabilities?: [ string ](name='Probabilities'),
}(name='Left'),
lesionList?: [
{
diameter?: [ float ](name='Diameter'),
keySlice?: int32(name='KeySlice'),
ROIEndpoints?: [[ int32 ] ](name='ROIEndpoints'),
recistEndpoints?: [[ int32 ] ](name='RecistEndpoints'),
type?: string(name='Type'),
}
](name='LesionList'),
mask?: string(name='Mask'),
organList?: [
{
diameter?: [ float ](name='Diameter'),
keySlice?: int32(name='KeySlice'),
ROIEndpoints?: [[ int32 ] ](name='ROIEndpoints'),
recistEndpoints?: [[ int32 ] ](name='RecistEndpoints'),
type?: string(name='Type'),
}
](name='OrganList'),
right?: {
BCVolume?: string(name='BCVolume'),
breastVolume?: string(name='BreastVolume'),
probabilities?: [ string ](name='Probabilities'),
}(name='Right'),
}(name='Lesion'),
seriesInstanceUid?: string(name='SeriesInstanceUid'),
}(name='ScreenBC'),
screenCRC?: {
lesion?: {
colorectumVolume?: string(name='ColorectumVolume'),
lesionList?: [
{
diameter?: [ float ](name='Diameter'),
keySlice?: int32(name='KeySlice'),
ROIEndpoints?: [[ int32 ] ](name='ROIEndpoints'),
recistEndpoints?: [[ int32 ] ](name='RecistEndpoints'),
type?: string(name='Type'),
}
](name='LesionList'),
mask?: string(name='Mask'),
organList?: [
{
diameter?: [ float ](name='Diameter'),
keySlice?: int32(name='KeySlice'),
ROIEndpoints?: [[ int32 ] ](name='ROIEndpoints'),
recistEndpoints?: [[ int32 ] ](name='RecistEndpoints'),
type?: string(name='Type'),
}
](name='OrganList'),
probabilities?: [ string ](name='Probabilities'),
}(name='Lesion'),
seriesInstanceUid?: string(name='SeriesInstanceUid'),
}(name='ScreenCRC'),
screenEc?: {
lesion?: {
benignVolume?: string(name='BenignVolume'),
ecVolume?: string(name='EcVolume'),
egjVolume?: string(name='EgjVolume'),
esoVolume?: string(name='EsoVolume'),
lesionList?: [
{
diameter?: [ float ](name='Diameter'),
keySlice?: int32(name='KeySlice'),
ROIEndpoints?: [[ int32 ] ](name='ROIEndpoints'),
recistEndpoints?: [[ int32 ] ](name='RecistEndpoints'),
type?: string(name='Type'),
}
](name='LesionList'),
mask?: string(name='Mask'),
organList?: [
{
diameter?: [ float ](name='Diameter'),
keySlice?: int32(name='KeySlice'),
ROIEndpoints?: [[ int32 ] ](name='ROIEndpoints'),
recistEndpoints?: [[ int32 ] ](name='RecistEndpoints'),
type?: string(name='Type'),
}
](name='OrganList'),
possibilities?: [ string ](name='Possibilities'),
}(name='Lesion'),
seriesInstanceUid?: string(name='SeriesInstanceUid'),
}(name='ScreenEc'),
screenGC?: {
lesion?: {
GCVolume?: string(name='GCVolume'),
lesionList?: [
{
diameter?: [ float ](name='Diameter'),
keySlice?: int32(name='KeySlice'),
ROIEndpoints?: [[ int32 ] ](name='ROIEndpoints'),
recistEndpoints?: [[ int32 ] ](name='RecistEndpoints'),
type?: string(name='Type'),
}
](name='LesionList'),
mask?: string(name='Mask'),
nonGCVolume?: string(name='NonGCVolume'),
organList?: [
{
diameter?: [ float ](name='Diameter'),
keySlice?: int32(name='KeySlice'),
ROIEndpoints?: [[ int32 ] ](name='ROIEndpoints'),
recistEndpoints?: [[ int32 ] ](name='RecistEndpoints'),
type?: string(name='Type'),
}
](name='OrganList'),
probabilities?: [ string ](name='Probabilities'),
stomachVolume?: string(name='StomachVolume'),
}(name='Lesion'),
seriesInstanceUid?: string(name='SeriesInstanceUid'),
}(name='ScreenGC'),
screenLC?: {
lesion?: {
lesionList?: [
{
diameter?: [ float ](name='Diameter'),
keySlice?: long(name='KeySlice'),
malignancy?: float(name='Malignancy'),
recistEndpoints?: [ float ](name='RecistEndpoints'),
type?: string(name='Type'),
volume?: float(name='Volume'),
}
](name='LesionList'),
liverVolume?: string(name='LiverVolume'),
mask?: string(name='Mask'),
patientLevelResult?: {
benignNonCystProb?: string(name='BenignNonCystProb'),
cystProb?: string(name='CystProb'),
HCCProb?: string(name='HCCProb'),
malignantNonHCCProb?: string(name='MalignantNonHCCProb'),
}(name='PatientLevelResult'),
}(name='Lesion'),
seriesInstanceUid?: string(name='SeriesInstanceUid'),
}(name='ScreenLC'),
URLList?: map[string]any(name='URLList', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/coronacases_org_001/1.2.112.92121.1.1689.19.2.2020040219072764787101585825****.dcm'),
}(name='Data'),
message?: string(name='Message', example='imageUrl download failed'),
requestId?: string(name='RequestId', example='528B54D4-3AAB-47CF-B6CE-0C2A2FB4C7C2'),
}
model ScreenChestCTResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: ScreenChestCTResponseBody(name='body'),
}
/**
* @summary 胸部CT平扫
*
* @param request ScreenChestCTRequest
* @param runtime runtime options for this request RuntimeOptions
* @return ScreenChestCTResponse
*/
async function screenChestCTWithOptions(request: ScreenChestCTRequest, runtime: Util.RuntimeOptions): ScreenChestCTResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.mask)) {
body['Mask'] = request.mask;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
if (!Util.isUnset(request.verbose)) {
body['Verbose'] = request.verbose;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'ScreenChestCT',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 胸部CT平扫
*
* @param request ScreenChestCTRequest
* @return ScreenChestCTResponse
*/
async function screenChestCT(request: ScreenChestCTRequest): ScreenChestCTResponse {
var runtime = new Util.RuntimeOptions{};
return screenChestCTWithOptions(request, runtime);
}
async function screenChestCTAdvance(request: ScreenChestCTAdvanceRequest, runtime: Util.RuntimeOptions): ScreenChestCTResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var screenChestCTReq = new ScreenChestCTRequest{};
OpenApiUtil.convert(request, screenChestCTReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : ScreenChestCTRequest.URLList = screenChestCTReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var screenChestCTResp = screenChestCTWithOptions(screenChestCTReq, runtime);
return screenChestCTResp;
}
model ScreenECRequest {
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model ScreenECAdvanceRequest {
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model ScreenECResponseBody = {
data?: {
lesion?: {
benignVolume?: string(name='BenignVolume', example='0'),
ecVolume?: string(name='EcVolume', example='0'),
esoVolume?: string(name='EsoVolume', example='26814'),
mask?: string(name='Mask', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/screen-pdac/2022-05-25_14%3A33%3A30/4CA2BF25-BCDB-9C6C-B14C-EB41E8266588.nii.gz?Expires=1653462210&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&Signature=8t%2FknUrQyyyCU2p7QhMC%2BXBCR****'),
possibilities?: [ string ](name='Possibilities'),
}(name='Lesion'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='9B65AC8E-311A-1ED1-BBE6-6AA6D35D31A6'),
}
model ScreenECResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: ScreenECResponseBody(name='body'),
}
/**
* @summary 食管癌筛查
*
* @param request ScreenECRequest
* @param runtime runtime options for this request RuntimeOptions
* @return ScreenECResponse
*/
async function screenECWithOptions(request: ScreenECRequest, runtime: Util.RuntimeOptions): ScreenECResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataSourceType)) {
body['DataSourceType'] = request.dataSourceType;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'ScreenEC',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 食管癌筛查
*
* @param request ScreenECRequest
* @return ScreenECResponse
*/
async function screenEC(request: ScreenECRequest): ScreenECResponse {
var runtime = new Util.RuntimeOptions{};
return screenECWithOptions(request, runtime);
}
async function screenECAdvance(request: ScreenECAdvanceRequest, runtime: Util.RuntimeOptions): ScreenECResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var screenECReq = new ScreenECRequest{};
OpenApiUtil.convert(request, screenECReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : ScreenECRequest.URLList = screenECReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var screenECResp = screenECWithOptions(screenECReq, runtime);
return screenECResp;
}
model ScreenGCRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm'),
}
](name='URLList', description='This parameter is required.'),
}
model ScreenGCAdvanceRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm'),
}
](name='URLList', description='This parameter is required.'),
}
model ScreenGCResponseBody = {
data?: {
lesion?: {
GCVolume?: string(name='GCVolume', example='5.86'),
mask?: string(name='Mask', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/screen_gc/gc_11949981_stomach.nii.gz?Expires=1680678697&OSSAccessKeyId=LTAI4GC2dJzdf8ZvnC16****&Signature=EpKCTEPipWO0AiB3Uip85c%2BuMg****'),
nonGCVolume?: string(name='NonGCVolume', example='0.00'),
probabilities?: string(name='Probabilities', example='["0.1467", "0.8533", "0.0000"]'),
stomachVolume?: string(name='StomachVolume', example='508.79'),
}(name='Lesion'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='9B65AC8E-311A-1ED1-BBE6-6AA6D35D31A6'),
}
model ScreenGCResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: ScreenGCResponseBody(name='body'),
}
/**
* @summary 胃癌筛查
*
* @param request ScreenGCRequest
* @param runtime runtime options for this request RuntimeOptions
* @return ScreenGCResponse
*/
async function screenGCWithOptions(request: ScreenGCRequest, runtime: Util.RuntimeOptions): ScreenGCResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.dataSourceType)) {
body['DataSourceType'] = request.dataSourceType;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'ScreenGC',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 胃癌筛查
*
* @param request ScreenGCRequest
* @return ScreenGCResponse
*/
async function screenGC(request: ScreenGCRequest): ScreenGCResponse {
var runtime = new Util.RuntimeOptions{};
return screenGCWithOptions(request, runtime);
}
async function screenGCAdvance(request: ScreenGCAdvanceRequest, runtime: Util.RuntimeOptions): ScreenGCResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var screenGCReq = new ScreenGCRequest{};
OpenApiUtil.convert(request, screenGCReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : ScreenGCRequest.URLList = screenGCReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var screenGCResp = screenGCWithOptions(screenGCReq, runtime);
return screenGCResp;
}
model ScreenLCRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm'),
}
](name='URLList', description='This parameter is required.'),
}
model ScreenLCAdvanceRequest {
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
dataSourceType?: string(name='DataSourceType', description='This parameter is required.', example='HTTP_FILES'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.', example='https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm'),
}
](name='URLList', description='This parameter is required.'),
}
model ScreenLCResponseBody = {
data?: {
lesion?: {
lesionList?: [
{
diameter?: [ float ](name='Diameter'),
keySlice?: long(name='KeySlice', example='100'),
malignancy?: float(name='Malignancy', example='0.9375'),
recistEndpoints?: [ float ](name='RecistEndpoints'),
type?: string(name='Type', example='HCC'),
volume?: float(name='Volume', example='305.3661'),
}
](name='LesionList'),
liverVolume?: float(name='LiverVolume', example='1364.9468'),
mask?: string(name='Mask', example='20-050_0000.nii.gz'),
patientLevelResult?: {
benignNonCystProb?: string(name='BenignNonCystProb', example='0.0077'),
cystProb?: float(name='CystProb', example='0.9233'),
HCCProb?: float(name='HCCProb', example='0.9941'),
malignantNonHCCProb?: float(name='MalignantNonHCCProb', example='0.0073'),
}(name='PatientLevelResult'),
}(name='Lesion'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='473dbfb0-9cb7-e18e-450b-e4d0e4ce6c1c'),
}
model ScreenLCResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: ScreenLCResponseBody(name='body'),
}
/**
* @summary 肝癌筛查
*
* @param request ScreenLCRequest
* @param runtime runtime options for this request RuntimeOptions
* @return ScreenLCResponse
*/
async function screenLCWithOptions(request: ScreenLCRequest, runtime: Util.RuntimeOptions): ScreenLCResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.dataSourceType)) {
body['DataSourceType'] = request.dataSourceType;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'ScreenLC',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 肝癌筛查
*
* @param request ScreenLCRequest
* @return ScreenLCResponse
*/
async function screenLC(request: ScreenLCRequest): ScreenLCResponse {
var runtime = new Util.RuntimeOptions{};
return screenLCWithOptions(request, runtime);
}
async function screenLCAdvance(request: ScreenLCAdvanceRequest, runtime: Util.RuntimeOptions): ScreenLCResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var screenLCReq = new ScreenLCRequest{};
OpenApiUtil.convert(request, screenLCReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : ScreenLCRequest.URLList = screenLCReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var screenLCResp = screenLCWithOptions(screenLCReq, runtime);
return screenLCResp;
}
model SegmentLymphNodeRequest {
bodyPart?: string(name='BodyPart', description='This parameter is required.', example='CHEST'),
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
orgId?: string(name='OrgId', description='This parameter is required.', example='1'),
orgName?: string(name='OrgName', description='This parameter is required.', example='1'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model SegmentLymphNodeAdvanceRequest {
bodyPart?: string(name='BodyPart', description='This parameter is required.', example='CHEST'),
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
orgId?: string(name='OrgId', description='This parameter is required.', example='1'),
orgName?: string(name='OrgName', description='This parameter is required.', example='1'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model SegmentLymphNodeResponseBody = {
data?: {
resultURL?: string(name='ResultURL', example='http://vibktprfx-prod-prod-med-eas-cn-shanghai.oss-cn-shanghai.aliyuncs.com/seg-organ-ct/2023-03-06/18%3A03%3A28/286574099408093190.nii.gz?Expires=1678098808&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=jsPwP7rg4orZQFC6USE3JUOJcS****'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='B48DECE6-29FE-1967-92F1-2E072873851A'),
}
model SegmentLymphNodeResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: SegmentLymphNodeResponseBody(name='body'),
}
/**
* @summary 放疗淋巴站分割
*
* @param request SegmentLymphNodeRequest
* @param runtime runtime options for this request RuntimeOptions
* @return SegmentLymphNodeResponse
*/
async function segmentLymphNodeWithOptions(request: SegmentLymphNodeRequest, runtime: Util.RuntimeOptions): SegmentLymphNodeResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.bodyPart)) {
body['BodyPart'] = request.bodyPart;
}
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'SegmentLymphNode',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 放疗淋巴站分割
*
* @param request SegmentLymphNodeRequest
* @return SegmentLymphNodeResponse
*/
async function segmentLymphNode(request: SegmentLymphNodeRequest): SegmentLymphNodeResponse {
var runtime = new Util.RuntimeOptions{};
return segmentLymphNodeWithOptions(request, runtime);
}
async function segmentLymphNodeAdvance(request: SegmentLymphNodeAdvanceRequest, runtime: Util.RuntimeOptions): SegmentLymphNodeResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var segmentLymphNodeReq = new SegmentLymphNodeRequest{};
OpenApiUtil.convert(request, segmentLymphNodeReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : SegmentLymphNodeRequest.URLList = segmentLymphNodeReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var segmentLymphNodeResp = segmentLymphNodeWithOptions(segmentLymphNodeReq, runtime);
return segmentLymphNodeResp;
}
model SegmentOARRequest {
bodyPart?: string(name='BodyPart', example='CHEST'),
contrast?: boolean(name='Contrast', example='true'),
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='NIFTI'),
maskList?: [ long ](name='MaskList'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model SegmentOARAdvanceRequest {
bodyPart?: string(name='BodyPart', example='CHEST'),
contrast?: boolean(name='Contrast', example='true'),
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='NIFTI'),
maskList?: [ long ](name='MaskList'),
orgId?: string(name='OrgId', description='This parameter is required.', example='7ff51bfe-e73d-11ea-827d-506b4b3f3cf6'),
orgName?: string(name='OrgName', description='This parameter is required.'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model SegmentOARResponseBody = {
data?: {
maskList?: [ string ](name='MaskList'),
resultURL?: string(name='ResultURL', example='http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/calc-cacs/2020-09-29/2020-09-29-11%3A07%3A41-D74FE0DF-8F80-41EB-B08B-2E67053587EC.tar.gz?Expires=1601350661&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=iB16ms28Y5mzB11ghYUd7upCi4****'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='57784EDF-7322-1559-89C2-26A08570B26B'),
}
model SegmentOARResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: SegmentOARResponseBody(name='body'),
}
/**
* @summary 多器官分割
*
* @param request SegmentOARRequest
* @param runtime runtime options for this request RuntimeOptions
* @return SegmentOARResponse
*/
async function segmentOARWithOptions(request: SegmentOARRequest, runtime: Util.RuntimeOptions): SegmentOARResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.bodyPart)) {
body['BodyPart'] = request.bodyPart;
}
if (!Util.isUnset(request.contrast)) {
body['Contrast'] = request.contrast;
}
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.maskList)) {
body['MaskList'] = request.maskList;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'SegmentOAR',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 多器官分割
*
* @param request SegmentOARRequest
* @return SegmentOARResponse
*/
async function segmentOAR(request: SegmentOARRequest): SegmentOARResponse {
var runtime = new Util.RuntimeOptions{};
return segmentOARWithOptions(request, runtime);
}
async function segmentOARAdvance(request: SegmentOARAdvanceRequest, runtime: Util.RuntimeOptions): SegmentOARResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var segmentOARReq = new SegmentOARRequest{};
OpenApiUtil.convert(request, segmentOARReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : SegmentOARRequest.URLList = segmentOARReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var segmentOARResp = segmentOARWithOptions(segmentOARReq, runtime);
return segmentOARResp;
}
model TargetVolumeSegmentRequest {
cancerType?: string(name='CancerType', description='This parameter is required.', example='LUNG'),
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
orgId?: string(name='OrgId', description='This parameter is required.', example='1'),
orgName?: string(name='OrgName', description='This parameter is required.', example='1'),
targetVolumeType?: string(name='TargetVolumeType', description='This parameter is required.', example='GTV'),
URLList?: [
{
URL?: string(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model TargetVolumeSegmentAdvanceRequest {
cancerType?: string(name='CancerType', description='This parameter is required.', example='LUNG'),
dataFormat?: string(name='DataFormat', description='This parameter is required.', example='DICOM'),
orgId?: string(name='OrgId', description='This parameter is required.', example='1'),
orgName?: string(name='OrgName', description='This parameter is required.', example='1'),
targetVolumeType?: string(name='TargetVolumeType', description='This parameter is required.', example='GTV'),
URLList?: [
{
URLObject?: readable(name='URL', description='This parameter is required.'),
}
](name='URLList', description='This parameter is required.'),
}
model TargetVolumeSegmentResponseBody = {
data?: {
resultURL?: string(name='ResultURL', example='http://vibktprfx-prod-prod-med-eas-cn-shanghai.oss-cn-shanghai.aliyuncs.com/seg-organ-ct/2023-01-31/13%3A59%3A57/286304994262646784.nii.gz?Expires=1675146629&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=L7jGtdydjfaFxQQCwqe4q4hlHz****'),
}(name='Data'),
message?: string(name='Message'),
requestId?: string(name='RequestId', example='6cc7232e-d38b-4dda-b86d-6e0e31704fa1'),
}
model TargetVolumeSegmentResponse = {
headers?: map[string]string(name='headers'),
statusCode?: int32(name='statusCode'),
body?: TargetVolumeSegmentResponseBody(name='body'),
}
/**
* @summary 放疗靶区勾画算法
*
* @param request TargetVolumeSegmentRequest
* @param runtime runtime options for this request RuntimeOptions
* @return TargetVolumeSegmentResponse
*/
async function targetVolumeSegmentWithOptions(request: TargetVolumeSegmentRequest, runtime: Util.RuntimeOptions): TargetVolumeSegmentResponse {
Util.validateModel(request);
var body : map[string]any = {};
if (!Util.isUnset(request.cancerType)) {
body['CancerType'] = request.cancerType;
}
if (!Util.isUnset(request.dataFormat)) {
body['DataFormat'] = request.dataFormat;
}
if (!Util.isUnset(request.orgId)) {
body['OrgId'] = request.orgId;
}
if (!Util.isUnset(request.orgName)) {
body['OrgName'] = request.orgName;
}
if (!Util.isUnset(request.targetVolumeType)) {
body['TargetVolumeType'] = request.targetVolumeType;
}
if (!Util.isUnset(request.URLList)) {
body['URLList'] = request.URLList;
}
var req = new OpenApi.OpenApiRequest{
body = OpenApiUtil.parseToMap(body),
};
var params = new OpenApi.Params{
action = 'TargetVolumeSegment',
version = '2020-03-20',
protocol = 'HTTPS',
pathname = '/',
method = 'POST',
authType = 'AK',
style = 'RPC',
reqBodyType = 'formData',
bodyType = 'json',
};
if (Util.isUnset(@signatureVersion) || !Util.equalString(@signatureVersion, 'v4')) {
return callApi(params, req, runtime);
} else {
return execute(params, req, runtime);
}
}
/**
* @summary 放疗靶区勾画算法
*
* @param request TargetVolumeSegmentRequest
* @return TargetVolumeSegmentResponse
*/
async function targetVolumeSegment(request: TargetVolumeSegmentRequest): TargetVolumeSegmentResponse {
var runtime = new Util.RuntimeOptions{};
return targetVolumeSegmentWithOptions(request, runtime);
}
async function targetVolumeSegmentAdvance(request: TargetVolumeSegmentAdvanceRequest, runtime: Util.RuntimeOptions): TargetVolumeSegmentResponse {
// Step 0: init client
var accessKeyId = @credential.getAccessKeyId();
var accessKeySecret = @credential.getAccessKeySecret();
var securityToken = @credential.getSecurityToken();
var credentialType = @credential.getType();
var openPlatformEndpoint = @openPlatformEndpoint;
if(Util.empty(openPlatformEndpoint)) {
openPlatformEndpoint ='openplatform.aliyuncs.com';
}
if(Util.isUnset(credentialType)) {
credentialType ='access_key';
}
var authConfig = new OpenApi.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
securityToken = securityToken,
type = credentialType,
endpoint = openPlatformEndpoint,
protocol = @protocol,
regionId = @regionId,
};
var authClient = new OpenPlatform(authConfig);
var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{
product = 'imageprocess',
regionId = @regionId,
};
var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{};
var ossConfig = new OSS.Config{
accessKeyId = accessKeyId,
accessKeySecret = accessKeySecret,
type = 'access_key',
protocol = @protocol,
regionId = @regionId,
};
var ossClient : OSS = new OSS(ossConfig);
var fileObj = new FileForm.FileField{};
var ossHeader = new OSS.PostObjectRequest.header{};
var uploadRequest = new OSS.PostObjectRequest{};
var ossRuntime = new OSSUtil.RuntimeOptions{};
OpenApiUtil.convert(runtime, ossRuntime);
var targetVolumeSegmentReq = new TargetVolumeSegmentRequest{};
OpenApiUtil.convert(request, targetVolumeSegmentReq);
if(!Util.isUnset(request.URLList)) {
var i0 : integer = 0;
for (var item0 : request.URLList) {
if(!Util.isUnset(item0.URLObject)) {
authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime);
ossConfig.accessKeyId = authResponse.body.accessKeyId;
ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType);
ossClient = new OSS(ossConfig);
fileObj = new FileForm.FileField{
filename = authResponse.body.objectKey,
content = item0.URLObject,
contentType = '',
};
ossHeader = new OSS.PostObjectRequest.header{
accessKeyId = authResponse.body.accessKeyId,
policy = authResponse.body.encodedPolicy,
signature = authResponse.body.signature,
key = authResponse.body.objectKey,
file = fileObj,
successActionStatus = '201',
};
uploadRequest = new OSS.PostObjectRequest{
bucketName = authResponse.body.bucket,
header = ossHeader,
};
ossClient.postObject(uploadRequest, ossRuntime);
var tmp : TargetVolumeSegmentRequest.URLList = targetVolumeSegmentReq.URLList[i0];
tmp.URL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`;
i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1)));
}
}
}
var targetVolumeSegmentResp = targetVolumeSegmentWithOptions(targetVolumeSegmentReq, runtime);
return targetVolumeSegmentResp;
}