Prechádzať zdrojové kódy

Merge branch 'master' of http://192.168.1.220:10080/raolu/PC-application

542372506@qq.com 3 dní pred
rodič
commit
72ae9feada
29 zmenil súbory, kde vykonal 4189 pridanie a 82 odobranie
  1. 13 0
      app/statistics/html/comprehensive-query.html
  2. 206 0
      component/statistics/CopdServiceRecordPatient/index.css
  3. 428 0
      component/statistics/CopdServiceRecordPatient/index.html
  4. 324 0
      component/statistics/CopdServiceRecordPatient/index.js
  5. 171 0
      component/statistics/LascBreastFollowUp/index.html
  6. 74 0
      component/statistics/LascBreastFollowUp/index.js
  7. 206 0
      component/statistics/LascBreastMolybdenumInspectList/index.html
  8. 92 0
      component/statistics/LascBreastMolybdenumInspectList/index.js
  9. 230 0
      component/statistics/LascBreastPathologyInspectEntityList/index.html
  10. 126 0
      component/statistics/LascBreastPathologyInspectEntityList/index.js
  11. 86 0
      component/statistics/LascBreastSurgeryInspectEntity/index.html
  12. 65 0
      component/statistics/LascBreastSurgeryInspectEntity/index.js
  13. 428 0
      component/statistics/LascBreastTreatInfo/index.html
  14. 82 0
      component/statistics/LascBreastTreatInfo/index.js
  15. 91 0
      component/statistics/LascCervicalCytologyInspectEntityList/index.html
  16. 88 0
      component/statistics/LascCervicalCytologyInspectEntityList/index.js
  17. 120 0
      component/statistics/LascCervicalFinalDiagnosisEntity/index.html
  18. 100 0
      component/statistics/LascCervicalFinalDiagnosisEntity/index.js
  19. 507 0
      component/statistics/LascCervicalGynecologicalExaminationEntityList/index.html
  20. 72 0
      component/statistics/LascCervicalGynecologicalExaminationEntityList/index.js
  21. 141 0
      component/statistics/LascCervicalHistopathologyFollowup/index.html
  22. 83 0
      component/statistics/LascCervicalHistopathologyFollowup/index.js
  23. 90 0
      component/statistics/LascCervicalHpvEntityList/index.html
  24. 74 0
      component/statistics/LascCervicalHpvEntityList/index.js
  25. 91 0
      component/statistics/LascCervicalPreliminaryScreenEntity/index.html
  26. 88 0
      component/statistics/LascCervicalPreliminaryScreenEntity/index.js
  27. 96 82
      component/statistics/LascPatient/index.html
  28. 13 0
      component/statistics/LascPatient/index.js
  29. 4 0
      component/statistics/breastCancerPatient/index.js

+ 13 - 0
app/statistics/html/comprehensive-query.html

@ -932,6 +932,7 @@
    <script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/home-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/statistics-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/moment.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/outsideHospital-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/common/event-bus.js"></script>
    <script src="../../../component/common/vuedals.js" type="text/javascript" charset="utf-8"></script>
@ -999,11 +1000,23 @@
    <script src="../../../component/statistics/ChestPainManage/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascClinicalExamination/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascBreastCduInspectEntityList/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascBreastMolybdenumInspectList/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascBreastPathologyInspectEntityList/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascBreastSurgeryInspectEntity/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascBreastTreatInfo/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascBreastFollowUp/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascCervicalGynecologicalExaminationEntityList/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascCervicalHpvEntityList/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascCervicalFinalDiagnosisEntity/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascCervicalHistopathologyFollowup/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascCervicalCytologyInspectEntityList/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascModifyPatient/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascPatient/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/breastCancerPatient/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascCervical/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascProgress/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/LascProgressData/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/CopdServiceRecordPatient/index.js" type="text/javascript" charset="utf-8"></script>
  </body>
</html>

+ 206 - 0
component/statistics/CopdServiceRecordPatient/index.css

@ -0,0 +1,206 @@
.service-record-timeline .timeline {
  position: relative;
  margin: 0 auto;
  padding: 10px;
  border-radius: 4px;
  background-color: #FFFFFF;
}
.service-record-timeline .timeline::before {
  content: '';
  position: absolute;
  width: 1px;
  background-color: #A6AAB3;
  top: 30px;
  bottom: 10px;
  left: 68px;
  margin-left: -2px;
}
.service-record-timeline .timeline-item {
  display: flex;
  align-items: stretch;
  width: 100%;
  padding: 10px 0;
  position: relative;
}
.service-record-timeline .timeline-item::before {
  content: '';
  position: absolute;
  width: 10px;
  height: 10px;
  background-color: #FF9900;
  border-radius: 50%;
  left: 52px;
  top: 10px;
  transform: translateY(10px);
  z-index: 1;
}
.service-record-timeline .timeline-item-blue-dot::before {
  background-color: #12B7F5;
}
.service-record-timeline .timeline-time {
  width: 50px;
  line-height: 1.4;
  text-align: center;
  padding-right: 20px;
  position: relative;
  font-size: 12px;
  font-weight: bold;
}
.service-record-timeline .timeline-content {
  flex: 1;
  padding: 10px;
  background-color: #f5f7fa;
  border-radius: 6px;
  position: relative;
}
.service-record-timeline .record-list.time-list {
  padding: 10px;
}
.service-record-timeline .timeline-content .data-item .data-title {
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 10px;
}
.service-record-timeline .timeline-content .data-item {
  font-size: 12px;
  margin-bottom: 10px;
}
.service-record-timeline .timeline-content .data-item .data-cont {
  display: flex;
  flex-wrap: wrap;
}
.copd-service-record-box>.service-base-info {
  background-color:#F2F7FB;
  padding: 10px;
  border-radius: 8px;
  margin-bottom: 10px;
}
.copd-service-record-box>.service-base-info>.base-title {
  height: 32px;
  line-height: 32px;
}
.copd-service-record-box>.service-base-info >.base-content {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.copd-service-record-box>.service-base-info>.base-content>.base-info-item {
  width: 25%;
  height: 32px;
  line-height: 32px;
}
.ki-title {
  position: relative;
  padding-left: 10px;
}
.ki-title::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 20px;
  border-radius: 8px;
  background-color: #409EFF;
}
.ta-title {
  margin-bottom: 4px;
  border-bottom: 2px solid #409EFF;
}
.copd-service-record-box > .service-record-timeline .title {
  width: 100%;
  padding: 14px 0;
  border-bottom: 2px solid #F2F3F5;
}
.cops-service-record-bottom-box {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #fff;
  border-top: 1px solid #EEEEEE;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
}
.copd-follow-up-dialog-box {
  height: 400px;
  overflow-y: scroll;
  overflow-x: hidden;
}
.copd-follow-up-dialog-box .copd-bb-record-info .title {
  width: 100%;
  height: 32px;
  line-height: 32px;
}
.copd-service-record-box .el-dialog__header {
  padding: 14px;
}
.copd-service-record-box .el-dialog__body {
  padding: 0 14px;
}
.copd-bb-base-content {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.copd-bb-base-info-item {
  width: 50%;
  margin-bottom: 4px;
  /* height: 32px;
  line-height: 32px; */
}
.copd-bb-record-info {
  margin-bottom: 24px;
  width: 100%;
}
.dialog-footer {
  display: flex;
  justify-content: center;
  align-items: center;
}
.el-radio-button{
  margin-right: 20px;
}
.el-radio-button__inner{
  border-left: 1px solid #dcdfe6;
  border-radius: 4px;
}
.el-radio-button:first-child .el-radio-button__inner{
  border-radius: 4px;
}
.el-radio-button:last-child .el-radio-button__inner{
  border-radius: 4px;
}

+ 428 - 0
component/statistics/CopdServiceRecordPatient/index.html

@ -0,0 +1,428 @@
<div class="copd-service-record-box">
  <el-radio-group v-model="changeModule" style="margin-bottom: 20px">
    <el-radio-button label="1" style="margin-right: 0px">基本信息</el-radio-button>
    <el-radio-button label="2" style="margin-right: 0px">乳腺评估信息</el-radio-button>
    <el-radio-button label="3" style="margin-right: 0px">宫颈评估信息</el-radio-button>
  </el-radio-group>
  <div class="service-base-info">
    <div class="base-title ki-title ta-title">{{changeModule == 1 ? '基本信息' : changeModule == 2 ? '乳腺评估信息' : '宫颈评估信息'}}</div>
    <div class="base-content" v-if="changeModule == 1">
      <div class="base-info-item">姓名:{{detailInfo.name}}</div>
      <div class="base-info-item">性别:{{detailInfo.sexName}}</div>
      <div class="base-info-item">证件号码:{{detailInfo.idcard}}</div>
      <div class="base-info-item">联系电话:{{detailInfo.mobile}}</div>
    </div>
    <div class="base-content" v-else-if="changeModule == 2">
      <div class="base-info-item">乳腺评估机构:{{detailInfo.name}}</div>
      <div class="base-info-item">乳腺评估人:{{detailInfo.sexName}}</div>
      <div class="base-info-item">乳腺初筛时间:{{detailInfo.idcard}}</div>
      <div class="base-info-item">乳腺评估时间:{{detailInfo.mobile}}</div>
    </div>
    <div class="base-content" v-else-if="changeModule == 3">
      <div class="base-info-item">宫颈评估机构:{{detailInfo.name}}</div>
      <div class="base-info-item">宫颈评估人:{{detailInfo.sexName}}</div>
      <div class="base-info-item">宫颈初筛时间:{{detailInfo.idcard}}</div>
      <div class="base-info-item">宫颈评估时间:{{detailInfo.mobile}}</div>
    </div>
  </div>
  <div class="service-record-timeline">
    <div class="title">服务记录</div>
    <div>
      <!-- <div class="mb10 mt10" style="display: flex; align-items: center">
        <span>服务年份:</span>
        <el-radio-group v-model="serviceYear" @input="getDealRecord">
          <el-radio-button :label="item.value" v-for="item in yearList" :key="item.value">{{item.label}}</el-radio-button>
        </el-radio-group>
        <el-date-picker
          v-model="customizeYear"
          style="width: 400px"
          type="daterange"
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          v-if="serviceYear=='customize'"
          value-format="yyyy-MM-dd"
          @change="getDealRecord"></el-date-picker>
      </div> -->
      <div style="display: flex; align-items: center; margin-top: 20px">
        <div style="width: 180px">服务节点:</div>
        <el-radio-group v-model="serviceNode" @input="getDealRecord" style="display: flex; flex-wrap: wrap">
          <el-radio-button :label="item.value" v-for="item in nodeList" :key="item.value" style="margin-bottom: 15px">{{item.label}}</el-radio-button>
          <div @click="getMore" style="display: flex; align-items: center; color: #409eff; font-size: 16px; cursor: pointer; margin-top: -20px">
            {{moreFlag? '更多':'收起'}}
            <i :class="moreFlag ?'el-icon-arrow-down ': 'el-icon-arrow-up' " style="font-size: 22px; color: #409eff; font-weight: bold; margin-left: 5px"></i>
          </div>
        </el-radio-group>
      </div>
    </div>
    <div class="record-list time-line">
      <div class="timeline" v-loading="loading">
        <div v-for="(event, eI) in events" :key="eI">
          <div class="timeline-item" v-if="event.flag">
            <div class="timeline-time" :id="'left-' + eI">{{ event.createTime&&event.createTime.substring(0,4)}}</div>
          </div>
          <div class="timeline-item" :class="{'timeline-item-blue-dot': event.createTime != null}">
            <div class="timeline-time" :id="'left-' + eI">{{event.createTime&& event.createTime.slice(5) }}</div>
            <div class="timeline-content" :id="'right-' + eI">
              <div class="data-item">
                <div class="data-title">{{getTypeName(event.type)}}</div>
                <div class="data-cont" v-if="event.type == 1">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">预约医院:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">预约时间:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">证件号码:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">医保卡号:</span>
                    <span style="color: #656565">
                      <template>{{event.doctorName}}</template>
                    </span>
                  </div>
                </div>
                <div class="data-cont" v-else-if="event.type == 2 ||event.type == 3 ||event.type == 4 ||event.type == 6 || event.type == 13|| event.type == 15">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">{{event.type == 13 || event.type == 15 ? '是否检查' : '是否拒检'}} :</span>
                    <span style="color: #656565">
                      <template>{{event.type == 13 || event.type == 15 ? event.hospitalName : event.hospitalName }}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查机构:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查人员:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查时间:</span>
                    <span style="color: #656565">
                      <template>{{event.doctorName}}</template>
                    </span>
                  </div>
                </div>
                <div class="data-cont" v-else-if="event.type == 5 ||event.type == 14|| event.type == 16">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">{{event.type == 14|| event.type == 16 ? '检查情况' : '是否检查'}} :</span>
                    <span style="color: #656565">
                      <template>{{event.type == 14|| event.type == 16 ? event.hospitalName : event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">随访机构:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">随访人员:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">随访时间:</span>
                    <span style="color: #656565">
                      <template>{{event.doctorName}}</template>
                    </span>
                  </div>
                </div>
                <div class="data-cont" v-else-if="event.type == 7">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">是否治疗:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">随访机构:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">随访人员:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">随访时间:</span>
                    <span style="color: #656565">
                      <template>{{event.doctorName}}</template>
                    </span>
                  </div>
                </div>
                <div class="data-cont" v-else-if="event.type == 8">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">是否随访:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">随访机构:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">随访人员:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">随访时间:</span>
                    <span style="color: #656565">
                      <template>{{event.doctorName}}</template>
                    </span>
                  </div>
                </div>
                <div class="data-cont" v-else-if="event.type == 9">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">是否拒检:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查机构:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查人员(妇科检查):</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查人员(分泌物):</span>
                    <span style="color: #656565">
                      <template>{{event.doctorName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查时间:</span>
                    <span style="color: #656565">
                      <template>{{event.doctorName}}</template>
                    </span>
                  </div>
                </div>
                <div class="data-cont" v-else-if="event.type == 10">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查机构:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查人员:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                </div>
                <div class="data-cont" v-else-if="event.type == 11">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查机构:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查人员:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查时间:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                </div>
                <div class="data-cont" v-else-if="event.type == 12">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">临床评估意见:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查机构:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查人员:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查时间:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                </div>
                <div class="data-cont" v-else-if="event.type == 17">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">最后诊断:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查机构:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查人员:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">检查时间:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                </div>
                <div class="data-title" style="color: #12b7f5; font-size: 14px; cursor: pointer" @click="showDetail(event)">查看随访详情</div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="cops-service-record-bottom-box">
    <el-button @click="recordBack">返回</el-button>
  </div>
  <el-dialog title="随访详情" :visible.sync="dialog" width="50%" :destroy-on-close="true">
    <div class="copd-follow-up-dialog-box">
      <div class="copd-bb-record-info">
        <div class="title ki-title ta-title">随访信息</div>
        <div class="copd-bb-base-content">
          <div class="copd-bb-base-info-item" v-if="followInfo.createTime">随访时间:{{followInfo.createTime}}</div>
          <div class="copd-bb-base-info-item" v-if="followInfo.doctorName">随访医生:{{followInfo.doctorName}}</div>
          <div class="copd-bb-base-info-item" v-if="followInfo.hospitalName">随访机构: {{followInfo.hospitalName}}</div>
          <div class="copd-bb-base-info-item" v-if="followup">随访状态:{{followup}}</div>
          <div class="copd-bb-base-info-item" v-if="followInfo.status==4">失访原因:{{followInfo.lostReason}}</div>
          <div class="copd-bb-base-info-item" v-if="followInfo.status==3">不详原因:{{followInfo.lostReason}}</div>
        </div>
      </div>
      <template v-if="followInfo.status!='4'&&followInfo.status!='3'&&followInfo.status!='2'">
        <div class="copd-bb-record-info">
          <div class="title ki-title">基本信息</div>
          <div class="copd-bb-base-content">
            <div class="copd-bb-base-info-item" v-if="followInfo.name">姓名:{{followInfo.name}}</div>
            <div class="copd-bb-base-info-item" v-if="followInfo.sex">性别:{{followInfo.sex==1?'男':'女'}}</div>
            <div class="copd-bb-base-info-item" v-if="nationName">民族:{{nationName}}</div>
            <div class="copd-bb-base-info-item" v-if="followInfo.birthday">出生日期:{{followInfo.birthday}}</div>
            <div class="copd-bb-base-info-item" v-if="idcardTypeName">证件类型:{{idcardTypeName}}</div>
            <div class="copd-bb-base-info-item" v-if="followInfo.idcard">证件号码:{{followInfo.idcard}}</div>
            <div class="copd-bb-base-info-item" v-if="followInfo.mobile">联系电话:{{followInfo.mobile}}</div>
            <div class="copd-bb-base-info-item" v-if="educational">学历:{{educational}}</div>
            <div class="copd-bb-base-info-item" v-if="marriageName">婚姻状况:{{marriageName}}</div>
            <div class="copd-bb-base-info-item" v-if="occupation">职业类型:{{occupation}}</div>
            <div class="copd-bb-base-info-item" v-if="followInfo.liveProvinceName">
              常住地区:{{followInfo.liveProvinceName}}{{followInfo.liveCityName}}{{followInfo.liveTownName}}{{followInfo.liveStreetName}}
            </div>
            <div class="copd-bb-base-info-item" v-if="followInfo.liveAddress">常住地址:{{followInfo.liveAddress}}</div>
            <div class="copd-bb-base-info-item" v-if="followInfo.registProvinceName">
              户籍地区:{{followInfo.registProvinceName}}{{followInfo.registCityName}}{{followInfo.registTownName}}{{followInfo.registStreetName}}
            </div>
            <div class="copd-bb-base-info-item" v-if="followInfo.registAddress">户籍地址:{{followInfo.registAddress}}</div>
          </div>
        </div>
        <div class="copd-bb-record-info">
          <div class="title ki-title ta-title">随访情况</div>
          <div class="copd-bb-base-content">
            <div class="copd-bb-base-info-item" v-if="followInfo.isLive">生存状态:{{followInfo.isLive==1?'生存':'死亡'}}</div>
            <template v-if="followInfo.isLive==1">
              <div class="copd-bb-base-info-item" v-if="followInfo.hasSmoke">是否抽烟:{{followInfo.hasSmoke==1?'是':followInfo.hasSmoke==0?'否':'已戒烟'}}</div>
              <div class="copd-bb-base-info-item" v-if="followInfo.hasDrink">是否饮酒:{{followInfo.hasDrink==1?'是':followInfo.hasDrink==0?'否':'已戒酒'}}</div>
              <div class="copd-bb-base-info-item" v-if="diseaseConversion">病情归转:{{diseaseConversion}}</div>
            </template>
            <!-- <div class="copd-bb-base-info-item">
              是否做过肺功能检查:{{followInfo.hasLung}}
            </div> -->
            <!-- <div class="copd-bb-base-info-item">e
              是否做过胸部CT或X线检查:{{followInfo.birthday}}
            </div> -->
          </div>
        </div>
        <template v-if="followInfo.isLive==1">
          <div class="copd-bb-record-info">
            <div class="title ki-title ta-title">首次确诊情况</div>
            <div class="copd-bb-base-content">
              <div class="copd-bb-base-info-item" v-if="followInfo.firstVisitTime">慢阻肺首次诊断时间:{{followInfo.firstVisitTime}}</div>
              <div class="copd-bb-base-info-item" v-if="followInfo.firstVisitArea">慢阻肺首次诊断地区:{{followInfo.firstVisitArea}}</div>
              <div class="copd-bb-base-info-item" v-if="orGlevelName">
                <!-- 慢阻肺首次诊断机构级别:{{
                followInfo.firstVisitOrgLevel == 1 ? '三级医院' :
                followInfo.firstVisitOrgLevel == 2 ? '二级医院' :
                followInfo.firstVisitOrgLevel == 3 ? '村卫生室' :
                followInfo.firstVisitOrgLevel == 4 ? '乡镇卫生院/社区卫生服务机构' :
                followInfo.firstVisitOrgLevel == 5 ? '其他医疗卫生机构' :
                ''
              }} -->
                慢阻肺首次诊断机构级别:{{orGlevelName}}
              </div>
              <div class="copd-bb-base-info-item" v-if="followInfo.firstVisitOrg">首次诊断机构:{{followInfo.firstVisitOrg}}</div>
              <div class="copd-bb-base-info-item" v-if="diagnosticBasisName">最高诊断依据:{{diagnosticBasisName}}</div>
              <div class="copd-bb-base-info-item" v-if="symptom">症状:{{symptom}}</div>
              <div class="copd-bb-base-info-item" v-if="followInfo.drugBefore">使用支气管扩张剂前FEV1/FVC(%):{{followInfo.drugBefore}}</div>
              <div class="copd-bb-base-info-item" v-if="followInfo.drugAfter">使用支气管扩张剂后FEV1/FVC(%):{{followInfo.drugAfter}}</div>
            </div>
          </div>
        </template>
        <div class="copd-bb-record-info" v-if="followInfo.isLive!=1">
          <div class="title ki-title ta-title">死亡情况</div>
          <div class="copd-bb-base-content">
            <template v-if="followInfo.isLive!=1">
              <div class="copd-bb-base-info-item" v-if="followInfo.deathTime">死亡时间:{{followInfo.deathTime}}</div>
              <div class="copd-bb-base-info-item" v-if="followInfo.deathReason">死亡原因:{{followInfo.deathReason}}</div>
            </template>
          </div>
        </div>
      </template>
    </div>
    <span slot="footer" class="dialog-footer">
      <el-button @click="dialog = false">关闭</el-button>
    </span>
  </el-dialog>
  <el-dialog title="记录" :visible.sync="formDialogVisible" width="50%">
    <lasc-cervical-cytology-inspect-entityList></lasc-cervical-cytology-inspect-entityList>
  </el-dialog>
</div>

+ 324 - 0
component/statistics/CopdServiceRecordPatient/index.js

@ -0,0 +1,324 @@
// 两癌筛查居民档案-服务记录
var template = ''
$.ajax('../../../component/statistics/CopdServiceRecordPatient/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('Copd-service-record-patient', {
  template: template,
  props: ['detailInfo'],
  data() {
    return {
      dialog: false,
      loading: false,
      formDialogVisible: true,
      page: 1,
      size: 999,
      idcardTypeName: '',
      followInfo: {},
      events: [
        { date: '2023年' },
        { title: 'Event 1', date: '05-11 17:00:01', description: 'Description for event 1' },
        { date: '2024年', description: 'Description for event 2' },
        { date: '2025年', description: 'Description for event 3' },
        { date: '2026年', description: 'Description for event 4' },
        { title: 'Event 5', date: '2027年', description: 'Description for event 5' }
      ],
      dicName: [
        'jkcopd_back_type',
        'jkcopd_followup_status',
        'jkcopd_symptom',
        'jkcopd_isLive',
        'jkcopd_first_area',
        'jkcopd_first_org_level',
        'jkcopd_marriage',
        'jkcopd_occupation',
        'jkcopd_smoke',
        'jkcopd_drink',
        'jkcopd_archivesStatus',
        'jkcopd_disease_conversion',
        'jkcopd_firstVisitType',
        'jkcopd_educational',
        'idCardType',
        'jkcopd_diagnosticBasis'
      ],
      marriageArr: [],
      backTypeName: '',
      diagnosticBasisName: '',
      marriageName: '',
      symptom: '',
      symptomsArr: [],
      followupArr: [],
      followup: '',
      idCardTypeArr: [],
      firstAreaArr: [],
      firstAreaName: '',
      isLiveArr: [],
      orgLevelArr: [],
      orGlevelName: '',
      occupationArr: [],
      occupation: '',
      smokeArr: [],
      drinkArr: [],
      archivesArr: [],
      diseaseConversion: '',
      conversionArr: [],
      firstVisitTypeArr: [],
      educationalArr: [],
      educational: '',
      nationDict: [],
      nationName: '',
      communityArr: [],
      yearList: [{ label: '全部年份', value: '' }],
      nodeList: [
        { label: '全部节点', value: '' },
        { label: '居民预约', value: 1 },
        { label: '乳腺临床检查', value: 2 },
        { label: '辅助检查-乳腺超声', value: 3 },
        { label: '辅助检查-乳腺钼靶', value: 4 },
        { label: '乳腺病理学检查', value: 5 },
        { label: '乳腺外科门诊', value: 6 },
        { label: '乳腺癌治疗信息', value: 7 }
      ],
      nodeList2: [
        { label: '社区随访', value: 8 },
        { label: '妇科检查', value: 9 },
        { label: 'HPV', value: 10 },
        { label: '宫颈细胞学检查', value: 11 },
        { label: '初筛结果临床评估', value: 12 },
        { label: '阴道镜检查', value: 13 },
        { label: '阴道镜检查随访', value: 14 },
        { label: '组织病理学检查', value: 15 },
        { label: '组织病理学检查随访', value: 16 },
        { label: '最后诊断', value: 17 }
      ],
      serviceYear: '',
      customizeYear: [],
      serviceNode: '',
      changeModule: 1,
      moreFlag: true
    }
  },
  methods: {
    getMore() {
      this.moreFlag = !this.moreFlag
      if (this.moreFlag) {
        this.nodeList.splice(8, 10)
      } else {
        this.nodeList = [...this.nodeList, ...this.nodeList2]
      }
    },
    getNation() {
      var vm = this
      statisticAPI.getNationDict().then(function (res) {
        vm.nationDict = res.data
        vm.nationDict.forEach(function (item) {
          if (item.NATION_CODE == vm.followInfo.nation) {
            vm.nationName = item.NATION_NAME
          }
        })
      })
    },
    setLeftHeights() {
      this.$nextTick(() => {
        this.events.forEach((event, index) => {
          const rightContent = document.getElementById('right-' + index)
          const leftContent = document.getElementById('left-' + index)
          if (rightContent && leftContent) {
            leftContent.style.height = rightContent.offsetHeight + 'px'
          }
        })
      })
    },
    //字典
    getDictByDictName(value) {
      var vm = this
      statisticAPI.getDictByDictName({ name: value }).then(function (res) {
        if (value == 'jkcopd_marriage') {
          var arr = res.list
          arr.forEach(function (item) {
            if (item.code == vm.followInfo.marriage) {
              vm.marriageName = item.value
            }
          })
        } else if (value == 'jkcopd_smoke') {
          // var vm=this
          // vm.smokeArr=res.list
        } else if (value == 'jkcopd_drink') {
          // var vm=this
          // vm.drinkArr=res.list
        } else if (value == 'jkcopd_first_area') {
          var arr = res.list
          arr.forEach(function (item) {
            if (item.code == vm.followInfo.firstVisitArea) {
              vm.firstAreaName = item.value
            }
          })
        } else if (value == 'jkcopd_disease_conversion') {
          var arr = res.list
          arr.forEach(function (item) {
            if (item.code == vm.followInfo.diseaseConversion) {
              vm.diseaseConversion = item.value
            }
          })
        } else if (value == 'jkcopd_firstVisitType') {
          // vm.firstVisitTypeArr=res.list
        } else if (value == 'jkcopd_first_org_level') {
          var arr = res.list
          arr.forEach(function (item) {
            if (item.code == vm.followInfo.firstVisitOrgLevel) {
              vm.orGlevelName = item.value
            }
          })
        } else if (value == 'jkcopd_followup_status') {
          vm.followupArr = res.list
          vm.followupArr.forEach(function (item) {
            if (item.code == vm.followInfo.status) {
              vm.followup = item.value
            }
          })
        } else if (value == 'idCardType') {
          var arr = res.list
          arr.forEach(function (item) {
            if (item.code == vm.followInfo.idcardType) {
              vm.idcardTypeName = item.value
            }
          })
        } else if (value == 'jkcopd_occupation') {
          var arr = res.list
          arr.forEach(function (item) {
            if (item.code == vm.followInfo.occupation) {
              vm.occupation = item.value
            }
          })
        } else if (value == 'jkcopd_educational') {
          var arr = res.list
          arr.forEach(function (item) {
            if (item.code == vm.followInfo.educational) {
              vm.educational = item.value
            }
          })
        } else if (value == 'jkcopd_symptom') {
          var arr = res.list
          vm.symptomsArr = []
          var symptoms = vm.followInfo.symptom.split(',')
          arr.forEach(function (item) {
            symptoms.forEach(function (v) {
              if (v == item.code) {
                vm.symptomsArr.push(item.value)
              }
            })
          })
          vm.symptom = vm.symptomsArr.join()
        } else if (value == 'jkcopd_diagnosticBasis') {
          var arr = res.list
          arr.forEach(function (item) {
            if (item.code == vm.followInfo.diagnosticBasis) {
              vm.diagnosticBasisName = item.value
            }
          })
        }
      })
    },
    recordBack() {
      this.$emit('back')
      EventBus.$emit('copd-reset-select')
    },
    getDealRecord() {
      var vm = this
      vm.loading = true
      var params = {
        page: vm.page,
        size: vm.size,
        patient: vm.detailInfo && vm.detailInfo.patient ? vm.detailInfo.patient : null,
        type: vm.serviceNode
      }
      if (vm.serviceYear == 'customize') {
        params.startTime = vm.customizeYear[0]
        params.endTime = vm.customizeYear[1]
      } else if (vm.serviceYear != '') {
        params.startTime = vm.serviceYear + '-01-01'
        params.endTime = vm.serviceYear + '-12-31'
      } else {
        params.startTime = ''
        params.endTime = ''
      }
      statisticAPI.dealRecordPage(params).then(function (res) {
        res.detailModelList.forEach(function (item, index) {
          var time1 = res.detailModelList[index] && res.detailModelList[index].createTime && res.detailModelList[index].createTime.slice(0, 4)
          var time2 = res.detailModelList[index + 1] && res.detailModelList[index + 1].createTime && res.detailModelList[index + 1].createTime.slice(0, 4)
          if (index == 0) {
            item.flag = 1
          } else if (index != res.detailModelList.length - 1 && time1 == time2) {
            res.detailModelList[index + 1].flag = 0
          } else if (
            res.detailModelList.length - 1 == index &&
            res.detailModelList[index + 1] &&
            res.detailModelList[index + 1].createTime &&
            res.detailModelList[index] &&
            res.detailModelList[index].createTime
          ) {
            if (res.detailModelList[index - 1].createTime.slice(0, 4) == res.detailModelList[index].createTime.slice(0, 4)) {
              res.detailModelList[res.detailModelList.length - 1].flag = 0
            } else {
              res.detailModelList[res.detailModelList.length - 1].flag = 1
            }
          }
        })
        vm.loading = false
        vm.events = res.detailModelList
      })
    },
    showDetail(item) {
      var vm = this
      statisticAPI.followupDetail({ id: item.jkcopdFollowup.id }).then(function (res) {
        vm.followInfo = res.obj
        vm.dicName.forEach(function (item) {
          vm.getDictByDictName(item)
        })
        vm.getNation()
        // statisticAPI.getDictByDictName({name:'idCardType'}).then(function(res){
        //   res.list.forEach(function(item){
        //     if(item.code==vm.followInfo.idcardType){
        //       vm.idcardTypeName=item.value
        //     }
        //   })
        // })
        vm.dialog = true
      })
    },
    getYearList() {
      for (var i = 0; i < 6; i++) {
        var year = new Date().getFullYear() - i
        this.yearList.push({ label: year, value: year })
      }
      this.yearList.push({ label: '自定义', value: 'customize' })
    },
    getTypeName(type) {
      return this.nodeList.find(function (item) {
        return item.value == type
      })?.label
    }
  },
  mounted() {
    // this.$nextTick(() => {
    //   this.setLeftHeights();
    // });
    console.log('创建66666')
    var vm = this
    this.getDealRecord()
    this.getYearList()
  }
})

+ 171 - 0
component/statistics/LascBreastFollowUp/index.html

@ -0,0 +1,171 @@
<div id="app">
  <van-form>
    <van-field :readonly="readonly" required label-width="4rem" class="" name="是否随访" label="是否随访" input-align="right">
      <div slot="input">
        <van-radio-group :disabled="readonly" v-model="form.followupOrNot" direction="horizontal">
          <van-radio name="1" class="top2">依从</van-radio>
          <van-radio name="2" class="top2">拒绝随访</van-radio>
          <van-radio name="3" class="top2">空号/错号</van-radio>
          <van-radio name="4" class="top2">首次无法取得联系</van-radio>
          <van-radio name="5" class="top2">其他</van-radio>
          <van-field
            :readonly="readonly"
            label-width="6rem"
            v-if='form.followupOrNot == "5"'
            clearable
            required
            v-model="form.followupOrNotOther"
            name=""
            label=""
            placeholder="请输入说明"
            input-align="left"></van-field>
        </van-radio-group>
      </div>
    </van-field>
    <div class="item-list" v-if="form.followupOrNot==1 && form.type==1">
      <div class="item">
        <van-field :readonly="readonly" required label-width="8rem" class="" name="接受治疗情况" label="接受治疗情况" input-align="right">
          <div slot="input">
            <van-radio-group :disabled="readonly" v-model="form.receiveTreat" direction="horizontal">
              <van-radio name="1">是</van-radio>
              <van-radio name="2" class="top2">否</van-radio>
              <van-radio name="3" class="top2">不详</van-radio>
            </van-radio-group>
          </div>
        </van-field>
        <van-field :readonly="readonly" required class="" label-width="8rem" name="生存情况" label="生存情况" input-align="right">
          <div slot="input">
            <van-radio-group :disabled="readonly" v-model="form.subsist" direction="horizontal">
              <van-radio name="1">存活</van-radio>
              <van-radio name="2" class="top2">死亡</van-radio>
              <van-radio name="3" class="top2">不详</van-radio>
            </van-radio-group>
          </div>
        </van-field>
      </div>
    </div>
    <div class="item-list" v-if="form.followupOrNot==1 && form.type==2">
      <div class="item">
        <van-field :readonly="readonly" required label-width="8rem" class="" name="是否复查" label="是否复查" input-align="right">
          <div slot="input">
            <van-radio-group :disabled="readonly" v-model="form.reviewOrNot" direction="horizontal">
              <van-radio name="1">是</van-radio>
              <van-radio name="2" class="top2">否</van-radio>
              <van-radio name="3" class="top2">不详</van-radio>
            </van-radio-group>
          </div>
        </van-field>
        <van-field :readonly="readonly" v-if="form.reviewOrNot == 1" required class="" label-width="8rem" name="复查内容" label="复查内容" input-align="right">
          <div slot="input">
            <van-checkbox-group :disabled="readonly" v-model="form.reviewValue" direction="horizontal">
              <van-checkbox :name="item.id" class="top2" v-for="(item,index) in reviewData" :key="index">{{item.text}}</van-checkbox>
              <van-field
                :readonly="readonly"
                required
                label-width="6rem"
                v-if='form.reviewValue&&form.reviewValue.indexOf("6")!=-1'
                clearable
                v-model="form.reviewValueOther"
                name=""
                label=""
                placeholder="请输入"
                input-align="left"></van-field>
            </van-checkbox-group>
          </div>
        </van-field>
        <van-field
          :readonly="readonly"
          v-if='form.reviewOrNot==1&&form.reviewValue&&form.reviewValue.indexOf("1")!=-1'
          required
          label-width="8rem"
          class=""
          name="超声BI-RADS分级"
          label="超声BI-RADS分级"
          input-align="right">
          <div slot="input">
            <van-radio-group :disabled="readonly" v-model="form.cduBiRads" direction="horizontal">
              <van-radio name="1" class="top2">0级</van-radio>
              <van-radio name="2" class="top2">1级</van-radio>
              <van-radio name="3" class="top2">2级</van-radio>
              <van-radio name="4" class="top2">3级</van-radio>
              <van-radio name="5" class="top2">4级</van-radio>
              <van-radio name="6" class="top2">5级</van-radio>
              <van-radio name="7" class="top2">不详</van-radio>
            </van-radio-group>
          </div>
        </van-field>
        <van-field
          :readonly="readonly"
          v-if='form.reviewOrNot==1&&form.reviewValue&&form.reviewValue.indexOf("2")!=-1'
          required
          label-width="8rem"
          class=""
          name="钼靶BI-RADS分级"
          label="钼靶BI-RADS分级"
          input-align="right">
          <div slot="input">
            <van-radio-group :disabled="readonly" v-model="form.molybdenumBiRads" direction="horizontal">
              <van-radio name="1" class="top2">0级</van-radio>
              <van-radio name="2" class="top2">1级</van-radio>
              <van-radio name="3" class="top2">2级</van-radio>
              <van-radio name="4" class="top2">3级</van-radio>
              <van-radio name="5" class="top2">4级</van-radio>
              <van-radio name="6" class="top2">5级</van-radio>
              <van-radio name="7" class="top2">不详</van-radio>
            </van-radio-group>
          </div>
        </van-field>
        <van-field :readonly="readonly" required label-width="8rem" class="" name="临床诊断" label="临床诊断" input-align="right">
          <div slot="input">
            <van-radio-group :disabled="readonly" v-model="form.clinicalInspect" direction="horizontal">
              <van-radio name="1">正常</van-radio>
              <van-radio name="2" class="top2">乳腺良性疾病</van-radio>
              <van-radio name="3" class="top2">乳腺恶性疾病</van-radio>
              <van-radio name="4" class="top2">不详</van-radio>
            </van-radio-group>
          </div>
        </van-field>
      </div>
    </div>
    <template>
      <van-field
        :readonly="true"
        required
        label-width="8rem"
        clearable
        v-model="form.followupDoctor"
        name="随访人员"
        label="随访人员"
        placeholder="请输入随访人员"
        input-align="right"></van-field>
      <van-field
        :readonly="readonly"
        required
        label-width="4rem"
        class=""
        :readonly="readonly"
        clearable
        v-model="form.followupOrg"
        name="随访机构"
        label="随访机构"
        placeholder="请输入随访机构"
        input-align="right"></van-field>
      <van-field
        :readonly="readonly"
        required
        label-width="8rem"
        readonly
        clickable
        name="随访日期"
        :value="form.followupDate?form.followupDate:''"
        label="随访日期"
        placeholder="请选择随访时间"
        input-align="right"
        :is-link="!readonly"></van-field>
    </template>
  </van-form>
</div>

+ 74 - 0
component/statistics/LascBreastFollowUp/index.js

@ -0,0 +1,74 @@
var template = ''
$.ajax('../../../component/statistics/LascBreastFollowUp/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('lasc-breast-followUp', {
  template: template,
  props: [],
  data: function () {
    return {
      readonly: true,
      isShowPicker: false,
      pickType: '',
      curItem: '',
      isShowDatePicker: false,
      activeDateField: '',
      date: '',
      // minDate: moment().add(-100, 'year').toDate(),
      minDate: '',
      form: {
        screenId: '', //两癌筛查id
        type: '', //类型
        id: '',
        name: '',
        followupOrNot: '', //是否随访
        receiveTreat: '', //接受治疗情况
        subsist: '', //生存情况
        reviewOrNot: '', //是否复查
        molybdenumBiRads: '', // 钼靶分级
        cduBiRads: '', // 超声分级
        reviewValue: [], //复查内容
        reviewContentQita: '', // 复查内容其他
        clinicalInspect: '', //临床诊断
        followupDoctor: '', //随访人员
        followupDate: '', //随访日期
        followupOrNotOther: '' //其他
      },
      show: true,
      showTwo: false,
      isLoaded4: '0',
      reviewData: [
        { id: '1', text: '乳腺超声' },
        { id: '2', text: '钼靶' },
        { id: '3', text: '乳腺核磁共振' },
        { id: '4', text: '手术或活检' },
        { id: '5', text: '不详' },
        { id: '6', text: '其他' }
      ],
      data: {
        value: [{}]
      }
    }
  },
  methods: {},
  mounted() {
    if (this.data.value && this.data.value.length && this.data.value[0].id) {
      var first = this.data.value[0]
      this.form.screenId = first.screenId
      this.form.id = first.id ? first.id : ''
      first.reviewValue = first.reviewValue ? first.reviewValue.split(',') : ''
      this.show = false
      this.form = first
    }
  }
})

+ 206 - 0
component/statistics/LascBreastMolybdenumInspectList/index.html

@ -0,0 +1,206 @@
<div id="app">
  <van-form class="mt10">
    <van-field :readonly="readonly" required label-width="4rem" class="" name="是否拒检" label="是否拒检" input-align="right">
      <div slot="input">
        <van-radio-group :disabled="readonly" v-model="form.receiveBreastMolybdenum" direction="horizontal" @change="change">
          <van-radio name="1" class="top2">拒绝检查</van-radio>
          <van-radio name="2" class="top2">依从</van-radio>
          <van-radio name="3" class="top2">拒绝随访</van-radio>
          <van-radio name="7" class="top2">空号/错号</van-radio>
          <van-radio name="4" class="top2">缓筛</van-radio>
          <van-radio name="5" class="top2">首次无法取得联系</van-radio>
          <van-radio name="6" class="top2">其他(请说明)</van-radio>
        </van-radio-group>
        <van-field
          :readonly="readonly"
          required
          label-width="6rem"
          v-if="form.receiveBreastMolybdenum == 6"
          clearable
          v-model="form.receiveBreastMolybdenumOther"
          name=""
          label=""
          placeholder="请输入说明"
          input-align="left"></van-field>
      </div>
    </van-field>
    <van-field :readonly="readonly" v-if="form.receiveBreastMolybdenum == 1" required class="" label-width="6rem" name="拒绝检查原因" label="拒绝检查原因" input-align="right">
      <div slot="input">
        <van-checkbox-group :disabled="readonly" v-model="form.refusalReason" direction="horizontal">
          <van-checkbox name="1">路程远</van-checkbox>
          <van-checkbox name="2" class="top2">担心射线</van-checkbox>
          <van-checkbox name="3" class="top2">害怕疼痛</van-checkbox>
          <van-checkbox name="4" class="top2">一年内已检查</van-checkbox>
          <van-checkbox name="5" class="top2">已妊娠或计划妊娠</van-checkbox>
          <van-checkbox name="6" class="top2">不详</van-checkbox>
          <van-checkbox name="7" class="top2">其他(请说明)</van-checkbox>
        </van-checkbox-group>
        <van-field
          :readonly="readonly"
          required
          label-width="6rem"
          clearable
          v-if="form.refusalReason.indexOf('7')!=-1"
          v-model="form.refusalReasonOtherContent"
          name=""
          label=""
          placeholder="请输入说明"
          input-align="left"></van-field>
      </div>
    </van-field>
    <div class="item-list">
      <div class="item" v-for="(item, i) in form.list" :key="i">
        <template v-if="form.receiveBreastMolybdenum==2">
          <van-field :readonly="readonly" required label-width="8rem" class="" name="乳腺密度" label="乳腺密度" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.breastDensity" direction="horizontal">
                <van-radio name="1">脂肪型</van-radio>
                <van-radio name="2" class="top2">散在纤维腺体型</van-radio>
                <van-radio name="3" class="top2">不均匀致密型</van-radio>
                <van-radio name="4" class="top2">致密型</van-radio>
                <van-radio name="5" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" required class="" label-width="8rem" name="右乳BI-RADS分级" label="右乳BI-RADS分级" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.rightMolybdenumBiRads" direction="horizontal">
                <van-radio name="1">0级</van-radio>
                <van-radio name="2">1级</van-radio>
                <van-radio name="3">2级</van-radio>
                <van-radio name="4" class="top2">3级</van-radio>
                <van-radio name="5" class="top2">4a级</van-radio>
                <van-radio name="6" class="top2">4b级</van-radio>
                <van-radio name="7" class="top2">4c级</van-radio>
                <van-radio name="8" class="top2">5级</van-radio>
                <van-radio name="9" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" required class="" label-width="8rem" name="左乳BI-RADS分级" label="左乳BI-RADS分级" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.leftMolybdenumBiRads" direction="horizontal">
                <van-radio name="1">0级</van-radio>
                <van-radio name="2">1级</van-radio>
                <van-radio name="3">2级</van-radio>
                <van-radio name="4" class="top2">3级</van-radio>
                <van-radio name="5" class="top2">4a级</van-radio>
                <van-radio name="6" class="top2">4b级</van-radio>
                <van-radio name="7" class="top2">4c级</van-radio>
                <van-radio name="8" class="top2">5级</van-radio>
                <van-radio name="9" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" required label-width="8rem" class="" name="" label="肿块" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.tumor" direction="horizontal">
                <van-radio name="1">无</van-radio>
                <van-radio name="2">有</van-radio>
                <van-radio name="3" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" required label-width="8rem" class="" name="" label="恶性或可疑钙化" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.calcification" direction="horizontal">
                <van-radio name="1">无</van-radio>
                <van-radio name="2">有</van-radio>
                <van-radio name="3" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" required label-width="8rem" class="" name="" label="结构紊乱" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.disorganization" direction="horizontal">
                <van-radio name="1">无</van-radio>
                <van-radio name="2">有</van-radio>
                <van-radio name="3" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
        </template>
        <van-field
          required
          label-width="8rem"
          clearable
          v-model="item.breastMolybdenumOrg"
          name="检查机构"
          label="检查机构"
          placeholder="请输入检查机构"
          input-align="right"
          @click="readonly?'':showPicker1(item, '')"
          input-align="right"
          :is-link="!readonly"></van-field>
        <van-field
          required
          label-width="8rem"
          clearable
          v-model="item.breastMolybdenumOrgOther"
          name="其他"
          label="其他"
          placeholder="请输入其他"
          input-align="right"
          v-if="item.breastMolybdenumOrg=='其他'"></van-field>
        <!-- <van-field  required label-width="8rem" clearable v-model="item.breastMolybdenumUser" name="检查人员" label="检查人员" placeholder="请输入检查人员" input-align="right"
      @click="readonly?'':showPicker2(item, '')" :is-link="!readonly"> -->
        <van-field
          required
          label-width="8rem"
          clearable
          v-model="item.breastMolybdenumUser"
          name="检查人员"
          label="检查人员"
          placeholder="请输入检查人员"
          input-align="right"></van-field>
        <van-field
          :readonly="readonly"
          required
          label-width="8rem"
          readonly
          clickable
          name="检查日期"
          :value="item.breastMolybdenumTime?item.breastMolybdenumTime:''"
          label="检查日期"
          placeholder="请选择检查时间"
          @click="readonly? '':showDatePicker(item, 'breastMolybdenumTime')"
          input-align="right"
          :is-link="!readonly"></van-field>
        <van-field
          required
          label-width="8rem"
          clearable
          v-model="item.followupOrgName"
          name="随访机构"
          label="随访机构"
          placeholder="请输入随访机构"
          input-align="right"></van-field>
        <van-field
          readonly="true"
          required
          label-width="8rem"
          clearable
          v-model="item.followupUserName"
          name="随访人员"
          label="随访人员"
          placeholder="请输入随访人员"
          input-align="right"></van-field>
        <van-field
          :readonly="readonly"
          required
          label-width="8rem"
          readonly
          clickable
          name="随访日期"
          :value="item.followupDate?item.followupDate:''"
          label="随访日期"
          placeholder="请选择随访日期"
          @click="readonly? '':showDatePicker(item, 'followupDate')"
          input-align="right"
          :is-link="!readonly"></van-field>
      </div>
    </div>
  </van-form>
</div>

+ 92 - 0
component/statistics/LascBreastMolybdenumInspectList/index.js

@ -0,0 +1,92 @@
var template = ''
$.ajax('../../../component/statistics/LascBreastMolybdenumInspectList/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('lasc-breast-molybdenum-inspect-list', {
  template: template,
  props: [],
  data: function () {
    return {
      isShowPicker: false,
      isShowPicker1: false,
      isShowPicker2: false,
      columns: ['非对称性腺体增厚', '乳头凹陷', '腋窝淋巴结肿大', '副乳腺', '乳腺切除术后'],
      pickType: '',
      curItem: '',
      curItem1: '',
      isShowDatePicker: false,
      activeDateField: '',
      date: '',
      readonly: true,
      form: {
        screenId: '', //两癌筛查id
        receiveBreastMolybdenum: '2', //是否接收乳腺临床检查1拒绝2接收
        receiveBreastMolybdenumOther: '',
        refusalReason: [],
        refusalReasonOtherContent: '',
        list: []
      },
      active: '',
      mbTubeNum: '',
      orgList: [],
      orgUser: [],
      data: {
        value: [
          {
            id: 3247,
            screenId: '808080f683c9e2570183c9f84cac0000',
            name: '辅助检查-乳腺钼靶-20231221',
            receiveBreastMolybdenumOther: '',
            breastDensity: '1',
            rightMolybdenumBiRads: '2',
            leftMolybdenumBiRads: '2',
            biRadsResult: 2,
            tumor: '1',
            calcification: '1',
            disorganization: '1',
            breastMolybdenumOrg: '思明区卫生和计划生育局',
            breastMolybdenumOrgOther: null,
            breastMolybdenumUser: '苏钦毅',
            breastMolybdenumTime: '2023-12-21',
            doctor: null,
            inspectOrgCode: 'ac02a9b87a3611e69f7c005056850d66',
            inspectUserCode: '40f5371c810d411ab085cb8d9f0160a6',
            followupDate: null,
            followupOrgCode: null,
            followupOrgName: null,
            followupUserCode: null,
            followupUserName: null,
            mbTubeNum: null,
            pdfUrl: 'https://www.xmtyw.cn/twocancerpdf/null.pdf',
            receiveBreastMolybdenum: '2',
            refusalReason: '[]',
            refusalReasonOtherContent: ''
          }
        ]
      }
    }
  },
  methods: {},
  mounted() {
    if (this.data.value && this.data.value.length && this.data.value[0].id) {
      var first = this.data.value[0]
      this.form.screenId = first.screenId
      this.form.receiveBreastMolybdenum = first.receiveBreastMolybdenum
      this.form.receiveBreastMolybdenumOther = first.receiveBreastMolybdenumOther
      this.form.refusalReason = first.refusalReason ? first.refusalReason.split(',') : []
      this.form.refusalReasonOtherContent = first.refusalReasonOtherContent
      this.form.list = this.data.value
      this.mbTubeNum = first.mbTubeNum ? first.mbTubeNum : ''
    }
  }
})

+ 230 - 0
component/statistics/LascBreastPathologyInspectEntityList/index.html

@ -0,0 +1,230 @@
<div id="app">
  <van-form>
    <van-field :readonly="readonly" required label-width="4rem" class="" name="是否检查" label="是否检查" input-align="right">
      <div slot="input">
        <van-radio-group :disabled="readonly" v-model="form.receivePathologicalExamination" direction="horizontal">
          <van-radio name="1" class="top2">拒绝检查</van-radio>
          <van-radio name="2" class="top2">依从</van-radio>
          <van-radio name="3" class="top2">拒绝随访</van-radio>
          <van-radio name="4" class="top2">缓筛</van-radio>
          <van-radio name="5" class="top2">首次无法取得联系</van-radio>
          <van-radio name="6" class="top2">其他(请说明)</van-radio>
          <van-radio name="7" class="top2">空号/错号</van-radio>
          <van-field
            :readonly="readonly"
            label-width="6rem"
            v-if='form.receivePathologicalExamination == "6"'
            clearable
            v-model="form.refusePathologicalExaminationReason"
            name=""
            label=""
            placeholder="请输入说明"
            input-align="left"></van-field>
        </van-radio-group>
      </div>
    </van-field>
    <van-field
      :readonly="readonly"
      v-if="form.receivePathologicalExamination == 1"
      required
      class=""
      label-width="6rem"
      name="拒绝检查原因"
      label="拒绝检查原因"
      input-align="right">
      <div slot="input">
        <van-checkbox-group :disabled="readonly" v-model="form.breastPathologyRefusalReason" direction="horizontal">
          <van-checkbox name="1">路程远</van-checkbox>
          <van-checkbox name="2" class="top2">担心创伤</van-checkbox>
          <van-checkbox name="3" class="top2">已妊娠或计划妊娠</van-checkbox>
          <van-checkbox name="4" class="top2">自己选择保守治疗(中药/观察)</van-checkbox>
          <van-checkbox name="5" class="top2">来自其他医生的不同建议</van-checkbox>
          <van-checkbox name="6" class="top2">不详</van-checkbox>
          <van-checkbox name="7" class="top2">其他(请说明)</van-checkbox>
        </van-checkbox-group>
        <van-field
          :readonly="readonly"
          required
          label-width="6rem"
          clearable
          v-if="form.breastPathologyRefusalReason.indexOf('7')!=-1"
          v-model="form.breastPathologyRefusalReasonContent"
          name=""
          label=""
          placeholder="请输入说明"
          input-align="left"></van-field>
      </div>
    </van-field>
    <van-field
      :readonly="readonly"
      required
      label-width="4rem"
      class=""
      name="病理学检查时间"
      label="病理学检查时间"
      input-align="right"
      v-if="form.receivePathologicalExamination==2">
      <div slot="input">
        <van-radio-group :disabled="readonly" v-model="form.pathologicalExamTime" direction="horizontal">
          <van-radio name="1" class="top2">距初筛≤60天</van-radio>
          <van-radio name="2" class="top2">距初筛60天~1年</van-radio>
          <van-radio name="3" class="top2">距初筛1年-2年</van-radio>
          <van-radio name="4" class="top2">距初筛2年以上</van-radio>
          <van-radio name="5" class="top2">不详</van-radio>
        </van-radio-group>
      </div>
    </van-field>
    <div class="item-list">
      <div class="item" v-for="(item, i) in form.list" :key="i">
        <van-cell :title="(sort+1)+'、'">
          <div id="" v-if="!readonly">
            <van-icon v-if="form.list&&form.list.length>1" size="20px" name="delete-o" />
          </div>
        </van-cell>
        <template v-if="form.receivePathologicalExamination==2">
          <template v-for="(breast, k) in item.breastList">
            <div id="" class="headlineTwo" @click="breast.boxShow=!breast.boxShow" style="display: flex; justify-content: space-between">
              <div id="">{{breast.name}}</div>
              <div id="" class="headlineIcon" v-if="!breast.boxShow"><van-icon name="arrow-down" /></div>
              <div id="" class="headlineIcon" v-else><van-icon name="arrow-up" /></div>
            </div>
            <div id="" class="fromBox" v-show="breast.boxShow">
              <van-field :readonly="readonly" required class="padding30" label-width="6rem" name="活检方式" label="活检方式" input-align="right">
                <div slot="input">
                  <van-checkbox-group :disabled="readonly" v-model="breast.rightPathologicalBiopsyMethod" direction="horizontal">
                    <van-checkbox name="1">微创手术</van-checkbox>
                    <van-checkbox name="2" class="top2">开放切除</van-checkbox>
                    <van-checkbox name="3" class="top2">空心针穿刺活检</van-checkbox>
                    <van-checkbox name="4" class="top2">未活检</van-checkbox>
                  </van-checkbox-group>
                </div>
              </van-field>
              <van-field
                :readonly="readonly"
                required
                v-if="difference(breast.rightPathologicalBiopsyMethod, ['4']).length"
                class="padding30"
                label-width="6rem"
                name="病理结论"
                label="病理结论"
                input-align="right">
                <div slot="input">
                  <van-radio-group :disabled="readonly" v-model="breast.rightPathologicalConclusion" direction="horizontal">
                    <van-radio name="1">未查</van-radio>
                    <van-radio name="2" class="top2">不详</van-radio>
                    <van-radio name="3" class="top2">良性病变不伴有不典型增生</van-radio>
                    <van-radio name="4" class="top2">良性病变伴有不典型增生</van-radio>
                    <van-radio name="5" class="top2">乳腺恶性肿瘤</van-radio>
                  </van-radio-group>
                </div>
              </van-field>
              <van-field
                :readonly="readonly"
                v-if="difference(breast.rightPathologicalBiopsyMethod, ['4']).length&&breast.rightPathologicalConclusion==5"
                class="padding30"
                label-width="6rem"
                name="乳腺恶性肿瘤类型"
                label="乳腺恶性肿瘤类型"
                input-align="right">
                <div slot="input">
                  <van-checkbox-group :disabled="readonly" v-model="breast.rightPathologicalMalignanciesType" direction="horizontal">
                    <van-checkbox name="1">导管癌</van-checkbox>
                    <van-checkbox name="2" class="top2">小叶癌</van-checkbox>
                    <van-checkbox name="3" class="top2">乳房恶性叶状肿瘤</van-checkbox>
                    <van-checkbox name="4" class="top2">其他</van-checkbox>
                    <van-field
                      :readonly="readonly"
                      label-width="6rem"
                      v-if='breast.rightPathologicalMalignanciesType.indexOf("4")!=-1'
                      clearable
                      v-model="breast.rightPathologicalMalignanciesOtherType"
                      name=""
                      label=""
                      placeholder="请输入"
                      input-align="left"></van-field>
                    <van-checkbox name="5" class="top2">不详</van-checkbox>
                  </van-checkbox-group>
                </div>
              </van-field>
            </div>
          </template>
          <van-field
            :readonly="readonly"
            v-if="item.breastList[0].rightPathologicalConclusion==5 || item.breastList[1].rightPathologicalConclusion==5"
            required
            class=""
            label-width="7rem"
            name="乳腺癌治疗结果"
            label="乳腺癌治疗结果"
            input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.breastCancerTreatmentResult" direction="horizontal">
                <van-radio name="1">已治疗</van-radio>
                <van-radio name="2" class="top2">拒绝治疗</van-radio>
                <van-radio name="3" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field
            :readonly="true"
            required
            label-width="8rem"
            clearable
            v-model="item.pathologicalExaminationDiagnosisOrgPick"
            name="诊断机构"
            label="诊断机构"
            placeholder="请选择检查机构"
            input-align="right"></van-field>
          <van-field
            v-if="item.pathologicalExaminationDiagnosisOrgPick==orgColumns[7]"
            :readonly="readonly"
            required
            label-width="8rem"
            clearable
            v-model="item.pathologicalExaminationDiagnosisOrg"
            name="其他诊断机构"
            label="其他检查机构"
            placeholder="请输入检查机构"
            input-align="right"></van-field>
        </template>
        <van-field
          :readonly="readonly"
          required
          label-width="8rem"
          clearable
          v-model="item.pathologicalExaminationFollowupUser"
          name="随访人员"
          label="随访人员"
          placeholder="请输入检查人员"
          input-align="right"></van-field>
        <van-field
          :readonly="readonly"
          required
          label-width="4rem"
          class=""
          :readonly="readonly"
          clearable
          v-model="item.followupOrg"
          name="随访机构"
          label="随访机构"
          placeholder="请输入随访机构"
          input-align="right"></van-field>
        <van-field
          :readonly="readonly"
          required
          label-width="8rem"
          readonly
          clickable
          name="随访日期"
          :value="item.pathologicalExaminationFollowupTime?item.pathologicalExaminationFollowupTime:''"
          label="随访日期"
          placeholder="请选择随访日期"
          input-align="right"
          :is-link="!readonly"></van-field>
      </div>
    </div>
  </van-form>
</div>

+ 126 - 0
component/statistics/LascBreastPathologyInspectEntityList/index.js

@ -0,0 +1,126 @@
var template = ''
$.ajax('../../../component/statistics/LascBreastPathologyInspectEntityList/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('lasc-breast-pathology-inspect-entity-list', {
  template: template,
  props: [],
  data: function () {
    return {
      isShowPicker: false,
      columns: ['非对称性腺体增厚', '乳头凹陷', '腋窝淋巴结肿大', '副乳腺', '乳腺切除术后'],
      pickType: '',
      curItem: '',
      readonly: true,
      orgColumns: ['', '厦门市妇幼保健院', '厦门市第一医院', '厦门市中山医院', '厦门市中医院', '复旦中山厦门医院', '厦门医学院附属第二医院', '其他(请说明)'],
      isShowDatePicker: false,
      isShowOrgsPicker: false,
      activeDateField: '',
      date: '',
      form: {
        screenId: '', //两癌筛查id
        receivePathologicalExamination: '2', //是否接收乳腺临床检查1拒绝2接收
        pathologicalExamTime: '',
        refusePathologicalExaminationReason: '医嘱取消',
        breastPathologyRefusalReason: [],
        breastPathologyRefusalReasonContent: '',
        list: [],
        id: ''
      },
      data: {
        value: [
          {
            id: 191,
            screenId: '808080f6837851d6018378ae0ddf0002',
            name: '乳腺病理学检查-20221026',
            refusePathologicalExaminationReason: '医嘱取消',
            leftPathologicalBiopsyMethod: '1',
            leftPathologicalConclusion: '5',
            leftPathologicalMalignanciesType: '3',
            leftPathologicalMalignanciesOtherType: '',
            rightPathologicalBiopsyMethod: '1',
            rightPathologicalConclusion: '5',
            rightPathologicalMalignanciesType: '1',
            rightPathologicalMalignanciesOtherType: '',
            breastCancerTreatmentResult: '1',
            pathologicalExaminationDiagnosisOrg: '厦门市中医院',
            pathologicalExaminationDiagnosisOrgType: null,
            pathologicalExaminationFollowupUser: '黄琴',
            pathologicalExaminationFollowupTime: '2022-10-26',
            doctor: null,
            inspectOrgCode: '3502110100',
            inspectUserCode: '361aef4891de492cb0e6a47cf9fe31f3',
            followupOrg: null,
            followupOrgCode: null,
            receivePathologicalExamination: '2',
            breastPathologyRefusalReason: null,
            breastPathologyRefusalReasonContent: null,
            pathologicalExamTime: null
          }
        ]
      }
    }
  },
  methods: {
    getPathologicalExaminationDiagnosisOrg: function (name) {
      if (name) {
        return _.contains(this.orgColumns, name) ? name : this.orgColumns[7]
      }
      return ''
    },
    difference: function (field, excludes) {
      return _.difference(field, excludes)
    }
  },
  created() {
    var vm = this
    if (this.data.value && this.data.value.length && this.data.value[0].id) {
      var first = this.data.value[0]
      this.form.screenId = first.screenId
      this.form.id = first.id ? first.id : ''
      this.form.receivePathologicalExamination = first.receivePathologicalExamination
      this.form.refusePathologicalExaminationReason = first.refusePathologicalExaminationReason
      this.form.breastPathologyRefusalReason = first.breastPathologyRefusalReason ? first.breastPathologyRefusalReason.split(',') : []
      this.form.breastPathologyRefusalReasonContent = first.breastPathologyRefusalReasonContent
      this.form.pathologicalExamTime = first.pathologicalExamTime
      var formData = JSON.parse(JSON.stringify(this.data.value))
      formData.forEach(function (v) {
        var left = { boxShow: false, name: '左乳' },
          right = { boxShow: false, name: '右乳' }
        for (var k in v) {
          if (k.indexOf('right') === 0) {
            right[k] = v[k]
            if (k == 'rightPathologicalBiopsyMethod') {
              right[k] = right[k] ? right[k].split(',') : []
            }
            if (k == 'rightPathologicalMalignanciesType') {
              right[k] = right[k] ? right[k].split(',') : []
            }
          } else if (k.indexOf('left') === 0) {
            left['right' + k.substring(4)] = v[k]
            if (k == 'leftPathologicalBiopsyMethod') {
              left['right' + k.substring(4)] = left['right' + k.substring(4)] ? left['right' + k.substring(4)].split(',') : ''
            }
            if (k == 'leftPathologicalMalignanciesType') {
              left['right' + k.substring(4)] = left['right' + k.substring(4)] ? left['right' + k.substring(4)].split(',') : ''
            }
          }
        }
        v.breastList = [right, left]
        v.pathologicalExaminationDiagnosisOrgPick = vm.getPathologicalExaminationDiagnosisOrg(v.pathologicalExaminationDiagnosisOrg)
      })
      this.form.list = formData
    }
  }
})

+ 86 - 0
component/statistics/LascBreastSurgeryInspectEntity/index.html

@ -0,0 +1,86 @@
<div id="app">
  <van-form>
    <van-field :readonly="readonly" required label-width="4rem" class="" name="是否拒检" label="是否拒检" input-align="right">
      <div slot="input">
        <van-radio-group :disabled="readonly" v-model="form.receiveBreastSurgeryClinic" direction="horizontal">
          <van-radio name="1">拒绝检查</van-radio>
          <van-radio name="2" class="top2">依从</van-radio>
          <van-radio name="3" class="top2">拒绝随访</van-radio>
          <van-radio name="4" class="top2">空号/错号</van-radio>
          <van-radio name="5" class="top2">首次无法取得联系</van-radio>
          <van-radio name="6" class="top2">其他(请说明)</van-radio>
          <van-field
            :readonly="readonly"
            label-width="6rem"
            v-if="form.receiveBreastSurgeryClinic == '6' "
            clearable
            required
            v-model="form.surgeryClinicRefuseContent"
            name=""
            label=""
            placeholder="请输入说明"
            input-align="left"></van-field>
        </van-radio-group>
      </div>
    </van-field>
    <div>
      <template v-if="form.receiveBreastSurgeryClinic==2">
        <van-field :readonly="readonly" required label-width="4rem" class="" name="治疗建议" label="治疗建议" input-align="right">
          <div slot="input">
            <van-checkbox-group :disabled="readonly" v-model="form.surgicalClinicTreatmentSuggestions" direction="horizontal">
              <van-checkbox name="1">12个月复查</van-checkbox>
              <van-checkbox name="2">3-6个月复查</van-checkbox>
              <van-checkbox name="3">手术</van-checkbox>
              <van-checkbox name="4" class="pt5">空心针穿刺活检</van-checkbox>
              <van-checkbox name="5" class="pt5">他莫昔芬/托瑞米芬治疗</van-checkbox>
              <van-checkbox name="6" class="pt5">其他</van-checkbox>
              <van-field
                :readonly="readonly"
                required
                label-width="6rem"
                v-if='form.surgicalClinicTreatmentSuggestions.indexOf("6")!=-1'
                clearable
                v-model="form.surgicalClinicTreatmentOther"
                name=""
                label=""
                placeholder="请输入"
                input-align="left"></van-field>
            </van-checkbox-group>
          </div>
        </van-field>
      </template>
      <van-field
        :readonly="readonly"
        required
        label-width="4rem"
        clearable
        v-model="form.breastSurgeryClinicOrg"
        name="检查机构"
        label="检查机构"
        placeholder="请输入检查机构"
        input-align="right"></van-field>
      <van-field
        :readonly="readonly"
        required
        label-width="4rem"
        clearable
        v-model="form.breastSurgeryClinicUser"
        name="检查人员"
        label="检查人员"
        placeholder="请输入检查人员"
        input-align="right"></van-field>
      <van-field
        :readonly="readonly"
        required
        label-width="4rem"
        readonly
        clickable
        name="检查时间"
        :value="form.breastSurgeryClinicTime?form.breastSurgeryClinicTime:''"
        label="检查时间"
        placeholder="请选择检查时间"
        input-align="right"
        :is-link="!readonly"></van-field>
    </div>
  </van-form>
</div>

+ 65 - 0
component/statistics/LascBreastSurgeryInspectEntity/index.js

@ -0,0 +1,65 @@
var template = ''
var docInfo = JSON.parse(window.localStorage.getItem('wlyyAgent'))
$.ajax('../../../component/statistics/LascBreastSurgeryInspectEntity/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('lasc-breast-surgery-inspect-entity', {
  template: template,
  props: [],
  data: function () {
    return {
      isShowPicker: false,
      columns: ['非对称性腺体增厚', '乳头凹陷', '腋窝淋巴结肿大', '副乳腺', '乳腺切除术后'],
      pickType: '',
      curItem: '',
      isShowDatePicker: false,
      activeDateField: '',
      date: '',
      form: {
        screenId: '', //两癌筛查id
        receiveBreastSurgeryClinic: '2', //是否接收乳腺临床检查1拒绝2接收
        surgeryClinicRefuseContent: '',
        surgicalClinicTreatmentSuggestions: [], //
        surgicalClinicTreatmentOther: '', //
        breastSurgeryClinicOrg: docInfo.hospitalName, //检查机构
        breastSurgeryClinicUser: docInfo.name, //检查人员
        breastSurgeryClinicTime: '' //检查时间
      },
      readonly: true,
      data: {
        value: [
          {
            id: 28,
            screenId: '808080f683cb15560183cb3dfadb0000',
            name: null,
            surgicalClinicTreatmentSuggestions: '3',
            surgicalClinicTreatmentOther: '',
            breastSurgeryClinicOrg: '思明区嘉莲街道社区卫生服务中心',
            breastSurgeryClinicUser: '王清秀',
            breastSurgeryClinicTime: '2022-10-12',
            doctor: '361aef4891de492cb0e6a47cf9fe31f3',
            inspectOrgCode: '3502110100',
            inspectUserCode: '361aef4891de492cb0e6a47cf9fe31f3',
            receiveBreastSurgeryClinic: '1',
            surgeryClinicRefuseContent: null
          }
        ]
      }
    }
  },
  methods: {},
  mounted() {
    var form = JSON.parse(JSON.stringify(this.data.value))
    form.surgicalClinicTreatmentSuggestions = (form.surgicalClinicTreatmentSuggestions && form.surgicalClinicTreatmentSuggestions.split(',')) || []
    this.form = _.assign(this.form, form)
  }
})

+ 428 - 0
component/statistics/LascBreastTreatInfo/index.html

@ -0,0 +1,428 @@
<div id="app">
  <van-form>
    <div class="item-list">
      <div class="item">
        <template>
          <van-field :readonly="readonly" required label-width="4rem" class="" name="是否治疗" label="是否治疗" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.isTreat" direction="horizontal">
                <van-radio name="1">已治疗</van-radio>
                <van-radio name="2" class="top2">拒绝治疗</van-radio>
                <van-radio name="3" class="top2">拒绝随访</van-radio>
                <van-radio name="4" class="top2">空号/错号</van-radio>
                <van-radio name="5" class="top2">首次无法取得联系</van-radio>
                <van-radio name="6" class="top2">已治疗但无法获得具体信息</van-radio>
                <van-radio name="7" class="top2">其他(请说明)</van-radio>
                <van-field
                  :readonly="readonly"
                  :required="required"
                  label-width="6rem"
                  clearable
                  v-if="form.isTreat == '7'"
                  v-model="form.isTreatOtherContent"
                  name=""
                  label=""
                  placeholder="请输入"
                  input-align="left"></van-field>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" :required="required" class="padding30" label-width="6rem" name="部位" label="部位" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.treatPosition" direction="horizontal">
                <van-radio name="1">左乳</van-radio>
                <van-radio name="2" class="top2">右乳</van-radio>
                <van-radio name="3" class="top2">左右乳</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" :required="required" class="padding30" label-width="6rem" name="病理类型" label="病理类型" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="form.type" direction="horizontal">
                <van-checkbox name="1">浸润性导管癌</van-checkbox>
                <van-checkbox name="2" class="top2">浸润性小叶癌</van-checkbox>
                <van-checkbox name="3" class="top2">导管原位癌</van-checkbox>
                <van-checkbox name="4" class="top2">小叶原位癌</van-checkbox>
                <van-checkbox name="5" class="top2">乳房恶性叶状肿瘤</van-checkbox>
                <van-checkbox name="7" class="top2">不详</van-checkbox>
                <van-checkbox name="6" class="top2">其他</van-checkbox>
                <van-field
                  :readonly="readonly"
                  :required="required"
                  label-width="6rem"
                  v-if='form.type&&form.type.indexOf("6")!=-1'
                  clearable
                  v-model="form.typeOther"
                  name=""
                  label=""
                  placeholder="请输入"
                  input-align="left"></van-field>
              </van-checkbox-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            :required="required"
            class="padding30"
            label-width="8rem"
            name="术前分期(T)"
            label="术前分期(T)"
            placeholder="请选择检查机构"
            input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.opFrontT" direction="horizontal">
                <van-radio name="0">0</van-radio>
                <van-radio name="1" class="top2">1</van-radio>
                <van-radio name="2" class="top2">2</van-radio>
                <van-radio name="3" class="top2">3</van-radio>
                <van-radio name="4" class="top2">4</van-radio>
                <van-radio name="5" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            :required="required"
            class="padding30"
            label-width="8rem"
            name="术前分期(N)"
            label="术前分期(N)"
            placeholder="请选择检查机构"
            input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.opFrontN" direction="horizontal">
                <van-radio name="0">0</van-radio>
                <van-radio name="1" class="top2">1</van-radio>
                <van-radio name="2" class="top2">2</van-radio>
                <van-radio name="3" class="top2">3</van-radio>
                <van-radio name="4" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            :required="required"
            class="padding30"
            label-width="8rem"
            name="术前分期(M)"
            label="术前分期(M)"
            placeholder="请选择检查机构"
            input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.opFrontM" direction="horizontal">
                <van-radio name="0">0</van-radio>
                <van-radio name="1" class="top2">1</van-radio>
                <van-radio name="2" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="true" :required="required" class="padding30" label-width="8rem" name="术前分期" label="术前分期" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.opFront" direction="horizontal">
                <van-radio name="0">0期</van-radio>
                <van-radio name="1" class="top2">I期</van-radio>
                <van-radio name="2" class="top2">IIA期</van-radio>
                <van-radio name="3" class="top2">IIB期</van-radio>
                <van-radio name="4" class="top2">IIIA期</van-radio>
                <van-radio name="5" class="top2">IIIB期</van-radio>
                <van-radio name="6" class="top2">IIIC期</van-radio>
                <van-radio name="7" class="top2">IV期</van-radio>
                <van-radio name="8" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <!-- 术后 -->
          <van-field :readonly="readonly" :required="required" class="padding30" label-width="8rem" name="术后分期(T)" label="术后分期(T)" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.opAfterT" direction="horizontal">
                <van-radio name="0">0</van-radio>
                <van-radio name="1" class="top2">1</van-radio>
                <van-radio name="2" class="top2">2</van-radio>
                <van-radio name="3" class="top2">3</van-radio>
                <van-radio name="4" class="top2">4</van-radio>
                <van-radio name="5" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" :required="required" class="padding30" label-width="8rem" name="术后分期(N)" label="术后分期(N)" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.opAfterN" direction="horizontal">
                <van-radio name="0">0</van-radio>
                <van-radio name="2" class="top2">1</van-radio>
                <van-radio name="3" class="top2">2</van-radio>
                <van-radio name="4" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" :required="required" class="padding30" label-width="8rem" name="术后分期(M)" label="术后分期(M)" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.opAfterM" direction="horizontal">
                <van-radio name="0">0</van-radio>
                <van-radio name="1" class="top2">1</van-radio>
                <van-radio name="2" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="true" :required="required" class="padding30" label-width="8rem" name="术后分期" label="术后分期" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.opAfter" direction="horizontal">
                <van-radio name="0">0期</van-radio>
                <van-radio name="1" class="top2">I期</van-radio>
                <van-radio name="2" class="top2">IIA期</van-radio>
                <van-radio name="3" class="top2">IIB期</van-radio>
                <van-radio name="4" class="top2">IIIA期</van-radio>
                <van-radio name="5" class="top2">IIIB期</van-radio>
                <van-radio name="6" class="top2">IIIC期</van-radio>
                <van-radio name="7" class="top2">IV期</van-radio>
                <van-radio name="8" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="true" :required="required" class="padding30" label-width="10rem" name="免疫组织化学结果(ER)" label="免疫组织化学结果(ER)" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.immunohistochemicalResultsErUnknown" direction="horizontal">
                <van-radio name="0" class="top2">百分比</van-radio>
                <van-radio name="-1" class="top2">不详</van-radio>
                <van-radio name="1" class="top2">其他</van-radio>
                <!-- 百分比 -->
                <van-field
                  :readonly="readonly"
                  label-width="6rem"
                  v-if="form.immunohistochemicalResultsErUnknown && (form.immunohistochemicalResultsErUnknown == 0 || form.immunohistochemicalResultsErUnknown == 1)"
                  clearable
                  v-model="form.immunohistochemicalResultsEr"
                  name=""
                  label=""
                  placeholder="请输入"
                  input-align="left">
                  <van-text slot="button" v-if="form.immunohistochemicalResultsErUnknown == 0" size="small" type="text">%</van-text>
                </van-field>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="true" :required="required" class="padding30" label-width="10rem" name="免疫组织化学结果(PR)" label="免疫组织化学结果(PR)" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.immunohistochemicalResultsPrUnknown" direction="horizontal">
                <van-radio name="0" class="top2">百分比</van-radio>
                <van-radio name="-1" class="top2">不详</van-radio>
                <van-radio name="1" class="top2">其他</van-radio>
                <!-- 百分比 -->
                <van-field
                  :readonly="readonly"
                  label-width="6rem"
                  v-if="form.immunohistochemicalResultsPrUnknown && (form.immunohistochemicalResultsPrUnknown == 0 || form.immunohistochemicalResultsPrUnknown == 1)"
                  clearable
                  v-model="form.immunohistochemicalResultsPr"
                  name=""
                  label=""
                  placeholder="请输入"
                  input-align="left">
                  <van-text slot="button" v-if="form.immunohistochemicalResultsPrUnknown == 0" size="small" type="text">%</van-text>
                </van-field>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="true" :required="required" class="padding30" label-width="10rem" name="免疫组织化学结果(HER2)" label="免疫组织化学结果(HER2)" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.immunohistochemicalResultsHer" direction="horizontal">
                <van-radio name="0" class="">0</van-radio>
                <van-radio name="1" class="top2">1+</van-radio>
                <van-radio name="2" class="top2">2+</van-radio>
                <van-radio name="3" class="top2">3+</van-radio>
                <van-radio name="4" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="true" :required="required" class="padding30" label-width="10rem" name="免疫组织化学结果(Ki67)" label="免疫组织化学结果(Ki67)" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.immunohistochemicalResultsKiUnknown" direction="horizontal">
                <van-radio name="0" class="">百分比</van-radio>
                <van-radio name="-1" class="top2">不详</van-radio>
                <van-field
                  :readonly="readonly"
                  label-width="6rem"
                  v-if="form.immunohistochemicalResultsKiUnknown && form.immunohistochemicalResultsKiUnknown==0"
                  clearable
                  v-model="form.immunohistochemicalResultsKi"
                  name=""
                  label=""
                  placeholder="请输入"
                  input-align="left">
                  <van-text slot="button" size="small" type="text">%</van-text>
                </van-field>
              </van-radio-group>
            </div>
          </van-field>
          <van-field
            :readonly="true"
            :required="required"
            class="padding30"
            label-width="12rem"
            name="免疫组织化学结果(FISH/CISH)"
            label="免疫组织化学结果(FISH/CISH)"
            input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.immunohistochemicalResultsFishCish" direction="horizontal">
                <van-radio name="1" class="">阴性</van-radio>
                <van-radio name="2" class="top2">阳性</van-radio>
                <van-radio name="3" class="top2">未做</van-radio>
                <van-radio name="4" class="top2">不详</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" :required="required" class="padding30" label-width="6rem" name="乳腺癌治疗方式" label="乳腺癌治疗方式" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="form.breastCancerSurgeryMode" direction="horizontal">
                <van-checkbox name="1">手术</van-checkbox>
                <van-checkbox name="2" class="top2">化疗</van-checkbox>
                <van-checkbox name="3" class="top2">靶向治疗</van-checkbox>
                <van-checkbox name="4" class="top2">内分泌治疗</van-checkbox>
                <van-checkbox name="5" class="top2">免疫治疗</van-checkbox>
                <van-checkbox name="6" class="top2">放疗</van-checkbox>
                <van-checkbox name="7" class="top2">不详</van-checkbox>
                <van-checkbox name="8" class="top2">其他</van-checkbox>
                <van-field
                  :readonly="readonly"
                  :required="required"
                  label-width="6rem"
                  v-if='form.breastCancerSurgeryMode&&form.breastCancerSurgeryMode.indexOf("8")!=-1'
                  clearable
                  v-model="form.breastCancerSurgeryModeOther"
                  name=""
                  label=""
                  placeholder="请输入"
                  input-align="left"></van-field>
              </van-checkbox-group>
            </div>
          </van-field>
          <van-field
            :readonly="true"
            v-if='form.breastCancerSurgeryMode&&form.breastCancerSurgeryMode.indexOf("1")!=-1'
            :required="required"
            class="padding30"
            label-width="5.5rem"
            name="乳房手术方式"
            label="乳房手术方式"
            input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.breastSurgeryMode" direction="horizontal">
                <van-radio name="1" class="">保留乳房</van-radio>
                <van-radio name="2" class="top2">全乳房切除</van-radio>
                <van-radio name="3" class="top2">保留乳头乳晕的乳房切除</van-radio>
                <van-radio name="4" class="top2">不详</van-radio>
                <van-radio name="5" class="top2">其他</van-radio>
                <van-field
                  :readonly="readonly"
                  :required="required"
                  label-width="6rem"
                  v-if="form.breastSurgeryMode==5"
                  clearable
                  v-model="form.breastSurgeryModeOther"
                  name=""
                  label=""
                  placeholder="请输入"
                  input-align="left"></van-field>
              </van-radio-group>
            </div>
          </van-field>
          <van-field
            :readonly="true"
            v-if='form.breastCancerSurgeryMode&&form.breastCancerSurgeryMode.indexOf("1")!=-1'
            :required="required"
            class="padding30"
            label-width="8rem"
            name="腋窝手术方式"
            label="腋窝手术方式"
            input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="form.armpitSurgeryMode" direction="horizontal">
                <van-checkbox name="1" class="">前哨淋巴结活检</van-checkbox>
                <van-checkbox name="2" class="top2">腋窝淋巴结清扫</van-checkbox>
                <van-checkbox name="3" class="top2">不详</van-checkbox>
                <van-checkbox name="4" class="top2">其他</van-checkbox>
                <van-field
                  :readonly="readonly"
                  :required="required"
                  label-width="6rem"
                  v-if="form.armpitSurgeryMode==4"
                  clearable
                  v-model="form.armpitSurgeryModeOther"
                  name=""
                  label=""
                  placeholder="请输入"
                  input-align="left"></van-field>
              </van-checkbox-group>
            </div>
          </van-field>
          <van-field
            :readonly="true"
            v-if='form.breastCancerSurgeryMode&&form.breastCancerSurgeryMode.indexOf("1")!=-1'
            :required="required"
            class="padding30"
            label-width="6rem"
            name="乳房重建方式"
            label="乳房重建方式"
            input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="form.breastReconstructionMode" direction="horizontal">
                <van-radio name="1" class="">无重建</van-radio>
                <van-radio name="2" class="top2">自体组织重建</van-radio>
                <van-radio name="3" class="top2">硅胶假体重建</van-radio>
                <van-radio name="4" class="top2">自体组织联合假体重建</van-radio>
                <van-radio name="5" class="top2">不详</van-radio>
                <van-radio name="6" class="top2">其他</van-radio>
                <van-field
                  :readonly="readonly"
                  :required="required"
                  label-width="6rem"
                  v-if="form.breastReconstructionMode==6"
                  clearable
                  v-model="form.breastReconstructionModeOther"
                  name=""
                  label=""
                  placeholder="请输入"
                  input-align="left"></van-field>
              </van-radio-group>
            </div>
          </van-field>
        </template>
        <van-field
          :readonly="readonly"
          required
          label-width="8rem"
          clearable
          v-model="form.followupDoctor"
          name="随访人员"
          label="随访人员"
          placeholder="请输入随访人员"
          input-align="right"></van-field>
        <van-field
          :readonly="readonly"
          required
          label-width="4rem"
          class=""
          :readonly="readonly"
          clearable
          v-model="form.followupOrg"
          name="随访机构"
          label="随访机构"
          placeholder="请输入随访机构"
          input-align="right"></van-field>
        <van-field
          :readonly="readonly"
          required
          label-width="8rem"
          readonly
          clickable
          name="随访日期"
          :value="form.followupDate?form.followupDate:''"
          label="随访日期"
          placeholder="请选择随访日期"
          input-align="right"
          :is-link="!readonly"></van-field>
      </div>
    </div>
  </van-form>
</div>

+ 82 - 0
component/statistics/LascBreastTreatInfo/index.js

@ -0,0 +1,82 @@
var template = ''
$.ajax('../../../component/statistics/LascBreastTreatInfo/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('lasc-breast-treat-info', {
  template: template,
  props: ['data'],
  data: function () {
    return {
      isShowPicker: false,
      pickType: '',
      curItem: '',
      isShowDatePicker: false,
      activeDateField: '',
      date: '',
      form: {
        screenId: '', //两癌筛查id
        treatPosition: '',
        id: '',
        name: '',
        type: [],
        typeOther: '',
        opFrontT: '',
        opFrontN: '',
        opFrontM: '',
        opFront: '',
        opAfterT: '',
        opAfterN: '',
        opAfterM: '',
        opAfter: '',
        immunohistochemicalResultsEr: '',
        immunohistochemicalResultsErUnknown: '',
        immunohistochemicalResultsPr: '',
        immunohistochemicalResultsPrUnknown: '',
        immunohistochemicalResultsHer: '',
        immunohistochemicalResultsKi: '',
        immunohistochemicalResultsKiUnknown: '',
        immunohistochemicalResultsFishCish: '',
        breastCancerSurgeryMode: [],
        breastCancerSurgeryModeOther: '',
        breastSurgeryMode: '',
        breastSurgeryModeOther: '',
        armpitSurgeryMode: [],
        armpitSurgeryModeOther: '',
        breastReconstructionMode: '',
        breastReconstructionModeOther: '',
        followupDoctor: '', //随访人员
        followupDate: '', //随访日期
        isTreat: '', // 是否治疗
        isTreatOtherContent: '',
        followupOrg: '' //随访机构
      },
      columns: [],
      orgColumns: [],
      isShowOrgsPicker: false,
      show: true,
      showType: '',
      required: true
    }
  },
  methods: {},
  mounted() {
    if (this.data.value && this.data.value.length && this.data.value[0].id) {
      var first = this.data.value[0]
      this.form.screenId = first.screenId
      this.form.id = first.id ? first.id : ''
      first.type = first.type ? first.type.split(',') : []
      first.breastCancerSurgeryMode = first.breastCancerSurgeryMode ? first.breastCancerSurgeryMode.split(',') : []
      first.armpitSurgeryMode = first.armpitSurgeryMode ? first.armpitSurgeryMode.split(',') : []
      this.form = first
    }
  }
})

+ 91 - 0
component/statistics/LascCervicalCytologyInspectEntityList/index.html

@ -0,0 +1,91 @@
<div id="app">
  <van-form>
    <div class="item-list">
      <van-tabs title-active-color="#17b3ec" color="#17b3ec" v-model:active="active">
        <van-tab title="检查数据">
          <div class="item" v-for="(item, i) in form.list" :key="i">
            <van-cell :title="i+1+'、'">
              <div id="" v-if="!readonly">
                <van-icon v-if="form.list&&form.list.length>1" size="20px" name="delete-o" />
              </div>
            </van-cell>
            <van-field
              :readonly="readonly"
              label-width="8rem"
              class=""
              readonly
              clearable
              :value="item.tbsResult"
              name="TBS分类报告结果"
              label="TBS分类报告结果"
              placeholder="请选择"
              input-align="right"
              :is-link="!readonly"></van-field>
            <!-- <van-field :readonly="readonly" required label-width="8rem" class=''  name="宫颈DNA倍体检测结果" label="宫颈DNA倍体检测结果" input-align="right">
								<div slot="input">
									<van-radio-group :disabled="readonly" v-model="item.cervicalDnaPloidyInspect" direction="horizontal" :disabled='readonly' >
										<van-radio name="1">未见DNA倍体异常</van-radio>
										<van-radio name="2">可见少量DNA倍体异常细胞(1-2个)</van-radio>
										<van-radio name="3">可见少量细胞增生(5%-10%)</van-radio>
										<van-radio name="4">可见DNA倍体异常细胞(≥3个)</van-radio>
										<van-radio name="5">可见细胞异常增生(≥10%)</van-radio>
										<van-radio name="6">可见异倍体细胞峰</van-radio>
										<van-radio name="7">有效检测细胞不足</van-radio>
									</van-radio-grou>
								</div>
							</van-field> -->
            <van-field
              readonly="true"
              required
              label-width="8rem"
              class=""
              :readonly="readonly"
              clearable
              v-model="item.cervicalCytologyOrg"
              name="检查机构"
              label="检查机构"
              placeholder="请输入检查机构"
              input-align="right"></van-field>
            <van-field
              readonly="true"
              required
              label-width="8rem"
              class=""
              :readonly="readonly"
              clearable
              v-model="item.cervicalCytologyUser"
              name="检查人员"
              label="检查人员"
              placeholder="请输入检查人员"
              input-align="right"></van-field>
            <van-field
              :readonly="readonly"
              required
              label-width="8rem"
              class=""
              readonly
              clickable
              name="检查时间"
              :value="item.cervicalCytologyTime?item.cervicalCytologyTime:''"
              label="检查时间"
              placeholder="请选择检查时间"
              input-align="right"
              :is-link="!readonly"></van-field>
          </div>
          <div v-if="!readonly" class="item-add-btn" id="">
            <img src="../images/xinzhengyaopin_icon.png" />
          </div>
        </van-tab>
        <van-tab title="检查报告">
          <iframe v-if="cytoTubeNum" :src="pdfUrl" class="mt10" style="width: 100%; height: calc(100vh - 100px)"></iframe>
          <div v-else id="no_result_wrap" class="c-dn" v-else>
            <img class="no-result-img" src="../../../images/shujuweikong_img.png" />
            <div class="c-f14 c-323232 c-t-center">暂无数据</div>
          </div>
        </van-tab>
      </van-tabs>
    </div>
  </van-form>
</div>

+ 88 - 0
component/statistics/LascCervicalCytologyInspectEntityList/index.js

@ -0,0 +1,88 @@
var template = ''
$.ajax('../../../component/statistics/LascCervicalCytologyInspectEntityList/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('lasc-cervical-cytology-inspect-entityList', {
  template: template,
  props: [],
  data: function () {
    return {
      readonly: true,
      readonlyTwo: 1,
      isShowPicker: false,
      tbsResultList: [
        '未见上皮内病变细胞和恶性细胞',
        '未明确意义的不典型鳞状上皮细胞(ASC-US)',
        '不典型鳞状上皮细胞-不除外高度鳞状上皮内病变(ASC-H)',
        '低度鳞状上皮内病变(LSIL)',
        '高度鳞状上皮内病变(HSIL)',
        '鳞状细胞癌(SCC)',
        '不典型腺上皮细胞(AGC) ',
        '不典型宫颈管腺细胞倾向瘤变',
        '宫颈管原位癌',
        '腺癌',
        '其他',
        '标本不满意',
        '标本不满意:上皮细胞数目太少',
        '标本不满意:大量炎细胞遮盖'
      ],
      // 			tbsResultList: [
      // 				{dictValue: '未见上皮内病变细胞和恶性细胞', value: 1},
      // 				{dictValue: '未明确意义的不典型鳞状上皮细胞(ASC-US)', value: 2},
      // 				{dictValue: '不典型鳞状上皮细胞-不除外高度鳞状上皮内病变(ASC-H)', value: 3},
      // 				{dictValue: '低度鳞状上皮内病变(LSIL)', value: 4},
      // 				{dictValue: '高度鳞状上皮内病变(HSIL)', value: 5},
      // 				{dictValue: '鳞状细胞癌(SCC)', value: 6},
      // 				{dictValue: '不典型腺上皮细胞(AGC) ', value: 7},
      // 				{dictValue: '不典型宫颈管腺细胞倾向瘤变', value: 8},
      // 				{dictValue: '宫颈管原位癌', value: 9},
      // 				{dictValue: '腺癌', value: 10}
      // 			],
      columns: [],
      pickType: '',
      curItem: '',
      isShowDatePicker: false,
      activeDateField: '',
      date: '',
      // minDate: moment().add(-100, 'year').toDate(),
      minDate: null,
      form: {
        screenId: '', //两癌筛查id
        receiveCervicalCarcinomaInspect: 2, //是否接收乳腺临床检查1拒绝2接收
        list: []
      },
      cytoTubeNum: '',
      active: '',
      pdfUrl: '',
      data: {
        value: [{}]
      }
    }
  },
  methods: {},
  mounted() {
    var vm = this
    this.form.screenId = this.data.screenId
    if (this.data.value && this.data.value.length) {
      var form = JSON.parse(JSON.stringify(this.data.value))
      form.forEach(function (v) {
        v.tbsResult = vm.tbsResultList[Number(v.tbsResult) - 1]
      })
      this.form.list = form
      vm.cytoTubeNum = vm.data.value[0].cytoTubeNum
    }
  }
})

+ 120 - 0
component/statistics/LascCervicalFinalDiagnosisEntity/index.html

@ -0,0 +1,120 @@
<div id="app">
	<van-form>
    <van-field :readonly="readonly" required label-width="10rem" class='' name="mt10" label="最后诊断" input-align="right">
      <div slot="input">
        <van-radio-group :disabled="readonly" v-model="form.finalDiagnosisResult" direction="horizontal" :disabled='readonly' >
          <van-radio name="1">未见异常</van-radio>
          <van-radio name="2">异常</van-radio>
        </van-radio-group>
      </div>
    </van-field>
    
    <template v-if="form.finalDiagnosisResult==2">
      <van-field :readonly="readonly" required label-width="8rem" class='' name="异常类型" label="异常类型" input-align="right">
        <div slot="input">
          <van-checkbox-group :disabled="readonly"v-model="form.finalDiagnosisAbnormal" :disabled='readonly' >
            <van-checkbox :name="'1'" class='top2'>低级别病变(原CIN1)</van-checkbox>
            <van-checkbox :name="'2'" class='top2'>高级别病变(原CIN2及CIN3)</van-checkbox>
            <van-checkbox :name="'3'" class='top2'>宫颈原位腺癌(AIS)</van-checkbox>
            <van-checkbox :name="'4'" class='top2'>宫颈微小浸润癌(鳞癌/腺癌)</van-checkbox>
            <van-checkbox :name="'5'" class='top2'>宫颈浸润癌(鳞癌/腺癌)</van-checkbox>
            <!-- <van-checkbox :name="'6'" class='top2'>滴虫性阴道炎</van-checkbox>
            <van-checkbox :name="'7'" class='top2'>外阴阴道假丝酵母菌病</van-checkbox>
            <van-checkbox :name="'8'" class='top2'>细菌性阴道病</van-checkbox>
            <van-checkbox :name="'9'" class='top2'>外生殖器尖锐湿疣</van-checkbox>
            <van-checkbox :name="'10'" class='top2'>子宫肌瘤</van-checkbox>
            <van-checkbox :name="'11'" class='top2'>黏液脓性宫颈炎</van-checkbox>
            <van-checkbox :name="'12'" class='top2'>宫颈息肉</van-checkbox> -->
            <van-checkbox :name="'13'" class='top2'>其他恶性肿瘤,请注明--</van-checkbox>
            <van-checkbox :name="'14'" class='top2'>其他</van-checkbox>
          </van-checkbox-group>
        </div>
      </van-field>
      <van-field :readonly="readonly" required label-width="6rem"  :readonly='readonly' class='' v-if='form.finalDiagnosisAbnormal.indexOf("13")!=-1'  clearable v-model="form.finalDiagnosisMalignantTumors" name="其他恶性肿瘤说明"  label="其他恶性肿瘤说明" placeholder="请输入其他恶性肿瘤说明" input-align="right"></van-field>
      <van-field :readonly="readonly" required label-width="6rem"  :readonly='readonly' class='' v-if='form.finalDiagnosisAbnormal.indexOf("14")!=-1'  clearable v-model="form.finalDiagnosisOtherAbnormal" name="其他异常描述"  label="其他异常描述" placeholder="请输入其他异常描述" input-align="right"></van-field>
    </template>
    
    <van-field :readonly="readonly" required label-width="8rem" class=''  :readonly='readonly'  clearable v-model="form.finalDiagnosisOrg" name="检查机构" label="检查机构" placeholder="请输入检查机构" input-align="right"></van-field>
    <van-field :readonly="readonly" required label-width="8rem" class='' :readonly='readonly'  clearable v-model="form.finalDiagnosisUser" name="检查人员" label="检查人员" placeholder="请输入检查人员" input-align="right"></van-field>
    <van-field :readonly="readonly" required label-width="8rem" class='' readonly clickable name="检查时间" :value="form.finalDiagnosisTime?form.finalDiagnosisTime:''" label="检查时间" placeholder="请选择检查时间"
    input-align="right" :is-link="!readonly">
    </van-field>
    
    <van-field :readonly="readonly"  label-width="8rem" class='' name="宫颈病变接受治疗" label="宫颈病变接受治疗" input-align="right">
      <div slot="input">
        <van-radio-group :disabled="readonly" v-model="form.cervicalLesionsTreatment" direction="horizontal" :disabled='readonly' >
          <van-radio name="1">是</van-radio>
          <van-radio name="2" class='top2'>否</van-radio>
          <van-radio name="3" class='top2'>不详</van-radio>
        </van-radio-group>
      </div>
    </van-field>
    <van-field :readonly="readonly" label-width="6rem"  :readonly='readonly' class='' v-if='form.cervicalLesionsTreatment==2 || form.cervicalLesionsTreatment==3'  clearable v-model="form.cervicalLesionsUnbehandeltReason" name="宫颈病变未接受治疗原因"  label="宫颈病变未接受治疗原因" placeholder="请输入说明" input-align="right"></van-field>
    
    
    <van-field :readonly="readonly" v-if='form.cervicalLesionsTreatment == 1' label-width="8rem" class='' name="治疗方法" label="治疗方法" input-align="right">
      <div slot="input">
        <van-radio-group :disabled="readonly" v-model="form.cervicalLesionsTreatmentMethod" direction="horizontal" :disabled='readonly' >
          <van-radio name="1">宫颈物理治疗</van-radio>
          <van-radio name="2" class='top2'>宫颈LEEP</van-radio>
          <van-radio name="3" class='top2'>宫颈锥切</van-radio>
          <van-radio name="4">子宫切除手术</van-radio>
          <van-radio name="5" class='top2'>放疗</van-radio>
          <van-radio name="6" class='top2'>化疗</van-radio>
          <van-radio name="7">其他</van-radio>
        </van-radio-group>
      </div>
    </van-field>
    <van-field :readonly="readonly" label-width="6rem"  :readonly='readonly' class='' v-if='form.cervicalLesionsTreatmentMethod == 7'  clearable v-model="form.cervicalLesionsTreatmentOther" name="治疗方法其他说明"  label="治疗方法其他说明" placeholder="请输入说明" input-align="right"></van-field>
    <van-field :readonly="readonly" label-width="8rem" class=''  :readonly='readonly'  clearable v-model="form.followUpOrg" name="随访机构" label="随访机构" placeholder="请输入随访机构" input-align="right"></van-field>
    <van-field :readonly="readonly" label-width="8rem" class='' readonly clickable name="随访日期" :value="form.followUpTime?form.followUpTime:''" label="随访日期" placeholder="请选择随访日期"
 input-align="right" :is-link="!readonly">
    </van-field>
  </van-form>
	<div class="mt10">
    <div class="headline">术后病理</div>
    <van-field :readonly="readonly" label-width="8rem" class=''  name="接受组织病理学检查" label="接受组织病理学检查" input-align="right">
      <div slot="input">
        <van-radio-group :disabled="readonly" v-model="form.acceptPathologicalExamination" direction="horizontal" :disabled='readonly' >
          <van-radio name="1">是</van-radio>
          <van-radio name="2">否</van-radio>
        </van-radio-grou>
      </div>
    </van-field>
    
    <template v-if="form.acceptPathologicalExamination==2">
    <van-field :readonly="readonly"   label-width="8rem" class='' name="未接受检查的原因" label="未接受检查的原因" input-align="right">
      <div slot="input">
        <van-radio-group :disabled="readonly" v-model="form.refusePathologicalExaminationReason" direction="horizontal" :disabled='readonly' >
          <van-radio name="1">拒绝检查</van-radio>
          <van-radio name="2" class='top2'>失访</van-radio>
          <van-radio name="3" class='top2'>其他原因</van-radio>
        </van-radio-grou>
      </div>
    </van-field>
    <van-field :readonly="readonly"  label-width="6rem"class=''  :readonly='readonly' class='' v-if='form.refusePathologicalExaminationReason == 3'  clearable v-model="form.refusePathologicalExaminationReasonOther" name="未接受检查其他描述"  label="未接受检查其他描述" placeholder="请输入其他描述" input-align="right"></van-field>
    </template>
    <template v-if="form.acceptPathologicalExamination==1">
    <van-field :readonly="readonly" label-width="6rem" class='' name="组织病理学检查结果" label="组织病理学检查结果" input-align="right">
      <div slot="input">
        <van-checkbox-group :disabled="readonly" @change="onCheckboxChange($event, form, 'pathologicalExaminationResult')"  v-model="form.pathologicalExaminationResult" direction="horizontal" :disabled='readonly' >
          <van-checkbox :name="'1'">未见异常</van-checkbox>
          <van-checkbox :name="'2-1'">炎症</van-checkbox>
          <van-checkbox :name="'2-2'" class='top2'>低级别病变(原CIN1)</van-checkbox>
          <van-checkbox :name="'2-3'" class='top2'>高级别病变(原CIN2及CIN3)</van-checkbox>
          <van-checkbox :name="'2-4'" class='top2'>宫颈原位腺癌(AIS)</van-checkbox>
          <van-checkbox :name="'2-5'" class='top2'>宫颈微小浸润癌(鳞癌/腺癌)</van-checkbox>
          <van-checkbox :name="'2-6'" class='top2'>宫颈浸润癌(鳞癌/腺癌)</van-checkbox>
          <van-checkbox :name="'2-7'" class='top2'>其他</van-checkbox>
        </van-checkbox-grou>
      </div>
    </van-field>
    <van-field :readonly="readonly"   label-width="6rem"  :readonly='readonly' class='' v-if='form.pathologicalExaminationResult.indexOf("2-7") != -1'  clearable v-model="form.pathologicalExaminationAbnormalOther" name="组织病理学其他描述"  label="组织病理学其他描述" placeholder="请输入其他描述" input-align="right"></van-field>
    </template>
    <van-field :readonly="readonly"   label-width="8rem" class=''  :readonly='readonly'  clearable v-model="form.pathologicalExaminationOrg" name="检查机构" label="检查机构" placeholder="请输入检查机构" input-align="right"></van-field>
    <van-field :readonly="readonly"   label-width="8rem" class='' :readonly='readonly'  clearable v-model="form.pathologicalExaminationUser" name="检查人员" label="检查人员" placeholder="请输入检查人员" input-align="right"></van-field>
    <van-field :readonly="readonly"   label-width="8rem" class='' readonly clickable name="检查时间" :value="form.pathologicalExaminationTime?form.pathologicalExaminationTime:''" label="检查时间" placeholder="请选择检查时间"
       input-align="right" :is-link="!readonly">
    </van-field>
  </div>
</div>

+ 100 - 0
component/statistics/LascCervicalFinalDiagnosisEntity/index.js

@ -0,0 +1,100 @@
var template = ''
$.ajax('../../../component/statistics/LascCervicalFinalDiagnosisEntity/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('lasc-cervical-final-diagnosis-entity', {
  props: ['data'],
  data: function () {
    return {
      readonlyTwo: 1,
      readonly: true,
      isShowPicker: false,
      pathologicalShowDatePicker: false,
      columns: [],
      pickType: '',
      curItem: '',
      pathologicalCurItem: '',
      pathologicalPickType: '',
      pathologicalDate: '',
      isShowDatePicker: false,
      activeDateField: '',
      date: '',
      form: {
        screenId: '', //两癌筛查id
        finalDiagnosisResult: '1', //最后诊断
        finalDiagnosisAbnormal: [], //最后诊断 - 异常内容
        finalDiagnosisMalignantTumors: '', //最后诊断 - 异常内容 - 其他恶性肿瘤说明
        finalDiagnosisOtherAbnormal: '', //最后诊断 - 异常内容 - 其他异常描述
        finalDiagnosisOrg: docInfo.hospitalName, //检查机构
        finalDiagnosisUser: docInfo.name, //检查人员
        finalDiagnosisTime: '', //检查时间
        cervicalLesionsFollowStatus: '', //宫颈病变随访情况
        cervicalLesionsTreatment: '', //宫颈病变接受治疗
        cervicalLesionsUnbehandeltReason: '', //宫颈病变接受治疗 - 未接收治疗原因
        cervicalLesionsTreatmentMethod: '', //治疗方法
        cervicalLesionsTreatmentOther: '', //治疗方法 - 其他
        followUpOrg: '', //治疗机构
        followUpTime: '', //治疗日期
        acceptPathologicalExamination: '', //接受组织病理学检查
        refusePathologicalExaminationReason: '', //未接受检查的原因
        refusePathologicalExaminationReasonOther: '', // 未接受检查的其他原因
        pathologicalExaminationResult: [], //组织病理学检查结果
        pathologicalExaminationAbnormalOther: '', //组织病理学其他描述
        pathologicalExaminationOrg: docInfo.hospitalName, // 检查机构
        pathologicalExaminationUser: docInfo.name, //检查人员
        pathologicalExaminationTime: '' //检查时间
      }
    }
  },
  template: template,
  created: function () {
    var form = JSON.parse(JSON.stringify(this.data.value))
    if (this.readonly && !form.finalDiagnosisOrg) {
      this.form = {
        screenId: '', //两癌筛查id
        finalDiagnosisResult: '', //最后诊断
        finalDiagnosisAbnormal: [], //最后诊断 - 异常内容
        finalDiagnosisMalignantTumors: '', //最后诊断 - 异常内容 - 其他恶性肿瘤说明
        finalDiagnosisOtherAbnormal: '', //最后诊断 - 异常内容 - 其他异常描述
        finalDiagnosisOrg: '', //检查机构
        finalDiagnosisUser: '', //检查人员
        finalDiagnosisTime: '', //检查时间
        cervicalLesionsFollowStatus: '', //宫颈病变随访情况
        cervicalLesionsTreatment: '', //宫颈病变接受治疗
        cervicalLesionsUnbehandeltReason: '', //宫颈病变接受治疗 - 未接收治疗原因
        cervicalLesionsTreatmentMethod: '', //治疗方法
        cervicalLesionsTreatmentOther: '', //治疗方法 - 其他
        followUpOrg: '', //治疗机构
        followUpTime: '', //治疗日期
        acceptPathologicalExamination: '', //接受组织病理学检查
        refusePathologicalExaminationReason: '', //未接受检查的原因
        refusePathologicalExaminationReasonOther: '', // 未接受检查的其他原因
        pathologicalExaminationResult: [], //组织病理学检查结果
        pathologicalExaminationAbnormalOther: '', //组织病理学其他描述
        pathologicalExaminationOrg: '', // 检查机构
        pathologicalExaminationUser: '', //检查人员
        pathologicalExaminationTime: '' //检查时间
      }
    } else {
      console.log(form, 'formformform')
      form.finalDiagnosisAbnormal = (form.finalDiagnosisAbnormal && form.finalDiagnosisAbnormal.split(',')) || []
      form.pathologicalExaminationResult = (form.pathologicalExaminationResult && form.pathologicalExaminationResult.split(',')) || []
      this.form = _.assign(this.form, form)
      this.form.screenId = this.data.screenId
    }
  },
  methods: {}
})

+ 507 - 0
component/statistics/LascCervicalGynecologicalExaminationEntityList/index.html

@ -0,0 +1,507 @@
<div id="app">
  <van-form>
    <van-field :readonly="readonly" label-width="4rem" class="" name="是否拒检" label="是否拒检" input-align="right">
      <div slot="input">
        <van-radio-group :disabled="readonly" v-model="form.receiveCervicalCarcinomaInspect" direction="horizontal">
          <van-radio name="1">拒绝</van-radio>
          <van-radio name="2">依从</van-radio>
        </van-radio-group>
      </div>
    </van-field>
    <div class="item-list">
      <div class="item" v-for="(item, i) in form.list" :key="i">
        <van-cell :title="i+1+'、'">
          <div id="" v-if="!readonly">
            <van-icon v-if="form.list&&form.list.length>1" size="20px" name="delete-o" />
          </div>
        </van-cell>
        <template v-if="form.receiveCervicalCarcinomaInspect==2">
          <van-field :readonly="readonly" required label-width="8rem" class="" name="外阴" label="外阴" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="item.vulvaInspect" direction="horizontal" :disabled="readonly">
                <van-checkbox name="1">正常</van-checkbox>
                <van-checkbox name="2" class="top2">白斑</van-checkbox>
                <van-checkbox name="3" class="top2">溃疡</van-checkbox>
                <van-checkbox name="4" class="top2">湿疣</van-checkbox>
                <van-checkbox name="5" class="top2">疱疹</van-checkbox>
                <van-checkbox name="6" class="top2">肿物</van-checkbox>
                <van-checkbox name="7" class="top2">其他</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" required label-width="8rem" name="肿物位置" label="肿物位置" input-align="right" v-if='item.vulvaInspect.indexOf("6") != -1 '>
            <div slot="input">
              <van-checkbox-group
                :disabled="readonly"
                v-model="item.vulvaInspectTumorPosition"
                direction="horizontal"
                :disabled="readonly"
                v-if='item.vulvaInspect.indexOf("6") != -1 '>
                <van-checkbox name="1">左</van-checkbox>
                <van-checkbox name="2" class="top2">右</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            required
            label-width="8rem"
            clearable
            v-model="item.vulvaInspectTumorSize"
            name="肿物大小"
            label="肿物大小"
            placeholder="请输入肿物大小"
            input-align="right"
            v-if='item.vulvaInspect.indexOf("6") != -1 '></van-field>
          <van-field :readonly="readonly" v-if='item.vulvaInspect.indexOf("6") != -1 ' required label-width="8rem" name="肿物性质" label="肿物性质" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.vulvaInspectTumorCharacter" direction="horizontal" :disabled="readonly">
                <van-radio name="1" class="top2">质软</van-radio>
                <van-radio name="2" class="top2">质硬</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            required
            label-width="6rem"
            class=""
            :readonly="readonly"
            clearable
            v-model="item.vulvaInspectOther"
            v-if='item.vulvaInspect.indexOf("7") != -1 '
            name="其他"
            label="其他"
            placeholder="请输入其他"
            input-align="right"></van-field>
          <van-field :readonly="readonly" required label-width="8rem" class="" name="阴道" label="阴道" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="item.vaginalInspect" direction="horizontal" :disabled="readonly">
                <van-checkbox name="1">正常</van-checkbox>
                <van-checkbox name="2" class="top2">充血</van-checkbox>
                <van-checkbox name="8" class="top2">脱垂</van-checkbox>
                <van-checkbox name="3" class="top2">溃疡</van-checkbox>
                <van-checkbox name="4" class="top2">湿疣</van-checkbox>
                <van-checkbox name="5" class="top2">疱疹</van-checkbox>
                <van-checkbox name="6" class="top2">肿物</van-checkbox>
                <van-checkbox name="7" class="top2">其他</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <!-- <van-field :readonly="readonly" v-if='item.vaginalInspect.indexOf("8") != -1 ' required label-width="8rem" name="是否脱垂" label="是否脱垂" input-align="right">
							<div slot="input">
								<van-radio-group :disabled="readonly" v-model="item.vaginalInspectProlapse" direction="horizontal" :disabled='readonly' >
									<van-radio name="1" class='top2'>是</van-radio>
									<van-radio name="0" class='top2'>否</van-radio>
								</van-radio-group>
							</div>
						</van-field> -->
          <van-field :readonly="readonly" v-if="item.vaginalInspectProlapse == 1 " required label-width="8rem" name="脱垂分度" label="脱垂分度" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.vaginalInspectProlapseLevel" direction="horizontal" :disabled="readonly">
                <van-radio name="1" class="top2">Ⅰ</van-radio>
                <van-radio name="2" class="top2">Ⅱ</van-radio>
                <van-radio name="3" class="top2">Ⅲ</van-radio>
                <van-radio name="4" class="top2">Ⅳ</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" v-if='item.vaginalInspect.indexOf("6") != -1 ' required label-width="8rem" class="" name="肿物位置" label="肿物位置" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="item.vaginalInspectTumorPosition" direction="horizontal" :disabled="readonly">
                <van-checkbox name="1">前壁</van-checkbox>
                <van-checkbox name="2" class="top2">后壁</van-checkbox>
                <van-checkbox name="3" class="top2">左侧</van-checkbox>
                <van-checkbox name="4" class="top2">右侧</van-checkbox>
                <van-checkbox name="5" class="top2">穹隆</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            required
            label-width="8rem"
            clearable
            v-model="item.vaginalInspectTumorSize"
            name="肿物大小"
            label="肿物大小"
            placeholder="请输入肿物大小"
            input-align="right"
            v-if='item.vaginalInspect.indexOf("6") != -1 '></van-field>
          <van-field :readonly="readonly" v-if='item.vaginalInspect.indexOf("6") != -1 ' required label-width="8rem" name="肿物性质" label="肿物性质" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.vaginalInspectTumorCharacter" direction="horizontal" :disabled="readonly">
                <van-radio name="1" class="top2">质软</van-radio>
                <van-radio name="2" class="top2">质硬</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            required
            label-width="6rem"
            class=""
            :readonly="readonly"
            clearable
            v-model="item.vaginalInspectOther"
            name="其他"
            v-if='item.vaginalInspect.indexOf("7")!=-1'
            label="其他"
            placeholder="请输入其他"
            input-align="right"></van-field>
          <!-- 1.正常2.异味3.血性4.脓性5.泡沫样6.豆渣样7.其他 -->
          <van-field :readonly="readonly" required label-width="8rem" class="" name="分泌物" label="分泌物" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="item.secretion" direction="horizontal" :disabled="readonly">
                <van-checkbox name="1">正常</van-checkbox>
                <van-checkbox name="2" class="top2">异味</van-checkbox>
                <van-checkbox name="3" class="top2">血性</van-checkbox>
                <van-checkbox name="4" class="top2">脓性</van-checkbox>
                <van-checkbox name="5" class="top2">泡沫样</van-checkbox>
                <van-checkbox name="6" class="top2">豆渣样</van-checkbox>
                <van-checkbox name="7" class="top2">其他</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            required
            label-width="6rem"
            class=""
            :readonly="readonly"
            clearable
            v-model="item.secretionOther"
            name="其他"
            v-if='item.secretion.indexOf("7")!=-1'
            label="其他"
            placeholder="请输入其他"
            input-align="right"></van-field>
          <!-- 1.正常2.触血3.息肉4.糜烂样5.菜花样6.其他 -->
          <van-field :readonly="readonly" required label-width="8rem" class="" name="子宫颈" label="子宫颈" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="item.cervixInspect" direction="horizontal" :disabled="readonly">
                <van-checkbox name="1">正常</van-checkbox>
                <van-checkbox name="2" class="top2">触血</van-checkbox>
                <van-checkbox name="3" class="top2">息肉</van-checkbox>
                <van-checkbox name="4" class="top2">糜烂样</van-checkbox>
                <van-checkbox name="5" class="top2">菜花样</van-checkbox>
                <van-checkbox name="6" class="top2">其他</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            required
            label-width="6rem"
            class=""
            :readonly="readonly"
            clearable
            v-model="item.cervixInspectOther"
            name="其他"
            v-if='item.cervixInspect.indexOf("6")!=-1'
            label="其他"
            placeholder="请输入其他"
            input-align="right"></van-field>
          <van-field :readonly="readonly" required label-width="8rem" class="" name="子宫" label="子宫" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="item.uterusInspect" direction="horizontal" :disabled="readonly">
                <van-checkbox name="1">正常</van-checkbox>
                <van-checkbox name="2" class="top2">增大</van-checkbox>
                <van-checkbox name="3" class="top2">肿物</van-checkbox>
                <van-checkbox name="4" class="top2">脱垂</van-checkbox>
                <van-checkbox name="5" class="top2">压痛</van-checkbox>
                <van-checkbox name="6" class="top2">其他</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" v-if='item.uterusInspect.indexOf("4") != -1 ' required label-width="8rem" name="脱垂分度" label="脱垂分度" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.uterusInspectProlapseLevel" direction="horizontal" :disabled="readonly">
                <van-radio name="1" class="top2">Ⅰ</van-radio>
                <van-radio name="2" class="top2">Ⅱ</van-radio>
                <van-radio name="3" class="top2">Ⅲ</van-radio>
                <van-radio name="4" class="top2">Ⅳ</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            required
            label-width="6rem"
            :readonly="readonly"
            v-if='item.uterusInspect.indexOf("2")!=-1'
            type="number"
            clearable
            v-model="item.uterusInspectPregnantWeeks"
            name="大小(如孕周)"
            label="大小(如孕周)"
            placeholder="请输入"
            input-align="right"></van-field>
          <van-field
            :readonly="readonly"
            required
            label-width="6rem"
            :readonly="readonly"
            v-if='item.uterusInspect.indexOf("3")!=-1'
            type="number"
            clearable
            v-model="item.uterusInspectTumorSize"
            name="子宫肿物大小cm"
            label="子宫肿物大小cm"
            placeholder="请输入肿物大小"
            input-align="right"></van-field>
          <van-field :readonly="readonly" v-if='item.uterusInspect.indexOf("3")!=-1' required label-width="8rem" name="子宫肿物性状" label="子宫肿物性状" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.uterusInspectTumorCharacter" direction="horizontal" :disabled="readonly">
                <van-radio name="1">质中</van-radio>
                <van-radio name="2" class="top2">质软</van-radio>
                <van-radio name="3" class="top2">质硬</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" v-if='item.uterusInspect.indexOf("3")!=-1' required label-width="8rem" name="子宫肿物位置" label="子宫肿物位置" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="item.uterusInspectTumorPosition" direction="horizontal" :disabled="readonly">
                <van-checkbox name="1">前壁</van-checkbox>
                <van-checkbox name="2" class="top2">后壁</van-checkbox>
                <van-checkbox name="3" class="top2">左侧壁</van-checkbox>
                <van-checkbox name="4" class="top2">右侧壁</van-checkbox>
                <van-checkbox name="5" class="top2">宫底</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            required
            label-width="6rem"
            :readonly="readonly"
            v-if='item.uterusInspect.indexOf("6")!=-1'
            clearable
            v-model="item.uterusInspectOther"
            name="其他描述"
            label="其他描述"
            placeholder="请输入其他描述"
            input-align="right"></van-field>
          <van-field :readonly="readonly" required label-width="8rem" class="" name="附件(盆腔)" label="附件(盆腔)" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="item.pelvicInspect" direction="horizontal" :disabled="readonly">
                <van-checkbox name="1">正常</van-checkbox>
                <van-checkbox name="2" class="top2">压痛</van-checkbox>
                <van-checkbox name="3" class="top2">肿物</van-checkbox>
                <van-checkbox name="5" class="top2">增厚</van-checkbox>
                <van-checkbox name="4" class="top2">其他</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <template v-if="item.pelvicInspect.indexOf('2')!=-1">
            <van-field :readonly="readonly" required label-width="8rem" name="压痛位置" label="压痛位置" input-align="right">
              <div slot="input">
                <van-checkbox-group :disabled="readonly" v-model="item.pelvicTendernessLocation" direction="horizontal" :disabled="readonly">
                  <van-checkbox name="1">左</van-checkbox>
                  <van-checkbox name="2" class="top2">右</van-checkbox>
                </van-checkbox-group>
              </div>
            </van-field>
          </template>
          <!-- <van-field :readonly="readonly" v-if='item.pelvicInspect.indexOf("5") != -1 ' required label-width="8rem" name="是否增厚" label="是否增厚" input-align="right">
							<div slot="input">
								<van-radio-group :disabled="readonly" v-model="item.pelvicInspectThickening" direction="horizontal" :disabled='readonly' >
									<van-radio name="1" class='top2'>是</van-radio>
									<van-radio name="0" class='top2'>否</van-radio>
								</van-radio-group>
							</div>
						</van-field> -->
          <van-field :readonly="readonly" required label-width="8rem" name="肿物位置" label="肿物位置" input-align="right" v-if='item.pelvicInspect.indexOf("3") != -1 '>
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="item.pelvicInspectTumorPosition" direction="horizontal" :disabled="readonly">
                <van-checkbox name="1">左</van-checkbox>
                <van-checkbox name="2" class="top2">右</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            required
            label-width="8rem"
            clearable
            v-model="item.pelvicInspectTumorSize"
            name="肿物大小"
            label="肿物大小"
            placeholder="请输入肿物大小"
            input-align="right"
            v-if='item.pelvicInspect.indexOf("3") != -1 '></van-field>
          <van-field :readonly="readonly" v-if='item.pelvicInspect.indexOf("3") != -1 ' required label-width="8rem" name="肿物性质" label="肿物性质" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.pelvicInspectTumorCharacter" direction="horizontal" :disabled="readonly">
                <van-radio name="1" class="top2">质软</van-radio>
                <van-radio name="2" class="top2">质硬</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field
            :readonly="readonly"
            required
            label-width="6rem"
            :readonly="readonly"
            v-if='item.pelvicInspect.indexOf("4")!=-1'
            clearable
            v-model="item.pelvicInspectOther"
            name="其他描述"
            label="其他描述"
            placeholder="请输入其他描述"
            input-align="right"></van-field>
          <van-field :readonly="readonly" label-width="10rem" class="" name="分泌物检查清洁度" label="分泌物检查清洁度" input-align="right">
            <div slot="input">
              <van-radio-group :disabled="readonly" v-model="item.secretionInspectCleanliness" direction="horizontal" :disabled="readonly">
                <van-radio :name="'1'">未检</van-radio>
                <van-radio :name="'2'">清洁度Ⅰ度</van-radio>
                <van-radio :name="'3'" class="top2">清洁度Ⅱ度</van-radio>
                <van-radio :name="'4'" class="top2">清洁度Ⅲ度</van-radio>
                <van-radio :name="'5'" class="top2">清洁度Ⅳ度</van-radio>
              </van-radio-group>
            </div>
          </van-field>
          <van-field :readonly="readonly" label-width="10rem" name="分泌物检查病原体" label="分泌物检查病原体" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="item.secretionInspectPathogens" direction="horizontal" :disabled="readonly">
                <van-checkbox name="1">未检出病原体</van-checkbox>
                <van-checkbox name="2" class="top2">滴虫</van-checkbox>
                <van-checkbox name="4" class="top2">线索细胞</van-checkbox>
                <van-checkbox name="6" class="top2">真菌孢子</van-checkbox>
                <van-checkbox name="7" class="top2">芽生孢子</van-checkbox>
                <van-checkbox name="8" class="top2">真菌菌丝</van-checkbox>
                <van-checkbox name="5" class="top2">其他</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <!-- <van-field :readonly="readonly" v-if='item.secretionInspectPathogens.indexOf("6") != -1 ' required label-width="8rem" name="真菌孢子" label="真菌孢子" input-align="right">
							<div slot="input">
								<van-radio-group :disabled="readonly" v-model="item.secretionInspectFungalSpore" direction="horizontal" :disabled='readonly' >
									<van-radio name="1" class='top2'>是</van-radio>
									<van-radio name="0" class='top2'>否</van-radio>
								</van-radio-group>
							</div>
						</van-field>
						<van-field :readonly="readonly" v-if='item.secretionInspectPathogens.indexOf("7") != -1 ' required label-width="8rem" name="芽生孢子" label="芽生孢子" input-align="right">
							<div slot="input">
								<van-radio-group :disabled="readonly" v-model="item.secretionInspectBlastospore" direction="horizontal" :disabled='readonly' >
									<van-radio name="1" class='top2'>是</van-radio>
									<van-radio name="0" class='top2'>否</van-radio>
								</van-radio-group>
							</div>
						</van-field>
						<van-field :readonly="readonly" v-if='item.secretionInspectPathogens.indexOf("8") != -1 ' required label-width="8rem" name="真菌菌丝" label="真菌菌丝" input-align="right">
							<div slot="input">
								<van-radio-group :disabled="readonly" v-model="item.secretionInspectFungalHyphae" direction="horizontal" :disabled='readonly' >
									<van-radio name="1" class='top2'>是</van-radio>
									<van-radio name="0" class='top2'>否</van-radio>
								</van-radio-group>
							</div>
						</van-field> -->
          <van-field
            :readonly="readonly"
            required
            label-width="6rem"
            :readonly="readonly"
            v-if='item.secretionInspectPathogens.indexOf("5")!=-1'
            clearable
            v-model="item.secretionInspectPathogensOther"
            name="其他描述"
            label="其他描述"
            placeholder="请输入其他描述"
            input-align="right"></van-field>
          <van-field :readonly="readonly" required label-width="10rem" class="field-title-red" name="临床诊断" label="临床诊断" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="item.clinicalDiagnosis" direction="horizontal" :disabled="readonly">
                <van-checkbox name="1">未见异常</van-checkbox>
                <van-checkbox name="2" class="top2">外生殖器尖锐湿疣</van-checkbox>
                <van-checkbox name="3" class="top2">滴虫性阴道炎</van-checkbox>
                <van-checkbox name="4" class="top2">外阴阴道假丝酵母菌病</van-checkbox>
                <van-checkbox name="5" class="top2">细菌性阴道病</van-checkbox>
                <van-checkbox name="10" class="top2">其他外阴阴道炎</van-checkbox>
                <van-checkbox name="6" class="top2">黏液脓性宫颈炎</van-checkbox>
                <van-checkbox name="7" class="top2">宫颈息肉</van-checkbox>
                <van-checkbox name="8" class="top2">子宫肌瘤</van-checkbox>
                <van-checkbox name="9" class="top2">其他</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <!-- <van-field :readonly="readonly" v-if='item.clinicalDiagnosis.indexOf("10") != -1 ' required label-width="8rem" name="其他外阴阴道炎" label="其他外阴阴道炎" input-align="right">
							<div slot="input">
								<van-radio-group :disabled="readonly" v-model="item.clinicalDiagnosisOtherColpitis" direction="horizontal" :disabled='readonly' >
									<van-radio name="1" class='top2'>是</van-radio>
									<van-radio name="0" class='top2'>否</van-radio>
								</van-radio-group>
							</div>
						</van-field> -->
          <van-field
            :readonly="readonly"
            required
            label-width="6rem"
            :readonly="readonly"
            v-if='item.clinicalDiagnosis.indexOf("9")!=-1'
            clearable
            v-model="item.clinicalDiagnosisOther"
            name="其他描述"
            label="其他描述"
            placeholder="请输入其他描述"
            input-align="right"></van-field>
        </template>
        <van-field
          readonly="true"
          required
          label-width="10rem"
          clearable
          v-model="item.cervicalCancerInspectOrg"
          name="检查机构"
          label="检查机构"
          placeholder="请输入检查机构"
          input-align="right"></van-field>
        <van-field
          readonly="true"
          required
          label-width="10rem"
          clearable
          v-model="item.cervicalCancerInspectUser"
          name="检查人员(妇科检查)"
          label="检查人员(妇科检查)"
          placeholder="请输入检查人员"
          input-align="right"></van-field>
        <van-field
          readonly="true"
          required
          label-width="10rem"
          clearable
          v-model="item.secretionInspectUser"
          name="检查人员(分泌物)"
          label="检查人员(分泌物)"
          placeholder="请输入检查人员"
          input-align="right"></van-field>
        <van-field
          :readonly="readonly"
          required
          label-width="8rem"
          readonly
          clickable
          name="检查日期"
          :value="item.cervicalCancerInspectTime?item.cervicalCancerInspectTime:''"
          label="检查日期"
          placeholder="请选择检查时间"
          input-align="right"
          :is-link="!readonly"></van-field>
      </div>
      <div v-if="!readonly" class="item-add-btn" id="">
        <img src="../images/xinzhengyaopin_icon.png" />
      </div>
    </div>
  </van-form>
</div>

+ 72 - 0
component/statistics/LascCervicalGynecologicalExaminationEntityList/index.js

@ -0,0 +1,72 @@
var template = ''
$.ajax('../../../component/statistics/LascCervicalGynecologicalExaminationEntityList/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('lasc-cervical-gynecological-examination-entityList', {
  template: template,
  props: [],
  data: function () {
    return {
      readonly: true,
      readonlyTwo: 1,
      isShowPicker: false,
      vulvaInspectList: ['正常', '白斑', '溃疡', '湿疣', '疱疹', '肿物', '其他'],
      vaginalInspectList: ['正常', '充血', '溃疡', '湿疣', '疱疹', '肿物', '其他'],
      secretionList: ['正常', '异味', '血性', '脓性', '泡沫样', '豆渣样', '其他'],
      cervixInspectList: ['正常', '触血', '息肉', '糜烂样', '菜花样', '其他'],
      columns: [],
      pickType: '',
      curItem: '',
      isShowDatePicker: false,
      activeDateField: '',
      date: '',
      // minDate: moment().add(-100, 'year').toDate(),
      minDate: null,
      form: {
        screenId: '', //两癌筛查id
        receiveCervicalCarcinomaInspect: '2', //是否接收乳腺临床检查1拒绝2接收
        list: []
      },
      data: {
        value: [{}]
      }
    }
  },
  methods: {},
  mounted() {
    var vm = this
    this.form.screenId = this.data.screenId || ''
    if (this.data.value && this.data.value.length) {
      var list = JSON.parse(JSON.stringify(this.data.value))
      list.forEach(function (v) {
        v.vulvaInspect = vm.formatList(v.vulvaInspect)
        v.vaginalInspect = vm.formatList(v.vaginalInspect)
        v.secretion = vm.formatList(v.secretion)
        v.cervixInspect = vm.formatList(v.cervixInspect)
        v.uterusInspect = vm.formatList(v.uterusInspect)
        v.pelvicInspect = vm.formatList(v.pelvicInspect)
        v.secretionInspectPathogens = vm.formatList(v.secretionInspectPathogens)
        v.clinicalDiagnosis = vm.formatList(v.clinicalDiagnosis)
        v.pelvicTendernessLocation = vm.formatList(v.pelvicTendernessLocation)
        v.uterusInspectTumorPosition = vm.formatList(v.uterusInspectTumorPosition)
        v.vaginalInspectTumorPosition = vm.formatList(v.vaginalInspectTumorPosition)
        v.vulvaInspectTumorPosition = vm.formatList(v.vulvaInspectTumorPosition)
        v.pelvicInspectTumorPosition = vm.formatList(v.pelvicInspectTumorPosition)
      })
      this.form.list = list
      this.form.receiveCervicalCarcinomaInspect = list[0].receiveCervicalCarcinomaInspect
    }
  }
})

+ 141 - 0
component/statistics/LascCervicalHistopathologyFollowup/index.html

@ -0,0 +1,141 @@
<div id="app">
  <van-form>
    <div class="item" v-for="(item, i) in form.list" :key="i">
      <van-cell :title="i+1+'、'">
        <div id="" v-if="!readonly">
          <van-icon v-if="form.list&&form.list.length>1" size="20px" name="delete-o" />
        </div>
      </van-cell>
      <van-field :readonly="readonly" required label-width="7rem" class="" name="" label="病理学检查情况" input-align="right">
        <div slot="input">
          <van-radio-group :disabled="readonly" v-model="item.examineStatus" :disabled="readonly">
            <van-radio name="1">已完成</van-radio>
            <van-radio name="2">未完成,拒绝检查</van-radio>
            <van-radio name="3">拒绝随访</van-radio>
            <van-radio name="4">无法取得联系(空号)</van-radio>
            <van-radio name="5">无法取得联系第1次(无人接听或无法接通)</van-radio>
            <van-radio name="6">无法取得联系第2次(无人接听或无法接通,失访结案)</van-radio>
          </van-radio-group>
        </div>
      </van-field>
      <template v-if="item.examineStatus==1">
        <van-field :readonly="readonly" required label-width="10rem" class="" name="" label="组织病理学检查结果" input-align="right">
          <div slot="input">
            <van-radio-group :disabled="readonly" v-model="item.examineResult" :disabled="readonly">
              <van-radio name="1">未见异常</van-radio>
              <van-radio name="2">异常</van-radio>
              <van-radio name="3">异常不详</van-radio>
              <van-radio name="4">病理结果不详</van-radio>
            </van-radio-group>
          </div>
        </van-field>
        <template v-if="item.examineResult==2">
          <van-field :readonly="readonly" required label-width="10rem" class="" name="" label="组织病理学检查结果异常" input-align="right">
            <div slot="input">
              <van-checkbox-group :disabled="readonly" v-model="item.examineResultAbnorma" :disabled="readonly">
                <van-checkbox name="1">炎症</van-checkbox>
                <van-checkbox name="2">低级别病变(原CIN1)</van-checkbox>
                <van-checkbox name="3">高级别病变(原CIN2及CIN3)</van-checkbox>
                <van-checkbox name="4">宫颈原位腺癌(AIS)</van-checkbox>
                <van-checkbox name="5">宫颈微小浸润癌(鳞癌/腺癌)</van-checkbox>
                <van-checkbox name="6">宫颈浸润癌(鳞癌/腺癌)</van-checkbox>
                <van-checkbox name="7">其他(请说明)</van-checkbox>
                <van-checkbox name="8">异常不详</van-checkbox>
              </van-checkbox-group>
            </div>
          </van-field>
          <van-field
            v-if="item.examineResultAbnorma.indexOf('7')!==-1"
            v-model="item.examineResultAbnormaExplain"
            :readonly="readonly"
            required
            label-width="6rem"
            class=""
            label="组织病理学检查结果异常-其他"
            placeholder="请输入"
            input-align="right"></van-field>
        </template>
        <van-field :readonly="readonly" required label-width="10rem" class="" name="" label="诊断日期(病理)" input-align="right">
          <div slot="input">
            <van-radio-group :disabled="readonly" v-model="item.diagnoseTimeStatus" direction="horizontal" :disabled="readonly">
              <van-radio name="1">知道</van-radio>
              <van-radio name="2">不详</van-radio>
            </van-radio-group>
          </div>
        </van-field>
        <van-field
          v-if="item.diagnoseTimeStatus==1"
          :readonly="readonly"
          required
          label-width="10rem"
          class=""
          readonly
          clickable
          :value="item.diagnoseTime||''"
          label="请选择诊断日期(病理)"
          placeholder="请选择"
          input-align="right"
          :is-link="!readonly"></van-field>
        <van-field :readonly="readonly" required label-width="10rem" class="" name="" label="诊断机构(病理)" input-align="right">
          <div slot="input">
            <van-radio-group :disabled="readonly" v-model="item.diagnoseOrgStatus" direction="horizontal" :disabled="readonly">
              <van-radio name="1">知道</van-radio>
              <van-radio name="2">不详</van-radio>
            </van-radio-group>
          </div>
        </van-field>
        <van-field
          v-if="item.diagnoseOrgStatus==1"
          v-model="item.diagnoseOrgName"
          :readonly="readonly"
          required
          label-width="10rem"
          class=""
          label="请输入诊断机构(病理)"
          placeholder="请输入机构名称"
          input-align="right"></van-field>
      </template>
      <template v-else-if="item.examineStatus==2">
        <van-field :readonly="readonly" required label-width="10rem" class="" name="" label="未接受检查的原因" input-align="right">
          <div slot="input">
            <van-radio-group :disabled="readonly" v-model="item.notExaminedCause" :disabled="readonly">
              <van-radio name="1">拒绝检查</van-radio>
              <van-radio name="2">不知道需要检查</van-radio>
              <van-radio name="3">其他(请说明)</van-radio>
            </van-radio-group>
          </div>
        </van-field>
        <van-field
          v-if="item.notExaminedCause==3"
          v-model="item.notExaminedCauseExplain"
          :readonly="readonly"
          required
          label-width="6rem"
          class=""
          label="未接受检查的原因-其他"
          placeholder="请输入"
          input-align="right"></van-field>
      </template>
      <van-field readonly required label-width="8rem" class="" clearable v-model="item.doctorName" label="随访人员" placeholder="" input-align="right"></van-field>
      <van-field readonly required label-width="8rem" class="" clearable v-model="item.orgName" label="随访机构" placeholder="" input-align="right"></van-field>
      <van-field
        :readonly="readonly"
        required
        label-width="8rem"
        class=""
        readonly
        clickable
        :value="item.followupTime||''"
        label="随访时间"
        placeholder="请选择随访时间"
        input-align="right"
        :is-link="!readonly"></van-field>
    </div>
  </van-form>
</div>

+ 83 - 0
component/statistics/LascCervicalHistopathologyFollowup/index.js

@ -0,0 +1,83 @@
var template = ''
$.ajax('../../../component/statistics/LascCervicalHistopathologyFollowup/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('lasc-cervical-histopathology-followup', {
  props: ['data'],
  data: function () {
    return {
      readonlyTwo: 1,
      readonly: true,
      pickType: '',
      curItem: '',
      isShowDatePicker: false,
      date: '',
      minDate: '',
      form: {
        screenId: '', //两癌筛查id
        list: []
      }
    }
  },
  template: template,
  created: function () {
    var vm = this
    this.form.screenId = this.data.screenId
    if (this.data.value && this.data.value.length) {
      var form = JSON.parse(JSON.stringify(this.data.value))
      if (vm.isStrEmpty(form[0].examineStatus)) {
        this.form.list = _.map(form, function (v) {
          return _.assign(vm.getDefItem(), v)
        })
      } else {
        _.each(form, function (m) {
          m.examineResultAbnorma = m.examineResultAbnorma.split(',')
        })
        this.form.list = form
      }
    }
  },
  methods: {
    isStrEmpty: function (str) {
      return typeof str === 'undefined' || str === null || str === ''
    },
    getDefItem: function (noDefault) {
      var tmp = {
        screenId: this.form.screenId,
        examineStatus: '', //病理学检查情况
        examineResult: '', //组织病理学检查结果
        examineResultAbnorma: [], //组织病理学检查结果异常
        examineResultAbnormaExplain: '', //组织病理学检查结果异常-其他
        diagnoseTimeStatus: '', //诊断日期(病理)
        diagnoseTime: '', //请选择诊断日期(病理)
        diagnoseOrgStatus: '', //诊断机构(病理)
        diagnoseOrg: '', //请输入诊断机构(病理)--暂时不用
        diagnoseOrgName: '', //请输入诊断机构(病理)
        notExaminedCause: '', //未接受检查的原因
        notExaminedCauseExplain: '', //未接受检查的原因-其他
        orgName: '', //随访机构
        org: '', //随访机构
        doctorName: '', //随访人员
        doctor: '', //随访人员
        followupTime: '' //随访时间
      }
      if (!noDefault) {
        tmp.orgName = docInfo.hospitalName
        tmp.org = docInfo.hospital
        tmp.doctorName = docInfo.name
        tmp.doctor = docInfo.code
        tmp.followupTime = moment().format('YYYY-MM-DD')
      }
      return tmp
    }
  }
})

+ 90 - 0
component/statistics/LascCervicalHpvEntityList/index.html

@ -0,0 +1,90 @@
<div id="app">
  <van-form>
    <div class="item-list">
      <van-tabs title-active-color="#17b3ec" color="#17b3ec" v-model:active="active">
        <van-tab title="检查数据">
          <div class="item" v-for="(item, i) in form.list" :key="i">
            <van-cell :title="i+1+'、'">
              <div id="" v-if="!readonly">
                <van-icon v-if="form.list&&form.list.length>1" size="20px" name="delete-o" />
              </div>
            </van-cell>
            <van-field :readonly="readonly" required label-width="4rem" class="" name="高危型HPV分型检测" label="高危型HPV分型检测" input-align="right">
              <div slot="input">
                <template v-for="(value, key) in item.hpvHighRiskTypes" :key="key">
                  <van-radio-group :disabled="readonly" v-model="item.hpvHighRiskTypes[key]" direction="horizontal">
                    <span class="mr10">{{key}}:</span>
                    <van-radio name="1">阴性</van-radio>
                    <van-radio name="2">阳性</van-radio>
                  </van-radio-group>
                </template>
              </div>
            </van-field>
            <van-field :readonly="readonly" required label-width="4rem" class="" name="低危型HPV分型检测" label="低危型HPV分型检测" input-align="right">
              <div slot="input">
                <template v-for="(value, key) in item.hpvLowRiskTypes" :key="key">
                  <van-radio-group :disabled="readonly" v-model="item.hpvLowRiskTypes[key]" direction="horizontal">
                    <span class="mr10">{{key}}:</span>
                    <van-radio name="1">阴性</van-radio>
                    <van-radio name="2">阳性</van-radio>
                  </van-radio-group>
                </template>
              </div>
            </van-field>
            <van-field
              readonly="true"
              required
              label-width="8rem"
              clearable
              v-model="item.hpvInspectOrg"
              name="检查机构"
              label="检查机构"
              placeholder="请输入检查机构"
              input-align="right"></van-field>
            <van-field
              readonly="true"
              required
              label-width="8rem"
              clearable
              v-model="item.hpvInspectUser"
              name="检查人员"
              label="检查人员"
              placeholder="请输入检查人员"
              input-align="right"></van-field>
            <van-field
              :readonly="readonly"
              required
              label-width="8rem"
              readonly
              clickable
              name="检查时间"
              :value="item.hpvInspectTime?item.hpvInspectTime:''"
              label="检查时间"
              placeholder="请选择检查时间"
              input-align="right"
              <van-checkbox-group
              :disabled="readonly"
              :disabled="readonly"></van-field>
          </div>
          <div v-if="!readonly" class="item-add-btn" id="">
            <img src="../images/xinzhengyaopin_icon.png" />
          </div>
        </van-tab>
        <van-tab title="检查报告">
          <iframe v-if="hpvTubeNum" :src="pdfUrl" class="mt10" style="width: 100%; height: calc(100vh - 100px)"></iframe>
          <div v-else id="no_result_wrap" class="c-dn" v-else>
            <img class="no-result-img" src="../../../images/shujuweikong_img.png" />
            <div class="c-f14 c-323232 c-t-center">暂无数据</div>
          </div>
        </van-tab>
      </van-tabs>
      <!-- <div class="tabsBox mt10" style="">
					<div   v-if="hpvTubeNum">检查数据</div>
					<div >检查报告</div>
				</div> -->
    </div>
  </van-form>
</div>

+ 74 - 0
component/statistics/LascCervicalHpvEntityList/index.js

@ -0,0 +1,74 @@
var template = ''
$.ajax('../../../component/statistics/LascCervicalHpvEntityList/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('lasc-cervical-hpv-entityList', {
  template: template,
  props: [],
  data: function () {
    return {
      readonly: true,
      readonlyTwo: 1,
      isShowPicker: false,
      columns: [],
      pickType: '',
      curItem: '',
      isShowDatePicker: false,
      activeDateField: '',
      date: '',
      // minDate: moment().add(-100, 'year').toDate(),
      minDate: null,
      form: {
        screenId: '', //两癌筛查id
        list: []
      },
      hpvTubeNum: '',
      active: 0,
      pdfUrl: '',
      data: {
        value: [{}]
      }
    }
  },
  methods: {},
  mounted() {
    this.form.screenId = this.data.screenId
    var vm = this
    if (this.data.value && this.data.value.length) {
      var first = this.data.value[0]
      var formValue = JSON.parse(JSON.stringify(this.data.value))
      formValue.forEach(function (v) {
        var hpvHighRiskTypes = vm.getHpvHighRiskTypes(),
          hpvLowRiskTypes = vm.getHpvLowRiskTypes()
        if (v.hpvHighRiskTypes) {
          v.hpvHighRiskTypes.split(',').forEach(function (v) {
            hpvHighRiskTypes[v] = '2'
          })
        }
        v.hpvHighRiskTypes = hpvHighRiskTypes
        if (v.hpvLowRiskTypes) {
          v.hpvLowRiskTypes.split(',').forEach(function (v) {
            hpvLowRiskTypes[v] = '2'
          })
        }
        v.hpvLowRiskTypes = hpvLowRiskTypes
      })
      this.form.list = formValue
      vm.hpvTubeNum = vm.data.value && vm.data.value[0].hpvTubeNum ? vm.data.value[0].hpvTubeNum : ''
    }
  }
})

+ 91 - 0
component/statistics/LascCervicalPreliminaryScreenEntity/index.html

@ -0,0 +1,91 @@
<div id="app">
  <van-form>
    <div class="item-list">
      <van-tabs title-active-color="#17b3ec" color="#17b3ec" v-model:active="active">
        <van-tab title="检查数据">
          <div class="item" v-for="(item, i) in form.list" :key="i">
            <van-cell :title="i+1+'、'">
              <div id="" v-if="!readonly">
                <van-icon v-if="form.list&&form.list.length>1" size="20px" name="delete-o" />
              </div>
            </van-cell>
            <van-field
              :readonly="readonly"
              label-width="8rem"
              class=""
              readonly
              clearable
              :value="item.tbsResult"
              name="TBS分类报告结果"
              label="TBS分类报告结果"
              placeholder="请选择"
              input-align="right"
              :is-link="!readonly"></van-field>
            <!-- <van-field :readonly="readonly" required label-width="8rem" class=''  name="宫颈DNA倍体检测结果" label="宫颈DNA倍体检测结果" input-align="right">
								<div slot="input">
									<van-radio-group :disabled="readonly" v-model="item.cervicalDnaPloidyInspect" direction="horizontal" :disabled='readonly' >
										<van-radio name="1">未见DNA倍体异常</van-radio>
										<van-radio name="2">可见少量DNA倍体异常细胞(1-2个)</van-radio>
										<van-radio name="3">可见少量细胞增生(5%-10%)</van-radio>
										<van-radio name="4">可见DNA倍体异常细胞(≥3个)</van-radio>
										<van-radio name="5">可见细胞异常增生(≥10%)</van-radio>
										<van-radio name="6">可见异倍体细胞峰</van-radio>
										<van-radio name="7">有效检测细胞不足</van-radio>
									</van-radio-grou>
								</div>
							</van-field> -->
            <van-field
              readonly="true"
              required
              label-width="8rem"
              class=""
              :readonly="readonly"
              clearable
              v-model="item.cervicalCytologyOrg"
              name="检查机构"
              label="检查机构"
              placeholder="请输入检查机构"
              input-align="right"></van-field>
            <van-field
              readonly="true"
              required
              label-width="8rem"
              class=""
              :readonly="readonly"
              clearable
              v-model="item.cervicalCytologyUser"
              name="检查人员"
              label="检查人员"
              placeholder="请输入检查人员"
              input-align="right"></van-field>
            <van-field
              :readonly="readonly"
              required
              label-width="8rem"
              class=""
              readonly
              clickable
              name="检查时间"
              :value="item.cervicalCytologyTime?item.cervicalCytologyTime:''"
              label="检查时间"
              placeholder="请选择检查时间"
              input-align="right"
              :is-link="!readonly"></van-field>
          </div>
          <div v-if="!readonly" class="item-add-btn" id="">
            <img src="../images/xinzhengyaopin_icon.png" />
          </div>
        </van-tab>
        <van-tab title="检查报告">
          <iframe v-if="cytoTubeNum" :src="pdfUrl" class="mt10" style="width: 100%; height: calc(100vh - 100px)"></iframe>
          <div v-else id="no_result_wrap" class="c-dn" v-else>
            <img class="no-result-img" src="../../../images/shujuweikong_img.png" />
            <div class="c-f14 c-323232 c-t-center">暂无数据</div>
          </div>
        </van-tab>
      </van-tabs>
    </div>
  </van-form>
</div>

+ 88 - 0
component/statistics/LascCervicalPreliminaryScreenEntity/index.js

@ -0,0 +1,88 @@
var template = ''
$.ajax('../../../component/statistics/LascCervicalCytologyInspectEntityList/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('lasc-cervical-cytology-inspect-entityList', {
  template: template,
  props: [],
  data: function () {
    return {
      readonly: true,
      readonlyTwo: 1,
      isShowPicker: false,
      tbsResultList: [
        '未见上皮内病变细胞和恶性细胞',
        '未明确意义的不典型鳞状上皮细胞(ASC-US)',
        '不典型鳞状上皮细胞-不除外高度鳞状上皮内病变(ASC-H)',
        '低度鳞状上皮内病变(LSIL)',
        '高度鳞状上皮内病变(HSIL)',
        '鳞状细胞癌(SCC)',
        '不典型腺上皮细胞(AGC) ',
        '不典型宫颈管腺细胞倾向瘤变',
        '宫颈管原位癌',
        '腺癌',
        '其他',
        '标本不满意',
        '标本不满意:上皮细胞数目太少',
        '标本不满意:大量炎细胞遮盖'
      ],
      // 			tbsResultList: [
      // 				{dictValue: '未见上皮内病变细胞和恶性细胞', value: 1},
      // 				{dictValue: '未明确意义的不典型鳞状上皮细胞(ASC-US)', value: 2},
      // 				{dictValue: '不典型鳞状上皮细胞-不除外高度鳞状上皮内病变(ASC-H)', value: 3},
      // 				{dictValue: '低度鳞状上皮内病变(LSIL)', value: 4},
      // 				{dictValue: '高度鳞状上皮内病变(HSIL)', value: 5},
      // 				{dictValue: '鳞状细胞癌(SCC)', value: 6},
      // 				{dictValue: '不典型腺上皮细胞(AGC) ', value: 7},
      // 				{dictValue: '不典型宫颈管腺细胞倾向瘤变', value: 8},
      // 				{dictValue: '宫颈管原位癌', value: 9},
      // 				{dictValue: '腺癌', value: 10}
      // 			],
      columns: [],
      pickType: '',
      curItem: '',
      isShowDatePicker: false,
      activeDateField: '',
      date: '',
      // minDate: moment().add(-100, 'year').toDate(),
      minDate: null,
      form: {
        screenId: '', //两癌筛查id
        receiveCervicalCarcinomaInspect: 2, //是否接收乳腺临床检查1拒绝2接收
        list: []
      },
      cytoTubeNum: '',
      active: '',
      pdfUrl: '',
      data: {
        value: [{}]
      }
    }
  },
  methods: {},
  mounted() {
    var vm = this
    this.form.screenId = this.data.screenId
    if (this.data.value && this.data.value.length) {
      var form = JSON.parse(JSON.stringify(this.data.value))
      form.forEach(function (v) {
        v.tbsResult = vm.tbsResultList[Number(v.tbsResult) - 1]
      })
      this.form.list = form
      vm.cytoTubeNum = vm.data.value[0].cytoTubeNum
    }
  }
})

+ 96 - 82
component/statistics/LascPatient/index.html

@ -1,92 +1,106 @@
<div id="app" class="jtbc">
  <div class="copd-filter-group ui-col-1 bgc-fff" style="min-width: 900px">
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">
        <el-radio v-model="timeType" label="1">乳腺初筛时间:</el-radio>
        <el-date-picker
          style="width: 400px"
          v-model="chooseTime"
          type="daterange"
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          value-format="yyyy-MM-dd"></el-date-picker>
      </label>
  <template v-if="showTotalTable">
    <div class="copd-filter-group ui-col-1 bgc-fff" style="min-width: 900px">
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">
          <el-radio v-model="yearType" label="1">乳腺初筛时间:</el-radio>
          <el-date-picker
            style="width: 400px"
            v-model="chooseTime"
            type="daterange"
            range-separator="至"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            value-format="yyyy-MM-dd"></el-date-picker>
        </label>
      </div>
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14" style="display: flex; align-items: center">
          <el-radio v-model="yearType" label="2">宫颈初筛时间:</el-radio>
          <el-date-picker
            v-model="chooseTime"
            type="daterange"
            range-separator="至"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            value-format="yyyy-MM-dd"></el-date-picker>
        </label>
      </div>
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">居民姓名:</label>
        <el-input v-model="form.name" placeholder="请输入居民姓名查询"></el-input>
      </div>
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">数据范围:</label>
        <el-select class="formWidth" v-model="form.range" placeholder="请选择" @change="resetArea">
          <el-option v-for="(option, index) in rangeOptions" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </div>
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">地区:</label>
        <el-select class="formWidth" v-model="form.area" placeholder="请选择" @change="getHospital">
          <el-option v-for="(option, index) in areaOptions" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </div>
      <div class="searchDiv pb20 pr20" v-if="form.range == 'hospital'||form.range == 'team'">
        <label class="c-333 c-f14">社区:</label>
        <el-select class="formWidth" v-model="form.hospital" placeholder="请选择" @change="getTeam">
          <el-option v-for="(option, index) in hospitalOptions" :label="option.name" :value="option.code" :key="option.code"></el-option>
        </el-select>
      </div>
      <div class="searchDiv pb20 pr20" v-if="form.range == 'team'">
        <label class="c-333 c-f14">团队:</label>
        <el-select class="formWidth" v-model="form.team" placeholder="请选择">
          <el-option v-for="(option, index) in teamOptions" :label="option.name" :value="option.id" :key="option.id"></el-option>
        </el-select>
      </div>
      <div class="searchDiv pb20">
        <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
        <el-button type="ff9526" size="mini" @click="exportTable" :disabled="exportLoading">导出</el-button>
        <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
        <el-button type="primary" @click="onClickServiceRecord">服务记录</el-button>
      </div>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14" style="display: flex; align-items: center">
        <el-radio v-model="timeType" label="2">宫颈初筛时间:</el-radio>
        <el-date-picker
          v-model="chooseTime"
          type="daterange"
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          value-format="yyyy-MM-dd"></el-date-picker>
      </label>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">居民姓名:</label>
      <el-input v-model="form.name" placeholder="请输入居民姓名查询"></el-input>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">数据范围:</label>
      <el-select class="formWidth" v-model="form.range" placeholder="请选择" @change="resetArea">
        <el-option v-for="(option, index) in rangeOptions" :label="option.label" :value="option.value" :key="option.value"></el-option>
      </el-select>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">地区:</label>
      <el-select class="formWidth" v-model="form.area" placeholder="请选择" @change="getHospital">
        <el-option v-for="(option, index) in areaOptions" :label="option.label" :value="option.value" :key="option.value"></el-option>
      </el-select>
    </div>
    <div class="searchDiv pb20 pr20" v-if="form.range == 'hospital'||form.range == 'team'">
      <label class="c-333 c-f14">社区:</label>
      <el-select class="formWidth" v-model="form.hospital" placeholder="请选择" @change="getTeam">
        <el-option v-for="(option, index) in hospitalOptions" :label="option.name" :value="option.code" :key="option.code"></el-option>
      </el-select>
    </div>
    <div class="searchDiv pb20 pr20" v-if="form.range == 'team'">
      <label class="c-333 c-f14">团队:</label>
      <el-select class="formWidth" v-model="form.team" placeholder="请选择">
        <el-option v-for="(option, index) in teamOptions" :label="option.name" :value="option.id" :key="option.id"></el-option>
      </el-select>
    </div>
    <div class="searchDiv pb20">
      <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
      <el-button type="ff9526" size="mini" @click="exportTable" :disabled="exportLoading">导出</el-button>
      <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
    </div>
  </div>
  <el-table :data="tableData" style="width: 100%" v-loading="loading">
    <el-table-column type="index" min-width="60" label="序号"></el-table-column>
    <el-table-column :label="item.label" v-for="item in tableHeader" :min-width="item.width" :key="item.prop">
      <template slot-scope="scope">{{scope.row[item.prop]}}</template>
    </el-table-column>
    <el-table-column label="操作" align="center" width="130px">
      <template slot-scope="scope">
        <el-button type="text" @click="openDialog(scope)" :disabled="!scope.row.code">编辑</el-button>
        <el-button type="text" @click="openDialog(scope)" :disabled="!scope.row.code">服务记录</el-button>
        <el-button type="text" @click="openDialog(scope)" :disabled="!scope.row.code">就医记录</el-button>
      </template>
    </el-table-column>
  </el-table>
  <el-pagination
    @current-change="handleCurrentChange"
    @size-change="handleSizeChange"
    :current-page.sync="page"
    :page-size="size"
    :page-sizes="[10, 20, 50]"
    layout="total, sizes, prev, pager, next, jumper"
    :total="total"
    class="pagination"></el-pagination>
    <el-table :data="tableData" style="width: 100%" v-loading="loading">
      <el-table-column type="index" min-width="60" label="序号"></el-table-column>
      <el-table-column :label="item.label" v-for="item in tableHeader" :min-width="item.width" :key="item.prop">
        <template slot-scope="scope">{{scope.row[item.prop]}}</template>
      </el-table-column>
      <el-table-column label="操作" align="center" width="130px">
        <template slot-scope="scope">
          <el-button type="text" @click="openDialog(scope)" :disabled="!scope.row.code">编辑</el-button>
          <el-button type="text" @click="onClickServiceRecord(scope)" :disabled="!scope.row.code">服务记录</el-button>
          <el-button type="text" @click="openDialog(scope)" :disabled="!scope.row.code">就医记录</el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-pagination
      @current-change="handleCurrentChange"
      @size-change="handleSizeChange"
      :current-page.sync="page"
      :page-size="size"
      :page-sizes="[10, 20, 50]"
      layout="total, sizes, prev, pager, next, jumper"
      :total="total"
      class="pagination"></el-pagination>
  </template>
  <template v-if="serviceRecordVisable">
    <Copd-service-record-patient :detailInfo="currentEditData" @back="back"></Copd-service-record-patient>
  </template>
  <el-dialog title="编辑" :visible.sync="dialogVisible" width="70%">
    <lasc-modify-patient></lasc-modify-patient>
  </el-dialog>
  <el-dialog title="记录" :visible.sync="formDialogVisible" width="50%">
    <!-- <lasc-lascClinical-examination></lasc-lascClinical-examination> -->
    <lasc-breast-cduInspect-entity-list></lasc-breast-cduInspect-entity-list>
    <!-- <lasc-breast-cduInspect-entity-list></lasc-breast-cduInspect-entity-list> -->
    <!-- <lasc-breast-molybdenum-inspect-list></lasc-breast-molybdenum-inspect-list> -->
    <!-- <lasc-breast-pathology-inspect-entity-list></lasc-breast-pathology-inspect-entity-list> -->
    <!-- <lasc-breast-surgery-inspect-entity></lasc-breast-surgery-inspect-entity> -->
    <!-- <lasc-breast-followUp></lasc-breast-followUp> -->
    <!-- <lasc-cervical-gynecological-examination-entityList></lasc-cervical-gynecological-examination-entityList> -->
    <!-- <lasc-cervical-hpv-entityList></lasc-cervical-hpv-entityList> -->
    <!-- <lasc-cervical-final-diagnosis-entity></lasc-cervical-final-diagnosis-entity> -->
    <lasc-cervical-histopathology-followup></lasc-cervical-histopathology-followup>
  </el-dialog>
</div>

+ 13 - 0
component/statistics/LascPatient/index.js

@ -17,7 +17,10 @@ Vue.component('lasc-patient', {
  data: function () {
    return {
      years: [],
      currentEditData: {},
      dialogVisible: false,
      showTotalTable: true,
      serviceRecordVisable: false,
      yearType: '1',
      chooseYear: null,
      chooseTime: null,
@ -140,6 +143,11 @@ Vue.component('lasc-patient', {
        delete this.form.team
      }
    },
    back() {
      var vm = this
      vm.showTotalTable = true
      vm.serviceRecordVisable = false
    },
    getList() {
      var vm = this
      this.loading = true
@ -166,6 +174,11 @@ Vue.component('lasc-patient', {
        vm.loading = false
      })
    },
    onClickServiceRecord(record) {
      // this.currentEditData = record
      this.showTotalTable = false
      this.serviceRecordVisable = true
    },
    queryDate() {
      this.page = 1
      this.getList()

+ 4 - 0
component/statistics/breastCancerPatient/index.js

@ -78,6 +78,7 @@ Vue.component('breast-cancer-patient', {
    }
  },
  methods: {
    toUrl() {},
    init() {
      var selectedRole = JSON.parse(sessionStorage.getItem('selectedRole'))
      if (selectedRole.code.indexOf('350200') > -1) {
@ -160,6 +161,9 @@ Vue.component('breast-cancer-patient', {
        if (res.status == 200) {
          vm.tableData = res.detailModelList
          vm.total = res.totalCount
          // vm.tableData = [{ name: '张三' }]
          // vm.total = 1
        }
        vm.loading = false
      })