Sfoglia il codice sorgente

对接疾病筛查和补筛

hwy 1 mese fa
parent
commit
9eac6c924f

+ 7 - 1
api/jbsc-api.js

@ -128,7 +128,13 @@
	findMedicalDetail: function(data) {
		return httpRequest.post("doctor/health_record/medical_detail", { data: data })
	},
	
  getScreenList: function (data) {
    return httpRequest.post('/doctor/screen/getScreenList', { data: data })
  },
    //导出
    exportScreenResultList: function (data, filename) {
      return httpRequest.downLoadFileForAjax('doctor/screen/exportScreenResultList', filename, data)
    },
  }
  exports.jbscAPI = jbscAPI

+ 3 - 0
api/rehabilitation-api.js

@ -173,6 +173,9 @@
		appointmentConsultation: function(data){
			return httpRequest.get("doctor/specialist/rehabilitation/appointmentConsultation", {data: data})
		},
		getList: function(data){
			return httpRequest.get("doctor/specialist/screen/getList", {data: data})
		},
	}
    exports.rehaAPI = rehaAPI;
})(window)

+ 9 - 1
app/jbsc/css/statistics.css

@ -296,4 +296,12 @@ button.dropdown-toggle:hover .caret {
.el-date-editor .el-range-separator{
	line-height: 25px;
	width: auto;
}
}
.el-input__inner{
	height: 30px;
}
.el-input__suffix{
	display: flex;
	align-items: center;
	border-left: 1px solid #d2d2d2;
}

+ 1 - 1
app/jbsc/html/filter_type.html

@ -466,7 +466,7 @@
										closeBtn:1,
										shift: 5,
										shadeClose: false, //点击遮罩关闭层
										content: '../../jbsc/html/questionnaire.html?fliter_code='+vm.screeningType.code+'&fliter_title='+vm.screeningType.title+'&resident_code='+pCode+'&resident_name='+vm.screeningResidents.name+'&sex='+vm.screeningResidents.sex+'&age='+vm.screeningResidents.age+vm.screeningResidents.idcard+'&mobile='+vm.screeningResidents.mobile
										content: '../../jbsc/html/questionnaire.html?fliter_code='+vm.screeningType.code+'&fliter_title='+vm.screeningType.title+'&resident_code='+pCode+'&resident_name='+vm.screeningResidents.name+'&sex='+vm.screeningResidents.sex+'&age='+vm.screeningResidents.age+'&idcard='+vm.screeningResidents.idcard+'&mobile='+vm.screeningResidents.mobile
									});
									var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
									parent.layer.close(index); //再执行关闭

+ 3 - 1
app/jbsc/html/questionnaire.html

@ -166,6 +166,7 @@
					sex:decodeURI(httpData['sex']),
					age:decodeURI(httpData['age']),
					doctorInfo:{code:docInfo.code},
					surveyStatus: httpData['surveyStatus']||'',
					questions:[],
					tizhongRecord:{},
					labelType:5,//问卷筛查labelType=5
@ -650,7 +651,7 @@
						var loadding = top.layer.load(0, {shade: false}); //0代表加载的风格,支持0-2
						vm.selectArr.forEach(function(v){
							if(v.thirdKey == "assessTime") {
								v.content = v.content.format('yyyy-MM-dd HH:mm')
								v.content = new Date(v.content).format('yyyy-MM-dd HH:mm')
							}
						})
						var data={
@ -658,6 +659,7 @@
							labelType:vm.labelType,
							isAgain:vm.isAgain,
							source:1,
							surveyStatus:vm.surveyStatus,
							jsonData:JSON.stringify({
								surveyCode:vm.screeningType,
								questions:vm.selectArr	

+ 121 - 48
app/jbsc/html/statistics.html

@ -128,56 +128,125 @@
							<a href="javascript:;" :class="{curr:isDanger=='1'}" @click="gettable('1')"><span>疑似高危记录表</span></a>
							<a href="javascript:;" :class="{curr:isDanger==''}" @click="gettable('')"><span>所有记录</span></a>
						</div>-->
        
          <div class="tabs-bd pt20 plr20">
            <div class="dataCell form-group">
              <div class="w160 inline c-vam">
                <div class="input-group">
                  <input
                    id="Type"
                    placeholder="请选择筛查类型"
                    type="text"
                    class="form-control bgc-fff"
                    name="Type"
                    readonly="readonly" />
                  <div class="input-group-btn">
                    <button
                      type="button"
                      class="btn btn-white dropdown-toggle"
                      data-toggle="dropdown"
                      aria-haspopup="true"
                      aria-expanded="false">
                      <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu dropdown-menu-right"></ul>
    
          <div class="tabs-bd pt20 plr20" >
            <template v-if="scListItem">
              <div class="dataCell form-group">
                <div class="w160 inline c-vam">
                  <div class="input-group">
                    <input
                      id="Type"
                      placeholder="请选择筛查"
                      type="text"
                      value="冠心病"
                      class="form-control bgc-fff"
                      name="Type"
                      readonly="readonly" />
                    <div class="input-group-btn">
                      <button
                        type="button"
                        class="btn btn-white dropdown-toggle"
                        data-toggle="dropdown"
                        aria-haspopup="true"
                        aria-expanded="false">
                        <span class="caret"></span>
                      </button>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <div class="dataCell form-group">
              <div class="w160 inline c-vam">
                <div class="input-group">
                  <input
                    id="Status"
                    placeholder="请选择管理情况"
                    type="text"
                    class="form-control"
                    name="Status"
                    readonly="readonly" />
                  <div class="input-group-btn">
                    <button
                      type="button"
                      class="btn btn-white dropdown-toggle"
                      data-toggle="dropdown"
                      aria-haspopup="true"
                      aria-expanded="false">
                      <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu dropdown-menu-right"></ul>
              
              <div class="dataCell form-group">
                <div class="w160 inline c-vam">
                  <div class="input-group">
                    <input
                      id="Type"
                      placeholder="请选择筛查"
                      Value="ASCVD风险评估"
                      type="text"
                      class="form-control bgc-fff"
                      name="Type"
                      readonly="readonly" />
                    <div class="input-group-btn">
                      <button
                        type="button"
                        class="btn btn-white dropdown-toggle"
                        data-toggle="dropdown"
                        aria-haspopup="true"
                        aria-expanded="false">
                        <span class="caret"></span>
                      </button>
                    </div>
                  </div>
                </div>
            </template>
            <template v-else>
              <div class="dataCell form-group">
                <div class="w160 inline c-vam">
                  <div class="input-group">
                    <input
                      id="Type"
                      placeholder="请选择筛查"
                      type="text"
                      class="form-control bgc-fff"
                      name="Type"
                      readonly="readonly" />
                    <div class="input-group-btn">
                      <button
                        type="button"
                        class="btn btn-white dropdown-toggle"
                        data-toggle="dropdown"
                        aria-haspopup="true"
                        aria-expanded="false">
                        <span class="caret"></span>
                      </button>
                      <ul class="dropdown-menu dropdown-menu-right" ></ul>
                    </div>
                  </div>
                </div>
              </div>
              
              <div class="dataCell form-group">
                <div class="w160 inline c-vam">
                  <div class="input-group">
                    <el-select v-model="selectedNewDropdown"  placeholder="请选择筛查表单" >
                      <el-option
                        v-for="item in newDropdownItems"
                        :key="item.code"
                        :label="item.name"
                        :value="item.code">
                      </el-option>
                    </el-select>
                    </div>
                  </div>
                </div>
            </template>
              <div class="dataCell form-group">
                <div class="w160 inline c-vam">
                  <div class="input-group">
                    <input
                      id="Status"
                      placeholder="请选择管理情况"
                      type="text"
                      class="form-control"
                      name="Status"
                      readonly="readonly" />
                    <div class="input-group-btn">
                      <button
                        type="button"
                        class="btn btn-white dropdown-toggle"
                        data-toggle="dropdown"
                        aria-haspopup="true"
                        aria-expanded="false">
                        <span class="caret"></span>
                      </button>
                      <ul class="dropdown-menu dropdown-menu-right"></ul>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          <div class="dataCell form-group">
            <el-date-picker
            style="height: 30px;width: 350px;display: flex;align-items: center;list-style: none;"
@ -185,18 +254,22 @@
            type="daterange"
            range-separator="至"
            start-placeholder="开始日期"
            end-placeholder="结束日期">
            end-placeholder="结束日期"
            format="yyyy-MM-dd"
            value-format="yyyy-MM-dd"
            >
          </el-date-picker>
          </div>
            <input
              class="form-control w-220 fl"
              style="height: 28px; border-radius: 3px"
              placeholder="请输入居民姓名"
              v-model="name" />
              
              v-model="name"
              :readonly="scListItem.patientName"
              />
            <div class="btn bgc-12B7F5 fl ml20" @click="search(1)">查询</div>
            <div class="btn bgc-12B7F5 ml20 right" @click="shaicha()">人工筛查</div>
            <div class="btn bgc-12B7F5 fl ml20" @click="search(1)">导出</div>
            <div class="btn fl ml20" @click="exportScreenResultList()" style="background-color: #67c23a;" v-if="!scListItem">导出</div>
          </div>
        </div>
      </div>

+ 128 - 5
app/jbsc/js/statistics.js

@ -1,3 +1,4 @@
function showSuccessMessage(msg) {
  layer.msg(msg, {
    icon: 1
@ -22,7 +23,7 @@ function showInfoMessage(msg) {
  })
}
var httpData=GetRequest();
new Vue({
  el: '#app',
  data: {
@ -38,7 +39,9 @@ new Vue({
    tablelist: [],
    types: [],
    Statics: {},
    scListItem:'',
    wujilu: false,
    value1:'',
    datamodelshow: true,
    centerDialogVisible: false,
	surveyResultCode:"",
@ -46,13 +49,76 @@ new Vue({
	docInfo:JSON.parse(window.localStorage.getItem('docInfo')),
	jiayiShow:false,
	doctorMobile:'',
  newDropdownItems: [
  ],
  selectedNewDropdown: ''
  },
  created:function() {
	
  },
  watch:{
  },
  mounted: function () {
    var vm = this
    // vm.scListItem={
    //   id: 3297,
    //   code: "e95d50219c71401ba4fb52a63faf821f",
    //   templateCode: "6bcd306aaafb4e4381071346d86fadbb1",
    //   templateTitle: "ASCVD风险评估",
    //   disease: 3,
    //   doctor: "361aef4891de492cb0e6a47cf9fe31f3",
    //   doctorMobile: "15200000001",
    //   patientCode: "0fab4dd67e074e16ac86db6b6c15233e",
    //   photo: "group1/M01/23/EF/Cl8WjGUL6EeAUdSeAATf8kYXf5o571.png",
    //   openId: null,
    //   patientName: "黄小蕾",
    //   screenResultCode: "1",
    //   screenResultScore: -1,
    //   screenResult: "超高危",
    //   isDanger: 1,
    //   isOrder: 0,
    //   following: 0,
    //   isEducate: 0,
    //   over: 1,
    //   reservationCode: null,
    //   czrq: "2024-10-18 15:04:50",
    //   isAgain: 1,
    //   parentCode: null,
    //   originCode: "e95d50219c71401ba4fb52a63faf821f",
    //   adviceCode: null,
    //   otherAdvice: null,
    //   source: 1,
    //   updateTime: null,
    //   idcard: "650101198007121633",
    //   sex: "1",
    //   age: 44,
    //   level: 0,
    //   doctorName: null,
    //   isThird: null,
    //   thirdId: null,
    //   thirdSource: "4",
    //   thirdAdvice: "应定期到医院进行检查,积极采取各类措施,并服用一些必要的药物进行预防。针对超高危人群的低密度脂蛋白胆固醇推荐目标值为<1.4mmol/L",
    //   doctorNameReservation: null,
    //   czrqReservation: null,
    //   startTimeReservation: null,
    //   surveyStatus: null,
    //   hospitalName: null,
    //   value1: null,
    //   value2: null,
    //   doctorIdcard: null,
    //   hospital: null,
    //   town: null,
    //   mobile: null,
    //   birthday: null
    // }
    vm.name=vm.scListItem.patientName
    if(httpData.scListItem){
      vm.scListItem=JSON.parse(decodeURIComponent(httpData.scListItem))
      vm.name=vm.scListItem.patientName
      console.log('3333333333333333',JSON.parse(decodeURIComponent(httpData.scListItem)))
    }
    vm.getModal()
     // 初始化Bootstrap下拉菜单
	// 专科
	if(vm.docInfo.level == '1') {
		vm.getList()
@ -60,6 +126,7 @@ new Vue({
		vm.getDatas()
	}
    vm.gettypes()
    vm.getDraopDown()
	parent.eventBuss.$on('guan_results',function(index){
		top.layer.close(index)
		if(vm.docInfo.level == '1') {
@ -71,6 +138,10 @@ new Vue({
	})
  },
  methods: {
    selectTemplate: function (template) {
      this.templateCode = template.code
      $('#TemplateCode').val(template.name)
    },
	lianxijiayi:function(data) {
		this.doctorMobile = data.doctorMobile
		this.jiayiShow = true
@ -114,12 +185,17 @@ new Vue({
    getDatas: function () {
      var vm = this
      var params = {
        diseaseType: vm.type, //疾病类型
        diseaseType:vm.scListItem?'3': vm.type, //疾病类型
        dealType: vm.status, //处理方式(全部为空 1已预约 2已跟踪 3已接诊4待处理)
        patientName: vm.name, //搜索居民的姓名
        isDanger: vm.isDanger, //是否高危预警(0否 1是)
        pageNo: vm.currentPage,
        pageSize: vm.pagesize
        pageSize: vm.pagesize,
        templateCode:  vm.scListItem?'6bcd306aaafb4e4381071346d86fadbb1': vm.selectedNewDropdown,
        startDate:vm.value1[0],
        endDate:vm.value1[1],
        patient:vm.scListItem?vm.scListItem.patientCode:"",
        onlyPatient:vm.scListItem? '1':''
      }
      jbscAPI.getResultList(params).then(function (res) {
        if (res.status == 200) {
@ -160,6 +236,48 @@ new Vue({
		  }
		})
	},
  getDraopDown:function(diseaseType){
    var vm=this
    console.log(diseaseType,'asdddddddddddd')
       jbscAPI.getScreenList({pageNo:1,pageSize:1000,labelType:'5',title:'',diseaseType:diseaseType}).then(function (res) {
        if (res.status == 200) {
          vm.newDropdownItems = _.map(res.data, function (v) {
            return {
              code: v.code,
              name: v.title
            }
    
          }
        )
        if(vm.newDropdownItems.length>1){
          vm.newDropdownItems=[
            {
              code: 'all',
              name: '全部'
            }
          ].concat(vm.newDropdownItems)
        }
      }})
  },
  exportScreenResultList:function(){
      var vm=this
      if(vm.selectedNewDropdown==''||vm.selectedNewDropdown=='all'){
        showErrorMessage('请选中筛查表单!')
        return false
      }
      jbscAPI.exportScreenResultList({
        diseaseType: vm.type, //疾病类型
        dealType: vm.status? vm.status:'', //处理方式(全部为空 1已预约 2已跟踪 3已接诊4待处理)
        patientName: vm.name, //搜索居民的姓名
        isDanger: vm.isDanger, //是否高危预警(0否 1是)
        pageNo: vm.currentPage,
        pageSize: vm.pagesize,
        templateCode:vm.selectedNewDropdown,
        startDate:vm.value1[0]?vm.value1[0]:'',
        endDate:vm.value1[1]?vm.value1[1]:''
      },'筛查表单.xls')
  },
    gettypes: function () {
      var vm = this
      var search = true
@ -227,8 +345,12 @@ new Vue({
            getDataMethod: 'data',
            effectiveFields: ['name'],
            idField: 'code',
            keyField: 'name'
          })
            keyField: 'name',
          }).on('onSetSelectValue', function (e, selectedData, selectedRawData) {
            vm.getDraopDown(selectedData.id)
            vm.selectedNewDropdown=''
            console.log('onSetSelectValue: ', e.target.value, selectedData, selectedRawData);
        })
          vm.types = res.data
        } else {
          showErrorMessage(res.msg)
@ -258,6 +380,7 @@ new Vue({
      vm.isDanger = type
      vm.search(1)
    },
    //页面跳转
    search: function (page) {
      var vm = this

+ 11 - 10
app/rehabilitation/html/rehabilitation_management.html

@ -145,18 +145,19 @@
						<div>
							<div class="filter-top">
								<span>筛查信息</span>
								<div class="div-patient-home">查看筛查历史</div>
								<div class="div-patient-home" @click.stop="gotoCheck">查看筛查历史</div>
							</div>
							<div class="filter-info">
								<template v-if="false">
									<span>2024-03-14 15:00:00</span>
									<span>风险评估</span>
									<span>高危</span>
								</template>
								<template v-else>
							<div  @click="view(scList[0].code)" v-if="scList.length" style="display: flex;align-items: center; justify-content: space-between;border: 1px solid #e5e5e5;height: 50px;padding: 0 6px;">
								<div>
									<span style="margin-right: 10px;">{{scList[0].czrq}}</span>
									<span  style="margin-right: 10px;color: #12b7f5;">{{scList[0].templateTitle}}</span>
									<span >{{scList[0].screenResult}}</span>
								</div>
								<div>></div>
							</div>
							<div class="filter-info" v-else>
									<span>该患者近一年未进行冠心病的风险评估</span>
									<el-button type="text" @click="gotoCheck">前往筛查</el-button>
								</template>
									<el-button type="text" @click="gotoSc">前往筛查</el-button>
							</div>
						</div>
						<div class="ui-grid mt15 pb15">

+ 56 - 2
app/rehabilitation/js/rehabilitation_management.js

@ -68,15 +68,19 @@
			limitlessItems: [],
			showServerItemDetail: false,
			serverItemInfo: undefined,
			islimit: false
			islimit: false,
			scList:[]
		},
		mounted:function(){
			if(!this.planId){
				layer.msg('未传入计划id(planId)',{icon:2})
			}else{							
				this.tabStatus=1;
			}
			this.planSchedule();
			
			// this.serviceDoctorList();//获取服务医生列表
			this.selectPlanServerDoctor();//获取服务医生列表
			this.bindEvents();
@ -85,7 +89,56 @@
		},
		methods:{
			gotoCheck:function(){
      window.location.href='../../jbsc/html/statistics.html?code=afaedb9ffd83497888e202ceb78cd8fd'
      window.location.href='../../jbsc/html/statistics.html?scListItem='+encodeURIComponent(JSON.stringify(this.scList[0]))
			},
			view: function (code) {
				var vm = this
					layer.open({
						type: 2,
						//				  offset: ['100px'], //右下角弹出
						area: ['568px', '100%'],
						shade: 0.5,
						title: '查看筛选结果',
						fixed: true, //不固定
						maxmin: true,
						closeBtn: 1,
						shift: 5,
						shadeClose: false, //点击遮罩关闭层
						content: '../../jbsc/html/view_screening_results.html?isView=true&resultCode=' +code
					})
				},
			gotoSc:function(){
				console.log(this.planInfo,'sadddddddddddddddddd')
				top.layer.open({
					type: 2,
					area: ['820px', '648px'],
					shade: 0.5,
					title: 'ASCVD风险评估',
					fixed: true, //不固定
					maxmin: true,
					closeBtn:1,
					shift: 5,
					shadeClose: false, //点击遮罩关闭层
					content: '../../jbsc/html/questionnaire.html?fliter_code=6bcd306aaafb4e4381071346d86fadbb1'+'&fliter_title=ASCVD风险评估'+'&resident_code='+this.planInfo.patientCode+'&resident_name='+this.planInfo.patientName+'&sex='+this.planInfo.sex+'&age='+this.planInfo.age+'&idcard='+this.planInfo.idcard+'&mobile='+this.planInfo.mobile+"&surveyStatus=2"
				});
			},
			getList:function(){
				var vm=this
				rehaAPI.getList({
					doctor: docInfo.code,
					diseaseType: 3,
					type: '',
					patientName: '',
					patientCode:  this.patientCode,
					isDanger: '',
					pageNo: 1,
					pageSize: 1,
					filterType: 1,
					isAscvd: 1
				}).then(function(res){
          vm.scList= res.data
					console.log(res,'dasssssssssssssssssss')
				})
			},
			// 刷新
			refresh: function(){
@ -116,6 +169,7 @@
				rehaAPI.planSchedule(params).then(function(res){
					 if(res.status == 200){
			            vm.planInfo = res.data;
									vm.getList()
			            vm.planInfo.tagClass = "tag-"+res.data.healthyConditionType;
			            //patientImg:居民签名照/证件照,如果不为null的话说明居民已确认,显示康复完成明细
			            if(vm.planInfo.status==2 && !vm.planInfo.patientImg){//任务全部完成时,显示完成提示框