瀏覽代碼

恩泽:crf一般手术记录,特殊检查治疗同意书更改

wangsy 4 年之前
父節點
當前提交
a0bec51569
共有 20 個文件被更改,包括 447 次插入52 次删除
  1. 35 3
      structure-center/src/main/java/com/lantone/structure/ai/OperationAI.java
  2. 72 0
      structure-center/src/main/java/com/lantone/structure/ai/process/EntityOperationRecord.java
  3. 6 6
      structure-center/src/main/java/com/lantone/structure/facade/StructureFacade.java
  4. 10 3
      structure-center/src/main/java/com/lantone/structure/facade/tran/ClinicBloodConsentDocTran.java
  5. 3 3
      structure-center/src/main/java/com/lantone/structure/facade/tran/CriticallyIllNoticeDocTran.java
  6. 1 1
      structure-center/src/main/java/com/lantone/structure/facade/tran/OperationInformedConsentDocTran.java
  7. 88 4
      structure-center/src/main/java/com/lantone/structure/facade/tran/OperationRecordDocTran.java
  8. 67 30
      structure-center/src/main/java/com/lantone/structure/facade/tran/SpecialCureConsentDocTran.java
  9. 1 0
      structure-center/src/main/java/com/lantone/structure/model/Content.java
  10. 15 0
      structure-center/src/main/java/com/lantone/structure/model/entity/BleedQuantity.java
  11. 15 0
      structure-center/src/main/java/com/lantone/structure/model/entity/BloodQuantity.java
  12. 15 0
      structure-center/src/main/java/com/lantone/structure/model/entity/DrainageMaterialsAmount.java
  13. 15 0
      structure-center/src/main/java/com/lantone/structure/model/entity/DrainageMaterialsName.java
  14. 15 0
      structure-center/src/main/java/com/lantone/structure/model/entity/DuringDrugs.java
  15. 15 0
      structure-center/src/main/java/com/lantone/structure/model/entity/OperationIncision.java
  16. 15 0
      structure-center/src/main/java/com/lantone/structure/model/entity/PlacePosition.java
  17. 15 0
      structure-center/src/main/java/com/lantone/structure/model/entity/PreoperativeDrugs.java
  18. 15 0
      structure-center/src/main/java/com/lantone/structure/model/entity/SkinSterilize.java
  19. 15 0
      structure-center/src/main/java/com/lantone/structure/model/entity/TransfuseQuantity.java
  20. 14 2
      structure-center/src/main/java/com/lantone/structure/model/label/OperationRecordLabel.java

+ 35 - 3
structure-center/src/main/java/com/lantone/structure/ai/OperationAI.java

@@ -3,6 +3,7 @@ package com.lantone.structure.ai;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
+import com.lantone.structure.ai.process.EntityOperationRecord;
 import com.lantone.structure.ai.process.EntityProcessOperation;
 import com.lantone.structure.client.CRFServiceClient;
 import com.lantone.structure.ai.process.EntityProcessDrug;
@@ -20,7 +21,10 @@ import com.lantone.structure.model.label.OperationRecordLabel;
 import com.lantone.common.util.StringUtil;
 import com.lantone.structure.model.label.PreoperativeDiscussionLabel;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName : OperationAI
@@ -32,7 +36,7 @@ public class OperationAI extends ModelAI {
     /**
      *
      */
-    public static List<String> medicalTextType = Arrays.asList("CourseAfterOperation_cx", "CourseRecordSRR","Taizhou_before_surgery");
+    public static List<String> medicalTextType = Arrays.asList("CourseAfterOperation_cx", "CourseRecordSRR","Taizhou_pDiscussion_record");
     public static String entityRelationObject = "entity_relation_object";
     public static String outputs = "outputs";
     public static String content = "content";
@@ -135,7 +139,35 @@ public class OperationAI extends ModelAI {
                     discussionLabel.setDrugs(putDrugCrfData(midData.getJSONObject(Content.operation_Discussion + i + "药物")));
                 }
             }
+
+            /***************************** 后结构化数据处理(一般手术记录)****************************************/
+            if (midData.get(Content.operationRecord) != null) {
+                OperationRecordDoc operationRecordDoc = operationDocs.get(i).getOperationRecordDoc();
+                OperationRecordLabel operationRecordLabel = putOperationRecordCrfData(midData.getJSONObject(Content.operationRecord), inputInfo);
+                if (operationRecordLabel != null) {
+                    operationRecordDoc.setOperationRecordLabel(operationRecordLabel);
+                }
+            }
+        }
+    }
+
+    /**
+     * 处理后结构化一般手术记录
+     *
+     * @param jsonObject
+     */
+    public OperationRecordLabel putOperationRecordCrfData(JSONObject jsonObject, InputInfo inputInfo) {
+        OperationRecordLabel operationRecordLabel = new OperationRecordLabel();
+        if (jsonObject == null) {
+            return operationRecordLabel;
         }
+        JSONObject aiOut = jsonObject.getJSONObject(entityRelationObject).getJSONObject(BeHospitalizedAI.outputs);
+        if (aiOut == null) {
+            return operationRecordLabel;
+        }
+        EntityOperationRecord entityOperationRecord = new EntityOperationRecord();
+        operationRecordLabel = entityOperationRecord.extractEntity(aiOut);
+        return operationRecordLabel;
     }
 
     /**
@@ -178,7 +210,7 @@ public class OperationAI extends ModelAI {
         }
         JSONObject aiOut = jsonObject.getJSONObject(entityRelationObject).getJSONObject(BeHospitalizedAI.outputs);
         if (aiOut == null) {
-            return ;
+            return;
         }
         EntityProcessOperation entityProcessOperation = new EntityProcessOperation();
         PreoperativeDiscussionLabel preoperativeDiscussionLabel = entityProcessOperation.extractEntity(aiOut);

+ 72 - 0
structure-center/src/main/java/com/lantone/structure/ai/process/EntityOperationRecord.java

@@ -0,0 +1,72 @@
+package com.lantone.structure.ai.process;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.lantone.structure.ai.model.Lemma;
+import com.lantone.structure.model.entity.*;
+import com.lantone.structure.model.label.OperationRecordLabel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 输血记录处理
+ */
+public class EntityOperationRecord extends EntityProcess {
+    private Logger logger = LoggerFactory.getLogger(EntityOperationRecord.class);
+
+    public OperationRecordLabel extractEntity(JSONObject aiOut) {
+        OperationRecordLabel operationRecordLabel = new OperationRecordLabel();
+        try {
+            //手术目标部位名称
+            operationRecordLabel.setOpBottomName(findFirstT(createEntityTree(aiOut, "手术目标部位名称"), new String()));
+
+            //介入物名称
+            List<Lemma> interventionLemma = createEntityTree(aiOut, "介入物名称");
+            List<Intervention> interventionList = new ArrayList<>();
+            for (Lemma lemma : interventionLemma) {
+                Intervention intervention = new Intervention();
+                intervention.setName(lemma.getText());
+                interventionList.add(intervention);
+            }
+            operationRecordLabel.setInterventions(interventionList);
+
+            //皮肤消毒描述
+            operationRecordLabel.setSkinSterilize(findFirstT(createEntityTree(aiOut, "皮肤消毒描述"), new SkinSterilize()));
+
+            //手术切口描述
+            operationRecordLabel.setOperationIncision(findFirstT(createEntityTree(aiOut, "手术切口描述"), new OperationIncision()));
+
+            //出血量(mL)
+            operationRecordLabel.setBleedQuantity(findFirstT(createEntityTree(aiOut, "出血量"), new BleedQuantity()));
+
+            //输液量(mL)
+            operationRecordLabel.setTransfuseQuantity(findFirstT(createEntityTree(aiOut, "输液量"), new TransfuseQuantity()));
+
+            //输血量(mL)
+            operationRecordLabel.setBloodQuantity(findFirstT(createEntityTree(aiOut, "输血量"), new BloodQuantity()));
+
+            //术前用药
+            operationRecordLabel.setPreoperativeDrugs(findFirstT(createEntityTree(aiOut, "术前用药"), new PreoperativeDrugs()));
+
+            //术中用药
+            operationRecordLabel.setDuringDrugs(findFirstT(createEntityTree(aiOut, "术中用药"), new DuringDrugs()));
+
+            //引流材料名称
+            operationRecordLabel.setDrainageMaterialsName(findFirstT(createEntityTree(aiOut, "引流材料名称"), new DrainageMaterialsName()));
+
+            //引流材料数目
+            operationRecordLabel.setDrainageMaterialsAmount(findFirstT(createEntityTree(aiOut, "引流材料数目"), new DrainageMaterialsAmount()));
+
+            //放置部位
+            operationRecordLabel.setPlacePosition(findFirstT(createEntityTree(aiOut, "放置部位"), new PlacePosition()));
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.error(e.getMessage(), e);
+        }
+        return operationRecordLabel;
+    }
+}

+ 6 - 6
structure-center/src/main/java/com/lantone/structure/facade/StructureFacade.java

@@ -86,12 +86,12 @@ public class StructureFacade {
             case "输血治疗同意书":
                 targetTran = new ClinicBloodConsentDocTran();
                 break;
-//            case "特殊检查及特殊治疗同意书":
-//                targetTran = new SpecialCureConsentDocTran();
-//                break;
-//            case "一般手术记录":
-//                targetTran = new OperationRecordDocTran();
-//                break;
+            case "特殊检查及特殊治疗同意书":
+                targetTran = new SpecialCureConsentDocTran();
+                break;
+            case "一般手术记录":
+                targetTran = new OperationRecordDocTran();
+                break;
             case "术前讨论":
                 targetTran = new PreoperativeDiscussionTran();
                 break;

+ 10 - 3
structure-center/src/main/java/com/lantone/structure/facade/tran/ClinicBloodConsentDocTran.java

@@ -25,7 +25,7 @@ public class ClinicBloodConsentDocTran extends TargetTran {
         CommonAnalysisUtil.mapKeyContrastCommon(structureMap, keyContrasts, retMap);
         retMap.entrySet().removeIf(entry -> StringUtil.isBlank(entry.getValue()));
         retMap.entrySet().removeIf(entry ->
-                !entry.getValue().matches("\\d") && ("患者/法定代理人签名日期时间".equals(entry.getKey()) || "医师签名日期时间".equals(entry.getKey()))
+                !entry.getValue().matches("[\\d]+年[\\d]+月[\\d]+日[\\d]+时[\\d]+分") && ("患者/法定代理人签名日期时间".equals(entry.getKey()) || "医师签名日期时间".equals(entry.getKey()))
         );
         return retMap;
     }
@@ -33,8 +33,11 @@ public class ClinicBloodConsentDocTran extends TargetTran {
     private Map<String, String> cutWord(String text) {
         Map<String, String> sourceMap = Maps.newHashMap();
         String dataStr = "";
-        text = text.replace("年   月   日    时   分", "").replace("如果患者无法签署知情同意书,请其授权的亲属在此签名:", "")
-                .replace("3.我理解治疗后如果我不遵医嘱,可能影响治疗效果。", "").replace("_", "");
+        text = text.replace("年   月   日    时   分", "")
+                .replace("如果患者无法签署知情同意书,请其授权的亲属在此签名:", "")
+                .replace("3.我理解治疗后如果我不遵医嘱,可能影响治疗效果。", "")
+                .replace("_", "");
+
         List<String> titles = CommonAnalysisUtil.sortTitles(
                 Lists.newArrayList("姓名", "性别", "年龄", "住院号", "床号", "病历号", "疾病介绍和治疗建议", "1.患者基本情况", "⒈患者基本情况", "(4)\t输血前检查",
                         "输血前检查", "2.拟使用的血液制品", "2.拟实施的输血方案", "⒉拟实施的输血方案", "2.拟实施的输血/备血方案", "治疗潜在风险和对策", "2.我理解此治疗可能发生的风险",
@@ -42,8 +45,10 @@ public class ClinicBloodConsentDocTran extends TargetTran {
                 text
         );
         CommonAnalysisUtil.cutByTitles(text, titles, 0, sourceMap);
+
         if (sourceMap != null) {
             if (sourceMap.containsKey("医护人员陈述")) {
+
                 dataStr = sourceMap.get("医护人员陈述");
                 sourceMap.put("医护人员陈述", dataStr.substring(0, Math.max(0, dataStr.indexOf("医生签名"))));
                 List<String> listTitle = Lists.newArrayList(
@@ -52,6 +57,7 @@ public class ClinicBloodConsentDocTran extends TargetTran {
                 CommonAnalysisUtil.sortTitlesNoColon(listTitle, dataStr);
                 CommonAnalysisUtil.cutByTitlesNoColon(dataStr, listTitle, 0, sourceMap);
             } else if (sourceMap.containsKey("2.我理解此治疗可能发生的风险")) {
+
                 dataStr = sourceMap.get("2.我理解此治疗可能发生的风险");
                 sourceMap.put("2.我理解此治疗可能发生的风险", dataStr.substring(0, Math.max(0, dataStr.indexOf("患者、患者家属或患者的法定监护人、授权委托人意见"))));
                 List<String> listTitle = Lists.newArrayList(
@@ -63,6 +69,7 @@ public class ClinicBloodConsentDocTran extends TargetTran {
 
             CommonAnalysisUtil.removeKey(sourceMap, "1.患者基本情况", "2.拟使用的血液制品", "⒈患者基本情况", "⒉拟实施的输血方案", "与患者关系",
                     "2.拟实施的输血/备血方案", "2.拟实施的输血方案", "疾病介绍和治疗建议");
+
             disDate(sourceMap, "住院号", "疾病介绍和治疗建议");
             disDate(sourceMap, "医生签名", "签名日期");
             disDate(sourceMap, "医生签名", "签名时间");

+ 3 - 3
structure-center/src/main/java/com/lantone/structure/facade/tran/CriticallyIllNoticeDocTran.java

@@ -23,7 +23,7 @@ public class CriticallyIllNoticeDocTran extends TargetTran {
         CommonAnalysisUtil.mapKeyContrastCommon(structureMap, keyContrasts, retMap);
         retMap.entrySet().removeIf(entry -> StringUtil.isBlank(entry.getValue()));
         retMap.entrySet().removeIf(entry ->
-                !entry.getValue().matches("\\d") && ("病危(重)通知日期时间".equals(entry.getKey()) || "法定代理人签名日期时间".equals(entry.getKey()))
+                !entry.getValue().matches("[\\d]+年[\\d]+月[\\d]+日[\\d]+时[\\d]+分") && ("病危(重)通知日期时间".equals(entry.getKey()) || "法定代理人签名日期时间".equals(entry.getKey()))
         );
         return retMap;
     }
@@ -31,10 +31,10 @@ public class CriticallyIllNoticeDocTran extends TargetTran {
     private Map<String, String> cutWord(String text) {
         Map<String, String> sourceMap = Maps.newHashMap();
         String dateStr = "";
-        text = text.replace("年   月   日   时   分", "").replace("年 月 日  时  分","");
+        text = text.replace("年   月   日   时   分", "")
+                .replace("年 月 日  时  分","");
         List<String> titles = CommonAnalysisUtil.sortTitles(
                 Lists.newArrayList("科别", "住院号", "入院日期", "入住院日期", "姓名", "性别", "年龄", "职业", "临床诊断","病危通知书", "病情概要", "病重情况", "病情危重情况", "主要抢救措施"),
-//                        "病人家属签名", "关系", "时间", "签名日期", "通知时间", "经治医师"),
                 text
         );
         CommonAnalysisUtil.cutByTitles(text, titles, 0, sourceMap);

+ 1 - 1
structure-center/src/main/java/com/lantone/structure/facade/tran/OperationInformedConsentDocTran.java

@@ -25,7 +25,7 @@ public class OperationInformedConsentDocTran extends TargetTran {
         CommonAnalysisUtil.mapKeyContrastCommon(structureMap, keyContrasts, retMap);
         retMap.entrySet().removeIf(entry -> StringUtil.isBlank(entry.getValue()));
         retMap.entrySet().removeIf(entry ->
-                !entry.getValue().matches("\\d") && ("患者/法定代理人签名日期时间".equals(entry.getKey()) || "医师签名日期时间".equals(entry.getKey()))
+                !entry.getValue().matches("[\\d]+年[\\d]+月[\\d]+日[\\d]+时[\\d]+分") && ("患者/法定代理人签名日期时间".equals(entry.getKey()) || "医师签名日期时间".equals(entry.getKey()))
         );
         return retMap;
     }

+ 88 - 4
structure-center/src/main/java/com/lantone/structure/facade/tran/OperationRecordDocTran.java

@@ -2,12 +2,16 @@ package com.lantone.structure.facade.tran;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.lantone.common.util.ListUtil;
 import com.lantone.common.util.StringUtil;
 import com.lantone.structure.facade.tran.util.CommonAnalysisUtil;
 import com.lantone.structure.model.doc.operation.OperationDoc;
 import com.lantone.structure.model.doc.operation.OperationRecordDoc;
+import com.lantone.structure.model.entity.Intervention;
+import com.lantone.structure.model.label.OperationRecordLabel;
 import com.lantone.structure.util.MapUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -37,13 +41,94 @@ public class OperationRecordDocTran extends TargetTran {
         Map<String, String> structureMap = cutWord(text);
         Map<String, String> retMap = new HashMap<String, String>();
         CommonAnalysisUtil.mapKeyContrastCommon(structureMap, keyContrasts, retMap);
+        fetchModelData(inputInfo.getOperationDocs(), retMap);
         retMap.entrySet().removeIf(entry -> StringUtil.isBlank(entry.getValue()));
-        retMap.entrySet().removeIf(entry -> !entry.getValue().matches("\\d") && "医师签名日期时间".equals(entry.getKey()));
+        retMap.entrySet().removeIf(entry -> !entry.getValue().matches("[\\d]+年[\\d]+月[\\d]+日[\\d]+时[\\d]+分") && "医师签名日期时间".equals(entry.getKey()));
         return retMap;
     }
 
+    private void fetchModelData(List<OperationDoc> operationDocs, Map<String, String> retMap) {
+        if (ListUtil.isNotEmpty(operationDocs)) operationDocs.forEach(operationDoc -> {
+            OperationRecordDoc operationRecordDoc = operationDoc.getOperationRecordDoc();
+            if (operationRecordDoc != null) {
+                int interventionCount = 1;
+                StringBuffer interventionString = new StringBuffer();
+                OperationRecordLabel operationRecordLabel = operationRecordDoc.getOperationRecordLabel();
+                //手术目标部位名称
+                if (StringUtil.isNotBlank(operationRecordLabel.getOpBottomName())) {
+                    retMap.put("手术目标部位名称", operationRecordLabel.getOpBottomName());
+                }
+
+                //介入物名称
+                if (ListUtil.isNotEmpty(operationRecordLabel.getInterventions())) {
+                    for (Intervention interventions : operationRecordLabel.getInterventions()) {
+                        if (StringUtils.isNotEmpty(interventions.getName())) {
+                            if (operationRecordLabel.getInterventions().size() > 1) {
+                                interventionString.append((interventionCount++) + ".");
+                            }
+                            interventionString.append(interventions.getName());
+                        }
+
+                    }
+                    retMap.put("介入物名称", interventionString.toString());
+                }
+
+                //皮肤消毒描述
+                if (operationRecordLabel.getSkinSterilize() != null && StringUtils.isNotEmpty(operationRecordLabel.getSkinSterilize().getName())) {
+                    retMap.put("皮肤消毒描述", operationRecordLabel.getSkinSterilize().getName());
+                }
+
+                //手术切口描述
+                if (operationRecordLabel.getOperationIncision() != null && StringUtils.isNotEmpty(operationRecordLabel.getOperationIncision().getName())) {
+                    retMap.put("手术切口描述", operationRecordLabel.getOperationIncision().getName());
+                }
+
+                //出血量(mL)
+                if (operationRecordLabel.getBleedQuantity() != null && StringUtils.isNotEmpty(operationRecordLabel.getBleedQuantity().getName())) {
+                    retMap.put("出血量(mL)", operationRecordLabel.getBleedQuantity().getName());
+                }
+
+                //输液量(mL)
+                if (operationRecordLabel.getTransfuseQuantity() != null && StringUtils.isNotEmpty(operationRecordLabel.getTransfuseQuantity().getName())) {
+                    retMap.put("输液量(mL)", operationRecordLabel.getTransfuseQuantity().getName());
+                }
+
+                //输血量(mL)
+                if (operationRecordLabel.getBloodQuantity() != null && StringUtils.isNotEmpty(operationRecordLabel.getBloodQuantity().getName())) {
+                    retMap.put("输血量(mL)", operationRecordLabel.getBloodQuantity().getName());
+                }
+
+                //术前用药
+                if (operationRecordLabel.getPreoperativeDrugs() != null && StringUtils.isNotEmpty(operationRecordLabel.getPreoperativeDrugs().getName())) {
+                    retMap.put("术前用药", operationRecordLabel.getPreoperativeDrugs().getName());
+                }
+
+                //术中用药
+                if (operationRecordLabel.getDuringDrugs() != null && StringUtils.isNotEmpty(operationRecordLabel.getDuringDrugs().getName())) {
+                    retMap.put("术中用药", operationRecordLabel.getDuringDrugs().getName());
+                }
+
+                //引流材料名称
+                if (operationRecordLabel.getDrainageMaterialsName() != null && StringUtils.isNotEmpty(operationRecordLabel.getDrainageMaterialsName().getName())) {
+                    retMap.put("引流材料名称", operationRecordLabel.getDrainageMaterialsName().getName());
+                }
+
+                //引流材料数目
+                if (operationRecordLabel.getDrainageMaterialsAmount() != null && StringUtils.isNotEmpty(operationRecordLabel.getDrainageMaterialsAmount().getName())) {
+                    retMap.put("引流材料数目", operationRecordLabel.getDrainageMaterialsAmount().getName());
+                }
+
+                //放置部位
+                if (operationRecordLabel.getPlacePosition() != null && StringUtils.isNotEmpty(operationRecordLabel.getPlacePosition().getName())) {
+                    retMap.put("放置部位", operationRecordLabel.getPlacePosition().getName());
+                }
+            }
+        });
+    }
+
     private Map<String, String> cutWord(String text) {
         Map<String, String> sourceMap = Maps.newHashMap();
+        text = text.replace("年  月  日  时  分", "");
         List<String> titles = CommonAnalysisUtil.sortTitles(
                 Lists.newArrayList("手术开始时间", "手术结束时间", "术前诊断", "手术名称", "术中诊断", "手 术 者", "助手", "麻醉方法", "麻 醉 者", "手术标本",
                         "术中并发症", "术中失血量", "手术经过", "记录者", "主刀医生"),
@@ -99,9 +184,8 @@ public class OperationRecordDocTran extends TargetTran {
             "手术开始时间=手术开始日期时间",
             "手术结束时间=手术结束日期时间",
             "手术经过=手术过程描述",
-            "手 术 者=手术者姓名",
-            "助手=Ⅰ助姓名",
-            "麻 醉 者=麻醉医师姓名",
+            "手术者=手术者姓名",
+            "麻醉者=麻醉医师姓名",
             "医护人员陈述=手术者签名",
             "主刀医生=手术者签名"
     );

File diff suppressed because it is too large
+ 67 - 30
structure-center/src/main/java/com/lantone/structure/facade/tran/SpecialCureConsentDocTran.java


+ 1 - 0
structure-center/src/main/java/com/lantone/structure/model/Content.java

@@ -257,6 +257,7 @@ public class Content {
     public static final String rescue = "抢救记录";
     public static final String wardRecord = "上级医师查房记录";
     public static final String caesareanSection = "剖宫产手术";
+    public static final String operationRecord = "一般手术记录";
 
     public static String[] dateFormats = {
             "yyyy年MM月dd日HH时mm分",

+ 15 - 0
structure-center/src/main/java/com/lantone/structure/model/entity/BleedQuantity.java

@@ -0,0 +1,15 @@
+package com.lantone.structure.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : BleedQuantity
+ * @Description : 出血量(mL)
+ * @Author : wsy
+ * @Date: 2021-03-15 10:09
+ */
+@Setter
+@Getter
+public class BleedQuantity extends General {
+}

+ 15 - 0
structure-center/src/main/java/com/lantone/structure/model/entity/BloodQuantity.java

@@ -0,0 +1,15 @@
+package com.lantone.structure.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : BloodQuantity
+ * @Description : 输血量(mL)
+ * @Author : wsy
+ * @Date: 2021-03-15 10:09
+ */
+@Setter
+@Getter
+public class BloodQuantity extends General {
+}

+ 15 - 0
structure-center/src/main/java/com/lantone/structure/model/entity/DrainageMaterialsAmount.java

@@ -0,0 +1,15 @@
+package com.lantone.structure.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : DrainageMaterialsAmount
+ * @Description : 引流材料数目
+ * @Author : wsy
+ * @Date: 2021-03-15 10:09
+ */
+@Setter
+@Getter
+public class DrainageMaterialsAmount extends General {
+}

+ 15 - 0
structure-center/src/main/java/com/lantone/structure/model/entity/DrainageMaterialsName.java

@@ -0,0 +1,15 @@
+package com.lantone.structure.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : DrainageMaterialsName
+ * @Description : 引流材料名称
+ * @Author : wsy
+ * @Date: 2021-03-15 10:09
+ */
+@Setter
+@Getter
+public class DrainageMaterialsName extends General {
+}

+ 15 - 0
structure-center/src/main/java/com/lantone/structure/model/entity/DuringDrugs.java

@@ -0,0 +1,15 @@
+package com.lantone.structure.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : DuringDrugs
+ * @Description : 术中用药
+ * @Author : wsy
+ * @Date: 2021-03-15 10:09
+ */
+@Setter
+@Getter
+public class DuringDrugs extends General {
+}

+ 15 - 0
structure-center/src/main/java/com/lantone/structure/model/entity/OperationIncision.java

@@ -0,0 +1,15 @@
+package com.lantone.structure.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : OperationIncision
+ * @Description : 手术切口描述
+ * @Author : wsy
+ * @Date: 2021-03-15 10:09
+ */
+@Setter
+@Getter
+public class OperationIncision extends General {
+}

+ 15 - 0
structure-center/src/main/java/com/lantone/structure/model/entity/PlacePosition.java

@@ -0,0 +1,15 @@
+package com.lantone.structure.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : PlacePosition
+ * @Description : 放置部位
+ * @Author : wsy
+ * @Date: 2021-03-15 10:09
+ */
+@Setter
+@Getter
+public class PlacePosition extends General {
+}

+ 15 - 0
structure-center/src/main/java/com/lantone/structure/model/entity/PreoperativeDrugs.java

@@ -0,0 +1,15 @@
+package com.lantone.structure.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : PreoperativeDrugs
+ * @Description : 术前用药
+ * @Author : wsy
+ * @Date: 2021-03-15 10:09
+ */
+@Setter
+@Getter
+public class PreoperativeDrugs extends General {
+}

+ 15 - 0
structure-center/src/main/java/com/lantone/structure/model/entity/SkinSterilize.java

@@ -0,0 +1,15 @@
+package com.lantone.structure.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : SkinSterilize
+ * @Description : 皮肤消毒描述
+ * @Author : wsy
+ * @Date: 2021-03-15 10:09
+ */
+@Setter
+@Getter
+public class SkinSterilize extends General {
+}

+ 15 - 0
structure-center/src/main/java/com/lantone/structure/model/entity/TransfuseQuantity.java

@@ -0,0 +1,15 @@
+package com.lantone.structure.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : TransfuseQuantity
+ * @Description : 输液量(mL)
+ * @Author : wsy
+ * @Date: 2021-03-15 10:09
+ */
+@Setter
+@Getter
+public class TransfuseQuantity extends General {
+}

+ 14 - 2
structure-center/src/main/java/com/lantone/structure/model/label/OperationRecordLabel.java

@@ -1,6 +1,6 @@
 package com.lantone.structure.model.label;
 
-import com.lantone.structure.model.entity.Drug;
+import com.lantone.structure.model.entity.*;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -16,5 +16,17 @@ import java.util.List;
 @Getter
 @Setter
 public class OperationRecordLabel {
-    private List<Drug> drugs = new ArrayList<>();  //药物
+    private List<Drug> drugs = new ArrayList<>();                           //药物
+    private String opBottomName;                                            //手术目标部位名称
+    private List<Intervention> interventions = new ArrayList<>();           //介入物名称
+    private SkinSterilize skinSterilize;                                    //皮肤消毒描述
+    private OperationIncision operationIncision;                            //手术切口描述
+    private BleedQuantity bleedQuantity;                                    //出血量(mL)
+    private TransfuseQuantity transfuseQuantity;                            //输液量(mL)
+    private BloodQuantity bloodQuantity;                                    //输血量(mL)
+    private PreoperativeDrugs preoperativeDrugs;                            //术前用药
+    private DuringDrugs duringDrugs;                                        //术中用药
+    private DrainageMaterialsName drainageMaterialsName;                    //引流材料名称
+    private DrainageMaterialsAmount drainageMaterialsAmount;                //引流材料数目
+    private PlacePosition placePosition;                                    //放置部位
 }