keeeLeeee 2021-06-16 11:17 采纳率: 75%
浏览 62
已结题

请各位大佬解释下这段代码什么意思?代码是术后同天中的一个java脚本

String out_row_tablecode;
Object[] base;
String inpatient_no;
int seq_no;
String print_data;
String operation_date;
List<String> nurseInfo;
SimpleDateFormat format;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
  if (first) {
	nurseInfo = new ArrayList<String>();
	format = new SimpleDateFormat("yyyy-MM-dd");
 
	base = getRow();
 
  	if (base == null) {
  	  setOutputDone();
      return false;
	}
 
	out_row_tablecode = "dw.t_shgc";
	inpatient_no = get(Fields.In, "ffield01").getString(base);
	base = createOutputRow(base, data.outputRowMeta.size());
	get(Fields.Out, "ftablecode").setValue(base, out_row_tablecode);
	get(Fields.Out, "fdataid").setValue(base, inpatient_no);
	print_data = get(Fields.In, "print_data").getString(base);
	operation_date = get(Fields.In, "operation_date").getString(base);
    first = false;
 
  }
 
  Object[] r = getRow();
 
  if (r == null) {
	putRow(data.outputRowMeta, base);
    setOutputDone();
    return false;
  }
 
  logBasic("当前住院号:" + inpatient_no);
  logBasic("当前元素标签:" + element_id);
 
  String inpatient_no_tmp = get(Fields.In, "ffield01").getString(r);
  int element_id_tmp = Integer.parseInt(get(Fields.In, "element_id").getString(r));
  if (inpatient_no_tmp.equals(inpatient_no)) {
	logBasic("与新纪录住院号:" + inpatient_no_tmp + "相等");
	if (element_id_tmp == element_id) {
	  logBasic("与新纪录元素标签:" + inpatient_no_tmp + "相等,跳过此行数据");
	  return true;
	} else {
	  logBasic("与新纪录元素标签:" + inpatient_no_tmp + "不等,处理数据中...");
	  switch (element_id_tmp) {
		case 794:
		  logBasic("元素转换标签:794");
		  get(Fields.Out, "ffield02").setValue(base, get(Fields.In, "value").getString(r));
		  break;
		case 4641:
		  logBasic("元素转换标签:4641");
		  get(Fields.Out, "ffield03").setValue(base, get(Fields.In, "value").getString(r));
		  break;
		case 370:
		  logBasic("元素转换标签:370");
		  get(Fields.Out, "ffield05").setValue(base, get(Fields.In, "value").getString(r));
		  break;
		case 595:
		  logBasic("元素转换标签:595");
		  get(Fields.Out, "ffield06to13").setValue(base, get(Fields.In, "value").getString(r));
		  break;
		case 721:
		  logBasic("元素转换标签:721");
		  get(Fields.Out, "ffield14").setValue(base, get(Fields.In, "value").getString(r));
		  break;
		case 793:
		  logBasic("元素转换标签:793");
		  get(Fields.Out, "ffield15").setValue(base, get(Fields.In, "value").getString(r));
		  break;
		case 720:
		  logBasic("元素转换标签:720");
		  get(Fields.Out, "ffield16").setValue(base, get(Fields.In, "value").getString(r));
		  break;
		default:
		  logBasic("非法标签:" + element_id_tmp);
		  break;
	  }
	  element_id = element_id_tmp;
	  return true;
	}
  } else {
	logBasic("与新纪录住院号:" + inpatient_no_tmp + "不等,输出之前数据到结果中。");
	putRow(data.outputRowMeta, base);
	base = r;
	out_row_tablecode = "dw.t_ssqk";
	inpatient_no = get(Fields.In, "ffield01").getString(base);
	element_id = Integer.parseInt((get(Fields.In, "element_id").getString(base)));
	base = createOutputRow(base, data.outputRowMeta.size());
	get(Fields.Out, "ftablecode").setValue(base, out_row_tablecode);
	get(Fields.Out, "fdataid").setValue(base, inpatient_no);
	switch (element_id) {
	  case 794:
		logBasic("元素转换标签:794");
		get(Fields.Out, "ffield02").setValue(base, get(Fields.In, "value").getString(r));
		break;
	  case 4641:
		logBasic("元素转换标签:4641");
		get(Fields.Out, "ffield03").setValue(base, get(Fields.In, "value").getString(r));
		break;
	  case 370:
		logBasic("元素转换标签:370");
		get(Fields.Out, "ffield05").setValue(base, get(Fields.In, "value").getString(r));
		break;
	  case 595:
		logBasic("元素转换标签:595");
		get(Fields.Out, "ffield06to13").setValue(base, get(Fields.In, "value").getString(r));
		break;
	  case 721:
		logBasic("元素转换标签:721");
		get(Fields.Out, "ffield14").setValue(base, get(Fields.In, "value").getString(r));
		break;
	  case 793:
		logBasic("元素转换标签:793");
		get(Fields.Out, "ffield15").setValue(base, get(Fields.In, "value").getString(r));
		break;
	  case 720:
		logBasic("元素转换标签:720");
		get(Fields.Out, "ffield16").setValue(base, get(Fields.In, "value").getString(r));
		break;
	  default:
		logBasic("非法标签:" + element_id_tmp);
		break;
	}
  }
 
  return true;
}

 

  • 写回答

4条回答 默认 最新

  • 关注

    你这个是病人做手术的一个流程图吧,根据流程实现就可以了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月15日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度