|
|
@@ -7,6 +7,7 @@ import static org.mockito.ArgumentMatchers.eq;
|
|
7
|
7
|
import static org.mockito.Mockito.when;
|
|
8
|
8
|
|
|
9
|
9
|
import java.util.Arrays;
|
|
|
10
|
+import java.util.Collections;
|
|
10
|
11
|
import org.junit.jupiter.api.DisplayName;
|
|
11
|
12
|
import org.junit.jupiter.api.Test;
|
|
12
|
13
|
import org.junit.jupiter.api.extension.ExtendWith;
|
|
|
@@ -14,6 +15,7 @@ import org.mockito.InjectMocks;
|
|
14
|
15
|
import org.mockito.Mock;
|
|
15
|
16
|
import org.mockito.junit.jupiter.MockitoExtension;
|
|
16
|
17
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
18
|
+import com.ruoyi.web.modules.architecture.domain.AppMedicationIncompatibilityGroupRow;
|
|
17
|
19
|
import com.ruoyi.web.modules.architecture.domain.AppMedicationDrugQueryVo;
|
|
18
|
20
|
import com.ruoyi.web.modules.architecture.domain.BizWithdrawalPeriodStandard;
|
|
19
|
21
|
import com.ruoyi.web.modules.architecture.mapper.AppMedicationDrugMapper;
|
|
|
@@ -48,13 +50,34 @@ class AppMedicationDrugServiceImplTest
|
|
48
|
50
|
row.setUsageGuide("指南");
|
|
49
|
51
|
row.setDrugEffect("作用");
|
|
50
|
52
|
when(appMedicationDrugMapper.selectWithdrawalByDrugName("青霉素")).thenReturn(row);
|
|
51
|
|
- when(appMedicationDrugMapper.selectIncompatibilityCompanionsCsv("青霉素")).thenReturn("链霉素,磺胺");
|
|
|
53
|
+ when(appMedicationDrugMapper.selectIncompatibilityGroupsByMainDrugName("青霉素"))
|
|
|
54
|
+ .thenReturn(Collections.singletonList(groupRow("链霉素,磺胺", null)));
|
|
52
|
55
|
|
|
53
|
56
|
AppMedicationDrugQueryVo vo = service.queryByDrugName("青霉素");
|
|
54
|
57
|
assertEquals("抗生素", vo.getDrugTypeName());
|
|
55
|
58
|
assertEquals("链霉素,磺胺", vo.getIncompatibilityCompanions());
|
|
56
|
59
|
}
|
|
57
|
60
|
|
|
|
61
|
+ @Test
|
|
|
62
|
+ @DisplayName("多配伍组展示带配伍结果")
|
|
|
63
|
+ void queryMultipleGroups()
|
|
|
64
|
+ {
|
|
|
65
|
+ BizWithdrawalPeriodStandard row = new BizWithdrawalPeriodStandard();
|
|
|
66
|
+ row.setDrugName("青霉素");
|
|
|
67
|
+ row.setDrugType(1);
|
|
|
68
|
+ row.setWithdrawalDays(7);
|
|
|
69
|
+ row.setUsageGuide("指南");
|
|
|
70
|
+ row.setDrugEffect("作用");
|
|
|
71
|
+ when(appMedicationDrugMapper.selectWithdrawalByDrugName("青霉素")).thenReturn(row);
|
|
|
72
|
+ when(appMedicationDrugMapper.selectIncompatibilityGroupsByMainDrugName("青霉素"))
|
|
|
73
|
+ .thenReturn(Arrays.asList(
|
|
|
74
|
+ groupRow("链霉素,庆大霉素", "禁止合用"),
|
|
|
75
|
+ groupRow("维生素C", "降低疗效")));
|
|
|
76
|
+
|
|
|
77
|
+ AppMedicationDrugQueryVo vo = service.queryByDrugName("青霉素");
|
|
|
78
|
+ assertEquals("链霉素,庆大霉素(禁止合用);维生素C(降低疗效)", vo.getIncompatibilityCompanions());
|
|
|
79
|
+ }
|
|
|
80
|
+
|
|
58
|
81
|
@Test
|
|
59
|
82
|
@DisplayName("无禁配记录时配伍为空")
|
|
60
|
83
|
void queryNoIncompatibility()
|
|
|
@@ -66,7 +89,8 @@ class AppMedicationDrugServiceImplTest
|
|
66
|
89
|
row.setUsageGuide("指南");
|
|
67
|
90
|
row.setDrugEffect("作用");
|
|
68
|
91
|
when(appMedicationDrugMapper.selectWithdrawalByDrugName("测试药")).thenReturn(row);
|
|
69
|
|
- when(appMedicationDrugMapper.selectIncompatibilityCompanionsCsv("测试药")).thenReturn(null);
|
|
|
92
|
+ when(appMedicationDrugMapper.selectIncompatibilityGroupsByMainDrugName("测试药"))
|
|
|
93
|
+ .thenReturn(Collections.emptyList());
|
|
70
|
94
|
|
|
71
|
95
|
AppMedicationDrugQueryVo vo = service.queryByDrugName("测试药");
|
|
72
|
96
|
assertNull(vo.getIncompatibilityCompanions());
|
|
|
@@ -79,4 +103,12 @@ class AppMedicationDrugServiceImplTest
|
|
79
|
103
|
when(appMedicationDrugMapper.selectWithdrawalByDrugName("未知")).thenReturn(null);
|
|
80
|
104
|
assertThrows(ServiceException.class, () -> service.queryByDrugName("未知"));
|
|
81
|
105
|
}
|
|
|
106
|
+
|
|
|
107
|
+ private static AppMedicationIncompatibilityGroupRow groupRow(String companions, String result)
|
|
|
108
|
+ {
|
|
|
109
|
+ AppMedicationIncompatibilityGroupRow row = new AppMedicationIncompatibilityGroupRow();
|
|
|
110
|
+ row.setCompanionsCsv(companions);
|
|
|
111
|
+ row.setCompatResult(result);
|
|
|
112
|
+ return row;
|
|
|
113
|
+ }
|
|
82
|
114
|
}
|