| 
					
				 | 
			
			
				@@ -139,10 +139,10 @@ public class EmrServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param param 结构化文档 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void extractDataElement(EmrPatientData param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Map<String, Object> extractDataElement(EmrPatientData param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         EmrDataExtract emrDataExtract = dao.extractDataSource(param.getEmrCategoryCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (emrDataExtract == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 获取 需要提取的数据元 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<String> strings = JSON.parseArray(emrDataExtract.getDataExtract(), String.class); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -169,6 +169,7 @@ public class EmrServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             dao.updatePatientDataSource(param.getPatNo(), param.getTimes(), JSON.toJSONString(jsonObject)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info("提取到的数据:{}", JSON.toJSONString(extractedData)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return extractedData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -177,16 +178,16 @@ public class EmrServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param param 参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 提示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public ResultVo<String> insertEmrData(EmrPatientData param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ResultVo<Map<String, Object>> insertEmrData(EmrPatientData param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         param.setCreateId(TokenUtil.getTokenUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         boolean isUpdated = dao.whetherThereIsAMedicalRecord(param.getPatNo(), param.getTimes(), param.getEmrDocumentId()).equals(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Object> extractedData = extractDataElement(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (isUpdated) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             dao.updateCreatedTemplate(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             dao.emrInsertForTheFirstTime(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        new ExtractData(param).start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, isUpdated ? "保存成功,已覆盖原数据。" : "保存到本院成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ResultVoUtil.success(extractedData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -194,15 +195,15 @@ public class EmrServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 这里用的是逻辑删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param documentId 电子病历id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @return 提示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 删除电子病历的同时需要删除, 提取到的数据源. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public ResultVo<String> deletePatientEmrByDocumentId(String documentId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ResultVo<List<String>> deletePatientEmrByDocumentId(String documentId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         EmrPatientData patientData = dao.getCategoryCodeByDocumentId(documentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         EmrDataExtract emrDataExtract = dao.extractDataSource(patientData.getEmrCategoryCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> strings = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (emrDataExtract != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 获取 需要提取的数据元 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<String> strings = JSON.parseArray(emrDataExtract.getDataExtract(), String.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            strings  = JSON.parseArray(emrDataExtract.getDataExtract(), String.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             log.info("需要提取的数据:{}", strings); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 获取到已经提取的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             EmrDataElement emrDataElement = dao.obtainPatientSOriginalData(patientData.getPatNo(), patientData.getTimes()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -217,9 +218,10 @@ public class EmrServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 删除病历 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         dao.deletePatientEmrByDocumentId(documentId, TokenUtil.getTokenUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "删除成功."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ResultVoUtil.success(strings); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 查询患者是否有指定的病历了 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 |