|
@@ -73,13 +73,23 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
].contains(diagnosisConclusion);
|
|
|
|
|
|
/// 是否是选择状态
|
|
|
- final bool isSelectStutas;
|
|
|
+ final bool isPureImage;
|
|
|
|
|
|
///是否显示左上角序号
|
|
|
final bool? ifShowIndex;
|
|
|
|
|
|
+ ///图像宽度
|
|
|
+ final double contentWidth;
|
|
|
+
|
|
|
+ ///图像高度
|
|
|
+ final double contentHeight;
|
|
|
+
|
|
|
///序号
|
|
|
final int serialNo;
|
|
|
+
|
|
|
+ ///图片文字描述
|
|
|
+ final String? description;
|
|
|
+
|
|
|
FContentImage({
|
|
|
Key? key,
|
|
|
this.terminalImage,
|
|
@@ -88,9 +98,12 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
this.isMeasure = false,
|
|
|
this.onDoubleTap,
|
|
|
this.onTap,
|
|
|
- this.isSelectStutas = false,
|
|
|
+ this.isPureImage = false,
|
|
|
this.ifShowIndex = true,
|
|
|
this.serialNo = 0,
|
|
|
+ this.description = '',
|
|
|
+ this.contentHeight = 200,
|
|
|
+ this.contentWidth = 300,
|
|
|
}) : super(key: key);
|
|
|
|
|
|
@override
|
|
@@ -105,24 +118,18 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
fileDataType = remedicalInfo?.fileDataType;
|
|
|
}
|
|
|
|
|
|
- if (isSelectStutas) {
|
|
|
+ if (isPureImage) {
|
|
|
return FContainer(
|
|
|
- width: 190,
|
|
|
- height: 160,
|
|
|
color: Colors.black,
|
|
|
- child: FStack(
|
|
|
- children: [
|
|
|
- FCenter(
|
|
|
- child: FImage.network(
|
|
|
- terminalImage!.previewUrl!,
|
|
|
- errorBuilder: ((context, error, stackTrace) {
|
|
|
- return Container(
|
|
|
- child: Text(i18nBook.common.error.t),
|
|
|
- );
|
|
|
- }),
|
|
|
- ),
|
|
|
- ),
|
|
|
- ],
|
|
|
+ child: FImage.network(
|
|
|
+ terminalImage!.coverImageUrl!,
|
|
|
+ width: contentWidth,
|
|
|
+ height: contentHeight,
|
|
|
+ errorBuilder: ((context, error, stackTrace) {
|
|
|
+ return Container(
|
|
|
+ child: Text(i18nBook.common.error.t),
|
|
|
+ );
|
|
|
+ }),
|
|
|
),
|
|
|
);
|
|
|
} else
|
|
@@ -167,6 +174,18 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ ///判断是否是肝脏、胆囊、肾脏、脾脏、腹部器官
|
|
|
+ bool _ifAbdominalOrgans(DiagnosisOrganEnum diagnosisOrgan) {
|
|
|
+ final abdominalOrgansList = [
|
|
|
+ DiagnosisOrganEnum.Liver,
|
|
|
+ DiagnosisOrganEnum.Cholecyst,
|
|
|
+ DiagnosisOrganEnum.Kidney,
|
|
|
+ DiagnosisOrganEnum.Spleen,
|
|
|
+ DiagnosisOrganEnum.Abdomen
|
|
|
+ ];
|
|
|
+ return abdominalOrgansList.contains(diagnosisOrgan);
|
|
|
+ }
|
|
|
+
|
|
|
FWidget _buildLeftAIOrCarotidLogo() {
|
|
|
if (isCarotidResult) {
|
|
|
return FPositioned(
|
|
@@ -179,13 +198,25 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
);
|
|
|
}
|
|
|
if (hasDiagnosisOrgans) {
|
|
|
+ int count = 0;
|
|
|
final List<FWidget> aIDiagnosticOrgansIconList = [];
|
|
|
+
|
|
|
for (var i = 0; i < diagnosisOrgans!.length; i++) {
|
|
|
- aIDiagnosticOrgansIconList.add(
|
|
|
- _buildAIDiagnosticOrgans(
|
|
|
- diagnosisOrgans?[i],
|
|
|
- ),
|
|
|
- );
|
|
|
+ if (_ifAbdominalOrgans(diagnosisOrgans![i])) {
|
|
|
+ //当diagnosisOrgans返回值为肝脏、胆囊、肾脏、脾脏,都只显示一个“腹部”图标
|
|
|
+ if (count <= 0) {
|
|
|
+ aIDiagnosticOrgansIconList.add(
|
|
|
+ _buildAIDiagnosticOrgans(DiagnosisOrganEnum.Abdomen),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ count++;
|
|
|
+ } else {
|
|
|
+ aIDiagnosticOrgansIconList.add(
|
|
|
+ _buildAIDiagnosticOrgans(
|
|
|
+ diagnosisOrgans?[i],
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return FPositioned(
|
|
@@ -206,7 +237,7 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
///构建描述字段
|
|
|
FWidget _buildApplication() {
|
|
|
return FText(
|
|
|
- remedicalInfo?.application ?? "",
|
|
|
+ description ?? "",
|
|
|
style: TextStyle(
|
|
|
color: Colors.white,
|
|
|
fontSize: 10,
|
|
@@ -220,7 +251,7 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
return FPositioned(
|
|
|
bottom: 5,
|
|
|
right: 5,
|
|
|
- child: FTooltip(
|
|
|
+ child: FMaterialTooltip(
|
|
|
textStyle: TextStyle(
|
|
|
fontSize: 16,
|
|
|
color: Colors.white,
|
|
@@ -235,7 +266,6 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
fontSize: 20,
|
|
|
),
|
|
|
),
|
|
|
- textLines: new List.empty(),
|
|
|
),
|
|
|
);
|
|
|
}
|
|
@@ -270,9 +300,6 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
}),
|
|
|
),
|
|
|
),
|
|
|
- _buildLeftAIOrCarotidLogo(),
|
|
|
- _buildRigthAIText(),
|
|
|
- if (ifShowIndex!) _buildIndex(),
|
|
|
FInkWell(
|
|
|
onDoubleTap: () {
|
|
|
onDoubleTap?.call();
|
|
@@ -290,6 +317,9 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
),
|
|
|
),
|
|
|
),
|
|
|
+ _buildLeftAIOrCarotidLogo(),
|
|
|
+ _buildRigthAIText(),
|
|
|
+ if (ifShowIndex!) _buildIndex(),
|
|
|
],
|
|
|
),
|
|
|
);
|
|
@@ -343,7 +373,7 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
case DiagnosisConclusionEnum.Benign:
|
|
|
return i18nBook.remedical.benign.t;
|
|
|
case DiagnosisConclusionEnum.Malignant:
|
|
|
- return i18nBook.remedical.malignant.t;
|
|
|
+ return i18nBook.remedical.benignWithMalignant.t;
|
|
|
case DiagnosisConclusionEnum.BenignAndMalignant:
|
|
|
return i18nBook.remedical.benignWithMalignant.t;
|
|
|
default:
|
|
@@ -358,7 +388,7 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
case DiagnosisConclusionEnum.Benign:
|
|
|
return Colors.greenAccent;
|
|
|
case DiagnosisConclusionEnum.Malignant:
|
|
|
- return Colors.redAccent;
|
|
|
+ return Colors.orangeAccent;
|
|
|
case DiagnosisConclusionEnum.BenignAndMalignant:
|
|
|
return Colors.orangeAccent;
|
|
|
default:
|
|
@@ -412,25 +442,36 @@ class FContentImage extends StatelessWidget implements FWidget {
|
|
|
),
|
|
|
);
|
|
|
case DiagnosisOrganEnum.CarotidArtery:
|
|
|
- return FText(
|
|
|
- " 图标待定 ",
|
|
|
- style: TextStyle(color: Colors.white),
|
|
|
+ return FIcon(
|
|
|
+ FIcons.arteria_carotis,
|
|
|
+ color: _buildAITextColor(
|
|
|
+ diagnosisConclusion,
|
|
|
+ ),
|
|
|
);
|
|
|
+
|
|
|
case DiagnosisOrganEnum.Thyroid:
|
|
|
- return FText(
|
|
|
- " 图标待定 ",
|
|
|
- style: TextStyle(color: Colors.white),
|
|
|
+ return FIcon(
|
|
|
+ FIcons.fis_thyroid,
|
|
|
+ color: _buildAITextColor(
|
|
|
+ diagnosisConclusion,
|
|
|
+ ),
|
|
|
);
|
|
|
case DiagnosisOrganEnum.Neck:
|
|
|
- return FText(
|
|
|
- " 图标待定 ",
|
|
|
- style: TextStyle(color: Colors.white),
|
|
|
+ return FIcon(
|
|
|
+ //图标待定
|
|
|
+ FIcons.fis_thyroid,
|
|
|
+ color: _buildAITextColor(
|
|
|
+ diagnosisConclusion,
|
|
|
+ ),
|
|
|
);
|
|
|
case DiagnosisOrganEnum.Null:
|
|
|
- return FText(
|
|
|
- i18nBook.remedical.didNotIdentify.t,
|
|
|
- style: TextStyle(color: Colors.white),
|
|
|
- );
|
|
|
+ if (diagnosisOrgans?.length == 1) {
|
|
|
+ //如果diagnosisOrgans只有一个值且该值为null值,就返回文字,否则返回空
|
|
|
+ return _buildApplication();
|
|
|
+ } else {
|
|
|
+ return FText('');
|
|
|
+ }
|
|
|
+
|
|
|
default:
|
|
|
return _buildApplication();
|
|
|
}
|