123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441 |
- package com.yihu.ehr.analyze.controller;
- import com.yihu.ehr.analyze.common.AnalyzerApi;
- import com.yihu.ehr.analyze.feign.HosAdminServiceClient;
- import com.yihu.ehr.analyze.model.AdapterDatasetModel;
- import com.yihu.ehr.analyze.model.AdapterMetadataModel;
- import com.yihu.ehr.analyze.service.dataQuality.DqDatasetWarningService;
- import com.yihu.ehr.analyze.service.pack.PackQcReportService;
- import com.yihu.ehr.constants.ApiVersion;
- import com.yihu.ehr.constants.ServiceApi;
- import com.yihu.ehr.controller.EnvelopRestEndPoint;
- import com.yihu.ehr.elasticsearch.ElasticSearchUtil;
- import com.yihu.ehr.entity.quality.DqDatasetWarning;
- import com.yihu.ehr.model.quality.MProfileInfo;
- import com.yihu.ehr.redis.client.RedisClient;
- import com.yihu.ehr.util.rest.Envelop;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import io.swagger.annotations.ApiParam;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.data.domain.Page;
- import org.springframework.http.ResponseEntity;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import java.util.*;
- /**
- * @Author: zhengwei
- * @Date: 2018/5/31 16:20
- * @Description: 质控报表
- */
- @RestController
- @RequestMapping(ApiVersion.Version1_0)
- @Api(value = "PackQcReportEndPoint", description = "档案分析服务", tags = {"档案分析服务-新质控管理报表"})
- public class PackQcReportEndPoint extends EnvelopRestEndPoint {
- @Autowired
- private PackQcReportService packQcReportService;
- @Autowired
- private DqDatasetWarningService dqDatasetWarningService;
- @Autowired
- private HosAdminServiceClient hosAdminServiceClient;
- @Value("${quality.cloud}")
- private String cloud;
- @Value("${quality.orgCode}")
- private String orgCode;
- @Value("${quality.uploadCode}")
- private String uploadCode;
- @Autowired
- private RedisClient redisClient;
- @RequestMapping(value = ServiceApi.PackQcReport.dailyReport, method = RequestMethod.GET)
- @ApiOperation(value = "获取医院数据")
- public Envelop dailyReport(
- @ApiParam(name = "startDate", value = "开始日期")
- @RequestParam(name = "startDate") String startDate,
- @ApiParam(name = "endDate", value = "结束日期")
- @RequestParam(name = "endDate") String endDate,
- @ApiParam(name = "orgCode", value = "医院代码", required = false)
- @RequestParam(name = "orgCode") String orgCode) throws Exception {
- return packQcReportService.dailyReport("event_date",startDate, endDate, orgCode);
- }
- @RequestMapping(value = ServiceApi.PackQcReport.datasetWarningList, method = RequestMethod.GET)
- @ApiOperation(value = "预警数据集列表")
- public Envelop datasetWarningList(
- @ApiParam(name = "orgCode", value = "机构编码")
- @RequestParam(name = "orgCode", required = false) String orgCode,
- @ApiParam(name = "type", value = "类型(1平台接收,2平台上传)")
- @RequestParam(name = "type") String type,
- @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
- @RequestParam(value = "page") int page,
- @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
- @RequestParam(value = "size") int size) {
- Envelop envelop = new Envelop();
- try {
- String filters = "type=" + type;
- if (!StringUtils.isEmpty(orgCode)&&!cloud.equals(orgCode)) {
- filters += ";orgCode=" + orgCode;
- }
- List<DqDatasetWarning> list = dqDatasetWarningService.search(null, filters, "", page, size);
- int count = (int) dqDatasetWarningService.getCount(filters);
- envelop = getPageResult(list, count, page, size);
- } catch (Exception e) {
- e.printStackTrace();
- envelop.setSuccessFlg(false);
- envelop.setErrorMsg(e.getMessage());
- }
- return envelop;
- }
- @RequestMapping(value = ServiceApi.PackQcReport.resourceSuccess, method = RequestMethod.GET)
- @ApiOperation(value = "资源化成功的计数统计")
- public Envelop resourceSuccess(
- @ApiParam(name = "startDate", value = "开始日期")
- @RequestParam(name = "startDate") String startDate,
- @ApiParam(name = "endDate", value = "结束日期")
- @RequestParam(name = "endDate") String endDate,
- @ApiParam(name = "orgCode", value = "医院代码")
- @RequestParam(name = "orgCode", required = false) String orgCode) throws Exception {
- return packQcReportService.resourceSuccess(startDate, endDate, orgCode);
- }
- @RequestMapping(value = ServiceApi.PackQcReport.resourceSuccessPage, method = RequestMethod.GET)
- @ApiOperation(value = "资源化成功的计数统计(分页)")
- public Envelop resourceSuccessPage(
- @ApiParam(name = "startDate", value = "开始日期")
- @RequestParam(name = "startDate") String startDate,
- @ApiParam(name = "endDate", value = "结束日期")
- @RequestParam(name = "endDate") String endDate,
- @ApiParam(name = "orgCode", value = "医院代码")
- @RequestParam(name = "orgCode", required = false) String orgCode,
- @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
- @RequestParam(value = "size", required = false) int size,
- @ApiParam(name = "page", value = "页码", defaultValue = "1")
- @RequestParam(value = "page", required = false) int page) throws Exception {
- return packQcReportService.resourceSuccess(startDate, endDate, orgCode,size,page);
- }
- @RequestMapping(value = ServiceApi.PackQcReport.archiveReport, method = RequestMethod.GET)
- @ApiOperation(value = "获取接收档案数据")
- public Envelop archiveReport(
- @ApiParam(name = "startDate", value = "开始日期")
- @RequestParam(name = "startDate") String startDate,
- @ApiParam(name = "endDate", value = "结束日期")
- @RequestParam(name = "endDate") String endDate,
- @ApiParam(name = "orgCode", value = "医院代码")
- @RequestParam(name = "orgCode", required = false) String orgCode) throws Exception {
- return packQcReportService.archiveReport(startDate, endDate, orgCode);
- }
- @RequestMapping(value = ServiceApi.PackQcReport.dataSetList, method = RequestMethod.GET)
- @ApiOperation(value = "获取接收数据集列表")
- public Envelop dataSetList(
- @ApiParam(name = "startDate", value = "开始日期")
- @RequestParam(name = "startDate") String startDate,
- @ApiParam(name = "endDate", value = "结束日期")
- @RequestParam(name = "endDate") String endDate,
- @ApiParam(name = "orgCode", value = "医院代码")
- @RequestParam(name = "orgCode", required = false) String orgCode) throws Exception {
- return packQcReportService.dataSetList(startDate, endDate, orgCode);
- }
- @RequestMapping(value = ServiceApi.PackQcReport.dataSetListPage, method = RequestMethod.GET)
- @ApiOperation(value = "获取接收数据集列表")
- public Envelop dataSetListPage(
- @ApiParam(name = "startDate", value = "开始日期")
- @RequestParam(name = "startDate") String startDate,
- @ApiParam(name = "endDate", value = "结束日期")
- @RequestParam(name = "endDate") String endDate,
- @ApiParam(name = "orgCode", value = "医院代码")
- @RequestParam(name = "orgCode", required = false) String orgCode,
- @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
- @RequestParam(value = "size", required = false) int size,
- @ApiParam(name = "page", value = "页码", defaultValue = "1")
- @RequestParam(value = "page", required = false) int page) throws Exception {
- return packQcReportService.getDataSetListPage(startDate, endDate, orgCode,size,page);
- }
- @RequestMapping(value = ServiceApi.PackQcReport.archiveFailed, method = RequestMethod.GET)
- @ApiOperation(value = "获取资源化解析失败")
- public Envelop archiveFailed(
- @ApiParam(name = "startDate", value = "开始日期")
- @RequestParam(name = "startDate") String startDate,
- @ApiParam(name = "endDate", value = "结束日期")
- @RequestParam(name = "endDate") String endDate,
- @ApiParam(name = "orgCode", value = "医院代码")
- @RequestParam(name = "orgCode", required = false) String orgCode) throws Exception {
- return packQcReportService.archiveFailed(startDate, endDate, orgCode);
- }
- @RequestMapping(value = ServiceApi.PackQcReport.archiveFailedPage, method = RequestMethod.GET)
- @ApiOperation(value = "获取资源化解析失败")
- public Envelop archiveFailedPage(
- @ApiParam(name = "startDate", value = "开始日期")
- @RequestParam(name = "startDate") String startDate,
- @ApiParam(name = "endDate", value = "结束日期")
- @RequestParam(name = "endDate") String endDate,
- @ApiParam(name = "orgCode", value = "医院代码")
- @RequestParam(name = "orgCode", required = false) String orgCode,
- @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
- @RequestParam(value = "size", required = false) int size,
- @ApiParam(name = "page", value = "页码", defaultValue = "1")
- @RequestParam(value = "page", required = false) int page) throws Exception {
- return packQcReportService.archiveFailed(startDate, endDate, orgCode,size,page);
- }
- @RequestMapping(value = ServiceApi.PackQcReport.metadataError, method = RequestMethod.GET)
- @ApiOperation(value = "获取解析异常")
- public Envelop metadataError(
- @ApiParam(name = "step", value = "异常环节")
- @RequestParam(name = "step") String step,
- @ApiParam(name = "startDate", value = "开始日期")
- @RequestParam(name = "startDate") String startDate,
- @ApiParam(name = "endDate", value = "结束日期")
- @RequestParam(name = "endDate") String endDate,
- @ApiParam(name = "orgCode", value = "医院代码")
- @RequestParam(name = "orgCode", required = false) String orgCode) throws Exception {
- return packQcReportService.metadataError(step, startDate, endDate, orgCode);
- }
- @RequestMapping(value = ServiceApi.PackQcReport.metadataErrorPage, method = RequestMethod.GET)
- @ApiOperation(value = "获取解析异常")
- public Envelop metadataErrorPage(
- @ApiParam(name = "step", value = "异常环节")
- @RequestParam(name = "step") String step,
- @ApiParam(name = "startDate", value = "开始日期")
- @RequestParam(name = "startDate") String startDate,
- @ApiParam(name = "endDate", value = "结束日期")
- @RequestParam(name = "endDate") String endDate,
- @ApiParam(name = "orgCode", value = "医院代码")
- @RequestParam(name = "orgCode", required = false) String orgCode,
- @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
- @RequestParam(value = "size", required = false) int size,
- @ApiParam(name = "page", value = "页码", defaultValue = "1")
- @RequestParam(value = "page", required = false) int page) throws Exception {
- return packQcReportService.metadataError(step, startDate, endDate, orgCode,size,page);
- }
- @RequestMapping(value = ServiceApi.PackQcReport.analyzeErrorList, method = RequestMethod.GET)
- @ApiOperation(value = "解析失败问题查询")
- public Envelop analyzeErrorList(
- @ApiParam(name = "filters", value = "过滤")
- @RequestParam(value = "filters", required = false) String filters,
- @ApiParam(name = "sorts", value = "排序")
- @RequestParam(value = "sorts", required = false) String sorts,
- @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
- @RequestParam(value = "page") int page,
- @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
- @RequestParam(value = "size") int size) throws Exception {
- if (StringUtils.isNotEmpty(filters)) {
- filters = "analyze_status=2||archive_status=2;" + filters;
- } else {
- filters = "analyze_status=2||archive_status=2";
- }
- Page<Map<String, Object>> result = packQcReportService.analyzeErrorList(filters, sorts, page, size);
- Envelop envelop = getPageResult(result.getContent(), (int)result.getTotalElements(), page, size);
- return envelop;
- }
- @RequestMapping(value = ServiceApi.PackQcReport.metadataErrorList, method = RequestMethod.GET)
- @ApiOperation(value = "异常数据元列表")
- public Envelop metadataErrorList(
- @ApiParam(name = "filters", value = "过滤")
- @RequestParam(value = "filters", required = false) String filters,
- @ApiParam(name = "sorts", value = "排序")
- @RequestParam(value = "sorts", required = false) String sorts,
- @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
- @RequestParam(value = "page") int page,
- @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
- @RequestParam(value = "size") int size) throws Exception {
- Page<Map<String, Object>> result = packQcReportService.metadataErrorList(filters, sorts, page, size);
- Envelop envelop = getPageResult(result.getContent(), (int)result.getTotalElements(), page, size);
- return envelop;
- }
- @RequestMapping(value = ServiceApi.PackQcReport.metadataErrorDetail, method = RequestMethod.GET)
- @ApiOperation(value = "异常数据元详情")
- public Envelop metadataErrorDetail(
- @ApiParam(name = "id", value = "主键", required = true)
- @RequestParam(value = "id") String id) throws Exception {
- Envelop envelop = packQcReportService.metadataErrorDetail(id);
- return envelop;
- }
- @RequestMapping(value = ServiceApi.PackQcReport.archiveList, method = RequestMethod.GET)
- @ApiOperation(value = "档案包列表")
- public Envelop archiveList(
- @ApiParam(name = "filters", value = "过滤")
- @RequestParam(value = "filters", required = false) String filters,
- @ApiParam(name = "sorts", value = "排序")
- @RequestParam(value = "sorts", required = false) String sorts,
- @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
- @RequestParam(value = "page") int page,
- @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
- @RequestParam(value = "size") int size) throws Exception {
- // if(StringUtils.isNotEmpty(filters)){
- // filters="archive_status=3;"+filters;
- // }else{
- // filters="archive_status=3";
- // }
- Page<Map<String, Object>> result = packQcReportService.archiveList(filters, sorts, page, size);
- Envelop envelop = getPageResult(result.getContent(), (int)result.getTotalElements(), page, size);
- return envelop;
- }
- @RequestMapping(value = ServiceApi.PackQcReport.archiveDetail, method = RequestMethod.GET)
- @ApiOperation(value = "档案详情")
- public Envelop archiveDetail(
- @ApiParam(name = "id", value = "主键", required = true)
- @RequestParam(value = "id") String id) throws Exception {
- Envelop envelop = packQcReportService.archiveDetail(id);
- return envelop;
- }
- @RequestMapping(value = ServiceApi.PackQcReport.uploadRecordList, method = RequestMethod.GET)
- @ApiOperation(value = "上传记录列表")
- public Envelop uploadRecordList(
- @ApiParam(name = "filters", value = "过滤")
- @RequestParam(value = "filters", required = false) String filters,
- @ApiParam(name = "sorts", value = "排序")
- @RequestParam(value = "sorts", required = false) String sorts,
- @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
- @RequestParam(value = "page") int page,
- @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
- @RequestParam(value = "size") int size) throws Exception {
- Page<Map<String, Object>> result = packQcReportService.uploadRecordList(filters, sorts, page, size);
- Envelop envelop = getPageResult(result.getContent(), (int)result.getTotalElements(), page, size);
- return envelop;
- }
- @RequestMapping(value = ServiceApi.PackQcReport.uploadRecordDetail, method = RequestMethod.GET)
- @ApiOperation(value = "上传记录详情")
- public Envelop uploadRecordDetail(
- @ApiParam(name = "id", value = "主键", required = true)
- @RequestParam(value = "id") String id) throws Exception {
- Envelop envelop = packQcReportService.uploadRecordDetail(id);
- return envelop;
- }
- @RequestMapping(value = "/packQcReport/adapterDatasetList", method = RequestMethod.GET)
- @ApiOperation(value = "上传数据集列表")
- public Envelop adapterDatasetList(
- @ApiParam(name = "version", value = "版本号")
- @RequestParam(value = "version", required = false) String version,
- @ApiParam(name = "filters", value = "过滤")
- @RequestParam(value = "filters", required = false) String filters,
- @ApiParam(name = "sorts", value = "排序")
- @RequestParam(value = "sorts", required = false) String sorts,
- @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
- @RequestParam(value = "page") int page,
- @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
- @RequestParam(value = "size") int size){
- if(StringUtils.isNotEmpty(filters)){
- filters="needCrawer=1;"+filters;
- }else{
- filters="needCrawer=1;";
- }
- if(StringUtils.isBlank(version)){
- //获取最新的适配版本号
- version = hosAdminServiceClient.getLastAdapterVersion(orgCode,uploadCode);
- }
- ResponseEntity<Collection<AdapterDatasetModel>> res = hosAdminServiceClient.adapterDatasetList(version, null, filters , sorts ,page, size);
- List<AdapterDatasetModel> list = (List<AdapterDatasetModel>)res.getBody();
- int totalCount = getTotalCount(res);
- return getPageResult(list,totalCount,page,size);
- }
- @RequestMapping(value = "/packQcReport/adapterMetadataList", method = RequestMethod.GET)
- @ApiOperation(value = "上传数据元列表")
- public Envelop adapterMetadataList(
- @ApiParam(name = "version", value = "版本号")
- @RequestParam(value = "version", required = false) String version,
- @ApiParam(name = "filters", value = "过滤")
- @RequestParam(value = "filters", required = false) String filters,
- @ApiParam(name = "sorts", value = "排序")
- @RequestParam(value = "sorts", required = false) String sorts,
- @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
- @RequestParam(value = "page") int page,
- @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
- @RequestParam(value = "size") int size){
- if(StringUtils.isNotEmpty(filters)){
- filters="needCrawer=1;"+filters;
- }else{
- filters="needCrawer=1;";
- }
- if(StringUtils.isBlank(version)){
- //获取最新的适配版本号
- version = hosAdminServiceClient.getLastAdapterVersion(orgCode,uploadCode);
- }
- ResponseEntity<Collection<AdapterMetadataModel>> res = hosAdminServiceClient.adapterMetadataList(version, null, filters , sorts ,page, size);
- List<AdapterMetadataModel> list = (List<AdapterMetadataModel>)res.getBody();
- int totalCount = getTotalCount(res);
- return getPageResult(list,totalCount,page,size);
- }
- @RequestMapping(value = "/packQcReport/datasetDetail", method = RequestMethod.GET)
- @ApiOperation(value = "抽取数据集")
- public Envelop datasetDetail(
- @ApiParam(name = "date", value = "日期", required = true)
- @RequestParam(value = "date") String date) throws Exception {
- Envelop envelop = packQcReportService.datasetDetail(date);
- return envelop;
- }
- @RequestMapping(value = "/packQcReport/setStartTime", method = RequestMethod.GET)
- @ApiOperation(value = "设置抽取时间")
- public Envelop setStartTime(
- @ApiParam(name = "date", value = "日期", required = true)
- @RequestParam(value = "date") String date) throws Exception {
- Envelop envelop = new Envelop();
- redisClient.set("start_date",date);
- envelop.setSuccessFlg(true);
- return envelop;
- }
- @RequestMapping(value = "/packQcReport/getProfileInfo", method = RequestMethod.GET)
- @ApiOperation(value = "设置抽取时间")
- public Envelop getProfileInfo(@ApiParam(name = "startDate", value = "就诊开始日期")
- @RequestParam(name = "startDate") String startDate,
- @ApiParam(name = "endDate", value = "就诊结束日期")
- @RequestParam(name = "endDate") String endDate,
- @ApiParam(name = "orgCode", value = "医院代码")
- @RequestParam(name = "orgCode", required = false) String orgCode) throws Exception {
- List<MProfileInfo> profileInfo = packQcReportService.getProfileInfo(startDate, endDate, orgCode);
- Envelop envelop = new Envelop();
- envelop.setSuccessFlg(true);
- envelop.setDetailModelList(profileInfo);
- return envelop;
- }
- @RequestMapping(value = AnalyzerApi.PackQcReport.ImageInfo, method = RequestMethod.GET)
- @ApiOperation(value = "获取影像采集情况")
- public Envelop getImageInfo(
- @ApiParam(name = "orgArea", value = "区县编码")
- @RequestParam(name = "orgArea", required = false) String orgArea,
- @ApiParam(name = "orgCode", value = "机构编码")
- @RequestParam(name = "orgCode", required = false) String orgCode,
- @ApiParam(name = "startDate", value = "开始日期", defaultValue = "2018-09-01")
- @RequestParam(name = "startDate", required = false)String startDate,
- @ApiParam(name = "endDate", value = "结束日期", defaultValue = "2018-09-11")
- @RequestParam(name = "endDate", required = false) String endDate) throws Exception {
- List<Map<String, Object>> esImageTotal = packQcReportService.getImageInfo(orgArea, orgCode, startDate, endDate);
- Envelop envelop = new Envelop();
- envelop.setSuccessFlg(true);
- envelop.setDetailModelList(esImageTotal);
- return envelop;
- }
- }
|