Browse Source

手动上传病历

chenyue 4 years ago
parent
commit
d16587b6db

+ 174 - 139
app/recover/html/medical-records.html

@ -25,78 +25,84 @@
	</head>
	<body class="m0">
	<div id="app" class="p10 c-333" v-cloak>
        <div class="pt10 flex ui-row mt10">
            <label class="c-999 required" style="font-weight: normal;">入院时间:</label>
            <div class="flex1">
				<el-date-picker v-model="admissionTime" type="date" placeholder="请选择">
				</el-date-picker>
            </div>
        </div>
		<div class="pt10 flex ui-row mt10">
            <label class="c-999 required" style="font-weight: normal;">入院诊断:</label>
            <div class="flex1">
				<div class="flex">
				    <el-autocomplete
						class="w-220"
						v-model="admittingDiagnosisValue"
						:fetch-suggestions="fetchAdmittingDiagnosis"
						placeholder="请输入内容"
						@select="handleSelect"
					></el-autocomplete>
					<button type="button" class="btn btn-12B7F5 btn-size-s ml15" style="border-radius: 0;" @click="saveDiagnosisWrap('admitting')">+ 添加</button>
				</div>
				<div>
					<el-tag
						v-for="(v, i) in admittingTags"
						:key="i"
						closable
						class="mr5 mt5"
						@close="closeTag('admitting', i)">
						{{v}}
					</el-tag>
				</div>
            </div>
        </div>
        <div class="pt10 flex ui-row mt10">
            <label class="c-999 required" style="font-weight: normal;">出院时间:</label>
            <div class="flex1">
				<!-- :picker-options="pickerOptions1" -->
				<el-date-picker v-model="dischargeTime" type="date" placeholder="请选择">
				</el-date-picker>
            </div>
        </div>
        <div class="pt10 flex ui-row mt10">
            <label class="c-999 required" style="font-weight: normal;">出院诊断:</label>
            <div class="flex1">
				<div class="flex">
				    <el-autocomplete
						class="w-220"
						v-model="dischargeDiagnosisValue"
						:fetch-suggestions="fetchDischargeDiagnosis"
						placeholder="请输入内容"
						@select="handleSelect"
					></el-autocomplete>
					<button type="button" class="btn btn-12B7F5 btn-size-s ml15" style="border-radius: 0;" @click="saveDiagnosisWrap('')">+ 添加</button>
				</div>
				<div>
					<el-tag
						v-for="(v, i) in dischargeTags"
						:key="i"
						closable
						class="mr5 mt5"
						@close="closeTag('discharge', i)">
						{{v}}
					</el-tag>
				</div>
            </div>
        </div>
        <div class="pt10 flex ui-row mt10">
            <label class="c-999 required" style="font-weight: normal;">医嘱小结:</label>
            <div class="flex1">
                <textarea v-model="advice" class="p10 c-333" style="height: 160px; width: 100%; border:1px solid #e1e1e1; resize:none;box-sizing: border-box"></textarea>
            </div>
        </div>
		<div class="pt10 flex ui-row mt10">
		<el-tabs v-model="uploadType" @tab-click="handleClick" :stretch="true">
		    <el-tab-pane label="手动上传" name="0"></el-tab-pane>
		    <el-tab-pane label="拍照上传" name="1"></el-tab-pane>
		</el-tabs>
		<div v-show="uploadType=='0'">
	        <div class="pt10 flex ui-row mt10">
	            <label class="c-999 required" style="font-weight: normal;">入院时间:</label>
	            <div class="flex1">
					<el-date-picker v-model="admissionTime" type="date" placeholder="请选择">
					</el-date-picker>
	            </div>
	        </div>
			<div class="pt10 flex ui-row mt10">
	            <label class="c-999 required" style="font-weight: normal;">入院诊断:</label>
	            <div class="flex1">
					<div class="flex">
					    <el-autocomplete
							class="w-220"
							v-model="admittingDiagnosisValue"
							:fetch-suggestions="fetchAdmittingDiagnosis"
							placeholder="请输入内容"
							@select="handleSelect"
						></el-autocomplete>
						<button type="button" class="btn btn-12B7F5 btn-size-s ml15" style="border-radius: 0;" @click="saveDiagnosisWrap('admitting')">+ 添加</button>
					</div>
					<div>
						<el-tag
							v-for="(v, i) in admittingTags"
							:key="i"
							closable
							class="mr5 mt5"
							@close="closeTag('admitting', i)">
							{{v}}
						</el-tag>
					</div>
	            </div>
	        </div>
	        <div class="pt10 flex ui-row mt10">
	            <label class="c-999 required" style="font-weight: normal;">出院时间:</label>
	            <div class="flex1">
					<!-- :picker-options="pickerOptions1" -->
					<el-date-picker v-model="dischargeTime" type="date" placeholder="请选择">
					</el-date-picker>
	            </div>
	        </div>
	        <div class="pt10 flex ui-row mt10">
	            <label class="c-999 required" style="font-weight: normal;">出院诊断:</label>
	            <div class="flex1">
					<div class="flex">
					    <el-autocomplete
							class="w-220"
							v-model="dischargeDiagnosisValue"
							:fetch-suggestions="fetchDischargeDiagnosis"
							placeholder="请输入内容"
							@select="handleSelect"
						></el-autocomplete>
						<button type="button" class="btn btn-12B7F5 btn-size-s ml15" style="border-radius: 0;" @click="saveDiagnosisWrap('')">+ 添加</button>
					</div>
					<div>
						<el-tag
							v-for="(v, i) in dischargeTags"
							:key="i"
							closable
							class="mr5 mt5"
							@close="closeTag('discharge', i)">
							{{v}}
						</el-tag>
					</div>
	            </div>
	        </div>
	        <div class="pt10 flex ui-row mt10">
	            <label class="c-999 required" style="font-weight: normal;">医嘱小结:</label>
	            <div class="flex1">
	                <textarea v-model="advice" class="p10 c-333" style="height: 160px; width: 100%; border:1px solid #e1e1e1; resize:none;box-sizing: border-box"></textarea>
	            </div>
	        </div>
		</div>
		<div class="pt10 flex ui-row mt10" v-show="uploadType=='1'">
            <label class="c-999 required" style="font-weight: normal;">病历图片:</label>
			<div class="flex1">
				<ul class="upload-box">
@ -195,6 +201,7 @@
					imgData: {
						accept: 'image/gif, image/jpeg, image/png, image/jpg',
					},
					uploadType:'0',
                },
                mounted: function() {
					if(httpData['medicalRecordsId']){
@ -204,28 +211,36 @@
					}
                },
                methods: {
                	handleClick(tab, event) {
                		this.uploadType = tab.index
				    },
					initMedicalRecords: function(model){
						var vm = this
						vm.admissionTime = model.admissionTime
						vm.dischargeTime = model.dischargeTime
						vm.admittingTags = model.admittingDiagnosisName.split(',')
						var admittingCodeArr = model.admittingDiagnosis.split(',')
						$.each(vm.admittingTags, function(index, o){
							vm.admittingTagsObj[o] = admittingCodeArr[index]
						})
						vm.dischargeTags = model.dischargeDiagnosisName.split(',')
						var dischargeCodeArr = model.dischargeDiagnosis.split(',')
						$.each(vm.dischargeTags, function(index, o){
							vm.dischargeTagsObj[o] = dischargeCodeArr[index]
						})
						var imgList = model.images.split(',')||[]
						$.each(imgList, function(index, item){
							var obj = {
								baseUrl: httpRequest.getImgUrl(item)
							}
							vm.upImgs.push(obj)
						})
						vm.advice = model.advice
						if(model.admissionTime){
							vm.uploadType = "0"
							vm.admissionTime = model.admissionTime
							vm.dischargeTime = model.dischargeTime
							vm.admittingTags = model.admittingDiagnosisName.split(',')
							var admittingCodeArr = model.admittingDiagnosis.split(',')
							$.each(vm.admittingTags, function(index, o){
								vm.admittingTagsObj[o] = admittingCodeArr[index]
							})
							vm.dischargeTags = model.dischargeDiagnosisName.split(',')
							var dischargeCodeArr = model.dischargeDiagnosis.split(',')
							$.each(vm.dischargeTags, function(index, o){
								vm.dischargeTagsObj[o] = dischargeCodeArr[index]
							})
							vm.advice = model.advice
						}else{
							vm.uploadType = "1"
							var imgList = model.images.split(',')||[]
							$.each(imgList, function(index, item){
								var obj = {
									baseUrl: httpRequest.getImgUrl(item)
								}
								vm.upImgs.push(obj)
							})
						}
					},
					handleSelect: function(res){
						
@ -364,55 +379,75 @@
					},
					addMedicalRecords: function(){
						var vm = this
						if(!this.admissionTime){
							showErrorMessage('请选择入院时间!')
							return false
						}
						if(!this.dischargeTime){
							showErrorMessage('请选择出院时间!')
							return false
						}
						if(this.admissionTime>this.dischargeTime){
                			showWarningMessage("入院时间应小于出院时间!")
                			return false;
                		}
						if(this.admittingTags.length<=0){
							showErrorMessage('请添加入院诊断!')
							return false
						}
						if(this.dischargeTags.length<=0){
							showErrorMessage('请添加出院诊断!')
							return false
						}
						if(!this.advice||this.advice.trim().length<=0){
							showErrorMessage('请输入医嘱小结!')
							return false
						var jsonData = {}
						if(vm.uploadType == '0'){
							if(!this.admissionTime){
								showErrorMessage('请选择入院时间!')
								return false
							}
							if(!this.dischargeTime){
								showErrorMessage('请选择出院时间!')
								return false
							}
							if(this.admissionTime>this.dischargeTime){
	                			showWarningMessage("入院时间应小于出院时间!")
	                			return false;
	                		}
							if(this.admittingTags.length<=0){
								showErrorMessage('请添加入院诊断!')
								return false
							}
							if(this.dischargeTags.length<=0){
								showErrorMessage('请添加出院诊断!')
								return false
							}
							if(!this.advice||this.advice.trim().length<=0){
								showErrorMessage('请输入医嘱小结!')
								return false
							}
							
							var admittingDiagnosisArr=[], admittingDiagnosisNameArr=[],
								dischargeDiagnosisArr = [], dischargeDiagnosisNameArr = []
								$.each(vm.admittingTags, function(index, value){
									var code = vm.admittingTagsObj[value]
									admittingDiagnosisArr.push(code)
									admittingDiagnosisNameArr.push(value)
								})
								$.each(vm.dischargeTags, function(index, value){
									var code = vm.dischargeTagsObj[value]
									dischargeDiagnosisArr.push(code)
									dischargeDiagnosisNameArr.push(value)
								})
							jsonData = {
								admissionTime: new Date(this.admissionTime).format('yyyy-MM-dd HH:mm:ss'),
								dischargeTime: new Date(this.dischargeTime).format('yyyy-MM-dd HH:mm:ss'),
								admittingDiagnosis: admittingDiagnosisArr.join(','), // 入院诊断
								admittingDiagnosisName: admittingDiagnosisNameArr.join(','), //入院诊断名称
								dischargeDiagnosis: dischargeDiagnosisArr.join(','), // 出院诊断
								dischargeDiagnosisName: dischargeDiagnosisNameArr.join(','), // 出院诊断名称,多个用逗号
								advice: this.advice,
								images: ""
							}
						}
						var admittingDiagnosisArr=[], admittingDiagnosisNameArr=[],
							dischargeDiagnosisArr = [], dischargeDiagnosisNameArr = []
							$.each(vm.admittingTags, function(index, value){
								var code = vm.admittingTagsObj[value]
								admittingDiagnosisArr.push(code)
								admittingDiagnosisNameArr.push(value)
							})
							$.each(vm.dischargeTags, function(index, value){
								var code = vm.dischargeTagsObj[value]
								dischargeDiagnosisArr.push(code)
								dischargeDiagnosisNameArr.push(value)
						if(vm.uploadType == '1'){
							if(vm.upImgs.length==0){
								showErrorMessage('请上传图片!')
								return false
							}
							var imgList=[];
							$.each(vm.upImgs, function(index, item){
								imgList.push(item.img)
							})
						var imgList=[];
						$.each(vm.upImgs, function(index, item){
							imgList.push(item.img)
						})
						var jsonData = {
							admissionTime: new Date(this.admissionTime).format('yyyy-MM-dd HH:mm:ss'),
							dischargeTime: new Date(this.dischargeTime).format('yyyy-MM-dd HH:mm:ss'),
							admittingDiagnosis: admittingDiagnosisArr.join(','), // 入院诊断
							admittingDiagnosisName: admittingDiagnosisNameArr.join(','), //入院诊断名称
							dischargeDiagnosis: dischargeDiagnosisArr.join(','), // 出院诊断
							dischargeDiagnosisName: dischargeDiagnosisNameArr.join(','), // 出院诊断名称,多个用逗号
							advice: this.advice,
							images: imgList.join(',')
							jsonData = {
								admissionTime: "",
								dischargeTime: "",
								admittingDiagnosis: "", // 入院诊断
								admittingDiagnosisName: "", //入院诊断名称
								dischargeDiagnosis: "", // 出院诊断
								dischargeDiagnosisName: "", // 出院诊断名称,多个用逗号
								advice: "出院继续观察",
								images: imgList.join(',')
							}
						}
						var params = {
							doctorCode: vm.doctorCode,

+ 13 - 2
app/recover/html/new_recover.html

@ -80,7 +80,10 @@
							</div>
						</div>
					</div>
					<button v-if="!isEditConfig&&medicalRecordsList.length==0" type="button" class="btn btn-default fr" style="width: 100%; background: #12B7F5; border-radius: 0px ;border: 0px ;padding: 10px;margin-top: 15px;" @click="addMedicalRecords()">添加住院病历</button>
					<div v-if="!isEditConfig&&medicalRecordsList.length==0" class="ui-grid">
						<button  type="button" class="ui-col-1 btn btn-default fr mr5" style="width: 100%; background: #12B7F5; border-radius: 0px ;border: 0px ;padding: 10px;margin-top: 15px;" @click="comMedicalRecords()">同步病历</button>
						<button  type="button" class="ui-col-1 btn btn-default fr ml5" style="width: 100%; background: #12B7F5; border-radius: 0px ;border: 0px ;padding: 10px;margin-top: 15px;" @click="addMedicalRecords()">手动上传</button>
					</div>
				</div>
	        </div>
	        <div class="fl c-h100 w-100-400">
@ -484,6 +487,10 @@
							}
						})
					},
					comMedicalRecords:function(){
						var vm = this
						showInfoMessage("暂未开发")
					},
					// 添加住院病历
					addMedicalRecords: function(){
						var vm = this
@ -505,7 +512,7 @@
						window.localStorage.setItem('curMedicalRecords', JSON.stringify(o))
						this.selectPatientIndex = layer.open({
							type: 2,
							area: ['480px', '520px'],
							area: ['480px', '650px'],
							shade: 0.5,
							title: '添加住院病历',
							closeBtn: 1,
@ -519,11 +526,15 @@
						layer.close(this.selectPatientIndex)
					},
					completeMedicalRecords: function(type, data){
                		var vm = this;
						if(type=='edit'){
							this.$set(this.medicalRecordsList, this.curMedicalRecordsIndex, data)
						} else {
							this.medicalRecordsList.unshift(data)
						}
						if(!vm.adviceContent){
							vm.adviceContent = data.advice
						}
						layer.close(this.selectPatientIndex)
					},
                	//获取诊疗信息

+ 16 - 14
app/rehabilitation/html/medical-records-detail.html

@ -18,37 +18,37 @@
                        {{model.patientName}}
                    </div>
                </div>
                <div class="flex vc ptb15">
                <div class="flex vc ptb15" v-if="model.admissionTime">
                    <span class="c-666 c-f15 mr10" style="width: 90px;">入院时间:</span>
                    <div class="flex1 c-333 c-f15">
                        {{model.admissionTime}}
                    </div>
                </div>
                <div class="flex vc ptb15">
                <div class="flex vc ptb15" v-if="model.admittingDiagnosisName">
                    <span class="c-666 c-f15 mr10" style="width: 90px;">入院诊断:</span>
                    <div class="flex1 c-333 c-f15">
                        {{model.admittingDiagnosisName}}
                    </div>
                </div>
                <div class="flex vc ptb15">
                <div class="flex vc ptb15" v-if="model.dischargeTime">
                    <span class="c-666 c-f15 mr10" style="width: 90px;">出院时间:</span>
                    <div class="flex1 c-333 c-f15">
                        {{model.dischargeTime}}
                    </div>
                </div>
                <div class="flex vc ptb15">
                <div class="flex vc ptb15" v-if="model.dischargeDiagnosisName">
                    <span class="c-666 c-f15 mr10" style="width: 90px;">出院诊断:</span>
                    <div class="flex1 c-333 c-f15">
                        {{model.dischargeDiagnosisName}}
                    </div>
                </div>
                <div class="flex vc ptb15">
                <div class="flex vc ptb15" v-if="model.advice">
                    <span class="c-666 c-f15 mr10" style="width: 90px;">医嘱小结:</span>
                    <div class="flex1 c-333 c-f15">
                        {{model.advice}}
                    </div>
                </div>
                <div class="flex ptb15">
                <div class="flex ptb15" v-if="model.imgList&&model.imgList.length">
                    <span class="c-666 c-f15 mr10" style="width: 90px;">病历图片:</span>
                    <div v-if="model.imgList.length>0" class="flex1 c-333 c-f15">
                        <img :src="item" v-for="item in model.imgList" width="85px" height="85px" class="mr10 mb10"/>
@ -88,14 +88,16 @@
                        rehaAPI.selectByMedicalCode(params).then(function(res){
                            if(res.status==200){
                                vm.model = res.data[0]
                                var arr = vm.model.images || vm.model.images !='' ? vm.model.images.split(','):[]
                                var arr1 = []
                                $.each(arr, function(index, item){
                                    item = httpRequest.getImgUrl(item)
                                    arr1.push(item)
                                    return item
                                })
                                vm.model.imgList = arr1
                                if(vm.model.images){
	                                var arr = vm.model.images || vm.model.images !='' ? vm.model.images.split(','):[]
	                                var arr1 = []
	                                $.each(arr, function(index, item){
	                                    item = httpRequest.getImgUrl(item)
	                                    arr1.push(item)
	                                    return item
	                                })
	                                vm.model.imgList = arr1
                                }
                            }else {
                                showErrorMessage(res.msg);
                            }