diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java
index e6980dea..b67a64af 100644
--- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java
+++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java
@@ -198,6 +198,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
 
         BiFunction<DiagnosisQaRecord,AskPatientAnswer,Boolean> biFunction = (qaRecord, qa) -> qa.getLibraryQuestionId().equals(qaRecord.getQuestionLibraryId());
 
+        list = list.stream().filter(item -> !Integer.valueOf("0").equals(item.getAnswerType())).collect(Collectors.toList());
         Set<String> requireCheckIdSet = list.stream().map(AskPatientAnswer::getId).collect(Collectors.toSet());
 
         Function<DiagnosisQaRecord,BasisDiagnosisNodeResVO> t1 = r -> new BasisDiagnosisNodeResVO(0,r.getQuestion(),r.getId(),
@@ -248,6 +249,8 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
     private List<BasisDiagnosisNodeResVO> physicalRecordMergeListsBasisPrimary(List<PhysicalRecordByResultDTO> physicalRecordList,
                                                                                List<DiseasePhysicalResVo> diseasePhysicalResVos){
 
+        diseasePhysicalResVos = diseasePhysicalResVos.stream()
+                .filter(diseasePhysicalResVo -> Integer.valueOf(1).equals(diseasePhysicalResVo.getPrimarilyDiagnosisCriteriaFlag())).collect(Collectors.toList());
         return physicalRecordMergeLists(physicalRecordList, diseasePhysicalResVos, PhysicalRecordByResultDTO::getPrimarilyDiagnosisCriteriaFlag);
     }
 
@@ -257,21 +260,28 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
         Function<PhysicalRecordByResultDTO,Integer> functionCorrect = record -> (ObjectUtil.isNotNull(record.getBasisConfirm()) && 1 == record.getBasisConfirm()
                 && Objects.equals(record.getBasisConfirm(), record.getRecordBasisConfirmFlag())) ? 1 : 0;
 
+        diseasePhysicalResVos = diseasePhysicalResVos.stream()
+                .filter(diseasePhysicalResVo -> Integer.valueOf(1).equals(diseasePhysicalResVo.getBasisConfirmFlag())).collect(Collectors.toList());
         return physicalRecordMergeLists(physicalRecordList, diseasePhysicalResVos, functionCorrect);
     }
 
     private List<BasisDiagnosisNodeResVO> physicalRecordMergeListsIdentification(List<PhysicalRecordByResultDTO> physicalRecordList,
                                                                                  List<DiseasePhysicalResVo> diseasePhysicalResVos){
 
-        Function<PhysicalRecordByResultDTO,Integer> functionCorrect = record -> (ObjectUtil.isNotNull(record.getBasisConfirm()) && 1 == record.getBasisIdentification()
+        Function<PhysicalRecordByResultDTO,Integer> functionCorrect = record -> (Integer.valueOf(1).equals(record.getBasisIdentification())
                 && Objects.equals(record.getBasisIdentification(), record.getRecordBasisIdentificationFlag())) ? 1 : 0;
 
+        diseasePhysicalResVos = diseasePhysicalResVos.stream()
+                .filter(diseasePhysicalResVo -> Integer.valueOf(1).equals(diseasePhysicalResVo.getBasisIdentificationFlag())).collect(Collectors.toList());
         return physicalRecordMergeLists(physicalRecordList, diseasePhysicalResVos, functionCorrect);
     }
 
     private List<BasisDiagnosisNodeResVO> ancillaryRecordMergeListsBasisPrimary(List<AncillaryRecordByResultDTO> ancillaryRecordList,
                                                                                 List<DiseaseAncillaryResVo> diseaseAncillaryResVos){
 
+        diseaseAncillaryResVos = diseaseAncillaryResVos.stream()
+                .filter(diseaseAncillaryResVo -> Integer.valueOf(1).equals(diseaseAncillaryResVo.getPrimarilyDiagnosisCriteriaFlag())).collect(Collectors.toList());
+
         return ancillaryRecordMergeLists(ancillaryRecordList, diseaseAncillaryResVos,
                 AncillaryRecordByResultDTO::getPrimarilyDiagnosisCriteriaFlag);
     }
@@ -283,14 +293,19 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
         Function<AncillaryRecordByResultDTO,Integer> functionCorrect =  record -> ObjectUtil.isNotNull(record.getBasisConfirm()) && 1 == record.getBasisConfirm()
                 && Objects.equals(record.getBasisConfirm(), record.getRecordBasisConfirmFlag()) ? 1 : 0 ;
 
+        diseaseAncillaryResVos = diseaseAncillaryResVos.stream()
+                .filter(diseaseAncillaryResVo -> Integer.valueOf(1).equals(diseaseAncillaryResVo.getBasisConfirmFlag())).collect(Collectors.toList());
         return ancillaryRecordMergeLists(ancillaryRecordList, diseaseAncillaryResVos,functionCorrect);
     }
 
     private List<BasisDiagnosisNodeResVO> ancillaryRecordMergeListsIdentification(List<AncillaryRecordByResultDTO> ancillaryRecordList,
                                                                                   List<DiseaseAncillaryResVo> diseaseAncillaryResVos){
-        Function<AncillaryRecordByResultDTO,Integer> functionCorrect =  record ->  (ObjectUtil.isNotNull(record.getBasisConfirm()) && 1 == record.getBasisIdentification()
+
+        Function<AncillaryRecordByResultDTO,Integer> functionCorrect =  record ->  (Integer.valueOf(1).equals(record.getBasisIdentification())
                 && Objects.equals(record.getBasisIdentification(), record.getRecordBasisIdentificationFlag())) ? 1 : 0;
 
+        diseaseAncillaryResVos = diseaseAncillaryResVos.stream()
+                .filter(diseaseAncillaryResVo -> Integer.valueOf(1).equals(diseaseAncillaryResVo.getBasisIdentificationFlag())).collect(Collectors.toList());
         return ancillaryRecordMergeLists(ancillaryRecordList, diseaseAncillaryResVos,functionCorrect);
     }