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日

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容