import 'liveConsultation.m.dart'; import 'package:fis_jsonrpc/utils.dart'; class AIDiagnosisRect { int right; int bottom; int left; int top; int width; int height; AIDiagnosisRect({ this.right = 0, this.bottom = 0, this.left = 0, this.top = 0, this.width = 0, this.height = 0, }); factory AIDiagnosisRect.fromJson(Map map) { return AIDiagnosisRect( right: map['Right'], bottom: map['Bottom'], left: map['Left'], top: map['Top'], width: map['Width'], height: map['Height'], ); } Map toJson() { final map = Map(); map['Right'] = right; map['Bottom'] = bottom; map['Left'] = left; map['Top'] = top; map['Width'] = width; map['Height'] = height; return map; } } class AIDiagnosisPoint2D { int x; int y; AIDiagnosisPoint2D({ this.x = 0, this.y = 0, }); factory AIDiagnosisPoint2D.fromJson(Map map) { return AIDiagnosisPoint2D( x: map['X'], y: map['Y'], ); } Map toJson() { final map = Map(); map['X'] = x; map['Y'] = y; return map; } } enum DiagnosisDescriptionEnum { Shape, Orientation, EchoPattern, LesionBoundary, Margin, Calcification, LesionSize, ThyroidEchoPattern, ThyroidShape, ThyroidMargin, ThyroidEchogenicFoci, LiverShape, LiverBoundary, LiverEchoTexture, QlaqueEchoPattern, QlaqueLocation, CarotidRateOfStenosis, CarotidInnerDiameter, CarotidIntimaMediaThickness, } class AIDiagnosisDescription { DiagnosisDescriptionEnum type; String? value; AIDiagnosisDescription({ this.type = DiagnosisDescriptionEnum.Shape, this.value, }); factory AIDiagnosisDescription.fromJson(Map map) { return AIDiagnosisDescription( type: DiagnosisDescriptionEnum.values.firstWhere((e) => e.index == map['Type']), value: map['Value'], ); } Map toJson() { final map = Map(); map['Type'] = type.index; if (value != null) { map['Value'] = value; } return map; } } class AIDetectedObject { int label; double confidence; AIDiagnosisRect? boundingBox; List? contours; List? descriptions; AIDetectedObject({ this.label = 0, this.confidence = 0, this.boundingBox, this.contours, this.descriptions, }); factory AIDetectedObject.fromJson(Map map) { return AIDetectedObject( label: map['Label'], confidence: double.parse(map['Confidence'].toString()), boundingBox: map['BoundingBox'] != null ? AIDiagnosisRect.fromJson(map['BoundingBox']) : null, contours: map['Contours'] != null ? (map['Contours'] as List).map((e)=>AIDiagnosisPoint2D.fromJson(e as Map)).toList() : null, descriptions: map['Descriptions'] != null ? (map['Descriptions'] as List).map((e)=>AIDiagnosisDescription.fromJson(e as Map)).toList() : null, ); } Map toJson() { final map = Map(); map['Label'] = label; map['Confidence'] = confidence; if (boundingBox != null) { map['BoundingBox'] = boundingBox; } if (contours != null) { map['Contours'] = contours; } if (descriptions != null) { map['Descriptions'] = descriptions; } return map; } } class AIDiagnosisResultPerOrgan { DiagnosisOrganEnum organ; AIDiagnosisRect? organBoundBox; List? organContours; List? organDescriptions; List? detectedObjects; AIDiagnosisResultPerOrgan({ this.organ = DiagnosisOrganEnum.Null, this.organBoundBox, this.organContours, this.organDescriptions, this.detectedObjects, }); factory AIDiagnosisResultPerOrgan.fromJson(Map map) { return AIDiagnosisResultPerOrgan( organ: DiagnosisOrganEnum.values.firstWhere((e) => e.index == map['Organ']), organBoundBox: map['OrganBoundBox'] != null ? AIDiagnosisRect.fromJson(map['OrganBoundBox']) : null, organContours: map['OrganContours'] != null ? (map['OrganContours'] as List).map((e)=>AIDiagnosisPoint2D.fromJson(e as Map)).toList() : null, organDescriptions: map['OrganDescriptions'] != null ? (map['OrganDescriptions'] as List).map((e)=>AIDiagnosisDescription.fromJson(e as Map)).toList() : null, detectedObjects: map['DetectedObjects'] != null ? (map['DetectedObjects'] as List).map((e)=>AIDetectedObject.fromJson(e as Map)).toList() : null, ); } Map toJson() { final map = Map(); map['Organ'] = organ.index; if (organBoundBox != null) { map['OrganBoundBox'] = organBoundBox; } if (organContours != null) { map['OrganContours'] = organContours; } if (organDescriptions != null) { map['OrganDescriptions'] = organDescriptions; } if (detectedObjects != null) { map['DetectedObjects'] = detectedObjects; } return map; } } class AIDiagnosisPerImageDTO { int index; double priorityScore; List? diagResultsForEachOrgan; AIDiagnosisPerImageDTO({ this.index = 0, this.priorityScore = 0, this.diagResultsForEachOrgan, }); factory AIDiagnosisPerImageDTO.fromJson(Map map) { return AIDiagnosisPerImageDTO( index: map['Index'], priorityScore: double.parse(map['PriorityScore'].toString()), diagResultsForEachOrgan: map['DiagResultsForEachOrgan'] != null ? (map['DiagResultsForEachOrgan'] as List).map((e)=>AIDiagnosisResultPerOrgan.fromJson(e as Map)).toList() : null, ); } Map toJson() { final map = Map(); map['Index'] = index; map['PriorityScore'] = priorityScore; if (diagResultsForEachOrgan != null) { map['DiagResultsForEachOrgan'] = diagResultsForEachOrgan; } return map; } } class DiagnosisImageResult { DiagnosisConclusionEnum diagnosisConclusion; List? diagnosisResult; List? diagnosisOrgans; CarotidResultDTO? carotidResult; DiagnosisImageResult({ this.diagnosisConclusion = DiagnosisConclusionEnum.NotRequired, this.diagnosisResult, this.diagnosisOrgans, this.carotidResult, }); factory DiagnosisImageResult.fromJson(Map map) { return DiagnosisImageResult( diagnosisConclusion: DiagnosisConclusionEnum.values.firstWhere((e) => e.index == map['DiagnosisConclusion']), diagnosisResult: map['DiagnosisResult'] != null ? (map['DiagnosisResult'] as List).map((e)=>AIDiagnosisPerImageDTO.fromJson(e as Map)).toList() : null, diagnosisOrgans: map['DiagnosisOrgans'] != null ? (map['DiagnosisOrgans'] as List).map((e)=>DiagnosisOrganEnum.values.firstWhere((i) => i.index == e)).toList() : null, carotidResult: map['CarotidResult'] != null ? CarotidResultDTO.fromJson(map['CarotidResult']) : null, ); } Map toJson() { final map = Map(); map['DiagnosisConclusion'] = diagnosisConclusion.index; if (diagnosisResult != null) { map['DiagnosisResult'] = diagnosisResult; } if (diagnosisOrgans != null) { map['DiagnosisOrgans'] = diagnosisOrgans; } if (carotidResult != null) { map['CarotidResult'] = carotidResult; } return map; } } class DiagnosisImageRequest extends TokenRequest{ String? fileToken; String? diskPath; String? relationCode; DiagnosisImageRequest({ this.fileToken, this.diskPath, this.relationCode, String? token, }) : super( token: token, ); factory DiagnosisImageRequest.fromJson(Map map) { return DiagnosisImageRequest( fileToken: map['FileToken'], diskPath: map['DiskPath'], relationCode: map['RelationCode'], token: map['Token'], ); } Map toJson() { final map = super.toJson(); if (fileToken != null) map['FileToken'] = fileToken; if (diskPath != null) map['DiskPath'] = diskPath; if (relationCode != null) map['RelationCode'] = relationCode; return map; } } class GetDiagnosisImageResultByAIResultRequest { String? fileUrl; String? relationCode; DateTime? createTime; DateTime? updateTime; String? aiResult; GetDiagnosisImageResultByAIResultRequest({ this.fileUrl, this.relationCode, this.createTime, this.updateTime, this.aiResult, }); factory GetDiagnosisImageResultByAIResultRequest.fromJson(Map map) { return GetDiagnosisImageResultByAIResultRequest( fileUrl: map['FileUrl'], relationCode: map['RelationCode'], createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null, updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null, aiResult: map['AiResult'], ); } Map toJson() { final map = Map(); if (fileUrl != null) { map['FileUrl'] = fileUrl; } if (relationCode != null) { map['RelationCode'] = relationCode; } if (createTime != null) { map['CreateTime'] = JsonRpcUtils.dateFormat(createTime!); } if (updateTime != null) { map['UpdateTime'] = JsonRpcUtils.dateFormat(updateTime!); } if (aiResult != null) { map['AiResult'] = aiResult; } return map; } } class GetCarotidResultRequest { String? remedicalCode; String? surfaceToken; String? mdlToken; CarotidScanTypeEnum carotidScanType; CarotidScanDirectionEnum carotidScanDirection; List? measureImageFiles; String? measureResult; GetCarotidResultRequest({ this.remedicalCode, this.surfaceToken, this.mdlToken, this.carotidScanType = CarotidScanTypeEnum.CarotidLeft, this.carotidScanDirection = CarotidScanDirectionEnum.TopToBottom, this.measureImageFiles, this.measureResult, }); factory GetCarotidResultRequest.fromJson(Map map) { return GetCarotidResultRequest( remedicalCode: map['RemedicalCode'], surfaceToken: map['SurfaceToken'], mdlToken: map['MdlToken'], carotidScanType: CarotidScanTypeEnum.values.firstWhere((e) => e.index == map['CarotidScanType']), carotidScanDirection: CarotidScanDirectionEnum.values.firstWhere((e) => e.index == map['CarotidScanDirection']), measureImageFiles: map['MeasureImageFiles'] != null ? (map['MeasureImageFiles'] as List).map((e)=>MeasureImageFileDTO.fromJson(e as Map)).toList() : null, measureResult: map['MeasureResult'], ); } Map toJson() { final map = Map(); if (remedicalCode != null) { map['RemedicalCode'] = remedicalCode; } if (surfaceToken != null) { map['SurfaceToken'] = surfaceToken; } if (mdlToken != null) { map['MdlToken'] = mdlToken; } map['CarotidScanType'] = carotidScanType.index; map['CarotidScanDirection'] = carotidScanDirection.index; if (measureImageFiles != null) { map['MeasureImageFiles'] = measureImageFiles; } if (measureResult != null) { map['MeasureResult'] = measureResult; } return map; } } class CreateCarotidSurfaceImagesResult { List? surfaceImages; CreateCarotidSurfaceImagesResult({ this.surfaceImages, }); factory CreateCarotidSurfaceImagesResult.fromJson(Map map) { return CreateCarotidSurfaceImagesResult( surfaceImages: map['SurfaceImages']?.cast().toList(), ); } Map toJson() { final map = Map(); if (surfaceImages != null) { map['SurfaceImages'] = surfaceImages; } return map; } } class CreateCarotidSurfaceImagesRequest { String? surfaceFileUrl; CreateCarotidSurfaceImagesRequest({ this.surfaceFileUrl, }); factory CreateCarotidSurfaceImagesRequest.fromJson(Map map) { return CreateCarotidSurfaceImagesRequest( surfaceFileUrl: map['SurfaceFileUrl'], ); } Map toJson() { final map = Map(); if (surfaceFileUrl != null) { map['SurfaceFileUrl'] = surfaceFileUrl; } return map; } } class DiagnosisPerImageDTO extends AIDiagnosisPerImageDTO{ String? remedicalCode; RemedicalFileDataTypeEnum dataType; double pixel; String? remedicalFileToken; String? aIFileToken; String? aIPreviewFileToken; String? perImageJson; DiagnosisConclusionEnum diagnosisConclusion; List? diagnosisOrgans; DiagnosisPerImageDTO({ this.remedicalCode, this.dataType = RemedicalFileDataTypeEnum.VinnoVidSingle, this.pixel = 0, this.remedicalFileToken, this.aIFileToken, this.aIPreviewFileToken, this.perImageJson, this.diagnosisConclusion = DiagnosisConclusionEnum.NotRequired, this.diagnosisOrgans, int index = 0, double priorityScore = 0, List? diagResultsForEachOrgan, }) : super( index: index, priorityScore: priorityScore, diagResultsForEachOrgan: diagResultsForEachOrgan, ); factory DiagnosisPerImageDTO.fromJson(Map map) { return DiagnosisPerImageDTO( remedicalCode: map['RemedicalCode'], dataType: RemedicalFileDataTypeEnum.values.firstWhere((e) => e.index == map['DataType']), pixel: double.parse(map['Pixel'].toString()), remedicalFileToken: map['RemedicalFileToken'], aIFileToken: map['AIFileToken'], aIPreviewFileToken: map['AIPreviewFileToken'], perImageJson: map['PerImageJson'], diagnosisConclusion: DiagnosisConclusionEnum.values.firstWhere((e) => e.index == map['DiagnosisConclusion']), diagnosisOrgans: map['DiagnosisOrgans'] != null ? (map['DiagnosisOrgans'] as List).map((e)=>DiagnosisOrganEnum.values.firstWhere((i) => i.index == e)).toList() : null, index: map['Index'], priorityScore: double.parse(map['PriorityScore'].toString()), diagResultsForEachOrgan: map['DiagResultsForEachOrgan'] != null ? (map['DiagResultsForEachOrgan'] as List).map((e)=>AIDiagnosisResultPerOrgan.fromJson(e as Map)).toList() : null, ); } Map toJson() { final map = super.toJson(); if (remedicalCode != null) map['RemedicalCode'] = remedicalCode; map['DataType'] = dataType.index; map['Pixel'] = pixel; if (remedicalFileToken != null) map['RemedicalFileToken'] = remedicalFileToken; if (aIFileToken != null) map['AIFileToken'] = aIFileToken; if (aIPreviewFileToken != null) map['AIPreviewFileToken'] = aIPreviewFileToken; if (perImageJson != null) map['PerImageJson'] = perImageJson; map['DiagnosisConclusion'] = diagnosisConclusion.index; if (diagnosisOrgans != null) map['DiagnosisOrgans'] = diagnosisOrgans; return map; } } class DiagnosisRemicalDTO { String? remedicalCode; RemedicalFileDataTypeEnum dataType; String? fileToken; List? diagnosisResult; CarotidResultDTO? carotidResult; DiagnosisRemicalDTO({ this.remedicalCode, this.dataType = RemedicalFileDataTypeEnum.VinnoVidSingle, this.fileToken, this.diagnosisResult, this.carotidResult, }); factory DiagnosisRemicalDTO.fromJson(Map map) { return DiagnosisRemicalDTO( remedicalCode: map['RemedicalCode'], dataType: RemedicalFileDataTypeEnum.values.firstWhere((e) => e.index == map['DataType']), fileToken: map['FileToken'], diagnosisResult: map['DiagnosisResult'] != null ? (map['DiagnosisResult'] as List).map((e)=>AIDiagnosisPerImageDTO.fromJson(e as Map)).toList() : null, carotidResult: map['CarotidResult'] != null ? CarotidResultDTO.fromJson(map['CarotidResult']) : null, ); } Map toJson() { final map = Map(); if (remedicalCode != null) { map['RemedicalCode'] = remedicalCode; } map['DataType'] = dataType.index; if (fileToken != null) { map['FileToken'] = fileToken; } if (diagnosisResult != null) { map['DiagnosisResult'] = diagnosisResult; } if (carotidResult != null) { map['CarotidResult'] = carotidResult; } return map; } } class DiagnosisReportResult { DiagnosisConclusionEnum diagnosisConclusion; List? diagnosisResult; List? carotidResult; List? carotidItems; DiagnosisReportResult({ this.diagnosisConclusion = DiagnosisConclusionEnum.NotRequired, this.diagnosisResult, this.carotidResult, this.carotidItems, }); factory DiagnosisReportResult.fromJson(Map map) { return DiagnosisReportResult( diagnosisConclusion: DiagnosisConclusionEnum.values.firstWhere((e) => e.index == map['DiagnosisConclusion']), diagnosisResult: map['DiagnosisResult'] != null ? (map['DiagnosisResult'] as List).map((e)=>DiagnosisPerImageDTO.fromJson(e as Map)).toList() : null, carotidResult: map['CarotidResult'] != null ? (map['CarotidResult'] as List).map((e)=>DiagnosisRemicalDTO.fromJson(e as Map)).toList() : null, carotidItems: map['CarotidItems'] != null ? (map['CarotidItems'] as List).map((e)=>DataItemDTO.fromJson(e as Map)).toList() : null, ); } Map toJson() { final map = Map(); map['DiagnosisConclusion'] = diagnosisConclusion.index; if (diagnosisResult != null) { map['DiagnosisResult'] = diagnosisResult; } if (carotidResult != null) { map['CarotidResult'] = carotidResult; } if (carotidItems != null) { map['CarotidItems'] = carotidItems; } return map; } } class DiagnosisReportRequest extends TokenRequest{ DiagnosisOrganEnum organ; List? remedicalList; DiagnosisReportRequest({ this.organ = DiagnosisOrganEnum.Null, this.remedicalList, String? token, }) : super( token: token, ); factory DiagnosisReportRequest.fromJson(Map map) { return DiagnosisReportRequest( organ: DiagnosisOrganEnum.values.firstWhere((e) => e.index == map['Organ']), remedicalList: map['RemedicalList'] != null ? (map['RemedicalList'] as List).map((e)=>DiagnosisRemicalDTO.fromJson(e as Map)).toList() : null, token: map['Token'], ); } Map toJson() { final map = super.toJson(); map['Organ'] = organ.index; if (remedicalList != null) map['RemedicalList'] = remedicalList; return map; } } class GetDiagnosisConclusionResult { DiagnosisConclusionEnum diagnosisConclusion; List? diagnosisOrgans; GetDiagnosisConclusionResult({ this.diagnosisConclusion = DiagnosisConclusionEnum.NotRequired, this.diagnosisOrgans, }); factory GetDiagnosisConclusionResult.fromJson(Map map) { return GetDiagnosisConclusionResult( diagnosisConclusion: DiagnosisConclusionEnum.values.firstWhere((e) => e.index == map['DiagnosisConclusion']), diagnosisOrgans: map['DiagnosisOrgans'] != null ? (map['DiagnosisOrgans'] as List).map((e)=>DiagnosisOrganEnum.values.firstWhere((i) => i.index == e)).toList() : null, ); } Map toJson() { final map = Map(); map['DiagnosisConclusion'] = diagnosisConclusion.index; if (diagnosisOrgans != null) { map['DiagnosisOrgans'] = diagnosisOrgans; } return map; } } class GetDiagnosisConclusionRequest extends TokenRequest{ String? perImageJson; GetDiagnosisConclusionRequest({ this.perImageJson, String? token, }) : super( token: token, ); factory GetDiagnosisConclusionRequest.fromJson(Map map) { return GetDiagnosisConclusionRequest( perImageJson: map['PerImageJson'], token: map['Token'], ); } Map toJson() { final map = super.toJson(); if (perImageJson != null) map['PerImageJson'] = perImageJson; return map; } } class EnumFieldDTO { int id; String? value; EnumFieldDTO({ this.id = 0, this.value, }); factory EnumFieldDTO.fromJson(Map map) { return EnumFieldDTO( id: map['Id'], value: map['Value'], ); } Map toJson() { final map = Map(); map['Id'] = id; if (value != null) { map['Value'] = value; } return map; } } class EnumItemDTO { String? code; List? children; EnumItemDTO({ this.code, this.children, }); factory EnumItemDTO.fromJson(Map map) { return EnumItemDTO( code: map['Code'], children: map['Children'] != null ? (map['Children'] as List).map((e)=>EnumFieldDTO.fromJson(e as Map)).toList() : null, ); } Map toJson() { final map = Map(); if (code != null) { map['Code'] = code; } if (children != null) { map['Children'] = children; } return map; } } class GetDiagnosisEnumItemsResult { List? source; GetDiagnosisEnumItemsResult({ this.source, }); factory GetDiagnosisEnumItemsResult.fromJson(Map map) { return GetDiagnosisEnumItemsResult( source: map['Source'] != null ? (map['Source'] as List).map((e)=>EnumItemDTO.fromJson(e as Map)).toList() : null, ); } Map toJson() { final map = Map(); if (source != null) { map['Source'] = source; } return map; } } class GetDiagnosisEnumItemsRequest extends TokenRequest{ GetDiagnosisEnumItemsRequest({ String? token, }) : super( token: token, ); factory GetDiagnosisEnumItemsRequest.fromJson(Map map) { return GetDiagnosisEnumItemsRequest( token: map['Token'], ); } Map toJson() { final map = super.toJson(); return map; } } enum DiagnosisKeyPointType { Null, OtherKeyPoints, HorizontalPointLeft, HorizontalPointRight, VerticalPointUp, VerticalPointDown, } class DiagnosisKeyPointDTO { DiagnosisKeyPointType type; AIDiagnosisPoint2D? point; int indexInContour; DiagnosisKeyPointDTO({ this.type = DiagnosisKeyPointType.Null, this.point, this.indexInContour = 0, }); factory DiagnosisKeyPointDTO.fromJson(Map map) { return DiagnosisKeyPointDTO( type: DiagnosisKeyPointType.values.firstWhere((e) => e.index == map['Type']), point: map['Point'] != null ? AIDiagnosisPoint2D.fromJson(map['Point']) : null, indexInContour: map['IndexInContour'], ); } Map toJson() { final map = Map(); map['Type'] = type.index; if (point != null) { map['Point'] = point; } map['IndexInContour'] = indexInContour; return map; } } class AIDiagnosisLesionSize { AIDiagnosisPoint2D? horizontalPoint1; AIDiagnosisPoint2D? horizontalPoint2; AIDiagnosisPoint2D? verticalPoint1; AIDiagnosisPoint2D? verticalPoint2; int horizontalLengthInPixel; int verticalLengthInPixel; AIDiagnosisLesionSize({ this.horizontalPoint1, this.horizontalPoint2, this.verticalPoint1, this.verticalPoint2, this.horizontalLengthInPixel = 0, this.verticalLengthInPixel = 0, }); factory AIDiagnosisLesionSize.fromJson(Map map) { return AIDiagnosisLesionSize( horizontalPoint1: map['HorizontalPoint1'] != null ? AIDiagnosisPoint2D.fromJson(map['HorizontalPoint1']) : null, horizontalPoint2: map['HorizontalPoint2'] != null ? AIDiagnosisPoint2D.fromJson(map['HorizontalPoint2']) : null, verticalPoint1: map['VerticalPoint1'] != null ? AIDiagnosisPoint2D.fromJson(map['VerticalPoint1']) : null, verticalPoint2: map['VerticalPoint2'] != null ? AIDiagnosisPoint2D.fromJson(map['VerticalPoint2']) : null, horizontalLengthInPixel: map['HorizontalLengthInPixel'], verticalLengthInPixel: map['VerticalLengthInPixel'], ); } Map toJson() { final map = Map(); if (horizontalPoint1 != null) { map['HorizontalPoint1'] = horizontalPoint1; } if (horizontalPoint2 != null) { map['HorizontalPoint2'] = horizontalPoint2; } if (verticalPoint1 != null) { map['VerticalPoint1'] = verticalPoint1; } if (verticalPoint2 != null) { map['VerticalPoint2'] = verticalPoint2; } map['HorizontalLengthInPixel'] = horizontalLengthInPixel; map['VerticalLengthInPixel'] = verticalLengthInPixel; return map; } } class GetKeyPointsOfContourRequest extends TokenRequest{ List? contours; AIDiagnosisLesionSize? lesionSize; GetKeyPointsOfContourRequest({ this.contours, this.lesionSize, String? token, }) : super( token: token, ); factory GetKeyPointsOfContourRequest.fromJson(Map map) { return GetKeyPointsOfContourRequest( contours: map['Contours'] != null ? (map['Contours'] as List).map((e)=>AIDiagnosisPoint2D.fromJson(e as Map)).toList() : null, lesionSize: map['LesionSize'] != null ? AIDiagnosisLesionSize.fromJson(map['LesionSize']) : null, token: map['Token'], ); } Map toJson() { final map = super.toJson(); if (contours != null) map['Contours'] = contours; if (lesionSize != null) map['LesionSize'] = lesionSize; return map; } } class AffectedKeyPointsByDragActionRequest extends TokenRequest{ List? keyPoints; AIDiagnosisPoint2D? mousePoint; AffectedKeyPointsByDragActionRequest({ this.keyPoints, this.mousePoint, String? token, }) : super( token: token, ); factory AffectedKeyPointsByDragActionRequest.fromJson(Map map) { return AffectedKeyPointsByDragActionRequest( keyPoints: map['KeyPoints'] != null ? (map['KeyPoints'] as List).map((e)=>DiagnosisKeyPointDTO.fromJson(e as Map)).toList() : null, mousePoint: map['MousePoint'] != null ? AIDiagnosisPoint2D.fromJson(map['MousePoint']) : null, token: map['Token'], ); } Map toJson() { final map = super.toJson(); if (keyPoints != null) map['KeyPoints'] = keyPoints; if (mousePoint != null) map['MousePoint'] = mousePoint; return map; } } class ContourAndKeyPointsAfterDragResult { List? dstContours; List? dstKeyPoints; List? affectedKeyPointIndexes; ContourAndKeyPointsAfterDragResult({ this.dstContours, this.dstKeyPoints, this.affectedKeyPointIndexes, }); factory ContourAndKeyPointsAfterDragResult.fromJson(Map map) { return ContourAndKeyPointsAfterDragResult( dstContours: map['DstContours'] != null ? (map['DstContours'] as List).map((e)=>AIDiagnosisPoint2D.fromJson(e as Map)).toList() : null, dstKeyPoints: map['DstKeyPoints'] != null ? (map['DstKeyPoints'] as List).map((e)=>DiagnosisKeyPointDTO.fromJson(e as Map)).toList() : null, affectedKeyPointIndexes: map['AffectedKeyPointIndexes']?.cast().toList(), ); } Map toJson() { final map = Map(); if (dstContours != null) { map['DstContours'] = dstContours; } if (dstKeyPoints != null) { map['DstKeyPoints'] = dstKeyPoints; } if (affectedKeyPointIndexes != null) { map['AffectedKeyPointIndexes'] = affectedKeyPointIndexes; } return map; } } class ContourAndKeyPointsAfterDragRequest extends TokenRequest{ List? contours; List? keyPoints; AIDiagnosisPoint2D? startPoint; AIDiagnosisPoint2D? endPoint; ContourAndKeyPointsAfterDragRequest({ this.contours, this.keyPoints, this.startPoint, this.endPoint, String? token, }) : super( token: token, ); factory ContourAndKeyPointsAfterDragRequest.fromJson(Map map) { return ContourAndKeyPointsAfterDragRequest( contours: map['Contours'] != null ? (map['Contours'] as List).map((e)=>AIDiagnosisPoint2D.fromJson(e as Map)).toList() : null, keyPoints: map['KeyPoints'] != null ? (map['KeyPoints'] as List).map((e)=>DiagnosisKeyPointDTO.fromJson(e as Map)).toList() : null, startPoint: map['StartPoint'] != null ? AIDiagnosisPoint2D.fromJson(map['StartPoint']) : null, endPoint: map['EndPoint'] != null ? AIDiagnosisPoint2D.fromJson(map['EndPoint']) : null, token: map['Token'], ); } Map toJson() { final map = super.toJson(); if (contours != null) map['Contours'] = contours; if (keyPoints != null) map['KeyPoints'] = keyPoints; if (startPoint != null) map['StartPoint'] = startPoint; if (endPoint != null) map['EndPoint'] = endPoint; return map; } } class MinimumDistanceToContourPointsResult { double distanceCaught; int closestPointIndex; MinimumDistanceToContourPointsResult({ this.distanceCaught = 0, this.closestPointIndex = 0, }); factory MinimumDistanceToContourPointsResult.fromJson(Map map) { return MinimumDistanceToContourPointsResult( distanceCaught: double.parse(map['DistanceCaught'].toString()), closestPointIndex: map['ClosestPointIndex'], ); } Map toJson() { final map = Map(); map['DistanceCaught'] = distanceCaught; map['ClosestPointIndex'] = closestPointIndex; return map; } } class MinimumDistanceToContourPointsRequest extends TokenRequest{ List? contourPoints; AIDiagnosisPoint2D? mousePoint; MinimumDistanceToContourPointsRequest({ this.contourPoints, this.mousePoint, String? token, }) : super( token: token, ); factory MinimumDistanceToContourPointsRequest.fromJson(Map map) { return MinimumDistanceToContourPointsRequest( contourPoints: map['ContourPoints'] != null ? (map['ContourPoints'] as List).map((e)=>AIDiagnosisPoint2D.fromJson(e as Map)).toList() : null, mousePoint: map['MousePoint'] != null ? AIDiagnosisPoint2D.fromJson(map['MousePoint']) : null, token: map['Token'], ); } Map toJson() { final map = super.toJson(); if (contourPoints != null) map['ContourPoints'] = contourPoints; if (mousePoint != null) map['MousePoint'] = mousePoint; return map; } } class ContourMergeResult { List? dstContours; AIDiagnosisLesionSize? dstLesionSize; ContourMergeResult({ this.dstContours, this.dstLesionSize, }); factory ContourMergeResult.fromJson(Map map) { return ContourMergeResult( dstContours: map['DstContours'] != null ? (map['DstContours'] as List).map((e)=>AIDiagnosisPoint2D.fromJson(e as Map)).toList() : null, dstLesionSize: map['DstLesionSize'] != null ? AIDiagnosisLesionSize.fromJson(map['DstLesionSize']) : null, ); } Map toJson() { final map = Map(); if (dstContours != null) { map['DstContours'] = dstContours; } if (dstLesionSize != null) { map['DstLesionSize'] = dstLesionSize; } return map; } } class ContourMergeRequest extends TokenRequest{ List? contourPoints; AIDiagnosisLesionSize? lesionSize; List? drawingNewContourPoints; ContourMergeRequest({ this.contourPoints, this.lesionSize, this.drawingNewContourPoints, String? token, }) : super( token: token, ); factory ContourMergeRequest.fromJson(Map map) { return ContourMergeRequest( contourPoints: map['ContourPoints'] != null ? (map['ContourPoints'] as List).map((e)=>AIDiagnosisPoint2D.fromJson(e as Map)).toList() : null, lesionSize: map['LesionSize'] != null ? AIDiagnosisLesionSize.fromJson(map['LesionSize']) : null, drawingNewContourPoints: map['DrawingNewContourPoints'] != null ? (map['DrawingNewContourPoints'] as List).map((e)=>AIDiagnosisPoint2D.fromJson(e as Map)).toList() : null, token: map['Token'], ); } Map toJson() { final map = super.toJson(); if (contourPoints != null) map['ContourPoints'] = contourPoints; if (lesionSize != null) map['LesionSize'] = lesionSize; if (drawingNewContourPoints != null) map['DrawingNewContourPoints'] = drawingNewContourPoints; return map; } }