|
@@ -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);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 查询患者是否有指定的病历了
|
|
|
*
|