Bläddra i källkod

Merge branch 'dev' of http://192.168.2.236:10080/zhouna/ai-admin into dev

1178232204@qq.com 3 år sedan
förälder
incheckning
cead3b19cd
3 ändrade filer med 92 tillägg och 222 borttagningar
  1. 2 1
      src/api/request.js
  2. 66 135
      src/components/DiagManager/addDiag.js
  3. 24 86
      src/components/DiagManager/index.js

+ 2 - 1
src/api/request.js

@@ -86,7 +86,8 @@ const request = {
     getRecordTemplatePage:"/daqe-center/recordTemplateManage/getRecordTemplatePage",        //文书模板列表
 	
 	//诊断管理
-	getDiseasePage:'/daqe-center/diseaseManage/getDiseasePage',//获取诊断分页列表
+	getTermPage:'/mdsp-service/tran/mappingConfig/getPage',//获取术语信息分页列表
+    termMatching:'/mdsp-service/term/termMatching',             //术语匹配搜索(与药品,手术公用)
 	addDisease:'/daqe-center/diseaseManage/addDisease',//添加诊断
 	delDiseaseById:'/daqe-center/diseaseManage/delDiseaseById',//通过id删除诊断
 	matchingDisease:'/daqe-center/diseaseManage/matchingDisease',//匹配诊断

+ 66 - 135
src/components/DiagManager/addDiag.js

@@ -1,5 +1,5 @@
 import React, {
-  useState,useContext
+  useState,useContext,useEffect
 } from 'react';
 import { Form, Input, Select, message } from 'antd';
 import apiObj from '@api/index';
@@ -7,70 +7,24 @@ import { getCookie,setCookie } from '@utils/index';
 import DiagContext from './Diag-context';
 /*import { useSelector } from 'react-redux'*/
 import './index.less'
+import {Modal} from "antd/lib/index";
 const { post, api } = apiObj;
 
-function AddDiag(props) {
-  
+function AddDiag({matchChange,visible,cancel,onOk,title}) {
   const [form] = Form.useForm();
-  const { type, formData} = useContext(DiagContext);
+  const { formData } = useContext(DiagContext);
+  console.log('formData',formData)
   const { Option } = Select;
-  const [searchTxt,setSearchTxt] = useState("");
-  const [icdcode,setIcdcode] = useState("");
+  const [unsaved, setUnsaved] = useState(false);//修改未保存弹窗
+  const [searchTxt,setSearchTxt] = useState((formData||{}).hisName);
+  const [icdcode,setIcdcode] = useState((formData||{}).code);
   const [dataList, setDataList] = useState([]);//当前页列表数据
-  /*const staticInfo = useSelector(state => {
-    return state.staticInfo;
-  });*/
-  const initialValues = formData;
+  //const initialValues = formData;
 
-  /*const onFinish = values => {
-	  values.status ? values.status=1:values.status=0
-    let params = values
-    if (type == 3) {
-	  params.id=initialValues.id
-      editDisease(params)
-    } else {
-      addDisease(params)
-    }
-
-  };
-  function addDisease(param) {
-    const hisId = getCookie("hospitalId");
-	const params ={
-		hospitalId:hisId,
-		...param
-	}
-	post(api.addDisease, params).then((res) => {
-      if (res.data.code === 200) {
-        props.DiagChange()
-        message.success(res.data.message);
-      } else {
-        message.error(res.data.message);
-      }
-    })
-  }
-  function editDisease(param) {
-	  const hisId = getCookie("hospitalId");
-	  const params ={
-	  	hospitalId:hisId,
-	  	...param
-	  }
-    post(api.upDiseaseById, params).then((res) => {
-      if (res.data.code === 200) {
-        props.DiagChange()
-        message.success(res.data.message);
-      } else {
-        message.error(res.data.message);
-      }
-    })
-  }*/
-  //判断是否有未保存的修改
-  function onValuesChange() {
-  	props.isChange(form.isFieldsTouched())
-  }
   //标准术语搜索
   function handleSearch(val){
-    const searchTxt = val.trim();
-	post(api.getConceptLibraryPage, {word:searchTxt}).then((res) => {
+    const txt = val.trim();
+	post(api.termMatching, {inputStr:txt,type:4}).then((res) => {
 	  if (res.data.code === 200) {
 		const data = res.data.data;
 		const list = data.records||[];
@@ -80,31 +34,63 @@ function AddDiag(props) {
   }
   //选中(修改)标准词时
   function handleChange(val){
+    console.log('选中:',val)
 	setSearchTxt();
 	setIcdcode();
-	const param = {
-
-	};
-	props.matchChange(param);
   }
-
+  //保存匹配,先验证输入
+  function saveMatching(){
+	form.validateFields().then(function(values){
+	  console.log('values:',values)
+	  onOk({...values,type:4})
+	})
+  }
+  //关闭新增/编辑弹窗
+  function saveCancel(){
+    //有未保存修改时弹窗提醒
+    const isChange = form.isFieldsTouched();
+    if(isChange){
+	  setUnsaved(true);
+	}else{
+	  cancel();
+	}
+  }
+  //不保存当前修改,退出弹窗
+  function unsavedOk() {
+	setUnsaved(false);
+	cancel();	//关闭新增/修改弹窗
+	form.resetFields();	//清空表单值
+  }
+  //未保存提醒弹窗关闭
+  function unsavedCancel() {
+	setUnsaved(false)
+  }
   return (
     <>
+	  <Modal
+		  title={title}
+		  okText='确定'
+		  cancelText='关闭'
+		  width={'65%'}
+		  visible={visible}
+		  onOk={saveMatching}
+		  onCancel={saveCancel}
+		  forceRender={true}
+		  initialValues={formData}
+	  >
 	  <Form
 		  labelCol={{ span: 6 }}
 		  wrapperCol={{ span: 16 }}
 		  className='clearfix'
 		  form={form}
 		  name="register"
-		  initialValues={initialValues}
-		  onValuesChange={onValuesChange}
 	  >
 
 		<div className="his-info info-box">
 			<p className='title'>医院术语</p>
 		  	<div className="item-box">
 			  <Form.Item
-				  name="name"
+				  name="hisName"
 				  label="医院诊断名称"
 				  rules={[
 					{
@@ -122,7 +108,7 @@ function AddDiag(props) {
 		  <p className='title'>标准术语</p>
 		  <div className="item-box">
 			<Form.Item
-				name="standard"
+				name="uniqueName"
 				label="标准诊断名称"
 				rules={[
 				  {
@@ -141,82 +127,27 @@ function AddDiag(props) {
 			  </Select>
 			</Form.Item>
 			<Form.Item
-				name="code"
 				label="ICD-10编码"
 			>
+			  {icdcode}
 			</Form.Item>
 		  </div>
 		</div>
-		<p className='linked-term'>已关联标准术语:</p>
+		<p className='linked-term'>已关联标准术语:{(formData||{}).uniqueName}</p>
 	  </Form>
-      {/*<Form
-        labelCol={{ span: 6 }}
-        wrapperCol={{ span: 16 }}
-        form={form}
-        name="register"
-        onFinish={onFinish}
-        initialValues={initialValues}
-		onValuesChange={onValuesChange}
-      >
-
-        <Form.Item
-          name="name"
-          label="医院诊断名称"
-          rules={[
-            {
-              required: true,
-              message: '请输入医院诊断名称',
-            },
-          ]}
-        >
-          {type == 3 ?
-		    <Input  autoComplete='off'/>
-            :
-            <Input placeholder="请输入医院诊断名称" autoComplete='off'/>
-          }
-
-        </Form.Item>
-		<Form.Item
-		  name="code"
-		  label="code"
-		  rules={[
-		    {
-		      required: true,
-		      message: '请输入code',
-		    },
-		  ]}
+		<Modal
+			maskClosable={false}
+			title="提示"
+			okText='确定'
+			cancelText='关闭'
+			width={400}
+			visible={unsaved}
+			onOk={unsavedOk}
+			onCancel={unsavedCancel}
 		>
-		  {type == 3 ?
-		    <Input  autoComplete='off'/>
-		    :
-		    <Input placeholder="请输入code" autoComplete='off'/>
-		  }
-		
-		</Form.Item>
-        <Form.Item
-          name="icd10"
-          label="ICD-10编码:"
-        >
-          {type == 3 ?
-            <Input  autoComplete='off'/>
-            :
-            <Input placeholder="请输入ICD-10编码:" autoComplete='off'/>
-          }
-
-        </Form.Item>
-        
-          <Form.Item wrapperCol={{ offset: 8, span: 16 }}>
-            <Space size="middle">
-              <Button htmlType="button" onClick={e => cancel()}>
-                取消
-            </Button>
-              <Button type="primary" htmlType="submit">
-                保存
-            </Button>
-            </Space>
-          </Form.Item>
-
-      </Form>*/}
+		  <p>当前数据未保存 是否确认关闭?</p>
+		</Modal>
+	  </Modal>
     </>
   );
 }

+ 24 - 86
src/components/DiagManager/index.js

@@ -19,15 +19,10 @@ function DiagManager() {
   const [title, setTitle] = useState("");//新增/修改的弹窗标题
   const [visible, setVisible] = useState(false);//新增修改 弹窗
   const [delvisible, setDelvisible] = useState(false);//删除 弹窗
-  //const [visible2, setvisible2] = useState(false);//匹配 弹窗
-  const [unsaved, setUnsaved] = useState(false);//修改未保存弹窗
-  const [revise, setRevise] = useState(false);//是否修改 新增修改内容
-  const [type, setType] = useState("");
   const [formData, setFormData] = useState(null);//当前行数据
   const [size, setSize] = useState(15);//每页显示条数
   const [total, setTotal] = useState(0);
   const [current, setCurrent] = useState(1);//当前页
-  const [saveParams, setSaveParams] = useState({});		//匹配诊断选中
   const [params, setParams] = useState({
     pages: 1,
     current: 1,
@@ -44,18 +39,17 @@ function DiagManager() {
   const showModal = (name, flag, Diagrow) => {
     setVisible(true);
     setTitle(name);
-    setType(flag)
     if (flag === 1) {
       setFormData({
-        status: '1'
+        status: 1
       })
     }else if (flag === 3) {
       setFormData(Diagrow)
     }
   }
   //表格数据
-  function getDiseasePage(param) {
-    post(api.getDiseasePage, param || params).then((res) => {
+  function getDiseasePage(param) {  //type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作
+    post(api.getTermPage, {...(param || params),type:4}).then((res) => {
       if (res.data.code === 200) {
         const data = res.data.data;
         setDiagList(data.records);
@@ -74,7 +68,7 @@ function DiagManager() {
       if (res.data.code === 200) {
         getDiseasePage();
         setDiagid("");
-        message.success("操作成功");
+        message.success("删除成功");
       } else {
         message.warning(res.data.msg || '操作失败');
       }
@@ -100,6 +94,7 @@ function DiagManager() {
     setParams(params)
     getDiseasePage()
   }
+  //筛选查询
   const onFinish = (value) => {
     const param = {
       ...data,
@@ -117,10 +112,6 @@ function DiagManager() {
     getDiseasePage(data);
   };
 
-  //导入弹窗取消或关闭
-  /*function handleCancel2() {
-    setvisible2(false);
-  }*/
   //删除 提示框取消或关闭
   function handleCancel() {
     setDelvisible(false);
@@ -128,38 +119,11 @@ function DiagManager() {
 
   //新增修改 取消或关闭
   function cancel() {
-    if (revise) {
-      setUnsaved(true)
-    } else {
       setVisible(false)
-      setFormData(null)
-    }
-  }
-  //是否有未保存的修改
-  function isChange(a) {
-    setRevise(a)
-  }
-  //不保存当前修改,退出弹窗
-  function addCancel() {
-    setRevise(false)
-    setVisible(false)
-    setUnsaved(false)
-    setFormData(null)
-  }
-  //未保存提醒弹窗关闭
-  function unsavedCancel() {
-    setUnsaved(false)
   }
 
-  //新增修改 保存
-  function DiagChange() {
-    setRevise(false)
-    setVisible(false)
-    getDiseasePage();
-  }
-  function saveMatching() {
+  function saveMatching(saveParams) {
     post(api.matchingDisease, saveParams).then((res) => {
-      //setvisible2(false);
       if (res.data.code === 200) {
         message.success("匹配成功");
         getDiseasePage();
@@ -170,18 +134,19 @@ function DiagManager() {
       message.warning(error.message || "接口出错,请重试",);
     })
   }
-  //匹配信息修改同步
-  function matchChange(data) {
-    setSaveParams(data);
-  }
+
   const columns = [
     { title: '序号', dataIndex: 'index', render: (text, record, index) => (current - 1) * params.size + index + 1 },
-	{ title: '操作时间', dataIndex: 'time', },
-    { title: '医院诊断名称', dataIndex: 'name', },
-    { title: 'ICD-10编码', dataIndex: 'icd10', },
-    { title: '标准诊断名称', dataIndex: 'standard', },
-	{ title: '标准诊断状态', dataIndex: 'status', },
-    { title: '是否匹配', dataIndex: 'isMapping', },
+	{ title: '操作时间', dataIndex: 'gmtModified', },
+    { title: '医院诊断名称', dataIndex: 'hisName', },
+    { title: 'ICD-10编码', dataIndex: 'code', },
+    { title: '标准诊断名称', dataIndex: 'uniqueName', },
+	{ title: '标准术语状态', dataIndex: 'status',render: (text, record) => {
+      return record.status===1?'启用':'禁用';
+    }},
+    { title: '是否匹配', dataIndex: 'isMatch',render: (text, record) => {
+        return record.isMatch===1?'已匹配':'未匹配';
+      }},
     {
       title: '操作', dataIndex: 'key', render: (text, record) => (
         <Space size="middle">
@@ -198,26 +163,25 @@ function DiagManager() {
           form={form}
           name="normal_login"
           onFinish={onFinish}
-          initialValues={{ isMapping: '' }}
         >
           <Row gutter={24}>
             <Col span={5} key={0}>
-              <Form.Item label="医院诊断名称" name="name">
+              <Form.Item label="医院诊断名称" name="hisName">
                 <Input placeholder="请输入" autoComplete='off' allowClear/>
               </Form.Item>
             </Col>
             <Col span={5} key={1}>
-              <Form.Item label="ICD-10编码" name="icd10">
+              <Form.Item label="ICD-10编码" name="hisCode">
                 <Input placeholder="请输入" autoComplete='off' allowClear/>
               </Form.Item>
             </Col>
             <Col span={5} key={2}>
-              <Form.Item label="标准诊断名称" name="standard">
+              <Form.Item label="标准诊断名称" name="uniqueName">
                 <Input placeholder="请输入" autoComplete='off' allowClear/>
               </Form.Item>
             </Col>
             <Col span={4} key={3}>
-              <Form.Item id="groupTypeval" label="是否匹配" name="isMapping">
+              <Form.Item id="groupTypeval" label="是否匹配" name="isMatch">
                 <Select
                   showSearch
                   optionFilterProp="children"
@@ -273,35 +237,9 @@ function DiagManager() {
             total: total
           }} />
       </div>
-      {visible && formData ?
-        <Modal
-          title={title}
-          okText='确定'
-          cancelText='关闭'
-          width={'65%'}
-          visible={visible}
-          onOk={saveMatching}
-          onCancel={cancel}
-          forceRender={true}
-          maskClosable={false}
-        >
-          <DiagContext.Provider value={{ type, formData }}>
-            <AddDiag matchChange={matchChange} cancel={cancel} isChange={isChange} />
-          </DiagContext.Provider>
-          <Modal
-            maskClosable={false}
-            title="提示"
-            okText='确定'
-            cancelText='关闭'
-            width={400}
-            visible={unsaved}
-            onOk={addCancel}
-            onCancel={unsavedCancel}
-          >
-            <p>当前数据未保存 是否确认关闭?</p>
-          </Modal>
-        </Modal>
-        : ''}
+      <DiagContext.Provider value={{ formData }}>
+        <AddDiag onOk={saveMatching} title={title} visible={visible} cancel={cancel} />
+      </DiagContext.Provider>
       <Modal
         maskClosable={false}
         title="删除诊断信息"