【问题标题】:How to add elements from JSONArray to QuestionnaireItemOptionComponent List?如何将 JSONArray 中的元素添加到 QuestionnaireItemOptionComponent 列表?
【发布时间】:2021-03-01 10:43:13
【问题描述】:

有人可以举例说明如何在 QuestionnaireItemOptionComponent 中保存 String 吗? 我找不到这样做的方法。有没有其他方法可以做到这一点?我有存储在 JSONArray 中的选项。

这就是我想要做的:

JSONArray options = rec.getJSONArray("options");

QuestionnaireItemOptionComponent test = new QuestionnaireItemOptionComponent();
            List<QuestionnaireItemOptionComponent> listdata = new ArrayList<>();
            if (options != null) {
                for (int j=0;j<options.length();j++){
                    //test = options.getString(j); // String to QuestionnaireItemOptionComponent 
                    //test.setValue(options.getString(j)) // String to QuestionnaireItemOptionComponent 
                    listdata.add(test);
                }
            }

这是我想要得到的结果:

"option": [
     {"valueString" : "value_1"},
     {"valueString" : "value_2"},
     {"valueString" : "valie_3"},
     {"valueString" : "value_4"},
     ...
     {"valueString" : "value_n"}
]

接下来是我使用的依赖项:

<dependency>
   <groupId>ca.uhn.hapi.fhir</groupId>
   <artifactId>hapi-fhir-structures-dstu3</artifactId>
   <version>5.1.0</version>
</dependency>
<dependency>
   <groupId>ca.uhn.hapi.fhir</groupId>
   <artifactId>hapi-fhir-validation-resources-dstu3</artifactId>
   <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>ca.uhn.hapi.fhir</groupId>
    <artifactId>hapi-fhir-structures-r4</artifactId>
    <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>ca.uhn.hapi.fhir</groupId>
    <artifactId>hapi-fhir-base</artifactId>
    <version>5.1.0</version>
</dependency>

【问题讨论】:

    标签: java hl7-fhir hapi-fhir


    【解决方案1】:

    试试:

    test.addChild("valueString").setValue(options.getString(j))

    【讨论】:

    • 这是我想要的方式,但.setValue() 选项在.addChild() 之后不可用。我已经更新了原始问题。我错过了一些依赖还是什么?
    【解决方案2】:

    好的,我找到了方法。

    代码如下:

    JSONArray options = rec.getJSONArray("options");
    QuestionnaireItemOptionComponent questionnaire_item = new QuestionnaireItemOptionComponent();
    List<QuestionnaireItemOptionComponent> questionnaire_item_list = new ArrayList<>();
    StringType stringType = new StringType();
    if (options != null) {
        for (int j = 0; j < options.length(); j++) {
            stringType.setValue(options.getString(j));
            questionnaire_item.setValue(stringType);
            questionnaire_item_list.add(questionnaire_item);
        }
    }
    
    Questionnaire.QuestionnaireItemComponent questionnaire = new Questionnaire.QuestionnaireItemComponent();
    questionnaire.setOption(questionnaire_item_list);
    

    这是问卷中选项部分的最终结果:

    "option":[
       {
          "valueString":"Option 1"
       },
       {
          "valueString":"Option 2"
       },
       {
          "valueString":"Option 3"
       },
       {
          "valueString":"Option 4"
       }
    ]
    

    在使用 FHIR 时,我无法理解 Type value 背后的含义,setValue(Type value) 期望将其作为参数。该值可以是StringType、IntegerType等任意类型。

    【讨论】:

      猜你喜欢
      • 2015-08-01
      • 1970-01-01
      • 2014-06-16
      • 2021-03-24
      • 2020-02-01
      相关资源
      最近更新 更多