package com.njcn.gather.icd.mapping.pojo.bo.state;

import lombok.Data;
import com.njcn.gather.icd.mapping.pojo.bo.icd.LnNode;

import java.util.ArrayList;
import java.util.List;

/**
 * 最终参与生成 DataSetList 的选择状态。
 *
 * 关键修正：
 * 旧版本一个绑定只保存一个 LnNode，导致：
 * - MSQI 整组丢失
 * - MHAI 只生成一半
 *
 * 新版本改成：
 * 一个绑定可以关联多个 LnNode，后续生成阶段再逐个展开。
 */
@Data
public class DataSetSelectionState {

    /** 所属分组 key。 */
    private String groupKey;

    /** 所属分组 desc。 */
    private String groupDesc;

    /** 报告名。 */
    private String reportName;

    /** 数据集名。 */
    private String dataSetName;

    /** 绑定标签。 */
    private String label;

    /** 绑定的 lnInst。 */
    private String lnInst;

    /**
     * 当前绑定最终命中的 LN 节点列表。
     *
     * 说明：
     * 同一个 lnInst 在不同 lnClass 下可能都需要展开，
     * 例如：MMXU / MSQI / MHAI。
     */
    private List<LnNode> lnNodes = new ArrayList<LnNode>();
}