123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- <template>
- <div
- style="position: relative; padding: 0 12px; height: 96%; font-size: 12px"
- >
- <h3
- style="
- width: 100%;
- text-align: center;
- font-weight: bold;
- height: 30px;
- line-height: 35px;
- "
- >
- {{ env.VITE_HOSPITAL_NAME }}检验报告单
- </h3>
- <div style="display: flex">
- <div style="width: 25%">
- 姓名:{{data.base.pname}}
- </div>
- <div style="width: 25%">
- 性别:{{data.base.sex}}
- </div>
- <div style="width: 25%">
- 年龄:{{data.base.age}}
- </div>
- <div style="width: 25%">
- {{data.base.patientId}}
- </div>
- </div>
- <div style="display: flex">
- <div style="width: 25%">
- 科室:{{data.base.reqWardName}}
- </div>
- <div style="width: 25%">
- 床号:床号
- </div>
- <div style="width: 25%">
- 标本类型:{{data.base.inspectStuffName}}
- </div>
- <div style="width: 25%">
- <div>
- 申请项目:{{data.base.orderName}}
- </div>
- </div>
- </div>
- <div style="margin: 5px 0; border-top: 1px solid gray"></div>
- <div v-if="true">
- <div style="display: inline-block; width: 49.7%; vertical-align: top">
- <div style="display: flex">
- <div style="width: 30%">检验项目</div>
- <div style="width: 16.66%">结果</div>
- <div style="width: 16.66%">单位</div>
- <div style="width: 16.66%">说明</div>
- <div style="width: 20%">参考值</div>
- </div>
- <div style="margin: 5px 0; border-top: 1px solid gray"></div>
- <div
- v-for="(item, index) in data.rptList.slice(
- 0,
- data.halfBacSize
- )"
- :key="index"
- style="display: flex"
- >
- <div style="width: 30%">
- <div>{{item.rptItemname}}</div>
- </div>
- <div style="width: 16.66%">
- {{item.resultStr}}
- </div>
- <div style="width: 16.66%">{{item.resultUnit}}</div>
- <div style="width: 16.66%">
- <span
- v-html="
- getItemAlert(item.resultFlag)
- "
- ></span>
- </div>
- <div style="width: 20%">{{item.resultRef}}</div>
- </div>
- </div>
- <div style="display: inline-block; width: 49.7%; vertical-align: top">
- <div style="display: flex">
- <div style="width: 30%">检验项目</div>
- <div style="width: 16.66%">结果</div>
- <div style="width: 16.66%">单位</div>
- <div style="width: 16.66%">说明</div>
- <div style="width: 20%">参考值</div>
- </div>
- <div style="margin: 5px 0; border-top: 1px solid gray"></div>
- <div
- v-for="(item, index) in data.rptList.slice(
- data.halfBacSize
- )"
- :key="index"
- style="display: flex"
- >
- <div style="width: 30%">
- <div>{{item.rptItemname}}</div>
- </div>
- <div style="width: 16.66%">
- {{item.resultStr}}
- </div>
- <div style="width: 16.66%">{{item.resultUnit}}</div>
- <div style="width: 16.66%">
- <span
- v-html="
- getItemAlert(item.resultFlag)
- "
- ></span>
- </div>
- <div style="width: 20%">{{item.resultRef}}</div>
- </div>
- </div>
- </div>
- <!-- <div v-if="data.reportType === '细菌'">
- <div style="display: flex">
- <div style="width: 25%">检验项目</div>
- <div style="width: 75%">结果</div>
- </div>
- <div style="margin: 5px 0; border-top: 1px solid gray"></div>
- <div
- v-if="data.inspectionDetail?.items.length > 0"
- style="margin: 0 30px"
- v-for="item in data.inspectionDetail.items"
- >
- <div style="display: flex; width: 70%; margin: 2px 0">
- <div style="width: 32%">{{ item.itmName }}</div>
- <div style="width: 66%">{{ item.rsltStrs }}</div>
- </div>
- </div>
- <div
- v-if="data.bacterias.length > 0"
- style="margin: 0 30px; padding-bottom: 5px"
- v-for="(antibioticItem, index) in data.bacterias"
- :style="index > 0 ? { borderTop: '1px dashed gray' } : {}"
- >
- <div style="display: flex; width: 70%; margin: 8px 0 4px 0">
- <div style="width: 32%">{{ antibioticItem.type }}</div>
- <div style="width: 66%">{{ antibioticItem.germName }}</div>
- </div>
- <div style="display: inline-block; width: 49.7%; vertical-align: top">
- <div style="display: flex">
- <div style="width: 33.33%">抗菌药物</div>
- <div style="width: 33.33%">抗菌药物编码</div>
- <div style="width: 16.66%">MIC值</div>
- <div style="width: 16.66%">敏感性</div>
- </div>
- <div style="margin: 5px 0; border-top: 1px solid gray"></div>
- <div
- v-if="antibioticItem.antiList"
- style="display: flex"
- v-for="(bac, index) in antibioticItem.antiList.slice(
- 0,
- antibioticItem.halfBacSize
- )"
- :key="index"
- >
- <div style="width: 33.33%">
- <div>{{ bac.antiNameCn.substring(0, 8) }}</div>
- <div>{{ bac.antiNameCn.substring(8) }}</div>
- </div>
- <div style="width: 33.33%">{{ bac.antiAbb }}</div>
- <div style="width: 16.66%">{{ bac.antiMic }}</div>
- <div style="width: 16.66%">{{ bac.antiValue }}</div>
- </div>
- </div>
- <div style="display: inline-block; width: 47%; vertical-align: top">
- <div style="display: flex">
- <div style="width: 33.33%">抗菌药物</div>
- <div style="width: 33.33%">抗菌药物编码</div>
- <div style="width: 16.66%">MIC值</div>
- <div style="width: 16.66%">敏感性</div>
- </div>
- <div style="margin: 5px 0; border-top: 1px solid gray"></div>
- <div
- v-if="antibioticItem.halfBacSize > 1"
- style="display: flex"
- v-for="(bac, index) in antibioticItem.antiList.slice(
- antibioticItem.halfBacSize
- )"
- :key="index"
- >
- <div style="width: 33.33%">
- <div>{{ bac.antiNameCn.substring(0, 8) }}</div>
- <div>{{ bac.antiNameCn.substring(8) }}</div>
- </div>
- <div style="width: 33.33%">{{ bac.antiAbb }}</div>
- <div style="width: 16.66%">{{ bac.antiMic }}</div>
- <div style="width: 16.66%">{{ bac.antiValue }}</div>
- </div>
- </div>
- </div>
- <div v-else>
- <div v-for="item in data.inspectionDetail.items" style="display: flex">
- <div style="width: 25%">{{ item.itmName }}</div>
- <div style="width: 75%">{{ item.itmStrValue || item.rsltStrs }}</div>
- </div>
- </div>
- </div>-->
- <div style="position: absolute; bottom: 10px; left: 0; right: 0">
- <span style="margin-left: 20px"
- >{{data.base.reqComment}}</span
- >
- <div style="margin: 5px 0; border-top: 1px solid gray"></div>
- <div style="display: flex">
- <div style="width: 8%"></div>
- <div style="width: 25%">
- 接收时间:{{data.base.reqDate}}
- </div>
- <div style="width: 33.33%">
- 检验时间:{{data.base.chargeDate}}
- </div>
- <div style="width: 33.33%">
- 报告时间:{{data.base.transDt}}
- </div>
- </div>
- <div style="display: flex">
- <div style="width: 8%"></div>
- <div style="width: 25%">
- 送检医生:{{data.base.doctorName}}
- </div>
- <div style="width: 33.33%">
- 检验者:{{data.base.transUser}}
- </div>
- <div style="width: 33.33%">
- 审核者:
- </div>
- </div>
- <div style="margin: 5px 0; border-top: 1px solid gray"></div>
- <div
- style="
- width: 100%;
- text-align: center;
- font-weight: bold;
- height: 30px;
- font-size: 12px;
- "
- >
- ***此结果仅对所检测的标本负责***
- <span style="margin-left: 10px; font-size: 12px"
- >备注:升高(↑),降低(↓),阳性(+),阴性(-)</span
- >
- </div>
- <el-divider class="el-divider_shorter" />
- </div>
- </div>
- </template>
- <script setup>
- import env from "../../../utils/setting";
- const props = defineProps({
- data: {
- type: Object,
- required: true,
- },
- });
- function filterSex(val) {
- switch (val) {
- case 0:
- return "未填";
- case 1:
- return "男";
- case 2:
- return "女";
- case 3:
- return "未知";
- }
- return "";
- }
- function filterAgeUnit(val) {
- switch (val) {
- case 0:
- return "岁";
- case 1:
- return "月";
- case 2:
- return "天";
- case 3:
- return "时";
- }
- return "";
- }
- function getItemAlert(val, strValue, value) {
- console.log(val, strValue, value)
- // if (strValue !== "" || value === "") return "";
- switch (val) {
- case "L":
- return '<span style="color:#F56C6C;font-weight:bold">偏低↓</span>';
- case "H":
- return '<span style="color:#F56C6C;font-weight:bold">偏高↑</span>';
- case "LL":
- return '<span style="color:#F56C6C;font-weight:bold">偏低报警↓</span>';
- case "HH":
- return '<span style="color:#F56C6C;font-weight:bold">偏高报警↑</span>';
- case "P":
- return '<span style="color:#F56C6C;font-weight:bold">阳性+</span>';
- case "Q":
- return '<span style="color:#F56C6C;font-weight:bold">弱阳性+</span>';
- }
- return "";
- }
- </script>
|