# Setting the Value of a QC Flag on an Artifact

The QC flag parameter qc-flag can be set on an input or output analyte (derived sample) or on an individual result file (measurement) with a few lines of Groovy code.

In the following example, the qc-flag value of the analyte artifact is set based on the value of the **bp\_size** variable when compared to the **threshold1** and **threshold2** variables.

<pre><code>artifact = GLSRestApiUtils.httpGET(artifactURI, username, password)
             
<strong>Node foundQCNode = artifact.'qc-flag'[0] as Node
</strong>             
if((bp_size >= threshold1) &#x26;&#x26; (bp_size &#x3C;= threshold2)){qcFlag = "PASSED"}
else{qcFlag = "FAILED"}         
</code></pre>

The following code determines whether a qc-flag value is previously set, such that a flag is only set if one does not exist.

<pre><code><strong>foundQCNode ? foundQCNode.setValue(qcFlag) : addChild(new Node(null, 'qc-flag', qcFlag), artifact, "qc-flag")
</strong>
GLSRestApiUtils.httpPUT(artifact, artifactURI, username, password)
</code></pre>
